Технологии прогнозирования для интерполяции при кодировании видео
Иллюстрации
Показать всеИзобретение относится к кодированию и декодированию цифрового видео, а более конкретно к технологиям фильтрации, применяемым для того, чтобы формировать прогнозирующие данные. Техническим результатом является повышение точности прогнозирующих данных, используемых во время дробной интерполяции, и улучшение прогнозирующих данных целочисленных блоков пикселов. Указанный технический результат достигается тем, что обеспечивают поддержку фильтра на двенадцать пикселов, который может использоваться для интерполяции, технологии, которые используют симметрию по коэффициентам и симметрию по пикселам, чтобы уменьшать объем данных, необходимых для отправки между кодером и декодером, чтобы конфигурировать поддержку фильтра для интерполяции, и технологии для фильтрации данных в целопикселных местоположениях способом, который является аналогичным субпикселной интерполяции. Также кодируют информацию в потоке битов, чтобы передавать тип используемого фильтра и используемые коэффициенты фильтрации. 8 н. и 26 з.п. ф-лы, 29 ил.
Реферат
Данная заявка притязает на приоритет предварительной заявки на патент (США) 61/044020, поданной 10 апреля 2008 года, предварительной заявки на патент (США) 61/044023, поданной 10 апреля 2008 года, предварительной заявки на патент (США) 61/044240, поданной 11 апреля 2008 года, и предварительной заявки на патент (США) номер 61/057373, поданной 30 мая 2008 года, все содержимое которых содержится в данном документе по ссылке.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Данное изобретение относится к кодированию и декодированию цифрового видео, а более конкретно, к технологиям фильтрации, применяемым для того, чтобы формировать прогнозирующие данные, используемые при кодировании и декодировании видео.
Уровень техники
Возможности цифрового видео могут быть встроены в широкий диапазон устройств, в том числе в цифровые телевизоры, системы цифровой прямой широковещательной передачи, беспроводные широковещательные системы, персональные цифровые устройства (PDA), дорожные или настольные компьютеры, цифровые камеры, цифровые записывающие устройства, устройства видеоигр, консоли видеоигр, сотовые или спутниковые радиотелефоны и т.п. Цифровые видеоустройства реализуют технологии сжатия видео, такие как описанные в стандартах, заданных посредством MPEG-2, MPEG-4 или ITU-T H.264/MPEG-4, часть 10, усовершенствованное кодирование видео (AVC), чтобы более эффективно передавать и принимать цифровую видеоинформацию. Технологии сжатия видео могут выполнять пространственное прогнозирование и/или временное прогнозирование, чтобы уменьшать или удалять избыточность, внутренне присутствующую в видеопоследовательностях.
Взаимное кодирование на основе блоков является очень полезной технологией кодирования, которая основана на временном прогнозировании для того, чтобы уменьшать или удалять временную избыточность между видеоблоками последовательных кодированных единиц видеопоследовательности. Кодированные единицы могут содержать видеокадры, серии последовательных макроблоков видеокадров, группы изображений или другую заданную единицу кодированных видеоблоков. Для взаимного кодирования, видеокодер выполняет оценку движения для того, чтобы отслеживать перемещение совпадающих видеоблоков между двумя или более смежными кодированными единицами. Оценка движения формирует векторы движения, которые указывают смещение видеоблоков относительно соответствующих прогнозных видеоблоков в одном или более опорных кадров или других кодированных единиц. Компенсация движения использует векторы движения, чтобы формировать прогнозные видеоблоки из одного или более опорных кадров или других кодированных единиц. После компенсации движения остаточные видеоблоки формируются посредством вычитания прогнозных видеоблоков из кодируемых исходных видеоблоков.
Видеокодер также может применять процессы преобразования, квантования и энтропийного кодирования для того, чтобы дополнительно уменьшать скорость передачи битов, ассоциированную с передачей остаточных блоков. Технологии преобразования могут содержать дискретные косинусные преобразования (DCT) или концептуально аналогичные процессы. Альтернативно, вейвлет-преобразования, целочисленные преобразования или другие типы преобразований могут использоваться. В процессе DCT, в качестве примера, набор пикселных значений преобразуется в коэффициенты преобразования, которые могут представлять энергию пикселных значений в частотном домене. Квантование применяется к коэффициентам преобразования и, в общем, заключает в себе процесс, который уменьшает число битов, ассоциированных с любым данным коэффициентом преобразования. Энтропийное кодирование содержит один или более процессов, которые совместно сжимают последовательность режимов кодирования, информацию движения, шаблоны кодированных блоков и квантованные коэффициенты преобразования. Примеры энтропийного кодирования включают в себя, но не только, контекстно-адаптивное кодирование переменной длины (CAVLC) и контекстно-адаптивное двоичное арифметическое кодирование (CABAC).
Кодированный видеоблок может представляться посредством информации прогнозирования, которая может использоваться для того, чтобы создавать или идентифицировать прогнозный блок и остаточный блок данных, указывающих разности между кодируемым блоком и прогнозным блоком. Информация прогнозирования может содержать один или более векторов движения, которые используются для того, чтобы идентифицировать прогнозный блок данных. С учетом векторов движения, декодер может восстанавливать прогнозные блоки, которые использованы, чтобы кодировать остаток. Таким образом, с учетом набора остаточных блоков и набора векторов движения (и, возможно, некоторого дополнительного синтаксиса), декодер может восстанавливать видеокадр, который первоначально кодирован. Взаимное кодирование на основе оценки движения и компенсации движения может достигать очень хорошего сжатия, поскольку последовательные видеокадры или другие типы кодированных единиц зачастую являются в значительной степени аналогичными. Кодированная видеопоследовательность может содержать блоки остаточных данных, векторы движения и, возможно, другие типы синтаксиса.
Технологии интерполяции разработаны, чтобы повышать уровень сжатия, который может достигаться при взаимном внутрикадровом кодировании. В этом случае, прогнозирующие данные, сформированные в ходе компенсации движения, которая используется для того, чтобы кодировать видеоблок, могут быть интерполированы из пикселов видеоблоков видеокадра или другой кодированной единицы, используемой при оценке движения. Интерполяция зачастую выполняется для того, чтобы формировать прогнозирующие полупикселные значения (в половину пиксела) и прогнозирующие четвертьпикселные значения (в четверть пиксела). Полупикселные и четверьпикселные начения ассоциированы с субпикселными местоположениями. Дробные векторы движения могут использоваться для того, чтобы идентифицировать видеоблоки при субпикселном разрешении, чтобы фиксировать дробное перемещение в видеопоследовательности, и тем самым предоставлять прогнозные блоки, которые в большей степени аналогичны кодируемым видеоблокам, чем целочисленные видеоблоки.
Сущность изобретения
В общем, это раскрытие сущности описывает технологии фильтрации, применяемые посредством кодера и декодера во время стадии прогнозирования процесса кодирования и/или декодирования видео. Описанные технологии фильтрации позволяют повышать точность прогнозирующих данных, используемых во время дробной интерполяции, и в некоторых случаях позволяют улучшать прогнозирующие данные целочисленных блоков пикселов. Предусмотрено несколько аспектов для этого раскрытия сущности, в том числе применимая поддержка фильтра на двенадцать пикселов, который может использоваться для интерполяции, технологии, которые используют симметрию по коэффициентам и симметрию по пикселам, чтобы уменьшать объем данных, необходимых для отправки между кодером и декодером, чтобы конфигурировать поддержку фильтра для интерполяции, и технологии для фильтрации данных в целопикселных местоположениях способом, который является аналогичным субпикселной интерполяции. Другие аспекты этого раскрытия сущности касаются технологий для кодирования информации в потоке битов, чтобы передавать тип используемого фильтра и, возможно, используемые коэффициенты фильтрации. Технологии прогнозирующего кодирования для коэффициентов фильтрации также описываются. Эти и другие аспекты этого раскрытия сущности должны становиться очевидными из нижеприведенного описания.
В одном примере, это раскрытие сущности описывает способ, содержащий идентификацию набора коэффициентов фильтрации для интерполяции прогнозирующих данных при кодировании видео, формирование остаточных значений, ассоциированных с набором коэффициентов фильтрации, на основе прогнозирующего кодирования набора коэффициентов фильтрации относительно коэффициентов фильтрации, ассоциированных с неперестраиваемым интерполяционным фильтром, применение квантования к остаточным значениям и энтропийное кодирование и вывод квантованных остаточных значений как части кодированного потока битов.
В другом примере, это раскрытие сущности описывает способ, содержащий прием остаточных значений, ассоциированных с набором коэффициентов фильтрации, формирование набора коэффициентов фильтрации с использованием прогнозирующего декодирования на основе набора остаточных значений и коэффициентов фильтрации, ассоциированных с неперестраиваемым интерполяционным фильтром, и применение набора коэффициентов фильтрации, чтобы интерполировать прогнозирующие данные, используемые для прогнозирующего декодирования видеоблоков.
В другом примере, это раскрытие сущности описывает устройство, содержащее видеокодер, который идентифицирует набор коэффициентов фильтрации для интерполяции прогнозирующих данных при кодировании видео, формирует остаточные значения, ассоциированные с набором коэффициентов фильтрации, на основе прогнозирующего кодирования набора коэффициентов фильтрации относительно коэффициентов фильтрации, ассоциированных с неперестраиваемым интерполяционным фильтром, применяет квантование к остаточным значениям и энтропийно кодирует и выводит квантованные остаточные значения как часть кодированного потока битов.
В другом примере, это раскрытие сущности описывает устройство, содержащее видеодекодер, который принимает остаточные значения, ассоциированные с набором коэффициентов фильтрации, формирует набор коэффициентов фильтрации с использованием прогнозирующего декодирования на основе набора остаточных значений и коэффициентов фильтрации, ассоциированных с неперестраиваемым интерполяционным фильтром, и применяет набор коэффициентов фильтрации, чтобы интерполировать прогнозирующие данные, используемые для прогнозирующего декодирования видеоблоков.
В другом примере, это раскрытие сущности описывает устройство, содержащее средство для идентификации набора коэффициентов фильтрации для интерполяции прогнозирующих данных при кодировании видео, средство для формирования остаточных значений, ассоциированных с набором коэффициентов фильтрации, на основе прогнозирующего кодирования набора коэффициентов фильтрации относительно коэффициентов фильтрации, ассоциированных с неперестраиваемым интерполяционным фильтром, средство для применения квантования к остаточным значениям и средство для энтропийного кодирования и вывода квантованных остаточных значений как части кодированного потока битов.
В другом примере, это раскрытие сущности описывает устройство, содержащее средство для приема остаточных значений, ассоциированных с набором коэффициентов фильтрации, средства для формирования набора коэффициентов фильтрации с использованием прогнозирующего декодирования на основе набора остаточных значений и коэффициентов фильтрации, ассоциированных с неперестраиваемым интерполяционным фильтром, и средство для применения набора коэффициентов фильтрации, чтобы интерполировать прогнозирующие данные, используемые для прогнозирующего декодирования видеоблоков.
Технологии, описанные в данном раскрытии сущности, могут быть реализованы в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или в любой комбинации вышеозначенного. Если реализованы в программном обеспечении, программное обеспечение может выполняться в одном или более процессоров, таких как микропроцессор, специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (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, часть 10, усовершенствованное кодирование видео (AVC). Технологии этого раскрытия сущности, тем не менее, не ограничены каким-либо конкретным стандартом кодирования видео. Хотя не показано на фиг. 1, в некоторых аспектах, видеокодер 22 и видеодекодер 28 могут быть интегрированы с аудиокодером и декодером соответственно, и могут включать в себя соответствующие модули мультиплексора-демультиплексора либо другие аппаратные средства и программное обеспечение, чтобы обрабатывать кодирование как аудио, так и видео в общем потоке данных или в отдельных потоках данных. Если применимо, модули мультиплексора-демультиплексора могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).
Видеокодер 22 и видеодекодер 28 могут быть реализованы как один или более микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретная логика, программное обеспечение, аппаратные средства, микропрограммное обеспечение или любые комбинации вышеозначенного. Каждый из видеокодера 22 и видеодекодера 28 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть комбинированного кодека, который предоставляет возможности кодирования и декодирования в соответствующем мобильном устройстве, абонентском устройстве, широковещательном устройстве, сервере и т.п.
Видеопоследовательность типично включает в себя серии видеокадров. Видеокодер 22 оперирует с видеоблоками в рамках отдельных видеокадров, чтобы кодировать видеоданные. Видеоблоки могут иметь фиксированный или изменяющийся размер и могут отличаться по размеру согласно заданному стандарту кодирования. Каждый видеокадр включает в себя серии последовательных макроблоков. Каждая серия последовательных макроблоков может включать в себя серии макроблоков, которые могут быть скомпонованы в субблоки. В качестве примера, стандарт ITU-T H.264 поддерживает внутреннее прогнозирование для различных размеров блоков, таких как 16×16, 8×8 или 4×4 для компонентов сигнала яркости и 8x8 для компонентов сигнала цветности, а также взаимное прогнозирование для различных размеров блоков, таких как 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 может определять восемь наборов коэффициентов фильтрации для пятнадцати различных субпикселных местоположений, при этом восемь наборов коэффициентов фильтрации формируются на основе симметрии по коэффициентам и симметрии по пикселам для пятнадцати субпикселных местоположений, и выводить восемь наборов коэффициентов фильтрации в другое устройство как часть кодированного потока битов. Таким образом, восемь наборов, наряду с аспектами симметрии по пикселам и симметрии коэффициентов, могут задавать все коэффициенты фильтрации для всех пятнадцати четвертьпикселных и полупикселных позиций пиксела. Кроме того, симметрия по пикселам может существовать между различными из этих пятнадцати субпикселных местоположений в вертикальной размерности и в горизонтальной размерности, но симметрия по пикселам не может существовать в диагональной размерности, по меньшей мере, для некоторых из субпикселных местоположений пятнадцати наборов. Это отсутствие симметрии по пикселам в диагональной размерности, по меньшей мере, для некоторых из этих пятнадцати местоположений позволяет улучшать интерполяции и повышать кач