Способ и устройство для определения соответствия между синтаксическим элементом и кодовым словом для кодирования переменной длины

Иллюстрации

Показать все

Изобретение относится к области кодирования символов с использованием кодовых слов, а именно к кодированию переменной длины. Технический результат - обеспечение повышенной эффективности кодирования за счет определения соответствия между синтаксическим элементом и кодовым словом. Способ определения соответствия между синтаксическим элементом и кодовым словом для кодирования переменной длины включает: прием синтаксического элемента, подлежащего кодированию в качестве кодового слова из набора кодовых слов; определение соответствия между синтаксическим элементом и кодовым словом на основе иерархического уровня в древовидной структуре, при этом упомянутая древовидная структура относится по меньшей мере к одному из следующего: размер блока преобразования, размер блока предсказания или размер блока; использование упомянутого соответствия для получения кодового слова и обновление упомянутого соответствия. 4 н. и 12 з.п. ф-лы, 18 ил., 6 табл.

Реферат

Область техники

Предлагается способ определения соответствия между синтаксическим элементом и кодовым словом для кодирования переменной длины, способ определения соответствия между синтаксическим элементом и кодовым словом для декодирования переменной длины, устройство, кодер и декодер.

Предпосылки создания изобретения

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

Типовые видеокодеки, например, соответствующие стандартам Н.263 и Н.264 Международного союза электросвязи - Технического совета (ITU-T, International Telegraphic Union - Technical Board), кодируют видеоинформацию на двух стадиях. На первой стадии выполняется предсказание значений пикселей в определенной области изображения или "блоке". Эти значения пикселей могут быть предсказаны, например, с помощью механизмов компенсации движения, которые включают обнаружение и указание области в одном из ранее закодированных видеокадров (или в последнем закодированном видеокадре), которая наиболее точно соответствует кодируемому блоку. Дополнительно, значения пикселей могут быть предсказаны путем пространственных механизмов, которые включают обнаружение и указание взаимосвязи пространственных областей.

На второй стадии выполняется кодирование ошибки между предсказанным блоком пикселей и исходным блоком пикселей. Обычно это выполняется путем преобразования разности значений пикселей с использованием заданного преобразования. Обычно используется дискретное косинусное преобразование (DCT, Discrete Cosine Transform) или его варианты. После преобразования разности выполняется квантование и энтропийное кодирование этой преобразованной разности.

Путем изменения точности процесса квантования кодер может управлять балансом между точностью представления пикселей (другими словами, качеством изображения) и размером результирующего представления кодированного видео (другими словами, размером файла или битовой скоростью передачи). Пример процесса кодирования представлен на фиг.1.

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

После применения процессов предсказания пикселей и декодирования ошибки декодер объединяет сигналы предсказания и ошибки предсказания (значения пикселей) для формирования выходного видеокадра.

Декодер (и кодер) может также применять дополнительный процесс фильтрации для повышения качества выходного видеосигнала перед его отображением и/или сохранением в качестве опорного для предсказания последующих кадров в видеопоследовательности. Пример процесса декодирования представлен на фиг.2

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

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

В типовых видеокодерах для нахождения оптимальных режимов кодирования, например, требуемого режима макроблока и связанных векторов движения, используется функция Лагранжа. Функция этого типа использует весовой коэффициент А для связывания точного или оценочного искажения изображения, возникающего вследствие применения способов кодирования с потерями, и точного или оценочного объема информации, требуемого для представления значений пикселей в области изображения. Она может быть представлена следующей формулой:

C = D + λ R   ( 1 )

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

Когда исходные символы кодируются с использованием кодовых слов, которые могут иметь различную длину, исходные символы переводятся в уникальные кодовые слова. Такой тип кодирования может называться кодированием переменной длины (VLC - variable length coding). Кодирование может быть разработано таким образом, что наиболее вероятные символы представляются с помощью более коротких кодовых слов, а менее вероятные символы представляются с помощью более длинных кодовых слов. Когда осуществляется передача кодовых слов, более короткие кодовые слова могут быть представлены меньшим числом битов по сравнению с более длинными кодовыми словами. Одной из целей кодирования переменной длины является уменьшение объема информации, необходимой для представления символов, в сравнении с ситуацией, если бы символы кодировались как таковые. Другими словами, когда набор символов переводится в кодовые слова, результирующее кодированное представление должно содержать меньше битов, чем исходное. Набор символов может включать различные виды информации. Например, набор символов может быть файлом, содержащим байты, информационным потоком, таким как видеопоток или аудиопоток, изображением и т.д.

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

Одним из способов выполнения адаптации является отслеживание частоты встречаемости символов и использование этой частоты для определения набора кодовых слов переменной длины «на лету» во время кодирования символов. Такой тип полной адаптации является достаточно сложной операцией, особенно при большом диапазоне исходных символов. В практических реализациях может осуществляться некоторая форма квазиоптимальной адаптации. Например, кодер может использовать некоторое число заранее заданных наборов кодовых слов переменной длины и выбирать один из них на основе оценки локальной статистики. В других реализациях кодер может постепенно адаптировать кодовые слова из набора так, что только несколько отдельных кодовых слов из набора изменяется в определенный момент времени, так что уменьшается сложность вычисления на каждое кодовое слово.

Сущность изобретения

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

В соответствии с одним из примеров осуществления настоящего изобретения предлагается способ определения соответствия между синтаксическим элементом и кодовым словом для кодирования переменной длины. В соответствии с другим примером осуществления настоящего изобретения предлагается способ определения соответствия между синтаксическим элементом и кодовым словом для декодирования переменной длины.

В соответствии с первым аспектом изобретения предлагается способ, включающий:

прием синтаксического элемента, подлежащего кодированию в качестве кодового слова из набора кодовых слов;

определение соответствия между синтаксическим элементом и кодовым словом на основе иерархического уровня в древовидной структуре;

использование упомянутого соответствия для получения кодового слова и

обновление упомянутого соответствия.

В соответствии со вторым аспектом настоящего изобретения предлагается способ, включающий:

прием кодового слова из набора кодовых слов;

определение иерархического уровня в древовидной структуре;

определение соответствия для получения синтаксического элемента на основе упомянутого иерархического уровня и

обновление упомянутого соответствия.

В соответствии с третьим аспектом настоящего изобретения предлагается устройство, включающее:

вход, сконфигурированный для приема синтаксического элемента, подлежащего кодированию в качестве кодового слова из набора кодовых слов;

элемент определения, сконфигурированный для определения соответствия между синтаксическим элементом и кодовым словом на основе иерархического уровня в древовидной структуре;

селектор кодового слова, сконфигурированный для использования упомянутого соответствия для получения кодового слова, и

адаптер, сконфигурированный для обновления упомянутого соответствия.

В соответствии с четвертым аспектом настоящего изобретения предлагается устройство, включающее:

вход, сконфигурированный для приема кодового слова из набора кодовых слов;

элемент определения, сконфигурированный для определения иерархического уровня в древовидной структуре;

селектор синтаксического элемента, сконфигурированный для определения соответствия для получения синтаксического элемента на основе упомянутого иерархического уровня, и

адаптер, сконфигурированный для обновления упомянутого соответствия.

Устройство может включать кодер.

Устройство может включать декодер.

Электронное устройство может включать устройство, описанное выше.

Чипсет может включать устройство, описанное выше.

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

приема синтаксического элемента, подлежащего кодированию в качестве кодового слова из набора кодовых слов;

определения соответствия между синтаксическим элементом и упомянутым кодовым словом на основе иерархического уровня в древовидной структуре;

использования упомянутого соответствия для получения кодового слова и

обновления упомянутого соответствия.

В соответствии с шестым аспектом настоящего изобретения предлагается носитель данных, содержащий хранимый на нем исполняемый компьютером программный код для использования декодером, при этом упомянутый программный код включает инструкции для

приема кодового слова из набора кодовых слов;

определения иерархического уровня в древовидной структуре;

определения соответствия для получения синтаксического элемента на основе упомянутого иерархического уровня и

обновления упомянутого соответствия.

В соответствии с седьмым аспектом настоящего изобретения предлагается устройство, включающее:

по меньшей мере один процессор;

и по меньшей мере одну память, содержащую код компьютерной программы;

при этом по меньшей мере одна память и компьютерный программный код сконфигурированы так, чтобы с помощью упомянутого по меньшей мере одного процессора обеспечивать выполнение устройством по меньшей мере следующего:

приема синтаксического элемента, подлежащего кодированию в качестве кодового слова из набора кодовых слов;

определения соответствия между синтаксическим элементом и кодовым словом на основе иерархического уровня в древовидной структуре;

использования упомянутого соответствия для получения кодового слова и

обновления упомянутого соответствия.

В соответствии с восьмым аспектом настоящего изобретения предлагается устройство, включающее:

по меньшей мере один процессор;

и по меньшей мере одну память, содержащую код компьютерной программы;

при этом по меньшей мере одна память и компьютерный программный код сконфигурированы так, чтобы с помощью по меньшей мере одного процессора обеспечивать выполнение устройством по меньшей мере следующего:

приема кодового слова из набора кодовых слов;

определения иерархического уровня в древовидной структуре;

определения соответствия для получения синтаксического элемента на основе упомянутого иерархического уровня и

обновления упомянутого соответствия.

В соответствии с девятым аспектом настоящего изобретения предлагается устройство, включающее:

средства для приема синтаксического элемента, подлежащего кодированию в качестве кодового слова из набора кодовых слов;

средства для определения соответствия между синтаксическим элементом и кодовым словом на основе иерархического уровня в древовидной структуре;

средства для использования упомянутого соответствия для получения кодового слова и

средства для обновления упомянутого соответствия.

В соответствии с десятым аспектом настоящего изобретения предлагается устройство, включающее:

средства для приема кодового слова из набора кодовых слов;

средства для определения иерархического уровня в древовидной структуре;

средства для определения соответствия для получения синтаксического элемента на основе упомянутого иерархического уровня и

средства для обновления упомянутого соответствия.

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

В некоторых вариантах осуществления изобретения уже закодированные значения cbp (шаблон кодированного блока - coded block pattern) более высоких или соседних узлов в квадрадереве могут использоваться совместно с характеристиками преобразования для определения таблицы сортировки.

В некоторых других вариантах осуществления изобретения преобразование значения синтаксического элемента в бинарную форму может быть реализовано без использования адаптивных таблиц сортировки. Например, могут использоваться различные VLC-таблицы для кодирования значений шаблонов кодированных блоков для различных размеров преобразования. При использовании адаптивного к контексту бинарного арифметического кодирования (САВАС - context adaptive binary arithmetic coding) или аналогичного способа энтропийного кодирования, контекстный выбор для значений шаблона кодированных блоков может осуществляться на основе размера преобразования.

Краткое описание чертежей

Фиг.1 иллюстрирует упрощенную структурную схему примера осуществления системы, в которой информация передается от кодера к декодеру.

Фиг.2 иллюстрирует упрощенную структурную схему кодера в соответствии с примером осуществления настоящего изобретения.

Фиг.3 иллюстрирует упрощенную структурную схему декодера в соответствии с примером осуществления настоящего изобретения.

Фиг.4 иллюстрирует блок-схему способа кодирования в соответствии с примером осуществления настоящего изобретения.

Фиг.5 иллюстрирует блок-схему способа декодирования в соответствии с примером осуществления настоящего изобретения.

Фиг.6а иллюстрирует пример деления макроблока на меньшие блоки.

Фиг.6b иллюстрирует схему дерева для примера иерархической структуры синтаксических элементов макроблока, показанного на фиг.6а.

Фиг.6с иллюстрирует схему дерева для другого примера иерархической структуры синтаксических элементов макроблока.

Фиг.7а-7с иллюстрируют некоторые примеры макроблоков, разделенных на четыре подблока, и соответствующие значения шаблонов кодированных блоков.

Фиг.8 схематически показывает электронное устройство, реализующее некоторые варианты осуществления изобретения.

Фиг.9 схематически показывает пользовательское устройство, которое подходит для реализации некоторых вариантов осуществления изобретения.

Фиг.10 схематически показывает электронные устройства, реализующие варианты осуществления изобретения и связанные с помощью соединений беспроводной и проводной сетей.

Фиг.11 схематически показывает вариант осуществления видеокодера.

Фиг.12 показывает схему варианта осуществления видеодекодера.

Фиг.13 иллюстрирует упрощенную структурную схему кодера в соответствии с другим вариантом осуществления настоящего изобретения.

Фиг.14 иллюстрирует упрощенную структурную схему декодера в соответствии с другим вариантом осуществления настоящего изобретения.

Подробное описание изобретения

Ниже более подробно описываются соответствующее устройство и возможные механизмы для видеокодека для обеспечения повышенной эффективности кодирования и точности представления сигнала. В связи с этим рассмотрим сначала фиг.1, где показана структурная схема примеров устройства или электронного устройства 50, которое может включать кодек в соответствии с вариантом осуществления настоящего изобретения, и фиг.9, которая схематически показывает пользовательское устройство, подходящее для реализации некоторых вариантов осуществления изобретения.

Электронное устройство 50 может являться, например, мобильным терминалом или пользовательским устройством системы беспроводной связи. Однако следует отметить, что варианты настоящего изобретения могут быть реализованы в рамках любого электронного устройства или устройства, для которого может потребоваться кодирование и/или декодирование видеоизображений.

Устройство 50 может содержать корпус 30 для размещения и защиты компонентов устройства. Устройство 50 может также содержать дисплей 32, выполненный в виде жидкокристаллического дисплея. В других вариантах осуществления настоящего изобретения дисплей может быть выполнен в соответствии с любой подходящей технологией для воспроизведения изображений или видео. Устройство 50 может также содержать клавиатуру 34. В других вариантах осуществления настоящего изобретения могут использоваться любые подходящие механизмы интерфейса ввода данных или пользовательского интерфейса. Например, пользовательский интерфейс может быть реализован в виде виртуальной клавиатуры или системы ввода данных, являющейся частью сенсорного экрана. Устройство может содержать микрофон 2.3 или любое подходящее средство ввода аудиосигнала, которое может являться средством ввода цифрового или аналогового сигнала. Устройство 50 может также содержать средство вывода аудиосигнала, которое в вариантах осуществления настоящего изобретения может представлять собой одно из следующих средств: наушники 38, динамик либо аналоговое или цифровое подключение к аудиовыходу. Устройство 50 может также содержать батарею 40 (или в других вариантах осуществления настоящего изобретения устройство может получать питание от любого подходящего мобильного источника энергии, такого как солнечный фотоэлемент, топливный элемент или аккумулятор часового механизма). Устройство может также содержать инфракрасный порт 42 для ближней связи с другими устройствами. В других вариантах осуществления настоящего изобретения устройство 50 может также содержать любое подходящее решение для ближней связи, такое как беспроводное соединение Bluetooth или проводное соединение USB/firewire.

Устройство 50 может включать контроллер 1.4, 11.4 или процессор для управления устройством 50. Контроллер 1.4, 11.4 может быть соединен с памятью 58, в которой, согласно вариантам осуществления настоящего изобретения, могут храниться данные изображения и аудиоданные и/или инструкции для выполнения контроллером 1.4, 11.4. Контроллер 1.4, 11.4 может быть также соединен со схемой 54 кодека, подходящей для выполнения кодирования и декодирования аудио и/или видео или участия в кодировании и декодировании, выполняемых контроллером 1.4,11.4.

Устройство 50 может также содержать считыватель 48 с карты и смарт-карту 46, например, UICC, и считыватель UICC для предоставления пользовательской информации, которые подходят для предоставления аутентификационной информации для аутентификации и авторизации пользователя в сети.

Устройство 50 может содержать схему 52 радиоинтерфейса, соединенную с контроллером и позволяющую генерировать сигналы для беспроводной связи, например, для связи с сетью сотовой связи, системой беспроводной связи или локальной сетью беспроводной связи. Устройство 50 также может включать антенну 44, соединенную со схемой 52 радиоинтерфейса для передачи в другое (другие) устройство (устройства) и приема от другого (других) устройства (устройств) радиочастотных сигналов, сгенерированных в схеме 52 радиоинтерфейса.

В некоторых вариантах осуществления настоящего изобретения устройство 50 содержит камеру, позволяющую записывать или обнаруживать отдельные кадры, которые затем передаются для обработки в кодек 54 или в контроллер. В других вариантах осуществления настоящего изобретения устройство может принимать для обработки данные видеоизображения от другого устройства перед передачей и/или сохранением этих данных. В других вариантах осуществления настоящего изобретения устройство 50 может принимать изображение для кодирования/декодирования по беспроводному или проводному соединению.

На фиг.10 показана система, в которой могут использоваться варианты осуществления настоящего изобретения. Система 110 содержит множество устройств связи, которые могут взаимодействовать друг с другом через одну или более сетей. Система 110 может включать любое объединение проводных или беспроводных сетей, включая, не ограничиваясь этим, беспроводную телефонную сотовую сеть (например, сеть GSM, UMTS, CDMA и т.д.), локальную беспроводную сеть (WLAN, wireless local area network), определенную, например, любым из стандартов IEEE 802.X, персональную сеть Bluetooth, локальную сеть Ethernet, кольцевую локальную сеть с маркерным доступом (token ring), глобальную сеть и Интернет.

Система 110 может содержать как проводные, так и беспроводные средства связи или устройства 50, подходящие для реализации вариантов настоящего изобретения.

Например, система, показанная на фиг.10, включает мобильную телефонную сеть 111 и Интернет 128. Соединение с Интернетом 128 может включать, не ограничиваясь этим, беспроводные соединения для дальней связи, беспроводные соединения для ближней связи и различные проводные соединения, включая, не ограничиваясь этим, телефонные линии, кабельные линии, линии электропитания и аналогичные тракты связи.

Примеры устройств связи, показанные в системе 110, могут включать, не ограничиваясь этим, электронное устройство или устройство 50, объединение персонального цифрового помощника (PDA, personal digital assistant) и мобильного телефона 114, PDA 116, интегрированное устройство 118 обмена сообщениями (IMD, integrated messaging device), настольный компьютер 120, ноутбук 122. Устройство 50 может быть стационарным или мобильным устройством, перемещаемым отдельным пользователем. Устройство 50 может также располагаться в транспортном средстве, включая, не ограничиваясь этим, легковой автомобиль, грузовик, такси, автобус, поезд, судно, самолет, велосипед, мотоцикл или любое аналогичное подходящее транспортное средство.

Некоторые устройства могут посылать и принимать вызовы и сообщения и осуществлять связь с провайдерами услуг через беспроводное соединение 25 с базовой станцией 124. Базовая станция 124 может соединяться с сетевым сервером 126, который позволяет выполнять связь между мобильной телефонной сетью 111 и Интернетом 128. Система может содержать дополнительные устройства связи и устройства связи различных типов.

Устройства связи могут осуществлять связь с использованием различных технологий передачи, включая, не ограничиваясь этим, множественный доступ с кодовым разделением каналов (CDMA, code division multiple access), глобальные системы мобильной связи (GSM, global system for mobile communications), универсальную систему мобильной связи (UMTS, universal mobile telecommunications system), множественный доступ с временным разделением каналов (TDMA, time divisional multiple access), множественный доступ с частотным разделением каналов (FDMA, frequency division multiple access), протокол управления передачей/Интернет-протокол (TCP-IP, transmission control protocol-internet protocol), службу обмена короткими сообщениями (SMS, short messaging service), службу обмена мультимедийными сообщениями (MMS, multimedia messaging service), электронную почту, службу мгновенного обмена сообщениями (IMS, instant messaging service), Bluetooth, IEEE 802.11 и любые другие аналогичные технологии беспроводной связи. Устройства связи, задействованные в реализации различных вариантов осуществления настоящего изобретения, могут осуществлять связь с использованием различных сред передачи, включая, не ограничиваясь этим, радиосоединения, инфракрасные, лазерные, кабельные соединения и любые другие подходящие соединения.

Далее более подробно будет описана система, показанная на сриг.1. Информация, подлежащая кодированию и передаче, принимается кодером 1 от источника 2. Кодер может быть частью кодека устройства 50 пользователя или другого устройства или может быть самостоятельным устройством. Упомянутая информация может представлять собой, например, видеоинформацию, аудиоинформацию, статические изображения, текст и т.д. Упомянутая информация может также являться комбинацией двух или более видов информации. В этом случае могут обеспечиваться различные кодеры и декодеры для каждого типа информации, или один и тот же кодер и/или декодер может обрабатывать различные виды информации. Источник 2 может быть, например, видеокамерой 2.1, фотокамерой 2.2, микрофоном 2.3, устройством 2.4, способным проигрывать, например, цифровые универсальные диски (DVD - digital versatile disk), носителем данных 2.5 и т.д. Указанные примеры информации и источника 2 представлены лишь в качестве иллюстрации настоящего изобретения и не ограничивают настоящее изобретение. Информация от источника 2 кодируется кодером 1 первого устройства 8. Кодированная информация может быть сохранена в памяти 4 и/или передана посредством передатчика 9 в канал 15 передачи. Переданная информация может быть принята приемником 114 второго устройства 10. Второе устройство 10 включает декодер 11, который декодирует принятую информацию. Декодированная информация может подвергаться последующей обработке, например, посредством сохранения декодированной информации в памяти 12 второго устройства, ее отображения на дисплее в случае, если информация содержит визуальную информацию, и преобразования аудиоинформации в случае, если упомянутая информация содержит аудиоинформацию и т.д.

На фиг.11 показана структурная схема видеокодера, подходящего для выполнения кодирования видеоинформации.

На фиг.11 показан кодер, содержащий предсказатель 302 пикселей, кодер 303 ошибки предсказания и декодер 304 ошибки предсказания.

Предсказатель 302 пикселей принимает подлежащее кодированию изображение 300 как на входе межкадрового предсказателя 306 (который определяет разность между кадром изображения и опорным кадром 318), так и на входе внутри кадрового предсказателя 308 (который определяет изображение только на основе текущего кадра или изображения). Выходные сигналы межкадрового и внутрикадрового предсказателей подаются на селектор 310 режима. Селектор 310 режима также принимает копию изображения 300. Выходной сигнал селектора режима представляет собой блок 312 изображения, предсказанный на основе либо межкадрового предсказателя 306, либо внутрикадрового предсказателя 308, который подается в первый сумматор 321. Первый сумматор может вычесть выходной сигнал предсказателя 302 пикселей из сигнала изображения 300 для получения первого сигнала 320 ошибки предсказания, который подается на вход кодера 303 ошибки предсказания.

Предсказатель 302 пикселей принимает от предварительного реконструктора 339 объединение представления предсказания блока 312 изображения и выходного сигнала 338 декодера 304 ошибки предсказания. Предварительно реконструированное изображение 314 может быть передано во внутрикадровый предсказатель 308 и фильтр 316. Фильтр 316, принимающий предварительное представление, может выполнять фильтрацию предварительного представления и выводить окончательное реконструированное изображение 340, которое может сохраняться в памяти 318 опорных кадров. Память 318 опорных кадров может соединяться с межкадровым предсказателем 306 для использования в качестве опорного изображения по отношению к изображению 300 в операциях межкадрового предсказания.

Функционирование предсказателя 302 пикселей может быть сконфигурировано для выполнения любого известного алгоритма предсказания пикселей.

Кодер 303 ошибки предсказания включает блок 351 преобразования, выполняет преобразование значений коэффициентов макроблоков, например, дискретное косинусное преобразование (DCT - discrete cosine transform), дискретное синусное преобразование (DST - discrete sine transform), преобразование Карунена - Лоэва (KLT - Karhunen-Loeve transform). Кодер 303 ошибки предсказания также включает блок 353 квантования, который выполняет операцию квантования упомянутых коэффициентов. Выходной сигнал кодера 303 ошибки предсказания передается в энтропийный кодер 330, а также в декодер 304 ошибки предсказания.

Энтропийный кодер 330 принимает выходной сигнал кодера ошибки предсказания и может выполнять для этого сигнала подходящее энтропийное кодирование или кодирование переменной длины для обеспечения возможности обнаружения ошибки и коррекции. Может использоваться любой подходящий алгоритм энтропийного кодирования.

Декодер 304 ошибки предсказания принимает выходной сигнал кодера 303 ошибки предсказания и выполняет процессы, обратные тем, которые выполняет кодер 303 ошибки предсказания, для формирования сигнала 338 декодированной ошибки предсказания, который при объединении с представлением предсказания блока 312 изображения во втором сумматоре 339 формирует предварительно реконструированное изображение 314.

Пример осуществления кодера 1 представлен на фиг.2. Кодер 1 имеет вход 1.1 для приема информации, подлежащей кодированию. Если информация представлена в аналоговой форме, то она преобразуется в цифровую форму, например, посредством аналого-цифрового преобразователя 3. Аналого-цифровой преобразователь 3 формирует отсчеты на основе аналоговой информации. Отсчеты представляют аналоговый сигнал в определенные моменты времени. Однако информация может быть уже представлена в форме, которую может обрабатывать кодер 1. Поэтому аналогово-цифровой преобразователь 3 может не использоваться. Отсчеты могут храниться в буфере 4.1 отсчетов.

В системе, представленной на фиг.11, информация, полученная от кодера 303 ошибки предсказания и подлежащая кодированию, может быть передана на вход 1.1 без использования аналого-цифрового преобразователя 3, так как квантованные коэффициенты уже представлены в цифровой форме.

В дальнейшем описании предполагается, что информация, подлежащая передаче, представляет собой визуальную информацию. Визуальная информация подается на предсказатель 302 пикселей, кодер 303 ошибки предсказания и декодер 304 ошибки предсказания. Как было указано выше, могут выполняться операции предсказания пикселей, например, внутрикадровое предсказание или межкадровое предсказание, для формирования внутренних (I - intra) кадров, предсказанных (Р - predicted) кадров и/или двусторонне (В - bidirectional) предсказанных кадров. Эти кадры могут быть преобразованы в макроблоки. Например, процессор 1.7 блоков может использовать следующие размеры для преобразования: 4×4, 8×8, 16×16, 32×32 и 128×128.

Информация, подлежащая передаче, кодируется кодером 1 для формирования кодовых слов. Далее процесс кодирования описывается более подробно со ссылкой на блок-схему, показанную на фиг.4, и кодер 1, показанный на фиг.2. Предполагается, что из информации, подлежащей кодированию, могут быть получены некоторые статистические параметры. Например, распределение вероятности символов, представляющих информацию, может быть известно или может быть оценено с использованием некоторого критерия. В настоящем изобретении предлагаются два или более различных набора кодовых слов переменной длины, из которых выбираются кодовые слова переменной длины для кодирования символа. Наборы кодовых слов можно рассматривать в виде различных таблиц 5.1-5.М кодовых слов переменной длины (VLC-таблицы), в которых строки представляют соответствие между символом и кодовым словом. В данном описании таблицы кодовых слов переменной длины также называются адаптивными таблицами сортировки. В практических приложениях существует много возможностей реализовать таблицы кодовых слов. Это будет рассмотрено более подробно далее.

В некоторых вариантах осуществления изобретения синтаксические элементы могут кодироваться путем использования адаптивной таблицы сортировки. Это может быть проиллюстрировать следующим примером. Операция записи значения синтаксического элемента Х в битовый поток может быть выполнена следующим образом. Пусть значение синтаксического элемента равно Y. В начале операции или в некоторой точке восстановления может быть выбрана таблица по умолчанию или одна из набора таблиц по умолчанию. Также возможно, что таблица не задана в памяти устройства, но может быть использован алгоритм или функция для определения значений элементов таблицы. Однако для ясности описания операции сортировки предполагается, что таблица хранится в памяти. Отсортированная таблица поддерживается для некоторых синтаксических элементов для улучшенной контекстной адаптации. Обозначим отсортированную таблицу, соответствующую синтаксическому элементу X, как отсортированную таблицу одномерного массива X[i]. Вначале определяется ранг значения Y в отсортированной таблице X, а затем данный ранг кодируется с использованием кодирования переменной длины (VLC). После этого отсортированная таблица обновляется таким образом, что значение Y будет иметь меньший ранг. Это может быть выполнено различными способами, одним из которых является смена мест ранга значения Y со значением, расположенным непосредственно выше значения Y, которое имеет значение «ранг - 1», то есть ранг, который на единицу меньше ранга значения Y. Ранг значения, со