Подобная интерполяции фильтрация положений целочисленных пикселей при видеокодировании

Иллюстрации

Показать все

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

Реферат

Настоящая заявка испрашивает приоритет на основании предварительной заявки США 61/044020, поданной 10 апреля 2008 г., предварительной заявки США 61/044023, поданной 10 апреля 2008 г., предварительной заявки США 61/044240, поданной 11 апреля 2008 г., и предварительной заявки США 61/057373, поданной 30 мая 2008 г., содержание которых в полном объеме включено в данный документ по ссылке.

Область техники, к которой относится изобретение

Настоящее изобретение относится к цифровому видеокодированию и декодированию и, более конкретно, к методам фильтрации, применяемым для генерирования данных предсказания, используемых в видеокодировании и декодировании.

Уровень техники

Возможности цифрового видео могут быть встроены в многочисленные устройства, включая цифровые телевизоры, системы прямого цифрового вещания, системы беспроводного вещания, персональные цифровые помощники (PDA), портативные или настольные компьютеры, цифровые камеры, устройства цифровой записи, игровые видеоустройства, игровые видеоприставки, сотовые или спутниковые радиотелефоны и т.п. Цифровые видеоустройства реализуют методы сжатия видео, такие как те, которые описаны в стандартах, описанных в стандартах Экспертной группы по вопросам движущегося изображения MPEG-2, MPEG-4 или Международного союза электросвязи - сектора телекоммуникации H.264/MPEG-4, Part 10, усовершенствованное видеокодирование (AVC), для более эффективной передачи и приема цифровой видеоинформации. Методы сжатия видео могут выполнять пространственное предсказание и/или временное предсказание для уменьшения или устранения избыточности, присущей видеопоследовательностям.

Блочное внешнее кодирование является очень полезным методом кодирования, который основывается на временном предсказании для уменьшения или устранения временной избыточности между видеоблоками последовательных кодированных единиц видеопоследовательности. Кодированные блоки могут содержать видеокадры, слои видеокадров, группы изображений или другую определенную единицу кодированных видеоблоков. Для внешнего кодирования видеокодер выполняет оценку движения и компенсацию движения для отслеживания движения соответствующих видеоблоков двух или более соседних кодированных единиц. Оценка движения генерирует векторы движения, которые указывают смещение видеоблоков относительно соответствующих видеоблоков предсказания в одном или нескольких опорных кадрах или других кодированных единицах. Компенсация движения использует векторы движения для генерирования видеоблоков предсказания из одного или нескольких опорных кадров или других кодированных единиц. После компенсации движения остаточные видеоблоки образуются посредством вычитания видеоблоков предсказания из исходных кодируемых видеоблоков.

Видеокодер также может применять процессы преобразования, квантования и энтропийного кодирования для дополнительного снижения скорости передачи битов, ассоциированной с передачей остаточных блоков. Методы преобразования могут содержать дискретное косинусное преобразование (DCT) или концептуально подобные процессы. Альтернативно, могут использоваться вейвлет-преобразования, целочисленные преобразования или другие типы преобразований. В процессе DCT, в качестве примера, набор значений пикселей преобразуется в коэффициенты преобразования, которые могут представлять энергию значений пикселей в частотной области. Квантование применяется к коэффициентам преобразования и, в основном, включает в себя процесс, который уменьшает количество битов, связанных с любым данным коэффициентом преобразования. Энтропийное кодирование содержит один или несколько процессов, которые вместе содержат последовательность режимов кодирования, информацию о движении, шаблоны кодированных блоков и квантованные коэффициенты преобразования. Примеры энтропийного кодирования включают в себя, но не ограничиваются ими, контентно-адаптивное кодирование переменной длины (CAVLC) и контекстно-адаптивное двоичное арифметическое кодирование (CABAC).

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

Были разработаны методы интерполяции, чтобы повысить уровень сжатия, который может достигаться при внешнем кодировании. В данном случае, данные предсказания, генерируемые во время компенсации движения, которые используются для кодирования видеоблока, могут интерполироваться из пикселей видеоблоков видеокадра или другой кодированной единицы, используемой при оценке движения. Интерполяция часто выполняется для генерирования значений полупикселя (полупэла) предсказания и значений четвертьпикселя (четвертьпэла) предсказания. Значения полу- и четвертьпэла ассоциируются с местоположениями субпикселя. Дробные векторы движения могут использоваться для идентификации видеоблоков при субпиксельном разрешении, чтобы захватить дробное движение в видеопоследовательности и, таким образом, обеспечить блоки предсказания, которые являются более подобными кодируемым видеоблокам, чем целочисленные видеоблоки.

Раскрытие изобретения

В основном, настоящее раскрытие описывает методы фильтрации, применяемые кодером и декодером во время этапа предсказания процесса видеокодирования и/или декодирования. Описанные методы фильтрации могут повысить точность данных предсказания, используемых во время дробной интерполяции, и, в некоторых случаях, могут улучшить данные предсказания целочисленных блоков пикселей. Есть несколько аспектов данного раскрытия, включающие в себя полезную двенадцатипиксельную поддержку фильтра, которая может использоваться для интерполяции, методы, которые используют симметрию коэффициентов и симметрию пикселей для снижения количества данных, необходимых для пересылки между кодером и декодером для конфигурирования поддержки фильтра для интерполяции, и методы для фильтрации данных в местоположениях целочисленных пикселей образом, подобным субпиксельной интерполяции. Другие аспекты данного раскрытия касаются методов кодирования информации в битовом потоке для передачи типа используемого фильтра и, возможно, используемых коэффициентов фильтра. Также описываются методы кодирования с предсказанием для коэффициентов фильтра. Эти и другие аспекты данного раскрытия станут очевидными из описания ниже.

В одном примере данное раскрытие обеспечивает способ, содержащий получение блоков пикселей, причем блоки пикселей включают в себя значения целочисленных пикселей, соответствующие положениям целочисленных пикселей в блоках пикселей, фильтрацию значений целочисленных пикселей, основываясь на значениях других целочисленных пикселей в блоке пикселей, для генерирования откорректированных значений целочисленных пикселей, причем откорректированные значения целочисленные пикселей соответствуют положениям целочисленных пикселей, и генерирование блока предсказания, основываясь на откорректированных значениях целочисленных пикселей.

В другом примере данное раскрытие обеспечивает устройство, содержащее видеокодер, который получает блоки пикселей, причем блоки пикселей включают в себя значения целочисленных пикселей, соответствующие положениям целочисленных пикселей в блоках пикселей, фильтрует значения целочисленных пикселей, основываясь на значениях других целочисленных пикселей в блоке пикселей, для генерирования откорректированных значений целочисленных пикселей, причем откорректированные значения целочисленных пикселей соответствуют положениям целочисленных пикселей, и генерирует блок предсказания, основываясь на откорректированных значениях целочисленных пикселей.

В другом примере данное раскрытие обеспечивает устройство, содержащее средство для получения блоков пикселей, причем блоки пикселей включают в себя значения целочисленных пикселей, соответствующие положениям целочисленных пикселей в блоках пикселей, средство для фильтрации значений целочисленных пикселей, основываясь на значениях других целочисленных пикселей в блоке пикселей, для генерирования откорректированных значений целочисленных пикселей, причем откорректированные значения целочисленных пикселей соответствуют положениям целочисленных пикселей, и средство для генерирования блока предсказания, основанного на откорректированных значениях целочисленных пикселей.

Методы, описанные в данном раскрытии, могут быть реализованы аппаратными, программными, программно-аппаратными средствами или любой их комбинацией. Если они реализованы программными средствами, программные средства могут исполняться в одном или нескольких процессорах, таких как микропроцессор, специализированной интегральной схеме (специализированной ИС), программируемой вентильной матрице (FPGA) или процессоре цифровой обработки сигналов (DSP). Программные средства, которые исполняют методы, могут исходно храниться на считываемом компьютером носителе и загружаться и исполняться в процессоре.

Следовательно, данное раскрытие также рассматривает считываемый компьютером носитель данных, содержащий инструкции, которые, когда они исполняются процессором, побуждают процессор получать блоки пикселей, причем блоки пикселей включают в себя значения целочисленных пикселей, соответствующие положениям целочисленных пикселей в блоках пикселей, выполнять фильтрацию значений целочисленных пикселей, основываясь на значениях других целочисленных пикселей в блоке пикселей, для генерирования откорректированных значений целочисленных пикселей, причем откорректированные значения целочисленных пикселей соответствуют положениям целочисленных пикселей, и генерировать блок предсказания, основываясь на откорректированных значениях целочисленных пикселей.

Подробности одного или нескольких аспектов раскрытия изложены на прилагаемых чертежах и в описании ниже. Другие признаки, задачи и преимущества методов, описанных в данном раскрытии, будут очевидны из описания и чертежей, и из формулы изобретения.

Краткое описание чертежей

Фиг.1 представляет собой блок-схему, иллюстрирующую одну примерную систему видеокодирования и декодирования, которая может реализовывать методы данного раскрытия.

Фиг.2 представляет собой блок-схему, иллюстрирующую пример видеокодера, который может выполнять методы фильтрации, совместимые с данным раскрытием.

Фиг.3 представляет собой концептуальную схему, иллюстрирующую положения целочисленных пикселей, связанные с данными предсказания, и положения субпикселей, связанные с интерполированными данными предсказания.

Фиг.4 представляет собой концептуальную схему, иллюстрирующую 12-пиксельную поддержку фильтра в отношении девяти местоположений субпикселей.

Фиг.5 представляет собой концептуальную схему, иллюстрирующую горизонтальную 6-пиксельную поддержку фильтра в отношении трех горизонтальных местоположений субпикселей и вертикальную 6 пиксельную поддержку фильтра в отношении трех вертикальных местоположений субпикселей.

Фиг.6 представляет собой концептуальную схему, иллюстрирующую поддержку фильтра размерности пять пикселей на пять пикселей для фильтрации местоположения целочисленного пикселя.

Фиг.7 представляет собой концептуальную схему, иллюстрирующую четыре положения целочисленных пикселей и пятнадцать положений субпикселей со штриховкой для группирования положений пикселей, которые могут использовать симметрию пикселей для коэффициентов фильтра, совместимых с данным раскрытием.

Фиг.8 представляет собой концептуальную схему, иллюстрирующую шесть горизонтальных линейных положений пикселей поддержки относительно субпикселя со штриховкой, которая показывает симметрию коэффициентов.

Фиг.9 представляет собой концептуальную схему, иллюстрирующую шесть горизонтальных линейных положений пикселей поддержки относительно субпикселя со штриховкой, которая изображает отсутствие какой-либо симметрии коэффициентов.

Фиг.10 представляет собой концептуальную схему, иллюстрирующую шесть вертикальных линейных положений пикселей поддержки относительно субпикселя со штриховкой, которая изображает симметрию коэффициентов.

Фиг.11 представляет собой концептуальную схему, иллюстрирующую шесть вертикальных линейных положений пикселей поддержки относительно субпикселя со штриховкой, которая показывает отсутствие какой-либо симметрии коэффициентов.

Фиг.12 представляет собой концептуальную схему, иллюстрирующую двенадцать двухмерных положений пикселей поддержки относительно субпикселя со штриховкой, которая показывает отсутствие какой-либо симметрии коэффициентов.

Фиг.13 представляет собой концептуальную схему, иллюстрирующую двенадцать двухмерных положений пикселей поддержки относительно субпикселя со штриховкой, которая показывает симметрию коэффициентов.

Фиг.14 представляет собой концептуальную схему, иллюстрирующую двенадцать двухмерных положений пикселей поддержки относительно субпикселя со штриховкой, которая показывает симметрию коэффициентов.

Фиг.15 представляет собой концептуальную схему, иллюстрирующую двенадцать двухмерных положений пикселей поддержки относительно субпикселя со штриховкой, которая показывает симметрию коэффициентов.

Фиг.16 представляет собой блок-схему, иллюстрирующую пример видеодекодера, который может декодировать видеопоследовательность, которая кодируется так, как описано в данном документе.

Фиг.17 представляет собой блок-схему последовательности операций, иллюстрирующую примерную работу видеокодера, который использует двенадцатипиксельную поддержку фильтра, совместимую с данным раскрытием.

Фиг.18 представляет собой блок-схему последовательности операций, иллюстрирующую примерную работу видеодекодера, который использует двенадцатипиксельную поддержку фильтра, совместимую с данным раскрытием.

Фиг.19 представляет собой блок-схему последовательности операций, иллюстрирующую примерную работу видеокодера, который использует симметрию коэффициентов и симметрию пикселей, совместимые с данным раскрытием.

Фиг.20 представляет собой блок-схему последовательности операций, иллюстрирующую примерную работу видеодекодера, который использует симметрию коэффициентов и симметрию пикселей, совместимые с данным раскрытием.

Фиг.21 представляет собой блок-схему последовательности операций, иллюстрирующую примерную работу видеокодера, который использует фильтрацию местоположений целочисленных пикселей для генерирования откорректированных значений целочисленных пикселей, совместимых с данным раскрытием.

Фиг.22 представляет собой блок-схему последовательности операций, иллюстрирующую примерную работу видеодекодера, который использует фильтрацию местоположений целочисленных пикселей для генерирования откорректированных значений целочисленных пикселей, совместимых с данным раскрытием.

Фиг.23 представляет собой блок-схему последовательности операций, иллюстрирующую метод интерполяции, определяемой «скоростью-искажением», для видеокодирования, основанного на неперестраиваемом фильтре или адаптивном фильтре.

Фиг.24 представляет собой блок-схему последовательности операций, иллюстрирующую метод кодирования коэффициентов фильтра, используя кодирование с предсказанием.

Фиг.25 представляет собой другую блок-схему последовательности операций, иллюстрирующую метод кодирования коэффициентов фильтра, используя кодирование с предсказанием.

Фиг.26 представляет собой блок-схему последовательности операций, иллюстрирующую метод декодирования коэффициентов фильтра, используя кодирование с предсказанием.

Фиг.27 и 28 представляют собой концептуальные графики, иллюстрирующие коэффициенты фильтра, которые могут кодироваться с предсказанием.

Фиг.29 представляет собой иллюстративный пример массива коэффициентов фильтра целочисленных пикселей, для которых методы предсказания могут использоваться для кодирования.

Осуществление изобретения

Данное раскрытие описывает методы фильтрации, применяемые кодером и декодером во время этапа предсказания процесса видеокодирования и/или декодирования. Описанные методы фильтрации могут повысить точность данных предсказания, используемых во время дробной интерполяции, и, в некоторых случаях, могут улучшить данные предсказания целочисленных блоков пикселей. Есть несколько аспектов данного раскрытия, включающих в себя полезную двенадцатипиксельную поддержку фильтра, которая может использоваться для интерполяции, методы, которые используют симметрию коэффициентов и симметрию пикселей для снижения количества данных, необходимых для пересылки между кодером и декодером для конфигурирования поддержки фильтра для интерполяции, и методы для фильтрации данных в местоположениях целочисленных пикселей таким образом, который подобен субпиксельной интерполяции. Эти и другие методы подробно описаны ниже.

Фиг.1 представляет собой блок-схему, иллюстрирующую одну примерную систему 10 видеокодирования и декодирования, которая может использоваться для реализации одного или нескольких методов данного раскрытия. Как показано на фиг.1, система 10 включает в себя устройство 12 источника, который передает кодированное видео на устройство 16 назначения по каналу 15 связи. Устройство 12 источника и устройство 16 назначения могут содержать любое из многочисленных устройств. В некоторых случаях устройство 12 источника и устройство 16 назначения содержат устройства беспроводной связи, такие как беспроводные телефонные трубки, так называемые сотовые или спутниковые радиотелефоны, или любые беспроводные устройства, которые могут передавать видеоинформацию по каналу 15 связи, в этом случае канал 15 связи является беспроводным. Методы данного раскрытия, однако, которые касаются фильтрации и генерирования данных предсказания во время кодирования с предсказанием, необязательно ограничиваются беспроводными применениями или установками. Методы также могут быть полезными в многочисленных других установках и устройствах, включая устройства, которые выполняют связь по физическим проводам, оптическим волокнам или другим физическим или беспроводным средам. Кроме того, методы кодирования или декодирования также могут применяться в автономном устройстве, которое необязательно выполняет связь с каким-либо другим устройством.

В примере на фиг.1 устройство 12 источника может включать в себя источник 20 видео, видеокодер 22, модулятор/демодулятор (модем) 23 и передатчик 24. Устройство 16 назначения может включать в себя приемник 26, модем 27, видеодекодер 28 и устройство 30 отображения. В соответствии с данным раскрытием видеокодер 22 устройства 12 источника может быть выполнен с возможностью применения одного или нескольких методов данного раскрытия в качестве части процесса видеокодирования. Аналогично, видеодекодер 28 устройства 16 назначения может быть выполнен с возможностью применения одного или нескольких методов данного раскрытия в качестве части процесса видеодекодирования.

Снова, изображенная система 10 на фиг.1 является просто примерной. Различные методы данного раскрытия могут выполняться любым устройством кодирования, которое поддерживает блочное кодирование с предсказанием, или любым устройством декодирования, которое поддерживает блочное декодирование с предсказанием. Устройство 12 источника и устройство 16 назначения представляют собой просто примеры таких устройств кодирования, в которых устройство 12 источника генерирует кодированные видеоданные для передачи на устройство 16 назначения. В некоторых случаях устройства 12, 16 могут работать, по существу, симметричным образом, так что каждое из устройств 12, 16 включает в себя компоненты видеокодирования и декодирования. Следовательно, система 10 может поддерживать одностороннюю или двустороннюю передачу видео между видеоустройствами 12, 16, например, для потокового видео, проигрывания видео, широковещания видео или видеотелефонии.

Источник 20 видеоустройства 12 источника может включать в себя устройство захвата видео, такое как видеокамера, видеоархив, содержащий ранее захваченное видео, или загрузка видео от поставщика видеоконтента. В качестве другой альтернативы, источник 20 видео может генерировать данные, основанные на компьютерной графике, в качестве исходного видео, или сочетание реального видео, архивированного видео и сгенерированного компьютером видео. В некоторых случаях, если источником 20 видео является видеокамера, устройство 12 источника и устройство 16 назначения могут образовывать так называемые камерофоны или видеофоны. В каждом случае, захваченное, предварительно захваченное или сгенерированное компьютером видео может кодироваться видеокодером 22. Кодированная видеоинформация затем может модулироваться модемом 23 в соответствии со стандартом связи, например, таким как многостанционный доступ с кодовым разделением каналов (CDMA) или другой стандарт связи, и передаваться на устройство 16 назначения через передатчик 24 и канал 15 связи. Модем 23 может включать в себя различные смесители, фильтры, усилители или другие компоненты, предназначенные для модуляции сигнала. Передатчик 24 может включать в себя схемы, предназначенные для передачи данных, включая усилители, фильтры и одну или несколько антенн.

Приемник 26 устройства 16 назначения принимает информацию по каналу 15 связи, и модем 27 демодулирует информацию. Подобно передатчику 24 приемник 26 может включать в себя схемы, предназначенные для приема данных, включающие в себя усилители, фильтры и одну или несколько антенн. В некоторых случаях передатчик 24 и/или приемник 26 могут быть встроены в единственный компонент приемопередатчика, который включает в себя схемы как для приема, так и для передачи. Модем 27 может включать в себя различные смесители, фильтры, усилители или другие компоненты, предназначенные для демодуляции сигнала. В некоторых случаях модемы 23 и 27 могут включать в себя компоненты для выполнения как модуляции, так и для демодуляции.

Снова, процесс кодирования видео, выполняемый видеокодером 22, может реализовывать один или несколько методов, описанных в данном документе, во время компенсации движения. Процесс декодирования видео, выполняемый видеодекодером 28, также может выполнять такие методы во время его этапа компенсации движения процесса декодирования. Термин «кодер» используется в данном документе для ссылки на специализированный компьютерный прибор или устройство, которое выполняет видеокодирование или видеодекодирование. Термин «кодер», в основном, ссылается на любой видеокодер, видеодекодер или объединенный кодер/декодер (кодек). Термин «кодирование» ссылается на кодирование или декодирование. Устройство 30 отображения отображает данные декодируемого видео пользователю и может содержать любое из многочисленных устройств отображения, таких как электронно-лучевая трубка (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светоизлучающих диодах (OLED) или другой тип устройства отображения.

В примере на фиг.1 канал 15 связи может содержать любую беспроводную или проводную среду связи, такую как радиочастотный (RF) спектр или одну или несколько физических линий передачи, или любую комбинацию беспроводных или проводных сред. Канал 15 связи может образовывать часть пакетной сети, такой как локальная сеть, городская сеть или глобальная сеть, такая как Интернет. Канал 15 связи, в основном, представляет любую подходящую среду связи, или совокупность разных сред связи, для передачи видеоданных с устройства 12 источника на устройство 16 назначения. Канал 15 связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть полезным для того, чтобы способствовать выполнению связи от устройства 12 источника на устройство 16 назначения.

Видеокодер 22 и видеодекодер 28 могут работать в соответствии со стандартом сжатия видео, таким как стандарт ITU-T H.264, альтернативно описанным как MPEG-4, Part 10, усовершенствованное видеокодирование (AVC). Методы данного раскрытия, однако, не ограничиваются любым конкретным стандартом видеокодирования. Хотя и не показан на фиг.1, в некоторых аспектах видеокодер 22 и видеодекодер 28 каждый может быть интегрирован с аудиокодером и декодером и может включать в себя соответствующие узлы MUX-DEMUX (мультиплексора-демультиплексора), или другие аппаратные и программные средства, для выполнения кодирования как аудио, так и видео в общем потоке данных или в отдельных потоках данных. Если применимо, узлы MUX-DEMUX могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).

Видеокодер 22 и видеодекодер 28 каждый может быть реализован в виде одного или нескольких микропроцессоров, процессоров цифровой обработки сигналов (DSP), специализированных интегральных схем (специализированных ИС), программируемых вентильных матриц (FPGA), дискретной логики, программных средств, аппаратных средств, программно-аппаратных средств или любой их комбинации. Каждый из видеокодера 22 и видеодекодера 28 может быть включен в один или несколько кодеров или декодеров, любой из которых может быть интегрирован как часть объединенного кодека, который обеспечивает возможности кодирования и декодирования в соответствующем мобильном устройстве, абонентском устройстве, широковещательном устройстве, сервере или т.п.

Видеопоследовательность обычно включает в себя последовательность видеокадров. Видеокодер 22 работает с видеоблоками в индивидуальных видеокадрах, чтобы кодировать видеоданные. Видеоблоки могут иметь фиксированные или изменяющиеся размеры и могут различаться в размерах в соответствии с заданным стандартом кодирования. Каждый видеокадр включает в себя последовательность слоев. Каждый слой может включать в себя последовательность макроблоков, которые могут быть упорядочены в субблоки. В качестве примера, стандарт ITU-T H.264 поддерживает внутреннее предсказание в различных размерах блоков, таких как 16×116, 8×8 или 4×4 для яркостной составляющей и 8×8 для цветовых составляющих, а также внешнее предсказание в различных размерах блоков, таких как 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 и 4×4 для яркостной составляющей, и соответствующие масштабированные размеры для цветовых составляющих. Видеоблоки могут содержать блоки пиксельных данных или блоки коэффициентов преобразования, например, являющиеся следствием процесса преобразования, такого как дискретное косинусное преобразование (DCT) или концептуально подобный процесс преобразования.

Меньшие видеоблоки могут обеспечивать лучшее разрешение и могут использоваться для местоположений видеокадра, который включает в себя более высокие уровни детализации. В основном, макроблоки и различные субблоки могут рассматриваться как видеоблоки. Кроме того, слой может рассматриваться как последовательность видеоблоков, таких как макроблоки и/или субблоки. Каждый слой может представлять собой независимо декодируемую единицу видеокадра. Альтернативно, сами кадры могут быть декодируемыми единицами, или другие части кадра могут определяться как декодируемые единицы. Термин «кодированная единица» ссылается на любую независимо декодируемую единицу видеокадра, такую как весь кадр, слой кадра, или на другую независимо декодируемую единицу, определенную в соответствии с используемыми методами кодирования.

Чтобы кодировать видеоблоки, видеокодер 22 выполняет внутреннее или внешнее предсказание для генерирования блока предсказания. Видеокодер 22 вычитает блоки предсказания из исходных кодируемых видеоблоков для генерирования остаточных блоков. Таким образом, остаточные блоки указывают на различие между кодируемыми блоками и блоками предсказания. Видеокодер 22 может выполнять преобразование остаточных блоков для генерирования блоков коэффициентов преобразования. После методов кодирования с внутренним или внешним предсказанием и преобразования видеокодер 22 выполняет квантование. Квантование, в основном, ссылается на процесс, в котором коэффициенты квантуются, чтобы по возможности уменьшить количество данных, используемых для представления коэффициентов. После квантования может выполняться энтропийное кодирование в соответствии с методологией энтропийного кодирования, такой как контекстно-адаптивное кодирование переменной длины (CAVLC) или контекстно-адаптивное двоичное арифметическое кодирование (CABAC). Подробности каждого этапа процесса кодирования, выполняемого видеокодером 22, описываются более подробно на фиг.2.

В устройстве 16 назначения видеодекодер 28 принимает кодированные видеоданные. Видеодекодер 28 энтропийно декодирует принимаемые видеоданные в соответствии с методологией энтропийного кодирования, такой как CAVLC или CABAC, для получения квантованных коэффициентов. Видеодекодер 28 применяет функции обратного квантования (деквантования) и обратного преобразования для восстановления остаточного блока в пиксельной области. Видеодекодер 28 также генерирует блок предсказания, основываясь на информации управления или информации синтаксиса (например, режим кодирования, векторы движения, синтаксис, который определяет коэффициенты фильтра, и т.п.), включенные в кодированные видеоданные. Видеодекодер 28 суммирует блок предсказания с восстановленным остаточным блоком для получения восстановленного видеоблока для отображения. Подробности каждого этапа процесса кодирования, выполняемого видеокодером 22, более подробно описываются на фиг.16.

Согласно методам данного раскрытия видеокодер 22 и видеодекодер 28 могут использовать один или несколько методов интерполяционной фильтрации во время компенсации движения. В частности, согласно одному аспекту данного раскрытия видеокодер 22 и/или видеодекодер 28 могут получать блок пикселей, причем блок пикселей включает в себя значения целочисленных пикселей, соответствующие положениям целочисленных пикселей в блоке пикселей, вычислять значения субпикселей для положений субпикселей, ассоциированных с блоком пикселей, основываясь на значениях целочисленных пикселей, причем вычисление значений субпикселей содержит применение интерполяционного фильтра, который определяет двумерный массив положений поддержки фильтра, соответствующих набору из двенадцати или более положений целочисленных пикселей, которые окружают положения субпикселей в радиальной форме, и генерировать блок предсказания, основываясь на по меньшей мере некоторых значениях субпикселей. Пример двумерного массива положений поддержки фильтра, соответствующих набору из двенадцати или более положений целочисленных пикселей, объясняется более подробно ниже.

Согласно другому аспекту данного раскрытия видеокодер 22 и/или видеодекодер 28 могут использовать аспекты симметрии для уменьшения количества данных, которые необходимо передавать между устройством 12 источника и устройством 16 назначения для передачи коэффициентов фильтра, используемых при интерполяции. Видеокодер 22 может определять восемь наборов коэффициентов фильтра для пятнадцати разных местоположений субпикселей, причем восемь наборов коэффициентов фильтра генерируются на основе симметрии коэффициентов и симметрии пикселей из числа пятнадцати местоположений субпикселей, и выводить восемь наборов коэффициентов фильтра на другое устройство в качестве части кодированного битового потока. Таким образом, восемь наборов вместе с аспектами симметрии пикселей и симметрии коэффициентов могут определять все коэффициенты фильтра для всех пятнадцати положений пикселей из полупэла и четвертьпэла. Кроме того, симметрия пикселей может существовать между разными местоположениями из пятнадцати местоположений субпикселей по вертикальной размерности и по горизонтальной размерности, но симметрия пикселей может не существовать по диагональной размерности для по меньшей мере некоторых из пятнадцати местоположений субпикселей набора. Это отсутствие симметрии пикселей по диагональному размерности для по меньшей мере некоторых из пятнадцати местоположений может улучшать интерполяции и качество видео при кодировании и декодировании видео.

Видеодекодер 28 устройства 16 назначения может принимать восемь наборов коэффициентов фильтра в качестве части кодированного битового потока видео, причем сгенерированные пятнадцать наборов коэффициентов фильтра соответствуют пятнадцати разным местоположениям субпикселей, основанным на восьми наборах коэффициентов фильтра, генерировать интерполированные данные предсказания для видеодекодирования, основываясь на одном из пятнадцати наборов коэффициентов фильтра, причем интерполированные данные предсказания соответствуют одному из пятнадцати разных местоположений субпикселей, и декодировать один или несколько видеоблоков, основываясь на интерполированных данных предсказания.

Согласно другому аспекту данного раскрытия видеокодер 22 и/или видеодекодер 28 могут использовать подобную интерполяции фильтрацию в отношении положений целочисленных пикселей, чтобы генерировать откорректированные значения целочисленных пикселей. Такая подобная интерполяции фильтрация может улучшать сжатие особенно во время изменений освещения, введений или выведений сцены, может удалять шум и способствовать увеличению резкости кадра изображения и может помогать улучшать кодирование движения мелких объектов между последовательными видеокадрами особенно тогда, когда симметрия не налагается на коэффициенты фильтра.

Методы подобной интерполяции фильтрации видеокодера 22 и/или видеодекодера 28 могут включать в себя получение блоков пикселей, причем блоки пикселей включают в себя значения целочисленных пикселей, соответствующие положениям целочисленных пикселей в блоках пикселей, фильтрацию значений целочисленных пикселей, основываясь на значениях других целочисленных пикселей в блоке пикселей для генерирования откорректированных значений целочисленных пикселей, причем откорректированные значения целочисленных пикселей соответствуют положениям целочисленных пикселей, и генерирование блока предсказания, основываясь на откорректированных значениях целочисленных пикселей.

Согласно другому аспекту данного раскрытия видеокодер 22 может генерировать первые интерполированные данные предсказания для кодирования видеоданных, основываясь на первом интерполяционном фильтре, генерировать вторые интерполированные данные предсказания для видеокодирования видеоданных, основываясь на втором интерполяционном фильтре, выбирать между первыми интерполированными данными предсказания и вторыми интерполированными данными предсказания, основываясь на анализе «скорость-искажение», кодировать видеоданные, основываясь на выборе, и кодировать синтаксис для указания выбора. Первый интерполяционный фильтр может содержать неперестраиваемый интерполяционный фильтр, и второй интерполяционный фильтр может содержать адаптивный интерполяционный фильтр, но данное раскрытие необязательно ограничивае