Кодирование коэффициентов преобразования в кодерах и/или декодерах изображения/видеосигнала
Иллюстрации
Показать всеИзобретение относится к способу кодирования набора символов данных, содержащего нулевые символы данных и ненулевые символы данных, при котором назначают кодовое слово для представления ненулевого символа данных и связанного с ним числа предшествующих или последующих нулевых символов данных посредством операции отображения. Согласно изобретению операцию отображения, посредством которой кодовое слово назначают ненулевому символу данных и связанному с ним числу предшествующих или последующих символов данных, адаптируют в зависимости от максимально возможного числа нулевых символов данных в наборе символов данных. Описываются также соответствующий способ декодирования, кодирующее и декодирующее устройства. Технический результат - снижение объема передаваемой информации при сохранении приемлемого качества изображения. 8 н. и 36 з.п. ф-лы, 7 ил. 7 табл.
Реферат
Область техники
Изобретение относится к способу, кодеру, декодеру и устройству для кодирования цифрового видеосигнала. Более конкретно изобретение относится к кодированию коэффициентов преобразования, вырабатываемых в результате кодирования на основе поблочного преобразования в кодере/декодере видеосигнала/изображения, при использовании кодирования кодом переменной длины (VLC).
Уровень техники
Цифровые видеопоследовательности, подобные обычным движущимся изображениям, записанным на пленку, содержат последовательность неподвижных изображений, при этом иллюзия движения создается отображением этих изображений одно за другим с относительно большой скоростью, обычно 15-30 кадров в секунду. Из-за относительно быстрой скорости отображения изображения в следующих друг за другом кадрах имеют тенденцию быть почти подобными, а следовательно, содержат значительный объем избыточной информации. К примеру, типичная сцена может содержать некоторые стационарные элементы, такие как фоновое окружение, и некоторые подвижные области, которые могут принимать множество различных форм, например лицо диктора последних известий, трафик движения и т.д. Альтернативно может перемещаться, например, сама камера, записывающая сцену, и в этом случае все элементы изображения имеют один и тот же вид движения. Во многих случаях это означает, что общее изменение между одним видеокадром и следующим за ним достаточно мало.
Каждый кадр несжатой цифровой видеопоследовательности содержит массив пикселов изображения. Например, в обычно используемом цифровом видеоформате, известном как квартетный общий формат обмена (QCIF), кадр содержит массив из 176×144 пикселов, и в этом случае каждый кадр имеет 25344 пиксела. В свою очередь каждый пиксел представляется определенным числом битов, которые несут информацию о яркостной и/или цветовой компоненте области изображения, соответствующей этому пикселу. Обычно для представления компоненты яркости и цветности изображения используется так называемая цветовая модель YUV. Яркостная, или Y, компонента представляет интенсивность (яркость) изображения, тогда как цветовая компонента изображения представляется двумя цветоразностными компонентами, обозначаемыми U и V.
Цветовые модели, основанные на яркостном/цветностном представлении содержания, изображения, обеспечивает определенные преимущества по сравнению с цветовыми моделями, которые основаны на представлении, включающем в себя основные цвета (т.е. красный, зеленый и синий, RGB). Зрительная система человека более чувствительна к изменениям интенсивности, чем к цветовым изменениям, и цветовые модели YUV используют это свойство за счет применения более низкого пространственного разрешения для цветоразностных компонент (U, V), чем для яркостной компоненты (Y). Тем самым объем информации, необходимой для кодирования цветовой информации в изображении, можно снизить при приемлемом снижении качества изображения.
Более низкое пространственное разрешение цветоразностных компонент обычно достигается путем подквантования. Как правило, каждый кадр видеопоследовательности разделяется на так называемые «макроблоки», которые содержат яркостную (Y) информацию и связанную с ней цветоразностную (U, V) информацию, которая пространственно подквантуется. Фиг.3 иллюстрирует способ, которым могут формироваться макроблоки. Фиг.3 показывает кадр видеопоследовательности, представленный с помощью цветовой модели YUV, причем каждая компонента имеет одно и то же пространственное разрешение. Макроблоки формируются путем представления области 16×16 пикселов в исходном изображении как четыре блока яркостной информации, причем каждый яркостный блок содержит массив 8×8 яркостных (Y) значений и две пространственно соответствующих цветоразностных компоненты (U и V), которые подквантуются с коэффициентом два в направлениях х и y, чтобы получить соответствующие массивы 8×8 цветоразностных (U, V) значений. Согласно некоторым рекомендациям видеокодирования, таким как Рекомендация H.26L Международного союза электросвязи (ITU-T), размер блоков, используемых в макроблоках, может быть иным, нежели 8×8, например, 4×8 или 4×4 (см. объединенную модель (JM) 2.0 рабочего проекта №2, Doc. JVT-B118, Joint Video Team (JVT) of ISO/IEC MPEG и ITU-T VCEG Pattaya, 2nd JVT Meeting, Geneva, CH, Jan. 29 - Feb. 1, 2002, Section 3.2).
Изображение QCIF содержит 11×9 макроблоков. Если яркостные блоки и цветоразностные блоки представляются с разрешением 8 битов (т.е. числами в диапазоне от 0 до 255), общее число битов, требуемых на макроблок, равно (16×16×8)+2×(8×8×8)=3072 битов. Число битов, необходимых для представления видеокадра в формате QCIF, составляет, таким образом, 99×3072=304128 битов. Это означает, что объем данных, требуемых для передачи/записи/отображения несжатой видеопоследовательности в формате QCIF, представленной с помощью цветовой модели YUV, при скорости 30 кадров в секунду составляет более чем 9 Мбит/сек (миллионов битов в секунду). Это чрезвычайно высокая скорость передачи данных, не подходящая для использования в приложениях видеозаписи, передачи и отображения вследствие очень больших требуемых емкости хранения, пропускной способности канала и производительности аппаратного обеспечения.
Если видеоданные подлежат передаче в реальном времени по сети с фиксированными линиями, такой как цифровая сеть с предоставлением комплексных услуг (ISDN) или традиционная телефонная сеть общего пользования (PSTN), доступная полоса частот для передачи данных составляет обычно около 64 кбит/сек. В мобильной видеотелефонии, где передача имеет место по меньшей мере частично по линии радиосвязи, доступная полоса частот может снижаться до 20 кбит/сек. Это означает, что должно достигаться значительное снижение в объеме информации, используемой для представления видеоданных, чтобы обеспечить передачу цифровой видеопоследовательности по сетям связи с малой шириной полосы. По этой причине разработаны методы видеосжатия, которые снижают объем передаваемой информации при сохранении приемлемого качества изображения.
Способы видеосжатия базируются на снижении избыточных и бесполезных для восприятия частей в видеопоследовательностях. Избыточность в видеопоследовательностях может подразделяться на пространственную, временную и спектральную избыточность. «Пространственная избыточность» представляет собой выражение, используемое для описания взаимосвязи (подобия) между соседними пикселами в кадре. Выражение «временная избыточность» выражает тот факт, что объекты, появляющиеся в одном кадре последовательности, вероятно, появятся в последующих кадрах, тогда как «спектральная избыточность» относится к корреляции между различными цветовыми компонентами одного и того же изображения.
Достаточно эффективное сжатие нельзя обычно получить в заданной последовательности изображений простым снижением разных видов избыточности. Таким образом, большинство нынешних видеокодеров также снижают качество тех частей видеопоследовательности, которые практически наименее важны. Вдобавок избыточность сжатого видеобитового потока сама по себе снижается посредством эффективного кодирования без потерь. В общем случае это достигается с помощью метода, известного как энтропийное кодирование.
Часто имеется значительная величина пространственной избыточности между пикселами, которые составляют каждый кадр цифровой видеопоследовательности. Иными словами, значение любого пиксела в кадре последовательности практически то же самое, что и значение других пикселов в его непосредственной близости. Как правило, системы видеокодирования снижают пространственную избыточность с помощью метода, известного как «кодирование с поблочным преобразованием», в котором математическое преобразование, такое как двумерное дискретное косинусное преобразование (ДКП), применяется к блокам пикселов изображения. Оно преобразует данные изображения из представления, содержащего значения пикселов, к виду, содержащему набор значений коэффициентов, представляющих компоненты пространственных частот, значительно снижая пространственную избыточность и тем самым вырабатывая более компактное представление данных изображения.
Кадры видеопоследовательности, которые сжимаются с помощью кодирования с поблочным преобразованием без ссылки на какой-либо иной кадр в этой последовательности, обозначаются как ВНУТРИ-кодированные, или I-кадры. В дополнение к этому и если возможно, блоки ВНУТРИ-кодированных кадров предсказываются из ранее кодированных блоков внутри того же самого кадра. Этот метод, известный как ВНУТРИ-предсказание, приводит к дополнительному сокращению объема данных, требуемых для представления ВНУТРИ-кодированного кадра.
В общем случае системы видеокодирования не только снижают пространственную избыточность в отдельных кадрах видеопоследовательности, но также используют метод, известный как «предсказание с компенсацией движения», чтобы снизить временную избыточность в последовательности. С помощью предсказания с компенсацией движения содержание изображения некоторых (часто многих) кадров в цифровой видеопоследовательности «предсказывается» из одного или более других кадров в последовательности, известных как «опорные» кадры. Предсказание содержания изображения достигается путем отслеживания движения объектов или областей изображения между кадром, подлежащим кодированию (сжатию), и опорным(и) кадром(ами) с помощью «векторов движения». В общем случае опорный(ые) кадр(ы) могут предшествовать кадру, подлежащему кодированию, или следовать за ним в видеопоследовательности. Как и в случае ВНУТРИ-кодирования, предсказание с компенсацией движения в видеокадре обычно выполняется на основе макроблоков.
Кадры видеопоследовательности, которые сжимаются с помощью предсказания с компенсацией движения, называются в общем случае МЕЖ-кодированными или Р-кадрами. Одно лишь предсказание с компенсацией движения редко обеспечивает достаточно точное представление содержания изображения видеокадра и потому, как правило, необходимо предусмотреть так называемый кадр «ошибки предсказания» (РЕ) с каждым МЕЖ-кодированным кадром. Кадр ошибки предсказания представляет разность между декодированной версией МЕЖ-кодированного кадра и содержанием изображения кадра, подлежащего кодированию. Более конкретно кадр ошибки предсказания содержит значения, которые представляют разность между значениями пикселов в кадре, подлежащем кодированию, и соответствующими реконструированными значениями пикселов, сформированными на основе предсказанной версии рассматриваемого кадра. Следовательно, кадр ошибки предсказания имеет характеристики, аналогичные неподвижному изображению, и для снижения его пространственной избыточности, а значит, и объема данных (числа битов), требуемых для его представления, может применяться кодирование с поблочным преобразованием.
Работа системы видеокодирования более подробно описана ниже со ссылками на фиг. 1 и 2. На фиг. 1 показана условная схема базового видеокодера, который использует комбинацию ВНУТРИ- и МЕЖ-кодирования для формирования сжатого (кодированного) потока видеобитов. Соответствующий декодер показан на фиг. 2 и описан ниже.
Видеокодер 100 содержит вход 101 для приема цифрового видеосигнала от камеры или другого видеоисточника (не показано). Он также содержит блок 104 преобразования, который предназначен для выполнения поблочного дискретного косинусного преобразования (ДКП), квантователь 106, обратный квантователь 108, блок 110 обратного преобразования, предназначенный для выполнения обратного поблочного дискретного косинусного преобразования (ОДКП), объединители 112 и 116 и кадровую память 120. Кодер также содержит блок 130 оценки движения, кодер 140 поля движения и предсказатель 150 скомпенсированного движения. Переключатели 102 и 114 управляются совместно блоком 160 управления для переключения кодера между режимом ВНУТРИ-видеокодирования и режимом МЕЖ-видеокодирования. Кодер 100 содержит также видеомультиплексирующий кодер 170, который формирует единый битовый поток из различных типов информации, выработанной кодером 100, для дальнейшей передачи к удаленному приемному терминалу или, например, для сохранения на носителе данных большой емкости, таком как жесткий диск компьютера (не показан).
Кодер 100 работает следующим образом. Каждый кадр несжатого видеосигнала, подаваемый из источника видеосигнала на вход 101, принимается и обрабатывается макроблок за макроблоком, предпочтительно в порядке растрового сканирования. Когда начинается кодирование новой видеопоследовательности, первый подлежащий кодированию кадр кодируется как ВНУТРИ-кодированный кадр. Вслед за этим кодер программируется для кодирования каждого кадра в МЕЖ-кодированном формате, если только не будет удовлетворено одно из следующих условий: 1) принимается решение, что текущий макроблок кодируемого кадра настолько отличается от значений пикселов в опорном кадре, использованном для его предсказания, что вырабатывается информация чрезмерной ошибки предсказания, и в этом случае текущий макроблок кодируется в формате ВНУТРИ-кодирования; 2) истекает заранее заданный интервал повторения ВНУТРИ-кодированных кадров; или 3) принимается обратная связь от принимающего терминала, указывающая на запрос кадра, подлежащего представлению во ВНУТРИ-кодированном формате.
Появление условия 1) обнаруживается путем контроля выхода объединителя 116. Объединитель 116 формирует разность между текущим макроблоком кодируемого кадра и его предсказанием, выработанным в блоке 150 предсказания скомпенсированного движения. Если мера этой разности (к примеру, сумма абсолютных разностей значений пикселов) превосходит заранее заданный порог, объединитель 116 информирует об этом блоки 160 управления по управляющей линии 119 и блок 160 управления воздействует на переключатели 102 и 114 по управляющей линии 113, чтобы переключить кодер 100 в режим ВНУТРИ-кодирования. При этом кадр, который в противном случае кодируется в формате МЕЖ-кодирования, может содержать ВНУТРИ-кодированные макроблоки. Появление условия 2) контролируется посредством таймера или счетчика кадров, реализованного в блоке 160 управления, так что если таймер заканчивает счет либо счетчик кадров достигает заранее заданного числа кадров, блок 160 управления воздействует на переключатели 102 и 114 по управляющей линии 113, чтобы переключить кодер в режим ВНУТРИ-кодирования. Условие 3) запускается, если блок 160 управления принимает, например, от принимающего терминала по управляющей линии 121 сигнал обратной связи, указывающий, что принимающим терминалом затребовано ВНУТРИ-кадровое обновление. Такое условие может возникнуть, к примеру, если предыдущий переданный кадр сильно искажен помехами в процессе его передачи, что делает невозможным его декодирование в приемнике. В этой ситуации принимающий декодер выдает запрос на следующий кадр, подлежащий кодированию в ВНУТРИ-кодированном формате, тем самым вновь запуская кодирующую последовательность.
Ниже описана работа кодера 100 в режиме ВНУТРИ-кодирования. В режиме ВНУТРИ-кодирования блок 160 управления воздействует на переключатель 102 для приема входного видеосигнала из входной линии 118. Входной видеосигнал принимается макроблок за макроблоком от входа 101 по входной линии 118. По мере их приема эти блоки яркостных и цветоразностных значений, которые составляют макроблок, проходят к блоку 104 преобразования ДКП, который выполняет двумерное дискретное косинусное преобразование над каждым блоком значений, вырабатывая двумерный массив коэффициентов ДКП для каждого блока. Блок 104 преобразования ДКП вырабатывает массив значений коэффициентов для каждого блока, причем число значений коэффициентов зависит от свойств блоков, которые составляют макроблок. К примеру, если основной размер блока, используемого в макроблоке, составляет 4×4, блок 104 преобразования ДКП вырабатывает массив 4×4 коэффициентов ДКП для каждого блока. Если размер блока составляет 8×8, вырабатывается массив коэффициентов ДКП 8×8.
Коэффициенты ДКП для каждого блока подаются на квантователь 106, где они квантуются с использованием параметра квантования ПК. Выбор параметра ПК квантования управляется блоком 160 управления по управляющей линии 115. Квантование вносит потерю информации, т.к. коэффициенты квантования имеют более низкую численную точность, чем коэффициенты, первоначально сформированные блоком 104 преобразования ДКП. Это обеспечивает дополнительный механизм, посредством которого можно снизить объем данных, требуемых для представления каждого изображения в видеопоследовательности. Однако в отличие от преобразования ДКП которое по существу не вносит потерь, потеря информации, вносимая квантованием, вызывает необратимое ухудшение качества изображения. Чем больше степень квантования, примененного к коэффициентам ДКП, тем больше потери качества изображения.
Квантованные коэффициенты ДКП для каждого блока с квантователя 106 подаются на видеомультиплексирующий кодер 170, как указано линией 125 на фиг. 1. Видеомультиплексирующий кодер 170 упорядочивает квантованные коэффициенты преобразования для каждого блока с помощью процедуры зигзагообразного сканирования. Эта операция преобразует двумерный массив квантованных коэффициентов преобразования в одномерный массив. Обычные порядки зигзагообразного сканирования, такие как для массива 4×4, показанного на фиг. 4, упорядочивают коэффициенты примерно в возрастающем порядке пространственных частот. Это также имеет тенденцию к упорядочению коэффициентов согласно их значениям, так что коэффициенты, расположенные раньше в одномерном массиве, с большей вероятностью имеют большие абсолютные значения, чем коэффициенты, расположенные позже в массиве. Это имеет место потому, что более низкие пространственные частоты имеют тенденцию к более высоким амплитудам в блоках изображений. Следовательно, последние значения в одномерном массиве квантованных коэффициентов преобразования обычно равны нулям.
Как правило, видеомультиплексирующий кодер 170 представляет каждый ненулевой квантованный коэффициент в одномерном массиве двумя значениями, именуемыми «уровень» и «пробег». «Уровень» представляет собой величину квантованного коэффициента, а «пробег» представляет собой число следующих друг за другом нулевых коэффициентов, предшествующих рассматриваемому коэффициенту. Значения уровня и пробега для данного коэффициента упорядочиваются так, что значение уровня предшествует связанному с ним значению пробега. Значение уровня, равное нулю, используется для указания того, что в блоке больше нет ненулевых значений коэффициентов. Это значение 0-уровня именуется символом (ЕОВ) (Конец-Блока).
Альтернативно каждый квантованный коэффициент с ненулевым значением в одномерном массиве может быть представлен тремя значениями (пробег, уровень, последний). Значения «уровня» и «пробега» такие же, как в предыдущей схеме, тогда как «последний» обозначает, имеются ли какие-либо другие коэффициенты с ненулевыми величинами в одномерном массиве, следующими за текущим коэффициентом. Следовательно, нет необходимости в отдельном символе EOB.
Значения пробега и уровня (и последнего, если приемлемо) затем сжимаются с помощью энтропийного кодирования. Энтропийное кодирование представляет собой операцию без потерь, которая использует тот факт, что символы в подлежащем кодированию наборе данных в общем случае имеют различные вероятности появления. Поэтому вместо использования фиксированного числа битов для представления каждого символа назначается переменное число битов так, что символы, которые более вероятны для появления, представляются кодовыми словами с меньшим числом битов. По этой причине энтропийное кодирование часто называется кодированием переменной длины (VLC). Поскольку некоторые значения уровней и пробегов более вероятны, чем прочие значения, методы энтропийного кодирования могут эффективно использоваться для снижения числа битов, требуемых для представления значений пробега и уровня.
После того как значения пробега и уровня энтропийно закодированы, видеомультиплексирующий кодер 170 далее объединяет их с управляющей информацией, также энтропийно кодированной с помощью способа кодирования переменной длины, подходящего для вида рассматриваемой информации, чтобы сформировать сжатый поток битов закодированной информации 135 изображения. Этот поток битов, включающий в себя кодовые слова переменной длины, представляющие пары (пробег,уровень), передается из кодера.
Хотя энтропийное кодирование описано в связи с операциями, выполняемыми видеомультиплексирующим кодером 170, следует отметить, что в альтернативных реализациях может предусматриваться отдельный блок энтропийного кодирования.
В кодере 100 формируется также локально декодированная версия макроблока. Это делается путем пропускания квантованных коэффициентов преобразования для каждого блока, выданных квантователем 106, через обратный квантователь 108 и применения обратного преобразования ДКП в блоке 110 обратного преобразования. Таким образом, реконструированный массив значений пикселов формируется для каждого блока в макроблоке. Результирующие декодированные данные изображения вводятся в объединитель 112. В режиме ВНУТРИ-кодирования переключатель 114 устанавливается так, что ввод данных на объединитель 112 через переключатель 114 равен нулю. При этом операция, выполняемая объединителем 112, эквивалентна пропусканию декодированных данных изображения неизменными.
После того как последующие макроблоки текущего кадра приняты и подвергнуты ранее описанным шагам кодирования и локального декодирования в блоках 104, 106, 108, 110 и 112, декодированная версия ВНУТРИ-кодированного кадра встраивается в кадровую память 120. Когда последний макроблок текущего кадра ВНУТРИ-кодирован и вслед за этим декодирован, кадровая память 120 содержит полностью декодированный кадр, доступный для использования в качестве опорного кадра предсказания при кодировании принятого следующим видеокадра во ВНУТРИ-кодированном формате.
Ниже описана работа кодера 100 в режиме МЕЖ-кодирования. В режиме МЕЖ-кодирования блок 160 управления воздействует на переключатель 102 для приема его входных данных из линии 117, которые содержат выходные данные объединителя 116. Когда объединитель 116 принимает блоки яркостных и цветоразностных значений, которые составляют макроблок, он формирует соответствующие блоки информации ошибки предсказания. Информация ошибки предсказания представляет разность между рассматриваемым блоком и его предсказанием, выработанным блоком 150 предсказания скомпенсированного движения. Более конкретно информация ошибки предсказания для каждого блока в макроблоке содержит двумерный массив значений, каждое из которых представляет разность между значением пиксела в блоке кодируемой яркостной и цветоразностной информации и декодированным значением пиксела, полученным путем формирования предсказания скомпенсированного движения для блока согласно процедуре, описанной ниже. Таким образом, в ситуации, когда каждый макроблок содержит, например, набор блоков 4×4, содержащих яркостные и цветоразностные значения, информация ошибки предсказания для каждого блока в макроблоке аналогичным образом содержит массив 4×4 значений ошибки предсказания.
Информация ошибки предсказания для каждого блока в макроблоке поступает в блок 104 преобразования ДКП, который выполняет двумерное дискретное косинусное преобразование над каждым блоком значений ошибки предсказания, чтобы выработать двумерный массив коэффициентов преобразования ДКП для каждого блока. Блок 104 преобразования ДКП вырабатывает массив значений коэффициентов для каждого блока ошибки предсказания, причем число значений коэффициентов зависит от свойств блоков, которые составляют макроблок. К примеру, если основной размер блока, используемый в макроблоке, составляет 4×4, блок 104 преобразования ДКП вырабатывает массив 4×4 коэффициентов ДКП для каждого блока ошибки предсказания. Если размер блока равен 8×8, то вырабатывается массив 8×8 коэффициентов ДКП.
Коэффициенты преобразования для каждого блока ошибки предсказания поступают в квантователь 106, где они квантуются с помощью параметра квантования ПК аналогично тому, как описано в связи с работой кодера в режиме ВНУТРИ-кодирования. Выбор параметра квантования ПК вновь управляется блоком 160 управления по управляющей линии 115.
Квантованные коэффициенты ДКП, представляющие информацию ошибки предсказания для каждого блока в макроблоке, поступают из квантователя 106 на видеомультиплексирующий кодер 170, как указано линией 125 на фиг. 1. Как и в режиме ВНУТРИ-кодирования, видеомультиплексирующий кодер 170 упорядочивает коэффициенты преобразования для каждого блока ошибки предсказания с помощью ранее описанной процедуры зигзагообразного сканирования (см. фиг. 4), а затем представляет каждый квантованный коэффициент как значение уровня и пробега. Он также сжимает значения уровняи пробега с помощью энтропийного кодирования аналогично тому, как это описано выше в связи с режимом ВНУТРИ-кодирования. Видео мультиплексирующий кодер 170 также принимает информацию вектора движения (описанную ниже) из блока 140 кодирования поля движения по линии 126 и управляющую информацию из блока 160 управления. Он энтропийно кодирует информацию вектора движения и информацию управления и формирует единый поток 135 битов кодированной информации изображения, содержащий энтропийно кодированную информацию вектора движения, ошибки предсказания и управления.
Квантованные коэффициенты ДКП, представляющие информацию ошибки предсказания для каждого блока в макроблоке, поступают также из квантователя 106 на обратный квантователь 108. Здесь они обратно квантуются и результирующие блоки обратно квантованных коэффициентов ДКП подаются на блок 110 обратного преобразования ДКП, где они подвергаются обратному преобразованию ДКП, чтобы выработать локально декодированные блоки значений ошибки предсказания. Локально декодированные блоки значений ошибки предсказания вводятся затем в объединитель 112. В режиме МЕЖ-кодирования переключатель 114 устанавливается так, что объединитель 112 также принимает предсказанные значения пикселов для каждого блока в макроблоке, выработанные блоком 150 предсказания скомпенсированного движения. Объединитель 112 объединяет каждый из локально декодированных блоков значений ошибки предсказания с соответствующим блоком предсказанных значений пикселов для формирования блоков реконструированного изображения и сохраняет их в кадровой памяти 120.
Последующие макроблоки видеосигнала принимаются от источника видеосигнала и подвергаются ранее описанным шагам кодирования и декодирования в блоках 104, 106, 108, 110, 112, а декодированная версия кадра встраивается в кадровую память 120. Когда последний макроблок кадра обработан, кадровая память 120 содержит полностью декодированный кадр, доступный для использования в качестве опорного кадра предсказания при кодировании принимаемого затем видеокадра в МЕЖ-кодированном формате.
Ниже описано формирование предсказания для макроблока текущего кадра. Любой кадр, закодированный в МЕЖ-кодированном формате, требует опорного кадра для предсказания с компенсацией движения. Это с неизбежностью означает, что при кодировании видеопоследовательности первый подлежащий кодированию кадр, будь то первый кадр в последовательности или какой-то иной кадр, должен кодироваться во ВНУТРИ-кодированном формате. Это, в свою очередь, означает, что когда видеокодер 100 переключается блоком 160 управления в режим МЕЖ-кодирования, полный опорный кадр, сформированный локальным декодированием ранее кодированного кадра, уже доступен в кадровой памяти 120 кодера. В общем случае опорный кадр формируется локальным декодированием либо ВНУТРИ-кодированного кадра, либо МЕЖ-кодированного кадра.
Первый шаг при формировании предсказания для макроблока текущего кадра выполняется блоком 130 оценивания движения. Блок 130 оценивания движения принимает блоки яркостных и цветоразностных значений, которые составляют текущий макроблок подлежащего кодированию кадра, по линии 128. Он затем выполняет операцию согласования блоков, чтобы идентифицировать область в опорном кадре, которая в основном соответствует текущему макроблоку. Для того чтобы выполнить операцию согласования блоков, блок оценивания движения обращается к данным опорного кадра, хранящимся в кадровой памяти 120, по линии 127. Более конкретно блок 130 оценивания движения выполняет согласование блоков путем вычисления разностных значений (к примеру, сумм абсолютных разностей), представляющих разность значений пикселов между рассматриваемым макроблоком и кандидатами наиболее совпадающих областей пикселов из опорного кадра, хранящегося в кадровой памяти 120. Разностное значение вырабатывается для областей-кандидатов при всех возможных сдвигах в пределах заранее определенной области опорного кадра, и блок 130 оценивания движения находит наименьшее вычисленное разностное значение. Сдвиг между макроблоком в текущем кадре и блоком-кандидатом из значений пикселов в опорном кадре, который задает наименьшее разностное значение, определяет вектор движения для рассматриваемого макроблока.
Когда блок 130 оценивания движения выработал вектор движения для макроблока, он выдает этот вектор движения в блок 140 кодирования поля движения. Блок 140 кодирования поля движения аппроксимирует вектор движения, принятый из блока 130 оценивания движения, с помощью модели движения, содержащей набор базисных функций и коэффициентов движения. Конкретнее блок 140 кодирования поля движения представляет вектор движения как набор значений коэффициентов движения, который при умножении на базисные функции формирует аппроксимацию вектора движения. Как правило, используется модель смещения, имеющая только два коэффициента движения и две базисных функции, но могут также использоваться модели движения большей сложности.
Коэффициенты движения проходят из блока 140 кодирования поля движения в блок 150 предсказания скомпенсированного движения. Блок 150 предсказания скомпенсированного движения также принимает из кадровой памяти 120 наиболее совпадающую область-кандидат значений пикселов, идентифицированную блоком 130 оценивания движения. С помощью аппроксимированного представления вектора движения, выработанного блоком 140 кодирования поля движения, и значений пикселов наиболее совпадающей области-кандидата из опорного кадра блок 150 предсказания скомпенсированного движения вырабатывает массив предсказанных значений пикселов для каждого блока в макроблоке. Каждый блок предсказанных значений пикселов поступает на объединитель 116, где предсказанные значения пикселов вычитаются из действующих (входных) значений пикселов в соответствующем блоке текущего макроблока. Таким образом, получается набор блоков ошибок предсказания для макроблока.
Ниже описана работа видеодекодера 200, показанного на фиг. 2. Декодер 200 содержит видеомультиплексирующий декодер 270, принимающий кодированный битовой поток 135 видеоданных от кодера 100 и демультиплексирующий его на составные части, обратный квантователь 210, обратный преобразователь 220 ДКП, блок 240 предсказания скомпенсированного движения, кадровую память 250, объединитель 230, блок 260 управления и выход 280.
Блок 260 управления управляет работой декодера 200 в ответ на то, декодируется ли ВНУТРИ- или МЕЖ-кодированный кадр. Управляющий сигнал запуска ВНУТРИ-/МЕЖ-режима, обеспечивающий переключение декодера между режимами декодирования, извлекается, например, из информации типа изображения, связанной с каждым сжатым видеокадром, принятым от кодера. Управляющий сигнал запуска ВНУТРИ-/МЕЖ-режим выделяется из закодированного битового потока видеоданных посредством видеомультиплексирующего декодера 270 и поступает по управляющей линии 215 в блок 260 управления.
Декодирование ВНУТРИ-кодированного кадра выполняется макроблок за макроблоком, причем каждый макроблок декодируется, по существу как только относящаяся к нему информация принимается в битовом потоке 135 видеоданных. Видеомультиплексирующий декодер 270 отделяет кодированную информацию для блоков в макроблоке от возможной управляющей информации, относящейся к рассматриваемому макроблоку. Кодированная информация для каждого блока во ВНУТРИ-кодированном макроблоке содержит кодовые слова переменной длины, представляющие энтропийно закодированные значения уровняи пробега для ненулевых квантованных коэффициентов ДКП в блоке. Видеомультиплексирующий декодер 270 декодирует кодовые слова переменной длины с помощью способа декодирования переменной длины, соответствующего способу кодирования, используемому в кодере 100, и благодаря этому восстанавливает значения уровня и пробега. Он затем восстанавливает массив значений квантованных коэффициентов преобразования для каждого блока в макроблоке и пропускает их на обратный квантователь 210. Любая управляющая информация, относящаяся к макроблоку, также декодируется в видеомультиплексирующем декодере с помощью подходящего способа декодирования и пропускается на блок 260 управления. В частности, информация, относящаяся к уровню квантования, применяемому к коэффициентам преобразования, выделяется из кодированного битового потока видеоданных мультиплексирующим декодером 270 и подается в блок 260 управления по управляющей линии 217. Блок управления, в свою очередь, пропускает эту информацию на обратный квантователь 210 по управляющей линии 218. Обратный квантователь 210 обратно квантует квантованные коэффициенты ДКП для каждого блока в макроблоке согласно управляющей информации и подает новые обратно квантованные коэффициенты ДКП на обратный преобразователь 220 ДКП.
Обратный преобразователь 220 ДКП выполняет обратное преобразование ДКП над обратно квантованными коэффициентами ДКП для каждого блока в макроблоке, чтобы сформировать декодированный блок информации изображения, содержащей восстановленные значения пикселов. Восстановленные значения пикселов для каждого блока в макроблоке поступают через объединитель 230 на видеовыход 280 декодера, где, к примеру, они могут подаваться на отображающее устройство (не показано). Восстановленные значения пикселов для каждого блока в макроблоке также сохраняются в кадровой памяти 250. Поскольку предсказание с компенсацией движения не используется при кодировании/декодировании ВНУТРИ-кодированных макроблоков, блок 260 управления управляет объединителем 230 для пропускания каждого блока значений пикселов как такового на видеовыход 280 и кадровую память 250. Когда декодируются и сохраняются последующие макроблоки ВНУТРИ-кодированного кадра, декодированный кадр постепенно выстраивается в кадровой памяти 250 и тем самым становится доступным для использования в качестве опорного кадра для предсказания с компенсацией движения в связи с декодированием последующих принимаемых МЕЖ-кодированных кадров.
МЕЖ-кодированные кадры декодируются макроблок за макроблоком, причем каждый МЕЖ-кодированный макроблок декодируется по существу, как только относящаяся к нему информация принимается в битовом потоке 135 видеоданных. Видеомультиплексирующий декодер 270 отделяет кодированную информацию ошибки предсказания для каждого блока в МЕЖ-кодированном макроблоке от кодированной информации вектора движения и возможной управляющей информации, относящейся к рассматриваемому макроблоку. Как пояснялось выше, кодированная информация ошибки предсказания для каждого блока в макроблоке содержит кодовые слова переменной длины, представляющие энтропийно кодированные значения уровняипробега для ненулевых квантованных коэффициентов преобразования рассматриваемого блока ошибки предсказания. Видеомультиплексирующий декодер 270 декодирует кодовые слова переменной длины с помощью способа декодирования переменной длины, соответствующего