RU2434360C2 - Адаптивное кодирование режима прогнозирования видеоблоков - Google Patents

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

Info

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
Application number
RU2010101115/09A
Other languages
English (en)
Other versions
RU2010101115A (ru
Inventor
Янь Е (US)
Янь Е
Марта КАРЧЕВИЧ (US)
Марта КАРЧЕВИЧ
Original Assignee
Квэлкомм Инкорпорейтед
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед
Publication of RU2010101115A publication Critical patent/RU2010101115A/ru
Application granted granted Critical
Publication of RU2434360C2 publication Critical patent/RU2434360C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods 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/19Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods 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/196Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods 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/196Methods 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/197Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • 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=
Figure 00000001
,
то остаточный вектор x длины 16 записывается как:
X=
Figure 00000002
,
Вектор коэффициентов преобразования 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) и целочисленного преобразования для применения к остаточному блоку, когда выбранный режим прогнозирования демонстрирует ограниченную направленность; и
- выбирают направленное преобразование для применения к остаточному блоку, когда выбранный режим прогнозирования демонстрирует направленность.
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) и целочисленного преобразования для применения к остаточному блоку, когда выбранный режим прогнозирования демонстрирует ограниченную направленность; и
- выбирать направленное преобразование для применения к остаточному блоку, когда выбранный режим прогнозирования демонстрирует направленность.
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) и обратного целочисленного преобразования для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует ограниченную направленность; и
- выбирают обратное направленное преобразование для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует направленность.
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) и обратного целочисленного преобразования для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует ограниченную направленность; и
- выбирает обратное направленное преобразование для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует направленность.
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) и обратного целочисленного преобразования для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует ограниченную направленность; и
- выбирать обратное направленное преобразование для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует направленность.
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) и обратного целочисленного преобразования для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует ограниченную направленность; и
- выбирает обратное направленное преобразование для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования демонстрирует направленность.
80. Устройство по п.79, в котором средство преобразования выбирает одно из обратного DCT и обратного целочисленного преобразования для применения к остаточным коэффициентам преобразования видеоблока, когда идентифицированный режим прогнозирования является либо режимом однонаправленного DC-прогнозирования, либо режимом многонаправленного прогнозирования, который сочетает по меньшей мере два режима прогнозирования, которые указывают по существу в ортогональных направлениях.
81. Устройство по п.79, дополнительно содержащее средство для хранения множества обратных направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, который демонстрирует направленность, при этом средство преобразования выбирает один из множества обратных направленных преобразований, соответствующих идентифицированному режиму прогнозирования.
82. Устройство по п.78, дополнительно содержащее средство для хранения множества обратных направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, при этом каждое из множества обратных направленных преобразований содержит матрицу постолбцового преобразования размером N×N и матрицу построчного преобразования размером N×N, где N×N является размерностью видеоблока.
83. Устройство по п.78, дополнительно содержащее средство для хранения множества обратных направленных преобразований, каждое из которых соответствует одному из режимов прогнозирования, при этом каждое из множества обратных направленных преобразований содержит матрицу преобразования размером N2×N2, где N×N является размерностью видеоблока.
84. Устройство по п.75, в котором множество режимов прогнозирования включает в себя режимы однонаправленного прогнозирования и поднабор возможных режимов двунаправленного прогнозирования, причем поднабор режимов двунаправленного прогнозирования включает в себя по меньшей мере одну комбинацию, которая включает в себя два различных режима однонаправленного прогнозирования.
RU2010101115/09A 2007-06-15 2008-06-12 Адаптивное кодирование режима прогнозирования видеоблоков RU2434360C2 (ru)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Publication number Publication date
US20080310507A1 (en) 2008-12-18
US20140112387A1 (en) 2014-04-24
TW200913727A (en) 2009-03-16
WO2008157431A3 (en) 2009-02-19
KR20100029246A (ko) 2010-03-16
WO2008157431A8 (en) 2010-03-04
CA2687263C (en) 2015-10-20
US20080310512A1 (en) 2008-12-18
JP5575940B2 (ja) 2014-08-20
CN101682770A (zh) 2010-03-24
RU2010101115A (ru) 2011-07-20
JP5254324B2 (ja) 2013-08-07
BRPI0813345A2 (pt) 2015-08-11
WO2008157269A3 (en) 2009-03-19
DK2165543T3 (en) 2015-02-23
US9578331B2 (en) 2017-02-21
RU2010101116A (ru) 2011-07-20
US8488668B2 (en) 2013-07-16
WO2008157360A2 (en) 2008-12-24
CN101743751B (zh) 2013-05-01
CA2687263A1 (en) 2008-12-24
BRPI0813345B1 (pt) 2021-01-12
RU2463729C2 (ru) 2012-10-10
CA2687260C (en) 2013-08-27
US8619853B2 (en) 2013-12-31
TWI401959B (zh) 2013-07-11
US20080310504A1 (en) 2008-12-18
KR101091479B1 (ko) 2011-12-07
CA2687260A1 (en) 2008-12-24
WO2008157431A2 (en) 2008-12-24
CA2687725A1 (en) 2008-12-24
EP2168381A2 (en) 2010-03-31
JP2010530188A (ja) 2010-09-02
JP2010530190A (ja) 2010-09-02
WO2008157269A2 (en) 2008-12-24
RU2010101085A (ru) 2011-07-27
KR101161065B1 (ko) 2012-06-28
JP2010530184A (ja) 2010-09-02
BRPI0813351B1 (pt) 2020-09-15
KR20100029837A (ko) 2010-03-17
BRPI0813349A2 (pt) 2015-11-03
TW200915880A (en) 2009-04-01
US8520732B2 (en) 2013-08-27
RU2010101053A (ru) 2011-07-20
RU2447612C2 (ru) 2012-04-10
ES2530796T3 (es) 2015-03-05
KR20100029838A (ko) 2010-03-17
BRPI0813351A2 (pt) 2015-08-11
EP2172026A2 (en) 2010-04-07
CN101803386A (zh) 2010-08-11
TW200913723A (en) 2009-03-16
RU2446615C2 (ru) 2012-03-27
US20130044812A1 (en) 2013-02-21
EP2165543B1 (en) 2014-12-17
WO2008157360A3 (en) 2009-03-26
PT2165543E (pt) 2015-02-24
PL2165543T3 (pl) 2015-04-30
US8428133B2 (en) 2013-04-23
KR101107867B1 (ko) 2012-02-09
JP2013153463A (ja) 2013-08-08
CN101743751A (zh) 2010-06-16
CN101682770B (zh) 2012-07-04
EP2165543A2 (en) 2010-03-24

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