Кодирующие динамические фильтры
Иллюстрации
Показать всеИзобретение относится к компенсации движения при видеокодировании, а именно к способу кодирования коэффициентов интерполяционных фильтров, используемых для восстановления пиксельных значений изображения в видеокодерах и видеодекодерах со скомпенсированным движением. Сущность изобретения состоит в том, что в видеокодирующей системе для кодирования видеопоследовательности, содержащей последовательность видеокадров, каждый из которых имеет матрицу пиксельных значений, определяют интерполяционный фильтр, чтобы восстановить пиксельные значения в процессе декодирования. Система кодирует коэффициенты интерполяционного фильтра дифференциально по отношению к заданному базовому фильтру, чтобы получить набор разностных значений. Поскольку коэффициенты базового фильтра известны как кодеру, так и декодеру и могут быть статистически приемлемо близкими к действительным фильтрам, использованным в видеопоследовательности, декодер может восстановить пиксельные значения на основании набора разностных значений. Технический результат - эффективное кодирование значений коэффициентов адаптивных интерполяционных фильтров и обеспечение стойкости к ошибкам битового потока кодированных данных. 5 н. и 16 з.п ф-лы, 9 ил.
Реферат
Область техники, к которой относится изобретение
Настоящее изобретение относится к «компенсации движения» в видеокодировании. Конкретнее, изобретение относится к способу кодирования коэффициентов интерполяционных фильтров, используемых для восстановления пиксельных значений изображения в видеокодерах и видеодекодерах со скомпенсированным движением. Изобретение также относится к соответствующим видеокодеру, видеодекодеру и системе видеопередачи, которые осуществляют способ по изобретению.
Уровень техники
Ныне существуют разнообразные стандарты видеокодирования. Они включают в себя рекомендации Н.263 Сектора стандартизации связи Международного союза связи (ITU-T) и стандарты MPEG-1, MPEG-2 и MPEG-4 Экспертной группы по движущимся изображениям Международной организации стандартов (ISO). Эти стандарты видеокодирования основаны на использовании скомпенсированного предсказания движения и кодировании ошибки предсказания. Скомпенсированное предсказание движения выполняется путем анализа и кодирования движения между следующими друг за другом кадрами в видеопоследовательности и восстановления блоков изображения с помощью информации движения. Это восстановление блоков изображения строится с использованием интерполяционных фильтров движения, которые способны генерировать (пиксельные) значения изображения для необходимых пиксельных и субпиксельных позиций. Базовые принципы скомпенсированного предсказания движения и восстановления изображений с помощью интерполяционных фильтров описываются более подробно в нижеследующих абзацах.
Цифровые видеопоследовательности, как и обычные движущиеся картинки на пленке, содержат последовательность неподвижных изображений, часто называемых «кадрами». Иллюзия движения создается отображением этих кадров друг за другом с относительно быстрой частотой, обычно 15-30 кадров в секунду. Из-за относительно быстрой кадровой частоты содержимое изображений в следующих друг за другом кадрах имеет свойство быть совершенно подобным, и, таким образом, следующие друг за другом кадры содержат значительный объем избыточной информации.
Каждый кадр цифровой видеопоследовательности содержит матрицу пикселов изображения. В обычно используемом цифровом видеоформате, известном как четвертной общий формат обмена сжатыми данными (QCIF), кадр содержит матрицу из 176×144 пикселов и тем самым каждый кадр имеет 25344 пиксела. Каждый пиксел кадра представляется некоторым числом битов, которые несут информацию о яркости и/или цветовом содержании (цветности) области изображения, соответствующей пикселу. Обычно используется так называемая цветовая модель YUV для представления содержания яркости и цветности изображения. Яркостная, или Y, компонента представляет интенсивность (яркость) изображения, тогда как цветовое содержание изображения представляется двумя компонентами цветности, помеченными U и V.
Цветовая модель, основанная на представлении яркости/цветности содержимого изображения, обеспечивает некоторые преимущества по сравнению с цветовыми моделями, которые основаны на представлении, включающем в себя основные цвета (то есть красный, зеленый и синий, RGB). Вследствие того что человеческая зрительная система более чувствительна к изменениям интенсивности, нежели к цветовым изменениям, цветовая модель YUV эксплуатирует это свойство путем использования более низкого пространственного разрешения для компонент цветности (U, V), чем для яркостной компоненты (Y). При этом объем информации, необходимый для кодирования цветовой информации в изображении, может быть снижен с меньшим снижением качества изображения.
Более низкое пространственное разрешение компонент цветности обычно достигается за счет пространственной субдискретизации. Как правило, блок из 16×16 пикселов изображения кодируется одним блоком из 16×16 значений, представляющих яркостную информацию, а две компоненты цветности представляются каждая блоком из 8×9 пикселов, представляющих область изображения, эквивалентную матрице 16×16 яркостных значений. Компоненты цветности являются, таким образом, пространственно субдискретизированными с коэффициентом 2 в горизонтальном и вертикальном направлениях. Результирующий комплект из одного яркостного блока 16×16 и двух блоков цветности 8×8 называется обычно макроблоком YUV или макроблоком для краткости.
Изображение QCIF содержит 11×9 макроблоков. Если яркостные блоки и блоки цветности представляются с разрешением 8 битов (то есть числами в диапазоне от 0 до 255), то общее число битов, требуемых на макроблок, составляет (16×16×8) + 2×(8×8×8) = 3072 бита. Таким образом, число битов, необходимых для представления видеокадра в формате QCIF с помощью разрешения чисел в 8 битов на компонент, составляет 99×3072 = 304126 битов. Поэтому объем данных, требуемых для передачи, записи или отображения видеопоследовательности, содержащей ряды кадров формата QCIF с частотой 30 кадров в секунду, составляет более чем 9 Мбит/с (миллионов битов в секунду). Эта частота данных практически нецелесообразна для использования в приложениях видеозаписи, передачи и отображения вследствие очень больших потребных емкости памяти, пропускной способности канала передачи и производительности аппаратного обеспечения. Для этой цели разработаны стандарты видеокодирования, такие как упомянутые выше, чтобы снизить объем информации, требуемой для представления и передачи видеоданных при сохранении приемлемого качества изображения.
Каждый из ранее упомянутых стандартов видеокодирования предназначен для применения в системах видеозаписи или передачи, имеющих различные характеристики. К примеру, стандарт MPEG-1 ISO разработан конкретно для использования в ситуациях, когда доступная полоса пропускания данных доходит до 1,5 Мбит/с. Стандарт видеокодирования MPEG-2 прежде всего применим к цифровым носителям данных и видеовещанию и связи с доступными полосами пропускания данных вплоть до примерно 10 Мбит/с. Рекомендация Н.263 ITU-T направлена на использование в системах, когда доступная полоса пропускания в общем случае гораздо ниже. Она, в частности, пригодна для использования в ситуациях, когда видеоданные должны передаваться в режиме реального времени по сети выделенных линий, такой как цифровая сеть с предоставлением комплексных услуг (ЦСКУ) (ISDN) или традиционная коммутируемая телефонная сеть общего пользования (КТСОП) (PSTN), когда доступная полоса пропускания для передачи данных составляет, как правило, порядка 64 кбит/с. В мобильной видеотелефонии, где передача имеет место по меньшей мере частично по линии радиосвязи, доступная полоса пропускания может снизиться до 20 кбит/с.
Хотя различные ныне существующие стандарты видеокодирования предназначены для использования в различных ситуациях, механизмы, которые они применяют для снижения объема подлежащей передаче информации, имеют много общих признаков. В частности, все они работают таким образом, чтобы снизить объем избыточной и бесполезной для восприятия информации в подлежащей передаче видеопоследовательности. По существу имеется три типа избыточности в видеопоследовательностях: пространственная, временная и спектральная избыточность. Пространственная избыточность представляет собой выражение, используемое для описания корреляции между соседними пикселами в отдельном кадре последовательности. Временная избыточность выражает тот факт, что объекты, появляющиеся в одном кадре последовательности, вероятно появятся и в последующих кадрах. Спектральная избыточность относится к корреляции между различными цветовыми компонентами одного и того же изображения.
Достаточно эффективного сжатия обычно нельзя достичь простым снижением различных форм избыточности в заданной последовательности изображений. Таким образом, большинство нынешних видеокодеров снижают также и качество тех частей видеопоследовательности, которые субъективно наименее важны. Вдобавок, избыточность сжатого видеопотока битов снижается сама по себе посредством эффективного кодирования без потерь. Как правило, это достигается с помощью энтропийного кодирования.
Скомпенсированное предсказание движения представляет собой вид снижения временной избыточности, в котором содержимое некоторых (часто многих) кадров в видеопоследовательности «предсказывается» из других кадров в последовательности путем прослеживания движения объектов или областей изображения между кадрами. Кадры, которые сжимаются с помощью скомпенсированного предсказания движения, называются обыкновенно ИНТЕР-кодированными или Р-кадрами, тогда как кадры, которые сжаты без использования скомпенсированного предсказания движения, называются ИНТРА-кодированными или I-кадрами. Предсказанное (со скомпенсированным движением, ИНТЕР-кодированное) изображение редко бывает точным в достаточной степени, чтобы представлять содержимое изображение с достаточным качеством, а потому с каждым ИНТЕР-кадром связывается также кадр ошибки предсказания (ОП) (РЕ) с пространственным сжатием. Многие схемы видеосжатия могут также использовать двунаправленно предсказанные кадры, которые обыкновенно называются В-картинками или В-кадрами. В-картинки вводятся между опорными или так называемыми «якорными» парами картинок (I или Р кадрами) и предсказываются либо из одной, либо из обеих якорных картинок.
Различные типы кадра, которые появляются в обычной сжатой видеопоследовательности, иллюстрируются на фиг. 3 сопровождающих чертежей. Как можно видеть из этого чертежа, последовательность начинается с ИНТРА или I кадра 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.
Принцип работы видеокодеров, применяющих скомпенсированное предсказание движения, состоит в том, чтобы минимизировать объем информации в кадре En(x,y) ошибки предсказания, который является разностью между текущим кодируемым кадром In(x,y) и предсказанным кадром Pn(x,y). Кадр ошибки предсказания таким образом определяется так:
En(x,y) = In(x,y) - Pn(x,y). (1)
Предсказанный кадр Pn(x,y) строится с помощью пиксельных значений опорного кадра Rn(x,y), который в общем случае является одним из ранее кодированных и переданных кадров, например кадром, непосредственно предшествующим текущему кадру, и доступен из кадровой памяти 17 кодера 10. Конкретнее, предсказанный кадр Pn(x,y) сооружается путем нахождения «предсказанных пикселов» в опорном кадре Rn(x,y), которые по существу соответствуют пикселам в текущем кадре. Выделяется информация движения, описывающая соотношение (например, относительное местоположение, вращение, масштаб и т.п.) между пикселами в текущем кадре и их соответствующих предсказанных пикселах в опорном кадре, и предсказанный кадр сооружается путем перемещения предсказанных пикселов согласно информации движения. При этом предсказанный кадр сооружается в качестве приблизительного представления текущего кадра с помощью пиксельных значений в опорном кадре. Упомянутый выше кадр ошибки предсказания поэтому представляет разность между приблизительным представлением текущего кадра, предоставленным предсказанным кадром, и самим текущим кадром. Основное преимущество, обеспечиваемое видеокодерами, которые используют скомпенсированное предсказание движения, возникает из того факта, что сравнительно компактное описание текущего кадра можно получить за счет информации движения, требуемой для формирования предсказания, вместе со связанной информацией ошибки предсказания в кадре ошибки предсказания.
Вследствие большого числа пикселов в кадре в общем случае неэффективно передавать в декодер отдельную информацию движения для каждого пиксела. Вместо этого в большинстве видеокодирующих схем текущий кадр разделяется на большое число сегментов Sk, и в декодер передается информация движения, относящаяся к этим сегментам. К примеру, информация движения, как правило, обеспечивается для каждого макроблока кадра, а затем та же самая информация движения используется для всех кадров в этом макроблоке. В некоторых стандартах видеокодирования, таких как рекомендация Н.26L ITU-T, ныне находящаяся в разработке, макроблок может быть разделен на меньшие блоки, причем каждый меньший блок снабжается своей собственной информацией движения.
Информация движения обычно принимает вид векторов движения [Δx(x,y), Δy(x,y)]. Пара чисел Δx(x,y) и Δy(x,y) представляет горизонтальное и вертикальное смещение пиксела (x,y) в текущем кадре In(x,y) по отношению к пикселу в опорном кадре Rn(x,y). Векторы [Δx(x,y), Δy(x,y)] движения вычисляются в блоке 11 оценки движущегося поля, а набор векторов движения в текущем кадре [Δx(·), Δy(·)] называется полем векторов движения.
Как правило, местоположение макроблока в текущем видеокадре конкретизируется координатами (x,y) его верхнего левого угла. Тем самым в схеме видеокодирования, в которой информация движения связывается с каждым макроблоком в кадре, каждый вектор движения описывает горизонтальное и вертикальное смещение Δx(x,y) и Δy(x,y) пиксела, представляющего верхний левый угол макроблока в текущем кадре In(x,y) по отношению к пикселу в верхнем левом углу практически соответствующего блока предсказанных пикселов в опорном кадре Rn(x,y) (как показано на фиг. 4b).
Оценка движения представляет собой напряженную в вычислительном отношении задачу. При заданном опорном кадре Rn(x,y) и, к примеру, квадратном макроблоке N×N пикселов в текущем кадре (как показано на фиг. 4а) цель оценки движения состоит в нахождении в опорном кадре пиксельного блока N×N, который согласуется с характеристиками макроблока в текущей картинке согласно некоторому критерию. Этим критерием может быть, например, сумма абсолютных разностей (САР) (SAD) между пикселами макроблока в текущем кадре и блока пикселов в опорном кадре, с которым он сравнивается. Этот способ известен в общем как «сопряжение блоков». Следует отметить, что в общем случае должна согласовываться геометрия блока и что опорный кадр не обязан быть одним и тем же, когда объекты реального мира могут подвергаться изменениям масштаба, а также вращению и деформации. Однако в нынешних международных стандартах видеокодирования, таких как указанные выше, используется лишь модель поступательного движения (см. ниже), а потому достаточно фиксированной прямоугольной геометрии.
В идеале, для того чтобы достичь наилучшей возможности найти сопряжение, следует просмотреть весь опорный кадр. Однако это непрактично, т.к. накладывает слишком тяжелое бремя вычислений на видеокодер. Вместо этого область поиска обычно ограничивается до области [-p,p] вокруг исходного местоположения макроблока в текущем кадре, как показано на фиг. 4с.
Чтобы снизить объем информации движения, подлежащей передаче от кодера 10 к декодеру 20, поле векторов движения кодируется в блоке 12 кодирования поля движения в кодере 10 путем представления его моделью движения. В этом способе векторы движения сегментов изображения получают иное выражение с помощью некоторых заданных функций или, иными словами, поле векторов движения представляют моделью. Почти все ныне используемые модели поля векторов движения являются аддитивными моделями движения, удовлетворяющими следующим общим формулам:
(2)
(3)
где ai и bi являются коэффициентами движения. Эти коэффициенты движения передаются к декодеру 20 (информационный поток 2 на фиг. 1 и 2). Функции fi и gi представляют собой базисные функции поля движения. Они известны как кодеру, так и декодеру. Приблизительное поле векторов движения можно построить с помощью этих коэффициентов и этих базисных функций. Поскольку базисные функции известны как кодеру 10, так и декодеру 20 (т.е. хранятся в них), на кодер нужно передавать только коэффициенты движения, снижая тем самым объем информации, требуемой для представления информации движения кадра.
Простейшей моделью движения является модель поступательного движения, которая требует лишь двух коэффициентов для описания векторов движения каждого сегмента. Величины векторов движения задаются уравнениями
Δx(x,y) = a0
Δy(x,y) = b0 (4)
Это модель, использованная в рекомендациях Н.263 ITU-T и стандартах ISO MPEG-1, MPEG-2, MPEG-4, чтобы описать движение пиксельных блоков 16×16 и 8×8. Системы, которые используют модель поступательного движения, как правило, выполняют оценку движения в полнопиксельном разрешении или некоторой целой части полнопиксельного разрешения, например, в полу- или четвертьпиксельном разрешении.
Предсказанный кадр Pn(x,y) строится в блоке 13 скомпенсированного предсказания движения в кодере 10 и задается уравнением
(5)
В блоке 14 кодирования ошибки предсказания кадр En(x,y) обычно сжимается путем представления его в качестве конечного ряда (преобразования) некоторых двумерных функций. К примеру, можно использовать двумерное дискретное косинусное преобразование (ДКП) (DCT). Коэффициенты преобразования квантуются и подвергаются энтропийному кодированию (например, по Хаффману) перед тем, как они передаются к декодеру (информационный поток 1 на фиг. 1 и 2). Вследствие того что квантование вносит ошибку, эта операция обычно приводит к некоторому ухудшению (потере информации) в кадре En(x,y) ошибки предсказания. Чтобы скомпенсировать это ухудшение, кодер 10 также содержит блок 15 декодирования ошибки предсказания, где с помощью коэффициентов преобразования строится декодированный кадр ошибки предсказания. Этот декодированный на месте кадр ошибки предсказания добавляется к предсказанному кадру Pn(x,y) сумматором 19, и результирующий декодированный текущий кадр сохраняется в кадровой памяти 17 для дальнейшего использования в качестве опорного кадра Rn+1(x,y).
Информационный поток 2, несущий информацию о векторах движения, объединяется в мультиплексоре 16 с информацией об ошибке предсказания, и информационный поток 3, содержащий, как правило, по меньшей мере два типа информации, посылается к декодеру 20.
Теперь будет описана работа соответствующего видеодекодера 20.
Кадровая память 24 декодера 20 хранит ранее восстановленный опорный кадр Rn(x,y). Предсказанный кадр Pn(x,y) строится в блоке 21 скомпенсированного предсказания движения в декодере 20 согласно уравнению (5) с помощью принятой информации о коэффициентах движения и значениях пикселов ранее построенного опорного кадра Rn(x,y). Переданные коэффициенты преобразования кадра En(x,y) используются в блоке 22 декодирования ошибки предсказания для построения декодированного кадра . Затем восстанавливаются пикселы декодированного кадра путем сложения предсказанного кадра Pn(x,y) и декодированного кадра ошибки предсказания:
(6)
Этот декодированный текущий кадр может сохраняться в кадровой памяти 24 в качестве следующего опорного кадра Rn+1(x,y).
В представленном выше описании кодирования и декодирования скомпенсированного движения в цифровом видео вектор [Δx(x,y), Δy(x,y)] движения, описывающий движение макроблока в текущем кадре по отношению к опорному кадру Rn(x,y), может указывать на любые из пикселов в опорном кадре. Это означает, что движение между кадрами цифровой видеопоследовательности может быть представлено только при разрешении, определяемом пикселами изображения в кадре (так называемое полнопиксельное разрешение). Реальное же движение имеет произвольную точность, а потому описанная выше система может обеспечить лишь приблизительное моделирование движения между следующими друг за другом кадрами цифровой видеопоследовательности. Как правило, моделирование движения между видеокадрами с полнопиксельным разрешением не бывает достаточно точным, чтобы обеспечить эффективную минимизацию ошибки предсказания (ОП) (РЕ), связанной с каждым макроблоком или кадром. Поэтому, чтобы обеспечить более точное моделирование реального движения и помочь в снижении объема информации ОП, который должен быть передан от кодера к декодеру, многие стандарты видеокодирования позволяют векторам движения указывать на «промежуточные» пикселы изображения. Другими словами, векторы движения могут иметь «субпиксельное» разрешение. Позволение векторам движения иметь субпиксельное разрешение добавляется к сложности операций кодирования и декодирования, которые надлежит выполнять, так что еще более выгодно ограничить степень пространственного разрешения, которую может иметь вектор движения. Таким образом, стандарты видеокодирования, такие как упоминавшиеся ранее, обычно позволяют векторам движения иметь полнопиксельное, полупиксельное и четвертьпиксельное разрешение.
Оценка движения с субпиксельным разрешением может быть воплощена как двухстадийный процесс, как иллюстрируется в примерном виде на фиг. 5, для основной схемы видеокодирования, в которой векторы движения могут иметь полно- или полупиксельное разрешение. На первой стадии вектор движения, имеющий полнопиксельное разрешение, находят с помощью подходящей схемы оценки движения, такой как описанный выше способ сопряжения блоков. На фиг. 5 показан результирующий вектор движения, имеющий полнопиксельное разрешение.
На второй стадии вектор движения, найденный на первой стадии, улучшается, чтобы получить желательное полупиксельное разрешение. В примере, проиллюстрированном на фиг. 5, это делается путем формирования восьми новых поисковых блоков из 16×16 пикселов, причем местоположение верхнего левого угла каждого блока помечено позицией Х на фиг. 5. Эти местоположения обозначаются как [Δx + m/2, Δy + n/2], где m и n могут принимать значения -1, 0 и +1, но не могут быть нулем в одно и то же время. Поскольку известны только значения пикселов для пикселов исходного изображения, значения (к примеру, значения яркости и/или цветности) субпикселов, находящихся в полупиксельных местоположениях, оцениваются для каждого из восьми новых поисковых блоков с помощью какого-либо вида интерполяционной схемы.
Интерполируя значения субпикселов с полупиксельным разрешением, каждый из восьми поисковых блоков сравнивается с макроблоков, чей вектор движения ищется. Как и в способе сопряжения блоков, выполняемом для нахождения вектора движения с полнопиксельным разрешением, макроблок сравнивается с каждым из восьми поисковых блоков согласно некоторому критерию, к примеру, САР. В результате сравнения в общем случае будет получено минимальное значение САР. В зависимости от природы движения в видеопоследовательности это минимальное значение может соответствовать местоположению, определенному исходным вектором движения (с полнопиксельным разрешением) или оно может соответствовать местоположению с полупиксельным разрешением. Таким образом, возможно определить, указывает ли вектор движения на полнопиксельное или полупиксельное местоположение, и, если приемлемо полупиксельное разрешение, найти правильный вектор движения с полупиксельным разрешением.
На практике оценка субпиксельного значения в опорном кадре выполняется путем интерполирования значения субпиксела из окружающих пиксельных значений. В общем случае, интерполяция значения F(x,y), расположенного в нецелом местоположении (x,y) = (n+Δx, m+Δy), может формулироваться как двумерная операция, математически представленная как
(7)
где f(k,l) представляют собой коэффициенты фильтров, а n и m получаются усечением соответственно x и y до целых величин. Как правило, коэффициенты фильтров зависят от значений x и y, а интерполяционные фильтры обычно именуют «разделяемыми фильтрами», и в этом случае субпиксельное значение F(x,y) можно вычислить следующим образом:
(8)
Векторы движения вычисляются в кодере. Когда соответствующие коэффициенты движения передаются в декодер, то интерполировать требуемые субпикселы с помощью интерполяционного способа, идентичного использованному в кодере, представляется простым делом. При этом кадр, следующий за опорным кадром в кадровой памяти 24, может быть восстановлен из опорного кадра и переданных векторов движения.
Традиционно, интерполяционные фильтры, используемые в видеокодерах и видеодекодерах, применяют фиксированные значения коэффициентов фильтров, и один и тот же фильтр (т.е. один и тот же тип фильтра с теми же самыми значениями коэффициентов фильтра) используется для всех кадров кодируемой видеопоследовательности. Тот же самым фильтр используется далее для всех видеопоследовательностей, безотносительно к их природе и к тому, как они были собраны (захвачены). Wedi ("Adaptive Interpolation Filter for Motion Compensated Hybrid Video Coding", Picture Coding Symposium (PCS 2001) [«Адаптивный интерполяционный фильтр для гибридного видеокодирования скомпенсированного движения», Симпозиум по кодированию изображений], Сеул, Корея, Апрель 2001) предлагает использование интерполяционных фильтров с адаптивными значениями коэффициентов фильтра, чтобы скомпенсировать некоторые недостатки в способе видеокодирования. В частности, Wedi описывает, как, при наложении в процессе получения изображений, конечное разрешение дозволенных векторов движения и ограничение правильности модели поступательного движения вносят дополнительные ошибки предсказания. Наложение в видеоизображениях возникает вследствие использования неидеальных фильтров нижних частот (и, как следствие, невыполнение теоремы отсчетов Найквиста) в процессе получения изображения. Наложение нарушает скомпенсированное предсказание движения в видеопоследовательности и вызывает дополнительную компоненту ошибки предсказания. Конечная точность дозволенных векторов движения (например, полнопиксельная, полупиксельная или четвертьпиксельная) и способность модели поступательного движения представлять лишь горизонтальное и вертикальное поступательное движение между следующими друг за другом видеокадрами также вызывают дополнительные составляющие ошибки предсказания. Wedi предполагает далее, что улучшения в эффективности кодирования можно достичь путем адаптации значений коэффициентов фильтра в интерполяционном фильтре, чтобы компенсировать дополнительные ошибки предсказания, внесенные наложением, конечную точность вектора движения и ограниченную правильность модели поступательного движения.
В более общем случае, следует понимать, что, поскольку природа и характеристики движения изменяются в видеопоследовательности, оптимальный интерполяционный фильтр изменяется как функция от времени и местоположения в изображении. Wedi представляет пример, в котором интерполяционный фильтр с динамически адаптивными значениями коэффициентов фильтра встраивается в видеокодек H.26L, конкретнее в версию этого кодека, определенную тестовой моделью (TML) 4. TML-4 в H.26L использовала четвертьпиксельное разрешение вектора движения и интерполяционный фильтр винеровского типа с шестью симметричными коэффициентами фильтра (6-отводный фильтр). Представленный в статье Wedi пример предлагает адаптацию коэффициентов фильтра в интерполяционном фильтре на покадровой основе, дифференциальное кодирование коэффициентов фильтра и передачу их к декодеру в качестве побочной информации к основным видеоданным. Было сделано предложение на основе этого подхода включить использование интерполяционных фильтров с динамически адаптивными значениями коэффициентов фильтра в тестовой модели 8 видео кодека H.26L. Это представлено в документе сектора стандартизации связи ITU, озаглавленном "Adaptive Interpolation Filter for H.26L" (Адаптивный интерполяционный фильтр для H.26L) Study Group 16, Question 6, Video Coding Experts Group (VCEG), document VCEG-N28 September 2001, и "More Results on Adaptive Interpolation Filter for H.26L" (Больше результатов по Адаптивному интерполяционному фильтру для H.26L) Study Group 16, Question 6, Video Coding Experts Group (VCEG), document VCEG-O16r1, November 2001.
Использование динамически адаптивных интерполяционных фильтров вызывает важный вопрос, касающийся эффективности кодирования закодированного потока видеоданных, а также воздействует на стойкость к ошибкам кодированных видеоданных. Вопрос эффективности кодирования можно легко понять. В видеокодирующей системе, которая применяет интерполирующий фильтр с фиксированными значениями коэффициентов фильтра, нет необходимости включать какую-либо информацию, относящуюся к значениям коэффициентов фильтра в битовом потоке кодированных видеоданных. Значения коэффициентов фильтра могут просто записываться в видеокодере и видеодекодере. Иными словами, в видеокодирующей системе, воплощенной согласно конкретному стандарту видеокодирования, который применяет фиксированные интерполяционные фильтры, значения коэффициентов заранее запрограммированы как в кодере, так и в декодере согласно описаниям стандарта. Однако, если допускаются динамически адаптивные коэффициенты фильтра, становится необходимым передавать информацию, связанную со значениями коэффициентов. По мере периодического обновления коэффициентов фильтра (например, на покадровой основе) эта информация с необходимостью добавляется к объему информации, подлежащей передаче от видеокодера к видеодекодеру, и имеет вредное влияние на эффективность кодирования. В применениях видеокодирования с низкой битовой скоростью любое увеличение в объеме информации, подлежащей передаче, в большинстве случаев нежелательно.
Таким образом, для того чтобы оптимально моделировать и компенсировать движение, нужно эффективное представление динамических интерполяционных фильтров.
Что касается стойкости к ошибкам, то следует понимать, что путь, которым информация о коэффициентах динамически переменного интерполяционного фильтра передается от кодера к декодеру, может влиять на восприимчивость видеоданных к ошибкам передачи. Конкретнее, в видеокодирующих системах, которые применяют динамически адаптивные интерполяционные фильтры, правильное восстановление кадра в видеопоследовательности на декодере зависит от правильного приема и декодирования значений коэффициентов фильтра. Если информация, относящаяся к значениям коэффициентов, подвергается ошибкам во время ее передачи от кодера к декодеру, вероятно искажение восстанавливаемых видеоданных. Существует три известных в уровне техники пути кодирования коэффициентов фильтра. Первый состоит в энтропийном кодировании по отдельности значений коэффициентов фильтра. Второй состоит в энтропийном кодировании значений коэффициентов фильтра дифференцированно, по отношению к коэффициентам фильтра уже декодированных фильтров (как предложено в статье Wedi), а третий представляет собой определение набора фильтров и кодирование индекса выбранного фильтра.
Известные в уровне техники решения, которые можно было бы использовать для кодирования коэффициентов интерполяционного фильтра, как упомянуто выше, все имеют проблемы, связанные с ними в различных сценариях использования. Первый способ, в котором коэффициенты интерполяционного фильтра кодируются по отдельности, предлагают более низкую производительность кодирования, т.к. он не использует никакой предварительной информации (т.е. информации о точно закодированных значениях коэффициентов интерполяционного фильтра). Этот подход, следовательно, требует чрезмерно большого объема информации, подлежащей добавлению к закодированным к потоку кодированных видеобитов для того, чтобы описать значения коэффициентов интерполяционного фильтра. Дифференциальное кодирование коэффициентов, как предлагается в статье Wedi, эффективно, но не может использоваться в среде с возможными ошибками передачи, поскольку коэффициенты фильтра зависят от правильного декодирования более ранних коэффициентов фильтра. Как описано ранее, если битовый поток кодированных данных подвергается воздействию ошибки во время его передачи от кодера к декодеру, вероятно возникновение искажения видеоданных, восстановленных в декодере. Третье известное из уровня техники решение с заданным набором фильтров обеспечивает только ограниченные альтернативы и тем самым ухудшает производительность кодирования. Иными словами, эта опция не может достичь полных преимуществ от использования интерполяционных фильтров с динамически адаптивными значениями коэффициентов фильтра, как излагается в статье Wedi.
Таким образом, должно быть понятно, что имеется необходимость в способе кодирования значений коэффициентов адаптивных интерполяционных фильтров, который был бы эффективен и не приводил к ухудшению в стойкости к ошибкам битового потока кодированных данных.
Сущность изобретения
Настоящее изобретение объединяет хорошую эффективность кодирования от дифференциального кодирования со свойствами стойкости к ошибкам, что позволяет использовать его во всех средах. Поэтому оно, в частности, пригодно для осуществления в видеокодирующей системе для использования в подверженных ошибкам средах, например, когда поток кодированных видеобитов должен передаваться по линии радиосвязи, подверженной помехам.
Таким образом, согласно первому аспекту настоящего изобретения предлагается способ кодирования изображений в цифровой видеопоследовательности для получения кодированных видеоданных, причем цифровая видеопоследовательность содержит последовательность видеокадров, а каждый видеокадр имеет множество пиксельных значений, и при этом для восстановления пиксельных значений в кадре упомянутой цифровой видеопоследовательности из кодированных видеоданных используют интерполяционный фильтр, имеющий множество коэффициентов, представленных множеством значений коэффициентов.
Способ отличается тем, что
кодируют значения коэффициентов интерполяционного фильтра дифференциально по отношению к заданному базовому фильтру, чтобы сформировать набор разностных значений, и
адаптируют набор разностных значений в кодированных видеоданных таким образом, чтобы восстановление пиксельных значений было основано на наборе разностных значений.
Преимущественно кодированные видеоданные включают в себя кодированные значения, выражающие упомянутый набор разностных значений, а набор разностных значений энтропийно кодируют перед передачей от видеокодера к видеодекодеру.
Преимущественно заданный базовый фильтр имеет множест