Методы кодирования переменной длины для структур кодированных блоков

Изобретение относится к кодированию цифрового видео, а более конкретно к кодированию переменной длины (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 обратного квантования.

Кодирование с пространственным прогнозированием работает во многом аналогично кодированию с временным прогнозированием. Тем не менее, тогда как кодирование с временным прогнозированием базируется на блоках смежных кадров (или других кодированных единицах), чтобы выполнять кодирование, пространственное прогнозирование базируется на блоках в общем кадре (другой кодированной единице), чтобы выполнять кодирование. Кодирование с пространственным прогнозированием кодирует внутренние блоки, тогда как кодирование с временным прогнозированием кодирует взаимные блоки. К тому же компоненты пространственного прогнозирования не показаны на фиг.3 для простоты.

Модуль 46 VLC-кодирования кодирует квантованные коэффициенты преобразования согласно методологии кодирования переменной длины, чтобы еще дополнительно уменьшать скорость передачи битов передаваемой информации. В частности, модуль 46 VLC-кодирования применяет методы этого раскрытия сущности, чтобы кодировать CBP. Для этого модуль 46 VLC-кодирования вычисляет значение табличного индекса для текущего видеоблока на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования, и выбирает VLC-таблицу из множества таблиц на основе табличного индекса. Модуль 46 VLC-кодирования затем кодирует CBP текущего видеоблока с использованием выбранной VLC-таблицы. Выбранная VLC-таблица может способствовать эффективности кодирования для CBP текущего видеоблока. Использование соседних видеоблоков (в особенности тех, которые включают в себя ненулевые коэффициенты преобразования) для того, чтобы упрощать выбор таблицы, предоставляет удобный механизм для осуществления выбора таблицы вследствие высокой вероятности пространственного подобия между соседями. Соседние видеоблоки, например, могут быть блоками, которые ранее кодированы до кодирования текущего видеоблока.

После кодирования переменной длины, кодированное видео может быть передано в другое устройство. Помимо этого модуль 42 обратного квантования и модуль 44 обратного преобразования применяют обратное квантование и обратное преобразование, соответственно, для того чтобы восстанавливать остаточный блок. Сумматор 51 прибавляет восстановленный остаточный блок к прогнозному блоку с компенсацией движения, сформированному посредством модуля 37 компенсации движения, чтобы сформировать восстановленный видеоблок для хранения в модуле 35 хранения опорных кадров. Восстановленный видеоблок используется посредством модуля 33 оценки движения и модуля 37 компенсации движения для того, чтобы кодировать блок в последующем видеокадре.

Фиг.4 является блок-схемой, иллюстрирующей пример видеодекодера 60, который может соответствовать видеодекодеру 28 по фиг.1, или декодеру другого устройства. Видеодекодер 60 включает в себя модуль 52A VLC-декодирования, который выполняет взаимно-обратную функцию модуля 46 VLC-кодирования по фиг.3 для видеоблоков улучшенного слоя. Другими словами, аналогично модулю 46 VLC-кодирования, модуль 52A VLC-декодирования вычисляет значение табличного индекса для текущего видеоблока на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования, и выбирает VLC-таблицу из множества таблиц на основе табличного индекса. Модуль 52A VLC-декодирования затем декодирует CBP текущего видеоблока с использованием выбранной VLC-таблицы, которая должна быть такой же, как таблица, выбранная посредством модуля 46 VLC-кодирования во время процесса кодирования.

Видеодекодер 60 также может включать в себя другой VLC-модуль 52B для информации о базовом слое. Модуль 55 внутреннего прогнозирования необязательно может выполнять любое пространственное декодирование видеоблоков базового слоя, и вывод модуля 55 внутреннего прогнозирования может быть предоставлен в сумматор 53. Путь улучшенного слоя может включать в себя модуль 58A обратного квантования, а путь базового слоя может включать в себя модуль 56B обратного квантования. Информация в путях базового слоя и улучшенного слоя может быть комбинирована посредством сумматора 57.

Видеодекодер 60 может выполнять внутреннее и взаимное декодирование блоков в видеокадрах. В примере по фиг.4 видеодекодер 60 включает в себя VLC-модули 52A и 52B (упомянутые выше), модуль 54 компенсации движения, модули 56A и 56B обратного квантования, модуль 58 обратного преобразования и модуль 62 хранения опорных кадров. Видеодекодер 60 также включает в себя сумматор 64. Необязательно, видеодекодер 60 также может включать в себя деблокирующий фильтр (не показан), который фильтрует вывод сумматора 64. К тому же, сумматор 57 комбинирует информацию в путях базового слоя и улучшенного слоя, и модуль 55 внутреннего прогнозирования и сумматор 53 упрощают любое пространственное декодирование видеоблоков базового слоя.

К тому же, для видеоблоков улучшенного слоя, модуль 52A VLC-декодирования принимает поток битов кодированного видео и применяет метод VLC к CBP, как описано в этом раскрытии сущности. Это позволяет формировать квантованные остаточные коэффициенты, режим кодирования по макроблокам и субблокам и информацию о движении, которая может включать в себя векторы движения и блочные сегменты. В частности, модуль 52A VLC-декодирования использует метод адаптивного выбора VLC-таблицы, которая основана на числе соседних видеоблоков, которые имеют ненулевые коэффициенты преобразования. Таким образом, явление пространственной избыточности может использоваться для того, чтобы выбирать таблицы для VLC CBP.

После декодирования, выполненного посредством VLC-модуля 52A, модуль 54 компенсации движения принимает векторы движения и один или более восстановленных опорных кадров от модуля 62 хранения опорных кадров. Модуль обратного квантования 56A обратно квантует, т.е. деквантует, квантованные блочные коэффициенты. Следуя комбинации информации об улучшенном и базовом слое посредством сумматора 57, модуль 58 обратного преобразования применяет обратное преобразование, к примеру обратное DCT, к коэффициентам, чтобы формировать остаточные блоки. Модуль 54 компенсации движения формирует блоки с компенсацией движения, которые суммируются посредством сумматора 64 с остаточными блоками, чтобы формировать декодированные блоки. Если требуется, деблокирующий фильтр также может быть применен для того, чтобы фильтровать декодированные блоки, чтобы удалять артефакты блочности. Фильтрованные блоки затем помещаются в модуль 62 хранения опорных кадров, который предоставляет опорные блоки компенсации движения и также формирует декодированное видео в ведущее устройство отображения (такое как устройство 30 по фиг.1).

Фиг.5 является блок-схемой, иллюстрирующей примерный модуль 70 VLC-кодирования, который может соответствовать модулю 46 VLC-кодирования по фиг.3. Модуль 70 VLC-кодирования включает в себя модуль 72 кодирования CBP VLC и модуль 74 вычисления табличных индексов. CBP-таблицы 76, в общем, упоминаются как таблицы, которые могут быть сохранены в любом местоположении, к примеру, локально или вне микросхемы в отдельной ячейке памяти. CBP-таблицы 76 могут обновляться, периодически, по мере необходимости.

CBP упоминаются как структуры коэффициентов в рамках видеоблоков, которые кодируются согласно схеме. Некоторые структуры могут возникать с гораздо большей вероятностью, чем другие структуры. На основе этого фактора VLC может использоваться для того, чтобы сжимать данные посредством распознавания структур коэффициентов и кодирования таких структур как CBP. Информация в заголовке блока может идентифицировать тот факт, что CBP используются в схеме кодирования.

Явление пространственной избыточности, в общем, прогнозирует, что видеоблок в непосредственной пространственной близости имеет высокий уровень корреляции. На основе этого явления данное раскрытие сущности предлагает использование смежных видеоблоков для того, чтобы упрощать выбор таблицы для эффективного VLC CBP. Это позволяет повышать эффективность VLC CBP относительно традиционных методов, которые используют фиксированное преобразование для всех CBP или используют таблицы на основе типа блока (к примеру, внутрикадровый блок в сравнении с межкадровым блоком).

В модуле 70 VLC-кодирования сохраняется множество CBP-таблиц 76. Эти таблицы, тем не менее, альтернативно могут быть сохранены в отдельном (к примеру, вне микросхемы) местоположении. Модуль 74 вычисления табличных индексов вычисляет значение табличного индекса для текущего видеоблока на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования. Модуль 72 кодирования CBP VLC затем выбирает VLC-таблицу из множества таблиц 76 на основе табличного индекса. После выбора надлежащей таблицы модуль 72 кодирования CBP VLC кодирует CBP текущего видеоблока с использованием выбранной VLC-таблицы.

В качестве примера, текущий видеоблок может содержать макроблок 16 на 16, и соседние видеоблоки могут содержать блоки 8 на 8 яркости, ассоциативно связанные с первым соседним макроблоком слева от текущего видеоблока и вторым соседним макроблоком выше текущего видеоблока. Блоки цветности (к примеру, субдискретизированные блоки 8 на 8 цветности, ассоциативно связанные с макроблоками 16 на 16) также могут использоваться как соседние блоки в вычислениях, описанных в данном документе, хотя использование только соседних блоков яркости в целях выбора таблицы может быть достаточным. Размеры блока и местоположения соседних блоков, описанные в данном документе, являются просто примерными, поскольку методы этого раскрытия сущности могут быть реализованы с любым широким спектром размеров видеоблока и форматов кода.

В качестве дополнительного примера, модуль 74 вычисления табличных индексов может вычислять табличный индекс следующим образом:

N=(N(1)+N(u))/2+1, когда информация ненулевых коэффициентов преобразования существует как для первого соседнего макроблока, так и для второго соседнего макроблока;

N=N(1)+1, когда информация ненулевых коэффициентов преобразования существует для первого соседнего макроблока, но не существует для второго соседнего макроблока; и

N=N(u)+1, когда информация ненулевых коэффициентов преобразования существует для второго соседнего макроблока, но не существует для первого соседнего макроблока. В этом примере N представляет табличный индекс, N(1) представляет число соседних блоков яркости слева от текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования, а N(u) представляет число соседних блоков яркости выше текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования.

Множеством CBP-таблиц могут быть таблицы, формируемые из следующего:

Таблица 1
Кодовое число Табличный индекс 0 Табличный индекс 1 Табличный индекс 2 Табличный индекс 3 Табличный индекс 4 Табличный индекс 5
0 0 0 0 0 15 47
1 15 8 1 15 47 15
2 47 4 4 1 0 31
3 31 2 2 4 31 7
4 16 1 8 5 11 11
5 12 47 10 10 7 13
6 4 31 12 2 3 14
7 1 10 15 12 5 0
8 8 15 5 3 14 5
9 13 12 3 47 1 3
10 5 16 14 31 13 10
11 11 5 11 8 10 1
12 3 3 13 11 12 12
13 2 32 7 7 2 23
14 10 14 16 13 4 39
15 7 11 31 14 8 29
16 23 7 47 16 6 27
17 21 13 6 6 9 45
18 28 9 9 9 29 30
19 18 6 32 29 27 43
20 14 27 30 30 23 2
21 29 30 26 45 30 4
22 30 23 28 46 43 46
23 26 21 46 27 16 8
24 17 29 44 43 45 6
25 27 46 21 26 39 21
26 20 28 42 21 46 9
27 19 26 29 28 21 16
28 24 39 27 44 37 19
29 6 45 45 23 19 37
30 44 24 23 32 26 26
31 22 19 24 39 35 35
32 46 42 43 42 28 42
33 45 17 40 19 42 28
34 9 43 20 37 44 44
35 39 20 36 35 20 22
36 37 40 37 20 17 25
37 25 37 18 18 25 17
38 35 18 17 24 22 18
39 43 44 19 17 18 20
40 40 25 34 34 32 24
41 41 36 33 36 24 33
42 38 22 39 33 33 38
43 42 34 35 25 41 32
44 36 35 25 22 38 34
45 32 33 22 40 36 40
46 33 41 38 38 34 41
47 34 38 41 41 40 36

Каждая из множества CBP-таблиц 76 может содержать столбец кодовых чисел таблицы 1, комбинированный с одним из столбцов табличных индексов таблицы 1. Множество таблиц может быть сохранено по отдельности способом, аналогичным таблице 1, или другим способом. В любом случае модуль 72 кодирования CBP VLC может кодировать CBP посредством выбора кодового числа из столбца кодовых чисел для значения CBP, перечисленного в столбце таблицы 1, который соответствует вычисленному табличному индексу. Обновления CBP-таблиц 76 могут осуществляться по мере необходимости или желательности, и значения в таблицах подвергаются широкому спектру изменений. Таблица 1 выше является просто примерной таблицей из множества таблиц, которые могут использоваться.

К тому же, методы этого раскрытия сущности могут быть особенно полезными при кодировании одного или более улучшенных слоев в контексте масштабируемого кодирования видео (SVC). В этом случае CBP используются при кодировании улучшенных слоев, и выбор таблицы для VLC таких CBP в улучшенных слоях выполняется согласно методам, описанным в данном документе. Методы кодирования выполняются в кодере и декодере. Традиционно, используются фиксированные отображения между CBP и кодовыми числами, которые могут быть не в состоянии адаптироваться к варьирующимся характеристикам сцены, тем самым приводя к неэффективности. Описанные методы также могут быть более эффективными, чем методы, которые используют различные таблицы для внутренне и взаимно кодированных блоков. В большинстве случаев сохраняется более двух таблиц, и выполняется выбор таблицы между тремя или более таблицами. В примере таблицы 1 пять различных VLC-таблиц задаются посредством столбца кодовых чисел и пяти различных столбцов табличных индексов.

Фиг.6 является блок-схемой, иллюстрирующей примерный модуль 80 VLC-декодирования, который может соответствовать модулю VLC-кодирования 52 по фиг.4. Модуль 80 VLC-декодирования практически аналогичен модулю 70 VLC-кодирования, но выполняет взаимно-обратные функции декодирования относительно кодирования, которое выполняется посредством модуля 70 VLC-кодирования. Таким образом, тогда как модуль 70 VLC-кодирования принимает квантованные остаточные коэффициенты и формирует поток битов, модуль 80 VLC-декодирования принимает поток битов и формирует квантованные остаточные коэффициенты. Модуль VLC-декодирования включает в себя модуль 82 декодирования CBP VLC и модуль 84 вычисления табличных индексов. CBP-таблицы 86 содержат таблицы, которые могут быть сохранены в любом местоположении, к примеру, локально или вне микросхемы в отдельной ячейке памяти. CBP-таблицы 104 могут обновляться, периодически, по мере необходимости.

Аналогично модулю 70 VLC-кодирования, модуль 80 VLC-декодирования имеет доступ к множеству CBP-таблиц 86. К тому же, эти таблицы могут быть сохранены локально или альтернативно могут быть сохранены в отдельном (к примеру, вне микросхемы) местоположении. Модуль 84 вычисления табличных индексов вычисляет значение табличного индекса для текущего видеоблока на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования. Поскольку блочное кодирование видео типично выполняется последовательно слева направо и сверху вниз, соседние видеоблоки могут содержать блоки, находящиеся слева и выше текущего видеоблока. Модуль 82 декодирования CBP VLC выбирает VLC-таблицу из множества таблиц 86 на основе табличного индекса. После выбора надлежащей таблицы модуль 82 декодирования CBP VLC декодирует CBP текущего видеоблока с использованием выбранной VLC-таблицы, чтобы формировать надлежащие коэффициенты.

Аналогично процессу кодирования, в процессе декодирования, текущий видеоблок может содержать макроблок 16 на 16, и соседние видеоблоки могут содержать блоки 8 на 8 яркости, ассоциативно связанные с первым соседним макроблоком слева от текущего видеоблока и вторым соседним макроблоком выше текущего видеоблока. Кроме того, блоки цветности (к примеру, субдискретизированные блоки 8 на 8 цветности, ассоциативно связанные с макроблоками 16 на 16) также могут использоваться, хотя использование только соседних блоков яркости в целях выбора таблицы может быть достаточным. К тому же, размеры блока, перечисленные в данном документе, являются просто примерными, поскольку методы этого раскрытия сущности могут быть реализованы с любыми из широкого спектра размеров или форматов видеоблоков.

Модуль 84 вычисления табличных индексов может вычислять табличный индекс следующим образом:

N=(N(1)+N(u))/2+1, когда информация ненулевых коэффициентов преобразования существует как для первого соседнего макроблока, так и для второго соседнего макроблока;

N=N(1)+1, когда информация ненулевых коэффициентов преобразования существует для первого соседнего макроблока, но не существует для второго соседнего макроблока; и

N=N(u)+1, когда информация ненулевых коэффициентов преобразования существует для второго соседнего макроблока, но не существует для первого соседнего макроблока. В этом примере N представляет табличный индекс, N(1) представляет число соседних блоков яркости слева от текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования, а N(u) представляет число соседних блоков яркости выше текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования.

Как в примере кодирования, каждая из множества CBP-таблиц 86, используемых для декодирования, может содержать столбец кодовых чисел таблицы 1, комбинированный с одним из столбцов табличных индексов таблицы 1. Множество таблиц может быть сохранено по отдельности способом, аналогичным таблице 1, или другим способом. В любом случае модуль 82 декодирования CBP VLC может декодировать CBP посредством выбора кодового числа из столбца кодовых чисел для значения CBP, перечисленного в столбце таблицы 1, который соответствует вычисленному табличному индексу. Обновления CBP-таблиц 86 могут осуществляться по мере необходимости, и значения в рамках таблиц подвергаются широкому спектру изменений. Конечно, обновления должны передаваться как в устройство кодирования, так и в устройство декодирования. К тому же, таблица 1 является просто примерной из множества таблиц, которые могут использоваться.

Фиг.7 является блок-схемой последовательности операций способа, иллюстрирующей метод VLC для кодирования CBP, в соответствии с этим раскрытием сущности. Метод, проиллюстрированный на фиг.7, может быть выполнен посредством модуля 70 VLC-кодирования или модуля 80 VLC-декодирования. Как показано на фиг.7, модуль 74, 84 вычисления табличных индексов вычисляет значение табличного индекса для текущего видеоблока на основе числа соседних блоков для текущего видеоблока, которые имеют ненулевые коэффициенты преобразования (91). Модуль 72, 84 кодирования CBP VLC выбирает VLC-таблицу из множества или VLC-таблицы 76, 86 на основе вычисленного значения табличного индекса. Модуль 72, 84 кодирования CBP VLC затем кодирует CBP текущего видеоблока на основе выбранной VLC-таблицы. Модуль 72 выполняет кодирование, а модуль 82 выполняет взаимно-обратное декодирование.

Методы, описанные в данном документе, могут быть реализованы в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или в любой их комбинации. Любые признаки, описанные как модули или компоненты, могут быть реализованы совместно в интегральном логическом устройстве или отдельно как дискретные, но имеющие возможность взаимодействовать логические устройства. Если реализованы в программном обеспечении, методы могут быть осуществлены, по меньшей мере, частично посредством машиночитаемого носителя, содержащего инструкции, которые, когда приводятся в исполнение, выполняют один или более способов, описанных выше, Машиночитаемый носитель хранения данных может формировать часть компьютерного программного продукта, который может включать в себя упаковку. Машиночитаемые носители могут содержать оперативное запоминающее устройство (RAM), такое как синхронное динамическое оперативное запоминающее устройство (SDRAM), постоянное запоминающее устройство (ROM), энергонезависимое оперативное запоминающее устройство (NVRAM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), флэш-память, магнитные или оптические носители хранения данных и т.п. Дополнительно или альтернативно, методы могут быть реализованы, по меньшей мере, частично посредством машиночитаемого носителя, который переносит или передает код в форме инструкций или структур данных и который может быть доступен, считываем и/или приводим в исполнение посредством компьютера.

Программный код может приводиться в исполнение посредством одного или более процессоров, например одного или более процессоров цифровых сигналов (DSP), микропроцессоров общего назначения, специализированных интегральных схем (ASIC), программируемых пользователем логических матриц (FPGA) или других эквивалентных интегральных или дискретных логических схем. Соответственно термин "процессор" при использовании в данном документе может означать любую вышеуказанную структуру или другую структуру, подходящую для реализации методов, описанных в данном документе. Помимо этого в некоторых аспектах функциональность, описанная в данном документе, может быть предоставлена в рамках специализированных программных модулей или аппаратных модулей, выполненных с возможностью кодирования или декодирования либо встроенных в комбинированный видеокодер-декодер (кодек).

Если реализовано в аппаратных средствах, это раскрытие сущности может быть направлено на схему, такую как интегральная схема, набор микросхем, специализированная интегральная схема (ASIC), программируемая вентильная матрица (FPGA), логика или различные комбинации вышеозначенного, выполненную с возможностью выполнять один или более методов, описанных в данном документе.

Описаны разные варианты осуществления изобретения. Эти и другие варианты осуществления находятся в рамках объема прилагаемой формулы изобретения.

1. Способ кодирования структур кодированных блоков (СВР) видеоблоков, содержащий этапы, на которых
выбирают таблицу кодирования переменной длины (VLC) для текущего видеоблока из множества таблиц на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования; и кодируют одну или более структур кодированных блоков (СВР) текущего видеоблока с использованием выбранной VLC-таблицы.

2. Способ по п.1, в котором кодирование одной или более СВР содержит этап, на котором кодируют СВР.

3. Способ по п.1, в котором кодирование одной или более СВР содержит этап, на котором декодируют СВР.

4. Способ по п.1, дополнительно содержащий этапы, на которых вычисляют значение табличного индекса для текущего видеоблока на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования, и выбирают VLC-таблицу на основе табличного индекса.

5. Способ по п.4, в котором текущий видеоблок содержит макроблок 16 на 16, и соседние видеоблоки содержат блоки 8 на 8 яркости, ассоциативно связанные с первым соседним макроблоком слева от текущего видеоблока и вторым соседним макроблоком выше текущего видеоблока.

6. Способ по п.5, в котором значение табличного индекса вычисляется следующим образом: N=(N(1)+N(u))/2+1, когда информация ненулевых коэффициентов преобразования существует как для первого соседнего макроблока, так и для второго соседнего макроблока; N=N(1)+1, когда информация ненулевых коэффициентов преобразования существует для первого соседнего макроблока, но не существует для второго соседнего макроблока; и N=N(u)+1, когда информация ненулевых коэффициентов преобразования существует для второго соседнего макроблока, но не существует для первого соседнего макроблока, при этом N представляет значение табличного индекса, N(1) представляет число соседних блоков яркости слева от текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования, a N(u) представляет число соседних блоков яркости выше текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования.

7. Способ по п.6, в котором множество таблиц содержит таблицы, сформированные из следующей таблицы 1:

Кодовое число Табличный индекс 0 Табличный индекс 1 Табличный индекс 2 Табличный индекс 3 Табличный индекс 4 Табличный индекс 5
0 0 0 0 0 15 47
1 15 8 1 15 47 15
2 47 4 4 1 0 31
3 31 2 2 4 31 7
4 16 1 8 5 11 11
5 12 47 10 10 7 13
6 4 31 12 2 3 14
7 1 10 15 12 5 0
8 8 15 5 3 14 5
9 13 12 3 47 1 3
10 5 16 14 31 13 10
11 11 5 11 8 10 1
12 3 3 13 11 12 12
13 2 32 7 7 2 23
14 10 14 16 13 4 39
15 7 11 31 14 8 29
16 23 7 47 16 6 27
17 21 13 6 6 9 45
18 28 9 9 9 29 30
19 18 6 32 29 27 43
20 14 27 30 30 23 2
21 29 30 26 45 30 4
22 30 23 28 46 43 46
23 26 21 46 27 16 8
24 17 29 44 43 45 6
25 27 46 21 26 39 21
26 20 28 42 21 46 9
27 19 26 29 28 21 16
28 24 39 27 44 37 19
29 6 45 45 23 19 37
30 44 24 23 32 26 26
31 22 19 24 39 35 35
32 46 42 43 42 28 42
33 45 17 40 19 42 28
34 9 43 20 37 44 44
35 39 20 36 35 20 22
36 37 40 37 20 17 25
37 25 37 18 18 25 17
38 35 18 17 24 22 18
39 43 44 19 17 18 20
40 40 25 34 34 32 24
41 41 36 33 36 24 33
42 38 22 39 33 33 38
43 42 34 35 25 41 32
44 36 35 25 22 38 34
45 32 33 22 40 36 40
46 33 41 38 38 34 41
47 34 38 41 41 40 36

при этом каждая из множества таблиц содержит столбец кодовых чисел таблицы 1, комбинированный с одним из столбцов табличных индексов таблицы 1, и кодирование структур кодированных блоков содержит этап, на котором выбирают кодовое число из столбца кодовых чисел для значения СВР, перечисленного в столбце таблицы 1, который соответствует вычисленному табличному индексу.

8. Способ по п.1, в котором текущий видеоблок содержит макроблок 16 на 16, и соседние видеоблоки содержат блоки 8 на 8 яркости и один или более блоков 8 на 8 цветности, ассоциативно связанных с первым соседним макроблоком слева от текущего видеоблока и вторым соседним макроблоком выше текущего видеоблока.

9. Способ по п.1, при этом способ выполняется в устройстве беспроводной связи (WCD).

10. Способ по п.1, при этом способ выполняется относительно видеоблоков улучшенного слоя в кодировании масштабируемого видео (SVC).

11. Устройство для кодирования структур кодированных блоков (СВР) видеоблоков, содержащее модуль кодирования переменной длины (VLC), выполненный с возможностью
выбирать VLC-таблицу для текущего видеоблока из множества таблиц на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования; и
кодировать одну или более структур кодированных блоков (СВР) текущего видеоблока с использованием выбранной VLC-таблицы.

12. Устройство по п.11, в котором VLC-модуль кодирует одну или более СВР.

13. Устройство по п.11, в котором VLC-модуль декодирует одну или более СВР.

14. Устройство по п.11, в котором VLC-модуль выполнен с возможностью вычислять значение табличного индекса для текущего видеоблока на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования, и выбирать VLC-таблицу на основе табличного индекса.

15. Устройство по п.14, в котором текущий видеоблок содержит макроблок 16 на 16, и соседние видеоблоки содержат блоки 8 на 8 яркости, ассоциативно связанные с первым соседним макроблоком слева от текущего видеоблока и вторым соседним макроблоком выше текущего видеоблока.

16. Устройство по п.15, в котором VLC-модуль вычисляет табличный индекс следующим образом: N=(N(1)+N(u))/2+1, когда информация ненулевых коэффициентов преобразования существует как для первого соседнего макроблока, так и для второго соседнего макроблока; N=N(1)+1, когда информация ненулевых коэффициентов преобразования существует для первого соседнего макроблока, но не существует для второго соседнего макроблока; и N=N(u)+1, когда информация ненулевых коэффициентов преобразования существует для второго соседнего макроблока, но не существует для первого соседнего макроблока, при этом N представляет табличный индекс, N(1) представляет число соседних блоков яркости слева от текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования, a N(u) представляет число соседних блоков яркости выше текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования.

17. Устройство по п.16, в котором множество таблиц содержит таблицы, сформированные из следующей таблицы 1:

Кодовое число Табличный индекс 0 Табличный индекс 1 Табличный индекс 2 Табличный индекс 3 Табличный индекс 4 Табличный индекс 5
0 0 0 0 0 15 47
1 15 8 1 15 47 15
2 47 4 4 1 0 31
3 31 2 2 4 31 7
4 16 1 8 5 11 11
5 12 47 10 10 7 13
6 4 31 12 2 3 14
7 1 10 15 12 5 0
8 8 15 5 3 14 5
9 13 12 3 47 1 3
10 5 16 14 31 13 10
11 11 5 11 8 10 1
12 3 3 13 11 12 12
13 2 32 7 7 2 23
14 10 14 16 13 4 39
15 7 11 31 14 8 29
16 23 7 47 16 6 27
17 21 13 6 6 9 45
18 28 9 9 9 29 30
19 18 6 32 29 27 43
20 14 27 30 30 23 2
21 29 30 26 45 30 4
22 30 23 28 46 43 46
23 26 21 46 27 16 8
24 17 29 44 43 45 6
25 27 46 21 26 39 21
26 20 28 42 21 46 9
27 19 26 29 28 21 16
28 24 39 27 44 37 19
29 6 45. 45 23 19 37
30 44 24 23 32 26 26
31 22 19 24 39 35 35
32 46 42 43 42 28 42
33 45 17 40 19 42 28
34 9 43 20 37 44 44
35 39 20 36 35 20 22
36 37 40 37 20 17 25
37 25 37 18 18 25 17
38 35 18 17 24 22 18
39 43 44 19 17 18 20
40 40 25 34 34 32 24
41 41 36 33 36 24 33
42 38 22 39 33 33 38
43 42 34 35 25 41 32
44 36 35 25 22 38 34
45 32 33 22 40 36 40
46 33 41 38 38 34 41
47 34 38 41 41 40 36

при этом каждая из множества таблиц содержит столбец кодовых чисел таблицы 1, комбинированный с одним из столбцов табличных индексов таблицы 1, и кодирование структур кодированных блоков содержит этап, на котором выбирают кодовое число из столбца кодовых чисел для значения СВР, перечисленного в столбце таблицы 1, который соответствует вычисленному табличному индексу.

18. Устройство по п.14, при этом устройство содержит запоминающее устройство, которое сохраняет множество таблиц, и в котором VLC-модуль содержит модуль вычисления табличных индексов, который вычисляет значение табличного индекса; и модуль, который выбирает VLC-таблицу из множества таблиц на основе табличного индекса и кодирует СВР текущего видеоблока с использованием выбранной VLC-таблицы.

19. Устройство по п.18, в котором запоминающее устройство постоянно размещается в рамках VLC-модуля устройства.

20. Устройство по п.11, в котором текущий видеоблок содержит макроблок 16 на 16, и соседние видеоблоки содержат блоки 8 на 8 яркости и один или более блоков 8 на 8 цветности, ассоциативно связанных с первым соседним макроблоком слева от текущего видеоблока и вторым соседним макроблоком выше текущего видеоблока.

21. Устройство по п.11, причем устройство представляет собой, по меньшей мере, одно из схемы, конфигурированной для выполнения цифровой обработки данных, и устройства беспроводной связи.

22. Устройство по п.11, в котором текущий видеоблок содержит видеоблок улучшенного слоя в кодировании масштабируемого видео (SVC).

23. Устройство для кодирования структур кодированных блоков (СВР) видеоблоков, содержащее
средство выбора таблицы кодирования переменной длины (VLC) для текущего видеоблока из множества таблиц на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования; и
средство кодирования одной или более структур кодированных блоков (СВР) текущего видеоблока с использованием выбранной VLC-таблицы.

24. Машиночитаемый носитель, содержащий инструкции, которые при выполнении в устройстве кодирования видео побуждают устройство
выбирать таблицу кодирования переменной длины (VLC) для текущего видеоблока из множества таблиц на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования; и
кодировать одну или более структур кодированных блоков (СВР) текущего видеоблока с использованием выбранной VLC-таблицы.

25. Машиночитаемый носитель по п.24, в котором инструкции побуждают устройство вычислять значение табличного индекса для текущего видеоблока на основе числа соседних видеоблоков для текущего видеоблока, которые включают в себя ненулевые коэффициенты преобразования, и выбирать VLC-таблицу на основе табличного индекса.



 

Похожие патенты:

Изобретение относится к способу передачи/приема сигнала и к устройству для передачи/приема сигнала, которые могут увеличивать скорость передачи данных. .

Изобретение относится к видеокодированию, и в частности, к нижнему уровню обратной линии связи, способствующему коррекции ошибок видеоданных. .

Изобретение относится к системам мультимедийной передачи и, в частности, к способам и устройству для обеспечения быстрого получения услуги. .

Изобретение относится к передаче медиа-потока по предрасположенному к ошибкам каналу цифрового телевещания для переносных устройств (DVB-Н), в котором медиа-дейтаграммы маркированы согласно приоритету, упакованы в секции многопротокольной инкапсуляции, неравномерно защищены с использованием кодов прямого исправления ошибок, пакетированы в транспортный поток и переданы в канал с использованием пачек с временным разделением.

Изобретение относится к способу буферизации мультимедийной информации, а также к способу декодирования закодированного потока изображений в декодере, в котором закодированный поток изображений принимается в виде блоков передачи, содержащих мультимедийные данные.

Изобретение относится к декодирующему устройству данных изображения. .

Изобретение относится к буферизации пакетов медиапотока при передаче от передающего устройства приемному устройству. .

Изобретение относится к технике передачи изображений и может использоваться в мультимедийной связи. .

Изобретение относится к способу ресинхронизации, который может быть использован в канале декодирования по стандарту MPEG-4. .

Изобретение относится к кодированию и декодированию цифровых данных, разделенных на блоки цифр, в порядке значимости цифр. .

Изобретение относится к цифровому кодированию видео и, более конкретно, кодированию с переменной длиной (VLC) коэффициентов преобразования в уровнях расширения схемы масштабируемого кодирования видео (SVC).

Изобретение относится к способу и устройству видеообработки для выполнения операции упрощенной фильтрации, которая адаптивно применяется к видеоизображению. .

Изобретение относится к области обработки цифрового видео и, в частности, к сжатию цифрового видео с помощью кодов с переменной длиной (VLC). .

Изобретение относится к области кодирования цифрового видео, и в частности к масштабируемому видеокодированию с высокой степенью детализации (FGS-видеокодированию), в котором используют выровненные с циклом фрагменты (CAF).

Изобретение относится к кодированию, декодированию, хранению и передаче масштабируемых видеоданных. .

Изобретение относится к обработке цифровых видеоданных и, в частности, к способам обработки масштабируемых видеоданных. .

Изобретение относится к кодированию и декодированию видеосигнала, а более точно к способам и устройству для взвешенного предсказания для масштабируемого кодирования и декодирования видеосигнала.

Изобретение относится к области обработки мультимедийных данных посредством алгоритмов сжатия для анализа, классификации, определения объема и представления мультимедийных данных на основании контента мультимедийных данных.

Изобретение относится к группированию мультимедийных файлов, в частности видеофайлов для использования в потоковой передаче. .

Изобретение относится к способу управления скоростью для масштабируемо кодированных изображений и, более конкретно, к управлению скоростью, которое удовлетворяет заданным требованиям для подмножеств данных изображения.

Изобретение относится к цифровому кодированию видео и, более конкретно, кодированию с переменной длиной (VLC) коэффициентов преобразования в уровнях расширения схемы масштабируемого кодирования видео (SVC).
Наверх