Поддержка интерполяционного фильтра для субпиксельного разрешения в видеокодировании
Иллюстрации
Показать всеИзобретение относится к кодированию и декодированию цифрового видео и более конкретно к технологиям фильтрации, примененным для генерирования данных предсказания, используемых в кодировании и декодировании видео. Техническим результатом является повышение точности предсказывающих данных, использованных в течение дробной интерполяции, что может улучшить предсказывающие данные целых блоков пикселей. Указанный технический результат достигается тем, что предложены способы фильтрации, примененные кодером и декодером в течение стадии предсказания процесса кодирования и/или декодирования видео, включающие в себя полезную поддержку двенадцатипиксельного фильтра, которая может быть использована для интерполяции, способы, которые используют симметрию коэффициентов и симметрию пикселей для уменьшения количества данных, которые должны быть отправлены между кодером и декодером, чтобы сформировать поддержку фильтра для интерполяции, и способы для фильтрации данных в положениях целых пикселей способом, который подобен субпиксельной интерполяции. Другие аспекты этого раскрытия касаются способов для кодирования информации в битовом потоке, чтобы передать тип использованного фильтра, и возможно использованные коэффициенты фильтра. Также описано кодирование с предсказанием для коэффициентов фильтра. 4 н. и 35 з.п. ф-лы, 29 ил.
Реферат
Эта заявка испрашивает приоритет Предварительной заявки на патент США №61/044020, поданной 10 апреля 2008 г., Предварительной заявки на патент США №61/044023, поданной 10 апреля 2008 г., Предварительной заявки на патент США №61/044240, поданной 11 апреля 2008 г., и Предварительной заявки на патент США №61/057373, поданной 30 мая 2008 г., все содержимое которых включено сюда путем ссылки.
Область техники, к которой относится изобретение
Это раскрытие относится к кодированию и декодированию цифрового видео и более конкретно к технологиям фильтрации, примененным для генерирования данных предсказания, используемых в кодировании и декодировании видео.
Уровень техники
Возможности цифрового видео могут быть включены в широкий диапазон устройств, включающий в себя цифровые телевизоры, цифровые системы прямого вещания, беспроводные системы вещания, персональные цифровые помощники (PDAs), портативные или настольные компьютеры, цифровые камеры, цифровые записывающие устройства, видеоигровые устройства, видеоигровые приставки, сотовые или спутниковые радиотелефоны и тому подобное. Цифровые видеоустройства реализуют способы видеосжатия, такие как те, которые описаны в стандартах, заданных MPEG-2, MPEG-4 или ITU-T H.264/MPEG-4, Part 10, Усовершенствованное видеокодирование (AVC), чтобы передавать и принимать цифровую видеоинформацию более эффективно. Способы видеосжатия могут осуществлять пространственное предсказание и/или временное предсказание для снижения или устранения избыточности, присущей видеопоследовательностям.
Межблочное кодирование на основе блоков - очень полезная технология, которая опирается на временное предсказание для снижения или устранения временной избыточности между видеоблоками последовательных кодированных единиц видеопоследовательности. Кодированные единицы могут содержать видеокадры, секции видеокадров, группы изображений или другую заданную единицу закодированных видеоблоков. Для внешнего кодирования видеокодер осуществляет оценку движения и компенсацию движения для отслеживания перемещения соответствующих видеоблоков двух или более соседних кодированных единиц. Оценка движения генерирует векторы движения, которые указывают смещение видеоблоков относительно соответствующих видеоблоков предсказаний в одном или более опорных кадрах или других кодированных единицах. Компенсация движения использует векторы движения для генерирования видеоблоков предсказаний из одного или более опорных кадров или других кодированных единиц. После компенсации движения остаточные видеоблоки образуют вычитанием видеоблоков предсказаний из исходных видеоблоков, которые кодируют.
Видеокодер может также применять процессы преобразования, квантования и статистического кодирования для дополнительного снижения скорости передачи битов, связанной с передачей остаточных блоков. Способы преобразования могут содержать дискретные косинусные преобразования (DCTs) или концептуально подобные процессы. С другой стороны, могут быть использованы вейвлет-преобразования, целочисленные преобразования или другие типы преобразований. В DCT-процессе, в качестве примера, набор значений пикселей переводят в коэффициенты преобразования, которые могут представлять энергию значений пикселей в частотной области. К коэффициентам преобразования применяют квантование, что обычно заключается в процессе, который уменьшает число битов, связанных с любым данным коэффициентом преобразования. Статистическое кодирование содержит один или более процессов, которые вместе сжимают последовательность режимов кодирования, информацию движения, структуры кодированных блоков и квантованные коэффициенты преобразования. Примеры статистического кодирования включают в себя, но не ограничены, контекстно-адаптивным кодированием с переменной длиной (CAVLC) и контекстно-адаптивным двоичным арифметическим кодированием (CABAC).
Кодированный видеоблок может быть представлен информацией предсказания, которая может быть использована для создания или идентификации предсказывающего блока, и остаточным блоком данных, указывающим разницу между блоком, который кодируют, и предсказывающим блоком. Информация предсказания может содержать один или более векторов движения, которые используют для идентификации предсказывающего блока данных. При наличии векторов движения декодер способен восстанавливать предсказывающие блоки, которые были использованы для кодирования остаточных блоков. Таким образом, при наличии набора остаточных блоков и набора векторов движения (и возможно некоторого дополнительного синтаксиса), декодер может восстановить видеокадр, который был изначально закодирован. Внешнее кодирование на основе оценки движения и компенсации движения, может достигать очень хорошего сжатия, потому что последовательные видеокадры или другие типы кодированных единиц часто очень похожи. Закодированная видеопоследовательность может содержать блоки остаточных данных, векторы движения и возможно другие типы синтаксиса.
Интерполяционные способы были разработаны для того, чтобы улучшить уровень сжатия, которого можно достичь во внешнем кодировании. В этом случае предсказывающие данные, сгенерированные в течение компенсации движения, которую используют для кодирования видеоблока, могут быть интерполированы из пикселей видеоблоков видеокадра или другой кодированной единицы, использованной в оценке движения. Интерполяцию часто осуществляют для генерирования предсказывающих значений полупикселей и предсказывающих значений четвертьпикселей. Значения полу- и четвертьпикселей связаны с положениями субпикселей. Векторы дробного движения могут быть использованы для идентификации видеоблоков с субпиксельным разрешением для того, чтобы запечатлеть дробное перемещение в видеопоследовательности и тем самым предоставлять предсказывающие блоки, которые более похожи на видеоблоки, которые кодируют, чем целые видеоблоки.
Сущность изобретения
В общем, это раскрытие описывает способы фильтрации, примененные кодером и декодером в течение стадии предсказания процесса кодирования и/или декодирования видео. Описанные способы фильтрации могут повысить точность предсказывающих данных, использованных в течение дробной интерполяции, и в некоторых случаях могут улучшить предсказывающие данные целых блоков пикселей. Существует несколько аспектов этого раскрытия, включающих в себя полезную поддержку двенадцатипиксельного фильтра, которая может быть использована для интерполяции, способы, которые используют симметрию коэффициентов и симметрию пикселей для уменьшения количества данных, которые должны быть отправлены между кодером и декодером, чтобы сформировать поддержку фильтра для интерполяции, и способы для фильтрации данных в положениях целых (целочисленных) пикселей способом, который подобен субпиксельной интерполяции. Другие аспекты этого раскрытия касаются способов для кодирования информации в битовом потоке, чтобы передать тип фильтра и возможно использованные коэффициенты фильтра. Также описаны способы предсказывающего кодирования для коэффициентов фильтра. Эти и другие аспекты этого раскрытия станут ясны из нижеприведенного описания.
В одном примере это раскрытие предоставляет способ, содержащий этапы, на которых получают блок пикселей, в котором блок пикселей включает в себя значения целых пикселей, соответствующие позициям целых пикселей в блоке пикселей, вычисляют значения субпикселей для позиций субпикселей, связанных с блоком пикселей, на основе значений целых пикселей, в котором вычисление значений субпикселей содержит применение интерполирующего фильтра, который задает двумерную матрицу позиций поддержки фильтра, соответствующую набору из двенадцати или более позиций целых пикселей, которые окружают позиции субпикселей в радиальной форме, и генерируют блок предсказаний на основе, по меньшей мере, нескольких значений субпикселей.
В другом примере это раскрытие предоставляет устройство, содержащее видеокодер, который получает блок пикселей, в котором блок пикселей включает в себя значения целых пикселей, соответствующие целочисленным позициям пикселей в блоке пикселей, вычисляет значения субпикселей для позиций субпикселей, связанных с блоком пикселей, на основе значений целых пикселей, в котором видеокодер применяет интерполирующий фильтр, который задает двумерную матрицу позиций поддержки фильтра, соответствующую набору из двенадцати или более позиций целых пикселей, которые окружают позиции субпикселей в радиальной форме, и генерирует блок предсказаний на основе, по меньшей мере, нескольких значений субпикселей.
В другом примере это раскрытие предоставляет устройство, содержащее средство для получения блока пикселей, в котором блок пикселей включает в себя значения целых пикселей, соответствующие целочисленным позициям пикселей в блоке пикселей, средство для вычисления значений субпикселей для позиций субпикселей, связанных с блоком пикселей, на основе значений целых пикселей, в котором средство для вычисления значений субпикселей содержит средство для применения интерполирующего фильтра, который задает двумерную матрицу позиций поддержки фильтра, соответствующую набору из двенадцати или более позиций целых пикселей, которые окружают позиции субпикселей в радиальной форме, и средство для генерирования блока предсказаний на основе, по меньшей мере, нескольких значений субпикселей.
Способы, описанные в этом раскрытии, могут быть реализованы в аппаратном обеспечении, программном обеспечении, встроенных программах или любом их сочетании. Если осуществлено в программном обеспечении, программное обеспечение может быть выполнено в одном или более процессорах, таких как микропроцессор, интегральная схема специального применения (ASIC), программируемая пользователем вентильная матрица (FPGA) или цифровой сигнальный процессор (DSP). Программное обеспечение, которое выполняет эти способы, может быть изначально сохранено в компьютерочитаемой среде и загружено и выполнено в процессоре.
Соответственно, это раскрытие также предусматривает компьютерочитаемую запоминающую среду, содержащую команды, которые, при выполнении процессором, заставляют процессор получать блок пикселей, в котором блок пикселей включает в себя значения целых пикселей, соответствующие целочисленным позициям пикселей в блоке пикселей, вычислять значения субпикселей для позиций субпикселей, связанных с блоком пикселей, на основе значений целых пикселей, в котором в вычислении значений субпикселей команды заставляют процессор применять интерполирующий фильтр, который задает двумерную матрицу позиций поддержки фильтра, соответствующую набору из двенадцати или более целочисленных позиций пикселей, которые окружают позиции субпикселей в радиальной форме, и генерировать блок предсказаний на основе, по меньшей мере, нескольких значений субпикселей.
Подробности одного или более аспектов раскрытия изложены в сопроводительных чертежах и нижеприведенном описании. Другие признаки, задачи и преимущества способов, описанных в этом раскрытии, будут ясны из описания и чертежей и из формулы изобретения.
Краткое описание чертежей
Фиг.1 является блок-схемой, иллюстрирующей одну примерную систему кодирования и декодирования видео, которая может реализовать способы этого раскрытия.
Фиг.2 является блок-схемой, иллюстрирующей пример видеокодера, который может осуществлять способы фильтрации в соответствии с этим раскрытием.
Фиг.3 является концептуальной схемой, иллюстрирующей позиции целых пикселей, связанные с данными предсказания, и позиции субпикселей, связанные с интерполированными данными предсказания.
Фиг.4 является концептуальной схемой, иллюстрирующей поддержку 12-пиксельного фильтра в отношении девяти положений субпикселей.
Фиг.5 является концептуальной схемой, иллюстрирующей поддержку фильтра горизонтальных 6 пикселей в отношении трех горизонтальных положений субпикселей и поддержку фильтра вертикальных 6 пикселей в отношении трех вертикальных положений субпикселей.
Фиг.6 является концептуальной схемой, иллюстрирующей поддержку фильтра пять на пять пикселей, для фильтрации положений целых пикселей.
Фиг.7 является концептуальной схемой, иллюстрирующей позиции четырех целых пикселей и позиций пятнадцати субпикселей со штриховкой позиций группы пикселей, которые могут использовать симметрию пикселей для коэффициентов фильтра в соответствии с этим раскрытием.
Фиг.8 является концептуальной схемой, иллюстрирующей позиции поддержки шести горизонтальных линейных пикселей относительно субпикселя, со штриховкой, которая показывает симметрию коэффициентов.
Фиг.9 является концептуальной схемой, иллюстрирующей позиции поддержки шести горизонтальных линейных пикселей относительно субпикселя, со штриховкой, которая показывает отсутствие какой-либо симметрии коэффициентов.
Фиг.10 является концептуальной схемой, иллюстрирующей позиции поддержки шести вертикальных линейных пикселей поддержки относительно субпикселя, со штриховкой, которая показывает симметрию коэффициентов.
Фиг.11 является концептуальной схемой, иллюстрирующей позиции поддержки шести вертикальных линейных пикселей относительно субпикселя, со штриховкой, которая показывает отсутствие какой-либо симметрии коэффициентов.
Фиг.12 является концептуальной схемой, иллюстрирующей позиции поддержки двенадцати двумерных пикселей относительно субпикселя, со штриховкой, которая показывает отсутствие какой-либо симметрии коэффициентов.
Фиг.13 является концептуальной схемой, иллюстрирующей позиции поддержки двенадцати двумерных пикселей относительно субпикселя, со штриховкой, которая показывает симметрию коэффициентов.
Фиг.14 является концептуальной схемой, иллюстрирующей позиции поддержки двенадцати двумерных пикселей относительно субпикселя, со штриховкой, которая показывает симметрию коэффициентов.
Фиг.15 является концептуальной схемой, иллюстрирующей позиции поддержки двенадцати двумерных пикселей относительно субпикселя, со штриховкой, которая показывает симметрию коэффициентов.
Фиг.16 является блок-схемой, иллюстрирующей пример видеодекодера, который может декодировать видеопоследовательность, которую закодировали описанным здесь способом.
Фиг.17 является блок-схемой последовательности операций способа, иллюстрирующей пример работы видеокодера, который использует поддержку двенадцатипиксельного фильтра в соответствии с этим раскрытием.
Фиг.18 является блок-схемой последовательности операций, иллюстрирующей пример работы видеодекодера, который использует поддержку двенадцатипиксельного фильтра в соответствии с этим раскрытием.
Фиг.19 является блок-схемой последовательности операций, иллюстрирующей пример работы видеокодера, который использует симметрию коэффициентов и симметрию пикселей в соответствии с этим раскрытием.
Фиг.20 является блок-схемой последовательности операций способа, иллюстрирующей пример работы видеодекодера, который использует симметрию коэффициентов и симметрию пикселей в соответствии с этим раскрытием.
Фиг.21 является блок-схемой последовательности операций, иллюстрирующей пример работы видеокодера, который использует фильтрацию положений целых пикселей для генерирования скорректированных значений целых пикселей в соответствии с этим раскрытием.
Фиг.22 является блок-схемой последовательности операций, иллюстрирующей пример работы видеодекодера, который использует фильтрацию положений целых пикселей для генерирования скорректированных значений целых пикселей в соответствии с этим раскрытием.
Фиг.23 является блок-схемой последовательности операций, иллюстрирующей способ интерполяции, определяемый искажением в зависимости от скорости передачи, для видеокодирования на основе неперестраиваемого фильтра или адаптивного фильтра.
Фиг.24 является блок-схемой последовательности операций, иллюстрирующей способ для кодирования коэффициентов фильтра, используя кодирование с предсказанием.
Фиг.25 является другой блок-схемой последовательности операций, иллюстрирующей способ для кодирования коэффициентов фильтра, используя кодирование с предсказанием.
Фиг.26 является блок-схемой последовательности операций, иллюстрирующей способ для декодирования коэффициентов фильтра, используя кодирование с предсказанием.
Фиг.27 и фиг.28 являются концептуальными графиками, иллюстрирующими коэффициенты фильтра, которые могут быть кодированы с предсказанием.
Фиг.29 является иллюстративным примером матрицы коэффициентов фильтра целых пикселей, для которых способы предсказания могут быть использованы для кодирования.
Подробное описание
Это раскрытие описывает способы фильтрации, примененные кодером и декодером в течение стадии предсказания процесса кодирования и/или декодирования видео. Описанные способы фильтрации могут повысить точность предсказывающих данных, использованных в течение дробной интерполяции, и в некоторых случаях могут улучшить предсказывающие данные целых блоков пикселей. Существует несколько аспектов этого раскрытия, включающих в себя полезную поддержку двенадцатипиксельного фильтра, которая может быть использована для интерполяции, способы, которые используют симметрию коэффициентов и симметрию пикселей для уменьшения количества данных, которое должно быть отправлено между кодером и декодером, чтобы сформировать поддержку фильтра для интерполяции, и способы для фильтрации данных в положениях целых (целочисленных положений) пикселей способом, который подобен субпиксельной интерполяции. Эти и другие способы подробно описаны ниже.
Фиг.1 является блок-схемой, иллюстрирующей одну примерную систему 10 кодирования и декодирования видео, которая может быть использована для реализации одного или более способов этого раскрытия. Как показано на фиг.1, система 10 включает в себя устройство 12 источника, которое передает закодированный видеосигнал устройству 16 назначения через канал 15 связи. Устройство 12 источника и устройство 16 назначения могут содержать любые устройства из широкого диапазона. В некоторых случаях устройство 12 источника и устройство 16 назначения содержат беспроводные устройства связи, такие как беспроводные микротелефонные трубки, так называемые сотовые или спутниковые радиотелефоны или любые беспроводные устройства, которые могут обмениваться видеоинформацией по каналу 15 связи, и в этом случае канал 15 связи является беспроводным. Однако способы этого раскрытия, которые касаются фильтрации и генерации предсказывающих данных в течение кодирования с предсказанием, не обязательно ограничены беспроводными применениями или установками. Способы могут также быть полезны в широком диапазоне других установок и устройств, включая устройства, которые осуществляют связь через физические провода, оптические волокна или другие физические или беспроводные среды. Кроме этого, способы кодирования и декодирования могут также быть применены в автономном устройстве, которое не обязательно осуществляет связь с любым другим устройством.
В примере фиг.1, устройство 12 источника может включать в себя видеоисточник 20, видеокодер 22, модулятор/демодулятор (модем) 23 и передатчик 24. Устройство 16 назначения может включать в себя приемник 26, модем 27, видеодекодер 28 и устройство 30 отображения. Согласно этому раскрытию видеокодер 22 устройства 12 источника может быть выполнен с возможностью применения одного или более способов этого раскрытия как части процесса кодирования видео. Подобно этому видеодекодер 28 устройства 16 назначения может быть выполнен с возможностью применения одного или более способов этого раскрытия как части процесса декодирования видео.
В свою очередь, иллюстрированная система 10 фиг.1 является только примерной. Различные способы этого раскрытия могут быть осуществлены любым кодирующим устройством, которое поддерживает кодирование с предсказанием на основе блоков, или любым декодирующим устройством, которое поддерживает декодирование с предсказанием на основе блоков. Устройство 12 источника и устройство 16 назначения являются только примерами таких кодирующих устройств, в которых устройство 12 источника генерирует кодированные видеоданные для передачи устройству 16 назначения. В некоторых случаях устройства 12, 16 могут работать по существу симметричным образом так, что каждое из устройств 12, 16 включает в себя компоненты кодирования и декодирования видео. Исходя из этого система 10 может поддерживать одностороннюю или двустороннюю видеопередачу между видеоустройствами 12, 16, например, для видеопотока, воспроизведения видео, видеовещания или видеотелефонии.
Видеоисточник 20 устройства 12 источника может включать в себя устройство видеозахвата, такое как видеокамера, видеоархив, содержащий ранее захваченное видео, или видеопоток от поставщика видеосодержимого. В качестве альтернативы видеоисточник 20 может генерировать данные на основе компьютерной графики в качестве видео от источника или сочетание прямой видеопередачи, заархивированного видео и сгенерированного компьютером видео. В некоторых случаях, если видеоисточник 20 является видеокамерой, то устройство 12 источника и устройство 16 назначения могут образовать так называемые камерофоны или видеотелефоны. В каждом случае захваченный, предварительно захваченный или сгенерированный компьютером видеосигнал может быть закодирован видеокодером 22. Закодированная видеоинформация может затем быть модулирована модемом 23 согласно стандарту связи, например, такому как многостанционный доступ с кодовым разделением (CDMA) или другому стандарту связи, и передана устройству 16 назначения через передатчик 24 и канал 15 связи. Модем 23 может включать в себя различные смесители, фильтры, усилители или другие компоненты, предназначенные для модуляции сигнала. Передатчик 24 может включать в себя схемы, предназначенные для передачи данных, включающие в себя усилители, фильтры и одну или более антенн.
Приемник 26 устройства 16 назначения принимает информацию по каналу 15 связи, и модем 27 демодулирует информацию. Подобно передатчику 24, приемник 26 может включать в себя схемы, предназначенные для приема данных, включающие усилители, фильтры и одну или более антенн. В некоторых случаях передатчик 24 и/или приемник 26 могут быть включены в единый компонент приемопередатчика, который включает в себя как принимающую, так и передающую схемы. Модем 27 может включать в себя различные смесители, фильтры, усилители или другие компоненты, предназначенные для демодуляции сигнала. В некоторых случаях модемы 23, 27 могут включать в себя компоненты для выполнения как модуляции, так и демодуляции.
В свою очередь, процесс кодирования видео, осуществленный видеокодером 22, может реализовывать одну или более технологий, описанных здесь, в течение компенсации движения. Процесс декодирования видео, осуществленный видеодекодером 28, может также осуществлять такие способы в течение своей стадии компенсации движения процесса декодирования. Термин «кодер» используют здесь для обозначения специализированного компьютерного устройства или устройства, которое осуществляет кодирование видео или декодирование видео. Термин «кодер» в целом относится к любому видеокодеру, видеодекодеру или комбинированному кодеру/декодеру (кодеку). Термин «кодирование» относится к преобразованию в код или декодированию. Устройство 30 отображения отображает декодированные видеоданные пользователю и может содержать любое из различных устройств отображения, таких как электронно-лучевая трубка (ЭЛТ), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или другой тип устройства отображения.
В примере фиг.1, канал 15 связи может содержать любую беспроводную или проводную среду, такую как радиочастотный (РЧ) спектр или одна или более физических линий передачи или любое сочетание беспроводных и проводных сред. Канал 15 связи может образовывать часть сети с коммутацией пакетов, такой как локальная сеть, территориально-распределительная сеть или глобальная сеть, такая как Интернет. Канал 15 связи обычно представляет любую подходящую среду связи или совокупность разных сред связи для передачи видеоданных от устройства 12 источника устройству 16 назначения. Канал 15 связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть полезно, чтобы способствовать передаче от устройства 12 источника устройству 16 назначения.
Видеокодер 22 и видеодекодер 28 могут работать согласно стандарту видеосжатия, такому как стандарт ITU-T H.264, по-другому описанный как MPEG-4, Part 10, Усовершенствованное видеокодирование (AVC). Способы этого раскрытия, однако, не ограничены любым конкретным стандартом видеокодирования. Несмотря на то, что не показано на фиг.1, в некоторых аспектах видеокодер 22 и видеодекодер 28 могут каждый быть объединены со звуковым кодером и декодером и могут включать в себя соответствующие блоки мультиплексор-демультиплексор или другое аппаратное обеспечение, программное обеспечение, чтобы обращаться с кодированием и звуковых сигналов, и видеосигналов в общем потоке данных или раздельных потоках данных. Если это применимо, блоки мультиплексор-демультиплексор могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол дейтаграмм пользователя (UDP).
Видеокодер 22 и видеодекодер 28 каждый может быть реализован как один или более микропроцессоров, цифровых сигнальных процессоров (DSPs), интегральных схем специального применения (ASICs), программируемых пользователем вентильных матриц (FPGAs), дискретная логика, программное обеспечение, аппаратное обеспечение, встроенные программы или любое их сочетание. Каждый из видеокодера 22 и видеодекодера 28 может быть включен в один или более кодеров и декодеров, любой из которых может быть интегрирован как часть комбинированного кодека, который предоставляет возможности кодирования и декодирования в соответственном мобильном устройстве, абонентском устройстве, вещательном устройстве, сервере или тому подобном.
Видеопоследовательность типично включает в себя ряд видеокадров. Видеокодер 22 работает с видеоблоками в отдельных видеокадрах для того, чтобы кодировать видеоданные. Видеоблоки могут иметь фиксированные или меняющиеся размеры и могут отличаться по размеру согласно заданному стандарту кодирования. Каждый видеокадр включает в себя ряд секций. Каждая секция может включать в себя ряд макроблоков, которые могут быть размещены в подблоках. В качестве примера, стандарт ITU-T H.264 поддерживает внутреннее предсказание в различных размерах блоков, таких как 16 на 16, 8 на 8 или 4 на 4, для компонентов яркости и 8×8 для компонентов цветности, а также внешнее предсказание в различных размерах блоков, таких как 16 на 16, 16 на 8, 8 на 16, 8 на 8, 8 на 4, 4 на 8 и 4 на 4, для компонентов яркости и соответствующих масштабных размерах для компонентов цветности. Видеоблоки могут содержать блоки данных пикселей или блоки коэффициентов преобразования, например, после процесса преобразования, такого как дискретное косинусное преобразование (DCT) или концептуально подобного процесса преобразования.
Меньшие видеоблоки могут предоставлять более высокое разрешение и могут быть использованы для положений видеокадра, которые включают в себя высокие уровни детализации. Обычно макроблоки и различные подблоки могут считаться видеоблоками. Кроме этого, секция может считаться рядом видеоблоков, таких как макроблоки и/или подблоки. Каждая секция может быть независимо декодируемой единицей видеокадра. С другой стороны, кадры сами могут быть декодируемыми единицами или другие участки кадра могут быть заданы как декодируемые единицы. Термин «кодируемая единица» относится к любой независимо декодируемой единице видеокадра, такой как весь кадр, секция кадра или другая независимо декодируемая единица, заданная согласно использованному способу кодирования.
Чтобы закодировать видеоблоки видеокодер 22 осуществляет внутреннее или внешнее предсказание для генерирования блока предсказаний. Видеокодер 22 вычитает блоки предсказаний из исходных видеоблоков, которые были закодированы, чтобы генерировать остаточные блоки. Таким образом, остаточные блоки указывают разность между блоками, которые кодируют, и блоками предсказаний. Видеокодер 22 может осуществлять преобразование на остаточных блоках для генерирования блоков коэффициентов преобразования. После кодирования с предсказанием на основе внутреннего или внешнего предсказания и способов преобразования, видеокодер 22 осуществляет квантование. Квантование, в общем, относится к процессу, в котором коэффициенты квантуют, чтобы по возможности уменьшить количество данных, использованных для представления коэффициентов. После квантования, статистическое кодирование может быть выполнено согласно способу статистического кодирования, такого как контекстно-адаптивное кодирование с переменной длиной (CAVLC) или контекстно-адаптивное двоичное арифметическое кодирование (CABAC). Более подробная информация о каждом этапе процесса кодирования, осуществленного видеокодером 22, будет описана более подробно ниже на фиг.2.
В устройстве 16 назначения видеодекодер 28 принимает закодированные видеоданные. Видеодекодер 28 статистически декодирует принятые видеоданные согласно способу статистического кодирования, такому как CAVLC или CABAC для получения квантованных коэффициентов. Видеодекодер 28 применяет обратное квантование (деквантование) и функции обратного преобразования для восстановления остаточного блока в пиксельной области. Видеодекодер 28 также генерирует блок предсказаний на основе информации управления или информации синтаксиса (например, режима кодирования, векторов движения, синтаксиса, который задает коэффициенты фильтра, и тому подобного), включенной в закодированные видеоданные. Видеодекодер 28 суммирует блок предсказаний с восстановленным остаточным блоком, чтобы произвести восстановленный видеоблок для отображения. Более подробная информация о каждом этапе процесса декодирования, осуществленного видеодекодером 28, будет описана более подробно ниже на фиг.16.
Согласно способам этого раскрытия, видеокодер 22 и видеодекодер 28 могут использовать один или более интерполяционных способов фильтрации во время компенсации движения. В частности, согласно одному аспекту этого раскрытия, видеокодер 22 и/или видеодекодер 28 могут получать блок пикселей, в котором блок пикселей включает в себя значения целых пикселей, соответствующие целочисленным позициям пикселей в блоках пикселей, вычислять значения субпикселей для позиций субпикселей, связанных с блоком пикселей, на основе значений целых пикселей, в котором вычисление позиций субпикселей содержит применение интерполирующего фильтра, который задает двумерную матрицу позиций поддержки фильтра, соответствующую набору из двенадцати или более позиций целых пикселей, которые окружают позиции субпикселей в радиальной форме, и генерировать блок предсказаний на основе, по меньшей мере, нескольких значений субпикселей. Пример двумерной матрицы позиций поддержки фильтра, соответствующей набору из двенадцати или более позиций целых пикселей, объяснен более подробно ниже.
Согласно другому аспекту этого раскрытия, видеокодер 22 и/или видеодекодер 28 могут использовать аспекты симметрии для того, чтобы уменьшить количество данных, которое должно передаваться между устройством 12 источника и устройством 16 назначения для процесса передачи коэффициентов фильтра, использованных в интерполяции. Видеокодер 22 может определять восемь наборов коэффициентов фильтра для пятнадцати разных положений субпикселей, где восемь наборов коэффициентов фильтра генерируют на основе симметрии коэффициентов и симметрии пикселей из числа пятнадцати положений субпикселей, и выводить восемь наборов коэффициентов фильтра для другого устройства как часть закодированного битового потока. Таким образом, восемь наборов наряду с аспектами симметрии коэффициентов и симметрии пикселей могут задавать все из коэффициентов фильтра для всех пятнадцати позиций полупиксельных и четвертьпиксельных пикселей. Более того, симметрия пикселей может существовать между разными одними из пятнадцати положений субпикселей в вертикальной размерности и в горизонтальной размерности, но симметрия пикселей может не существовать в диагональной размерности, по меньшей мере, для нескольких из пятнадцати положений субпикселей наборов. Это отсутствие симметрии пикселей в диагональной размерности, по меньшей мере, для нескольких из пятнадцати положений может улучшить интерполяции и качество видео в кодировании и декодировании видео.
Видеодекодер 28 устройства 16 назначения может принимать восемь наборов коэффициентов фильтра как часть закодированного битового видеопотока, генерировать пятнадцать наборов коэффициентов фильтра, соответствующих пятнадцати разным положениям субпикселей, на основе восьми наборов коэффициентов фильтра, генерировать интерполированные предсказывающие данные для декодирования видео на основе одного из пятнадцати наборов коэффициентов фильтра, где интерполированные предсказывающие данные соответствуют одному из пятнадцати разных положений субпикселей, и декодировать один или более видеоблоков на основе интерполированных предсказывающих данных.
Согласно другому аспекту этого раскрытия, видеокодер 22 и/или видеодекодер 28 может использовать интерполяционноподобную фильтрацию в отношении позиций целых пикселей для того, чтобы генерировать скорректированные значения целых пикселей. Такая интерполяционноподобная фильтрация может улучшить сжатие особенно в течение изменений освещенности, постепенных появлений изображения или постепенных исчезновений изображения, может устранить шум и способствовать увеличению резкости кадра изображения и может помочь улучшить кодирование малого перемещения предмета между последовательными видеокадрами, в частности, когда симметрия не наложена на коэффициенты фильтра.
Интерполяционноподобные способы фильтрации видеокодера 22 и/или видеодекодера 28 могут включать в себя получение блоков пикселей, где блоки пикселей включают в себя значения целых пикселей, соответствующие целочисленным позициям пикселей в блоках пикселей, фильтрацию значений целых пикселей на основе других значений целых пикселей в блоке пикселей для генерирования скорректированных значений целых пикселей, где скорректированные значения целых пикселей соответствуют позициям целых пикселей, и генерирование блока предсказаний на основе скорректированных значений целых пикселей.
Согласно другому аспекту этого раскрытия, видеокодер 22 может генерировать первые интерполированные предсказывающие данные для кодирования видеоданных на основе первого интерполирующего фильтра, генерировать вторые интерполированные предсказывающие данные для кодирования видео видеоданных на основе второго интерполирующего фильтра, выбирать между первыми интерполированными предсказывающими данными и вторыми интерполированными предсказывающими данными на основе анализа искажения в зависимости от скорости передачи, кодировать видеоданные на основе выбора и кодировать синтаксис для указания выбора. Первый интерполирующий фильтр может содержать неперестраиваемый интерполирующий фильтр, и второй интерполирующий фильтр может содержать адаптивный интерполирующий фильтр, но это раскрытие не обязательно ограничено этими примерами.
Кроме того, дополнительные интерполирующие фильтры могут также быть применены для генерирования дополнительных интерполированных предсказывающих данных, которые могут также быть учтены в анализе искажения в зависимости от скорости передачи. Другими словами, способы этого раскрытия не о