Смешанные фильтры с отводами
Иллюстрации
Показать всеИзобретение относится к вычислительной технике. Технический результат заключается в повышении точности прогнозирования. Способ предсказания видео сигналов содержит: получение блока пикселей, причем блок пикселей включает в себя значения целочисленного пикселя, соответствующие положениям целочисленного пикселя в блоке пикселей; вычисление первого значения субпикселя для первого положения субпикселя блока пикселей, причем вычисление первого значения субпикселя содержит: применение первого интерполяционного фильтра, определяющего первый одномерный массив коэффициентов фильтра, соответствующих опорным положениям фильтра; вычисление второго значения субпикселя для второго положения субпикселя блока пикселей, причем вычисление второго значения субпикселя содержит применение второго интерполяционного фильтра, определяющего второй одномерный массив коэффициентов фильтра, соответствующих горизонтальным опорным положениям фильтра, и применение третьего интерполяционного фильтра, определяющего третий одномерный массив коэффициентов фильтра, соответствующих вертикальным опорным положениям фильтра, причем первый одномерный массив содержит больше коэффициентов фильтра, чем второй одномерный массив; первый одномерный массив содержит больше коэффициентов фильтра, чем третий одномерный массив; и создание блока предсказания на основании по меньшей мере первого значения субпикселя и второго значения субпикселя. 4 н. и 33 з.п. ф-лы, 15 ил.
Реферат
[0001] Данная заявка испрашивает приоритет предварительной заявки США 61/323250, поданной 12 апреля 2010 г.; предварительной заявки США 61/350743, поданной 02 июня 2010 г.; и предварительной заявки США 61/361188, поданной 02 июля 2010 г., все содержание которых включено здесь посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ
[0002] Данное раскрытие относится к цифровому кодированию и декодированию видео и, более конкретно, к методике фильтрации, применяемой для создания прогнозирующих данных, используемых при кодировании и декодировании видео.
УРОВЕНЬ ТЕХНИКИ
[0003] Возможности цифровой обработки видео могут быть включены в самые разнообразные устройства, включая цифровое телевидение, цифровые системы прямого широковещания, беспроводные системы широковещания, карманные персональные компьютеры (PDA), ноутбуки или настольные компьютеры, планшетные компьютеры, цифровые камеры, цифровые записывающие устройства, видеоигровые устройства, игровые приставки, сотовые или спутниковые радиотелефоны, смартфоны и т.п. Цифровые видеоустройства реализуют методики сжатия видеоинформации, например, описанные в стандартах, определяемых MPEG-2, MPEG-4 или ITU-T H.264/MPEG-4, Часть 10, Усовершенствованное Видео Кодирование (AVC) для более эффективной передачи и приема цифровой видеоинформации. Методики видео сжатия могут выполнять пространственное предсказание и/или временное предсказание, чтобы уменьшить, или удалить, избыточность, присущую видео последовательностям.
[0004] Межкадровое кодирование (интеркодирование) на основе блоков представляет собой очень полезную методику кодирования, которая предполагает временное предсказание для уменьшения или удаления временной избыточности между видео блоками последовательных кодированных единиц видеопоследовательности. Кодированные единицы могут содержать видеокадры, вырезки видеокадров, группы изображений или другую заданную единицу кодированных видео блоков. Для межкадрового кодирования видео кодер выполняет оценку движения и компенсацию движения, чтобы проследить движение соответствующих видео блоков двух или нескольких смежных кодированных единиц. Оценка движения создает векторы движения, которые указывают смещение видео блоков относительно соответствующих видео блоков предсказания в одном или нескольких опорных кадрах или других кодированных единиц. Компенсация движения использует векторы движения для создания видео блоков предсказания из одного или нескольких опорных кадров или других кодированных единиц. После компенсации движения остаточные видео блоки формируются вычитанием видео блоков предсказания из исходных кодируемых видео блоков.
[0005] Видео кодер может также использовать процессы преобразования, квантования и статистического кодирования, чтобы дополнительно уменьшить скорость передачи информации, связанную с передачей остаточных блоков. Методики преобразования могут содержать дискретные косинусные преобразования (DCT) или концептуально подобные процессы. Альтернативно, могут быть использованы вейвлет-преобразование, целочисленное преобразование или другие типы преобразований. В DCT процессе, как пример, ряд значений пикселя конвертируются в коэффициенты преобразования, которые могут отображать энергию значений пикселя в частотной области. Квантование применяется к коэффициентам преобразования, и обычно включает в себя процесс, который уменьшает число битов, связанных с каким-либо данным коэффициентом преобразования. Статистическое кодирование содержит один или несколько процессов, которые совместно сжимают последовательность режимов кодирования, информацию движения, конфигурации кодированных блоков и квантованные коэффициенты преобразования. Примеры статистического кодирования включают в себя, но без ограничения, кодирование контента с адаптивной переменной длиной (CAVLC) и контекстное адаптивное двоичное арифметическое кодирование (CABAC).
[0006] Кодированный видео блок может быть представлен информацией предсказания, которая может быть использована, чтобы создать или идентифицировать блок предсказания, и остаточный блок данных, показательный для различий между кодированным блоком и блоком предсказания. Информация предсказания может содержать один или несколько векторов движения, которые используются, чтобы идентифицировать блок предсказания данных. Имея векторы движения, декодер может восстановить блоки предсказания, которые использовались для кодирования остатка. Таким образом, имея ряд остаточных блоков и ряд векторов движения (и, возможно, некоторый дополнительный синтаксис), декодер может восстановить видеокадр, который был первоначально кодирован. Межкадровое кодирование, основанное на оценке движения, и компенсации движения могут обеспечить очень хорошее сжатие, поскольку последовательные видеокадры, или другие типы кодированных единиц, часто весьма подобны. Кодированная видеопоследовательность может содержать блоки остаточных данных, векторов движения и, возможно, другие типы синтаксиса.
[0007] Методики интерполяции были разработаны, чтобы улучшить уровень сжатия, который может быть достигнут в межкадровом кодировании. В этом случае данные предсказания, созданные в течение компенсации движения, которые используются, чтобы закодировать видео блок, могут быть интерполированы из пикселей видео блоков видеокадра или другой кодированной единицы, используемой при оценке движения. Интерполяция часто выполняется для создания прогнозирующих значений половины пикселя (полуэлемент растра) и прогнозирующих значений четверти пикселя (четверть элемента растра). Половинные и четвертные значения элемента растра связаны с местоположениями субпикселя. Дробные векторы движения могут быть использованы, чтобы идентифицировать видео блоки при субпиксельном разрешении, чтобы фиксировать дробное движение в видеопоследовательности и, тем самым, предоставить блоки предсказания, которые более подобны кодированным видео блокам, чем целочисленные видео блоки.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0008] Вообще говоря, данное раскрытие описывает методики фильтрации, применяемые кодером и декодером в течение стадии процесса предсказания видео кодирования и/или декодирования. Аспекты описанных методик фильтрации могут улучшить точность прогнозирующих данных, используемых в течение дробной интерполяции и, в некоторых случаях, могут улучшить данные предсказания целочисленных блоков пикселей. Имеется несколько аспектов данного раскрытия, включая использование относительно более длинных фильтров для определенных векторов движения, указывающих на определенные положения субпикселя, и относительно более короткие фильтры для векторов движения, указывающих на другие положения субпикселей.
[0009] Чтобы проектировать фильтры с хорошей частотной характеристикой для целей интерполяции, может оказаться желательным использовать относительно более длинные фильтры (например, 8 коэффициентов, или отводов, вместо 6). Такие более длинные фильтры могут улучшить эффективность сжатия видео кодера за счет большей вычислительной сложности. Чтобы использовать преимущество лучшей рабочей характеристики с более длинным фильтром без большого увеличения вычислительной сложности, методики, описанные в данном раскрытии, включают в себя использование смеси длинных фильтров и коротких фильтров. Если, например, вектор движения указывает на положения, где необходима единственная фильтрация, то могут быть использованы фильтр с 8 отводами. Для положений, где необходимы две операции фильтрации, могут быть использованы фильтры с 6 отводами. Таким образом, наихудший по сложности случай все же ограничивается двумя операциями фильтрации с фильтрами с 6 отводами, который является тем же самым, что и в случае стандарта H.264, но использование фильтров с 8 отводами может произвести улучшенные данные предсказания по сравнению со стандартом H.264.
[0010] Другие аспекты данного раскрытия касаются методик для кодирования информации в поток битов, чтобы передать тип фильтра и, возможно, используемые коэффициенты фильтра. Эти и другие аспекты данного раскрытия станут очевидными из нижеприведенного описания.
[0011] В одном примере данное раскрытие предоставляет способ, который включает в себя получение блока пикселей, причем блок пикселей включает в себя значения целочисленного пикселя, соответствующие положениям целочисленного пикселя в блоке пикселей; вычисление первого значения субпикселя для первого положения субпикселя, причем вычисление первого значения субпикселя содержит применение первого интерполяционного фильтра, определяющего первый одномерный массив коэффициентов фильтра, соответствующих опорным положениям фильтра; вычисление второго значения субпикселя для второго положения субпикселя, причем вычисление второго значения субпикселя содержит применение второго интерполяционного фильтра, определяющего второй одномерный массив коэффициентов фильтра, соответствующих горизонтальным опорным положениям фильтра, и применение третьего интерполяционного фильтра, определяющего третий одномерный массив коэффициентов фильтра, соответствующих вертикальным опорным положениям фильтра, причем: первый одномерный массив содержит больше коэффициентов фильтра, чем второй одномерный массив; первый одномерный массив содержит больше коэффициентов фильтра, чем третий одномерный массив; и создание блока предсказания на основании, по меньшей мере, первого значения субпикселя и второго значения субпикселя.
[0012] В другом примере данное раскрытие предоставляет аппарат, содержащий модуль предсказания, сконфигурированный для: получения блока пикселей, причем блок пикселей включает в себя значения целочисленного пикселя, соответствующие положениям целочисленного пикселя в блоке пикселей; вычисления первого значения субпикселя и второго значения субпикселя, причем первое значение субпикселя вычисляется, применяя первый интерполяционный фильтр, определяющий первый одномерный массив коэффициентов фильтра, соответствующих опорным положениям фильтра; второе значение субпикселя вычисляется, применяя второй интерполяционный фильтр, определяющий второй одномерный массив коэффициентов фильтра, соответствующих горизонтальным опорным положениям фильтра, и применяя третий интерполяционный фильтр, определяющий третий одномерный массив коэффициентов фильтра, соответствующих вертикальным опорным положениям фильтра; первый одномерный массив содержит больше коэффициентов фильтра, чем второй одномерный массив; первый одномерный массив содержит больше коэффициентов фильтра, чем третий одномерный массив; и создания блока предсказания на основании, по меньшей мере, первого значения субпикселя и второго значения субпикселя.
[0013] В другом примере данное раскрытие предоставляет аппарат, который включает в себя средство для получения блока пикселей, причем блок пикселей включает в себя значения целочисленного пикселя, соответствующие положениям целочисленного пикселя в блоке пикселей; средство для вычисления первого значения субпикселя для первого положения субпикселя, причем вычисление первого значения субпикселя содержит применение первого интерполяционного фильтра, определяющего первый одномерный массив коэффициентов фильтра, соответствующих опорным положениям фильтра; средство для вычисления второго значения субпикселя для второго положения субпикселя, причем вычисление второго значения субпикселя содержит применение второго интерполяционного фильтра, определяющего второй одномерный массив коэффициентов фильтра, соответствующих горизонтальным опорным положениям фильтра и применение третьего интерполяционного фильтра, определяющего третий одномерный массив коэффициентов фильтра, соответствующих вертикальным опорным положениям фильтра, причем: первый одномерный массив содержит больше коэффициентов фильтра, чем второй одномерный массив; первый одномерный массив содержит больше коэффициентов фильтра, чем третий одномерный массив; и средство для создания блока предсказания на основании, по меньшей мере, первого значения субпикселя и второго значения субпикселя.
[0014] Методики, описанные в данном раскрытии, могут быть осуществлены в аппаратных средствах, программном обеспечении, встроенном программном обеспечении или любой их комбинации. Если они осуществляются в программном обеспечении, то программное обеспечение может выполняться в одном или нескольких процессорах, например в микропроцессоре, специализированной интегральной микросхеме (ASIC), программируемой вентильной матрице (FPGA) или цифровом процессоре отводов (DSP). Программное обеспечение, которое выполняет методики, может быть первоначально сохранено в считываемой компьютером среде и может загружаться и выполняться в процессоре.
[0015] Соответственно, данное раскрытие также предполагает невременную, считываемую компьютером запоминающую среду, материально хранящую одну или несколько инструкций, которые при выполнении одним или несколько процессорами заставляют один или несколько процессоров: получать блок пикселей, причем блок пикселей включает в себя значения целочисленного пикселя, соответствующие положениям целочисленного пикселя в блоке пикселей; вычислять первое значение субпикселя для первого положения субпикселя, причем вычисление первого значения субпикселя содержит применение первого интерполяционного фильтра, определяющего первый одномерный массив коэффициентов фильтра, соответствующих опорным положениям фильтра; вычислять второе значение субпикселя для второго положения субпикселя, причем вычисление второго значения субпикселя содержит применение второго интерполяционного фильтра, определяющего второй одномерный массив коэффициентов фильтра, соответствующих горизонтальным опорным положениям фильтра, и применение третьего интерполяционного фильтра, определяющего третий одномерный массив коэффициентов фильтра, соответствующих вертикальным опорным положениям фильтра, причем: первый одномерный массив содержит больше коэффициентов фильтра, чем второй одномерный массив; первый одномерный массив содержит больше коэффициентов фильтра, чем третий одномерный массив; и создавать блок предсказания на основании, по меньшей мере, первого значения субпикселя и второго значения субпикселя.
[0016] Детали одного или нескольких аспектов раскрытия сформулированы в сопроводительных чертежах и нижеприведенном описании. Другие признаки, объекты, и преимущества методик, описанных в данном раскрытии, будут очевидны из описания и чертежей, а также из формулы.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0017] Фиг. 1 изображает блок-схему одной примерной системы видео кодирования и декодирования, которая может осуществить методики данного раскрытия.
[0018] Фиг. 2 - блок-схема, показывающая пример видео кодера, который может выполнить методики фильтрации, согласующиеся с данным раскрытием.
[0019] Фиг. 3 - концептуальная диаграмма, показывающая положения целочисленного пикселя, связанные с данными предсказания, и положения субпикселя, связанные с интерполированными данными предсказания.
[0020] Фиг. 4 - концептуальная диаграмма, показывающая положения целочисленного пикселя, связанные с данными предсказания, и вертикальные положения субпикселя и горизонтальные положения субпикселя, связанные с интерполированными данными предсказания.
[0021] Фиг. 5 - концептуальная диаграмма, показывающая положения целочисленного пикселя, связанные с данными предсказания, и невертикальные и негоризонтальные положения субпикселя 2L, связанные с интерполированными данными предсказания.
[0022] Фиг. 6 - концептуальная диаграмма, показывающая горизонтальную основу фильтра на 8 пикселей с симметрией коэффициентов относительно местоположения субпикселя.
[0023] Фиг. 7 - концептуальная диаграмма, показывающая горизонтальную основу фильтра на 8 пикселей без симметрии коэффициентов относительно местоположения субпикселя.
[0024] Фиг. 8 - концептуальная диаграмма, показывающая вертикальную основу фильтра на 8 пикселей с симметрией коэффициентов относительно местоположения субпикселя.
[0025] Фиг. 9 - концептуальная диаграмма, показывающая вертикальную основу фильтра на 8 пикселей без симметрии коэффициентов относительно местоположения субпикселя.
[0026] Фиг. 10 - блок-схема, показывающая пример видео декодера, который может декодировать видеопоследовательность, которая закодирована описанным здесь образом.
[0027] Фиг. 11 - блок-схема последовательности операций методики для фильтрации передачи сигнала, совместимой с настоящим раскрытием.
[0028] Фиг. 12 - блок-схема последовательности операций методики для фильтрации передачи сигнала, совместимой с настоящим раскрытием.
[0029] Фиг. 13 - блок-схема последовательности операций методики для фильтрации передачи сигнала, совместимой с настоящим раскрытием.
[0030] Фиг. 14 - блок-схема последовательности операций методики для фильтрации передачи сигнала, совместимой с настоящим раскрытием.
[0031] Фиг. 15 - блок-схема последовательности операций методики для интерполяционной фильтрации, совместимой с настоящим раскрытием.
ПОДРОБНОЕ ОПИСАНИЕ
[0032] Данное раскрытие описывает методики фильтрации, применяемые кодером и декодером в течение стадии предсказания процессов видео кодирования и/или декодирования. Описанные методики фильтрации могут улучшить точность прогнозирующих данных, используемых во время дробной интерполяции, и, в некоторых случаях, могут улучшить данные предсказания целочисленных блоков пикселей. Имеется несколько аспектов данного раскрытия, включая использование относительно более длинных фильтров для некоторых векторов движения, указывающих на некоторые положения субпикселя, и относительно более короткие фильтры для векторов движения, указывающих на другие положения субпикселя. Более длинный фильтр обычно относится к интерполяционному фильтру с большим числом коэффициентов фильтра, также называемых отводами, тогда как более короткий фильтр обычно относится к интерполяционному фильтру с меньшим количеством отводов. Обычно, выражения "более длинный фильтр" и "более короткий фильтр" являются относительными терминами, означающими, что более длинный фильтр длиннее, чем более короткий фильтр, и что более короткий фильтр более короткий, чем более длинный фильтр. Однако, с другой стороны, эти выражения не требуют никаких конкретных длин, если только более длинный фильтр длиннее, чем более короткий фильтр, и более короткий фильтр более короткий, чем более длинный фильтр. Например, если рассматривать фильтр с 8 отводами и фильтр с 6 отводами, то фильтр с 8 отводами будет более длинным фильтром, и фильтр с 6 отводами будет более коротким фильтром. Однако, если рассматривать фильтр с 8 отводами и фильтр с 10 отводами, то фильтр с 8 отводами будет более коротким фильтром.
[0033] Фильтры с большим количеством отводов обычно обеспечивает лучшую частотную характеристику в целях интерполяции, по сравнению с фильтрами с меньшим количеством отводов. Например, фильтр с 8 отводами обычно дает лучшую частотную характеристику, чем фильтр с 6 отводами. По сравнению с более короткими фильтрами, более длинные фильтры могут улучшить эффективность сжатия видео кодера за счет большей вычислительной сложности. Для получения преимущества лучшей работы с более длинным фильтром без большого увеличения вычислительной сложности аспекты данного раскрытия включают в себя использование смеси длинных фильтров и коротких фильтров. Если, например, вектор движения указывает на местоположение субпикселя, где необходима единственная операция фильтрации, то может быть использован фильтр с 8 отводами. Для местоположений субпикселя, где необходимы две операции фильтрации, могут быть использованы более короткие фильтры, например два фильтра с 6 отводами. Таким образом, пока различие в числе отводов между более коротким и более длинным фильтром не слишком велико, наихудший случай по сложности все же обычно ограничивается двумя операциями фильтрации с более короткими фильтрами.
[0034] На Фиг. 1 показана блок-схема одной примерной системы 10 кодирования и декодирования видео, которая может быть использована, чтобы осуществить аспекты данного раскрытия. Как показано на Фиг. 1, система 10 включает в себя устройство-источник 12, которое передает закодированные видеоданные на устройство-адресат 16 через канал 15 связи. Устройство-источник 12 и устройство-адресат 16 могут содержать самые разнообразные устройства. В некоторых случаях устройство-источник 12 и устройство-адресат 16 содержат устройства беспроводной связи, например беспроводные телефонные трубки, так называемые сотовые или спутниковые радиотелефоны, или любые беспроводные устройства, которые могут передавать видео информацию по каналу связи 15, когда канал 15 связи представляет собой беспроводной канал. Однако методики данного раскрытия, которые касаются фильтрации и создания прогнозирующих данных в течение прогнозирующего кодирования, не обязательно ограничиваются беспроводными приложениями или установками. Таким образом, аспекты данного раскрытия могут также быть полезными для большого разнообразия других установок и устройств, включая устройства, которые осуществляют связь через физические провода, оптические стекловолокна или другие физические или беспроводные среды. Кроме того, методики кодирования или декодирования могут также быть применены в автономном устройстве, которое не обязательно осуществляет связь с каким-либо другим устройством.
[0035] В примере на Фиг. 1 устройство-источник 12 может включать в себя видеоисточник 20, видео кодер 22, модулятор/демодулятор (модем) 23 и передатчик 24. Устройство-адресат 16 может включать в себя приемник 26, модем 27, видео декодер 28, и дисплейное устройство 30. В соответствии с данным раскрытием, видео кодер 22 устройства-источника 12 может быть сконфигурирован, чтобы применить одну или несколько методик данного раскрытия как часть процесса видео кодирования. Точно так же, видео декодер 28 устройства-адресата 16 может быть сконфигурирован так, чтобы применить одну или несколько методик данного раскрытия как часть процесса видео декодирования.
[0036] Кроме того, показанная на Фиг. 1 система 10 является исключительно примерной. Различные методики данного раскрытия могут быть реализованы посредством любого кодирующего устройства, которое поддерживает прогнозирующее кодирование на основе блоков, или посредством любого декодирующего устройства, которое поддерживает прогнозирующее декодирование на основе блоков. Устройство-источник 12 и устройство-адресат 16 представляют собой исключительно примеры таких кодирующих устройств, в которых устройство-источник 12 создает закодированные видеоданные для передачи на устройство-адресат 16. В некоторых случаях устройства 12, 16 могут работать по существу симметричным образом так, что каждое из устройств 12, 16 включает в себя компоненты кодирования и декодирования видеоинформации. Следовательно, система 10 может поддерживать одностороннюю или двухстороннюю видео передачу между видео устройствами 12, 16, например, для потока видеоданных, воспроизведения видео, широковещания видео, или видео телефонии.
[0037] Видеоисточник 20 устройства-источника 12 может включать в себя устройство захвата видеоизображений, например видео камеру, видео архив, содержащий ранее снятое видео, или внешний видеосигнал от провайдера видеоинформации. Как дополнительная альтернатива видеоисточник 20 может создавать компьютерные данные на основе графических символов, как видеоисточник, или комбинацию видео в реальном времени, архивированного видео, и создаваемого компьютером видео. В некоторых случаях, если видеоисточник 20 представляет собой видео камеру, устройство-источник 12 и устройство-адресат 16 могут сформировать так называемые камерофоны или видеотелефоны. В каждом случае захваченное видеоизображение, ранее захваченное видеоизображение или созданное компьютером видеоизображение может быть закодировано видео кодером 22. Закодированная видеоинформация может затем быть модулирована модемом 23 в соответствии со стандартом связи, например стандартом множественного доступа с кодовым разделением каналов (CDMA), или другим стандартом связи, и передана на устройство-адресат 16 через передатчик 24 и канал 15 связи. Модем 23 может включать в себя различные смесители, фильтры, усилители или другие компоненты, предназначенные для модуляции сигнала. Передатчик 24 может включать в себя схемы, предназначенные для передачи данных, включая усилители, фильтры, и одну или несколько антенн.
[0038] Приемник 26 устройства адресата 16 принимает информацию по каналу связи 15, и модем 27, демодулирует информацию. Как и передатчик 24, приемник 26 может включать в себя схемы, предназначенные для приема данных, включая усилители, фильтры, и одну или несколько антенн. В некоторых случаях, передатчик 24 и/или приемник 26 может быть введен как отдельный компонент в приемопередатчик, который включает в себя и приемную и передающую схемы. Модем 27 может включать в себя различные смесители, фильтры, усилители или другие компоненты, предназначенные для демодуляции сигнала. В некоторых случаях, модемы 23 и 27 могут включать в себя компоненты для выполнения и модуляции, и демодуляции.
[0039] Кроме того, процесс видео кодирования, выполняемый видео кодером 22, может осуществляться с описанными здесь одной или несколькими методиками во время компенсации движения. Процесс видео декодирования, выполняемый видео декодером 28, может также выполняться с такими методиками в течение стадии компенсации движения процесса декодирования. Термин "кодер" используется здесь для обозначения специализированного вычислительного устройства или аппарата, который выполняет видео кодирование или видео декодирование. Термин "кодер" обычно относится к любому видео кодеру, видео декодеру, или объединенному кодеру/декодеру (кодер-декодер). Термин "кодирование" относится к кодированию или декодированию. Дисплейное устройство 30 отображает декодированные видеоданные для пользователя и может содержать любое из множества дисплейных устройств, например электронно-лучевую трубку (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светоизлучающих диодах (OLED) или другой тип дисплейного устройства.
[0040] В примере на Фиг. 1, канал 15 связи может содержать любую беспроводную или проводную среду связи, например, радиочастотного (RF) спектра, или одну, или несколько физических линий передачи, или любую комбинацию беспроводной и проводной сред передачи информации. Канал 15 связи может быть частью сети пакетной передачи, например локальной сети, зональной сети, или глобальной сети, например Интернета. Канал 15 связи обычно представляет собой любую подходящую среду связи или набор различных средств связи, для передачи видео данных от устройства-источника 12 на устройство-адресат 16. Канал 15 связи может включать в себя маршрутизаторы, переключатели, базовые станции или любое другое оборудование, которое может быть полезным для облегчения связи устройства-источника 12 с устройством-адресатом 16.
[0041] Видео кодер 22 и видео декодер 28 могут работать в соответствии с одним или несколькими стандартами сжатия видеоинформации, например в соответствии со стандартом ITU-T H.264, альтернативно описываемым как MPEG-4, Часть 10, Улучшенное Видео Кодирование (AVC), или может действовать в соответствии со стандартом сжатия видеоинформации следующего поколения. Однако методики данного раскрытия не ограничены никаким конкретным стандартом кодирования видеоинформации. Хотя это и не показано на Фиг. 1, в некоторых аспектах, каждый видео кодер 22 и каждый видео декодер 28 могут быть объединены со звуковым кодером и декодером, и могут включать в себя соответствующие модули MUX-DEMUX, или другие аппаратные средства и программное обеспечение для обработки кодирования и аудио, и видеоинформации в общем потоке данных или в отдельных потоках данных. Если это допустимо, то модули MUX-DEMUX могут соответствовать протоколу ITU H.223 мультиплексора, или другим протоколам, например, протоколу пользовательских датаграмм (UDP).
[0042] Видео кодер 22 и видео декодер 28, каждый, могут быть осуществлены как один или несколько микропроцессоров, процессоров цифровых сигналов (DSP), как прикладные специализированные интегральные микросхемы (ASIC), программируемые вентильные матрицы (FPGA), дискретная логика, программное обеспечение, аппаратные средства, встроенное программное обеспечение или любые их комбинации. Каждый видео кодер 22 и видео декодер 28 могут быть включены в один или несколько кодеров или декодеров, из которых любой может быть интегрирован как часть комбинированного кодера-декодера, который обеспечивает возможности кодирования и декодирования в соответствующем мобильном устройстве, абонентском устройстве, устройстве радиосвязи, сервере или подобном.
[0043] Видеопоследовательность обычно включает в себя ряд видеокадров. Видео кодер 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) или концептуально подобного процесса преобразования.
[0044] Меньшие видео блоки могут предоставить лучшую разрешающую способность и могут быть использованы для местоположений видеокадра, который включает в себя детали высокого уровня. Обычно макроблоки и различные субблоки могут рассматриваться как видео блоки. Кроме того, вырезка может рассматриваться как ряд видео блоков, например макроблоки и/или субблоки. Каждая вырезка может быть независимо декодируемой единицей видеокадра. Альтернативно, сами кадры могут быть декодируемым единицами или другие участки кадра могут быть определены как декодируемые единицы. Термин "кодированный элемент" относится к любой независимо декодируемой единице видеокадра, например всему кадру, сектору кадра или другой независимо декодируемой единице, определенной в соответствии с используемыми методиками кодирования.
[0045] Чтобы закодировать видео блоки, видео кодер 22 выполняет внутреннее (интра-) или межкадровое (интер-) предсказание для создания блока предсказания. Видео кодер 22 вычитает блоки предсказания из оригинальных видео блоков, кодируемых для создания остаточных блоков. Таким образом, остаточные блоки показательны для различий между кодированными блоками и блоками предсказания. Видео кодер 22 может выполнить преобразование на остаточных блоках для создания блоков коэффициентов преобразования. Вслед за внутренним или внешним прогнозирующим кодированием и методиками преобразования видео кодер 22 выполняет квантование. Квантование обычно относится к процессу, в котором коэффициенты квантуются для возможного сокращения количества данных, используемых для отображения коэффициентов. Последующее квантование, статистическое кодирование могут быть выполнены в соответствии с методологией статистического кодирования, например, контекстным адаптивным кодированием переменной длины (CAVLC) или контекстным адаптивным кодированием двоичного исчисления (CABAC). Больше деталей каждого этапа процесса кодирования, выполняемого видео кодером 22, будет более подробно описано ниже в связи с Фиг. 2.
[0046] В устройстве адресата 16 видео декодер 28 принимает закодированные видеоданные. Видео декодер 28 статистически декодирует полученные видеоданные в соответствии с методологией статистического кодирования, например CAVLC или CABAC, для получения квантованных коэффициентов. Видео декодер 28 применяет обратное квантование (де-квантование) и функции обратного преобразования для восстановления остаточного блока в пиксельной области. Видео декодер 28 также создает блок предсказания на основании информации управления или информации синтаксиса (например, режима кодирования, векторов движения, синтаксиса, который определяет коэффициенты фильтрации и т.п.), включенных в кодированные видеоданные. Видео декодер 28 суммирует блок предсказания с восстановленным остаточным блоком, чтобы произвести восстановленный видео блок для отображения. Больше деталей каждого этапа процесса декодирования, выполняемого видео декодером 28, будет описано более подробно ниже в связи с Фиг. 10.
[0047] В соответствии с аспектами данного раскрытия, видео кодер 22 и видео декодер 28 могут использовать одну или несколько методик интерполяционной фильтрации в течение компенсации движения. В частности, в соответствии с одним аспектом данного раскрытия, видео кодер 22 и/или видео декодер 28 могут получить блок пикселей, содержащий значения целочисленного пикселя, соответствующие положениям целочисленного пикселя, и использовать смесь более длинных фильтров и более коротких пикселей для определения значений субпикселей для блока пикселей.
[0048] На Фиг. 2 показана блок-схема примера видео кодера 50, который может осуществить методики фильтрации, согласующиеся с данным раскрытием. Видео кодер 50 представляет собой один пример специализированного видео вычислительного устройства или аппарата, обозначаемого здесь как "кодер". Видео кодер 50 может соответствовать видео кодеру 22 устройства 20 или видео кодеру другого устройства. Видео кодер 50 может выполнять внутреннее и межкадровое кодирование блоков в видеокадрах, хотя внутренне кодирующие компоненты не показаны на Фиг. 2 для простоты иллюстрации. Внутреннее кодирование относится к пространственному предсказанию, чтобы уменьшить или удалить пространственную избыточность в видеоданных в пределах данного видеокадра. Межкадровое кодирование относится к временному предсказанию, чтобы уменьшить или удалить временную избыточность в видеоданных в пределах смежных кадров видеопоследовательности. Внутренний режим (I-режим) может относиться к режиму сжатия на пространственной основе, и межкадровые режимы, например предсказания (P-режим) или двунаправленный (B-режим), могут относиться к режиму сжатия на временной основе. Методики данного раскрытия применяются в течение межкадрового кодирования и, поэтому, блоки внутреннего кодирования, например блок пространственного предсказания, не показаны на Фиг. 2 для простоты иллюстрации и легкости восприятия.
[0049] Как показано на Фиг. 2, видео кодер 50 принимает видео блок в пределах кодируемого видеокадра. В примере на Фиг. 2, видео кодер 50 включает в себя модуль 32 предсказания, память 34, сумматор 48, модуль 38 преобразования, модуль 40 квантования и модуль 46 статистического кодирования. Для реконструкции видео блока видео кодер 50 также включает в себя модуль 42 обратного квантования, модуль 44 обратного преобразования и сумматор 51. Деблокирующий фильтр (не показан) также может быть включен, чтобы фильтровать границы блока для удаления артефактов блочности из восстановленного видео. Если это необходимо, деблокирующий фильтр, вообще говоря, может фильтровать выходной сигнал сумматора 51.
[0050] Модуль 32 предсказания может включать в себя модуль 35 оценки движения (ME) и модуль 37 компенсации движения (MC). Модуль 39 фильтрации может быть включен в модуль 32 предсказания и может быть активизирован или узлом 35 ME, или модулем 37 MC, или обоими, чтобы выполнить интерполяцию, или фильтрацию, подобную интерполяции, как часть оценки движения и/или компен