Методы кодирования переменной длины для структур кодированных блоков
Иллюстрации
Показать всеИзобретение относится к кодированию цифрового видео, а более конкретно к кодированию переменной длины (VLC) структур кодированных блоков (СВР), используемых для того, чтобы кодировать видео. Техническим результатом является повышение эффективности кодирования СВР видеоблоков, в которых структуры коэффициентов, возникающие с большей вероятностью, кодируются с помощью более коротких кодов, тогда как структуры коэффициентов, которые возникают с меньшей вероятностью, кодируются с помощью более длинных кодов, что особенно полезно в кодировании видеоблоков улучшенных слоев в кодировании масштабируемого видео (SVC). Указанный технический результат достигается тем, что несколько различных VLC-таблиц сохраняются в устройствах кодирования, во время процессов кодирования и декодирования одна из VLC-таблиц выбирается и используется для того, чтобы выполнять кодирование СВР для данного видеоблока. Таблица может быть выбрана на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования. 4 н. и 21 з.п. ф-лы, 7 ил., 1 табл.
Реферат
В настоящей заявке испрашивается приоритет предварительной заявки США номер 60/883591, поданной 8 января 2007 года, содержимое которой полностью включается в состав данного документа посредством ссылки.
Область техники, к которой относится изобретение
Это раскрытие сущности относится к кодированию цифрового видео, а более конкретно к кодированию переменной длины (VLC) структур кодированных блоков (CBP), используемых для того, чтобы кодировать видеоинформацию.
Уровень техники
Возможности цифрового видео могут быть встроены в широкий диапазон устройств, включая цифровые телевизоры, системы цифрового прямого широкого вещания, устройства беспроводной связи, беспроводные широковещательные системы, персональные цифровые устройства (PDA), переносные или настольные компьютеры, цифровые камеры, цифровые записывающие устройства, устройства видеоигр, консоли видеоигр, сотовые или спутниковые радиотелефоны и т.п. Цифровые видеоустройства реализуют такие методы сжатия видеоизображения, как MPEG-2, MPEG-4 или H.264/MPEG-4, часть 10, усовершенствованное кодирование видео (AVC), чтобы более эффективно передавать и принимать цифровое видео. Методы сжатия видеоизображения выполняют графическое и временное прогнозирование для того, чтобы уменьшать или удалять избыточность, присутствующую в видеосигналах.
При кодировании видео сжатие видеоизображений, в общем, включает в себя пространственное прогнозирование, оценку движения и компенсацию движения. Внутреннее кодирование базируется на пространственном прогнозировании, чтобы уменьшать или удалять пространственную избыточность между видеоблоками в данном видеокадре. Взаимное кодирование базируется на временном прогнозировании, чтобы уменьшать или удалять временную избыточность между видеоблоками последовательных видеокадров в видеопоследовательности. Для взаимного кодирования видеокодер выполняет оценку движения для того, чтобы отслеживать перемещение совпадающих видеоблоков между двумя или более смежными кадрами. Оценка движения формирует векторы движения, которые указывают смещение видеоблоков относительно соответствующих прогнозных видеоблоков в одном или более опорных кадров. Компенсация движения использует вектор движения для того, чтобы формировать прогнозный видеоблок из опорного кадра. После компенсации движения остаточный видеоблок формируется посредством вычитания прогнозного видеоблока из исходного видеоблока.
Видеокодер обычно применяет процессы преобразования, квантования и кодирования переменной длины (VLC) для того, чтобы дополнительно уменьшать скорость передачи битов, ассоциативно связанную с передачей остаточного блока. VLC заключает в себе применение арифметических кодов или кодов переменной длины для того, чтобы дополнительно сжимать остаточные коэффициенты, сформированные посредством операций квантования и преобразования. Одним примером VLC является контекстно-адаптивное кодирование переменной длины (CAVLC). После того как информация кодирована, она может быть отправлена другому устройству. Видеодекодер выполняет обратные операции, чтобы восстанавливать кодированное видео, используя информацию движения и остаточную информацию каждого из блоков.
Определенное кодирование видео использует масштабируемые методы. Например, масштабируемое кодирование видео (SVC) упоминается как кодирование видео, при котором используются базовый слой и один или более масштабируемых улучшенных слоев. Для SVC базовый слой типично переносит видеоданные с базовым уровнем качества. Один или более улучшенных слоев переносят дополнительные видеоданные, чтобы поддерживать более высокие пространственные, временные уровни и/или уровни SNR. Базовый слой может быть передан способом, который является более надежным, чем способы передачи улучшенных слоев. Например, самые надежные части модулированного сигнала могут использоваться для того, чтобы передавать базовый слой, тогда как менее надежные части модулированного сигнала могут использоваться для того, чтобы передавать улучшенные слои.
Раскрытие изобретения
В общем, это раскрытие сущности описывает методы для кодирования структур кодированных блоков (CBP) видеоблоков. CBP упоминаются как структуры коэффициентов в рамках видеоблоков, которые кодируются через информацию, которая преобразуется в структуры. Чтобы кодировать различные CBP, могут использоваться методы кодирования переменной длины (VLC), в которых структуры коэффициентов, которые возникают с большей вероятностью, кодируются с помощью более коротких кодов, тогда как структуры коэффициентов, которые возникают с меньшей вероятностью, кодируются с помощью более длинных кодов. Кодированный видеоблок может включать флаг или другую информацию в свой заголовок, чтобы указывать то, что используются CBP.
Согласно методам этого раскрытия сущности несколько различных VLC-таблиц сохраняются в устройствах кодирования. Во время процессов кодирования и декодирования одна из VLC-таблиц выбирается и используется для того, чтобы выполнять кодирование CBP для данного видеоблока. Таблица может быть выбрана таким образом, который способствует эффективности кодирования. Для этого методы могут использовать явление пространственной избыточности в рамках видеокадра. В частности, методы этого раскрытия сущности могут выполнять выбор таблицы CBP VLC текущего видеоблока на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования. Методы могут быть особенно полезными в кодировании видеоблоков улучшенных слоев при кодировании масштабируемого видео (SVC).
В одном примере это раскрытие сущности предоставляет способ, содержащий выбор VLC-таблицы для текущего видеоблока из множества таблиц на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования, и кодирование одного или более CBP текущего видеоблока с использованием выбранной VLC-таблицы.
В другом примере это раскрытие сущности предоставляет устройство, содержащее VLC-модуль, выполненный с возможностью выбирать VLC-таблицу для текущего видеоблока из множества таблиц на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования, и кодирование одной или более CBP текущего видеоблока с использованием выбранной VLC-таблицы.
В другом примере это раскрытие сущности предоставляет устройство, содержащее средство выбора VLC-таблицы для текущего видеоблока из множества таблиц на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования, и средство кодирования одной или более CBP текущего видеоблока с использованием выбранной VLC-таблицы.
Методы, описанные в данном раскрытии сущности, могут быть реализованы в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или в любой их структуре. Если реализованы в программном обеспечении, программное обеспечение может приводиться в исполнение в одном или более процессоров, таких как микропроцессор, специализированная интегральная схема (ASIC), программируемая пользователем матричная БИС (FPGA) или процессор цифровых сигналов (DSP). Программное обеспечение, которое приводит в исполнение методы, может быть первоначально сохранено в машиночитаемом носителе и загружено и приведено в исполнение в процессоре.
Соответственно это раскрытие сущности также рассматривает машиночитаемый носитель, содержащий инструкции, которые при выполнении в устройстве кодирования видео инструктируют устройству выбирать VLC-таблицу для текущего видеоблока из множества таблиц на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования, и кодируют одну или более CBP текущего видеоблока с использованием выбранной VLC-таблицы. В некоторых случаях машиночитаемый носитель может формировать часть вычислительного программного продукта, который может продаваться производителям и/или использоваться в устройстве кодирования видео. Вычислительный программный продукт может включать в себя машиночитаемый носитель, а в некоторых случаях также может включать в себя упаковку.
В других случаях это раскрытие сущности может быть направлено на схему, такую как интегральная схема, набор микросхем, специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (FPGA), логика или различные структуры вышеозначенного, выполненную с возможностью выполнять один или более методов, описанных в данном документе.
Подробности одного или более вариантов осуществления данного раскрытия сущности изложены на прилагаемых чертежах и в нижеприведенном описании. Другие признаки, цели и преимущества методов, описанных в данном раскрытии сущности, должны стать очевидными из описания и чертежей, а также из формулы изобретения.
Краткое описание чертежей
Фиг.1 является примерной блок-схемой, иллюстрирующей систему кодирования и декодирования видео.
Фиг.2 является концептуальной схемой, иллюстрирующей видеокадры базового слоя и улучшенный слой битового потока масштабируемого видео.
Фиг.3 является блок-схемой, иллюстрирующей пример видеокодера в соответствии с этим раскрытием сущности.
Фиг.4 является блок-схемой, иллюстрирующей пример видеодекодера в соответствии с этим раскрытием сущности.
Фиг.5 является примерной блок-схемой модуля кодирования переменной длины (VLC).
Фиг.6 является примерной блок-схемой модуля VLC-декодирования.
Фиг.7 является блок-схемой последовательности операций способа, иллюстрирующей метод VLC для кодирования структур кодированных блоков (CBP), в соответствии с этим раскрытием сущности.
Осуществление изобретения
Фиг.1 является блок-схемой, иллюстрирующей систему 10 кодирования и декодирования видео. Как показано на фиг.1, система 10 включает в себя исходное устройство 12, которое передает кодированное видео в приемное устройство 16 через канал 15 связи. Исходное устройство 12 может включать в себя видеоисточник 20, видеокодер 22 и модулятор/передающее устройство 24. Приемное устройство 16 может включать в себя приемное устройство/демодулятор 26, видеодекодер 28 и устройство 30 отображения. Система 10 может быть выполнена с возможностью применять методы для кодирования переменной длины (VLC) структур кодированных блоков (CBP) видеоинформации.
CBP упоминаются как структуры коэффициентов в рамках видеоблоков, которые кодируются через информацию, которая преобразуется в структуры. В некоторых форматах CBP содержат четырехбитовые наборы коэффициентов, и несколько CBP кодируются для каждого видеоблока. Тем не менее более длинные или более короткие CBP могут быть заданы. Чтобы кодировать различные CBP, могут использоваться методы VLC, в которых структуры коэффициентов, которые возникают с большей вероятностью, кодируются с помощью более коротких кодов, а структуры коэффициентов, которые возникают с меньшей вероятностью, кодируются с помощью более длинных кодов. Кодированный видеоблок может включать флаг или другую информацию в свой заголовок, чтобы указывать то, что CBP используются в схеме кодирования.
Согласно методам этого раскрытия сущности несколько различных VLC-таблиц сохраняются в соответствующем видеокодере 22 и видеодекодере 28 устройств 12, 16 кодирования. Во время процессов кодирования и декодирования одна из VLC-таблиц выбирается и используется для того, чтобы выполнять кодирование или декодирование CBP для данного видеоблока. Кодирование и декодирование, в общем, могут упоминаться в данном документе как кодирование. Таблица может быть выбрана таким образом, который способствует эффективности кодирования. Например, видеокодер 22 и видеодекодер 28 могут использовать явление пространственной избыточности в рамках видеокадра. В частности, видеокодер 22 и видеодекодер 28 могут выполнять выбор таблицы для CBP VLC текущего видеоблока на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования. Эти методы могут быть особенно полезными в кодировании видеоблоков улучшенных слоев при кодировании масштабируемого видео (SVC).
В примере по фиг.1 канал 15 связи может содержать любую беспроводную и проводную среду связи, такую как радиочастотный (RF) спектр или одна или более физических линий передачи, либо любую комбинацию беспроводной и проводной среды. Канал 15 связи может формировать часть сети с коммутацией пакетов, такой как локальная вычислительная сеть, глобальная вычислительная сеть либо глобальная сеть, такая как Интернет. Канал 15 связи, в общем, представляет любую надлежащую среду связи или набор различных сред связи для передачи видеоданных из исходного устройства 12 в приемное устройство 16.
Исходное устройство 12 формирует видео для передачи в приемное устройство 16. В некоторых случаях, тем не менее, устройства 12, 16 могут работать практически симметричным способом. Например, каждое из устройств 12, 16 может включать в себя компоненты кодирования и декодирования видео. Следовательно, система 10 может поддерживать одностороннюю и двухстороннюю передачу видео между видеоустройствами 12, 16, к примеру, для потоковой передачи видео, широковещательной передачи видео или видеотелефонии.
Видеоисточник 20 исходного устройства 12 может включать в себя устройство видеозахвата, такое как видеокамера, видеоархив, содержащий ранее захваченное видео, или видеопередачу от поставщика видеосодержимого. В качестве дополнительной альтернативы, видеоисточник 20 может формировать основанные на компьютерной графике данные в качестве исходного видео или комбинацию живого видео и сформированного компьютером видео. В некоторых случаях, если видеоисточником 20 является видеокамера, исходное устройство 12 и приемное устройство 16 могут формировать так называемые камерофоны или видеофоны. В каждом случае захваченное, предварительно захваченное или создаваемое компьютером видео может быть кодировано посредством видеокодера 22 для передачи из устройства видеоисточника 12 в видеодекодер 28 устройства 16 приема видео через модулятор/передающее устройство 22, канал 15 связи и приемное устройство/демодулятор 26. Процессы кодирования и декодирования видео могут реализовать методы VLC для CBP, как описано в данном документе, чтобы усовершенствовать процессы. Устройство 30 отображения отображает декодированные видеоданные пользователю и может содержать любое из множества устройств отображения, таких как электронно-лучевая трубка, жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или другой тип устройства отображения.
Видеокодер 22 и видеодекодер 28 могут быть выполнены с возможностью поддерживать масштабируемое кодирование видео (SVC) для пространственного масштабирования, временного масштабирования и масштабирования по отношению "сигнал-шум" (SNR). В некоторых аспектах видеокодер 22 и видеодекодер 28 могут быть выполнены с возможностью поддерживать кодирование с масштабированием SNR с высокой степенью детализации (FGS) для SVC. Кодер 22 и декодер 28 могут поддерживать различные степени масштабирования посредством поддержки кодирования, передачи и декодирования базового слоя и одного или более масштабируемых улучшенных слоев. Для масштабируемого кодирования видео базовый слой переносит видеоданные с базовым уровнем качества. Один или более улучшенных слоев переносят дополнительные данные, чтобы поддерживать более высокие пространственные, временные уровни и/или уровни SNR. Базовый слой может быть передан способом, который является более надежным, чем передача улучшенных слоев. Например, самые надежные части модулированного сигнала могут использоваться для того, чтобы передавать базовый слой, тогда как менее надежные части модулированного сигнала могут использоваться для того, чтобы передавать улучшенные слои.
Чтобы поддерживать SVC, видеокодер 22 может включать в себя кодер 32 базового слоя и один или более кодеров 34 улучшенного слоя, чтобы выполнять кодирование базового слоя и одного или более улучшенных слоев, соответственно. Методы этого раскрытия сущности, которые заключают в себе выбор таблицы для CBP VLC текущего видеоблока на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования, могут быть особенно полезными при кодировании видеоблоков улучшенных слоев в SVC.
Видеодекодер 28 может содержать комбинированный базовый/улучшенный декодер, который декодирует видеоблоки, ассоциативно связанные как с базовыми, так и с улучшенными слоями, и комбинирует декодированное видео, чтобы восстанавливать кадры видеопоследовательности. Устройство 30 отображения принимает декодированную видеопоследовательность и представляет видеопоследовательность пользователю.
Видеокодер 22 и видеодекодер 28 могут работать согласно такому стандарту видеосжатия, как MPEG-2, MPEG-4, ITU-T H.263 или ITU-T H.264/MPEG-4, часть 10, усовершенствованное кодирование видео (AVC). Хотя не показано на фиг.1, в некоторых аспектах видеокодер 22 и видеодекодер 28 могут быть интегрированы с аудиокодером и декодером и могут включать в себя соответствующие модули MUX-DEMUX либо другие аппаратные средства и программное обеспечение, чтобы обрабатывать кодирование аудио и видео в общем потоке данных или в отдельных потоках данных. Если применимо, модули MUX-DEMUX могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).
Стандарт H.264/MPEG-4 (AVC) сформулирован посредством Экспертной группы в области кодирования видео (VCEG) ITU-T совместно с Экспертной группой по киноизображению (MPEG) ISO/IEC как продукт коллективного партнерского проекта, известного как Объединенная группа по видеостандартам (JVT). В некоторых аспектах методы, описанные в этом раскрытии сущности, могут быть применены к устройствам, которые, в общем, соответствуют стандарту H.264. Стандарт H.264 описан в документе ITU-T Recommendation H.264 "Advanced video coding for generic audiovisual services" от Исследовательской группы ITU-T и датирован мартом 2005 года, который может упоминаться в данном документе как стандарт H.264 или спецификация H.264, либо стандарт или спецификация H.264/AVC.
Объединенная группа по видеостандартам (JVT) продолжает работать над дополнением по масштабируемому кодированию видео (SVC) в H.264/MPEG-4 AVC. Спецификация развивающегося дополнения SVC приводится в форме совместного проекта (JD). Объединенная модель масштабируемого видео (JSVM), созданная посредством JVT, реализует инструментальные средства для использования в масштабируемом видео, которые могут быть использованы в системе 10 для различных задач кодирования, описанных в этом раскрытии сущности. Подробную информацию, касающуюся кодирования с масштабированием SNR с высокой степенью детализации (FGS), можно найти в документах совместного проекта, в частности в Joint Draft 6 (SVC JD6), Thomas Wiegand, Gary Sullivan, Julien Reichel, Heiko Schwarz и Mathias Wien, "Joint Draft 6: Scalable Video Coding", JVT-S 201, апрель 2006 года, Женева, и в Joint Draft 9 (SVC JD9), Thomas Wiegand, Gary Sullivan, Julien Reichel, Heiko Schwarz и Mathias Wien, "Joint Draft 9 of SVC Amendment", JVT-V 201, январь 2007 года, Marrakech, Марокко. Кроме того, дополнительные сведения по одной реализации методов, описанных в данном документе, можно найти в документе с предложениями JVT-V092, отправленном в JVT ISO/IEC MPEG и ITU-T VCEG авторами Marta Karczewicz, Hyukjune Chung и Phoom Sagetong 13-19 января 2007 года на 22 конференцию в Marrakech, Morocco.
В некоторых аспектах для широковещательной передачи видео методы, описанные в данном раскрытии сущности, могут быть применены к усовершенствованному кодированию видео H.264 для доставки видеоуслуг реального времени в системах наземной многоадресной передачи мобильного мультимедиа (TM3), использующих спецификацию радиоинтерфейса только прямой линии связи (FLO), "Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast", которая должна быть опубликована как Технический стандарт TIA-1099 ("FLO Specification"). Другими словами, канал 15 связи может содержать беспроводной информационный канал, используемый для того, чтобы выполнять широковещательную передачу беспроводной видеоинформации согласно спецификации FLO, и т.п. Спецификация FLO включает в себя примеры, задающие синтаксис и семантику потока битов, а также процессы декодирования, подходящие для радиоинтерфейса FLO. Альтернативно, видео может передаваться в широковещательном режиме согласно другим стандартам, таким как DVB-H (цифровая широковещательная передача видео для карманных устройств), ISDB-T (комплексные службы цифровой наземной широковещательной передачи) или DMB (цифровая широковещательная передача мультимедиа). Следовательно, исходным устройством 12 может быть мобильный беспроводной терминал, сервер потоковой передачи видео и сервер широковещательной передачи видео. Тем не менее методы, описанные в данном документе, не ограничены каким-либо конкретным типом системы широковещательной передачи, многоадресной передачи или передачи "точка-точка". В случае широковещательной передачи исходное устройство 12 может передавать в широковещательном режиме несколько каналов видеоданных в несколько приемных устройств, каждое из которых может быть аналогичным приемному устройству 16 по фиг.1. В качестве примера, приемное устройство 16 может содержать устройство беспроводной связи, такое как мобильный телефон, обычно упоминаемый как сотовый радиотелефон.
Видеокодер 22 и видеодекодер 28 могут быть реализованы как один или более микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретная логика, программное обеспечение, аппаратные средства, микропрограммное обеспечение или любые комбинации вышеозначенного. Каждый из видеокодера 22 и видеодекодера 28 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть комбинированного кодера/декодера (кодека) в соответствующем мобильном устройстве, абонентском устройстве, широковещательном устройстве, сервере и т.п. Помимо этого исходное устройство 12 и приемное устройство 16 могут включать в себя соответствующие компоненты модуляции, демодуляции, частотного преобразования, фильтрации и усилителя для передачи и приема кодированного видео, в зависимости от необходимости, включая радиочастотные (RF) беспроводные компоненты и антенны, достаточные для того, чтобы поддерживать беспроводную связь. Для простоты иллюстрации, тем не менее, такие компоненты обобщены как модулятор/передающее устройство 24 исходного устройства 12 и приемное устройство/демодулятор 26 приемного устройства 16 на фиг.1.
Видеопоследовательность включает в себя серии видеокадров. Видеокодер 22 оперирует с блоками пикселов в рамках отдельных видеокадров, чтобы кодировать видеоданные. Видеоблоки могут иметь фиксированный или изменяющийся размер и могут отличаться по размеру согласно заданному стандарту кодирования. Каждый видеокадр включает в себя серии последовательных макроблоков. Каждая серия последовательных макроблоков может включать в себя серии макроблоков, которые могут быть скомпонованы в субблоки. В качестве примера стандарт ITU-T H.264 поддерживает внутреннее прогнозирование для различных размеров блоков, таких как 16 на 16, 8 на 8, 4 на 4 для компонентов яркости и 8×8 для компонентов цветности, а также взаимное прогнозирование для различных размеров блоков, таких как 16 на 16, 16 на 8, 8 на 16, 8 на 8, 8 на 4, 4 на 8 и 4 на 4 для компонентов яркости и соответствующих масштабированных размеров для компонентов цветности.
Меньшие видеоблоки могут предоставлять лучшее разрешение и могут быть использованы для позиций видеокадра, которые включают в себя более высокий уровень детальности. В общем, макроблоки (MB) и различные субблоки могут считаться видеоблоками. Помимо этого серия последовательных макроблоков может считаться серией видеоблоков, таких как MB и/или субблоки. Каждая серия последовательных макроблоков может быть независимо декодируемой единицей. После прогнозирования преобразование может быть выполнено для остаточного блока 8×8 или остаточного блока 4×4 и дополнительное преобразование может быть применено к DC-коэффициентам блоков 4×4 для компонентов цветности или компонентов яркости, если используется режим прогнозирования intra_16×16.
Следуя внутреннему и взаимному прогнозирующему кодированию, дополнительные методы кодирования могут быть применены к передаваемому потоку битов. Эти дополнительные методы кодирования могут включать в себя методы преобразования (такие как целочисленное преобразование 4×4 или 8×8, используемое в H.264/AVC, или дискретное косинусное преобразование DCT) и кодирование переменной длины. В частности, раскрытие сущности предоставляет методы для кодирования CBP видеоблоков, которые могут быть выполнены в кодере 22 с тем, чтобы кодировать данные, и в декодере 26 с тем, чтобы декодировать данные. К тому же, CBP упоминаются как структуры коэффициентов в рамках видеоблоков, к примеру структуры коэффициентов дискретного косинусного преобразования или коэффициентов целочисленного преобразования. Чтобы кодировать различные CBP, могут использоваться методы VLC, в которых структуры коэффициентов, которые возникают с большей вероятностью, кодируются с помощью более коротких кодов, а структуры коэффициентов, которые возникают с меньшей вероятностью, кодируются с помощью более длинных кодов. Кодированный видеоблок может включать флаг или другую информацию в свой заголовок, чтобы указывать то, что CBP используются в схеме кодирования.
Согласно методам этого раскрытия сущности несколько различных VLC-таблиц сохраняются в исходном устройстве 12 и приемном устройстве 16. Во время процессов кодирования и декодирования VLC-таблицы выбираются так, чтобы выполнять кодирование CBP для данного видеоблока. Таблица может быть выбрана таким образом, который способствует эффективности кодирования за счет использования явления пространственной избыточности в рамках видеокадра. В частности, согласно методам этого раскрытия сущности видеокодер 22 и видеодекодер 28 могут выполнять выбор таблицы для CBP VLC текущего видеоблока на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования (к примеру, ненулевые DCT-коэффициенты). Соседние блоки могут содержать блоки, которые ранее кодированы, и число соседних блоков, которые включают в себя ненулевые коэффициенты преобразования, может предоставлять хороший показатель выбора таблицы для кодирования CBP текущего видеоблока вследствие вероятности пространственного подобия между текущим видеоблоком и его соседями.
В одном примере кодер 22 и декодер 28 может выполнять такие взаимно-обратные способы, что каждый вычисляет значение табличного индекса для текущего видеоблока на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования, и выбирает VLC-таблицу из множества таблиц на основе табличного индекса. Видеокодер 22 кодирует CBP текущего видеоблока с использованием выбранной VLC-таблицы, тогда как видеодекодер 28 декодирует CBP текущего видеоблока с использованием выбранной VLC-таблицы. Поскольку кодер 22 и декодер 28 основывают выбор таблицы на одинаковых критериях, одна таблица, выбранная для данного видеоблока в процессе кодирования, должна быть идентифицирована и выбрана в процессе декодирования, гарантируя то, что процессы кодирования, примененные посредством кодера и декодера, остаются синхронными.
Фиг.2 является схемой, иллюстрирующей видеокадры в рамках базового слоя 17 и улучшенный слой 18 битового потока масштабируемого видео. Как отмечено выше, методы этого раскрытия сущности могут быть особенно полезными при кодировании видеоблоков улучшенных слоев. Базовый слой 17 может содержать поток битов, содержащий кодированные видеоданные, которые представляют первый уровень пространственной масштабируемости, временной масштабируемости или SNR-масштабируемости. Улучшенный слой 18 может содержать поток битов, содержащий кодированные видеоданные, которые представляют второй уровень пространственной-временной-SNR-масштабируемости. В некоторых случаях поток битов улучшенного слоя декодируется только вместе с базовым слоем и не декодируется независимо. Улучшенный слой 18 содержит ссылки на декодированные видеоданные в базовом слое 17. Такие ссылки могут использоваться или в области преобразования, или в пиксельной области для того, чтобы формировать конечные декодированные видеоданные.
Базовый слой 17 и улучшенный слой 18 могут содержать внутренние (I), взаимные (P) и двунаправленные (B) кадры. P-кадры в улучшенном слое 18 базируются на ссылках на P-кадры в базовом слое 17. Посредством декодирования кадров в улучшенном слое 18 и базовом слое 17 видеодекодер может повышать качество декодированного видео. Например, базовый слой 17 может включать в себя видео, кодированное с минимальной частотой кадров в 15 кадров в секунду, тогда как улучшенный слой 18 может включать в себя видео, кодированное с более высокой частотой кадров в 30 кадров в секунду. Чтобы поддерживать кодирование с различными уровнями качества, базовый слой 17 и улучшенный слой 18 могут быть кодированы с более высоким параметром квантования (QP) и более низким QP соответственно. Кроме того, базовый слой 17 может передаваться способом, который является более надежным, чем передача улучшенного слоя 18. В качестве примера, самые надежные части модулированного сигнала могут использоваться для того, чтобы передавать базовый слой 17, тогда как менее надежные части модулированного сигнала могут использоваться для того, чтобы передавать улучшенный слой 18. Иллюстрация по фиг.2 является просто примерной, поскольку базовые и улучшенные могут быть заданы множеством различных способов.
Фиг.3 является блок-схемой, иллюстрирующей пример видеокодера 50, который включает в себя VLC-модуль 46, чтобы кодировать данные, в соответствии с этим раскрытием сущности. Видеокодер 50 по фиг.3 может соответствовать кодеру 34 улучшенного слоя исходного устройства 12 на фиг.1. Другими словами, компоненты кодирования базового слоя не проиллюстрированы на фиг.3 для простоты. Следовательно, видеокодер 50 может считаться кодером улучшенного слоя. В некоторых случаях, проиллюстрированные компоненты видеокодера 50 также могут быть реализованы в комбинации с модулями или блоками кодирования базового слоя, к примеру в схеме пирамидального кодера, которая поддерживает масштабируемое кодирование видео базового слоя и улучшенного слоя.
Видеокодер 50 может выполнять внутреннее и взаимное кодирование блоков в видеокадрах. Внутреннее кодирование базируется на пространственном прогнозировании, чтобы уменьшать или удалять пространственную избыточность видео в данном видеокадре. Взаимное кодирование основывается на временном прогнозировании, чтобы уменьшать или удалять временную избыточность видео в смежных кадрах видеопоследовательности. Для взаимного кодирования видеокодер 5 выполняет оценку движения, чтобы отслеживать перемещение совпадающих видеоблоков между двумя или более смежными кадрами. Для внутреннего кодирования пространственное прогнозирование используется для того, чтобы идентифицировать другие блоки в рамках кадра, которые близко соответствуют кодируемому блоку. Компоненты внутреннего кодирования, пространственного прогнозирования не проиллюстрированы на фиг.3.
Как показано на фиг.3, видеокодер 50 принимает текущий видеоблок 31 (к примеру, видеоблок улучшенного слоя) в рамках видеокадра, который должен быть кодирован. В примере по фиг.3 видеокодер 50 включает в себя модуль 33 оценки движения, модуль 35 хранения опорных кадров, модуль 37 компенсации движения, модуль 39 блочного преобразования, модуль 41 квантования, модуль 42 обратного квантования, модуль 44 обратного преобразования и VLC-модуль 46. Деблокирующий фильтр (не показанный) также может быть включен для того, чтобы фильтровать границы блоков, чтобы удалять артефакты блочности. Видеокодер 50 также включает в себя сумматор 48 и сумматор 51. Фиг.3 иллюстрирует компоненты временного прогнозирования видеокодера 50 для взаимного кодирования видеоблоков. Хотя не показано на фиг.3 для упрощения иллюстрации, видеокодер 50 также может включать в себя компоненты пространственного прогнозирования для внутреннего кодирования некоторых видеоблоков. Компоненты пространственного прогнозирования, тем не менее, обычно используются только для кодирования базового слоя.
Модуль 33 оценки движения сравнивает видеоблок 31 с блоками в одном или более смежных кадров, чтобы сформировать один или более векторов движения. Смежный кадр или кадры могут извлекаться из модуля 35 хранения опорных кадров, который может включать в себя любой тип запоминающего устройства или устройства хранения данных, чтобы сохранять видеоблоки, восстановленные из ранее кодированных блоков. Оценка движения может выполняться для блоков переменного размера, к примеру, 16×16,16×8, 8×16, 8×8 или меньших размеров блоков. Модуль 33 оценки движения идентифицирует блок в смежном кадре, который наиболее близко соответствует текущему видеоблоку 31, к примеру, на основе модели искажения в зависимости от скорости передачи, и определяет смещение между блоками. На этой основе модуль 33 оценки движения формирует вектор движения (MV) (или несколько MV в случае двунаправленного прогнозирования), который указывает величину и траекторию смещения между текущим видеоблоком 31 и прогнозирующим блоком, используемым для того, чтобы кодировать текущий видеоблок 31.
Векторы движения могут иметь точность в пол- или четверть-пиксела или даже большую точность, позволяя видеокодеру 50 отслеживать движение с более высокой точностью, чем целочисленные позиции пикселов, и получать более оптимальный блок прогнозирования. Когда векторы движения с дробными значениями пиксела используются, операции интерполяции выполняются в модуле 37 компенсации движения. Модуль 33 оценки движения может идентифицировать наиболее оптимальный вектор движения для видеоблока, используя модель искажения в зависимости от скорости передачи. Используя результирующий вектор движения, модуль 37 компенсации движения формирует прогнозный видеоблок посредством компенсации движения.
Видеокодер 50 формирует остаточный видеоблок посредством вычитания прогнозного видеоблока, сформированного посредством модуля 37 компенсации движении, из оригинального текущего видеоблока 31 в сумматоре 48. Модуль 39 блочного преобразования применяет преобразование, такое дискретное косинусное преобразование (DCT), к остаточному блоку, формируя остаточные преобразованные блочные коэффициенты. Модуль 41 квантования квантует остаточные преобразованные блочные коэффициенты, чтобы дополнительно уменьшать скорость передачи битов. Сумматор 49A принимает информацию о коэффициентах базового слоя, к примеру от кодера базового слоя (не показан), и размещается между модулем 39 блочного преобразования и модулем 41 квантования, чтобы предоставлять эту информацию о коэффициентах базового слоя в кодирование улучшенного слоя. В частности, сумматор 49A вычитает информацию о коэффициентах базового слоя из вывода модуля 39 блочного преобразования. Аналогичным образом, сумматор 49B, который размещается между модулем 44 обратного преобразования и модулем 42 обратного квантования, также принимает информацию о коэффициентах базового слоя от кодера базового слоя (не показан). Сумматор 49B прибавляет информацию о коэффициентах базового слоя обратно к выводу модуля 42 обратного квантования.
Кодирование с пространственным прогнозированием работает во многом аналогично кодированию с временным прогнозированием. Тем не менее, тогда как кодирование с временным прогнозированием базируется на блоках смежных кадров (или других кодированных единицах), чтобы выполнять кодирование, пространственное прогнозирование базируется на блоках в общем кадре (другой кодированной единице), чтобы выполнять кодирование. Кодирование с пространственным прогнозированием кодирует внутренние блоки, тогда как кодирование с вр