RU2452128C2 - Адаптивное кодирование информации заголовка видеоблока - Google Patents

Адаптивное кодирование информации заголовка видеоблока Download PDF

Info

Publication number
RU2452128C2
RU2452128C2 RU2010119029/07A RU2010119029A RU2452128C2 RU 2452128 C2 RU2452128 C2 RU 2452128C2 RU 2010119029/07 A RU2010119029/07 A RU 2010119029/07A RU 2010119029 A RU2010119029 A RU 2010119029A RU 2452128 C2 RU2452128 C2 RU 2452128C2
Authority
RU
Russia
Prior art keywords
block
prediction mode
syntax element
svr
current video
Prior art date
Application number
RU2010119029/07A
Other languages
English (en)
Other versions
RU2010119029A (ru
Inventor
Янь Е (US)
Янь Е
Марта КАРЧЕВИЧ (US)
Марта КАРЧЕВИЧ
Рахул ПАНЧАЛ (US)
Рахул ПАНЧАЛ
Original Assignee
Квэлкомм Инкорпорейтед
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед
Publication of RU2010119029A publication Critical patent/RU2010119029A/ru
Application granted granted Critical
Publication of RU2452128C2 publication Critical patent/RU2452128C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Изобретение относится к кодированию цифрового видеосигнала и, в частности, к кодированию информации заголовков блоков видеопоследовательности. Техническим результатом является обеспечение адаптивного кодирования информации заголовка видеоблока на основании одного или нескольких ранее кодированных видеоблоков. Указанный технический результат достигается тем, что видеокодер адаптивно выбирает таблицу кодирования для использования при кодировании синтаксического элемента текущего видеоблока на основании соответствующих синтаксических элементов одного или нескольких ранее кодированных блоков. Также видеокодер может адаптивно выбирать таблицу кодирования для использования при кодировании типа блока текущего блока на основании типов блока одного или нескольких видеоблоков, соседствующих с текущим видеоблоком, т.е. соседних видеоблоков. Видеокодер также может прогнозировать один или несколько других синтаксических элементов заголовка текущего блока на основании по меньшей мере одного из ранее кодированных видеоблоков. Если прогнозирование увенчалось успехом, видеокодер может кодировать флаг для указания успеха прогнозирования. 8 н. и 84 з.п. ф-лы, 7 ил.

Description

Данная заявка притязает на приоритет предварительной заявки США № 60/979734, поданной 12 октября 2007 г., которая в полном объеме включена сюда в порядке ссылки.
Область техники, к которой относится изобретение
Данное раскрытие относится к кодированию цифрового видеосигнала и, в частности, к кодированию информации заголовков блоков видеопоследовательности.
Предшествующий уровень техники
Функции цифрового видео могут быть внедрены в широкий круг устройств, в том числе цифровые телевизоры, системы прямого цифрового вещания, устройства беспроводной связи, системы беспроводного вещания, карманные персональные компьютеры (КПК, PDA), переносные или стационарные компьютеры, цифровые камеры, устройства цифровой видеозаписи, устройства для видеоигр, консоли для видеоигр, сотовые или спутниковые радиотелефоны и пр. В устройствах цифрового видео реализованы методы сжатия видеосигнала, например MPEG-2, MPEG-4 или H.264/MPEG-4, часть 10, под общим названием Advanced Video Coding (AVC), для более эффективных передачи и приема цифрового видеосигнала. Методы сжатия видеосигнала предусматривают пространственное и временное прогнозирование для сокращения или устранения избыточности, свойственной видеопоследовательностям.
При кодировании видеосигнала сжатие видеосигнала обычно включает в себя пространственное прогнозирование и/или оценку движения и компенсацию движения для генерации прогностического видеоблока. Внутреннее (Intra) кодирование опирается на пространственное прогнозирование для сокращения или устранения пространственной избыточности среди видеоблоков в заданном видеокадре. Пространственное прогнозирование можно осуществлять для ряда разных типов блока с внутренним кодированием, например типов блока Intra 16×16, типов блока Intra 8×8 и типов блока Intra 4×4 в случае AVC H.264/MPEG-4 часть 10. Внешнее (Inter) кодирование опирается на временное прогнозирование для сокращения или устранения временной избыточности среди видеоблоков последовательных видеокадров видеопоследовательности. Временное прогнозирование также можно осуществлять для ряда разных типов блока с внешним кодированием, например Inter 16×16, Inter 16×8, Inter 8×16, Inter 8×8, Inter 8×4, Inter 4×8 и Inter 4×4 в случае AVC H.264/MPEG-4 часть 10.
После пространственного или временного прогнозирования блок остаточной информации генерируется путем вычитания прогностического видеоблока из исходного видеоблока, подлежащего кодированию. Таким образом, остаточная информация выражает различия между прогностическим видеоблоком и исходным блоком. Видеокодер кодирует остаточную информацию блока совместно с информацией заголовка блока. Информация заголовка блока может указывать тип блока текущего видеоблока, а также дополнительную информацию, связанную с текущим видеоблоком, например режим прогнозирования, шаблон кодированных блоков (CBP) яркости, CBP цветности, один или несколько векторов движения и пр. Обычно видеокодер кодирует остаточную информацию и информацию заголовка с использованием арифметических кодов, кодов переменной длины (VLC), кодов фиксированной длины или их комбинации. Примеры включают в себя контекстно-адаптивное кодирование на основе двоичной арифметики (CABAC) и контекстно-адаптивное кодирование с переменной длиной серии (CAVLC). Видеодекодер осуществляет обратные операции для реконструкции кодированного видеосигнала с использованием информации заголовка и остаточной информации для каждого из блоков.
Сущность изобретения
В этом раскрытии описаны методики адаптивного кодирования информации заголовка видеоблока на основании одного или нескольких ранее кодированных видеоблоков. В частности, видеокодер может адаптивно выбирать таблицу кодирования для использования при кодировании синтаксического элемента текущего видеоблока на основании синтаксических элементов одного или нескольких ранее кодированных блоков кодированной единицы, например кадра или секции. В одном аспекте видеокодер может адаптивно выбирать таблицу кодирования для использования при кодировании типа блока текущего блока на основании типов блока одного или нескольких ранее кодированных видеоблоков, соседствующих с текущим видеоблоком, т.е. соседних видеоблоков. Например, видеокодер может адаптивно выбирать таблицу кодирования, которая связывает тип блока Intra 16×16 с более коротким кодовым словом, чем типы блока Intra 4×4 или Intra 8×8, когда два или более соседних блоков имеют типы блока Intra 16×16. Это позволяет видеокодеру более эффективно кодировать видеопоследовательности с более высоким разрешением, например, видеопоследовательности высокой четкости (HD).
Видеокодер также может прогнозировать один или несколько других синтаксических элементов заголовка текущего блока на основании, по меньшей мере, одного ранее кодированного блока. Если прогнозирование увенчалось успехом, т.е. значения одного или нескольких прогнозируемых синтаксических элементов заголовка совпадают со значениями фактических синтаксических элементов заголовка текущего блока, видеокодер может кодировать флаг (например, 1-битовый флаг), который указывает успех прогнозирования, вместо того чтобы по отдельности кодировать значения каждого из синтаксических элементов или связывать синтаксические элементы и кодировать их более длинным кодовым словом. Видеодекодер также может прогнозировать значения одного или нескольких синтаксических элементов заголовка таким же образом, как видеокодер, и выбирать значения прогнозируемых синтаксических элементов заголовка для блока, когда кодированный флаг указывает успех прогнозирования. Такая методика позволяет дополнительно сокращать количество битов, используемых для кодирования видеоблока последовательности видеокадров.
В одном аспекте способ содержит этапы, на которых выбирают таблицу кодирования для использования при кодировании синтаксического элемента текущего видеоблока кодированной единицы на основании соответствующего синтаксического элемента одного или нескольких ранее кодированных видеоблоков кодированной единицы и кодируют синтаксический элемент текущего видеоблока с использованием выбранной таблицы кодирования.
В другом аспекте устройство кодирования содержит модуль кодирования, который включает в себя модуль выбора, который выбирает таблицу кодирования для использования при кодировании синтаксического элемента текущего видеоблока кодированной единицы на основании соответствующего синтаксического элемента одного или нескольких ранее кодированных видеоблоков кодированной единицы, и модуль кодирования, который кодирует синтаксический элемент текущего видеоблока с использованием выбранной таблицы кодирования.
В другом аспекте компьютерно-считываемый носитель содержит инструкции, предписывающие процессору выбирать таблицу кодирования для использования при кодировании синтаксического элемента текущего видеоблока кодированной единицы на основании соответствующего синтаксического элемента одного или нескольких ранее кодированных видеоблоков кодированной единицы и кодировать синтаксический элемент текущего видеоблока с использованием выбранной таблицы кодирования.
В еще одном аспекте устройство кодирования содержит средство для выбора таблицы кодирования для использования при кодировании синтаксического элемента текущего видеоблока кодированной единицы на основании соответствующего синтаксического элемента одного или нескольких ранее кодированных видеоблоков кодированной единицы и средство для кодирования синтаксического элемента текущего видеоблока с использованием выбранной таблицы кодирования.
В еще одном аспекте способ декодирования видеоданных содержит этапы, на которых выбирают таблицу кодирования для использования при декодировании синтаксического элемента текущего видеоблока кодированной единицы на основании соответствующего синтаксического элемента одного или нескольких ранее декодированных видеоблоков кодированной единицы и декодируют синтаксический элемент текущего видеоблока с использованием выбранной таблицы кодирования.
В еще одном аспекте устройство декодирования содержит модуль выбора, который выбирает таблицу кодирования для использования при декодировании синтаксического элемента текущего кодированного видеоблока кодированной единицы на основании соответствующего синтаксического элемента одного или нескольких ранее декодированных видеоблоков кодированной единицы, и модуль декодирования, который декодирует синтаксический элемент текущего видеоблока с использованием выбранной таблицы кодирования.
В еще одном аспекте компьютерно-считываемый носитель содержит инструкции, предписывающие процессору выбирать таблицу кодирования для использования при декодировании синтаксического элемента текущего кодированного видеоблока кодированной единицы на основании соответствующего синтаксического элемента одного или нескольких ранее декодированных видеоблоков кодированной единицы и декодировать синтаксический элемент текущего видеоблока с использованием выбранной таблицы кодирования.
В еще одном аспекте устройство декодирования содержит средство для выбора таблицы кодирования для использования при декодировании синтаксического элемента текущего кодированного видеоблока кодированной единицы на основании соответствующего синтаксического элемента одного или нескольких ранее декодированных видеоблоков кодированной единицы и средство для декодирования синтаксического элемента текущего видеоблока с использованием выбранной таблицы кодирования.
Методики, отвечающие данному раскрытию, можно реализовать в оборудовании, программном обеспечении, программно-аппаратном обеспечении или любой их комбинации. В случае программной реализации программное обеспечение может исполняться в процессоре, который может представлять собой один или несколько процессоров, например микропроцессор, специализированную интегральную схему (ASIC), вентильную матрицу, программируемую пользователем (FPGA), или цифровой сигнальный процессор (DSP), или другую эквивалентную интегральную или дискретную логическую схему. Программное обеспечение, содержащее инструкции для выполнения методик, может первоначально храниться на компьютерно-считываемом носителе и загружаться и исполняться процессором.
Соответственно, данное раскрытие также предусматривает компьютерно-считываемые носители, содержащие инструкции, предписывающие процессору осуществлять любую из разнообразных методик, отвечающих данному раскрытию. В ряде случаев компьютерно-считываемый носитель может составлять часть компьютерного программного продукта, который может продаваться производителям и/или использоваться в устройстве. Компьютерный программный продукт может включать в себя компьютерно-считываемый носитель и в ряде случаев также может включать в себя упаковочные материалы.
Один или несколько аспектов раскрытия подробно представлены в прилагаемых чертежах и в нижеприведенном описании. Другие признаки, задачи и преимущества методик, отвечающих данному раскрытию, явствуют из описания чертежей и из формулы изобретения.
Краткое описание чертежей
Фиг. 1 - блок-схема, демонстрирующая систему кодирования и декодирования видеосигнала.
Фиг. 2 - блок-схема, демонстрирующая пример видеокодера, который осуществляет методы кодирования согласно этому раскрытию.
Фиг. 3 - блок-схема, более подробно демонстрирующая иллюстративный модуль энтропийного кодирования видеокодера, показанного на фиг. 2.
Фиг. 4 - блок-схема, демонстрирующая пример видеодекодера, который декодирует видеоданные согласно методам кодирования, описанным в этом раскрытии.
Фиг. 5 - блок-схема, более подробно демонстрирующая иллюстративный модуль декодирования.
Фиг. 6 - логическая блок-схема, демонстрирующая принцип работы модуля кодирования, кодирующего информацию заголовка для видеоблока.
Фиг. 7 - логическая блок-схема, демонстрирующая принцип работы модуля декодирования, декодирующего кодированный видеоблок видеопоследовательности.
Подробное описание
На фиг. 1 показана блок-схема, демонстрирующая систему 10 кодирования и декодирования видеосигнала, которая осуществляет методы кодирования, описанные в этом раскрытии. Согласно фиг. 1 система 10 включает в себя устройство-источник 12, которое передает кодированные видеоданные на приемное устройство 14 по каналу связи 16. Канал связи 16 может содержать любую беспроводную или проводную среду связи, например спектр радиочастот (РЧ) или одну или несколько физических линий связи, или любую комбинацию беспроводных и проводных сред. Канал связи 16 может образовывать часть сети на основе коммутации пакетов, например локальной сети, региональной сети или глобальной сети, например интернета. Канал связи 16 обычно представляет любую подходящую среду связи или совокупность разных сред связи для передачи кодированных видеоданных от устройства-источника 12 на приемное устройство 14.
Устройство-источник 12 генерирует кодированные видеоданные для передачи на приемное устройство 14. Устройство-источник 12 может включать в себя источник видеосигнала 18, видеокодер 20 и передатчик 22. Источник видеосигнала 18 устройства-источника 12 может включать в себя устройство видеосъемки, например видеокамеру, видеоархив, содержащий ранее отснятые видеоматериалы, или источник видеосигнала от поставщика видеоконтента. В порядке дополнительной альтернативы источник видеосигнала 18 может генерировать данные компьютерной графики в качестве исходного видеосигнала или комбинацию живого видео и компьютерно-генерируемого видео. В ряде случаев, если источником видеосигнала 18 является видеокамера, устройство-источник 12 может образовывать так называемый камерофон или видеотелефон. В любом случае отснятое, предварительно отснятое или компьютерно-генерируемое видео можно кодировать с помощью видеокодера 20 для передачи от устройства-источника 12 на приемное устройство 14 через передатчик 22 и канал связи 16.
Видеокодер 20 принимает видеоданные от источника видеосигнала 18. Видеоданные, принятые от источника видеосигнала 18, могут представлять собой последовательность видеокадров. Некоторые кадры могут делиться на секции. Видеокодер 20 работает с блоками пикселей (именуемыми здесь видеоблоками) в отдельных видеокадрах для кодирования видеоданных. Кодированная единица, например кадр или секция, может содержать множественные блоки. Видеоблоки могут иметь фиксированные или переменные размеры и могут отличаться по размеру согласно заданному стандарту кодирования. Каждый видеоблок, часто именуемый макроблоком (MB), может делиться на подблоки. В порядке примера International Telecommunication Union Standardization Sector (ITU-T) H.264/MPEG-4, Part 10, Advanced Video Coding (AVC) (далее стандарт “AVC H.264/MPEG-4 часть 10”) поддерживает внутреннее прогнозирование при различных размерах блоков, например 16×16, 8×8 или 4×4 для компонентов яркости и 8×8 для компонентов цветности, а также внешнее прогнозирование при различных размерах блоков, например 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 и 4×4 для компонентов яркости и соответствующих масштабированных размерах для компонентов цветности. В целом MB и различные подблоки можно рассматривать как видеоблоки. Таким образом, MB можно рассматривать как видеоблоки, и в случае разбиения или подразбиения можно считать, что сами MB задают наборы видеоблоков.
Для каждого из видеоблоков видеокодер 20 выбирает тип блока для блока. Используемый здесь термин “тип блока” указывает, прогнозируется ли блок с использованием внешнего прогнозирования или внутреннего прогнозирования, а также размер разбиения блока. Например, стандарт AVC H.264/MPEG-4 часть 10 поддерживает ряд внешне- и внутренне-прогностических типов блока, включая Inter 16×16, Inter 16×8, Inter 8×16, Inter 8×8, Inter 8×4, Inter 4×8, Inter 4×4, Intra 16×16, Intra 8×8 и Intra 4×4. Как описано подробно ниже, видеокодер 20 может выбирать один из типов блока для каждого из видеоблоков на основании различных факторов.
Для внутреннего кодирования видеокодер 20 может выбирать один из внутренне-прогностических типов блока на основании изменения в текущем блоке. Когда изменение в текущем видеоблоке велико, например, в силу высоких уровней детализации или текстуры, видеокодер 20 может выбирать внутренне-прогностический тип блока с меньшим разбиением на блоки, например режим кодирования Intra 4×4 или Intra 8×8. Однако, когда изменение в текущем видеоблоке мало, видеокодер 20 может выбирать внутренне-прогностический тип блока с большим разбиением на блоки, например тип блока Intra 16×16.
Для внутренне-кодированного кадра видеопоследовательности с меньшим разрешением видео, например видеопоследовательности общего формата изображения (CIF) или четвертного-CIF (QCIF), видеокодер 20 обычно прогнозирует больше видеоблоков с использованием типов блока Intra 4×4 или Intra 8×8. Во внутренне-кодированном кадре с меньшим разрешением блок 16×16 может включать в себя большее изменение, чем блок 4×4 или 8×8. Таким образом, блок 4×4 или 8×8 в кадре может быть глаже, чем блок 16×16 в кадре. Например, блок 4×4 видеопоследовательности может включать в себя гладкую часть сцены (например, лоб человека), а блок 16x16 может включать в себя больше текстуры (например, лоб, немного волос и часть глаза человека). Однако для внутренне-кодированного кадра видеопоследовательности с высоким разрешением, например видеопоследовательности высокой четкости (HD), видеокодер 20 может прогнозировать больше блоков с использованием типа блока Intra 16×16, чем с использованием типов блока Intra 4×4 или Intra 8×8. Например, блок 4×4 и блок 16×16 могут включать в себя только лоб человека вследствие высокого разрешения кадра и, таким образом, могут иметь сходную гладкость.
После внутреннего или внешнего прогнозирования видеоблоков видеокодер 20 может осуществлять ряд других операций на видеоблоках. Как будет более подробно описано со ссылкой на фиг. 2, эти дополнительные операции могут включать в себя операции преобразования (например, целочисленное преобразование 4×4 или 8×8, используемое в AVC H.264/MPEG-4 часть 10, или дискретное косинусное преобразование ДКП), операции квантования и операции энтропийного кодирования. Затем видеокодер 20 кодирует каждый из блоков последовательности видеокадров и выводит кодированный битовый поток. Для каждого блока, например, видеокодер 20 может кодировать информацию заголовка для блока и остаточную информацию для блока. Информация заголовка каждого блока может включать в себя ряд синтаксических элементов, которые указывают конкретные характеристики блока, например выбранный тип блока, режим прогнозирования, шаблон кодированных блоков (яркости и/или CBP цветности), вектор движения и пр. Остаточная информация каждого блока выражает различия между входным видеоблоком и одним или несколькими прогностическими блоками.
Выполняя энтропийное кодирование, традиционные видеокодеры могут связывать ряд синтаксических элементов заголовка друг с другом и кодировать связку как единое кодовое слово. Для блоков, внутренне прогнозируемых с использованием внутреннего прогнозирования 16x16 согласно стандарту AVC H.264/MPEG-4 часть 10, например, традиционный видеокодер связывает друг с другом синтаксический элемент типа блока, синтаксический элемент режима прогнозирования (например, DC, горизонтального, вертикального и плоскостного) и синтаксические элементы шаблона кодированных блоков для яркости и цветности (например, которые указывают, имеют ли квантованные коэффициенты преобразования для яркости и цветности ненулевые значения) и кодирует связанные синтаксические элементы как единое кодовое слово с использованием кодирования с переменной длиной серии (VLC). Согласно VLC каждому возможному синтаксическому элементу, подлежащему кодированию, или комбинации синтаксических элементов, подлежащих кодированию, назначается кодовое слово. Кодовые слова в VLC имеют разные длины, причем самое короткое кодовое слово присваивается значению данного синтаксического элемента, вероятность появления которого наиболее высока. Традиционные видеокодеры, работающие согласно стандарту AVC H.264/MPEG-4 часть 10, присваивают более длинные кодовые слова типу блока Intra 16×16, а не типам блока Intra 4×4 и Intra 8×8 на основании предположения о том, что типы блока Intra 4×4 и Intra 8×8 выбираются чаще, чем тип блока Intra 16×16. Такое предположение может иметь силу для видеопоследовательностей с малым разрешением видео, например видеопоследовательностей CIF или QCIF. Однако для видеопоследовательностей с высоким разрешением, например видеопоследовательностей HD, тип блока Intra 16×16 может выбираться чаще, чем типы блока Intra 4×4 или Intra 8×8. Это может быть особенно справедливо, когда видеопоследовательность включает в себя большие гладкие области, и квантование осуществляется с параметром квантования (QP) от среднего до высокого. В таких видеопоследовательностях кодирование типов блока Intra 16×16 согласно традиционному стандарту AVC H.264/MPEG-4 часть 10 может быть очень неэффективным. В частности, для приложений HD более длинные кодовые слова, используемые для типов блока Intra 16×16, могут передаваться гораздо чаще, чем в приложениях, не связанных с HD, приводя к избыточному расходованию полосы.
Для более эффективного кодирования видеопотоков, которые включают в себя большое количество видеоблоков, прогнозируемых с использованием типа блока Intra 16×16, видеокодер 20 осуществляет методы адаптивного кодирования информации заголовка, отвечающие данному раскрытию. Видеокодер 20 может адаптивно выбирать таблицу кодирования для использования при кодировании синтаксического элемента текущего видеоблока на основании соответствующего синтаксического элемента одного или нескольких ранее кодированных блоков. В одном аспекте видеокодер 20 может адаптивно выбирать таблицу кодирования для использования при кодировании типа блока текущего видеоблока на основании одного или нескольких видеоблоков, соседствующих с текущим видеоблоком, именуемых здесь “соседними видеоблоками”. Видеокодер 20 может анализировать любое количество соседних блоков в любом положении при выборе таблицы кодирования (также именуемой кодовой книгой) для кодирования типа блока. Однако в порядке иллюстрации видеокодер 20, в некоторых аспектах, адаптивно выбирающий таблицу кодирования для кодирования типа блока на основании соседнего блока, расположенного непосредственно над текущим блоком (“верхним соседним блоком”), и соседнего блока непосредственно влево от текущего блока (“левого соседнего блока”).
Для внутренне-прогностического блока, например, видеокодер 20 может выбирать таблицу кодирования, которая связывает типы блока Intra 4×4 или Intra 8×8 с более коротким кодовым словом, чем тип блока Intra 16×16, когда верхний соседний блок и левый соседний блок не имеют типов блока Intra 16×16. Согласно стандарту AVC H.264/MPEG-4 часть 10 тип блока Intra 16×16 обычно выражается кодовым словом “10”, тогда как типы блока Intra 4×4 и Intra 8×8 выражаются кодовым словом “0”, в каковом случае дополнительный синтаксический элемент transform_size_8x8_flag кодируется с использованием 1 бита для указания того, является ли тип блока типом Intra 4×4 или Intra 8x8. Однако видеокодер 20 может выбирать таблицу кодирования, которая связывает тип блока Intra 16×16 с более коротким кодовым словом, чем типы блока Intra 4×4 или Intra 8×8, когда верхний соседний блок и левый соседний блок имеют типы блока Intra 16×16. В этом случае модуль энтропийного кодирования, связанный с видеокодером 20, может кодировать тип блока для типа блока Intra 16×16 в заголовке блока с использованием более короткого кодового слова. Видеокодер 20 может, например, выбирать таблицу кодирования, которая представляет тип блока Intra 16×16 кодовым словом “0” и представляет типы блока Intra 4×4 и Intra 8×8 кодовым словом “10”, когда верхний и левый соседние блоки имеют типы блока Intra 16×16. Таким образом, эвристическое правило работы видеокодера 20 состоит в том, что, если верхний и левый соседние блоки имеют типы блока Intra 16×16, вероятность того, что текущий видеоблок является блоком типа Intra 16×16, возрастает. Таким образом, видеокодер 20 адаптивно выбирает таблицы кодирования, которые более эффективно кодируют типы блока, когда тип блока Intra 16×16 чаще используется. Несмотря на то что они описаны применительно к выбору таблиц кодирования для кодирования внутренне-прогностических типов блока, методики, отвечающие данному раскрытию, также можно применять к адаптивному выбору таблицы кодирования для внешне-прогностических типов блока на основании типов блока ранее кодированных видеоблоков. Кроме того, методики, отвечающие данному раскрытию, можно дополнительно применять к адаптивному выбору таблицы кодирования для кодирования других синтаксических элементов текущего видеоблока, например режима прогнозирования, CBP яркости, CBP цветности, разбиения на блоки, вектора движения и пр.
Видеокодер 20 может дополнительно пытаться прогнозировать один или несколько других синтаксических элементов заголовка текущего блока на основании, по меньшей мере, одного ранее кодированного блока. Например, видеокодер 20 может пытаться прогнозировать синтаксический элемент режима прогнозирования и/или синтаксические элементы CBP яркости/цветности текущего блока из предыдущих блоков, например верхнего и левого соседних блоков. Например, видеокодер 20 может пытаться прогнозировать режим прогнозирования, CBP яркости и CBP цветности и, если прогнозирование увенчивается успехом, кодировать флаг, который указывает успех прогнозирования. Если прогнозирование режима прогнозирования, CBP яркости и CBP цветности не увенчалось успехом, видеокодер 20 может кодировать каждый из синтаксических элементов по отдельности, как описано подробно ниже. Альтернативно видеокодер 20 может пытаться прогнозировать режим прогнозирования текущего блока из предыдущих блоков. Если прогнозирование увенчалось успехом, видеокодер 20 кодирует флаг (например, 1-битовый флаг) для указания успешного прогнозирования режима прогнозирования вместо 2-битового кодового слова фиксированной длины для режима прогнозирования, таким образом, экономя, по меньшей мере, один бит. Видеокодер 20 по отдельности кодирует CBP яркости и CBP цветности. Если прогнозирование режима прогнозирования не увенчалось успехом, каждый из синтаксических элементов кодируется по отдельности.
Устройство-источник 12 передает кодированные видеоданные на приемное устройство 14 через передатчик 22. Приемное устройство 14 может включать в себя приемник 24, видеодекодер 26 и устройство отображения 28. Приемник 24 принимает кодированный видеопоток от устройства-источника 12 по каналу 16. Видеодекодер 26 декодирует кодированный видеопоток для получения информации заголовка и остаточной информации кодированных видеоблоков кодированной единицы. Видеодекодер 26 адаптивно выбирает таблицу кодирования (т.е. кодовую книгу) для использования при декодировании типа блока текущего видеоблока на основании типов блока одного или нескольких ранее декодированных блоков. Например, видеодекодер 26 может адаптивно выбирать таблицу кодирования, которая связывает тип блока Intra 16×16 с более коротким кодовым словом, чем типы блока Intra 4×4 или Intra 8×8, когда верхний соседний блок и левый соседний блок имеют типы блока Intra 16×16.
Видеодекодер 26 может дополнительно осуществлять прогнозирование синтаксического элемента режима прогнозирования и/или синтаксических элементов CBP яркости/цветности текущего блока таким же образом, как видеокодер 20. Когда кодированный битовый поток включает в себя флаг, указывающий, что прогнозирование режима прогнозирования и CBP яркости/цветности увенчалось успехом, видеодекодер 26 использует прогнозируемый режим прогнозирования и CBP яркости/цветности в качестве синтаксических элементов для текущего блока. Когда флаг указывает неудачу прогнозирования режима прогнозирования и CBP яркости/цветности, видеодекодер 26 декодирует режим прогнозирования и CBP яркости/цветности из кодированного битового потока. Альтернативно видеодекодер 26 может пытаться прогнозировать режим прогнозирования текущего блока из предыдущих блоков, если видеокодер 20 осуществляет такую функцию.
Видеодекодер 26 реконструирует каждый из блоков секции с использованием декодированной информации заголовка и декодированной остаточной информации. Видеодекодер 26 может использовать, по меньшей мере, часть информации заголовка для генерации прогностического блока для каждого из блоков и объединения прогностического блока каждого из блоков с соответствующей остаточной информацией для реконструкции каждого из блоков. Приемное устройство 14 может отображать реконструированные видеоблоки пользователю через устройство отображения 28. Устройство отображения 28 может содержать любые устройства отображения, например электронно-лучевую трубку (ЭЛТ), жидкокристаллический дисплей (LCD), плазменный дисплей, светодиодный (СИД) дисплей, дисплей на органических СИД или устройство отображения другого типа.
В ряде случаев устройство-источник 12 и приемное устройство 14 могут действовать, по существу, симметрично. Например, устройство-источник 12 и приемное устройство 14 могут включают в себя компоненты кодирования и декодирования видеосигнала. Поэтому система 10 может поддерживать одностороннюю или двустороннюю передачу видеосигнала между устройствами 12, 14, например, для потокового видео, вещания видеосигнала или видеотелефонии.
Видеокодер 20 и видеодекодер 26 могут действовать согласно стандарту сжатия видеосигнала, например Moving Picture Experts Group (MPEG)-2, MPEG-4, ITU-T H.263, или ITU-T AVC H.264/MPEG-4 часть 10. Хотя это не показано на фиг. 1, в некоторых аспектах видеокодер 20 и видеодекодер 26 можно объединять с аудиокодером и декодером соответственно, и могут включать в себя соответствующие модули мультиплексирования-демультиплексирования (MUX-DEMUX) или другое оборудование и программное обеспечение для манипулирования кодированием аудио- и видеосигналов в общем потоке данных или разделения потоков данных. Таким образом, устройство-источник 12 и приемное устройство 14 могут работать с мультимедийными данными. Если применимо, модули MUX-DEMUX могут отвечать протоколу мультиплексора ITU H.223 или другим протоколам, например протоколу пользовательских дейтаграмм (UDP).
В некоторых аспектах для вещания видеосигнала методики, отвечающие данному раскрытию, можно применять к кодированию видеосигнала на основе усовершенствованного H.264 для обеспечения услуг видео в реальном времени в наземных системах мультимедийного группового вещания на мобильные устройства (TM3) с использованием спецификации радиоинтерфейса Forward Link Only «Только Прямая Линия Связи» (FLO), “Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast”, опубликованной в июле 2007 г. как технический стандарт TIA-1099 (“спецификация FLO”). Иначе говоря, канал связи 16 может содержать беспроводной информационный канал, используемый для вещания беспроводной видеоинформации согласно спецификации FLO, и пр. Спецификация FLO включает в себя примеры, задающие синтаксис и семантику битового потока и процессы декодирования, пригодные для радиоинтерфейса FLO.
Альтернативно видео можно вещать согласно другим стандартам, например DVB-H (стандарт цифрового видеовещания на карманные устройства), ISDB-T (стандарт наземного цифрового широковещания с интегрированными услугами) или DMB (стандарт цифрового мультимедийного широковещания). Таким образом, устройство-источник 12 может быть мобильным беспроводным терминалом, сервером потокового видео или сервером видеовещания. Однако методики, отвечающие данному раскрытию, не ограничиваются никаким особым типом широковещательной, многоадресной или двухточечной системы. В случае широковещания устройство-источник 12 может вещать несколько каналов видеоданных на множественные приемные устройства, каждое из которых может быть подобно приемному устройству 14, показанному на фиг. 1. Таким образом, хотя на фиг. 1 показано одно приемное устройство 14 для вещания видеосигнала, устройство-источник 12 обычно вещает видеоконтент одновременно на многие приемные устройства.
В других примерах передатчик 22, канал связи 16 и приемник 24 могут быть приспособлены осуществлять связь в любой системе проводной или беспроводной связи, включая Ethernet, телефонную сеть (например, POTS), кабельные, электрокабельные и оптоволоконные системы и/или беспроводную систему, содержащую систему связи множественного доступа с кодовым разделением (CDMA или CDMA2000), систему множественного доступа с частотным разделением каналов (FDMA), систему множественного доступа с ортогональным частотным разделением каналов (OFDM), систему множественного доступа с временным разделением каналов (TDMA), например GSM (Глобальную систему мобильной связи), GPRS (радиослужбу пакетной передачи данных) или EDGE (среда GSM, усовершенствованная для передачи данных), систему TETRA (Наземную систему транкинговой радиосвязи), широкополосную систему множественного доступа с кодовым разделением каналов (WCDMA), систему высокой скорости передачи данных 1xEV-DO или систему 1xEV-DO Gold Multicast, IEEE 802.18, систему MediaFLOTM, систему DMB, систему DVB-H или другую схему для передачи данных между двумя или более устройствами.
Видеокодер 20 и видеодекодер 26 можно реализовать в виде одного или нескольких микропроцессоров, цифровых сигнальных процессоров (DSP), специализированных интегральных схем (ASIC), вентильных матриц, программируемых пользователем (FPGA), дискретной логики, программного обеспечения, оборудования, программно-аппаратного обеспечения или любой их комбинации. Видеокодер 20 и видеодекодер 26 могут входить в состав одного или нескольких кодеров или декодеров, любой из которых может составлять часть объединенного кодера/декодера (кодека) в соответствующем мобильном устройстве, абонентском устройстве, широковещательном устройстве, сервере и пр. Кроме того, устройство-источник 12 и приемное устройство 14 могут включать в себя соответствующие компоненты модуляции, демодуляции, частотного преобразования, фильтрации и усиления для передачи и приема кодированного видеосигнала, в том числе радиочастотные (РЧ) беспроводные компоненты и антенны, достаточные для поддержки беспроводной связи. Однако для простоты иллюстрации такие компоненты объединяются в передатчике 22 устройства-источника 12 и приемнике 24 приемного устройства 14, показанных на фиг. 1.
На фиг. 2 показана блок-схема, демонстрирующая пример видеокодера 20, который осуществляет методы кодирования, отвечающие этому раскрытию. Видеокодер 20 может соответствовать видеокодеру устройства-источника 12, показанного на фиг. 1. Видеокодер 20 осуществляет внутреннее и внешнее кодирование блоков в кодированных единицах, например видеокадрах или секциях. Внутреннее кодирование опирается на пространственное прогнозирование для сокращения или устранения пространственной избыточности в видеоданных в данном видеокадре, секции или другой кодированной единице. В порядке иллюстрации будут описаны техники для секции кадра. Однако техники можно использовать для любой кодированной единицы, например полного кадра или любой части кадра. Для внутреннего кодирования видеокодер 20 образует прогностический блок на основании одного или нескольких ранее кодированных блоков в одной и той же секции при кодировании блока. Внешнее кодирование опирается на временное прогнозирование для сокращения или устранения временной избыточности в соседних кадрах видеопоследовательности. Для внешнего кодирования видеокодер 20 осуществляет оценку движения для отслеживания движения совпадающих видеоблоков между двумя или более соседними кадрами.
Согласно фиг. 2 видеокодер 20 принимает текущий видеоблок в видеокадре или секции, подлежащем/й кодированию. Видеокодер 20 включает в себя компоненты для осуществления временного прогнозирования и пространственного прогнозирования. В примере, показанном на фиг. 2, видеокодер 20 включает в себя модуль 30 пространственного прогнозирования, модуль 32 оценки движения, модуль 33 выбора режима, хранилище 34 опорных кадров, модуль 36 компенсации движения, модуль 38 преобразования блоков, модуль 40 квантования, модуль 42 обратного квантования, модуль 44 обратного преобразования и модуль 46 энтропийного кодирования. Внутриконтурный противоблоковый фильтр (непоказанный) можно применять к реконструированным видеоблокам для устранения артефактов, связанных с разбиением на блоки. Видеокодер 20 также включает в себя сумматоры 48A и 48B (“сумматоры 48”). Модуль 32 оценки движения и модуль 36 компенсации движения осуществляют временное прогнозирование для внешнего кодирования видеоблоков. Модуль 30 пространственного прогнозирования осуществляет пространственное прогнозирование для внутреннего кодирования видеоблоков.
Для осуществления временного прогнозирования модуль 32 оценки движения сравнивает текущий видеоблок с блоками в одном или нескольких соседних видеокадрах для генерации одного или нескольких векторов движения. Текущий видеоблок - это видеоблок, кодируемый в данный момент, и может содержать вход видеокодера 20. Соседний кадр или кадры (которые включают в себя видеоблоки, с которыми сравнивается текущий видеоблок) можно извлекать из хранилища кадров 34. Хранилище кадров 34 может содержать память или устройство хранения данных любого типа для хранения одного или нескольких ранее кодированных кадров или блоков. В этом случае в хранилище кадров могут храниться блоки ранее кодированных кадров. Модуль 32 оценки движения идентифицирует блок соседнего кадра, который максимально совпадает с текущим видеоблоком, например блок в соседнем кадре, имеющий наименьшую среднеквадратическую ошибку (MSE), сумму квадратов разностей (SSD), сумму модулей разностей (SAD) или наименьшую стоимость скорости-искажения. Оценку движения можно осуществлять для блоков переменных размеров, например 16x16, 16x8, 8x16, 8x8 или меньших размеров блоков, на основании типа блока текущего видеоблока.
Модуль 32 оценки движения генерирует вектор движения (MV) (или несколько MV в случае двустороннего прогнозирования), который указывает величину и направление смещения между текущим видеоблоком и идентифицированным прогнозируемым блоком, используемым для кодирования текущего видеоблока. Векторы движения могут иметь точность в половину или четверть пикселя, или даже еще более высокую точность, что позволяет видеокодеру 20 отслеживать движение с точностью, превышающей целочисленные пиксельные положения, и получать лучший прогностический блок. С использованием результирующего вектора движения модуль 36 компенсации движения формирует прогностический видеоблок путем компенсации движения. В случае целочисленной пиксельной точности модуль 36 компенсации движения выбирает блок в положении, указанном вектором движения, в качестве прогностического блока. В случае дробной пиксельной точности модуль 36 компенсации движения может осуществлять интерполяцию для формирования прогностического блока.
В случае пространственного прогнозирования модуль 30 пространственного прогнозирования генерирует прогностический блок на основании одного или нескольких соседних блоков в общем кадре. Модуль 30 пространственного прогнозирования может, например, генерировать прогностический блок путем осуществления интерполяции с использованием одного или нескольких соседних блоков в текущем кадре и выбранного режима прогнозирования. Один или несколько соседних блоков в текущем кадре можно, например, извлекать из хранилища 34 кадров. Таким образом, в случае пространственного прогнозирования в хранилище 34 кадров могут храниться ранее кодированные блоки текущего кадра, которые были декодированы и реконструированы. Например, для типа блока Intra 16x16 модуль 30 пространственного прогнозирования может генерировать прогностический блок с использованием одного из четырех режимов прогнозирования: режима прогнозирования DC, режима прогнозирования по горизонтали, режима прогнозирования по вертикали и режима прогнозирования в плоскости. В другом примере модуль 30 пространственного прогнозирования может выбирать один из соседних блоков в текущем кадре в качестве прогностического блока. Таким образом, модуль 30 пространственного прогнозирования опирается на блоки в общем кадре для генерации прогностического блока, а не на блоки в соседних кадрах.
Модуль 33 выбора режима избирательно переключается между прогностическим блоком, генерируемым модулем 30 пространственного прогнозирования, и прогностическим блоком, генерируемым модулем 36 компенсации движения, на основании режима кодирования, выбранного для кодирования текущего блока. Таким образом, видеокодер 20 может избирательно осуществлять внешнее кодирование и внутреннее кодирование, например, на покадровой или поблочной основе. Видеокодер 20 генерирует остаточную информацию (обозначенную “RESID INFO” на фиг. 2) путем вычитания выбранного прогностического блока, полученного из текущего видеоблока на сумматоре 48A. Таким образом, в случае внутреннего кодирования видеокодер 20 генерирует остаточную информацию путем вычитания выбранного прогностического блока, выведенного модулем 30 пространственного прогнозирования из текущего видеоблока на сумматоре 48A. В случае внешнего кодирования видеокодер 20 генерирует остаточную информацию путем вычитания выбранного прогностического блока, выведенного модулем 36 компенсации движения из текущего видеоблока на сумматоре 48A. Как описано выше, остаточная информация выражает различия между прогностическим видеоблоком и видеоблоком, кодируемым в данный момент. Модуль 38 преобразования блоков применяет преобразование, например ДКП или целочисленное преобразование 4x4 или 8x8, к остаточной информации для генерации остаточных коэффициентов преобразования. Модуль квантования 40 квантует остаточные коэффициенты преобразования для дальнейшего снижения битовой скорости.
После квантования модуль 42 обратного квантования и модуль 44 обратного преобразования могут применять обратное квантование и обратное преобразование соответственно для реконструкции остаточной информации (обозначенной “RECON RESID” на фиг. 2). Сумматор 48B суммирует реконструированную остаточную информацию и прогностический блок, созданный модулем 36 компенсации движения или модулем 30 пространственного прогнозирования для создания реконструированного видеоблока для сохранения в хранилище 34 кадров. Модуль 32 оценки движения и модуль 36 компенсации движения могут использовать реконструированный видеоблок для внешнего кодирования блока в следующем видеокадре. Дополнительно модуль 30 пространственного прогнозирования может использовать реконструированный блок для внутреннего кодирования другого блока в текущем кадре.
Модуль 46 энтропийного кодирования принимает остаточную информацию в виде квантованных остаточных коэффициентов для текущего видеоблока от модуля квантования 40. Дополнительно модуль 46 энтропийного кодирования принимает информацию заголовка блока для текущего видеоблока в виде одного или нескольких синтаксических элементов заголовка от модуля 33 выбора режима и других компонентов видеокодера 20. Синтаксические элементы заголовка могут идентифицировать конкретные характеристики текущего видеоблока. Для внутренне кодируемого блока, например, модуль 46 энтропийного кодирования может принимать синтаксический элемент типа блока и синтаксический элемент режима прогнозирования от модуля 33 выбора режима и синтаксические элементы CBP для яркости и цветности от модуля квантования 40. Для внешне кодируемого блока модуль 46 энтропийного кодирования может дополнительно принимать один или несколько векторов движения в качестве синтаксических элементов для текущего видеоблока от модуля 32 оценки движения. Вышеописанные синтаксические элементы являются примерами синтаксических элементов, которые может принимать модуль 46 энтропийного кодирования. Модуль 46 энтропийного кодирования может принимать больше или меньше синтаксических элементов.
Модуль энтропийного кодирования 46 кодирует информацию заголовка и остаточную информацию для текущего видеоблока для генерации кодированного битового потока. Модуль 46 энтропийного кодирования кодирует информацию заголовка каждого из блоков согласно методикам, отвечающим данному раскрытию. В частности, модуль 46 энтропийного кодирования адаптивно выбирает таблицу кодирования для использования при кодировании синтаксического элемента каждого из блоков на основании соответствующих синтаксических элементов ранее кодированных блоков. Другими словами, модуль 46 энтропийного кодирования адаптивно выбирает таблицу кодирования на поблочной основе на основании синтаксических элементов ранее кодированных блоков. Таким образом, модуль 46 энтропийного кодирования может выбирать первую таблицу кодирования для первого блока кадра и вторую таблицу кодирования для второго блока кадра на основании синтаксических элементов одного или нескольких ранее кодированных блоков. В ряде случаев ранее кодированные блоки, используемые при осуществлении выбора, кодировались с использованием таблицы кодирования, отличной от выбранной таблицы кодирования.
В одном аспекте модуль 46 энтропийного кодирования может адаптивно выбирать таблицу кодирования для использования при кодировании внутренне-прогностических типов блока на основании одного или нескольких видеоблоков, соседствующих с текущим видеоблоком, т.е. соседних видеоблоков. В другом аспекте модуль 46 энтропийного кодирования может выбирать таблицу кодирования на основании процента ранее кодированных блоков, которые имеют типы блока Intra 16x16. Однако в порядке иллюстрации модуль 46 энтропийного кодирования будет описан как адаптивно выбирающий таблицу кодирования для кодирования внутренне-прогностический тип блока на основании соседнего блока, расположенного непосредственно над текущим блоком (“верхним соседним блоком”), и соседнего блока непосредственно влево от текущего блока (“левого соседнего блока”). Однако модуль энтропийного кодирования 46 может анализировать любое количество соседних блоков в любом положении при выборе таблицы кодирования для кодирования. Кроме того, модуль 46 энтропийного кодирования может использовать аналогичные методики для адаптивного выбора таблицы кодирования для внешне-прогностических типов блока на основании типов блока ранее кодированных видеоблоков. Дополнительно методики, отвечающие данному раскрытию, можно дополнительно применять к адаптивному выбору таблицы кодирования для кодирования других синтаксических элементов текущего видеоблока, например режима прогнозирования, CBP яркости, CBP цветности, разбиения на блоки, вектора движения и пр.
Модуль 46 энтропийного кодирования может выбирать таблицу кодирования, которая связывает типы блока Intra 4x4 или Intra 8x8 с более коротким кодовым словом, чем тип блока Intra 16x16, когда верхний соседний блок и левый соседний блок не имеют типов блока Intra 16x16. Модуль 46 энтропийного кодирования может, например, выбирать таблицу кодирования, которая связывает тип блока Intra 4x4 и Intra 8x8 с кодовым словом “0” (т.е. однобитовым кодовым словом) и связывает тип блока Intra 16x16 с кодовым словом “10” (т.е. двухбитовым кодовым словом), например, согласно стандарту AVC H.264/MPEG-4 часть 10. Модуль 46 энтропийного кодирования может выбирать таблицу кодирования, которая связывает тип блока Intra 16x16 с более коротким кодовым словом, чем типы блока Intra 4x4 или Intra 8x8, когда верхний соседний блок и левый соседний блок имеют типы блока Intra 16x16. В одном примере выбранная таблица кодирования может связывать тип блока Intra 16x16 с кодовым словом “0” (т.е. однобитовым кодовым словом) и связывать типы блока Intra 4x4 и Intra 8x8 с кодовым словом “10” (т.е. двухбитовым кодовым словом), когда верхний и левый соседние блоки имеют типы блока Intra 16x16. Таким образом, эвристическое правило работы модуля 46 энтропийного кодирования состоит в том, что, если верхний и левый соседние блоки имеют типы блока Intra 16x16, вероятность того, что текущий видеоблок является блоком типа Intra 16x16, возрастает. В ряде случаев текущий блок может не иметь тип блока Intra 16x16, и адаптивно выбранная таблица кодирования может приводить к использованию более длинного кодового слова для типа блока Intra 8x8 или 4x4. Однако обычно эвристическое правило выполняется, что позволяет экономить биты для кодирования типа блока Intra 16x16. Таким образом, видеокодер 20 адаптивно выбирает таблицы кодирования, которые более эффективно кодируют блоки, когда чаще используется тип блока Intra 16x16.
Модуль 46 энтропийного кодирования также может прогнозировать один или несколько других синтаксических элементов текущего блока на основании, по меньшей мере, одного ранее кодированного блока в попытке дополнительно сократить количество битов, используемых для кодирования синтаксических элементов заголовка блока. Например, модуль 46 энтропийного кодирования может пытаться прогнозировать совместно синтаксический элемент режима прогнозирования и синтаксические элементы CBP яркости/цветности текущего блока из предыдущих блоков, например верхнего и левого соседних блоков. Например, модуль 46 энтропийного кодирования может прогнозировать режим прогнозирования и CBP яркости/цветности текущего блока как режим прогнозирования и CBP яркости/цветности одного из соседних блоков, когда, по меньшей мере, один из соседних блоков имеет тип блока Intra 16x16. Модуль 46 энтропийного кодирования сравнивает режим прогнозирования и CBP яркости/цветности текущего блока с прогнозируемым режимом прогнозирования и CBP яркости/цветности, и, если прогнозирование увенчивается успехом, т.е. они одинаковы, модуль 46 энтропийного кодирования кодирует флаг, который указывает успех прогнозирования. Таким образом, модуль 46 энтропийного кодирования связывает режим прогнозирования и CBP яркости/цветности и представляет их с использованием флага (например, 1-битового флага) вместо того, чтобы кодировать каждый синтаксический элемент по отдельности, что приводит к дальнейшему сокращению количества битов, используемых для кодирования синтаксических элементов.
Если прогнозирование режима прогнозирования, CBP яркости и CBP цветности не увенчалось успехом, модуль 46 энтропийного кодирования устанавливает флаг для указания неудачного прогнозирования. Модуль 46 энтропийного кодирования может пытаться прогнозировать только режим прогнозирования текущего блока из предыдущих блоков. Например, модуль 46 энтропийного кодирования может прогнозировать режим прогнозирования текущего блока как режим прогнозирования одного из соседних блоков, когда, по меньшей мере, один из соседних блоков имеет тип блока Intra 16x16. Модуль 46 энтропийного кодирования сравнивает режим прогнозирования текущего блока с прогнозируемым режимом прогнозирования, и, если прогнозирование увенчивается успехом, т.е. они одинаковы, модуль 46 энтропийного кодирования кодирует флаг режима прогнозирования (например, 1-битовый флаг режима прогнозирования), который указывает успех прогнозирования. Если прогнозирование увенчалось успехом, 1-битовый флаг режима прогнозирования передается вместо 2-битового кодового слова фиксированной длины для режима прогнозирования, что позволяет сэкономить, по меньшей мере, один дополнительный бит. Модуль 46 энтропийного кодирования кодирует CBP яркости и CBP цветности по отдельности. Если прогнозирование режима прогнозирования также не увенчалось успехом или модуль 46 энтропийного кодирования не пытается прогнозировать режим прогнозирования, то модуль 46 энтропийного кодирования кодирует каждый из синтаксических элементов с использованием отдельных кодовых книг, не кодируя дополнительные флаги для указания успешного или неуспешного прогнозирования.
Модуль 46 энтропийного кодирования может действовать согласно иллюстративному псевдокоду, приведенному ниже, для осуществления техник внутреннего кодирования согласно одному аспекту этого раскрытия.
Encode I16MBtype(currMB)
{
Пусть upI16 равно 1 если up MB type равен I16;
Пусть leftI16 равно 1 если left MB type равен I16;
Если (upI16 = 1 && leftI16 = 1)
кодировать currMBType с использованием кодовых слов {“0”, “10”, “11”} для {I16, I4/8, IPCM};
Иначе
кодировать currMBType с использованием кодовых слов {“0”, “10”, “11”} для {I4/8, I16, IPCM};
// нижеследующий код прогнозирует I16mode/CBP для currMB
{
upValue = upI16 ? I16value(upMB): 0;
leftValue = leftI16 ? I16value(leftMB): 0;
Если (upI16 && leftI16)
predValue = min(upValue, leftValue);
Иначе если (upI16)
predValue = upValue;
Иначе если (leftI16)
predValue = leftValue;
Иначе
predValue = -1;
currValue = I16value(currMB);
Если (predValue == -1)
{
отправить currPredMode в 2-битовом FLC
отправить currLumaCBP в 1-битовом FLC
отправить currChromaCBP с использованием кодовых слов {0, 10, 11}
}
Иначе если (currValue == predValue)
отправить флаг “1”
Иначе
{
отправить флаг “0”
отправить currPredMode в 2-битовом FLC
отправить currLumaCBP в 1-битовом FLC
отправить currChromaCBP с использованием кодовых слов {0, 10, 11}
}
}
}
Int I16value(thisMB)
{
Пусть thisPredMode это режим прогнозирования для thisMB
Пусть thisLumaCBP это CBP яркости для thisMB
Пусть thisChromaCBP это CBP цветности для thisMB
возврат thisPredMode + (thisLumaCBP << 4) + (thisChromaCBP << 2);
}
Первоначально модуль 46 энтропийного кодирования устанавливает переменную upI16 равной “1”, если верхний соседний блок имеет тип блока Intra 16x16, и устанавливает переменную upI16 равной “0”, если верхний соседний блок имеет тип блока Intra 16x16. Аналогично модуль 46 энтропийного кодирования устанавливает переменную leftI16 равной “1”, если левый соседний блок имеет тип блока Intra 16x16, и устанавливает переменную leftI16 равной “0”, если левый соседний блок имеет тип блока Intra 16x16.
Модуль 46 энтропийного кодирования избирательно кодирует тип блока текущего блока на основании типов блока верхнего и левого соседних блоков. В частности, модуль 46 энтропийного кодирования кодирует тип блока текущего блока (т.е. currMBtype) с использованием кодовых слов “0”, “10” и “11” для Intra 16x16 (I16), Intra 4x4 или 8x8 (I4/8) и необработанных пиксельных данных (IPCM), соответственно, когда upI16 и leftI16 равны “1”. Таким образом, кодовое слово переменной длины, назначенное для типа блока Intra 16x16 (I16) короче, чем кодовое слово переменной длины, назначенное для типов блока Intra 4x4 или Intra 8x8 (I4/8) или типа блока необработанных пиксельных данных (IPCM). Когда upI16, leftI16 или оба имеют тип блока, отличный от Intra 16x16, модуль 46 энтропийного кодирования кодирует тип блока текущего блока (т.е. currMBtype) с использованием кодовых слов “0”, “10”, “11” для типов блока I4/8, I16, IPCM соответственно.
Хотя согласно вышеописанному иллюстративному псевдокоду модуль 46 энтропийного кодирования выбирает таблицы кодирования для использования при кодировании типа блока текущего блока на основании верхнего и левого соседних блоков, модуль 46 энтропийного кодирования может анализировать больше соседних блоков при осуществлении выбора. Кроме того, модуль 46 энтропийного кодирования может выбирать таблицы кодирования для использования при кодировании на основании других критериев, например процента ранее кодированных блоков, которые имеют тип блока Intra 16x16. Например, модуль 46 энтропийного кодирования может выбирать таблицу кодирования, которая связывает более короткое кодовое слово с типом блока Intra 16x16, когда, по меньшей мере, 10 из последних 20 ранее кодированных блоков имеют типы блока Intra 16x16.
Для прогнозирования режима прогнозирования и CBP (яркости и цветности) модуль 46 энтропийного кодирования инициализирует переменные upValue и leftValue. Переменные upValue и leftValue - это значения режима прогнозирования и CBP (яркости и цветности) для верхнего соседнего блока и левого соседнего блока соответственно. Модуль 46 энтропийного кодирования устанавливает upValue равным “0”, когда upI16 не равно “1”, т.е. когда верхний соседний блок не имеет тип блока Intra 16x16. Когда upI16 равно “1”, т.е. верхний соседний блок имеет тип блока Intra 16x16, модуль 46 энтропийного кодирования вычисляет upValue с использованием функции I16value. Функция I16value возвращает значение, в котором два младших бита соответствуют режиму прогнозирования верхнего соседнего блока, следующие два бита соответствуют CBP цветности верхнего соседнего блока и следующий бит соответствует CBP яркости верхнего соседнего блока. Модуль 46 энтропийного кодирования определяет leftValue аналогичным образом, как upValue. В частности, модуль 46 энтропийного кодирования устанавливает leftValue равным “0”, когда leftI16 не равно “1”, и устанавливает leftValue равным значению, возвращаемому функцией I16value, когда leftI16 равно “1”.
Модуль энтропийного кодирования 46 прогнозирует значение режима прогнозирования и значения CBP для текущего блока (predValue) на основании типов блока соседних блоков и значений режима прогнозирования и CBP соседних блоков, т.е. upValue и leftValue. Если upI16 и leftI16 равны “1”, т.е. оба соседних блока имеют типы блока Intra 16x16, модуль 46 энтропийного кодирования устанавливает predValue равным минимальному из upValue и leftValue. Хотя согласно иллюстративному псевдокоду модуль 46 энтропийного кодирования устанавливает predValue равным минимальному из upValue и leftValue, модуль 46 энтропийного кодирования может устанавливать predValue равным максимальному из upValue и leftValue или комбинации двух значений.
Когда оба соседних блока не имеют типов блока Intra 16x16, модуль 46 энтропийного кодирования устанавливает predValue равным upValue, если только upI16 равно “1”, или устанавливает predValue равным leftValue, если только leftI16 равно “1”. Таким образом, модуль 46 энтропийного кодирования прогнозирует значение режима прогнозирования и значения CBP для текущего блока (predValue) с использованием режима прогнозирования и значений CBP для соседнего блока, который имеет тип блока Intra 16x16. Если ни upI16, ни leftI16 не равно “1”, т.е. ни один из соседних блоков не имеет тип Intra 16x16, модуль 46 энтропийного кодирования устанавливает predValue равным “-1”. Задание predValue равным “-1” указывает, что не существует соседнего блока, который можно использовать для прогнозирования значения режима прогнозирования и значений CBP для текущего блока (predValue).
Затем модуль 46 энтропийного кодирования вычисляет значение режима прогнозирования и CBP для текущего блока (currValue) с использованием функции I16value. После вычисления currValue модуль 46 энтропийного кодирования кодирует режим прогнозирования и CBP текущего блока на основании сравнения currValue и predValue. Если predValue равно “-1”, т.е. не существует соседнего блока, который можно использовать для прогнозирования, модуль 46 энтропийного кодирования кодирует режим прогнозирования текущего блока (currPredMode) с использованием 2-битового кода фиксированной длины, кодирует CBP яркости (currLumaCBP) с использованием 1-битового кода фиксированной длины и кодирует CBP цветности (currChromaCBP) с использованием кодовых слов переменной длины {0, 10, 11}.
2-битовые коды фиксированной длины для currPredMode соответствуют одному из четырех режимов прогнозирования. Например, режим прогнозирования по вертикали может соответствовать коду “00,” режим прогнозирования по горизонтали может соответствовать “01”, режим прогнозирования DC может соответствовать “10” и режим прогнозирования в плоскости может соответствовать “11.” 1-битовый код фиксированной длины для currLumaCBP указывает, существуют ли ненулевые коэффициенты яркости. Например, currLumaCBP, равный “0”, указывает, что не существует ненулевых коэффициентов яркости, и currLumaCBP, равный “1”, указывает, что существует, по меньшей мере, один ненулевой коэффициент яркости. Кодовые слова переменной длины для currChromaCBP указывают, существуют ли ненулевые коэффициенты цветности. Например, значение currChromaCBP, равное “0”, указывает, что все коэффициенты цветности AC и DC равны нулю, значение currChromaCBP, равное “10”, указывает, что существует, по меньшей мере, один ненулевой DC-коэффициент цветности, но не существует ненулевых AC-коэффициентов цветности, и значение currChromaCBP, равное “11”, указывает, что существует, по меньшей мере, один ненулевой DC-коэффициент цветности и, по меньшей мере, один ненулевой AC-коэффициент цветности.
Если predValue не равно “-1”, модуль 46 энтропийного кодирования определяет, равны ли значения currValue и predValue, и если да, передает 1-битовый флаг, заданный равным “1”, для указания того, что прогнозирование увенчалось успехом. Модуль 46 энтропийного кодирования может не передавать никакой другой информации, касающейся режима прогнозирования или CBP яркости/цветности для этого видеоблока. Вместо этого 1-битовый флаг указывает декодеру, что значение прогнозирования (predValue) верно, что позволяет декодеру использовать режим прогнозирования и CBP яркости/цветности, спрогнозированные декодером, по аналогии с описанным выше. Таким образом, модуль 46 энтропийного кодирования связывает режим прогнозирования и CBP яркости/цветности друг с другом путем передачи 1-битового флага, заданного равным “1”. Передача 1-битового флага для указания, что прогнозирование режима прогнозирования и значений CBP увенчалось успехом, позволяет сократить количество битов, которые нужно кодировать для информации заголовка.
Если predValue не равно “-1” и не равно currValue, модуль 46 энтропийного кодирования устанавливает 1-битовый флаг равным “0” для указания декодеру, что прогнозирование не удалось, т.е. currValue не равно predValue. После 1-битового флага модуль 46 энтропийного кодирования кодирует режим прогнозирования текущего блока (currPredMode) с использованием 2-битового кода фиксированной длины, кодирует CBP яркости (currLumaCBP) с использованием 1-битового кода фиксированной длины и кодирует CBP цветности (currChromaCBP) с использованием кодовых слов переменной длины {0, 10, 11}, что подробно описано выше. Таким образом, в этом случае режим прогнозирования и шаблоны кодированных блоков (CBP) передаются по отдельности, а не связываются друг с другом.
В дополнительном аспекте данного раскрытия в случае неудачного прогнозирования режима прогнозирования и CBP яркости/цветности, т.е. когда currValue не равно predValue, модуль 46 энтропийного кодирования может пытаться прогнозировать режим прогнозирования текущего блока на основании режима прогнозирования одного или нескольких соседних блоков. Другими словами, модуль 46 энтропийного кодирования может пытаться прогнозировать режим прогнозирования, не пытаясь также прогнозировать CBP яркости и цветности. Ниже приведен иллюстративный псевдокод для прогнозирования режима прогнозирования.
PredI16mode(currMB)
{
Пусть upMode является режимом прогнозирования соседнего блока непосредственно над текущим блоком;
Пусть leftMode является режимом прогнозирования соседнего блока непосредственно влево от текущего блока;
Если(upI16 && leftI16)
predMode = min(upMode, leftMode);
Иначе если(upI16)
predMode = upMode;
Иначе если(leftI16)
predMode = leftMode;
Иначе
predMode = -1;
Пусть currPredMode является режимом прогнозирования I16 для currMB
Если(predMode == -1)
отправить currPredMode с использованием 2-битового FLC
Иначе если(currPredMode == predMode)
отправить флаг “1”
Если
{
отправить флаг “0”
отправить currPredMode с использованием кодовых слов {0, 10, 11}
}
}
Модуль 46 энтропийного кодирования может инициализировать переменные upMode и leftMode равными режиму прогнозирования соседнего блока непосредственно над текущим блоком и непосредственно влево от текущего блока соответственно. Модуль 46 энтропийного кодирования прогнозирует режим прогнозирования текущего блока (predMode) на основании одного или нескольких соседних блоков. Если upI16 и leftI16 равны “1”, т.е. оба соседних блока имеют типы блока Intra 16x16, модуль 46 энтропийного кодирования устанавливает predMode как минимальный из upMode и leftMode. Вместо минимума модуль 46 энтропийного кодирования может использовать максимальный из upMode и leftMode или их комбинацию. Если оба соседних блока не имеют тип блока Intra 16x16, модуль 46 энтропийного кодирования устанавливает predMode равным режиму прогнозирования верхнего соседнего блока (upMode), если upI16 равно “1”, или устанавливает predMode равным режиму прогнозирования левого соседнего блока, если leftI16 равно “1”. Если ни upI16, ни leftI16 не равно “1”, модуль 46 энтропийного кодирования устанавливает predMode равным “-1”, что указывает, что не существует соседних блоков Intra 16x16, которые можно использовать для прогнозирования режима прогнозирования текущего блока.
Модуль 46 энтропийного кодирования кодирует режим прогнозирования текущего блока (currPredMode) на основании прогнозируемого режима прогнозирования (predMode). Если predMode равен “-1”, модуль 46 энтропийного кодирования кодирует currPredMode с использованием 2-битового кода фиксированной длины, который соответствует одному из четырех возможных режимов прогнозирования. Дополнительно модуль 46 энтропийного кодирования кодирует CBP яркости (currLumaCBP) с использованием 1-битового кода фиксированной длины и CBP цветности (currChromaCBP) с использованием кодовых слов переменной длины {0, 10, 11}, как описано выше. Если predMode не равен “-1”, модуль 46 энтропийного кодирования определяет, равны ли currPredMode и predMode, и если да, передает 1-битовый флаг, равный “1”. Модуль 46 энтропийного кодирования может не передавать никакой другой информации, касающейся режима прогнозирования текущего блока. Вместо этого 1-битовый флаг указывает декодеру, что прогнозирование режима прогнозирования увенчалось успехом. Таким образом, декодер может использовать прогнозируемый режим прогнозирования (predMode) в качестве режима прогнозирования текущего блока. Модуль 46 энтропийного кодирования все же может кодировать currLumaCBP с использованием 1-битового кода фиксированной длины и кодировать currChromaCBP с использованием кодов переменной длины {0, 10, 11}. Таким образом, успешное прогнозирование текущего режима прогнозирования может приводить к сокращению количества битов, необходимых для кодирования текущего блока, даже в случае неудачного прогнозирования связки режима прогнозирования, CBP яркости и CBP цветности.
Если predMode не равен “-1” или currPredMode, модуль 46 энтропийного кодирования устанавливает 1-битовый флаг равным “0” для указания декодеру, что прогнозирование режима прогнозирования не удалось, т.е. что currPredMode не равен predMode. После 1-битового флага модуль 46 энтропийного кодирования кодирует режим прогнозирования текущего блока (currPredMode) с использованием кодовых слов {0, 10, 11}. Поскольку currPredMode не равен predMode, остается только три других возможных режима прогнозирования. Таким образом, модуль 46 энтропийного кодирования может кодировать currPredMode с использованием кодовых слов переменной длины {0, 10, 11}. Модуль 46 энтропийного кодирования также кодирует currLumaCBP и currChromaCBP, что подробно описано выше.
На фиг. 3 показана блок-схема, демонстрирующая иллюстративный модуль 46 энтропийного кодирования, способный кодировать видеоблоки согласно аспекту раскрытия. Модуль 46 энтропийного кодирования может располагаться в видеокодере 20, показанном на фиг. 1 и 2. Модуль 46 энтропийного кодирования принимает данные блока для блока и генерирует кодированный битовый поток для передачи на другое устройство для декодирования. В примере, показанном на фиг. 3, модуль 46 энтропийного кодирования включает в себя модуль кодирования 50, модуль 52 выбора таблицы кодирования и модуль 54 прогнозирования синтаксических элементов.
Модуль кодирования 50 кодирует данные блока для блока с использованием одной или несколько таблиц кодирования. Модуль кодирования 50 может получать таблицы кодирования для использования при кодировании от модуля 52 выбора таблицы кодирования. Модуль 52 выбора таблицы кодирования может сохранять ряд таблиц кодирования для кодирования разных типов данных. Например, модуль 52 выбора таблицы кодирования может сохранять одну или несколько таблиц кодирования для кодирования остаточной информации, одну или несколько таблиц кодирования для кодирования каждого типа синтаксического элемента заголовка, одну или несколько таблиц кодирования для кодирования связок синтаксических элементов заголовка, и пр. В ряде случаев модуль 52 выбора таблицы кодирования может не сохранять таблицы кодирования, но вместо этого извлекать правильную таблицу кодирования их хранилища, внешнего по отношению к модулю 46 энтропийного кодирования.
Модуль 52 выбора таблицы кодирования может адаптивно выбирать таблицу кодирования для использования модулем кодирования 50 при кодировании синтаксического элемента типа блока текущего блока на основании типов блока ранее кодированных блоков. В одном аспекте модуль 52 выбора таблицы кодирования может адаптивно выбирать таблицу кодирования для использования при кодировании типа блока текущего блока на основании одного или нескольких соседних видеоблоков, например на основании верхнего и левого соседних блоков, что подробно описано выше. Модуль 52 выбора таблицы кодирования может, например, выбирать первую таблицу кодирования, которая связывает типы блока Intra 4x4 или Intra 8x8 с более коротким кодовым словом, чем тип блока Intra 16x16, когда верхний соседний блок и левый соседний блок не имеют типов блока Intra 16x16, и выбирать вторую таблицу кодирования, которая связывает тип блока Intra 16x16 с более коротким кодовым словом, чем типы блока Intra 4x4 или Intra 8x8, когда верхний соседний блок и левый соседний блок имеют типы блока Intra 16x16. В другом аспекте модуль 52 выбора таблицы кодирования может выбирать таблицу кодирования на основании процента ранее кодированных блоков, которые имеют типы блока Intra 16x16. Модуль кодирования 50 кодирует синтаксический элемент типа блока текущего блока согласно выбранной таблице кодирования.
В ряде случаев модуль 54 прогнозирования синтаксических элементов может пытаться прогнозировать один или несколько других синтаксических элементов текущего блока на основании ранее кодированных блоков. Для внутренне-прогностического блока, например, модуль 54 прогнозирования синтаксических элементов может пытаться прогнозировать синтаксический элемент режима прогнозирования и синтаксические элементы CBP яркости/цветности текущего блока и/или пытаться прогнозировать синтаксический элемент режима прогнозирования текущего блока без прогнозирования синтаксических элементов CBP яркости/цветности. Модуль 54 прогнозирования синтаксических элементов может прогнозировать режим прогнозирования и CBP яркости/цветности текущего блока как режим прогнозирования и CBP яркости/цветности одного из соседних блоков, когда, по меньшей мере, один из соседних блоков имеет тип блока Intra 16x16.
Модуль кодирования 50 принимает прогнозируемые синтаксические элементы от модуля 54 прогнозирования синтаксических элементов и сравнивает прогнозируемые синтаксические элементы с фактическими синтаксическими элементами текущего блока. Если прогнозирование увенчалось успехом, т.е. прогнозируемые и фактические синтаксические элементы одинаковы, модуль кодирования 50 кодирует флаг, который указывает, что прогнозирование синтаксических элементов, например режим прогнозирования и CBP яркости/цветности в вышеприведенном примере, увенчалось успехом. Модуль кодирования 50, таким образом, связывает режим прогнозирования и CBP яркости/цветности и представляет их с использованием флага (например, 1-битового флага) вместо того, чтобы кодировать каждый синтаксический элемент по отдельности, что приводит к дальнейшему сокращению количества битов, используемых для кодирования синтаксических элементов.
Если прогнозирование режима прогнозирования, CBP яркости и CBP цветности (или другого синтаксического элемента) не увенчалось успехом, модуль кодирования 50 кодирует флаг для указания неудачного прогнозирования. Если прогнозирование режима прогнозирования и CBP яркости/цветности не увенчалось успехом, модуль 54 прогнозирования синтаксических элементов может пытаться прогнозировать режим прогнозирования текущего блока из предыдущих блоков без прогнозирования CBP яркости/цветности. Например, модуль 54 прогнозирования синтаксических элементов может прогнозировать режим прогнозирования текущего блока как режим прогнозирования одного из соседних блоков, когда, по меньшей мере, один из соседних блоков имеет тип блока Intra 16x16.
Модуль кодирования 50 сравнивает режим прогнозирования текущего блока с прогнозируемым режимом прогнозирования, принятым от модуля 54 прогнозирования синтаксических элементов, и, если прогнозирование увенчалось успехом, модуль кодирования 50 кодирует флаг, который указывает успешность прогнозирования режима прогнозирования. Модуль кодирования 50 кодирует CBP яркости и CBP цветности по отдельности с использованием соответствующих таблиц кодирования, связанных с этими синтаксическими элементами. Если прогнозирование режима прогнозирования также не увенчалось успехом или в отсутствие попыток прогнозировать режим прогнозирования, модуль кодирования 50 кодирует каждый из синтаксических элементов по отдельности с использованием соответствующих таблиц кодирования, извлеченных из модуля 52 выбора таблицы кодирования.
На фиг. 4 показана блок-схема, демонстрирующая пример видеодекодера 26, который декодирует видеоданные согласно методам кодирования, отвечающим настоящему раскрытию. Видеодекодер 26 может, например, соответствовать декодеру приемного устройства 14, показанного на фиг. 1. Видеодекодер 26 может осуществлять внутреннее и внешнее кодирование блоков в видеокадрах. В примере, показанном на фиг. 4, видеодекодер 26 включает в себя модуль 60 энтропийного декодирования, модуль 62 пространственного прогнозирования, модуль 63 компенсации движения, модуль 64 обратного квантования, модуль 66 обратного преобразования и хранилище кадров 68. Видеодекодер 26 также включает в себя сумматор 69, который объединяет выходной сигнал модуля 66 обратного преобразования и, в зависимости от того, является ли видеоблок внешне-кодированным или внутренне-кодируемым, выходной сигнал модуля 63 компенсации движения или модуля 62 пространственного прогнозирования соответственно. На фиг. 4 показаны компоненты пространственного прогнозирования видеодекодера 26 для внутреннего декодирования видеоблоков.
Модуль энтропийного декодирования 60 принимает кодированный видеопоток и декодирует кодированный битовый поток для получения остаточной информации (например, в виде квантованных остаточных коэффициентов) и информации заголовка (например, в виде одного или нескольких синтаксических элементов заголовка). Как подробно описано выше, модуль 46 энтропийного кодирования (фиг. 2) адаптивно выбирает таблицы кодирования (например, кодовые книги) для использования при кодировании типов блока на основании типов блока ранее кодированных блоков. Таким образом, модуль 60 энтропийного декодирования может адаптивно выбирать таблицу кодирования для использования при декодировании типов блока аналогичным образом, как модуль 46 энтропийного кодирования для правильного декодирования типов блока текущего блока.
В одном аспекте модуль 60 энтропийного декодирования адаптивно выбирает таблицу кодирования для декодирования типа блока текущего блока на основании одного или нескольких соседних блоков текущей секции, т.е. соседних видеоблоков. Для видеоблока без ранее кодированных соседних видеоблоков, например для первого видеоблока кадра, модуль 60 энтропийного декодирования может выбирать стандартную таблицу кодирования. Стандартная таблица кодирования может представлять собой, например, таблицу кодирования, которая назначает типам блока Intra 4x4 и Intra 8x8 более короткое кодовое слово, чем кодовое слово, назначенное типу блока Intra 16x16. Для видеоблоков в секции, для которой существуют ранее декодированные соседние видеоблоки, модуль 60 энтропийного декодирования может анализировать любое количество соседних блоков в любом положении при выборе таблицы кодирования для декодирования. Однако в порядке иллюстрации описан модуль 60 энтропийного декодирования, адаптивно выбирающий таблицу кодирования для декодирования типа блока для блока на основании верхнего соседнего блока и левого соседнего блока.
В случае внутренне-прогностических типов блока, например, модуль 60 энтропийного декодирования может выбирать таблицу кодирования, которая связывает с типом блока Intra 16x16 более короткое кодовое слово, чем с типами блока Intra 4x4 или Intra 8x8, когда верхний соседний блок и левый соседний блок имеют типы блока Intra 16x16. Таблица кодирования, выбранная, когда верхний соседний блок и левый соседний блок имеют типы блока Intra 16x16, может, например, связывать кодовые слова “0”, “10” и “11” с типом блока Intra 16x16, типами блока Intra 4x4 или Intra 8x8 и типом блока необработанных пиксельных данных (IPCM) соответственно. Когда ни верхний соседний блок, ни левый соседний блок не имеют типов блока Intra 16x16, модуль 60 энтропийного декодирования может выбирать таблицу кодирования, которая связывает более короткое кодовое слово переменной длины с типами блока Intra 4x4/8x8 и связывает более длинное кодовое слово с типом блока Intra 16x16. Модуль 60 энтропийного декодирования декодирует тип блока текущего блока с использованием таблицы кодирования, выбранной на основании соседних блоков.
Хотя в описанном выше примере модуль 60 энтропийного декодирования выбирает таблицу кодирования на основании соседних блоков, модуль 60 энтропийного декодирования может выбирать таблицу кодирования на основании других критериев. Например, модуль 60 энтропийного декодирования может выбирать таблицу кодирования на основании процента ранее кодированных блоков, которые имеют типы блока Intra 16x16, превышающего порог, например, по меньшей мере, 10 из последних 20 ранее кодированных блоков, имеют типы блока Intra 16x16. Кроме того, модуль 60 энтропийного декодирования может адаптивно выбирать таблицу кодирования для декодирования типа блока внешне-кодированных блоков помимо внутренне-кодированных блоков.
Модуль 60 энтропийного декодирования дополнительно декодирует режим прогнозирования, CBP яркости и CBP цветности текущего блока. Как описано выше, модуль 46 энтропийного кодирования (фиг. 2) может прогнозировать один или несколько других синтаксических элементов, например режим прогнозирования и CBP яркости/цветности, для текущего блока из синтаксических элементов одного или нескольких соседних блоков. В случаях успешного прогнозирования модуль 46 энтропийного кодирования связывает режим прогнозирования и CBP яркости/цветности и передает флаг (например, 1-битовый флаг), указывающий, что прогнозирование увенчалось успехом. Таким образом, модуль 60 энтропийного декодирования также может осуществлять прогнозирование одного или нескольких синтаксических элементов таким же образом, как модуль 46 энтропийного кодирования. Например, модуль 60 энтропийного декодирования может прогнозировать синтаксический элемент режима прогнозирования и синтаксические элементы CBP яркости/цветности текущего блока из одного или нескольких предыдущих блоков, например верхнего и левого соседних блоков. Модуль 60 энтропийного декодирования может прогнозировать режим прогнозирования и CBP яркости/цветности текущего блока как режим прогнозирования и CBP яркости/цветности одного из соседних блоков, когда, по меньшей мере, один из соседних блоков имеет тип блока Intra 16x16. Если флаг в кодированном битовом потоке указывает, что прогнозирование режима прогнозирования и CBP увенчалось успехом, модуль 60 энтропийного декодирования выбирает прогнозируемый режим прогнозирования и CBP в качестве режима прогнозирования и CBP текущего блока.
Когда флаг кодированного битового потока указывает, что прогнозирование не увенчалось успехом, модуль 60 энтропийного декодирования принимает режим прогнозирования, CBP яркости и CBP цветности как отдельные кодовые слова. Модуль 60 энтропийного декодирования может декодировать режим прогнозирования с использованием таблицы кодирования с помощью 2-битовых кодов фиксированной длины, которые соответствуют одному из четырех режимов прогнозирования Intra 16x16. Например, режим прогнозирования по вертикали может соответствовать кодовому слову “00”, режим прогнозирования по горизонтали может соответствовать кодовому слову “01”, режим прогнозирования DC может соответствовать кодовому слову “10”, и режим прогнозирования в плоскости может соответствовать кодовому слову “11”. Модуль 60 энтропийного декодирования может декодировать CBP яркости (который указывает, существуют ли ненулевые коэффициенты яркости) с использованием таблицы кодирования с помощью 1-битовых кодовых слов фиксированной длины. Модуль 60 энтропийного декодирования может декодировать CBP цветности (который указывает, существуют ли ненулевые коэффициенты цветности) с использованием таблицы кодирования с помощью кодовых слов переменной длины. Например, таблица кодирования цветности может включать в себя кодовое слово “0” для указания того, что все коэффициенты цветности AC и DC равны нулю, кодовое слово “10” для указания, что существует, по меньшей мере, один ненулевой DC-коэффициент цветности, но не существует ненулевых AC-коэффициентов цветности, и кодовое слово “11” для указания, что существует, по меньшей мере, один ненулевой DC-коэффициент цветности и, по меньшей мере, один ненулевой AC-коэффициент цветности.
В некоторых аспектах модуль 46 энтропийного кодирования (фиг. 2) может пытаться прогнозировать режим прогнозирования в случае неуспешного прогнозирования комбинации режима прогнозирования и CBP яркости/цветности и кодировать флаг, указывающий, увенчалось ли успехом прогнозирование режима прогнозирования. Таким образом, модуль 60 энтропийного декодирования может также осуществлять прогнозирование режима прогнозирования на основании одного или нескольких соседних блоков. Например, модуль 60 энтропийного декодирования может прогнозировать режим прогнозирования текущего блока как режим прогнозирования одного из соседних блоков, когда, по меньшей мере, один из соседних блоков имеет тип блока Intra 16x16. Если флаг указывает, что прогнозирование режима прогнозирования увенчалось успехом, модуль 60 энтропийного декодирования выбирает прогнозируемый режим прогнозирования в качестве режима прогнозирования текущего блока. Если флаг указывает, что прогнозирование не увенчалось успехом или модуль 60 энтропийного декодирования не способен прогнозировать режим прогнозирования, модуль 60 энтропийного декодирования декодирует режим прогнозирования по отдельности.
После энтропийного декодирования кодированных видеоданных, осуществляемых модулем 60 энтропийного декодирования, видеодекодер 26 реконструирует кадры видеопоследовательности поблочно с использованием информации заголовка и остаточной информации. Модуль 60 энтропийного декодирования генерирует прогностический блок с использованием, по меньшей мере, части информации заголовка. Например, в случае внутренне-кодированного блока (или секции) модуль 60 энтропийного декодирования может обеспечивать, по меньшей мере, часть информации заголовка (например, тип блока и режим прогнозирования для этого блока) для модуля 62 пространственного прогнозирования для генерации прогностического блока. Модуль 62 пространственного прогнозирования генерирует прогностический блок с использованием одного или нескольких соседних блоков (или участков соседних блоков) в общей секции согласно информации заголовка. Модуль 30 пространственного прогнозирования может, например, генерировать прогностический блок с размером разбиения, указанным синтаксическим элементом типа блока с использованием режима внутреннего прогнозирования, указанного синтаксическим элементом режима прогнозирования. Один или несколько соседних блоков (или участков соседних блоков) в текущей секции можно, например, извлекать из хранилища 68 кадров.
В случае внешне-кодированного блока (или секции) модуль 60 энтропийного декодирования может обеспечивать, по меньшей мере, часть информации заголовка для модуля 63 компенсации движения для генерации прогностического блока. Модуль 63 компенсации движения может, например, принимать один или несколько векторов движения и типов блока от модуля 60 энтропийного декодирования и один или несколько реконструированных опорных кадров из хранилища 68 опорных кадров и генерировать прогностический блок, т.е. блок скомпенсированного движения.
Модуль 60 энтропийного декодирования обеспечивает остаточную информацию, например, в виде одного или нескольких квантованных остаточных коэффициентов для модуля 64 обратного квантования. Модуль 64 обратного квантования выполняет обратное квантование, т.е. деквантование, квантованных остаточных коэффициентов. Модуль 66 обратного преобразования применяет обратное преобразование, например обратное ДКП или обратное целочисленное преобразование 4x4 или 8x8, к деквантованным остаточным коэффициентам для выработки остаточной информации. Сумматор 69 суммирует прогностический блок, генерируемый модулем пространственного прогнозирования 62, с остаточным блоком от модуля 66 обратного преобразования для формирования декодированного блока.
Поблочное кодирование видеосигнала иногда может приводить к визуально воспринимаемой блочности на границах блоков кодированного видеокадра. В таких случаях противоблоковая фильтрация может сглаживать границы блоков для снижения или устранения визуально воспринимаемой блочности. При этом противоблоковый фильтр (не показан) также можно применять для фильтрации декодированных блоков для снижения или устранения блочности. После любой необязательной противоблоковой фильтрации реконструированные блоки помещаются в хранилище 68 кадров, которое обеспечивает опорные блоки для пространственного и временного прогнозирования и также выдает декодированный видеосигнал на устройство отображения (например, устройство 28, показанное на фиг. 1).
На фиг. 5 показана блок-схема, более подробно демонстрирующая иллюстративный модуль декодирования, например модуль 60 энтропийного декодирования видеодекодера 26. Модуль 60 энтропийного декодирования принимает кодированные видеоданные для блока и декодирует видеоданные для генерации данных блока в виде остаточной информации и информации заголовка. В примере, показанном на фиг. 3, модуль 46 энтропийного кодирования включает в себя модуль декодирования 70, модуль 71 выбора таблицы кодирования и модуль 72 прогнозирования синтаксических элементов.
Модуль 71 выбора таблицы кодирования и модуль 72 прогнозирования синтаксических элементов, по существу, аналогичны модулю 52 выбора таблицы кодирования и модулю 54 выбора синтаксического элемента, показанным на фиг. 3. Модуль 71 выбора таблицы кодирования адаптивно выбирает таблицу кодирования для использования модулем декодирования 70 при декодировании синтаксического элемента типа блока текущего блока на основании типов блока ранее декодированных блоков, что подробно описано выше. Модуль 72 прогнозирования синтаксических элементов прогнозирует один или несколько других синтаксических элементов текущего блока на основании, по меньшей мере, одного ранее декодированного блока и обеспечивает прогнозируемые синтаксические элементы для модуля декодирования 70. Модуль декодирования 70 принимает прогнозируемые синтаксические элементы от модуля 72 прогнозирования синтаксических элементов, и если флаг в кодированном битовом потоке указывает успешное прогнозирование на кодере, модуль декодирования 70 выбирает прогнозируемые синтаксические элементы как синтаксические элементы текущего блока.
На фиг. 6 показана логическая блок-схема, демонстрирующая принцип работы модуля кодирования, например модуля энтропийного кодирования 46 видеокодера 20, кодирующего информацию заголовка для видеоблока, согласно методикам, отвечающим данному раскрытию. Фиг. 6 описана применительно к кодированию синтаксического элемента типа блока для блока. Однако, как описано выше, методики, отвечающие данному раскрытию, можно дополнительно применять к адаптивному выбору таблицы кодирования для кодирования других синтаксических элементов текущего видеоблока, например режима прогнозирования, CBP яркости, CBP цветности, разбиения на блоки, вектора движения и пр. Модуль 46 энтропийного кодирования принимает информацию заголовка видеоблока, подлежащего кодированию (73). Информация заголовка видеоблока может включать в себя ряд синтаксических элементов, которые указывают конкретные характеристики блока, например тип блока, режим прогнозирования, CBP яркости и CBP цветности.
Модуль 46 энтропийного кодирования адаптивно выбирает таблицу кодирования для использования при кодировании типа блока для блока на основании типов блока ранее кодированных блоков (74). В одном примере модуль 46 энтропийного кодирования может адаптивно выбирать таблицу кодирования для использования при кодировании типа блока текущего блока на основании одного или нескольких соседних видеоблоков, например на основании типа блока верхнего соседнего блока и левого соседнего блока. Для внутренне-кодированного блока модуль 46 энтропийного кодирования может выбирать таблицу кодирования, которая связывает типы блока Intra 4x4 или Intra 8x8 с более коротким кодовым словом, чем тип блока Intra 16x16, когда верхний соседний блок и левый соседний блок не имеют типов блока Intra 16x16, и выбирать таблицу кодирования, которая связывает тип блока Intra 16x16 с более коротким кодовым словом, чем типы блока Intra 4x4 или Intra 8x8, когда верхний соседний блок и левый соседний блок имеют типы блока Intra 16x16. Модуль 46 энтропийного кодирования кодирует тип блока для блока согласно выбранной таблице кодирования (75).
Модуль 46 энтропийного кодирования определяет, прогнозировать ли режим прогнозирования, CBP яркости и CBP цветности текущего блока на основании одного или нескольких ранее кодированных блоков (76). Когда модуль 46 энтропийного кодирования способен прогнозировать режим прогнозирования, CBP яркости и CBP цветности, модуль 46 энтропийного кодирования генерирует эти прогнозы (78). Например, модуль 46 энтропийного кодирования может прогнозировать режим прогнозирования и CBP яркости/цветности текущего блока как режим прогнозирования и CBP яркости/цветности одного из соседних блоков, когда, по меньшей мере, один из соседних блоков имеет тип блока Intra 16x16.
Модуль 46 энтропийного кодирования определяет, совпадают ли режим прогнозирования и CBP яркости/цветности текущего блока с прогнозируемыми режимом прогнозирования и CBP яркости/цветности (80). Если режим прогнозирования и CBP яркости/цветности совпадают с прогнозируемыми, модуль 46 энтропийного кодирования кодирует флаг, который указывает, что прогнозирование режима и CBP увенчалось успехом (82). Модуль 46 энтропийного кодирования передает кодированный битовый поток (84). В этом случае кодированный битовый поток включает в себя синтаксический элемент типа кодированного блока и кодированный флаг.
Если прогнозируемый режим прогнозирования и CBP яркости/цветности не совпадают с режимом прогнозирования и CBP яркости/цветности текущего блока, модуль 46 энтропийного кодирования кодирует флаг для указания того, что прогнозирование не увенчалось успехом (86). После кодирования флага для указания, что прогнозирование режима и CBP не увенчалось успехом, или когда модуль 46 энтропийного кодирования не осуществляет прогнозирование режима и CBP, модуль 46 энтропийного кодирования определяет, прогнозировать ли режим прогнозирования текущего блока (88). Когда модуль 46 энтропийного кодирования не способен прогнозировать режим прогнозирования, модуль 46 энтропийного кодирования кодирует остальные синтаксические элементы заголовка по отдельности (96). В этом случае остальные синтаксические элементы заголовка включают в себя тип блока, режим прогнозирования и CBP яркости и цветности. Когда модуль 46 энтропийного кодирования способен прогнозировать режим прогнозирования, модуль 46 энтропийного кодирования может прогнозировать режим прогнозирования текущего блока как режим прогнозирования одного из соседних блоков, когда, по меньшей мере, один из соседних блоков имеет тип блока Intra 16x16 (90).
Модуль 46 энтропийного кодирования определяет, совпадают ли режим прогнозирования текущего блока с прогнозируемым режимом прогнозирования (92). Если режим прогнозирования текущего блока совпадает с прогнозируемым режимом прогнозирования, модуль 46 энтропийного кодирования кодирует флаг для указания того, что прогнозирование режима прогнозирования увенчалось успехом (94). Модуль энтропийного кодирования 46 дополнительно кодирует остальные синтаксические элементы заголовка по отдельности (96). В этом случае остальные синтаксические элементы заголовка включают в себя CBP яркости и CBP цветности.
Если режим прогнозирования текущего блока не совпадает с прогнозируемым режимом прогнозирования, модуль 46 энтропийного кодирования кодирует флаг для указания того, что прогнозирование режима прогнозирования не увенчалось успехом (98). Модуль 46 энтропийного кодирования кодирует остальные синтаксические элементы заголовка по отдельности (96). В этом случае остальные синтаксические элементы заголовка включают в себя режим прогнозирования, а также CBP яркости и цветности. После кодирования остальных синтаксических элементов модуль 46 энтропийного кодирования передает кодированный битовый поток (84). Модуль 46 энтропийного кодирования может передавать кодированные данные по мере их генерации, например передавать тип кодированного блока, когда он генерируется, сопровождаемый кодированным флагом. Альтернативно модуль 46 энтропийного кодирования может сохранять кодированные данные для блока и одновременно передавать кодированные данные для блока. Альтернативно модуль 46 энтропийного кодирования может сохранять кодированные данные для всех блоков в секции и одновременно передавать кодированные данные для всех блоков в секции.
На фиг. 7 показана логическая блок-схема, демонстрирующая принцип работы модуля декодирования, например модуля 60 энтропийного декодирования видеодекодера 26 приемника, декодирующего информацию заголовка видеоблока согласно методикам, отвечающим данному раскрытию. Фиг. 7 описана применительно к декодированию синтаксического элемента типа блока для блока. Однако, как описано выше, методики, отвечающие данному раскрытию, можно дополнительно применять к адаптивному выбору таблицы кодирования для декодирования других синтаксических элементов текущего видеоблока, например режима прогнозирования, CBP яркости, CBP цветности, разбиения на блоки, вектора движения и пр. Модуль 60 энтропийного декодирования принимает кодированный видеоблок (100). Модуль 60 энтропийного декодирования адаптивно выбирает таблицу кодирования для использования при декодировании типа блока кодированного блока (102). В одном аспекте модуль 60 энтропийного декодирования адаптивно выбирает таблицу кодирования для декодирования типа блока текущего блока на основании типов блока одного или нескольких ранее декодированных блоков текущей секции. Например, для внутренне-кодированного блока модуль 60 энтропийного декодирования может выбирать таблицу кодирования, которая связывает с типом блока Intra 16x16 более короткое кодовое слово, чем с типами блока Intra 4x4 или Intra 8x8, когда верхний соседний блок и левый соседний блок имеют типы блока Intra 16x16, и выбирать таблицу кодирования, которая связывает более короткое кодовое слово с типами блока Intra 4x4/8x8, чем с типом блока Intra 16x16, когда, по меньшей мере, один из верхнего соседнего блока и левого соседнего блока не имеет тип блока Intra 16x16. В других аспектах модуль 60 энтропийного декодирования может выбирать таблицу кодирования на основании других критериев, например на основании процента ранее декодированных блоков, которые имеют типы блока Intra 16x16. Для поддержания синхронизации кодера и декодера кодер и декодер используют один и тот же критерий для выбора таблиц кодирования. Модуль 60 энтропийного декодирования декодирует тип блока текущего блока с использованием выбранной таблицы кодирования (104).
Модуль 60 энтропийного декодирования также может прогнозировать режим прогнозирования и CBP яркости/цветности для текущего блока на основании режима прогнозирования и CBP яркости/цветности одного или нескольких соседних блоков (106). Например, модуль 60 энтропийного декодирования может прогнозировать режим прогнозирования и CBP яркости/цветности текущего блока как режим прогнозирования и CBP яркости/цветности одного из соседних блоков, когда, по меньшей мере, один из соседних блоков имеет тип блока Intra 16x16. Модуль 60 энтропийного декодирования может определять, указывает ли флаг в кодированном битовом потоке, что прогнозирование режима прогнозирования и CBP увенчалось успехом (108). Если флаг в кодированном битовом потоке указывает, что прогнозирование режима прогнозирования и CBP увенчалось успехом, например флаг, представляющий успех прогнозирования, равен единице, модуль 60 энтропийного декодирования может выбирать прогнозируемый режим прогнозирования и CBP в качестве режима прогнозирования и CBP текущего блока (110).
В случае неуспешного прогнозирования режима прогнозирования и CBP яркости/цветности, например, когда флаг, представляющий успех прогнозирования, равен нулю, модуль 60 энтропийного декодирования может прогнозировать режим прогнозирования блока на основании режима прогнозирования одного или нескольких соседних блоков (112). Например, модуль 60 энтропийного декодирования может прогнозировать режим прогнозирования текущего блока как режим прогнозирования одного из соседних блоков, когда, по меньшей мере, один из соседних блоков имеет тип блока Intra 16x16. Модуль 60 энтропийного декодирования определяет, указывает ли флаг в кодированном битовом потоке, что прогнозирование режима прогнозирования увенчалось успехом (114). Флаг можно, например, задавать равным 1 в случае успешного прогнозирования режима прогнозирования и задавать равным 0 в случае неуспешного прогнозирования режима прогнозирования. Если флаг указывает, что прогнозирование режима прогнозирования увенчалось успехом, модуль 60 энтропийного декодирования выбирает прогнозируемый режим прогнозирования в качестве режима прогнозирования текущего блока (116).
После выбора прогнозируемого режима прогнозирования в качестве режима прогнозирования текущего блока или когда флаг указывает, что прогнозирование режима прогнозирования не увенчалось успехом, модуль 60 энтропийного декодирования декодирует остальные синтаксические элементы заголовка блока по отдельности с использованием соответствующих таблиц кодирования (118). В случае успешного прогнозирования режима прогнозирования остальные синтаксические элементы заголовка, декодированные модулем 60 энтропийного декодирования, включают в себя CBP яркости и цветности. В случае неуспешного прогнозирования режима прогнозирования остальные синтаксические элементы заголовка, декодированные модулем 60 энтропийного декодирования, включают в себя режим прогнозирования, CBP яркости и CBP цветности с использованием соответствующих таблиц кодирования (118).
Методики, отвечающие данному раскрытию, можно реализовать в оборудовании, программном обеспечении, программно-аппаратном обеспечении или любой их комбинации. Любые признаки, описанные как модули или компоненты, можно реализовать совместно в интегральном логическом устройстве или по отдельности в виде дискретных, но взаимодействующих между собой логических устройств. В случае программной реализации методики можно реализовать, по меньшей мере, отчасти посредством компьютерно-считываемого носителя, содержащего инструкции, которые при их наполнении осуществляют один или несколько из вышеописанных способов. Компьютерно-считываемый носитель может составлять часть компьютерного программного продукта, который может включать в себя упаковочные материалы. Компьютерно-считываемый носитель может содержать оперативную память (ОЗУ, RAM), например синхронную динамическую оперативную память (SDRAM), постоянную память (ПЗУ, ROM), энергонезависимую оперативную память (NVRAM), электрически стираемую программируемую оперативную память (ЭСППЗУ, EEPROM), флэш-память, магнитные или оптические носители данных и пр. Методики дополнительно или альтернативно можно реализовать, по меньшей мере, отчасти посредством компьютерно-считываемой среды связи, которая переносит или передает код в виде инструкций или структур данных и которая допускает доступ, чтение и/или выполнение со стороны компьютера.
Код может исполняться одним или несколькими процессорами, например одним или несколькими цифровыми сигнальными процессорами (DSP), микропроцессорами общего назначения, специализированными интегральными схемами (ASIC), вентильными матрицами, программируемыми пользователем (FPGA), или другой эквивалентной интегральной или дискретной логической схемой. Соответственно, используемый здесь термин “процессор” может означать любую из вышеописанных структур или любую другую структуру, пригодную для реализации описанных здесь методик. Кроме того, в некоторых аспектах описанные здесь функции можно обеспечить посредством специализированных программных модулей или аппаратных модулей, предназначенных для кодирования и декодирования или внедренных в объединенный видеокодер-декодер (кодек). Описание различных признаков в виде модулей призвано подчеркнуть различные функциональные аспекты показанных устройств и не предполагает, что такие модули нужно реализовать в виде отдельных аппаратных или программных компонентов. Напротив, функции, связанные с одним или несколькими модулями, могут быть объединены в общем или отдельных аппаратных или программных компонентах.
Были описаны различные варианты осуществления изобретения. Эти и другие варианты осуществления ограничены объемом, определяемым нижеследующей формулой изобретения.

Claims (92)

1. Способ кодирования видеоданных, содержащий этапы, на которых
выбирают таблицу кодирования для использования при кодировании синтаксического элемента текущего видеоблока кодированной единицы на основании соответствующего синтаксического элемента одного или нескольких ранее кодированных видеоблоков кодированной единицы, причем синтаксический элемент текущего видеоблока содержит одно из типа блока текущего видеоблока, флага кодированного блока и режима прогнозирования, при этом при выборе таблицы кодирования выбирают таблицу кодирования, которая связывает первый тип блока, первый флаг кодированного блока или первый режим прогнозирования с более коротким кодовым словом, чем другие типы блока, флаги кодированного блока или режимы прогнозирования соответственно, когда упомянутые один или несколько ранее кодированных видеоблоков имеют те же типы блока, что и первый тип блока, те же флаги кодированного блока, что и первый флаг кодированного блока, или те же режимы прогнозирования что и первый режим прогнозирования соответственно; и
кодируют синтаксический элемент текущего видеоблока с использованием выбранной таблицы кодирования.
2. Способ по п.1, в котором на этапе выбора таблицы кодирования выбирают таблицу кодирования, которая связывает по меньшей мере один из других типов блока с более коротким кодовым словом, чем кодовое слово, связанное с первым типом блока, когда тип блока по меньшей мере одного из упомянутых одного или нескольких ранее кодированных видеоблоков не является первым типом блока.
3. Способ по п.2, в котором первый тип блока является типом блока Intra 16×16, и другие типы блока включают в себя по меньшей мере тип блока Intra 4×4 и тип блока Intra 8×8.
4. Способ по п.1, в котором синтаксический элемент содержит первый синтаксический элемент заголовка текущего видеоблока, при этом способ дополнительно содержит этапы, на которых
прогнозируют по меньшей мере один другой синтаксический элемент заголовка текущего видеоблока на основании одного из упомянутых одного или нескольких ранее кодированных видеоблоков, и
кодируют флаг для указания того, что прогнозирование этого по меньшей мере одного другого синтаксического элемента заголовка увенчалось успехом, когда упомянутый по меньшей мере один прогнозируемый синтаксический элемент заголовка совпадает с фактическим синтаксическим элементом заголовка текущего видеоблока.
5. Способ по п.4, в котором
на этапе прогнозирования по меньшей мере одного другого синтаксического элемента заголовка текущего видеоблока прогнозируют режим прогнозирования, шаблон кодированных блоков (СВР) яркости и СВР цветности текущего видеоблока на основании одного из упомянутых одного или нескольких ранее кодированных видеоблоков, и
на этапе кодирования флага кодируют флаг для указания того, что прогнозирование режима прогнозирования, СВР яркости и СВР цветности увенчалось успехом, когда прогнозируемые режим прогнозирования, СВР яркости и СВР цветности совпадают с фактическими режимом прогнозирования, СВР яркости и СВР цветности текущего видеоблока.
6. Способ по п.5, дополнительно содержащий этапы, на которых
кодируют флаг для указания того, что прогнозирование режима прогнозирования, СВР яркости и СВР цветности не увенчалось успехом, когда прогнозируемые режим прогнозирования, СВР яркости и СВР цветности не совпадают с фактическими режимом прогнозирования, СВР яркости и СВР цветности текущего видеоблока, и
кодируют каждый из режима прогнозирования, СВР яркости и СВР цветности по отдельности.
7. Способ по п.6, в котором флаг является первым флагом, и на этапе кодирования каждого из режима прогнозирования, СВР яркости и СВР цветности по отдельности
прогнозируют режим прогнозирования текущего видеоблока на основании одного из упомянутых одного или нескольких ранее кодированных видеоблоков, и
кодируют второй флаг для указания того, что прогнозирование режима прогнозирования увенчалось успехом, когда прогнозируемый режим прогнозирования совпадает с фактическим режимом прогнозирования текущего видеоблока.
8. Способ по п.1, в котором на этапе выбора таблицы кодирования выбирают таблицу кодирования на основании соответствующего синтаксического элемента одного или нескольких ранее кодированных видеоблоков, соседствующих с текущим видеоблоком.
9. Способ по п.8, в котором один или несколько ранее кодированных видеоблоков, соседствующих с текущим видеоблоком, содержат по меньшей мере первый ранее кодированный соседний видеоблок, расположенный непосредственно над текущим видеоблоком, и второй ранее кодированный соседний видеоблок, расположенный непосредственно влево от текущего видеоблока.
10. Способ по п.1, дополнительно содержащий этап, на котором передают кодированный синтаксический элемент.
11. Способ по п.1, в котором синтаксический элемент содержит одно из типа блока, режима прогнозирования, шаблона кодированных блоков (СВР) и разбиения на блоки.
12. Способ по п.1, в котором кодированная единица представляет собой кадр или секцию.
13. Устройство кодирования, содержащее модуль кодирования, который включает в себя
модуль выбора, который выбирает таблицу кодирования для использования при кодировании синтаксического элемента текущего видеоблока кодированной единицы на основании соответствующего синтаксического элемента одного или нескольких ранее кодированных видеоблоков кодированной единицы, причем синтаксический элемент текущего видеоблока содержит одно из типа блока текущего видеоблока, флага кодированного блока и режима прогнозирования, при этом при выборе таблицы кодирования выбирается таблица кодирования, которая связывает первый тип блока, первый флаг кодированного блока или первый режим прогнозирования с более коротким кодовым словом, чем другие типы блока, флаги кодированного блока или режимы прогнозирования соответственно, когда упомянутые один или несколько ранее кодированных видеоблоков имеют те же типы блока, что и первый тип блока, те же флаги кодированного блока, что и первый флаг кодированного блока, или те же режимы прогнозирования, что и первый режим прогнозирования соответственно; и
модуль кодирования, который кодирует синтаксический элемент текущего видеоблока с использованием выбранной таблицы кодирования.
14. Устройство по п.13, в котором модуль выбора выбирает таблицу кодирования, которая связывает по меньшей мере один из других типов блока с более коротким кодовым словом, чем кодовое слово, связанное с первым типом блока, когда тип блока по меньшей мере одного из упомянутых одного или нескольких ранее кодированных видеоблоков не является первым типом блока.
15. Устройство по п.14, в котором первый тип блока является типом блока Intra 16×16, и другие типы блока включают в себя по меньшей мере тип блока Intra 4×4 и тип блока Intra 8×8.
16. Устройство по п.13, в котором синтаксический элемент содержит первый синтаксический элемент заголовка текущего видеоблока, при этом устройство дополнительно содержит
модуль прогнозирования, который прогнозирует по меньшей мере один другой синтаксический элемент заголовка текущего видеоблока на основании одного из упомянутых одного или нескольких ранее кодированных видеоблоков,
при этом модуль кодирования кодирует флаг для указания того, что прогнозирование этого по меньшей мере одного другого синтаксического элемента заголовка увенчалось успехом, когда упомянутый по меньшей мере один прогнозируемый синтаксический элемент заголовка совпадает с фактическим синтаксическим элементом заголовка текущего видеоблока.
17. Устройство по п.16, в котором
модуль прогнозирования прогнозирует режим прогнозирования, шаблон кодированных блоков (СВР) яркости и СВР цветности текущего видеоблока на основании одного из упомянутых одного или нескольких ранее кодированных видеоблоков, и
модуль кодирования кодирует флаг для указания того, что прогнозирование режима прогнозирования, СВР яркости и СВР цветности увенчалось успехом, когда прогнозируемые режим прогнозирования, СВР яркости и СВР цветности совпадают с фактическими режимом прогнозирования, СВР яркости и СВР цветности текущего видеоблока.
18. Устройство по п.17, в котором модуль кодирования кодирует флаг для указания того, что прогнозирование режима прогнозирования, СВР яркости и СВР цветности не увенчалось успехом, когда прогнозируемые режим прогнозирования, СВР яркости и СВР цветности не совпадают с фактическими режимом прогнозирования, СВР яркости и СВР цветности текущего видеоблока, и кодирует каждый из режима прогнозирования, СВР яркости и СВР цветности по отдельности.
19. Устройство по п.18, в котором флаг является первым флагом, и
модуль прогнозирования прогнозирует режим прогнозирования текущего видеоблока на основании одного из упомянутых одного или нескольких ранее кодированных видеоблоков, и
модуль кодирования кодирует второй флаг для указания того, что прогнозирование режима прогнозирования увенчалось успехом, когда прогнозируемый режим прогнозирования совпадает с фактическим режимом прогнозирования текущего видеоблока.
20. Устройство по п.13, в котором модуль выбора выбирает таблицу кодирования на основании соответствующего синтаксического элемента одного или нескольких ранее кодированных видеоблоков, соседствующих с текущим видеоблоком.
21. Устройство по п.20, в котором один или несколько ранее кодированных видеоблоков, соседствующих с текущим видеоблоком, содержат по меньшей мере первый ранее кодированный соседний видеоблок, расположенный непосредственно над текущим видеоблоком, и второй ранее кодированный соседний видеоблок, расположенный непосредственно влево от текущего видеоблока.
22. Устройство по п.13, дополнительно содержащее передатчик, который передает кодированный синтаксический элемент.
23. Устройство по п.13, в котором синтаксический элемент содержит одно из типа блока, режима прогнозирования, шаблона кодированных блоков (СВР) и разбиения на блоки.
24. Устройство по п.13, в котором кодированная единица представляет собой кадр или секцию.
25. Устройство по п.13, которое представляет собой устройство беспроводной связи.
26. Устройство по п.13, которое представляет собой устройство на основе интегральной схемы.
27. Компьютерно-считываемый носитель, содержащий инструкции, предписывающие процессору
выбирать таблицу кодирования для использования при кодировании синтаксического элемента текущего видеоблока кодированной единицы на основании соответствующего синтаксического элемента одного или нескольких ранее кодированных видеоблоков кодированной единицы, причем синтаксический элемент текущего видеоблока содержит одно из типа блока текущего видеоблока, флага кодированного блока и режима прогнозирования, при этом при выборе таблицы кодирования выбирается таблица кодирования, которая связывает первый тип блока, первый флаг кодированного блока или первый режим прогнозирования с более коротким кодовым словом, чем другие типы блока, флаги кодированного блока или режимы прогнозирования соответственно, когда упомянутые один или несколько ранее кодированных видеоблоков имеют те же типы блока, что и первый тип блока, те же флаги кодированного блока, что и первый флаг кодированного блока, или те же режимы прогнозирования, что и первый режим прогнозирования соответственно; и
кодировать синтаксический элемент текущего видеоблока с использованием выбранной таблицы кодирования.
28. Компьютерно-считываемый носитель по п.27, в котором инструкции, предписывающие процессору выбирать таблицу кодирования, содержат инструкции, предписывающие процессору выбирать таблицу кодирования, которая связывает по меньшей мере один из других типов блока с более коротким кодовым словом, чем кодовое слово, связанное с первым типом блока, когда тип блока по меньшей мере одного из упомянутых одного или нескольких ранее кодированных видеоблоков не является первым типом блока.
29. Компьютерно-считываемый носитель по п.28, в котором первый тип блока является типом блока Intra 16×16, и другие типы блока включают в себя по меньшей мере тип блока Intra 4×4 и тип блока Intra 8×8.
30. Компьютерно-считываемый носитель по п.27, в котором синтаксический элемент содержит первый синтаксический элемент заголовка текущего видеоблока, причем компьютерно-считываемый носитель дополнительно содержит инструкции, предписывающие процессору прогнозировать по меньшей мере один другой синтаксический элемент заголовка текущего видеоблока на основании одного из упомянутых одного или нескольких ранее кодированных видеоблоков, и
кодировать флаг для указания того, что прогнозирование этого по меньшей мере одного другого синтаксического элемента заголовка увенчалось успехом, когда упомянутый по меньшей мере один прогнозируемый синтаксический элемент заголовка совпадает с фактическим синтаксическим элементом заголовка текущего видеоблока.
31. Компьютерно-считываемый носитель по п.30, в котором инструкции, предписывающие процессору прогнозировать по меньшей мере один другой синтаксический элемент заголовка текущего видеоблока, содержат инструкции, предписывающие процессору прогнозировать режим прогнозирования, шаблон кодированных блоков (СВР) яркости и СВР цветности текущего видеоблока на основании одного из упомянутых одного или нескольких ранее кодированных видеоблоков, и
инструкции, предписывающие процессору кодировать флаг, содержат инструкции, предписывающие процессору кодировать флаг для указания того, что прогнозирование режима прогнозирования, СВР яркости и СВР цветности увенчалось успехом, когда прогнозируемые режим прогнозирования, СВР яркости и СВР цветности совпадают с фактическими режимом прогнозирования, СВР яркости и СВР цветности текущего видеоблока.
32. Компьютерно-считываемый носитель по п.31, дополнительно содержащий инструкции, предписывающие процессору
кодировать флаг для указания того, что прогнозирование режима прогнозирования, СВР яркости и СВР цветности не увенчалось успехом, когда прогнозируемые режим прогнозирования, СВР яркости и СВР цветности не совпадают с фактическими режимом прогнозирования, СВР яркости и СВР цветности текущего видеоблока, и
кодировать каждый из режима прогнозирования, СВР яркости и СВР цветности по отдельности.
33. Компьютерно-считываемый носитель по п.32, при этом флаг является первым флагом, и инструкции, предписывающие процессору кодировать каждый из режима прогнозирования, СВР яркости и СВР цветности по отдельности, содержат инструкции, предписывающие процессору
прогнозировать режим прогнозирования текущего видеоблока на основании одного из упомянутых одного или нескольких ранее кодированных видеоблоков, и
кодировать второй флаг для указания того, что прогнозирование режима прогнозирования увенчалось успехом, когда прогнозируемый режим прогнозирования совпадает с фактическим режимом прогнозирования текущего видеоблока.
34. Компьютерно-считываемый носитель по п.27, в котором инструкции, предписывающие процессору выбирать таблицу кодирования, содержат инструкции, предписывающие процессору выбирать таблицу кодирования на основании соответствующего синтаксического элемента одного или нескольких ранее кодированных видеоблоков, соседствующих с текущим видеоблоком.
35. Компьютерно-считываемый носитель по п.34, при этом один или несколько ранее кодированных видеоблоков, соседствующих с текущим видеоблоком, содержат по меньшей мере первый ранее кодированный соседний видеоблок, расположенный непосредственно над текущим видеоблоком, и второй ранее кодированный соседний видеоблок, расположенный непосредственно влево от текущего видеоблока.
36. Компьютерно-считываемый носитель по п.27, дополнительно содержащий инструкции, предписывающие процессору передавать кодированный синтаксический элемент.
37. Компьютерно-считываемый носитель по п.27, при этом синтаксический элемент содержит одно из типа блока, режима прогнозирования, шаблона кодированных блоков (СВР) и разбиения на блоки.
38. Компьютерно-считываемый носитель по п.27, при этом кодированная единица представляет собой кадр или секцию.
39. Устройство кодирования, содержащее средство для выбора таблицы кодирования для использования при кодировании синтаксического элемента текущего видеоблока кодированной единицы на основании соответствующего синтаксического элемента одного или нескольких ранее кодированных видеоблоков кодированной единицы, при этом синтаксический элемент текущего видеоблока содержит тип блока текущего видеоблока, и средство выбора выбирает таблицу кодирования, которая связывает первый тип блока с более коротким кодовым словом, чем другие типы блока, когда типы блока упомянутых одного или нескольких ранее кодированных видеоблоков являются первым типом блока; и
средство для кодирования синтаксического элемента текущего видеоблока с использованием выбранной таблицы кодирования.
40. Устройство по п.39, в котором средство выбора выбирает таблицу кодирования, которая связывает по меньшей мере один из других типов блока с более коротким кодовым словом, чем кодовое слово, связанное с первым типом блока, когда тип блока по меньшей мере одного из упомянутых одного или нескольких ранее кодированных видеоблоков не является первым типом блока.
41. Устройство по п.40, в котором первый тип блока является типом блока Intra 16×16, и другие типы блока включают в себя по меньшей мере тип блока Intra 4×4 и тип блока Intra 8×8.
42. Устройство по п.39, в котором синтаксический элемент содержит первый синтаксический элемент заголовка текущего видеоблока, при этом устройство дополнительно содержит
средство для прогнозирования по меньшей мере одного другого синтаксического элемента заголовка текущего видеоблока на основании одного из упомянутых одного или нескольких ранее кодированных видеоблоков,
причем средство кодирования кодирует флаг для указания того, что прогнозирование этого по меньшей мере одного другого синтаксического элемента заголовка увенчалось успехом, когда упомянутый по меньшей мере один прогнозируемый синтаксический элемент заголовка совпадает с фактическим синтаксическим элементом заголовка текущего видеоблока.
43. Устройство по п.42, в котором
средство прогнозирования прогнозирует режим прогнозирования, шаблон кодированных блоков (СВР) яркости и СВР цветности текущего видеоблока на основании одного из упомянутых одного или нескольких ранее кодированных видеоблоков, и
средство кодирования кодирует флаг для указания того, что прогнозирование режима прогнозирования, СВР яркости и СВР цветности увенчалось успехом, когда прогнозируемые режим прогнозирования, СВР яркости и СВР цветности совпадают с фактическими режимом прогнозирования, СВР яркости и СВР цветности текущего видеоблока.
44. Устройство по п.43, в котором средство кодирования кодирует флаг для указания того, что прогнозирование режима прогнозирования, СВР яркости и СВР цветности не увенчалось успехом, когда прогнозируемые режим прогнозирования, СВР яркости и СВР цветности не совпадают с фактическими режимом прогнозирования, СВР яркости и СВР цветности текущего видеоблока, и кодирует каждый из режима прогнозирования, СВР яркости и СВР цветности по отдельности.
45. Устройство по п.44, в котором флаг является первым флагом, и
средство прогнозирования прогнозирует режим прогнозирования текущего видеоблока на основании одного из упомянутых одного или нескольких ранее кодированных видеоблоков, и
средство кодирования кодирует второй флаг для указания того, что прогнозирование режима прогнозирования увенчалось успехом, когда прогнозируемый режим прогнозирования совпадает с фактическим режимом прогнозирования текущего видеоблока.
46. Устройство по п.39, в котором средство выбора выбирает таблицу кодирования на основании соответствующего синтаксического элемента одного или нескольких ранее кодированных видеоблоков, соседствующих с текущим видеоблоком.
47. Устройство по п.46, в котором один или несколько ранее кодированных видеоблоков, соседствующих с текущим видеоблоком, содержат по меньшей мере первый ранее кодированный соседний видеоблок, расположенный непосредственно над текущим видеоблоком, и второй ранее кодированный соседний видеоблок, расположенный непосредственно влево от текущего видеоблока.
48. Устройство по п.39, дополнительно содержащее средство для передачи кодированного синтаксического элемента.
49. Устройство по п.39, в котором синтаксический элемент содержит одно из типа блока, режима прогнозирования, шаблона кодированных блоков (СВР) и разбиения на блоки.
50. Устройство по п.39, в котором кодированная единица представляет собой кадр или секцию.
51. Способ декодирования видеоданных, содержащий этапы, на которых
выбирают таблицу кодирования для использования при декодировании синтаксического элемента текущего видеоблока кодированной единицы на основании соответствующего синтаксического элемента одного или нескольких ранее декодированных видеоблоков кодированной единицы, причем синтаксический элемент текущего видеоблока содержит одно из типа блока текущего видеоблока, флага кодированного блока и режима прогнозирования, при этом при выборе таблицы кодирования выбирают таблицу кодирования, которая связывает первый тип блока, первый флаг кодированного блока или первый режим прогнозирования с более коротким кодовым словом, чем другие типы блока, флаги кодированного блока или режимы прогнозирования соответственно, когда упомянутые один или несколько ранее декодированных видеоблоков имеют те же типы блока, что и первый тип блока, те же флаги кодированного блока, что и первый флаг кодированного блока, или те же режимы прогнозирования, что и первый режим прогнозирования соответственно; и
декодируют синтаксический элемент текущего видеоблока с использованием выбранной таблицы кодирования.
52. Способ по п.51, в котором на этапе выбора таблицы кодирования выбирают таблицу кодирования, которая связывает по меньшей мере один из других типов блока с более коротким кодовым словом, чем кодовое слово, связанное с первым типом блока, когда тип блока по меньшей мере одного из упомянутых одного или нескольких ранее декодированных видеоблоков не является первым типом блока.
53. Способ по п.52, в котором первый тип блока является типом блока Intra 16×16, и другие типы блока включают в себя по меньшей мере тип блока Intra 4×4 и тип блока Intra 8×8.
54. Способ по п.51, в котором синтаксический элемент содержит первый синтаксический элемент заголовка текущего видеоблока, при этом способ дополнительно содержит этапы, на которых
прогнозируют по меньшей мере один другой синтаксический элемент заголовка текущего видеоблока на основании одного из упомянутых одного или нескольких ранее декодированных видеоблоков, и
выбирают этот по меньшей мере один прогнозируемый синтаксический элемент в качестве синтаксического элемента текущего видеоблока, когда флаг указывает, что прогнозирование синтаксического элемента увенчалось успехом.
55. Способ по п.54, в котором
на этапе прогнозирования по меньшей мере одного другого синтаксического элемента заголовка текущего видеоблока прогнозируют режим прогнозирования, шаблон кодированных блоков (СВР) яркости и СВР цветности текущего видеоблока на основании одного из упомянутых одного или нескольких ранее декодированных видеоблоков, и
на этапе выбора по меньшей мере одного прогнозируемого синтаксического элемента выбирают прогнозируемый режим прогнозирования, СВР яркости и СВР цветности в качестве режима прогнозирования, СВР яркости и СВР цветности текущего видеоблока, когда флаг указывает, что прогнозирование режима прогнозирования, СВР яркости и СВР цветности увенчалось успехом.
56. Способ по п.55, дополнительно содержащий этап, на котором по отдельности декодируют каждый из режима прогнозирования, СВР яркости и СВР цветности, когда флаг указывает, что прогнозирование режима прогнозирования, СВР яркости и СВР цветности не увенчалось успехом.
57. Способ по п.56, в котором флаг является первым флагом, и на этапе декодирования по отдельности каждого из режима прогнозирования, СВР яркости и СВР цветности
прогнозируют режим прогнозирования текущего видеоблока на основании одного из упомянутых одного или нескольких ранее декодированных видеоблоков, и
выбирают прогнозируемый режим прогнозирования в качестве режима прогнозирования текущего видеоблока, когда второй флаг указывает, что прогнозирование режима прогнозирования увенчалось успехом.
58. Способ по п.51, в котором на этапе выбора таблицы кодирования выбирают таблицу кодирования на основании соответствующего синтаксического элемента одного или нескольких ранее декодированных видеоблоков, соседствующих с текущим видеоблоком.
59. Способ по п.58, в котором один или несколько ранее декодированных видеоблоков, соседствующих с текущим видеоблоком, содержат по меньшей мере первый ранее декодированный соседний видеоблок, расположенный непосредственно над текущим видеоблоком, и второй ранее декодированный соседний видеоблок, расположенный непосредственно влево от текущего видеоблока.
60. Способ по п.51, в котором синтаксический элемент содержит одно из типа блока, режима прогнозирования, шаблона кодированных блоков (СВР) и разбиения на блоки, и
кодированная единица представляет собой кадр или секцию.
61. Устройство декодирования, содержащее модуль выбора, который выбирает таблицу кодирования для использования при декодировании синтаксического элемента текущего кодированного видеоблока кодированной единицы на основании соответствующего синтаксического элемента одного или нескольких ранее декодированных видеоблоков кодированной единицы, причем синтаксический элемент текущего видеоблока содержит одно из типа блока текущего видеоблока, флага кодированного блока и режима прогнозирования, при этом при выборе таблицы кодирования выбирается таблица кодирования, которая связывает первый тип блока, первый флаг кодированного блока или первый режим прогнозирования с более коротким кодовым словом, чем другие типы блока, флаги кодированного блока или режимы прогнозирования соответственно, когда упомянутые один или несколько ранее декодированных видеоблоков имеют те же типы блока, что и первый тип блока, те же флаги кодированного блока, что и первый флаг кодированного блока, или те же режимы прогнозирования, что и первый режим прогнозирования соответственно; и
модуль декодирования, который декодирует синтаксический элемент текущего видеоблока с использованием выбранной таблицы кодирования.
62. Устройство по п.61, в котором модуль выбора выбирает таблицу кодирования, которая связывает по меньшей мере один из других типов блока с более коротким кодовым словом, чем кодовое слово, связанное с первым типом блока, когда тип блока по меньшей мере одного из упомянутых одного или нескольких ранее декодированных видеоблоков не является первым типом блока.
63. Устройство по п.62, в котором первый тип блока является типом блока Intra 16×16, и другие типы блока включают в себя по меньшей мере тип блока Intra 4×4 и тип блока Intra 8×8.
64. Устройство по п.61, в котором синтаксический элемент содержит первый синтаксический элемент заголовка текущего видеоблока, при этом устройство дополнительно содержит
модуль прогнозирования, который прогнозирует по меньшей мере один другой синтаксический элемент заголовка текущего видеоблока на основании одного из упомянутых одного или нескольких ранее декодированных видеоблоков,
причем модуль декодирования выбирает этот по меньшей мере один прогнозируемый синтаксический элемент в качестве синтаксического элемента текущего видеоблока, когда флаг указывает, что прогнозирование синтаксического элемента увенчалось успехом.
65. Устройство по п.64, в котором
модуль прогнозирования прогнозирует режим прогнозирования, шаблон кодированных блоков (СВР) яркости и СВР цветности текущего видеоблока на основании одного из упомянутых одного или нескольких ранее декодированных видеоблоков, и
модуль декодирования выбирает прогнозируемый режим прогнозирования, СВР яркости и СВР цветности в качестве режима прогнозирования, СВР яркости и СВР цветности текущего видеоблока, когда флаг указывает, что прогнозирование режима прогнозирования, СВР яркости и СВР цветности увенчалось успехом.
66. Устройство по п.65, в котором модуль декодирования по отдельности декодирует каждый из режима прогнозирования, СВР яркости и СВР цветности, когда флаг указывает, что прогнозирование режима прогнозирования, СВР яркости и СВР цветности не увенчалось успехом.
67. Устройство по п.66, в котором флаг является первым флагом, и
модуль прогнозирования прогнозирует режим прогнозирования текущего видеоблока на основании одного из упомянутых одного или нескольких ранее декодированных видеоблоков, и
модуль декодирования выбирает прогнозируемый режим прогнозирования в качестве режима прогнозирования текущего видеоблока, когда второй флаг указывает, что прогнозирование режима прогнозирования увенчалось успехом.
68. Устройство по п.61, в котором модуль выбора выбирает таблицу кодирования на основании соответствующего синтаксического элемента одного или нескольких ранее декодированных видеоблоков, соседствующих с текущим видеоблоком.
69. Устройство по п.68, в котором один или несколько ранее декодированных видеоблоков, соседствующих с текущим видеоблоком, содержат по меньшей мере первый ранее декодированный соседний видеоблок, расположенный непосредственно над текущим видеоблоком, и второй ранее декодированный соседний видеоблок, расположенный непосредственно влево от текущего видеоблока.
70. Устройство по п.61, которое представляет собой устройство беспроводной связи.
71. Устройство по п.61, которое представляет собой устройство на основе интегральной схемы.
72. Устройство по п.61, в котором
синтаксический элемент содержит одно из типа блока, режима прогнозирования, шаблона кодированных блоков (СВР) и разбиения на блоки, и
кодированная единица представляет собой кадр или секцию.
73. Компьютерно-считываемый носитель, содержащий инструкции, предписывающие процессору
выбирать таблицу кодирования для использования при декодировании синтаксического элемента текущего кодированного видеоблока кодированной единицы на основании соответствующего синтаксического элемента одного или нескольких ранее декодированных видеоблоков кодированной единицы, причем синтаксический элемент текущего видеоблока содержит одно из типа блока текущего видеоблока, флага кодированного блока и режима прогнозирования, при этом при выборе таблицы кодирования выбирается таблица кодирования, которая связывает первый тип блока, первый флаг кодированного блока или первый режим прогнозирования с более коротким кодовым словом, чем другие типы блока, флаги кодированного блока или режимы прогнозирования соответственно, когда упомянутые один или несколько ранее декодированных видеоблоков имеют те же типы блока, что и первый тип блока, те же флаги кодированного блока, что и первый флаг кодированного блока, или те же режимы прогнозирования, что и первый режим прогнозирования соответственно; и
декодировать синтаксический элемент текущего видеоблока с использованием выбранной таблицы кодирования.
74. Компьютерно-считываемый носитель по п.73, в котором инструкции, предписывающие процессору выбирать таблицу кодирования, содержат инструкции, предписывающие процессору выбирать таблицу кодирования, которая связывает по меньшей мере один из других типов блока с более коротким кодовым словом, чем кодовое слово, связанное с первым типом блока, когда тип блока по меньшей мере одного из упомянутых одного или нескольких ранее декодированных видеоблоков не является первым типом блока.
75. Компьютерно-считываемый носитель по п.74, в котором первый тип блока является типом блока Intra 16×16, и другие типы блока включают в себя по меньшей мере тип блока Intra 4×4 и тип блока Intra 8×8.
76. Компьютерно-считываемый носитель по п.73, в котором синтаксический элемент содержит первый синтаксический элемент заголовка текущего видеоблока, причем компьютерно-считываемый носитель дополнительно содержит инструкции, предписывающие процессору
прогнозировать по меньшей мере один другой синтаксический элемент заголовка текущего видеоблока на основании одного из
упомянутых одного или нескольких ранее декодированных видеоблоков, и
выбирать этот по меньшей мере один прогнозируемый синтаксический элемент в качестве синтаксического элемента текущего видеоблока, когда флаг указывает, что прогнозирование синтаксического элемента увенчалось успехом.
77. Компьютерно-считываемый носитель по п.76, в котором инструкции, предписывающие процессору прогнозировать по меньшей мере один другой синтаксический элемент заголовка текущего видеоблока, содержат инструкции, предписывающие процессору прогнозировать режим прогнозирования, шаблон кодированных блоков (СВР) яркости и СВР цветности текущего видеоблока на основании одного из упомянутых одного или нескольких ранее декодированных видеоблоков, и
инструкции, предписывающие процессору выбирать по меньшей мере один прогнозируемый синтаксический элемент, содержат инструкции, предписывающие процессору выбирать прогнозируемый режим прогнозирования, СВР яркости и СВР цветности в качестве режима прогнозирования, СВР яркости и СВР цветности текущего видеоблока, когда флаг указывает, что прогнозирование режима прогнозирования, СВР яркости и СВР цветности увенчалось успехом.
78. Компьютерно-считываемый носитель по п.77, дополнительно содержащий инструкции, предписывающие процессору по отдельности декодировать каждый из режима прогнозирования, СВР яркости и СВР цветности, когда флаг указывает, что прогнозирование режима прогнозирования, СВР яркости и СВР цветности не увенчалось успехом.
79. Компьютерно-считываемый носитель по п.78, при этом флаг является первым флагом, и инструкции, предписывающие процессору по отдельности декодировать каждый из режима прогнозирования, СВР яркости и СВР цветности, содержат инструкции, предписывающие процессору
прогнозировать режим прогнозирования текущего видеоблока на основании одного из упомянутых одного или нескольких ранее декодированных видеоблоков, и
выбирать прогнозируемый режим прогнозирования в качестве режима прогнозирования текущего видеоблока, когда второй флаг указывает, что прогнозирование режима прогнозирования увенчалось успехом.
80. Компьютерно-считываемый носитель по п.73, в котором инструкции, предписывающие процессору выбирать таблицу кодирования, содержат инструкции, предписывающие процессору выбирать таблицу кодирования на основании соответствующего синтаксического элемента одного или нескольких ранее декодированных видеоблоков, соседствующих с текущим видеоблоком.
81. Компьютерно-считываемый носитель по п.80, при этом один или несколько ранее декодированных видеоблоков, соседствующие с текущим видеоблоком, содержат по меньшей мере первый ранее декодированный соседний видеоблок, расположенный непосредственно над текущим видеоблоком, и второй ранее декодированный соседний видеоблок, расположенный непосредственно влево от текущего видеоблока.
82. Компьютерно-считываемый носитель по п.73, при этом синтаксический элемент содержит одно из типа блока, режима прогнозирования, шаблона кодированных блоков (СВР) и разбиения на блоки, и
кодированная единица представляет собой кадр или секцию.
83. Устройство декодирования, содержащее
средство для выбора таблицы кодирования для использования при декодировании синтаксического элемента текущего кодированного видеоблока кодированной единицы на основании соответствующего синтаксического элемента одного или нескольких ранее декодированных видеоблоков кодированной единицы, причем синтаксический элемент текущего видеоблока содержит одно из типа блока текущего видеоблока, флага кодированного блока и режима прогнозирования, при этом при выборе таблицы кодирования выбирается таблица кодирования, которая связывает первый тип блока, первый флаг кодированного блока или первый режим прогнозирования с более коротким кодовым словом, чем другие типы блока, флаги кодированного блока или режимы прогнозирования соответственно, когда упомянутые один или несколько ранее декодированных видеоблоков имеют те же типы блока, что и первый тип блока, те же флаги кодированного блока, что и первый флаг кодированного блока, или те же режимы прогнозирования, что и первый режим прогнозирования соответственно; и
средство для декодирования синтаксического элемента текущего видеоблока с использованием выбранной таблицы кодирования.
84. Устройство по п.83, в котором средство выбора выбирает таблицу кодирования, которая связывает по меньшей мере один из других типов блока с более коротким кодовым словом, чем кодовое слово, связанное с первым типом блока, когда тип блока по меньшей мере одного из упомянутых одного или нескольких ранее декодированных видеоблоков не является первым типом блока.
85. Устройство по п.84, в котором первый тип блока является типом блока Intra 16×16, и другие типы блока включают в себя по меньшей мере тип блока Intra 4×4 и тип блока Intra 8×8.
86. Устройство по п.83, в котором синтаксический элемент содержит первый синтаксический элемент заголовка текущего видеоблока, при этом устройство дополнительно содержит
средство для прогнозирования по меньшей мере одного другого синтаксического элемента заголовка текущего видеоблока на основании одного из упомянутых одного или нескольких ранее декодированных видеоблоков,
причем средство декодирования выбирает этот по меньшей мере один прогнозируемый синтаксический элемент в качестве синтаксического элемента текущего видеоблока, когда флаг указывает, что прогнозирование синтаксического элемента увенчалось успехом.
87. Устройство по п.86, в котором
средство прогнозирования прогнозирует режим прогнозирования, шаблон кодированных блоков (СВР) яркости и СВР цветности текущего видеоблока на основании одного из упомянутых одного или нескольких ранее декодированных видеоблоков, и
средство декодирования выбирает прогнозируемый режим прогнозирования, СВР яркости и СВР цветности в качестве режима прогнозирования, СВР яркости и СВР цветности текущего видеоблока, когда флаг указывает, что прогнозирование режима прогнозирования, СВР яркости и СВР цветности увенчалось успехом.
88. Устройство по п.87, в котором средство декодирования по отдельности декодирует каждый из режима прогнозирования, СВР яркости и СВР цветности, когда флаг указывает, что прогнозирование режима прогнозирования, СВР яркости и СВР цветности не увенчалось успехом.
89. Устройство по п.88, в котором флаг является первым флагом, и
средство прогнозирования прогнозирует режим прогнозирования текущего видеоблока на основании одного из упомянутых одного или нескольких ранее декодированных видеоблоков, и
средство декодирования выбирает прогнозируемый режим прогнозирования в качестве режима прогнозирования текущего видеоблока, когда второй флаг указывает, что прогнозирование режима прогнозирования увенчалось успехом.
90. Устройство по п.83, в котором средство выбора выбирает таблицу кодирования на основании соответствующего синтаксического элемента одного или нескольких ранее декодированных видеоблоков, соседствующих с текущим видеоблоком.
91. Устройство по п.90, в котором один или несколько ранее декодированных видеоблоков, соседствующих с текущим видеоблоком, содержат по меньшей мере первый ранее декодированный соседний видеоблок, расположенный непосредственно над текущим видеоблоком, и второй ранее декодированный соседний видеоблок, расположенный непосредственно влево от текущего видеоблока.
92. Устройство по п.83, в котором синтаксический элемент содержит одно из типа блока, режима прогнозирования, шаблона кодированных блоков (СВР) и разбиения на блоки, и
кодированная единица представляет собой кадр или секцию.
RU2010119029/07A 2007-10-12 2008-10-10 Адаптивное кодирование информации заголовка видеоблока RU2452128C2 (ru)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US97973407P 2007-10-12 2007-10-12
US60/979,734 2007-10-12
US12/169,460 2008-07-08
US12/169,460 US9386316B2 (en) 2007-10-12 2008-07-08 Adaptive coding of video block header information

Publications (2)

Publication Number Publication Date
RU2010119029A RU2010119029A (ru) 2011-11-20
RU2452128C2 true RU2452128C2 (ru) 2012-05-27

Family

ID=40456186

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010119029/07A RU2452128C2 (ru) 2007-10-12 2008-10-10 Адаптивное кодирование информации заголовка видеоблока

Country Status (10)

Country Link
US (1) US9386316B2 (ru)
EP (1) EP2225887B1 (ru)
JP (2) JP5925416B2 (ru)
KR (1) KR101135293B1 (ru)
CN (1) CN101822057B (ru)
BR (1) BRPI0818444A2 (ru)
CA (1) CA2701200C (ru)
RU (1) RU2452128C2 (ru)
TW (1) TWI429293B (ru)
WO (1) WO2009049250A2 (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2595578C2 (ru) * 2012-06-11 2016-08-27 Самсунг Электроникс Ко., Лтд. Способ и устройство кодирования видео и способ и устройство декодирования видео, совместно использующие параметры sao между составляющими цвета
US20250385999A1 (en) * 2024-06-17 2025-12-18 Acer Incorporated 3d display method and electronic device using the same

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590059B2 (en) * 2004-05-21 2009-09-15 Broadcom Corp. Multistandard video decoder
US8938009B2 (en) * 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
KR101439847B1 (ko) * 2008-01-02 2014-09-16 삼성전자주식회사 부호화 정보의 압축률 향상을 이용한 영상 부호화, 복호화방법 및 장치
JP5206070B2 (ja) * 2008-03-28 2013-06-12 富士通株式会社 復号装置および復号方法
KR101501568B1 (ko) * 2008-07-04 2015-03-12 에스케이 텔레콤주식회사 영상 부호화 및 복호화 장치 및, 방법
US20110194088A1 (en) * 2008-08-18 2011-08-11 Amsl Netherlands B.V. Projection System, Lithographic Apparatus, Method of Projecting a Beam of Radiation onto a Target and Device Manufacturing Method
KR101306834B1 (ko) * 2008-09-22 2013-09-10 에스케이텔레콤 주식회사 인트라 예측 모드의 예측 가능성을 이용한 영상 부호화/복호화 장치 및 방법
US8503527B2 (en) 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
KR101590511B1 (ko) * 2009-01-23 2016-02-02 에스케이텔레콤 주식회사 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법
KR101379185B1 (ko) * 2009-04-14 2014-03-31 에스케이 텔레콤주식회사 예측 모드 선택 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
KR101527085B1 (ko) * 2009-06-30 2015-06-10 한국전자통신연구원 인트라 부호화/복호화 방법 및 장치
KR101702553B1 (ko) * 2009-07-04 2017-02-03 에스케이 텔레콤주식회사 영상 부호화/복호화 방법 및 장치
KR101379186B1 (ko) * 2009-08-21 2014-04-10 에스케이 텔레콤주식회사 인트라 예측 부호화/복호화 방법 및 장치
KR20110068792A (ko) * 2009-12-16 2011-06-22 한국전자통신연구원 적응적 영상 부호화 장치 및 방법
US20110194613A1 (en) * 2010-02-11 2011-08-11 Qualcomm Incorporated Video coding with large macroblocks
KR102268821B1 (ko) * 2010-04-09 2021-06-23 엘지전자 주식회사 비디오 데이터 처리 방법 및 장치
US20110310976A1 (en) * 2010-06-17 2011-12-22 Qualcomm Incorporated Joint Coding of Partition Information in Video Coding
US9357229B2 (en) 2010-07-28 2016-05-31 Qualcomm Incorporated Coding motion vectors in video coding
KR20120016991A (ko) * 2010-08-17 2012-02-27 오수미 인터 프리딕션 방법
US20120063515A1 (en) * 2010-09-09 2012-03-15 Qualcomm Incorporated Efficient Coding of Video Parameters for Weighted Motion Compensated Prediction in Video Coding
KR101583199B1 (ko) * 2010-09-27 2016-01-07 엘지전자 주식회사 블록 분할 방법 및 복호화 장치
US9025661B2 (en) 2010-10-01 2015-05-05 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding
US9172963B2 (en) * 2010-11-01 2015-10-27 Qualcomm Incorporated Joint coding of syntax elements for video coding
US9066102B2 (en) 2010-11-17 2015-06-23 Qualcomm Incorporated Reference picture list construction for generalized P/B frames in video coding
US10992958B2 (en) * 2010-12-29 2021-04-27 Qualcomm Incorporated Video coding using mapped transforms and scanning modes
US8913662B2 (en) 2011-01-06 2014-12-16 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding using CABAC
CN103299622B (zh) * 2011-01-07 2016-06-29 联发科技(新加坡)私人有限公司 编码方法与装置以及解码方法与装置
CN103314588B (zh) * 2011-01-07 2016-05-11 联发科技(新加坡)私人有限公司 编码方法与装置以及解码方法与装置
US9232227B2 (en) 2011-01-14 2016-01-05 Sony Corporation Codeword space reduction for intra chroma mode signaling for HEVC
US20120183064A1 (en) 2011-01-14 2012-07-19 Sony Corporation Codeword assignment for intra chroma mode signaling for hevc
KR102030977B1 (ko) 2011-02-22 2019-10-10 타지반 투 엘엘씨 필터 방법, 동화상 부호화 장치, 동화상 복호 장치 및 동화상 부호화 복호 장치
AU2012221588B2 (en) 2011-02-22 2015-12-17 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
WO2012118359A2 (ko) 2011-03-03 2012-09-07 한국전자통신연구원 색차 성분 양자화 매개 변수 결정 방법 및 이러한 방법을 사용하는 장치
US9363509B2 (en) 2011-03-03 2016-06-07 Electronics And Telecommunications Research Institute Method for determining color difference component quantization parameter and device using the method
WO2012120582A1 (ja) * 2011-03-07 2012-09-13 パナソニック株式会社 動き補償装置、動画像符号化装置、動画像復号装置、動き補償方法、プログラム、及び集積回路
WO2012120909A1 (ja) 2011-03-09 2012-09-13 パナソニック株式会社 動画像復号化装置および動画像復号化方法
CN103430548B (zh) 2011-03-09 2017-10-24 松下电器(美国)知识产权公司 运动图像编码装置及运动图像编码方法
US9667987B2 (en) * 2011-03-10 2017-05-30 Futurewei Technologies, Inc. Using multiple prediction sets to encode extended unified directional intra mode numbers for robustness
JP5739714B2 (ja) * 2011-04-04 2015-06-24 日本放送協会 符号化装置、復号装置及びプログラム
KR101215152B1 (ko) 2011-04-21 2012-12-24 한양대학교 산학협력단 인루프 필터링을 적용한 예측 방법을 이용한 영상 부호화/복호화 방법 및 장치
CN105791835A (zh) * 2011-06-23 2016-07-20 Jvc建伍株式会社 图像编码装置和图像编码方法
CA2838989A1 (en) * 2011-06-30 2013-01-03 Vidyo, Inc. Scalable video coding techniques
SI2728861T1 (sl) * 2011-07-02 2017-11-30 Samsung Electronics Co., Ltd. Postopek in naprava za multipleksiranje in demultipleksiranje video podatkov, za identifikacijo stanje reprodukcije video podatkov
EP4708876A2 (en) 2011-07-15 2026-03-11 GE Video Compression, LLC Sample array coding for low-delay
LT3661201T (lt) 2011-07-19 2021-04-12 Tagivan Ii Llc Filtravimo būdas, vaizdo dekodavimo būdas, vaizdo kodavimo būdas, vaizdo dekodavimo aparatas, vaizdo kodavimo aparatas ir vaizdo kodavimo/dekodavimo aparatas
US9699456B2 (en) * 2011-07-20 2017-07-04 Qualcomm Incorporated Buffering prediction data in video coding
US9948938B2 (en) * 2011-07-21 2018-04-17 Texas Instruments Incorporated Methods and systems for chroma residual data prediction
US11496760B2 (en) 2011-07-22 2022-11-08 Qualcomm Incorporated Slice header prediction for depth maps in three-dimensional video codecs
US9521418B2 (en) * 2011-07-22 2016-12-13 Qualcomm Incorporated Slice header three-dimensional video extension for slice header prediction
US10237565B2 (en) 2011-08-01 2019-03-19 Qualcomm Incorporated Coding parameter sets for various dimensions in video coding
US8792550B2 (en) 2011-08-04 2014-07-29 Qualcomm Incorporated Color/gray patch prevention for video coding
US9288505B2 (en) 2011-08-11 2016-03-15 Qualcomm Incorporated Three-dimensional video with asymmetric spatial resolution
US9432700B2 (en) * 2011-09-27 2016-08-30 Broadcom Corporation Adaptive loop filtering in accordance with video coding
KR20130049526A (ko) * 2011-11-04 2013-05-14 오수미 복원 블록 생성 방법
US10003817B2 (en) 2011-11-07 2018-06-19 Microsoft Technology Licensing, Llc Signaling of state information for a decoded picture buffer and reference picture lists
SG10201502731VA (en) * 2011-11-08 2015-05-28 Samsung Electronics Co Ltd Method and apparatus for motion vector determination in video encoding or decoding
US9485503B2 (en) 2011-11-18 2016-11-01 Qualcomm Incorporated Inside view motion prediction among texture and depth view components
US20130127987A1 (en) * 2011-11-18 2013-05-23 Qualcomm Incorporated Signaling depth ranges for three-dimensional video coding
EP3139609B1 (en) * 2012-01-03 2021-01-06 HFI Innovation Inc. Method and apparatus for block-based significance map and significance group flag context selection
CN103220506B (zh) 2012-01-19 2015-11-25 华为技术有限公司 一种编解码方法和设备
CN104093024B (zh) * 2012-01-20 2017-08-04 华为技术有限公司 编解码方法和装置
CN103220508B (zh) 2012-01-20 2014-06-11 华为技术有限公司 编解码方法和装置
US11039138B1 (en) 2012-03-08 2021-06-15 Google Llc Adaptive coding of prediction modes using probability distributions
KR102147475B1 (ko) 2012-07-11 2020-08-26 한국전자통신연구원 Mpeg 데이터를 처리하는 방법 및 시스템
WO2014010955A1 (ko) * 2012-07-11 2014-01-16 한국전자통신연구원 Mpeg 데이터를 처리하는 방법 및 시스템
US8891888B2 (en) 2012-09-05 2014-11-18 Google Inc. Entropy coding for recompression of images
US9313500B2 (en) * 2012-09-30 2016-04-12 Microsoft Technology Licensing, Llc Conditional signalling of reference picture list modification information
US9294766B2 (en) 2013-09-09 2016-03-22 Apple Inc. Chroma quantization in video coding
US10218974B2 (en) 2015-03-31 2019-02-26 Realnetworks, Inc. Residual transformation and inverse transformation in video coding systems and methods
WO2016209125A1 (en) * 2015-06-23 2016-12-29 Telefonaktiebolaget Lm Ericsson (Publ) Methods and arrangements for transcoding
KR102379196B1 (ko) * 2017-05-31 2022-03-28 삼성전자주식회사 처리 장치들 및 그 제어 방법들
JP7315480B2 (ja) * 2018-01-30 2023-07-26 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US11146810B2 (en) * 2018-11-27 2021-10-12 Qualcomm Incorporated Decoder-side motion vector refinement
CN121967699A (zh) 2019-02-03 2026-05-01 北京字节跳动网络技术有限公司 Mv精度和mv差编解码之间的相互作用
CN121173966A (zh) * 2019-02-14 2025-12-19 北京字节跳动网络技术有限公司 解码器侧细化工具的选择性应用
WO2020215338A1 (zh) * 2019-04-26 2020-10-29 深圳市大疆创新科技有限公司 视频编解码的方法和装置
CA3136587A1 (en) 2019-05-04 2020-11-12 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods using an adaptive loop filter
SG11202112279WA (en) 2019-05-11 2021-12-30 Beijing Bytedance Network Technology Co Ltd Selective use of coding tools in video processing
EP4738833A2 (en) 2019-05-28 2026-05-06 Dolby Laboratories Licensing Corporation Quantization parameter signaling
EP4026322A4 (en) * 2019-09-07 2024-01-03 Beijing Dajia Internet Information Technology Co., Ltd. PREDICTION MODE SIGNALING IN VIDEO CODING

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2004131857A (ru) * 2002-04-02 2005-04-20 Нокиа Корпорейшн (Fi) Кодирование коэффициентов преобразования в кодерах и/или декодерах изображения/видеосигнала
EP1619901A2 (en) * 2004-07-22 2006-01-25 Samsung Electronics Co, Ltd Context adaptive binary arithmetic coding with reduced complexity
WO2007027402A2 (en) * 2005-08-31 2007-03-08 Micronas Usa, Inc. Multi-stage cabac decoding pipeline
GB2434270A (en) * 2006-01-12 2007-07-18 Lsi Logic Corp Parallel context determination in context adaptive binary arithmetic (CABAC) decoding

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5260693A (en) 1991-10-11 1993-11-09 Spacelabs Medical, Inc. Method and system for lossless and adaptive data compression and decompression
US5751694A (en) 1995-05-22 1998-05-12 Sony Corporation Methods and apparatus for synchronizing temporally related data streams
GB9519923D0 (en) 1995-09-29 1995-11-29 Philips Electronics Nv Motion estimation for predictive image coding
EP0893027B1 (en) 1996-04-12 2004-08-25 Imedia Corporation Compressed-video distribution system having a statistical multiplexer with transcoders
JP3208101B2 (ja) 1996-11-07 2001-09-10 松下電器産業株式会社 画像符号化方法および画像符号化装置並びに画像符号化プログラムを記録した記録媒体
US6345121B1 (en) 1996-11-07 2002-02-05 Matsushita Electric Industrial Co., Ltd. Image encoding apparatus and an image decoding apparatus
JPH10276436A (ja) 1997-01-31 1998-10-13 Victor Co Of Japan Ltd 動き補償符号化復号化装置及び動き補償符号化復号化方法
JPH11122619A (ja) 1997-10-17 1999-04-30 Hitachi Ltd 動画像符号化および復号化方法
US6549671B1 (en) 1998-02-19 2003-04-15 Matsushita Electric Industrial Co., Ltd. Picture data encoding apparatus with bit amount adjustment
JPH11317942A (ja) 1998-02-19 1999-11-16 Matsushita Electric Ind Co Ltd 画像符号化装置
KR100281464B1 (ko) * 1998-03-14 2001-02-01 전주범 물체 기반 부호화 시스템의 보조 정보 부호화 장치
US6031872A (en) * 1998-06-16 2000-02-29 Daewoo Electronics Co., Ltd. Method and apparatus for encoding a video signal
JP2000013800A (ja) 1998-06-18 2000-01-14 Victor Co Of Japan Ltd 画像伝送方法並びに符号化装置及び復号化装置
US6414608B1 (en) 1999-06-09 2002-07-02 Matsushita Electric Industrial Co., Ltd. Variable length code decoding device, digital broadcast receiving apparatus, and DVD reproducing apparatus
JP3288677B2 (ja) 1999-06-09 2002-06-04 松下電器産業株式会社 可変長符号復号化装置、デジタル放送受信装置及びdvd再生装置
JP3873678B2 (ja) 2001-07-19 2007-01-24 日本電気株式会社 ビデオパケット伝送装置及びビデオパケット伝送方法
BRPI0205954B1 (pt) * 2001-08-31 2018-03-20 Panasonic Intellectual Property Corporation Of America Método de codificação de imagem, método de decodificação de imagem e aparelhos para os mesmos
JP4125565B2 (ja) 2001-08-31 2008-07-30 松下電器産業株式会社 画像符号化方法、画像復号化方法及びその装置
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
DK1486065T3 (en) 2002-03-15 2016-02-29 Nokia Technologies Oy PROCEDURE FOR CODING MOVEMENT IN A VIDEO SEQUENCE
JP4230188B2 (ja) 2002-06-06 2009-02-25 パナソニック株式会社 可変長符号化方法および可変長復号化方法
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
US7630440B2 (en) * 2003-05-28 2009-12-08 Broadcom Corporation Context adaptive binary arithmetic code decoding engine
US7769088B2 (en) 2003-05-28 2010-08-03 Broadcom Corporation Context adaptive binary arithmetic code decoding engine
EP1656793B1 (en) 2003-09-07 2019-11-27 Microsoft Technology Licensing, LLC Slice layer in video codec
US7609762B2 (en) 2003-09-07 2009-10-27 Microsoft Corporation Signaling for entry point frames with predicted first field
CN1214649C (zh) * 2003-09-18 2005-08-10 中国科学院计算技术研究所 用于视频预测残差系数编码的熵编码方法
US7469070B2 (en) * 2004-02-09 2008-12-23 Lsi Corporation Method for selection of contexts for arithmetic coding of reference picture and motion vector residual bitstream syntax elements
US20050201471A1 (en) 2004-02-13 2005-09-15 Nokia Corporation Picture decoding method
US8116374B2 (en) * 2004-05-07 2012-02-14 Broadcom Corporation Method and system for generating a transform size syntax element for video decoding
US7565020B2 (en) * 2004-07-03 2009-07-21 Microsoft Corp. System and method for image coding employing a hybrid directional prediction and wavelet lifting
JP4327036B2 (ja) * 2004-07-15 2009-09-09 株式会社東芝 算術符号復号化方法及びその装置
WO2006041832A2 (en) 2004-10-05 2006-04-20 Vectormax Corporation Method and system for broadcasting multimedia data
JP4442891B2 (ja) 2004-11-30 2010-03-31 キヤノン株式会社 可変長符号化装置及び可変長符号化方法
JP2007020002A (ja) 2005-07-08 2007-01-25 Sharp Corp 動画像符号化装置
US20070053425A1 (en) 2005-07-21 2007-03-08 Nokia Corporation Variable length codes for scalable video coding
CA2610276C (en) 2005-07-22 2013-01-29 Mitsubishi Electric Corporation Image encoder and image decoder, image encoding method and image decoding method, image encoding program and image decoding program, and computer readable recording medium recorded with image encoding program and computer readable recording medium recorded with image decoding program
CN100584025C (zh) 2005-08-04 2010-01-20 华为技术有限公司 一种基于内容自适应的算术解码系统及装置
KR100644713B1 (ko) 2005-10-31 2006-11-10 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 코딩 복호기에서 원소구문을 복호화하는 방법 및 이를 위한 복호화 장치
JP4855417B2 (ja) 2005-11-30 2012-01-18 シャープ株式会社 動画像符号化装置、動画像復号装置
JP4553837B2 (ja) 2005-12-26 2010-09-29 三洋電機株式会社 復号装置
KR100791295B1 (ko) 2006-01-12 2008-01-04 삼성전자주식회사 플래그 부호화 방법, 플래그 복호화 방법, 및 상기 방법을이용한 장치
US8036517B2 (en) 2006-01-25 2011-10-11 Qualcomm Incorporated Parallel decoding of intra-encoded video
US8848789B2 (en) 2006-03-27 2014-09-30 Qualcomm Incorporated Method and system for coding and decoding information associated with video compression
US8204129B2 (en) * 2007-03-27 2012-06-19 Freescale Semiconductor, Inc. Simplified deblock filtering for reduced memory access and computational complexity
US8938009B2 (en) 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
US9521418B2 (en) 2011-07-22 2016-12-13 Qualcomm Incorporated Slice header three-dimensional video extension for slice header prediction
US9866829B2 (en) 2012-01-22 2018-01-09 Qualcomm Incorporated Coding of syntax elements that correspond to coefficients of a coefficient block in video coding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2004131857A (ru) * 2002-04-02 2005-04-20 Нокиа Корпорейшн (Fi) Кодирование коэффициентов преобразования в кодерах и/или декодерах изображения/видеосигнала
EP1619901A2 (en) * 2004-07-22 2006-01-25 Samsung Electronics Co, Ltd Context adaptive binary arithmetic coding with reduced complexity
WO2007027402A2 (en) * 2005-08-31 2007-03-08 Micronas Usa, Inc. Multi-stage cabac decoding pipeline
GB2434270A (en) * 2006-01-12 2007-07-18 Lsi Logic Corp Parallel context determination in context adaptive binary arithmetic (CABAC) decoding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ЯН РИЧАРДСОН. Видеокодирование Н.264 и MPEG-4 - стандарты нового поколения. - М.: Техносфера, 2005, с.с.276-280, 308-310. YAN YE et al. Improvements to FGS layer Variable Length Coder, Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, JVT-S066, 19th Meeting: Geneva, Switzerland, 31 March - 7 April, 2006. *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2595578C2 (ru) * 2012-06-11 2016-08-27 Самсунг Электроникс Ко., Лтд. Способ и устройство кодирования видео и способ и устройство декодирования видео, совместно использующие параметры sao между составляющими цвета
US9807392B2 (en) 2012-06-11 2017-10-31 Samsung Electronics Co., Ltd. Sample adaptive offset (SAO) adjustment method and apparatus and SAO adjustment determination method and apparatus
US9807393B2 (en) 2012-06-11 2017-10-31 Samsung Electronics Co., Ltd. Sample adaptive offset (SAO) adjustment method and apparatus and SAO adjustment determination method and apparatus
US9826235B2 (en) 2012-06-11 2017-11-21 Samsung Electronics Co., Ltd. Sample adaptive offset (SAO) adjustment method and apparatus and SAO adjustment determination method and apparatus
RU2638742C1 (ru) * 2012-06-11 2017-12-15 Самсунг Электроникс Ко., Лтд. Способ и устройство кодирования видео и способ и устройство декодирования видео, совместно использующие параметры sao между составляющими цвета
RU2666311C1 (ru) * 2012-06-11 2018-09-06 Самсунг Электроникс Ко., Лтд. Способ и устройство кодирования видео, и способ и устройство декодирования видео, совместно использующие параметры sao между составляющими цвета
US10075718B2 (en) 2012-06-11 2018-09-11 Samsung Electronics Co., Ltd. Sample adaptive offset (SAO) adjustment method and apparatus and SAO adjustment determination method and apparatus
RU2693307C1 (ru) * 2012-06-11 2019-07-02 Самсунг Электроникс Ко., Лтд. Способ и устройство кодирования видео, и способ и устройство декодирования видео, совместно использующие параметры sao между составляющими цвета
US10609375B2 (en) 2012-06-11 2020-03-31 Samsung Electronics Co., Ltd. Sample adaptive offset (SAO) adjustment method and apparatus and SAO adjustment determination method and apparatus
US20250385999A1 (en) * 2024-06-17 2025-12-18 Acer Incorporated 3d display method and electronic device using the same

Also Published As

Publication number Publication date
US20090175334A1 (en) 2009-07-09
JP2011501533A (ja) 2011-01-06
KR101135293B1 (ko) 2012-04-12
CN101822057B (zh) 2013-11-27
RU2010119029A (ru) 2011-11-20
WO2009049250A2 (en) 2009-04-16
JP2015084525A (ja) 2015-04-30
JP5925416B2 (ja) 2016-05-25
US9386316B2 (en) 2016-07-05
CA2701200A1 (en) 2009-04-16
TW200950529A (en) 2009-12-01
EP2225887A2 (en) 2010-09-08
CA2701200C (en) 2014-07-15
KR20100067129A (ko) 2010-06-18
TWI429293B (zh) 2014-03-01
EP2225887B1 (en) 2014-03-19
WO2009049250A3 (en) 2009-05-28
CN101822057A (zh) 2010-09-01
BRPI0818444A2 (pt) 2016-10-11

Similar Documents

Publication Publication Date Title
RU2452128C2 (ru) Адаптивное кодирование информации заголовка видеоблока
RU2475998C2 (ru) Многоуровневая структура кодированного битового потока
US8483285B2 (en) Video coding using transforms bigger than 4×4 and 8×8
US8325819B2 (en) Variable length coding table selection based on video block type for refinement coefficient coding
US8995527B2 (en) Block type signalling in video coding
RU2497303C2 (ru) Видео кодирование с использованием преобразования больше чем 4×4 и 8×8
RU2409004C1 (ru) Методы кодирования переменной длины для структур кодированных блоков
US20110194613A1 (en) Video coding with large macroblocks
JP2009544188A (ja) 適応可変長符号を用いた映像圧縮
KR20090018030A (ko) 비디오 압축에서 유효 계수 코딩을 위한 방법 및 시스템
JP2010515305A (ja) 他のコーディングモードの情報を使用したコーディングモードの選択
JP2009531992A5 (ru)
CN103108180B (zh) 一种基于基础设施能力及当前条件确定视频编码子块大小的方法及其装置
JP2010526515A (ja) 推定されたコーディングコストを用いた映像コーディングモード選択
Kalva et al. The VC-1 video coding standard
Milicevic et al. HEVC vs. H. 264/AVC standard approach to coder’s performance evaluation
RU2409003C1 (ru) Выбор таблицы кодирования с переменной длиной на основании типа видеоблока для совершенствования кодирования коэффициентов
HK1183578B (en) Method and apparatus of video coding sub-block sizing determining based on infrastructure capabilities and current conditions

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20181011