Область техники, к которой относится изобретение
Настоящее изобретение относится к «компенсации движения» в видеокодировании. Конкретнее, изобретение относится к способу кодирования коэффициентов интерполяционных фильтров, используемых для восстановления пиксельных значений изображения в видеокодерах и видеодекодерах со скомпенсированным движением. Изобретение также относится к соответствующим видеокодеру, видеодекодеру и системе видеопередачи, которые осуществляют способ по изобретению.
Уровень техники
Ныне существуют разнообразные стандарты видеокодирования. Они включают в себя рекомендации Н.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.
Таким образом, должно быть понятно, что имеется необходимость в способе кодирования значений коэффициентов адаптивных интерполяционных фильтров, который был бы эффективен и не приводил к ухудшению в стойкости к ошибкам битового потока кодированных данных.
Сущность изобретения
Настоящее изобретение объединяет хорошую эффективность кодирования от дифференциального кодирования со свойствами стойкости к ошибкам, что позволяет использовать его во всех средах. Поэтому оно, в частности, пригодно для осуществления в видеокодирующей системе для использования в подверженных ошибкам средах, например, когда поток кодированных видеобитов должен передаваться по линии радиосвязи, подверженной помехам.
Таким образом, согласно первому аспекту настоящего изобретения предлагается способ кодирования изображений в цифровой видеопоследовательности для получения кодированных видеоданных, причем цифровая видеопоследовательность содержит последовательность видеокадров, а каждый видеокадр имеет множество пиксельных значений, и при этом для восстановления пиксельных значений в кадре упомянутой цифровой видеопоследовательности из кодированных видеоданных используют интерполяционный фильтр, имеющий множество коэффициентов, представленных множеством значений коэффициентов.
Способ отличается тем, что
кодируют значения коэффициентов интерполяционного фильтра дифференциально по отношению к заданному базовому фильтру, чтобы сформировать набор разностных значений, и
адаптируют набор разностных значений в кодированных видеоданных таким образом, чтобы восстановление пиксельных значений было основано на наборе разностных значений.
Преимущественно кодированные видеоданные включают в себя кодированные значения, выражающие упомянутый набор разностных значений, а набор разностных значений энтропийно кодируют перед передачей от видеокодера к видеодекодеру.
Преимущественно заданный базовый фильтр имеет множество коэффициентов со значениями, статистически аналогичными значениям коэффициентов интерполяционного фильтра.
Преимущественно коэффициенты интерполяционного фильтра выбирают для интерполяции пиксельных значений в выбранном сегменте изображения.
Преимущественно заданный базовый фильтр имеет фиксированные значения коэффициентов.
Преимущественно заданный базовый фильтр имеет множество коэффициентов, адаптированных к статистическим данным видеопоследовательности.
Предпочтительно интерполяционный фильтр является симметричным, так что кодируют только половину коэффициентов фильтра.
Преимущественно значения коэффициентов интерполяционного фильтра кодируют в определенном порядке от первого значения коэффициента к последнему значению коэффициента, и этот определенный порядок отличается от пространственного порядка упомянутых коэффициентов.
Преимущественно сумма значений коэффициентов интерполяционного фильтра фиксирована.
Преимущественно заданный базовый фильтр имеет множество значений коэффициентов, и постоянное значение добавляют к этим значениям коэффициентов заданного базового фильтра, так чтобы снизить амплитуду разностей между значениями коэффициентов интерполяционного фильтра и значениями коэффициентов заданного базового фильтра.
Согласно второму аспекту настоящего изобретения предлагается видеокодер, который содержит
средство для кодирования изображений в цифровой видеопоследовательности, имеющей последовательность видеокадров, для получения кодированных видеоданных, выражающих эту видеопоследовательность, а каждый кадр видеопоследовательности содержит множество пиксельных значений, и
средство для определения интерполяционного фильтра для восстановления пиксельных значений в кадре упомянутой цифровой видеопоследовательности в процессе декодирования, причем интерполяционный фильтр имеет несколько коэффициентов, представленных множеством значений коэффициентов.
Видеокодер отличается тем, что содержит
средство, откликающееся на интерполяционный фильтр, для вычисления разности между значениями коэффициентов интерполяционного фильтра и заданного базового фильтра для получения набора разностных значений, и
средство для адаптации набора разностных значений в кодированных видеоданных, предназначенное для того, чтобы восстановление пиксельных значений в процессе декодирования было основано на наборе разностных значений.
Преимущественно кодер содержит средство для энтропийного кодирования набора разностных значений перед адаптацией набора разностных значений в кодированных видеоданных.
Согласно третьему аспекту настоящего изобретения предлагается способ декодирования видеоданных, выражающих цифровую видеопоследовательность, содержащую последовательность видеокадров, причем каждый кадр видеопоследовательности содержит множество пиксельных значений, при этом интерполяционный фильтр, имеющий множество коэффициентов, представленных множеством значений коэффициентов, используют для восстановления пиксельных значений в кадре упомянутой цифровой видеопоследовательности.
Способ отличается тем, что
извлекают из видеоданных набор разностных значений, причем набор разностных значений выражает разность между значениями коэффициентов интерполяционного фильтра и заданного базового фильтра,
создают дополнительный фильтр на основании набора разностных значений и заданного базового фильтра, и
восстанавливают пиксельные значения на основании дополнительного фильтра.
Преимущественно заданный базовый фильтр имеет множество коэффициентов, представленных множеством значений коэффициентов, а создание дополнительного фильтра выполняют суммированием набора разностных значений с упомянутыми значениями коэффициентов заданного базового фильтра.
Преимущественно набор разностных значений извлекают из видеоданных путем энтропийного декодирования.
Согласно четвертому аспекту настоящего изобретения предлагается видеодекодер, который содержит средство для приема видеоданных в битовом потоке, причем принятые видеоданные выражают цифровую видеопоследовательность, содержащую последовательность видеокадров, а каждый кадр видеопоследовательности содержит множество пиксельных значений.
Видеодекодер отличается тем, что содержит
средство для извлечения набора разностных значений из битового потока,
средство для создания интерполяционного фильтра на основании заданного базового фильтра и набора разностных значений, и
средство для восстановления пиксельных значений в кадре видеопоследовательности на основании интерполяционного фильтра и принятых видеоданных.
Преимущественно видеодекодер имеет дополнительно средство для суммирования набора разностных значений со значениями дополнительных коэффициентов заданного базового фильтра для создания интерполяционного фильтра и средство для энтропийного декодирования набора разностных значений из битового потока.
Согласно пятому аспекту настоящего изобретения предлагается видеокодирующая система, которая содержит
кодер для кодирования изображений в цифровой видеопоследовательности, имеющей последовательность видеокадров, для получения кодированных видеоданных в битовом потоке, выражающем видеопоследовательность, а каждый кадр видеопоследовательности содержит множество пиксельных значений, при этом кодер имеет средство для определения интерполяционного фильтра для восстановления пиксельных значений в кадре упомянутой цифровой видеопоследовательности в процессе декодирования, а интерполяционный фильтр имеет множество коэффициентов фильтра, представленных множеством значений коэффициентов, и
декодер для приема кодированных видеоданных в битовом потоке для восстановления пиксельных значений в кадре видеопоследовательности в процессе декодирования.
Видеокодирующая система отличается тем, что
кодер дополнительно содержит
средство для вычисления разности между интерполяционным фильтром и заданным базовым фильтром для получения набора разностных значений, и
средство для адаптации набора разностных значений в битовом потоке, а
декодер содержит
средство для извлечения из битового потока набора разностных значений, и
средство для создания дополнительного фильтра на основании заданного базового фильтра и извлеченного набора разностных значений таким образом, чтобы восстановление пиксельных значений в процессе декодирования было основано на дополнительном фильтре.
Эти и остальные признаки настоящего изобретения станут понятными из нижеследующего описания совместно с сопровождающими чертежами. Понятно, однако, что чертежи разработаны единственно для целей иллюстрации, а не как определение пределов изобретения.
Краткое описание чертежей
Фиг. 1 является блок-схемой, иллюстрирующей общий видеокодер согласно существующему уровню техники.
Фиг. 2 является блок-схемой, иллюстрирующей общий видеодекодер согласно существующему уровню техники.
Фиг. 3 является условным представлением, иллюстрирующим типы кадров, используемых в видеокодировании.
Фиг. 4а является условным представлением, иллюстрирующим макроблок в текущем кадре.
Фиг. 4b является условным представлением, иллюстрирующим опорный кадр для сопряжения блоков.
Фиг. 4с является условным представлением, иллюстрирующим поисковую область вокруг исходного местоположения макроблока в текущем кадре.
Фиг. 5 является условным представлением, иллюстрирующим процесс оценки движения до субпиксельного разрешения согласно существующему уровню техники.
Фиг. 6а является условным представлением, иллюстрирующим оптимальный интерполяционный фильтр.
Фиг. 6b является условным представлением, иллюстрирующим оптимальный интерполяционный фильтр, разлагаемый на базовый фильтр и разностные коэффициенты.
Фиг. 6с является условным представлением, иллюстрирующим разностные коэффициенты для кодирования и отправки на декодер.
Фиг. 7 представляет собой блок-схему, иллюстрирующую терминальное устройство, содержащее оборудование видеокодирования и видеодекодирования, способное осуществлять настоящее изобретение.
Фиг. 8а представляет собой блок-схему, иллюстрирующую видеокодер согласно предпочтительному варианту выполнения по настоящему изобретению.
Фиг. 8b представляет собой блок-схему, иллюстрирующую видеокодер согласно другому варианту выполнения по настоящему изобретению.
Фиг. 8с представляет собой блок-схему, иллюстрирующую видеокодер согласно еще одному варианту выполнения по настоящему изобретению.
Фиг. 9а представляет собой блок-схему, иллюстрирующую видеодекодер согласно предпочтительному варианту выполнения по настоящему изобретению.
Фиг. 9b представляет собой блок-схему, иллюстрирующую видеодекодер согласно другому варианту выполнения по настоящему изобретению.
Фиг. 9с представляет собой блок-схему, иллюстрирующую видеодекодер согласно еще одному варианту выполнения по настоящему изобретению.
Наилучший режим осуществления изобретения
Кодер согласно настоящему изобретению кодирует коэффициенты фильтра дифференциально по отношению к заданным коэффициентам базового фильтра. Фиг. 6а-6с иллюстрируют способ согласно настоящему изобретению. Столбиковые графики, представленные на фиг. 6а, являются примерами значений коэффициентов интерполяционного фильтра, причем каждый столбик соответствует одному из коэффициентов фильтра. Высота столбика представляет соответствующее значение коэффициента, при этом выступающие над горизонтальной осью столбики представляют положительные значения коэффициентов, а выступающие под горизонтальной осью столбики представляют отрицательные значения коэффициентов. На фиг. 6а и 6b столбиковый график 110 представляет фильтр, который обнаруживается кодером как наилучшим образом пригодный для интерполяции движения выбранного сегмента, тогда как столбиковый график 140 представляет базовый фильтр. В примере, показанном на фиг. 6а, фильтр является 6-отводным симметричным фильтром, имеющим 6 коэффициентов фильтра. Вместо отправки коэффициентов фильтра самих по себе, кодируются и посылаются только разности между выбранным фильтром 110 и базовым фильтром 140. Посланные коэффициенты 120 показаны на фиг. 9с.
С настоящим изобретением получается выигрыш в кодировании, поскольку малые амплитудные разности можно эффективно кодировать энтропийным кодером. Когда такие разностные значения включаются в поток кодированных видеобитов, получаемый видеокодером, и этот поток видеобитов передается от кодера к соответствующему декодеру, коэффициенты интерполяционного фильтра могут восстанавливаться в декодере путем извлечения разностных значений из кодированного битового потока и добавления их к соответствующим значениям коэффициентов заданного базового фильтра, сохраненным в декодере.
Следует отметить, что базовый фильтр может также быть адаптирован к статистическим данным видеопоследовательности и принятым коэффициентам фильтра, чтобы еще больше улучшить эффективность кодирования. Возможно также, что базовый фильтр задается для целого кодека. Иными словами, один и тот же заданный базовый фильтр используется для всех видеопоследовательностей, подлежащих кодированию, независимо от их характеристик или пути, которым они получены. Альтернативно, базовый фильтр адаптируется к видеоданным, т.е. разные базовые фильтры используются для разных видеопоследовательностей, либо базовый фильтр может адаптироваться во время кодирования конкретной видеопоследовательности согласно некоторым заданным правилам.
Если фильтр симметричный, как показано на фиг. 6а-6с, нужно кодировать только половину коэффициентов фильтра. Остальные можно получить копированием. В примере, представленном на фиг. 6с, объем информации, необходимой для представления значений коэффициентов адаптивного интерполяционного фильтра в потоке кодированных видеобитов, может быть снижен далее путем реализации того, что четвертый, пятый и шестой коэффициенты фильтра идентичны соответственно третьему, второму и первому коэффициентам фильтра. Таким образом, в этом случае шесть коэффициентов интерполяционного фильтра могут действительно кодироваться тремя значениями, из которых первое представляет разность между первым коэффициентом интерполяционного фильтра и первым коэффициентом заданного базового фильтра, второе представляет разность между вторым коэффициентом интерполяционного фильтра и вторым коэффициентом заданного базового фильтра, а третье представляет разность между третьим коэффициентом интерполяционного фильтра и третьим коэффициентом заданного базового фильтра. Затем нужно лишь включить эти три разностных значения в поток кодированных видеобитов, передаваемый от кодера к декодеру, т.к. декодер может получить оставшиеся три коэффициента интерполяционного фильтра соответствующим копированием первых трех восстановленных значений коэффициентов фильтра. Такой же подход может быть выбран, если базовый фильтр и интерполяционный фильтр имеют не четное, а нечетное число коэффициентов, но являются тем не менее симметричными. В этом случае следует понимать, что число разностных значений, подлежащих кодированию, составляет (n/2) + 1, где n есть число коэффициентов в базовом фильтре / интерполяционном фильтре.
Способ согласно настоящему изобретению можно скомбинировать также с другими способами кодирования коэффициентов. К примеру, набор наиболее часто используемых фильтров можно кодировать их индексами. Менее часто используемые фильтры можно кодировать описанным изобретением, обеспечивающим максимальное варьирование доступных фильтров и тем самым преодолевающим ранее упомянутые недостатки третьего известного из уровня техники способа кодирования значений коэффициентов.
Порядок кодирования коэффициентов фильтра не обязательно следует пространственному порядку. Например, разностные значения, представляющие значения коэффициентов интерполяционного фильтра, не нужно включать в поток кодированных видеобитов в том же самом порядке, что и коэффициенты, встречающиеся в фильтре. В этом случае должно быть определено и известно как в кодере, так и в декодере заданное правило, конкретизирующее порядок, в котором разностные значения появляются в битовом потоке.
Возможно, что базовый фильтр адаптируется к принятым коэффициентам фильтра того же самого фильтра. Например, если первый переданный коэффициент фильтра больше, чем коэффициент базового фильтра, второй коэффициент базового фильтра можно уменьшить. Это особенно верно, если известна сумма коэффициентов фильтра.
Как правило, сумма коэффициентов фильтра фиксирована. В таком случае нет необходимости кодировать последний коэффициент фильтра, но его можно вычислить вычитанием суммы первых коэффициентов из общей суммы. Если сумма коэффициентов фильтра не фиксирована, можно добавить отдельно передаваемую постоянную или постоянные к коэффициентам базового фильтра или выходу фильтра, чтобы снизить амплитуды разностей коэффициентов.
Фиг. 7 представляет терминальное устройство, содержащее оборудование видеокодирования и видеодекодирования, которое можно адаптировать для работы в соответствии с настоящим изобретением. Точнее, фиг. 7 иллюстрирует мультимедийный терминал 60, воплощенный согласно рекомендации Н.324 ITU-T. Этот терминал может рассматриваться как мультимедийное приемопередающее устройство. Он включает в себя элементы, которые захватывают, кодируют и мультиплексируют потоки мультимедийных данных для передачи по сети связи, равно как и элементы, которые принимают, демультиплексируют, декодируют и отображают принятое мультимедийное содержание. Рекомендация Н.324 ITU-T определяет всю работу терминала и ссылается на другие рекомендации, которые руководят работой его различных составляющих частей. Этот вид мультимедийного терминала можно использовать в реально-временных приложениях, таких как разговорная телефония, или в не реально-временных приложениях, таких как выборка или создание потоков видеоклипов, к примеру, от сервера мультимедийного содержания в Интернете.
В контексте настоящего изобретения следует понимать, что терминал Н.324, показанный на фиг. 7, является лишь одним из нескольких альтернативных воплощений мультимедийного терминала, пригодным для применения изобретенного способа. Следует также отметить, что имеется несколько альтернатив, относящихся к местоположению и воплощению терминального оборудования. Как иллюстрируется на фиг. 7, мультимедийный терминал может располагаться в оборудовании связи, соединенном с сетью выделенных телефонных линий, такой как КТСОП (коммутируемая телефонная сеть общего пользования). В этом случае мультимедийный терминал снабжается модемом 71, соответствующим рекомендациям V.8, V.34 и, опционально, V.8bis. Альтернативно, мультимедийный терминал может соединяться с внешним модемом. Модем обеспечивает диалог мультиплексированных цифровых данных и управляющих сигналов, вырабатываемых мультимедийным терминалом в аналоговом виде, пригодных для передачи по КТСОП. Он далее позволяет мультимедийному терминалу принимать данные и управляющие сигналы в аналоговом виде от КТСОП и преобразовывать их в поток цифровых данных, который можно демультиплексировать и обрабатывать подходящим образом терминалом.
Мультимедийный терминал Н.324 может быть также воплощен таким образом, что он может соединяться непосредственно с сетью цифровых выделенных линий, такой как ЦСКУ (цифровая сеть с предоставлением комплексных услуг). В этом случае модем 71 заменяется интерфейсом пользователь-сеть ЦСКУ. На фиг. 7 этот интерфейс пользователь-сеть ЦСКУ представлен альтернативным блоком 72.
Мультимедийные терминалы Н.324 могут быть также приспособлены для использования в приложениях мобильной связи. При использовании с линией беспроводной связи модем 71 можно заменить подходящим беспроводным интерфейсом, как представлено альтернативным блоком 73 на фиг. 7. К примеру, мультимедийный терминал Н.324/М может включать в себя радиоприемопередатчик, обеспечивающий соединение с существующей мобильной телефонной сетью GSM второго поколения или с предложенной УМТС (универсальной мобильной телефонной системой) (UMTS) третьего поколения.
Следует отметить, что в мультимедийных терминалах, разработанных для двунаправленной связи, т.е. для передачи и приема видеоданных, полезно предусмотреть как видеокодер, так и видеодекодер, осуществленные согласно настоящему изобретению. Такая пара кодера и декодера часто осуществляется как единый объединенный функциональный блок, называемый «кодек».
Теперь будет более подробно описан типичный мультимедийный терминал Н.324 со ссылкой на фиг. 7. Мультимедийный терминал 60 включает в себя множество элементов, называемых «терминальным оборудованием». Это терминальное оборудование включает в себя видео, аудио и телематические устройства, обозначенные в общем ссылочными позициями 61, 62 и 63 соответственно. Видеооборудование 61 может включать в себя, например, видеокамеру для получения видеоизображений, монитор для отображения принятого видеосодержания и опциональное оборудование видеообработки. Аудиооборудование 62, как правило, включает в себя микрофон, к примеру, для получения речевых сообщений и громкоговоритель для воспроизведения принятого аудиосодержания. Аудиооборудование может также включать в себя дополнительные блоки аудиообработки. Телематическое оборудование 63 может включать в себя терминал данных, клавиатуру, электронную белую доску или приемопередатчик неподвижных изображений, такой как факсовый блок.
Видеооборудование 61 соединяется с видеокодеком 65. Видеокодек 65 содержит видеокодер и соответствующий видеодекодер, которые оба воплощены согласно изобретению. Такие кодер и декодер будут описаны дальше. Видеокодек 65 отвечает за кодирование полученных видеоданных в подходящем виде для дальнейшей передачи по линии связи и для декодирования сжатого видеосодержимого, принятого из сети связи. В примере, проиллюстрированном на фиг. 7, предполагается, что видеокодек осуществлен таким образом, что он включает использование динамически адаптивных интерполяционных фильтров. Далее предполагается, что кодерная секция выполнена с возможностью кодирования и передачи значений коэффициентов интерполяционного фильтра к соответствующему декодеру согласно варианту выполнения изобретенного способа, как описано ранее. Аналогично, декодерная секция видеокодека выполнена с возможностью приема и декодирования значений коэффициентов фильтра, закодированных согласно тому же самому варианту выполнения изобретенного способа.
Терминальное аудиооборудование соединяется с аудиокодеком, обозначенным на фиг. 7 ссылочной позицией 66. Подобно видеокодеку, аудиокодек содержит пару кодер-декодер. Он преобразует аудиоданные, полученные терминальным аудиооборудованием, в вид, пригодный для передачи по линии связи, и преобразует закодированные аудиоданные, принятые от сети, обратно в вид, пригодный для воспроизведения, например, на терминальном громкоговорителе. Выход аудиокодека соединен с блоком 67 задержки. Это компенсирует задержки, вносимые процессом видеокодирования, и тем самым гарантирует синхронизацию аудио- и видеосодержимого.
Системный управляющий блок 64 мультимедийного терминала управляет сигнализацией между конечным пользователем и сетью с помощью подходящего управляющего протокола (блок 68 сигнализации), чтобы установить общий режим работы между передающим и принимающим терминалами. Блок 68 сигнализации обменивается информацией о возможностях кодирования и декодирования передающего и принимающего терминалов и может использоваться, чтобы разрешить разные режимы кодирования видеокодера. Системный управляющий блок 64 управляет также использованием шифрования данных. Информация, касающаяся вида шифрования, подлежащего использованию в передаче данных, пропускается от блока 69 шифрования к мультиплексору-демультиплексору (блок MUX\DMUX) 70.
Во время передачи данных от мультимедийного терминала блок 70 MUX\DMUX объединяет кодированные и синхронизированные видео- и аудиопотоки с данными, введенными от телематического оборудования 63, и возможными управляющими данными, чтобы сформировать единый битовый поток. Выданная блоком 69 шифрования информация (если она имеется), касающаяся вида шифрования данных, подлежащего применению к битовому потоку, используется для выбора режима шифрования. Соответственно, когда принимается мультиплексированный и, возможно, зашифрованный мультимедийный битовый поток, блок 70 MUX\DMUX отвечает за расшифровку битового потока, разделение его на его составляющие медиакомпоненты и за пропускание этих компонентов к соответствующему кодеку(-ам) и/или терминальному оборудованию для декодирования и воспроизведения.
Фиг. 8а представляет собой блок-схему видеокодера 700, воплощенного согласно предпочтительному варианту выполнения изобретения. Структура видеокодера, показанная на фиг. 8а, во многих аспектах подобна структуре известного из уровня техники видеокодера, проиллюстрированного на фиг. 1, с подходящими модификациями в тех частях кодера, которые выполняют операции, связанные с субпиксельной интерполяцией значений и формированием потока кодированных видеоданных. Большинство элементов видеокодера 700 функционируют и работают так же, как и соответствующие элементы ранее описанного известного из уровня техники видеокодера 100 (см. фиг. 1). Описание таких элементов опущено по причине краткости. В частности, видеокодер 700 содержит блок 711 оценки поля движения, блок 712 кодирования поля движения, блок 713 предсказания скомпенсированного движения, блок 714 кодирования ошибки предсказания, блок 715 декодирования ошибки предсказания, мультиплексирующий блок 716, кадровую память 717 и сумматор 719. Как показано на фиг. 8а, блок 711 оценки поля движения включает в себя также блок 710 вычисления дифференциальных коэффициентов, который используется для вычисления разности между выбранным фильтром и базовым фильтром 709.
Теперь будет подробно описана работа видеокодера 700. Как и известные из уровня техники видеокодеры, видеокодер 700 согласно варианту выполнения настоящего изобретения применяет скомпенсированное предсказание движения по отношению к опорному кадру Rn(x,y) для выработки битового потока, представляющего видеокадр, кодируемый в ИНТЕР-формате. Он применяет скомпенсированное предсказание движения при субпиксельном разрешении и далее применяет интерполяционный фильтр, имеющий динамически переменные значения коэффициентов фильтра для того, чтобы сформировать субпиксельные значения, требуемые во время процесса оценки движения.
Видеокодер 700 выполняет скомпенсированное предсказание движения на поблочной основе и осуществляет компенсацию движения при субпиксельном разрешении как двухстадийный процесс для каждого блока. На первой стадии вектор движения, имеющий полнопиксельное разрешение, находится посредством сопряжения блоков, т.е. поиска блока пиксельных значений в опорном кадре Rn(x,y), который наилучшим образом сопрягается с пиксельными значениями текущего блока изображения, подлежащего кодированию. Операция сопряжения блоков выполняется блоком 711 оценки поля движения вместе с кадровой памятью 717, из которой извлекаются пиксельные значения опорного кадра Rn(x,y). На второй стадии скомпенсированного предсказания движения найденный на первой стадии вектор движения обновляется для желательного субпиксельного разрешения. Чтобы сделать это, блок 711 оценки поля движения формирует новые поисковые блоки, имеющие субпиксельное разрешение, путем интерполирования пиксельных значений опорного кадра Rn(x,y) в области, ранее идентифицированной как наилучшее сопряжение для кодируемого в настоящий момент блока изображения (см. фиг. 5). Как часть этого процесса, блок 711 оценки поля движения находит оптимальный интерполяционный фильтр для интерполяции субпиксельных значений. Полезно, чтобы значения коэффициентов интерполяционного фильтра адаптировались в связи с кодированием каждого блока изображения. В альтернативных вариантах выполнения коэффициенты интерполяционного фильтра могут адаптироваться менее часто, например один раз на каждый кадр или в начале новой видеопоследовательности, подлежащей кодированию.
Интерполировав необходимые субпиксельные значения и сформировав новые поисковые блоки, блок 711 оценки поля движения выполняет дальнейший поиск для того, чтобы определить, представляет ли какой-либо из новых поисковых блоков лучшее сопряжение с текущим блоком изображения, нежели наилучшим образом сопряженный блок, первоначально идентифицированный при полнопиксельном разрешении. При этом блок 711 оценки поля движения определяет, указывает ли вектор движения, представляющий кодируемый в настоящий момент блок изображения, на полнопиксельное или субпиксельное разрешение.
Блок 711 оценки поля движения выводит идентифицированный вектор движения в блок 712 кодирования поля движения, который аппроксимирует вектор движения с помощью модели движения, как описано ранее. Блок 713 скомпенсированного предсказания движения формирует затем предсказание для текущего блока изображения с помощью аппроксимированного вектора движения и информации ошибки предсказания. Вслед за этим предсказание кодируется в блоке 714 кодирования ошибки предсказания. Закодированная информация ошибки предсказания для текущего блока изображения направляется затем из блока 714 кодирования ошибки предсказания в мультиплексирующий блок 716. Мультиплексирующий блок 716 принимает также информацию об аппроксимированном векторе движения (в виде коэффициентов движения) от блока 712 кодирования поля движения, а также информацию об оптимальном интерполяционном фильтре, использованном во время скомпенсированного предсказания движения текущего блока изображения из блока 711 оценки поля движения. Согласно этому варианту выполнения настоящего изобретения блок 711 оценки поля движения на основании вычислительного результата, вычисленного блоком 710 вычислений дифференциальных коэффициентов, передает набор разностных значений 705, указывающий разность между коэффициентами фильтра в оптимальном интерполяционном фильтре для текущего блока и коэффициентами заданного базового фильтра 709, хранящимися в кодере 700. Мультиплексирующий блок 716 формирует вслед за этим кодированный битовый поток 703, представляющий текущий блок изображения, путем объединения информации движения (коэффициентов движения), данных ошибки предсказания, разностных значений коэффициентов фильтра и возможной управляющей информации. Каждый из различных видов информации может быть закодирован энтропийным кодером перед включением в битовый поток и последующей передачей к соответствующему декодеру.
В альтернативном варианте выполнения изобретения блок 711 оценки поля движения посылает значения 704, указывающие коэффициенты фильтра для оптимального интерполяционного фильтра, в блок 710 вычисления дифференциальных коэффициентов, который расположен между блоком 711 оценки поля движения и мультиплексирующим блоком 716, как показано на фиг. 8b. На основании базового фильтра 709 блок 710 вычислений дифференциальных коэффициентов вычисляет разностные значения 705 и передает их в мультиплексирующий блок 716.
В другом альтернативном варианте выполнения блок 710 вычисления дифференциальных коэффициентов находится внутри мультиплексирующего блока 716. В этом случае коэффициенты 704 фильтра для оптимального интерполяционного фильтра могут прямо посылаться блоком 711 оценки поля движения в мультиплексирующий блок 716, как показано на фиг. 8с.
Фиг. 9а представляет собой блок-схему видеодекодера 800, воплощенного согласно предпочтительному варианту выполнения настоящего изобретения и соответствующего видеокодеру, проиллюстрированному на фиг. 8а. Декодер 800 содержит блок 721 скомпенсированного предсказания движения, блок 722 декодирования ошибки предсказания, демультиплексирующий блок 723 и кадровую память 824. Большинство элементов в декодере 800 функционируют и работают так же, как и соответствующие элементы в уровне техники 20 (см. фиг. 2). Однако декодер 800 по настоящему изобретению, как показано на фиг. 9а, включает в себя блок 810 восстановления фильтра, который восстанавливает оптимальный интерполяционный фильтр 110 (см. фиг. 6а) на основании разностных значений 130 (фиг. 6b и 6с) и заданного базового фильтра 809. Заданный базовый фильтр 809 предпочтительно одинаков с базовым фильтром 709 (фиг. 8а-8с).
Теперь будет подробно описана работа видеодекодера 800. Демультиплексор 823 принимает кодированный битовый поток 803, разделяет этот битовый поток на его составные части (коэффициенты движения, данные ошибки предсказания, разностные значения коэффициентов фильтра и возможная управляющая информация) и выполняет любое необходимое энтропийное декодирование разных видов данных. Демультиплексор 823 направляет информацию ошибки предсказания из принятого битового потока 803 в блок 822 декодирования ошибки предсказания. Он также направляет принятую информацию движения в блок 821 скомпенсированного предсказания движения. В этом варианте выполнения настоящего изобретения демультиплексор 823 направляет принятые (и энтропийно декодированные) разностные значения через сигнал 802 в блок 821 скомпенсированного предсказания движения, чтобы позволить блоку 810 восстановления фильтра восстановить оптимальный интерполяционный фильтр 110 (см. фиг. 6а) путем добавления принятых разностных значений к коэффициентам заданного базового фильтра 809, хранящимся в декодере. Блок 821 скомпенсированного предсказания движения вслед за этим использует оптимальный интерполяционный фильтр, как определяется восстановленными значениями коэффициентов для построения предсказания декодируемого в настоящий момент блока изображения. Конкретнее, блок 821 скомпенсированного предсказания движения формирует предсказание для текущего блока изображения путем извлечения пиксельных значений опорного кадра Rn(x,y), хранящегося в кадровой памяти 824, и интерполирования их, как это необходимо, согласно принятой информации движения, чтобы сформировать любые требуемые субпиксельные значения. Предсказание для текущего блока изображения объединяется затем с соответствующими данными ошибки предсказания, чтобы сформировать восстановление рассматриваемого блока изображения.
Альтернативно, блок 810 восстановления фильтра находится вне блока 821 скомпенсированного предсказания движения, как показано на фиг. 9b. Из разностных значений, содержащихся в сигнале 802, принятом от демультиплексора 823, блок 810 восстановления фильтра восстанавливает оптимальные интерполяционные фильтры и посылает восстановленные коэффициенты 805 фильтра в блок 821 скомпенсированного предсказания движения. В еще одном альтернативном варианте выполнения блок 810 восстановления фильтра находится в демультиплексирующем блоке 823. Демультиплексирующий блок 823 направляет восстановленные коэффициенты оптимального интерполяционного фильтра в блок 821 скомпенсированного предсказания движения.
Кодер согласно настоящему изобретению кодирует коэффициенты фильтра дифференциально по отношению к коэффициентам заданного определенного базового фильтра, чтобы позволить декодеру восстановить оптимальный интерполяционный фильтр на основании разностных значений. Коэффициенты базового фильтра должны быть известны как кодеру, так и декодеру и должны быть статистически приемлемо близкими к действительному фильтру, использованному в видеопоследовательности, чтобы получить хорошую производительность кодирования. Иными словами, согласно способу по настоящему изобретению определяется базовый фильтр, имеющий конкретный набор значений коэффициентов, а затем разности между коэффициентами базового фильтра и коэффициентами реально использованного интерполяционного фильтра кодируются и включаются в поток видеобитов. При этом объем информации, необходимый для представления коэффициентов адаптивного интерполяционного фильтра в потоке кодированных видеобитов, снижается по отношению к способу, в котором каждый из коэффициентов адаптивного фильтра кодируется по отдельности. Если коэффициенты базового фильтра достаточно подобны коэффициентам реально использованного интерполяционного фильтра, подлежащие кодированию разностные значения малы. Таким образом, преимущественно заданный базовый фильтр статистически подобен реально использованному интерполяционному фильтру, т.к. в этом случае разностные значения уменьшаются и достигается дальнейшее улучшение эффективности кодирования.
В отличие от способа дифференциального кодирования, как предложено в статье Wedi, способ согласно настоящему изобретению сохраняет относительно хорошую стойкость к ошибкам. В случае ошибки, появляющейся во время передачи потока кодированных видеобитов от кодера к декодеру, ошибке подвергается только разность между базовым фильтром и реально использованным интерполяционным фильтром.
Следует отметить, что функциональные элементы мультимедийного терминала, видеокодер, декодер и видеокодек согласно настоящему изобретению могут быть осуществлены как программное обеспечение или выделенное аппаратное обеспечение или как комбинация этих двух. Способы видеокодирования и видеодекодирования согласно изобретению особенно пригодны для воплощения в виде компьютерной программы, содержащей машиночитаемые команды для выполнения функциональных шагов изобретения. Как таковые, кодер, декодер и видеокодек согласно изобретению могут быть осуществлены как программный код, хранящийся на носителе данных и исполняемый в компьютере, таком как персональный настольный компьютер, чтобы снабдить такой компьютер функциями видеокодирования и/или видеодекодирования.
Хотя изобретение описано в контексте конкретных вариантов выполнения, для специалистов ясно, что к этим пояснениям можно сделать несколько модификаций и различных изменений. Таким образом, хотя изобретение конкретно показано и описано по отношению к одному или нескольким его предпочтительным вариантам выполнения, специалистам понятно, что некоторые модификации или изменения в нем можно сделать без отхода от объема и сущности изобретения, как оно изложено выше.
Изобретение относится к компенсации движения при видеокодировании, а именно к способу кодирования коэффициентов интерполяционных фильтров, используемых для восстановления пиксельных значений изображения в видеокодерах и видеодекодерах со скомпенсированным движением. Сущность изобретения состоит в том, что в видеокодирующей системе для кодирования видеопоследовательности, содержащей последовательность видеокадров, каждый из которых имеет матрицу пиксельных значений, определяют интерполяционный фильтр, чтобы восстановить пиксельные значения в процессе декодирования. Система кодирует коэффициенты интерполяционного фильтра дифференциально по отношению к заданному базовому фильтру, чтобы получить набор разностных значений. Поскольку коэффициенты базового фильтра известны как кодеру, так и декодеру и могут быть статистически приемлемо близкими к действительным фильтрам, использованным в видеопоследовательности, декодер может восстановить пиксельные значения на основании набора разностных значений. Технический результат - эффективное кодирование значений коэффициентов адаптивных интерполяционных фильтров и обеспечение стойкости к ошибкам битового потока кодированных данных. 5 н. и 16 з.п ф-лы, 9 ил.
кодируют значения коэффициентов интерполяционного фильтра дифференциально по отношению к заданному базовому фильтру, чтобы сформировать набор разностных значений, и
адаптируют набор разностных значений в кодированных видеоданных таким образом, чтобы восстановление пиксельных значений было основано на наборе разностных значений.
средство для кодирования изображений в цифровой видеопоследовательности, имеющей последовательность видеокадров, для получения кодированных видеоданных, выражающих эту видеопоследовательность, а каждый кадр видеопоследовательности содержит множество пиксельных значений, и
средство для определения интерполяционного фильтра для восстановления пиксельных значений в кадре упомянутой цифровой видеопоследовательности в процессе декодирования, причем интерполяционный фильтр имеет несколько коэффициентов, представленных множеством значений коэффициентов, отличающийся тем, что содержит
средство, откликающееся на интерполяционный фильтр, для вычисления разности между значениями коэффициентов интерполяционного фильтра и заданного базового фильтра для получения набора разностных значений, и
средство для адаптации набора разностных значений в кодированных видеоданных, предназначенное для того, чтобы восстановление пиксельных значений в процессе декодирования было основано на наборе разностных значений.
извлекают из видеоданных набор разностных значений, причем набор разностных значений выражает разность между значениями коэффициентов интерполяционного фильтра и заданного базового фильтра,
создают дополнительный фильтр на основании набора разностных значеий и заданного базового фильтра и
восстанавливают пиксельные значения на основании дополнительного фильтра.
суммируют набор разностных значений со значениями дополнительных коэффициентов заданного базового фильтра для создания дополнительного фильтра.
средство для приема видеоданных в битовом потоке, причем принятые видеоданные выражают цифровую видеопоследовательность, содержащую последовательность видеокадров, а каждый кадр видеопоследовательности содержит множество пиксельных значений, отличающийся тем, что содержит
средство для извлечения набора разностных значений из битового потока,
средство для создания интерполяционного фильтра на основании заданного базового фильтра и набора разностных значений и
средство для восстановления пиксельных значений в кадре видеопоследовательности на основании интерполяционного фильтра и принятых видеоданных.
средство для суммирования набора разностных значений со значениями дополнительных коэффициентов заданного базового фильтра для создания интерполяционного фильтра.
кодер для кодирования изображений в цифровой видеопоследовательности, имеющей последовательность видеокадров, для получения кодированных видеоданных в битовом потоке, выражающем видеопоследовательность, а каждый кадр видеопоследовательности содержит множество пиксельных значений, при этом кодер имеет средство для определения интерполяционного фильтра для восстановления пиксельных значений в кадре упомянутой цифровой видеопоследовательности в процессе декодирования, а интерполяционный фильтр имеет множество коэффициентов фильтра, представленных множеством значений коэффициентов, и
декодер для приема кодированных видеоданных в битовом потоке для восстановления пиксельных значений в кадре видеопоследовательности в процессе декодирования, отличающаяся тем, что
кодер дополнительно содержит
средство для вычисления разности между интерполяционным фильтром и заданным базовым фильтром для получения набора разностных значений и
средство для адаптации набора разностных значений в битовом потоке, а
декодер содержит
средство для извлечения из битового потока набора разностных значений и
средство для создания дополнительного фильтра на основании заданного базового фильтра и извлеченного набора разностных значений таким образом, чтобы восстановление пиксельных значений в процессе декодирования было основано на дополнительном фильтре.
СПОСОБ АДАПТИВНОГО КВАНТОВАНИЯ ВЕКТОРОВ | 1996 |
|
RU2107408C1 |
Дорожная спиртовая кухня | 1918 |
|
SU98A1 |
УСТРОЙСТВО КОРРЕКЦИИ СИГНАЛА ДВИЖЕНИЯ | 1991 |
|
RU2077114C1 |
US 4901145, 13.02.1990 | |||
DE 3613230 А, 30.10.1986. |
Авторы
Даты
2007-07-10—Публикация
2003-01-14—Подача