Смешанные фильтры с отводами

Изобретение относится к вычислительной технике. Технический результат заключается в повышении точности прогнозирования. Способ предсказания видео сигналов содержит: получение блока пикселей, причем блок пикселей включает в себя значения целочисленного пикселя, соответствующие положениям целочисленного пикселя в блоке пикселей; вычисление первого значения субпикселя для первого положения субпикселя блока пикселей, причем вычисление первого значения субпикселя содержит: применение первого интерполяционного фильтра, определяющего первый одномерный массив коэффициентов фильтра, соответствующих опорным положениям фильтра; вычисление второго значения субпикселя для второго положения субпикселя блока пикселей, причем вычисление второго значения субпикселя содержит применение второго интерполяционного фильтра, определяющего второй одномерный массив коэффициентов фильтра, соответствующих горизонтальным опорным положениям фильтра, и применение третьего интерполяционного фильтра, определяющего третий одномерный массив коэффициентов фильтра, соответствующих вертикальным опорным положениям фильтра, причем первый одномерный массив содержит больше коэффициентов фильтра, чем второй одномерный массив; первый одномерный массив содержит больше коэффициентов фильтра, чем третий одномерный массив; и создание блока предсказания на основании по меньшей мере первого значения субпикселя и второго значения субпикселя. 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, или обоими, чтобы выполнить интерполяцию, или фильтрацию, подобную интерполяции, как часть оценки движения и/или компенсации движения, в соответствии с данным раскрытием. Модуль 39 фильтрации может фактически предоставить множество различных фильтров, чтобы облегчить многочисленные различные типы интерполяции и фильтрации, подобной интерполяции, как здесь описано. Таким образом, модуль 32 предсказания может включать в себя множество интерполяционных фильтров или фильтров, подобных интерполяционным. Кроме того, модуль 39 фильтрации может включать в себя множество индексов фильтра для множества местоположений субпикселя. Индексы фильтра связывают конфигурацию битов и местоположение субпикселя с конкретным интерполяционным фильтром. В течение процесса кодирования видео кодер 50 принимает кодируемый видео блок (обозначенный как "ВИДЕО БЛОК" на Фиг. 2), и модуль 32 предсказания выполняет кодирование межкадрового предсказания для создания блока предсказания (обозначенного как "БЛОК ПРЕДСКАЗАНИЯ" на Фиг. 2). Конкретно, модуль 35 ME может выполнить оценку движения, чтобы идентифицировать блок предсказания в памяти 34, и модуль 37 MC может выполнить компенсацию движения для создания блока предсказания.

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

[0052] Модуль 35 ME выбирает соответствующий вектор движения для кодируемого видео блока, сравнивая видео блок с видео блоками одного или нескольких опорных кадров (например, предыдущий и/или последующий кадр). Модуль 35 ME может выполнить оценку движения с точностью дробного пикселя, иногда обозначаемой как дробный пиксель, дробный элемент растра или оценка движения субпикселя. Также термины дробный пиксель, дробный элемент растра и оценка движения субпикселя могут быть использованы взаимозаменяемо. При дробной оценке движения пикселя модуль 35 ME может выбрать вектор движения, который указывает перемещение к местоположению, отличному от местоположения целочисленного пикселя. Таким образом, оценка движения дробного пикселя позволяет модулю 32 предсказания прослеживать движение с большей точностью, чем местоположения целочисленного пикселя (или полного пикселя), таким образом, создавая более точный блок предсказания. Оценка движения дробного пикселя может иметь точность полупикселя, точность четверти пикселя, точность восьмой части пикселя или любую более мелкую точность. Модуль 35 ME может активизировать фильтр(ы) 39 для каких-либо необходимых интерполяций в течение процесса оценки движения.

[0053] Чтобы выполнять компенсацию движения дробного пикселя, модуль 37 MC может выполнять интерполяцию (иногда называемую интерполяционной фильтрацией) для создания данных с субпиксельным разрешением (обозначаемым здесь как субпиксельные значения или значения дробного пикселя). Модуль 37 MC может активизировать фильтр(ы) 39 для этой интерполяции. Модуль 32 предсказания может выполнить интерполяцию (или подобную интерполяции фильтрацию целочисленных пикселей), используя описанные здесь методики.

[0054] Как только вектор движения для кодируемого видео блока выбран модулем 35 ME, модуль 37 MC создает блок видео предсказания, связанный с этим вектором движения. Модуль 37 MC может извлечь блок предсказания из памяти 34 на основании вектора движения, определенного модулем 35 MC. В случае вектора движения с точностью дробного пикселя модуль 37 MC фильтрует данные из памяти 34, чтобы интерполировать такие данные до субпиксельного разрешения, например, активизируя фильтр(ы) 39 для этого процесса. В некоторых случаях методика интерполяционной фильтрации, или режим, который использовался для создания данных предсказания субпикселя, может быть обозначен как один или несколько элементов синтаксиса интерполяции для модуля 46 статистического кодирования для включения в кодированный поток битов.

[0055] Как только модуль 32 предсказания создал блок предсказания, видео кодер 50 формирует остаточный видео блок (обозначенный как "ОСТАТОЧНЫЙ БЛОК" на Фиг. 2), вычитая блок предсказания из исходного кодируемого видео блока. Сумматор 48 представляет компоненту или компоненты, которые выполняют эту операцию вычитания. Модуль 38 преобразования применяет преобразование, например дискретное косинусное преобразование (DCT), или концептуально подобное преобразование, к остаточному блоку, производя видео блок, содержащий коэффициенты остаточного преобразованного блока. Модуль 38 преобразования, например, может выполнить другое преобразование, например, такое, как определенное стандартом H.264, которые концептуально подобны DCT. Вейвлет-преобразование, целочисленное преобразование, поддиапазонное преобразование, или другие типы преобразования, могут также быть использованы. В любом случае модуль 38 преобразования применяет преобразование к остаточному блоку, производя блок остаточных преобразованных коэффициентов. Преобразование может конвертировать остаточную информацию из пиксельной области в частотную область.

[0056] Модуль 40 квантования квантует остаточные преобразованные коэффициенты, чтобы дополнительно уменьшить скорость передачи информации в битах. Процесс квантования может уменьшить битовую глубину, связанную с некоторыми или со всеми коэффициентами. Вслед за квантованием модуль 46 статистического кодирования статистически кодирует квантованные преобразованные коэффициенты. Например, модуль 46 статистического кодирования может осуществить CAVLC, CABAC или другую методологию статистического кодирования.

[0057] Модуль 46 статистического кодирования может также закодировать один или несколько элементов синтаксиса предсказания, полученных от модуля 32 предсказания или другого компонента видео кодера 50. Один или несколько элементов синтаксиса предсказания могут включать в себя режим кодирования, один или несколько векторов движения, методику интерполяции, которая была использована для создания данных субпикселя, множество или подмножество коэффициентов фильтра или другую информацию, связанную с созданием блока предсказания. Модуль 41 предсказания коэффициента и квантования может с предсказанием кодировать и квантовать синтаксис предсказания, например коэффициенты фильтрации, в соответствии с некоторыми аспектами данного раскрытия. Вслед за статистическим кодированием модулем 46 статистического кодирования кодированные элементы видеоданных и синтаксиса могут быть переданы на другое устройство или заархивированы для более поздней передачи или последующего извлечения.

[0058] Модуль 42 обратного квантования и модуль 44 обратного преобразования применяют обратное квантование и обратное преобразование, соответственно, для восстановления остаточного блока в области пикселя, например, для более позднего использования как опорный блок. Восстановленный остаточный блок (обозначенный как "ВОССТАНОВЛЕННЫЙ ОСТАТОЧНЫЙ БЛОК" на Фиг. 2) может представить восстановленную версию остаточного блока, предоставленного на модуль 38 преобразования. Восстановленный остаточный блок может отличаться от остаточного блока, созданного сумматором 48 вследствие потери деталей, вызванной квантованием и операциями обратного квантования. Сумматор 51 добавляет восстановленный остаточный блок к блоку предсказания компенсированного движения, произведенному модулем 32 предсказания, чтобы произвести восстановленный видео блок для сохранения в памяти 34. Восстановленный видео блок может быть использован модулем 32 предсказания как опорный блок, который может быть использован, чтобы впоследствии закодировать блок в последующем видеокадре или последующей кодированной единице.

[0059] Как описано выше, модуль 32 предсказания может выполнить оценку движения с точностью до дробного пикселя (или субпикселя). Когда модуль 32 предсказания использует оценку движения дробного пикселя, модуль 32 предсказания может создать данные с субпиксельным разрешением (например, при значениях субпикселя или дробного пикселя), используя операции интерполяции, описанные в данном раскрытии. Иначе говоря, операции интерполяции используются для вычисления значений в положениях между положениями целочисленного пикселя. Положения субпикселя, расположенные на половине расстояния между положениями целочисленного пикселя, могут быть обозначены как полупиксельные положения (положения полуэлемента растра), положения субпикселя, расположенные на половине расстояния между положением целочисленного пикселя и положением полупикселя могут быть обозначены как четвертьпиксельные положения (положения четверти элемента растра), положения субпикселя, расположенные на половине расстояния между положением целочисленного пикселя (или положением полупикселя) и положением четверти пикселя, обозначаются как положения восьмой части пикселя (положения восьмой части элемента растра), и т.п.

[0060] На Фиг. 3 показана концептуальная диаграмма положений целочисленного пикселя (или полного пикселя), связанных с данными предсказания, и положений субпикселя (или дробного пикселя), связанные с интерполированными данными предсказания. На концептуальной иллюстрации на Фиг. 3, различные ячейки отображают местоположения пикселя и субпикселя или положения в кадре или блоке кадра. Напечатанные прописными буквами символы (в ячейках со сплошными линиями) отображают местоположения целочисленного пикселя, тогда как строчные буквы (в ячейках с пунктирами) отображают местоположения субпикселя. В частности, местоположения пикселя A1-A6, B1-B6, C1-C6, D1-D6, E1-E6 и Fl-F6 отображают массив 6 на 6 местоположений целочисленного пикселя в кадре, сектора или другой кодированной единицы. Дополнительные местоположения G3 и H3 целочисленного пикселя также показаны на Фиг. 3, который используется с примерами, описанными ниже в данном раскрытии. Местоположения "a"-"o" субпикселя отображают 15 местоположений субпикселей, связанных с целочисленным пикселем C3, например, между местоположениями целочисленного пикселя C3, C4, D3 и D4. Подобные местоположения субпикселя могут существовать для каждого местоположения целочисленного пикселя. Местоположения "a"-"o" субпикселя отображают каждое местоположение пикселя полуэлемента растра и четверти элемента растра, связанное с целочисленным пикселем C3.

[0061] Местоположения целочисленного пикселя могут быть связаны с элементом физического датчика, например фотодиода, когда видеоданные были первоначально созданы. Фотодиод может измерить интенсивность источника света в местоположении датчика и связать значение интенсивности пикселя с местоположением целочисленного пикселя. Кроме того, каждое местоположение целочисленного пикселя может иметь связанный набор пятнадцати местоположений субпикселей (или возможно больше). Число местоположений субпикселя, связанных с местоположениями целочисленного пикселя, может зависеть от желаемой точности. В показанном на Фиг. 3 примере желаемая точность представляет собой точность четверти пикселя, когда каждое из местоположений целочисленного пикселя соотносится с пятнадцатью различными положениями субпикселей. Больше или меньше положений субпикселя может быть связано с каждым местоположением целочисленного пикселя на основании желаемой точности. Для точности в полупиксель, например, каждое местоположение целочисленного пикселя может соотноситься с тремя положениями субпикселей. Как другой пример, каждое из местоположений целочисленного пикселя может соотноситься с шестьюдесятью тремя положениями субпикселей для точности в восьмую часть пикселя. Каждое местоположение пикселя может определять одно или несколько значений пикселя, например одно или несколько значений яркости и цветности.

[0062] Величина Y может отображать яркость, и Cb и Cr могут отображать два различных значения информации о цвете трехмерного цветового пространства YCbCr. Каждое местоположение пикселя фактически может определять три значения пикселя для трехмерного цветового пространства. Однако методики данного раскрытия могут относиться к предсказанию относительно одного измерения, в целях простоты. В той степени, в которой методики описаны относительно значений пикселя в одном измерении, подобные методики могут быть распространены и на другие измерения. В некоторых случаях значения информации о цвете субдискретизированы до предсказания, но предсказание обычно происходит в пространстве яркости без какой-либо субдискретизации, поскольку человеческое зрение более чувствительно к интенсивности пикселя, чем к цвету пикселя.

[0063] В примере на Фиг. 3 местоположения субпикселя, также называемые положениями субпикселя, связанные с целочисленным пикселем "C3", показаны для точности в четверть пикселя. Пятнадцать положений субпикселей, связанные с пикселем C3, помечены как "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n" и "o". Большинство других дробных местоположений, связанных с местоположениями других целочисленных пикселей, для простоты не показаны. Местоположения "b", "h" и "j" субпикселей могут быть обозначены как местоположения полупикселя, и местоположения "a", "c", "d", "e", "f", "g", "i", "k", "1", "m" и "o" субпикселей могут быть обозначены как местоположения четверти пикселя. Кроме того, в данном раскрытии, положения субпикселя, ориентированные вдоль той же самой горизонтальной оси, что и целочисленные пиксели, могут быть обозначены как горизонтальные субпиксели. Субпиксели "a", "b" и "c" представляют собой примеры горизонтальных субпикселей. Субпиксели, ориентированные на той же самой вертикальной оси, как и целочисленный пиксель, могут быть обозначены как вертикальные субпиксели. Субпиксели "d", "h" и "l" являются примерами вертикальных субпикселей. Аспекты данного раскрытия включают в себя определение значений пикселя для горизонтальных субпикселей и вертикальных субпикселей, используя единственный линейный интерполяционный фильтр, и, таким образом, данное раскрытие может относиться к горизонтальным субпикселям и вертикальным субпикселям, всем вместе, как 1L субпикселям. На Фиг.4 показана концептуальная диаграмма, иллюстрирующая 1L субпиксели (a, b, c, d, h, l) относительно группы целочисленных пикселей (C1-C6, A3, B3, C3, D3, E3 и F3).

[0064] Аспекты данного раскрытия включают в себя определение значений пикселя для невертикальных, негоризонтальных субпикселей, например субпикселей "e", "f", "g", "i", "j", "k", "m", "n" и "o", используя два линейных интерполяционного фильтра, один применяемый в вертикальном направлении и один применяемый в горизонтальном направлении. Соответственно, данное раскрытие может относиться к невертикальным, негоризонтальным субпикселям, например субпикселям "e", "f", "g", "i", "j", "k", "m", "n" и "o", как 2L субпикселям. На Фиг.5 показана концептуальная диаграмма, иллюстрирующая 2L субпиксели (e, f, g, i, j, k, м, n, o) относительно группы целочисленных пикселей (C1-C6, A3, B3, C3, D3, E3 и F3).

[0065] На Фиг. 6 показана концептуальная диаграмма, иллюстрирующая восемь горизонтальных линейных опорных положений C0-C7 пикселя относительно положения "b" субпикселя, со штриховкой, которая показывает симметрию коэффициентов. В этом случае симметрия коэффициентов означает, что только четыре коэффициента фильтра необходимы для C0, C1, C2 и C3, чтобы определять весь набор коэффициентов для опорных положений C0-C7 фильтра. Положение C0 является симметричным с C7, C1 является симметричным с C6, C2 является симметричным с C5 и C3 является симметричным с C4. Таким образом, только четыре коэффициента должны быть переданы как часть потока битов кодированных видеоданных или сохранены модулем 39 фильтра, чтобы определить набор из восьми коэффициентов, необходимых для интерполяции положения "b" субпикселя. Остающиеся коэффициенты могут быть созданы в декодере на основании переданных коэффициентов. В частности, декодер может быть запрограммирован, чтобы знать, что симметрия применяется, и симметрия может определить, как создать любые остающиеся коэффициенты на основании переданных коэффициентов.

[0066] На Фиг. 7 показана концептуальная диаграмма, иллюстрирующая восемь горизонтальных линейных опорных положений пикселя относительно субпикселя, со штриховкой, которая показывает отсутствие какой-либо симметрии коэффициентов. Таким образом, все восемь коэффициентов необходимы, чтобы определить набор коэффициентов для поддержки фильтра относительно положения "a" субпикселя. Однако симметрия пикселя означает, что эти такие же коэффициенты относительно положения "a" субпикселя могут также быть использованы для получения поддержки фильтра для положения "c" подпикселя. Если эти восемь коэффициентов для поддержки фильтра относительно субположения "a" рассматриваются как одномерный массив, то эти восемь коэффициентов для субпикселя "c" могут быть найдены зеркальным отражением массива, так, что коэффициент для C7 при определении значения для субпикселя "a" может быть коэффициентом для C0 при определении значения для субпикселя "c", коэффициент для C6 может быть коэффициентом для C1 и так далее. Таким образом, используя адаптивную интерполяционную фильтрацию (AIF), например, где коэффициенты фильтра вычисляются в видео кодере 22, только восемь коэффициентов должны быть переданы в потоке битов на видео декодер 28, чтобы определить два различных набора из восьми коэффициентов, необходимых для интерполяции положений "a" и "c" субпикселя.

[0067] На Фиг. 8 показана концептуальная диаграмма, иллюстрирующая восемь вертикальных линейных опорных положений G3, A3, B3, C3, D3, E3, F3 и H3 пикселя относительно субпикселя "h", со штриховкой, которая показывает симметрию коэффициентов. В этом случае, симметрия коэффициентов означает, что только четыре коэффициента фильтра необходимы для G3, A3, B3 и C3, чтобы определить весь набор коэффициентов для опорных положений G3, A3, B3, C3, D3, E3, F3 и H3 фильтра. Положение G3 является симметричным с H3, A3 является симметричным с F3, B3 является симметричным с E3 и C3 является симметричным с D3. Вследствие симметрии коэффициент, связанный с G3, может также использоваться с H3, коэффициент, связанный с A3, может также использоваться с F3 и так далее. Таким образом, используя AIF, например, только четыре коэффициента должны быть переданы как часть кодированного потока битов видеоданных, чтобы определить набор из восьми коэффициентов, необходимых для интерполяции положения "h" субпикселя.

[0068] На Фиг. 9 показана концептуальная диаграмма, иллюстрирующая восемь вертикальных линейных опорных положений пикселя относительно субпикселя, со штриховкой, которая показывает нехватку какой-либо симметрии коэффициентов. Таким образом, необходимы все восемь коэффициентов, чтобы определить набор коэффициентов для поддержки фильтра относительно положения "d" субпикселя. Однако, как отмечено выше относительно Фиг. 7, симметрия пикселя означает, что эти, те же самые коэффициенты относительно положения "d" субпикселя, могут также использоваться для получения поддержки фильтра для положения "1" субпикселя. Таким образом, используя AIF, например, только восемь коэффициентов должны быть переданы в потоке битов данных на видео декодер 28, чтобы определить два различных набора из восьми коэффициентов, необходимых для интерполяции положений "d" и "1" субпикселя.

[0069] Модуль 32 предсказания видео кодера 40 может определить значения пикселя для местоположений "a"-"o" субпикселя, используя интерполяционную фильтрацию модулем 39 фильтрации. Для положений "b" и "h" полупикселя каждый коэффициент фильтра, также называемый отводом, может соответствовать положению целочисленного пикселя в горизонтальном и вертикальном направлении, соответственно. В частности, для положения "b" полупикселя отводы фильтра с 8 отводами соответствуют C0, C1, C2, C3, C4, C5, C6 и C7. Положения C0 и C7 субпикселя не показаны на Фиг.3, но могут быть видны, например, на Фиг. 6 и 7. Аналогично, для положения "h" полупикселя, отводы фильтра с 8 отводами соответствуют G3, A3, B3, C3, D3, E3, F3 и H3. Например, значения пикселя для положений "b" и "h" субпикселя могут быть вычислены, используя уравнения (1) и (2):

b=((-3*C0+12*C1-39*C2+158*C3+158*C4-39*C5+12*C6-3*C7)+128)/256

(1)

h=((-3*G3+12*A3-39*B3+158*C3+158*D3-39*E3+12*F3-3*H3)+128)/256

(2)

[0070] В некоторых воплощениях деление на 256 может быть осуществлено сдвигом вправо на 8 бит. Как с положением "b", для положений "a" и "c" в четверть пикселя, отводы фильтра с 8 отводами могут соответствовать C0, C1, C2, C3, C4, C5, C6 и C7, но в отличие от таковых для положения "b", коэффициенты фильтра могут быть несимметричными и отличающимися для таковых для положения "b". Например, значения пикселя для положений "a" и "c" субпикселя могут быть вычислены, используя уравнения (3) и (4):

a=((-3*C0+12*C1-37*C2+229*C3+71*C4-21*C5+6*C6-C7)+128)/256

(3)

c=((-C0+6*Cl-21*C2+71*C3+229*C4-37*C5+12*C6-3*C7)+128)/256

(4)

[0071] В некоторых воплощениях деление на 256 может быть осуществлено сдвигом вправо на 8 бит. Как с положением "h", для положений "d" и "1" в четверть пикселя, отводы фильтра с 8 отводами могут соответствовать G3, A3, B3, C3, D3, E3, F3 и H3, но в отличие от таковых для положения "h", коэффициенты фильтра могут быть несимметричными и отличными от таковых для положения "h". Например, значения пикселя для положений "d" и "1" субпикселя могут быть вычислены, используя уравнения (5) и (6):

d=((-3*G3+12*A3-37*B3+229*C3+71*D3-21*E3+6*F3-H3)+128)/256

(5)

1=((-G3+6*A3-21*B3+71*C3+229*D3-37*E3+12*F3-3*H3)+128)/256

(6)

[0072] В некоторых воплощениях деление на 256 может быть осуществлено сдвигом вправо на 8 бит. Хотя коэффициенты примера, данные для вышеприведенных уравнений (l)-(6), обычно используют одни и те же коэффициенты и для горизонтальных субпикселей, и для вертикальных субпикселей, не требуется, чтобы коэффициенты для горизонтальных и вертикальных субпикселей были бы одними и теми же. Например, уравнения (1) и (2), (3) и (5), (4) и (6), соответственно, имеют одни и те же коэффициенты в вышеприведенных примерах, но в некоторых воплощениях каждое может иметь различные коэффициенты.

[0073] Модуль 32 предсказания видео кодера 40 может также определить значения пикселя для 2L местоположений "e", "f", "g", "i", "j", "k", "m", "n" и "o" субпикселя, используя интерполяционную фильтрацию посредством модуля 39 фильтрации. Для 2L положений субпикселя горизонтальная фильтрация сопровождается вертикальной фильтрацией, или наоборот. Первая операция фильтрации определяет промежуточные значения, и вторая операция фильтрации использует промежуточные значения, чтобы определить значение пикселя для местоположения субпикселя. Например, чтобы определить значение для "j", горизонтальные фильтры с 6 отводами могут быть использованы, чтобы определить промежуточные значения для "aa", "bb", "b", "hh", "ii" и "jj", используя следующие уравнения:

aa=((8*A1-40*A2+160*A3+160*A4-40*A5+8*A6)+128)/256

(7)

bb=((8*B1-40*B2+160*B3+160*B4-40*B5+8*B6)+128)/256

(8)

b=((8*C1-40*C2+160*C3+160*C4-40*C5+8*C6)+128)/256

(9)

hh=((8*D1-40*D2+160*D3+160*D4-40*D5+8*D6)+128)/256

(10)

ii=((8*E1-40*E2+160*E3+160*E4-40*E5+8*E6)+128)/256

(11)

jj=((8*F1-40*F2+160*F3+160*F4-40*F5+8*F6)+128)/256

(12)

В некоторых воплощениях деление на 256 может быть осуществлено сдвигом вправо на 8 бит. Применяя вертикальный фильтр с 6 отводами к вышеприведенным промежуточным значениям, значение для "j" может быть определено, используя следующее уравнение:

j=((8*aa-40*bb+160*c3+160*hh-40*ii+8*jj)+128)/256.

(13)

В некоторых воплощениях деление на 256 может быть осуществлено сдвигом вправо на 8 бит. Альтернативно, вертикальные фильтры с 6 отводами могут быть использованы, чтобы найти промежуточные значения для "cc", "dd", "h", "ee", "ff" и "gg", и горизонтальные 6 отводов могут быть применены к этим промежуточным значениям, чтобы определить значение пикселя для "j".

[0074] Подобно описанной выше процедуре для субпикселя "j", значения пикселя для местоположений "e", "f", "g", "i", "k", "m", "n" и "o" субпикселя могут быть определены, во-первых, выполнением операции вертикальной фильтрации, чтобы определить промежуточные значения, и затем применением горизонтального фильтра с 6 отводами к промежуточным значениям, определенным вертикальной фильтрацией, или вначале выполнением операции горизонтальной фильтрации, чтобы определить промежуточные значения, и затем применением вертикального фильтра с 6 отводами к промежуточным значениям, определенным горизонтальной фильтрацией. Хотя и горизонтальные, и вертикальные фильтры, использованные выше как примеры для субпикселя "j", используют симметричные коэффициенты, или горизонтальный, или вертикальный фильтры, или оба, использованные для определения значений пикселя для других 2D значений субпикселя, могут быть несимметричными. Например, в одном примерном воплощении, и горизонтальный и вертикальный фильтры для местоположений "e", "g", "m" и "o" субпикселя могут использовать несимметричные коэффициенты. Местоположения "f" и "n" субпикселя могут использовать горизонтальный фильтр с симметричными коэффициентами и вертикальный фильтр с несимметричными коэффициентами, и местоположения "i" и "k" субпикселя могут использовать горизонтальный фильтр с несимметричными коэффициентами и вертикальный фильтр с симметричными коэффициентами фильтра.

[0075] Фактические фильтры, применяемые в модуле 39 фильтрации для создания интерполированных данных в местоположениях субпикселя, могут быть предметом очень разнообразных воплощений. Как один пример, модуль 32 предсказания может использовать AIF, где коэффициенты фильтра вычисляются видео кодером 22 и передаются в потоке битов данных на видео декодер 28. Как другой пример, модуль 32 предсказания может использовать переключаемую фильтрацию, где множественные фильтры известны и для видео кодера 22, и для видео декодера 28, и конкретный фильтр для использования сигнализируется от видео кодера 22 на видео декодер 28 в потоке битов данных. В примере переключаемой фильтрации видео кодер 22 и видео декодер 28 могут запоминать четыре уникальных фильтра для каждого положения субпикселя, и конкретный фильтр, для использования для положения субпикселя, может быть сигнализирован от видео кодера 22 на видео декодер 28, используя два бита.

[0076] Модуль 32 предсказания может использовать отделяемые интерполяционные фильтры в горизонтальном направлении и в вертикальном направлении. Для 1L положений субпикселя модуль 32 предсказания (например, модуль 37 MC модуля 32 предсказания) применяет только горизонтальные направленные фильтры или только вертикальные направленные фильтры в зависимости от местоположения субпикселя. В одном примере, горизонтальные и вертикальные направленные фильтры содержат фильтры с 8 положениями (или 8 отводами). Модуль 32 предсказания применяет горизонтальные направленные фильтры для положений "a", "b" и "c" субпикселя с положениями C0, C1, C2, C3, C4, C5, C6 и C7 целочисленного пикселя (C0 и C7 не показаны на Фиг.3) как поддержка фильтра и применяет вертикальные направленные фильтры для положений "d", "h" и "1" субпикселя с положениями G3, A3, B3, C3, D3, E3, F3 и H3 целочисленного пикселя (см. Фиг. 3) как поддержка фильтра. Для остающихся положений субпикселя, то есть 2L положений субпикселя, модуль 32 предсказания применяет горизонтальную фильтрацию сначала, с последующей вертикальной фильтрацией, или вертикальную фильтрацию сначала, с последующей горизонтальной фильтрацией. Горизонтальные и вертикальные фильтры, используемые для 2L положения субпикселя, могут, каждый, быть фильтром с 6 отводами.

[0077] Хотя данное раскрытие использует фильтры с 8 отводами и фильтры с 6 отводами, в качестве примеров, важно отметить, что другие длины фильтра также могут быть использованы и находятся в рамках данного раскрытия. Например, фильтры с 6 отводами могут использоваться для определения значений для 1L местоположений субпикселя, тогда как фильтры с 4 отводами используются для определения значений для 2L местоположений субпикселя, или фильтры с 10 отводами могут использоваться для определения значений для 1L местоположений субпикселя, тогда как фильтры с 8 отводами, или фильтры с 6 отводами, используются для определения значений для 2L местоположений субпикселя.

[0078] На Фиг. 10 показана блок-схема, иллюстрирующая пример видео декодера, который может декодировать видеопоследовательность, кодированную описанным здесь образом. Видео декодер 60 представляет собой один пример специализированного видео вычислительного устройства или аппарата, упоминаемого здесь как "кодер". Видео декодер 60 включает в себя статистически декодирующий модуль 52, который статистически декодирует принимаемый поток битов данных для создания квантованных коэффициентов и элементов синтаксиса предсказания. Элементы синтаксиса предсказания могут включать в себя режим кодирования, один или несколько векторов движения, информацию об идентификации методики интерполяции, используемой для создания данных субпикселя, о коэффициентах для использования в интерполяционной фильтрации, и/или другую информацию, связанную с созданием блока предсказания.

[0079] Элементы синтаксиса предсказания, например коэффициенты, направляются на модуль 55 предсказания. Если предсказание используется, чтобы закодировать коэффициенты относительно коэффициентов фиксированного фильтра, или относительно друг друга, модуль 53 предсказания коэффициентов и обратного квантования может декодировать элементы синтаксиса, чтобы определить фактические коэффициенты. Кроме того, если квантование применяется к любому синтаксису предсказания, модуль 53 предсказания коэффициентов и обратного квантования может также удалить такое квантование. Коэффициенты фильтра, например, могут быть с предсказанием закодированы и квантованы в соответствии с данным раскрытием, и в этом случае, модуль 53 предсказания коэффициентов и обратного квантования может быть использован видео декодером 60 для декодирования и деквантования таких коэффициентов с предсказанием.

[0080] Модуль 55 предсказания может создать данные предсказания на основании элементов синтаксиса предсказания и одного или нескольких ранее декодированных блоков, которые хранятся в памяти 62, в основном так же, как и подробно описано выше относительно модуля 32 предсказания видео кодера 50. В частности, модуль 55 предсказания может реализовать одну или несколько методик интерполяционной фильтрации данного раскрытия в течение компенсации движения для создания блока предсказания с конкретной точностью, например точностью в четверть пикселя. Также одна или несколько методик данного раскрытия могут быть использованы видео декодером 60 в создании блока предсказания. Модуль 55 предсказания может включать в себя модуль компенсации движения, который содержит фильтры, используемые для методик интерполяционной фильтрации и фильтрации, подобной интерполяционной фильтрации данного раскрытия. Компонента компенсации движения не показана на Фиг. 10 для простоты и легкости восприятия.

[0081] Модуль 56 обратного квантования выполняет обратное квантование, то есть де-квантует квантованные коэффициенты. Процесс обратного квантования может быть процессом, определенным для H.264 декодирования. Модуль 58 обратного преобразования применяет обратное преобразование, например обратное DCT, или концептуально подобный процесс обратного преобразования, к преобразованным коэффициентам, чтобы произвести остаточные блоки в области пикселя. Сумматор 64 суммирует остаточный блок с соответствующим блоком предсказания, созданным модулем 55 предсказания, чтобы сформировать восстановленную версию исходного блока, кодированного видео кодером 50. Если желательно, фильтр разблокирования также может быть применен, чтобы фильтровать декодированные блоки для удаления блочных артефактов. Декодированные видео блоки затем сохраняются в памяти 62 опорного кадра, который предоставляет опорные блоки для последующей компенсации движения и также производит декодированные видеоданные для управления дисплейным устройством (например, устройством 28 на Фиг. 1).

[0082] Конкретный интерполяционный фильтр, используемый модулем 55 предсказания, может быть определен на основании элементов синтаксиса предсказания, принимаемых в кодированном потоке битов видеоданных от устройства-источника 12, например. На Фиг. 11 показан способ для определения интерполяционных фильтров на основании элементов синтаксиса, принятых в потоке битов данных. Способ на Фиг. 11 может, например, быть использован для определения фильтров для местоположений субпикселя вырезок Р. Видео декодер 60 принимает кодированный поток битов данных от устройства-источника 12. Из элементов синтаксиса модуля кодирования, например элементов синтаксиса в заголовке кадра или заголовка сектора, модуль 55 предсказания считывает биты, идентифицирующие набор (1101) ограничений. Набор ограничений идентифицирует для модуля 55 предсказания, каков набор индексов фильтра, чтобы использовать для местоположений субпикселя этого модуля кодирования. Каждое местоположение субпикселя может иметь свой собственный индекс фильтра, или группа местоположений субпикселя может совместно использовать индекс фильтра. Индекс фильтра связывает конкретный фильтр с конкретной конфигурацией битов. Например, если используются два бита на местоположение субпикселя, то для сообщения о выборе фильтра битовая комбинация 00 могла бы соответствовать первому фильтру, 01 второму фильтру, 10 третьему фильтру и 11 четвертому фильтру. Поскольку каждое местоположение субпикселя может иметь свой собственный уникальный индекс фильтра, и уникальные фильтры, битовая комбинация 00 может соответствовать фильтру для местоположения "j" субпикселя, например, отличающемуся от фильтра для местоположения "e" субпикселя, например.

[0083] Пример на Фиг. 11 использует три набора ограничений. Если заголовок кодированной единицы содержит сигнал для модуля 55 предсказания, что необходимо использовать первый набор ограничений (1102), то для всех значений субпикселя, определенных для кодированной единицы, и горизонтальный, и вертикальный фильтры для каждого значения субпикселя могут быть сигнализированы раздельно, используя вертикальные сигнальные биты и горизонтальные сигнальные биты. Таким образом, если используются два бита, каждый для вертикальных сигнальных битов и горизонтальных сигнальных битов, о фильтрах для 1L положений субпикселя сообщается, используя всего два бита, и о фильтрах для 2L положений сообщается, используя всего четыре бита: два для вертикальных сигнальных битов и два для горизонтальных сигнальных битов.

[0084] Для местоположений субпикселя, отличных от местоположений "a", "b" и "c", два вертикальных сигнальных бита в потоке битов данных могут идентифицировать один из четырех вертикальных фильтров для использования (1103). Для местоположений "a", "b" и "c" вертикальные сигнальные биты могут не присутствовать в потоке битов, и вертикальный фильтр не может быть выбран. В соответствии с данным раскрытием вертикальные фильтры, выбранные для местоположений "d", "h" и "1" субпикселя, могут быть более длинными, чем вертикальные фильтры, выбранные для "e", "f", "g", "i", "j", "k", "m", "n" и "o". Например, вертикальные фильтры, выбранные для местоположений "d", "h" и "1" субпикселя, могут содержать фильтры с 8 отводами, тогда как вертикальные фильтры, выбранные для местоположений "e", "f", "g", "i", "j", "k", "m", "n" и "o" субпикселя, могут содержать фильтры с 6 отводами.

[0085] Для местоположений субпикселя, отличных от местоположений "d", "h" и "1", два горизонтальных сигнальных бита могут идентифицировать один из четырех горизонтальных фильтров для использования (1104). Для местоположений "d", "h" и "1" горизонтальные сигнальные биты могут не присутствовать в потоке битов, и горизонтальный фильтр не может быть выбран. В соответствии с данным раскрытием горизонтальные фильтры, выбранные для местоположений "a", "b" и "c" субпикселя могут быть более длинными, чем горизонтальные фильтры, выбранные для "e", "f", "g", "i", "j", "k", "m", "n" и "o". Например, горизонтальные фильтры, выбранные для местоположений "a", "b" и "c" субпикселя, могут содержать фильтры с 8 отводами, тогда как горизонтальные фильтры, выбранные для местоположений "e", "f", "g", "i", "j", "k", "m", "n" и "o" субпикселя, могут содержать фильтры с 6 отводами.

[0086] Как только горизонтальный фильтр и вертикальный фильтр выбраны, фильтры могут быть использованы, как описано выше, для определения значения для местоположения субпикселя. Если субпиксель расположен в местоположении "a", "b" или "c", то единственный горизонтальный фильтр может быть использован, чтобы определить значение субпикселя, как описано выше относительно уравнений (1), (3) и (4). Если субпиксель расположен в "d", "h" или "1", то единственный вертикальный фильтр может быть использован, чтобы определить значение субпикселя, как описано выше относительно уравнений (2), (5) и (6). Если субпиксель расположен в "e", "f", "g", "i", "j", "k", "m", "n" или "o", то и вертикальный фильтр, и горизонтальный фильтр могут быть использованы, чтобы определить значение для местоположения субпикселя, как описано выше относительно уравнений (7)-(13).

[0087] Если заголовок кодированной единицы содержит сигнал на модуль 55 предсказания о том, что необходимо использовать второй набор ограничений (1107), то для всех значений субпикселя, определенных для кодированной единицы, и горизонтальный, и вертикальный фильтры для каждого значения субпикселя могут быть сигнализированы совместно, используя два сигнальных бита на местоположение субпикселя. На основании сигнальных битов фильтр или пара фильтров могут быть выбраны (1108). Для местоположений "a", "b" или "c" субпикселя два сигнальных бита могут быть использованы, чтобы идентифицировать один из четырех горизонтальных фильтров, связанных с этим конкретным местоположением субпикселя. Для местоположений "d", "h" или "1" субпикселя два сигнальных бита могут быть использованы, чтобы идентифицировать один из четырех вертикальных фильтров, связанных с этим конкретным местоположением субпикселя. Для местоположений "e", "f", "g", "i", "j", "k", "m", "n" или "o" субпикселя два сигнальных бита могут быть использованы, чтобы идентифицировать один из четырех пар горизонтальных и вертикальных фильтров. Таким образом, хотя набор 1 ограничений допускает два горизонтальных сигнальных бита, чтобы идентифицировать один из четырех горизонтальных фильтров, и допускает два вертикальных сигнальных бита, чтобы идентифицировать один из четырех вертикальных фильтров для полных шестнадцати горизонтально-вертикальных комбинаций, набор 2 ограничений позволяет только четыре горизонтально-вертикальных комбинации. Однако набор 2 ограничений сокращает общее число битов, необходимых для сообщения о выборе фильтра. На основании фильтра, или комбинации фильтров, идентифицированных сигнальными битами, значение для местоположения субпикселя определяется подобным же образом, как и описано выше (1109). Если заголовок кодированного элемента содержит сигнал на модуль 55 предсказания о том, что необходимо использовать третий набор ограничений (1111), то для всех значений субпикселя, определенных для кодированного элемента, фиксированный фильтр, или комбинация фильтров, может быть использован только на основании местоположения субпикселя, и не на основании каких-либо сигнальных битов, связанных с местоположением субпикселя (1112). Например, в отличие от наборов 1 и 2 ограничений, где местоположения "a", "b" и "c" субпикселя, каждое, может иметь четыре возможных соответствующих горизонтальных фильтра, с набором 3 ограничений местоположения "a", "b" и "c" субпикселя, каждое, имеет один соответствующий горизонтальный фильтр. В отличие от набора 1 и 2 ограничений, где местоположения "d", "h" и "l" субпикселя, каждое, может иметь четыре возможных соответствующих вертикальных фильтра, с набором 3 ограничений, местоположения "d", "h" или "l" субпикселя, каждое, имеет один соответствующий вертикальный фильтр. В отличие от набора 1 и 2 ограничений, где местоположения "e", "f", "g", "i", "j", "k", "m", "n" или "o" субпикселя, каждое, имеет 16 и 4 возможных горизонтально-вертикальных комбинаций фильтра, соответственно, с набором 3 ограничений, местоположения "e", "f", "g", "i", "j", "k", "m", "n" или "o" субпикселя, каждое, имеет единственную комбинацию горизонтально-вертикального фильтра. Хотя набор 3 ограничений может уменьшить имеющиеся фильтры, набор 3 ограничений также может уменьшить общее количество битов, необходимых для сигнализирования о выборе фильтра.

[0088] На Фиг. 12 показан способ для определения интерполяционных фильтров на основании элементов синтаксиса, полученных в потоке битов данных. Способ на Фиг. 12 может, например, использоваться, чтобы определить фильтры для местоположений субпикселя вырезок B. В отличие от Фиг. 11, который включает в себя три набора ограничений для вырезок P, пример на Фиг. 12 только включает в себя два набора ограничений. Набор 1 ограничений, как описано в связи с Фиг. 11, может быть исключен при использовании вырезок B, чтобы улучшить эффективность кодирования. Вырезки В обычно кодируются с меньшим количеством битов, чем вырезки P. Использование тех же самых наборов ограничений для вырезок P и B может привести к использованию того же самого числа битов для сигнализирования о выборе фильтров интерполяции для каждого положения дробного пикселя, но издержки сигнализирования о фильтрах интерполяции, как процент от полных битов, мог бы быть намного выше для вырезок B, чем для вырезок P. Вследствие этих больших затрат, в случае вырезок B, компромисс между скоростью и искажениями может не быть столь же благоприятным, как с вырезками P. Поэтому в некоторых воплощениях набор 1 ограничений может не использоваться для вырезок B.

[0089] Если заголовок кодированного элемента содержит для модуля 55 предсказания сигнал о том, что необходимо использовать второй набор ограничений (1207) для вырезки B, то для всех значений субпикселя, определенных для кодированного элемента, и горизонтальные, и вертикальные фильтры для каждого значения субпикселя можно сигнализировать совместно, используя два сигнальных бита на местоположение субпикселя. На основании сигнальных битов может быть выбран фильтр, или пара фильтров (1208). Для местоположений "a", "b" или "c" субпикселя два сигнальных бита могут быть использованы, чтобы идентифицировать один из четырех горизонтальных фильтров, связанных с этим конкретным местоположением субпикселя. Для местоположений "d", "h" или "1" субпикселя два сигнальных бита могут быть использованы, чтобы идентифицировать один из четырех вертикальных фильтров, связанных с тем конкретным местоположением субпикселя. Для местоположений "e", "f", "g", "i", "j", "k", "m", "n" или "o" субпикселя два сигнальных бита могут быть использованы, чтобы идентифицировать одну из четырех пар горизонтальных и вертикальных фильтров. На основании фильтра, или комбинации фильтров, идентифицированных сигнальными битами, значение для местоположения субпикселя определяется подобным же образом, как и описано выше (1209). Если заголовок кодированного элемента содержит для модуля 55 предсказания сигнал о том, что необходимо использовать третий набор ограничений (1211), то для всех значений субпикселя, определенных для кодированного элемента, фиксированный фильтр, или комбинация фильтров, может быть использован только на основании местоположения субпикселя, и не на основании каких-либо сигнальных битов, связанных с местоположением субпикселя (1212). Например, в отличие от набора 2 ограничений, когда каждое из местоположений "a", "b" и "c” субпикселя может иметь четыре возможных соответствующих горизонтальных фильтра, с набором 3 ограничений, каждое местоположение "a", "b" и "c” субпикселя имеет один соответствующий горизонтальный фильтр. В отличие от набора 2 ограничений, когда каждое местоположение "d", "h" и "1” субпикселя может иметь четыре возможных соответствующих вертикальных фильтра, с набором 3 ограничений каждое местоположение "d", "h" или "1” субпикселя имеет один соответствующий вертикальный фильтр. В отличие от набора 2 ограничений, когда каждое местоположение "e", "f", "g", "i", "j", "k", "m", "n" или "o” субпикселя может иметь четыре возможных горизонтально-вертикальных комбинаций фильтра, соответственно, с набором 3 ограничений каждое местоположение "e", "f", "g", "i", "j", "k", "m", "n" или "o" субпикселя имеет единственную горизонтально-вертикальную комбинацию фильтра. Притом, что набор 3 ограничений может сократить имеющиеся фильтры, по сравнению с набором 2 ограничений, она также сокращает полное количество битов, необходимое для сообщения о выборе фильтра.

[0090] На Фиг. 13 показана блок-схема, иллюстрирующая способ для определения интерполяционных фильтров на основании элементов синтаксиса, принятых в потоке битов данных. Способ на Фиг. 13 представляет собой модификацию способа, описанного для вырезок P в связи с Фиг. 11. Если заголовок кодированного элемента содержит для модуля 55 предсказания сигнал о том, что первый набор ограничений может быть использован (1302), то для всех значений субпикселя, определенных для кодированного элемента, в потоке битов данных также может быть передан флаг. Флаг представляет собой сигнал на 1 бит, означающий для модуля 55 предсказания или использование того же самого выбора фильтра, ранее используемого для этого местоположения субпикселя, или использование другого фильтра. Если флаг указывает, что должен быть использован предыдущий фильтр (1314, да) для конкретного местоположения субпикселя, то горизонтальный фильтр, вертикальный фильтр или комбинация горизонтального и вертикального фильтров, последний раз использованные для этого конкретного местоположения субпикселя, могут быть использованы снова, чтобы определить значение для конкретного местоположения субпикселя (1315). Если флаг указывает, что должен быть использован тот же самый фильтр, то два или четыре бита, иначе используемых для сообщения о горизонтальном и/или вертикальном фильтрах, не должны быть переданы, приводя к сокращению передаваемых битов. Однако, если флаг указывает, что должен быть использован другой фильтр (1314, нет) для конкретного местоположения субпикселя, то и о горизонтальном, и о вертикальном фильтрах для местоположения субпикселя можно сообщить раздельно, как описано выше относительно Фиг. 11, используя вертикальные сигнальные биты и горизонтальные сигнальные биты.

[0091] Для местоположений субпикселя, отличных от местоположений "a", "b" и "c", два вертикальных сигнальных бита в потоке битов данных могут идентифицировать один из четырех вертикальных фильтров для использования (1303). Для местоположений "a", "b" и "c" вертикальные сигнальные биты могут не присутствовать в потоке битов, и вертикальный фильтр не может быть выбран. В соответствии с данным раскрытием, вертикальные фильтры, выбранные для местоположений "d", "h" и "1" субпикселя, могут быть более длинными, чем вертикальные фильтры, выбранные для "e", "f", "g", "i", "j", "k", "m", "n" и "o". Например, вертикальные фильтры, выбранные для местоположений "d", "h" и "1" субпикселя, могут содержать фильтры с 8 отводами, тогда как вертикальные фильтры для выбранных местоположений "e", "f", "g", "i", "j", "k", "m", "n" и "o" субпикселя могут содержать фильтры с 6 отводами.

[0092] Для местоположений субпикселя, отличных от местоположений "d", "h" и "1", два горизонтальных сигнальных бита могут идентифицировать один из четырех горизонтальных фильтров для использования (1304). Для местоположений "d", "h" и "1" горизонтальные сигнальные биты могут не присутствовать в потоке битов, и горизонтальный фильтр не выбирается. В соответствии с данным раскрытием, горизонтальные фильтры, выбранные для местоположений "a", "b" и "c" субпикселя могут быть более длинными, чем горизонтальные фильтры, выбранные для "e", "f", "g", "i", "j", "k", "m", "n" и "o". Например, горизонтальные фильтры, выбранные для местоположений "a", "b" и "c" субпикселя, могут содержать фильтры с 8 отводами, тогда как горизонтальные фильтры для выбранных местоположений "e", "f", "g", "i", "j", "k", "m", "n" и "o" субпикселя могут содержать фильтры с 6 отводами.

[0093] Как только горизонтальный фильтр и вертикальный фильтр выбраны, фильтры могут быть применены, как описано выше, для определения значения для местоположения субпикселя. Если субпиксель расположен в местоположении "a", "b" или "c", то может быть использован единственный горизонтальный фильтр для определения значения субпикселя. Если субпиксель расположен в "d", "h" или "1", то может быть использован единственный вертикальный фильтр для определения значения субпикселя. Если субпиксель расположен в "e", "f", "g", "i", "j", "k", "m", "n" или "o", то могут быть использованы и вертикальный фильтр, и горизонтальный фильтр, чтобы определить значение для местоположения субпикселя.

[0094] Если заголовок кодированного элемента содержит для модуля 55 предсказания сигнал, что может быть использован третий набор ограничений (1311), то для всех значений субпикселя, определенных для кодированного элемента, фиксированный фильтр или комбинация фильтров могут быть выбраны только на основании местоположения субпикселя, а не на основании каких-либо сигнальных битов, связанных с местоположением субпикселя (1312). Например, в отличие от набора 1 и 2 ограничений, когда каждое местоположение "a", "b" и "c” субпикселя может иметь четыре возможных соответствующих горизонтальных фильтра, с набором 3 ограничений каждое местоположение "a", "b" и "c” субпикселя имеет один соответствующий горизонтальный фильтр. В отличие от наборов 1 и 2 ограничений, где каждое местоположение "d", "h" и "1” субпикселя может иметь четыре возможных соответствующих вертикальных фильтра, с набором 3 ограничений каждое местоположение "d", "h" или "1” субпикселя имеет один соответствующий вертикальный фильтр. В отличие от набора 1 ограничений, когда каждое местоположение "e", "f", "g", "i", "j", "k", "m", "n" или "o” субпикселя имеет 16 и 4 возможных горизонтально-вертикальных комбинаций фильтра соответственно, с набором 3 ограничений каждое местоположение "e", "f", "g", "i", "j", "k", "m", "n" или "o” субпикселя имеет единственную горизонтально-вертикальную комбинацию фильтра. Притом, что набор 3 ограничений может сократить имеющиеся фильтры, она также сокращает общее количество битов, необходимых для сообщения о выборе фильтра.

[0095] На Фиг. 14 показана блок-схема, иллюстрирующая способ для определения интерполяционных фильтров на основании элементов синтаксиса, принятых в потоке битов данных. Способ на Фиг. 14 может содержать модификацию способа, описанного для вырезок B относительно Фиг. 12. Если заголовок кодированного элемента содержит для модуля 55 предсказания сигнал, что может быть использован второй набор ограничений (1407), то для всех значений субпикселя, определенных для кодированного элемента в потоке битов данных, может быть передан флаг. Флаг представляет собой сигнал на 1 бит, означающий для модуля 55 предсказания или использование того же самого выбора фильтра, ранее используемого для этого местоположения субпикселя, или использование другого фильтра. Если флаг указывает, что должен быть использован предыдущий фильтр (1414, да) для конкретного местоположения субпикселя, то горизонтальный фильтр, вертикальный фильтр или комбинация горизонтального и вертикального фильтров, последний раз используемых для этого конкретного местоположения субпикселя, могут быть использованы снова для определения значения для конкретного местоположения субпикселя (1415). Однако, если флаг указывает, что должен быть использован другой фильтр (1414, нет) для конкретного местоположения субпикселя, то и о горизонтальном, и о вертикальном фильтрах для местоположения субпикселя может быть сообщено, как описано выше относительно Фиг. 12, используя сигнальные биты.

[0096] На основании сигнальных битов фильтр, или пара фильтров, могут быть выбраны (1408). Для местоположений "a", "b" или "c” субпикселя два сигнальных бита могут быть использованы для идентификации одного из четырех горизонтальных фильтров, связанных с этим конкретным местоположением субпикселя. Для местоположений "d", "h" или "1” субпикселя два сигнальных бита могут быть использованы для идентификации одного из четырех вертикальных фильтров, связанных с этим конкретным местоположением субпикселя. Для местоположений "e", "f", "g", "i", "j", "k", "m", "n" или "o” субпикселя два сигнальных бита могут быть использованы для идентификации одного из четырех пар горизонтальных и вертикальных фильтров. На основании фильтра, или комбинации фильтров, идентифицированных сигнальными битами, значение для местоположения субпикселя определяется подобным же образом, как и описано выше (1409).

[0097] Если заголовок кодированного элемента содержит для модуля 55 предсказания сигнал, что может быть использован третий набор ограничений (1411), то для всех значений субпикселя, определенных для кодированного элемента, фиксированный фильтр, или комбинация фильтров, могут быть использованы только на основании местоположения субпикселя, и не на основании каких-либо сигнальных битов, связанных с местоположением субпикселя (1412). Например, в отличие от набора 2 ограничений, когда каждое местоположение "a", "b" и "c” субпикселя может иметь четыре возможных соответствующих горизонтальных фильтра, с набором 3 ограничений каждое местоположение "a", "b" и "c” субпикселя имеет один соответствующий горизонтальный фильтр. В отличие от набора 2 ограничений, когда каждое местоположение "d", "h" и "1” субпикселя может иметь четыре возможных соответствующих вертикальных фильтра, с набором 3 ограничений каждое местоположение "d", "h" или "1” субпикселя имеет один соответствующий вертикальный фильтр. В отличие от набора 2 ограничений, когда каждое местоположение "e", "f", "g", "i", "j", "k", "m", "n" или "o” субпикселя имеет 4 возможных горизонтально-вертикальных комбинаций фильтра соответственно, с набором 3 ограничений каждое местоположение "e", "f", "g", "i", "j", "k", "m", "n" или "o” субпикселя имеет единственную горизонтально-вертикальную комбинацию фильтра. Притом, что набор 3 ограничений может сократить имеющиеся фильтры, по сравнению с набором 2 ограничений, она также сокращает общее количество битов, необходимых для сообщения о выборе фильтра.

[0098] В соответствии с данным раскрытием, в примерах на Фиг.11-14, горизонтальные фильтры, выбранные для местоположений "a", "b" и "c" субпикселя, и вертикальные фильтры, выбранные для местоположений "d", "h" и "1” субпикселя, могут быть более длинными, чем горизонтальные и вертикальные фильтры, выбранные для "e", "f", "g", "i", "j", "k", "m", "n" и "o". Кроме того, хотя примеры на Фиг. 11-14, в целом предполагающие использование двух сигнальных битов для выбора одного из четырех фильтров, большее или меньшее количество сигнальных битов также может быть использовано. Например, мог бы использоваться один сигнальный бит, чтобы выбрать один из двух фильтров, или три сигнальных бита могут использоваться, чтобы выбрать один из восьми возможных фильтров.

[0099] Хотя данное раскрытие в целом рассматривает методики для использования более длинных фильтров для 1L положений и более коротких фильтров для 2L положений исходя из точности вектора движения в четверть пикселя, методики данного раскрытия могут также быть использованы с другими точностями вектора движения, например, точностями в одну восьмую пикселя и в половину пикселя. Например, используя точность в одну восьмую пикселя, могло бы быть 7 горизонтальных и 7 вертикальных положений пикселя (то есть 14 1L положений) и 49 2L положений.

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

[00101] Кроме того, хотя примеры на Фиг. 11-14 и другие примеры в данном раскрытии описаны в целом как использующие отделимые фильтры для 2L положений, предполагается, что в некоторых воплощениях могли использоваться сигнальные биты для 2L положений, чтобы идентифицировать один или несколько неотделимых фильтров. Как пример, два сигнальных бита, описанные выше для набора 2 ограничений, могут использоваться, чтобы выбрать между четырьмя фильтрами, которые включают в себя два неотделимых фильтра и два отделимых фильтра.

[00102] На Фиг. 15 показана блок-схема последовательности операций, иллюстрирующая способ, который осуществляет аспекты данного раскрытия. Методики на Фиг. 15 могут, например, быть выполнены устройствами, показанными на Фиг. 1, 2, и 10. Способ на Фиг. 15 будет описан на основании Фиг. 2, хотя другие устройства, включая и видео кодер 22, и видео декодер 28 из Фиг. 1 и видео декодер 60 из Фиг. 10, также могут выполнить аспекты способа на Фиг. 15. Модуль 37 MC модуля 32 предсказания получает блок пикселей из памяти 34, которая включает в себя значения целочисленного пикселя, соответствующие положениям целочисленного пикселя в блоке пикселей (1501). Модуль 39 фильтрации вычисляет значения субпикселя, соответствующие положениям субпикселя, связанным с блоком пикселей. Модуль 39 фильтрации вычисляет первое значение субпикселя для положения субпикселя или на общей вертикальной оси с положениями целочисленного пикселя, или на общей горизонтальной оси с положениями целочисленного пикселя (см., например, 1L положения субпикселя на Фиг. 4), применяя первый интерполяционный фильтр, определяющий первый одномерный массив коэффициентов фильтра, соответствующих опорным положениям фильтра (1502). Первый интерполяционный фильтр может, например, содержать фильтр с 8 отводами, где опорные положения фильтра для первого интерполяционного фильтра соответствуют ряду положений целочисленного пикселя. Модуль 39 фильтрации вычисляет второе значение субпикселя, применяя второй интерполяционный фильтр, определяющий второй одномерный массив коэффициентов фильтра, соответствующих горизонтальным опорным положениям фильтра, и применяя третий интерполяционный фильтр, определяющий третий одномерный массив коэффициентов фильтра, соответствующих вертикальным опорным положениям фильтра (1503). Второе значение субпикселя соответствует положению субпикселя не на общей вертикальной оси с положениями целочисленного пикселя и не на общей горизонтальной оси с положениями целочисленного пикселя (см., например, 2L положения субпикселя Фиг. 5). Второй и третий интерполяционные фильтры могут быть, например, каждый, фильтрами с 6 отводами. В соответствии с одним аспектом данного раскрытия первый одномерный массив включает в себя больше коэффициентов фильтра, чем второй одномерный массив, и больше коэффициентов фильтра, чем третий одномерный массив.

[00103] На основании значений субпикселя, например первого значения субпикселя и второго значения субпикселя, модуль 37 MC создает блок предсказания (1504). В частности, модуль 37 MC может создать и вывести, как часть процесса видео кодирования, интерполированный блок предсказания с интерполированными значениями субпикселя. Модуль 32 предсказания может также вывести с блоком предсказания сигнальные биты, которые идентифицируют конкретный интерполяционный фильтр, который необходимо использовать для положения субпикселя (1505). Сигнальные биты могут отдельно идентифицировать второй интерполяционный фильтр и третий интерполяционный фильтр или идентифицировать комбинацию второго интерполяционного фильтра и третьего интерполяционного фильтра. Модуль 32 предсказания может также вывести флаг, который указывает, что интерполяционный фильтр, который необходимо использовать для положения субпикселя, представляет собой интерполяционный фильтр, ранее использовавшийся для положения субпикселя (1506).

[00104] Методики данного раскрытия могут быть осуществлены в широком разнообразии устройств или аппаратов, включая беспроводную телефонную трубку, и интегральную схему (IC) или набор IC (то есть, набор микросхем). Любые компоненты, модули или блоки были описаны для подчеркивания функциональных аспектов и необязательно требуют реализации различными модулями аппаратных средств.

[00105] Соответственно, описанные здесь методики могут быть осуществлены в аппаратных средствах, программном обеспечении, встроенном программном обеспечении или любой их комбинацией. Если это осуществляется в аппаратных средствах, любые признаки, описанные как модули, блоки или компоненты, могут быть осуществлены совместно в интегрированном логическом устройстве, или раздельно, как отдельные, но взаимодействующие логические устройства. Если это осуществляется в программном обеспечении, методики могут быть реализованы, по меньшей мере, частично, посредством считываемого компьютером носителя, содержащего инструкции, которые при выполнении в процессоре, осуществляют один или несколько описанных выше способов. Считываемый компьютером носитель может содержать не временную, считываемую компьютером запоминающую среду и может быть частью компьютерного программного продукта, который может включать в себя материалы упаковки. Считываемая компьютером запоминающая среда может содержать оперативную память (RAM), например синхронную динамическую оперативную память (SDRAM), постоянное запоминающее устройство (ROM), энергонезависимую оперативную память (NVRAM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), ФЛЭШ-память, магнитные или оптические среды хранения данных и т.п. Методики, дополнительно, или альтернативно, могут быть реализованы, по меньшей мере, частично считываемой компьютером средой связи, которая переносит или сообщает код в форме инструкций или структур данных и к которым можно получить доступ, считывать и/или выполнить компьютером.

[00106] Код может выполняться одним или несколькими процессорами, например, одним или несколькими процессорами цифровых сигналов (DSP), универсальными микропроцессорами, прикладными специализированными интегральными микросхемами (ASIC), полевыми программируемыми логическими матрицами (FPGA) или другими эквивалентными интегрированными или дискретными логическими схемами. Соответственно, используемый здесь термин "процессор" может относиться к любой вышеупомянутой структуре или любой другой структуре, подходящей для осуществления описанных здесь методик. Кроме того, в некоторых аспектах, описанные здесь функциональные возможности можно предоставить для специализированных программных модулей или модулей аппаратных средств, сконфигурированных для кодирования и декодирования, или встроенных в комбинированный видео кодек. Кроме того, методики могут быть полностью осуществлены в одной или несколько схемах или логических элементах.

[00107] Были описаны различные аспекты раскрытия. Эти и другие аспекты находятся в объеме притязаний нижеследующей формулы.

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

2. Способ по п.1, причем:
первый интерполяционный фильтр содержит фильтр с 8 отводами;
второй интерполяционный фильтр содержит фильтр с 6 отводами; и
третий интерполяционный фильтр содержит фильтр с 6 отводами.

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

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

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

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

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

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

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

10. Аппарат по п.9, в котором:
первый интерполяционный фильтр содержит фильтр с 8 отводами;
второй интерполяционный фильтр содержит фильтр с 6 отводами; и
третий интерполяционный фильтр содержит фильтр с 6 отводами.

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

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

13. Аппарат по п.12, причем сигнальные биты раздельно идентифицируют второй интерполяционный фильтр и третий интерполяционный фильтр.

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

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

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

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

18. Аппарат по п.9, в котором кодер видео представляет собой видео кодирующее устройство.

19. Аппарат по п.9, в котором кодер видео представляет собой видео декодирующее устройство.

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

21. Аппарат по п.20, в котором:
первый интерполяционный фильтр содержит фильтр с 8 отводами;
второй интерполяционный фильтр содержит фильтр с 6 отводами; и
третий интерполяционный фильтр содержит фильтр с 6 отводами.

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

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

24. Аппарат по п.23, в котором сигнальные биты раздельно идентифицируют второй интерполяционный фильтр и третий интерполяционный фильтр.

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

26. Аппарат по п.20, дополнительно содержащий:
средство для кодирования флага, причем флаг указывает, что интерполяционный фильтр, который должен использоваться для положения субпикселя, представляет собой интерполяционный фильтр, ранее использовавшийся для положения субпикселя.

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

28. Аппарат по п.20, дополнительно содержащий:
средство для декодирования флага, причем флаг указывает, что интерполяционный фильтр, который должен использоваться для положения субпикселя, представляет собой интерполяционный фильтр, ранее использовавшийся для положения субпикселя.

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

30. Считываемый компьютером запоминающий носитель по п.29, причем:
первый интерполяционный фильтр содержит фильтр с 8 отводами;
второй интерполяционный фильтр содержит фильтр с 6 отводами; и
третий интерполяционный фильтр содержит фильтр с 6 отводами.

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

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

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

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

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

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

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



 

Похожие патенты:

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

Изобретение относится к способу и устройству для кодирования/декодирования изображения посредством преобразования изображения в пиксельной области в коэффициенты в частотной области.

Изобретение относится к вычислительной технике. Технический результат заключается в повышении скорости обработки фильтрации.

Группа изобретений относится к средствам обработки изображений. Техническим результатом является повышение эффективности кодирования.

Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности кодирования.

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

Изобретение относится к обработке изображений. Техническим результатом является повышение эффективности кодирования изображений с прогнозированием.

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

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

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

Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности декодирования. Способ декодирования, в котором осуществляют доступ к видеокартинке, которая включает в себя многочисленные картинки, объединенные в единую картинку, причем видеокартинка является частью принятого видеопотока; осуществляют доступ к информации, которая является частью принятого видеопотока, причем подвергнутая доступу информация указывает, каким образом объединены многочисленные картинки в подвергнутой доступу видеокартинке, и включает в себя информацию о дискретизации и информацию о пространственном перемежении, которая включает в себя информацию о соотношении, которая указывает тип соотношения, которое существует между многочисленными картинками, а также указывает, что многочисленные картинки являются стереоскопическими проекциями изображения, многочисленные картинки не связаны, многочисленные картинки являются двухмерными изображениями и их связанной картой глубин (2D+Z), многочисленные картинки являются многочисленными наборами 2D+Z (MVD), многочисленные картинки представляют изображения в формате видео с многослойной глубиной (LDV) или многочисленные картинки представляют изображения в двух наборах LDV (DES); и декодируют видеокартинку для предоставления декодированного представления по меньшей мере одной из многочисленных картинок. 9 з.п. ф-лы, 41 ил., 10 табл.

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

Изобретение относится к области электросвязи. Технический результат - повышение установления синхронизации цифрового водяного знака электронного изображения (ЭИ) при разделении ЭИ со встроенным цифровым водяным знаком на составные части произвольного размера. Технический результат достигается тем, что у отправителя разделяют ЭИ на макроблоки, каждый макроблок разделяют на N≥2 блоков, из которых выбирают K<N блоков синхронизации, вычисляют подпоследовательности синхронизации передачи и встраивают в позволяющие встраивание блоки синхронизации, у получателя устанавливают синхронизацию цифрового водяного знака в принятом ЭИ, для чего начиная с выбранной начальной точки получателя принятое ЭИ последовательно разделяют на макроблоки и блоки, из которых выбирают блоки предполагаемой синхронизации, извлекают из них проверочные подпоследовательности и объединяют в проверочную последовательность, которую побитно сравнивают со всеми сдвигами вычисленной последовательности синхронизации приема, принятое получателем ЭИ считают ЭИ с установленной синхронизацией цифрового водяного знака, соответствующей предполагаемой последовательности синхронизации с наименьшим числом несовпадений. Заявленный способ может быть использован для повышения вероятности установления синхронизации цифрового водяного знака ЭИ, разделенного на составные части произвольного размера, а также для исключения появления визуально заметных искажений, вызванных встраиванием в блоки ЭИ с практически неизменными статистическими характеристиками подпоследовательностей синхронизации передач. 3 з.п. ф-лы, 9 ил.

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

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

Изобретение относится к визуализации контента устройством визуализации, например телевизором, подключенным к сети DLNA (Альянс домашних цифровых сетей). Техническим результатом является уменьшение прерываний контента, который визуализируется на устройствах визуализации, подключенных к сети, в случае «направления» к ним файлов от других устройств сети. Предложено устройство (130) визуализации, подключенное к сети, которое принимает команду для воспроизведения элемента контента и/или элемента контента, который должен быть воспроизведен от другого устройства (110) сети. Вместо автоматического прерывания текущих действий визуализации устройства визуализации для воспроизведения элемента контента элемент контента добавляют в список (140) запланированных элементов контента. 3 н. и 10 з.п. ф-лы, 6 ил.

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

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

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

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