КОДИРОВАНИЕ КОЭФФИЦИЕНТОВ ПРЕОБРАЗОВАНИЯ В КОДЕРАХ И/ИЛИ ДЕКОДЕРАХ ИЗОБРАЖЕНИЯ И ВИДЕОДАННЫХ
CONVERSION FACTOR CODING IN IMAGE AND VIDEODATA CODERS AND/OR DECODERS

Область техники
Изобретение относится к способу, системе и устройству для кодирования цифрового видеосигнала. Более конкретно, настоящее изобретение относится к кодированию квантованных коэффициентов преобразования, формируемых в результате кодирования на основе блочного преобразования в кодере/декодере видеоданных и изображений с использованием кодирования переменной длины.
Предшествующий уровень техники
Последовательности цифровых видеосигналов, подобные обычным движущимся изображениям, записанным на пленку, содержат последовательность неподвижных изображений, причем иллюзия движения создается путем последовательного отображения изображений при относительно высокой скорости, в типовом случае от 15 до 30 кадров в секунду. Ввиду относительно высокой скорости отображения изображения в последовательных кадрах обладают высокой степенью сходства и, следовательно, содержат значительный объем избыточной информации. Например, типовой эпизод может содержать несколько стационарных элементов, таких как элементы, образующие фон, и несколько участков движущегося изображения, которые могут иметь множество форм, например лицо диктора, движущийся поток транспорта и т.д. Альтернативно камера, снимающая сцену, сама может быть движущейся, и в этом случае всем элементам изображения свойственен один и тот же характер движения. Во многих случаях это означает, что общее изменение от одного видеокадра к другому весьма мало.
Каждый кадр несжатой последовательности цифровых видеоданных содержит массив пикселов изображения. Например, в обычно используемом формате цифровых видеоданных, известном как QCIF (формат обмена сжатыми видеоданными с уменьшенным вчетверо разрешением), кадр содержит массив из 176х144 пиксела, причем в этом случае каждый кадр имеет 25344 пиксела. В свою очередь, каждый пиксел представлен определенным числом битов, которые несут информацию о яркости и/или цвете области изображения, соответствующей пикселу. Обычно используется так называемая модель цвета YUV для представления яркости и цветности изображения. Компонент яркость или Y представляет интенсивность (яркость) изображения, в то время как цветовое содержимое изображения представлено двумя компонентами: компонентом цветности или цветоразностным компонентом, обозначенными соответственно U и V.
Цветовые модели, основанные на представлении яркости/ цветности, содержимого изображения, имеют некоторые недостатки по сравнению с цветовыми моделями, которые основаны на представлении, связанном с основными цветами (т.е. RGB - красный, синий, зеленый). Зрительная система человека более чувствительна вариациям интенсивности, чем к вариациям цвета, и цветовые модели YUV используют это свойство путем использования меньшего пространственного разрешения для компонентов цветности (U,V), чем для компонента яркости (Y). Таким путем можно уменьшить объем информации, требуемый для кодирования цветовой информации в изображении при допустимом снижении качества изображения.
Более низкое пространственное разрешение компонентов цветности обычно реализуется за счет субдискретизации. В типовом случае каждый кадр последовательности видеоданных делиться на так называемые макроблоки, которые содержат информацию яркости (Y) и связанную информацию цветности (U,V), которая подвергнута субдискретизации по пространству. Фиг. 3 иллюстрирует возможный способ формирования макроблоков, где показан кадр последовательности видеоданных, представленный с использованием цветовой модели YUV, причем каждый компонент имеет одинаковое пространственное разрешение. Макроблоки сформированы путем представления области 16х16 пикселов изображения на исходном изображении как четыре блока информации яркости, причем каждый блок информации яркости содержит массив 8х8 значений яркости (Y), и два пространственно соответствующих компонента цветности (U и V), которые подвергнуты субдискретизации с коэффициентом 2 по направлениям х и у для получения соответствующих массивов 8х8 значений (U,V) цветности. Соответственно некоторым рекомендациям кодирования видеоданных, таких как рекомендация Международного Союза по телекоммуникациям (ITU-T) Н.26l, размер базового блока, используемого в макроблоках, может быть иным, чем 8х8, например, таким как 4х8 или 4х4 (см. G.Bjontegaard,”H.26L Test Model Long Term Number 8 (TML-8) draft 0”, VCEG-N10, June 2001, section 2.3).
Изображение 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 кбит/с. Это означает, что должно быть произведено значительное сокращение объема информации, используемой для представления видеоданных, чтобы можно было осуществить передачу последовательностей цифровых видеоданных в сетях связи с малой шириной полосы. По этой причине были разработаны методы сжатия видеоданных, которые сокращают объем передаваемой информации при сохранении приемлемого качества изображения.
Методы сжатия видеоданных основаны на сокращении избыточных и нерелевантных для восприятия частей последовательностей видеоданных. Избыточность в последовательностях видеоданных может быть подразделена на пространственную, временную и спектральную. Термин «пространственная избыточность» используется для описания корреляции (меры сходства) между смежными пикселами в кадре. Термин «временная избыточность» отражает тот факт, что объекты, появляющиеся в одном кадре последовательности, с большой вероятностью появятся в последующих кадрах, а «спектральная избыточность» относится к корреляции между различными цветовыми компонентами одного и того же изображения.
В достаточной степени эффективное сжатие обычно не может быть достигнуто простым снижением различных форм избыточности в заданной последовательности изображений. Таким образом, большинство современных кодеров видеоданных также снижают качество тех частей последовательности видеоданных, которые являются субъективно менее важными. Дополнительно избыточность сжатого битового потока видеоданных снижается за счет эффективного кодирования без потерь. В принципе, это достигается с использованием метода, известного как статистическое кодирование.
Часто имеется значительная степень пространственной избыточности между пикселами, которые образуют каждый кадр последовательности цифровых видеоданных. Иными словами, значение любого пиксела в кадре последовательности по существу то же самое, что и значение других пикселов в непосредственной близости. В типовом случае системы кодирования видеоданных снижают пространственную избыточность путем использования метода, известного как кодирование на основе блочного преобразования, в котором математическое преобразование применяется к пикселам изображения на основе макроблоков. Кодирование на основе преобразования преобразует данные изображения из представления, содержащего значения пикселов, в форму, содержащую набор значений коэффициентов, каждый из которых является весовым коэффициентом (множителем) для базовой функции соответствующего преобразования. С использованием определенных математических преобразований, таких как двумерное дискретное косинусное преобразование (ДКТ), пространственная избыточность в кадре последовательности цифровых видеоданных может быть существенным образом снижена, тем самым обеспечивая более компактное представление данных изображения.
Кадры последовательности видеоданных, которые сжаты с использованием кодирования на основе блочного преобразования, без ссылки на какие-либо другие кадры в последовательности называются INTRA («внутри»)-кодированными кадрами или I-кадрами. Кроме того, где возможно, блоки INTRA-кодированных кадров прогнозируются из предыдущих кодированных блоков внутри того же самого кадра. Этот метод, известный как INTRA-прогнозирование, позволяет дополнительно уменьшить объем данных, требуемых для представления INTRA-кодированного кадра.
В общем случае системы кодирования видеоданных не только снижают пространственную избыточность внутри индивидуальных кадров последовательности видеоданных, но и используют метод, известный как «прогнозирование с компенсацией движения», для снижения временной избыточности в последовательности. С использованием прогнозирования с компенсацией движения содержимое изображения некоторых (часто многих) кадров в последовательности цифровых видеоданных «прогнозируется» из одного или нескольких кадров в последовательности, известных как «эталонные» или «опорные» кадры. Прогнозирование содержимого изображения достигается отслеживанием движения объектов или участков изображения между кадрами, подлежащими кодированию (сжатию), и опорным кадром (кадрами) с использованием «векторов движения». В принципе опорный кадр (кадры) может предшествовать кадру, который должен кодироваться, или может следовать за ним в последовательности видеоданных. Как в случае INTRA-кодирования, прогнозирование с компенсацией движения кадра видеоданных обычно выполняется на основе макроблоков.
Кадры, которые сжимаются с использованием прогнозирования с компенсацией движения, в общем случае называются INTER («между»)-кодированными кадрами или Р-кадрами. Одно только кодирование с компенсацией движения едва ли обеспечит достаточно точное представление содержания изображения кадра видеоданных, и поэтому обычно необходимо обеспечить так называемый кадр «ошибки прогнозирования» (РЕ-кадр) с каждым INTER-кодированным кадром. Кадр ошибки прогнозирования представляет разность между декодированной версией INTER-кодированного кадра и содержанием изображения кадра, который должен кодироваться. Более конкретно, кадр ошибки прогнозирования содержит значения, которые представляют разность между значениями пикселов в кадре, который должен кодироваться, и соответствующими значениями воспроизведенных пикселов, сформированных на основе спрогнозированной версии данного кадра. Следовательно, кадр ошибки прогнозирования имеет характеристики, подобные неподвижному изображению, и кодирование на основе блочного преобразования может быть применено для снижения его пространственной избыточности и, следовательно, объема данных (числа битов), требуемых для его представления.
Для иллюстрации работы системы кодирования видеоданных более подробно ссылки ниже даются на фиг. 1 и 2. На фиг. 1 представлена блок-схема обобщенного кодера видеоданных, который использует комбинации INTRA- и INTER-кодирования для формирования сжатого (кодированного) битового потока видеоданных. Соответствующий декодер показан на фиг. 2 и описан ниже.
Кодер 100 видеоданных содержит вход 101 для приема сигнала цифровых видеоданных с камеры или иного источника видеоданных (не показано). Он также содержит блок 104 преобразования, который выполнен с возможностью осуществления блочного дискретного косинусного преобразования (ДКП), квантователь 106, обратный квантователь 108, блок 110 обратного преобразования, выполненный с возможностью осуществления обратного блочного дискретного косинусного преобразования (ОДКП), блоки 112 и 116 объединения и память 120 кадра. Кодер также содержит блок 130 оценки движения, кодер 140 поля движения и блок 150 прогнозирования с компенсацией движения. Переключатели 102 и 114 действуют взаимосвязанно под управлением блока 160 управления, чтобы переключать кодер между кодированием видеоданных в INTRA-режиме и кодированием видеоданных в INTER-режиме. Кодер 100 также содержит кодер 170 мультиплексирования видеоданных, который формирует единый битовый поток из различных типов информации, формируемой кодером 100, для последующей передачи к удаленному принимающему терминалу или, например, для хранения на носителе в массовой памяти, например, на накопителе на жестких дисках компьютера (не показано).
Кодер 100 работает следующим образом. Каждый кадр несжатых видеоданных, поданных от источника видеоданных на вход 101, принимается и обрабатывается на основе макроблоков, предпочтительно в порядке растрового сканирования. Когда начинается кодирование новой последовательности видеоданных, первый кадр, подлежащий кодированию, кодируется как INTRA-кодированный кадр. Затем кодер программируется для кодирования каждого кадра в формате INTER-кодирования, если только не удовлетворено одно из следующих условий: 1) принимается решение, что текущий макроблок кодируемого кадра настолько отличается от значений пикселов в опорном кадре, использованном для его прогнозирования, что вырабатывается информация чрезмерной ошибки прогнозирования, и в этом случае текущий макроблок кодируется в формате INTRA-кодирования, 2) истек предварительно определенный интервал повторения INTRA-кадра или 3) получена обратная связь от принимающего терминала, указывающая на запрос кадра, который должен быть обеспечен в формате NTRA-кодирования.
Появление условия (1) определяется путем контроля выходного результата блока 116 объединения. Блок 116 объединения образует разность между текущим макроблоком кодируемого кадра и его прогнозом, вырабатываемым в блоке 150 кодирования с компенсацией движения. Если мера этой разности (например, сумма абсолютных разностей значений пикселов) превышает предварительно определенный порог, то блок 116 объединения информирует блок 160 управления по управляющей линии 119, и блок 160 управления приводит в действие переключатели 102 и 114 по управляющей линии 113 таким образом, чтобы переключить кодер 100 в режим INTRA-кодирования. Таким путем кадр, который в противном случае кодировался бы в INTER-формате, может содержать макроблоки, кодированные в INTRA-режиме. Появление условия (2) контролируется посредством таймера или счетчика кадров, реализованного в блоке 160 управления таким образом, что когда отсчет времени установки таймера истекает, или если счетчик кадров отсчитывает предварительно определенное число кадров, то блок 160 управления приводит в действие переключатели 102 и 114 посредством управляющей линии 113 для переключения кодера в режим INTRA-кодирования. Условие (3) запускается, если блок 160 управления принимает сигнал обратной связи от, например, принимающего терминала посредством управляющей линии 121, указывающий, что принимающий терминал требует обновления INTRA-кадра. Такое условие может возникнуть, например, если ранее переданный кадр сильно искажен помехами при передаче, что приводит к невозможности его декодирования в приемнике. В этой ситуации принимающий декодер выдает запрос на кодирование следующего кадра в формате INTRA-кодирования, тем самым повторно инициализируя последовательность кодирования.
Ниже описана работа кодера 100 в режиме INTRA-кодирования. В режиме INTRA-кодирования блок 160 управления приводит в действие переключатель 102 для приема входных видеоданных из входной линии 118. Входной сигнал видеоданных принимается на основе макроблоков с входа 101 посредством входной линии 118. Принятые блоки значений яркости и цветности, которые составляют макроблок, проходят на блок 104 преобразования ДКП, который выполняет двумерное дискретное косинусное преобразование по каждому блоку значений, формируя двумерный массив коэффициентов ДКП для каждого блока. Блок 104 преобразования ДКП вырабатывает массив значений коэффициентов для каждого блока, причем число значений коэффициентов зависит от характера блоков, которые образуют макроблоки. Например, если размер базового блока, используемого в макроблоке, равен 4х4, то блок 104 преобразования ДКП вырабатывает массив 4х4 коэффициентов ДКП для каждого блока. Если размер блока есть 8х8, то формируется массив 8х8 коэффициентов ДКП.
Коэффициенты ДКП для каждого блока поступают в квантователь 106, где они квантуются с использованием параметра квантования QP. Выбор параметра квантования QP управляется блоком 160 управления через управляющую линию 115. Квантование вводит потери информации, так как квантованные коэффициенты имеют более низкую численную точность, чем коэффициенты, первоначально сформированные блоком 104 преобразования ДКП. Это обеспечивает дополнительный механизм, посредством которого объем данных, требуемых для представления каждого изображения в последовательности видеоданных, может быть уменьшен. Однако в отличие от преобразования ДКП, которое по существу осуществляется без потерь, потери, вносимые квантованием, обуславливают необратимое ухудшение качества изображения. Чем выше степень квантования, применяемая к коэффициентам ДКП, тем выше потери качества изображения.
Квантованные коэффициенты ДКП для каждого блока поступают с квантователя 106 на кодер 170 мультиплексирования видеоданных, как показано линией 125 на фиг. 1. Кодер 170 мультиплексирования видеоданных упорядочивает квантованные коэффициенты преобразования для каждого блока с использованием процедуры зигзагообразного сканирования. Эта операция преобразует двумерный массив квантованных коэффициентов преобразования в одномерный массив. Типовые порядки зигзагообразного сканирования, например, для массива 4х4, показанного на фиг.4, упорядочивают коэффициенты приближенно в нисходящем порядке пространственной частоты. Это также имеет тенденцию к упорядочиванию коэффициентов по их значениям, так что коэффициенты, позиционированные раньше в одномерном массиве, более вероятно будут иметь большие абсолютные значения, чем коэффициенты, позиционированные позже в массиве. Это объясняется тем, что более низкие пространственные частоты имеют с большей вероятностью более высокие амплитуды в блоках изображения. Следовательно, значения, возникающие в конце одномерного массива квантованных коэффициентов преобразования, стремятся к нулю.
В типовом случае кодер 170 мультиплексирования видеоданных представляет каждый ненулевой квантованный коэффициент в одномерном массиве двумя значениями, называемыми «уровень» и «серия» (диапазон значений). Уровень - это значение квантованного коэффициента, а серия - это число последовательных нулевых коэффициентов, предшествующий данному коэффициенту. Значения «уровень» и «серия» для данного коэффициента упорядочены таким образом, что значение «уровень» предшествует ассоциированному значению «серии». Значение «уровня», равное нулю, используется для указания, что больше нет ненулевых значений коэффициентов в блоке. Это значение «0-уровень» определяется как символ ЕОВ (конец блока).
Альтернативно каждый квантованный коэффициент ненулевого значения в одномерном массиве может быть представлен тремя значениями («серия», «уровень», «последний»). Значения «уровень» и «серия» идентичны тем, которые определены в предыдущей схеме, а «последний» указывает на то, имеются ли другие коэффициенты ненулевых значений в одномерном массиве, следующие за текущим коэффициентом. Следовательно, нет необходимости в отдельном символе ЕОВ.
Значения «серия» и «уровень» (и «последний», если применяется) затем сжимаются с использованием статистического кодирования. Статистическое кодирование представляет собой операцию без помех, которая использует тот факт, что символы в наборе данных, подлежащем кодированию, в общем случае имеют разные вероятности появления. Поэтому вместо использования фиксированного числа битов для представления каждого символа назначается переменное число битов, так что символы, которые возникают с более высокой вероятностью, представляются кодовыми словами, имеющими меньшее число битов. По этой причине статистическое кодирование часто называют кодированием переменной длины. Поскольку появление определенных значений «уровней» и «серий» более вероятно, чем появление других значений, то методы статистического кодирования могут использоваться более эффективно для сокращения числа битов, требуемых для представления значений «серий» и «уровней».
Если значения «серий» и «уровней» кодированы статистически, то кодер 170 мультиплексирования видеоданных далее комбинирует их с информацией управления, также статистически кодированной с использованием способа кодирования переменной длины, подходящего для рассматриваемого типа информации, для формирования единого сжатого битового потока кодированной информации 135 изображения. Именно этот битовый поток, включающий в себя кодовые слова переменной длины, представляющие пары значений («серия», «уровень»), передается из кодера.
Хотя статистическое кодирование описано во взаимосвязи с операциями, выполняемыми кодером 170 мультиплексирования видеоданных, следует отметить, что в альтернативных вариантах осуществления может быть предусмотрен отдельный блок статистического кодирования.
Локально декодированная версия макроблока также формируется в кодере 100. Это делается путем пропускания квантованных коэффициентов преобразования для каждого блока, выведенных квантователем 106, через обратный квантователь 108 и применения обратного преобразования ДКП в блоке 110 обратного преобразования. Таким способом восстановленный массив значений пикселов формируется для каждого блока макроблока. Полученные в результате декодированные данные изображения вводятся в блок 112 объединения. В режиме INTRA-кодирования переключатель 114 устанавливается так, что вход в блок 112 объединения через переключатель 114 является нулевым. За счет этого операция, выполняемая блоком 112 объединения, является эквивалентной пропусканию декодированных данных изображения неизменными.
По мере того как последующие макроблоки текущего кадра принимаются и подвергаются вышеописанным этапам кодирования и локального декодирования в блоках 104, 106, 108, 110 и 112, декодированная версия INTRA-кодированного кадра формируется в памяти 120 кадра. После того как последний макроблок текущего кадра будет INTRA-кодирован и затем декодирован, в памяти 120 кадра будет содержаться полностью декодированный кадр, доступный для использования в качестве опорного кадра прогнозирования при кодировании последующего принимаемого кадра в формате INTER-кодирования.
Ниже описана работа кодера 100 в режиме INTER-кодирования. В режиме INTER-кодирования блок 160 управления приводит в действие переключатель 102 для обеспечения поступления на него входных данных по линии 117, которые являются выходными данными блока 116 объединения. Блок 116 объединения получает входной сигнал видеоданных на основе макроблоков с входа 101. Блок 116 объединения получает блоки яркости и цветности, которые образуют макроблок, и формирует соответствующие блоки информации ошибки прогнозирования. Информация ошибки прогнозирования представляет разность между данным блоком и его прогнозом, сформированным в блоке 150 прогнозирования с компенсацией движения. Более конкретно, информация ошибки прогнозирования для каждого блока макроблока содержит двумерный массив значений, каждое из которых представляет разность между значением пиксела в кодируемом блоке информации яркости или цветности и декодированным значением пиксела, полученным путем формирования прогноза со скомпенсированным движением для данного блока, согласно процедуре, описанной ниже. Таким образом, в ситуации, когда каждый макроблок содержит, например, совокупность из 4х4 блоков, содержащих значения яркости и цветности, информация ошибки прогнозирования для каждого блока макроблока аналогично содержит массив из 4х4 значений ошибки прогнозирования.
Информация ошибки прогнозирования для каждого блока макроблока подается на блок 104 преобразования ДКП, который выполняет двумерное дискретное косинусное преобразование по каждому блоку значений ошибки прогнозирования для формирования двумерного массива коэффициентов преобразования ДКП для каждого блока. Блок 104 преобразования ДКП формирует массив значений коэффициентов для каждого блока ошибки прогнозирования, причем число значений коэффициентов зависит от характера блоков, которые образуют макроблок. Например, если размер базового блока, используемого в макроблоке, составляет 4х4, то блок 104 преобразования ДКП формирует массив из 4х4 коэффициентов ДКП для каждого блока ошибки прогнозирования. Если размер блока равен 8х8, то формируется массив 8х8 коэффициентов ДКП.
Коэффициенты преобразования для каждого блока ошибки прогнозирования поступают на квантователь 106, где они квантуются с использованием параметра квантования QP аналогично тому, как описано в связи с работой кодера в режиме INTRA-кодирования. Вновь выбор параметра квантования QP управляется блоком 160 управления посредством управляющей линии 115.
Квантованные коэффициенты ДКП, представляющие информацию ошибки прогнозирования для каждого блока макроблока, поступают с квантователя 106 на кодер 170 мультиплексирования видеоданных, как показано линией 125 на фиг. 1. Как в режиме INTRA-кодирования, кодер 170 мультиплексирования видеоданных упорядочивает коэффициенты преобразования для каждого блока ошибок прогнозирования с использованием ранее описной процедуры зигзагообразного сканирования (см. фиг. 4) и затем представляет каждый ненулевой квантованный коэффициент как значение «уровня» и «серии». Дополнительно он сжимает значения «уровня» и «серии» с использованием статистического кодирования способом, аналогичным описанному выше в связи с режимом INTRA-кодирования. Кодер 170 мультиплексирования видеоданных также получает информацию вектора движения (описанного ниже) с блока 140 кодирования поля движения по линии 126 и информацию управления с блока 160 управления. Он осуществляет статистическое кодирование информации вектора движения и информации управления и формирует единый битовый поток 135 кодированной информации изображения, содержащий статистически кодированный вектор движения, вектор прогнозирования и информацию управления.
Квантованные коэффициенты ДКП, представляющие информацию ошибки прогнозирования для каждого блока макроблока, также подаются с квантователя 106 на обратный квантователь 108. Здесь они подвергаются обратному квантованию, и полученные в результате блоки коэффициентов ДКП, подвергнутых обратному квантованию, подаются на блок 110 обратного преобразования ДКП, где они подвергаются обратному преобразованию ДКП для формирования локально декодированных блоков значений ошибки прогнозирования. Локально декодированные блоки значений ошибки прогнозирования затем вводятся в блок 112 объединения. В режиме INTER-кодирования переключатель 114 устанавливается так, что блок 112 объединения также получает прогнозированные значения пикселов для каждого блока макроблока, сформированного блоком 150 прогнозирования с компенсацией движения. Блок 112 объединения объединяет каждый из локально декодированных блоков значений ошибки прогнозирования с соответствующим блоком прогнозированных значений пикселов для формирования блоков восстановленного изображения и сохраняет их в памяти 120 кадра.
По мере того как последующие макроблоки сигнала видеоданных принимаются от источника видеоданных и подвергаются вышеописанным этапам кодирования и декодирования в блоках 104, 106, 108, 110 и 112, декодированная версия кадра формируется в памяти 120 кадра. После того как последний макроблок кадра будет обработан, в памяти 120 кадра будет содержаться полностью декодированный кадр, доступный для использования в качестве опорного кадра прогнозирования при кодировании последующего принимаемого кадра видеоданных в формате INTER-кодирования.
Ниже описано прогнозирование для макроблока текущего кадра. Любой кадр, кодированный в формате INTER-кодирования, требует опорного кадра для прогнозирования с компенсацией движения. Это означает, что при кодировании последовательности видеоданных первый кадр, подлежащий кодированию, независимо от того, является ли он первым кадром в последовательности или некоторым иным кадром, должен обязательно кодироваться в формате INTRA-кодирования. Это, в свою очередь, означает, что, когда кодер 100 видеоданных переключается в режим INTER-кодирования блоком 160 управления, полный опорный кадр, сформированный локальным декодированием предыдущего кодированного кадра, уже имеется в памяти 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 видеоданных, представленного на фиг. 2. Декодер 200 содержит декодер 270 мультиплексированных видеоданных, который получает битовый поток 135 кодированных видеоданных с кодера 100 и демультиплексирует его на свои компоненты: обратный квантователь 210, блок 220 обратного преобразования ДКП, блок 240 прогнозирования с компенсацией движения, память 250 кадра, блок 230 объединения, блок 260 управления и выход 280.
Блок 260 управления управляет работой декодера 200 в ответ на то, какие кадры декодируются: INTRA-кодированные или INTER-кодированные. Сигнал управления запуском режима INTER/INTRA-кодирования, который вызывает переключение декодера между режимами декодирования, получают, например, из информации, предусмотренной в части заголовка каждого кадра сжатых видеоданных, принятого от кодера. Сигнал управления запуском режима INTER/INTRA-кодирования выделяется из битового потока кодированных видеоданных декодером 270 мультиплексированных видеоданных и подается на блок 260 управления по управляющей линии 215.
Декодирование INTRA-кодированного кадра выполняется на основе макроблоков, причем каждый макроблок декодируется по существу сразу, как только кодированная информация, относящаяся к нему, принимается в битовом потоке 135 видеоданных. Декодер 270 мультиплексированных видеоданных отделяет кодированную информацию для блоков макроблока от возможной информации управления, относящейся к данному макроблоку. Кодированная информация для каждого блока INTRA-кодированного макроблока содержит кодовые слова переменной длины, представляющие статистически кодированные значения «уровня» и «серии» для ненулевых квантованных коэффициентов ДКП блока. Декодер 270 мультиплексированных видеоданных декодирует кодовые слова переменной длины с использованием способа декодирования переменной длины, соответствующего способу кодирования, использованному в кодере 100, и при этом восстанавливает значения «уровня» и «серии». Затем он восстанавливает массив значений квантованных коэффициентов преобразования для каждого блока макроблока и подает их на обратный квантователь 210. Соответствующая информация управления, относящаяся к макроблоку, также декодируется в декодере мультиплексированных видеоданных с использованием подходящего способа декодирования и подается на блок 260 управления. В частности, информация, относящаяся к уровню квантования, применяемая для коэффициентов преобразования, выделяется из кодированного битового потока декодером 270 мультиплексированных видеоданных и подается на блок 260 управления по управляющей линии 217. Блок управления, в свою очередь, передает эту информацию на обратный квантователь 210 по управляющей линии 218. Обратный квантователь 210 осуществляет обратное квантование коэффициентов ДКП для каждого блока макроблока в соответствии с информацией управления и подает коэффициенты ДКП, подвергнутые обратному квантованию, на блок 220 обратного преобразования ДКП.
Блок 220 обратного преобразования ДКП выполняет обратное преобразование ДКП над коэффициентами ДКП, подвергнутыми обратному квантованию, для каждого блока макроблока для формирования декодированного блока информации изображения, содержащей восстановленные значения пикселов. Поскольку при кодировании/декодировании INTRA-кодированных макроблоков не используется прогнозирование с компенсацией движения, то блок 260 управления управляет блоком 230 объединения таким образом, чтобы воспрепятствовать использованию опорной информации при декодировании INTRA-кодированного макроблока. Восстановленные значения пикселов для каждого блока макроблока подаются на выход 280 видеоданных декодера, где, например, они могут быть поданы на дисплей (не показан). Восстановленные значения пикселов для каждого блока макроблока также сохраняются в памяти 250 кадра. По мере того как последовательные макроблоки INTRA-кодированного кадра декодируются и сохраняются, декодированный кадр постепенно компонуется в памяти 250 кадра и, таким образом, становится доступным для использования в качестве опорного кадра для прогнозирования с компенсацией движения во взаимосвязи с декодированием последовательно принятых INTER-кодированных кадров.
INTER-кодированные кадры декодируются, таким образом, на основе макроблоков, причем каждый INTER-кодированный макроблок декодируется последовательно, как только кодированная информация, относящаяся к нему, будет принята в битовом потоке 135. Декодер 270 мультиплексированных видеоданных отделяет кодированную информацию ошибки прогнозирования для каждого блока INTER-кодированного макроблока от кодированной информации вектора движения и возможной информации управления, относящейся к каждому данному макроблоку. Как пояснено выше, кодированная информация ошибки прогнозирования для каждого блока макроблока содержит кодовые слова переменной длины, представляющие статистически кодированные значения «уровня» и «серии» для ненулевых квантованных коэффициентов преобразования для данного блока ошибки прогнозирования. Декодер 270 мультиплексированных видеоданных декодирует кодовые слова переменной длины с использованием способа декодирования переменной длины, соответствующего способу кодирования, использованному в кодере 100, и при этом восстанавливает значения «уровня» и «серии». Затем он восстанавливает массив значений квантованных коэффициентов преобразования для каждого блока ошибки прогнозирования и подает их на обратный квантователь 210. Информация управления, относящаяся к INTER-кодированному макроблоку, также декодируется в декодере 270 мультиплексированных видеоданных с использованием подходящего способа декодирования и подается на блок 260 управления. Информация, относящаяся к уровню квантования, применяемая к коэффициентам преобразования блоков ошибки прогнозирования, выделяется из кодированного битового потока и подается на блок 260 управления по управляющей линии 217. Блок управления, в свою очередь, передает эту информацию обратному квантователю 210 по управляющей линии 218. Обратный квантователь 210 подвергает обратному квантованию квантованные коэффициенты ДКП, представляющие информацию ошибки прогнозирования для каждого блока макроблока в соответствии с информацией управления, и подает обратно квантованные коэффициенты ДКП на блок 220 обратного преобразования ДКП. Обратно квантованные коэффициенты ДКП, представляющие информацию ошибки прогнозирования для каждого блока, затем подвергаются обратному преобразованию в блоке 220 обратного преобразования ДКП для получения массива восстановленных значений ошибки прогнозирования для каждого блока макроблока.
Кодированная информация вектора движения, связанная с макроблоком, выделяется из кодированного битового потока 135 видеоданных декодером 270 мультиплексированных видеоданных и декодируется. Полученная таким образом декодированная информация вектора движения подается по управляющей линии 225 на блок 240 прогнозирования с компенсацией движения, который восстанавливает вектор движения для макроблока с использованием той же самой модели движения, что и использованная для кодирования INTER-кодированного макроблока в кодере 100. Восстановленный вектор движения аппроксимирует вектор движения, первоначально определенный блоком 130 оценки движения в кодере. Блок 240 прогнозирования с компенсацией движения декодера использует восстановленный вектор движения для идентификации местоположения области восстановленных пикселов в опорном кадре прогнозирования, сохраненном в памяти 250 кадра. Опорным кадром может быть, например, ранее декодированный INTRA-кодированный кадр или ранее декодированный INTER-кодированный кадр. В любом случае область пикселов, указанная восстановленным вектором движения, используется для формирования прогноза для данного макроблока. Более конкретно, блок 240 прогнозирования с компенсацией движения формирует массив значений пикселов для каждого блока макроблока путем копирования соответствующих значений пикселов из области пикселов, идентифицированной в опорном кадре. Прогноз, то есть блоки значений пикселов, полученные из опорного кадра, подаются с блока 240 прогнозирования с компенсацией движения на блок 230 объединения, где они объединяются с декодированной информацией ошибки прогнозирования. На практике значения пикселов каждого прогнозированного блока добавляются к соответствующим восстановленным значениям ошибки прогнозирования с выхода блока 220 обратного преобразования ДКП. Таким путем получают массив восстановленных значений пикселов для каждого блока макроблока. Восстановленные значения пикселов подаются на выход 280 видеоданных декодера и сохраняются в памяти 250 кадра. По мере того как последовательные макроблоки INTER-кодированного кадра декодируются и сохраняются, декодированный кадр постепенно компонуется в памяти 250 кадра и становится доступным для использования в качестве опорного кадра для прогнозирования с компенсацией движения других INTER-кодированных кадров.
Статистическое кодирование значений «уровня» и «серии», связанных с квантованными коэффициентами преобразования, с использованием метода кодирования переменной длины (VLC) поясняется ниже более подробно.
В типовом случае пара значений «уровень»-«серия» кодируется как один символ. Это достигается определением отображения между каждой возможной парой значений «уровень»-«серия» и определенными кодовыми числами. Примером отображения пар значений «уровень»-«серия» на определенные кодовые числа является таблица перекодировки, как показано в таблице 3. При использовании отображений в виде таблицы перекодировки кодовое число присваивается каждой паре значений «уровень»-«серия» блока, получаемые в результате кодовые числа кодируются методом VLC. Например, в документе Joint Model (JM)2.0 “Working Draft Number 2, Doc.JVT-B118, Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T VCEG Pattaya, 2-nd JVT Meeting, Geneva CH, Jan.29-Feb.1.2002” (стандарт кодирования видеоданных H.26L) определены две различные таблицы перекодировки, которые отображают пары («уровень», «серия») на кодовые числа. Выбор того, какую таблицу следует использовать, основан на значении параметра QP и режима кодирования блока. Более конкретно, если режим кодирования соответствует INTRA-кодированию, и параметр QP меньше чем 24, то используется таблица, отличающаяся от обычно используемой.
Модель Joint Model JM 2.0 стандарта JVT H.26L использует так называемую «универсальную» схему кодирования переменной длины, определяемую как UVLC. Соответственно, кодер видеоданных, реализованный соответственно H.26L JM 2.0, использует один набор кодовых слов переменной длины для статистического кодирования всей информации (элементов синтаксиса), подлежащих передаче в битовом потоке от кодера. Хотя используемые коэффициенты являются теми же самыми, определено предварительно определенное число различных отображений символов данных на кодовые слова для кодирования различных типов информации. Например, два отображения символов данных на кодовые слова предусмотрены для блоков, содержащих информацию яркости, причем выбор отображения зависит от типа операции зигзагообразного сканирования (одиночное или двойное сканирование), используемой для упорядочения квантованных коэффициентов преобразования ДКП. Информация об одиночных или двойных схемах зигзагообразного сканирования, определенных согласно H.26L, содержится в документе “Working Draft Number 2,Doc.JVT-B118, Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T VCEG Pattaya, 2-nd JVT Meeting, Geneva CH, Jan.29-Feb.1.2002”. Различные отображения также предусмотрены, в том числе, для информации типа макроблока (MB_Type), данных вектора движения (MVD) и информации режима INTRA-прогнозирования (см. Таблицу 3 ниже).
n
Кодовые слова UVLC, определенные в модели H.26L LM 2.0, могут быть записаны в следующей сжатой форме, показанной в Таблице 1 ниже, где параметры х могут принимать значения 0 или 1:
Таблица 1Схема генерации кодовых слов UVLC согласно стандарту H.26L
1
0
1
Х<sub>0</sub>
0
0
1
X<sub>l</sub>
Х<sub>0</sub>
0
0
0
1
X<sub>2</sub>
X<sub>l</sub>
Х<sub>0</sub>
0
0
0
0
1
X<sub>3</sub>
Х<sub>2</sub>
X<sub>1</sub>
X<sub>0</sub>
…………………………………………………………………
Таблица 2 представляет первые 16 кодовых слов UVLC, сформированных по схеме, показанной в Таблице 1, а Таблица 3 показывает некоторые из других отображений символа данных на кодовое слово, предусмотренных согласно H.26L. Полная информация, касающаяся отображений, содержится в вышеуказанном документе “Working Draft Number 2,Doc.JVT-B118, Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T VCEG Pattaya, 2-nd JVT Meeting, Geneva CH, Jan.29-Feb.1.2002”.
Таблица 2Первые 16 кодовых слов UVLC стандарта H.26L, сформированных по схеме, показанной в Таблице 1
Индекс кодового слова
Кодовое слово VLC
0
1
1
010
2
011
3
00100
4
00101
5
00110
6
00111
7
0001000
8
0001001
9
0001010
10
000010000
11
000010001
12
000010010
13
000010011
14
000010100
15
000010101
….
….
Таблица 3Пример отображений символа данных на кодовое слово UVLC согласно H.26L TML-5
Кодовое число
MB_TYPE
Режим INTRA-прогнозирования
MVD
Tcoeff_chroma_ACTcoef_lumaПростое сканирование
Tcoef_lumaДвойное сканирование
Intra
Inter
Prob0
Prob1
Уровень
Серия
Уровень
Серия
0
Intra4x4
Skip
0
0
0
EOB
-
EOB
-
1
0,0,0<sup>3</sup>
16х16
1
0
1
1
0
1
0
2
1,0,0
8х8
0
1
-1
-1
0
-1
0
3
2,0,0
16х8
0
2
2
1
1
1
1
4
3,0,0
8х16
1
1
-2
-1
1
-1
1
5
0,1,0
8х4
2
0
3
1
2
2
0
6
1,1,0
4х8
3
0
-3
-1
2
-2
0
7
2,1,0
4х4
2
1
4
2
0
1
2
8
3,1,0
Intra4x4
1
2
-4
-2
0
-1
2
9
0,2,0
0,0,0<sup>3</sup>
0
3
5
1
3
3
0
10
1,2,0
1,0,0
0
4
-5
-1
3
-3
0
11
2,2,0
2,0,0
1
3
6
1
4
4
0
12
3,2,0
3,0,0
2
2
-6
-1
4
-4
0
13
0,0,1
0,1,0
3
1
7
1
5
5
0
14
1,0,1
1,1,0
4
0
-7
-1
5
-5
0
15
2,0,1
2,1,0
5
0
8
3
0
1
3
16
3,0,1
3,1,0
4
1
-8
-3
0
-1
3
17
0,1,1
0,2,0
3
2
9
2
1
1
4
18
1,1,1
1,2,0
2
3
-9
-2
1
-1
4
19
2,1,1
2,2,0
1
4
10
2
2
2
1
20
3,1,1
3,2,0
0
5
-10
-2
2
-2
1
21
0,2,1
0,0,1
1
5
11
1
6
3
1
22
1,2,1
1,0,1
2
4
-11
-1
6
-3
1
23
2,2,1
2,0,1
3
3
12
1
7
6
0
24
3,2,1
3,0,1
4
2
-12
-1
7
-6
0
25
0,1,1
5
1
13
1
8
7
0
26
1,1,1
5
2
-13
-1
8
-7
0
27
2,1,1
4
3
14
1
9
8
0
28
3,1,1
3
4
-14
-1
9
-8
0
29
0,2,1
2
5
15
4
0
9
0
30
1,2,1
3
5
-15
-4
0
-9
0
31
2,2,1
4
4
16
5
0
10
0
32
3,2,1
5
3
-16
-5
0
-10
0
33
5
4
17
3
1
4
1
34
4
5
-17
-3
1
-4
1
35
5
5
18
3
2
2
2
36
-18
-3
2
-2
2
37
19
2
3
2
3
38
-19
-2
3
-2
3
39
20
2
4
2
4
40
-20
-2
4
-2
4
41
21
2
5
2
5
42
-21
-2
5
-2
5
43
22
2
6
2
6
44
-22
-2
6
-2
6
45
23
2
7
2
7
46
-23
-2
7
-2
7
47
24
2
8
11
0
..
..
..
..
..
..
Схема универсального кодирования переменной длины, принятая в стандарте H.26L, обеспечивает ряд технических преимуществ. В частности, использование одного набора кодовых слов VLC, который может строиться в соответствии с простым правилом, как показано в Таблице 1, позволяет создавать кодовые слова на побитовой основе. Это исключает необходимость в хранении кодовой таблицы в кодере и декодере и, следовательно, снижает требования к памяти в кодере и декодере. Разумеется, следует отметить, что в альтернативных вариантах реализации таблицы кодовых слов могут генерироваться и сохраняться в кодере и декодере. Различные отображения символов данных на кодовые слова обеспечивают возможность по меньшей мере ограниченной адаптации схемы кодирования UVLC к различным статистическим свойствам различных типов данных, связанных с изображением, и информации управления, которые статистически кодированы. Различные отображения символов данных на кодовые слова могут быть сохранены в кодере и декодере и, следовательно, нет необходимости передавать информацию отображения в битовом потоке от кодера к декодеру. Это помогает поддерживать устойчивость по отношению к ошибкам.
Однако схема статистического кодирования UVLC также имеет ряд недостатков. В частности, фиксированные кодовые слова и ограниченная степень адаптивности, обеспечиваемая различными отображениями символа данных на кодовое слово, неизбежно приводит к менее чем оптимальному сжатию данных. Это обусловлено тем, что при кодировании изображения частота появления (т.е. вероятность) различных коэффициентов преобразования и, следовательно, вероятность различных пар (серия, уровень) изменяется в зависимости от содержания изображения и типа кодируемого изображения. Таким образом, если используется один набор коэффициентов переменной длины и предусмотрено только одно отображение между символами данных, подлежащих кодированию/декодированию, и VLC, то, в принципе, не может быть реализовано эффективное оптимальное кодирование.
По этой причине предлагались модификации базовой схемы кодирования UVLC. Более конкретно, было предложено включить более одного набора кодовых слов VLC.
Одно такое предложение было сделано в работе Gisle Bjontegaard, “Q.15/SG16 ”Use of Adaptive Switching Between Two VLCs for INTRA Luma Coefficients”. Doc.Q15-K-30, August 2000. В этой работе предлагается использовать второй набор коэффициентов VLC для статистического кодирования некоторых типов информации. Согласно документу Q15-K-30, предложенный второй набор кодовых слов VLC, обозначенный как VLC2, создается согласно схеме, представленной в Таблице 4. Он используется, в частности, для кодирования значений «серии» и «уровня», связанных с квантованными коэффициентами преобразования INTRA-кодированных блоков яркости из 4х4 пикселов, сканируемых с использованием схемы двойного сканирования с зигзагообразным сканированием, определенной согласно H.26L. Таблица 5 показывает в явной форме первые 16 кодовых слов VLC2.
Таблица 4Схема генерации кодовых слов VLC2 согласно документу Q15-K-30
1
0
1
1
0
1
1
1
0
1
X<sub>1</sub>
X<sub>0</sub>
0
0
1
X<sub>2</sub>
X<sub>1</sub>
X<sub>0</sub>
0
0
0
1
X<sub>3</sub>
X<sub>2</sub>
X<sub>1</sub>
X<sub>0</sub>
…………………………………………………………………………………………
Таблица 5:Первые 16 кодовых слов VLC2 Q.15/SG16 документа Q15-K-30, сформированных по схеме, показанной в Таблице 4
Индекс кодового слова
Кодовое слово VLC2)
1
110
2
111
3
0100
4
0101
5
0110
6
0111
7
001000
8
001001
9
001010
10
001011
11
001100
12
001101
13
001110
14
001111
15
00010000
Как можно видеть из сравнения Таблиц 4 и 5 с Таблицами 1 и 2 соответственно, самое короткое кодовое слово VLC2 имеет два бита по сравнению с одним битом, выделенным для самого короткого кодового слова в исходном наборе кодовых слов UVLC. Ввиду общего требования для возможности декодирования, состоящего в том, что ни одно кодовое слово VLC не может быть префиксом другого, это изменение имеет заметное влияние на структуру других кодовых слов VLC2. В частности, присвоение двух битов самому короткому слову обеспечивает возможность представления кодовых слов с более высокими индексами меньшим количеством битов. Например, из Таблицы 2 видно, что кодовое слово UVLC с индексом 7 имеет 7 битов, в то время как кодовое слово VLC2 с индексом 7 имеет только 6 битов.
Вышеописанные методы кодирования VLC, в которых кодовые слова выбираются путем переключения на контекстной основе между более чем одним набором кодовых слов, обеспечивают повышение эффективности сжатия данных по сравнению с методами, в которых используется один набор кодовых слов VLC. Однако во многих применениях сжатия данных, в частности в применениях кодирования видеоданных, имеется постоянное требование повышения эффективности сжатия данных. Таким образом, существует постоянный интерес к разработке новых методов кодирования переменной длины, которые обеспечивают улучшенную адаптивность к типу и статистическим свойствам символов данных, подлежащих кодированию, при сохранении низкой сложности вычислений, низких требований к памяти и устойчивости к ошибкам. Именно исходя из этих потребностей разработан способ, соответствующий настоящему изобретению.
Сущность изобретения
Способ, соответствующий настоящему изобретению, направлен на решение указанных проблем, относящихся к улучшению адаптивности методов кодирования переменной длины к типу и статистическим свойствам символов данных, подлежащих кодированию, при сохранении низкой сложности вычислений и устойчивости к ошибкам.
В обобщенной форме, изобретение относится к кодированию переменной длины квантованных коэффициентов преобразования, формируемых в результате кодирования на основе блочного преобразования в кодере видеоданных. Однако следует иметь в виду, что способы кодирования и декодирования, соответствующие изобретению, могут быть применены к другим типам данных, подлежащих кодированию.
c
c
c
В частности, изобретение относится к способу кодирования VLC, в котором число ненулевых коэффициентов N в блоке квантованных коэффициентов преобразования выявляется и указывается в явном виде в битовом потоке, передаваемом в соответствующий декодер. Как пояснено выше, указание в явном виде N исключает необходимость передавать символ ЕОВ и тем самым может обеспечить повышение эффективности кодирования. Более конкретно, изобретение предлагает способ, в котором значение N, представляющее число ненулевых коэффициентов в блоке, само кодируется методом VLC. Это обеспечивает дополнительное повышение эффективности кодирования.
c
c
c
c
Способ предусматривает использование по меньшей мере двух наборов кодовых слов VLC для кодирования методом VLC значения N и определяет правила переключения между наборами кодовых слов, которые принимают во внимание число ненулевых коэффициентов в блоке (блоках), смежном с блоком, значение N которого кодируется методом VLC. Правила переключения сформированы таким образом, что битовый поток, содержащий кодовые слова VLC, представляющие N и сформированные в соответствии с заявленным способом, могут быть декодированы, не требуя какой-либо информации, относящейся к выбору кодовых слов, включаемых в битовый поток. Иными словами, согласно изобретению, не требуется обеспечивать явное указание набора, из которого было выбрано каждое кодовое слово, представляющее значение N. Это свойство повышает эффективность сжатия данных.
Специалистам в данной области техники должно быть понятно, что способ, соответствующий изобретению, может быть применен в принципе к кодированию VLC символов данных, которые представлены как пары (серия, уровень), или к любому эквивалентному представлению набора символов данных, подлежащих кодированию.
Согласно первому аспекту изобретения, предложен способ кодирования набора символов данных, содержащего некоторое первое число символов данных, имеющих первое значение, и некоторое второе число символов данных, имеющих значения иные, чем упомянутое первое значение, причем набор символов, подлежащих кодированию переменной длины, формируется из упомянутого набора символов данных, и кодирование переменной длины применяется к указанному набору символов для осуществления кодирования переменной длины. В соответствии с этим способом, по меньшей мере одна характеристика кодирования переменной длины, применяемая к набору символов, подлежащих кодированию переменной длины, адаптируется в соответствии с числом символов, подлежащих кодированию переменной длины, и обеспечивается указание числа символов, кодируемых методом кодирования переменной длины. Предпочтительно указание представляет собой кодовое слово переменной длины, представляющее число символов, подлежащих кодированию переменной длины, выбранному из одного из по меньшей мере двух альтернативных наборов кодовых слов переменной длины в соответствии с числом символов, подлежащих кодированию переменной длины.
В соответствии со вторым аспектом изобретения, предусмотрен способ декодирования кодовых слов переменной длины, представляющих набор символов данных, причем набор символов данных содержит некоторое первое число символов данных, имеющих первое значение, и некоторое второе число символов данных, имеющих значения, отличающиеся от упомянутого первого значения, при этом набор символов данных кодирован путем формирования набора символов данных, подлежащих кодированию переменной длины, из упомянутого набора символов данных, причем кодовые слова переменной длины сформированы применением кодирования переменной длины к набору символов, подлежащих кодированию переменной длины. Согласно способу, по меньшей мере одна характеристика декодирования, примененная к кодовым словам переменной длины адаптирована согласно указанию числа символов в наборе символов, которые были кодированы методом кодирования переменной длины. Предпочтительно упомянутое указание является кодовым словом переменной длины, представляющим число символов, которые были кодированы методом кодирования переменной длины, выбранных из одного из по меньшей мере двух альтернативных наборов кодовых слов переменной длины, соответственно числу символов, которые были кодированы методом кодирования переменной длины.
Согласно третьему аспекту изобретения, предложен кодер для кодирования набора символов данных, содержащего некоторое первое число символов данных, имеющих первое значение, и некоторое второе число символов данных, имеющих значения иные, чем упомянутое первое значение, причем набор символов, подлежащих кодированию переменной длины, предназначен для формирования из упомянутого набора символов данных, при этом кодер содержит средство кодирования для кодирования переменной длины указанного набора символов, подлежащих кодированию переменной длины. В соответствии с изобретением, кодер выполнен с возможностью адаптации по меньшей мере одной характеристики кодирования переменной длины, применяемой к набору символов, подлежащих кодированию переменной длины, в соответствии с числом символов, подлежащих кодированию переменной длины, а также выполнен с возможностью обеспечения указания числа символов, кодированных методом кодирования переменной длины. Предпочтительно указание представляет собой кодовое слово переменной длины, представляющее число символов, подлежащих кодированию переменной длины, выбранному из одного из по меньшей мере двух альтернативных наборов кодовых слов переменной длины в соответствии с числом символов, подлежащих кодированию переменной длины.
В соответствии с четвертым аспектом изобретения, предусмотрен декодер для декодирования кодовых слов переменной длины, представляющих набор символов данных, причем набор символов данных содержит некоторое первое число символов данных, имеющих первое значение, и некоторое второе число символов данных, имеющих значения, отличающиеся от упомянутого первого значения, при этом набор символов данных кодирован путем формирования набора символов данных, подлежащих кодированию переменной длины, и упомянутые кодовые слова переменной длины сформированы применением кодирования переменной длины к упомянутому набору символов, подлежащих кодированию переменной длины. Согласно изобретению, декодер выполнен с возможностью адаптации по меньшей мере одной характеристики декодирования, применяемой к кодовым словам переменной длины, согласно указанию числа символов в наборе символов, которые были кодированы методом кодирования переменной длины. Предпочтительно упомянутое указание является кодовым словом переменной длины, представляющим число символов, которые были кодированы методом кодирования переменной длины, выбранных из одного из по меньшей мере двух альтернативных наборов кодовых слов переменной длины, соответственно числу символов, которые были кодированы методом кодирования переменной длины.
Согласно пятому аспекту изобретения, предусмотрен мультимедийный терминал, содержащий кодер, соответствующий третьему аспекту настоящего изобретения.
Согласно шестому аспекту изобретения, предусмотрен мультимедийный терминал, содержащий декодер, соответствующий четвертому аспекту настоящего изобретения.
Предпочтительно мультимедийный терминал, соответствующий пятому и/или шестому аспектам изобретения, является мобильным мультимедийным терминалом, выполненным с возможностью осуществления информационного обмена с мобильной телекоммуникационной сетью посредством соединения радиосвязи.
Более конкретно, способ кодирования согласно настоящему изобретению в первую очередь характеризуется тем, что по меньшей мере одна характеристика кодирования переменной длины, применяемая к набору символов, подлежащих кодированию переменной длины, адаптируется согласно числу символов, подлежащих кодированию переменной длины, и что предусматривается указание числа символов, кодированных методом кодирования переменной длины, причем упомянутое указание является кодовым словом переменной длины, представляющим упомянутое число символов, подлежащих кодированию переменной длины, выбранных из одного из по меньшей мере двух альтернативных наборов кодовых слов переменной длины соответственно упомянутому числу символов, подлежащих кодированию методом кодирования переменной длины. Способ декодирования согласно настоящему изобретению главным образом характеризуется тем, что по меньшей мере одна характеристика декодирования, применяемая к кодовым словам переменной длины, адаптируется согласно указанию числа символов в наборе символов, которые были кодированы методом кодирования переменной длины, причем упомянутое указание является кодовым словом переменной длины, представляющим упомянутое число символов, которые были кодированы методом кодирования переменной длины, выбранных из одного из по меньшей мере двух альтернативных наборов кодовых слов переменной длины соответственно упомянутому числу символов, которые были кодированы методом кодирования переменной длины. Кодер согласно настоящему изобретению главным образом характеризуется тем, что кодер выполнен с возможностью адаптации по меньшей мере одной характеристики кодирования переменной длины, применяемой к набору символов, подлежащих кодированию переменной длины, соответственно числу символов, подлежащих кодированию переменной длины, и дополнительно выполнен с возможностью обеспечения указания числа символов, кодированных методом кодирования переменной длины, причем упомянутое указание является кодовым словом переменной длины, представляющим упомянутое число символов, подлежащих кодированию переменной длины, выбранных из одного из по меньшей мере двух альтернативных наборов кодовых слов переменной длины соответственно упомянутому числу символов, подлежащих кодированию методом кодирования переменной длины. Декодер согласно настоящему изобретению главным образом характеризуется тем, что выполнен с возможностью адаптации по меньшей мере одной характеристики декодирования, применяемой к кодовым словам переменной длины, согласно указанию числа символов в наборе символов, которые были кодированы методом кодирования переменной длины, причем упомянутое указание является кодовым словом переменной длины, представляющим упомянутое число символов, которые были кодированы методом кодирования переменной длины, выбранных из одного из по меньшей мере двух альтернативных наборов кодовых слов переменной длины соответственно упомянутому числу символов, которые были кодированы методом кодирования переменной длины.
Краткое описание чертежей
Варианты осуществления настоящего изобретения описаны ниже на примере со ссылками на чертежи, на которых показано следующее:
фиг. 1 - блок-схема обобщенного кодера видеоданных согласно предшествующему уровню техники;
фиг. 2 - блок-схема обобщенного декодера видеоданных согласно предшествующему уровню техники, соответствующего кодеру, показанному на фиг. 1;
фиг. 3 - формирование макроблока согласно предшествующему уровню техники;
фиг. 4 - приведенный для примера порядок зигзагообразного сканирования;
фиг. 5 - текущий блок изображения, подлежащий кодированию, и его смежные ранее кодированные блоки изображения;
фиг. 6 - блок-схема кодера видеоданных согласно варианту осуществления изобретения;
фиг. 7 - блок-схема декодера видеоданных согласно варианту осуществления изобретения, соответствующего кодеру, показанному на фиг. 6, и
фиг. 8 - блок-схема мультимедийного коммуникационного терминала, в котором может быть реализовано изобретение.
Детальное описание изобретения
В детальном описании изобретения, которое следует ниже, представлен пример реализации способа, соответствующего изобретению. Приведенный пример реализации относится к кодированию переменной длины пар (серия, уровень), представляющих ненулевые коэффициенты преобразования, сформированные в результате кодирования на основе блочного преобразования в кодере видеоданных, а также к их последующему декодированию в соответствующем декодере видеоданных.
На фиг. 6 показана блок-схема кодера 600 видеоданных, в котором может использоваться способ, соответствующий данному варианту осуществления изобретения. Структура кодера видеоданных, показанная на фиг. 6, по существу идентична структуре известного кодера видеоданных, показанной на фиг. 1, при необходимых модификациях тех частей кодера, которые выполняют операции кодирования переменной длины. Все части кодера видеоданных, которые реализуют функции и работают идентично описанному выше известному кодеру видеоданных, обозначены идентичными ссылочными позициями. В данном описании предполагается, что все операции кодирования переменной длины выполняются в кодере 670 мультиплексированных видеоданных. Однако следует иметь в виду, что в альтернативных вариантах осуществления изобретения могут быть предусмотрены отдельный блок или блоки кодирования переменной длины. Также следует отметить, что способ, соответствующий изобретению, может быть применен к определенным символам данных, формируемым кодером видеоданных (например, парам (серия, уровень), связанным с ненулевыми коэффициентами преобразования), и другие методы кодирования VLC могут быть использованы для кодирования других символов данных.
Работа кодера 600 видеоданных подробно описана ниже. При кодировании кадра цифровых видеоданных кодер 600 работает аналогично описанному выше со ссылкой на фиг. 1, чтобы сформировать INTRA-кодированные и INTER-кодированные сжатые кадры видеоданных. Как пояснено выше, в режиме INTRA-кодирования к каждому блоку данных изображения (значениям пикселов) применяется дискретное косинусное преобразование (ДКП) для формирования соответствующего двумерного массива значений коэффициентов преобразования. Операция ДКП выполняется в блоке 104 преобразования, и сформированные коэффициенты последовательно поступают на квантователь 106, где они квантуются. В режиме INTER-кодирования преобразование ДКП, выполненное в блоке 104, применяется к блокам значений ошибки прогнозирования. Коэффициенты преобразования, сформированные в результате этой операции, также поступают на квантователь 106, где они также квантуются. INTER-кодированные кадры могут содержать INTRA-кодированные блоки изображения. В некоторых ситуациях кодирование на основе преобразования не применяется к конкретным блокам изображения. Например, если INTRA-прогнозирование используется в режиме INTRA-кодирования, то некоторые блоки изображения прогнозируются в кодере из одного или нескольких ранее кодированных блоков изображения. В этом случае кодер предоставляет декодеру указание на предыдущие блоки, которые должны использоваться в прогнозе, и не выводит каких-либо данных для коэффициентов преобразования. В режиме INTER-кодирования разница между прогнозом для некоторого блока и данными изображения самого этого блока может быть настолько мала, что с точки зрения коэффициента сжатия данных предпочтительным является не передавать никакой информации ошибки прогнозирования.
Согласно этому варианту осуществления, способ, соответствующий изобретению, применяется к тем блокам изображения, которые подвергаются кодированию на основе преобразования и последующему квантованию коэффициентов преобразования.
c
c
c
c
c
Когда кодер 670 мультиплексированных видеоданных получает блок (двумерный массив) квантованных коэффициентов преобразования, он определяет число ненулевых коэффициентов в массиве. Согласно изобретению, это число, обозначенное как N, подвергается кодированию переменной длины и передается в декодер в битовом потоке 635. По меньшей мере два набора кодовых слов переменной длины предоставляются для кодирования переменной длины значения N. В варианте осуществления изобретения они представляют собой, например, кодовые слова VLC, определенные соответственно в Таблицах 2 и 5, описанных выше. Более конкретно, N подвергается кодированию переменной длины с использованием кодового слова, выбранного из одного из по меньшей мере двух наборов кодовых слов переменной длины, с учетом значений ранее кодированных N символов. Предпочтительно ранее кодированные N символов, используемых для назначения кодовых слов VLC, выбираются из блоков, которые располагаются близко к кодируемому блоку.
c
c
c
c
На фиг. 5 показан блок изображения, подлежащий кодированию VLC, и его смежные блоки. Символами N_L, N_TL, N_T и N_TR обозначено соответственно число ненулевых квантованных коэффициентов в блоках слева, слева сверху, сверху и сверху справа от текущего кодируемого блока.
c
c
c
c
Значение N для текущего блока изображения подвергается кодированию переменной длины с использованием кодового слова из одного из имеющихся наборов кодов VLC, выбранного с учетом уже кодированных значений N непосредственно смежных блоков. Последующее описание кодирования представляет пример процедуры назначения кода переменной длины значению N, принимая во внимание значения N ранее кодированных смежных блоков изображения:
c
c
c
c
c
VLC_N= N_map[fn(N_L, N_TL, N_T, N_TR)](1)
c
c
В выражении (1) fn обозначает функцию (пример которой определен ниже в уравнении (2)), N_map обозначает массив, который отображает целочисленные значения на различные имеющиеся коды VLC, а VLC_N обозначает номер таблицы, из которой должны выбираться кодовые слова. Примеры fn включают «среднее» и «медиана». В варианте осуществления изобретения использовано «среднее» от N_L и
c
N_T. В соответствии с этим вариантом осуществления назначение, представленное в выражении (1), принимает вид
c
c
c
VLC_N= N_map[N_L + N_T](2)
c
c
c
c
c
c
c
Последующий пример дополнительно иллюстрирует кодирование Nсогласно способу, соответствующему изобретению. Предполагая, что текущее значение N, подлежащее кодированию, равно 3, смежные значения N_L и N_T определяются как 4 и 2 соответственно, а N_map определяется как N_map=[11112222], где VLC1 и VLC2 соответствуют кодовым словам из Таблицы 2 и Таблицы 5 соответственно. Применяя уравнение (2), получим VLC_N=1. В этом случае N=3 кодируется как 00100 с использованием кодовых слов VLC из Таблицы 2.
Затем кодер 670 мультиплексированных видеоданных представляет ненулевые коэффициенты как пары (серия, уровень). Это может быть сделано методом, известным из предшествующего уровня техники. Более конкретно, двумерный массив квантованных коэффициентов преобразования сначала сканируется с использованием предварительно определенного порядка сканирования, например, как показано на фиг. 4, для формирования упорядоченного одномерного массива. Каждое ненулевое значение коэффициента в упорядоченном одномерном массиве затем представляется значением «серии» и значением «уровня», где значение «уровня» представляет значение коэффициента, а значение «серии» представляет число последовательных нулевых коэффициентов, предшествующих ненулевому коэффициенту. В отличие от известного способа кодирования по длине серии, описанного выше, в способе согласно изобретению не требуется передавать символ ЕОВ. Эта возможность не передавать символ ЕОВ возникает вследствие того, что в способе согласно изобретению число ненулевых квантованных коэффициентов преобразования указано для декодера в явном виде. Таким образом, при декодировании пар (серия, уровень) для данного блока изображения декодер может отсчитывать число декодированных пар. Когда число декодированных пар (соответствующее числу ненулевых коэффициентов) достигнет числа ненулевых коэффициентов, указанных декодеру, декодирование для данного блока может быть остановлено.
Затем кодер 670 мультиплексированных видеоданных применяет кодирование переменной длины к значениям «серии» и «уровня» таким путем, чтобы одно кодовое слово VLC было присвоено каждой паре (серия, уровень). Согласно изобретению, кодирование VLC выполняется путем выбора одной из набора таблиц кодирования переменной длины (таблиц перекодировки), сохраненных в кодере 600. Каждая из таблиц кодирования определяет набор кодовых слов переменной длины, а также отображения между кодовыми словами и возможными значениями пар (серия, уровень), которые могут возникнуть в данных квантованных коэффициентов преобразования для блока изображения. Согласно изобретению, кодер 670 мультиплексированных видеоданных выбирает таблицу кодирования для использования в соответствии с числом ненулевых коэффициентов в массиве квантованных коэффициентов преобразования для кодируемого блока изображения. С использованием отображений, определенных в выбранной таблице перекодировки, кодер мультиплексированных видеоданных назначает кодовое слово каждой паре (серия, уровень) и передает кодовое слово декодеру в битовом потоке 635.
Число различных таблиц кодирования VLC может варьироваться в различных вариантах осуществления изобретения. В одном варианте осуществления изобретения отдельная таблица перекодировки обеспечивается для каждого возможного числа ненулевых квантованных коэффициентов преобразования. Кодовые слова и отображения между парами (серия, уровень) и кодовыми словам для каждой из таблиц проектируются для обеспечения оптимального сжатия данных при применении к набору пар (серия, уровень), выведенному из массива значений квантованных коэффициентов преобразования, имеющих конкретное число ненулевых коэффициентов. Информация об изменении статистических свойств пар (серия, уровень) по отношению к числу ненулевых квантованных коэффициентов преобразования может быть получена эмпирически заранее, например, путем кодирования числа тестовых («обучающих») изображений или последовательностей видеоданных. Кодовые слова VLC и отображения между кодовыми словами могут затем проектироваться и сохраняться в виде одной или нескольких таблиц перекодировки в кодере.
В предпочтительном варианте осуществления, для использования при кодировании пар (серия, уровень), полученных из блоков 4х4 изображения, обеспечиваются только две таблицы кодирования VLC: одна для использования в случае, когда число ненулевых квантованных коэффициентов преобразования меньше или равно 8, и другая для использования в случае, когда число ненулевых квантованных коэффициентов преобразования больше 8. Таблицы 6 и 7 иллюстрируют различные распределения вероятностей пар (серия, уровень) в этом варианте осуществления изобретения. Статистические данные были получены с использованием кодера видеоданных, реализованного в соответствии с тестовой моделью 8 (TML8) текущих рекомендаций ITU-T H.26L, и относятся к INTER-кодированным блокам данных. В таблицах наиболее вероятным парам присвоено число 1, вторым по вероятности парам - число 2 и т.д. Приведены первые 15 наиболее вероятных пар.
Таблица 6:Вероятности пар (серия, уровень), когда число ненулевых квантованных коэффициентов преобразования меньше или равно 8 (4х4 INTER-кодированный блок)
Серия
0
1
2
3
4
5
6
7
8
9
Амплитуда уровня
1
1
2
3
4
6
7
8
11
12
15
2
5
10
13
3
9
4
14
Таблица 7:Вероятности пар (серия, уровень), когда число ненулевых квантованных коэффициентов преобразования больше 8 (4х4 INTER-кодированный блок)
Серия
0
1
2
3
Амплитуда уровня
1
1
3
5
9
2
2
7
12
3
4
10
4
6
14
5
8
6
11
7
13
8
15
В альтернативном варианте осуществления изобретения эффективность кодирования может быть повышена путем изменения типа передаваемых символов. Вместо представления квантованных коэффициентов преобразования как пар (серия, уровень), они представляются как пары (уровень, последний), и с каждой из пар (уровень, последний) ассоциируется кодовое слово VLC. Параметр «уровень» в паре (уровень, последний) представляет значение коэффициента, но в отличие от пар (серия, уровень), описанных выше, он может принимать значение «0». Параметр «последний» используется для указания, что больше нет нулевых коэффициентов в блоке. Например, он может быть использован как двоичный флаг, так что если значение «уровня» для конкретного коэффициента равно нулю, и все последующие значения коэффициентов равны нулю, то параметр «последний» устанавливается в «1». Это альтернативное представление квантованных коэффициентов преобразования может обеспечить повышение эффективности кодирования (сжатия данных), в частности, для INTRA-кодированных блоков и в ситуациях, когда использованы малые значения QP.
В другом варианте осуществления изобретения используется фиксированный набор кодовых слов VLC, и только отображение между кодовыми словами и парами (серия, уровень), подлежащими кодированию, изменяется в зависимости от числа ненулевых коэффициентов.
Еще в одном варианте осуществления изобретения таблица кодирования VLC, выбранная для конкретного блока изображения, может также зависеть от некоторого другого параметра, такого как параметр квантования (QP), используемый для квантования коэффициентов преобразования блока изображения, или типа кадра, или блока изображения (INTRA/INTER). В этом случае выбор таблицы кодирования VLC для конкретного массива квантованных коэффициентов преобразования зависит как от числа ненулевых коэффициентов, так и от значения других параметров.
Еще в одном альтернативном варианте осуществления изобретения число нулевых квантованных коэффициентов преобразования может определяться и использоваться как параметр, в соответствии с которым проектируются кодовые слова VLC и отображения между кодовыми словами и символами данных и выбираются таблицы перекодировки VLC.
Работа декодера 700 видеоданных в соответствии с вариантом осуществления изобретения описана ниже со ссылкой на фиг. 7. Структура декодера видеоданных, показанная на фиг.7, по существу идентична той, которая соответствует известному декодеру видеоданных по фиг. 2, при соответствующих модификациях тех частей декодера, которые выполняют операции декодирования переменной длины. Все части декодера видеоданных, которые реализуют функции и работают аналогично описанному выше известному декодеру видеоданных, обозначены теми же ссылочными позициями. В последующем описании предполагается, что все операции декодирования переменной длины выполняются в декодере 770 мультиплексированных видеоданных. Однако следует иметь в виду, что в альтернативных вариантах осуществления изобретения могут быть предусмотрены отдельный блок или блоки декодирования переменной длины.
c
c
Ниже более детально описана работа декодера видеоданных. Предполагается, что декодер видеоданных, представленный на фиг. 7, соответствует кодеру видеоданных, показанному на фиг. 6, и поэтому может принимать и декодировать битовый поток 635, переданный кодером 600. В декодере битовый поток принимается и разделяется на составляющие части декодером 770 мультиплексированных видеоданных. Как пояснено выше при описании предшествующего уровня техники, сжатые видеоданные, выделенные из битового потока, обрабатываются на основе макроблоков. Сжатые видеоданные для INTRA-кодированного макроблока содержат кодовые слова переменной длины, представляющие кодированное методом VLC значение N и пары (серия, уровень) для каждого блока в макроблоке, вместе с кодированной информацией управления (например, относящейся к параметру квантования QP). Сжатые видеоданные для INTER-кодированного макроблока содержат информацию ошибки прогнозирования, кодированную методом VLC, для каждого блока (содержащего кодированное методом VLC значение N и кодированные методом VLC пары (серия, уровень)), информацию вектора движения для макроблока и кодированную информацию управления.
c
Кодированное методом VLC значение N и кодированные методом VLC пары (серия, уровень) для каждого блока INTRA-кодированного макроблока и для каждого блока данных ошибки прогнозирования, связанного с INTER-кодированным макроблоком, декодируются идентичным образом.
c
c
c
c
c
c
c
c
c
c
c
c
c
c
Более конкретно, при декодировании кодированных методом VLC пар (серия, уровень) для INTRA- или INTER-кодированного блока изображения декодер 770 мультиплексированных видеоданных сначала определяет число ненулевых квантованных коэффициентов преобразования в блоке. Как пояснено выше, информация, относящаяся к числу ненулевых квантованных коэффициентов преобразования N, вставляется в битовый поток 635 кодером 600. Декодер 700 выделяет эту информацию из принятого битового потока. Согласно изобретению, значение Nсамо кодировано методом VLC, и поэтому декодер 770 мультиплексированных видеоданных выполняет подходящую операцию декодирования переменной длины для восстановления информации, относящейся к N. Как пояснено выше, таблица кодирования VLC, используемая для кодирования значения N для конкретного блока изображения, выбирается на основе значения (значений) N, ассоциированных с предшествующими кодированными блоком или блоками изображения. Это означает, что кодовое слово, представляющее значение N для данного блока, может, в принципе, декодироваться без указания в явном виде таблицы кодирования VLC, из которой было выбрано кодовое слово. Таким образом, для декодера необходимо только знать таблицу кодирования VLC, из которой было выбрано значение Nдля первого (нескольких) кодированного блока изображения, порядок кодирования блоков изображения и правило, использованное для определения таблицы VLC для применения при кодировании последующих значений N. Точное число блоков изображения, для которых необходимо иметь знание в явном виде о выбранной таблице кодирования VLC для N, зависит от характера правила, используемого для выбора таблицы кодирования VLC для последующих значений N, и порядка сканирования блоков. Например, в случае, когда для выбора таблицы кодирования VLC для последующих значений N используются значения N из блоков слева, сверху слева, сверху и сверху справа, и порядок сканирования (кодирования) блоков следует от верхнего левого блока изображения, построчно, то предпочтительно кодировать значения N для блоков в первой строке изображения плюс первый блок на второй строке согласно предварительно определенной схеме. Затем значения N для всех последующих блоков изображения могут кодироваться согласно правилу, описанному выражением (1), и могут декодироваться декодером без какого-либо указания в явном виде на используемую таблицу кодирования VLC.
c
После того как число ненулевых квантованных коэффициентов преобразования в блоке изображения будет определено согласно описанной процедуре, декодер 770 мультиплексированных видеоданных выбирает таблицу декодирования переменной длины и запускает декодирование кодированных методом VLC пар (серия, длина) для блока изображения. В соответствии с изобретением таблица декодирования VLC выбирается в зависимости от N. Таблица декодирования выбирается из набора таблиц перекодировки, идентичных тем, которые используются в кодере. Таблицы декодирования сохранены заранее в декодере и определяют отображение между кодовыми словами VLC, принятыми в битовом потоке 635, и возможными значениями пар (серия, длина), которые могут возникнуть в данных квантованных коэффициентов преобразования для блока изображения. Выбрав таблицу в соответствии с числом ненулевых квантованных коэффициентов преобразования, декодер 770 мультиплексированных видеоданных использует отображения, определенные в выбранной таблице перекодировки для восстановления значений «серии» и «уровня». Затем он восстанавливает значения квантованных коэффициентов преобразования для блока и подает их на обратный квантователь 210. Остальная часть процедуры декодирования видеоданных, при которой восстановленные значения пикселов формируются для каждого блока изображения, осуществляется так, как описано в связи с известным декодером 220 видеоданных.
Следует отметить, что способ, соответствующий изобретению, обеспечивает значительные преимущества в сравнении с известными способами кодирования VLC, описанными выше. В частности, он обеспечивает способ кодирования и декодирования переменной длины, который адаптируется к статистическим характеристикам символов данных, подлежащих кодированию и декодированию, при поддержании сравнительно низкой сложности вычислений и высокой устойчивости к ошибками передачи. Возможность адаптации способа вытекает из использования различных кодовых слов переменной длины и/или отображений для блоков изображения, которые имеют различные числа ненулевых квантованных коэффициентов преобразования. Вычислительная сложность поддерживается низкой за счет обеспечения различных кодовых слов и/или отображений в виде таблиц перекодировки в кодере и декодере. Это также позволяет снизить восприимчивость к ошибкам передачи данных, так как конкретная таблица перекодировки, подлежащая использованию для конкретного блока данных, сигнализируется декодеру посредством значения, указывающего число ненулевых коэффициентов преобразования в блоке.
На фиг. 8 представлен терминал, содержащий кодер и декодер, который может быть адаптирован для работы в соответствии с настоящим изобретением. Более конкретно, на чертеже показан мультимедийный терминал 80, реализованный согласно рекомендации ITU-T H.324. Терминал может рассматриваться как мультимедийное приемопередающее устройство. Он содержит элементы, которые регистрируют, кодируют и мультиплексируют потоки мультимедийных данных для передачи в коммуникационной сети, а также элементы, которые принимают, демультиплексируют, декодируют и отображают принятое мультимедийное содержание. Рекомендация ITU-T H.324 определяет общую работу терминала и ссылается на другие рекомендации, которые управляют работой его различных составляющих частей. Этот тип мультимедийного терминала может быть использован в приложениях реального времени, таких как видеотелефония с передачей речевых сообщений, или в приложениях, реализуемых не в реальном времени, таких как извлечение и/или потоковая передача видеоматериалов, например, с сервера мультимедийного содержания в Интернет.
В контексте настоящего изобретения следует отметить, что терминал Н.324, показанный на фиг. 8, является лишь одним из ряда альтернативных реализаций мультимедийных терминалов, подходящих для применения способа, соответствующего изобретению. Кроме того, следует отметить, что существует ряд альтернатив, касающихся расположения и реализации терминала. Как показано на фиг. 8, мультимедийный терминал может быть расположен в коммуникационном оборудовании, связанном со стационарной телефонной сетью, такой как аналоговая коммутируемая телефонная сеть общего пользования (PSTN). В этом случае мультимедийный терминал оснащен модемом 91, соответствующим рекомендациям ITU-T V.8, V.34 и дополнительно V.8bis. Альтернативно мультимедийный терминал может быть подключен к внешнему модему. Модем обеспечивает возможность преобразования мультиплексированных цифровых данных и управляющих сигналов, формируемых мультимедийным терминалом, в аналоговую форму, пригодную для передачи в сети PSTN. Кроме того, он позволяет мультимедийному терминалу принимать данные и управляющие сигналы в аналоговой форме из сети PSTN и преобразовывать их в поток цифровых данных, который может быть демультиплексирован и обработан терминалом соответствующим образом.
Мультимедийный терминал Н.324 может также быть реализован таким образом, что он имеет возможность непосредственного соединения с цифровой стационарной сетью, такой как цифровая сеть с комплексными услугами (ISDN). В этом случае модем 91 заменен сетевым интерфейсом пользователя сети ISDN. На фиг. 8 этот сетевой интерфейс пользователя представлен альтернативным блоком 92.
Мультимедийный терминал Н.324 может также быть адаптирован для использования в применениях мобильной связи. При использовании в канале беспроводной связи модем 91 может быть заменен соответствующим беспроводным интерфейсом, таким как представлено альтернативным блоком 93 на фиг. 8. Например, мультимедийный терминал Н.324/М может включать в себя приемопередатчик радиосвязи, обеспечивающий возможность соединения с современной мобильной телефонной сетью GSM 2-го поколения или с предложенной универсальной мобильной телефонной системой UMTS 3-го поколения.
Следует отметить, что в мультимедийных терминалах, предназначенных для осуществления двусторонней связи, то есть для передачи и приема видеоданных, предпочтительно использовать как кодер видеоданных, так и декодер видеоданных, реализованные согласно настоящему изобретению. Такая пара кодера и декодера часто реализуется как единый объединенный функциональный блок, определяемый как «кодек».
Типовой мультимедийный терминал Н.324 описан ниже более детально со ссылкой на фиг. 8.
Мультимедийный терминал 80 включает в себя различные элементы, определяемые как «терминальное оборудование». К ним относятся видеоаппаратура, аудиоаппаратура, интегрированные средства обработки и передачи информации, обозначенные соответственно ссылочными позициями 81, 82, 83. Видеоаппаратура 81 может включать, например, видеокамеру для съемки видеоизображений, монитор для отображения принятого видеосодержания и дополнительно аппаратуру обработки видеоданных. Аудиоаппаратура 82 обычно включает микрофон, например, для записи произносимых сообщений, динамик для воспроизведения принятого аудиосодержания. Аудиоаппаратура может также включать в себя дополнительные блоки обработки аудиоданных. Аппаратура 83 интегрированных средств обработки и передачи информации может включать в себя терминал данных, клавиатуру, электронную белую доску или приемопередатчик неподвижных изображений, такой как факс.
Видеоаппаратура 81 связана с кодеком 85 видеоданных. Кодек 85 видеоданных содержит кодер видеоданных и соответствующий декодер видеоданных, реализованные в соответствии с изобретением. Эти кодер и декодер описаны ниже. Кодек 85 видеоданных обеспечивает кодирование снятых видеоданных в подходящей форме для последующей передачи по каналу связи и декодирование сжатого видеосодержания, принятого из коммуникационной сети. В примере, показанном на фиг. 8, кодек видеоданных реализован в соответствии с рекомендацией ITU-T H.26L с соответствующими модификациями для реализации способа адаптивного кодирования переменной длины в соответствии с изобретением, как в кодере, так и декодере кодека видеоданных.
Аудиоаппаратура терминала связана с кодеком аудиоданных, обозначенным на фиг. 8 ссылочной позицией 86. Подобно кодеку видеоданных, кодек аудиоданных содержит пару кодера и декодера. Он преобразует аудиоданные, принятые аудиоаппаратурой терминала, в форму, подходящую для передачи по каналу связи, и преобразует кодированные аудиоданные, принятые из сети, в форму, подходящую для воспроизведения, например, через динамик терминала. Выходной сигнал кодека аудиоданных подается на блок 87 задержки. Это компенсирует задержки, введенные в процессе кодирования видеоданных, и, следовательно, обеспечивает синхронизацию аудио- и видеосодержания.
Блок 84 системного управления мультимедийного терминала управляет сигнализацией из конечного пункта в сеть с использованием соответствующего протокола управления (блок 88 сигнализации) для установления общего режима работы между передающим и принимающим терминалом. Блок 88 сигнализации обменивается информацией о возможностях кодирования и декодирования передающего и принимающего терминалов и может использоваться для обеспечения различных режимов кодирования кодера видеоданных. Блок 84 системного управления также управляет использованием шифрования для данных. Информация относительно типа шифрования, которое должно использоваться при передаче данных, поступает от блока 89 шифрования в блок 90 мультиплексора/демультиплексора.
При передаче данных от мультимедийного терминала блок 90 мультиплексора/демультиплексора объединяет кодированные и синхронизированные потоки аудио- и видеоданных с данными, введенными из аппаратуры 83 интегрированных средств обработки и передачи информации, и возможными управляющими данными для формирования единого битового потока. Информация относительно типа шифрования данных (если она имеется), подлежащего применению для битового потока, обеспечиваемая блоком 89 шифрования, используется для выбора режима шифрования. Соответственно, когда мультиплексированный и, возможно, зашифрованный мультимедийный битовый поток принимается, то блок 90 мультиплексора/демультиплексора обеспечивает дешифрирование битового потока, разделение его на составляющие мультимедийные компоненты и подачу этих компонентов на соответствующий кодек (кодеки) и/или оборудование для декодирования и воспроизведения терминала.
Следует отметить, что функциональные элементы мультимедийного терминала, кодер видеоданных, декодер и кодек видеоданных в соответствии с изобретением могут быть реализованы как программное обеспечение, специализированные аппаратные средства или как комбинация того и другого.
Способы кодирования и декодирования переменной длины, соответствующие изобретению, в частности, пригодны для реализации в форме компьютерной программы, содержащей машиночитаемые команды для выполнения функциональных этапов согласно изобретению. Кодер и декодер переменной длины, соответствующие изобретению, могут быть реализованы как код программного обеспечения, сохраненный на носителе данных и исполняемый в компьютере, например персональном настольном компьютере.
Если мультимедийный терминал 80 представляет собой мобильный терминал, т.е. если он оснащен приемопередатчиком 93 радиосвязи, специалистам в данной области техники должно быть понятно, что он также может содержать дополнительные элементы. В одном варианте осуществления он содержит пользовательский интерфейс, имеющий дисплей и клавиатуру для приведения в действие мультимедийного терминала 80 пользователем, центральный процессорный блок, такой как микропроцессор, который управляет блоками, предназначенными для выполнения различных функций мультимедийного терминала, оперативную память (RAM), постоянную память (ROM) и цифровую камеру. Команды, исполняемые микропроцессором, то есть программный код, соответствующий основным функциям мультимедийного терминала 80, сохранены в постоянной памяти и могут исполняться, как требуется микропроцессором, например, при управлении пользователем. В соответствии с программным кодом микропроцессор использует приемопередатчик 93 радиосвязи для установления соединения с сетью мобильной связи, обеспечивая возможность мультимедийному терминалу 80 передавать информацию в сеть мобильной связи и принимать из нее информацию по радиоканалу.
Микропроцессор контролирует состояние пользовательского интерфейса и управляет цифровой камерой. В ответ на команды пользователя микропроцессор выдает команды камере для записи цифровых изображений в оперативную память RAM. Как только изображение зарегистрировано или, как вариант, в процессе его регистрации, микропроцессор сегментирует изображение на сегменты изображения (например, макроблоки) и использует кодер для выполнения кодирования с компенсацией движения для сегментов, чтобы сформировать последовательность сжатого изображения, как пояснено выше. Пользователь может выдать команду мультимедийному терминалу 80 отобразить зарегистрированное изображение на дисплее или передать последовательность сжатого изображения с использованием приемопередатчика 93 радиосвязи другому мультимедийному терминалу, видеотелефону, соединенному со стационарной сетью связи (PTSN), или другому телекоммуникационному устройству. В предпочтительном варианте осуществления передача данных изображения запускается, как только кодирован первый сегмент, так что получатель может запускать соответствующий процесс декодирования с минимальной задержкой.