RU2463729C2 - Отделимые направленные преобразования - Google Patents

Отделимые направленные преобразования Download PDF

Info

Publication number
RU2463729C2
RU2463729C2 RU2010101053/07A RU2010101053A RU2463729C2 RU 2463729 C2 RU2463729 C2 RU 2463729C2 RU 2010101053/07 A RU2010101053/07 A RU 2010101053/07A RU 2010101053 A RU2010101053 A RU 2010101053A RU 2463729 C2 RU2463729 C2 RU 2463729C2
Authority
RU
Russia
Prior art keywords
video block
coefficients
transform
block
residual
Prior art date
Application number
RU2010101053/07A
Other languages
English (en)
Other versions
RU2010101053A (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 RU2010101053A publication Critical patent/RU2010101053A/ru
Application granted granted Critical
Publication of RU2463729C2 publication Critical patent/RU2463729C2/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/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/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/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

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

Description

Перекрестные ссылки на родственные заявки
Данная заявка испрашивает приоритет предварительной заявки США №60/944470, поданной 15 июня 2007 года, и предварительной патентной заявки США №60/979762, поданной 12 октября 2007 года, содержание которых целиком включено в настоящий документ по ссылке.
Область техники, к которой относится изобретение
Последующее описание относится к цифровому видеокодированию и, в частности, касается энтропийного кодирования коэффициентов видеоблоков.
Уровень техники
Услуги цифрового видео могут быть включены в самые различные устройства, в том числе цифровые телевизионные приемники, цифровые системы прямого вещания, устройства беспроводной связи, такие как карманные радиотелефоны, беспроводные вещательные системы, персональные цифровые помощники (PDA), настольные компьютеры или «лэптопы», цифровые камеры, цифровые записывающие устройства, видеоигровые устройства, видеоигровые приставки и т.п. Устройства цифрового видео реализуют технологии видеосжатия, такие как MPEG-2, MPEG-4 или H.264/MPEG-4, Part 10, Advanced Video Coding (AVC), для более эффективной передачи и приема цифровых видеоданных. Технологии сжатия видеоданных осуществляют пространственное и временное предсказание для уменьшения или устранения избыточности, присущей последовательностям видеоданных.
Сжатие видеоданных в общем случае включает в себя пространственное предсказание и/или временное предсказание. В частности, внутреннее кодирование базируется на пространственном предсказании, обеспечивающем уменьшение или устранение пространственной избыточности между видеоблоками в данном закодированном блоке, который может содержать видеокадр, серия последовательных макроблоков видеокадра или т.п. В отличие от этого внешнее кодирование базируется на временном предсказании, обеспечивающем уменьшение или устранение временной избыточности между видеоблоками последовательно закодированных блоков видеопоследовательности. При внутреннем кодировании видеокодер выполняет пространственное предсказание для сжатия данных на основе других данных в том же закодированном блоке. При внешнем кодировании видеокодер выполняет оценку движения и компенсацию движения для отслеживания перемещения соответствующих видеоблоков из двух или более соседних закодированных блоков.
После пространственного или временного предсказания создают остаточный блок путем вычитания видеоблока предсказания, созданного во время процесса предсказания, из исходного, кодируемого в данный момент видеоблока. Таким образом, остаточный блок указывает различие между предсказанным блоком и текущим кодируемым блоком. Видеокодер может использовать процессы преобразования, квантования и энтропийного кодирования для дополнительного уменьшения скорости передачи битов, связанной с передачей остаточного блока. Способы преобразования позволяют преобразовать набор пиксельных значений в коэффициенты преобразования, которые представляют энергию пиксельных значений в частотной области. Коэффициенты преобразования подвергают квантованию, которое в общем случае включает в себя процесс, ограничивающий количество бит, связанных с любым данным коэффициентом. Перед энтропийным кодированием видеокодер сканирует квантованный блок коэффициентов, преобразуя его в одномерный вектор коэффициентов. Видеокодер выполняет энтропийное кодирование вектора квантованных коэффициентов преобразования для дополнительного сжатия остаточных данных.
Видеодекодер может выполнять операции, обратные энтропийному кодированию, для извлечения указанных коэффициентов. В видеодекодере также может выполняться обратное сканирование для формирования двумерных блоков из полученных одномерных векторов коэффициентов. Затем видеодекодер выполняет обратное квантование и обратное преобразование коэффициентов для получения восстановленного остаточного блока. Далее видеодекодер декодирует видеоблок предсказания на основе информации о предсказании и информации о движении. Затем видеодекодер добавляет видеоблок предсказания к соответствующему остаточному блоку для создания восстановленного видеоблока и создания декодированной последовательности видеоданных.
Сущность изобретения
В изобретении описаны способы преобразования остаточных пиксельных значений (иногда называемых остаточными блоками) видеоблоков. В частности, поддерживается множество различных преобразований, которые избирательно применяют к остаточным блокам на основе режима предсказания видеоблоков. Направленные преобразования могут, например, быть специально подготовлены для каждого режима предсказания, чтобы обеспечить более эффективное уплотнение энергии для остаточных блоков данного режима предсказания. Согласно настоящему изобретению по меньшей мере часть множества направленных преобразований составляют отделимые направленные преобразования. Каждое из отделимых направленных преобразований может включать в себя матрицу преобразования строк и матрицу преобразования столбцов. Матрицы преобразования строк и столбцов могут иметь такую же размерность, как остаточный блок, для которого используется каждая из матриц преобразования. В случае блока размером 4 на 4 пикселя матрицы строк и столбцов имеют размерность 4×4. Использование отделимых направленных преобразований дает преимущество с точки зрения возможности упрощения вычислений и снижения требований к памяти, по сравнению с использованием неотделимых направленных преобразований.
Однако отделимые направленные преобразования могут не фиксировать направленность в остаточных блоках, также как при использовании неотделимых направленных преобразований. Таким образом, созданные блоки остаточных коэффициентов преобразования могут сохранять некоторую направленность. Раз так, то применение фиксированного порядка сканирования для сканирования двухмерного представления остаточных коэффициентов преобразования в одномерный вектор коэффициентов не сможет эффективно скомпоновать ненулевые коэффициенты в направлении начала вектора коэффициентов. Согласно другому аспекту данного изобретения может быть перестроен порядок сканирования на основе статистических данных о коэффициентах видеоблоков, закодированных ранее, с использованием того же самого режима предсказания для более эффективной компоновки ненулевых коэффициентов блока коэффициентов в направлении начала одномерного вектора коэффициентов.
Согласно одному аспекту способ кодирования видеоданных содержит сохранение множества преобразований для их использования при преобразовании между остаточными пиксельными значениями видеоблока и остаточными коэффициентами преобразования видеоблока. Каждое из множества преобразований связано по меньшей мере с одним режимом предсказания, причем по меньшей мере часть множества преобразований являются отделимыми направленными преобразованиями. Способ также включает в себя выбор одного из множества преобразований для видеоблока на основе режима преобразования видеоблока и применение выбранного преобразования к видеоблоку для преобразования между остаточными пиксельными значениями видеоблока и остаточными коэффициентами преобразования видеоблока. Способ дополнительно включает в себя энтропийное кодирование остаточных коэффициентов преобразования видеоблока.
Согласно другому аспекту устройство, кодирующее видеоданные, содержит блок преобразования, который сохраняет множество преобразований для их использования при преобразовании между остаточными пиксельными значениями видеоблока и остаточными коэффициентами преобразования видеоблока, выбирает одно из множества преобразований для видеоблока на основе режима предсказания видеоблока и применяет выбранное преобразование к видеоблоку для преобразования между остаточными пиксельными значениями видеоблока и остаточными коэффициентами преобразования видеоблока. Каждое из множества преобразований связано по меньшей мере с одним режимом предсказания, причем по меньшей мере часть множества преобразований являются отделимыми направленными преобразованиями. Устройство также включает в себя блок энтропийного кодирования, который выполняет энтропийное кодирование остаточных коэффициентов преобразования видеоблока.
Согласно еще одному аспекту считываемый компьютером носитель содержит команды, которые при их выполнении в устройстве видеокодирования, заставляют устройство кодировать видеоблоки. Эти команды заставляют устройство сохранять множество преобразований для их использования при преобразовании между остаточными пиксельными значениями видеоблока и остаточными коэффициентами преобразования видеоблока, выбирать одно из множества преобразований для видеоблока на основе режима предсказания видеоблока и применять выбранное преобразование к видеоблоку для преобразования между остаточными пиксельными значениями видеоблока и остаточными коэффициентами преобразования видеоблока. Каждое из множества преобразований связано по меньшей мере с одним режимом предсказания, причем по меньшей мере часть множества преобразований являются отделимыми направленными преобразованиями. Эти команды, кроме того, заставляют устройство выполнять энтропийное кодирование остаточных коэффициентов преобразования видеоблока.
Согласно другому аспекту устройство, кодирующее видеоданные, содержит средство сохранения множества преобразований для использования при преобразовании между остаточными пиксельными значениями видеоблока и остаточными коэффициентами преобразования видеоблока. Каждое из множества преобразований связано по меньшей мере с одним режимом предсказания, причем по меньшей мере часть множества преобразований являются отделимыми направленными преобразованиями. Устройство дополнительно содержит средство выбора одного из множества преобразований для видеоблока на основе режима предсказания видеоблока и средство применения выбранного преобразования к видеоблоку для преобразования между остаточными пиксельными значениями видеоблока и остаточными коэффициентами преобразования видеоблока. Устройство также включает в себя средство энтропийного кодирования остаточных коэффициентов преобразования видеоблока.
Способы, описанные в этом изобретении, можно реализовать аппаратными средствами, программными средствами, программно-аппаратными средствами или любой их комбинацией. При реализации программными средствами программное обеспечение может выполняться в процессоре, который может обращаться к одному или нескольким процессорам, таким как микропроцессор, прикладная специализированная интегральная схема (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 делит каждый блок кодирования на блоки пикселей (называемые здесь видеоблоки или блоки) и работает с видеоблоками в отдельных блоках кодирования, чтобы закодировать видеоданные. Блок кодирования (например, кадр или серия последовательных макроблоков), как таковая, может содержать множество видеоблоков. Другими словами, видеопоследовательность может включать в себя множество кадров, кадр может включать в себя множество серий последовательных макроблоков, а серия последовательных макроблоков может включать в себя множество видеоблоков.
Видеоблоки могут иметь фиксированные или переменные размеры и могут отличаться по размеру в соответствии с определенным стандартом кодирования. Например, стандарт H.264/MPEG-4, Part 10, Advanced Video Coding (AVC), разработанный Сектором стандартизации Международного союза электросвязи (ITU-T) (далее этот стандарт обозначен как «H.264/MPEG-4 Part 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) могут считываться видеоблоками, а если они разбиты на более мелкие части или подблоки, то они сами могут рассматриваться как наборы видеоблоков.
Для каждого видеоблока видеокодер 20 выбирает тип блока. Тип блока может указывать, какой вид предсказания (внутреннее или внешнее) осуществляется, а также размер разбиения блока. Например, стандарт H.264/MPEG-4 Part 10 AVC поддерживает несколько типов блоков с внешним (Inter) и внутренним (Intra) предсказанием, в том числе Inter 16×16, Inter 16×8, Inter 8×16, Inter 8×8, Inter 8×4, Inter 4×8, Inter 4×4, Intra 16×16, Intra 8×8, и Intra 4×4. Как подробно описано ниже, видеокодер 20 для каждого из видеоблоков может выбрать один из указанных типов блок.
Видеокодер 20 также выбирает режим предсказания для каждого видеоблока. В случае видеоблока с внутренним кодированием режим предсказания может определить, каким образом выполняется предсказание для текущего видеоблока с использованием одного или нескольких ранее закодированных видеоблоков. В стандарте H.264/MPEG-4 Part 10 AVC, например, видеокодер 20 может выбрать один из девяти возможных режимов однонаправленного предсказания для каждого блока Intra 4×4: режим вертикального предсказания, режим горизонтального предсказания, режим DC предсказания, режим диагонального (вниз/влево) предсказания, режим диагонального (вниз/вправо) предсказания, режим вертикального (вправо) предсказания, режим горизонтального (вниз) предсказания, режим вертикального (влево) предсказания и режим горизонтального (вверх) предсказания. Аналогичные режимы предсказания используют для предсказания каждого блока Intra 8×8. Для блока Intra 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), плазменный дисплей, дисплей на светоизлучающих диодах (LED), дисплей на органических LED или блок отображения иного типа.
В некоторых случаях устройство-источник 12 и устройство-адресат 14 могут работать фактически симметричным образом. Например, устройство-источник 12 и устройство-адресат 14 могут каждое включать в себя компоненты видеокодирования и видеодекодирования. Следовательно, система 10 может поддерживать однонаправленную или двунаправленную передачу видео между устройствами 12, 14, например, для потокового видео, широковещательной передачи видео или видеотелефонии. Устройство, которое включает в себя компоненты видеокодирования и видеодекодирования, может также составлять часть общего устройства кодирования, архивирования и воспроизведения, такого как цифровой видеомагнитофон (DVR).
Видеокодер 20 и видеодекодер 26 могут функционировать согласно любому из различных стандартов сжатия видео, например стандартов, определенных Экспертной группой по вопросам движущегося изображения (MPEG), а именно MPEG-1, MPEG-2 и MPEG-4, ITU-T H.263; стандарт 421М videoCODEC (известный как «VC-1»), разработанный Обществом кино- и телеинженеров США (SMPTE); стандарт, разработанный Рабочей группой стандартов аудио/видео кодирования Китая (известный как «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. Таким образом, хотя на фиг. 1 показано одно устройство-адресат 14, в приложениях, обеспечивающих широковещательную передачу видео, устройство-источник 12, как правило, выполняет широковещательную передачу видеоконтента одновременно на множество устройств-адресатов.
В других примерах передатчик 22, канал 16 связи и приемник 24 могут быть сконфигурированы для обеспечения связи в соответствии с особенностями любой проводной или беспроводной системы связи, включая одну или несколько сетей Ethernet, телефонную кабельную систему (например, POTS (традиционная служба телефонной связи)), системы связи по линиям электропередачи и волоконно-оптические системы, и/или беспроводную систему, содержащая одну или несколько систем связи с множественным доступом и кодовым разделением каналов (CDMA или CDMA2000), систему с множественным доступом и частотным разделением каналов (FDMA), систему с множественным доступом и ортогональным частотным разделением каналов, систему с множественным доступом и временным разделением каналов (TDMA), такую как GSM (глобальная система мобильной связи), систему GPRS (система пакетной радиосвязи) или EDGE (усовершенствованная среда GSM для передачи данных), систему мобильной телефонной связи TETRA (магистральная наземная связь), широкополосную систему с множественным доступом и кодовым разделением каналов (WCDMA), систему высокоскоростной передачи данных 1xEV-DO (первого поколения - только для данных) или широковещательную систему 1xEV-DO Gold, систему IEEE 802.18, систему MediaFLOTM, систему DMB, систему DVB-H или другую схему передачи данных между двумя или более устройствами.
Как видеокодер 20, так и видеодекодер 26 могут быть реализованы в виде одного или нескольких микропроцессоров, цифровых процессоров сигналов (DSP), прикладных специализированных интегральных схем (ASIC), вентильных матриц, программируемых пользователем (FPGA), дискретной логики, программных средств, аппаратных средств, программно-аппаратных средств или любой их комбинации. Как видеокодер 20, так и видеодекодер 26, могут входить в состав одного или нескольких кодеров или декодеров, любой из которых может составлять часть объединенного кодера/декодера (CODEC) в соответствующем мобильном устройстве, абонентском устройстве, устройстве широковещания, сервере или т.п. Вдобавок, как устройство-источник 12, так и устройство-адресат 14 могут включать в себя соответствующие компоненты модуляции, демодуляции, частотного преобразования, фильтрации и усиления для передачи и приема кодированных видеоданных, если таковые имеются, в том числе компоненты и антенны для радиочастотной (RF) беспроводной связи, достаточные для поддержки беспроводной связи. Однако для упрощения иллюстрации указанные компоненты объединены на фиг. 1 в передатчик 22 устройства-источника 12 и приемник 24 устройства-адресата 14.
На фиг. 2 показана блок-схема, подробно иллюстрирующая примерный видеокодер 20 по фиг. 1. Видеокодер 20 выполняет внутреннее и внешнее кодирование блоков в видеокадрах. Внутреннее кодирование базируется на пространственном предсказании для уменьшения или устранения пространственной избыточности в видеоданных в данном блоке видеокодирования, например, в кадре или серии последовательных макроблоков. При внутреннем кодировании видеокодер 20 формирует блок пространственного предсказания на основе одного или нескольких ранее закодированных блоков в том же блоке кодирования, в которой кодируется данный блок. Внешнее кодирование основано на временном предсказании для уменьшения или устранения временной избыточности в соседних кадрах видеопоследовательности. При внешнем кодировании видеокодер 20 осуществляет оценку движения для отслеживания перемещений сходных видеоблоков между двумя или более соседними кадрами.
В примере по фиг. 2 видеокодер 20 включает в себя модуль 30 разбиения блоков, модуль 32 предсказания, хранилище 34 кадров, модуль 38 преобразования, модуль 40 квантования, модуль 41 сканирования коэффициентов, модуль 42 обратного квантования, модуль 44 обратного преобразования и модуль 46 энтропийного кодирования. Видеокодер 20 также включает в себя сумматоры 48А и 48В («сумматоры 48»). Для уменьшения или устранения артефактов, связанных с разбиением на блоки, восстановленные видеоблоки можно пропустить через фильтр, устраняющий «блочность» (не показан). Изображение различных функций на фиг. 2 в виде модулей имеет своей целью подчеркнуть различные функциональные аспекты показанных устройств и не обязательно предполагает, что указанные модули должны быть реализованы в виде отдельных аппаратных или программных компонент. Скорее наоборот, функциональные возможности, связанные с одним или несколькими модулями, могут быть объединены в виде общих или отдельных аппаратных или программных компонент.
Модуль 30 разбиения на блоки получает видеоинформацию (обозначенную на фиг. 2 как «VIDEO IN»), например, в виде последовательности видеокадров от источника 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 Part 10 AVC, и двунаправленные режимы предсказания, которые определяют различные комбинации из двух однонаправленных режимов предсказания.
Например, для блоков типа Intra 44 набор режимов предсказания может включать в себя девять однонаправленных режимов предсказания, определенных в стандарте H.264/MPEG-4 Part 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 являются режимами предсказания Intra 4×4, определенными в стандарте H.264/MPEG-4 Part 10 AVC. Режимы 9-17 представляют собой поднабор из возможных двунаправленных режимов предсказания. Этот поднабор возможных двунаправленных режимов предсказания в приведенном примере включает в себя по меньшей мере одну комбинацию, которая содержит каждый из однонаправленных режимов предсказания. Каждый двунаправленный режим предсказания, за исключением двунаправленных режимов предсказания, которые включают в себя режим предсказания типа DC (например, режимы 10 и 11), объединяют однонаправленные режимы предсказания, имеющие направления интерполяции, не параллельные друг другу, а в некоторых случаях практически ортогональные друг другу. Другими словами, поднабор двунаправленных режимов предсказания включает в себя двунаправленные режимы предсказания, которые в общем случае объединяют режимы предсказания из категории «вертикальный» с режимами предсказания из категории «горизонтальный». Указанные двунаправленные режимы предсказания позволяют в процессе внутреннего предсказания объединять имеющиеся пиксели предсказания из далеко отстоящих друг от друга мест, что повышает качество предсказания для большего числа мест расположения пикселей в текущем видеоблоке.
Вышеописанный набор режимов предсказания представлен здесь в иллюстративных целях. Набор режимов предсказания может включать в себя больше или меньше режимов предсказания. Например, набор режимов предсказания может включать в себя больше или меньше двунаправленных режимов предсказания или вообще не содержать двунаправленные режимы предсказания. В других случаях набор режимов предсказания может включать в себя только поднабор однонаправленных режимов предсказания. Вдобавок, набор режимов предсказания может включать в себя многонаправленные режимы предсказания, которые объединяют более двух однонаправленных режимов предсказания вдобавок или вместо двунаправленных режимов предсказания. Кроме того, хотя все вышеописанное относилось к блокам типа Intra 4×4, раскрытые здесь способы можно применит к блокам других типов (например, типа Intra 8×8 или типа 16×16) или к блокам типа Inter. Для определения того, какой из множества режимов предсказания выбрать для конкретного блока, модуль 32 предсказания может оценить затраты на кодирование, например лагранжиан затрат, для каждого режима предсказания из набора и выбрать режим предсказания с минимальными затратами на кодирование. В других случаях модуль 32 предсказания может оценить затраты на кодирование только для части набора возможных режимов предсказания. Например, модуль 32 предсказания может выбрать часть режимов предсказания из данного набора на основе режима предсказания, выбранного для одного или нескольких соседних видеоблоков. Модуль 32 предсказания создает блок предсказания, используя выбранный режим предсказания.
После создания блока предсказания видеокодер 20 создает остаточный блок путем вычитания в сумматоре 48А блока предсказания, созданного модулем 32 предсказания, из текущего видеоблока. Остаточный блок включает в себя набор пиксельных значений разности, которые количественно характеризуют разности между пиксельными значениями текущего видеоблока и пиксельными значениями блока предсказания. Остаточный блок можно представить в формате двумерного блока (например, двумерная матрица или массив пиксельных значений). Другими словами, остаточный блок является двумерным представлением пиксельных значений.
Модуль 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 преобразования может поддерживать восемнадцать различных направленных преобразований, каждое из которых соответствует одному из восемнадцати возможных режимов предсказания Intra 4×4. Вдобавок, модуль 38 преобразования может поддерживать восемнадцать различных направленных преобразований для восемнадцати возможных режимов предсказания Intra 8×8 и четыре различных направленных преобразования для четырех возможных режимов предсказания Intra 16×16, а также преобразования для любых других режимов предсказания с другими размерами разбиения. Применение отдельных направленных преобразований на основе выбранного режима предсказания блока повышает эффективность фиксирования остаточной энергии для блоков, для которых выбраны режимы предсказания, характеризующиеся значительной направленностью. Направленные преобразования могут быть неотделимыми направленными преобразованиями, например, получаемыми из неотделимых преобразований Карунена-Лоэва (KLT) или отделимыми направленными преобразованиями. В некоторых случаях направленные преобразования могут предварительно вычисляться с использованием специально подготовленных наборов данных.
Преобразование KLT является линейным преобразованием, где базовые функции получают из статистических данных о сигнале, и поэтому оно может быть адаптивным. Преобразование KLT разработано для причисления максимально возможной энергии как можно меньшему количеству коэффициентов. Преобразование KLT в общем случае не является отделимым, и, соответственно, модуль 38 преобразования выполняет полное матричное умножение, подробно описанное ниже. Далее в качестве примера описано применение неотделимого направленного преобразования к остаточному блоку 4×4. Аналогичные способы используют для блоков других размеров, например, блок 8×8 или блоки 16×16.
Остаточный блок Х размером 4×4 представлен в двумерном блочном формате с четырьмя строками и четырьмя столбцами пиксельных значений, то есть, всего с шестнадцатью пиксельными значениями. Для применения неотделимого направленного преобразования выполняют перекомпоновку остаточного блока 4×4 в одномерный вектор х пиксельных значений, то есть, имеющий шестнадцать значений в длину. Перекомпоновку остаточного блока Х размером 4×4 в вектор х выполняют путем компоновки пикселей в Х в растровом порядке сканирования. То есть, если остаточный блок Х размером 4×4 записан в виде
Figure 00000002
то тогда остаточный вектор х длиной 16 запишется как
Figure 00000003
Вектор y коэффициентов преобразования получают путем выполнения матричного умножения согласно следующему уравнению (1):
y=Tx,
Figure 00000004
(1),
где Т - матрица преобразования размером 16×16, которая соответствует режиму предсказания, выбранному для данного блока. Вектор y коэффициентов преобразования также является однонаправленным вектором, имеющим длину шестнадцать коэффициентов.
Использование неотделимых направленных преобразований может привести к увеличению вычислительных затрат и требований к памяти. В общем случае, для остаточного блока размером N×N неотделимое направленное преобразование потребует базовых функций размером N2×N2. То есть для остаточных блоков 4×4 неотделимое направленное преобразование имеет размер 16×16; для остаточных блоков 8×8 неотделимое направленное преобразование имеет размер 64×64; а для остаточных блоков 16×16 неотделимое направленное преобразование имеет размер 256×256. Поскольку для каждого из режимов предсказания в наборе можно использовать отличное от других неотделимое направленное преобразование, в модуле 32 преобразования может храниться восемнадцать направленных преобразований 16×16 для блоков 4×4 и восемнадцать преобразований 64×64 для блоков 8×8 (в случае вышеописанного примерного набора режимов предсказания), но возможно и больше при более широком наборе режимов предсказания. Это может привести к использованию больших ресурсов памяти для хранения матриц преобразования, необходимых для выполнения процесса преобразования. Вычислительные затраты на неотделимые направленные преобразования также высоки. В общем случае применение неотделимого направленного преобразования для блока N×N потребует N2×N2 умножений и N2×(N2-1) сложений.
Вместо неотделимых направленных преобразований модуль 32 преобразования может поддерживать отделимые направленные преобразования для каждого из режимов предсказания. Отделимые направленные преобразования требуют меньше памяти и вычислительных затрат по сравнению с неотделимыми направленными преобразованиями. Для остаточного блока Х размером 4×4, например, отделимое преобразование применяют, как показано в следующем уравнении (2):
Y=CXR,
Figure 00000004
(2),
где Y - результирующая матрица коэффициентов преобразования, C - матрица преобразования столбцов, а R - матрица преобразования строк, причем размер всех этих матриц равен размеру блока (4×4 в данном примере). Таким образом, результирующая матрица Y коэффициентов преобразования также является двумерной матрицей размером 4×4.
Для каждого режима предсказания в модуле 32 преобразования может храниться две матрицы преобразования N×N (например, пары матриц С и R), где N×N соответствует размеру блока (например, N=4, 8 или 16). В вышеописанном примерном наборе из восемнадцати режимов предсказания для блока 4×4 в модуле 32 преобразования хранятся тридцать шесть матриц преобразования 4×4, для которых требуется меньше памяти, чем для восемнадцати матриц преобразования 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 преобразования, к остаткам предсказания можно применить операцию сингулярного разложения (SVD) в подготовленном наборе, сначала в направлении строк, а затем в направлении столбцов, чтобы получить соответственно матрицу преобразования строк и матрицу преобразования столбцов. В альтернативном варианте матрицы неотделимого направленного преобразования, то есть матрицы неотделимого KLT преобразования можно подготовить, используя сначала остатки предсказания из подготовленного набора, а затем можно получить матрицы отделимого преобразования для каждого режима предсказания путем дальнейшей разложения матриц неотделимого преобразования на матрицы отделимого преобразования.
В любом случае результирующие матрицы преобразования обычно характеризуются точностью задания чисел с плавающей точкой. Для аппроксимации коэффициентов в матрицах преобразования используют числа, задаваемые с точностью с фиксированной точкой, что позволяет использовать в процессе преобразования арифметические операции с фиксированной точкой и уменьшить вычислительные затраты. Точность аппроксимаций коэффициентов с фиксированной точкой в матрицах преобразования определяется на основе соблюдения баланса между сложностью вычислений и максимальной точностью, необходимой во время процесса преобразования с использованием арифметических операций с фиксированной точкой. Другими словами, более высокая точность аппроксимаций матриц преобразования с фиксированной точкой может привести к меньшим ошибкам благодаря использовании аппроксимации с фиксированной точкой, что является желательным; правда, слишком высокая точность аппроксимаций матриц преобразования с фиксированной точкой также может привести к переполнению при выполнении арифметических операций с фиксированной точкой во время процесса преобразования, что в принципе нежелательно.
После применения преобразования к остаточному блоку пиксельных значений модуль 40 квантования квантует коэффициенты преобразования для дальнейшего уменьшения скорости передачи битов. Вслед за квантованием модуль 42 обратного квантования и модуль 44 обратного преобразования могут соответственно использовать обратное квантование и обратное преобразования для восстановления остаточного блока (обозначенного на фиг.2 как RECON RESID BLOCK»). Сумматор 48b добавляет восстановленный остаточный блок к блоку предсказания, созданному модулем 32 предсказания, для создания восстановленного видеоблока для его сохранения в хранилище 34 кадров. Восстановленный видеоблок может быть использован модулем 32 предсказания для внутреннего или внешнего кодирования последующего видеоблока.
Как было описано выше, при использовании отделимых преобразований, которые включают в себя DCT, целочисленные преобразования, используемые в стандарте H.264/AVC, и отделимые направленные преобразования, результирующие коэффициенты преобразования представляют в виде двумерных матриц коэффициентов. Следовательно, после квантования модуль 41 сканирования коэффициентов сканирует коэффициенты из формата двумерного блока в формат одномерного вектора, причем такую обработку часто называют сканированием коэффициентов. В частности, модуль 41 сканирует коэффициенты согласно некоторому порядку сканирования. Согласно одному аспекту данного изобретения модуль 41 сканирования коэффициентов может адаптивно перестраивать порядок сканирования, используемый для сканирования коэффициентов, на основе статистических данных о коэффициентах. В некоторых случаях модуль 41 сканирования коэффициентов может адаптивно перестроить порядок сканирования отдельно для каждого из режимов предсказания, поскольку каждый из режимов предсказания может иметь отличные от других статистические данные о коэффициентах.
Модуль 41 сканирования коэффициентов изначально может сканировать коэффициенты квантованного остаточного блока, используя первый порядок сканирования. Согласно одному аспекту первый порядок сканирования может являться зигзагообразным порядком, который, как правило, используют в приложениях стандарта H.264/MPEG-4 Part 10 AVC. Хотя модуль 41 сканирования коэффициентов описан как модуль, выполняющий начальное сканирование с использованием зигзагообразного порядка, способы, раскрытые в этом изобретении, не ограничиваются каким-либо конкретным начальным порядком или способом сканирования. Кроме того, каждый из режимов сканирования может иметь отличный от других начальный порядок сканирования, например, порядок сканирования, специально подготовленный для данного режима предсказания. Зигзагообразный порядок сканирования описан здесь в иллюстративных целях. Зигзагообразный порядок сканирования обеспечивает компоновку квантованных коэффициентов в одномерном векторе, так что коэффициенты в левом верхнем углу двумерного блока уплотняются в направлении начала вектора коэффициентов. Зигзагообразный порядок сканирования может обеспечить достаточную плотность для блоков коэффициентов, имеющих ограниченную направленность.
Когда остаточные блоки имеют некоторую или значительную направленность и преобразуются с использованием отделимых направленных преобразований, результирующий двумерный блок коэффициентов преобразования может все еще иметь некоторую степень направленности. Причина этого состоит в том, что, хотя использование отделимых направленных преобразований дает преимущества, заключающиеся в снижении сложности вычислений и требований памяти, это не гарантирует фиксацию направленности в остаточных блоках, как при использовании неотделимых направленных преобразований. Например, после применения направленного преобразования к вертикальному предсказанию (режим 0 в вышеописанном примере) ненулевые коэффициенты будут стремиться располагаться вдоль горизонтального направления. Таким образом, зигзагообразный порядок сканирования не гарантирует, что все ненулевые коэффициенты окажутся плотно скомпонованными в направлении начала вектора коэффициентов. Благодаря адаптации порядка сканирования коэффициентов для ориентации порядка сканировании в горизонтальном направлении вместо фиксированного зигзагообразного порядка сканирования, ненулевые коэффициенты блока коэффициентов могут более компактно размещаться в направлении начала одномерного вектора коэффициентов, чем в случае сканирования в зигзагообразном порядке. В свою очередь, это может уменьшить количество бит, затрачиваемых на энтропийное кодирование, поскольку имеются более короткие серии нулей между ненулевыми коэффициентами в начале одномерного вектора коэффициентов и одна более длинная серия нулей в конце одномерного вектора коэффициентов. Концепция адаптации порядка сканирования, используемой для создания одномерного вектора коэффициентов, также применима к другим режимам предсказания. Например, модуль 41 сканирования коэффициентов может адаптивно перестраивать порядок сканирования отдельно для каждого из режимов предсказания, поскольку каждый из режимов предсказания может иметь отличную от других направленность в блоках коэффициентов и, следовательно, различные статистические данные о коэффициентах. Таким образом, порядок сканирования может быть разным для каждого из режимов предсказания.
Как было описано выше, начальный порядок сканирования необязательно является зигзагообразным; в частности, в случаях, когда к остаточному блоку применяют направленные преобразования. В этих случаях начальный порядок сканирования может быть определен заранее с использованием одного из нижеописанных способов. Например, начальный порядок сканирования может быть определен с использованием набора обучающих видеопоследовательностей. Статистические данные о ненулевых коэффициентах, такие как статистические данные, описанные ниже, собирают для каждого режима предсказания и используют для инициализации порядка сканирования коэффициентов. В частности, первой позицией коэффициента в начальном порядке сканирования является позиция с максимальной вероятностью ненулевых коэффициентов, затем следует позиция со следующей максимальной вероятностью ненулевых коэффициентов, являющаяся второй позицией коэффициента в начальном порядке сканирования, и т.д., пока не будет достигнута позиция с минимальной ненулевой вероятностью, которая является последней позицией коэффициента в начальном порядке сканирования. В альтернативном варианте начальный порядок сканирования можно определить на основе собственных значений матриц отделимого преобразования. Например, собственные значения можно сортировать в убывающем порядке, а коэффициенты сканируют, следуя соответствующему порядку собственных значений.
Если даже начальный порядок сканирования определяют с использованием одного из вышеописанных способов, различные типы источников видео могут привести к тому, что квантованные остаточные коэффициенты окажутся на разных позициях в блоке. Например, источники видео с различным разрешением, такие как источники видео в едином промежуточном формате (CIF), в четвертном CIF (QCIF) и с высоким разрешением (например, 720 p/i или 1080 p/i) могут привести к расположению ненулевых коэффициентов на разных позициях в блоке. Таким образом, если даже начальный порядок сканирования выбран на основе режима предсказания блока, модуль 41 сканирования коэффициентов все же сможет адаптировать порядок сканирования для повышения компактности ненулевых коэффициентов в направлении начала одномерного вектора коэффициентов.
Для адаптации порядка сканирования модуль 41 сканирования коэффициентов или другой модуль видеокодера 20 может собрать статистические данные о коэффициентах для одного или нескольких блоков. Другими словами, так как сканирование коэффициентов выполняют поблочно, модуль 41 сканирования коэффициентов может собрать статистику, которая указывает, сколько раз на каждой из позиций в блоке оказывался ненулевой коэффициент. Например, модуль 41 сканирования коэффициентов может поддерживать множество счетчиков, каждый из которых соответствует позиции коэффициента в двумерном блоке, и увеличивать отсчитанное значение соответствующей позиции, когда на этой позиции оказывается ненулевой коэффициент. Таким образом, большие значения счетчиков соответствуют позициям в блоке, на которых ненулевые коэффициенты появляются с более высокой частотой, а небольшие значения счетчиков соответствуют позициям в блоке, на которых ненулевые коэффициентов появляются с низкой частотой. В некоторых случаях модуль 41 сканирования коэффициентов может собирать отдельные наборы статистических данных о коэффициентах для каждого из режимов предсказания.
Как было описано выше, модуль 41 сканирования может адаптировать порядок сканирования на основе собранных статистических данных. Модуль 41 сканирования коэффициентов может на основе собранных статистических данных адаптировать порядок сканирования для сканирования в первую очередь тех позиций коэффициентов, которые определены как имеющие более высокую вероятность ненулевых коэффициентов, после чего сканировать позиции коэффициентов, которые определены как имеющие меньшую вероятность ненулевых коэффициентов. Например, модуль 41 сканирования коэффициентов может адаптировать порядок сканирования для сканирования позиций коэффициентов двумерного блока в убывающем порядке на основе значений их отсчетов, когда значения отсчетов представляют количество случаев, когда на соответствующих позициях коэффициенты имели ненулевое значение. В альтернативном варианте, счетчики могут отслеживать количество случаев, когда каждая из позиций в блоке являлась позицией для нулевого коэффициента, и адаптировать порядок сканирования для сканирования позиций коэффициентов в возрастающем порядке на основе значений отсчетов. В некоторых случаях статистические данные могут собираться только для поднабора позиций коэффициентов в блоке вместо всех позиций коэффициентов в блоке. В этом случае блок 41 сканирования коэффициентов может адаптировать только часть порядка сканирования.
Модуль 41 сканирования коэффициентов может адаптировать порядок сканирования с фиксированными или нефиксированными интервалами. Например, модуль 41 сканирования коэффициентов может адаптировать порядок сканирования с фиксированными интервалами, например, границами блока. В некоторых случаях модуль 41 сканирования коэффициентов может адаптировать порядок сканирования с границами блока 4×4 или 8×8, либо с границами макроблока. Таким образом, порядок сканирования можно адаптировать для каждого блока или макроблока. Однако для упрощения системы модуль 41 сканирования коэффициентов может адаптировать порядок сканирования не так часто, например, после каждых n блоков или макроблоков. В альтернативном варианте модуль 41 сканирования коэффициентов может адаптировать порядок сканирования с нефиксированными интервалами. Модуль 41 сканирования коэффициентов может, например, адаптировать порядок сканирования, когда одно из значений отсчетов позиции в блоке превышает пороговое значение. После адаптации порядка сканирования модуль 41 сканирования коэффициентов может сканировать последовательные квантованные остаточные блоки по меньшей мере одного последующего видеоблока, используя адаптированный порядок сканирования. В некоторых случаях модуль 41 сканирования коэффициентов может сканировать последовательные квантованные остаточные блоки по меньшей мере одного последующего видеоблока, используя адаптированный порядок сканирования, когда в блоке кодирования первого видеоблока существует по меньшей мере один следующий видеоблок. Модуль 41 сканирования коэффициентов может продолжать сканировать последовательные видеоблоки, пока порядок сканирования не будет адаптирован снова в соответствии с собранными статистическими данными, или пока порядок сканирования не будет заново инициализирован. Таким образом, модуль 41 сканирования коэффициентов адаптирует порядок сканирования для создания одномерного вектора коэффициентов таким образом, что квантованные остаточные коэффициенты можно будет кодировать более эффективно с помощью модуля 46 энтропийного кодирования.
Модуль 41 сканирования коэффициентов в некоторых случаях может нормализовать собранные статистические данные. Нормализация собранных статистических данных желательна тогда, когда отсчеты коэффициентов достигнут порогового значения. Позиция коэффициента, называемая здесь позицией А коэффициента, в блоке, имеющем значение отсчета, которое достигло порога может, например, оставаться позицией коэффициента с максимальным отсчетом даже в том случае, когда позиция коэффициента не содержала ненулевой коэффициент в течение некоторого периода времени. Это может иметь место благодаря тому, что отсчитанное значение коэффициента на позиции А настолько велико, что другие отсчеты коэффициентов могут захватить множество блоков (например, десятки или сотни блоков), прежде чем отсчет коэффициента на другой позиции, называемой здесь позицией В коэффициента, в блоке превысит отсчет коэффициента на позиции А, что приводит к изменению (то есть перестановке) порядка сканирования между позициями А и В коэффициентов. Таким образом, чтобы дать возможность видеокодеру 20 быстрее адаптироваться к локальным статистическим данным о коэффициентах, модуль 41 сканирования коэффициентов может нормализовать коэффициенты, когда один из отсчетов достигнет порогового значения. Например, модуль 41 сканирования коэффициентов может нормализовать коэффициенты путем сокращения каждого из значений отсчетов на заранее определенный множитель, например, сократив каждое из значений отсчетов вдвое, или путем установки значений отсчетов, равными начальным значениям отсчетов. Модуль 41 сканирования коэффициентов может использовать другие методики нормализации. Например, модуль 41 сканирования коэффициентов может обновлять статистические данные после кодирования конкретного количества блоков.
Модуль 46 энтропийного кодирования получает одномерный вектор коэффициентов, который представляет остаточные коэффициенты блока, а также информацию о заголовке для блока в виде одного или нескольких синтаксических элементов заголовка. Синтаксические элементы заголовка могут идентифицировать конкретные характеристики текущего видеоблока, такие как тип блока, режим предсказания, структура кодированного блока (CBP) для яркости и цветности, разбиение блока и один или несколько векторов движения. Эти синтаксические элементы можно получить от других компонент, например, от модуля 32 предсказания в видеокодере 20.
Блок 46 энтропийного кодирования кодирует информацию о заголовке и остаточную информацию для текущего видеоблока, чтобы создать кодированный битовый поток (на фиг.2 обозначен как «Битовый видеопоток»). Модуль 46 энтропийного кодирования кодирует один или несколько синтаксических элементов каждого блока согласно раскрытым здесь способам. В частности, модуль 46 энтропийного кодирования может кодировать синтаксические элементы текущего блока на основе синтаксических элементов одного или нескольких ранее закодированных видеоблоков. По существу, модуль 46 энтропийного кодирования может включать в себя один или несколько буферов для сохранения синтаксических элементов одного или нескольких ранее закодированных видеоблоков. Модуль 46 энтропийного кодирования может анализировать любое количество соседних блоков в любом месте для содействия кодированию синтаксических элементов текущего видеоблока. В иллюстративных целях модуль 46 энтропийного кодирования описывается далее в качестве модуля, кодирующего режим предсказания на основе ранее закодированного блока, находящегося непосредственно над текущим блоком (то есть верхний соседний блок) и ранее закодированного блока, находящегося непосредственно слева от текущего блока (то есть левый соседний блок). Однако аналогичные способы можно использовать для кодирования других синтаксических элементов заголовка, таких как типы блока, разбиения блока, структуры CBP или т.п. Также при кодировании текущего видеоблока можно использовать аналогичные способы, в которых употребляется большее количество соседних блоков, а не только верхний и левый соседние блоки.
Работа модуля 46 энтропийного кодирования описывается со ссылками на вышеописанный набор из восемнадцати режимов предсказания, а также исходя из примерного псевдокода, приведенного ниже.
Let upMode be the prediction mode of the top block
Let leftMode be the prediction mode of the left block
Let currMode be the prediction mode of the current block
If currMode==upMode||currMode==leftMode
Send "1"
If upMode!=leftMode
Send "1" if currMode==upMode or "0" otherwise
Else
Send "0"
Adjust currMode to be in the range of [0,15]
Send currMode using 4 bits
Модуль 46 энтропийного кодирования использует переменные upMode, leftMode и currMode, соответствующие режиму предсказания верхнего соседнего блока, режиму предсказания левого соседнего блока и режиму предсказания текущего блока соответственно. Как было описано выше, режимы предсказания верхнего соседнего блока, левого соседнего блока и текущего блока можно определить на основе анализа лагранжиана затрат. Модуль 46 энтропийного кодирования сравнивает режим предсказания текущего блока (currMode) с режимом предсказания соседних блоков (upMode и leftMode). Если режим предсказания текущего блока совпадает с режимом предсказания любого из соседних блоков, то модуль 46 энтропийного кодирования устанавливает код «1». Таким образом, первый бит, закодированный модулем 46 энтропийного кодирования для представления режима предсказания текущего блока, указывает, является ли текущий режим предсказания таким же, как любой из режимов предсказания: верхнего соседнего блока или левого соседнего блока.
Если режим предсказания текущего блока совпадает с режимом предсказания любого из соседних блоков, то есть первый кодированный бит равен «1», то модуль 46 энтропийного кодирования сравнивает режим предсказания верхнего соседнего блока с режимом предсказания левого соседнего блока. Если режим предсказания верхнего соседнего блока совпадает с режимом предсказания левого соседнего блока, то модуль 46 энтропийного кодирования больше не кодирует ни одного бита для этого режима предсказания. В данном случае режим предсказания можно закодировать, используя один бит.
Однако если режим предсказания верхнего соседнего блока не совпадает с режимом предсказания левого соседнего блока, то модуль 46 энтропийного кодирования кодирует по меньшей мере один дополнительный бит, представляющий режим предсказания, для задания того, какой из соседних блоков имеет тот же режим предсказания, что и текущий блок. Например, когда модуль 46 энтропийного кодирования анализирует режим предсказания верхнего и левого соседних блоков, он может закодировать «1», если режим предсказания текущего блока такой же, как режим предсказания верхнего соседнего блока, и кодирует «0», если режим предсказания текущего блока такой же, как режим предсказания левого соседнего блока. Модуль 46 энтропийного кодирования в альтернативном варианте может закодировать «1», если режим предсказания текущего блока такой же, как режим предсказания левого соседнего блока, и кодирует «0», если режим предсказания текущего блока такой же, как режим предсказания верхнего соседнего блока. В любом случае, второй бит закодированного режима предсказания указывает, какой блок (верхний или левый соседний блок) имеет тот же режим предсказания, что и текущий блок. Таким образом, модуль 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 кодирования для различных контекстов кодирования могут быть заданы разные таблицы кодирования с переменной длиной слова. Например, при выборе первого контекста кодирования (то есть как верхний, так и левый соседние блоки имеют однонаправленные режимы кодирования) можно использовать таблицу кодирования c переменной длиной слова (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 как с1-с16. Действительные значения коэффициентов показаны в блоке 1 (72), блоке 2 (73), блоке 3 (74) и блоке 4 (75) для четырех последовательных блоков. Действительные значения коэффициентов для блоков 1-4 могут представлять квантованные остаточные коэффициенты, коэффициенты преобразования без квантования или коэффициенты другого типа. В других случаях указанные позиции могут представлять позиции пиксельных значений остаточного блока. Блоки 1-4 могут содержать блоки, связанные с одинаковым режимом предсказания. В примере, показанном на фиг. 4, блоки 1-4 являются блоками 4×4. Однако, как было описано выше, способы, раскрытые в изобретении, можно распространить для применения к блокам любого размера. Кроме того, хотя описанное ниже относится к модулю 41 сканирования коэффициентов в видеокодере, аналогичным образом модуль 63 сканирования коэффициентов видеодекодера 26 может собирать статистические данные и адаптировать порядок сканирования.
Изначально модуль 41 сканирования коэффициентов может сканировать коэффициенты блока 1, используя зигзагообразный порядок сканирования. В этом случае модуль 41 сканирования коэффициентов сканирует позиции коэффициентов блока 1 в следующем порядке: с1, с2, с5, с9, 26, с3, с4, с7, с10, с13, с14, с11, с8, с12, с15, с16. Таким образом, после сканирования коэффициентов блока 1 модуль 41 сканирования коэффициентов выводит одномерный вектор ν=[9,4,6,1,1,0,0,0,0,2,0,0,0,0,0,0]. Хотя в примере, показанном на фиг. 4, модуль 41 сканирования коэффициентов изначально сканирует коэффициенты блока 1, используя зигзагообразный порядок сканирования, такой порядок сканирования не является единственно возможной отправной точкой для адаптивного сканирования. В качестве начального порядка сканирования можно использовать горизонтальное сканирование, вертикальное сканирование или любую другую начальную последовательность сканирования. Использование зигзагообразного сканирования приводит к одномерному вектору ν коэффициентов, имеющему серию из четырех нулей между двумя ненулевыми коэффициентами.
Статистические данные 1 (76) представляют статистические данные блока 1. Статистические данные 1 (76) могут представлять собой отсчитанные значения для каждой позиции коэффициента для отслеживания количества ненулевых значений в каждой позиции коэффициента. В примере на фиг. 4 все статистические данные коэффициентов инициализированы с нулевым значением. Однако можно использовать другие схемы инициализации. Например, для инициализации статистических данных соответствующего режима предсказания можно использовать типовые или усредненные статистические данные о коэффициентах для каждого из режимов предсказания. После кодирования блока 1 статистические данные 1 (76) имеют значения, равные единице, для любой позиции коэффициента в блоке 1, являющейся ненулевой, и имеют значения, равные нулю, для любой позиции коэффициента в блоке 1, имеющей нулевое значение. Статистические данные 2 (77) представляют объединенные статистические данные блоков 1 и 2. Модуль 41 сканирования коэффициентов увеличивает отсчеты статистических данных 1 (76), когда позиции коэффициентов в блоке 2 имеют ненулевые значения, и сохраняют отсчитанные значения прежними, когда позиции коэффициентов имеют нулевые значения. Таким образом, как показано на фиг. 4, модуль 41 сканирования коэффициентов увеличивает статистические данные позиций с1, с2, с5, с9, с13 коэффициентов до значения, равного двум и поддерживает статистические данные в остальных позициях коэффициентов такими же, как статистические данные 1 (76). Статистические данные 3 (78) представляют объединенные статистические данные блоков 1-3, а статистические данные 4 (79) представляют объединенные статистические данные блоков 104. Как было описано выше, согласно некоторым аспектам модуль 41 сканирования коэффициентов может собирать статистические данные для блоков, используя множество счетчиков.
Модуль 41 сканирования коэффициентов может адаптировать порядок сканирования на основе собранных статистических данных. В демонстрируемом примере модуль 41 сканирования коэффициентов может быть сконфигурирован для адаптации порядка сканирования после четырех видеоблоков на основе статистических данных 4 (79). В этом случае модуль 41 сканирования коэффициентов анализирует собранные статистические данные и адаптирует порядок сканирования, так что позиции коэффициентов сканируются в убывающем порядке согласно соответствующим отсчитанным значениям. По существу, модуль 41 сканирования коэффициентов может сканировать блоки 1-4 в соответствии с начальным порядком сканирования и адаптировать порядок сканирования для сканирования позиций последующего блока, например, блока 5 (не показан) в следующем порядке: с1, с5, с9, 2, с13, с6, с3, с4, с7, с10, с14, с11, с8, с12, с15, с16. Модуль 41 сканирования коэффициентов продолжает сканировать следующие друг за другом блоки в соответствии с новым порядком сканирования, пока порядок сканирования не будет вновь адаптирован на основе собранных статистических данных для блоков или заново инициализирован, например, с начала последующего блока кодирования.
Адаптация порядка сканирования для изменения по отношению к начальному порядку сканирования (например, зигзагообразный порядок сканирования) на новый порядок сканирования сдвигает ненулевые коэффициенты к началу одномерного вектора коэффициентов, а нулевые коэффициенты к его концу. В примере на фиг. 4 при новом порядке сканирования коэффициенты сканируются по вертикали раньше, чем по горизонтали, что отражает тот факт, что для данного режима предсказания коэффициенты по вертикали имеют более высокую вероятность ненулевого значения, чем коэффициенты по горизонтали. Все блоки 1-4 могут иметь один и тот же режим предсказания, а прошлые статистические данные могут представлять наиболее вероятные в будущем места с ненулевыми коэффициентами. Таким образом, благодаря использованию прошлых статистических данных для определения порядка сканирования способы, раскрытые в этом изобретении, могут способствовать группировке ненулевых коэффициентов ближе к началу отсканированного одномерного вектора, а коэффициенты с нулевыми значениями ближе к концу отсканированного одномерного вектора, что исключает или уменьшает количество нулевых серий между двумя ненулевыми коэффициентами. Это, в свою очередь, может повысить уровень сжатия, которого можно достигнуть во время энтропийного декодирования.
На фиг. 5 представлена блок-схема, иллюстрирующая способ кодирования, совместимый с данным изобретением. Способ кодирования, показанный на фиг. 5, можно использовать для кодирования или декодирования видеоблоков. Как показано на фиг. 5, модуль 41, 63 сканирования коэффициентов сканирует коэффициенты блока согласно начальному порядку сканирования, определенному для соответствующего режима предсказания текущего блока (80). С позиции видеокодера 20 сканирование преобразует двумерный блок коэффициентов в одномерный вектор коэффициентов. С позиции видеодекодера 26 сканирование преобразует одномерный вектор коэффициентов в двумерный блок коэффициентов. В одном примере начальным порядком сканирования соответствующего режима предсказания может быть зигзагообразный порядок сканирования. Зигзагообразный порядок сканирования не является единственно возможным начальным порядком сканирования. В качестве начального порядка сканирования можно использовать горизонтальное сканирование, вертикальное сканирование или любой иной начальный порядок сканирования.
Модуль 41, 63 сканирования коэффициентов собирает статистические данные для одного или нескольких блоков (82). В частности, для каждого сканируемого блока модуль 41, 63 сканирования коэффициентов может собирать статистические данные, которые, например, с помощью счетчиков отслеживают частоту появления ненулевого коэффициента на каждой позиции коэффициентов в двумерном блоке. Модуль 41, 63 сканирования коэффициентов определяет, следует ли проанализировать порядок сканирования (83). Модуль 41, 63 сканирования коэффициентов может выяснить, что порядок сканирования обеспечивается с фиксированными (например, на каждой границе блока или после n границ блоков) или нефиксированными интервалами (например, когда одно из отсчитанных значений некоторой позиции в данном блоке превышает пороговое значение).
Если модуль 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 энтропийного декодирования выбирает в качестве режима предсказания текущего блока режим предсказания любого из соседних блоков. Когда режим предсказания верхнего соседнего блока и режим предсказания левого соседнего блока разные, получают один дополнительный бит, представляющий режим предсказания, и модуль 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), или иные эквивалентные интегральные или логические схемы. Соответственно, используемый здесь термин «процессор» может относиться к любой вышеупомянутой структуре или любой иной структуре, подходящей для реализации описанных здесь способов. Вдобавок, согласно некоторым аспектам описанные здесь функциональные возможности могут быть обеспечены в рамках специализированных программных модулей или аппаратных модулей, сконфигурированных для кодирования и декодирования, или включенных в комбинированный видеокодер - видеодекодер (CODEC). Предполагается, что описание различных функций в виде блоков, подчеркивает различные функциональные аспекты показанных устройств, причем не обязательно считать, что указанные блоки должны быть реализованы отдельными аппаратными или программными компонентами. Скорее наоборот, функциональные возможности, связанные с одним или несколькими модулями, могут быть интегрированы в общих или отдельных аппаратных или программных компонент.
Здесь были описаны различные варианты осуществления изобретения. Эти и другие варианты не выходят за рамки объема нижеследующей формулы изобретения.

Claims (49)

1. Способ кодирования видеоданных, причем способ содержит:
сохранение множества преобразований для использования при преобразовании остаточных пиксельных значений видеоблока, связанных с режимами предсказания или остаточных коэффициентов преобразования видеоблока, связанных с режимами предсказания к остаточным коэффициентам преобразования видеоблока или остаточным пиксельным значениям видеоблока соответственно, где каждое из множества преобразований связано по меньшей мере с одним режимом предсказания, и по меньшей мере часть множества преобразований являются отделимыми направленными преобразованиями;
выбор одного из множества преобразований для видеоблока на основе, по меньшей мере частично на направленности режима предсказания, связанного с видеоблоком;
применение выбранного преобразования к видеоблоку для преобразования остаточных пиксельных значений видеоблока к остаточным коэффициентам преобразования видеоблока; и
энтропийное кодирование остаточных коэффициентов преобразования видеоблока.
2. Способ по п.1, в котором каждое отделимое направленное преобразование включает в себя матрицу преобразования столбцов размером N×N и матрицу преобразования строк размером N×N, где N×N размерность видеоблока.
3. Способ по п.1, в котором множество преобразований дополнительно включает в себя дискретное косинусное преобразование (DCT) или целочисленное преобразование, а выбор одного из множества преобразований для видеоблока содержит:
выбор дискретного косинусного преобразования (DCT) или целочисленного преобразования для применения к видеоблоку, когда выбранный режим предсказания проявляет ограниченную направленность; и
выбор одного из множества отделимых направленных преобразований для применения к видеоблоку, когда выбранный режим предсказания проявляет направленность.
4. Способ по п.3, дополнительно содержащий:
выбор режима предсказания видеоблока из набора режимов предсказания, который включает в себя однонаправленные режимы предсказания и многонаправленные режимы предсказания, которые объединяют по меньшей мере два однонаправленных режима предсказания,
причем выбор DCT или целочисленного преобразования содержит выбор DCT или целочисленного преобразования для применения к видеоблоку, когда выбранным режимом предсказания является либо DC однонаправленный режим предсказания, либо многонаправленный режим предсказания, который объединяет по меньшей мере два режима предсказания, указывающие по существу ортогональные направления.
5. Способ по п.4, в котором набор режимов предсказания включает в себя однонаправленные режимы предсказания и поднабор возможных двунаправленных режимов предсказания, причем поднабор двунаправленных режимов предсказания включает в себя по меньшей мере одну комбинацию, включающую в себя каждый из однонаправленных режимов предсказания.
6. Способ по п.1, в котором выбранное преобразование является отделимым преобразованием, и видеоблок содержит первый видеоблок, причем способ дополнительно содержит:
сканирование остаточных коэффициентов преобразования первого видеоблока с использованием порядка сканирования коэффициентов;
сбор статистических данных, связанных по меньшей мере с частью коэффициентов;
настройку порядка сканирования коэффициентов в соответствии с собранными статистическими данными; и
сканирование коэффициентов по меньшей мере одного последующего видеоблока с использованием перестроенного порядка сканирования коэффициентов, когда в блоке кодирования первого видеоблока существует по меньшей мере один последующий видеоблок.
7. Способ по п.6, в котором:
сбор статистических данных по меньшей мере для части коэффициентов содержит поддержку отсчитанного значения, соответствующего каждой позиции в упомянутой части двумерного представления коэффициентов, которое отслеживает количество попаданий ненулевых коэффициентов на каждую из позиций в упомянутой части двумерного представления коэффициентов; и
настройка порядка сканирования коэффициентов содержит настройку порядка сканирования коэффициентов для создания настроенного порядка сканирования коэффициентов, при котором позиции коэффициентов сканируют в убывающем порядке на основе отсчитанных значений позиций коэффициентов.
8. Способ по п.7, дополнительно содержащий нормализацию собранных статистических данных, когда одно из отсчитанных значений достигает порогового отсчитанного значения, где нормализация собранных статистических данных содержит одно из сокращения каждого из отсчитанных значений на некоторый множитель и восстановления отсчитанных значений согласно набору начальных отсчитанных значений.
9. Способ по п.6, дополнительно содержащий выбор режима предсказания видеоблока из множества режимов предсказаний, где сбор статистических данных и настройка порядка сканирования коэффициентов содержит сбор статистических данных и настройку порядка сканирования коэффициентов отдельно для каждого из множества режимов предсказания.
10. Способ по п.6, в котором первый видеоблок и по меньшей мере один последующий видеоблок принадлежат первому блоку кодирования, причем способ дополнительно содержит повторную инициализацию порядка сканирования для второго блока кодирования.
11. Способ по п.1, в котором преобразования представляют собой преобразования для использования их при преобразовании остаточных пиксельных значений видеоблока в остаточные коэффициенты преобразования, и дополнительно в котором:
применение выбранного преобразования содержит применение выбранного преобразования к видеоблоку для преобразования остаточных пиксельных значений видеоблока в остаточные коэффициенты преобразования; и
энтропийное кодирование содержит энтропийное кодирование остаточных коэффициентов преобразования видеоблока после применения выбранного преобразования.
12. Способ по п.1, в котором преобразования являются обратными преобразованиями для их использования при преобразовании остаточных коэффициентов преобразования в остаточные пиксельные значения видеоблока, и дополнительно в котором:
применение выбранного преобразования содержит применение выбранного обратного преобразования к видеоблоку для преобразования остаточных коэффициентов преобразования в остаточные пиксельные значения видеоблока; и
энтропийное кодирование содержит энтропийное декодирование остаточных коэффициентов преобразования видеоблока до применения выбранного преобразования;
сохранение множества преобразований для использования при преобразовании остаточных пиксельных значений видеоблока, связанных с режимами предсказания или остаточных коэффициентов преобразования видеоблока, связанных с режимами предсказания к остаточным коэффициентам преобразования видеоблока или остаточным пиксельным значениям видеоблока соответственно, где каждое из множества преобразований связано по меньшей мере с одним режимом предсказания, и по меньшей мере часть множества преобразований являются отделимыми направленными преобразованиями.
13. Устройство кодирования видеоданных, причем устройство содержит:
модуль преобразования, который:
сохраняет множество преобразований для использования при преобразовании остаточных пиксельных значений видеоблока, связанных с режимами предсказания или остаточных коэффициентов преобразования видеоблока, связанных с режимами предсказания к остаточным коэффициентам преобразования видоблока или остаточным пиксельным значениям видеоблока, соответственно,
выбирает одно из множества преобразований для видеоблока на основе, по меньшей мере частично на направленности режима предсказания, связанного с видеоблоком, и
применяет выбранное преобразование к видеоблоку для преобразования остаточных пиксельных значений видеоблока к остаточным коэффициентам преобразования видеоблока,
причем каждое из множества преобразований связано по меньшей мере с одним режимом предсказания, и по меньшей мере часть множества преобразований являются отделимыми направленными преобразованиями; и
модуль энтропийного кодирования, который выполняет энтропийное кодирование остаточных коэффициентов преобразования видеоблока.
14. Устройство по п.13, в котором каждое отделимое направленное преобразование включает в себя матрицу преобразования столбцов размером N×N и матрицу преобразования строк размером N×N, где N×N размерность видеоблока.
15. Устройство по п.13, в котором множество преобразований дополнительно включает в себя дискретное косинусное преобразование (DCT) или целочисленное преобразование, и модуль преобразования:
выбирает дискретное косинусное преобразование (DCT) или целочисленное преобразование для применения к видеоблоку, когда выбранный режим предсказания проявляет ограниченную направленность, и
выбирает одно из множества отделимых направленных преобразований для применения к видеоблоку, когда выбранный режим предсказания проявляет направленность.
16. Устройство по п.15, дополнительно содержащее:
модуль предсказания, который выбирает режим предсказания видеоблока из набора режимов предсказания, который включает в себя однонаправленные режимы предсказания и многонаправленные режимы предсказания, которые объединяют по меньшей мере два однонаправленных режима предсказания,
где модуль преобразования выбирает DCT или целочисленное преобразования для применения к видеоблоку, когда выбранным режимом предсказания является либо DC однонаправленный режим предсказания, либо многонаправленный режим предсказания, который объединяет по меньшей мере два режима предсказания, указывающие по существу в ортогональные направления.
17. Устройство по п.16, в котором набор режимов предсказания включает в себя однонаправленные режимы предсказания и поднабор возможных двунаправленных режимов предсказания, причем поднабор двунаправленных режимов предсказания включает в себя по меньшей мере одну комбинацию, включающую в себя каждый из однонаправленных режимов предсказания.
18. Устройство по п.13, в котором выбранное преобразование является отделимым преобразованием и видеоблок содержит первый видеоблок, причем устройство дополнительно содержит модуль сканирования, который:
сканирует остаточные коэффициенты преобразования первого видеоблока с использованием порядка сканирования коэффициентов,
собирает статистические данные, связанные по меньшей мере с частью коэффициентов;
настраивает порядок сканирования коэффициентов в соответствии с собранными статистическими данными; и
сканирует коэффициенты по меньшей мере одного последующего видеоблока с использованием настроенного порядка сканирования коэффициентов, когда в блоке кодирования первого видеоблока существует по меньшей мере один последующий видеоблок.
19. Устройство по п.18, в котором модуль сканирования:
поддерживает отсчитанное значение, соответствующее каждой позиции в упомянутой части двумерного представления коэффициентов, которое отслеживает количество попаданий ненулевых коэффициентов на каждую из позиций в упомянутой части двумерного представления коэффициентов; и
настраивает порядок сканирования коэффициентов, что содержит настройку порядка сканирования коэффициентов для создания настроенного порядка сканирования коэффициентов, при котором позиции коэффициентов сканируются в убывающем порядке на основе отсчитанных значений позиций коэффициентов.
20. Устройство по п.19, в котором модуль сканирования нормализует собранные статистические данные, когда одно из отсчитанных значений достигает порогового отсчитанного значения где нормализация собранных статистических данных содержит одно из сокращения каждого из отсчитанных значений на некоторый множитель и восстановления отсчитанных значений согласно набору начальных отсчитанных значений.
21. Устройство по п.18, в котором:
модуль предсказания выбирает режим предсказания видеоблока из множества режимов предсказаний, и
модуль сканирования собирает статистические данные и настраивает порядок сканирования коэффициентов отдельно для каждого из множества режимов предсказания.
22. Устройство по п.18, в котором первый видеоблок и по меньшей мере один последующий видеоблок принадлежат первому блоку кодирования, и модуль сканирования выполняет повторную инициализацию порядка сканирования для второго блока кодирования.
23. Устройство по п.13, в котором преобразования представляют собой преобразования для использования их при преобразовании остаточных пиксельных значений видеоблока в остаточные коэффициенты преобразования, и дополнительно в котором:
модуль преобразования применяет выбранное преобразование к видеоблоку для преобразования остаточных пиксельных значений видеоблока в остаточные коэффициенты преобразования; и
модуль энтропийного кодирования выполняет энтропийное кодирование остаточных коэффициентов преобразования видеоблока после применения выбранного преобразования.
24. Устройство по п.13, в котором преобразования являются обратными преобразованиями для их использования при преобразовании остаточных коэффициентов преобразования в остаточные пиксельные значения видеоблока, и дополнительно в котором:
модуль преобразования применяет выбранное обратное преобразование к видеоблоку для преобразования остаточных коэффициентов преобразования в остаточные пиксельные значения видеоблока; и
модуль энтропийного кодирования выполняет энтропийное декодирование остаточных коэффициентов преобразования видеоблока до применения выбранного преобразования.
25. Устройство по п.13, в котором устройство является устройством беспроводной связи.
26. Устройство по п.13, в котором по меньшей мере один из модуля преобразования или модуля кодирования устройства является устройством на интегральной схеме.
27. Считываемый компьютером носитель, на котором сохранены команды, которые при их выполнении в устройстве видеокодирования заставляют устройство кодировать видеоблоки, причем указанные команды заставляют устройство:
сохранять множество преобразований для использования при преобразовании остаточных пиксельных значений видеоблока, связанных с режимами предсказания или остаточных коэффициентов преобразования видеоблока, связанных с режимами предсказания к остаточным коэффициентам преобразования видеоблока или остаточным пиксельным значениям видеоблока, соответственно, где каждое из множества преобразований связано по меньшей мере с одним режимом предсказания, и по меньшей мере часть множества преобразований являются отделимыми направленными преобразованиями;
выбирать одно из множества преобразований для видеоблока на основе по меньшей мере частично на направленности режима предсказания, связанного с видеоблоком;
применять выбранное преобразование к видеоблоку для преобразования остаточных пиксельных значений видеоблока к остаточным коэффициентам преобразования видеоблока; и выполнять энтропийное кодирование остаточных коэффициентов преобразования видеоблока.
28. Считываемый компьютером носитель по п.27, в котором каждое отделимое направленное преобразование включает в себя матрицу преобразования столбцов размером N×N и матрицу преобразования строк размером N×N, где N×N размерность видеоблока.
29. Считываемый компьютером носитель по п.27, в котором множество преобразований дополнительно включает в себя дискретное косинусное преобразование (DCT) или целочисленное преобразование, и команды заставляют устройство: выбирать дискретное косинусное преобразование (DCT) или целочисленное преобразование для применения к видеоблоку, когда выбранный режим предсказания отличается ограниченной направленностью; и выбирать одно из множества отделимых направленных преобразований для применения к видеоблоку, когда выбранный режим предсказания проявляет направленность.
30. Считываемый компьютером носитель по п.29, в котором команды заставляют устройство:
выбирать режим предсказания видеоблока из набора режимов предсказания, который включает в себя однонаправленные режимы предсказания и многонаправленные режимы предсказания, которые объединяют по меньшей мере два однонаправленных режима предсказания,
выбирать DCT или целочисленное преобразование для применения к видеоблоку, когда выбранным режимом предсказания является либо DC однонаправленный режим предсказания, либо многонаправленный режим предсказания, который объединяет по меньшей мере два режима предсказания, указывающие, по существу, ортогональные направления.
31. Считываемый компьютером носитель по п.27, в котором выбранное преобразование является отделимым преобразованием, а видеоблок содержит первый видеоблок, и команды заставляют устройство:
сканировать остаточные коэффициенты преобразования первого видеоблока с использованием порядка сканирования коэффициентов;
собирать статистические данные, связанные по меньшей мере с частью коэффициентов;
настраивать порядок сканирования коэффициентов в соответствии с собранными статистическими данными; и
сканировать коэффициенты по меньшей мере одного последующего видеоблока с использованием настроенного порядка сканирования коэффициентов, когда в блоке кодирования первого видеоблока существует по меньшей мере один последующий видеоблок.
32. Считываемый компьютером носитель по п.31, в котором команды заставляют устройство:
поддерживать отсчитанное значение, соответствующее каждой позиции в упомянутой части двумерного представления коэффициентов, которое отслеживает количество попаданий ненулевых коэффициентов на каждую из позиций в упомянутой части двумерного представления коэффициентов; и
настраивать порядок сканирования коэффициентов, что содержит настройку порядка сканирования коэффициентов для создания настроенного порядка сканирования коэффициентов, при котором позиции коэффициентов сканируются в убывающем порядке на основе отсчитанных значений позиций коэффициентов.
33. Считываемый компьютером носитель по п.32, в котором команды заставляют устройство нормализовать собранные статистические данные, когда одно из отсчитанных значений достигает порогового отсчитанного значения, где нормализация собранных статистических данных содержит одно из сокращения каждого из отсчитанных значений на некоторый множитель и восстановления отсчитанных значений согласно набору начальных отсчитанных значений.
34. Считываемый компьютером носитель по п.31, в котором команды заставляют устройство собирать статистические данные и настраивать порядок сканирования коэффициентов отдельно для каждого из множества режимов предсказания.
35. Считываемый компьютером носитель по п.31, в котором первый видеоблок и по меньшей мере один последующий видеоблок принадлежат первому блоку кодирования, и команды заставляют устройство выполнять повторную инициализацию порядка сканирования для второго блока кодирования.
36. Считываемый компьютером носитель по п.27, в котором преобразования являются преобразованиями для использования их при преобразовании остаточных пиксельных значений видеоблока в остаточные коэффициенты преобразования, и дополнительно в котором команды заставляют устройство:
применять выбранное преобразование к видеоблоку для преобразования остаточных пиксельных значений видеоблока в остаточные коэффициенты преобразования; и
выполнять энтропийное кодирование остаточных коэффициентов преобразования видеоблока после применения выбранного преобразования.
37. Считываемый компьютером носитель по п.27, в котором преобразования являются обратными преобразованиями для их использования при преобразовании остаточных коэффициентов преобразования в остаточные пиксельные значения видеоблока, и дополнительно в котором команды заставляют устройство:
применять выбранное обратное преобразование к видеоблоку для преобразования остаточных коэффициентов преобразования в остаточные пиксельные значения видеоблока; и
выполнять энтропийное декодирование остаточных коэффициентов преобразования видеоблока до применения выбранного преобразования.
38. Устройство кодирования видеоданных, причем устройство содержит:
средство сохранения множества преобразований для использования при преобразовании между остаточными пиксельными значениями видеоблока связанного с режимами предсказания или остаточных коэффициентов преобразования видеоблока, связанного с режимами предсказания к остаточным коэффициентам преобразования видоблока или остаточным пиксельным значениям видеоблока, соответственно, где каждое из множества преобразований связано по меньшей мере с одним режимом предсказания, и по меньшей мере часть множества преобразований являются отделимыми направленными преобразованиями; средство выбора одного из множества преобразований для видеоблока на основе по меньшей мере частично на направленности режима предсказания видеоблока; средство применения выбранного преобразования к видеоблоку для преобразования остаточных пиксельных значений видеоблока к остаточным коэффициентам преобразования видеоблока; и средство энтропийного кодирования остаточных коэффициентов преобразования видеоблока.
39. Устройство по п.38, в котором каждое отделимое направленное преобразование включает в себя матрицу преобразования столбцов размером N×N и матрицу преобразования строк размером N×N, где N×N размерность видеоблока.
40. Устройство по п.38, в котором множество преобразований дополнительно включает в себя дискретное косинусное преобразование (DCT) или целочисленное преобразование, и средство выбора преобразования выбирает дискретное косинусное преобразование (DCT) или целочисленное преобразование для применения к видеоблоку, когда выбранный режим предсказания проявляет ограниченную направленность, и выбирает одно из множества отделимых направленных преобразований для применения к видеоблоку, когда выбранный режим предсказания проявляет направленность.
41. Устройство по п.40, дополнительно содержащее:
средство выбора режима предсказания видеоблока из набора режимов предсказания, который включает в себя однонаправленные режимы предсказания и многонаправленные режимы предсказания, которые объединяют по меньшей мере два однонаправленных режима предсказания,
причем средство выбора преобразования выбирает DCT или целочисленное преобразование для применения к видеоблоку, когда выбранным режимом предсказания является либо DC однонаправленный режим предсказания, либо многонаправленный режим предсказания, который объединяет по меньшей мере два режима предсказания, указывающие, по существу, ортогональные направления.
42. Устройство по п.41, в котором набор режимов предсказания включает в себя однонаправленные режимы предсказания и поднабор возможных двунаправленных режимов предсказания, причем поднабор двунаправленных режимов предсказания включает в себя по меньшей мере одну комбинацию, включающую в себя каждый из однонаправленных режимов предсказания.
43. Устройство по п.38, в котором выбранное преобразование является отделимым преобразованием, и видеоблок содержит первый видеоблок, причем устройство дополнительно содержит:
средство сканирования остаточных коэффициентов преобразования первого видеоблока с использованием порядка сканирования коэффициентов;
средство сбора статистических данных, связанных по меньшей мере с частью коэффициентов;
средство настройки порядка сканирования коэффициентов в соответствии с собранными статистическими данными,
причем средство сканирования коэффициентов сканирует коэффициенты по меньшей мере одного последующего видеоблока с использованием настроенного порядка сканирования коэффициентов, когда в блоке кодирования первого видеоблока существует по меньшей мере один последующий видеоблок.
44. Устройство по п.43, в котором:
средство сбора статистических данных поддерживает отсчитанное значение, соответствующее каждой позиции в упомянутой части двумерного представления коэффициентов, которое отслеживает количество попаданий ненулевых коэффициентов на каждую из позиций в упомянутой части двумерного представления коэффициентов; и
средство настройки настраивает порядок сканирования коэффициентов для создания настроенного порядка сканирования коэффициентов, при котором позиции коэффициентов сканируют в убывающем порядке на основе отсчитанных значений позиций коэффициентов.
45. Устройство по п.44, дополнительно содержащее средство нормализации собранных статистических данных, когда одно из отсчитанных значений достигает порогового отсчитанного значения, причем средство нормализации нормализует собранные статистические данных, выполняя одно из сокращения каждого из отсчитанных значений на некоторый множитель и восстановления отсчитанных значений согласно набору начальных отсчитанных значений.
46. Устройство по п.43, дополнительно содержащее средство выбора режима предсказания видеоблока из множества режимов предсказаний, причем средство сбора статистических данных и средство настройки собирают статистические данные и настраивают порядок сканирования коэффициентов отдельно для каждого из множества режимов предсказания.
47. Устройство по п.43, в котором первый видеоблок и по меньшей мере один последующий видеоблок принадлежат первому блоку кодирования, и средство настройки выполняет повторную инициализацию порядка сканирования для второго блока кодирования.
48. Устройство по п.38, в котором преобразования представляют собой преобразования для использования при преобразовании остаточных пиксельных значений видеоблока в остаточные коэффициенты преобразования, и дополнительно в котором:
средство применения применяет выбранное преобразование к видеоблоку для преобразования остаточных пиксельных значений видеоблока в остаточные коэффициенты преобразования; и
средство энтропийного кодирования выполняет энтропийное кодирование остаточных коэффициентов преобразования видеоблока после применения выбранного преобразования.
49. Устройство по п.38, в котором преобразования являются обратными преобразованиями для их использования при преобразовании остаточных коэффициентов преобразования в остаточные пиксельные значения видеоблока, и дополнительно в котором:
средство применения применяет выбранное обратное преобразование к видеоблоку для преобразования остаточных коэффициентов преобразования в остаточные пиксельные значения видеоблока; и
средство энтропийного кодирования выполняет энтропийное декодирование остаточных коэффициентов преобразования видеоблока до применения выбранного преобразования.
RU2010101053/07A 2007-06-15 2008-06-13 Отделимые направленные преобразования RU2463729C2 (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,257 2008-06-04

Publications (2)

Publication Number Publication Date
RU2010101053A RU2010101053A (ru) 2011-07-20
RU2463729C2 true RU2463729C2 (ru) 2012-10-10

Family

ID=40132292

Family Applications (4)

Application Number Title Priority Date Filing Date
RU2010101116/07A RU2447612C2 (ru) 2007-06-15 2008-06-12 Адаптивное сканирование коэффициентов при кодировании видео
RU2010101115/09A RU2434360C2 (ru) 2007-06-15 2008-06-12 Адаптивное кодирование режима прогнозирования видеоблоков
RU2010101053/07A RU2463729C2 (ru) 2007-06-15 2008-06-13 Отделимые направленные преобразования
RU2010101085/07A RU2446615C2 (ru) 2007-06-15 2008-06-13 Адаптивное сканирование коэффициентов для кодирования видео

Family Applications Before (2)

Application Number Title Priority Date Filing Date
RU2010101116/07A RU2447612C2 (ru) 2007-06-15 2008-06-12 Адаптивное сканирование коэффициентов при кодировании видео
RU2010101115/09A RU2434360C2 (ru) 2007-06-15 2008-06-12 Адаптивное кодирование режима прогнозирования видеоблоков

Family Applications After (1)

Application Number Title Priority Date Filing Date
RU2010101085/07A RU2446615C2 (ru) 2007-06-15 2008-06-13 Адаптивное сканирование коэффициентов для кодирования видео

Country Status (14)

Country Link
US (5) US8488668B2 (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) RU2447612C2 (ru)
TW (3) TW200915880A (ru)
WO (3) WO2008157269A2 (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11336907B2 (en) 2018-07-16 2022-05-17 Huawei Technologies Co., Ltd. Video encoder, video decoder, and corresponding encoding and decoding methods
RU2772813C1 (ru) * 2018-07-16 2022-05-26 Хуавей Текнолоджиз Ко., Лтд. Видеокодер, видеодекодер и соответствующие способы кодирования и декодирования

Families Citing this family (274)

* 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
US8406299B2 (en) * 2007-04-17 2013-03-26 Qualcomm Incorporated Directional transforms for intra-coding
US8488668B2 (en) * 2007-06-15 2013-07-16 Qualcomm Incorporated Adaptive coefficient scanning for video coding
US8571104B2 (en) * 2007-06-15 2013-10-29 Qualcomm, Incorporated Adaptive coefficient scanning in video coding
CN103338365B (zh) 2007-06-29 2017-04-12 夏普株式会社 图像编码装置、图像编码方法、图像译码装置、图像译码方法
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 삼성전자주식회사 변환 계수의 부호화, 복호화 방법 및 장치
JP5166339B2 (ja) * 2008-03-28 2013-03-21 三星電子株式会社 画像のイントラ予測モード情報の符号化及び/又は復号化方法及び装置
US8542748B2 (en) 2008-03-28 2013-09-24 Sharp Laboratories Of America, Inc. Methods and systems for parallel video encoding and decoding
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
KR20110106403A (ko) * 2009-01-27 2011-09-28 톰슨 라이센싱 비디오 인코딩 및 디코딩에서 변환 선택을 위한 방법 및 장치
KR101710619B1 (ko) * 2009-02-04 2017-02-28 삼성전자주식회사 단계적인 영상 부호화, 복호화 방법 및 장치
KR101690291B1 (ko) * 2009-02-05 2016-12-27 톰슨 라이센싱 적응형 모드 비디오 인코딩 및 디코딩 방법 및 장치
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 에스케이 텔레콤주식회사 예측 모드 선택 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2010131903A2 (en) 2009-05-12 2010-11-18 Lg Electronics Inc. Method and apparatus for processing a video signal
US8451903B2 (en) * 2009-05-14 2013-05-28 Massachusetts Institute Of Technology Selecting transforms for compressing visual data
US8509309B2 (en) 2009-05-14 2013-08-13 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
US9245529B2 (en) * 2009-06-18 2016-01-26 Texas Instruments Incorporated Adaptive encoding of a digital signal with one or more missing values
US8873626B2 (en) * 2009-07-02 2014-10-28 Qualcomm Incorporated Template matching for video coding
CN101945270B (zh) * 2009-07-06 2013-06-19 联发科技(新加坡)私人有限公司 视频编码器、进行内部预测及进行视频数据压缩的方法
EP2457377A1 (en) * 2009-07-23 2012-05-30 Thomson Licensing Methods and apparatus for adaptive transform selection for video encoding and decoding
EP2457378A4 (en) * 2009-07-23 2016-08-10 Ericsson Telefon Ab L M METHOD AND DEVICE FOR IMAGE CODING 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 삼성전자 주식회사 유연한 직교 변환에 기초한 영상 부호화, 복호화 방법 및 장치
CN102577379B (zh) * 2009-10-05 2017-12-19 汤姆逊许可证公司 用于视频编码和译码中的嵌入量化参数调节的方法和装置
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 华为技术有限公司 一种视频编解码方法及设备
KR20110045949A (ko) 2009-10-28 2011-05-04 삼성전자주식회사 회전 변환을 이용한 영상 부호화, 복호화 방법 및 장치
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
KR101457894B1 (ko) * 2009-10-28 2014-11-05 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
TWI396448B (zh) * 2009-10-30 2013-05-11 Hon Hai Prec Ind Co Ltd 熵解碼裝置
KR20110065092A (ko) * 2009-12-09 2011-06-15 삼성전자주식회사 회전 변환을 이용한 영상 부호화, 복호화 방법 및 장치
KR101441879B1 (ko) * 2009-12-09 2014-09-23 에스케이텔레콤 주식회사 영상 부호화 장치 및 방법, 및 거기에 이용되는 변환 부호화 장치 및 방법, 변환기저 생성장치 및 방법, 및 영상 복호화 장치 및 방법
KR20110065089A (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 視訊解碼解塊之裝置與方法
JP5323209B2 (ja) * 2010-01-07 2013-10-23 株式会社東芝 動画像符号化装置及び動画像復号化装置
JP5597782B2 (ja) * 2010-01-07 2014-10-01 株式会社東芝 動画像符号化装置及び動画像復号化装置
JP5696248B2 (ja) * 2010-01-07 2015-04-08 株式会社東芝 動画像符号化装置及び動画像復号化装置
JP5908619B2 (ja) * 2010-01-07 2016-04-26 株式会社東芝 動画像符号化装置及び動画像復号化装置
JP5432359B2 (ja) * 2010-01-07 2014-03-05 株式会社東芝 動画像符号化装置、方法及びプログラム
JP5525650B2 (ja) * 2010-01-07 2014-06-18 株式会社東芝 動画像復号化装置、方法及びプログラム
JP5432412B1 (ja) * 2010-01-07 2014-03-05 株式会社東芝 動画像符号化装置及び動画像復号化装置
JP5526277B2 (ja) * 2010-01-07 2014-06-18 株式会社東芝 動画像復号化装置、方法及びプログラム
WO2011083573A1 (ja) * 2010-01-07 2011-07-14 株式会社 東芝 動画像符号化装置及び動画像復号化装置
US8885714B2 (en) * 2010-01-14 2014-11-11 Texas Instruments Incorporated Method and system for intracoding in video encoding
KR20110090781A (ko) * 2010-02-02 2011-08-10 (주)휴맥스 율-왜곡 최적화를 위한 영상 부호화/복호화 방법 및 이를 수행하는 장치
KR101495724B1 (ko) 2010-02-02 2015-02-25 삼성전자주식회사 계층적 데이터 단위의 스캔 순서에 기반한 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
WO2011108240A1 (ja) * 2010-03-01 2011-09-09 パナソニック株式会社 画像符号化方法および画像復号方法
JP5908848B2 (ja) * 2010-03-10 2016-04-26 トムソン ライセンシングThomson Licensing 変換選択を有するビデオ符号化および復号のための制約付きの変換を行う方法および装置
US20110249741A1 (en) * 2010-04-09 2011-10-13 Jie Zhao Methods and Systems for Intra Prediction
JP5914962B2 (ja) * 2010-04-09 2016-05-11 ソニー株式会社 画像処理装置および方法、プログラム、並びに、記録媒体
CN102215390B (zh) * 2010-04-09 2014-07-09 华为技术有限公司 图像编解码处理方法和装置
CN102215391B (zh) * 2010-04-09 2013-08-28 华为技术有限公司 视频数据编码、解码方法及装置、变换处理方法及装置
US8705619B2 (en) * 2010-04-09 2014-04-22 Sony Corporation Directional discrete wavelet transform (DDWT) for video compression applications
CN102215388B (zh) * 2010-04-09 2013-11-06 华为技术有限公司 一种简化方向性变换的方法、装置和***
US20110249743A1 (en) * 2010-04-09 2011-10-13 Jie Zhao Super-block for high performance video coding
US8644375B2 (en) 2010-04-09 2014-02-04 Sharp Laboratories Of America, Inc. Methods and systems for intra prediction
US8619857B2 (en) 2010-04-09 2013-12-31 Sharp Laboratories Of America, Inc. Methods and systems for intra prediction
HRP20220743T1 (hr) 2010-04-13 2022-08-19 Ge Video Compression, Llc Kodiranje signifikacijskih mapa i blokova koeficijenata transformacije
CN106231336B (zh) 2010-04-13 2020-06-12 Ge视频压缩有限责任公司 解码器、解码方法、编码器以及编码方法
KR102282803B1 (ko) 2010-04-13 2021-07-28 지이 비디오 컴프레션, 엘엘씨 평면 간 예측
DK3301648T3 (da) 2010-04-13 2020-04-06 Ge Video Compression Llc Nedarvning i samplearraymultitræsunderinddeling
WO2011127963A1 (en) * 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Sample region merging
KR102145722B1 (ko) * 2010-04-13 2020-08-20 지이 비디오 컴프레션, 엘엘씨 샘플 영역 병합
KR101791078B1 (ko) * 2010-04-16 2017-10-30 에스케이텔레콤 주식회사 영상 부호화/복호화 장치 및 방법
US8798131B1 (en) 2010-05-18 2014-08-05 Google Inc. Apparatus and method for encoding video using assumed values with intra-prediction
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 华为技术有限公司 编码方法、解码方法、编码装置、解码装置及编解码***
US9661338B2 (en) 2010-07-09 2017-05-23 Qualcomm Incorporated Coding syntax elements for adaptive scans of transform coefficients for video coding
US8396305B2 (en) 2010-07-09 2013-03-12 Sony Corporation Image compression utilizing ring-tree entropy coding and directional transforms
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
CN101895756B (zh) * 2010-07-15 2012-10-31 北京大学 视频图像块的编码、解码、重构方法及***
US8855188B2 (en) * 2010-07-15 2014-10-07 Sharp Laboratories Of America, Inc. Method of parallel video coding based on mapping
US8873617B2 (en) * 2010-07-15 2014-10-28 Sharp Laboratories Of America, Inc. Method of parallel video coding based on same sized blocks
MX338867B (es) 2010-07-15 2016-05-03 Toshiba Kk Metodo de codificación de imágenes y método de descodificacion de imágenes.
MY186093A (en) * 2010-07-15 2021-06-21 Velos Media Int Ltd Image encoding device, and image decoding device
JP2012023632A (ja) * 2010-07-15 2012-02-02 Sony Corp 符号化装置および符号化方法、並びに、復号装置および復号方法
CN101895757A (zh) * 2010-07-15 2010-11-24 北京大学 预测残差块的重排序、逆重排序方法及***
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 엠앤케이홀딩스 주식회사 예측 블록 생성 장치
US10123009B2 (en) * 2010-08-17 2018-11-06 M&K Holdings Inc. Apparatus for encoding an image
US11284072B2 (en) 2010-08-17 2022-03-22 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
US9378185B2 (en) 2010-09-30 2016-06-28 Texas Instruments Incorporated Transform and quantization architecture for video coding and decoding
CN102447895B (zh) * 2010-09-30 2013-10-02 华为技术有限公司 扫描方法及装置、反扫描方法及装置
US8923395B2 (en) * 2010-10-01 2014-12-30 Qualcomm Incorporated Video coding using intra-prediction
US9313514B2 (en) 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization
WO2012048052A1 (en) * 2010-10-05 2012-04-12 General Instrument Corporation Method and apparatus for feature based video coding
US9532059B2 (en) 2010-10-05 2016-12-27 Google Technology Holdings LLC Method and apparatus for spatial scalability for video coding
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
US9288496B2 (en) 2010-12-03 2016-03-15 Qualcomm Incorporated Video coding using function-based scan order for transform coefficients
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
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 한국전자통신연구원 화면 내 예측 방향 정보 부호화/복호화 방법 및 그 장치
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
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
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
CA2822929C (en) 2011-01-04 2016-07-12 Research In Motion Limited Coding of residual data in predictive compression
CA2822925C (en) * 2011-01-04 2017-09-19 Research In Motion Limited Coding of residual data in predictive compression
EP2663075B1 (en) * 2011-01-06 2020-05-06 Samsung Electronics Co., Ltd Encoding method and device of video using data unit of hierarchical structure, and decoding method and device thereof
PL3826306T3 (pl) * 2011-01-07 2023-03-20 Ntt Docomo, Inc. Sposób kodowania predykcyjnego, urządzenie do kodowania predykcyjnego, i program do kodowania predykcyjnego dla wektora ruchu oraz sposób dekodowania predykcyjnego, urządzenie do dekodowania predykcyjnego, i program do dekodowania predykcyjnego dla wektora ruchu
CN103503458B (zh) 2011-01-07 2017-09-22 诺基亚技术有限公司 视频编码中的运动预测
US9071851B2 (en) * 2011-01-10 2015-06-30 Qualcomm Incorporated Adaptively performing smoothing operations
JP5850214B2 (ja) * 2011-01-11 2016-02-03 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
US9210442B2 (en) 2011-01-12 2015-12-08 Google Technology Holdings LLC Efficient transform unit representation
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
JP5781313B2 (ja) * 2011-01-12 2015-09-16 株式会社Nttドコモ 画像予測符号化方法、画像予測符号化装置、画像予測符号化プログラム、画像予測復号方法、画像予測復号装置及び画像予測復号プログラム
US8811759B2 (en) * 2011-01-13 2014-08-19 Sony Corporation System and method for effectively performing an intra prediction procedure
CN102595129B (zh) * 2011-01-14 2016-01-13 索尼公司 用于hevc的帧内色度模式信令的码字分配
US9232227B2 (en) * 2011-01-14 2016-01-05 Sony Corporation Codeword space reduction for intra chroma mode signaling for HEVC
US20120183064A1 (en) * 2011-01-14 2012-07-19 Sony Corporation Codeword assignment for intra chroma mode signaling for hevc
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
US9497466B2 (en) * 2011-01-17 2016-11-15 Mediatek Inc. Buffering apparatus for buffering multi-partition video/image bitstream and related method thereof
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
US9106913B2 (en) 2011-03-08 2015-08-11 Qualcomm Incorporated Coding of transform coefficients for video coding
US10397577B2 (en) * 2011-03-08 2019-08-27 Velos Media, Llc Inverse scan order for significance map coding of transform coefficients in video coding
CN102685503B (zh) 2011-03-10 2014-06-25 华为技术有限公司 变换系数的编码方法、变换系数的解码方法,和装置
KR20140018873A (ko) * 2011-04-07 2014-02-13 엘지전자 주식회사 영상 정보 부호화 방법 및 복호화 방법
CN102238387B (zh) * 2011-05-25 2017-07-18 深圳市云宙多媒体技术有限公司 一种视频熵编码、熵解码方法、装置
CN105187834B (zh) * 2011-06-17 2017-06-27 Jvc建伍株式会社 图像解码装置、图像解码方法及接收装置、接收方法
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
US9516316B2 (en) 2011-06-29 2016-12-06 Qualcomm Incorporated VLC coefficient coding for large chroma block
WO2013003791A1 (en) * 2011-06-29 2013-01-03 General Instrument Corporation Methods and system for using a scan coding pattern during inter coding
US9445093B2 (en) * 2011-06-29 2016-09-13 Qualcomm Incorporated Multiple zone scanning order for video coding
US9392301B2 (en) 2011-07-01 2016-07-12 Qualcomm Incorporated Context adaptive entropy coding for non-square blocks in video coding
US8929455B2 (en) * 2011-07-01 2015-01-06 Mitsubishi Electric Research Laboratories, Inc. Method for selecting transform types from mapping table for prediction modes
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变换的方法
KR20140057683A (ko) * 2011-08-29 2014-05-13 주식회사 아이벡스피티홀딩스 머지 모드에서 영상 부호화 방법
GB2494468B (en) 2011-09-12 2014-01-15 Canon Kk Method and device for encoding or decoding information representing prediction modes
EP2756678B1 (en) 2011-09-15 2017-04-19 VID SCALE, Inc. Systems and methods for spatial prediction
GB2555287B (en) * 2011-10-17 2018-11-07 Kt Corp Video decoding method using transform method selected from a transform method set
KR101738289B1 (ko) * 2011-10-17 2017-05-19 가부시끼가이샤 도시바 복호 장치 및 복호 방법
KR101550726B1 (ko) 2011-10-17 2015-09-07 주식회사 케이티 영상 부호화/복호화 방법 및 그 장치
RU2719340C2 (ru) 2011-10-18 2020-04-17 Кт Корпорейшен Способ декодирования видеосигнала
MX358516B (es) * 2011-10-19 2018-08-24 Kt Corp Método y aparato para codificar/decodificar imágenes.
KR101598142B1 (ko) 2011-10-31 2016-02-26 삼성전자주식회사 변환 계수 레벨의 엔트로피 부호화 및 복호화를 위한 컨텍스트 모델 결정 방법 및 장치
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
US9538177B2 (en) 2011-10-31 2017-01-03 Mediatek Inc. Apparatus and method for buffering context arrays referenced for performing entropy decoding upon multi-tile encoded picture and related entropy decoder
KR20130049522A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
KR20130049523A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 장치
JP5871628B2 (ja) * 2011-11-07 2016-03-01 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
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
KR20130050405A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 시간 후보자 결정방법
JP2013102297A (ja) 2011-11-07 2013-05-23 Canon Inc 画像符号化方法、画像符号化装置及びプログラム、画像復号方法、画像復号装置及びプログラム
TWI523497B (zh) * 2011-11-10 2016-02-21 Sony Corp Image processing apparatus and method
CN108040255A (zh) * 2011-11-21 2018-05-15 松下知识产权经营株式会社 图像处理装置以及图像处理方法
ES2864591T3 (es) * 2011-12-21 2021-10-14 Sun Patent Trust Selección de contexto para codificación por entropía de coeficientes de transformada
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 华为技术有限公司 一种编解码方法和设备
AU2012200319B2 (en) * 2012-01-19 2015-11-26 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
AU2012200345B2 (en) 2012-01-20 2014-05-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map residual coefficients of a transform unit
PH12018500138A1 (en) 2012-01-20 2018-07-09 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
PL3910947T3 (pl) 2012-03-26 2023-12-27 JVC Kenwood Corporation Urządzenie do dekodowania obrazu, sposób dekodowania obrazu i program do dekodowania obrazu
MX340383B (es) * 2012-04-15 2016-07-07 Samsung Electronics Co Ltd Metodo y aparato para determinar imagenes de referencia para inter-prediccion.
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
PL2869557T3 (pl) * 2012-06-29 2024-02-19 Electronics And Telecommunications Research Institute Sposób i urządzenie do kodowania/dekodowania obrazów
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
WO2015010268A1 (en) * 2013-07-24 2015-01-29 Microsoft Corporation 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
WO2016133356A1 (ko) * 2015-02-17 2016-08-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
WO2017088810A1 (en) 2015-11-27 2017-06-01 Mediatek Inc. Method and apparatus of entropy coding and context modelling for video and image coding
CN111526360A (zh) * 2016-02-06 2020-08-11 华为技术有限公司 图像编解码方法及装置
CA3014271C (en) 2016-02-12 2020-10-20 Huawei Technologies Co., Ltd. Method and apparatus for scan order selection
KR102210230B1 (ko) 2016-02-12 2021-01-29 후아웨이 테크놀러지 컴퍼니 리미티드 스캔 순서 선택을 위한 방법 및 장치
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
WO2017196128A1 (ko) * 2016-05-12 2017-11-16 엘지전자(주) 계수 유도 복원을 이용하여 비디오 신호를 처리하는 방법 및 장치
WO2017195917A1 (ko) * 2016-05-12 2017-11-16 엘지전자 주식회사 비디오 코딩 시스템에서 인트라 예측 방법 및 장치
CA3019490A1 (en) 2016-05-13 2017-11-16 Sony Corporation Image processing apparatus and method
CN117412045A (zh) * 2016-07-13 2024-01-16 韩国电子通信研究院 图像编码/解码方法和装置
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
KR102257829B1 (ko) 2017-04-13 2021-05-28 엘지전자 주식회사 영상의 부호화/복호화 방법 및 이를 위한 장치
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
JP7283389B2 (ja) * 2017-11-24 2023-05-30 ソニーグループ株式会社 画像処理装置および方法
US10382758B2 (en) * 2017-12-15 2019-08-13 Google Llc Transform block-level scan order selection for video coding
BR122021019694B1 (pt) 2017-12-21 2022-05-17 Lg Electronics Inc Método de decodificação / codificação de imagem realizado por um aparelho de decodificação / codificação, aparelho de decodificação/codificação para decodificação/codificação de imagem, método e aparelho de transmissão de dados que compreende um fluxo de bits para uma imagem e mídia de armazenamento digital legível por computador não transitória
CN108259897B (zh) * 2018-01-23 2021-08-27 北京易智能科技有限公司 一种基于深度学习的帧内编码优化方法
WO2019166508A1 (en) 2018-02-28 2019-09-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Composed prediction and restricted merge
JP6486528B2 (ja) * 2018-03-19 2019-03-20 株式会社Nttドコモ 画像予測復号方法及び画像予測復号装置
WO2019190284A1 (ko) * 2018-03-29 2019-10-03 엘지전자 주식회사 비디오 압축을 위한 변환 커널의 저복잡도 연산을 수행하는 방법 및 장치
WO2019245340A1 (ko) 2018-06-21 2019-12-26 주식회사 케이티 비디오 신호 처리 방법 및 장치
KR102591086B1 (ko) * 2018-09-02 2023-10-17 엘지전자 주식회사 영상 신호를 처리하기 위한 방법 및 장치
KR102432400B1 (ko) * 2018-09-02 2022-08-12 엘지전자 주식회사 영상 신호를 처리하기 위한 방법 및 장치
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
WO2020141833A1 (ko) * 2019-01-02 2020-07-09 디지털인사이트 주식회사 영상 복호화 방법, 영상 부호화 방법, 영상 복호화 장치, 영상 부호화 장치 및 컴퓨터 판독 가능한 기록 매체
EP3910950A4 (en) 2019-02-19 2022-07-13 LG Electronics Inc. VIDEO DECODING METHOD USING RESIDUAL INFORMATION IN A VIDEO CODING SYSTEM AND APPARATUS THEREOF
US11122297B2 (en) 2019-05-03 2021-09-14 Google Llc Using border-aligned block functions for image compression
JP2022538069A (ja) 2019-06-19 2022-08-31 エルジー エレクトロニクス インコーポレイティド 現在ブロックに対して最終的に予測モードを選択できない場合、インター予測を行う映像デコーディング方法及びその装置
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 北京中星微人工智能芯片技术有限公司 视频编码方法及装置、视频解码方法及装置、电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1679903A2 (en) * 2004-12-31 2006-07-12 Microsoft Corporation Adaptive coefficient scan order
EP1768415A1 (en) * 2005-09-27 2007-03-28 Matsushita Electric Industrial Co., Ltd. Adaptive scan order of DCT coefficients and its signaling
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

Family Cites Families (64)

* 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
US5424778A (en) * 1992-08-31 1995-06-13 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
AU4884397A (en) 1996-11-07 1998-05-29 Matsushita Electric Industrial Co., Ltd. Image encoder and image decoder
JP3208101B2 (ja) * 1996-11-07 2001-09-10 松下電器産業株式会社 画像符号化方法および画像符号化装置並びに画像符号化プログラムを記録した記録媒体
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
JP2900998B2 (ja) * 1997-07-31 1999-06-02 日本ビクター株式会社 ブロック間内挿予測符号化装置、復号化装置、符号化方法及び復号化方法
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.
JP4226172B2 (ja) * 1998-11-24 2009-02-18 株式会社ハイニックスセミコンダクター 適応的変換方法を用いる映像圧縮符号化装置および復号化装置ならびにその方法
MXPA02004015A (es) 1999-10-22 2003-09-25 Activesky Inc Un sistema de video orientado a los objetos.
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 微软公司 处理视频图像的方法
JP4447197B2 (ja) * 2002-01-07 2010-04-07 三菱電機株式会社 動画像符号化装置および動画像復号装置
KR100468844B1 (ko) 2002-01-07 2005-01-29 삼성전자주식회사 정지영상 및 동영상을 부호화/복호화하기 위한변환계수들의 최적주사방법
MXPA04006814A (es) 2002-01-14 2004-12-06 Nokia Corp Filtros dinamicos de codificacion.
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
EP2290990B1 (en) 2002-05-28 2014-05-07 Sharp Kabushiki Kaisha Method and systems for image intra-prediction mode estimation, communication, and organization
RU2314656C2 (ru) 2002-06-11 2008-01-10 Нокиа Корпорейшн Внутреннее кодирование, основанное на пространственном прогнозировании
CN100566420C (zh) 2002-07-15 2009-12-02 株式会社日立制作所 动态图像的编码方法
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
US8085845B2 (en) * 2003-08-26 2011-12-27 Thomson Licensing Method and apparatus for encoding hybrid intra-inter coded blocks
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
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
EP1878257A1 (en) * 2005-04-12 2008-01-16 Nokia Corporation Method and system for motion compensated fine granularity scalable video coding with drift control
BRPI0611672A2 (pt) 2005-07-22 2009-01-13 Mitsubishi Electric Corp codificador e decodificador de imagem, mÉtodo de codificaÇço de imagem, programa de codificaÇço de imagem, meio de gravaÇço legÍvel por computador, mÉtodo de decodificaÇço de imagem, programa de decodificaÇço de imagem, e, corrente de bits codificada por imagem
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 画像符号化装置および画像符号化方法
US8200033B2 (en) 2005-11-30 2012-06-12 Koninklijke Philips Electronics 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
US8488668B2 (en) * 2007-06-15 2013-07-16 Qualcomm Incorporated Adaptive coefficient scanning for video coding
US9078008B2 (en) 2009-04-20 2015-07-07 Dolby Laboratories Licensing Corporation Adaptive inter-layer 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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1679903A2 (en) * 2004-12-31 2006-07-12 Microsoft Corporation Adaptive coefficient scan order
EP1768415A1 (en) * 2005-09-27 2007-03-28 Matsushita Electric Industrial Co., Ltd. Adaptive scan order of DCT coefficients and its signaling
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

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MARTA KARCZEWICZ, Improved Intra Coding, ITU - Telecommunications Standardization Sector STUDY GROUP 16 Question 6 Video Coding Experts Group (VCEG), VCEG-AF15, 32 nd Meeting: San Jose, USA, 20-21 April, 2007. *
RU 2005113308 A, *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11336907B2 (en) 2018-07-16 2022-05-17 Huawei Technologies Co., Ltd. Video encoder, video decoder, and corresponding encoding and decoding methods
RU2772813C1 (ru) * 2018-07-16 2022-05-26 Хуавей Текнолоджиз Ко., Лтд. Видеокодер, видеодекодер и соответствующие способы кодирования и декодирования

Also Published As

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

Similar Documents

Publication Publication Date Title
RU2463729C2 (ru) Отделимые направленные преобразования
JP5259828B2 (ja) 4×4および8×8よりも大きい変換を使用するビデオ符号化
EP2824929A2 (en) Quantization based on rate-distortion modeling for cabac coders
JP2011501533A (ja) ビデオブロックヘッダ情報の適応可能なコーディング
JP2012524330A (ja) 偶数サイズ離散コサイン変換の計算
JP2011514055A (ja) Cabacコーダのための2パス量子化
KR20110129493A (ko) 비디오 코딩의 적응형 계수 스캐닝
CA2702488C (en) Improved enhancement layer coding for scalable video coding