RU2434360C2 - Адаптивное кодирование режима прогнозирования видеоблоков - Google Patents
Адаптивное кодирование режима прогнозирования видеоблоков Download PDFInfo
- Publication number
- RU2434360C2 RU2434360C2 RU2010101115/09A RU2010101115A RU2434360C2 RU 2434360 C2 RU2434360 C2 RU 2434360C2 RU 2010101115/09 A RU2010101115/09 A RU 2010101115/09A RU 2010101115 A RU2010101115 A RU 2010101115A RU 2434360 C2 RU2434360 C2 RU 2434360C2
- Authority
- RU
- Russia
- Prior art keywords
- prediction modes
- prediction
- prediction mode
- block
- modes
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection 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
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/18—Methods 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 a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/19—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
- H04N19/197—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/48—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/625—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Изобретение относится к кодированию цифрового видео и, в частности, к энтропийному кодированию видеоблоков. Техническим результатом является повышение эффективности кодирования видеоблоков на основе выбора одного из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока единицы кодирования. Указанный технический результат достигается тем, что выбирают один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока единицы кодирования, причем множество режимов прогнозирования включает в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования. Устройство кодирования кодирует режим прогнозирования текущего видеоблока на основе режимов прогнозирования одного или более ранее кодированных видеоблоков единицы кодирования. Модуль декодирования принимает кодированные видеоданные видеоблока единицы кодирования и декодирует кодированные видеоданные, чтобы идентифицировать один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее декодированных видеоблоков единицы кодирования. 8 н. и 76 з.п. ф-лы, 8 ил.
Description
По настоящей заявке испрашивается приоритет на основании предварительной заявки на патент США № 60/944,470, поданной 15 июля 2007 года, и предварительной заявки на патент США № 60/979,762, поданной 12 октября 2007 года, содержимое каждой из которых в полном объеме включено в настоящий документ путем ссылки.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее описание относится к кодированию цифрового видео, а более конкретно к энтропийному кодированию видеоблоков.
Уровень техники
Возможности цифрового видео могут быть встроены в широкий диапазон устройств, включая цифровые телевизоры, системы цифрового прямого широковещания, устройства беспроводной связи, такие как переносные радиотелефоны, беспроводные широковещательные системы, персональные цифровые устройства (PDA), дорожные или настольные компьютеры, цифровые камеры, цифровые записывающие устройства, устройства видеоигр, консоли видеоигр и т.п. Цифровые видеоустройства реализуют такие технологии сжатия видеоизображения, как MPEG-2, MPEG-4 или H.264/MPEG-4, часть 10, усовершенствованное кодирование видео (AVC), чтобы более эффективно передавать и принимать цифровое видео. Технологии сжатия видеоизображений выполняют графическое и временное прогнозирование для того, чтобы уменьшать или удалять избыточность, присутствующую в видеопоследовательностях.
Сжатие видео в общем включает в себя пространственное и/или временное прогнозирование. В частности, внутреннее кодирование базируется на пространственном прогнозировании, чтобы уменьшать или удалять пространственную избыточность между видеоблоками в данной кодированной единице, которая может содержать видеокадр, серию последовательных макроблоков видеокадра и т.п. В отличие от этого взаимное кодирование базируется на временном прогнозировании, чтобы уменьшать или удалять временную избыточность между видеоблоками последовательных кодированных единиц видеопоследовательности. Для внутреннего кодирования видеокодер выполняет пространственное прогнозирование, чтобы сжимать данные на основе других данных в той же кодированной единице. Для взаимного кодирования видеокодер выполняет оценку движения для того, чтобы отслеживать перемещение совпадающих видеоблоков между двумя или более смежными кадрами.
После пространственного или временного прогнозирования остаточный блок формируется посредством вычитания видеоблока прогнозирования, сформированного во время процесса прогнозирования, из исходного видеоблока, который кодируется. Таким образом, остаточный блок указывает различия между блоком прогнозирования и кодируемым текущим блоком. Видеокодер может применять процессы преобразования, квантования и кодирования по энтропии для того, чтобы дополнительно уменьшать скорость передачи битов, ассоциированную с передачей остаточного блока. Технологии преобразования могут изменять набор пикселных значений на коэффициенты преобразования, которые представляют энергию пикселных значений в частотной области. Квантование применяется к коэффициентам преобразования и, в общем, заключает в себе процесс, который ограничивает число битов, ассоциированных с любым данным коэффициентом. До энтропийного кодирования видеокодер сканирует блок квантованных коэффициентов в одномерный вектор коэффициентов. Видеокодер энтропийно кодирует вектор квантованных коэффициентов преобразования, чтобы дополнительно сжимать остаточные данные.
Видеодекодер может выполнять операции обратного энтропийного кодирования, чтобы извлекать коэффициенты. Обратное сканирование также может выполняться в декодере, чтобы формировать двумерные блоки из принимаемых одномерных векторов коэффициентов. Видеодекодер затем обратно квантует и обратно преобразует коэффициенты, чтобы получать восстановленный остаточный блок. Видеодекодер далее декодирует видеоблок прогнозирования на основе информации прогнозирования и информации движения. Видеодекодер затем прибавляет видеоблок прогнозирования к соответствующему остаточному блоку, чтобы формировать восстановленный видеоблок и формировать декодированную последовательность видеоинформации.
Раскрытие изобретения
Настоящее описание раскрывает технологии для кодирования информации заголовка видеоблоков. В частности, технологии согласно настоящему описанию выбирают один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока единицы кодирования, причем множество режимов прогнозирования включает в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования. Видеокодер может быть выполнен с возможностью кодировать режим прогнозирования текущего видеоблока на основе режимов прогнозирования одного или более ранее кодированных видеоблоков единицы кодирования. Видеодекодер также может быть выполнен с возможностью осуществлять функцию взаимно-обратного декодирования для кодирования, выполняемого посредством видеокодера. Таким образом, видеодекодер использует аналогичные технологии для того, чтобы декодировать режим прогнозирования для использования при формировании блока прогнозирования для видеоблока.
Видеокодер может, в некоторых случаях, выбирать различные контексты кодирования для использования при кодировании выбранного режима прогнозирования на основе типов, к примеру, однонаправленных или многонаправленных, режимов прогнозирования ранее кодированных видеоблоков. Кроме того, технологии согласно настоящему описанию дополнительно могут выборочно применять преобразования к остаточной информации видеоблока на основе выбранного режима прогнозирования. В одном примере видеокодер может сохранять множество направленных преобразований, каждое из которых соответствует различному одному из режимов прогнозирования, и применять соответствующее направленное преобразование к видеоблоку на основе выбранного режима прогнозирования видеоблока. В других случаях видеокодер может сохранять по меньшей мере одно дискретное косинусное преобразование (DCT) или целочисленное преобразование, а также множество направленных преобразований и применять DCT или целочисленное преобразование к остаточным данным видеоблока, когда выбранный режим прогнозирования демонстрирует ограниченную направленность, и применять одно из направленных преобразований к остаточным данным видеоблока, когда выбранный режим прогнозирования демонстрирует направленность.
В одном аспекте способ кодирования видеоданных содержит выбор одного из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока единицы кодирования и кодирования режима прогнозирования текущего видеоблока на основе режимов прогнозирования одного или более ранее кодированных видеоблоков единицы кодирования. Режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования.
В другом аспекте устройство, которое кодирует видеоданные, содержит модуль прогнозирования, который выбирает один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока единицы кодирования, и модуль энтропийного кодирования, который кодирует режим прогнозирования текущего видеоблока на основе режимов прогнозирования одного или более ранее кодированных видеоблоков единицы кодирования. Режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования.
В другом аспекте машиночитаемый носитель содержит инструкции, которые при выполнении в устройстве кодирования видео инструктируют устройство кодировать видеоданные, при этом инструкции инструктируют устройство выбирать один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока единицы кодирования и кодировать режим прогнозирования текущего видеоблока на основе режимов прогнозирования одного или более ранее кодированных видеоблоков единицы кодирования. Режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования.
В другом аспекте устройство, которое кодирует видеоданные, содержит средство для выбора одного из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока единицы кодирования и средство для кодирования режима прогнозирования текущего видеоблока на основе режимов прогнозирования одного или более ранее кодированных видеоблоков единицы кодирования. Режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования.
В другом аспекте способ декодирования видеоданных содержит прием кодированных видеоданных видеоблока единицы кодирования и декодирование кодированных видеоданных, чтобы идентифицировать один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее декодированных видеоблоков единицы кодирования. Режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования.
В другом аспекте устройство для декодирования видеоданных содержит модуль энтропийного декодирования, который декодирует кодированные видеоданные видеоблока единицы кодирования, чтобы идентифицировать один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее декодированных видеоблоков единицы кодирования. Режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования. Устройство также включает в себя модуль прогнозирования, который формирует блок прогнозирования с использованием декодированного режима прогнозирования.
В другом аспекте машиночитаемый носитель содержит инструкции, которые при выполнении в устройстве кодирования видео инструктируют устройство кодировать видеоблоки. Инструкции инструктируют устройство принимать кодированные видеоданные видеоблока единицы кодирования и декодировать кодированные видеоданные, чтобы идентифицировать один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее декодированных видеоблоков единицы кодирования. Режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования.
В другом аспекте устройство для декодирования видеоданных содержит средство для приема кодированных видеоданных видеоблока единицы кодирования и средство для декодирования кодированных видеоданных, чтобы идентифицировать один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее декодированных видеоблоков единицы кодирования. Режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования.
Технологии, описанные в настоящем описании, могут быть реализованы в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или в любой комбинации вышеозначенного. Если реализованы в программном обеспечении, программное обеспечение может приводиться в исполнение в процессоре, который может означать один или более процессоров, таких как микропроцессор, специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (FPGA) или процессор цифровых сигналов (DSP), либо в другой эквивалентной интегральной или дискретной логической схеме. Программное обеспечение, содержащее инструкции, чтобы приводить в исполнение технологии, может быть первоначально сохранено в машиночитаемом носителе и загружено и приведено в исполнение посредством процессора.
Соответственно, настоящее описание также предполагает машиночитаемые носители, содержащие инструкции, чтобы инструктировать процессору выполнять любую из множества технологий, описанных в настоящем описании. В некоторых случаях машиночитаемый носитель может формировать часть компьютерного программного продукта, который может продаваться производителям и/или использоваться в устройстве. Компьютерный программный продукт может включать в себя машиночитаемый носитель, а в некоторых случаях также может включать в себя упаковку.
Подробности одного или более вариантов осуществления настоящего описания изложены на прилагаемых чертежах и в нижеприведенном описании. Другие признаки, цели и преимущества технологий, описанных в настоящем описании, должны стать очевидными из описания и чертежей, а также из формулы изобретения.
Краткое описание чертежей
Фиг.1 является блок-схемой, иллюстрирующей систему кодирования и декодирования видео, которая выполняет технологии кодирования, описанные в настоящем описании.
Фиг.2 является блок-схемой, подробнее иллюстрирующей пример видеокодера по фиг.1.
Фиг.3 является блок-схемой, подробнее иллюстрирующей пример видеодекодера по фиг.1.
Фиг.4 является концептуальной схемой, иллюстрирующей гипотетический пример регулирования порядка сканирования коэффициентов в соответствии с настоящим описанием.
Фиг.5 является блок-схемой последовательности операций, иллюстрирующей примерную работу устройства кодирования, выполненного с возможностью адаптивно регулировать порядок сканирования коэффициентов.
Фиг.6 является блок-схемой последовательности операций, иллюстрирующей примерную работу модуля кодирования, выполненного с возможностью кодировать информацию заголовка для видеоблока.
Фиг.7 является блок-схемой последовательности операций, иллюстрирующей выбор примерного контекста кодирования для кодирования.
Фиг.8 является блок-схемой последовательности операций, иллюстрирующей примерную работу модуля декодирования, выполненного с возможностью декодировать информацию заголовка видеоблока.
Осуществление изобретения
Фиг.1 является блок-схемой, иллюстрирующей систему кодирования и декодирования видео 10, которая выполняет технологии кодирования, описанные в настоящем описании. Как показано на фиг.1, система 10 включает в себя исходное устройство 12, которое передает кодированные видеоданные в целевое устройство 14 через канал 16 связи. Исходное устройство 12 формирует кодируемые видеоданные для передачи в целевое устройство 14. Исходное устройство 12 может включать в себя видеоисточник 18, видеокодер 20 и передающее устройство 22. Видеоисточник 18 исходного устройства 12 может включать в себя устройство видеозахвата, такое как видеокамера, видеоархив, содержащий ранее захваченное видео, или видеопередачу от поставщика видеосодержимого. В качестве дополнительной альтернативы, видеоисточник 18 может формировать основанные на компьютерной графике данные в качестве исходного видео или комбинацию живого видео и машиногенерируемого видео. В некоторых случаях исходное устройство 12 может быть так называемым камерофоном или видеотелефоном, и при этом видеоисточник 18 может быть видеокамерой. В каждом случае захваченное, предварительно захваченное или машиногенерируемое видео может быть кодировано посредством видеокодера 20 для передачи из исходного устройства 12 в целевое устройство 14 через передающее устройство 22 и канал 16 связи.
Видеокодер 20 принимает видеоданные от видеоисточника 18. Видеоданные, принимаемые от видеоисточника 18, могут быть последовательностью видеокадров. Видеокодер 20 делит последовательность кадров на единицы кодирования и обрабатывает единицы кодирования, чтобы кодировать последовательность видеокадров. Единицами кодирования, например, могут быть полные кадры или части кадров (т.е. серии последовательных макроблоков). Таким образом, в некоторых случаях кадры могут быть разделены на серии последовательных макроблоков. Видеокодер 20 делит каждую единицу кодирования на блоки пикселов (упоминаемые в данном документе как видеоблоки или блоки) и оперирует с видеоблоками в отдельных единицах кодирования, для того чтобы кодировать видеоданные. По сути, единица кодирования (к примеру, кадр или серия последовательных макроблоков) может содержать несколько видеоблоков. Другими словами, видеопоследовательность может включать в себя несколько кадров, кадр может включать в себя несколько серий последовательных макроблоков, а серия последовательных макроблоков может включать в себя несколько видеоблоков.
Видеоблоки могут иметь фиксированный или изменяющийся размер и могут отличаться по размеру согласно заданному стандарту кодирования. В качестве примера Сектор стандартизации Международного Союза по телекоммуникациям (ITU-T) H.264/MPEG-4, Часть 10, Усовершенствованное кодирование видео (AVC) (в дальнейшем стандарт "H.264/MPEG-4 Часть 10 AVC") поддерживает внутреннее прогнозирование с различными размерами блока, такими как 16×16, 8×8 или 4×4 для компонентов сигнала яркости и 8×8 для компонентов сигнала цветности, а также взаимное прогнозирование с различными размерами блока, такими как 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 и 4×4 для компонентов сигнала яркости и соответствующие масштабированные размеры для компонентов сигнала цветности. В H.264, например, каждый видеоблок в 16×16 пикселов, зачастую называемый макроблоком (MB), может быть подразделен на субблоки меньшего размера и прогнозирован в субблоках. В общем, MB и различные субблоки могут считаться видеоблоками. Таким образом, MB могут считаться видеоблоками, и если разбиты на сегменты или на подсегменты, MB могут сами рассматриваться как задающие наборы видеоблоков.
Для каждого из видеоблоков видеокодер 20 выбирает тип блока для блока. Тип блока может указывать то, прогнозируется блок с использованием взаимного прогнозирования или внутреннего прогнозирования, а также размер сегмента блока. Например, стандарт H.264/MPEG-4 часть 10 AVC поддерживает число типов блока взаимного и внутреннего прогнозирования, в том числе взаимный 16×16, взаимный 16×8, взаимный 8×16, взаимный 8×8, взаимный 8×4, взаимный 4×8, взаимный 4×4, внутренний 16×16, внутренний 8×8 и внутренний 4×4. Как подробно поясняется ниже, видеокодер 20 может выбирать один из типов блоков для каждого из видеоблоков.
Видеокодер 20 также выбирает режим прогнозирования для каждого из видеоблоков. В случае внутренне кодированного видеоблока режим прогнозирования может определять способ, чтобы прогнозировать текущий видеоблок, с использованием одного или более ранее кодированных видеоблоков. В стандарте H.264/MPEG-4 часть 10 AVC, например, видеокодер 20 может выбирать один из девяти возможных режимов однонаправленного прогнозирования для каждого внутреннего блока 4×4: режим вертикального прогнозирования, режим горизонтального прогнозирования, режим DC-прогнозирования, режим прогнозирования вниз и влево по диагонали, режим прогнозирования вниз и вправо по диагонали, режим прогнозирования вправо по вертикали, режим прогнозирования вниз по горизонтали, режим прогнозирования влево по вертикали и режим прогнозирования вверх по горизонтали. Аналогичные режимы прогнозирования используются для того, чтобы прогнозировать каждый внутренний блок 8×8. Для внутреннего блока 16×16 видеокодер 20 может выбирать один из четырех возможных однонаправленных режимов: режим вертикального прогнозирования, режим горизонтального прогнозирования, режим DC-прогнозирования и режим прогнозирования на плоскости. В некоторых случаях видеокодер 20 может выбирать режим прогнозирования из набора режимов прогнозирования, который включает в себя не только режимы однонаправленного прогнозирования, но также и один или более режимов многонаправленного прогнозирования, которые задают комбинации однонаправленных режимов. Например, один или более режимов многонаправленного прогнозирования могут быть режимами двунаправленного прогнозирования, которые сочетают два режима однонаправленного прогнозирования, как описывается подробнее ниже.
После выбора режима прогнозирования для видеоблока видеокодер 20 формирует видеоблок прогнозирования с использованием выбранного режима прогнозирования. Прогнозный видеоблок вычитается из исходного видеоблока, чтобы формировать остаточный блок. Остаточный блок включает в себя набор разностных пикселных значений, которые количественно оценивают различия между пикселными значениями исходного видеоблока и пикселными значениями формируемого блока прогнозирования. Остаточный блок может представляться в формате двумерного блока (к примеру, двумерной матрицы или массива разностных пикселных значений).
После формирования остаточного блока видеокодер 20 может выполнять определенное число других операций для остаточного блока перед кодированием блока. Видеокодер 20 может применять преобразование, такое как целочисленное преобразование, DCT-преобразование, направленное преобразование или вейвлет-преобразование, к остаточному блоку пикселных значений, чтобы формировать блок коэффициентов преобразования. Таким образом, видеокодер 20 преобразует остаточные пикселные значения в коэффициенты преобразования (также называемые остаточными коэффициентами преобразования). Остаточные коэффициенты преобразования могут упоминаться как блок преобразования или блок коэффициентов. Блок преобразования или коэффициентов может быть одномерным представлением коэффициентов, когда неразделимые преобразования применяются, или двумерным представлением коэффициентов, когда разделимые преобразования применяются. Неразделимые преобразования могут включать в себя неразделимые направленные преобразования. Разделимые преобразования могут включать в себя разделимые направленные преобразования, DCT-преобразования, целочисленные преобразования и вейвлет-преобразования.
После преобразования видеокодер 20 выполняет квантование, чтобы формировать квантованные коэффициенты преобразования (также называемые квантованными коэффициентами или квантованными остаточными коэффициентами). С другой стороны, квантованные коэффициенты могут представляться в формате одномерного вектора или формате двумерного блока. Квантование, в общем, упоминается как процесс, в котором коэффициенты квантуются так, чтобы возможно уменьшать объем данных, используемый для того, чтобы представлять коэффициенты. Процесс квантования может уменьшать битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. При использовании в данном документе термин "коэффициенты" может представлять коэффициенты преобразования, квантованные коэффициенты или другой тип коэффициентов. Технологии согласно настоящему описанию могут в некоторых случаях применяться к остаточным пикселным значениям, а также к коэффициентам преобразования и квантованным коэффициентам преобразования. Тем не менее, в целях иллюстрации, технологии согласно настоящему описанию должны быть описаны в контексте квантованных коэффициентов преобразования.
Когда используются разделимые преобразования и блоки коэффициентов представляются в формате двумерного блока, видеокодер 20 сканирует коэффициенты из двумерного формата в одномерный формат. Другими словами, видеокодер 20 может сканировать коэффициенты из двумерного блока, чтобы преобразовывать коэффициенты в одномерный вектор коэффициентов. В соответствии с одним из аспектов настоящего описания видеокодер 20 может регулировать порядок сканирования, используемый для того, чтобы преобразовывать блок коэффициентов в одну размерность, на основе собранных статистических данных. Статистика может содержать индикатор относительно вероятности, что данное значение коэффициента в каждой позиции двумерного блока является нулевым или ненулевым, и может содержать, например, счетчик, вероятность или другой статистический показатель, ассоциированный с каждой из позиций коэффициентов двумерного блока. В некоторых случаях статистические данные могут собираться только для поднабора позиций коэффициентов блока. Когда порядок сканирования оценивается, к примеру, после конкретного числа блоков, порядок сканирования может изменяться так, что позиции коэффициентов в блоке, определенные как имеющие большую вероятность наличия ненулевых коэффициентов, сканируются до позиций коэффициентов в блоке, определенных как имеющие меньшую вероятность наличия ненулевых коэффициентов. Таким образом, начальный порядок сканирования может быть выполнен с возможностью более эффективно группировать ненулевые коэффициенты в начале одномерного вектора коэффициентов и коэффициенты с нулевым значением в конце одномерного вектора коэффициентов. Это, в свою очередь, может уменьшать число битов, расходуемое на энтропийное кодирование, поскольку имеются более короткие серии нулей между ненулевыми коэффициентами в начале одномерного вектора коэффициентов и одна более длинная серия нулей в конце одномерного вектора коэффициентов.
После сканирования коэффициентов видеокодер 20 кодирует каждый из видеоблоков единицы кодирования с использованием любой из множества технологий энтропийного кодирования, таких как контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC), кодирование по длинам серий и т.п. Исходное устройство 12 передает кодированные видеоданные в целевое устройство 14 через передающее устройство 22 и канал 16. Канал 16 связи может содержать любую передающую среду беспроводной или проводной связи, такую как радиочастотный (RF) спектр или одна или более физических линий передачи, либо любую комбинацию беспроводных и проводных передающих сред. Канал 16 связи может формировать часть сети с коммутацией пакетов, такой как локальная вычислительная сеть, глобальная вычислительная сеть либо глобальная сеть, такая как Интернет. Канал 16 связи, в общем, представляет любую надлежащую среду связи или набор различных сред связи для передачи кодированных видеоданных из исходного устройства 12 в целевое устройство 14.
Целевое устройство 14 может включать в себя приемное устройство 24, видеодекодер 26 и дисплейное устройство 28. Приемное устройство 24 принимает кодированный поток видеобитов из исходного устройства 12 через канал 16. Видеодекодер 26 применяет энтропийное декодирование, чтобы декодировать кодированный поток видеобитов, чтобы получать информацию заголовка и квантованные остаточные коэффициенты кодированных видеоблоков кодированной единицы. Как описано выше, квантованные остаточные коэффициенты, кодируемые посредством исходного устройства 12, кодируются как одномерный вектор. Следовательно, видеодекодер 26 сканирует квантованные остаточные коэффициенты кодированных видеоблоков, чтобы преобразовывать одномерный вектор коэффициентов в двумерный блок квантованных остаточных коэффициентов. Аналогично видеокодеру 20 видеодекодер 26 может собирать статистические данные, которые указывают вероятность того, что данная позиция коэффициента в видеоблоке является нулевой или ненулевой, и тем самым регулировать порядок сканирования тем же способом, который использовался в процессе кодирования. Соответственно, взаимнообратные порядки адаптивного сканирования могут применяться посредством видеодекодера 26 для того, чтобы изменять представление одномерного вектора преобразованных в последовательную форму квантованных коэффициентов преобразования обратно в двумерные блоки квантованных коэффициентов преобразования.
Видеодекодер 26 восстанавливает каждый из блоков единицы кодирования с использованием декодированной информации заголовка и декодированной остаточной информации. В частности, видеодекодер 26 может формировать видеоблок прогнозирования для текущего видеоблока и комбинировать блок прогнозирования с соответствующим остаточным видеоблоком, чтобы восстанавливать каждый из видеоблоков. Целевое устройство 14 может отображать восстановленные видеоблоки пользователю через дисплейное устройство 28. Дисплейное устройство 28 может содержать любое из множества дисплейных устройств, таких как электронно-лучевая трубка (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на светоизлучающих диодах (светодиодах), дисплей на органических светодиодах или другой тип дисплея.
В некоторых случаях исходное устройство 12 и целевое устройство 14 могут работать практически симметрично. Например, исходное устройство 12 и целевое устройство 14 могут включать в себя компоненты кодирования и декодирования видео. Следовательно, система 10 может поддерживать одностороннюю и двухстороннюю передачу видео между видеоустройствами 12, 14, к примеру, для потоковой передачи видео, широковещательной передачи видео или видеотелефонии. Устройство, которое включает в себя компоненты кодирования и декодирования видео, также может являться частью общего устройства кодирования, архивации и воспроизведения, такого как цифровое записывающее видеоустройство (DVR).
Видеокодер 20 и видеодекодер 26 могут работать согласно любому из множества стандартов сжатия видео, таких как заданные посредством Экспертной группы по киноизображению (MPEG) в стандарте MPEG-1, MPEG-2 и MPEG-4, ITU-T H.263, стандарт видеокодека Общества инженеров кино и телевидения (SMPTE) 421M (обычно называемый "VC-1"), стандарт, заданный посредством Рабочей группы по стандартам кодирования аудио-видео (Китай) (обычно называемой "AVS"), а также любой другой стандарт кодирования видео, заданный посредством органа стандартизации или разработанный посредством организации как собственный стандарт. Хотя не показано на фиг.1, в некоторых аспектах видеокодер 20 и видеодекодер 26 могут быть интегрированы с аудиокодером и декодером соответственно и могут включать в себя соответствующие модули MUX-DEMUX либо другие аппаратные средства и программное обеспечение, чтобы обрабатывать кодирование аудио и видео в общем потоке данных или в отдельных потоках данных. Таким образом, исходное устройство 12 и целевое устройство 14 могут оперировать с мультимедийными данными. Если применимо, модули MUX-DEMUX могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).
В некоторых аспектах для широковещательной передачи видео технологии, описанные в настоящем описании, могут быть применены к улучшенному кодированию видео H.264 для доставки видеоуслуг реального времени в системах наземной многоадресной передачи мобильного мультимедиа (TM3), использующих спецификацию радиоинтерфейса только прямой линии связи (FLO), "Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast", опубликованную в июле 2007 года как Технический стандарт TIA-1099 ("FLO Specification"). Другими словами, канал 16 связи может содержать беспроводной информационный канал, используемый для того, чтобы выполнять широковещательную передачу беспроводной видеоинформации согласно спецификации FLO, и т.п. Спецификация технологии FLO включает в себя примеры, задающие синтаксис и семантику потока битов, а также процессы декодирования, подходящие для радиоинтерфейса по технологии FLO.
Альтернативно, видео может передаваться в широковещательном режиме согласно другим стандартам, таким как DVB-H (цифровая широковещательная передача видео для карманных устройств), ISDB-T (комплексные службы цифровой наземной широковещательной передачи) или DMB (цифровая широковещательная передача мультимедиа). Следовательно, исходным устройством 12 может быть мобильный беспроводной терминал, сервер потоковой передачи видео и сервер широковещательной передачи видео. Тем не менее, технологии, описанные в данном документе, не ограничены каким-либо конкретным типом системы широковещательной передачи, многоадресной передачи или передачи "точка-точка". В случае широковещательной передачи исходное устройство 12 может передавать в широковещательном режиме несколько каналов видеоданных в несколько целевых устройств, каждое из которых может быть аналогичным целевому устройству 14 по фиг.1. Таким образом, хотя одно целевое устройство 14 показано на фиг.1, для приложений передачи видео в широковещательном режиме исходное устройство 12 типично должно передавать в широковещательном режиме видеосодержимое одновременно во множество целевых устройств.
В других примерах передающее устройство 22, канал 16 связи и приемное устройство 24 могут быть выполнены с возможностью связи согласно любой системе проводной или беспроводной связи, включающей в себя одно или более из Ethernet, телефона (к примеру, POTS), кабеля, линии питания и оптоволоконных систем, и/или беспроводной системы, содержащей одно или более из системы связи с множественным доступом с кодовым разделением (CDMA или CDMA2000), системы с множественным доступом с частотным разделением (FDMA), системы с множественным доступом c ортогональным частотным разделением (OFDM), системы с множественным доступом с временным разделением (TDMA), такой как GSM (глобальная система мобильной связи), GPRS (общая служба пакетной радиопередачи) или EDGE (развитие стандарта GSM с увеличенной скоростью передачи данных), мобильной телефонной системы TETRA (наземная транковая система связи), системы с широкополосным множественным доступом с кодовым разделением (WCDMA), системы по стандарту высокоскоростной передачи данных 1xEV-DO (высокоскоростная система обмена пакетными данными первого поколения) или системы Gold Multicast по 1xEV-DO, системы IEEE 802.18, системы MediaFLOTM, DMB-системы, DVB-H-системы или другой схемы обмена данных между двумя или больше устройствами.
Видеокодер 20 и видеодекодер 26 могут быть реализованы как один или более микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретная логика, программное обеспечение, аппаратные средства, микропрограммное обеспечение или любые комбинации вышеозначенного. Каждый из видеокодера 20 и видеодекодера 26 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть комбинированного кодера/декодера (кодека) в соответствующем мобильном устройстве, абонентском устройстве, широковещательном устройстве, сервере и т.п. Помимо этого, исходное устройство 12 и целевое устройство 14 могут включать в себя соответствующие компоненты модуляции, демодуляции, частотного преобразования, фильтрации и усилителя для передачи и приема кодированного видео, в зависимости от необходимости, включая радиочастотные (RF) беспроводные компоненты и антенны, достаточные для того, чтобы поддерживать беспроводную связь. Для простоты иллюстрации, тем не менее, эти компоненты обобщаются как передающее устройство 22 исходного устройства 12 и приемное устройство 24 из целевого устройства 14 на фиг.1.
Фиг.2 является блок-схемой, подробнее иллюстрирующей примерный видеокодер 20 по фиг.1. Видеокодер 20 может выполнять внутреннее и взаимное кодирование блоков в видеокадрах. Внутреннее кодирование базируется на пространственном прогнозировании, чтобы уменьшать или удалять пространственную избыточность в видеоданных в данной единице кодирования видео, к примеру, кадре или серии последовательных макроблоков. Для внутреннего кодирования видеокодер 20 формирует блок пространственного прогнозирования на основе одного или более ранее кодированных блоков в той же единице кодирования, что и кодируемый блок. Взаимное кодирование основывается на временном прогнозировании, чтобы уменьшать или удалять временную избыточность видео в смежных кадрах видеопоследовательности. Для взаимного кодирования видеокодер 5 выполняет оценку движения, чтобы отслеживать перемещение близко совпадающих видеоблоков между двумя или более смежными кадрами.
В примере по фиг.2 видеокодер 20 включает в себя модуль 30 блочной сегментации, модуль 32 прогнозирования, хранилище 34 кадров, модуль 38 преобразования, модуль 40 квантования, модуль 41 сканирования коэффициентов, модуль 42 обратного квантования, модуль 44 обратного преобразования и модуль 46 энтропийного кодирования. Видеокодер 20 также включает в себя сумматоры 48A и 48B ("сумматоры 48"). Контурный фильтр удаления блочности (не показан) может применяться к восстановленным видеоблокам, чтобы уменьшать или удалять артефакты блочности. Описание различных признаков на фиг.2 как модулей имеет намерение выделять различные функциональные аспекты проиллюстрированных устройств и не обязательно подразумевает, что эти модули должны быть реализованы посредством отдельных аппаратных или программных компонентов. Наоборот, функциональность, ассоциированная с одним или более модулей, может быть интегрирована в общих или отдельных аппаратных или программных компонентах.
Модуль 30 блочной сегментации принимает видеоинформацию (помеченную как "Входное видео" на фиг.2), к примеру, в форме последовательности видеокадров, от видеоисточника 18 (фиг.1). Модуль 30 блочной сегментации делит каждый из видеокадров на единицы кодирования, которые включают в себя множество видеоблоков. Как описано выше, единицей кодирования может быть весь кадр или часть кадра (к примеру, серия последовательных макроблоков кадра). В одном случае модуль 30 блочной сегментации первоначально может разделять каждую из единиц кодирования на множество видеоблоков с размером сегмента 16×16 (т.е. на макроблоки). Модуль 30 блочной сегментации дополнительно может подразделять каждый из видеоблоков 16×16 на меньшие блоки, такие как видеоблоки 8×8 или видеоблоки 4×4.
Видеокодер 20 выполняет внутреннее или взаимное кодирование для каждого из видеоблоков единицы кодирования на поблочной основе на основе типа блока. Модуль 32 прогнозирования назначает тип блока каждому из видеоблоков, который может указывать выбранный размер сегмента блока, а также то, должен блок прогнозироваться с использованием взаимного прогнозирования или внутреннего прогнозирования. В случае взаимного прогнозирования модуль 32 прогнозирования также определяет векторы движения. В случае внутреннего прогнозирования модуль 32 прогнозирования также определяет режим прогнозирования, чтобы использовать для того, чтобы формировать блок прогнозирования.
Модуль 32 прогнозирования затем формирует блок прогнозирования. Блок прогнозирования может быть прогнозируемой версией текущего видеоблока. Текущий видеоблок упоминается как в настоящий момент кодируемый видеоблок. В случае взаимного прогнозирования, к примеру, когда блоку назначается тип взаимного блока, модуль 32 прогнозирования может выполнять временное прогнозирование для взаимного кодирования текущего видеоблока. Модуль 32 прогнозирования, например, может сравнивать текущий видеоблок с блоками в одном или более смежных видеокадров, чтобы идентифицировать блок в смежном кадре, который наиболее близко совпадает с текущим видеоблоком, к примеру, блок в смежном кадре, который имеет наименьший MSE, SSD, SAD или другой разностный показатель. Модуль 32 прогнозирования выбирает идентифицированный блок в смежном кадре в качестве блока прогнозирования.
В случае внутреннего прогнозирования, т.е. когда блоку назначается тип внутреннего блока, модуль 32 прогнозирования может формировать блок прогнозирования на основе одного или более ранее кодированных соседних блоков в общей единице кодирования (к примеру, в кадре или серии последовательных макроблоков). Модуль 32 прогнозирования, например, может выполнять пространственное прогнозирование, чтобы формировать блок прогнозирования посредством выполнения интерполяции с использованием одного или более ранее кодированных соседних блоков в текущем кадре. Один или более смежных блоков в текущем кадре, например, могут извлекаться из хранилища 34 кадров, которое может содержать любой тип запоминающего устройства или устройства хранения данных, чтобы сохранять один или более ранее кодированных кадров или блоков.
Модуль 32 прогнозирования может выполнять интерполяцию в соответствии с одним из набора режимов прогнозирования. Как описано выше, набор режимов прогнозирования может включать в себя режимы однонаправленного прогнозирования и/или режимы многонаправленного прогнозирования. Режимы многонаправленного прогнозирования задают комбинации режимов однонаправленного прогнозирования. В одном примере набор режимов прогнозирования может включать в себя режимы однонаправленного прогнозирования, заданные в стандарте H.264/MPEG-4 часть 10 AVC, и режимы двунаправленного прогнозирования, которые задают различные комбинации двух режимов однонаправленного прогнозирования.
Для типа внутреннего блока 4×4, например, набор режимов прогнозирования может включать в себя девять режимов однонаправленного прогнозирования, заданных в стандарте H.264/MPEG-4 часть 10 AVC, и поднабор из возможных комбинаций режимов однонаправленного прогнозирования. Таким образом, вместо поддержки всех 36 возможных комбинаций режимов однонаправленного прогнозирования видеокодер 20 может поддерживать только часть возможных комбинаций режимов однонаправленного прогнозирования. Это может не приводить к значительному ухудшению качества кодирования. Один примерный набор режимов внутреннего прогнозирования, который включает в себя всего 18 режимов внутреннего прогнозирования, предоставлен ниже.
Режим 0: вертикальный
Режим 1: горизонтальный
Режим 2: DC
Режим 3: вниз и влево по диагонали
Режим 4: вниз и вправо по диагонали
Режим 5: вправо по вертикали
Режим 6: вниз по горизонтали
Режим 7: влево по вертикали
Режим 8: вверх по горизонтали
Режим 9: вертикальный + горизонтальный (режим 0 + режим 1)
Режим 10: DC + вертикальный (режим 2 + режим 0)
Режим 11: DC + горизонтальный (режим 2 + режим 1)
Режим 12: вниз и влево по диагонали + горизонтальный (режим 3 + режим 1)
Режим 13: вниз и вправо по диагонали + вертикальный (режим 4 + режим 0)
Режим 14: вправо по вертикали + горизонтальный (режим 5 + режим 1)
Режим 15: вниз по горизонтали + вертикальный (режим 6 + режим 0)
Режим 16: влево по вертикали + горизонтальный (режим 7 + режим 1)
Режим 17: горизонтальный + вертикальный (режим 8 + режим 0)
В примерном наборе, проиллюстрированном выше, режимы 0-8 являются режимами однонаправленного прогнозирования, а режимы 9-17 являются режимами двунаправленного прогнозирования. В частности, режимы 0-8 являются внутренними режимами прогнозирования 4×4, заданными в стандарте H.264/MPEG-4 часть 10 AVC. Режимы 9-17 являются поднабором возможных режимов двунаправленного прогнозирования. Поднабор возможных режимов двунаправленного прогнозирования в предоставленном примере включает в себя по меньшей мере одну комбинацию, которая включает режимы однонаправленного прогнозирования. Каждый режим двунаправленного прогнозирования, помимо режимов двунаправленного прогнозирования, которые включают в себя режим DC-прогнозирования (к примеру, режим 10 и 11), сочетает режимы однонаправленного прогнозирования, имеющие направления интерполяции, которые являются непараллельными, а в некоторых случаях по существу ортогональными друг к другу. Другими словами, поднабор режимов двунаправленного прогнозирования включает в себя режимы двунаправленного прогнозирования, которые в общем сочетают режимы прогнозирования из "вертикальной" категории с режимами прогнозирования из "горизонтальной" категории. Такие режимы двунаправленного прогнозирования дают возможность процессу внутреннего прогнозирования комбинировать доступные пикселы прогнозирования из местоположений, которые разнесены в большей степени, тем самым повышая качество прогнозирования для большего числа позиций пикселов в текущем видеоблоке.
Набор режимов прогнозирования, описанный выше, описывается в целях иллюстрации. Набор режимов прогнозирования может включать в себя большее или меньшее число режимов прогнозирования. Например, набор режимов прогнозирования может включать в себя большее или меньшее число режимов двунаправленного прогнозирования или не включать в себя режимы двунаправленного прогнозирования. В других случаях набор режимов прогнозирования может включать в себя только поднабор режимов однонаправленного прогнозирования. Дополнительно, набор режимов прогнозирования может включать в себя режимы многонаправленного прогнозирования, которые сочетают более двух режимов однонаправленного прогнозирования в дополнение или вместо режимов двунаправленного прогнозирования. Кроме того, хотя описано выше со ссылкой на типы внутреннего блока 4×4, технологии согласно настоящему описанию могут применяться к другим типам внутреннего блока (к примеру, типам внутреннего блока 8×8 или типам внутреннего блока 16×16) или типам взаимного блока.
Чтобы определить, какое множество режимов прогнозирования выбирать для конкретного блока, модуль 32 прогнозирования может оценивать затраты на кодирование, к примеру затраты Лагранжа, для каждого из режимов прогнозирования набора и выбирать режим прогнозирования с наименьшими затратами на кодирование. В других случаях модуль 32 прогнозирования может оценивать затраты на кодирование только для части набора возможных режимов прогнозирования. Например, режим 32 прогнозирования может выбирать часть режимов прогнозирования набора на основе режима прогнозирования, выбираемого для одного или более соседних видеоблоков. Модуль 32 прогнозирования формирует блок прогнозирования с использованием выбранного режима прогнозирования.
После формирования блока прогнозирования видеокодер 20 формирует остаточный блок посредством вычитания блока прогнозирования, сформированного посредством модуля 32 прогнозирования, из текущего видеоблока в сумматоре 48A. Остаточный блок включает в себя набор разностных пикселных значений, которые количественно оценивают различия между пикселными значениями текущего видеоблока и пикселными значениями блока прогнозирования. Остаточный блок может представляться в формате двумерного блока (к примеру, двумерной матрицы или массива пикселных значений). Другими словами, остаточный блок является двумерным представлением пикселных значений.
Модуль 38 преобразования применяет преобразование к остаточному блоку, чтобы формировать остаточные коэффициенты преобразования. Модуль 38 преобразования может применять, например, DCT, целочисленное преобразование, направленное преобразование, вейвлет-преобразование или комбинацию вышеозначенного. Модуль 38 преобразования может выборочно применять преобразования к остаточному блоку на основе режима прогнозирования, выбираемого посредством модуля 32 прогнозирования, чтобы формировать блок прогнозирования. Другими словами, преобразование, применяемое к остаточной информации, может зависеть от режима прогнозирования, выбираемого для блока посредством модуля 32 прогнозирования.
Модуль 38 преобразования может сохранять множество различных преобразований и выборочно применять преобразования к остаточному блоку на основе режима прогнозирования блока. Множество различных преобразований может включать в себя DCT, целочисленные преобразования, направленные преобразования, вейвлет-преобразования или комбинации вышеозначенного. В некоторых случаях модуль 38 преобразования может сохранять DCT или целочисленное преобразование и множество направленных преобразований и выборочно применять преобразования на основе режима прогнозирования, выбираемого для текущего видеоблока. Модуль 38 преобразования, например, может применять DCT или целочисленное преобразование к остаточным блокам с режимами прогнозирования, которые демонстрируют ограниченную направленность, и применять одно из направленных преобразований к остаточным блокам с режимами прогнозирования, которые демонстрируют значительную направленность.
Используя примерный набор режимов прогнозирования, описанный выше, модуль 38 преобразования может применять DCT или целочисленное преобразование к режимам 2, 9 и 12-17. Эти режимы могут демонстрировать ограниченную направленность, поскольку они являются либо DC-прогнозированием, либо комбинацией двух режимов прогнозирования приблизительно в ортогональных направлениях. Наоборот, режимы 1, 3-8, 10 и 11 являются режимами, которые могут демонстрировать направленность, и поэтому модуль 38 преобразования может применять различные направленные преобразования для каждого из этих режимов, чтобы достигать лучшего энергетического уплотнения остаточных видеоблоков. Другими словами, когда выбираются режимы прогнозирования, которые имеют более сильную направленность, направленность также может проявляться в остаточных блоках таких режимов прогнозирования. Также остаточные блоки различных режимов прогнозирования демонстрируют различные характеристики направленности. По сути, по сравнению с такими преобразованиями, как DCT- или DCT-подобное целочисленное преобразование, направленные преобразования, специально подготовленные для каждого режима прогнозирования, могут предоставлять лучшее энергетическое уплотнение для остаточных блоков данного режима прогнозирования. С другой стороны, для режимов прогнозирования, которые не переносят сильную направленность, такие преобразования, как DCT- или DCT-подобное целочисленное преобразование, предоставляют достаточное энергетическое уплотнение. Таким образом, модуль 38 преобразования не должен сохранять отдельные преобразования для каждого из возможных режимов прогнозирования, тем самым снижая требования по хранению для преобразования. Кроме того, применение DCT и/или целочисленных преобразований является менее комплексным с точки зрения вычислительной сложности.
В других случаях модуль 38 преобразования может сохранять различное направленное преобразование для каждого из возможных режимов прогнозирования и применять соответствующие направленные преобразования на основе выбранного режима прогнозирования блока. Для примерного набора режимов прогнозирования, описанного выше, модуль 38 преобразования может сохранять восемнадцать различных направленных преобразований, каждое из которых соответствует одному из восемнадцати возможных режимов внутреннего прогнозирования 4×4. Дополнительно, модуль 38 преобразования может сохранять восемнадцать различных направленных преобразований для восемнадцати возможных режимов внутреннего прогнозирования 8×8 и четыре различных направленных преобразования для четырех возможных режимов внутреннего прогнозирования 16×16 и преобразования для любых других режимов прогнозирования других размеров сегмента. Применение отдельных направленных преобразований на основе выбранного режима прогнозирования блока повышает эффективность, с которой остаточная энергия захватывается, в частности, для блоков, для которых выбираются режимы прогнозирования, которые демонстрируют значительную направленность. Направленные преобразования могут быть неразделимыми направленными преобразованиями, к примеру, извлекаемыми из неразделимых преобразований Карунена-Лоэва (KLT), или разделимыми направленными преобразованиями. В некоторых случаях направленные преобразования могут предварительно вычисляться с использованием обучающих наборов данных.
KLT - это линейное преобразование, в котором базисные функции извлекаются из статистики сигнала и, таким образом, могут быть адаптивными. KLT спроектировано с возможностью передавать максимально возможную величину энергии в минимально возможном числе коэффициентов. KLT, в общем, является неразделимым, и тем самым модуль 38 преобразования выполняет полноматричное умножение, как подробно поясняется ниже. Применение неразделимого направленного преобразования к остаточному блоку 4x4 описывается в примерных целях. Аналогичные технологии используются для блоков других размеров, к примеру, блока 8×8 или блоков 16×16.
Остаточный блок 4×4 X представляется в формате двумерного блока с четырьмя строками и четырьмя столбцами пикселных значений, т.е. всего с шестнадцатью пикселными значениями. Чтобы применять неразделимое направленное преобразование, остаточный блок 4×4 перекомпоновывается в одномерный вектор из x пикселных значений, т.е. длины шестнадцать. Остаточный блок 4×4 X перекомпоновывается в вектор x посредством компоновки пикселов в X в порядке растрового сканирования. Таким образом, если остаточный блок 4×4 X записывается как:
то остаточный вектор x длины 16 записывается как:
Вектор коэффициентов преобразования y получается посредством выполнения матричного умножения в соответствии со следующим уравнением (1):
y=Tx, (1)
где T - это матрица преобразования размера 16×16, которая соответствует режиму прогнозирования, выбираемому для блока. Вектор коэффициентов преобразования y является также одномерным вектором, имеющим длину в шестнадцать коэффициентов.
Использование неразделимых направленных преобразований может влечь за собой повышение вычислительных затрат и требований по хранению. В общем, для остаточного блока размера N×N неразделимое направленное преобразование требует базисных функций размера N2×N2. Таким образом, для остаточных блоков 4×4 неразделимое направленное преобразование имеет размер 16×16; для остаточных блоков 8×8 неразделимое направленное преобразование имеет размер 64×64; и для остаточных блоков 16x16 неразделимое направленное преобразование имеет размер 256×256. Поскольку различное неразделимое направленное преобразование может использоваться для каждого из режимов прогнозирования набора, модуль 32 преобразования может сохранять восемнадцать направленных преобразований 16×16 для блоков 4×4 и восемнадцать преобразований 64×64 для блоков 8×8 (в случае примерного набора режимов прогнозирования, описанного выше), и возможно больше, если набор режимов прогнозирования больше. Это может приводить к использованию значительных ресурсов памяти для того, чтобы сохранять матрицы преобразования, требуемые для того, чтобы выполнять процесс преобразования. Вычислительные затраты неразделимых направленных преобразований также являются высокими. В общем, применение неразделимого направленного преобразования для блока N×N требует N2×N2 умножений и N2×(N2-1) сложений.
Вместо неразделимых направленных преобразований модуль 32 преобразования может сохранять разделимые направленные преобразования для каждого из режимов прогнозирования. Разделимые направленные преобразования имеют меньшие затраты на хранение и вычисления по сравнению с неразделимыми направленными преобразованиями. Для остаточного блока 4×4 X, например, разделимое преобразование применяется так, как указано посредством следующего уравнения (2):
Y=CXR, (2)
где Y - это результирующая матрица коэффициентов преобразования, C - это матрица постолбцового преобразования и R - это матрица построчного преобразования, всех из которых имеют размер, равный размеру блока (к примеру, 4×4 в этом примере). Таким образом, результирующая матрица коэффициентов преобразования Y является также двумерной матрицей размера 4×4.
Для каждого режима прогнозирования модуль 32 преобразования может сохранять две матрицы преобразования N×N (к примеру, пары матриц C и R), где N×N соответствует размеру блока (к примеру, N=4, 8 или 16). В примерном наборе из восемнадцати режимов прогнозирования для блока 4×4, описанного выше, модуль 32 преобразования сохраняет тридцать шесть матриц преобразования 4x4, что требует меньшего объема памяти, чем восемнадцать матриц преобразования 16×16, сохраняемых, когда используются неразделимые преобразования. Дополнительно, модуль 32 преобразования может выполнять разделимое направленное преобразование с помощью 2×N×N×N умножений и 2×N×N× (n-1) сложений, что является значительно меньшим числом операций, чем N2×N2 умножений и N2×(N2-1) сложений, используемых для выполнения неразделимых направленных преобразований. Таблица 1 сравнивает требования по хранениям и вычислениям между использованием разделимых и неразделимых направленных преобразований для размеров блоков в 4×4 и 8×8. Сравнение между разделимыми направленными преобразованиями и неразделимыми направленными преобразованиями для блоков 16×16 может осуществляться аналогичным образом. Как проиллюстрировано в таблице 1, использование разделимых направленных преобразований предоставляет снижение как сложности вычисления, так и требований по хранению по сравнению с неразделимыми направленными преобразованиями, и снижение становится более значительным для больших размеров блока, к примеру, снижение для блоков 8×8 больше, чем снижение для блоков 4×4.
Таблица 1 Сложность неразделимых по сравнению с разделимыми направленными преобразованиями |
|||
Размер блока | Неразделимое преобразование | Разделимое преобразование | |
Хранение для всех режимов (в байтах) |
4×4 | 18×16×16=4608 | 18×2×4×4=576 |
8×8 | 18×64×64=73728 | 18×2×8×8=2304 | |
Вычисление в расчете на блок | 4×4 | 256 операций умножения 240 операций сложения |
128 операций умножения, 96 операций сложения |
8×8 | 4096 операций умножения 4032 операции сложения |
1024 операции умножения 896 операций сложения |
Матрицы разделимого преобразования для каждого режима прогнозирования могут получаться с использованием остатков прогнозирования из набора обучающих видеопоследовательностей. Аналогично извлечению неразделимого KLT-преобразования, процесс разложения по сингулярным значениям (VSD) может применяться к остаткам прогнозирования в обучающем наборе сначала в направлении строк, а затем в направлении столбцов, чтобы получать матрицу построчного преобразования и матрицу постолбцового преобразования соответственно. Альтернативно, матрицы неразделимого направленного преобразования, т.е. матрицы неразделимого KLT-преобразования, могут обучаться сначала с помощью остатков прогнозирования из обучающего набора; затем матрицы разделимого преобразования для каждого режима прогнозирования могут получаться посредством дополнительного разложения матриц неразделимого преобразования на матрицы разделимого преобразования.
В любом случае результирующие матрицы преобразования обычно имеют точность с плавающей запятой. Числа с точностью с фиксированной запятой используются для того, чтобы аппроксимировать коэффициенты в матрицах преобразования, чтобы предоставлять возможность использования арифметики с фиксированной запятой в процессе преобразования и снижать вычислительные затраты. Точность приближений с фиксированной запятой коэффициентов в матрицах преобразования определяется посредством нахождения баланса между сложностью вычисления и максимальной точностью, необходимой во время процесса преобразования с использованием арифметики с фиксированной запятой. Другими словами, более высокая точность приближений с фиксированной запятой матриц преобразования может приводить к меньшим ошибкам вследствие использования приближения с фиксированной запятой, что является желательным, но слишком высокая точность в приближениях с фиксированной запятой матриц преобразования также может заставлять арифметику с фиксированной запятой переполняться во время процесса преобразования, что не является желательным.
После применения преобразования к остаточному блоку пикселных значений модуль 40 квантования квантует коэффициенты преобразования, чтобы дополнительно уменьшать скорость передачи битов. После квантования модуль 42 обратного квантования и модуль 44 обратного преобразования могут применять обратное квантование и обратное преобразование соответственно, чтобы восстанавливать остаточный блок (помеченный как "Восстановленный остаточный блок" на фиг.2). Сумматор 48B прибавляет восстановленный остаточный блок к блоку прогнозирования, сформированному посредством модуля 32 прогнозирования, чтобы формировать восстановленный видеоблок для хранения в хранилище 34 кадров. Восстановленный видеоблок может быть использован посредством модуля 32 прогнозирования для того, чтобы внутренне или взаимно кодировать последующий видеоблок.
Как описано выше, когда используются разделимые преобразования, которые включают в себя DCT, целочисленные преобразования, используемые в H.264/AVC, и разделимые направленные преобразования, результирующие коэффициенты преобразования представляются как двумерные матрицы коэффициентов. Следовательно, после квантования модуль 41 сканирования коэффициентов сканирует коэффициенты из формата двумерного блока в формат одномерного вектора; процесс зачастую упоминается как сканирование коэффициентов. В частности, модуль 41 сканирования коэффициентов сканирует коэффициенты в соответствии с порядком сканирования. В соответствии с одним аспектом настоящего описания модуль 41 сканирования коэффициентов может адаптивно регулировать порядок сканирования, используемый для сканирования коэффициентов, на основе статистики по одному или более коэффициентам. В некоторых случаях модуль 41 сканирования коэффициентов может адаптивно регулировать порядок сканирования отдельно для каждого из режимов прогнозирования, поскольку каждый из режимов прогнозирования может иметь различную статистику по коэффициентам.
Модуль 41 сканирования коэффициентов может первоначально сканировать коэффициенты квантованного остаточного блока с использованием остатков первого порядка сканирования. В одном аспекте первый порядок сканирования может быть зигзагообразным порядком сканирования, который типично используется в приложениях H.264/MPEG-4 часть 10 AVC. Хотя модуль 41 сканирования коэффициентов описывается как начальное сканирование с использованием зигзагообразного порядка сканирования, технологии согласно настоящему описанию не ограничены каким-либо конкретным начальным порядком или технологией сканирования. Кроме того, каждый из режимов прогнозирования может иметь различный начальный порядок сканирования, к примеру, порядок сканирования, специально подготовленный для этого режима прогнозирования. Зигзагообразный порядок сканирования, тем не менее, описывается в целях иллюстрации. Зигзагообразный порядок сканирования размещает квантованные коэффициенты в одномерном векторе так, что коэффициенты в верхнем левом углу двумерного блока уплотняются к началу вектора коэффициентов. Зигзагообразный порядок сканирования может предоставлять достаточную компактность для блоков коэффициентов, которые имеют ограниченную направленность.
Когда остаточные блоки имеют некоторую или значительную направленность и преобразуются с использованием разделимых направленных преобразований, результирующий двумерный блок коэффициентов преобразования по-прежнему может переносить некоторую величину направленности. Это происходит вследствие того, что хотя использование разделимых направленных преобразований предлагает преимущества меньшей вычислительной сложности и требований по хранению, оно не позволяет фиксировать направленность в остаточных блоках, а также использовать неразделимые направленные преобразования. В качестве примера после применения направленного преобразования к вертикальному прогнозированию (режим 0 примера, описанного выше) ненулевые коэффициенты имеют тенденцию располагаться вдоль горизонтального направления. Таким образом, зигзагообразный порядок сканирования может не приводить к уплотнению всех ненулевых коэффициентов к началу вектора коэффициентов. Посредством адаптации порядка сканирования коэффициентов так, чтобы ориентировать порядок сканирования в горизонтальном направлении вместо фиксированного зигзагообразного порядка сканирования, ненулевые коэффициенты блока коэффициентов могут более уплотняться к началу одномерного вектора коэффициентов, чем имеет место в случае, если сканирование осуществляется в зигзагообразном порядке сканирования. Это позволяет, в свою очередь, уменьшать число битов, расходуемое на энтропийное кодирование, поскольку имеются более короткие серии нулей между ненулевыми коэффициентами в начале одномерного вектора коэффициентов и одна более длинная серия нулей в конце одномерного вектора коэффициентов. Принцип адаптации порядка сканирования, используемого для того, чтобы формировать одномерный вектор коэффициентов, также применяется к другим режимам прогнозирования. Например, модуль 41 сканирования коэффициентов может адаптивно регулировать порядок сканирования отдельно для каждого из режимов прогнозирования, поскольку каждый из режимов прогнозирования может иметь различную направленность в блоках коэффициентов и, следовательно, различную статистику по коэффициентам. Таким образом, порядок сканирования может быть различным для каждого из режимов прогнозирования.
Как описано выше, начальный порядок сканирования может не быть зигзагообразным порядком сканирования, в частности, для случаев, в которых направленные преобразования применяются к остаточному блоку. В этих случаях начальный порядок сканирования может быть заранее определен с помощью одной из технологий, описанных ниже. В качестве одного примера начальный порядок сканирования может быть определен с использованием набора обучающих видеопоследовательностей. Статистические данные ненулевых коэффициентов, такие как статистика, описанная ниже, собираются для каждого режима прогнозирования и используются для того, чтобы инициализировать порядок сканирования коэффициентов. В частности, позиция с наибольшей вероятностью ненулевых коэффициентов является первой позицией коэффициента начального порядка сканирования, далее позиция со следующей наибольшей вероятностью ненулевых коэффициентов является второй позицией коэффициента начального порядка сканирования и т.д. вплоть до позиции с наименьшей ненулевой вероятностью, которая является последней позицией коэффициента начального порядка сканирования. Альтернативно, начальный порядок сканирования может быть определен на основе величин собственных значений матриц разделимого преобразования. Например, собственные значения могут сортироваться в порядке по убыванию, и коэффициенты сканируются согласно соответствующему порядку собственных значений.
Даже если начальный порядок сканирования определяется с использованием одной из технологий, описанных выше, различные типы видеоисточников могут приводить к нахождению квантованных остаточных коэффициентов в различных позициях коэффициентов в блоке. Например, видеоисточники различных разрешений, к примеру, видеоисточники согласно общему промежуточному формату (CIF), стандарту четверть-CIF (QCIF) и стандарту высокой четкости (к примеру, 720p/i или 1080p/i) могут приводить к нахождению ненулевых коэффициентов в различных позициях коэффициентов в блоке. Таким образом, даже если начальный порядок сканирования выбирается на основе режима прогнозирования блока, модуль 41 сканирования коэффициентов по-прежнему может адаптировать порядок сканирования так, чтобы улучшать компактность ненулевых коэффициентов к началу одномерного вектора коэффициентов.
Чтобы адаптировать порядок сканирования, модуль 41 сканирования коэффициентов или другой модуль видеокодера 20, может собирать статистику по одному или более коэффициентам для одного или более блоков. Другими словами, поскольку сканирование коэффициентов выполняется поблочно, модуль 41 сканирования коэффициентов может собирать статистические данные, которые указывают число раз, когда каждая из позиций в блоке имеет ненулевой коэффициент. Например, модуль 41 сканирования коэффициентов может сохранять множество счетчиков, каждый из которых соответствует позиции коэффициента в двумерном блоке, и увеличивать счетчик, соответствующий позиции, когда ненулевой коэффициент находится в этой соответствующей позиции. Таким образом, высокие значения счетчика соответствуют позициям в блоке, в которых ненулевые коэффициенты появляются с большей частотой, а низкие значения счетчика соответствуют позициям в блоке, в которых ненулевые коэффициенты появляются с меньшей частотой. В некоторых случаях модуль 41 сканирования коэффициентов может собирать отдельные наборы статистики по коэффициентам для каждого из режимов прогнозирования.
Как описано выше, модуль 41 сканирования коэффициентов может адаптировать порядок сканирования на основе собранных статистических данных. Модуль 41 сканирования коэффициентов может, на основе собранных статистических данных, адаптировать порядок сканирования так, чтобы сканировать позиции коэффициентов, которые определяются как имеющие большую вероятность наличия ненулевых коэффициентов, до местоположений коэффициентов, которые определяются как имеющие меньшую вероятность наличия ненулевых коэффициентов. Например, модуль 41 сканирования коэффициентов может адаптировать порядок сканирования так, чтобы сканировать позиции коэффициентов двумерного блока в порядке убывания на основе значений счетчика, когда значения счетчика представляют число раз, когда соответствующие местоположения коэффициентов имеют ненулевое значение. Альтернативно, счетчики могут отслеживать число раз, когда каждая из позиций в блоке являлась местоположением для коэффициента с нулевым значением, и адаптируют порядок сканирования так, чтобы сканировать позиции коэффициентов в порядке возрастания на основе их значений счетчика. В некоторых случаях статистические данные могут собираться только для поднабора позиций коэффициентов блока вместо всех позиций коэффициентов блока. В этом случае модуль 41 сканирования коэффициентов может адаптировать только часть порядка сканирования.
Модуль 41 сканирования коэффициентов может адаптировать порядок сканирования с фиксированными или нефиксированными интервалами. Например, модуль 41 сканирования коэффициентов может адаптировать порядок сканирования с фиксированными интервалами, такими как границы блоков. В некоторых случаях модуль 41 сканирования коэффициентов может адаптировать порядок сканирования на границах блоков 4x4 или 8x8 или на границах макроблоков. Таким образом, порядок сканирования может адаптироваться к каждому блоку или макроблоку. Тем не менее, чтобы снижать сложность, модуль 41 сканирования коэффициентов может адаптировать порядок сканирования менее часто, к примеру, после каждых n блоков или макроблоков. Альтернативно, модуль 41 сканирования коэффициентов может адаптировать порядок сканирования с нефиксированными интервалами. Модуль 41 сканирования коэффициентов, например, может адаптировать порядок сканирования, когда одно из значений счетчика позиции в блоке превышает пороговое значение. После адаптации порядка сканирования модуль 41 сканирования коэффициентов может сканировать последующие квантованные остаточные блоки по меньшей мере одного последующего видеоблока с использованием адаптированного порядка сканирования. В некоторых случаях модуль 41 сканирования коэффициентов может сканировать последующие квантованные остаточные блоки по меньшей мере одного последующего видеоблока с использованием адаптированного порядка сканирования, когда по меньшей мере один последующий видеоблок существует в единице кодирования первого видеоблока. Модуль 41 сканирования коэффициентов может продолжать сканировать последующие видеоблоки до тех пор, пока порядок сканирования не адаптирован снова в соответствии с собранными статистическими данными или порядок сканирования не инициализирован повторно. Таким образом, модуль 41 сканирования коэффициентов адаптирует порядок сканирования так, чтобы формировать одномерный вектор коэффициентов таким образом, что квантованные остаточные коэффициенты могут быть более эффективно кодированы посредством модуля 46 энтропийного кодирования.
Модуль 41 сканирования коэффициентов может, в некоторых случаях, нормализовать собранные статистические данные. Нормализация собранных статистических данных может быть желательной, когда счетчики коэффициентов достигают порогового значения. Позиция коэффициента, в данном документе упоминаемая как позиция коэффициента A, в блоке, который имеет значение счетчика, которое достигло порога, например, может оставаться местоположением коэффициента с наибольшим значением счетчика, даже когда местоположение коэффициента не имело ненулевой коэффициент в течение периода времени. Это обусловлено тем, что счетчик коэффициентов в позиции A является настолько большим, что другие счетчики коэффициентов могут принимать несколько блоков (к примеру, десятки или сотни блоков) до тех пор, пока счетчик коэффициентов другой позиции, в данном документе упоминаемой как позиция коэффициента B, в блоке не превышает счетчик коэффициентов в позиции A и приводит к изменению (т.е. смене) порядка сканирования между позициями коэффициентов A и B. Таким образом, чтобы давать возможность видеокодеру 20 быстрее адаптироваться к локальной статистике по коэффициентам, модуль 41 сканирования коэффициентов может нормализовать коэффициенты, когда один из счетчиков достигает порогового значения. Например, модуль 41 сканирования коэффициентов может нормализовать коэффициенты посредством уменьшения каждого из значений счетчика на заранее определенный коэффициент, к примеру уменьшения каждого из значений счетчика на коэффициент два, или посредством сброса значений счетчика к набору начальных значений счетчика. Модуль 41 сканирования коэффициентов может использовать другие технологии нормализации. Например, модуль 41 сканирования коэффициентов может обновлять статистику после кодирования конкретного числа блоков.
Модуль 46 энтропийного кодирования принимает одномерный вектор коэффициентов, который представляет остаточные коэффициенты блока, а также информацию заголовка блока для блока в форме одного или более элементов синтаксиса заголовка. Элементы синтаксиса заголовка могут идентифицировать конкретные характеристики текущего видеоблока, такие как тип блока, режим прогнозирования, конфигурация кодированного блока (CBP) для сигнала яркости и сигнала цветности, блочный сегмент и один или более векторов движения. Эти элементы синтаксиса заголовка могут приниматься от других компонентов, например, от модуля 32 прогнозирования в видеокодере 20.
Модуль 46 энтропийного кодирования кодирует информацию заголовка и остаточную информацию для текущего видеоблока, чтобы формировать кодированный поток битов (помеченный как "Поток видеобитов" на фиг.2). Модуль 46 энтропийного кодирования кодирует один или более из элементов синтаксиса каждого из блоков в соответствии с технологиями, описанными в настоящем описании. В частности, модуль 46 энтропийного кодирования может кодировать элементы синтаксиса текущего блока на основе элементов синтаксиса одного или более ранее кодированных видеоблоков. По сути, модуль 46 энтропийного кодирования может включать в себя один или более буферов, чтобы сохранять элементы синтаксиса одного или более ранее кодированных видеоблоков. Модуль 46 энтропийного кодирования может анализировать любое число соседних блоков в любом местоположении, чтобы помогать в кодировании элементов синтаксиса текущего видеоблока. В целях иллюстрации модуль 46 энтропийного кодирования описывается как кодирующий режим прогнозирования на основе ранее кодированного блока, находящегося сразу выше текущего блока (т.е. верхнего соседнего блока), и ранее кодированного блока, находящегося сразу слева от текущего блока (т.е. левого соседнего блока). Тем не менее, аналогичные технологии могут использоваться для кодирования других элементов синтаксиса заголовка, таких как типы блоков, блочные сегменты, CBP и т.п. Кроме того, могут использоваться аналогичные технологии, которые заключают в себе больше соседних блоков, чем только верхние соседние блоки и левые соседние блоки, при кодировании текущего видеоблока.
Работа модуля 46 энтропийного кодирования описывается в отношении набора из восемнадцати режимов прогнозирования, описанного выше, и согласно нижеприведенному примерному псевдокоду.
Пусть upMode является режимом прогнозирования верхнего блока
Пусть leftMode является режимом прогнозирования левого блока
Пусть currMode является режимом прогнозирования текущего блока
Если currMode == upMode || currMode == leftMode
Отправить "1"
Если upMode! = leftMode
Отправить "1" если currMode == upMode, или "0" иначе
Иначе
Отправить "0"
Регулировать currMode так, чтобы находился в диапазоне [0, 15]
Отправить currMode с помощью 4 битов
Модуль 46 энтропийного кодирования инициализирует переменные upMode, leftMode и currMode как равные режиму прогнозирования верхнего соседнего блока, режиму прогнозирования левого соседнего блока и режиму прогнозирования текущего блока соответственно. Как описано выше, режимы прогнозирования верхнего соседнего блока, левого соседнего блока и текущего блока могут быть определены на основе анализа затрат Лагранжа. Модуль 46 энтропийного кодирования сравнивает режим прогнозирования текущего блока (currMode) с режимом прогнозирования соседних блоков (upMode и leftMode). Если режим прогнозирования текущего блока является идентичным режиму прогнозирования любого из соседних блоков, модуль 46 энтропийного кодирования кодирует "1". Таким образом, первый бит, кодируемый посредством модуля 46 энтропийного кодирования так, чтобы представлять режим прогнозирования текущего блока, указывает то, является или нет текущий режим прогнозирования идентичным либо режиму прогнозирования верхнего соседнего блока, либо режиму прогнозирования левого соседнего блока.
Если режим прогнозирования текущего блока является идентичным режиму прогнозирования любого из соседних блоков, т.е. первый кодированный бит равен "1", модуль 46 энтропийного кодирования сравнивает режим прогнозирования верхнего соседнего блока с режимом прогнозирования левого соседнего блока. Если режим прогнозирования верхнего соседнего блока является идентичным режиму прогнозирования левого соседнего блока, модуль 46 энтропийного кодирования больше не кодирует биты для режима прогнозирования. В этом случае режим прогнозирования может быть кодирован с использованием одного бита.
Тем не менее, если режим прогнозирования верхнего соседнего блока не является идентичным режиму прогнозирования левого соседнего блока, модуль 46 энтропийного кодирования кодирует по меньшей мере один дополнительный бит, представляющий режим прогнозирования, чтобы указывать, какой из соседних блоков имеет такой же режим прогнозирования, как текущий блок. Например, когда модуль 46 энтропийного кодирования анализирует режим прогнозирования верхнего и левого соседних блоков, модуль 46 энтропийного кодирования может кодировать "1", если режим прогнозирования текущего блока является идентичным режиму прогнозирования верхнего соседнего блока, и кодирует "0", если режим прогнозирования текущего блока является идентичным режиму прогнозирования левого соседнего блока. Модуль 46 энтропийного кодирования, альтернативно, может кодировать "1", если режим прогнозирования текущего блока является идентичным режиму прогнозирования левого соседнего блока, и кодировать "0", если режим прогнозирования текущего блока является идентичным режиму прогнозирования верхнего соседнего блока. В любом случае второй бит кодированного режима прогнозирования указывает, какой из верхнего соседнего блока или левого соседнего блока имеет такой же режим прогнозирования, как режим прогнозирования текущего блока. Таким образом, модуль 46 энтропийного кодирования может кодировать режим прогнозирования текущего блока с использованием минимум одного бита, а максимум двух битов, когда режим прогнозирования текущего блока является идентичным режиму прогнозирования одного из соседних блоков. Если модуль 46 энтропийного кодирования анализирует более двух соседних блоков, модуль 46 энтропийного кодирования может кодировать более одного дополнительного бита, чтобы указывать, какой из ранее кодированных блоков имеет такой же самый режим прогнозирования, как текущий блок.
Если режим прогнозирования текущего видеоблока не является идентичным ни режиму прогнозирования верхнего соседнего блока, ни режиму прогнозирования левого соседнего блока, модуль 46 энтропийного кодирования отправляет "0", что указывает то, что режим прогнозирования текущего видеоблока не является идентичным режимам прогнозирования любого из соседних блоков. Модуль 46 энтропийного кодирования кодирует кодовое слово, которое представляет режим прогнозирования текущего блока. Используя набор из восемнадцати режимов прогнозирования, описанный выше, в качестве примера модуль 46 энтропийного кодирования может кодировать режим прогнозирования текущего видеоблока с использованием четырехбитового кодового слова. Хотя предусмотрено восемнадцать возможных режимов прогнозирования, которые типично требуют пятибитовых кодовых слов, два из возможных режимов прогнозирования уже могут быть исключены из набора для текущего блока, т.е. режимы прогнозирования верхнего соседнего блока и левого соседнего блока, поскольку режимы прогнозирования верхнего соседнего блока и левого соседнего блока уже сравнивались с режимом прогнозирования текущего блока и определены как неравные режиму прогнозирования текущего блока. Когда верхний соседний блок и левый соседний блок имеют одинаковый режим прогнозирования, тем не менее, остаются возможными семнадцать режимов прогнозирования вместо шестнадцати режимов прогнозирования, также требуя пятибитового кодового слова, а не четырехбитового кодового слова для того, чтобы представлять режимы. В этом случае во время процесса прогнозирования модуль 32 прогнозирования может выборочно удалять один из оставшихся семнадцати режимов кодирования из набора, чтобы давать возможность представления режима прогнозирования текущего с использованием четырехбитового кодового слова. В одном случае модуль 32 прогнозирования может удалять последний режим прогнозирования, к примеру, режим 17 прогнозирования в этом примере. Тем не менее, модуль 32 прогнозирования может выбирать любой из режимов прогнозирования набора, которые должны быть удалены, с использованием любой другой из множества технологий. Например, модуль 32 прогнозирования может отслеживать вероятность выбора каждого режима прогнозирования и удалять режим прогнозирования с наименьшей вероятностью выбора.
После удаления выбранного режима прогнозирования модуль 46 энтропийного кодирования регулирует диапазон этих шестнадцати оставшихся режимов прогнозирования так, что номера режимов прогнозирования варьируются в диапазоне [0, 15]. В одном примере модуль 46 энтропийного кодирования может временно перенумеровывать оставшиеся режимы прогнозирования от 0 до 15, начиная с назначения 0 оставшемуся режиму прогнозирования с наименьшим номером режима и завершая назначением 15 оставшемуся режиму прогнозирования с наибольшим номером режима прогнозирования. Например, если режим прогнозирования верхнего соседнего блока является режимом 12, а режим прогнозирования левого соседнего блока является режимом 14, модуль 46 энтропийного кодирования может перенумеровывать режим прогнозирования 13, режим прогнозирования 15, режим прогнозирования 16 и режим прогнозирования 17 как режим прогнозирования 12, режим прогнозирования 13, режим прогнозирования 14 и режим прогнозирования 15 соответственно. Модуль 46 энтропийного кодирования затем кодирует режим прогнозирования с использованием четырех битов. В других примерах с наборами режимов прогнозирования с большим или меньшим числом возможных режимов прогнозирования, модуль 46 энтропийного кодирования может кодировать режим прогнозирования с помощью большего или меньшего числа битов с использованием аналогичных технологий.
Модуль 46 энтропийного кодирования может кодировать режим прогнозирования текущего видеоблока с использованием CAVLC или CABAC. Может существовать сильная корреляция между режимом прогнозирования текущего блока и режимами прогнозирования верхнего и левого соседних блоков. В частности, когда режим прогнозирования верхнего соседнего блока и режим прогнозирования левого соседнего блока является режимом однонаправленного прогнозирования, вероятность, что режим прогнозирования текущего блока также является одним из режимов однонаправленного прогнозирования, является высокой. Аналогично, когда режим прогнозирования верхнего соседнего блока и режим прогнозирования левого соседнего блока является режимом двунаправленного прогнозирования, вероятность, что режим прогнозирования текущего блока также является одним из режимов двунаправленного прогнозирования, является высокой. Таким образом, распределения вероятностей режима прогнозирования текущего блока изменяются, когда категории (к примеру, однонаправленный по сравнению с двунаправленным) режимов прогнозирования верхнего и левого соседних блоков изменяются.
По сути, модуль 46 энтропийного кодирования может выбирать, в некоторых аспектах, различные контексты кодирования в зависимости от того, являются режимы прогнозирования одного или более ранее кодированных видеоблоков (к примеру, верхний и левый соседние видеоблоки) однонаправленными или двунаправленными. В случае CABAC различные контексты кодирования отражают различные вероятности набора режимов прогнозирования в пределах данного контекста. Возьмем, например, контекст кодирования, в данном документе называемый "первый контекст кодирования", который соответствует случаю, когда как верхний, так и левый соседние блоки кодирования имеют режимы однонаправленного прогнозирования. Вследствие соседней корреляции первый контекст кодирования может назначать большие вероятности режимам однонаправленного прогнозирования, чем режимам двунаправленного прогнозирования. Таким образом, когда для CABAC-кодирования выбирается первый контекст кодирования (т.е. и верхний и левый соседние режимы прогнозирования являются однонаправленными), меньшее число битов может быть расходовано на кодирование текущего режима прогнозирования, если текущий режим прогнозирования является одним из режимов однонаправленного прогнозирования, по сравнению с тем, если текущий режим прогнозирования является одним из режимов двунаправленного прогнозирования. В случае CAVLC различные таблицы VLC-кодирования могут быть заданы для различных контекстов кодирования. Например, когда выбран первый контекст кодирования (т.е. как верхний, так и левый соседние блоки имеют режимы однонаправленного прогнозирования), может использоваться таблица VLC-кодирования, которая назначает более короткие кодовые слова режимам однонаправленного прогнозирования, чем режимам двунаправленного прогнозирования.
Таким образом, модуль 46 энтропийного кодирования может выбирать первый контекст кодирования, когда режим прогнозирования верхнего видеоблока и режим прогнозирования левого видеоблока являются режимами однонаправленного прогнозирования. Модуль 46 энтропийного кодирования может выбирать другой контекст кодирования, когда режим прогнозирования верхнего видеоблока и режим прогнозирования левого видеоблока оба не являются режимами однонаправленного прогнозирования. Например, модуль 46 энтропийного кодирования может выбирать второй контекст кодирования, когда режим прогнозирования верхнего соседнего видеоблока и режим прогнозирования левого соседнего видеоблока являются режимами двунаправленного прогнозирования. Второй контекст кодирования моделирует распределение вероятностей для режима прогнозирования текущего видеоблока, когда режим прогнозирования обоих из верхнего и левого соседних блоков является двунаправленным. Распределение вероятностей второго контекста кодирования может назначать большие вероятности режимам двунаправленного прогнозирования, чем режимам однонаправленного прогнозирования, в случае CABAC-кодирования, и назначать более короткие кодовые слова режимам двунаправленного прогнозирования, чем режимам однонаправленного прогнозирования, в случае CAVLC-кодирования.
Модуль 46 энтропийного кодирования может выбирать еще и третий контекст кодирования, когда режим прогнозирования одного из соседних блоков является режимом однонаправленного прогнозирования, а режим прогнозирования другого из соседних блоков является режимом двунаправленного прогнозирования. Третий контекст кодирования более равномерно распределяет вероятность текущего режима прогнозирования между режимами однонаправленного прогнозирования и режимами двунаправленного прогнозирования набора. Выбор различных контекстов кодирования для использования при кодировании на основе того, являются режимы прогнозирования одного или более ранее кодированных видеоблоков (к примеру, верхнего и левого видеоблоки) однонаправленными или двунаправленными, может приводить к лучшему сжатию информации о режиме прогнозирования.
Фиг.3 является блок-схемой, подробнее иллюстрирующей пример видеодекодера 26 по фиг.1. Видеодекодер 26 может выполнять взаимное и внутреннее декодирование блоков в пределах кодированных единиц, таких как видеокадры или серии последовательных макроблоков. В примере по фиг.3 видеодекодер 26 включает в себя модуль 60 энтропийного декодирования, модуль 62 прогнозирования, модуль 63 сканирования коэффициентов, модуль 64 обратного квантования, модуль 66 обратного преобразования и хранилище 68 кадров. Видеодекодер 26 также включает в себя сумматор 69, который сочетает выводы модуля 66 обратного преобразования и модуля 62 прогнозирования.
Модуль 60 энтропийного декодирования принимает кодированный поток видеобитов (помеченный как "Поток видеобитов" на фиг.3) и декодирует кодированный поток битов, чтобы получать остаточную информацию (к примеру, в форме одномерного вектора квантованных остаточных коэффициентов) и информацию заголовка (к примеру, в форме одного или более элементов синтаксиса заголовка). Модуль 60 энтропийного декодирования выполняет функцию взаимно-обратного декодирования для кодирования, выполняемого посредством модуля кодирования 46 по фиг.2. Описание модуля 60 энтропийного декодирования, выполняющего декодирование элемента синтаксиса режима прогнозирования, приводится в целях примера. Технологии могут распространяться на декодирование других элементов синтаксиса, таких как тип блока, блочный сегмент, CBP и т.п.
В частности, модуль 60 энтропийного декодирования анализирует первый бит, представляющий режим прогнозирования, чтобы определять то, является ли идентичным режим прогнозирования текущего блока режиму прогнозирования любого из ранее декодированных анализируемых блоков, к примеру верхнего соседнего блока или левого соседнего блока. Модуль 60 энтропийного декодирования может определять, что режим прогнозирования текущего блока является идентичным режиму прогнозирования одного из соседних блоков, когда первый бит равен "1" и что режим прогнозирования текущего блока не является идентичным режиму прогнозирования любого из соседних блоков, когда первый бит равен "0".
Если первый бит равен "1" и если режим прогнозирования верхнего соседнего блока является идентичным режиму прогнозирования левого соседнего блока, модуль 60 энтропийного декодирования больше не должен принимать биты. Модуль 60 энтропийного декодирования выбирает режим прогнозирования любого из соседних блоков в качестве режима прогнозирования текущего блока. Модуль 60 энтропийного декодирования, например, может включать в себя один или более буферов (или другое запоминающее устройство), которые сохраняют предыдущие режимы прогнозирования одного или более ранее декодированных блоков.
Если первый бит равен "1" и если режим прогнозирования верхнего соседнего блока не является идентичным режиму прогнозирования левого соседнего блока, модуль 60 энтропийного декодирования принимает второй бит, который представляет режим прогнозирования, модуль 60 энтропийного декодирования определяет, какой из соседних блоков имеет такой же режим прогнозирования, как текущий блок, на основе второго бита. Модуль 60 энтропийного декодирования, например, может определять, что режим прогнозирования текущего блока является идентичным режиму прогнозирования верхнего соседнего блока, когда второй бит равен "1", и определять, что режим прогнозирования текущего блока является идентичным режиму прогнозирования левого соседнего блока, когда второй бит равен "0". Модуль 60 энтропийного декодирования выбирает режим прогнозирования корректного соседнего блока в качестве режима прогнозирования текущего блока.
Когда первый бит равен "0", тем не менее, модуль 60 энтропийного декодирования определяет, что режим прогнозирования текущего блока не является идентичным режиму прогнозирования любого из соседних блоков. Следовательно, модуль 60 энтропийного декодирования может удалять режимы прогнозирования верхнего и левого соседних блоков из набора возможных режимов прогнозирования. Набор возможных режимов прогнозирования может включать в себя один или более режимов однонаправленного прогнозирования и/или один или более режимов многонаправленного прогнозирования. Один примерный набор режимов прогнозирования, который включает в себя всего восемнадцать режимов прогнозирования, предоставлен выше в описании по фиг.2. Если верхний и левый соседние блоки имеют идентичный режим прогнозирования, модуль 60 энтропийного декодирования может удалять режим прогнозирования соседних блоков и по меньшей мере один другой режим прогнозирования. В качестве примера модуль 60 энтропийного декодирования может удалять режим прогнозирования с наибольшим номером режима (к примеру, режим 17 в наборе из восемнадцати режимов прогнозирования, описанном выше). Тем не менее, модуль 60 энтропийного декодирования может выбирать любой из режимов прогнозирования набора, который должен быть удален, с использованием любой другой из множества технологий, до тех пор пока модуль декодирования 60 удаляет такой же режим прогнозирования, как удаляется посредством модуля 32 прогнозирования. Например, модуль 60 энтропийного декодирования может удалять режим прогнозирования, который имеет наименьшую вероятность выбора.
Модуль 60 энтропийного декодирования может регулировать номера режимов прогнозирования для оставшихся режимов прогнозирования так, что номера режимов прогнозирования варьируются в диапазоне 0-15. В одном примере модуль 46 энтропийного кодирования может временно перенумеровывать оставшиеся режимы прогнозирования от 0 до 15, начиная с оставшегося режима прогнозирования с наименьшим номером режима и завершая оставшимся режимом прогнозирования с наибольшим номером режима прогнозирования, как описано выше относительно фиг.2. Модуль 60 энтропийного декодирования декодирует оставшиеся биты, к примеру четыре бита в описанном примере, чтобы получать номер режима прогнозирования для оставшихся режимов прогнозирования, который соответствует режиму прогнозирования текущего блока.
В некоторых случаях модуль 60 энтропийного декодирования может декодировать режим прогнозирования текущего видеоблока с использованием CAVLC или CABAC. Поскольку сильная корреляция может существовать между режимом прогнозирования текущего блока и одного или более ранее декодированных блоков (к примеру, режимами прогнозирования верхнего и левого соседних блоков), модуль 60 энтропийного декодирования может выбирать различные контексты кодирования для режима прогнозирования блока на основе типа режима прогнозирования одного или более ранее декодированных видеоблоков. Другими словами, модуль 60 энтропийного декодирования может выбирать различные контексты кодирования на основе того, являются режимы прогнозирования ранее декодированных блоков однонаправленными или двунаправленными.
В качестве одного примера модуль 60 энтропийного декодирования может выбирать первый контекст кодирования, когда режимы прогнозирования обоих ранее декодированных блоков являются режимами однонаправленного прогнозирования, выбирать второй контекст кодирования, когда режимы прогнозирования обоих ранее декодированные блоки являются режимами двунаправленного прогнозирования, и выбирать третий контекст кодирования, когда режим прогнозирования одного из ранее декодированных блоков является режимом однонаправленного прогнозирования, а режим прогнозирования другого из ранее декодированных блоков является режимом двунаправленного прогнозирования.
Модуль 62 прогнозирования формирует блок прогнозирования с использованием по меньшей мере части информации заголовка. Например, в случае внутренне кодированного блока модуль 60 энтропийного декодирования может предоставлять по меньшей мере часть информации заголовка (такую как тип блока и режим прогнозирования для этого блока) в модуль 62 прогнозирования для формирования блока прогнозирования. Модуль 62 прогнозирования формирует блок прогнозирования с использованием одного или более смежных блоков (или частей смежных блоков) в общей единице кодирования в соответствии с типом блока и режимом прогнозирования. В качестве примера модуль 62 прогнозирования, например, может формировать блок прогнозирования с размером сегмента, указываемым посредством элемента синтаксиса типа блока, с использованием режима прогнозирования, указываемого посредством элемента синтаксиса режима прогнозирования. Один или более смежных блоков (или частей смежных блоков) в текущей единице кодирования, например, могут извлекаться из хранилища 68 кадров.
Модуль 60 энтропийного декодирования также декодирует кодированные видеоданные, чтобы получать остаточную информацию в форме одномерного вектора коэффициентов. Если разделимые преобразования (к примеру, DCT, целочисленные преобразования H.264/AVC, разделимые направленные преобразования) используются, модуль 63 сканирования коэффициентов сканирует одномерный вектор коэффициентов, чтобы формировать двумерный блок. Модуль 63 сканирования коэффициентов выполняет функцию взаимно-обратного сканирования для сканирования, выполняемого посредством модуля 41 сканирования коэффициентов по фиг.2. В частности, модуль 63 сканирования коэффициентов сканирует коэффициенты в соответствии с начальным порядком сканирования, чтобы переводить коэффициенты одномерного вектора в двумерный формат. Другими словами, модуль 63 сканирования коэффициентов сканирует одномерный вектор, чтобы формировать двумерный блок квантованных коэффициентов.
Модуль 63 сканирования коэффициентов может адаптивно регулировать порядок сканирования, используемый для сканирования коэффициентов, на основе статистики по одному или более коэффициентов, чтобы синхронизировать порядок сканирования с порядком сканирования, используемым посредством видеокодера 20. Для этого модуль 63 сканирования коэффициентов может собирать статистику по одному или более коэффициентам для одного или более блоков и адаптировать порядок сканирования на основе собранных статистических данных. Другими словами, когда двумерный блок квантованных коэффициентов восстановлен, модуль 63 сканирования коэффициентов может собирать статистические данные, которые указывают число раз, когда каждая из позиций в пределах двумерного блока являлась местоположением для ненулевого коэффициента. Модуль 63 сканирования коэффициентов может сохранять множество счетчиков, каждый из которых соответствует позиции коэффициента в двумерном блоке, и увеличивать счетчик, соответствующий позиции, когда ненулевой коэффициент находится в этой соответствующей позиции.
Модуль 63 сканирования коэффициентов может адаптировать порядок сканирования на основе собранных статистических данных. Модуль 63 сканирования коэффициентов может, на основе собранных статистических данных, адаптировать порядок сканирования так, чтобы сканировать позиции, которые имеют большую вероятность наличия ненулевых коэффициентов, перед местоположениями коэффициентов, которые определяются как имеющие меньшую вероятность наличия ненулевых коэффициентов. Модуль 63 сканирования коэффициентов адаптирует порядок сканирования с такими же фиксированными или нефиксированными интервалами, что используются посредством видеокодера 20. Модуль 63 сканирования коэффициентов нормализует собранные статистические данные таким же образом, как описано выше относительно видеокодера 20.
Как описано выше, модуль 63 сканирования коэффициентов может, в некоторых случаях, собирать отдельную статистику по коэффициентам и адаптивно регулировать порядок сканирования отдельно для каждого из режимов прогнозирования. Модуль 63 сканирования коэффициентов может делать это, например, поскольку каждый из режимов прогнозирования может иметь различную статистику по коэффициентам.
После формирования двумерного блока квантованных остаточных коэффициентов модуль 64 обратного квантования обратно квантует, т.е. деквантует, квантованные остаточные коэффициенты. Модуль 66 обратного преобразования применяет обратное преобразование, к примеру, обратное DCT, обратное целочисленное преобразование или обратное направленное преобразование, к деквантованным остаточным коэффициентам, чтобы формировать остаточный блок пикселных значений. Сумматор 69 суммирует блок прогнозирования, сформированный посредством модуля 62 прогнозирования, с остаточным блоком от модуля 66 обратного преобразования, чтобы формировать восстановленный видеоблок. Таким образом, видеодекодер 26 восстанавливает кадры видеопоследовательности поблочно с использованием информации заголовка и остаточной информации.
Блочное кодирование видео иногда может приводить к визуально воспринимаемой блочности на границах блоков кодированного видеокадра. В таких случаях фильтрация с удалением блочности может сглаживать границы блоков, чтобы уменьшать или исключать визуально воспринимаемую блочность. По сути, фильтр удаления блочности (не показан) также может применяться, чтобы фильтровать декодированные блоки с тем, чтобы уменьшать или удалять блочность. После любой необязательной фильтрации с удалением блочности восстановленные блоки затем помещаются в хранилище 68 кадров, которое предоставляет опорные блоки для пространственного и временного прогнозирования последующих видеоблоков, а также формирует декодированное видео, чтобы возбуждать дисплейное устройство (такое как дисплейное устройство 28 по фиг.1).
Фиг.4 является концептуальной схемой, иллюстрирующей гипотетический пример адаптивного сканирования в соответствии с настоящим описанием. В этом примере позиции коэффициентов помечаются в элементе 71 как c1-c16. Фактические значения коэффициентов показываются в блоке 1 (72), блоке 2 (73), блоке 3 (74) и блоке 4 (75) для четырех последовательных блоков. Фактические значения коэффициентов блоков 1-4 могут представлять квантованные остаточные коэффициенты, коэффициенты преобразования без квантования или другой тип коэффициентов. В других случаях позиции могут представлять позиции пикселных значений остаточного блока. Блоки 1-4 могут содержать блоки, ассоциированные с идентичным режимом прогнозирования. В примере, проиллюстрированном на фиг.4, блоки 1-4 являются блоками 4×4. Тем не менее, как описано выше, технологии согласно настоящему описанию могут распространяться так, чтобы применяться к блокам любого размера. Кроме того, хотя описано ниже относительно модуля 41 сканирования коэффициентов видеокодера 20, модуль 63 сканирования коэффициентов видеодекодера 26 может собирать статистические данные и адаптировать порядок сканирования аналогичным образом.
Первоначально модуль 41 сканирования коэффициентов может сканировать коэффициенты блока 1 с помощью зигзагообразного порядка сканирования. В этом случае модуль 41 сканирования коэффициентов сканирует позиции коэффициентов блока 1 в следующем порядке: c1, c2, c5, c9, c6, c3, c4, c7, c10, c13, c14, c11, c8, c12, c15, c16. Таким образом, после сканирования коэффициентов блока 1 модуль 41 сканирования коэффициентов выводит одномерный вектор v коэффициентов, где v 0=[9, 4, 6, 1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0]. Хотя в примере, проиллюстрированном на фиг.4, модуль 41 сканирования коэффициентов первоначально сканирует коэффициенты блока 1 с помощью зигзагообразного порядка сканирования, это зигзагообразное сканирование не является единственной возможной начальной точкой для адаптивного сканирования. Горизонтальное сканирование, вертикальное сканирование или любая другая начальная последовательность сканирования могут использоваться в качестве начального порядка сканирования. Использование зигзагообразного сканирования приводит к одномерному вектору v коэффициентов, имеющему серию из четырех нулей между двумя ненулевыми коэффициентами.
Статистика 1 (76) представляет статистику блока 1. Статистика 1 (76) может быть значениями счетчика для каждой из позиций коэффициентов, чтобы отслеживать число раз, когда каждая позиция коэффициента есть ненулевое значение. В примере по фиг.4 статистика по всем коэффициентам инициализируется как нуль. Тем не менее, могут использоваться другие схемы инициализации. Например, типичная или средняя статистика по коэффициентам каждого из режимов прогнозирования может использоваться для того, чтобы инициализировать статистику соответствующего режима прогнозирования. После блока кодирования 1 статистика 1 (76) имеет значения в единицу для всех позиций коэффициента блока 1, которые являются ненулевыми, и значения в нуль для всех позиций коэффициента блока 1, которые имеют значение в нуль. Статистика 2 (77) представляет комбинированную статистику блоков 1 и 2. Модуль 41 сканирования коэффициентов приращает счетчики статистики 1 (76), когда позиции коэффициентов имеют ненулевые значения в блоке 2, и сохраняет счетчики неизменными, когда позиции коэффициентов имеют значения в нуль. Таким образом, как показано на фиг.4, модуль 41 сканирования коэффициентов приращает статистику позиций коэффициентов c1, c2, c5, c9 и c13 до значения два и сохраняет статистику остальной части позиций коэффициентов идентичной статистике 1 (76). Статистика 3 (78) представляет комбинированную статистику блоков 1-3, а статистика 4 (79) представляет комбинированную статистику блоков 1-4. Как описано выше, в некоторых аспектах модуль 41 сканирования коэффициентов может собирать статистические данные для блоков с использованием множества счетчиков.
Модуль 41 сканирования коэффициентов может адаптировать порядок сканирования на основе собранных статистических данных. В проиллюстрированном примере модуль 41 сканирования коэффициентов может быть выполнен с возможностью адаптировать порядок сканирования после четырех видеоблоков на основе статистики 4 (79). В этом случае модуль 41 сканирования коэффициентов анализирует собранные статистические данные и адаптирует порядок сканирования так, что позиции коэффициентов сканируются в порядке убывания посредством своих соответствующих значений счетчика. По сути, модуль 41 сканирования коэффициентов может сканировать блоки 1-4 согласно начальному порядку сканирования и адаптировать порядок сканирования так, чтобы сканировать позиции последующего блока, к примеру блока 5 (не показан) в следующем порядке: c1, c5, c9, c2, c13, c6, c3, c4, c7, c10, c14, c11, c8, c12, c15, c16. Модуль 41 сканирования коэффициентов продолжает сканировать последующие блоки в соответствии с новым порядком сканирования до тех пор, пока порядок сканирования не адаптирован снова на основе собранных статистических данных для блоков или не инициализирован повторно, к примеру, в начале следующей единицы кодирования.
Адаптация порядка сканирования так, чтобы он изменялся от начального порядка сканирования (к примеру, зигзагообразного порядка сканирования) к новому порядку сканирования, способствует расположению ненулевых коэффициентов в начале одномерного вектора коэффициентов и нулевых коэффициентов в конце. В примере по фиг.4, новый порядок сканирования сканирует коэффициенты в измерении по вертикали раньше, чем коэффициенты в измерении по горизонтали, отражая тот факт, что для данного режима прогнозирования коэффициенты в измерении по вертикали имеют большую вероятность того, чтобы быть ненулевыми, чем коэффициенты в измерении по горизонтали. Блоки 1-4 все могут иметь идентичный режим прогнозирования, и предшествующая статистика может представлять вероятные будущие местоположения ненулевых коэффициентов. Таким образом, посредством использования предшествующей статистики для того, чтобы задавать порядок сканирования, технологии согласно настоящему описанию могут способствовать группировке ненулевых коэффициентов около начала сканируемого одномерного вектора и нулевых коэффициентов значения около конца сканируемого одномерного вектора, тем самым исключая или сокращая число серий нулей между двумя ненулевыми коэффициентами. Это, в свою очередь, может улучшать уровень сжатия, которое может достигаться во время энтропийного кодирования.
Фиг.5 является блок-схемой последовательности операций, иллюстрирующей технологию кодирования в соответствии с настоящим описанием. Технология кодирования, проиллюстрированная на фиг.56, может использоваться как для кодирования, так и для декодирования видеоблоков. Как показано на фиг.5, модуль 41, 63 сканирования коэффициентов сканирует коэффициенты блока в соответствии с начальным порядком сканирования, заданным для соответствующего режима прогнозирования текущего блока (этап 80). С точки зрения видеокодера 20, сканирование преобразует двумерный блок коэффициентов в одномерный вектор коэффициентов. С точки зрения видеодекодера 26, тем не менее, сканирование должно преобразовывать одномерный вектор коэффициентов в двумерный блок коэффициентов. В качестве одного примера начальный порядок сканирования соответствующего режима прогнозирования может быть зигзагообразным порядком сканирования. Зигзагообразное сканирование не является единственным возможным начальным порядком сканирования. Горизонтальное сканирование, вертикальное сканирование или любой другой начальный порядок сканирования могут использоваться в качестве начального порядка сканирования.
Модуль 41, 63 сканирования коэффициентов собирает статистические данные для одного или более блоков (этап 82). В частности, для каждого из блоков, которые сканируются, модуль 41, 63 сканирования коэффициентов может собирать статистические данные, которые отслеживают с помощью счетчиков частоту, с которой каждая из позиций коэффициентов в пределах двумерного блока является ненулевым коэффициентом. Модуль 41, 63 сканирования коэффициентов определяет то, следует ли оценивать порядок сканирования (этап 83). Модуль 41, 63 сканирования коэффициентов может оценивать порядок сканирования с фиксированными (к примеру, на каждой границе блока или после n границ блоков) или нефиксированными интервалами (к примеру, когда одно из значений счетчика позиции в блоке превышает пороговое значение).
Если модуль 41, 63 сканирования коэффициентов определяет не оценивать порядок сканирования, модуль 41, 63 сканирования коэффициентов сканирует следующий блок согласно начальному порядку сканирования (этап 80). Если модуль 41, 63 сканирования коэффициентов определяет оценивать порядок сканирования, к примеру, после того, как n блоков кодированы/декодированы, модуль сканирования коэффициентов может адаптировать порядок сканирования на основе собранных статистических данных (этап 84). Например, модуль 41, 63 сканирования коэффициентов может адаптировать порядок сканирования так, чтобы сканировать позиции коэффициентов блока в порядке убывания на основе их значений счетчика, где значения счетчика отражают вероятность наличия в данной позиции ненулевого коэффициента. После адаптации порядка сканирования модуль 41, 63 сканирования коэффициентов может, в некоторых случаях, определять то, превышают ли какие-либо значения счетчика статистики пороговое значение (этап 86). Если одна из позиций коэффициентов имеет соответствующее значение счетчика, которое превышает порог, модуль 41, 63 сканирования коэффициентов может нормализовать собранные статистические данные, к примеру значения счетчика коэффициентов (этап 87). Например, модуль 41, 63 сканирования коэффициентов может нормализовать значения счетчика коэффициентов посредством уменьшения каждого из значений счетчика на заранее определенный коэффициент, к примеру на коэффициент два, чтобы уменьшать каждое из значений счетчика наполовину, или сброса значений счетчика к набору начальных значений счетчика. Нормализация значений счетчика коэффициентов может давать возможность видеокодеру 20 быстрее адаптироваться к локальной статистике по коэффициентам.
После нормализации собранных статистических данных или когда нормализация не выполнена, модуль 41, 63 сканирования коэффициентов сканирует последующие блоки с использованием адаптированного порядка сканирования (этап 88). Модуль 41, 63 сканирования коэффициентов может сканировать по меньшей мере один последующий блок с использованием адаптированного порядка сканирования, когда по меньшей мере один последующий блок находится в единице кодирования ранее сканируемого видеоблока. Модуль 41, 63 сканирования коэффициентов может продолжать сканировать последующие видеоблоки до тех, пока порядок сканирования не отрегулирован снова или не инициализирован повторно, к примеру, на границе единицы кодирования. Таким образом, модуль 41, 63 сканирования коэффициентов адаптирует порядок сканирования на основе собранных статистических данных, чтобы сканировать позиции коэффициентов блока, которые определяются как имеющие большую вероятность того, чтобы быть ненулевыми, перед позициями коэффициентов блока, которые определяются как имеющие меньшую вероятность того, чтобы быть ненулевыми. Таким образом, одномерный вектор коэффициентов выполнен с возможностью способствовать группировке ненулевых коэффициентов около начала сканируемого одномерного вектора и нулевых коэффициентов значения около конца сканируемого одномерного вектора. Это, в свою очередь, может улучшать уровень сжатия, которое может достигаться во время энтропийного кодирования.
В некоторых случаях модуль 41, 63 сканирования коэффициентов может адаптивно регулировать порядок сканирования отдельно для каждого из режимов прогнозирования, поскольку каждый из режимов прогнозирования может иметь различную статистику по коэффициентам. Другими словами, модуль 41, 63 сканирования коэффициентов может сохранять отдельную статистику для каждого из режимов прогнозирования и регулировать порядки сканирования для каждого из режимов прогнозирования по-разному на основе соответствующей статистики. Таким образом, примерная блок-схема последовательности операций способа, описанная выше, может выполняться посредством модуля 41, 63 сканирования коэффициентов для каждого режима прогнозирования.
Фиг.6 является блок-схемой последовательности операций, иллюстрирующей примерную работу модуля кодирования, такого как модуль 46 энтропийного кодирования видеокодера 20, кодирующего информацию заголовка для видеоблока в соответствии с одной из технологий согласно настоящему описанию. Модуль 46 энтропийного кодирования принимает информацию заголовка для блока в форме одного или более элементов синтаксиса заголовка (этап 90). Элементы синтаксиса заголовка могут идентифицировать конкретные характеристики текущего видеоблока, такие как тип блока, режим прогнозирования, конфигурация кодированного блока (CBP) для сигнала яркости и/или сигнала цветности, блочный сегмент и один или более векторов движения. Фиг.6 описывается относительно кодирования режима прогнозирования текущего блока. Тем не менее, аналогичные технологии могут использоваться для кодирования других элементов синтаксиса заголовка.
Модуль 46 энтропийного кодирования сравнивает режим прогнозирования текущего блока с режимом прогнозирования одного или более ранее кодированных блоков (этап 92). Один или более ранее кодированных блоков, например, могут содержать один или более смежных блоков. В примере по фиг.6 два ранее кодированных блока анализируются, к примеру верхний соседний блок и левый соседний блок. Если режим прогнозирования текущего блока является идентичным режиму прогнозирования любого из ранее кодированных блоков, модуль 46 энтропийного кодирования кодирует первый бит, чтобы указывать это (этап 94). В качестве одного примера модуль 46 энтропийного кодирования может кодировать первый бит как "1", чтобы указывать, что режим прогнозирования текущего блока является идентичным режиму прогнозирования любого из ранее кодированных блоков.
Модуль 46 энтропийного кодирования сравнивает режим прогнозирования верхнего соседнего блока с режимом прогнозирования левого соседнего блока (этап 98). Если режим прогнозирования верхнего соседнего блока является идентичным режиму прогнозирования левого соседнего блока, модуль 46 энтропийного кодирования больше не кодирует биты для режима прогнозирования (этап 100). В этом случае режим прогнозирования может быть кодирован с использованием одного бита.
Тем не менее, если режим прогнозирования верхнего соседнего блока не является идентичным режиму прогнозирования левого соседнего блока, модуль 46 энтропийного кодирования кодирует второй бит, представляющий режим прогнозирования, чтобы указывать, какой из соседних блоков имеет такой же режим прогнозирования, как текущий блок (этап 102). Например, модуль 46 энтропийного кодирования может кодировать "1", если режим прогнозирования текущего блока является идентичным режиму прогнозирования верхнего соседнего блока, и кодировать "0", если режим прогнозирования текущего блока является идентичным режиму прогнозирования левого соседнего блока. По сути, модуль 46 энтропийного кодирования может кодировать режим прогнозирования текущего блока с использованием минимум одного бита, а максимум двух битов, когда режим прогнозирования текущего блока является идентичным режиму прогнозирования одного из соседних блоков.
Если режим прогнозирования текущего блока не является идентичным режиму прогнозирования любого из ранее кодированных блоков, модуль 46 энтропийного кодирования кодирует первый бит, чтобы указывать это (этап 96). Продолжая пример выше, модуль 46 энтропийного кодирования может кодировать первый бит как "0", чтобы указывать, что режим прогнозирования текущего блока не является идентичным режиму прогнозирования любого из ранее кодированных блоков. Модуль 46 энтропийного кодирования может перекомпоновывать набор возможных режимов прогнозирования (этап 104). Модуль 46 энтропийного кодирования может перекомпоновывать набор возможных режимов прогнозирования посредством удаления режима или режимов прогнозирования соседних блоков из набора возможных режимов прогнозирования. Когда верхний и левый соседние блоки имеют отличные друг от друга режимы прогнозирования, модуль 46 энтропийного кодирования может удалять два режима прогнозирования из набора. Когда верхний и левый соседние блоки имеют идентичный друг с другом режим прогнозирования, модуль 46 энтропийного кодирования может удалять один режим прогнозирования (т.е. режим прогнозирования верхнего и левого соседних блоков) из набора. Кроме того, в некоторых случаях модуль 46 энтропийного кодирования может выборочно удалять один или более дополнительных режимов кодирования из набора. Когда модуль 46 энтропийного кодирования удаляет один или более дополнительных режимов кодирования, модуль 32 прогнозирования по фиг.2 также удаляет эти же дополнительные режимы кодирования из набора возможных режимов прогнозирования так, что эти дополнительные режимы кодирования не будут выбираться. После удаления одного или более режимов прогнозирования модуль 46 энтропийного кодирования регулирует номера режимов оставшихся режимов прогнозирования набора.
Модуль 46 энтропийного кодирования кодирует кодовое слово, которое представляет режим прогнозирования текущего блока (этап 106). Модуль 46 энтропийного кодирования может кодировать режим прогнозирования текущего видеоблока с использованием CAVLC, CABAC или другой технологии энтропийного кодирования. Как описано подробнее относительно фиг.7, модуль кодирования 46 может, в некоторых случаях, адаптивно выбирать контекст кодирования для использования при кодировании режима прогнозирования текущего блока на основе режимов прогнозирования одного или более ранее кодированных блоков.
Фиг.7 является блок-схемой последовательности операций, иллюстрирующей выбор контекста кодирования в соответствии с одним аспектом настоящего описания. Как описано выше, корреляция может существовать между типом режима прогнозирования текущего блока и типом режима прогнозирования одного или более ранее кодированных блоков, таких как верхний и левый соседний блок. Например, когда режимы прогнозирования верхнего и левого соседних блоков являются режимами однонаправленного прогнозирования, есть большая вероятность, что режим прогнозирования текущего блока также является режимом однонаправленного прогнозирования. Аналогично, когда режимы прогнозирования верхнего и левого соседних блоков являются режимами двунаправленного прогнозирования, есть большая вероятность, что режим прогнозирования текущего блока также является режимом двунаправленного прогнозирования.
По сути, модуль 46 энтропийного кодирования может определять, являются ли режимы прогнозирования верхнего и левого соседних блоков режимами однонаправленного прогнозирования (этап 112), и выбирать первый контекст кодирования, когда режимы прогнозирования как верхнего, так и левого соседних блоков являются режимами однонаправленного прогнозирования (этап 114). Первый контекст кодирования моделирует распределение вероятностей для режима прогнозирования текущего видеоблока, когда режим прогнозирования обоих из верхнего и левого соседних блоков является однонаправленным. Распределение вероятностей первого контекста кодирования может предоставлять большие вероятности для режимов однонаправленного прогнозирования набора, чем для режимов двунаправленного прогнозирования набора. В случае CAVLC, например, первый контекст кодирования может использовать таблицу кодирования, которая ассоциирует более короткие кодовые слова с режимами однонаправленного прогнозирования, чем кодовые слова, ассоциированные с режимами двунаправленного прогнозирования.
Когда режимы прогнозирования каждого из верхнего и левого соседних блоков не являются режимами однонаправленного прогнозирования, модуль 46 энтропийного кодирования может определять то, являются ли режимы прогнозирования каждого из верхнего и левого соседних блоков режимами двунаправленного прогнозирования (этап 116). Модуль 46 энтропийного кодирования может выбирать второй контекст кодирования, когда режимы прогнозирования каждого из верхнего и левого соседних блоков являются режимами двунаправленного прогнозирования (этап 117). Второй контекст кодирования моделирует распределение вероятностей для режима прогнозирования текущего видеоблока при условии, что существует большая вероятность того, что текущий режим является режимом двунаправленного прогнозирования, чем режимом однонаправленного прогнозирования. С другой стороны, в случае CAVLC, например, второй контекст кодирования может использовать таблицу кодирования, которая ассоциирует более короткие кодовые слова с режимами двунаправленного прогнозирования, чем кодовые слова, ассоциированные с режимами однонаправленного прогнозирования.
Когда режимы прогнозирования верхнего и левого соседних блоков не являются режимами двунаправленного прогнозирования, т.е. режимы прогнозирования ранее кодированных блоков - это комбинация режимов двунаправленного и однонаправленного прогнозирования, модуль 46 энтропийного кодирования может выбирать третий контекст кодирования (этап 118). Третий контекст кодирования формируется при условии, что вероятность текущего режима прогнозирования более равномерно распределена между режимами однонаправленного прогнозирования и режимами двунаправленного прогнозирования набора. В случае CAVLC, например, третий контекст кодирования может использовать таблицу кодирования, которая ассоциирует кодовые слова с аналогичной длиной кода с режимами двунаправленного прогнозирования и режимами однонаправленного прогнозирования.
Модуль 46 энтропийного кодирования кодирует режим прогнозирования текущего видеоблока в соответствии с выбранным контекстом кодирования (этап 119). Выбор различных контекстов кодирования для использования при кодировании режима прогнозирования текущего видеоблока на основе режимов прогнозирования одного или более ранее кодированных видеоблоков может приводить к лучшему сжатию информации о режиме прогнозирования. Эта же технология выбора контекста кодирования выполняется посредством модуля декодирования 60 так, что модуль декодирования 60 может точно декодировать режимы прогнозирования видеоблоков.
Фиг.8 является блок-схемой последовательности операций, иллюстрирующей примерную работу модуля декодирования, такой как модуль 60 энтропийного декодирования видеодекодера 26, декодирующего информацию заголовка видеоблока в соответствии с технологиями согласно настоящему описанию. Модуль 60 энтропийного декодирования декодирует кодированный поток видеобитов, чтобы получать информацию заголовка, к примеру, в форме одного или более элементов синтаксиса заголовка. Описание модуля 60 энтропийного декодирования, выполняющего декодирование режима прогнозирования, приводится в целях примера. Технологии могут распространяться на декодирование других элементов синтаксиса заголовка, таких как тип блока, блочный сегмент, CBP и т.п.
В частности, модуль 60 энтропийного декодирования принимает первый бит, представляющий режим прогнозирования текущего блока (этап 120). Модуль 60 энтропийного декодирования определяет, указывает ли первый бит, представляющий режим прогнозирования, то что режим прогнозирования текущего блока является идентичным режиму прогнозирования ранее декодированного блока, к примеру верхнего соседнего блока или левого соседнего блока (этап 122). Модуль 60 энтропийного декодирования, например, может определять, что режим прогнозирования текущего блока является идентичным режиму прогнозирования одного из верхнего и левого соседних блоков, когда первый бит равен "1", и что режим прогнозирования текущего блока не является идентичным режимам прогнозирования верхнего и левого соседних блоков, когда первый бит равен "0".
Когда модуль 60 энтропийного декодирования определяет, что режим прогнозирования текущего блока является идентичным режиму прогнозирования одного из верхнего и левого соседних блоков, модуль 60 энтропийного декодирования определяет, являются ли режим прогнозирования верхнего соседнего блока и режим прогнозирования левого соседнего блока идентичными (этап 124). Когда режим прогнозирования верхнего соседнего блока и режим прогнозирования левого соседнего блока являются идентичными, биты, представляющие режим прогнозирования текущего видеоблока, более не принимаются, и модуль 60 энтропийного декодирования выбирает режим прогнозирования любого из соседних блоков в качестве режима прогнозирования текущего блока (этап 126). Когда режим прогнозирования верхнего соседнего блока и режим прогнозирования левого соседнего блока являются различными, один дополнительный бит, представляющий режим прогнозирования, принимается, и модуль 60 энтропийного декодирования выбирает режим прогнозирования корректного соседнего блока в качестве режима прогнозирования текущего блока на основе следующего принимаемого бита, представляющего режим прогнозирования (этап 128). Например, модуль 60 энтропийного декодирования может выбирать режим прогнозирования верхнего соседнего блока в качестве режима прогнозирования текущего блока, когда следующий принимаемый бит равен "1", и выбирать режим прогнозирования левого соседнего блока в качестве режима прогнозирования текущего блока, когда следующий принимаемый бит равен "0".
Когда модуль 60 энтропийного декодирования определяет, что режим прогнозирования текущего блока не является идентичным режиму прогнозирования любого из верхнего и левого соседних блоков, т.е. когда первый бит, представляющий режим прогнозирования, равен "0", модуль 60 энтропийного декодирования может удалять один или более режимов прогнозирования из набора возможных режимов прогнозирования (этап 130). Модуль 60 энтропийного декодирования может удалять режимы прогнозирования верхнего и левого соседних блоков из набора возможных режимов прогнозирования. Если верхний и левый соседние блоки имеют идентичный режим прогнозирования, модуль 60 энтропийного декодирования может удалять режим прогнозирования соседних блоков и по меньшей мере один другой режим прогнозирования, как подробно описано выше.
Модуль 60 энтропийного декодирования декодирует оставшиеся биты, к примеру четыре бита в описанном примере, чтобы получать номер режима прогнозирования для режима прогнозирования текущего блока (этап 132). Модуль 60 энтропийного декодирования может регулировать нумерацию режимов прогнозирования для оставшихся режимов прогнозирования (этап 134) способом, взаимно-обратным процессу регулирования нумерации режимов прогнозирования, выполняемому посредством модуля 46 энтропийного кодирования. В одном примере модуль 60 энтропийного декодирования может перенумеровывать декодированные номера режимов прогнозирования (в пределах от 0 до 15) к исходным номерам режимов прогнозирования (в пределах от 0 до 17) посредством обратной вставки режимов прогнозирования, которые удалялись. В некоторых случаях модуль 60 энтропийного декодирования может выбирать различные контексты кодирования для режима прогнозирования блока на основе режимов прогнозирования одного или более ранее декодированных видеоблоков, к примеру, на основе того, являются режимы прогнозирования ранее декодированных блоков оба однонаправленными, оба двунаправленными или один однонаправленным, а другой двунаправленным, как подробно описано выше. Модуль 60 энтропийного декодирования предоставляет режим прогнозирования в модуль 62 прогнозирования, чтобы формировать блок прогнозирования согласно выбранному режиму прогнозирования (этап 136). Как описано относительно фиг.3, блок прогнозирования комбинируется с остаточными пикселными значениями, чтобы формировать восстановленный блок для представления пользователю.
Технологии, раскрытые в настоящем описании, могут быть реализованы в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или в любой комбинации вышеозначенного. Любые признаки, описанные как модули или компоненты, могут быть реализованы совместно в интегральном логическом устройстве или отдельно как дискретные, но имеющие возможность взаимодействовать логические устройства. При реализации в программном обеспечении технологии могут быть осуществлены по меньшей мере частично посредством машиночитаемого носителя, содержащего инструкции, которые при приведении в исполнение выполняют один или более способов, описанных выше, Машиночитаемый носитель может формировать часть компьютерного программного продукта, который может включать в себя упаковку. Машиночитаемые носители могут содержать оперативное запоминающее устройство (RAM), такое как синхронное динамическое оперативное запоминающее устройство (SDRAM), постоянное запоминающее устройство (ROM), энергонезависимое оперативное запоминающее устройство (NVRAM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), флэш-память, магнитные или оптические носители хранения данных и т.п. Дополнительно или альтернативно, технологии могут быть реализованы по меньшей мере частично посредством машиночитаемой среды связи, которая переносит или передает код в форме инструкций или структур данных и которая может быть доступна, считываема и/или приводима в исполнение посредством компьютера.
Коды могут приводиться в исполнение посредством одного или более процессоров, например, одного или более процессоров цифровых сигналов (DSP), микропроцессоров общего назначения, специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA) или других эквивалентных интегральных или дискретных логических схем. Соответственно, термин "процессор" при использовании в данном документе может означать любую вышеуказанную структуру или другую структуру, подходящую для реализации технологий, описанных в данном документе. Помимо этого, в некоторых аспектах функциональность, описанная в данном документе, может быть предоставлена в рамках специализированных программных модулей или аппаратных модулей, выполненных с возможностью кодирования или декодирования либо встроенных в комбинированный видеокодер-декодер (кодек). Описание различных признаков как модулей имеет намерение выделять различные функциональные аспекты проиллюстрированных устройств и необязательно подразумевает, что эти модули должны быть реализованы посредством отдельных аппаратных или программных компонентов. Наоборот, функциональность, ассоциированная с одним или более модулей, может быть интегрирована в общих или отдельных аппаратных или программных компонентах.
Описаны различные варианты осуществления настоящего описания. Эти и другие варианты осуществления находятся в рамках объема прилагаемой формулы изобретения.
Claims (84)
1. Способ кодирования видеоданных, при этом способ содержит этапы, на которых:
- выбирают один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока единицы кодирования, при этом режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования; и
- кодируют режим прогнозирования текущего видеоблока на основе режимов прогнозирования одного или более ранее кодированных видеоблоков единицы кодирования, причем этап кодирования содержит этапы, на которых:
если режим прогнозирования текущего блока является идентичным одному из режимов прогнозирования одного или более ранее кодированных видеоблоков, то
- кодируют первый бит, представляющий режим прогнозирования, чтобы указывать, что режим прогнозирования текущего блока является идентичным одному из режимов прогнозирования одного или более ранее кодированных видеоблоков; и
- кодируют по меньшей мере один дополнительный бит, представляющий режим прогнозирования, чтобы указывать, какой из одного или более ранее кодированных видеоблоков имеет такой же режим прогнозирования, как режим прогнозирования видеоблока, если режимы прогнозирования одного или более ранее кодированных видеоблоков не являются идентичными друг другу, и,
если режим прогнозирования текущего блока не является идентичным ни одному из режимов прогнозирования одного или более ранее кодированных видеоблоков, то:
- кодируют первый бит, представляющий режим прогнозирования, чтобы указывать, что режим прогнозирования текущего блока не является идентичным ни одному из режимов прогнозирования одного или более ранее кодированных видеоблоков;
- удаляют по меньшей мере режимы прогнозирования одного или более ранее кодированных видеоблоков из множества режимов прогнозирования;
- удаляют по меньшей мере один дополнительный режим прогнозирования, который не является режимом прогнозирования одного или более ранее кодированных видеоблоков, когда два или более из ранее кодированных видеоблоков единицы кодирования имеют идентичный режим прогнозирования;
- временно перекомпоновывают идентификаторы режимов прогнозирования среди оставшихся режимов прогнозирования множества режимов прогнозирования; и
- кодируют кодовое слово, которое идентифицирует идентификатор режима прогнозирования, соответствующий режиму прогнозирования текущего видеоблока.
- выбирают один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока единицы кодирования, при этом режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования; и
- кодируют режим прогнозирования текущего видеоблока на основе режимов прогнозирования одного или более ранее кодированных видеоблоков единицы кодирования, причем этап кодирования содержит этапы, на которых:
если режим прогнозирования текущего блока является идентичным одному из режимов прогнозирования одного или более ранее кодированных видеоблоков, то
- кодируют первый бит, представляющий режим прогнозирования, чтобы указывать, что режим прогнозирования текущего блока является идентичным одному из режимов прогнозирования одного или более ранее кодированных видеоблоков; и
- кодируют по меньшей мере один дополнительный бит, представляющий режим прогнозирования, чтобы указывать, какой из одного или более ранее кодированных видеоблоков имеет такой же режим прогнозирования, как режим прогнозирования видеоблока, если режимы прогнозирования одного или более ранее кодированных видеоблоков не являются идентичными друг другу, и,
если режим прогнозирования текущего блока не является идентичным ни одному из режимов прогнозирования одного или более ранее кодированных видеоблоков, то:
- кодируют первый бит, представляющий режим прогнозирования, чтобы указывать, что режим прогнозирования текущего блока не является идентичным ни одному из режимов прогнозирования одного или более ранее кодированных видеоблоков;
- удаляют по меньшей мере режимы прогнозирования одного или более ранее кодированных видеоблоков из множества режимов прогнозирования;
- удаляют по меньшей мере один дополнительный режим прогнозирования, который не является режимом прогнозирования одного или более ранее кодированных видеоблоков, когда два или более из ранее кодированных видеоблоков единицы кодирования имеют идентичный режим прогнозирования;
- временно перекомпоновывают идентификаторы режимов прогнозирования среди оставшихся режимов прогнозирования множества режимов прогнозирования; и
- кодируют кодовое слово, которое идентифицирует идентификатор режима прогнозирования, соответствующий режиму прогнозирования текущего видеоблока.
2. Способ по п.1, дополнительно содержащий этап, на котором выбирают один из множества контекстов кодирования для использования при кодировании режима прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее кодированных видеоблоков единицы кодирования, при этом кодирование содержит кодирование согласно выбранному контексту кодирования.
3. Способ по п.2, в котором выбор одного из контекстов кодирования содержит этапы, на которых:
- выбирают первый контекст кодирования, когда все режимы прогнозирования одного или более ранее кодированных видеоблоков являются режимами однонаправленного прогнозирования;
- выбирают второй контекст кодирования, когда все режимы прогнозирования одного или более ранее кодированных видеоблоков являются режимами многонаправленного прогнозирования; и
- выбирают третий контекст кодирования, когда режимы прогнозирования одного или более ранее кодированных видеоблоков не являются все однонаправленными или все многонаправленными.
- выбирают первый контекст кодирования, когда все режимы прогнозирования одного или более ранее кодированных видеоблоков являются режимами однонаправленного прогнозирования;
- выбирают второй контекст кодирования, когда все режимы прогнозирования одного или более ранее кодированных видеоблоков являются режимами многонаправленного прогнозирования; и
- выбирают третий контекст кодирования, когда режимы прогнозирования одного или более ранее кодированных видеоблоков не являются все однонаправленными или все многонаправленными.
4. Способ по п.1, дополнительно содержащий этапы, на которых:
- вычитают блок прогнозирования, сформированный с помощью выбранного режима прогнозирования, из видеоблока, чтобы формировать остаточный блок;
- выбирают преобразование, чтобы применять к остаточному блоку, на основе выбранного режима прогнозирования и
- применяют выбранное преобразование к остаточному блоку, чтобы формировать остаточные коэффициенты преобразования.
- вычитают блок прогнозирования, сформированный с помощью выбранного режима прогнозирования, из видеоблока, чтобы формировать остаточный блок;
- выбирают преобразование, чтобы применять к остаточному блоку, на основе выбранного режима прогнозирования и
- применяют выбранное преобразование к остаточному блоку, чтобы формировать остаточные коэффициенты преобразования.
5. Способ по п.4, в котором выбор преобразования для применения к остаточному блоку содержит этапы, на которых:
- выбирают одно из дискретного косинусного преобразования (DCT) и целочисленного преобразования для применения к остаточному блоку, когда выбранный режим прогнозирования демонстрирует ограниченную направленность; и
- выбирают направленное преобразование для применения к остаточному блоку, когда выбранный режим прогнозирования демонстрирует направленность.
- выбирают одно из дискретного косинусного преобразования (DCT) и целочисленного преобразования для применения к остаточному блоку, когда выбранный режим прогнозирования демонстрирует ограниченную направленность; и
- выбирают направленное преобразование для применения к остаточному блоку, когда выбранный режим прогнозирования демонстрирует направленность.
6. Способ по п.5, в котором выбор одного из DCT и целочисленного преобразования содержат этап, на котором выбирают одно из DCT и целочисленного преобразования для применения к остаточному блоку, когда выбранный режим прогнозирования является либо режимом однонаправленного DC-прогнозирования, либо режимом многонаправленного прогнозирования, который сочетает по меньшей мере два режима прогнозирования, которые указывают, по существу, в ортогональных направлениях.
7. Способ по п.5, дополнительно содержащий этап, на котором сохраняют множество направленных преобразований, при этом каждое из множества направленных преобразований соответствует одному из режимов прогнозирования, который демонстрирует направленность, при этом выбор направленного преобразования содержит выбор одного из множества направленных преобразований, соответствующих выбранному режиму прогнозирования.
8. Способ по п.4, дополнительно содержащий этап, на котором сохраняют множество направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, при этом каждое из направленных преобразований содержит матрицу постолбцового преобразования размером N×N и матрицу построчного преобразования размером N×N, где N×N является размерностью видеоблока.
9. Способ по п.4, дополнительно содержащий этап, на котором сохраняют множество направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, при этом каждое из множества направленных преобразований содержит матрицу преобразования размером N2×N2, где N является размерностью видеоблока.
10. Способ по п.1, в котором множество режимов прогнозирования включает в себя режимы однонаправленного прогнозирования и поднабор возможных режимов двунаправленного прогнозирования, причем поднабор режимов двунаправленного прогнозирования включает в себя по меньшей мере одну комбинацию, которая включает в себя два различных режима однонаправленного прогнозирования.
11. Устройство, которое кодирует видеоданные, при этом устройство содержит:
- модуль прогнозирования, который выбирает один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока единицы кодирования, при этом режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования; и
- модуль энтропийного кодирования, который кодирует режим прогнозирования текущего видеоблока на основе режимов прогнозирования одного или более ранее кодированных видеоблоков единицы кодирования, причем
если режим прогнозирования текущего блока является идентичным одному из режимов прогнозирования одного или более ранее кодированных видеоблоков, то
модуль энтропийного кодирования кодирует первый бит, представляющий режим прогнозирования, чтобы указывать, что режим прогнозирования текущего блока является идентичным одному из режимов прогнозирования одного или более ранее кодированных видеоблоков; и
модуль энтропийного кодирования кодирует по меньшей мере один дополнительный бит, представляющий режим прогнозирования, чтобы указывать, какой из одного или более ранее кодированных видеоблоков имеет такой же режим прогнозирования, как режим прогнозирования видеоблока, если режимы прогнозирования одного или более ранее кодированных видеоблоков не являются идентичными друг другу, и
если режим прогнозирования текущего блока не является идентичным ни одному из режимов прогнозирования одного или более ранее кодированных видеоблоков, то:
модуль энтропийного кодирования кодирует первый бит, представляющий режим прогнозирования, чтобы указывать, что режим прогнозирования текущего блока не является идентичным ни одному из режимов прогнозирования одного или более ранее кодированных видеоблоков,
модуль прогнозирования удаляет по меньшей мере режимы прогнозирования одного или более, ранее кодированных видеоблоков из множества режимов прогнозирования,
модуль прогнозирования удаляет по меньшей мере один дополнительный режим прогнозирования, который не является режимом прогнозирования одного или более ранее кодированных видеоблоков, когда два или более из ранее кодированных видеоблоков единицы кодирования имеют идентичный режим прогнозирования, и
модуль прогнозирования временно перекомпоновывает идентификаторы режимов прогнозирования среди оставшихся режимов прогнозирования множества режимов прогнозирования, и
модуль энтропийного кодирования кодирует кодовое слово, которое идентифицирует идентификатор режима прогнозирования, соответствующий режиму прогнозирования текущего видеоблока.
- модуль прогнозирования, который выбирает один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока единицы кодирования, при этом режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования; и
- модуль энтропийного кодирования, который кодирует режим прогнозирования текущего видеоблока на основе режимов прогнозирования одного или более ранее кодированных видеоблоков единицы кодирования, причем
если режим прогнозирования текущего блока является идентичным одному из режимов прогнозирования одного или более ранее кодированных видеоблоков, то
модуль энтропийного кодирования кодирует первый бит, представляющий режим прогнозирования, чтобы указывать, что режим прогнозирования текущего блока является идентичным одному из режимов прогнозирования одного или более ранее кодированных видеоблоков; и
модуль энтропийного кодирования кодирует по меньшей мере один дополнительный бит, представляющий режим прогнозирования, чтобы указывать, какой из одного или более ранее кодированных видеоблоков имеет такой же режим прогнозирования, как режим прогнозирования видеоблока, если режимы прогнозирования одного или более ранее кодированных видеоблоков не являются идентичными друг другу, и
если режим прогнозирования текущего блока не является идентичным ни одному из режимов прогнозирования одного или более ранее кодированных видеоблоков, то:
модуль энтропийного кодирования кодирует первый бит, представляющий режим прогнозирования, чтобы указывать, что режим прогнозирования текущего блока не является идентичным ни одному из режимов прогнозирования одного или более ранее кодированных видеоблоков,
модуль прогнозирования удаляет по меньшей мере режимы прогнозирования одного или более, ранее кодированных видеоблоков из множества режимов прогнозирования,
модуль прогнозирования удаляет по меньшей мере один дополнительный режим прогнозирования, который не является режимом прогнозирования одного или более ранее кодированных видеоблоков, когда два или более из ранее кодированных видеоблоков единицы кодирования имеют идентичный режим прогнозирования, и
модуль прогнозирования временно перекомпоновывает идентификаторы режимов прогнозирования среди оставшихся режимов прогнозирования множества режимов прогнозирования, и
модуль энтропийного кодирования кодирует кодовое слово, которое идентифицирует идентификатор режима прогнозирования, соответствующий режиму прогнозирования текущего видеоблока.
12. Устройство по п.11, в котором модуль энтропийного кодирования выбирает один из множества контекстов кодирования для использования при кодировании режима прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее кодированных видеоблоков единицы кодирования и кодирует режим прогнозирования согласно выбранному контексту кодирования.
13. Устройство по п.12, в котором модуль энтропийного кодирования выбирает первый контекст кодирования, когда все режимы прогнозирования одного или более ранее кодированных видеоблоков являются режимами однонаправленного прогнозирования, выбирает второй контекст кодирования, когда все режимы прогнозирования одного или более ранее кодированных видеоблоков являются режимами многонаправленного прогнозирования, и выбирает третий контекст кодирования, когда режимы прогнозирования одного или более ранее кодированных видеоблоков не являются все однонаправленными или все многонаправленными.
14. Устройство по п.11, дополнительно содержащее модуль преобразования, который выбирает преобразование, чтобы применять к остаточному блоку на основе выбранного режима прогнозирования, и применяет выбранное преобразование к остаточному блоку, чтобы формировать остаточные коэффициенты преобразования, при этом модуль энтропийного кодирования кодирует остаточные коэффициенты преобразования.
15. Устройство по п.14, в котором модуль преобразования выбирает одно из дискретного косинусного преобразования (DCT) и целочисленного преобразования для применения к остаточному блоку, когда выбранный режим прогнозирования демонстрирует ограниченную направленность, и выбирает направленное преобразование для применения к остаточному блоку, когда выбранный режим прогнозирования демонстрирует направленность.
16. Устройство по п.15, в котором модуль преобразования выбирает одно из DCT и целочисленного преобразования для применения к остаточному блоку, когда выбранный режим прогнозирования является либо режимом однонаправленного DC-прогнозирования, либо режимом многонаправленного прогнозирования, который сочетает по меньшей мере два режима прогнозирования, которые указывают, по существу, в ортогональных направлениях.
17. Устройство по п.15, дополнительно содержащее запоминающее устройство, которое сохраняет множество направленных преобразований, при этом каждое из множества направленных преобразований соответствует одному из режимов прогнозирования, который демонстрирует направленность, причем модуль преобразования выбирает одно из множества направленных преобразований, соответствующих выбранному режиму прогнозирования.
18. Устройство по п.14, дополнительно содержащее запоминающее устройство, которое сохраняет множество направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, при этом каждое из направленных преобразований содержит матрицу постолбцового преобразования размером N×N и матрицу построчного преобразования размером N×N, где N×N является размерностью видеоблока.
19. Устройство по п.14, дополнительно содержащее запоминающее устройство, которое сохраняет множество направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, при этом каждое из множества направленных преобразований содержит матрицу преобразования размером N2×N2, где N является размерностью видеоблока.
20. Устройство по п.11, в котором множество режимов прогнозирования включает в себя режимы однонаправленного прогнозирования и поднабор возможных режимов двунаправленного прогнозирования, причем поднабор режимов двунаправленного прогнозирования включает в себя по меньшей мере одну комбинацию, которая включает в себя два различных режима однонаправленного прогнозирования.
21. Устройство по п.11, при этом устройство включено в устройство беспроводной связи.
22. Устройство по п.11, при этом устройство включено в устройство на интегральных схемах.
23. Машиночитаемый носитель, содержащий инструкции, которые при выполнении в устройстве кодирования видеоданных инструктируют устройство кодировать видеоблоки, при этом инструкции инструктируют устройство:
- выбирать один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока единицы кодирования, при этом режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования; и
- кодировать режим прогнозирования текущего видеоблока на основе режимов прогнозирования одного или более ранее кодированных видеоблоков единицы кодирования, причем инструкции для кодирования содержат инструкции, инструктирующие устройство:
если режим прогнозирования текущего блока является идентичным одному из режимов прогнозирования одного или более ранее кодированных видеоблоков, то
- кодировать первый бит, представляющий режим прогнозирования, чтобы указывать, что режим прогнозирования текущего блока является идентичным одному из режимов прогнозирования одного или более ранее кодированных видеоблоков; и
- кодировать по меньшей мере один дополнительный бит, представляющий режим прогнозирования, чтобы указывать, какой из одного или более ранее кодированных видеоблоков имеет такой же режим прогнозирования, как режим прогнозирования видеоблока, если режимы прогнозирования одного или более ранее кодированных видеоблоков не являются идентичными друг другу, и
если режим прогнозирования текущего блока не является идентичным ни одному из режимов прогнозирования одного или более ранее кодированных видеоблоков, то:
- кодировать первый бит, представляющий режим прогнозирования, чтобы указывать, что режим прогнозирования текущего блока не является идентичным ни одному из режимов прогнозирования одного или более ранее кодированных видеоблоков;
- удалять по меньшей мере режимы прогнозирования одного или более ранее кодированных видеоблоков из множества режимов прогнозирования;
- удалять по меньшей мере один дополнительный режим прогнозирования, который не является режимом прогнозирования одного или более ранее кодированных видеоблоков, когда два или более из ранее кодированных видеоблоков единицы кодирования имеют идентичный режим прогнозирования;
- временно перекомпоновывать идентификаторы режимов прогнозирования среди оставшихся режимов прогнозирования множества режимов прогнозирования и
- кодировать кодовое слово, которое идентифицирует идентификатор режима прогнозирования, соответствующий режиму прогнозирования текущего видеоблока.
- выбирать один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока единицы кодирования, при этом режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования; и
- кодировать режим прогнозирования текущего видеоблока на основе режимов прогнозирования одного или более ранее кодированных видеоблоков единицы кодирования, причем инструкции для кодирования содержат инструкции, инструктирующие устройство:
если режим прогнозирования текущего блока является идентичным одному из режимов прогнозирования одного или более ранее кодированных видеоблоков, то
- кодировать первый бит, представляющий режим прогнозирования, чтобы указывать, что режим прогнозирования текущего блока является идентичным одному из режимов прогнозирования одного или более ранее кодированных видеоблоков; и
- кодировать по меньшей мере один дополнительный бит, представляющий режим прогнозирования, чтобы указывать, какой из одного или более ранее кодированных видеоблоков имеет такой же режим прогнозирования, как режим прогнозирования видеоблока, если режимы прогнозирования одного или более ранее кодированных видеоблоков не являются идентичными друг другу, и
если режим прогнозирования текущего блока не является идентичным ни одному из режимов прогнозирования одного или более ранее кодированных видеоблоков, то:
- кодировать первый бит, представляющий режим прогнозирования, чтобы указывать, что режим прогнозирования текущего блока не является идентичным ни одному из режимов прогнозирования одного или более ранее кодированных видеоблоков;
- удалять по меньшей мере режимы прогнозирования одного или более ранее кодированных видеоблоков из множества режимов прогнозирования;
- удалять по меньшей мере один дополнительный режим прогнозирования, который не является режимом прогнозирования одного или более ранее кодированных видеоблоков, когда два или более из ранее кодированных видеоблоков единицы кодирования имеют идентичный режим прогнозирования;
- временно перекомпоновывать идентификаторы режимов прогнозирования среди оставшихся режимов прогнозирования множества режимов прогнозирования и
- кодировать кодовое слово, которое идентифицирует идентификатор режима прогнозирования, соответствующий режиму прогнозирования текущего видеоблока.
24. Машиночитаемый носитель по п.23, дополнительно содержащий инструкции, которые инструктируют устройство выбирать один из множества контекстов кодирования для использования при кодировании режима прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее кодированных видеоблоков единицы кодирования, при этом кодирование содержит кодирование согласно выбранному контексту кодирования.
25. Машиночитаемый носитель по п.24, в котором инструкции инструктируют устройство:
- выбирать первый контекст кодирования, когда все режимы прогнозирования одного или более ранее кодированных видеоблоков являются режимами однонаправленного прогнозирования;
- выбирать второй контекст кодирования, когда все режимы прогнозирования одного или более ранее кодированных видеоблоков являются режимами многонаправленного прогнозирования; и
- выбирать третий контекст кодирования, когда режимы прогнозирования одного или более ранее кодированных видеоблоков не являются ни все однонаправленными, ни все многонаправленными.
- выбирать первый контекст кодирования, когда все режимы прогнозирования одного или более ранее кодированных видеоблоков являются режимами однонаправленного прогнозирования;
- выбирать второй контекст кодирования, когда все режимы прогнозирования одного или более ранее кодированных видеоблоков являются режимами многонаправленного прогнозирования; и
- выбирать третий контекст кодирования, когда режимы прогнозирования одного или более ранее кодированных видеоблоков не являются ни все однонаправленными, ни все многонаправленными.
26. Машиночитаемый носитель по п.23, дополнительно содержащий инструкции для того, чтобы инструктировать устройство:
- вычитать блок прогнозирования, сформированный с помощью выбранного режима прогнозирования, из видеоблока, чтобы формировать остаточный блок;
- выбирать преобразование, чтобы применять к остаточному блоку, на основе выбранного режима прогнозирования; и
- применять выбранное преобразование к остаточному блоку, чтобы формировать остаточные коэффициенты преобразования.
- вычитать блок прогнозирования, сформированный с помощью выбранного режима прогнозирования, из видеоблока, чтобы формировать остаточный блок;
- выбирать преобразование, чтобы применять к остаточному блоку, на основе выбранного режима прогнозирования; и
- применять выбранное преобразование к остаточному блоку, чтобы формировать остаточные коэффициенты преобразования.
27. Машиночитаемый носитель по п.26, в котором инструкции инструктируют устройство:
- выбирать одно из дискретного косинусного преобразования (DCT) и целочисленного преобразования для применения к остаточному блоку, когда выбранный режим прогнозирования демонстрирует ограниченную направленность; и
- выбирать направленное преобразование для применения к остаточному блоку, когда выбранный режим прогнозирования демонстрирует направленность.
- выбирать одно из дискретного косинусного преобразования (DCT) и целочисленного преобразования для применения к остаточному блоку, когда выбранный режим прогнозирования демонстрирует ограниченную направленность; и
- выбирать направленное преобразование для применения к остаточному блоку, когда выбранный режим прогнозирования демонстрирует направленность.
28. Машиночитаемый носитель по п.27, в котором инструкции инструктируют устройство выбирать одно из DCT и целочисленного преобразования для применения к остаточному блоку, когда выбранный режим прогнозирования является либо режимом однонаправленного DC-прогнозирования, либо режимом многонаправленного прогнозирования, который сочетает по меньшей мере два режима прогнозирования, которые указывают, по существу, в ортогональных направлениях.
29. Машиночитаемый носитель по п.27, дополнительно содержащий инструкции, которые инструктируют устройство сохранять множество направленных преобразований, при этом каждое из множества направленных преобразований соответствует одному из режимов прогнозирования, который демонстрирует направленность, при этом выбор направленного преобразования содержит выбор одного из множества направленных преобразований, соответствующих выбранному режиму прогнозирования.
30. Машиночитаемый носитель по п.26, дополнительно содержащий инструкции, которые инструктируют устройство сохранять множество направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, в котором каждое из направленных преобразований содержит матрицу постолбцового преобразования размером N×N и матрицу построчного преобразования размером N×N, где N×N является размерностью видеоблока.
31. Машиночитаемый носитель по п.26, дополнительно содержащий инструкции, которые инструктируют устройство сохранять множество направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, при этом каждое из множества направленных преобразований содержит матрицу преобразования размером N2×N2, где N является размерностью видеоблока.
32. Машиночитаемый носитель по п.23, в котором множество режимов прогнозирования включает в себя режимы однонаправленного прогнозирования и поднабор возможных режимов двунаправленного прогнозирования, причем поднабор режимов двунаправленного прогнозирования включает в себя по меньшей мере одну комбинацию, которая включает в себя два различных режима однонаправленного прогнозирования.
33. Устройство, которое кодирует видеоданные, при этом устройство содержит:
- средство для выбора одного из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока единицы кодирования, при этом режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования; и
- средство для кодирования режима прогнозирования текущего видеоблока на основе режимов прогнозирования одного или более ранее кодированных видеоблоков единицы кодирования, причем
если режим прогнозирования текущего блока является идентичным одному из режимов прогнозирования одного или более ранее кодированных видеоблоков, то
средство для кодирования кодирует первый бит, представляющий режим прогнозирования, чтобы указывать, что режим прогнозирования текущего блока является идентичным одному из режимов прогнозирования одного или более ранее кодированных видеоблоков; и
средство для кодирования кодирует по меньшей мере один дополнительный бит, представляющий режим прогнозирования, чтобы указывать, какой из одного или более ранее кодированных видеоблоков имеет такой же режим прогнозирования, как режим прогнозирования видеоблока, если режимы прогнозирования одного или более ранее кодированных видеоблоков не являются идентичными друг другу, и
если режим прогнозирования текущего блока не является идентичным ни одному из режимов прогнозирования одного или более ранее кодированных видеоблоков, то:
средство для кодирования кодирует первый бит, представляющий режим прогнозирования, чтобы указывать, что режим прогнозирования текущего блока не является идентичным ни одному из режимов прогнозирования одного или более ранее кодированных видеоблоков,
средство для выбора удаляет по меньшей мере режимы прогнозирования одного или более ранее кодированных видеоблоков из множества режимов прогнозирования,
средство для выбора удаляет по меньшей мере один дополнительный режим прогнозирования, который не является режимом прогнозирования одного или более ранее кодированных видеоблоков, когда два или более из ранее кодированных видеоблоков единицы кодирования имеют идентичный режим прогнозирования, и
средство для выбора временно перекомпоновывает идентификаторы режимов прогнозирования среди оставшихся режимов прогнозирования множества режимов прогнозирования, и
средство для кодирования кодирует кодовое слово, которое идентифицирует идентификатор режима прогнозирования, соответствующий режиму прогнозирования текущего видеоблока.
- средство для выбора одного из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока единицы кодирования, при этом режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования; и
- средство для кодирования режима прогнозирования текущего видеоблока на основе режимов прогнозирования одного или более ранее кодированных видеоблоков единицы кодирования, причем
если режим прогнозирования текущего блока является идентичным одному из режимов прогнозирования одного или более ранее кодированных видеоблоков, то
средство для кодирования кодирует первый бит, представляющий режим прогнозирования, чтобы указывать, что режим прогнозирования текущего блока является идентичным одному из режимов прогнозирования одного или более ранее кодированных видеоблоков; и
средство для кодирования кодирует по меньшей мере один дополнительный бит, представляющий режим прогнозирования, чтобы указывать, какой из одного или более ранее кодированных видеоблоков имеет такой же режим прогнозирования, как режим прогнозирования видеоблока, если режимы прогнозирования одного или более ранее кодированных видеоблоков не являются идентичными друг другу, и
если режим прогнозирования текущего блока не является идентичным ни одному из режимов прогнозирования одного или более ранее кодированных видеоблоков, то:
средство для кодирования кодирует первый бит, представляющий режим прогнозирования, чтобы указывать, что режим прогнозирования текущего блока не является идентичным ни одному из режимов прогнозирования одного или более ранее кодированных видеоблоков,
средство для выбора удаляет по меньшей мере режимы прогнозирования одного или более ранее кодированных видеоблоков из множества режимов прогнозирования,
средство для выбора удаляет по меньшей мере один дополнительный режим прогнозирования, который не является режимом прогнозирования одного или более ранее кодированных видеоблоков, когда два или более из ранее кодированных видеоблоков единицы кодирования имеют идентичный режим прогнозирования, и
средство для выбора временно перекомпоновывает идентификаторы режимов прогнозирования среди оставшихся режимов прогнозирования множества режимов прогнозирования, и
средство для кодирования кодирует кодовое слово, которое идентифицирует идентификатор режима прогнозирования, соответствующий режиму прогнозирования текущего видеоблока.
34. Устройство по п.33, дополнительно содержащее средство для выбора одного из множества контекстов кодирования для использования при кодировании режима прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее кодированных видеоблоков единицы кодирования, при этом кодирование содержит кодирование согласно выбранному контексту кодирования.
35. Устройство по п.34, в котором средство выбора выбирает первый контекст кодирования, когда все режимы прогнозирования одного или более ранее кодированных видеоблоков являются режимами однонаправленного прогнозирования, выбирает второй контекст кодирования, когда все режимы прогнозирования одного или более ранее кодированных видеоблоков являются режимами многонаправленного прогнозирования, и выбирает третий контекст кодирования, когда режимы прогнозирования одного или более ранее кодированных видеоблоков не являются ни все однонаправленными, ни все многонаправленными.
36. Устройство по п.33, дополнительно содержащее:
- средство для вычитания блока прогнозирования, сформированного с помощью выбранного режима прогнозирования, из видеоблока, чтобы формировать остаточный блок;
- средство для выбора преобразования для применения к остаточному блоку на основе выбранного режима прогнозирования и
- средство для применения выбранного преобразования к остаточному блоку, чтобы формировать остаточные коэффициенты преобразования.
- средство для вычитания блока прогнозирования, сформированного с помощью выбранного режима прогнозирования, из видеоблока, чтобы формировать остаточный блок;
- средство для выбора преобразования для применения к остаточному блоку на основе выбранного режима прогнозирования и
- средство для применения выбранного преобразования к остаточному блоку, чтобы формировать остаточные коэффициенты преобразования.
37. Устройство по п.36, в котором средство выбора преобразования выбирает одно из дискретного косинусного преобразования (DCT) и целочисленного преобразования для применения к остаточному блоку, когда выбранный режим прогнозирования демонстрирует ограниченную направленность, и выбирает направленное преобразование для применения к остаточному блоку, когда выбранный режим прогнозирования демонстрирует направленность.
38. Устройство по п.37, в котором средство выбора преобразования выбирает одно из DCT и целочисленного преобразования для применения к остаточному блоку, когда выбранный режим прогнозирования является либо режимом однонаправленного DC-прогнозирования, либо режимом многонаправленного прогнозирования, который сочетает по меньшей мере два режима прогнозирования, которые указывают, по существу, в ортогональных направлениях.
39. Устройство по п.37, дополнительно содержащее средство для хранения множества направленных преобразований, при этом каждое из множества направленных преобразований соответствует одному из режимов прогнозирования, который демонстрирует направленность, причем средство выбора преобразования выбирает одно из множества направленных преобразований, соответствующих выбранному режиму прогнозирования.
40. Устройство по п.36, дополнительно содержащее средство для хранения множества направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, при этом каждое из направленных преобразований содержит матрицу постолбцового преобразования размером N×N и матрицу построчного преобразования размером N×N, где N×N является размерностью видеоблока.
41. Устройство по п.36, дополнительно содержащее средство для хранения множества направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, при этом каждое из множества направленных преобразований содержит матрицу преобразования размером N2×N2, где N является размерностью видеоблока.
42. Устройство по п.33, в котором множество режимов прогнозирования включает в себя режимы однонаправленного прогнозирования и поднабор возможных режимов двунаправленного прогнозирования, причем поднабор режимов двунаправленного прогнозирования включает в себя по меньшей мере одну комбинацию, которая включает в себя два различных режима однонаправленного прогнозирования.
43. Способ декодирования видеоданных, при этом способ содержит этапы, на которых:
- принимают кодированные видеоданные видеоблока единицы кодирования и
- декодируют кодированные видеоданные, чтобы идентифицировать один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее декодированных видеоблоков единицы кодирования, при этом режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования, причем этап декодирования содержит этапы, на которых:
если на основе первого кодированного бита, представляющего режим прогнозирования, режим прогнозирования является одним из режимов прогнозирования одного или более ранее декодированных видеоблоков, то,
когда режимы прогнозирования одного или более ранее декодированных видеоблоков являются идентичными, выбирают режим прогнозирования любого из одного или более ранее декодированных видеоблоков, и
когда режимы прогнозирования одного или более ранее декодированных видеоблоков не являются идентичными, идентифицируют, какой из одного или более ранее декодированных видеоблоков имеет такой же режим прогнозирования, как режим прогнозирования для использования при формировании блока прогнозирования видеоблока, на основе по меньшей мере одного дополнительного кодированного бита, представляющего режим прогнозирования, и
- выбирают режим прогнозирования идентифицированного ранее декодированного видеоблока; и
если на основе первого кодированного бита, представляющего режим прогнозирования, режим прогнозирования не является ни одним из режимов прогнозирования одного или более ранее декодированных видеоблоков, то
- удаляют по меньшей мере режимы прогнозирования одного или более ранее декодированных видеоблоков из множества режимов прогнозирования;
- удаляют по меньшей мере один дополнительный режим прогнозирования, который не является режимом прогнозирования одного или более ранее декодированных видеоблоков, когда два или более из ранее декодированных видеоблоков единицы кодирования имеют идентичный режим прогнозирования;
- временно перекомпоновывают идентификаторы режимов прогнозирования среди оставшихся режимов прогнозирования множества режимов прогнозирования; и
- декодируют кодовое слово, чтобы идентифицировать идентификатор режима прогнозирования, соответствующий режиму прогнозирования для использования при формировании блока прогнозирования текущего видеоблока.
- принимают кодированные видеоданные видеоблока единицы кодирования и
- декодируют кодированные видеоданные, чтобы идентифицировать один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее декодированных видеоблоков единицы кодирования, при этом режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования, причем этап декодирования содержит этапы, на которых:
если на основе первого кодированного бита, представляющего режим прогнозирования, режим прогнозирования является одним из режимов прогнозирования одного или более ранее декодированных видеоблоков, то,
когда режимы прогнозирования одного или более ранее декодированных видеоблоков являются идентичными, выбирают режим прогнозирования любого из одного или более ранее декодированных видеоблоков, и
когда режимы прогнозирования одного или более ранее декодированных видеоблоков не являются идентичными, идентифицируют, какой из одного или более ранее декодированных видеоблоков имеет такой же режим прогнозирования, как режим прогнозирования для использования при формировании блока прогнозирования видеоблока, на основе по меньшей мере одного дополнительного кодированного бита, представляющего режим прогнозирования, и
- выбирают режим прогнозирования идентифицированного ранее декодированного видеоблока; и
если на основе первого кодированного бита, представляющего режим прогнозирования, режим прогнозирования не является ни одним из режимов прогнозирования одного или более ранее декодированных видеоблоков, то
- удаляют по меньшей мере режимы прогнозирования одного или более ранее декодированных видеоблоков из множества режимов прогнозирования;
- удаляют по меньшей мере один дополнительный режим прогнозирования, который не является режимом прогнозирования одного или более ранее декодированных видеоблоков, когда два или более из ранее декодированных видеоблоков единицы кодирования имеют идентичный режим прогнозирования;
- временно перекомпоновывают идентификаторы режимов прогнозирования среди оставшихся режимов прогнозирования множества режимов прогнозирования; и
- декодируют кодовое слово, чтобы идентифицировать идентификатор режима прогнозирования, соответствующий режиму прогнозирования для использования при формировании блока прогнозирования текущего видеоблока.
44. Способ по п.43, дополнительно содержащий этап, на котором выбирают один из множества контекстов кодирования для использования при декодировании режима прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее декодированных видеоблоков единицы кодирования, при этом декодирование содержит декодирование согласно выбранному контексту кодирования.
45. Способ по п.44, в котором выбор одного из множества контекстов кодирования содержит этапы, на которых:
- выбирают первый контекст кодирования, когда все режимы прогнозирования одного или более ранее декодированных видеоблоков являются режимами однонаправленного прогнозирования;
- выбирают второй контекст кодирования, когда все режимы прогнозирования одного или более ранее декодированных видеоблоков являются режимами многонаправленного прогнозирования; и
- выбирают третий контекст кодирования, когда режимы прогнозирования одного или более ранее декодированных видеоблоков не являются все однонаправленными или все многонаправленными.
- выбирают первый контекст кодирования, когда все режимы прогнозирования одного или более ранее декодированных видеоблоков являются режимами однонаправленного прогнозирования;
- выбирают второй контекст кодирования, когда все режимы прогнозирования одного или более ранее декодированных видеоблоков являются режимами многонаправленного прогнозирования; и
- выбирают третий контекст кодирования, когда режимы прогнозирования одного или более ранее декодированных видеоблоков не являются все однонаправленными или все многонаправленными.
46. Способ по п.43, дополнительно содержащий этапы, на которых:
- выбирают обратное преобразование для применения к остаточным коэффициентам преобразования видеоблока на основе идентифицированного режима прогнозирования и
- применяют выбранное обратное преобразование к остаточным коэффициентам преобразования видеоблока, чтобы формировать остаточные данные.
- выбирают обратное преобразование для применения к остаточным коэффициентам преобразования видеоблока на основе идентифицированного режима прогнозирования и
- применяют выбранное обратное преобразование к остаточным коэффициентам преобразования видеоблока, чтобы формировать остаточные данные.
47. Способ по п.46, в котором выбор обратного преобразования для применения к преобразованным остаточным коэффициентам, содержит этапы, на которых:
- выбирают одно из обратного дискретного косинусного преобразования (DCT) и обратного целочисленного преобразования для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует ограниченную направленность; и
- выбирают обратное направленное преобразование для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует направленность.
- выбирают одно из обратного дискретного косинусного преобразования (DCT) и обратного целочисленного преобразования для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует ограниченную направленность; и
- выбирают обратное направленное преобразование для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует направленность.
48. Способ по п.47, в котором выбор одного из обратного DCT и обратного целочисленного преобразования содержит этап, на котором выбирают одно из обратного DCT и обратного целочисленного преобразования для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования является либо режимом однонаправленного DC-прогнозирования, либо режимом многонаправленного прогнозирования, который сочетает по меньшей мере два режима прогнозирования, которые указывают, по существу, в ортогональных направлениях.
49. Способ по п.47, дополнительно содержащий этап, на котором сохраняют множество обратных направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, который демонстрирует направленность, при этом выбор обратного направленного преобразования содержит выбор одного из множества обратных направленных преобразований, соответствующих идентифицированному режиму прогнозирования.
50. Способ по п.46, дополнительно содержащий этап, на котором сохраняют множество обратных направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, при этом каждое из множества обратных направленных преобразований содержит матрицу постолбцового преобразования размером N×N и матрицу построчного преобразования размером N×N, где N×N является размерностью видеоблока.
51. Способ по п.46, дополнительно содержащий этап, на котором сохраняют множество обратных направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, при этом каждое из множества обратных направленных преобразований содержит матрицу преобразования размером N2×N2, где N×N является размерностью видеоблока.
52. Способ по п.43, в котором множество режимов прогнозирования включает в себя режимы однонаправленного прогнозирования и поднабор возможных режимов двунаправленного прогнозирования, причем поднабор режимов двунаправленного прогнозирования включает в себя по меньшей мере одну комбинацию, которая включает в себя два различных режима однонаправленного прогнозирования.
53. Устройство для декодирования видеоданных, при этом устройство содержит:
- модуль энтропийного декодирования, который декодирует кодированные видеоданные видеоблока единицы кодирования, чтобы идентифицировать один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее декодированных видеоблоков единицы кодирования, при этом режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования; и
- модуль прогнозирования, который формирует блок прогнозирования с использованием декодированного режима прогнозирования, причем
если на основе первого кодированного бита, представляющего режим прогнозирования, режим прогнозирования является одним из режимов прогнозирования одного или более ранее декодированных видеоблоков, то,
когда режимы прогнозирования одного или более ранее декодированных видеоблоков являются идентичными, модуль энтропийного декодирования выбирает режим прогнозирования любого из одного или более ранее декодированных видеоблоков, и
когда режимы прогнозирования одного или более ранее декодированных видеоблоков не являются идентичными, модуль энтропийного декодирования идентифицирует, какой из одного или более ранее декодированных видеоблоков имеет такой же режим прогнозирования, как режим прогнозирования для использования при формировании блока прогнозирования видеоблока, на основе по меньшей мере одного дополнительного кодированного бита, представляющего режим прогнозирования, и
модуль энтропийного декодирования выбирает режим прогнозирования идентифицированного ранее декодированного видеоблока; и
если на основе первого кодированного бита, представляющего режим прогнозирования, режим прогнозирования не является ни одним из режимов прогнозирования одного или более ранее декодированных видеоблоков, то
модуль энтропийного декодирования удаляет по меньшей мере режимы прогнозирования одного или более ранее декодированных видеоблоков из множества режимов прогнозирования;
модуль энтропийного декодирования удаляет по меньшей мере один дополнительный режим прогнозирования, который не является режимом прогнозирования одного или более ранее декодированных видеоблоков, когда два или более из ранее декодированных видеоблоков единицы кодирования имеют идентичный режим прогнозирования;
модуль энтропийного декодирования временно перекомпоновывает идентификаторы режимов прогнозирования среди оставшихся режимов прогнозирования множества режимов прогнозирования и
модуль энтропийного декодирования декодирует кодовое слово, чтобы идентифицировать идентификатор режима прогнозирования, соответствующий режиму прогнозирования для использования при формировании блока прогнозирования текущего видеоблока.
- модуль энтропийного декодирования, который декодирует кодированные видеоданные видеоблока единицы кодирования, чтобы идентифицировать один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее декодированных видеоблоков единицы кодирования, при этом режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования; и
- модуль прогнозирования, который формирует блок прогнозирования с использованием декодированного режима прогнозирования, причем
если на основе первого кодированного бита, представляющего режим прогнозирования, режим прогнозирования является одним из режимов прогнозирования одного или более ранее декодированных видеоблоков, то,
когда режимы прогнозирования одного или более ранее декодированных видеоблоков являются идентичными, модуль энтропийного декодирования выбирает режим прогнозирования любого из одного или более ранее декодированных видеоблоков, и
когда режимы прогнозирования одного или более ранее декодированных видеоблоков не являются идентичными, модуль энтропийного декодирования идентифицирует, какой из одного или более ранее декодированных видеоблоков имеет такой же режим прогнозирования, как режим прогнозирования для использования при формировании блока прогнозирования видеоблока, на основе по меньшей мере одного дополнительного кодированного бита, представляющего режим прогнозирования, и
модуль энтропийного декодирования выбирает режим прогнозирования идентифицированного ранее декодированного видеоблока; и
если на основе первого кодированного бита, представляющего режим прогнозирования, режим прогнозирования не является ни одним из режимов прогнозирования одного или более ранее декодированных видеоблоков, то
модуль энтропийного декодирования удаляет по меньшей мере режимы прогнозирования одного или более ранее декодированных видеоблоков из множества режимов прогнозирования;
модуль энтропийного декодирования удаляет по меньшей мере один дополнительный режим прогнозирования, который не является режимом прогнозирования одного или более ранее декодированных видеоблоков, когда два или более из ранее декодированных видеоблоков единицы кодирования имеют идентичный режим прогнозирования;
модуль энтропийного декодирования временно перекомпоновывает идентификаторы режимов прогнозирования среди оставшихся режимов прогнозирования множества режимов прогнозирования и
модуль энтропийного декодирования декодирует кодовое слово, чтобы идентифицировать идентификатор режима прогнозирования, соответствующий режиму прогнозирования для использования при формировании блока прогнозирования текущего видеоблока.
54. Устройство по п.53, в котором модуль энтропийного декодирования выбирает один из множества контекстов кодирования для использования при декодировании режима прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее декодированных видеоблоков единицы кодирования, при этом декодирование содержит декодирование согласно выбранному контексту кодирования.
55. Устройство по п.54, в котором модуль энтропийного декодирования:
выбирает первый контекст кодирования, когда все режимы прогнозирования одного или более ранее декодированных видеоблоков являются режимами однонаправленного прогнозирования;
- выбирает второй контекст кодирования, когда все режимы прогнозирования одного или более ранее декодированных видеоблоков являются режимами многонаправленного прогнозирования; и
- выбирает третий контекст кодирования, когда режимы прогнозирования одного или более ранее декодированных видеоблоков не являются ни все однонаправленными, ни все многонаправленными.
выбирает первый контекст кодирования, когда все режимы прогнозирования одного или более ранее декодированных видеоблоков являются режимами однонаправленного прогнозирования;
- выбирает второй контекст кодирования, когда все режимы прогнозирования одного или более ранее декодированных видеоблоков являются режимами многонаправленного прогнозирования; и
- выбирает третий контекст кодирования, когда режимы прогнозирования одного или более ранее декодированных видеоблоков не являются ни все однонаправленными, ни все многонаправленными.
56. Устройство по п.53, дополнительно содержащее модуль обратного преобразования, который:
- выбирает обратное преобразование, чтобы применять к остаточным коэффициентам преобразования видеоблока на основе идентифицированного режима прогнозирования; и
- применяет выбранное обратное преобразование к остаточным коэффициентам преобразования видеоблока, чтобы формировать остаточные данные.
- выбирает обратное преобразование, чтобы применять к остаточным коэффициентам преобразования видеоблока на основе идентифицированного режима прогнозирования; и
- применяет выбранное обратное преобразование к остаточным коэффициентам преобразования видеоблока, чтобы формировать остаточные данные.
57. Устройство по п.56, в котором модуль обратного преобразования:
- выбирает одно из обратного дискретного косинусного преобразования (DCT) и обратного целочисленного преобразования для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует ограниченную направленность; и
- выбирает обратное направленное преобразование для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует направленность.
- выбирает одно из обратного дискретного косинусного преобразования (DCT) и обратного целочисленного преобразования для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует ограниченную направленность; и
- выбирает обратное направленное преобразование для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует направленность.
58. Устройство по п.57, в котором модуль обратного преобразования выбирает одно из обратного DCT и обратного целочисленного преобразования для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования является либо режимом однонаправленного DC-прогнозирования, либо режимом многонаправленного прогнозирования, который сочетает по меньшей мере два режима прогнозирования, которые указывают, по существу, в ортогональных направлениях.
59. Устройство по п.57, в котором модуль обратного преобразования сохраняет множество обратных направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, который демонстрирует направленность, и выбирает один из множества обратных направленных преобразований, соответствующих идентифицированному режиму прогнозирования.
60. Устройство по п.56, в котором модуль обратного преобразования сохраняет множество обратных направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, при этом каждое из множества обратных направленных преобразований содержит матрицу постолбцового преобразования размером N×N и матрицу построчного преобразования размером N×N, где N×N является размерностью видеоблока.
61. Устройство по п.56, в котором модуль обратного преобразования сохраняет множество обратных направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, при этом каждое из множества обратных направленных преобразований содержит матрицу преобразования размером N2×N2, где N×N является размерностью видеоблока.
62. Устройство по п.53, в котором множество режимов прогнозирования включает в себя режимы однонаправленного прогнозирования и поднабор возможных режимов двунаправленного прогнозирования, причем поднабор режимов двунаправленного прогнозирования включает в себя по меньшей мере одну комбинацию, которая включает в себя два различных режима однонаправленного прогнозирования.
63. Устройство по п.53, при этом устройство включено в устройство беспроводной связи.
64. Устройство по п.53, при этом устройство включено в устройство на интегральных схемах.
65. Машиночитаемый носитель, содержащий инструкции, которые при выполнении в устройстве кодирования видеоданных инструктируют устройство кодировать видеоблоки, при этом инструкции инструктируют устройство:
- принимать кодированные видеоданные видеоблока единицы кодирования и
- декодировать кодированные видеоданные, чтобы идентифицировать один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее декодированных видеоблоков единицы кодирования, при этом режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования, причем инструкции для декодирования содержат инструкции, инструктирующие устройство:
если на основе первого кодированного бита, представляющего режим прогнозирования, режим прогнозирования является одним из режимов прогнозирования одного или более ранее декодированных видеоблоков, то,
когда режимы прогнозирования одного или более ранее декодированных видеоблоков являются идентичными, выбирать режим прогнозирования любого из одного или более ранее декодированных видеоблоков, и
когда режим прогнозирования одного или более ранее декодированных видеоблоков не являются идентичными, идентифицировать, какой из одного или более ранее декодированных видеоблоков имеет такой же режим прогнозирования, как режим прогнозирования для использования при формировании блока прогнозирования видеоблока, на основе по меньшей мере одного дополнительного кодированного бита, представляющего режим прогнозирования, и
- выбирать режим прогнозирования идентифицированного ранее декодированного видеоблока; и
если на основе первого кодированного бита, представляющего режим прогнозирования, режим прогнозирования не является ни одним из режимов прогнозирования одного или более ранее декодированных видеоблоков, то
- удалять по меньшей мере режимы прогнозирования одного или более ранее декодированных видеоблоков из множества режимов прогнозирования;
- удалять по меньшей мере один дополнительный режим прогнозирования, который не является режимом прогнозирования одного или более ранее декодированных видеоблоков, когда два или более из ранее декодированных видеоблоков единицы кодирования имеют идентичный режим прогнозирования;
- временно перекомпоновывать идентификаторы режимов прогнозирования среди оставшихся режимов прогнозирования множества режимов прогнозирования;и
- декодировать кодовое слово, чтобы идентифицировать идентификатор режима прогнозирования, соответствующий режиму прогнозирования, для использования при формировании блока прогнозирования текущего видеоблока.
- принимать кодированные видеоданные видеоблока единицы кодирования и
- декодировать кодированные видеоданные, чтобы идентифицировать один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее декодированных видеоблоков единицы кодирования, при этом режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования, причем инструкции для декодирования содержат инструкции, инструктирующие устройство:
если на основе первого кодированного бита, представляющего режим прогнозирования, режим прогнозирования является одним из режимов прогнозирования одного или более ранее декодированных видеоблоков, то,
когда режимы прогнозирования одного или более ранее декодированных видеоблоков являются идентичными, выбирать режим прогнозирования любого из одного или более ранее декодированных видеоблоков, и
когда режим прогнозирования одного или более ранее декодированных видеоблоков не являются идентичными, идентифицировать, какой из одного или более ранее декодированных видеоблоков имеет такой же режим прогнозирования, как режим прогнозирования для использования при формировании блока прогнозирования видеоблока, на основе по меньшей мере одного дополнительного кодированного бита, представляющего режим прогнозирования, и
- выбирать режим прогнозирования идентифицированного ранее декодированного видеоблока; и
если на основе первого кодированного бита, представляющего режим прогнозирования, режим прогнозирования не является ни одним из режимов прогнозирования одного или более ранее декодированных видеоблоков, то
- удалять по меньшей мере режимы прогнозирования одного или более ранее декодированных видеоблоков из множества режимов прогнозирования;
- удалять по меньшей мере один дополнительный режим прогнозирования, который не является режимом прогнозирования одного или более ранее декодированных видеоблоков, когда два или более из ранее декодированных видеоблоков единицы кодирования имеют идентичный режим прогнозирования;
- временно перекомпоновывать идентификаторы режимов прогнозирования среди оставшихся режимов прогнозирования множества режимов прогнозирования;и
- декодировать кодовое слово, чтобы идентифицировать идентификатор режима прогнозирования, соответствующий режиму прогнозирования, для использования при формировании блока прогнозирования текущего видеоблока.
66. Машиночитаемый носитель по п.65, дополнительно содержащий инструкции, которые инструктируют устройство выбирать один из множества контекстов кодирования для использования при декодировании режима прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее декодированных видеоблоков единицы кодирования, при этом декодирование содержит декодирование согласно выбранному контексту кодирования.
67. Машиночитаемый носитель по п.66, в котором инструкции инструктируют устройство:
- выбирать первый контекст кодирования, когда все режимы прогнозирования одного или более ранее декодированных видеоблоков являются режимами однонаправленного прогнозирования;
- выбирать второй контекст кодирования, когда все режимы прогнозирования одного или более ранее декодированных видеоблоков являются режимами многонаправленного прогнозирования; и
- выбирать третий контекст кодирования, когда режимы прогнозирования одного или более ранее декодированных видеоблоков не являются ни все однонаправленными, ни все многонаправленными.
- выбирать первый контекст кодирования, когда все режимы прогнозирования одного или более ранее декодированных видеоблоков являются режимами однонаправленного прогнозирования;
- выбирать второй контекст кодирования, когда все режимы прогнозирования одного или более ранее декодированных видеоблоков являются режимами многонаправленного прогнозирования; и
- выбирать третий контекст кодирования, когда режимы прогнозирования одного или более ранее декодированных видеоблоков не являются ни все однонаправленными, ни все многонаправленными.
68. Машиночитаемый носитель по п.65, дополнительно содержащий инструкции, которые инструктируют устройство:
- выбирать обратное преобразование, чтобы применять к остаточным коэффициентам преобразования видеоблока на основе идентифицированного режима прогнозирования; и
применять выбранное обратное преобразование к остаточным коэффициентам преобразования видеоблока, чтобы формировать остаточные данные.
- выбирать обратное преобразование, чтобы применять к остаточным коэффициентам преобразования видеоблока на основе идентифицированного режима прогнозирования; и
применять выбранное обратное преобразование к остаточным коэффициентам преобразования видеоблока, чтобы формировать остаточные данные.
69. Машиночитаемый носитель по п.68, в котором инструкции инструктируют устройство:
- выбирать одно из обратного дискретного косинусного преобразования (DCT) и обратного целочисленного преобразования для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует ограниченную направленность; и
- выбирать обратное направленное преобразование для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует направленность.
- выбирать одно из обратного дискретного косинусного преобразования (DCT) и обратного целочисленного преобразования для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует ограниченную направленность; и
- выбирать обратное направленное преобразование для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует направленность.
70. Машиночитаемый носитель по п.69, в котором инструкции инструктируют устройство выбирать одно из обратного DCT и обратного целочисленного преобразования для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования является либо режимом однонаправленного DC-прогнозирования, либо режимом многонаправленного прогнозирования, который сочетает по меньшей мере два режима прогнозирования, которые указывают, по существу, в ортогональных направлениях.
71. Машиночитаемый носитель по п.69, дополнительно содержащий инструкции, которые инструктируют устройство сохранять множество обратных направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, который демонстрирует направленность, при этом выбор обратного направленного преобразования содержит выбор одного из множества обратных направленных преобразований, соответствующих идентифицированному режиму прогнозирования.
72. Машиночитаемый носитель по п.68, дополнительно содержащий инструкции, которые инструктируют устройство сохранять множество обратных направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, при этом каждое из множества обратных направленных преобразований содержит матрицу постолбцового преобразования размером N×N и матрицу построчного преобразования размером N×N, где N×N является размерностью видеоблока.
73. Машиночитаемый носитель по п.68, дополнительно содержащий инструкции, которые инструктируют устройство сохранять множество обратных направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, при этом каждое из множества обратных направленных преобразований содержит матрицу преобразования размером N2×N2, где N×N является размерностью видеоблока.
74. Машиночитаемый носитель по п.65, в котором множество режимов прогнозирования включает в себя режимы однонаправленного прогнозирования и поднабор возможных режимов двунаправленного прогнозирования, причем поднабор режимов двунаправленного прогнозирования включает в себя по меньшей мере одну комбинацию, которая включает в себя два различных режима однонаправленного прогнозирования.
75. Устройство для декодирования видеоданных, при этом устройство содержит:
- средство для приема кодированных видеоданных видеоблока единицы кодирования и
- средство для декодирования кодированных видеоданных, чтобы идентифицировать один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее декодированных видеоблоков единицы кодирования, при этом режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования, причем
если на основе первого кодированного бита, представляющего режим прогнозирования, режим прогнозирования является одним из режимов прогнозирования одного или более ранее декодированных видеоблоков, то,
когда режимы прогнозирования одного или более ранее декодированных видеоблоков являются идентичными, средство для декодирования выбирает режим прогнозирования любого из одного или более ранее декодированных видеоблоков, и
когда режимы прогнозирования одного или более ранее декодированных видеоблоков не являются идентичными, средство для декодирования идентифицирует, какой из одного или более ранее декодированных видеоблоков имеет такой же режим прогнозирования, как режим прогнозирования для использования при формировании блока прогнозирования видеоблока, на основе по меньшей мере одного дополнительного кодированного бита, представляющего режим прогнозирования, и
средство для декодирования выбирает режим прогнозирования идентифицированного ранее декодированного видеоблока; и
если на основе первого кодированного бита, представляющего режим прогнозирования, режим прогнозирования не является ни одним из режимов прогнозирования одного или более ранее декодированных видеоблоков, то
средство для декодирования удаляет по меньшей мере режимы прогнозирования одного или более ранее декодированных видеоблоков из множества режимов прогнозирования;
средство для декодирования удаляет по меньшей мере один дополнительный режим прогнозирования, который не является режимом прогнозирования одного или более ранее декодированных видеоблоков, когда два или более из ранее декодированных видеоблоков единицы кодирования имеют идентичный режим прогнозирования;
средство для декодирования временно перекомпоновывает идентификаторы режимов прогнозирования среди оставшихся режимов прогнозирования множества режимов прогнозирования и
средство для декодирования декодирует кодовое слово, чтобы идентифицировать идентификатор режима прогнозирования, соответствующий режиму прогнозирования для использования при формировании блока прогнозирования текущего видеоблока.
- средство для приема кодированных видеоданных видеоблока единицы кодирования и
- средство для декодирования кодированных видеоданных, чтобы идентифицировать один из множества режимов прогнозирования для использования при формировании блока прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее декодированных видеоблоков единицы кодирования, при этом режимы прогнозирования включают в себя режимы однонаправленного прогнозирования и режимы многонаправленного прогнозирования, которые сочетают по меньшей мере два режима однонаправленного прогнозирования, причем
если на основе первого кодированного бита, представляющего режим прогнозирования, режим прогнозирования является одним из режимов прогнозирования одного или более ранее декодированных видеоблоков, то,
когда режимы прогнозирования одного или более ранее декодированных видеоблоков являются идентичными, средство для декодирования выбирает режим прогнозирования любого из одного или более ранее декодированных видеоблоков, и
когда режимы прогнозирования одного или более ранее декодированных видеоблоков не являются идентичными, средство для декодирования идентифицирует, какой из одного или более ранее декодированных видеоблоков имеет такой же режим прогнозирования, как режим прогнозирования для использования при формировании блока прогнозирования видеоблока, на основе по меньшей мере одного дополнительного кодированного бита, представляющего режим прогнозирования, и
средство для декодирования выбирает режим прогнозирования идентифицированного ранее декодированного видеоблока; и
если на основе первого кодированного бита, представляющего режим прогнозирования, режим прогнозирования не является ни одним из режимов прогнозирования одного или более ранее декодированных видеоблоков, то
средство для декодирования удаляет по меньшей мере режимы прогнозирования одного или более ранее декодированных видеоблоков из множества режимов прогнозирования;
средство для декодирования удаляет по меньшей мере один дополнительный режим прогнозирования, который не является режимом прогнозирования одного или более ранее декодированных видеоблоков, когда два или более из ранее декодированных видеоблоков единицы кодирования имеют идентичный режим прогнозирования;
средство для декодирования временно перекомпоновывает идентификаторы режимов прогнозирования среди оставшихся режимов прогнозирования множества режимов прогнозирования и
средство для декодирования декодирует кодовое слово, чтобы идентифицировать идентификатор режима прогнозирования, соответствующий режиму прогнозирования для использования при формировании блока прогнозирования текущего видеоблока.
76. Устройство по п.75, в котором средство декодирования выбирает один из множества контекстов кодирования для использования при декодировании режима прогнозирования видеоблока на основе режимов прогнозирования одного или более ранее декодированных видеоблоков единицы кодирования, при этом декодирование содержит декодирование согласно выбранному контексту кодирования.
77. Устройство по п.76, в котором средство декодирования:
- выбирает первый контекст кодирования, когда все режимы прогнозирования одного или более ранее декодированных видеоблоков являются режимами однонаправленного прогнозирования;
- выбирает второй контекст кодирования, когда все режимы прогнозирования одного или более ранее декодированных видеоблоков являются режимами многонаправленного прогнозирования; и
- выбирает третий контекст кодирования, когда режимы прогнозирования одного или более ранее декодированных видеоблоков не являются ни все однонаправленными, ни все многонаправленными.
- выбирает первый контекст кодирования, когда все режимы прогнозирования одного или более ранее декодированных видеоблоков являются режимами однонаправленного прогнозирования;
- выбирает второй контекст кодирования, когда все режимы прогнозирования одного или более ранее декодированных видеоблоков являются режимами многонаправленного прогнозирования; и
- выбирает третий контекст кодирования, когда режимы прогнозирования одного или более ранее декодированных видеоблоков не являются ни все однонаправленными, ни все многонаправленными.
78. Устройство по п.75, дополнительно содержащее средство для преобразования остаточных коэффициентов преобразования, при этом средство преобразования:
- выбирает обратное преобразование, чтобы применять к остаточным коэффициентам преобразования видеоблока на основе идентифицированного режима прогнозирования; и
применяет выбранное обратное преобразование к остаточным коэффициентам преобразования видеоблока, чтобы формировать остаточные данные.
- выбирает обратное преобразование, чтобы применять к остаточным коэффициентам преобразования видеоблока на основе идентифицированного режима прогнозирования; и
применяет выбранное обратное преобразование к остаточным коэффициентам преобразования видеоблока, чтобы формировать остаточные данные.
79. Устройство по п.78, в котором средство преобразования:
- выбирает одно из обратного дискретного косинусного преобразования (DCT) и обратного целочисленного преобразования для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует ограниченную направленность; и
- выбирает обратное направленное преобразование для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует направленность.
- выбирает одно из обратного дискретного косинусного преобразования (DCT) и обратного целочисленного преобразования для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует ограниченную направленность; и
- выбирает обратное направленное преобразование для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует направленность.
80. Устройство по п.79, в котором средство преобразования выбирает одно из обратного DCT и обратного целочисленного преобразования для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования является либо режимом однонаправленного DC-прогнозирования, либо режимом многонаправленного прогнозирования, который сочетает по меньшей мере два режима прогнозирования, которые указывают по существу в ортогональных направлениях.
81. Устройство по п.79, дополнительно содержащее средство для хранения множества обратных направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, который демонстрирует направленность, при этом средство преобразования выбирает один из множества обратных направленных преобразований, соответствующих идентифицированному режиму прогнозирования.
82. Устройство по п.78, дополнительно содержащее средство для хранения множества обратных направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, при этом каждое из множества обратных направленных преобразований содержит матрицу постолбцового преобразования размером N×N и матрицу построчного преобразования размером N×N, где N×N является размерностью видеоблока.
83. Устройство по п.78, дополнительно содержащее средство для хранения множества обратных направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, при этом каждое из множества обратных направленных преобразований содержит матрицу преобразования размером N2×N2, где N×N является размерностью видеоблока.
84. Устройство по п.75, в котором множество режимов прогнозирования включает в себя режимы однонаправленного прогнозирования и поднабор возможных режимов двунаправленного прогнозирования, причем поднабор режимов двунаправленного прогнозирования включает в себя по меньшей мере одну комбинацию, которая включает в себя два различных режима однонаправленного прогнозирования.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US94447007P | 2007-06-15 | 2007-06-15 | |
US60/944,470 | 2007-06-15 | ||
US97976207P | 2007-10-12 | 2007-10-12 | |
US60/979,762 | 2007-10-12 | ||
US12/133,227 | 2008-06-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2010101115A RU2010101115A (ru) | 2011-07-20 |
RU2434360C2 true RU2434360C2 (ru) | 2011-11-20 |
Family
ID=40132292
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2010101115/09A RU2434360C2 (ru) | 2007-06-15 | 2008-06-12 | Адаптивное кодирование режима прогнозирования видеоблоков |
RU2010101116/07A RU2447612C2 (ru) | 2007-06-15 | 2008-06-12 | Адаптивное сканирование коэффициентов при кодировании видео |
RU2010101085/07A RU2446615C2 (ru) | 2007-06-15 | 2008-06-13 | Адаптивное сканирование коэффициентов для кодирования видео |
RU2010101053/07A RU2463729C2 (ru) | 2007-06-15 | 2008-06-13 | Отделимые направленные преобразования |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2010101116/07A RU2447612C2 (ru) | 2007-06-15 | 2008-06-12 | Адаптивное сканирование коэффициентов при кодировании видео |
RU2010101085/07A RU2446615C2 (ru) | 2007-06-15 | 2008-06-13 | Адаптивное сканирование коэффициентов для кодирования видео |
RU2010101053/07A RU2463729C2 (ru) | 2007-06-15 | 2008-06-13 | Отделимые направленные преобразования |
Country Status (14)
Country | Link |
---|---|
US (5) | US8428133B2 (ru) |
EP (3) | EP2165543B1 (ru) |
JP (4) | JP5254324B2 (ru) |
KR (3) | KR101107867B1 (ru) |
CN (3) | CN101682770B (ru) |
BR (3) | BRPI0813351B1 (ru) |
CA (3) | CA2687260C (ru) |
DK (1) | DK2165543T3 (ru) |
ES (1) | ES2530796T3 (ru) |
PL (1) | PL2165543T3 (ru) |
PT (1) | PT2165543E (ru) |
RU (4) | RU2434360C2 (ru) |
TW (3) | TW200913727A (ru) |
WO (3) | WO2008157269A2 (ru) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2595936C2 (ru) * | 2012-01-19 | 2016-08-27 | Кэнон Кабусики Кайся | Способ, устройство и система для кодирования и декодирования карты значимости для остаточных коэффициентов единицы преобразования |
RU2609064C2 (ru) * | 2011-12-21 | 2017-01-30 | Сан Пэтент Траст | Способ кодирования изображений, способ декодирования изображений, устройство кодирования изображений и устройство декодирования изображений |
US9736495B2 (en) | 2012-01-20 | 2017-08-15 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit |
RU2793902C1 (ru) * | 2019-06-19 | 2023-04-07 | ЭлДжи ЭЛЕКТРОНИКС ИНК. | Способ декодирования изображений для выполнения взаимного прогнозирования, когда режим прогнозирования для текущего блока в конечном счете не может выбираться, и устройство для этого |
US11632568B2 (en) | 2019-06-19 | 2023-04-18 | Lg Electronics Inc. | Image decoding method for performing inter-prediction when prediction mode for current block ultimately cannot be selected, and device for same |
Families Citing this family (271)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NO326065B1 (no) * | 2007-01-11 | 2008-09-08 | Tandberg Telecom As | Atte pixlers heltallstransform |
US8045612B1 (en) * | 2007-01-19 | 2011-10-25 | Marvell International Ltd. | Fast inverse integer transform for video decoding |
US8238428B2 (en) * | 2007-04-17 | 2012-08-07 | Qualcomm Incorporated | Pixel-by-pixel weighting for intra-frame coding |
US8428133B2 (en) | 2007-06-15 | 2013-04-23 | Qualcomm Incorporated | Adaptive coding of video block prediction mode |
US8571104B2 (en) * | 2007-06-15 | 2013-10-29 | Qualcomm, Incorporated | Adaptive coefficient scanning in video coding |
CN107105257B (zh) | 2007-06-29 | 2020-08-28 | 威勒斯媒体国际有限公司 | 图像编码装置、图像编码方法、图像译码装置、图像译码方法 |
WO2009032255A2 (en) * | 2007-09-04 | 2009-03-12 | The Regents Of The University Of California | Hierarchical motion vector processing method, software and devices |
US8331454B2 (en) * | 2007-11-12 | 2012-12-11 | Cisco Technology, Inc. | Integer transform function for video compression systems |
KR20090097013A (ko) * | 2008-03-10 | 2009-09-15 | 삼성전자주식회사 | 영상 부호화장치 및 영상 복호화장치 |
KR101375668B1 (ko) * | 2008-03-17 | 2014-03-18 | 삼성전자주식회사 | 변환 계수의 부호화, 복호화 방법 및 장치 |
US8542748B2 (en) | 2008-03-28 | 2013-09-24 | Sharp Laboratories Of America, Inc. | Methods and systems for parallel video encoding and decoding |
US20090245371A1 (en) * | 2008-03-28 | 2009-10-01 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding/decoding information about intra-prediction mode of video |
KR20090129926A (ko) * | 2008-06-13 | 2009-12-17 | 삼성전자주식회사 | 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치 |
KR100963424B1 (ko) * | 2008-07-23 | 2010-06-15 | 한국전자통신연구원 | 스케일러블 영상 복호화기 및 그 제어 방법 |
US8000546B2 (en) * | 2008-08-01 | 2011-08-16 | National Cheng Kung University | Adaptive scan method for image/video coding |
US8503527B2 (en) | 2008-10-03 | 2013-08-06 | Qualcomm Incorporated | Video coding with large macroblocks |
US8619856B2 (en) * | 2008-10-03 | 2013-12-31 | Qualcomm Incorporated | Video coding with large macroblocks |
US8634456B2 (en) * | 2008-10-03 | 2014-01-21 | Qualcomm Incorporated | Video coding with large macroblocks |
US8483285B2 (en) * | 2008-10-03 | 2013-07-09 | Qualcomm Incorporated | Video coding using transforms bigger than 4×4 and 8×8 |
KR20110106402A (ko) | 2009-01-27 | 2011-09-28 | 톰슨 라이센싱 | 비디오 인코딩 및 디코딩에서 변환 선택을 위한 방법 및 장치 |
KR101710619B1 (ko) * | 2009-02-04 | 2017-02-28 | 삼성전자주식회사 | 단계적인 영상 부호화, 복호화 방법 및 장치 |
CN102308580B (zh) * | 2009-02-05 | 2016-05-04 | 汤姆森特许公司 | 用于自适应模式视频编码和解码的方法和装置 |
KR101672456B1 (ko) * | 2009-02-09 | 2016-11-17 | 삼성전자 주식회사 | 저복잡도 주파수 변환을 이용한 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치 |
WO2010091505A1 (en) * | 2009-02-13 | 2010-08-19 | Research In Motion Limited | Modified entropy encoding for images and videos |
US8634466B2 (en) * | 2009-03-17 | 2014-01-21 | Freescale Semiconductor, Inc. | Video decoder plus a discrete cosine transform unit |
KR101379185B1 (ko) * | 2009-04-14 | 2014-03-31 | 에스케이 텔레콤주식회사 | 예측 모드 선택 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 |
US9113168B2 (en) | 2009-05-12 | 2015-08-18 | Lg Electronics Inc. | Method and apparatus of processing a video signal |
US8509309B2 (en) | 2009-05-14 | 2013-08-13 | Massachusetts Institute Of Technology | Selecting transforms for compressing visual data |
US8451903B2 (en) * | 2009-05-14 | 2013-05-28 | Massachusetts Institute Of Technology | Selecting transforms for compressing visual data |
CN101895739B (zh) * | 2009-05-20 | 2012-12-19 | 深圳市融创天下科技股份有限公司 | 基于块统计特性的编码方法 |
US8660261B2 (en) * | 2009-06-04 | 2014-02-25 | Mediatek Singapore Pte. Ltd. | System and apparatus for integrated video/image encoding/decoding and encryption/decryption |
US8700410B2 (en) * | 2009-06-18 | 2014-04-15 | Texas Instruments Incorporated | Method and system for lossless value-location encoding |
US8873626B2 (en) * | 2009-07-02 | 2014-10-28 | Qualcomm Incorporated | Template matching for video coding |
CN101945270B (zh) * | 2009-07-06 | 2013-06-19 | 联发科技(新加坡)私人有限公司 | 视频编码器、进行内部预测及进行视频数据压缩的方法 |
WO2011010959A1 (en) * | 2009-07-23 | 2011-01-27 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for encoding and decoding of images |
EP2457377A1 (en) * | 2009-07-23 | 2012-05-30 | Thomson Licensing | Methods and apparatus for adaptive transform selection for video encoding and decoding |
JP5700970B2 (ja) * | 2009-07-30 | 2015-04-15 | トムソン ライセンシングThomson Licensing | 画像シーケンスを表す符号化データストリームの復号方法と画像シーケンスの符号化方法 |
KR101474756B1 (ko) | 2009-08-13 | 2014-12-19 | 삼성전자주식회사 | 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치 |
KR101712097B1 (ko) * | 2009-08-19 | 2017-03-03 | 삼성전자 주식회사 | 유연한 직교 변환에 기초한 영상 부호화, 복호화 방법 및 장치 |
JP5806219B2 (ja) * | 2009-10-05 | 2015-11-10 | トムソン ライセンシングThomson Licensing | ビデオ符号化及び復号化における埋め込み量子化パラメータ調整方法及び装置 |
US8477845B2 (en) * | 2009-10-16 | 2013-07-02 | Futurewei Technologies, Inc. | Predictive adaptive scan ordering for video coding |
US20110090954A1 (en) * | 2009-10-21 | 2011-04-21 | Cohen Robert A | Video Codes with Directional Transforms |
CN102045560B (zh) | 2009-10-23 | 2013-08-07 | 华为技术有限公司 | 一种视频编解码方法及设备 |
AU2014268181B2 (en) * | 2009-10-28 | 2016-02-18 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding residual block, and method and apparatus for decoding residual block |
KR20110045949A (ko) | 2009-10-28 | 2011-05-04 | 삼성전자주식회사 | 회전 변환을 이용한 영상 부호화, 복호화 방법 및 장치 |
KR101457894B1 (ko) * | 2009-10-28 | 2014-11-05 | 삼성전자주식회사 | 영상 부호화 방법 및 장치, 복호화 방법 및 장치 |
TWI396448B (zh) * | 2009-10-30 | 2013-05-11 | Hon Hai Prec Ind Co Ltd | 熵解碼裝置 |
KR20110065089A (ko) * | 2009-12-09 | 2011-06-15 | 삼성전자주식회사 | 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치 |
KR101441879B1 (ko) * | 2009-12-09 | 2014-09-23 | 에스케이텔레콤 주식회사 | 영상 부호화 장치 및 방법, 및 거기에 이용되는 변환 부호화 장치 및 방법, 변환기저 생성장치 및 방법, 및 영상 복호화 장치 및 방법 |
KR20110065092A (ko) * | 2009-12-09 | 2011-06-15 | 삼성전자주식회사 | 회전 변환을 이용한 영상 부호화, 복호화 방법 및 장치 |
KR20110068792A (ko) * | 2009-12-16 | 2011-06-22 | 한국전자통신연구원 | 적응적 영상 부호화 장치 및 방법 |
CN102118613B (zh) * | 2009-12-31 | 2012-11-21 | 华为技术有限公司 | 视频解码和编码方法及装置 |
TWI389577B (zh) * | 2009-12-31 | 2013-03-11 | Via Tech Inc | 視訊解碼解塊之裝置與方法 |
JP5432412B1 (ja) * | 2010-01-07 | 2014-03-05 | 株式会社東芝 | 動画像符号化装置及び動画像復号化装置 |
JP5597782B2 (ja) * | 2010-01-07 | 2014-10-01 | 株式会社東芝 | 動画像符号化装置及び動画像復号化装置 |
JP5525650B2 (ja) * | 2010-01-07 | 2014-06-18 | 株式会社東芝 | 動画像復号化装置、方法及びプログラム |
JP5323209B2 (ja) * | 2010-01-07 | 2013-10-23 | 株式会社東芝 | 動画像符号化装置及び動画像復号化装置 |
JP5908619B2 (ja) * | 2010-01-07 | 2016-04-26 | 株式会社東芝 | 動画像符号化装置及び動画像復号化装置 |
WO2011083573A1 (ja) | 2010-01-07 | 2011-07-14 | 株式会社 東芝 | 動画像符号化装置及び動画像復号化装置 |
JP5526277B2 (ja) * | 2010-01-07 | 2014-06-18 | 株式会社東芝 | 動画像復号化装置、方法及びプログラム |
JP5696248B2 (ja) * | 2010-01-07 | 2015-04-08 | 株式会社東芝 | 動画像符号化装置及び動画像復号化装置 |
JP5432359B2 (ja) * | 2010-01-07 | 2014-03-05 | 株式会社東芝 | 動画像符号化装置、方法及びプログラム |
US8885714B2 (en) * | 2010-01-14 | 2014-11-11 | Texas Instruments Incorporated | Method and system for intracoding in video encoding |
US8792740B2 (en) * | 2010-02-02 | 2014-07-29 | Humax Holdings Co., Ltd. | Image encoding/decoding method for rate-distortion optimization and apparatus for performing same |
KR101495724B1 (ko) | 2010-02-02 | 2015-02-25 | 삼성전자주식회사 | 계층적 데이터 단위의 스캔 순서에 기반한 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치 |
WO2011108240A1 (ja) * | 2010-03-01 | 2011-09-09 | パナソニック株式会社 | 画像符号化方法および画像復号方法 |
KR101753273B1 (ko) * | 2010-03-10 | 2017-07-03 | 톰슨 라이센싱 | 변환 선택을 갖는 비디오 코딩 및 디코딩을 위한 제약 변환 방법 및 장치 |
US8644375B2 (en) | 2010-04-09 | 2014-02-04 | Sharp Laboratories Of America, Inc. | Methods and systems for intra prediction |
CN102215391B (zh) * | 2010-04-09 | 2013-08-28 | 华为技术有限公司 | 视频数据编码、解码方法及装置、变换处理方法及装置 |
US20110249741A1 (en) * | 2010-04-09 | 2011-10-13 | Jie Zhao | Methods and Systems for Intra Prediction |
CN102215390B (zh) * | 2010-04-09 | 2014-07-09 | 华为技术有限公司 | 图像编解码处理方法和装置 |
CN102215388B (zh) * | 2010-04-09 | 2013-11-06 | 华为技术有限公司 | 一种简化方向性变换的方法、装置和系统 |
US8705619B2 (en) * | 2010-04-09 | 2014-04-22 | Sony Corporation | Directional discrete wavelet transform (DDWT) for video compression applications |
US20110249743A1 (en) * | 2010-04-09 | 2011-10-13 | Jie Zhao | Super-block for high performance video coding |
US8619857B2 (en) | 2010-04-09 | 2013-12-31 | Sharp Laboratories Of America, Inc. | Methods and systems for intra prediction |
JP5914962B2 (ja) * | 2010-04-09 | 2016-05-11 | ソニー株式会社 | 画像処理装置および方法、プログラム、並びに、記録媒体 |
EP3703369B1 (en) | 2010-04-13 | 2024-07-24 | GE Video Compression, LLC | Sample region merging |
DK3435674T3 (da) | 2010-04-13 | 2023-08-21 | Ge Video Compression Llc | Kodning af signifikanskort og transformationskoefficientblokke |
CN106067983B (zh) | 2010-04-13 | 2019-07-12 | Ge视频压缩有限责任公司 | 解码数据流的方法、生成数据流的方法及解码器 |
CN106231337B (zh) | 2010-04-13 | 2020-06-19 | Ge视频压缩有限责任公司 | 解码器、解码方法、编码器以及编码方法 |
BR122020008249B1 (pt) | 2010-04-13 | 2021-02-17 | Ge Video Compression, Llc | herança em amostra de arranjo em subdivisão multitree |
WO2011127963A1 (en) * | 2010-04-13 | 2011-10-20 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Sample region merging |
KR101791078B1 (ko) * | 2010-04-16 | 2017-10-30 | 에스케이텔레콤 주식회사 | 영상 부호화/복호화 장치 및 방법 |
US9106933B1 (en) | 2010-05-18 | 2015-08-11 | Google Inc. | Apparatus and method for encoding video using different second-stage transform |
CN105791859B (zh) | 2010-05-26 | 2018-11-06 | Lg电子株式会社 | 用于处理视频信号的方法和设备 |
US8902978B2 (en) | 2010-05-30 | 2014-12-02 | Lg Electronics Inc. | Enhanced intra prediction mode signaling |
CN102281435B (zh) * | 2010-06-11 | 2013-10-02 | 华为技术有限公司 | 编码方法、解码方法、编码装置、解码装置及编解码系统 |
US8396305B2 (en) | 2010-07-09 | 2013-03-12 | Sony Corporation | Image compression utilizing ring-tree entropy coding and directional transforms |
US9215470B2 (en) * | 2010-07-09 | 2015-12-15 | Qualcomm Incorporated | Signaling selected directional transform for video coding |
AU2010357291B2 (en) | 2010-07-15 | 2015-01-15 | Kabushiki Kaisha Toshiba | Image encoding method and image decoding method |
CN101895757A (zh) * | 2010-07-15 | 2010-11-24 | 北京大学 | 预测残差块的重排序、逆重排序方法及系统 |
US8837577B2 (en) * | 2010-07-15 | 2014-09-16 | Sharp Laboratories Of America, Inc. | Method of parallel video coding based upon prediction type |
WO2012008925A1 (en) * | 2010-07-15 | 2012-01-19 | Agency For Science, Technology And Research | Method, apparatus and computer program product for encoding video data |
US8855188B2 (en) * | 2010-07-15 | 2014-10-07 | Sharp Laboratories Of America, Inc. | Method of parallel video coding based on mapping |
CN101895756B (zh) * | 2010-07-15 | 2012-10-31 | 北京大学 | 视频图像块的编码、解码、重构方法及系统 |
JP6342116B2 (ja) | 2010-07-15 | 2018-06-13 | シャープ株式会社 | イントラ予測モード推定装置 |
JP2012023632A (ja) | 2010-07-15 | 2012-02-02 | Sony Corp | 符号化装置および符号化方法、並びに、復号装置および復号方法 |
US8873617B2 (en) * | 2010-07-15 | 2014-10-28 | Sharp Laboratories Of America, Inc. | Method of parallel video coding based on same sized blocks |
KR20120009618A (ko) * | 2010-07-19 | 2012-02-02 | 에스케이 텔레콤주식회사 | 주파수변환단위 분할부호화 방법 및 장치와 이를 이용한 영상 부호화/복호화 방법 및 장치 |
JP2012028858A (ja) * | 2010-07-20 | 2012-02-09 | Sony Corp | 画像処理装置及び画像処理方法 |
WO2012014461A1 (ja) * | 2010-07-28 | 2012-02-02 | パナソニック株式会社 | 符号化方法および復号化方法 |
KR101373814B1 (ko) * | 2010-07-31 | 2014-03-18 | 엠앤케이홀딩스 주식회사 | 예측 블록 생성 장치 |
US11284072B2 (en) | 2010-08-17 | 2022-03-22 | M&K Holdings Inc. | Apparatus for decoding an image |
US10136130B2 (en) * | 2010-08-17 | 2018-11-20 | M&K Holdings Inc. | Apparatus for decoding an image |
KR20120025111A (ko) * | 2010-09-07 | 2012-03-15 | 에스케이 텔레콤주식회사 | 참조 화소들의 특성을 이용하여 예측모드 정보의 전송을 생략할 수 있는 화면 내 예측 부호화/복호화 장치 및 그 방법 |
KR101677480B1 (ko) * | 2010-09-07 | 2016-11-21 | 에스케이 텔레콤주식회사 | 효과적인 화면내 예측모드 집합 선택을 이용한 영상 부호화/복호화 방법 및 장치 |
US9154801B2 (en) * | 2010-09-30 | 2015-10-06 | Texas Instruments Incorporated | Method and apparatus for diagonal scan and simplified coding of transform coefficients |
CN102447895B (zh) * | 2010-09-30 | 2013-10-02 | 华为技术有限公司 | 扫描方法及装置、反扫描方法及装置 |
US9378185B2 (en) | 2010-09-30 | 2016-06-28 | Texas Instruments Incorporated | Transform and quantization architecture for video coding and decoding |
US9313514B2 (en) * | 2010-10-01 | 2016-04-12 | Sharp Kabushiki Kaisha | Methods and systems for entropy coder initialization |
US8923395B2 (en) * | 2010-10-01 | 2014-12-30 | Qualcomm Incorporated | Video coding using intra-prediction |
US9532059B2 (en) | 2010-10-05 | 2016-12-27 | Google Technology Holdings LLC | Method and apparatus for spatial scalability for video coding |
KR20130054413A (ko) * | 2010-10-05 | 2013-05-24 | 제너럴 인스트루먼트 코포레이션 | 특징 기반 비디오 코딩 방법 및 장치 |
US9641846B2 (en) | 2010-10-22 | 2017-05-02 | Qualcomm Incorporated | Adaptive scanning of transform coefficients for video coding |
US9497472B2 (en) * | 2010-11-16 | 2016-11-15 | Qualcomm Incorporated | Parallel context calculation in video coding |
US8711940B2 (en) * | 2010-11-29 | 2014-04-29 | Mediatek Inc. | Method and apparatus of motion vector prediction with extended motion vector predictor |
US8976861B2 (en) * | 2010-12-03 | 2015-03-10 | Qualcomm Incorporated | Separately coding the position of a last significant coefficient of a video block in video coding |
US9288496B2 (en) | 2010-12-03 | 2016-03-15 | Qualcomm Incorporated | Video coding using function-based scan order for transform coefficients |
US9042440B2 (en) | 2010-12-03 | 2015-05-26 | Qualcomm Incorporated | Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding |
CN103262539A (zh) | 2010-12-17 | 2013-08-21 | 三菱电机株式会社 | 运动图像编码装置、运动图像解码装置、运动图像编码方法以及运动图像解码方法 |
KR20120070479A (ko) | 2010-12-21 | 2012-06-29 | 한국전자통신연구원 | 화면 내 예측 방향 정보 부호화/복호화 방법 및 그 장치 |
US20120163456A1 (en) | 2010-12-22 | 2012-06-28 | Qualcomm Incorporated | Using a most probable scanning order to efficiently code scanning order information for a video block in video coding |
US9049444B2 (en) * | 2010-12-22 | 2015-06-02 | Qualcomm Incorporated | Mode dependent scanning of coefficients of a block of video data |
US20120163472A1 (en) * | 2010-12-22 | 2012-06-28 | Qualcomm Incorporated | Efficiently coding scanning order information for a video block in video coding |
US10992958B2 (en) | 2010-12-29 | 2021-04-27 | Qualcomm Incorporated | Video coding using mapped transforms and scanning modes |
KR101739580B1 (ko) * | 2010-12-30 | 2017-05-25 | 에스케이 텔레콤주식회사 | 적응적 스캔 장치 및 그 스캔 방법 |
US9490839B2 (en) | 2011-01-03 | 2016-11-08 | Qualcomm Incorporated | Variable length coding of video block coefficients |
US8768080B2 (en) | 2011-01-04 | 2014-07-01 | Blackberry Limited | Coding of residual data in predictive compression |
EP2661893B1 (en) * | 2011-01-04 | 2020-11-25 | BlackBerry Limited | Coding of residual data in predictive compression |
CN104811705B (zh) * | 2011-01-06 | 2018-05-08 | 三星电子株式会社 | 视频的编码方法和装置及视频的解码方法和装置 |
EP4099700A1 (en) | 2011-01-07 | 2022-12-07 | Nokia Technologies Oy | Motion prediction in video coding |
PT4120686T (pt) * | 2011-01-07 | 2023-09-07 | Ntt Docomo Inc | Procedimento para descodificação preditiva, sistema para descodificação preditiva e suporte de armazenamento não transitório legível por computador |
US9807424B2 (en) * | 2011-01-10 | 2017-10-31 | Qualcomm Incorporated | Adaptive selection of region size for identification of samples in a transition zone for overlapped block motion compensation |
JP5850214B2 (ja) * | 2011-01-11 | 2016-02-03 | ソニー株式会社 | 画像処理装置および方法、プログラム、並びに記録媒体 |
JP5781313B2 (ja) * | 2011-01-12 | 2015-09-16 | 株式会社Nttドコモ | 画像予測符号化方法、画像予測符号化装置、画像予測符号化プログラム、画像予測復号方法、画像予測復号装置及び画像予測復号プログラム |
AU2015202844B2 (en) * | 2011-01-12 | 2016-03-17 | Ntt Docomo, Inc. | Image predict coding method, image predict coding device, image predict coding program, image predict decoding method, image predict decoding device, and image predict decoding program |
US9210442B2 (en) | 2011-01-12 | 2015-12-08 | Google Technology Holdings LLC | Efficient transform unit representation |
US8811759B2 (en) * | 2011-01-13 | 2014-08-19 | Sony Corporation | System and method for effectively performing an intra prediction procedure |
US10080016B2 (en) * | 2011-01-14 | 2018-09-18 | Sony Corporation | Codeword space reduction for intra chroma mode signaling for HEVC |
US9232227B2 (en) | 2011-01-14 | 2016-01-05 | Sony Corporation | Codeword space reduction for intra chroma mode signaling for HEVC |
CN102595129B (zh) * | 2011-01-14 | 2016-01-13 | 索尼公司 | 用于hevc的帧内色度模式信令的码字分配 |
US9497466B2 (en) * | 2011-01-17 | 2016-11-15 | Mediatek Inc. | Buffering apparatus for buffering multi-partition video/image bitstream and related method thereof |
US8990435B2 (en) | 2011-01-17 | 2015-03-24 | Mediatek Inc. | Method and apparatus for accessing data of multi-tile encoded picture stored in buffering apparatus |
US9380319B2 (en) * | 2011-02-04 | 2016-06-28 | Google Technology Holdings LLC | Implicit transform unit representation |
US8442338B2 (en) * | 2011-02-28 | 2013-05-14 | Sony Corporation | Visually optimized quantization |
FR2972588A1 (fr) | 2011-03-07 | 2012-09-14 | France Telecom | Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants |
US10397577B2 (en) | 2011-03-08 | 2019-08-27 | Velos Media, Llc | Inverse scan order for significance map coding of transform coefficients in video coding |
US9106913B2 (en) | 2011-03-08 | 2015-08-11 | Qualcomm Incorporated | Coding of transform coefficients for video coding |
CN102685503B (zh) | 2011-03-10 | 2014-06-25 | 华为技术有限公司 | 变换系数的编码方法、变换系数的解码方法,和装置 |
WO2012138032A1 (ko) * | 2011-04-07 | 2012-10-11 | 엘지전자 주식회사 | 영상 정보 부호화 방법 및 복호화 방법 |
CN102238387B (zh) * | 2011-05-25 | 2017-07-18 | 深圳市云宙多媒体技术有限公司 | 一种视频熵编码、熵解码方法、装置 |
KR101953522B1 (ko) * | 2011-06-17 | 2019-02-28 | 가부시키가이샤 제이브이씨 켄우드 | 화상 부호화 장치, 화상 부호화 방법 및 화상 부호화 프로그램, 및 화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램 |
CN102843560B (zh) * | 2011-06-21 | 2015-01-21 | 华为技术有限公司 | 图像变换处理方法、设备和系统 |
FR2977111A1 (fr) | 2011-06-24 | 2012-12-28 | France Telecom | Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants |
US9167253B2 (en) | 2011-06-28 | 2015-10-20 | Qualcomm Incorporated | Derivation of the position in scan order of the last significant transform coefficient in video coding |
EP2727355A1 (en) * | 2011-06-29 | 2014-05-07 | Motorola Mobility LLC | Methods and system for using a scan coding pattern during intra coding |
US9445093B2 (en) * | 2011-06-29 | 2016-09-13 | Qualcomm Incorporated | Multiple zone scanning order for video coding |
US9516316B2 (en) | 2011-06-29 | 2016-12-06 | Qualcomm Incorporated | VLC coefficient coding for large chroma block |
US8929455B2 (en) * | 2011-07-01 | 2015-01-06 | Mitsubishi Electric Research Laboratories, Inc. | Method for selecting transform types from mapping table for prediction modes |
US9392301B2 (en) | 2011-07-01 | 2016-07-12 | Qualcomm Incorporated | Context adaptive entropy coding for non-square blocks in video coding |
US9338456B2 (en) | 2011-07-11 | 2016-05-10 | Qualcomm Incorporated | Coding syntax elements using VLC codewords |
US9756360B2 (en) | 2011-07-19 | 2017-09-05 | Qualcomm Incorporated | Coefficient scanning in video coding |
US9699456B2 (en) * | 2011-07-20 | 2017-07-04 | Qualcomm Incorporated | Buffering prediction data in video coding |
CN102447898B (zh) * | 2011-08-26 | 2013-09-25 | 西安电子科技大学 | 用fpga实现klt变换的方法 |
KR101492105B1 (ko) * | 2011-08-29 | 2015-02-11 | 주식회사 아이벡스피티홀딩스 | Amvp 모드에서 영상 부호화 방법 |
GB2494468B (en) | 2011-09-12 | 2014-01-15 | Canon Kk | Method and device for encoding or decoding information representing prediction modes |
WO2013040287A1 (en) * | 2011-09-15 | 2013-03-21 | Vid Scale, Inc. | Systems and methods for spatial prediction |
KR101718954B1 (ko) * | 2011-10-17 | 2017-03-22 | 주식회사 케이티 | 영상 부호화/복호화 방법 및 그 장치 |
CN108063943B (zh) | 2011-10-17 | 2021-11-02 | 株式会社Kt | 用解码装置对待解码的具有当前块的视频信号解码的方法 |
EP3675497B1 (en) * | 2011-10-17 | 2021-12-29 | Kabushiki Kaisha Toshiba | Encoding method and decoding method |
GB2561487B (en) | 2011-10-18 | 2019-01-02 | Kt Corp | Method for encoding image, method for decoding image, image encoder, and image decoder |
KR101542586B1 (ko) * | 2011-10-19 | 2015-08-06 | 주식회사 케이티 | 영상 부호화/복호화 방법 및 그 장치 |
AU2015201781B2 (en) * | 2011-10-31 | 2017-01-19 | Samsung Electronics Co., Ltd. | Method and apparatus for determining a context model for transform coefficient level entropy encoding and decoding |
EP2740270A4 (en) | 2011-10-31 | 2015-04-29 | Mediatek Inc | APPARATUS AND METHOD FOR BUILDING REFERENCED CONTEXT TABLES TO PERFORM AN ENTROPTIC DECODING OF A MULTI-TILE ENCODED IMAGE AND CORRESPONDING ENTROPY DECODER |
PL3399760T3 (pl) | 2011-10-31 | 2021-07-19 | Samsung Electronics Co., Ltd. | Sposób i urządzenie do określania modelu kontekstu do entropijnego kodowania poziomu współczynnika przekształcenia |
KR20130049522A (ko) * | 2011-11-04 | 2013-05-14 | 오수미 | 인트라 예측 블록 생성 방법 |
KR20130049523A (ko) * | 2011-11-04 | 2013-05-14 | 오수미 | 인트라 예측 블록 생성 장치 |
FR2982447A1 (fr) * | 2011-11-07 | 2013-05-10 | France Telecom | Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants |
JP2013102297A (ja) | 2011-11-07 | 2013-05-23 | Canon Inc | 画像符号化方法、画像符号化装置及びプログラム、画像復号方法、画像復号装置及びプログラム |
KR20130050405A (ko) * | 2011-11-07 | 2013-05-16 | 오수미 | 인터 모드에서의 시간 후보자 결정방법 |
JP5871628B2 (ja) * | 2011-11-07 | 2016-03-01 | キヤノン株式会社 | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
TWI580264B (zh) * | 2011-11-10 | 2017-04-21 | Sony Corp | Image processing apparatus and method |
JP5899447B2 (ja) * | 2011-11-21 | 2016-04-06 | パナソニックIpマネジメント株式会社 | 画像処理装置および画像処理方法 |
US8660374B1 (en) | 2011-12-23 | 2014-02-25 | Massachusetts Institute Of Technology | Selecting transform paths for compressing visual data |
CN103220506B (zh) | 2012-01-19 | 2015-11-25 | 华为技术有限公司 | 一种编解码方法和设备 |
EP4391545A3 (en) | 2012-01-20 | 2024-10-02 | GE Video Compression, LLC | Transform coefficient coding |
US9451277B2 (en) * | 2012-02-08 | 2016-09-20 | Qualcomm Incorporated | Restriction of prediction units in B slices to uni-directional inter prediction |
US9363510B2 (en) * | 2012-03-02 | 2016-06-07 | Qualcomm Incorporated | Scan-based sliding window in context derivation for transform coefficient coding |
US11039138B1 (en) | 2012-03-08 | 2021-06-15 | Google Llc | Adaptive coding of prediction modes using probability distributions |
TW201401891A (zh) | 2012-03-26 | 2014-01-01 | Jvc Kenwood Corp | 影像編碼裝置、影像編碼方法、影像編碼程式、送訊裝置、送訊方法、及送訊程式、以及影像解碼裝置、影像解碼方法、影像解碼程式、收訊裝置、收訊方法、及收訊程式 |
WO2013157791A1 (ko) * | 2012-04-15 | 2013-10-24 | 삼성전자 주식회사 | 인터 예측의 참조영상을 결정하는 방법과 그 장치 |
GB2501535A (en) * | 2012-04-26 | 2013-10-30 | Sony Corp | Chrominance Processing in High Efficiency Video Codecs |
US20130301713A1 (en) * | 2012-05-14 | 2013-11-14 | Qualcomm Incorporated | Systems and methods for intra prediction video coding |
CN108712652A (zh) | 2012-06-29 | 2018-10-26 | 韩国电子通信研究院 | 视频编码方法和计算机可读介质 |
JP5885604B2 (ja) * | 2012-07-06 | 2016-03-15 | 株式会社Nttドコモ | 動画像予測符号化装置、動画像予測符号化方法、動画像予測符号化プログラム、動画像予測復号装置、動画像予測復号方法及び動画像予測復号プログラム |
US9344742B2 (en) * | 2012-08-10 | 2016-05-17 | Google Inc. | Transform-domain intra prediction |
US9319684B2 (en) | 2012-08-21 | 2016-04-19 | Qualcomm Incorporated | Alternative transform in scalable video coding |
US9538175B2 (en) * | 2012-09-26 | 2017-01-03 | Qualcomm Incorporated | Context derivation for context-adaptive, multi-level significance coding |
US9219915B1 (en) | 2013-01-17 | 2015-12-22 | Google Inc. | Selection of transform size in video coding |
US9967559B1 (en) | 2013-02-11 | 2018-05-08 | Google Llc | Motion vector dependent spatial transformation in video coding |
US9544597B1 (en) * | 2013-02-11 | 2017-01-10 | Google Inc. | Hybrid transform in video encoding and decoding |
BR112015025151B1 (pt) * | 2013-04-09 | 2022-11-29 | Siemens Aktiengesellschaft | Método de codificação, método de decodificação, método de codificação e decodificação, aparelho para codificação, aparelho para decodificação e codec para codificar e decodificar uma sequência de imagens digitais |
JP5537695B2 (ja) * | 2013-04-10 | 2014-07-02 | 株式会社東芝 | 画像復号化装置、方法およびプログラム |
JP5535361B2 (ja) * | 2013-04-10 | 2014-07-02 | 株式会社東芝 | 画像符号化装置、方法およびプログラム |
US9674530B1 (en) | 2013-04-30 | 2017-06-06 | Google Inc. | Hybrid transforms in video coding |
US9967594B2 (en) * | 2013-06-28 | 2018-05-08 | Mozilla Corporation | Probability modeling of intra prediction modes |
AU2013395426B2 (en) | 2013-07-24 | 2017-11-30 | Microsoft Technology Licensing, Llc | Scanning orders for non-transform coding |
CN103402094A (zh) * | 2013-08-05 | 2013-11-20 | 深圳市云宙多媒体技术有限公司 | 一种变换域色度帧内预测编解码方法及系统 |
CN103391443A (zh) * | 2013-08-05 | 2013-11-13 | 深圳市云宙多媒体技术有限公司 | 一种大尺寸块的亮度变换域帧内预测编解码方法及系统 |
JP2015115614A (ja) * | 2013-12-06 | 2015-06-22 | 日本電信電話株式会社 | 変換処理方法、逆変換処理方法、変換処理装置、逆変換処理装置、変換処理プログラム及び逆変換処理プログラム |
US10362336B2 (en) | 2014-03-25 | 2019-07-23 | Qualcomm Incorporated | Palette predictor signaling with run length code for video coding |
JP5622954B2 (ja) * | 2014-04-17 | 2014-11-12 | 株式会社東芝 | 画像復号化装置、方法およびプログラム |
CN103974076B (zh) * | 2014-05-19 | 2018-01-12 | 华为技术有限公司 | 图像编解码方法和设备、系统 |
JP5925855B2 (ja) * | 2014-09-17 | 2016-05-25 | 株式会社東芝 | 画像復号化装置、方法およびプログラム、第1のプログラムおよび第2のプログラム、サーバシステムならびにダウンロード制御方法 |
US9565451B1 (en) | 2014-10-31 | 2017-02-07 | Google Inc. | Prediction dependent transform coding |
JP5775959B2 (ja) * | 2014-11-07 | 2015-09-09 | 株式会社Nttドコモ | 画像予測符号化方法、画像予測符号化装置、画像予測符号化プログラム、画像予測復号方法、画像予測復号装置及び画像予測復号プログラム |
US10306229B2 (en) | 2015-01-26 | 2019-05-28 | Qualcomm Incorporated | Enhanced multiple transforms for prediction residual |
KR20170118728A (ko) * | 2015-02-17 | 2017-10-25 | 엘지전자 주식회사 | 적응적 스캔 오더를 이용하여 비디오 신호를 인코딩, 디코딩하는 방법 및 장치 |
JP6042478B2 (ja) * | 2015-04-01 | 2016-12-14 | 株式会社東芝 | 画像復号化装置 |
WO2016167538A1 (ko) * | 2015-04-12 | 2016-10-20 | 엘지전자(주) | 비디오 신호의 인코딩, 디코딩 방법 및 그 장치 |
JP6038243B2 (ja) * | 2015-07-15 | 2016-12-07 | 株式会社Nttドコモ | 画像予測復号方法及び画像予測復号装置 |
US9769499B2 (en) | 2015-08-11 | 2017-09-19 | Google Inc. | Super-transform video coding |
US9699461B2 (en) * | 2015-08-14 | 2017-07-04 | Blackberry Limited | Scaling in perceptual image and video coding |
US10277905B2 (en) | 2015-09-14 | 2019-04-30 | Google Llc | Transform selection for non-baseband signal coding |
US10491922B2 (en) | 2015-09-29 | 2019-11-26 | Qualcomm Incorporated | Non-separable secondary transform for video coding |
US9807423B1 (en) | 2015-11-24 | 2017-10-31 | Google Inc. | Hybrid transform scheme for video coding |
CN108605130B (zh) * | 2015-11-27 | 2021-05-11 | 联发科技股份有限公司 | 一种用于对与区块相关的符号进行熵编解码的方法和装置 |
CN111526361B (zh) * | 2016-02-06 | 2022-05-13 | 华为技术有限公司 | 图像编解码方法及装置 |
KR102210230B1 (ko) | 2016-02-12 | 2021-01-29 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 스캔 순서 선택을 위한 방법 및 장치 |
RU2706228C1 (ru) | 2016-02-12 | 2019-11-15 | Хуавей Текнолоджиз Ко., Лтд. | Способ и устройство выбора порядка сканирования |
US10623774B2 (en) | 2016-03-22 | 2020-04-14 | Qualcomm Incorporated | Constrained block-level optimization and signaling for video coding tools |
US10708164B2 (en) * | 2016-05-03 | 2020-07-07 | Qualcomm Incorporated | Binarizing secondary transform index |
KR102331933B1 (ko) | 2016-05-12 | 2021-11-29 | 엘지전자 주식회사 | 계수 유도 복원을 이용하여 비디오 신호를 처리하는 방법 및 장치 |
WO2017195917A1 (ko) * | 2016-05-12 | 2017-11-16 | 엘지전자 주식회사 | 비디오 코딩 시스템에서 인트라 예측 방법 및 장치 |
RU2020129092A (ru) * | 2016-05-13 | 2020-10-05 | Сони Корпорейшн | Устройство и способ обработки изображения |
WO2018012830A1 (ko) * | 2016-07-13 | 2018-01-18 | 한국전자통신연구원 | 영상 부호화/복호화 방법 및 장치 |
WO2018026028A1 (ko) * | 2016-08-02 | 2018-02-08 | 엘지전자(주) | 서브 계수 그룹을 이용하여 레지듀얼 신호를 인코딩, 디코딩하는 방법 및 장치 |
JP6310034B2 (ja) * | 2016-10-20 | 2018-04-11 | 株式会社東芝 | 復号装置、復号方法および復号プログラム |
JP6310992B2 (ja) * | 2016-11-01 | 2018-04-11 | 株式会社Nttドコモ | 画像予測復号方法及び画像予測復号装置 |
CN106507111B (zh) * | 2016-11-17 | 2019-11-15 | 上海兆芯集成电路有限公司 | 使用残差补偿的视频编码方法以及使用该方法的装置 |
US10694202B2 (en) * | 2016-12-01 | 2020-06-23 | Qualcomm Incorporated | Indication of bilateral filter usage in video coding |
KR102424411B1 (ko) * | 2017-04-13 | 2022-07-25 | 엘지전자 주식회사 | 영상의 부호화/복호화 방법 및 이를 위한 장치 |
CN108933941A (zh) * | 2017-05-26 | 2018-12-04 | 富士通株式会社 | 图像编码方法和装置以及图像解码方法和装置 |
US10356411B2 (en) | 2017-05-30 | 2019-07-16 | Google Llc | Adaptation of scan order entropy coding |
US10326994B2 (en) * | 2017-08-15 | 2019-06-18 | Google Llc | Modifying a scan order to limit scan distance |
KR102535361B1 (ko) | 2017-10-19 | 2023-05-24 | 삼성전자주식회사 | 머신 러닝을 사용하는 영상 부호화기 및 그것의 데이터 처리 방법 |
EP3484148A1 (en) | 2017-11-09 | 2019-05-15 | Thomson Licensing | Automated scanning order for sub-divided blocks |
MX2020005236A (es) * | 2017-11-24 | 2020-08-24 | Sony Corp | Aparato y metodo de procesamiento de imagenes. |
US10382758B2 (en) * | 2017-12-15 | 2019-08-13 | Google Llc | Transform block-level scan order selection for video coding |
CN115834876A (zh) | 2017-12-21 | 2023-03-21 | Lg电子株式会社 | 解码和编码设备、存储比特流的介质和数据发送设备 |
CN108259897B (zh) * | 2018-01-23 | 2021-08-27 | 北京易智能科技有限公司 | 一种基于深度学习的帧内编码优化方法 |
TWI749297B (zh) | 2018-02-28 | 2021-12-11 | 弗勞恩霍夫爾協會 | 合成式預測及限制性合併技術 |
JP6486528B2 (ja) * | 2018-03-19 | 2019-03-20 | 株式会社Nttドコモ | 画像予測復号方法及び画像予測復号装置 |
WO2019190284A1 (ko) * | 2018-03-29 | 2019-10-03 | 엘지전자 주식회사 | 비디오 압축을 위한 변환 커널의 저복잡도 연산을 수행하는 방법 및 장치 |
CN118748715A (zh) | 2018-06-21 | 2024-10-08 | 株式会社Kt | 对图像进行解码或编码的方法和传送压缩视频数据的装置 |
DK3815377T3 (da) | 2018-07-16 | 2023-04-03 | Huawei Tech Co Ltd | Videokoder, videoafkoder og tilsvarende kodnings- og afkodningsfremgangsmåder |
PL3723373T3 (pl) * | 2018-09-02 | 2023-11-06 | Lg Electronics Inc. | Sposób dekodowania sygnału obrazu, sposób kodowania sygnału obrazu i nośnik danych |
CN115037934B (zh) * | 2018-09-02 | 2024-04-26 | Lg电子株式会社 | 用于图像信号编码和解码的方法及计算机可读记录介质 |
CN109345177B (zh) * | 2018-10-20 | 2022-03-18 | 广东三胜电器股份有限公司 | 一种基于云视频信息处理的冷链食品物流可视化方法 |
WO2020087324A1 (zh) * | 2018-10-31 | 2020-05-07 | 富士通株式会社 | 图像编码方法、装置以及电子设备 |
US11012711B2 (en) | 2018-11-29 | 2021-05-18 | Tencent America LLC | Adaptive most probable modes for multiple reference line intra prediction |
US11102513B2 (en) * | 2018-12-06 | 2021-08-24 | Tencent America LLC | One-level transform split and adaptive sub-block transform |
US11323748B2 (en) | 2018-12-19 | 2022-05-03 | Qualcomm Incorporated | Tree-based transform unit (TU) partition for video coding |
KR20200084300A (ko) | 2019-01-02 | 2020-07-10 | 디지털인사이트 주식회사 | 영상 복호화 방법, 영상 부호화 방법, 영상 복호화 장치, 영상 부호화 장치 및 컴퓨터 판독 가능한 기록 매체 |
CN118474371A (zh) | 2019-02-19 | 2024-08-09 | Lg 电子株式会社 | 在视频编译系统中使用残差信息的视频解码方法及其设备 |
US11122297B2 (en) | 2019-05-03 | 2021-09-14 | Google Llc | Using border-aligned block functions for image compression |
CN110267041B (zh) * | 2019-06-28 | 2021-11-09 | Oppo广东移动通信有限公司 | 图像编码方法、装置、电子设备和计算机可读存储介质 |
US11800110B2 (en) * | 2021-04-20 | 2023-10-24 | Tencent America LLC | Adaptive scanning with multiple transform selection |
US11838498B2 (en) * | 2021-06-28 | 2023-12-05 | Tencent America LLC | Harmonized design for intra bi-prediction and multiple reference line selection |
CN113873252B (zh) * | 2021-09-27 | 2023-12-19 | 上海哔哩哔哩科技有限公司 | 图像处理方法及装置、电子设备和存储介质 |
CN116600123B (zh) * | 2023-07-17 | 2023-11-07 | 北京中星微人工智能芯片技术有限公司 | 视频编码方法及装置、视频解码方法及装置、电子设备 |
Family Cites Families (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BE1000643A5 (fr) * | 1987-06-05 | 1989-02-28 | Belge Etat | Procede de codage de signaux d'image. |
JPH01155678A (ja) | 1987-12-11 | 1989-06-19 | Matsushita Electric Ind Co Ltd | 半導体発光装置 |
US5136371A (en) * | 1990-03-15 | 1992-08-04 | Thomson Consumer Electronics, Inc. | Digital image coding using random scanning |
EP0586225B1 (en) | 1992-08-31 | 1998-12-23 | Victor Company Of Japan, Ltd. | Orthogonal transform coding apparatus and decoding apparatus |
TW224553B (en) | 1993-03-01 | 1994-06-01 | Sony Co Ltd | Method and apparatus for inverse discrete consine transform and coding/decoding of moving picture |
TW297202B (ru) | 1993-10-13 | 1997-02-01 | Rca Thomson Licensing Corp | |
KR0183688B1 (ko) | 1994-01-12 | 1999-05-01 | 김광호 | 영상부호화방법 및 장치 |
KR0178198B1 (ko) | 1995-03-28 | 1999-05-01 | 배순훈 | 영상 신호 부호화 장치 |
US5721822A (en) | 1995-07-21 | 1998-02-24 | Intel Corporation | Run-length encoding/decoding video signals using scan patterns explicitly encoded into bitstreams |
US5790706A (en) | 1996-07-03 | 1998-08-04 | Motorola, Inc. | Method and apparatus for scanning of transform coefficients |
JP3208101B2 (ja) * | 1996-11-07 | 2001-09-10 | 松下電器産業株式会社 | 画像符号化方法および画像符号化装置並びに画像符号化プログラムを記録した記録媒体 |
KR100425615B1 (ko) * | 1996-11-07 | 2004-04-01 | 마쯔시다덴기산교 가부시키가이샤 | 부호화 방법 및 장치와 복호화 방법 및 장치 |
JP2002232887A (ja) | 1996-11-07 | 2002-08-16 | Matsushita Electric Ind Co Ltd | 画像符号化方法および画像符号化装置並びに画像復号化方法および画像復号化装置 |
JPH10271505A (ja) | 1997-03-25 | 1998-10-09 | Oki Electric Ind Co Ltd | 信号処理装置、符号化回路および復号回路 |
US5995055A (en) * | 1997-06-30 | 1999-11-30 | Raytheon Company | Planar antenna radiating structure having quasi-scan, frequency-independent driving-point impedance |
EP0895424B1 (en) | 1997-07-31 | 2007-10-31 | Victor Company of Japan, Ltd. | digital video signal inter-block predictive encoding/decoding apparatus and method providing high efficiency of encoding. |
JP2900998B2 (ja) * | 1997-07-31 | 1999-06-02 | 日本ビクター株式会社 | ブロック間内挿予測符号化装置、復号化装置、符号化方法及び復号化方法 |
JP4226172B2 (ja) | 1998-11-24 | 2009-02-18 | 株式会社ハイニックスセミコンダクター | 適応的変換方法を用いる映像圧縮符号化装置および復号化装置ならびにその方法 |
CA2388095A1 (en) | 1999-10-22 | 2001-05-03 | Activesky, Inc. | An object oriented video system |
US6724818B1 (en) | 2000-07-17 | 2004-04-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Alternative block orders for better prediction |
CN1142683C (zh) | 2000-10-13 | 2004-03-17 | 清华大学 | 无转置行列分离二维离散余弦正反变换电路及其方法 |
JP2002135126A (ja) | 2000-10-26 | 2002-05-10 | Seiko Epson Corp | 半導体装置及びこれを用いた電子機器 |
CN101448162B (zh) | 2001-12-17 | 2013-01-02 | 微软公司 | 处理视频图像的方法 |
KR100468844B1 (ko) | 2002-01-07 | 2005-01-29 | 삼성전자주식회사 | 정지영상 및 동영상을 부호화/복호화하기 위한변환계수들의 최적주사방법 |
JP4447197B2 (ja) * | 2002-01-07 | 2010-04-07 | 三菱電機株式会社 | 動画像符号化装置および動画像復号装置 |
BR0304545A (pt) * | 2002-01-14 | 2004-11-03 | Nokia Corp | Método de codificação das imagens em uma sequência de vìdeo digital para fornecer os dados de vìdeo codificados, codificador de vìdeo, método de decodificação dos dados indicativos de uma sequência de vìdeo digital, decodificador de vìdeo, e, sistema de decodificação de vìdeo |
JP4510465B2 (ja) | 2002-01-22 | 2010-07-21 | ノキア コーポレイション | イメージ/ビデオ符号器及び/又は復号器における変換係数の符号化 |
US6757576B2 (en) * | 2002-02-05 | 2004-06-29 | Gcc, Inc. | System and method for drawing and manufacturing bent pipes |
KR100508798B1 (ko) | 2002-04-09 | 2005-08-19 | 엘지전자 주식회사 | 쌍방향 예측 블록 예측 방법 |
US7170937B2 (en) * | 2002-05-01 | 2007-01-30 | Texas Instruments Incorporated | Complexity-scalable intra-frame prediction technique |
EP2860979A1 (en) * | 2002-05-28 | 2015-04-15 | Sharp Kabushiki Kaisha | Method and systems for image intra-prediction mode estimation, communication, and organization |
RU2314656C2 (ru) | 2002-06-11 | 2008-01-10 | Нокиа Корпорейшн | Внутреннее кодирование, основанное на пространственном прогнозировании |
AU2003281133A1 (en) * | 2002-07-15 | 2004-02-02 | Hitachi, Ltd. | Moving picture encoding method and decoding method |
US6795584B2 (en) | 2002-10-03 | 2004-09-21 | Nokia Corporation | Context-based adaptive variable length coding for adaptive block transforms |
US7463782B2 (en) | 2002-11-05 | 2008-12-09 | Canon Kabushiki Kaisha | Data encoding with an amplitude model and path between the data and corresponding decoding |
FI116710B (fi) | 2002-12-20 | 2006-01-31 | Oplayo Oy | Kuvien koodausmenetelmä ja -järjestely |
KR100750110B1 (ko) | 2003-04-22 | 2007-08-17 | 삼성전자주식회사 | 4×4인트라 휘도 예측 모드 결정방법 및 장치 |
JP4617644B2 (ja) * | 2003-07-18 | 2011-01-26 | ソニー株式会社 | 符号化装置及び方法 |
JP3756897B2 (ja) | 2003-07-30 | 2006-03-15 | 株式会社東芝 | 動画像符号化装置及び動画像符号化方法 |
US7289562B2 (en) | 2003-08-01 | 2007-10-30 | Polycom, Inc. | Adaptive filter to improve H-264 video quality |
US20050036549A1 (en) | 2003-08-12 | 2005-02-17 | Yong He | Method and apparatus for selection of scanning mode in dual pass encoding |
BRPI0413988A (pt) * | 2003-08-26 | 2006-11-07 | Thomson Licensing | método e aparelho para decodificar blocos intra-inter codificador hìbridos |
US7688894B2 (en) * | 2003-09-07 | 2010-03-30 | Microsoft Corporation | Scan patterns for interlaced video content |
JP4127818B2 (ja) | 2003-12-24 | 2008-07-30 | 株式会社東芝 | 動画像符号化方法及びその装置 |
KR20050068207A (ko) * | 2003-12-29 | 2005-07-05 | 엘지.필립스 엘시디 주식회사 | 2-블록 레이저 마스크 및 이를 이용한 결정화방법 |
EP1558039A1 (en) * | 2004-01-21 | 2005-07-27 | Deutsche Thomson-Brandt Gmbh | Method and apparatus for generating/evaluating prediction information in picture signal encoding/decoding |
JP4542447B2 (ja) * | 2005-02-18 | 2010-09-15 | 株式会社日立製作所 | 画像の符号化/復号化装置、符号化/復号化プログラム及び符号化/復号化方法 |
US8731054B2 (en) | 2004-05-04 | 2014-05-20 | Qualcomm Incorporated | Method and apparatus for weighted prediction in predictive frames |
JP2006005659A (ja) * | 2004-06-17 | 2006-01-05 | Canon Inc | 画像符号化装置及びその方法 |
US8369402B2 (en) | 2004-06-17 | 2013-02-05 | Canon Kabushiki Kaisha | Apparatus and method for prediction modes selection based on image formation |
US8311119B2 (en) | 2004-12-31 | 2012-11-13 | Microsoft Corporation | Adaptive coefficient scan order |
US7706443B2 (en) | 2005-03-11 | 2010-04-27 | General Instrument Corporation | Method, article of manufacture, and apparatus for high quality, fast intra coding usable for creating digital video content |
TW200704202A (en) | 2005-04-12 | 2007-01-16 | Nokia Corp | Method and system for motion compensated fine granularity scalable video coding with drift control |
EP1768415A1 (en) | 2005-09-27 | 2007-03-28 | Matsushita Electric Industrial Co., Ltd. | Adaptive scan order of DCT coefficients and its signaling |
CN102176754B (zh) | 2005-07-22 | 2013-02-06 | 三菱电机株式会社 | 图像编码装置和方法、以及图像解码装置和方法 |
US7933337B2 (en) * | 2005-08-12 | 2011-04-26 | Microsoft Corporation | Prediction of transform coefficients for image compression |
JP2007053561A (ja) | 2005-08-17 | 2007-03-01 | Matsushita Electric Ind Co Ltd | 画像符号化装置および画像符号化方法 |
WO2007046644A1 (en) | 2005-10-21 | 2007-04-26 | Electronics And Telecommunications Research Institute | Apparatus and method for encoding and decoding moving picture using adaptive scanning |
EP1958453B1 (en) | 2005-11-30 | 2017-08-09 | Koninklijke Philips N.V. | Encoding method and apparatus applying coefficient reordering |
US7529484B2 (en) | 2005-12-14 | 2009-05-05 | Nec Laboratories America, Inc. | Triplexer transceiver using parallel signal detection |
CN1801940A (zh) | 2005-12-15 | 2006-07-12 | 清华大学 | 整型变换电路和整型变换方法 |
US8000539B2 (en) | 2005-12-21 | 2011-08-16 | Ntt Docomo, Inc. | Geometrical image representation and compression |
US20080008246A1 (en) * | 2006-07-05 | 2008-01-10 | Debargha Mukherjee | Optimizing video coding |
US8571104B2 (en) | 2007-06-15 | 2013-10-29 | Qualcomm, Incorporated | Adaptive coefficient scanning in video coding |
US8428133B2 (en) | 2007-06-15 | 2013-04-23 | Qualcomm Incorporated | Adaptive coding of video block prediction mode |
EP2422520A1 (en) | 2009-04-20 | 2012-02-29 | Dolby Laboratories Licensing Corporation | Adaptive interpolation filters for multi-layered video delivery |
US9641846B2 (en) | 2010-10-22 | 2017-05-02 | Qualcomm Incorporated | Adaptive scanning of transform coefficients for video coding |
-
2008
- 2008-06-04 US US12/133,227 patent/US8428133B2/en active Active
- 2008-06-04 US US12/133,257 patent/US8619853B2/en active Active
- 2008-06-04 US US12/133,277 patent/US8488668B2/en active Active
- 2008-06-12 KR KR1020107000963A patent/KR101107867B1/ko active IP Right Grant
- 2008-06-12 PL PL08770910T patent/PL2165543T3/pl unknown
- 2008-06-12 CN CN2008800198049A patent/CN101682770B/zh active Active
- 2008-06-12 DK DK08770910.1T patent/DK2165543T3/en active
- 2008-06-12 EP EP08770910.1A patent/EP2165543B1/en active Active
- 2008-06-12 JP JP2010512367A patent/JP5254324B2/ja active Active
- 2008-06-12 WO PCT/US2008/066797 patent/WO2008157269A2/en active Application Filing
- 2008-06-12 ES ES08770910T patent/ES2530796T3/es active Active
- 2008-06-12 RU RU2010101115/09A patent/RU2434360C2/ru active
- 2008-06-12 CA CA2687260A patent/CA2687260C/en active Active
- 2008-06-12 RU RU2010101116/07A patent/RU2447612C2/ru active
- 2008-06-12 BR BRPI0813351-4A patent/BRPI0813351B1/pt active IP Right Grant
- 2008-06-12 PT PT87709101T patent/PT2165543E/pt unknown
- 2008-06-13 WO PCT/US2008/067020 patent/WO2008157431A2/en active Application Filing
- 2008-06-13 TW TW097122361A patent/TW200913727A/zh unknown
- 2008-06-13 JP JP2010512386A patent/JP2010530188A/ja active Pending
- 2008-06-13 CN CN2008800196594A patent/CN101743751B/zh active Active
- 2008-06-13 EP EP08771108A patent/EP2168381A2/en not_active Ceased
- 2008-06-13 CN CN200880103221A patent/CN101803386A/zh active Pending
- 2008-06-13 WO PCT/US2008/066932 patent/WO2008157360A2/en active Application Filing
- 2008-06-13 TW TW097122360A patent/TW200915880A/zh unknown
- 2008-06-13 BR BRPI0813349A patent/BRPI0813349A2/pt not_active IP Right Cessation
- 2008-06-13 RU RU2010101085/07A patent/RU2446615C2/ru active
- 2008-06-13 CA CA2687263A patent/CA2687263C/en active Active
- 2008-06-13 KR KR1020107000968A patent/KR101161065B1/ko active IP Right Grant
- 2008-06-13 JP JP2010512409A patent/JP2010530190A/ja active Pending
- 2008-06-13 KR KR1020107000966A patent/KR101091479B1/ko active IP Right Grant
- 2008-06-13 BR BRPI0813345-0A patent/BRPI0813345B1/pt active IP Right Grant
- 2008-06-13 RU RU2010101053/07A patent/RU2463729C2/ru active
- 2008-06-13 EP EP08771030A patent/EP2172026A2/en not_active Withdrawn
- 2008-06-13 CA CA002687725A patent/CA2687725A1/en not_active Abandoned
- 2008-06-13 TW TW097122363A patent/TWI401959B/zh active
-
2012
- 2012-09-14 US US13/617,268 patent/US8520732B2/en active Active
-
2013
- 2013-02-26 JP JP2013035668A patent/JP5575940B2/ja active Active
- 2013-12-27 US US14/142,510 patent/US9578331B2/en active Active
Non-Patent Citations (1)
Title |
---|
РИЧАРДСОН ЯН. Видеокодирование H.264 и MPEG-4 стандарты нового поколения. - М.: Техносфера, 2005, перевод издания 2003, с.145-183, 233-240. JONGHO KIM еt al. Complexity Reduction Algorithm for Intra Mode Selection in H.264/AVC Video Coding, Advanced Concepts for Intelligent Vision Systems, Lecture Notes in Computer Science, Springer Berlin/Heidelberg, Volume 4179/2006, 4 October 2006. * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2609064C9 (ru) * | 2011-12-21 | 2018-09-21 | Сан Пэтент Траст | Способ кодирования изображений, способ декодирования изображений, устройство кодирования изображений и устройство декодирования изображений |
RU2609064C2 (ru) * | 2011-12-21 | 2017-01-30 | Сан Пэтент Траст | Способ кодирования изображений, способ декодирования изображений, устройство кодирования изображений и устройство декодирования изображений |
RU2675150C1 (ru) * | 2012-01-19 | 2018-12-17 | Кэнон Кабусики Кайся | Способ, устройство и система для кодирования и декодирования карты значимости для остаточных коэффициентов единицы преобразования |
US9769484B2 (en) | 2012-01-19 | 2017-09-19 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit |
RU2644127C1 (ru) * | 2012-01-19 | 2018-02-07 | Кэнон Кабусики Кайся | Способ, устройство и система для кодирования и декодирования карты значимости для остаточных коэффициентов единицы преобразования |
RU2595936C2 (ru) * | 2012-01-19 | 2016-08-27 | Кэнон Кабусики Кайся | Способ, устройство и система для кодирования и декодирования карты значимости для остаточных коэффициентов единицы преобразования |
RU2696340C1 (ru) * | 2012-01-19 | 2019-08-01 | Кэнон Кабусики Кайся | Способ, устройство и система для кодирования и декодирования карты значимости для остаточных коэффициентов единицы преобразования |
RU2697621C1 (ru) * | 2012-01-19 | 2019-08-15 | Кэнон Кабусики Кайся | Способ, устройство и система для кодирования и декодирования карты значимости для остаточных коэффициентов единицы преобразования |
RU2697615C1 (ru) * | 2012-01-19 | 2019-08-15 | Кэнон Кабусики Кайся | Способ, устройство и система для кодирования и декодирования карты значимости для остаточных коэффициентов единицы преобразования |
RU2714108C1 (ru) * | 2012-01-19 | 2020-02-11 | Кэнон Кабусики Кайся | Способ, устройство и система для кодирования и декодирования карты значимости для остаточных коэффициентов единицы преобразования |
US9736495B2 (en) | 2012-01-20 | 2017-08-15 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit |
RU2793902C1 (ru) * | 2019-06-19 | 2023-04-07 | ЭлДжи ЭЛЕКТРОНИКС ИНК. | Способ декодирования изображений для выполнения взаимного прогнозирования, когда режим прогнозирования для текущего блока в конечном счете не может выбираться, и устройство для этого |
US11632568B2 (en) | 2019-06-19 | 2023-04-18 | Lg Electronics Inc. | Image decoding method for performing inter-prediction when prediction mode for current block ultimately cannot be selected, and device for same |
RU2820148C2 (ru) * | 2019-06-19 | 2024-05-30 | ЭлДжи ЭЛЕКТРОНИКС ИНК. | Оборудование кодирования и декодирования изображений и оборудование для передачи данных для изображения |
US12096022B2 (en) | 2019-06-19 | 2024-09-17 | Lg Electronics Inc. | Image decoding method for performing inter-prediction when prediction mode for current block ultimately cannot be selected, and device for same |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2434360C2 (ru) | Адаптивное кодирование режима прогнозирования видеоблоков | |
EP2165542B1 (en) | Adaptive coefficient scanning in video coding | |
WO2013019342A1 (en) | Color/gray patch prevention for video coding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PC41 | Official registration of the transfer of exclusive right |
Effective date: 20171212 |
|
PC41 | Official registration of the transfer of exclusive right |
Effective date: 20211203 |