RU2446615C2 - Адаптивное сканирование коэффициентов для кодирования видео - Google Patents

Адаптивное сканирование коэффициентов для кодирования видео Download PDF

Info

Publication number
RU2446615C2
RU2446615C2 RU2010101085/07A RU2010101085A RU2446615C2 RU 2446615 C2 RU2446615 C2 RU 2446615C2 RU 2010101085/07 A RU2010101085/07 A RU 2010101085/07A RU 2010101085 A RU2010101085 A RU 2010101085A RU 2446615 C2 RU2446615 C2 RU 2446615C2
Authority
RU
Russia
Prior art keywords
scanning
video blocks
order
blocks
coefficients
Prior art date
Application number
RU2010101085/07A
Other languages
English (en)
Other versions
RU2010101085A (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 RU2010101085A publication Critical patent/RU2010101085A/ru
Application granted granted Critical
Publication of RU2446615C2 publication Critical patent/RU2446615C2/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/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/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/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

Abstract

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

Description

Родственные заявки
Настоящая заявка притязает на приоритет в соответствии с предварительной заявкой на патент США № 60/944,470, поданной 15 июня 2007 года, а также в соответствии с предварительной заявкой на патент США № 60/979,762, поданной 12 октября 2007 года, причем информационное содержание каждой из вышеперечисленных заявок полностью включено в настоящий документ посредством ссылки.
Область техники, к которой относится изобретение
Настоящее раскрытие относится к кодированию цифрового видео и, более конкретно, к статистическому кодированию коэффициентов видеоблоков.
Уровень техники
Поддержка функциональных возможностей цифрового видео может быть включена в широкий диапазон устройств, включающий в себя цифровые телевизоры, цифровые системы прямого вещания, устройства беспроводной связи, такие как радиотелефонные трубки, системы радиовещания, личные цифровые устройства (PDA), ноутбуки или настольные компьютеры, цифровые камеры, цифровые записывающие устройства, игровые видеоустройства, игровые видеоприставки и т.п. Цифровые видеоустройства используют способы сжатия видео, такие как MPEG-2, MPEG-4 или H.264/ часть 10 MPEG-4 продвинутое кодирование видео (AVC), для более эффективной передачи и приема цифрового видео. Способы сжатия видео выполняют пространственное и временное предсказание для уменьшения или удаления избыточности, свойственной видеопоследовательностям.
В целом, сжатие видео включает в себя пространственное и/или временное предсказание. В частности, внутрикадровое кодирование основывается на пространственном предсказании для уменьшения или удаления пространственной избыточности между видеоблоками в пределах данного кодированного блока, который может включать в себя видеокадр, часть видеокадра или подобное. В отличие от этого межкадровое кодирование основывается на временном предсказании для уменьшения или удаления временной избыточности между видеоблоками последовательно кодированных блоков видеопоследовательности. При внутрикадровом кодировании видеокодер выполняет пространственное предсказание для сжатия данных на основе других данных, находящихся в пределах одного кодированного блока. При межкадровом кодировании видеокодер выполняет оценку движения и компенсацию движения для отслеживания движения соответствующих видеоблоков двух или более соседних кодированных блоков.
После пространственного или временного предсказания посредством вычитания видеоблока предсказания, сформированного в течение процесса предсказания, из первоначального видеоблока, то есть кодируемого, формируется остаточный блок. Следовательно, остаточный блок указывает различие между прогнозируемым блоком и текущим кодируемым блоком. Видеокодер может применять процессы преобразования, квантования и статистического кодирования для дополнительного уменьшения скорости передачи битов, связанной с передачей остаточного блока. Способы преобразования могут преобразовать набор пиксельных значений в коэффициенты преобразования, которые представляют энергию пиксельных значений в частотной области. Квантование применяется к коэффициентам преобразования, и, в целом, вовлекает процесс, который ограничивает количество битов, связанных с любым заданным коэффициентом. Перед статистическим кодированием видеокодер сканирует квантованный блок коэффициентов в одномерный вектор коэффициентов. Видеокодер выполняет статистическое кодирование вектора квантованных коэффициентов преобразования для дополнительного сжатия остаточных данных.
Видеодекодер может выполнять операции обратного статистического кодирования для восстановления коэффициентов. Обратное сканирование также может быть выполнено на декодере для формирования двумерных блоков из принятых одномерных векторов коэффициентов. Затем видеодекодер выполняет обратное квантование и обратное преобразование коэффициентов для получения восстановленного остаточного блока. После чего видеодекодер декодирует видеоблок предсказания на основе информации о предсказании и информации о движении. Затем видеодекодер добавляет видеоблок предсказания к соответствующему остаточному блоку для формирования восстановленного видеоблока, а также для формирования декодированной последовательности видеоинформации.
Сущность изобретения
Настоящее раскрытие описывает способы сканирования коэффициентов видеоблоков. В частности, способы настоящего раскрытия адаптируют порядок сканирования, используемый для сканирования двумерного блока коэффициентов в одномерный вектор коэффициентов на основе статистических данных, связанных с одним или несколькими предварительно кодированными блоками. Например, статистические данные, которые указывают вероятность того, что заданное значение коэффициента в каждой позиции двумерного блока равно нулю или отличается от нуля, могут быть собраны для одного или нескольких предварительно кодированных блоков. Установка порядка сканирования может быть выполнена для большей гарантии того, что ненулевые коэффициенты совместно сгруппируются в передней части одномерного вектора коэффициентов, что может повысить эффективность статистического кодирования. Сбор статистических данных и установка порядка сканирования могут быть выполнены отдельно для каждого возможного режима предсказания процесса кодирования.
В одном аспекте способ кодирования видеоданных включает в себя этап сканирования значений коэффициентов первого видеоблока с использованием порядка сканирования коэффициентов. Способ также включает в себя этап сбора статистических данных, связанных, по меньшей мере, с частью значений коэффициентов, а также этап установки порядка сканирования коэффициентов, в соответствии с собранными статистическими данными. Способ также включает в себя этап сканирования значений коэффициентов, по меньшей мере, одного последующего видеоблока с использованием установленного порядка сканирования коэффициентов в случае присутствия в кодируемом блоке первого видеоблока, по меньшей мере, одного последующего видеоблока. Способ также включает в себя этап статистического кодирования значений коэффициентов.
В другом аспекте устройство, которое кодирует видеоданные, включает в себя блок сканирования и блок статистического кодирования. Блок сканирования сканирует значения коэффициентов первого видеоблока с использованием порядка сканирования коэффициентов, собирает статистические данные, связанные, по меньшей мере, с частью значений коэффициентов, а также устанавливает порядок сканирования коэффициентов, в соответствии с собранными статистическими данными. Блок сканирования также сканирует значения коэффициентов, по меньшей мере, одного последующего видеоблока с использованием установленного порядка сканирования коэффициентов в случае присутствия в кодируемом блоке первого видеоблока, по меньшей мере, одного последующего видеоблока. Блок статистического кодирования выполняет статистическое кодирование значений коэффициентов.
В другом аспекте машиночитаемый носитель информации содержит команды, которые в результате выполнения на устройстве кодирования видео предписывают устройству кодировать видеоблоки. В частности, команды предписывают устройству сканировать значения коэффициентов первого видеоблока с использованием порядка сканирования коэффициентов, собирать статистические данные, связанные, по меньшей мере, с частью значений коэффициентов, а также устанавливать порядок сканирования коэффициентов, в соответствии с собранными статистическими данными. Команды также предписывают устройству сканировать значения коэффициентов, по меньшей мере, одного последующего видеоблока с использованием установленного порядка сканирования коэффициентов в случае присутствия в кодируемом блоке первого видеоблока, по меньшей мере, одного последующего видеоблока. Команды также предписывают устройству выполнять статистическое кодирование значений коэффициентов.
В другом аспекте устройство, которое кодирует видеоданные, включает в себя средство для сканирования значений коэффициентов первого видеоблока с использованием порядка сканирования коэффициентов, средство для сбора статистических данных, связанных, по меньшей мере, с частью значений коэффициентов, средство для установки порядка сканирования коэффициентов, в соответствии с собранными статистическими данными. Средство сканирования коэффициентов сканирует значения коэффициентов, по меньшей мере, одного последующего видеоблока с использованием установленного порядка сканирования коэффициентов в случае присутствия в кодируемом блоке первого видеоблока, по меньшей мере, одного последующего видеоблока. Устройство также включает в себя средство для статистического кодирования значений коэффициентов.
Способы, описанные в настоящем раскрытии, могут быть реализованы в аппаратных средствах, программных средствах, микропрограммных средствах или же посредством любой комбинации вышеперечисленного. При программной реализации программные средства могут быть выполнены в процессоре, который может являться одним или несколькими процессорами, таким как микропроцессор, специализированная интегральная микросхема (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 может формировать данные, основанные на компьютерной графике, в качестве исходного видео, или комбинацию живого видео и видео, сформированного на компьютере. В некоторых случаях, когда видеоисточник 18 может являться видеокамерой, устройство-источник 12 может являться так называемым камерофоном или видеотелефоном. В каждом случае захваченное, предварительно захваченное или сформированное на компьютере видео может быть закодировано посредством видеокодера 20 для передачи с устройства-источника 12 на устройство-получатель 14 посредством передатчика 22 и канала 16 связи.
Видеокодер 20 принимает видеоданные от видеоисточника 18. Видеоданные, принятые от видеоисточника 18, могут являться серией видеокадров. Видеокодер 20 делит серию кадров на кодируемые блоки, а также обрабатывает кодируемые блоки для кодирования серии видеокадров. Например, кодируемые блоки могут являться целыми кадрами или частями кадров (то есть частями). Следовательно, в некоторых случаях кадры могут быть разделены на части. Видеокодер 20 делит каждый кодируемый блок на блоки пикселей (называемые в настоящем документе видеоблоками или блоками), а также работает с видеоблоками, находящимися в пределах отдельных кодируемых блоков, для кодирования видеоданных. По существу, кодируемый блок (например, кадр или часть) может содержать несколько видеоблоков. Другими словами, видеопоследовательность может включать в себя несколько кадров, кадр может включать в себя несколько частей, а часть может включать в себя несколько видеоблоков.
Видеоблоки могут иметь фиксированный или переменный размер, а также могут отличаться по размеру, в соответствии с определенным стандартом кодирования. В качестве примера, стандарт сектора по стандартизации телекоммуникаций в составе международного телекоммуникационного союза (ITU-T) H.264/ часть 10 MPEG-4 продвинутое кодирование видео (AVC) (далее стандарт «Н.264/часть 10 MPEG-4 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), может быть подразделен на подблоки меньшего размера, а также предсказан в подблоках. В целом, макроблоки МВ и различные подблоки могут рассматриваться в качестве видеоблоков. Следовательно, макроблоки МВ могут рассматриваться в качестве видеоблоков, и в случае подразделения или подразбиения макроблоки МВ могут быть самостоятельно рассмотрены для определения наборов видеоблоков.
Для каждого видеоблока видеокодер 20 выбирает тип блока. Тип блока может указывать на то, с использованием межкадрового или внутрикадрового предсказания был предсказан блок, а также крупность блока. Например, стандарт H.264/ часть 10 MPEG-4 AVC поддерживает многие типы блоков межкадрового и внутрикадрового предсказания, включающие в себя блок межкадрового предсказания, имеющий размер, равный 16×16, блок межкадрового предсказания, имеющий размер, равный 16×8, блок межкадрового предсказания, имеющий размер, равный 8×16, блок межкадрового предсказания, имеющий размер, равный 8×8, блок межкадрового предсказания, имеющий размер, равный 8×4, блок межкадрового предсказания, имеющий размер, равный 4×8, блок межкадрового предсказания, имеющий размер, равный 4×4, блок внутрикадрового предсказания, имеющий размер, равный 16×16, блок внутрикадрового предсказания, имеющий размер, равный 8×8, и блок внутрикадрового предсказания, имеющий размер, равный 4×4. Как будет подробно описано ниже, видеокодер 20 может выбрать для каждого видеоблока один из типов блока.
Видеокодер 20 также выбирает для каждого видеоблока режим предсказания. Что касается видеоблока, кодированного с применением внутрикадрового кодирования, режим предсказания может определить способ предсказания текущего видеоблока с использованием одного или нескольких предварительно кодированных видеоблоков. Например, в стандарте H.264/часть 10 MPEG-4 AVC видеокодер 20 может выбрать один из девяти возможных режимов однонаправленного предсказания для каждого блока внутрикадрового предсказания, имеющего размер, равный 4×4: режим предсказания по вертикали, режим предсказания по горизонтали, режим предсказания DC, режим предсказания по нижней левой диагонали, режим предсказания по нижней правой диагонали, режим предсказания по правой вертикали, режим предсказания по нижней горизонтали, режим предсказания по левой вертикали и режим предсказания по верхней горизонтали. Подобные режимы предсказания используются для предсказания каждого блока внутрикадрового предсказания, имеющего размер, равный 8×8. Для блока внутрикадрового предсказания, имеющего размер 16×16, видеокодер 20 может выбрать один из четырех возможных режимов однонаправленного предсказания: режим предсказания по вертикали, режим предсказания по горизонтали, режим предсказания DC и режим предсказания по плоскости. В некоторых случаях видеокодер 20 может выбрать режим предсказания из набора режимов предсказания, который включает в себя не только режимы однонаправленного предсказания, но также и один или несколько режимов многонаправленного предсказания, которые определяют комбинации режимов однонаправленного предсказания. Например, один или несколько режимов многонаправленного предсказания могут являться режимами двунаправленного предсказания, которые комбинируют два режима однонаправленного предсказания, как подробно описано ниже.
После выбора режима предсказания для видеоблока, видеокодер 20 формирует предсказанный видеоблок с использованием выбранного режима предсказания. Предсказанный видеоблок вычитается из первоначального видеоблока для формирования остаточного блока. Остаточный блок включает в себя набор значений пиксельной разности, который определяет разностный объем между пиксельными значениями первоначального видеоблока и пиксельными значениями сформированного блока предсказания. Остаточный блок может быть представлен в формате двумерного блока (например, двумерная матрица или множество значений пиксельной разности).
После формирования остаточного блока видеокодер 20 может выполнить несколько других операций с остаточным блоком, перед кодированием блока. Видеокодер 20 может применить преобразование, такое как целочисленное преобразование, дискретное косинусное (DCT) преобразование, направленное преобразование или вейвлет преобразование, к остаточному блоку пиксельных значений для создания блока коэффициентов преобразования. Следовательно, видеокодер 20 преобразовывает остаточные пиксельные значения в коэффициенты преобразования (также называемые остаточными коэффициентами преобразования). Остаточные коэффициенты преобразования могут называться блоком преобразования или блоком коэффициентов. Блок преобразования или блок коэффициентов может являться одномерным представлением коэффициентов, в случае применимости неразделимых преобразований, или двумерным представлением коэффициентов, в случае применимости разделимых преобразований. Неразделимые преобразования могут включать в себя неразделимые направленные преобразования. Разделимые преобразования могут включать в себя разделимые направленные преобразования, преобразования DCT, целочисленные преобразования и вейвлет преобразования.
После преобразования видеокодер 20 выполняет квантизацию для формирования квантованных коэффициентов преобразования (также называемых квантованными коэффициентами или квантованными остаточными коэффициентами). Кроме того, квантованные коэффициенты могут быть представлены в формате одномерного вектора или двумерного блока. Квантизация, в целом, относится к процессу, в котором коэффициенты квантуются для возможного уменьшения объема данных, используемых для представления коэффициентов. Процесс квантизации может уменьшить битовую глубину, связанную с некоторыми или же со всеми коэффициентами. Используемый в настоящем документе термин «коэффициенты» может представлять коэффициенты преобразования, квантованные коэффициенты или коэффициенты другого типа. В некоторых случаях способы настоящего раскрытия могут быть применены к остаточным пиксельным значениям, а также к коэффициентам преобразования и квантованным коэффициентам преобразования. Однако в иллюстративных целях способы настоящего раскрытия будут описаны применительно к квантованным коэффициентам преобразования.
В случае использования разделимых преобразований, а также представления блоков коэффициентов в формате двумерного блока видеокодер 20 сканирует коэффициенты из двумерного формата в одномерный формат. Другими словами, видеокодер 20 может сканировать коэффициенты из двумерного блока для последовательного преобразования коэффициентов в одномерный вектор коэффициентов. В соответствии с одним из аспектов настоящего раскрытия видеокодер 20 может установить порядок сканирования, используемый для преобразования блока коэффициентов в одно измерение на основе собранных статистических данных. Статистические данные могут включать в себя признак вероятности того, что данное значение коэффициента в каждой позиции двумерного блока равно нулю или отличается от нуля, а также может, например, включать в себя подсчет, вероятность или другую статистическую метрику, связанную с каждой позицией коэффициента двумерного блока. В некоторых случаях статистические данные могут быть собраны исключительно для подмножества позиций коэффициентов блока. Если порядок сканирования вычислен, например, после конкретного количества блоков, то порядок сканирования может быть изменен так, чтобы позиции коэффициентов в пределах блока, определенные как имеющие большую вероятность наличия ненулевых коэффициентов, сканировались до позиций коэффициентов в пределах блока, определенных как имеющие меньшую вероятность наличия ненулевых коэффициентов. Таким образом, начальный порядок сканирования может быть адаптирован для более эффективной группы ненулевых коэффициентов, находящихся в начале одномерного вектора коэффициентов, и нулевых коэффициентов, находящихся в конце одномерного вектора коэффициентов. В свою очередь это может уменьшить количество битов, затрачиваемых на статистическое кодирование, поскольку существуют более короткие интервалы нулей между ненулевыми коэффициентами в начале одномерного вектора коэффициентов, а также один более длинный интервал нулей в конце одномерного вектора коэффициентов.
После сканирования коэффициентов видеокодер 20 кодирует каждый видеоблок кодируемого блока с использованием любого множества способов статистического кодирования, таких как контекстнозависимое адаптивное кодирование с переменной длиной кодового слова (CAVLC), контекстнозависимое адаптивное бинарное арифметическое кодирование (CABAC), групповое кодирование (кодирование переменной длины) или подобное. Устройство-источник 12 передает кодированные видеоданные на устройство-получатель 14 посредством передатчика 22 и канала 16. Канал 16 связи может включать в себя любую среду проводной и беспроводной связи, такую как радиочастотный (RF) спектр или одну или несколько физических линий передачи, или любую комбинацию сред проводной и беспроводной связи. Канал 16 связи может явиться частью пакетной сети, такой как локальная сеть, глобальная сеть, или глобальной сети, такой как сеть Интернет. Канал 16 связи, в целом, представляет любую подходящую среду связи или коллекцию различных сред связи для передачи кодированных видеоданных с устройства-источника 12 на устройство-получатель 14.
Устройство-получатель 14 может включать в себя приемник 24, видеодекодер 26 и устройство 28 отображения. Приемник 24 принимает кодированный битовый видеопоток от устройства-источника 12 по каналу 16. Видеодекодер 26 применяет статистическое декодирование для декодирования кодированного битового видеопотока для получения информации заголовка и квантованных остаточных коэффициентов кодированных видеоблоков кодированного блока. Как было описано выше, квантованные остаточные коэффициенты, кодированные посредством устройства-источника 12, кодируются в качестве одномерного вектора. Вследствие этого видеодекодер 26 сканирует квантованные остаточные коэффициенты кодированных видеоблоков для преобразования одномерного вектора коэффициентов в двумерный блок квантованных остаточных коэффициентов. Подобно видеокодеру 20, видеодекодер 26 может собрать статистические данные, которые указывают вероятность того, что данная позиция коэффициента видеоблока равна нулю или же отличается от нуля, благодаря чему устанавливается порядок сканирования способом, аналогичным используемому в процессе кодирования. Следовательно, соответственные адаптивные порядки сканирования могут быть применены посредством видеодекодера 26 для обратного преобразования представления одномерного вектора последовательных квантованных коэффициентов преобразования в двумерные блоки квантованных коэффициентов преобразования.
Видеодекодер 26 восстанавливает каждый блок кодируемого блока с использованием декодированной информации заголовка и декодированной остаточной информации. В частности, видеодекодер 26 может сформировать видеоблок предсказания для текущего видеоблока, а также скомбинировать блок предсказания с соответствующим остаточным видеоблоком для восстановления каждого видеоблока. Устройство-получатель 14 может отобразить восстановленные видеоблоки пользователю посредством устройства 28 отображения. Устройство 28 отображения может включать в себя любое количество устройств отображения, таких как дисплей на электронно-лучевой трубке (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, светодиодный дисплей (LED), дисплей на органических светодиодах (OLED) или дисплей другого типа.
В некоторых случаях устройство-источник 12 и устройство-получатель 14 могут работать, по существу, симметрично. Например, как устройство-источник 12, так и устройство-получатель 14 может включать в себя компоненты кодирования и декодирования видео. Следовательно, система 10 может поддерживать одностороннюю или двухстороннюю передачу видео между устройствами 12 и 14, например, для потокового видео, широковещательной передачи видео или видеотелефонной связи. Устройство, которое включает в себя компоненты кодирования и декодирования видео, также может являться частью общего устройства кодирования, архивации и воспроизведения, такого как цифровой видеомагнитофон (DVR).
Видеокодер 20 и видеодекодер 26 могут работать в соответствии с любым множеством стандартов сжатия видео, таких как стандарты, определенные посредством экспертной группы по вопросам движущегося изображения (MPEG) в MPEG-1, MPEG-2 и MPEG-4, стандарт ITU-T H.263, стандарт 421M видеокодека общества инженеров по кино и телевидению (SMPTE) (как правило, называемый «VC-1»), стандарт, определенный посредством рабочей группы Китая по стандартизации кодирования аудио и видео (как правило, называемый «AVS»), а также любой другой стандарт кодирования видео, определенный посредством органа стандартизации или разработанный посредством организации в качестве специального стандарта. Несмотря на то, что на Фиг.1 не изображено, в некоторых аспектах как видеокодер 20, так и видеодекодер 26 могут быть объединены с кодером и декодером аудио, соответственно, а также могут включать в себя соответствующие блоки MUX-DEMUX (мультиплексирования/демультиплексирования) или другие аппаратные средства и программные средства для обработки кодирования как аудио, так и видео в общем потоке данных или же в отдельных потоках данных. В этом способе устройство-источник 12 и устройство-получатель 14 могут работать с мультимедийными данными. В случае необходимости блоки MUX-DEMUX могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол передачи пользовательских датаграмм (UDP).
В некоторых аспектах при широковещательной передаче видео описанные в настоящем раскрытии способы могут быть применены к расширенному стандарту Н.264 кодирования видео для предоставления услуг передачи видео в реальном времени в мобильных системах наземной многоадресной передачи мультимедийных данных (TM3) с использованием спецификации радиоинтерфейса односторонней передачи данных по прямой линии связи (FLO). «Спецификация радиоинтерфейса односторонней передачи данных по прямой линии связи для наземной мобильной многоадресной передачи мультимедийных данных» была опубликована в июле 2007 года в качестве технического стандарта TIA-1099 («Спецификация FLO»). То есть канал 16 связи может включать в себя информационный радиоканал, используемый для беспроводной рассылки видеоинформации, в соответствии со спецификацией FLO или подобной. Спецификация FLO включает в себя примеры, определяющие синтаксис битового потока, а также семантику и процессы декодирования, подходящие для радиоинтерфейса FLO.
Альтернативно, видео может быть передано в соответствии с другими стандартами, такими как DVB-H (цифровая широковещательная передача видео для мобильных устройств), ISDB-T (цифровое наземное вещание объединенных сервисов) или DMB (цифровая широковещательная передача мультимедийных данных). Следовательно, устройство-источник 12 может являться мобильным беспроводным терминалом, потоковым видеосервером или вещательным видеосервером. Однако описанные в настоящем раскрытии способы не ограничиваются никаким конкретным типом системы широковещательной передачи, многоадресной передачи или прямой (двухточечной) связи. В случае широковещательной передачи устройство-источник 12 может транслировать несколько каналов видеоданных нескольким устройствам-получателям, каждое из которых может являться аналогичным устройству-получателю 14, изображенному на Фиг.1. Следовательно, несмотря на то, что на Фиг.1 изображено одно устройство-получатель 14, при видеовещании устройство-источник 12, как правило, передает видеоинформацию одновременно нескольким устройствам-получателям.
В других примерах передатчик 22, канал 16 связи и приемник 24 могут быть сконфигурированы для передачи информации, в соответствии с любой системой проводной или беспроводной связи, включающей в себя один или несколько нижеперечисленных вариантов: сеть Ethernet, телефон (например, POTS), кабель, линия передачи и оптоволоконные системы, и/или системой беспроводной связи, включающей в себя один или несколько нижеперечисленных вариантов: система связи множественного доступа с кодовым разделением каналов (CDMA или CDMA2000), система множественного доступа с частотным разделением каналов (FDMA), система множественного доступа с ортогональным частотным разделением (OFDM), система множественного доступа с временным разделением каналов (TDMA), такая как GSM (глобальная система мобильной связи), GPRS (система пакетной радиосвязи общего пользования) или EDGE (улучшенная GSM для передачи данных), система мобильной телефонной связи TETRA (магистральная наземная радиосвязь), система широкополосного множественного доступа с кодовым разделением каналов (WCDMA), высокоскоростная система 1×EV-DO (первое поколение эволюционировавшей передачи только данных) или золотая система 1×EV-DO многоадресной передачи, система IEEE 802.18, система MediaFLOTM, система DMB, система DVB-H или другая схема для передачи данных между двумя или более устройствами.
Как видеокодер 20, так и видеодекодер 26 может быть реализован в качестве одного или нескольких микропроцессоров, цифровых сигнальных процессоров (DSP), специализированных интегральных микросхем (ASIC), логических матриц с эксплуатационным программированием (FPGA), дискретной логики, программных средств, аппаратных средств, микропрограммных средств или посредством любой комбинации вышеперечисленного. Как видеокодер 20, так и видеодекодер 26 могут быть включены в один или несколько кодеров или декодеров либо интегрированы в качестве части объединенного кодера/декодера (CODEC) в соответствующее мобильное устройство, абонентское устройство, широковещательное устройство, сервер или подобное. Кроме того, как устройство-источник 12, так и устройство-получатель 14 могут включать в себя соответствующие компоненты модуляции, демодуляции, частотного преобразования, фильтрации и усиления, для передачи и приема кодированного видео и в соответствующих случаях включать в себя радиочастотные (RF) компоненты и антенны для поддержки беспроводной связи. Однако для простоты иллюстрации такие компоненты в итоге показаны в качестве передатчика 22 устройства-источника 12 и приемника 24 устройства-получателя 14, изображенных на Фиг.1.
Фиг.2 изображает блок-схему, подробно иллюстрирующую иллюстративный видеокодер 20, изображенный на Фиг.1. Видеокодер 20 выполняет внутрикадровое и межкадровое кодирование блоков, находящихся в пределах видеокадров. Внутрикадровое кодирование основывается на пространственном предсказании для уменьшения или удаления пространственной избыточности в видеоданных, находящихся в пределах данного видеоблока кодирования, например кадра или части. При внутрикадровом кодировании видеокодер 20 формирует блок пространственного предсказания на основе одного или нескольких предварительно кодированных блоков, находящихся в пределах одного блока кодирования, в качестве кодируемого блока. Межкадровое кодирование основывается на временном предсказании для уменьшения или удаления временной избыточности в пределах соседних кадров видеопоследовательности. При межкадровом кодировании видеокодер 20 выполняет оценку движения для отслеживания движения соответствующих видеоблоков между двумя или более соседними кадрами.
В изображенном на Фиг.2 примере видеокодер 20 включает в себя блок 30 разбиения, блок 32 предсказания, блок 34 сохранения кадров, блок 38 преобразования, блок 40 квантизации, блок 41 сканирования коэффициентов, блок 42 обратной квантизации, блок 44 обратного преобразования и блок 46 статистического кодирования. Видеокодер 20 также включает в себя блоки 48A и 48B суммирования («блоки 48 суммирования»). Для уменьшения или удаления блочности к восстановленным видеоблокам может быть применен фильтр для удаления блочности (не показан). Описание различных отличительных признаков на Фиг.2 в качестве блоков предназначено для выделения различных функциональных аспектов иллюстрированных устройств, а также не должно подразумеваться, что такие блоки должны быть реализованы посредством отдельных компонентов аппаратных или программных средств. Точнее, функциональные возможности, связанные с одним или несколькими блоками, могут быть объединены в пределах общих или отдельных компонентов аппаратных или программных средств.
Блок 30 разбиения принимает видеоинформацию (обозначенную на Фиг.2 как «ВВОД ВИДЕОИНФОРМАЦИИ»), например, в виде последовательности видеокадров, от видеоисточника 18 (Фиг.1). Блок 30 разбиения делит каждый видеокадр на блоки кодирования, которые включают в себя множество видеоблоков. Как было описано выше, блоки кодирования могут являться целым кадром или частью кадра (например, часть кадра). В одном случае блок 30 разбиения может первоначально разделить каждый блок кодирования на несколько видеоблоков, имеющих размер, равный 16×16 (то есть на макроблоки). Блок 30 разбиения также может подразделить каждый видеоблок, имеющий размер, равный 16×16, на меньшие блоки, такие как видеоблоки, имеющие размер, равный 8×8 или 4×4.
Видеокодер 20 выполняет внутрикадровое или межкадровое кодирование для каждого видеоблока блока кодирования на поблочной основе, основываясь на типе блока. Блок 32 предсказания назначает тип блока каждому видеоблоку, который может указать на выбранный размер разбиения блока, а также на то, с использованием межкадрового предсказания или внутрикадрового предсказания должен быть предсказан блок. В случае межкадрового предсказания блок 32 предсказания также выбирает векторы движения. В случае внутрикадрового предсказания блок 32 предсказания также выбирает режим предсказания для использования, чтобы сформировать блок предсказания.
Затем блок 32 предсказания формирует блок предсказания. Блок предсказания может являться предсказанной версией текущего видеоблока. Текущий видеоблок относится к видеоблоку, кодируемому в настоящее время. В случае межкадрового предсказания, например, когда блоку назначен тип блока межкадрового предсказания, блок 32 предсказания может выполнить временное предсказание для межкадрового кодирования текущего видеоблока. Например, блок 32 предсказания может сравнить текущий видеоблок с блоками в одном или нескольких соседних видеокадрах для идентификации блока в соседнем кадре, который наиболее точно соответствует текущему видеоблоку, например блоку, находящемуся в соседнем кадре, который имеет наименьшую MSE, SSD, SAD или другую метрику различия. Блок 32 предсказания выбирает идентифицированный блок в соседнем кадре в качестве блока предсказания.
В случае внутрикадрового предсказания, то есть когда блоку назначен тип блока внутрикадрового предсказания, блок 32 предсказания может сформировать блок предсказания на основе одного или нескольких предварительно кодированных соседних блоков, находящихся в пределах общего блока кодирования (например, кадр или часть). Например, блок 32 предсказания может выполнить пространственное предсказание для формирования блока предсказания посредством выполнения интерполяции с использованием одного или нескольких предварительно кодированных соседних блоков, находящихся в пределах текущего кадра. Один или несколько соседних блоков, находящихся в пределах текущего кадра, могут, например, быть восстановлены из блока 34 сохранения кадров, который может включать в себя любой тип памяти или запоминающего устройства для сохранения одного или нескольких предварительно кодированных кадров или блоков.
Блок 32 предсказания может выполнить интерполяцию в соответствии с одним из набора режимов предсказания. Как было описано выше, набор режимов предсказания может включать в себя режимы однонаправленного предсказания и/или режимы многонаправленного предсказания. Режимы многонаправленного предсказания определяют комбинации режимов однонаправленного предсказания. В одном примере набор режимов предсказания может включать в себя режимы однонаправленного предсказания, определенные в стандарте H.264/часть 10 MPEG-4 AVC, и режимы двунаправленного предсказания, которые определяют различные комбинации двух режимов однонаправленного предсказания.
Например, для типа блока внутрикадрового предсказания, имеющего размер, равный 4×4, набор режимов предсказания может включать в себя девять режимов однонаправленного предсказания, определенных в стандарте H.264/часть 10 MPEG-4 AVC, а также подмножество возможных комбинаций режимов однонаправленного предсказания. Следовательно, вместо поддержки всех 36 возможных комбинаций режимов однонаправленного предсказания видеокодер 20 может поддержать только часть возможных комбинаций режимов однонаправленного предсказания. Это не приводит к большой деградации кодирования. Один иллюстративный набор режимов внутрикадрового предсказания, который включает в себя 18 общих режимов внутрикадрового предсказания, представлен ниже.
Режим 0: предсказание по вертикали
Режим 1: предсказание по горизонтали
Режим 2: предсказание DC
Режим 3: предсказание по нижней левой диагонали
Режим 4: предсказание по нижней правой диагонали
Режим 5: предсказание по правой вертикали
Режим 6: предсказание по нижней горизонтали
Режим 7: предсказание по левой вертикали
Режим 8: предсказание по верхней горизонтали.
Режим 9: предсказание по вертикали + предсказание по горизонтали (режим 0 + режим 1)
Режим 10: предсказание DC + предсказание по вертикали (режим 2 + режим 0)
Режим 11: предсказание DC + предсказание по горизонтали (режим 2 + режим 1)
Режим 12: предсказание по нижней левой диагонали + предсказание по горизонтали (режим 3 + режим 1)
Режим 13: предсказание по нижней правой диагонали + предсказание по вертикали (режим 4 + режим 0)
Режим 14: предсказание по правой вертикали + предсказание по горизонтали (режим 5 + режим 1)
Режим 15: предсказание по нижней горизонтали + предсказание по вертикали (режим 6 + режим 0)
Режим 16: предсказание по левой вертикали + предсказание по горизонтали (режим 7 + режим 1)
Режим 17: предсказание по верхней горизонтали + предсказание по вертикали (режим 8 + режим 0)
В вышеупомянутом иллюстративном наборе режимы 0-8 являются режимами однонаправленного предсказания, а режимы 9-17 являются режимами двунаправленного предсказания. В частности, режимы 0-8 являются режимами предсказания блока внутрикадрового предсказания, имеющего размер, равный 4×4, определенными в стандарте H.264/часть 10 MPEG-4 AVC. Режимы 9-17 являются подмножеством возможных режимов двунаправленного предсказания. Подмножество возможных режимов двунаправленного предсказания в предоставленном примере включает в себя, по меньшей мере, одну комбинацию, которая включает каждый режим однонаправленного предсказания. Каждый режим двунаправленного предсказания, помимо режимов двунаправленного предсказания, которые включают в себя режим предсказания DC (например, режим 10 и 11), комбинирует режимы однонаправленного предсказания, имеющие направления интерполяции, которые не являются параллельными и, в некоторых случаях, по существу, ортогональны друг другу. Другими словами, подмножество режимов двунаправленного предсказания включает в себя режимы двунаправленного предсказания, которые, в целом, комбинируют режимы предсказания из «вертикальной» категории с режимами предсказания из «горизонтальной» категории. Такие режимы двунаправленного предсказания предоставляют процессу внутрикадрового предсказания возможность комбинирования доступных пикселей предсказания из отдаленных позиций, следовательно, повышая качество предсказания для большего количества пиксельных позиций, находящихся в пределах текущего видеоблока.
Вышеупомянутый набор режимов предсказания описан в иллюстративных целях. Набор режимов предсказания может включать в себя большее или меньшее количество режимов предсказания. Например, набор режимов предсказания может включать в себя большее или меньшее количество режимов двунаправленного предсказания или вообще не включать в себя режимы двунаправленного предсказания. В других случаях набор режимов предсказания может включать в себя только подмножество режимов однонаправленного предсказания. Кроме того, набор режимов предсказания может включать в себя режимы многонаправленного предсказания, которые комбинируют более двух режимов однонаправленного предсказания, в дополнение или вместо режимов двунаправленного предсказания. Помимо всего прочего, несмотря на то, что описанные выше со ссылкой на типы блоков внутрикадрового предсказания, имеющих размер, равный 4×4, способы настоящего раскрытия могут относиться к другим типам блоков внутрикадрового предсказания (например, к типам блоков внутрикадрового предсказания, имеющих размер 8×8 или 16×16) или типам блоков межкадрового предсказания.
Для определения того, какой режим предсказания выбрать из множества режимов предсказания для конкретного блока, блок 32 предсказания может вычислить стоимость кодирования, например множитель Лагранжа, для каждого режима предсказания из набора, а также выбрать режим предсказания с наименьшей стоимостью кодирования. В других случаях блок 32 предсказания может вычислить стоимость кодирования только для части набора возможных режимов предсказания. Например, блок 32 предсказания может выбрать часть режимов предсказания из набора на основе режима предсказания, выбранного для одного или нескольких соседних видеоблоков. Блок 32 предсказания формирует блок предсказания с использованием выбранного режима предсказания.
После формирования блока предсказания видеокодер 20 формирует остаточный блок посредством вычитания блока предсказания, сформированного посредством блока 32 предсказания, из текущего видеоблока на блоке 48А суммирования. Остаточный блок включает в себя набор значений пиксельной разности, который определяет разностный объем между пиксельными значениями текущего видеоблока и пиксельными значениями блока предсказания. Остаточный блок может быть представлен в формате двумерного блока (например, двумерной матрицы или множества пиксельных значений). Другими словами, остаточный блок является двумерным представлением пиксельных значений.
Блок 38 преобразования применяет преобразование к остаточному блоку для создания остаточных коэффициентов преобразования. Например, блок 38 преобразования может применить преобразование DCT, целочисленное преобразование, направленное преобразование, вейвлет преобразование или комбинацию вышеперечисленного. Блок 38 преобразования может выборочно применять преобразования к остаточному блоку на основе режима предсказания, выбранного посредством блока 32 предсказания, для формирования блока предсказания. Другими словами, преобразование, применяемое к остаточной информации, может зависеть от режима предсказания, выбранного для блока посредством блока 32 предсказания.
Блок 38 преобразования может поддерживать несколько различных преобразований, а также выборочно применять преобразования к остаточному блоку на основе режима предсказания блока. Несколько различных преобразований могут включать в себя преобразования DCT, целочисленные преобразования, направленные преобразования, вейвлет преобразования или комбинацию вышеперечисленного. В некоторых случаях блок 38 преобразования может поддерживать преобразование DCT или целочисленное преобразование, а также несколько направленных преобразований, а также выборочно применять преобразования на основе режима предсказания, выбранного для текущего видеоблока. Например, блок 38 преобразования может применить преобразование DCT или целочисленное преобразование к остаточным блокам с режимами предсказания, которые указывают на ограниченную направленность, а также применить одно из направленных преобразований к остаточным блокам с режимами предсказания, которые указывают на существенную направленность.
Посредством использования вышеупомянутого иллюстративного набора режимов предсказания блок 38 преобразования может применить преобразование DCT или целочисленное преобразование к режимам 2, 9 и 12-17. Эти режимы могут указать на ограниченную направленность, поскольку они являются либо предсказанием DC, либо комбинацией двух режимов предсказания в аппроксимативно ортогональных направлениях. Напротив, режимы 1, 3-8, 10 и 11 являются режимами, которые могут указать направленность, и, следовательно, блок 38 преобразования может применить различные направленные преобразования для каждого из этих режимов для достижения лучшего уплотнения энергии остаточных видеоблоков. Другими словами, если выбраны режимы предсказания, которые имеют более четкую направленность, то направленность также может быть показана в остаточных блоках таких режимов предсказания. Кроме того, остаточные блоки различных режимов предсказания указывают различные параметры направленности. По существу, сравниваемые с преобразованиями, такими как преобразование DCT или целочисленное преобразование, подобное преобразованию DCT, направленные преобразования, в частности настраиваемые для каждого режима предсказания, могут обеспечить лучшее уплотнение энергии для остаточных блоков заданного режима предсказания. С другой стороны, в режимах предсказания, которые не несут четкой направленности, преобразования, такие как преобразование DCT, или целочисленное преобразование, подобное преобразованию DCT, обеспечивают достаточное уплотнение энергии. В этом способе блок 38 преобразования не должен поддерживать отдельные преобразования для каждого возможного режима предсказания, что снижает требования по хранению преобразования. Кроме того, применение преобразований DCT и/или целочисленных преобразований является менее сложным в контексте вычислительной сложности.
В других случаях блок 38 преобразования может поддерживать различное направленное преобразование для каждого возможного режима предсказания, а также применять соответствующие направленные преобразования на основе выбранного режима предсказания блока. На примере вышеописанного набора режимов предсказания блок 38 преобразования может поддерживать восемнадцать различных направленных преобразований, каждое из которых соответствует одному из восемнадцати возможных режимов предсказания кадров внутрикадрового предсказания, имеющих размер, равный 4×4. Кроме того, блок 38 преобразования может поддерживать восемнадцать различных направленных преобразований для восемнадцати возможных режимов предсказания кадров внутрикадрового предсказания, имеющих размер, равный 8x8, а также четыре различных направленных преобразования для четырех возможных режимов предсказания кадров внутрикадрового предсказания, имеющих размер, равный 16×16, и помимо всего прочего, преобразования для любых других режимов предсказания других размеров разбиения. Применение отдельных направленных преобразований на основе выбранного режима предсказания блока увеличивает эффективность, с которой захватывается остаточная энергия, в частности, для блоков, для которых выбраны режимы предсказания, которые указывают существенную направленность. Направленные преобразования могут являться неразделимыми направленными преобразованиями, например полученными из неразделимых преобразований Карунена Лоэва (KLT), или разделимыми направленными преобразованиями. В некоторых случаях направленные преобразования могут быть предварительно вычислены с использованием настроечной последовательности данных.
Преобразование KLT является линейным преобразованием, в котором основные функции получают из статистических данных сигнала, в связи с чем может являться адаптивным. Преобразование KLT разработано для размещения как можно большего количества энергии в небольшое количество коэффициентов. В целом, преобразование KLT является неразделимым, в связи с чем блок 38 преобразования выполняет полное матричное умножение, как подробно описано ниже. Применение неразделимого направленного преобразования к остаточным блокам, имеющим размер, равный 4×4, будет описано в иллюстративных целях. Подобные способы используются для блоков, имеющих различные размеры, например, для блоков, имеющих размер 8×8 или 16×16.
Остаточный блок X, имеющий размер, равный 4×4, представлен в формате двумерного блока с четырьмя строками и четырьмя столбцами пиксельных значений, то есть в общей сложности с шестнадцатью пиксельными значениями. Для применения неразделимого направленного преобразования остаточный блок, имеющий размер, равный 4×4, перестраивается в одномерный вектор x пиксельных значений, то есть длиной, равной шестнадцати. Остаточный блок Х, имеющий размер, равный 4×4, перестраивается в вектор x посредством расположения пикселей в X в растровом порядке сканирования. То есть если остаточный блок X, имеющий размер, равный 4×4, описывается как
Figure 00000002
то остаточный вектор x, имеющий длину, равную 16, описывается как
x=[x00, x01, x02, x03, x10, x11, x12, x13, x20, x21, x22, x23, x30, x31, x32, x33].
Вектор y коэффициентов преобразования получают посредством выполнения матричного умножения, в соответствии со следующим уравнением (1):
Figure 00000003
где Т - матрица преобразования, имеющая размер, равный 16×16, которая соответствует режиму предсказания, выбранному для блока. Вектор у коэффициентов преобразования также является одномерным вектором, имеющим длину, равную шестнадцати коэффициентам.
Использование неразделимых направленных преобразований может повлечь за собой повышенную вычислительную стоимость, а также требования по хранению. В целом, для остаточного блока, имеющего размер, равный N×N, неразделимое направленное преобразование требует основных функций, размером N2×N2. То есть для остаточных блоков, имеющих размер, равный 4×4, неразделимое направленное преобразование имеет размер 16×16, для остаточных блоков, имеющих размер, равный 8×8, неразделимое направленное преобразование имеет размер 64×64, а для остаточных блоков, имеющих размер, равный 16×16, неразделимое направленное преобразование имеет размер 256×256. Поскольку различное неразделимое направленное преобразование может быть использовано для каждого режима предсказания набора, блок 38 преобразования может сохранить восемнадцать направленных преобразований с размером 16×16 для блоков, имеющих размер, равный 4×4, и восемнадцать преобразований с размером 64×64 для блоков, имеющих размер, равный 8×8 (в случае вышеописанного иллюстративного набора режимов предсказания), и, возможно, больше в случае, если набор режимов предсказания будет больше. Это может привести к использованию больших ресурсов памяти для сохранения матриц преобразования, требуемых для выполнения процесса преобразования. Вычислительная стоимость неразделимых направленных преобразований также является высокой. В целом, применение неразделимого направленного преобразования к блоку, имеющему размер, равный N×N, требует N2×N2 операций умножения, а также N2×(N2-1) операций сложения.
Вместо неразделимых направленных преобразований блок 38 преобразования может поддерживать разделимые направленные преобразования для каждого режима предсказания. Разделимые направленные преобразования имеют меньшую стоимость хранения, а также меньшую вычислительную стоимость по сравнению с неразделимыми направленными преобразованиями. Например, для остаточного блока X, имеющего размер, равный 4×4, разделимое преобразование применяется, как обозначено посредством следующего уравнения (2):
Figure 00000004
где Y - итоговая матрица коэффициентов преобразования, С - столбец матрицы преобразования, a R - строка матрицы преобразования, каждый из которых имеет размер, равный размеру блока (например, 4×4 в данном примере). Следовательно, итоговая матрица Y коэффициентов преобразования также является двумерной матрицей, имеющей размер, равный 4×4.
В каждом режиме предсказания блок 38 преобразования может сохранить две матрицы преобразования, имеющие размер, равный N×N (например, матричные пары С и R), где N×N соответствует размеру блока (например, N=4, 8 или 16). В вышеописанном иллюстративном наборе из восемнадцати режимов предсказания для блока, имеющего размер, равный 4×4, блок 38 преобразования сохраняет тридцать шесть матриц преобразования, имеющих размер, равный 4×4, что требует меньшего объема памяти, чем восемнадцать матриц преобразования, имеющих размер, равный 16×16, сохраняемых при использовании неразделимых преобразований. Кроме того, блок 38 преобразования может выполнить разделимое направленное преобразование с использованием 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 как «ВОССТАНОВЛЕНИЕ ОСТАТОЧНОГО БЛОКА»). Блок 48B суммирования добавляет восстановленный остаточный блок к блоку предсказания, сформированному посредством блока 32 предсказания, для формирования восстановленного видеоблока для сохранения в блоке 34 сохранения. Восстановленный видеоблок может быть использован посредством блока 32 предсказания для внутрикадрового или межкадрового кодирования последующего видеоблока.
Как было описано выше, при использовании разделимых преобразований, которые включают в себя преобразования DCT, целочисленные преобразования, используемые в стандарте H.264/AVC, а также разделимые направленные преобразования, итоговые коэффициенты преобразования представляются в качестве двумерных матриц коэффициентов. Следовательно, после квантизации, блок 41 сканирования коэффициентов сканирует коэффициенты из формата двумерного блока в формат одномерного вектора, а процесс зачастую называется сканированием коэффициентов. В частности, блок 41 сканирования коэффициентов сканирует коэффициенты в соответствии с порядком сканирования. В соответствии с одним аспектом настоящего раскрытия блок 41 сканирования коэффициентов может адаптивно установить порядок сканирования, используемый для сканирования коэффициентов на основе статистических данных одного или нескольких коэффициентов. В некоторых случаях блок 41 сканирования коэффициентов может адаптивно установить порядок сканирования отдельно для каждого режима предсказания, поскольку каждый режим предсказания может иметь различные статистические данные коэффициентов.
Блок 41 сканирования коэффициентов может изначально отсканировать коэффициенты квантованного остаточного блока с использованием первого порядка сканирования. В одном аспекте первый порядок сканирования может являться зигзагообразным порядком сканирования, который, как правило, используется в стандарте H.264/часть 10 MPEG-4 AVC. Несмотря на то, что блок 41 сканирования коэффициентов описан в момент начального сканирования с использованием зигзагообразного порядка сканирования, способы настоящего раскрытия не ограничиваются никаким конкретным порядком или способом начального сканирования. Кроме того, каждый режим предсказания может иметь отличный начальный порядок сканирования, например порядок сканирования, специально настроенный для того режима предсказания. Однако зигзагообразный порядок сканирования описан в иллюстративных целях. Зигзагообразный порядок сканирования располагает квантованные коэффициенты в одномерном векторе таким образом, что коэффициенты в верхнем левом углу двумерного блока сжаты по направлению к началу вектора коэффициентов. Зигзагообразный порядок сканирования может обеспечить достаточную компактность для блоков коэффициентов, которые имеют ограниченную направленность.
Если остаточные блоки имеют небольшую или существенную направленность, а также преобразованы с использованием разделимых направленных преобразований, то итоговый двумерный блок коэффициентов преобразования может по-прежнему иметь некоторую направленность. Причина заключается в том, что при использовании разделимых направленных преобразований, обеспечивающих сниженную вычислительную сложность, а также сокращенные требования по сохранению, они могут не захватить направленность в остаточных блоках, а также использование неразделимых направленных преобразований. В качестве примера, после применения направленного преобразования к предсказанию по вертикали (режим 0 из вышеописанного примера) ненулевые коэффициенты проявляют тенденцию существовать в горизонтальном направлении. Следовательно, зигзагообразный порядок сканирования может не привести к тому, что все ненулевые коэффициенты будут сжаты в направлении начала вектора коэффициентов. Посредством адаптации порядка сканирования коэффициентов к ориентированию порядка сканирования в горизонтальном направлении, вместо фиксированного зигзагообразного порядка сканирования, ненулевые коэффициенты блока коэффициентов могут быть сжаты в большей степени в направлении начала одномерного вектора коэффициентов сравнительно со случаем сканирования в зигзагообразном порядке сканирования. В свою очередь, это может уменьшить количество битов, затрачиваемых на статистическое кодирование, поскольку существуют более короткие интервалы нулей между ненулевыми коэффициентами в начале одномерного вектора коэффициентов, а также один более длинный интервал нулей в конце одномерного вектора коэффициентов. Принцип адаптации порядка сканирования, используемого для формирования одномерного вектора коэффициентов, также применяется и к другим режимам предсказания. Например, блок 41 сканирования коэффициентов может адаптивно установить порядок сканирования отдельно для каждого режима предсказания, поскольку каждый режим предсказания может иметь отличную направленность в блоках коэффициентов и, следовательно, отличные статистические данные коэффициентов. Таким образом, порядок сканирования может являться отличным для каждого режима предсказания.
Как было описано выше, начальный порядок сканирования может не являться зигзагообразным порядком сканирования, в частности, в случаях, когда направленные преобразования применяются к остаточному блоку. В этих случаях начальный порядок сканирования может быть предварительно определен с использованием одного из нижеописанных способов. В качестве одного примера начальный порядок сканирования может быть определен с использованием набора настроечных видеопоследовательностей. Статистические данные ненулевых коэффициентов, такие как нижеописанные статистические данные, собираются для каждого режима предсказания и используются для инициализации порядка сканирования коэффициентов. В частности, позиция с самой высокой вероятностью ненулевых коэффициентов является первой позицией коэффициента начального порядка сканирования, а позиция со следующей самой высокой вероятностью ненулевых коэффициентов является второй позицией коэффициента начального порядка сканирования, и так далее, до позиции с наименьшей ненулевой вероятностью, которая является последней позицией коэффициента начального порядка сканирования. Альтернативно, начальный порядок сканирования может быть определен на основе величин собственных значений матриц разделимых преобразований. Например, собственные значения могут быть отсортированы в убывающем порядке, а коэффициенты отсканированы после соответствующего порядка собственных значений.
Даже если начальный порядок сканирования определен с использованием одного из вышеописанных способов, различные типы видеоисточников могут привести к тому, что квантованные остаточные коэффициенты будут располагаться в различных позициях коэффициентов в пределах блока. Например, видеоисточники различного разрешения, например видеоисточники единого промежуточного формата (CIF), четверти CIF (QCIF) и высокого разрешения (например, 720p/i или 1080p/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 сканирования коэффициентов может нормализовать коэффициенты посредством уменьшения каждого счетного значения посредством множителя 2 или посредством сброса счетных значений в набор начальных счетных значений. Блок 41 сканирования коэффициентов может использовать и другие способы нормализации. Например, блок 41 сканирования коэффициентов может освежить статистические данные после кодирования конкретного количества блоков.
Блок 46 статистического кодирования принимает одномерный вектор коэффициентов, который представляет остаточные коэффициенты блока, а также информацию заголовка блока для блока в форме одного или нескольких синтаксических элементов заголовка. Синтаксические элементы заголовка могут идентифицировать конкретные параметры текущего видеоблока, такие как тип блока, режим предсказания, кодированное содержимое блока (СВР) для яркости и насыщенность цвета, разбиение блока, а также один или несколько векторов движения. Эти синтаксические элементы заголовка могут быть приняты от других компонентов, например от блока 32 предсказания, находящихся в пределах видеокодера 20.
Блок 46 статистического кодирования кодирует информацию заголовка, а также остаточную информацию для текущего видеоблока для формирования кодированного битового потока (обозначенного на Фиг.2 как «БИТОВЫЙ ВИДЕОПОТОК»). Блок 46 статистического кодирования кодирует один или несколько синтаксических элементов каждого блока в соответствии с описанными в настоящем раскрытии способами. В частности, блок 46 статистического кодирования может кодировать синтаксические элементы текущего блока на основе синтаксических элементов одного или нескольких предварительно кодированных видеоблоков. По существу, блок 46 статистического кодирования может включать в себя один или несколько буферов для сохранения синтаксических элементов одного или нескольких предварительно кодированных видеоблоков. Блок 46 статистического кодирования может проанализировать любое количество соседних блоков в любой позиции для содействия в кодировании синтаксических элементов текущего видеоблока. В иллюстративных целях блок 46 статистического кодирования будет описан в качестве кодирующего режим предсказания на основе предварительно кодированного блока, расположенного непосредственно выше текущего блока (то есть верхнего соседнего блока), и предварительно кодированного блока, расположенного непосредственно слева от текущего блока (то есть левого соседнего блока). Однако подобные способы могут быть использованы для кодирования других синтаксических элементов заголовка, таких как типы блока, разбиение блока, содержимое CBP или подобное. Кроме того, при кодировании текущего видеоблока могут быть использованы подобные способы, которые вовлекают большее количество соседних блоков, по сравнению с исключительно верхним и левым соседними блоками.
Работа блока 46 статистического кодирования будет описана со ссылкой на вышеописанный набор из восемнадцати режимов предсказания, а также с учетом нижеуказанного псевдокода.
Пусть upMode является режимом предсказания верхнего блока
Пусть leftMode является режимом предсказания левого блока
Пусть currMode является режимом предсказания текущего блока
Если currMode == upMode || currMode == leftMode
Посылка «1»
Если upMode != leftMode
Посылка «1» если currMode == upMode или «0» иначе
Посылка «0»
Установка currMode в диапазоне [0, 15]
Посылка currMode с использованием 4 бит
Блок 46 статистического кодирования задает переменные upMode, leftMode и currMode равными режиму предсказания верхнего соседнего блока, режиму предсказания левого соседнего блока и режиму предсказания текущего блока соответственно. Как было описано выше, режимы предсказания верхнего соседнего блока, левого соседнего блока и текущего блока могут быть определены на основе стоимостного анализа Лагранжа. Блок 46 статистического кодирования сравнивает режим предсказания текущего блока (currMode) с режимом предсказания соседних блоков (upMode и leftMode). Если режим предсказания текущего блока эквивалентен режиму предсказания любого соседнего блока, то блок 46 статистического кодирования кодирует «1». Следовательно, первый бит, кодированный посредством блока 46 статистического кодирования для представления режима предсказания текущего блока, указывает на то, является ли текущий режим предсказания аналогичным либо режиму предсказания верхнего соседнего блока, либо режиму предсказания левого соседнего блока.
Если режим предсказания текущего блока эквивалентен режиму предсказания любого соседнего блока, то есть первый кодированный бит является «1», то блок 46 статистического кодирования сравнивает режим предсказания верхнего соседнего блока с режимом предсказания левого соседнего блока. Если режим предсказания верхнего соседнего блока является аналогичным режиму предсказания левого соседнего блока, то блок 46 статистического кодирования больше не кодирует биты для режима предсказания. В этом случае режим предсказания может быть кодирован с использованием одного бита.
Однако, если режим предсказания верхнего соседнего блока не эквивалентен режиму предсказания левого соседнего блока, то блок 46 статистического кодирования кодирует, по меньшей мере, один дополнительный бит, представляющий режим предсказания, для определения того, какой из соседних блоков имеет режим предсказания, аналогичный режиму предсказания текущего блока. Например, когда блок 46 статистического кодирования анализирует режим предсказания верхнего и левого соседних блоков, блок 46 статистического кодирования может кодировать «1» в случае, если режим предсказания текущего блока является аналогичным режиму предсказания верхнего соседнего блока, а также кодирует «0» в случае, если режим предсказания текущего блока является аналогичным режиму предсказания левого соседнего блока. Альтернативно, блок 46 статистического кодирования может кодировать «1» в случае, если режим предсказания текущего блока является аналогичным режиму предсказания левого соседнего блока, а также кодирует «0» в случае, если режим предсказания текущего блока является аналогичным режиму предсказания верхнего соседнего блока. В любом случае второй бит кодированного режима предсказания указывает на то, верхний или левый соседний блок имеет режим предсказания, аналогичный режиму предсказания текущего блока. Таким образом, блок 46 статистического кодирования может кодировать режим предсказания текущего блока с использованием минимально - одного бита, и максимально - двух битов, когда режим предсказания текущего блока является эквивалентным режиму предсказания одного из соседних блоков. Если блок 46 статистического кодирования анализирует более двух соседних блоков, то блок 46 статистического кодирования может кодировать более одного дополнительного бита для определения того, какой из предварительно кодированных блоков имеет режим предсказания, аналогичный режиму предсказания текущего блока.
Если режим предсказания текущего видеоблока не эквивалентен режиму предсказания верхнего соседнего блока или режиму предсказания левого соседнего блока, то блок 46 статистического кодирования посылает «0», указывающий на то, что режим предсказания текущего видеоблока не является аналогичным режимам предсказания любого соседнего блока. Блок 46 статистического кодирования кодирует кодовое слово, которое представляет режим предсказания текущего блока. При использовании вышеописанного иллюстративного набора из восемнадцати режимов предсказания блок 46 статистического кодирования может кодировать режим предсказания текущего видеоблока с использованием четырехразрядного кодового слова. Несмотря на существование восемнадцати возможных режимов предсказания, которые, как правило, требуют пятиразрядные кодовые слова, два возможных режима предсказания могут быть исключены из набора для текущего блока, то есть режимы предсказания верхнего соседнего блока и левого соседнего блока, в связи с тем, что режимы предсказания верхнего соседнего блока и левого соседнего блока уже сравнивались с режимом предсказания текущего блока и были определены в качестве не эквивалентных режиму предсказания текущего блока. Однако если режим предсказания верхнего соседнего блока эквивалентен режиму предсказания левого соседнего блока, то семнадцать режимов предсказания, вместо шестнадцати режимов предсказания, остаются возможными, снова требуя представления пятиразрядного кодового слова, вместо четырехразрядного кодового слова. В этом случае в течение процесса предсказания блок 32 предсказания может выборочно удалить один из оставшихся семнадцати режимов кодирования из набора, для предоставления возможности представления режима предсказания текущего блока с использованием четырехразрядного кодового слова. В одном случае блок 32 предсказания может удалить последний режим предсказания, например режим 17 предсказания в данном примере. Однако блок 32 предсказания может выбрать из набора любой режим предсказания, который будет удален, с использованием любого другого способа. Например, блок 32 предсказания может отследить вероятность каждого выбираемого режима предсказания, а также удалить режим предсказания с самой малой вероятностью того, что он будет выбран.
После удаления выбранного режима предсказания блок 46 статистического кодирования задает диапазон шестнадцати оставшихся режимов предсказания так, чтобы номера режимов предсказания располагались в диапазоне [0, 15]. В одном примере блок 46 статистического кодирования может временно перенумеровать оставшиеся режимы предсказания от 0 до 15, начиная с назначения 0 оставшемуся режиму предсказания с наименьшим номером режима и заканчивая назначением 15 оставшемуся режиму предсказания с наибольшим номером режима предсказания. Например, если режим предсказания верхнего соседнего блока является режимом 12, а режим предсказания левого соседнего блока является режимом 14, то блок 46 статистического кодирования может перенумеровать режим 13 предсказания, режим 15 предсказания, режим 16 предсказания и режим 17 предсказания в режим 12 предсказания, режим 13 предсказания, режим 14 предсказания и режим 15 предсказания соответственно. Затем блок 46 статистического кодирования кодирует режим предсказания с использованием четырех битов. В других примерах с наборами режимов предсказания с большим или меньшим количеством возможных режимов предсказания блок 46 статистического кодирования может кодировать режим предсказания с использованием большего или меньшего количества битов посредством подобных способов.
Блок 46 статистического кодирования может кодировать режим предсказания текущего видеоблока с использованием кодирования CAVLC или CABAC. Между режимом предсказания текущего блока и режимами предсказания верхнего и левого соседних блоков может существовать сильная корреляция. В частности, если режим предсказания верхнего соседнего блока и режим предсказания левого соседнего блока являются режимами однонаправленного предсказания, то вероятность режима предсказания текущего блока, также являющегося одним из режимов однонаправленного предсказания, является высокой. Аналогично этому если режим предсказания верхнего соседнего блока и режим предсказания левого соседнего блока являются режимами двунаправленного предсказания, то вероятность режима предсказания текущего блока, также являющегося одним из режимов двунаправленного предсказания, является высокой. Таким образом, случайные распределения режима предсказания текущего блока изменяются при изменении категорий режимов предсказания верхнего и левого соседних блоков (например, с однонаправленного на двунаправленное).
По существу, в некоторых аспектах блок 46 статистического кодирования может выбрать различные кодируемые контексты в зависимости от того, являются ли режимы предсказания одного или нескольких предварительно кодированных видеоблоков (например, верхнего и левого соседних видеоблоков) режимами однонаправленного предсказания или режимами двунаправленного предсказания. В случае кодирования CABAC различные кодируемые контексты отражают различные вероятности набора режимов предсказания в пределах заданного контекста. Возьмем, например, кодируемый контекст, называемый в настоящем документе «первым кодируемым контекстом», который соответствует случаю, когда и верхний, и левый соседние блоки кодирования имеют режимы однонаправленного предсказания. Из-за соседней корреляции первый кодируемый контекст может назначить более высокие вероятности режимам однонаправленного предсказания сравнительно с режимами двунаправленного предсказания. Следовательно, если для кодирования CABAC выбирается первый кодируемый контекст (то есть режимы предсказания как верхнего, так и левого соседних блоков являются режимами однонаправленного предсказания), то на кодирование текущего режима предсказания может быть затрачено меньшее количество битов в случае, если текущий режим предсказания является одним из режимов однонаправленного предсказания, сравнительно с тем, если текущий режим предсказания является одним из режимов двунаправленного предсказания. В случае кодирования CAVLC для различных кодируемых контекстов могут быть определены различные таблицы кодирования VLC. Например, если выбран первый кодируемый контекст (то есть и верхний, и левый соседние блоки имеют режимы однонаправленного предсказания), то может быть использована таблица кодирования VLC, которая назначает более короткие кодовые слова режимам однонаправленного предсказания, сравнительно с режимами двунаправленного предсказания.
Таким образом, блок 46 статистического кодирования может выбрать первый кодируемый контекст в случае, если режим предсказания верхнего видеоблока и режим предсказания левого видеоблока являются режимами однонаправленного предсказания. Блок 46 статистического кодирования может выбрать различный кодируемый контекст в случае, если режим предсказания верхнего видеоблока и режим предсказания левого видеоблока не являются режимами однонаправленного предсказания. Например, блок 46 статистического кодирования может выбрать второй кодируемый контекст в случае, если режим предсказания верхнего соседнего видеоблока и режим предсказания левого соседнего видеоблока являются режимами двунаправленного предсказания. Второй кодируемый контекст моделирует случайное распределение для режима предсказания текущего видеоблока в случае, если режим предсказания как верхнего, так и левого соседних блоков является режимом двунаправленного предсказания. Случайное распределение второго кодируемого контекста может назначить более высокие вероятности режимам двунаправленного предсказания сравнительно с режимами однонаправленного предсказания в случае кодирования CABAC, а также может назначить более короткие кодовые слова режимам двунаправленного предсказания сравнительно с режимами однонаправленного предсказания в случае кодирования CAVLC.
Кроме того, блок 46 статистического кодирования может выбрать третий кодируемый контекст в случае, если режим предсказания одного соседнего блока является режимом однонаправленного предсказания, а режим предсказания другого соседнего блока является режимом двунаправленного предсказания. Третий кодируемый контекст более равномерно распределяет вероятность текущего режима предсказания среди режимов однонаправленного предсказания и режимов двунаправленного предсказания, находящихся в наборе. Выбор различных кодируемых контекстов для использования в процессе кодирования на основе того, являются ли режимы предсказания одного или нескольких предварительно кодированных видеоблоков (например, верхнего и левого видеоблоков) режимами однонаправленного предсказания или режимами двунаправленного предсказания, может привести к лучшему сжатию информации режима предсказания.
Фиг.3 изображает блок-схему, подробно иллюстрирующую пример видеодекодера 26, изображенного на Фиг.1. Видеодекодер 26 может выполнить внутрикадровое и межкадровое декодирование блоков, находящихся в пределах кодированных блоков, таких как видеокадры или части. В изображенном на Фиг.3 примере видеодекодер 26 включает в себя блок 60 статистического декодирования, блок 62 предсказания, блок 63 сканирования коэффициентов, блок 64 обратной квантизации, блок 66 обратного преобразования и блок 68 сохранения кадров. Видеодекодер 26 также включает в себя блок 69 суммирования, который комбинирует выводы блока 66 обратного преобразования и блока 62 предсказания.
Блок 60 статистического декодирования принимает кодированный битовый видеопоток (обозначенный на Фиг.3 как «БИТОВЫЙ ВИДЕОПОТОК»), а также декодирует кодированный битовый поток для получения остаточной информации (например, в форме одномерного вектора квантованных остаточных коэффициентов) и информацию заголовка (например, в форме одного или нескольких синтаксических элементов заголовка). Блок 60 статистического декодирования выполняет обратную функцию декодирования кодирования, выполненного посредством модуля 46 кодирования, изображенного на Фиг.2. Описание блока 60 статистического декодирования, выполняющего декодирование синтаксического элемента режима предсказания, дано в иллюстративных целях. Способы могут быть расширены для декодирования других синтаксических элементов, таких как тип блока, разбиение блока, содержимое СВР или подобное.
В частности, блок 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 сканирования коэффициентов видеокодера 20, блок 63 сканирования коэффициентов видеодекодера 26 может собрать статистические данные и установить порядок сканирования подобным способом.
Изначально блок 41 сканирования коэффициентов может сканировать коэффициенты блока 1 с использованием зигзагообразного порядка сканирования. В этом случае блок 41 сканирования коэффициентов сканирует позиции коэффициентов блока 1 в следующем порядке: с1, c2, c5, c9, c6, c3, c4, c7, c10, c13, c14, с11, c8, c12, c15, c16. Следовательно, после сканирования коэффициентов блока 1 блок 41 сканирования коэффициентов выводит одномерный вектор v коэффициентов, где v=[9, 4, 6, 1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0]. Несмотря на то, что в иллюстрированном на Фиг.4 примере блок 41 сканирования коэффициентов изначально сканирует коэффициенты блока 1 с использованием зигзагообразного порядка сканирования, зигзагообразное сканирование не является единственной возможной отправной точкой для адаптивного сканирования. Сканирование по горизонтали, сканирование по вертикали или же любая другая начальная последовательность сканирования может быть использована в качестве начального порядка сканирования. Использование зигзагообразного сканирования приводит к тому, что одномерный вектор v коэффициентов между двумя ненулевыми коэффициентами имеет интервал из четырех нулей.
Статистические данные 1 (76) представляют статистические данные блока 1. Статистические данные 1 (76) могут являться счетными значениями для каждой позиции коэффициента для отслеживания количества раз, когда каждая позиция коэффициентов имеет ненулевое значение. В изображенном на Фиг.4 примере статистические данные коэффициентов устанавливаются в нулевое значение. Однако также могут быть использованы и другие схемы установки (инициализации). Например, статистические данные типичного или среднего коэффициента каждого режима предсказания могут быть использованы для инициализации статистических данных соответствующего режима предсказания. После кодирования блока 1 статистические данные 1 (76) имеют значения «1» для любой позиции коэффициента блока 1, то есть ненулевые, а также нулевые значения для любой позиции коэффициента блока 1, которая имеет нулевое значение. Статистические данные 2 (77) представляют объединенные статистические данные блоков 1 и 2. Модуль 41 сканирования коэффициентов увеличивает счет статистических данных 1 (76) в случае, если позиции коэффициентов имеют ненулевые значения в блоке 2, а также сохраняет счет неизменным в случае, если позиции коэффициентов имеют нулевые значения. Следовательно, как показано на Фиг.4, модуль 41 сканирования коэффициентов увеличивает статистические данные позиций c2, c5, c9, и c13 коэффициентов на 2 и сохраняет неизменными статистические данные остальной части позиций коэффициентов, подобно статистическим данным 1 (76). Статистические данные 3 (78) представляют объединенные статистические данные блоков 1-3, а статистические данные 4 (79) представляют объединенные статистические данные блоков 1-4. Как было описано выше, в некоторых аспектах блок 41 сканирования коэффициентов может собрать статистические данные для блоков с использованием множества счетчиков.
Блок 41 сканирования коэффициентов может адаптировать порядок сканирования на основе собранных статистических данных. В иллюстрированном примере блок 41 сканирования коэффициентов может быть сконфигурирован для адаптации порядка сканирования после четырех видеоблоков на основе статистических данных 4 (79). В этом случае блок 41 сканирования коэффициентов анализирует собранные статистические данные, а также адаптирует порядок сканирования таким образом, чтобы позиции коэффициентов сканировались в порядке убывания посредством их соответствующих счетных значений. По существу, блок 41 сканирования коэффициентов может отсканировать блоки 1-4 в соответствии с начальным порядком сканирования, а также адаптировать порядок сканирования для сканирования позиций последующего блока, например блока 5 (не показан), в следующем порядке: с1, c5, c9, c2, c13, с6, c3, c4, c7, c10, c14, с11, c8, c12, c15, c16. Блок 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 сканирования коэффициентов решают не вычислять порядок сканирования, то блоки 41, 63 сканирования коэффициентов сканируют последующий блок в соответствии с начальным порядком (80) сканирования. Если блоки 41, 63 сканирования коэффициентов решают вычислять порядок сканирования, например, после кодирования/декодирования n блоков, то блок сканирования коэффициентов может адаптировать порядок сканирования на основе собранных статистических данных (84). Например, блоки 41, 63 сканирования коэффициентов могут адаптировать порядок сканирования для сканирования позиций коэффициентов блока в порядке убывания, на основе их счетных значений, где счетные значения отражают вероятность ненулевого коэффициента данной позиции. В некоторых случаях после адаптации порядка сканирования блоки 41, 63 сканирования коэффициентов могут определить, превышают ли какие-либо счетные значения статистических данных пороговое значение (86). Если одна из позиций коэффициентов имеет соответствующее счетное значение, которое превышает порог, то блоки 41, 63 сканирования коэффициентов могут нормализовать собранные статистические данные, например счетные значения коэффициента (87). Например, блоки 41, 63 сканирования коэффициентов могут нормализовать счетные значения коэффициентов посредством уменьшения каждого счетного значения с помощью предварительно определенного множителя, например 2, для половинного уменьшения каждого счетного значения или посредством повторной установки счетных значений в набор начальных счетных значений. Нормализация счетных значений коэффициентов может предоставить видеокодеру 20 возможность более быстрой адаптации к локальным статистическим данным коэффициентов.
После нормализации собранных статистических данных или в случае невыполнения нормализации блоки 41, 63 сканирования коэффициентов сканируют последующие блоки с использованием адаптированного порядка сканирования (88). Блоки 41, 63 сканирования коэффициентов могут отсканировать, по меньшей мере, один последующий блок с использованием адаптированного порядка сканирования в случае присутствия в пределах кодируемого блока предварительно сканированного видеоблока, по меньшей мере, одного последующего блока. Блоки 41, 63 сканирования коэффициентов могут продолжать сканирование последующих видеоблок до тех пор, пока порядок сканирования не будет адаптирован снова или же повторно инициализирован, например, на границе кодируемого блока. Таким образом, блоки 41, 63 сканирования коэффициентов адаптируют порядок сканирования на основе собранных статистических данных для сканирования позиций коэффициентов блока, которые определены в качестве имеющих большую вероятность отличия от нуля, сравнительно с позициями коэффициентов блока, которые определены в качестве имеющих меньшую вероятность отличия от нуля. Следовательно, одномерный вектор коэффициентов выполнен с возможностью продвижения группы ненулевых коэффициентов в начало сканированного одномерного вектора, а нулевых коэффициентов в конец сканированного одномерного вектора. В свою очередь, это может улучшить уровень сжатия, который может быть достигнут в течение статистического кодирования.
В некоторых случаях блоки 41, 63 сканирования коэффициентов может адаптивно установить порядок сканирования отдельно для каждого режима предсказания, поскольку каждый режим предсказания может иметь различные статистические данные коэффициентов. Другими словами, блоки 41, 63 сканирования коэффициентов могут поддерживать отдельные статистические данные для каждого режима предсказания, а также устанавливать различные порядки сканирования для каждого режима предсказания, на основе соответствующих статистических данных. Следовательно, вышеописанная иллюстративная блок-схема может быть выполнена посредством блоков 41, 63 сканирования коэффициентов для каждого режима предсказания.
Фиг.6 изображает схему последовательности операций, отображающую иллюстративную работу блока кодирования, такого как блок 46 статистического кодирования видеокодера 20, кодирующего информацию заголовка для видеоблока, в соответствии с одним из способов настоящего раскрытия. Блок 46 статистического кодирования принимает информацию заголовка для блока в форме одного или нескольких синтаксических элементов заголовка (90). Синтаксические элементы заголовка могут идентифицировать конкретные параметры текущего видеоблока, такие как тип блока, режим предсказания, кодированное содержимое блока (СВР) для яркости и/или насыщенности цвета, разбиение блока, а также один или несколько векторов движения. Фиг.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 декодирования 60 мог точно декодировать режимы предсказания видеоблоков.
Фиг.8 изображает схему последовательности операций, отображающую иллюстративную работу блока декодирования, такого как блок 60 статистического декодирования видеодекодера 26, декодирующего информацию заголовка видеоблока в соответствии со способами настоящего раскрытия. Блок 60 статистического декодирования декодирует кодированный битовый видеопоток для получения информации заголовка, например, в форме одного или нескольких синтаксических элементов заголовка. Описание блока 60 статистического декодирования, выполняющего декодирование режима предсказания, дано в иллюстративных целях. Способы могут быть расширены для декодирования других синтаксических элементов заголовка, таких как тип блока, разбиение блока, содержимое СВР или подобных.
В частности, блок 60 статистического декодирования принимает первый бит, представляющий режим предсказания текущего блока (120). Блок 60 статистического декодирования определяет, указывает ли первый бит, представляющий режим предсказания, на то, что режим предсказания текущего блока является аналогичным режиму предсказания предварительно декодированного блока, например либо верхнего, либо левого соседних блоков (122). Например, блок 60 статистического декодирования может определить, что режим предсказания текущего блока является аналогичным режиму предсказания верхнего или левого соседнего блока в случае, если первый бит является «1», а также что режим предсказания текущего блока не является аналогичным режимам предсказания верхнего и левого соседних блоков в случае, если первый бит является «0».
Если блок 60 статистического декодирования определяет, что режим предсказания текущего блока является аналогичным режиму предсказания верхнего или левого соседнего блока, то блок 60 статистического декодирования определяет, является ли режим предсказания верхнего соседнего блока аналогичным режиму предсказания левого соседнего блока (124). Если режим предсказания верхнего соседнего блока и режим предсказания левого соседнего блока являются аналогичными, то больше не принимаются биты, представляющие режим предсказания текущего видеоблока и блок 60 статистического декодирования выбирает режим предсказания любого соседнего блока в качестве режима предсказания текущего блока (126). Если режим предсказания верхнего соседнего блока и режим предсказания левого соседнего блока являются различными, то принимается один дополнительный бит, представляющий режим предсказания, и блок 60 статистического декодирования выбирает режим предсказания соответствующего соседнего блока в качестве режима предсказания текущего блока, на основе следующего принимаемого бита, представляющего режим предсказания (128). Например, блок 60 статистического декодирования может выбрать режим предсказания верхнего соседнего блока в качестве режима предсказания текущего блока в случае, если следующий принимаемый бит является «1», а также выбрать режим предсказания левого соседнего блока в качестве режима предсказания текущего блока в случае, если следующий принимаемый бит является «0».
Если блок 60 статистического декодирования определяет, что режим предсказания текущего блока не является аналогичным режиму предсказания верхнего или левого соседнего блока, то есть когда первый бит, представляющий режим предсказания, является «0», то блок 60 статистического декодирования может удалить один или несколько режимов предсказания из набора возможных режимов предсказания (130). Блок 60 статистического декодирования может удалить режимы предсказания верхнего и левого соседних блоков из набора возможных режимов предсказания. Если верхний и левый соседние блоки имеют аналогичный режим предсказания, то блок 60 статистического декодирования может удалить режим предсказания соседних блоков и, по меньшей мере, один отличный режим предсказания, как было подробно описано выше.
Блок 60 статистического декодирования декодирует оставшиеся биты, например четыре бита в описанном примере, для получения номера режима предсказания текущего блока (132). Блок 60 статистического декодирования может пронумеровать оставшиеся режимы предсказания (134) способом, обратным по отношению к процессу нумерации режимов предсказания, выполняемого посредством блока 46 статистического кодирования.
В одном примере блок 60 статистического декодирования может перенумеровать декодированные режимы предсказания (от 0 до 15) на первоначальные номера режимов предсказания (от 0 до 17) посредством обратной вставки режимов предсказания, которые были удалены. В некоторых случаях блок 60 статистического декодирования может выбрать различные кодируемые контексты для режима предсказания блока на основе режимов предсказания одного или нескольких предварительно декодированных видеоблоков, например на основе того, являются ли режимы предсказания предварительно декодированных блоков режимами однонаправленного предсказания, режимами двунаправленного предсказания или же один из них является режимом однонаправленного предсказания, а другой является режимом двунаправленного предсказания, как было подробно описано выше. Блок 60 статистического декодирования обеспечивает режим предсказания блоку 62 предсказания для формирования блока предсказания в соответствии с выбранным режимом предсказания (136). Как было описано относительно Фиг.3, блок предсказания объединяется с остаточными пиксельными значениями для формирования восстановленного блока для представления пользователю.
Описанные в настоящем раскрытии способы могут быть реализованы в аппаратных средствах, программных средствах, микропрограммных средствах или посредством любой комбинации вышеперечисленного. Любые отличительные признаки, описанные в качестве блоков или компонентов, могут быть совместно реализованы в интегрированном логическом устройстве или отдельно в качестве дискретных, но интероперабельных логических устройствах. При программной реализации способы могут быть реализованы, по меньшей мере, частично посредством машиночитаемого носителя информации, содержащего команды, которые при исполнении выполняют один или несколько вышеописанных способов. Машиночитаемый носитель информации может являться частью компьютерного программного продукта, который может включать в себя упаковочные материалы. Машиночитаемый носитель информации может включать в себя оперативную память (RAM), такую как синхронная динамическая оперативная память (SDRAM), постоянную память (ROM), энергонезависимую оперативную память (NVRAM), электрически стираемую программируемую постоянную память (EEPROM), флэш-память, магнитные или оптические накопители данных и т.п. Способы дополнительно или альтернативно могут быть реализованы, по меньшей мере, частично посредством машиночитаемого носителя информации для передачи данных, который транспортирует или передает код в форме команд или структур данных, к которому можно получить доступ, считать и/или выполнить посредством компьютера.
Код может быть выполнен посредством одного или нескольких процессоров, таких как один или несколько цифровых сигнальных процессоров (DSP), универсальных микропроцессоров, специализированных интегральных микросхем (ASIC), программируемых вентильных матриц (FPGA) или другой эквивалентной интегрированной или дискретной логической схемы. Соответственно, используемый в настоящем документе термин «процессор» может относиться к любой предшествующей структуре или же к любой другой структуре, подходящей для варианта осуществления описанных в настоящем документе способов. Кроме того, в некоторых аспектах описанные в настоящем документе функциональные возможности могут быть обеспечены в пределах специализированных программных блоков или аппаратных блоков, сконфигурированных для кодирования и декодирования, или включены в комбинированный кодер-декодер видео (КОДЕР-ДЕКОДЕР). Описание различных отличительных признаков в качестве блоков предназначено для выделения различных функциональных аспектов иллюстрированных устройств и не обязывает подразумевать то, что такие блоки должны быть реализованы посредством отдельных компонентов аппаратных или программных средств. Скорее всего, функциональные возможности, связанные с одним или несколькими блоками, могут быть объединены в пределах общих или отдельных компонентов аппаратных или программных средств.
Были описаны различные варианты осуществления настоящего раскрытия. Эти и другие варианты осуществления находятся в рамках следующей формулы изобретения.

Claims (54)

1. Способ кодирования видеоданных, содержащий этапы, на которых
сканируют значения коэффициентов первого набора видеоблоков с использованием порядка сканирования коэффициентов, определенного для первого набора видеоблоков, причем первый набор видеоблоков содержит видеоблоки, которые кодированы в соответствии с первым режимом предсказания;
сканируют значения коэффициентов второго набора видеоблоков с использованием порядка сканирования коэффициентов, определенного для второго набора видеоблоков, причем второй набор видеоблоков содержит видеоблоки, которые кодированы в соответствии со вторым режимом предсказания, причем второй режим предсказания отличается от первого режима предсказания;
собирают первые статистические данные, связанные, по меньшей мере, с частью значений коэффициентов первого набора видеоблоков;
собирают вторые статистические данные, связанные, по меньшей мере, с частью значений коэффициентов второго набора видеоблоков;
устанавливают порядок сканирования коэффициентов, определенный для первого набора видеоблоков, на основе первых собранных статистических данных;
устанавливают порядок сканирования коэффициентов, определенный для второго набора видеоблоков, на основе вторых собранных статистических данных;
сканируют значения коэффициентов, по меньшей мере, одного последующего видеоблока, который использует первый режим предсказания, с использованием установленного порядка сканирования коэффициентов, определенного для первого набора видеоблоков;
сканируют значения коэффициентов, по меньшей мере, одного последующего видеоблока, который использует второй режим предсказания, с использованием установленного порядка сканирования коэффициентов, определенного для второго набора видеоблоков; и
выполняют статистическое кодирование значений коэффициентов.
2. Способ по п.1, в котором этап установки порядка сканирования коэффициентов, определенного для первого набора видеоблоков, включает в себя этап, на котором адаптируют порядок сканирования коэффициентов, определенный для первого набора видеоблоков, после фиксированного интервала для формирования установленного порядка сканирования коэффициентов, определенного для первого набора видеоблоков.
3. Способ по п.2, в котором этап установки порядка сканирования коэффициентов, определенного для первого набора видеоблоков, после упомянутого фиксированного интервала включает в себя этап, на котором устанавливают порядок сканирования коэффициентов, определенный для первого набора видеоблоков, после того как было кодировано пороговое количество видеоблоков в первом наборе видеоблоков.
4. Способ по п.1, в котором этап сбора первых статистических данных, по меньшей мере, для части значений коэффициентов первого набора видеоблоков включает в себя этап, на котором сохраняют счетное значение, соответствующее каждой позиции в пределах, по меньшей мере, части двумерного представления значений коэффициентов первого набора видеоблоков, причем счетное значение отслеживает количество раз, когда данная позиция определяет ненулевое значение коэффициента.
5. Способ по п.4, в котором этап установки порядка сканирования коэффициентов, определенного для первого набора видеоблоков, включает в себя этап, на котором устанавливают порядок сканирования коэффициентов, определенный для первого набора видеоблоков, для формирования установленного порядка сканирования коэффициентов, для сканирования позиций коэффициентов, определенных для первого набора видеоблоков, в порядке убывания, на основе упомянутых счетных значений позиций коэффициентов.
6. Способ по п.4, в котором этап установки порядка сканирования коэффициентов, определенного для первого набора видеоблоков, включает в себя этап, на котором обновляют порядок сканирования коэффициентов, определенный для первого набора видеоблоков, в соответствии с первыми собранными статистическими данными, для формирования установленного порядка сканирования коэффициентов, определенного для первого набора видеоблоков, в случае, если одно из счетных значений достигает порогового значения.
7. Способ по п.1, дополнительно включающий в себя этап, на котором нормализуют первые собранные статистические данные.
8. Способ по п.7, в котором этап сбора первых статистических данных, связанных, по меньшей мере, с частью значений коэффициентов первого набора видеоблоков, включает в себя этап, на котором сохраняют счетное значение, соответствующее каждой позиции в пределах части двумерного представления значений коэффициентов первого набора видеоблоков, причем счетное значение отслеживает количество раз, когда данная позиция имеет ненулевое значение коэффициента; и этап нормализации первых собранных статистических данных включает в себя этап, на котором нормализуют первые собранные статистические данные в случае, если одно из счетных значений достигает порогового счетного значения.
9. Способ по п.8, в котором этап нормализации первых собранных статистических данных включает в себя либо этап, на котором уменьшают каждое из счетных значений с помощью множителя, либо этап, на котором повторно устанавливают счетные значения в набор начальных счетных значений.
10. Способ по п.1, в котором этап сбора первых статистических данных включает в себя этап, на котором собирают статистические данные только для поднабора значений коэффициентов первого набора видеоблоков; и этап сбора вторых статистических данных включает в себя этап, на котором собирают статистические данные только для поднабора значений коэффициентов второго набора видеоблоков.
11. Способ по п.1, в котором этап сканирования значений коэффициентов первого набора видеоблоков включает в себя этап, на котором формируют первые одномерные векторы значений коэффициентов из первых двумерных блоков значений коэффициентов на основе порядка сканирования коэффициентов, определенного для первого набора видеоблоков; этап сканирования значений коэффициентов второго набора видеоблоков включает в себя этап, на котором формируют вторые одномерные векторы значений коэффициентов из вторых двумерных блоков значений коэффициентов на основе порядка сканирования коэффициентов, определенного для второго набора видеоблоков; и этап статистического кодирования включает в себя этап, на котором выполняют статистическое кодирование первых и вторых одномерных векторов после сканирования значений коэффициентов.
12. Способ по п.1, в котором этап сканирования значений коэффициентов первого набора видеоблоков включает в себя этап, на котором формируют первые двумерные блоки значений коэффициентов из первых одномерных векторов значений коэффициентов на основе порядка сканирования коэффициентов, определенного для первого набора видеоблоков; этап сканирования значений коэффициентов второго набора видеоблоков включает в себя этап, на котором формируют вторые двумерные блоки значений коэффициентов из вторых одномерных векторов значений коэффициентов на основе порядка сканирования коэффициентов, определенного для второго набора видеоблоков и этап статистического кодирования включает в себя этап, на котором выполняют статистическое декодирование первых и вторых одномерных векторов до сканирования значений коэффициентов.
13. Способ по п.1, в котором установку порядка сканирования коэффициентов выполняют в кодированных блоках, причем кодированные блоки содержат части или кадры, причем порядок сканирования коэффициентов, определенный для первого и второго набора видеоблоков, повторно инициализируют для кодированных блоков.
14. Устройство, которое кодирует видеоданные, содержащее
блок сканирования, который сканирует значения коэффициентов первого набора видеоблоков с использованием порядка сканирования коэффициентов, определенного для первого набора видеоблоков, причем первый набор видеоблоков содержит видеоблоки, которые кодируются в соответствии с первым режимом предсказания, сканирует значения коэффициентов второго набора видеоблоков с использованием порядка сканирования коэффициентов, определенного для второго набора видеоблоков, причем второй набор видеоблоков содержит видеоблоки, которые кодируются в соответствии со вторым режимом предсказания, причем второй режим предсказания отличается от первого режима предсказания, собирает первые статистические данные, связанные, по меньшей мере, с частью значений коэффициентов первого набора видеоблоков, собирает вторые статистические данные, связанные, по меньшей мере, с частью значений коэффициентов второго набора видеоблоков, устанавливает порядок сканирования коэффициентов, определенный для первого набора видеоблоков, на основе первых собранных статистических данных, устанавливает порядок сканирования коэффициентов, определенный для второго набора видеоблоков, на основе вторых собранных статистических данных, сканирует значения коэффициентов, по меньшей мере, одного последующего видеоблока, который использует первый режим предсказания, с использованием установленного порядка сканирования коэффициентов, определенного для первого набора видеоблоков, и сканирует значения коэффициентов, по меньшей мере, одного последующего видеоблока, который использует второй режим предсказания, с использованием установленного порядка сканирования коэффициентов, определенного для второго набора видеоблоков; и
блок статистического кодирования, который выполняет статистическое кодирование значений коэффициентов.
15. Устройство по п.14, в котором блок сканирования устанавливает порядок сканирования коэффициентов, определенный для первого набора видеоблоков, после фиксированного интервала для формирования установленного порядка сканирования коэффициентов, определенного для первого набора видеоблоков.
16. Устройство по п.15, в котором блок сканирования устанавливает порядок сканирования коэффициентов, определенный для первого набора видеоблоков, после того как было кодировано пороговое количество видеоблоков в первом наборе видеоблоков.
17. Устройство по п.14, в котором блок сканирования сохраняет счетное значение, соответствующее каждой позиции, находящейся в пределах, по меньшей мере, части двумерного представления значений коэффициентов первого набора видеоблоков, причем счетное значение отслеживает количество раз, когда данная позиция определяет ненулевое значение коэффициента.
18. Устройство по п.17, в котором блок сканирования устанавливает порядок сканирования коэффициентов, определенный для первого набора видеоблоков, для формирования установленного порядка сканирования коэффициентов, для сканирования позиций коэффициентов, определенных для первого набора видеоблоков, в порядке убывания, на основе счетных значений позиций коэффициентов.
19. Устройство по п.17, в котором блок сканирования обновляет порядок сканирования коэффициентов, определенный для первого набора видеоблоков, в соответствии с первыми собранными статистическими данными, для формирования установленного порядка сканирования коэффициентов, определенного для первого набора видеоблоков, в случае, если одно из счетных значений достигает порогового значения.
20. Устройство по п.14, в котором блок сканирования нормализует первые собранные статистические данные.
21. Устройство по п.20, в котором блок сканирования сохраняет счетное значение, соответствующее каждой позиции, находящейся в пределах части двумерного представления значений коэффициентов первого набора видеоблоков, причем счетное значение отслеживает количество раз, когда данная позиция имеет ненулевое значение коэффициента, а также нормализует первые собранные статистические данные в случае, если одно из счетных значений достигает порогового счетного значения.
22. Устройство по п.21, в котором нормализация первых собранных статистических данных включает в себя либо уменьшение каждого из счетных значений посредством множителя, либо повторную установку счетных значений в набор начальных счетных значений.
23. Устройство по п.14, в котором блок сканирования собирает первые статистические данные только для поднабора значений коэффициентов первого набора видеоблоков; и собирает вторые статистические данные только для поднабора значений коэффициентов второго набора видеоблоков.
24. Устройство по п.14, в котором блок сканирования формирует первые одномерные векторы значений коэффициентов из первых двумерных блоков значений коэффициентов на основе порядка сканирования коэффициентов, определенного для первого набора видеоблоков, и формирует вторые одномерные векторы значений коэффициентов из вторых двумерных блоков значений коэффициентов на основе порядка сканирования коэффициентов, определенного для второго набора видеоблоков; и блок статистического кодирования кодирует первые и вторые одномерные векторы после сканирования значений коэффициентов.
25. Устройство по п.14, в котором блок сканирования формирует первые двумерные блоки значений коэффициентов из первых одномерных векторов значений коэффициентов на основе порядка сканирования коэффициентов, определенного для первого набора видеоблоков и формирует вторые двумерные блоки значений коэффициентов из вторых одномерных векторов значений коэффициентов на основе порядка сканирования коэффициентов, определенного для второго набора видеоблоков; и блок статистического кодирования выполняет статистическое декодирование одномерного вектора до сканирования значений коэффициентов.
26. Устройство по п.14, в котором установка порядка сканирования коэффициентов выполняется в кодированных блоках, причем кодированные блоки содержат части или кадры, причем порядок сканирования коэффициентов, определенный для первого и второго набора видеоблоков, повторно инициализируется для кодированных блоков.
27. Устройство по п.14, причем устройство включает в себя устройство беспроводной связи.
28. Устройство по п.14, причем устройство включает в себя устройство с интегральной схемой.
29. Машиночитаемый носитель информации, на котором сохранены команды, которые, при исполнении на устройстве кодирования видео, предписывают устройству кодировать видеоблоки, причем команды предписывают устройству
сканировать значения коэффициентов первого набора видеоблоков с использованием порядка сканирования коэффициентов, определенного для первого набора видеоблоков, причем первый набор видеоблоков содержит видеоблоки, которые кодированы в соответствии с первым режимом предсказания;
сканировать значения коэффициентов второго набора видеоблоков с использованием порядка сканирования коэффициентов, определенного для второго набора видеоблоков, причем второй набор видеоблоков содержит видеоблоки, которые кодированы в соответствии со вторым режимом предсказания, причем второй режим предсказания отличается от первого режима предсказания;
собирать первые статистические данные, связанные, по меньшей мере, с частью значений коэффициентов первого набора видеоблоков;
собирать вторые статистические данные, связанные, по меньшей мере, с частью значений коэффициентов второго набора видеоблоков;
устанавливать порядок сканирования коэффициентов, определенный для первого набора видеоблоков, на основе первых собранных статистических данных;
устанавливать порядок сканирования коэффициентов, определенный для второго набора видеоблоков, на основе вторых собранных статистических данных;
сканировать значения коэффициентов, по меньшей мере, одного последующего видеоблока, который использует первый режим предсказания, с использованием установленного порядка сканирования коэффициентов, определенного для первого набора видеоблоков;
сканировать значения коэффициентов, по меньшей мере, одного последующего видеоблока, который использует второй режим предсказания, с использованием установленного порядка сканирования коэффициентов, определенного для второго набора видеоблоков; и
статистически кодировать значения коэффициентов.
30. Машиночитаемый носитель информации по п.29, в котором команды предписывают устройству устанавливать порядок сканирования коэффициентов, определенный для первого набора видеоблоков, после фиксированного интервала для формирования установленного порядка сканирования коэффициентов, определенного для первого набора видеоблоков.
31. Машиночитаемый носитель информации по п.30, в котором команды предписывают устройству устанавливать порядок сканирования коэффициентов, определенный для первого набора видеоблоков, после того как было кодировано пороговое количество видеоблоков в первом наборе видеоблоков.
32. Машиночитаемый носитель информации по п.29, в котором команды предписывают устройству сохранять счетное значение, соответствующее каждой позиции, находящейся, по меньшей мере, в пределах части двумерного представления значений коэффициентов первого набора видеоблоков, причем счетное значение отслеживает количество раз, когда данная позиция определяет ненулевое значение коэффициента.
33. Машиночитаемый носитель информации по п.32, в котором команды предписывают устройству устанавливать порядок сканирования коэффициентов, определенный для первого набора видеоблоков, для формирования установленного порядка сканирования коэффициентов для сканирования позиций коэффициентов, определенных для первого набора видеоблоков, в порядке убывания на основе счетных значений позиций коэффициентов.
34. Машиночитаемый носитель информации по п.32, в котором команды предписывают устройству обновлять порядок сканирования коэффициентов, определенный для первого набора видеоблоков, в соответствии с первыми собранными статистическими данными, для формирования установленного порядка сканирования коэффициентов, определенного для первого набора видеоблоков, в случае, если одно из счетных значений достигает порогового значения.
35. Машиночитаемый носитель информации по п.29, в котором команды предписывают устройству нормализовать первые собранные статистические данные.
36. Машиночитаемый носитель информации по п.35, в котором команды предписывают устройству сохранять счетное значение, соответствующее каждой позиции, находящейся в пределах части двумерного представления значений коэффициентов первого набора видеоблоков, причем счетное значение отслеживает количество раз, когда данная позиция имеет ненулевое значение коэффициента; и нормализовать первые собранные статистические данные, для нормализации первых собранных статистических данных в случае, если одно из счетных значений достигает порогового счетного значения.
37. Машиночитаемый носитель информации по п.36, в котором команды предписывают устройству нормализовать первые собранные статистические данные посредством уменьшения каждого из счетных значений посредством множителя или посредством повторной установки счетных значений в набор начальных счетных значений.
38. Машиночитаемый носитель информации по п.29, в котором команды предписывают устройству собирать первые статистические данные только для поднабора значений коэффициентов первого набора видеоблоков; и собирать вторые статистические данные только для поднабора значений коэффициентов второго набора видеоблоков.
39. Машиночитаемый носитель информации по п.29, в котором команды предписывают устройству формировать первые одномерные векторы значений коэффициентов из первых двумерных блоков значений коэффициентов на основе порядка сканирования коэффициентов, определенного для первого набора видеоблоков; формировать вторые одномерные векторы значений коэффициентов из вторых двумерных блоков значений коэффициентов на основе порядка сканирования коэффициентов, определенного для второго набора видеоблоков; и статистически кодировать первые и вторые одномерные векторы после сканирования значений коэффициентов.
40. Машиночитаемый носитель информации по п.29, в котором команды предписывают устройству формировать первые двумерные блоки значений коэффициентов из первых одномерных векторов значений коэффициентов на основе порядка сканирования коэффициентов, определенного для первого набора видеоблоков; формировать вторые двумерные блоки значений коэффициентов из вторых одномерных векторов значений коэффициентов на основе порядка сканирования коэффициентов, определенного для второго набора видеоблоков; и статистически декодировать первый и второй одномерный вектор до сканирования значений коэффициентов.
41. Машиночитаемый носитель информации по п.29, в котором установка порядка сканирования коэффициентов выполняется в кодированных блоках, причем кодированные блоки содержат части или кадры, причем порядок сканирования коэффициентов, определенный для первого и второго набора видеоблоков, повторно инициализируется для кодированных блоков.
42. Устройство, которое кодирует видеоданные, содержащее средство для сканирования значений коэффициентов первого набора видеоблоков с использованием порядка сканирования коэффициентов, определенного для первого набора видеоблоков, причем первый набор видеоблоков содержит видеоблоки, которые кодированы в соответствии с первым режимом предсказания;
причем средство для сканирования сканирует значения коэффициентов второго набора видеоблоков с использованием порядка сканирования коэффициентов, определенного для второго набора видеоблоков, причем второй набор видеоблоков содержит видеоблоки, которые кодированы в соответствии со вторым режимом предсказания, причем второй режим предсказания отличается от первого режима предсказания;
средство для сбора первых статистических данных, связанных, по меньшей мере, с частью значений коэффициентов первого набора видеоблоков;
причем средство для сбора собирает вторые статистические данные, связанные, по меньшей мере, с частью значений коэффициентов второго набора видеоблоков;
средство для установки порядка сканирования коэффициентов, определенного для первого набора видеоблоков, на основе первых собранных статистических данных;
причем средство для установки устанавливает порядок сканирования коэффициентов, определенный для второго набора видеоблоков, на основе вторых собранных статистических данных;
причем средство сканирования коэффициентов сканирует значения коэффициентов, по меньшей мере, одного последующего видеоблока, который использует первый режим предсказания, с использованием установленного порядка сканирования коэффициентов, определенного для первого набора видеоблоков, и сканирует значения коэффициентов, по меньшей мере, одного последующего видеоблока, который использует второй режим предсказания, с использованием установленного порядка сканирования коэффициентов, определенного для второго набора видеоблоков; и
средство для статистического кодирования значений коэффициентов.
43. Устройство по п.42, в котором средство установки адаптирует порядок сканирования коэффициентов, определенный для первого набора видеоблоков, после фиксированного интервала для формирования установленного порядка сканирования коэффициентов, определенного для первого набора видеоблоков.
44. Устройство по п.43, в котором средство установки устанавливает порядок сканирования коэффициентов, определенный для первого набора видеоблоков, после того как было кодировано пороговое количество видеоблоков в первом наборе видеоблоков.
45. Устройство по п.42, в котором средство сбора статистических данных сохраняет счетное значение, соответствующее каждой позиции, находящейся в пределах, по меньшей мере, части двумерного представления значений коэффициентов первого набора видеоблоков, причем счетное значение отслеживает количество раз, когда данная позиция определяет ненулевое значение коэффициента.
46. Устройство по п.45, в котором средство установки устанавливает порядок сканирования коэффициентов, определенный для первого набора видеоблоков, для формирования установленного порядка сканирования коэффициентов для сканирования позиций коэффициентов, определенных для первого набора видеоблоков, в порядке убывания на основе счетных значений позиций коэффициентов.
47. Устройство по п.45, в котором средство установки обновляет порядок сканирования коэффициентов, определенный для первого набора видеоблоков, в соответствии с первыми собранными статистическими данными, для формирования установленного порядка сканирования коэффициентов, определенного для первого набора видеоблоков, в случае, если одно из счетных значений достигает порогового значения.
48. Устройство по п.42, дополнительно включающее в себя средство для нормализации первых собранных статистических данных.
49. Устройство по п.48, в котором средство сбора статистических данных сохраняет счетное значение, соответствующее каждой позиции, находящейся в пределах части двумерного представления значений коэффициентов первого набора видеоблоков, причем счетное значение отслеживает количество раз, когда данная позиция имеет ненулевое значение коэффициента; и средство нормализации нормализует первые собранные статистические данные в случае, если одно из счетных значений достигает порогового счетного значения.
50. Устройство по п.49, в котором средство нормализации нормализует первые собранные статистические данные либо посредством уменьшения каждого счетного значения посредством множителя, либо посредством повторной установки счетных значений в набор начальных счетных значений.
51. Устройство по п.42, в котором средство сбора первых статистических данных содержит средство сбора статистических данных только для поднабора значений коэффициентов первого набора видеоблоков; и средство сбора вторых статистических данных содержит средство сбора статистических данных только для поднабора значений коэффициентов второго набора видеоблоков.
52. Устройство по п.42, в котором средство сканирования формирует первые одномерные векторы значений коэффициентов из первых двумерных блоков значений коэффициентов на основе порядка сканирования коэффициентов, определенного для первого набора видеоблоков, и формирует вторые одномерные векторы значений коэффициентов из вторых двумерных блоков значений коэффициентов на основе порядка сканирования коэффициентов, определенного для второго набора видеоблоков; и средство статистического кодирования выполняет статистическое кодирование первых и вторых одномерных векторов после сканирования значений коэффициентов.
53. Устройство по п.42, в котором средство сканирования формирует первые двумерные блоки значений коэффициентов из первых одномерных векторов значений коэффициентов на основе порядка сканирования коэффициентов, определенного для первого набора видеоблоков, и формирует вторые двумерные блоки значений коэффициентов из вторых одномерных векторов значений коэффициентов на основе порядка сканирования коэффициентов, определенного для второго набора видеоблоков; и средство статистического кодирования выполняет статистическое декодирование первых и вторых одномерных векторов до сканирования значений коэффициентов.
54. Устройство по п.42, в котором установка порядка сканирования коэффициентов выполняется в кодированных блоках, причем кодированные блоки содержат части или кадры, причем порядок сканирования коэффициентов, определенный для первого и второго набора видеоблоков, повторно инициализируется для кодированных блоков.
RU2010101085/07A 2007-06-15 2008-06-13 Адаптивное сканирование коэффициентов для кодирования видео RU2446615C2 (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
RU2010101085A RU2010101085A (ru) 2011-07-27
RU2446615C2 true RU2446615C2 (ru) 2012-03-27

Family

ID=40132292

Family Applications (4)

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

Family Applications Before (2)

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

Family Applications After (1)

Application Number Title Priority Date Filing Date
RU2010101053/07A RU2463729C2 (ru) 2007-06-15 2008-06-13 Отделимые направленные преобразования

Country Status (14)

Country Link
US (5) US8619853B2 (ru)
EP (3) EP2165543B1 (ru)
JP (4) JP5254324B2 (ru)
KR (3) KR101107867B1 (ru)
CN (3) CN101682770B (ru)
BR (3) BRPI0813351B1 (ru)
CA (3) CA2687260C (ru)
DK (1) DK2165543T3 (ru)
ES (1) ES2530796T3 (ru)
PL (1) PL2165543T3 (ru)
PT (1) PT2165543E (ru)
RU (4) RU2434360C2 (ru)
TW (3) TWI401959B (ru)
WO (3) WO2008157269A2 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2746706C1 (ru) * 2017-04-13 2021-04-19 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ и устройство кодирования/декодирования изображений

Families Citing this family (273)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NO326065B1 (no) * 2007-01-11 2008-09-08 Tandberg Telecom As Atte pixlers heltallstransform
US8045612B1 (en) 2007-01-19 2011-10-25 Marvell International Ltd. Fast inverse integer transform for video decoding
US8238428B2 (en) * 2007-04-17 2012-08-07 Qualcomm Incorporated Pixel-by-pixel weighting for intra-frame coding
US8571104B2 (en) * 2007-06-15 2013-10-29 Qualcomm, Incorporated Adaptive coefficient scanning in video coding
US8619853B2 (en) 2007-06-15 2013-12-31 Qualcomm Incorporated Separable directional transforms
CN103281542B (zh) 2007-06-29 2017-07-14 夏普株式会社 图像编码装置、图像编码方法、图像译码装置、图像译码方法
WO2009032255A2 (en) * 2007-09-04 2009-03-12 The Regents Of The University Of California Hierarchical motion vector processing method, software and devices
US8331454B2 (en) * 2007-11-12 2012-12-11 Cisco Technology, Inc. Integer transform function for video compression systems
KR20090097013A (ko) * 2008-03-10 2009-09-15 삼성전자주식회사 영상 부호화장치 및 영상 복호화장치
KR101375668B1 (ko) * 2008-03-17 2014-03-18 삼성전자주식회사 변환 계수의 부호화, 복호화 방법 및 장치
US8542748B2 (en) 2008-03-28 2013-09-24 Sharp Laboratories Of America, Inc. Methods and systems for parallel video encoding and decoding
JP5166339B2 (ja) * 2008-03-28 2013-03-21 三星電子株式会社 画像のイントラ予測モード情報の符号化及び/又は復号化方法及び装置
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
US8483285B2 (en) * 2008-10-03 2013-07-09 Qualcomm Incorporated Video coding using transforms bigger than 4×4 and 8×8
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
KR20220123340A (ko) * 2009-01-27 2022-09-06 인터디지털 브이씨 홀딩스 인코포레이티드 비디오 인코딩 및 디코딩에서 변환 선택을 위한 방법 및 장치
KR101710619B1 (ko) * 2009-02-04 2017-02-28 삼성전자주식회사 단계적인 영상 부호화, 복호화 방법 및 장치
KR101690291B1 (ko) * 2009-02-05 2016-12-27 톰슨 라이센싱 적응형 모드 비디오 인코딩 및 디코딩 방법 및 장치
WO2010090484A2 (ko) * 2009-02-09 2010-08-12 삼성전자 주식회사 저복잡도 주파수 변환을 이용한 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
US20100208804A1 (en) * 2009-02-13 2010-08-19 Xiang Yu 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
US8509309B2 (en) 2009-05-14 2013-08-13 Massachusetts Institute Of Technology Selecting transforms for compressing visual data
US8451903B2 (en) * 2009-05-14 2013-05-28 Massachusetts Institute Of Technology Selecting transforms for compressing visual data
CN101895739B (zh) * 2009-05-20 2012-12-19 深圳市融创天下科技股份有限公司 基于块统计特性的编码方法
US8660261B2 (en) * 2009-06-04 2014-02-25 Mediatek Singapore Pte. Ltd. System and apparatus for integrated video/image encoding/decoding and encryption/decryption
US8700410B2 (en) * 2009-06-18 2014-04-15 Texas Instruments Incorporated Method and system for lossless value-location encoding
US8873626B2 (en) * 2009-07-02 2014-10-28 Qualcomm Incorporated Template matching for video coding
CN101945270B (zh) * 2009-07-06 2013-06-19 联发科技(新加坡)私人有限公司 视频编码器、进行内部预测及进行视频数据压缩的方法
US9357221B2 (en) 2009-07-23 2016-05-31 Thomson Licensing Methods and apparatus for adaptive transform selection for video encoding and decoding
WO2011010959A1 (en) * 2009-07-23 2011-01-27 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for encoding and decoding of images
EP2280548B1 (en) * 2009-07-30 2018-03-28 Thomson Licensing DTV Method for decoding a stream of coded data representative of a sequence of images and method for coding a sequence of images
KR101474756B1 (ko) 2009-08-13 2014-12-19 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
KR101712097B1 (ko) * 2009-08-19 2017-03-03 삼성전자 주식회사 유연한 직교 변환에 기초한 영상 부호화, 복호화 방법 및 장치
JP5806219B2 (ja) * 2009-10-05 2015-11-10 トムソン ライセンシングThomson Licensing ビデオ符号化及び復号化における埋め込み量子化パラメータ調整方法及び装置
US8477845B2 (en) * 2009-10-16 2013-07-02 Futurewei Technologies, Inc. Predictive adaptive scan ordering for video coding
US20110090954A1 (en) * 2009-10-21 2011-04-21 Cohen Robert A Video Codes with Directional Transforms
CN102045560B (zh) * 2009-10-23 2013-08-07 华为技术有限公司 一种视频编解码方法及设备
KR20110045949A (ko) * 2009-10-28 2011-05-04 삼성전자주식회사 회전 변환을 이용한 영상 부호화, 복호화 방법 및 장치
KR101457894B1 (ko) * 2009-10-28 2014-11-05 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
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
TWI396448B (zh) * 2009-10-30 2013-05-11 Hon Hai Prec Ind Co Ltd 熵解碼裝置
KR20110065089A (ko) * 2009-12-09 2011-06-15 삼성전자주식회사 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치
KR101441879B1 (ko) * 2009-12-09 2014-09-23 에스케이텔레콤 주식회사 영상 부호화 장치 및 방법, 및 거기에 이용되는 변환 부호화 장치 및 방법, 변환기저 생성장치 및 방법, 및 영상 복호화 장치 및 방법
KR20110065092A (ko) * 2009-12-09 2011-06-15 삼성전자주식회사 회전 변환을 이용한 영상 부호화, 복호화 방법 및 장치
KR20110068792A (ko) 2009-12-16 2011-06-22 한국전자통신연구원 적응적 영상 부호화 장치 및 방법
TWI389577B (zh) * 2009-12-31 2013-03-11 Via Tech Inc 視訊解碼解塊之裝置與方法
CN102118613B (zh) * 2009-12-31 2012-11-21 华为技术有限公司 视频解码和编码方法及装置
JP5526277B2 (ja) * 2010-01-07 2014-06-18 株式会社東芝 動画像復号化装置、方法及びプログラム
JP5696248B2 (ja) * 2010-01-07 2015-04-08 株式会社東芝 動画像符号化装置及び動画像復号化装置
JP5432412B1 (ja) * 2010-01-07 2014-03-05 株式会社東芝 動画像符号化装置及び動画像復号化装置
JP5323209B2 (ja) * 2010-01-07 2013-10-23 株式会社東芝 動画像符号化装置及び動画像復号化装置
WO2011083573A1 (ja) * 2010-01-07 2011-07-14 株式会社 東芝 動画像符号化装置及び動画像復号化装置
JP5597782B2 (ja) * 2010-01-07 2014-10-01 株式会社東芝 動画像符号化装置及び動画像復号化装置
JP5432359B2 (ja) * 2010-01-07 2014-03-05 株式会社東芝 動画像符号化装置、方法及びプログラム
JP5908619B2 (ja) * 2010-01-07 2016-04-26 株式会社東芝 動画像符号化装置及び動画像復号化装置
JP5525650B2 (ja) * 2010-01-07 2014-06-18 株式会社東芝 動画像復号化装置、方法及びプログラム
US8885714B2 (en) * 2010-01-14 2014-11-11 Texas Instruments Incorporated Method and system for intracoding in video encoding
US8792740B2 (en) * 2010-02-02 2014-07-29 Humax Holdings Co., Ltd. Image encoding/decoding method for rate-distortion optimization and apparatus for performing same
KR101495724B1 (ko) 2010-02-02 2015-02-25 삼성전자주식회사 계층적 데이터 단위의 스캔 순서에 기반한 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
WO2011108240A1 (ja) * 2010-03-01 2011-09-09 パナソニック株式会社 画像符号化方法および画像復号方法
WO2011112239A1 (en) 2010-03-10 2011-09-15 Thomson Licensing Methods and apparatus for constrained transforms for video coding and decoding having transform selection
US8644375B2 (en) 2010-04-09 2014-02-04 Sharp Laboratories Of America, Inc. Methods and systems for intra prediction
US20110249743A1 (en) * 2010-04-09 2011-10-13 Jie Zhao Super-block for high performance video coding
CN102215391B (zh) * 2010-04-09 2013-08-28 华为技术有限公司 视频数据编码、解码方法及装置、变换处理方法及装置
US20110249741A1 (en) * 2010-04-09 2011-10-13 Jie Zhao Methods and Systems for Intra Prediction
CN102215388B (zh) * 2010-04-09 2013-11-06 华为技术有限公司 一种简化方向性变换的方法、装置和系统
US8705619B2 (en) * 2010-04-09 2014-04-22 Sony Corporation Directional discrete wavelet transform (DDWT) for video compression applications
JP5914962B2 (ja) * 2010-04-09 2016-05-11 ソニー株式会社 画像処理装置および方法、プログラム、並びに、記録媒体
US8619857B2 (en) 2010-04-09 2013-12-31 Sharp Laboratories Of America, Inc. Methods and systems for intra prediction
CN102215390B (zh) * 2010-04-09 2014-07-09 华为技术有限公司 图像编解码处理方法和装置
CN106231332B (zh) 2010-04-13 2020-04-14 Ge视频压缩有限责任公司 解码器、解码方法、编码器以及编码方法
ES2912048T3 (es) 2010-04-13 2022-05-24 Ge Video Compression Llc Codificación de mapas de significado y bloques de coeficiente de transformada
WO2011127963A1 (en) * 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Sample region merging
CN105959703B (zh) 2010-04-13 2019-06-04 Ge视频压缩有限责任公司 解码器、编码器、生成数据流的方法及解码数据流的方法
CN106060561B (zh) 2010-04-13 2019-06-28 Ge视频压缩有限责任公司 解码器、重建数组的方法、编码器、编码方法及数据流
EP3490257B1 (en) 2010-04-13 2024-01-10 GE Video Compression, LLC Sample region merging
KR101791078B1 (ko) * 2010-04-16 2017-10-30 에스케이텔레콤 주식회사 영상 부호화/복호화 장치 및 방법
US8638863B1 (en) 2010-05-18 2014-01-28 Google Inc. Apparatus and method for filtering video using extended edge-detection
KR102344855B1 (ko) 2010-05-26 2021-12-28 엘지전자 주식회사 비디오 신호의 처리 방법 및 장치
US8902978B2 (en) * 2010-05-30 2014-12-02 Lg Electronics Inc. Enhanced intra prediction mode signaling
CN102281435B (zh) * 2010-06-11 2013-10-02 华为技术有限公司 编码方法、解码方法、编码装置、解码装置及编解码系统
US9172968B2 (en) * 2010-07-09 2015-10-27 Qualcomm Incorporated Video coding using directional transforms
US8396305B2 (en) 2010-07-09 2013-03-12 Sony Corporation Image compression utilizing ring-tree entropy coding and directional transforms
BR122020008881B1 (pt) 2010-07-15 2021-08-10 Kabushiki Kaisha Toshiba Métodos de codificação e de decodificação de imagem
EP4106331A1 (en) * 2010-07-15 2022-12-21 Velos Media International Limited Image intra-prediction mode estimation device, image encoding device, image decoding device, and encoded image data
JP2012023632A (ja) 2010-07-15 2012-02-02 Sony Corp 符号化装置および符号化方法、並びに、復号装置および復号方法
CN101895757A (zh) * 2010-07-15 2010-11-24 北京大学 预测残差块的重排序、逆重排序方法及系统
US8873617B2 (en) * 2010-07-15 2014-10-28 Sharp Laboratories Of America, Inc. Method of parallel video coding based on same sized blocks
US8855188B2 (en) * 2010-07-15 2014-10-07 Sharp Laboratories Of America, Inc. Method of parallel video coding based on mapping
CN101895756B (zh) * 2010-07-15 2012-10-31 北京大学 视频图像块的编码、解码、重构方法及系统
WO2012008925A1 (en) * 2010-07-15 2012-01-19 Agency For Science, Technology And Research Method, apparatus and computer program product for encoding video data
US8837577B2 (en) * 2010-07-15 2014-09-16 Sharp Laboratories Of America, Inc. Method of parallel video coding based upon prediction type
KR20120009618A (ko) * 2010-07-19 2012-02-02 에스케이 텔레콤주식회사 주파수변환단위 분할부호화 방법 및 장치와 이를 이용한 영상 부호화/복호화 방법 및 장치
JP2012028858A (ja) * 2010-07-20 2012-02-09 Sony Corp 画像処理装置及び画像処理方法
WO2012014461A1 (ja) * 2010-07-28 2012-02-02 パナソニック株式会社 符号化方法および復号化方法
KR101373814B1 (ko) * 2010-07-31 2014-03-18 엠앤케이홀딩스 주식회사 예측 블록 생성 장치
US11284072B2 (en) 2010-08-17 2022-03-22 M&K Holdings Inc. Apparatus for decoding an image
US10085019B2 (en) * 2010-08-17 2018-09-25 M&K Holdings Inc. Method for restoring an intra prediction mode
KR101677480B1 (ko) * 2010-09-07 2016-11-21 에스케이 텔레콤주식회사 효과적인 화면내 예측모드 집합 선택을 이용한 영상 부호화/복호화 방법 및 장치
KR20120025111A (ko) * 2010-09-07 2012-03-15 에스케이 텔레콤주식회사 참조 화소들의 특성을 이용하여 예측모드 정보의 전송을 생략할 수 있는 화면 내 예측 부호화/복호화 장치 및 그 방법
US9378185B2 (en) 2010-09-30 2016-06-28 Texas Instruments Incorporated Transform and quantization architecture for video coding and decoding
US9154801B2 (en) * 2010-09-30 2015-10-06 Texas Instruments Incorporated Method and apparatus for diagonal scan and simplified coding of transform coefficients
CN102447895B (zh) 2010-09-30 2013-10-02 华为技术有限公司 扫描方法及装置、反扫描方法及装置
US9313514B2 (en) 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization
US8923395B2 (en) * 2010-10-01 2014-12-30 Qualcomm Incorporated Video coding using intra-prediction
US20120082243A1 (en) * 2010-10-05 2012-04-05 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
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
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
EP3493544B1 (en) 2010-12-17 2020-12-23 Mitsubishi Electric Corporation Moving image encoding device, moving image decoding device, moving image encoding method and moving image decoding method
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
EP2661893B1 (en) * 2011-01-04 2020-11-25 BlackBerry Limited Coding of residual data in predictive compression
EP2661886B1 (en) * 2011-01-04 2020-11-18 BlackBerry Limited Coding of residual data in predictive compression
CN104796711B (zh) * 2011-01-06 2018-03-09 三星电子株式会社 视频的编码方法和装置及视频的解码方法和装置
PL2661892T3 (pl) 2011-01-07 2022-08-16 Nokia Technologies Oy Przewidywanie ruchu w kodowaniu wideo
CA3167001A1 (en) * 2011-01-07 2012-07-12 Ntt Docomo, Inc. Predictive encoding method, predictive encoding device, and predictive encoding program of motion vector, and, predictive decoding method, predictive decoding device, and predictive decoding program of motion vector
US9071851B2 (en) * 2011-01-10 2015-06-30 Qualcomm Incorporated Adaptively performing smoothing operations
JP5850214B2 (ja) * 2011-01-11 2016-02-03 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
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ドコモ 画像予測符号化方法、画像予測符号化装置、画像予測符号化プログラム、画像予測復号方法、画像予測復号装置及び画像予測復号プログラム
US9210442B2 (en) 2011-01-12 2015-12-08 Google Technology Holdings LLC Efficient transform unit representation
US8811759B2 (en) * 2011-01-13 2014-08-19 Sony Corporation System and method for effectively performing an intra prediction procedure
US10080016B2 (en) * 2011-01-14 2018-09-18 Sony Corporation Codeword space reduction for intra chroma mode signaling for HEVC
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
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
US9338449B2 (en) 2011-03-08 2016-05-10 Qualcomm Incorporated Harmonized scan order for coding transform coefficients in video coding
US9106913B2 (en) 2011-03-08 2015-08-11 Qualcomm Incorporated Coding of transform coefficients for video coding
CN102685503B (zh) 2011-03-10 2014-06-25 华为技术有限公司 变换系数的编码方法、变换系数的解码方法,和装置
KR20140018873A (ko) * 2011-04-07 2014-02-13 엘지전자 주식회사 영상 정보 부호화 방법 및 복호화 방법
CN102238387B (zh) * 2011-05-25 2017-07-18 深圳市云宙多媒体技术有限公司 一种视频熵编码、熵解码方法、装置
EP2723077B1 (en) * 2011-06-17 2021-07-21 JVC KENWOOD Corporation Image encoding device, image encoding method and image encoding program, as well as image decoding device, image decoding method and image decoding program
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
US9491469B2 (en) 2011-06-28 2016-11-08 Qualcomm Incorporated Coding of last significant transform coefficient
WO2013003777A1 (en) * 2011-06-29 2013-01-03 General Instrument Corporation Methods and system for using a scan coding pattern during intra coding
US9445093B2 (en) * 2011-06-29 2016-09-13 Qualcomm Incorporated Multiple zone scanning order for video coding
US9516316B2 (en) 2011-06-29 2016-12-06 Qualcomm Incorporated VLC coefficient coding for large chroma block
US8929455B2 (en) * 2011-07-01 2015-01-06 Mitsubishi Electric Research Laboratories, Inc. Method for selecting transform types from mapping table for prediction modes
US9392301B2 (en) 2011-07-01 2016-07-12 Qualcomm Incorporated Context adaptive entropy coding for non-square blocks in video coding
US9338456B2 (en) 2011-07-11 2016-05-10 Qualcomm Incorporated Coding syntax elements using VLC codewords
US9756360B2 (en) 2011-07-19 2017-09-05 Qualcomm Incorporated Coefficient scanning in video coding
US9699456B2 (en) * 2011-07-20 2017-07-04 Qualcomm Incorporated Buffering prediction data in video coding
CN102447898B (zh) * 2011-08-26 2013-09-25 西安电子科技大学 用fpga实现klt变换的方法
CN103765886B (zh) * 2011-08-29 2017-06-13 苗太平洋控股有限公司 以amvp模式产生预测区块的方法
GB2494468B (en) 2011-09-12 2014-01-15 Canon Kk Method and device for encoding or decoding information representing prediction modes
US9699452B2 (en) * 2011-09-15 2017-07-04 Vid Scale, Inc Systems and methods for spatial prediction
SG11201400294SA (en) * 2011-10-17 2014-09-26 Toshiba Kk Encoding device, decoding device, encoding method, and decoding method
AU2012326895B2 (en) 2011-10-17 2015-12-17 Kt Corporation Adaptive transform method based on in-screen prediction and apparatus using the method
KR101857109B1 (ko) * 2011-10-17 2018-05-11 주식회사 케이티 영상 부호화/복호화 방법 및 그 장치
CN107959857B (zh) 2011-10-18 2022-03-01 株式会社Kt 视频信号解码方法
MX358516B (es) 2011-10-19 2018-08-24 Kt Corp Método y aparato para codificar/decodificar imágenes.
WO2013063982A1 (en) 2011-10-31 2013-05-10 Mediatek Inc. Apparatus and method for buffering context arrays referenced for performing entropy decoding upon multi-tile encoded picture and related entropy decoder
AU2015201782B2 (en) * 2011-10-31 2016-07-28 Samsung Electronics Co., Ltd. Method and apparatus for determining a context model for transform coefficient level entropy encoding and decoding
EP3166317B1 (en) 2011-10-31 2018-08-15 Samsung Electronics Co., Ltd. Method and apparatus for determining a context model for transform coefficient level entropy encoding and decoding
KR20130049522A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
KR20130049523A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 장치
JP5871628B2 (ja) * 2011-11-07 2016-03-01 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
KR20130050405A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 시간 후보자 결정방법
FR2982447A1 (fr) * 2011-11-07 2013-05-10 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
JP2013102297A (ja) 2011-11-07 2013-05-23 Canon Inc 画像符号化方法、画像符号化装置及びプログラム、画像復号方法、画像復号装置及びプログラム
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
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
CN103220506B (zh) 2012-01-19 2015-11-25 华为技术有限公司 一种编解码方法和设备
MY170555A (en) 2012-01-20 2019-08-19 Ge Video Compression Llc Transform coefficient coding
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
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
PL3515073T3 (pl) 2012-03-26 2021-03-08 Jvckenwood Corporation Urządzenie do kodowania obrazu, sposób kodowania obrazu i program do kodowania obrazu
KR20130116216A (ko) * 2012-04-15 2013-10-23 삼성전자주식회사 인터 예측의 참조영상을 결정하는 방법과 그 장치
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
CN104488270B (zh) 2012-06-29 2018-05-18 韩国电子通信研究院 一种利用解码设备的视频解码方法
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
US10250874B2 (en) 2013-04-09 2019-04-02 Siemens Aktiengesellschaft Method for coding sequence of digital images
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
EP3025494A4 (en) 2013-07-24 2017-03-08 Microsoft Technology Licensing, LLC Scanning orders for non-transform coding
CN103402094A (zh) * 2013-08-05 2013-11-20 深圳市云宙多媒体技术有限公司 一种变换域色度帧内预测编解码方法及系统
CN103391443A (zh) * 2013-08-05 2013-11-13 深圳市云宙多媒体技术有限公司 一种大尺寸块的亮度变换域帧内预测编解码方法及系统
JP2015115614A (ja) * 2013-12-06 2015-06-22 日本電信電話株式会社 変換処理方法、逆変換処理方法、変換処理装置、逆変換処理装置、変換処理プログラム及び逆変換処理プログラム
US10362336B2 (en) 2014-03-25 2019-07-23 Qualcomm Incorporated Palette predictor signaling with run length code for video coding
JP5622954B2 (ja) * 2014-04-17 2014-11-12 株式会社東芝 画像復号化装置、方法およびプログラム
CN103974076B (zh) * 2014-05-19 2018-01-12 华为技术有限公司 图像编解码方法和设备、系统
JP5925855B2 (ja) * 2014-09-17 2016-05-25 株式会社東芝 画像復号化装置、方法およびプログラム、第1のプログラムおよび第2のプログラム、サーバシステムならびにダウンロード制御方法
US9565451B1 (en) 2014-10-31 2017-02-07 Google Inc. Prediction dependent transform coding
JP5775959B2 (ja) * 2014-11-07 2015-09-09 株式会社Nttドコモ 画像予測符号化方法、画像予測符号化装置、画像予測符号化プログラム、画像予測復号方法、画像予測復号装置及び画像予測復号プログラム
US10306229B2 (en) 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
WO2016133356A1 (ko) * 2015-02-17 2016-08-25 엘지전자(주) 적응적 스캔 오더를 이용하여 비디오 신호를 인코딩, 디코딩하는 방법 및 장치
JP6042478B2 (ja) * 2015-04-01 2016-12-14 株式会社東芝 画像復号化装置
US20180115787A1 (en) * 2015-04-12 2018-04-26 Lg Electronics Inc. Method for encoding and decoding video signal, and apparatus therefor
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
US10863207B2 (en) 2015-11-27 2020-12-08 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
RU2707719C1 (ru) 2016-02-12 2019-11-28 Хуавей Текнолоджиз Ко., Лтд. Способ и устройство выбора порядка сканирования
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 엘지전자(주) 계수 유도 복원을 이용하여 비디오 신호를 처리하는 방법 및 장치
KR102254162B1 (ko) * 2016-05-12 2021-05-20 엘지전자 주식회사 비디오 코딩 시스템에서 인트라 예측 방법 및 장치
CN109076222B9 (zh) 2016-05-13 2021-10-15 索尼公司 图像处理装置和方法
CN117412042A (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
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
BR112020009749A2 (pt) * 2017-11-24 2020-11-03 Sony Corporation aparelho e método de processamento de imagem.
US10382758B2 (en) * 2017-12-15 2019-08-13 Google Llc Transform block-level scan order selection for video coding
CN115834876A (zh) 2017-12-21 2023-03-21 Lg电子株式会社 解码和编码设备、存储比特流的介质和数据发送设备
CN108259897B (zh) * 2018-01-23 2021-08-27 北京易智能科技有限公司 一种基于深度学习的帧内编码优化方法
CN112075078B (zh) 2018-02-28 2024-03-15 弗劳恩霍夫应用研究促进协会 合成式预测及限制性合并
JP6486528B2 (ja) * 2018-03-19 2019-03-20 株式会社Nttドコモ 画像予測復号方法及び画像予測復号装置
WO2019190284A1 (ko) * 2018-03-29 2019-10-03 엘지전자 주식회사 비디오 압축을 위한 변환 커널의 저복잡도 연산을 수행하는 방법 및 장치
CN112166605A (zh) * 2018-06-21 2021-01-01 株式会社Kt 用于处理视频信号的方法和设备
JP7461925B2 (ja) 2018-07-16 2024-04-04 華為技術有限公司 ビデオ符号器、ビデオ復号器、並びに対応する符号化及び復号化方法
JP7052075B2 (ja) 2018-09-02 2022-04-11 エルジー エレクトロニクス インコーポレイティド 映像信号を処理するための方法および装置
CN109345177B (zh) * 2018-10-20 2022-03-18 广东三胜电器股份有限公司 一种基于云视频信息处理的冷链食品物流可视化方法
WO2020087324A1 (zh) * 2018-10-31 2020-05-07 富士通株式会社 图像编码方法、装置以及电子设备
US11012711B2 (en) * 2018-11-29 2021-05-18 Tencent America LLC Adaptive most probable modes for multiple reference line intra prediction
US11102513B2 (en) * 2018-12-06 2021-08-24 Tencent America LLC One-level transform split and adaptive sub-block transform
US11323748B2 (en) 2018-12-19 2022-05-03 Qualcomm Incorporated Tree-based transform unit (TU) partition for video coding
KR20200084300A (ko) * 2019-01-02 2020-07-10 디지털인사이트 주식회사 영상 복호화 방법, 영상 부호화 방법, 영상 복호화 장치, 영상 부호화 장치 및 컴퓨터 판독 가능한 기록 매체
JP7282904B2 (ja) 2019-02-19 2023-05-29 エルジー エレクトロニクス インコーポレイティド 映像コーディングシステムにおいてレジデュアル情報を使用する映像デコーディング方法及びその装置
US11122297B2 (en) 2019-05-03 2021-09-14 Google Llc Using border-aligned block functions for image compression
KR20210158402A (ko) 2019-06-19 2021-12-30 엘지전자 주식회사 현재 블록에 대하여 최종적으로 예측 모드를 선택하지 못하는 경우 인터 예측을 수행하는 영상 디코딩 방법 및 그 장치
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 (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998000807A1 (en) * 1996-07-03 1998-01-08 Motorola Inc. Method and apparatus for scanning of transform coefficients
RU2119727C1 (ru) * 1993-03-01 1998-09-27 Сони Корпорейшн Способы и устройства обработки набора коэффициентов преобразования, способы и устройства обратного ортогонального преобразования набора коэффициентов преобразования, способы и устройства для уплотнения и расширения сигнала движущегося изображения, носитель записи уплотненного сигнала, представляющего движущееся изображение
RU2005113308A (ru) * 2002-10-03 2006-01-20 Нокиа Корпорейшн (Fi) Основанное на контексте адаптивное неравномерное кодирование для адаптивных преобразований блоков
RU2004125588A (ru) * 2002-01-22 2006-01-27 Нокиа Корпорейшн (Fi) Кодирование коэффициентов преобразования в кодерах и/или декодерах изображения и видеоданных
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

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE1000643A5 (fr) * 1987-06-05 1989-02-28 Belge Etat Procede de codage de signaux d'image.
JPH01155678A (ja) 1987-12-11 1989-06-19 Matsushita Electric Ind Co Ltd 半導体発光装置
US5136371A (en) 1990-03-15 1992-08-04 Thomson Consumer Electronics, Inc. Digital image coding using random scanning
EP0586225B1 (en) * 1992-08-31 1998-12-23 Victor Company Of Japan, Ltd. Orthogonal transform coding apparatus and decoding apparatus
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
SG93920A1 (en) * 1996-11-07 2003-01-21 Matsushita Electric Ind Co Ltd An image decoding method and an image decoding apparatus
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 日本ビクター株式会社 ブロック間内挿予測符号化装置、復号化装置、符号化方法及び復号化方法
US6157676A (en) 1997-07-31 2000-12-05 Victor Company Of Japan Digital video signal inter-block interpolative predictive encoding/decoding apparatus and method providing high efficiency of encoding
JP4226172B2 (ja) * 1998-11-24 2009-02-18 株式会社ハイニックスセミコンダクター 適応的変換方法を用いる映像圧縮符号化装置および復号化装置ならびにその方法
WO2001031497A1 (en) 1999-10-22 2001-05-03 Activesky, Inc. An object oriented video system
US6724818B1 (en) 2000-07-17 2004-04-20 Telefonaktiebolaget Lm Ericsson (Publ) Alternative block orders for better prediction
CN1142683C (zh) 2000-10-13 2004-03-17 清华大学 无转置行列分离二维离散余弦正反变换电路及其方法
JP2002135126A (ja) 2000-10-26 2002-05-10 Seiko Epson Corp 半導体装置及びこれを用いた電子機器
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
KR100468844B1 (ko) 2002-01-07 2005-01-29 삼성전자주식회사 정지영상 및 동영상을 부호화/복호화하기 위한변환계수들의 최적주사방법
JP4447197B2 (ja) * 2002-01-07 2010-04-07 三菱電機株式会社 動画像符号化装置および動画像復号装置
JP4494789B2 (ja) 2002-01-14 2010-06-30 ノキア コーポレイション 動的フィルタのコーディング
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
EP3139606B1 (en) * 2002-05-28 2019-07-10 Dolby International AB Method and systems for image intra-prediction mode estimation, communication, and organization
RU2314656C2 (ru) 2002-06-11 2008-01-10 Нокиа Корпорейшн Внутреннее кодирование, основанное на пространственном прогнозировании
CN101043626B (zh) * 2002-07-15 2010-06-09 株式会社日立制作所 动态图像编码方法
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
CN1843038B (zh) * 2003-08-26 2010-09-22 汤姆森特许公司 用于解码混合内部-相互编码块的方法和装置
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
US8369402B2 (en) * 2004-06-17 2013-02-05 Canon Kabushiki Kaisha Apparatus and method for prediction modes selection based on image formation
JP2006005659A (ja) * 2004-06-17 2006-01-05 Canon Inc 画像符号化装置及びその方法
US7706443B2 (en) * 2005-03-11 2010-04-27 General Instrument Corporation Method, article of manufacture, and apparatus for high quality, fast intra coding usable for creating digital video content
TW200704202A (en) 2005-04-12 2007-01-16 Nokia Corp Method and system for motion compensated fine granularity scalable video coding with drift control
EP1909508A4 (en) 2005-07-22 2011-05-25 Mitsubishi Electric Corp Image Coding Device, Image Decoding Device, Image Coding Method, Image Decoding Method, Image Coding Program, Image Decoding Program, Computer Readable Recording Medium With Image Recoding Program Recorded Thereon, and Computer Readable Recording Medium With Image Image Coding Program Recorded Thereon
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 画像符号化装置および画像符号化方法
EP2733952A1 (en) 2005-10-21 2014-05-21 Electronics and Telecommunications Research Institute Method for encoding moving picture using adaptive scanning
WO2007063472A2 (en) 2005-11-30 2007-06-07 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
US8619853B2 (en) * 2007-06-15 2013-12-31 Qualcomm Incorporated Separable directional transforms
US8571104B2 (en) * 2007-06-15 2013-10-29 Qualcomm, Incorporated Adaptive coefficient scanning in video coding
EP2422520A1 (en) * 2009-04-20 2012-02-29 Dolby Laboratories Licensing Corporation Adaptive interpolation filters for multi-layered video delivery
US9641846B2 (en) * 2010-10-22 2017-05-02 Qualcomm Incorporated Adaptive scanning of transform coefficients for video coding

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2119727C1 (ru) * 1993-03-01 1998-09-27 Сони Корпорейшн Способы и устройства обработки набора коэффициентов преобразования, способы и устройства обратного ортогонального преобразования набора коэффициентов преобразования, способы и устройства для уплотнения и расширения сигнала движущегося изображения, носитель записи уплотненного сигнала, представляющего движущееся изображение
WO1998000807A1 (en) * 1996-07-03 1998-01-08 Motorola Inc. Method and apparatus for scanning of transform coefficients
RU2004125588A (ru) * 2002-01-22 2006-01-27 Нокиа Корпорейшн (Fi) Кодирование коэффициентов преобразования в кодерах и/или декодерах изображения и видеоданных
RU2005113308A (ru) * 2002-10-03 2006-01-20 Нокиа Корпорейшн (Fi) Основанное на контексте адаптивное неравномерное кодирование для адаптивных преобразований блоков
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ЯН РИЧАРДСОН, Видеокодирование Н.264 и MPEG-4 - стандарты нового поколения. - М.: Техносфера, 2005, с.78-85, 244-269. XIAOPENG FAN et al, A novel *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2746706C1 (ru) * 2017-04-13 2021-04-19 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ и устройство кодирования/декодирования изображений
US11729390B2 (en) 2017-04-13 2023-08-15 Lg Electronics Inc. Image encoding/decoding method and device therefor

Also Published As

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

Similar Documents

Publication Publication Date Title
RU2446615C2 (ru) Адаптивное сканирование коэффициентов для кодирования видео
EP2165542B1 (en) Adaptive coefficient scanning in video coding
US9641846B2 (en) Adaptive scanning of transform coefficients for video coding

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20171212

PC41 Official registration of the transfer of exclusive right

Effective date: 20211203