Способ интерполяции значений подпикселов

Иллюстрации

Показать все

Изобретение относится к способу интерполяции значений под-пикселов при кодировании и декодировании данных. Техническим результатом является собственно создание усовершенствованного способа интерполяции значений под-пикселов при кодировании и декодировании данных. Предложен способ интерполяции при кодировании видеоданных, в котором изображение, содержащее пикселы, упорядоченные по строкам и столбцам и представленные значениями, имеющими заданный динамический диапазон, причем пикселы в строках находятся в целых горизонтальных местоположениях, а пикселы в столбцах находятся в целых вертикальных местоположениях, интерполируют так, чтобы генерировать значения под-пикселов в дробных горизонтальных и вертикальных местоположениях, при этом способ содержит следующие этапы: а) когда требуются значения для под-пикселов в полуцелых горизонтальных местоположениях и целых вертикальных местоположениях, и в целых горизонтальных местоположениях и полуцелых вертикальных местоположениях, интерполируют такие значения напрямую с помощью взвешенных сумм пикселов, находящихся в целых горизонтальных и целых вертикальных местоположениях; b) когда требуются значения для под-пикселов в полуцелых горизонтальных местоположениях и полуцелых вертикальных местоположениях, интерполируют такие значения напрямую с помощью взвешенной суммы значений для под-пикселов, находящихся в полуцелых горизонтальных местоположениях и целых вертикальных местоположениях, вычисленной в соответствии с этапом а); и с), когда требуются значения для под-пиксела в горизонтальном местоположении четверть целого и вертикальном местоположении четверть целого, интерполируют такие значения усреднением по меньшей мере одной пары из первой пары значений под-пиксела, находящегося в полуцелом горизонтальном местоположении и полуцелом вертикальном местоположении, и под-пиксела, находящегося в целом горизонтальном местоположении и целом вертикальном местоположении, и второй пары значений пиксела, находящегося в целом горизонтальном местоположении и целом вертикальном местоположении, и под-пиксела, находящегося в полуцелом горизонтальном местоположении и полуцелом вертикальном местоположении. 13 н. и 38 з.п. ф-лы, 20 ил., 2 табл.

Реферат

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

Предшествующий уровень техники

Цифровые видеопоследовательности, такие как обычные кинофильмы, записанные на пленку, содержат последовательность неподвижных изображений, а иллюзия движения создается отображением изображений одного за другим при относительно быстрой частоте кадров, обычно от 15 до 30 кадров в секунду. Благодаря относительно быстрой частоте кадров изображения в последовательных кадрах кажутся практически одинаковыми и таким образом содержат значительное количество избыточной информации. Например, обычная сцена может содержать несколько неподвижных элементов, таких как декорации на заднем плане, и несколько подвижных областей, которые могут принимать множество различных форм, например лицо диктора новостей, движущийся транспорт и т.п. Альтернативно камера, снимающая сцену, сама может перемещаться, и в этом случае все элементы изображения имеют одинаковый вид движения. Во многих случаях это означает, что общее изменение от одного видеокадра к другому достаточно невелико. Конечно, это зависит от природы движения. Например, чем быстрее движение, тем больше изменение от одного кадра к другому. Аналогично, если сцена содержит некоторое количество движущихся элементов, то изменение от одного кадра к другому больше, чем в сцене, где перемещается только один элемент.

Следует понимать, что каждый кадр необработанного, то есть несжатого цифрового видеоряда содержит очень большой объем информации об изображении. Каждый кадр в несжатой цифровой видеопоследовательности формируется из массива пикселов изображения. Например, в широко используемом формате цифрового видео, известном как вариант общего формата обмена сжатыми видеоданными с уменьшенным вчетверо разрешением (QCIF), кадр содержит массив из 176×144 пикселов, и в этом случае каждый кадр содержит 25344 пиксела. В свою очередь, каждый пиксел представлен определенным количеством битов, которые несут информацию о яркостном и/или цветовом содержимом области изображения, соответствующей пикселу. В общем случае для представления содержимого о яркости и цветности изображения используется так называемая цветовая модель YUV (совокупность сигнала яркости Y и двух цветоразностных сигналов U и V). Составляющая Y или яркость представляет интенсивность (яркость) изображения, тогда как цветовое содержимое изображения представлено двумя составляющими цветности, обозначенными U и V.

Цветовые модели, основанные на яркостном/цветностном представлении содержимого изображения, обеспечивают определенные преимущества по сравнению с цветовыми моделями, которые основаны на представлении, использующем основные цвета (красный, зеленый и синий, RGB). Зрительная система человека более восприимчива к изменениям интенсивности, чем к изменениям цвета; цветовые модели YUV эксплуатируют это свойство, используя более низкое пространственное разрешение для составляющих (U, V) цветности, чем для составляющей (Y) яркости. В этом случае объем информации, требующийся для кодирования цветовой информации в изображении, может быть уменьшен при приемлемом уменьшении качества изображения.

Более низкое пространственное разрешение составляющих цветности обычно достигается с помощью под-дискретизации. Обычно блок 16×16 пикселов изображения представляется одним блоком 16×16 пикселов, содержащим информацию о яркости, а каждая из соответствующих составляющих цветности представляется одним блоком 8×8 пикселов, представляющим область изображения, равнозначную блоку 16×16 пикселов яркостной составляющей. Составляющие цветности таким образом пространственно под-дискретизированы по множителю 2 в направлениях х и у. Полученный комплект из одного блока 16×16 пикселов яркости и двух блоков 8×8 цветности обычно называется макроблоком YUV или для краткости макроблоком.

Изображение QCIF содержит макроблоки 11×9. Если яркостные блоки и блоки цветности представлены 8-битовым разрешением (то есть числами в диапазоне от 0 до 255), то общее число битов, требующихся на макроблок, составляет (16×6×8)+2×(8×8×8)=3072 бита. Число битов, необходимых для представления видеокадра в формате QCIF, таким образом составляет 99×3072=304128 бит. Это означает, что количество данных, требуемых, чтобы передать/записать/отобразить видеопоследовательность в формате QCIF, представленную с помощью цветовой модели YUV, на скорости 30 кадров в минуту, составляет более 9 Мбит/с. Это крайне высокая скорость передачи данных и она непрактична в использовании в приложениях записи, передачи и отображения видео из-за того, что требуются очень большие емкость памяти, пропускная способность канала передачи и производительность аппаратного обеспечения.

Если видеоданные подлежат передаче в масштабе реального времени по фиксированной линейной сети, такой как цифровая сеть с комплексными услугами (ISDN) или обычной телефонной коммутируемой сети общего пользования (PSTN), то доступная пропускная способность передачи данных обычно составляет порядка 64 кбит/с. В мобильной видеотелефонии, когда передача имеет место по меньшей мере частично по линии радиосвязи, доступная пропускная способность может быть равна 20 кбит/с. Это означает, что для того чтобы обеспечить передачу цифровых видеопоследовательностей через сети связи с низкой пропускной способностью, требуется достигнуть значительного снижения объема информации, используемой для представления видеоданных. По этой причине были разработаны методы сжатия видеоданных, которые уменьшают объем информации, передаваемой при поддержании приемлемого качества изображения.

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

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

Современные стандарты сжатия видеоданных, такие как рекомендации ITU-T H.261, Н263(+) (++), H26L и рекомендации Экспертной группы по вопросам движущихся изображений MPEG-4 используют "временное предсказание с компенсацией движения". Это является формой уменьшения временной избыточности, в которой содержимое нескольких (зачастую многих) кадров в видеопоследовательности "предсказывается" на основе других кадров в последовательности путем отслеживания движения объектов или областей изображения между кадрами.

Сжатые изображения, которые не используют уменьшение временной избыточности, обычно называются INTRA-кодированными или 1-кадрами, тогда как предсказанные по времени изображения называются INTER-кодированными или Р-кадрами. В случае INTER-кадров предсказанное изображение (с компенсированным движением) крайне редко бывает достаточно точным, чтобы представлять содержимое изображения с достаточным качеством, и поэтому с каждым INTER-кадром связан пространственно сжатый кадр ошибки предсказания (ОП, РЕ). Многие схемы сжатия видеоданных также могут использовать двунаправленно предсказанные кадры, которые обычно называются В-изображениями или В-кадрами. В-изображения вводятся между парами опорных или так называемых якорных изображений (I- или Р-кадрами) и предсказываются на основе либо одного либо обоих якорных изображений. В-изображения сами по себе не используются как якорные изображения, то есть ни один другой кадр не предсказывается на их основе, и, следовательно, они могут быть удалены из видеопоследовательности, не вызывая ухудшения качества будущих изображений.

Различные типы кадра, которые появляются в обычной сжатой видеопоследовательности, показаны на фиг.3 приложенных чертежей. Как можно видеть из чертежа, последовательность начинается INTRA или 1-кадром 30. На фиг.3 стрелки 33 показывают процесс предсказания "вперед", посредством которого формируются Р-кадры (обозначенные позицией 34). Процесс двунаправленного предсказания, посредством которого формируются В-кадры (36), показан стрелками 31а и 31b соответственно.

На фиг.1 и 2 показана принципиальная схема примерной системы кодирования видеоданных, использующая предсказание компенсации движения. Фиг.1 показывает кодер 10, использующий компенсацию движения, а фиг.2 показывает соответствующий декодер 20. Кодер 10, показанный на фиг.1, содержит блок 11 оценки поля движения, блок 12 кодирования поля движения, блок 13 предсказания с компенсацией движения, блок 14 кодирования ошибки предсказания, блок 15 декодирования ошибки предсказания, блок 16 мультиплексирования, кадровую память 17 и сумматор 19. Декодер 20 содержит блок 21 предсказания с компенсацией движения, блок 22 декодирования ошибки предсказания, блок 23 демультиплексирования и кадровую память 24.

Принцип функционирования кодеров видеоданных, использующих компенсацию движения, состоит в минимизации объема информации в кадре Еn(х,у) ошибки предсказания, который является разностью между текущим кодируемым кадром In(х,у) и кадром Рn(х,у) предсказания. Кадр ошибки предсказания выглядит следующим образом:

Кадр Рn(х,у) предсказания построен с помощью значений пикселов опорного кадра Rn(x,y), который в общем случае является одним из ранее закодированных и переданных кадров, например кадром, непосредственно предшествующим текущему кадру, и доступен из кадровой памяти 17 кодера 10. Более конкретно, кадр Рn(x,у) предсказания строится путем нахождения так называемых пикселов предсказания в опорном кадре Rn(x,y), который практически соответствует пикселам в текущем кадре. Выделяют информацию о движении, описывающую соотношение (например, относительное положение, вращение, масштаб и т.п.) между пикселами в текущем кадре и соответствующими им пикселами предсказания в опорном кадре, а кадр предсказания конструируют путем перемещения кадра предсказания в соответствии с информацией о движении. В этом случае кадр предсказания строится как приблизительное представление текущего кадра с помощью значений пикселов в опорном кадре. Кадр ошибки предсказания, на который сделана ссылка выше, представляет, следовательно, разность между приблизительным представлением текущего кадра, предоставленным кадром предсказания, и самим текущим кадром. Основное преимущество, предоставляемое видеокодерами, которые используют предсказание с компенсацией движения, возникает из того факта, что сравнительно компактное описание текущего кадра может быть получено представлением его в терминах информации о движении, требующейся для формирования предсказания, вместе со связанной с ней информацией об ошибке предсказания в кадре ошибки предсказания.

Однако из-за очень большого числа пикселов в кадре в общем случае неэффективно передавать на декодер отдельную информацию о движении для каждого пиксела. Вместо этого в большинстве схем кодирования видеоданных текущий кадр разделяется на большие сегменты Sk изображения, и информация о движении, относящаяся к сегментам, передается на декодер. Например, информация о движении обычно предоставляется для каждого макроблока в кадре, и та же самая информация о движении затем используется для всех пикселов внутри макроблока. В некоторых стандартах кодирования видеоданных, таких как H.26L, макроблок может быть разделен на меньшие блоки, и каждый меньший блок снабжен собственной информацией о движении.

Информация о движении обычно принимает форму векторов движения [Δх(х,у), Δy(х,у)]. Пара чисел Δх(х,у) и Δy(х,у) представляет горизонтальное и вертикальное смещения пиксела в местоположении (х,у) в текущем кадре In(х,у) по отношению к пикселу в опорном кадре Rn(x,y). Векторы [Δх(х,у), Δy(х,у)] движения вычисляются в блоке 11 оценки поля движения, и на набор векторов движения текущего кадра [Δх(·), Δу(·)] называется полем вектора движения.

Обычно местоположение макроблока в текущем видеокадре определяется координатами (х,у) верхнего левого угла. Таким образом, в схеме кодирования видеоданных, в которой информация о движении связана с каждым макроблоком кадра, каждый вектор движения описывает горизонтальное и вертикальное смещение Δх(х,у) и Δy(x,y) пиксела, представляющего верхний левый угол макроблока в текущем кадре In(х,у), по отношению к пикселу в левом верхнем углу практически соответствующего блока пикселов предсказания в опорном кадре Rn(x,y) (как показано на фиг.4b).

Оценка движения является задачей, требующей большого количества вычислений. Если задан опорный кадр Rn(x,y) и, например, квадратный макроблок, содержащий N×N пикселов в текущем кадре (как показано на фиг.4а), то целью оценки движения является нахождение блока N×N пикселов в опорном кадре, который совпадает с характеристиками макроблока в текущем изображении по некоторому критерию. Этим критерием может быть, например, сумма абсолютных разностей (CAP, SAD) между пикселами макроблока в текущем кадре и блоком пикселов в опорном кадре, с которым он сравнивается. Этот процесс в общем случае известен как "согласование блоков". Следует отметить, что в общем случае геометрия блока, подлежащего согласованию, и блока в опорном кадре не должны быть одинаковыми, поскольку реальные объекты могут подвергаться изменениям масштаба, равно как вращению и искривлению. Однако в существующих международных стандартах кодирования видеоданных используется только трансляционная модель движения (см. ниже) и таким образом достаточно фиксированной прямоугольной геометрии.

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

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

где коэффициенты аi и bi называются коэффициентами движения. Эти коэффициенты движения передаются на декодер 20 (информационный поток 2 на фиг 1 и 2). Функции fi и gi называются базисными функциями поля движения и известны как кодеру, так и декодеру. Приблизительное поле вектора движения может быть построено с помощью коэффициентов и базисных функций. Поскольку базисные функции известны как кодеру 10, так и декодеру 20 (то есть хранятся в них), на кодер необходимо передавать только коэффициенты движения, тем самым уменьшая объем информации, требующийся для представления информации о движении кадра.

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

Эта модель широко используется в различных международных стандартах (ISO MPEG-1, MPEG-2, MPEG-4, Рекомендации ITU-T H.261 и Н.263) для описания движения блоков 16×16 и 8×8 пикселов. Системы, которые используют трансляционную модель движения, выполняют оценку движения при разрешении в полный пиксел или при разрешении в некоторую целую часть полного пиксела, например при разрешении в половину или четверть пиксела.

Кадр Рn(x,n) предсказания строится в блоке 13 предсказания компенсацией движения в кодере 10 и задается следующим выражением:

В блоке 14 кодирования ошибки предсказания кадр Еn(х,у) ошибки предсказания обычно сжимается путем его представления в виде конечного ряда (преобразования) некоторых двумерных функций. Например, может использоваться двумерное дискретное косинусное преобразование (ДКТ, DCT). Коэффициенты преобразования квантуются и статистически кодируются (например, методом Хаффмана) перед тем, как они передаются на декодер (информационный поток 1 на фиг.1 и 2). Из-за ошибки, вносимой квантованием, эта операция обычно вызывает некоторое ухудшение (потерю информации) в кадре Еn(х,у) ошибки предсказания. Чтобы компенсировать это ухудшение, кодер 10 также содержит блок 15 декодирования ошибки предсказания, где декодированный кадр ошибки предсказания строится с помощью коэффициентов преобразования. Этот локально декодированный кадр ошибки предсказания добавляется к кадру Рn(х,у) предсказания в сумматоре 19, и полученный декодированный текущий кадр сохраняется в кадровой памяти 17 для дальнейшего использования в качестве следующего опорного кадра Rn+1(х,у).

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

Теперь будет описана работа соответствующего видеодекодера 20.

Кадровая память 24 декодера 20 хранит восстановленный ранее опорный кадр Rn(x,y). Кадр Рn(х,у) предсказания строится в блоке 21 предсказания с компенсацией движения из состава декодера 20 в соответствии с уравнением 5 с помощью принятой информации о коэффициентах движения и значений пикселов восстановленного ранее опорного кадра Rn(x,y). Переданные коэффициенты преобразования кадра En(х,y) предсказания ошибок используются в блоке 22 декодирования ошибки предсказания для построения декодированного кадра ошибки предсказания.

Пикселы декодированного текущего кадра затем восстанавливаются путем добавления кадра Рn(x,у) предсказания и декодированного кадра ошибки предсказания:

Этот декодированный текущий кадр может сохраняться в кадровой памяти 24 в качестве следующего опорного кадра Rn+1(x,y).

В описании кодирования и декодирования цифрового видеоданных с компенсацией движения, представленном выше, вектор движения [Δх(х,у), Δy(х,у)], описывающий движение макроблока в текущем кадре по отношению к опорному кадру Rn(x,y), может указывать на любой из пикселов в опорном кадре. Это означает, что движение между кадрами в цифровой видеопоследовательности может быть представлено только при разрешении, которое определено пикселами изображения в кадре (при так называемом разрешении в полный пиксел). Реальное движение, однако, имеет произвольную точность, и таким образом система, описанная выше, может лишь обеспечить приближенное моделирование движения между следующими друг за другом кадрами цифровой видеопоследовательности. Обычно моделирование движения между видеокадрами при разрешении в полный пиксел недостаточно точно, чтобы позволить эффективно минимизировать информацию ошибки предсказания (ОП), связанную с каждым макроблоком/кадром. Поэтому, чтобы обеспечить более точное моделирование реального движения и помочь уменьшить объем информации ОП, которая должна быть передана от кодера на декодер, многие стандарты кодирования видеоданных, такие как Н.263(+)(++) H.26L, допускают, чтобы векторы движения указывали "между" пикселами изображения. Другими словами, векторы движения могут иметь под-пиксельное разрешение. Когда векторам движения позволяется иметь под-пиксельное разрешение, это добавляет сложности операциям кодирования и декодирования, которые должны быть выполнены, так что преимуществом по-прежнему является ограничение степени пространственного разрешения, которое может иметь вектор движения. Таким образом, стандарты кодирования видеоданных, такие как упомянутые выше, обычно позволяют векторам движения иметь только разрешение в полный пиксел, в половину пиксела (удвоенное разрешение или в четверть пиксела (учетверенное разрешение).

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

На втором этапе вектор движения, найденный на первом этапе, уточняется, чтобы получить желаемое разрешение в половину пиксела. В примере, показанном на фиг.5, это выполняется путем формирования восьми новых блоков поиска по 16×16 пикселов, причем местоположение верхнего левого угла каждого блока маркируется знаком Х на фиг.5. Эти местоположения обозначаются как [Δх+m/2, Δy+n/2], где числа тип могут принимать значения -1, 0 и +1, но не могут быть равны нулю одновременно. Поскольку известны значения пикселов исходных пикселов изображения, значения (например значения яркости и/или цветности) под-пикселов, находящихся в местоположениях половины пиксела, должны оцениваться для каждого из восьми новых блоков поиска с помощью какой-либо формы интерполяционной схемы.

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

На практике оценка значений под-пикселов в опорном кадре выполняется путем интерполяции значения под-пиксела из значений окружающих пикселов. В общем случае интерполяция значения F(x,y) под-пиксела, расположенного в нецелочисленном местоположении (х,у)=(n+Δх, m+Δy), может быть сформулирована как двумерная операция, математически представляемая следующим образом:

где f(k,l) являются коэффициентами фильтра, а m и n получаются путем усечения, соответственно х и у до целых значений. Обычно коэффициенты фильтра зависят от значений х и у, а фильтрами интерполяции обычно являются так называемые разделяемые фильтры, в этом случае значение F(x,y) под-пиксела может быть вычислено следующим образом:

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

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

При альтернативном подходе, который ограничивает сложность кодера, проводится предварительное вычисление и сохранение всех значений под-пикселов в памяти, связанной с кодером. Это решение далее в документе называется "предварительной" интерполяцией. Ограничивая сложность, предварительная интерполяция имеет недостаток, состоящий в значительном увеличении использования памяти. Например, если точность вектора движения равна четверти пиксела как в горизонтальном местоположении, так и в вертикальном направлениях, то сохранение заранее вычисленных значений под-пикселов для полного изображения выразится в использовании памяти в 16 раз большей, чем требуется для хранения исходного, неинтерполированного изображения. Кроме того, это включает вычисление некоторых под-пикселов, которые в действительности могут не требоваться при вычислении векторов движения в кодере. Предварительная интерполяция также в высокой степени неэффективна в видеодекодере, поскольку большинство предварительно интерполированных значений под-пикселов декодеру никогда не потребуется. Таким образом, предпочтительно не использовать предварительное вычисление в декодере.

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

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

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

В качестве части работы, продолжающейся в Секторе ITU по стандартизации телекоммуникаций, в Группе 16 изучения, в Экспертной группе по кодированию видеоданных (VCEG), по Вопросам 6 и 15, были разработаны две схемы интерполяции. Эти подходы были предложены для включения в рекомендацию H.26L ITU-T и были воплощены в опытных моделях (ОМ, TML) с целью оценки и дальнейшего развития. Опытная модель, соответствующая Вопросу 15, называется Опытной моделью 5 (ОМ5), тогда как полученная при изучении Вопроса 6 известна как Опытная модель 6 (ОМ6). Теперь будут описаны схемы интерполяции, предложенные как в ОМ5, так и в ОМ6.

По всему описанию схемы интерполяции значений под-пикселов, используемой в опытной модели ОМ5, ссылки будут делаться на фиг.12а, которая определяет обозначения для описания местоположений пикселов и под-пикселов, специфичных для ОМ5. Отдельные обозначения, определяемые на фиг.13а, будут использоваться для обсуждения схемы интерполяции значений под-пикселов, используемой в ОМ6. Еще одни отдельные обозначения, показанные на фиг.14а, будут использоваться в тексте позднее в связи со способом интерполяции значений под-пикселов, соответствующих изобретению. Следует понимать, что три различных вида обозначений, использованных в тексте, предназначены для содействия пониманию каждого способа интерполяции и выявлению различий между ними. Однако на всех трех чертежах буква А используется для обозначения исходных пикселов изображения (при разрешении в полный пиксел). Конкретнее буква А представляет местоположение пикселов в данных изображения, представляющих кадр видеопоследовательности, при этом значения пикселов А либо принимают в качестве текущего кадра In(х,у) от источника видеоданных либо восстанавливают и сохраняют в качестве опорного кадра Rn(x,y) в кадровой памяти 17, 24 кодера 10 или декодера 20. Все остальные буквы представляют местоположения под-пикселов, при этом значения под-пикселов, расположенных в местоположениях под-пикселов, получают с помощью интерполяции.

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

Термин "целое горизонтальное местоположение" используется для описания местоположения любого под-пиксела, который построен в столбце исходных данных изображения. Под-пикселы с и е на фиг.12а и 13а, равно как под-пикселы b и е на фиг.14а, имеют целые горизонтальные местоположения.

Термин "целое вертикальное местоположение" используется для описания местоположения любого под-пиксела, который построен в строке исходных данных изображения. Под-пикселы b и d на фиг.12а и 13а, равно как под-пикселы b и d на фиг.14а, имеют целые вертикальные местоположения.

По определению пикселы А имеют целое горизонтальное и целое вертикальное местоположения.

Термин "полуцелое горизонтальное местоположение" используется для описания местоположения любого под-пиксела, который построен в столбце, находящемся в разрешении в половину пиксела. Под-пикселы b, с и е на фиг.12а и 13а подпадают под эту категорию, равно как под-пикселы b, с и f на фиг.14а. Аналогичным образом термин "полуцелое вертикальное местоположение" используется для описания местоположения любого под-пиксела, который построен в строке, находящейся в разрешении в половину пиксела, например под-пикселы с и d на фиг.12а и 13а, равно как под-пикселы b, с и g на фиг.14а.

Далее термин "горизонтальное местоположение четверть целого" относится к любому под-пикселу, который построен в столбце, находящемся в разрешении в четверть пиксела, например под-пикселы d и е на фиг.12а, под-пикселы d и g на фиг.13а и под-пикселы d, g и h на фиг.14 а. Аналогично термин "вертикальное местоположение четверть целого" относится к любым под-пикселам, которые построены в строке, находящейся в разрешении в четверть пиксела. На фиг.12а под эту категорию подпадают под-пикселы е и 1, равно как под-пикселы е, f и g на фиг.13а и под-пикселы е, f и h на фиг.14а.

Определение каждого из описанных выше терминов показано "линиями", нарисованными на соответствующих чертежах.

Следует далее отметить, что зачастую удобно обозначать конкретный пиксел двумерным обозначением. В этом случае подходящее двумерное обозначение можно получить путем проверки взаимного пересечения линий на фиг.12а, 13а и 14а. Применяя этот принцип, пиксел d на фиг.12а, например, имеет полуцелое горизонтальное и полуцелое вертикальное местоположения, а под-пиксел е имеет целое горизонтальное местоположение и вертикальное местоположение четверть целого. Кроме того, для простоты именования под-пикселы, которые находятся на полуцелых горизонтальных и целых вертикальных на целых горизонтальных и полуцелых вертикальных положениях, а также на полуцелых горизонтальных и полуцелых вертикальных положениях, будут именоваться как под-пикселы разрешения. 1/2 Под-пикселы, которые находятся на любом горизонтальном местоположении четверть целого и/или вертикальном местоположении четверть целого будут именоваться как под-пикселы разрешения 1/4.

Также следует отметить, что как в описаниях двух опытных моделей, так и в самом подробном описании изобретения предполагается, что пикселы имеют минимальное значение, равное 0, и максимальное значение, равное 2n-1, где n является числом битов, зарезервированных для значения пиксела. Число битов обычно равно 8. После того, как под-пиксел проинтерполирован, в случае, если значение интерполированного под-пиксела превышает значение 2n-1, то оно ограничивается диапазоном [0, 2n-1], то есть значения меньше минимального разрешенного значения станут минимальным значением (0), а значения больше максимального станут максимальным значением (2n-1). Эта операция называется ограничением.

Теперь будет подробно описана схема интерполяции значения под-пиксела в соответствии с ОМ5 со ссылками на фиг.12а, 12b и 12с.

1. Значение для под-пиксела в полуцелом горизонтальном и целом вертикальном местоположении, который является под-пикселом b разрешения 1/2 на фиг.12а, вычисляется с помощью 6-отводного фильтра. Фильтр интерполирует значение под-пиксела b разрешения 1/2 на основании значений 6 пикселов (A1-A6), расположенных в строку в целых горизонтальных местоположениях и целых вертикальных местоположениях симметрично вокруг b, как показано на фиг.12b, согласно следующей формуле: b=(А1-5А2+20А3+20А4-5А56+16)/32. Оператор "/" обозначает деление с усечением. Результат ограничивают, чтобы попасть в диапазон [0, 2n-1].

2. Значения для под-пикселов разрешения 1/2, помеченных с, вычисляются с помощью аналогичного шестиотводного фильтра, который используется в операции 1, и шести ближайших пикселов или под-пикселов (А или b) в вертикальном направлении. На фиг.12 с фильтр интерполирует значение под-пиксела с разрешения 1/2, расположенного в целом горизонтальном местоположении и полуцелом вертикальном местоположении, на основании значений 6 пикселов (A16), расположенных в столбец в целых горизонтальных местоположениях и целых вертикальных местоположениях симметричн