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

Иллюстрации

Показать все

Изобретение относится к системам кодирования цифровых видеосигналов и, в частности, к указанию значений параметров квантования (QP) в системе видеокодирования. Техническим результатом является повышение эффективности кодирования цифровых видеосигналов и снижение скорости передачи данных в битах. Указанный технический результат достигается за счет того, что предложен способ и устройство для кодирования цифровой видеопоследовательности, в которых указание параметра квантования (QP) выдается в кодированном битовом потоке для использования при декодировании. Указание информации, касающейся QP, обеспечивается вводом значения SQP-параметра квантования уровня последовательности. В частности, вместо кодирования абсолютных значений параметров квантования изображения/секции выдается указание разности AQP между параметром квантования SQP уровня последовательности и QP изображения/секции. 4 н. и 32 з.п. ф-лы, 8 ил.

Реферат

Настоящая заявка основана на предварительной заявке на патент США № 60/374667, поданной 23 апреля 2002 г., и по настоящей заявке испрашивается приоритет указанной заявки.

Область техники, к которой относится изобретение

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

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

Цифровые видеопоследовательности, записанные на пленку аналогично обычным киноизображениям, содержат последовательность статических изображений, при этом иллюзия движения создается представлением изображений одного за другим, обычно с частотой 15-30 кадров в секунду.

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

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

Пространственное разрешение составляющих цветности обычно снижают методом субдискретизации. Каждый кадр видеопоследовательности обычно разбивают на, так называемые, "макроблоки", которые содержат яркостную (Y) информацию и соответствующую цветовую (U, V) информацию, которую подвергают пространственной субдискретизации.

На фиг.1 изображен один из способов, посредством которых можно сформировать макроблоки. На фиг.1 представлен кадр видеопоследовательности, использующий цветовую модель YUV, причем все составляющие имеют одинаковое пространственное разрешение. Макроблоки формируют представлением области из 16×16 пикселей изображения в виде четырех блоков яркостной информации, при этом каждый яркостной блок содержит массив из 8×8 яркостных (Y) значений и две пространственно соответствующих составляющих цветности (U и V), которые подвергают субдискретизации с коэффициентом два как по горизонтали, так и по вертикали, и в итоге получают массив из 8×8 значений цветности (U, V). В соответствии с некоторыми рекомендациями по видеокодированию, например, рекомендацией H.26L сектора телекоммуникаций Международного союза электросвязи (ITU-T), размер блока в составе макроблоков может отличаться от 8×8, например, может быть 4×8 или 4×4 (см. T. Wiegand, "Joint Model Number 1", Doc. JVT-A003, Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T VCEG, Jan. 2002, Sections 2.2 and 2.3 (документ JVT-A003 Объединенной группы экспертов по обработке видеоданных (JVT) на базе экспертной группы по кинематографии (MPEG) при ISO/IEC и экспертной группы по видеокодированию (VCEG) при ITU-T, январь 2002, разделы 2.2 и 2.3)). Рекомендация H.26L ITU-T допускает также совместную организацию макроблоков в, так называемые, "секции". А именно, каждую секцию формируют из нескольких последовательных макроблоков в порядке кодирования и кодируют так, чтобы секцию можно было декодировать независимо, без рассмотрения какой-либо другой секции того же самого кадра. Преимущество указанной схемы заключается в способности ограничивать распространение искажений в декодированных видеоданных, которые могут возникать вследствие ошибок передачи. При том, что не существует конкретных ограничений на способ возможного построения секции, существует одна простая схема, суть которой в том, что все макроблоки в одном горизонтальном ряду кадра группируют как секцию. Данная схема, вместе с разбиением изображения формата QCIF на макроблоки 16×16, показана на фиг.2.

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

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

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

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

Принадлежащие видеопоследовательности кадры, которые сжаты с использованием блочного кодирования с преобразованием независимо от любого другого кадра в последовательности, называют внутриблочно кодированными (INTRA-кодированными) или I-адрами.

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

Кадры видеопоследовательности, сжатые с использованием предсказания с компенсацией движения, обычно называют межблочно кодированными (INTER-кодированными) или предсказанными кадрами (P-кадрами). Одно лишь предсказание с компенсацией движения редко обеспечивает достаточно точное представление содержания изображения видеокадра, вследствие чего обычно необходимо обеспечивать, так называемый, кадр "ошибки предсказания" (PE-кадр) с каждым INTER-кодированным кадром. Кадр ошибки предсказания представляет различие между декодированным вариантом INTER-кодированного кадра и содержанием кодируемого кадра. В частности, кадр ошибки предсказания содержит значения, которые отражают разности между значениями пикселей в кодируемом кадре и соответствующими восстановленными значениями пикселей, сформированными на основании предсказанного варианта данного кадра. Следовательно, кадр ошибки предсказания обладает характеристиками, аналогичными статическому изображению, поэтому, чтобы сократить его пространственную избыточность и, следовательно, объем информации (число бит), необходимый для его представления, можно применить блочное кодирование с преобразованием.

Ниже действие системы видеокодирования подробно продемонстрировано на примере по фиг.3 и 4. Фиг.3 представляет принципиальную блок-схему обобщенного видеокодера, который сочетает INTRA-кодирование и INTER-кодирование с целью создания битового потока сжатых (кодированных) видеоданных. Соответствующий декодер изображен на фиг.4, а описание данного декодера приведено далее в тексте.

Видеокодер 100 содержит вход 101 для приема цифрового видеосигнала от камеры или другого источника видеоданных (не показан). Видеокодер содержит также модуль 104 преобразования, который предназначен для выполнения блочного дискретного косинусного преобразования (DCT), квантователь 106, обратный квантователь 108, модуль 110 обратного преобразования 110, предназначенный для выполнения обратного блочного дискретного косинусного преобразования (IDCT), объединители 112 и 116 и хранилище 120 кадра. Кроме того, кодер содержит модуль 130 анализа параметров движения, кодер 140 области движения и модуль 150 предсказания с компенсацией движения. Переключатели 102 и 114 действуют скоординированно с управлением от модуля управления 160, чтобы переключать кодер из режима INTRA-видеокодирования в режим INTER-видеокодирования и наоборот. Кодер 100 содержит также мультиплексный кодер 170 видеоданных, который формирует один битовый поток из разных видов информации, выдаваемой кодером 100, для последующей передачи в удаленный приемный терминал или, например, на хранение на носителе информации большой емкости, например, на жестком диске компьютера (не показан).

Кодер 100 действует следующим образом. Каждый кадр несжатого видеосигнала, поступающий из источника видеосигналов на вход 101, принимается и обрабатывается по макроблокам, в предпочтительном варианте, в порядке растрового сканирования. Когда начинается кодирование новой видеопоследовательности, первый кодируемый кадр кодируется как INTRA-кодированный кадр. Затем кодер программируется на кодирование каждого кадра в формате INTER-кодирования, пока не выполняется одно из следующих условий: 1) анализ показывает, что кодируемый на текущий момент макроблок кадра настолько сильно отличается по значениям пикселей от опорного кадра, используемого для его предсказания, что выдается информация о слишком большой ошибке предсказания, и тогда текущий макроблок кодируется в формате INTRA-кодирования; 2) закончился заданный интервал следования INTRA-кодированных кадров; или 3) из принимающего терминала поступил сигнал обратной связи с запросом передачи кадров в формате INTRA-кодирования.

Ниже приведено описание функционирования кодера 100 в режиме INTRA-кодирования. В режиме INTRA-кодирования модуль управления 160 переводит переключатель 102 в положение для приема входного видеосигнала из входной линии 118. Входной видеосигнал принимается по макроблокам, и блоки яркостных значений и значений цветности, которые составляют каждый макроблок, передаются в модуль 104 преобразования, выполняющий DCT (модуль DCT-преобразования). Данный модуль выполняет 2-ерное дискретное косинусное преобразование и формирует для каждого блока 2-мерный массив коэффициентов дискретного косинусного преобразования (DCT-коэффициентов).

DCT-коэффициенты для каждого блока передаются в квантователь 106, в котором они квантуются с использованием параметра квантования QP. Управление выбором параметра квантования QP осуществляет модуль управления 160 по линии управления 115.

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

Квантованные DCT-коэффициенты для каждого блока передаются из квантователя 106 в мультиплексный кодер 170 видеоданных, как показано линией 125 на фиг.1. Мультиплексный кодер 170 видеоданных упорядочивает квантованные коэффициенты преобразования для каждого блока с использованием процедуры зигзагообразного сканирования и, тем самым, преобразует двумерный массив квантованных значений коэффициентов преобразования в одномерный массив. Далее мультиплексный кодер 170 видеоданных обычно представляет каждый ненулевой квантованный коэффициент в составе одномерного массива парой значений, называемых уровень (level) и серия (run), где уровень дает значение квантованного коэффициента, а серия является числом последовательных коэффициентов с нулевыми значениями, предшествующими данному коэффициенту. Значения серии и уровня дополнительно сжимают статистическим кодированием. Например, можно применить такой способ, как неравномерное кодирование (VLC), для формирования множества кодовых комбинаций переменной длины, характеризующих каждую пару (серия, уровень).

По окончании статистического кодирования пар (серия, уровень) (например, кодами переменной длины) мультиплексный кодер 170 видеоданных далее объединяет указанные пары с управляющей информацией, также статистически кодированной, например, с использованием такого способа неравномерного кодирования, который подходит для информации рассматриваемого типа, чтобы сформировать один сжатый битовый поток кодированной видеоинформации 135. Именно указанный битовый поток, содержащий кодовые комбинации переменной длины, характеризующие пары (серия, уровень) и управляющую информацию, связанную, помимо прочего, с параметром квантования QP, использованным для квантования DCT-коэффициентов, передается из кодера.

В кодере 100 формируется также локально декодированный вариант макроблока. Данная операция выполняется пропусканием квантованных коэффициентов преобразования для каждого блока, выдаваемых квантователем 106, через обратный квантователь 108 и выполнением обратного DCT-преобразования в модуле 110 обратного преобразования. Обратное квантование выполняется обращением операции квантования, выполняемой в квантователе 106. В частности, обратный квантователь 108 пробует восстановить исходные значения DCT-коэффициентов для данного блока изображения умножением каждого квантованного значения DCT-коэффициента на параметр квантования QP. Из-за операции округления, выполняемой в процессе квантования квантователем 106, как правило, невозможно точно восстановить исходные значения DCT-коэффициентов. В результате, имеет место различие между восстановленными значениями DCT-коэффициентов и первоначально сформированными модулем 104 DCT-преобразования (и, следовательно, происходит вышеупомянутая необратимая потеря информации).

Операции, выполняемые обратным квантователем 108 и модулем 110 обратного преобразования, формируют реконструированный массив значений пикселей для каждого блока макроблока. Результирующие декодированные видеоданные вводятся в объединитель 112. В режиме INTRA-кодирования переключатель 114 установлен в такую позицию, чтобы на входной сигнал, подаваемый на объединитель 112 через переключатель 114, соответствовал нулю. При этом операция, выполняемая объединителем 112, эквивалентна пропусканию декодированных видеоданных без изменения.

По мере того, как последующие макроблоки текущего кадра принимаются и обрабатываются в соответствии с вышеописанными этапами кодирования и локального декодирования в модулях 104, 106, 108, 110 и 112, формируется декодированный вариант INTRA-кодированного кадра в хранилище 120 кадра. После того, как INTRA-кодируется и затем декодируется последний макроблок текущего кадра, хранилище 120 кадра содержит полностью декодированный кадр, который можно использовать как опорный кадр предсказания при кодировании последующего принятого видеокадра в INTER-кодированном формате. Флаг, указывающий на формат INTRA-кодирования или INTER-кодирования, выдается в линию 122.

Ниже приведено описание функционирования кодера 100 в режиме INTER-кодирования. В режиме INTER-кодирования модуль управления 160 переводит переключатель 102 в положение для приема его входного сигнала из линии 117, которая содержит выходной сигнал объединителя 116. Объединитель 116 принимает входной видеосигнал по макроблокам с входа 101. По мере того, как объединитель 116 принимает блоки значений яркости и цветности, которые составляют макроблок, объединитель формирует соответствующие блоки данных ошибки предсказания. Данные ошибки предсказания отражают различие, имеющее место между рассматриваемым блоком и его предсказанием и определяемое модулем 150 предсказания с компенсацией движения. В частности, данные ошибки предсказания для каждого блока макроблока содержат двумерный массив значений, каждое из которых представляет собой разность между значением пикселя в блоке кодируемой яркостной или цветовой информации и декодированным значением пикселя, полученным формированием для блока предсказания с компенсацией движения в соответствии с нижеописанной процедурой.

Данные ошибки предсказания для каждого блока макроблока передаются в модуль 104 DCT-преобразования, который выполняет двумерное дискретное косинусное преобразование в отношении каждого блока значений ошибки предсказания, чтобы создать двумерный массив коэффициентов DCT-преобразования для каждого блока.

Коэффициенты преобразования для каждого блока ошибки предсказания передаются в квантователь 106, в котором они квантуются с использованием параметра квантования QP аналогично тому, как изложено выше в связи с функционированием кодера в режиме INTRA-кодирования. И вновь, управление выбором параметра квантования QP осуществляет модуль управления 160 по линии управления 115. Точность кодирования ошибки предсказания можно скорректировать в зависимости от доступной полосы пропускания и/или необходимого качества кодированных видеоданных. В характерной системе с дискретным косинусным преобразованием (DCT) указанную операцию выполняют изменением параметра квантования (QP), используемого при квантовании DCT-коэффициентов с заданной точностью.

Квантованные DCT-коэффициенты, представляющие данные ошибки предсказания для каждого блока макроблока, передаются из квантователя 106 в мультиплексный кодер 170 видеоданных, как показано линией 125 на фиг.1. Аналогично режиму INTRA-кодирования мультиплексный кодер 170 видеоданных упорядочивает коэффициенты преобразования для каждого блока ошибки предсказания с использованием процедуры зигзагообразного сканирования, а затем представляет каждый ненулевой квантованный коэффициент в виде пары (серия, уровень). Упомянутый кодер дополнительно сжимает пары (серия, уровень) с использованием статистического кодирования, аналогично тому, как изложено выше в связи с режимом INTRA-кодирования. Кроме того, мультиплексный кодер 170 видеоданных принимает данные вектора движения (описание следует) из кодера 140 области движения по линии 126 и управляющую информацию (например, с указанием параметра квантования QP) из модуля управления 160. Указанный кодер статистически кодирует данные вектора движения и управляющую информацию и формирует один битовый поток кодированной видеоинформации 135, содержащей статистически кодированные данные вектора движения и ошибки предсказания и статистически кодированную управляющую информацию. Указание, qz, параметра квантования QP передается в мультиплексный кодер 170 видеоданных по линии 124.

Квантованные DCT-коэффициенты, представляющие данные ошибки предсказания для каждого блока макроблока, передаются также из квантователя 106 в обратный квантователь 108. Здесь они обрабатываются методом обратного квантования аналогично тому, как изложено выше в связи с функционированием кодера в режиме INTRA-кодирования. В режиме INTER-кодирования, качество кодированных видеоданных в битовом потоке и число бит, необходимое для представления видеопоследовательности, можно скорректировать изменением степени квантования для DCT-коэффициентов, представляющих собой данные ошибки предсказания.

Результирующие блоки обратно квантованных DCT-коэффициентов подаются в модуль 110 обратного DCT-преобразования, где подвергаются обратному DCT-преобразованию для формирования локально декодированных блоков значений ошибок предсказания. Затем локально декодированные блоки значений ошибок предсказания вводятся в объединитель 112. В режиме INTER-кодирования переключатель 114 установлен в такую позицию, чтобы в объединитель 112 поступали также предсказанные значения пикселей для каждого блока макроблока, сформированные в модуле 150 предсказания с компенсацией движения. Объединитель 112 объединяет каждый из локально декодированных блоков значений ошибок предсказания с соответствующим блоком предсказанных значения пикселей с целью формирования восстановленных блоков изображения и вводит их в хранилище 120 кадра.

По мере того, как последующие макроблоки видеосигнала принимаются из источника видеосигнала и обрабатываются в соответствии с вышеописанными этапами кодирования и декодирования в модулях 104, 106, 108, 110, 112 формируется декодированный вариант кадра в хранилище 120 кадра. После того, обрабатывается последний макроблок кадра, хранилище 120 кадра содержит полностью декодированный кадр, который можно использовать как опорный кадр предсказания при кодировании последующего принятого видеокадра в INTER-кодированном формате.

Ниже описан процесс формирования предсказания для макроблока текущего кадра. Любой кадр, кодируемый в формате INTER-кодирования, нуждается в опорном кадре для предсказания с компенсацией движения. Это непременно означает, что, при кодировании видеопоследовательности, первый кодируемый кадр, неважно, первый ли это кадр последовательности или какой-либо другой кадр, следует кодировать в формате INTRA-кодирования. Из этого, в свою очередь, следует, что, когда модуль управления 160 переключает видеокодер 100 в режим INTER-кодирования, опорный кадр, сформированный локальным декодированием ранее кодированного кадра, уже целиком существует в хранилище 120 кадра кодера. В общем, опорный кадр формируется локальным декодированием либо INTRA-кодированного кадра, либо INTER-кодированного кадра.

Первый этап формирования предсказания для макроблока текущего кадра выполняется в модуле 130 анализа параметров движения. Модуль 130 анализа параметров движения принимает блоки значений яркости и цветности, которые составляют текущий макроблок кадра, подлежащего кодированию, по линии 128. Затем указанный модуль выполняет операцию сопоставления блоков, чтобы выявить на опорном кадре область, которая, по существу, соответствует текущему макроблоку. Чтобы выполнить операцию сопоставления блоков, модуль анализа параметров движения обращается к данным опорного кадра, хранящимся в хранилище 120 кадра, по линии 127. В частности, модуль 130 анализа параметров движения выполняет сопоставление блоков вычислением разностных значений (например, сумм абсолютных разностей), отражающих различия между значениями пикселей анализируемого макроблока и соответствующими значениями у возможных вариантов оптимально совпадающих областей пикселей из опорного кадра, хранящегося в хранилище 120 кадра. Разностное значение рассчитывается для возможных вариантов областей во всех возможных позициях в пределах заданной области поиска опорного кадра, а модуль 130 анализа параметров движения определяет минимальное расчетное разностное значение. Смещение между макроблоком текущего кадра и возможным вариантом блока значений пикселей из опорного кадра, в точке минимального вышеупомянутого разностного значения, определяет вектор движения для данного макроблока.

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

Коэффициенты движения передаются из модуля 140 кодирования области движения в модуль 150 предсказания с компенсацией движения. Модуль 150 предсказания с компенсацией движения принимает также оптимально совпадающий возможный вариант области значений пикселей, найденный модулем 130 анализа параметров движения в хранилище 120 кадра. При использовании приближенного представления вектора движения, сформированного модулем 140 кодирования области движения, и значений пикселей оптимально совпадающего возможного варианта области из опорного кадра, модуль 150 предсказания с компенсацией движения формирует массив предсказанных значений пикселей для каждого блока макроблока. Каждый блок предсказанных значений пикселей передается в объединитель 116, который вычитает предсказанные значения пикселей из фактических (входных) значений пикселей соответствующего блока текущего макроблока и таким образом формирует множество блоков ошибок предсказания для макроблока.

Ниже приведено описание функционирования видеодекодера 200, показанного на фиг.4. Декодер 200 содержит мультиплексный декодер 270 видеоданных, который принимает битовый поток кодированных видеоданных 135 из кодера 100 и демультиплексирует упомянутый поток на его составные части, обратный квантователь 210, модуль 220 обратного DCT-преобразования, модуль 240 предсказания с компенсацией движения, хранилище 250 кадра, объединитель 230, модуль управления 260 и выход 280.

Модуль управления 260 управляет работой декодера 200 в зависимости от того, выполняется ли декодирование INTRA-кодированного или INTER-кодированного кадра. Управляющий сигнал включения режимов INTRA-/INTER-кодирования, который предписывает декодеру переключаться из одного режима декодирования в другой, выводится, например, из информации о типе изображения, связанной с каждым сжатым видеокадром, полученным из кодера. Управляющий сигнал включения режимов INTRA-/INTER-кодирования выделяется из битового потока кодированных видеоданных мультиплексным декодером 270 видеоданных и передается в модуль управления 260 по линии управления 215.

INTRA-кодированный кадр декодируется по макроблокам. Мультиплексный декодер 270 видеоданных отделяет кодированную информацию, относящуюся к блокам макроблока, от возможной управляющей информации, касающейся данного макроблока. Кодированная информация по каждому блоку INTRA-кодированного макроблока содержит кодовые комбинации переменной длины, представляющие неравномерно кодированные (методом VLC) значения уровня и серии для ненулевых квантованных DCT-коэффициентов блока. Мультиплексный декодер 270 видеоданных декодирует кодовые комбинации переменной длины с использованием способа декодирования полей переменной длины, соответствующего способу кодирования, использованному в кодере 100, и, тем самым, восстанавливает пары (серия, уровень). Затем декодер восстанавливает массив квантованных значений коэффициентов преобразования для каждого блока макроблока и передает упомянутые значения в обратный квантователь 210. Любая управляющая информация, касающаяся макроблока, также декодируется в мультиплексном декодере 270 видеоданных с использованием соответствующего способа декодирования и передается в модуль управления 260. В частности, информация, касающаяся уровня квантования коэффициентов преобразования (т.е. параметр квантования QP), выделяется из кодированного битового потока мультиплексным декодером 270 видеоданных и передается в модуль управления 260 по линии управления 217. Модуль управления, в свою очередь, передает указанную информацию в обратный квантователь 210 по линии управления 218. Обратный квантователь 210 выполняет обратное квантование квантованных DCT-коэффициентов для каждого блока макроблока в соответствии с управляющей информацией, касающейся параметра квантования QP, и выдает уже обратно квантованные DCT-коэффициенты в модуль 220 обратного DCT-преобразования. Операция обратного квантования, выполняемая обратным квантователем 210, идентична операции, выполняемой обратным квантователем 108 в кодере.

Модуль 220 обратного DCT-преобразования выполняет обратное DCT-преобразование обратно квантованных DCT-коэффициентов для каждого блока макроблока, чтобы сформировать декодированный блок видеоинформации, содержащий восстановленные значения пикселей. Восстановленные значения пикселей передаются через объединитель 230 на выход 280 видеоданных декодера, с которого, например, они могут быть переданы в дисплей (не показан). Восстановленные значения пикселей для каждого блока макроблока вводятся также в хранилище 250 кадра. Предсказание с компенсацией движения не применяется при кодировании/декодировании INTRA-кодированных макроблоков, поэтому в данном случае модуль управления 260 предписывает объединителю 230 передавать каждый блок значений пикселей без изменения на выход 280 видеоданных и в хранилище 250 кадра. По мере того, как декодируются и вводятся в память последующие макроблоки INTRA-кодированного кадра, в хранилище 250 кадра постепенно компонуется декодированный кадр, который становится доступен для использования в качестве опорного кадра для предсказания с компенсацией движения в связи с декодированием принятых впоследствии INTER-кодированных кадров.

INTER-кодированные кадры также декодируются по макроблокам. Мультиплексный декодер 270 видеоданных принимает битовый поток 135 кодированных видеоданных и отделяет кодированные данные ошибки предсказания для каждого блока INTER-кодированного макроблока от кодированных данных вектора движения и возможной управляющей информации, касающейся рассматриваемого макроблока. В соответствии с вышеизложенным, кодированные данные ошибки предсказания для каждого блока макроблока обычно содержат кодовые комбинации переменной длины, представляющие значения уровня и серии для ненулевых квантованных коэффициентов преобразования рассматриваемого блока ошибки предсказания. Мультиплексный декодер 270 видеоданных декодирует кодовые комбинации переменной длины с использованием способа декодирования полей переменной длины, соответствующего способу кодирования, использованному в кодере 100, и, тем самым, восстанавливает пары (серия, уровень). Затем декодер восстанавливает массив квантованных значений коэффициентов преобразования для каждого блока ошибки предсказания и передает указанные значения в обратный квантователь 210. Управляющая информация, касающаяся INTER-кодированного макроблока, также декодируется в мультиплексном декодере 270 видеоданных с использованием соответствующего способа декодирования и передается в модуль управления 260. Информация, касающаяся уровня квантования (QP) коэффициентов преобразования блоков ошибки предсказания, выделяется из кодированного битового потока и передается в модуль управления 260 по линии управления 217. Модуль управления, в свою очередь, передает указанную информацию в обратный квантователь 210 по линии управления 218. Обратный квантователь 210 выполняет обратное квантование квантованных DCT-коэффициентов, представляющих данные ошибки предсказания для каждого блока макроблока, в соответствии с управляющей информацией, касающейся параметра квантования QP, и выдает уже обратно квантованные DCT-коэффициенты в модуль 220 обратного DCT-преобразования. И вновь операция обратного квантования, выполняемая обратным квантователем 210, идентична операции, выполняемой обратным квантователем 108 в кодере. Флаг режима INTRA/INTER выдается в линию 215.

Затем в модуле 220 обратного DCT-преобразования выполняется обратное преобраз