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

Изобретение относится к области кодирования символов с использованием кодовых слов, а именно к кодированию переменной длины. Технический результат - обеспечение повышенной эффективности кодирования за счет определения соответствия между синтаксическим элементом и кодовым словом. Способ определения соответствия между синтаксическим элементом и кодовым словом для кодирования переменной длины включает: прием синтаксического элемента, подлежащего кодированию в качестве кодового слова из набора кодовых слов; определение соответствия между синтаксическим элементом и кодовым словом на основе иерархического уровня в древовидной структуре, при этом упомянутая древовидная структура относится по меньшей мере к одному из следующего: размер блока преобразования, размер блока предсказания или размер блока; использование упомянутого соответствия для получения кодового слова и обновление упомянутого соответствия. 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. Ранг значения, соответствующий значению «ранг - 1», увеличивается. Другими словами, ранги значения Y и значения, расположенного выше Y, меняются местами.

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

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

Таблица 1
Синтаксический элемент Кодовое слово VLC
А 1
В 010
С 011
D 00100

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

Таблица 2
Синтаксический элемент Кодовое слово VLC
А 1
С 010
В 011
D 00100

Таким образом, если бы синтаксический элемент С кодировался бы снова, то для представления синтаксического элемента С использовалось бы кодовое слово 010, а ранг синтаксического элемента С был бы снова изменен. В данном примере это означало бы, что обновленным кодовым словом VLC для синтаксического элемента С стало бы 1, а обновленное кодовое слово VLC для синтаксического элемента А стало бы 010, как показано в таблице 3:

Таблица 3
Синтаксический элемент Кодовое слово VLC
С 1
А 010
В 011
D 00100

Видеоизображения или другие изображения могут кодироваться блоками. Например, макроблок размера N×N может быть разделен на четыре меньших блока (подблока) размера N/2 x N/2. Некоторые из блоков меньшего размера могут содержать только нулевые значения, тогда как другой блок (блоки) могут содержать одно или более ненулевых значений. Эффективность кодирования может быть повышена в случае, если кодеру 1 не нужно будет осуществлять кодирование блоков с нулевыми значениями, а нужно только предоставлять в битовом потоке указание на то, какие блоки содержат ненулевые значения (или какие блоки содержат только нулевые значения). В некоторых вариантах осуществления изобретения это выполняется посредством формирования для блока шаблона кодированного блока, который указывает на то, какие блоки содержат по меньшей мере одно ненулевое значение (ненулевой символ). На фиг.7а-7с представлены некоторые примеры макроблоков, разделенных на четыре подблока, и соответствующие значения шаблона кодированного блока. В примере на фиг.7а нижний левый блок 703 макроблока 700 содержит одно или более ненулевых значений, а другие три блока 701, 702, 704 содержат только нулевые значения. Например, шаблон кодированного блока на фиг.7а может быть представлен бинарным значением 0010. В примере на фиг.7b верхний левый блок 701 и нижний левый блок 703 макроблока 700 содержат одно или более ненулевых значений, а два других блока 702, 704 содержат только нулевые значения. Шаблон кодированного блока для примера на фиг.7b может быть представлен бинарным значением 1010. Соответственно, в примере на фиг.7с верхний левый блок 701 и нижний правый блок 704 макроблока 700 содержат одно или более ненулевых значений, а два других блока 702, 703 содержат только нулевые значения. Шаблон кодированного блока для примера на фиг.7с может быть представлен бинарным значением 1001. В данном примере бинарное число 1 указывает на то, что блок содержит ненулевое (ненулевые) значение (значения), а бинарное число О указывает на то, что блок содержит только нулевое (нулевые) значение (значения). Однако возможно использовать другие символы или бинарное число 1 для указания блока только с нулевыми значениями, а бинарное число 0 для указания блоков, имеющих ненулевое (ненулевые) значение (значения).

Кодер 1 в соответствии с примером осуществления настоящего изобретения выполняет кодирование следующим образом. В начале процесса кодирования происходит инициализация переменных начальными значениями. Это выполняется, например, контроллером 1.4 кодера, который устанавливает некоторые ячейки памяти в выбранное состояние. Эти ячейки памяти могут быть расположены в памяти 4 или, например, могут быть внутренними по отношению к контроллеру 1.4. В примере осуществления изобретения, показанном на фиг.2, переменные хранятся во внутренних регистрах 1.4.1 контроллера 1.4. Фаза инициализации показана блоком 401 в блок-схеме на фиг.4 и блоком 1.3 инициализации на фиг.2.

При инициализации различные адаптивные таблицы сортировки могут инициализироваться в определенные состояния. Например, соответствие кодовых значений кодовым словам может быть упорядочено по возрастанию кодовых значений, например, от 0 до 15. Кодовому значению 0 будет соответствовать первое кодовое слово, кодовому значению 1 - второе кодовое слово и т.д.

После фазы инициализации может начинаться кодирование, при этом на вход кодера 1 может подаваться макроблок (блок 402). Контроллер 1.4 может указать процессору 1.7 блоков определить шаблон кодированного блока для текущего макроблока (блок 403). Контроллер 1.4 может также указать процессору 1.7 блоков определить разделение на блоки для текущего макроблока. Значение шаблона кодированного блока, информация о разделении блока и информация о разделении преобразования может кодироваться посредством использования адаптивных таблиц сортировки 5.1, 5.2,…5.М. Далее этот процесс описывается более подробно.

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

Кодер 1 может вставлять в битовый поток указание подблоков макроблока, которые содержат одно или более ненулевых значений, то есть упомянутый выше шаблон кодированного блока. Кодер 1 может принимать значения шаблонов кодированных блоков для макроблока от видеокодера, или же кодер 1 может сам определять значения шаблонов кодированных блоков.

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

Далее предполагается, что информация шаблона кодированного блока (cbp) кодируется с использованием отсортированной таблицы CBP[ctx][i] 5.1. Может быть вычислена контекстная переменная с использованием следующей информации: тип кадра и размер преобразования текущего блока (блок 404). Кодер 1 может принимать информацию о типе кадра и/или иерархическом уровне текущего блока от видео кодера, например, от селектора 310 режима, или же кодер 1 может сам определить эту информацию. Иерархический уровень в древовидной структуре может относиться к дереву кодирования для разделений преобразования, к дереву кодирования для разделений движения или к дереву кодирования, относящемуся к размерам блоков. Здесь необходимо отметить, что нет необходимости реализовывать древовидную структуру или дерево кодирования фактически в качестве определенных элементов или структур в устройстве, при этом древовидная структура или дерево кодирования могут быть проиллюстрированы в качестве информации о зависимости между различными видами объектов. Другими словами, могут иметься некоторые правила иерархической зависимости между объектами. В качестве не ограничивающего изобретение примера может иметься блок размера 64×64 на самом высоком уровне древовидной структуры. Этот уровень может также называться корнем древовидной структуры или дерева кодирования, а уровни, расположенные ниже корня, могут называться узлами, при этом узлы определенного иерархического уровня могут формировать набор узлов. Блок может быть разделяемым на блоки меньшего размера, например, на четыре блока размера 32×32, все из которых могут рассматриваться как представляющие следующий уровень древовидной структуры (четыре узла второго уровня в данном примере). Каждый из этих четырех блоков размера 32×32 может быть далее разделен на меньшие блоки, например, на блоки размера 16×16. Эти блоки размера 16×16, число которых может быть между 0 и 16 (=четыре блока 32×32, каждый из которых разделен на четыре меньших блока размера 16×16), могут рассматриваться как представляющие третий иерархический уровень древовидной структуры (узлы 0-16 третьего уровня в данном примере). Необходимо также отметить, что может использоваться термин "расстояние" в связи с иерархическими уровнями древовидной структуры, когда элементы определенного иерархического уровня находятся на одном и том же расстоянии от корня. Например, расстояние от корня второго иерархического уровня равно единице (где корень представляет первый или самый высокий иерархический уровень).

В следующих примерах термин «дерево кодирования» используется в качестве примера древовидной структуры.

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

Таблица 4 иллюстрирует пример использования типа кадра и иерархического уровня дерева кодирования, используемых для блоков преобразования в качестве контекста.

Таблица 4
Типа кадра Иерархический уровень дерева кодирования ctx
1-кадр 0 0
1 1
2 2
3 3
Р-кадр 0 4
1 5
2 6
3 7
В-кадр 0 8
1 9
2 10
3 11

Например, если типом кадра является внутренний кадр (1-кадр), а иерархический уровень дерева кодирования равен 2, то соответствующим контекстом (индексом) будет значение 2, если используется таблица 4. Соответственно, для блока в Р-кадре с иерархическим уровнем 1 контекст равен 5.

Для простоты в следующем примере предполагается, что видеокодер 1 поддерживает четыре иерархических уровня (0, 1, 2, 3). Начальная адаптивная таблица сортировки может быть представлена следующим образом:

tableCBP[ctx][i]=

{{0,1,2,3,4.5,6,7,8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7,8.9,10,11,12,13,14,15},

{0,1,2,3.4,5,6,7,8,9.10,11,12,13.14,15},

{0,1,2,3.4,5,6,7,8,9,10,11,12,13,14,15},

{0.1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7,8,9,10,11.12,13,14,15},

{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7,8,9,10,11,12.13,14,15}},

где строки соответствуют различным типам кадров и иерархическим уровням. В данном примере строки соответствуют строкам таблицы 1, то есть первая строка соответствует 1-кадру размера 4×4, вторая строка соответствует 1-кадру размера 8×8 и т.д.

Например, пусть кодер 1 кодирует значение шаблона кодированного блока (cbp), равное 10, что соответствует значению 1010 в бинарной форме, указывающему, например, на то, что верхний левый и нижний левый блоки содержат по меньшей мере один ненулевой коэффициент. Кодер 1 определяет контекстную переменную ctx, например, посредством использования таблицы 4. Также предполагается, что шаблон кодированного блока кодируется в 1-кадре, а иерархический уровень равен 1. Поэтому контекстная переменная ctx может быть определена как 1, что видно из таблицы 4. Ранг значения 10 также равен 10 в соответствующей отсортированной таблице (tableCBP[ctx][i]), и значение ранга может быть представлено в бинарном виде с использованием VLC-таблицы. В этом случае соответствующая упорядоченная таблица обновляется, а массив tableCBP будет выглядеть следующим образом:

tableCBP[ctx][i]=

{{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7,8,10,9,11,12,13,14,15},

{0.1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7,8,9,10,11,12,13.14,15}.

{0,1,2,3,4.5,6,7,8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7.8,9,10,11,12,13,14,15}.

{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},

{0,1,2.3.4,5,6,7.8,9,10,11,12,13,14,15},

{0,1,2,3.4,5,6,7,8,9,10.11,12,13,14,15},

{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}}.

Другими словами, значения 10 и 9 во второй строке поменялись местами.

Далее предполагается, что кодер кодирует следующее значение шаблона кодированного блока, равное 3, в 1-кадре с иерархическим уровнем, равным 3. Из таблицы 4 находится значение переменной ctx, равное 3. Ранг значения 3 в соответствующей таблице сортировки равно 3, и значение 3 ранга переводится в бинарную форму с помощью VLC-таблицы. Тогда соответствующая упорядоченная таблица обновляется, а массив tableCBP будет выглядеть следующим образом:

tableCBP[ctx][i]=

{{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7,8,10,9,11,12,13,14,15},

{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},

{0,1,3,2,4,5,6,7,8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7.8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},

{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}}.

Значения 3 и 2 в четвертой строке поменялись местами.

Как видно, возможно использовать различные адаптивные таблицы сортировки для значений шаблонов кодированных блоков различных размеров преобразований.

Далее будут показаны некоторые примеры VLC-таблиц для кодирования значений ранга.

Таблица 5
Ранг Кодовое слово VLC
0 10
1 11
2 010
3 011
4 00100
5 00101
6 00110
7 00111
8 00010
9 00011
10 0000100
11 0000101
12 0000110
13 0000111
14 0000010
15 0000011
Таблица 6
Ранг Кодовое слово VLC
0 1
1 010
2 011
3 00010
4 00011
5 00001000
6 00001001
7 00001010
8 00001100
9 00001101
10 00001110
11 00001111
12 00000100
13 00000101
14 00000110
15 00000111

Для представленного выше примера сначала для кодирования значения шаблона кодированного блока, равного 10, было выбрано кодовое слово VLC, равное 0000100, если использовалась таблица 5, или кодовое слово VLC, равное 00001110, если использовалась таблица 6. Когда значение 10 шаблона кодированного блока будет кодироваться снова, то обновленный ранг значения 10 будет равен 9, для которого значение слова VLC равно 00011 (таблица 5) или 00001101 (таблица 6).

Во втором примере кодер 1 кодирует значение шаблона кодированного блока, равное 3, в I-кадре с иерархическим уровнем, равным 3. Тогда из таблицы 4 будет определено, что переменная ctx равна 3, а кодовое слово VLC равно 011, если используется таблица 5, или 00010, если используется таблица 6. В следующий раз значение 3 шаблона кодированного блока будет представлено в бинарной форме как 010 (таблица 5) или как 011 (таблица 6).

В кодере 1 селектор 1.6 таблицы сортировки может вычислять индекс ctx для адаптивной таблицы сортировки CBP[ctx][i] и выбирать правильную строку в таблице сортировки путем использования индекса ctx. Затем селектор 1.6 таблицы сортировки может назначать кодовое слово из упомянутой таблицы, используемое для представления текущего синтаксического элемента посредством использования значения синтаксического элемента в качестве указателя на строку в таблице сортировки (блок 405). Адаптер 1.8 таблицы сортировки может использовать тот же самый указатель для адаптации таблицы сортировки (блок 406), как было показано выше, например, посредством перестановки значений двух соседних элементов в адаптивной таблице сортировки.

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

Описанные выше процедуры могут повторяться для других макроблоков или других данных, подлежащих кодированию (блок 407).

В некоторых вариантах осуществления изобретения макроблоки могут быть разделены на блоки меньшего размера, например, посредством применения квадрадерева. Пример деления макроблока на блоки меньшего размера согласно квадрадереву показан на фиг.6а и 6b. На фиг.6а показан пример макроблока 600, разделенного на меньшие блоки 610, 620, 630, 640. В данном примере верхний левый блок 610 разделен на четыре блока 611-614 меньшего размера, нижний правый блок 640 разделен на четыре блока 641-644 меньшего размера, а верхний левый блок 641 ранее разделенного блока 640 (то есть нижнего правого блока большого макроблока 600) далее делится на четыре блока 645-648 меньшего размера. Квадрадерево, соответствующее разделению блока из примера на фиг.6а, показано на фиг.6b. Разделение с использованием квадрадерева является одним из видов иерархического преобразования. В некоторых вариантах осуществления изобретения квадрадерево может быть кодировано, например, посредством использования бинарных чисел 1 и 0. Например, число 1 может указывать на то, что блок разделен на блоки меньшего размера, а число 0 может указывать на то, что блок не разделен на блоки меньшего размера. Это указание называется флагом разделения, указывающим для каждого узла дерева на то, должно ли преобразование далее производить разделение. Затем квадрадерево из примера на фиг.6b может быть кодировано как набор бинарных значений 1001, 0000,1000, 0000. Первое бинарное значение 1001 представляет первый (высший) уровень квадрадерева и указывает на то, что первый (верхний левый) и последний (нижний правый) блоки разделены на блоки меньшего размера. Следующие два бинарных значения 0000 и 1000 представляют второй (высший) уровень квадрадерева, а последнее бинарное значение 0000 представляет одну часть третьего (высшего) уровня квадрадерева. Если бы другие блоки второго уровня были бы разделены на блоки меньшего размера, то квадрадерево включало бы на третьем уровне больше бинарных значений. Другими словами, если бы бинарное значение на определенном уровне квадрадерева включало бы число 1, то бинарное представление квадрадерева включало бы бинарное значение следующего меньшего уровня. Другой пример квадрадерева показан на фиг.6 с.Соответствующее бинарное представление квадрадерева, показанного на фиг.6 с, может быть следующим: 1001, 0010, 1000, 0100, 0000, 0000. Следует отметить, что квадрадерево может быть представлено иным образом, например, так, что бинарное число 1 будет указывать на то, что блок не делится на блоки меньшего размера, а число 0 будет указывать на то, что блок делится на блоки меньшего размера. Также для характеристики структуры квадрадерева могут использоваться другие числа или символы, отличные от бинарных чисел 0 или 1.

Из описанного выше можно сделать вывод о том, что деление макроблоков изображения или слайса изображения может указываться декодеру посредством использования квадрадерева. Поэтому кодер 1 может вставлять указание разделения макроблока в битовый поток посредством кодирования бинарного представления квадрадерева. Далее раскрывается пример реализации кодирования бинарного представления.

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

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

В некоторых вариантах осуществления изобретения блок не нужно делить на четыре блока меньшего размера одного и того же размера. Например, блок М×М может быть разделен на два блока (М/2)×М или два блока М×(М/2). Также возможно разделить блок М×М на блоки, имеющие различные размеры. Например, он может быть разделен на один блок размера (M-N)×M и другой блок размера N×M, на один блок размера М×(М-М) и другой блок размера M×N и т.д. Также возможно разделить блок на четыре блока меньшего размера, которые не обязательно должны быть одинакового размера. Например, блок М×М может быть разделяемым на один блок N×N, один блок (M-N)×(M-N), один блок (M-N)×N и один блок N×(M-N). Упомянутые выше параметры М, N являются положительными целыми числами. В некоторых вариантах осуществления изобретения такие типы размеров блоков могут использоваться для представления блоков разделения движения, и синтаксический элемент в этом случае может относиться к информации о разделении движения.

Использование однобитовых синтаксических элементов может быть не эффективным с точки зрения кодирования при использовании VLC-кодирования, поэтому может быть лучше группировать синтаксические элементы. В этом случае используется синтаксический элемент, называемый шаблоном разделения преобразования (tsp - transform split pattern), который указывает на то, какой из четырех блоков преобразования разделяется далее. Затем синтаксический элемент tsp может кодироваться посредством использования адаптивной таблицы сортировки, аналогично описанному выше шаблону кодированного блока.

Далее предполагается, что информация tsp кодируется с использованием отсортированной таблицы TSP[tcx][i]. Аналогично кодированию шаблона кодированного блока контекстная переменная вычисляется с использованием следующей информации: типа кадра и размера преобразования текущего блока.

Для простоты, в следующем примере снова предполагается, что видеокодер 1 поддерживает размеры преобразования 4×4, 8×8, 16×16 и 32×32. В данном примере размер преобразования 32×32 относится к иерархическому уровню 0 дерева кодирования преобразования, размер 16×16 относится к иерархическому уровню 1 и т.д. Начальная адаптивная таблица сортировки для информации tsp может иметь следующий вид:

tableTSP[ctx][i]=

{ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13. 14, 15},

{0, 1, 2. 3, 4. 5. 6, 7, 8. 9, 10, 11, 12, 13, 14, 15},

{0,1,2,3,4,5, 6, 7, 8, 9, 10,11.12,13, 14, 15},

{0,1,2, 3,4.5, 6, 7. 8. 9, 10, 11, 12, 13, 14, 15},

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},

{0, 1, 2, 3, 4.5, 6, 7, 8, 9,10,11,12,13,14,15},

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},

{0,1,2, 3,4,5, 6, 7, 8,9,10.11,12,13,14,15},

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},

{0,1, 2, 3,4,5, 6, 7, 8,9,10,11,12,13,14,15},

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},

{0, 1, 2, 3, 4, 5, 6, 7. 8, 9, 10, 11, 12, 13, 14, 15}},

где строки соответствуют различным типам кадров и размерам блоков. В данном примере строки соответствуют строкам таблицы 1, то есть первая строка соответствует 1-кадру размера 4×4, вторая строка соответствует I-кадру размера 8×8 и т.д.

В примере на фиг.6а и 6b узел наверху квадрадерева соответствует размеру неразделенного макроблока. В данном случае размер равен 128×128 элементов кадра, однако он может быть и другим. Данный узел не нужно кодировать. Первый уровень (высший уровень на фиг.6b), который может иметь информацию tsp, представляет собой уровень, расположенный ниже верхнего узла, то есть четыре ветви, исходящие от верхнего узла. Данный уровень соответствует размеру блока 128/2×128/2=64×64. Поэтому, если необходимо кодировать значение tsp, равное 9 (1001 в бинарном представлении), то таблица 4 будет указывать на то, что индекс ctx равен 3, если макроблок является макроблоком 1-кадра, 7, если макроблок является макроблоком Р-кадра, или 11, если макроблок является макроблоком В-кадра.

Если макроблок принадлежит Р-кадру, то кодовое слово VLC может быть выбрано из восьмой строки таблицы TSP[ctx][i]. Это значение равно 9, поэтому выбирается десятое кодовое слово VLC из восьмой строки, а ранг десятой строки изменяется, например, посредством уменьшения ранга на 1. Таблица TSP[ctx][i] будет изменена следующим образом:

tableTSP[ctx][i]=

{{О, 1, 2, 3, 4, 5, 6. 7, 8. 9, 10, 11, 12, 13, 14, 15},

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},

{0. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},

{0,1,2,3,4,5,6, 7, 8, 9, 10, 11, 12,13,14,15},

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12. 13, 14, 15},

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},

{0, 1, 2, 3, 4, 5, 6, 7, 9, 8, 10, 11, 12, 13, 14, 15},

{0, 1, 2, 3, 4, 5, 6, 7. 8, 9, 10, 11, 12, 13, 14, 15},

{0, 1, 2. 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},

{0,1,2.3,4,5,6, 7, 8, 9, 10, 11, 12,13,14, 15},

{0,1,2,3,4,5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} }.

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

В некоторых вариантах осуществления изобретения не всегда нужно кодировать полное квадрадерево. Например, некоторые нижние уровни могут содержать нулевые значения, например, когда ни одна из частей большого макроблока не делится на блоки возможного самого маленького размера. Например, пусть макроблок размера 128×128 был разделен на подблоки из 64×64 элементов изображения, и пусть эти подблоки или только их часть были разделены на подблоки из 32×32 элементов изображения, и дальнейшего разделения не происходило. В данном примере может быть достаточным кодировать значения tsp только для первого и второго уровней.

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

Структура таблиц сортировки и таблиц кодовых слов 5.1-5.М может зависеть от применения, и, например, не обязательно использовать в каждом случае один и тот же набор таблиц. Однако представленные выше таблицы 1-6 иллюстрируют одну из возможных структур таблиц, которые могут использоваться.

В некоторых вариантах осуществления изобретения таблицы сортировки и таблицы кодовых слов не являются отдельными таблицами, а объединены друг с другом. Другими словами, если рассматривать таблицы 4 и 5, то таблица CBP[ctx][i] может быть реализована в памяти устройства так, что определенная область памяти резервируется для каждого возможного значения переменной ctx, то есть для каждой строки таблицы, и эта область содержит кодовые слова для каждого возможного значения переменной i этой строки. Когда предполагается изменение ранга значения Y, кодовое слово, соответствующее текущему рангу значения Y, может поменяться местами с кодовым словом, соответствующим рангу другого значения Z, на который должен быть изменен ранг значения Y. В примере для таблицы 5 часть области памяти, зарезервированная под таблицу CBP[ctx][i], изначально может содержать значения 10, 11, 010, 011, 00100, 00101,…. В данном случае, если планируется кодировать значение 3, кодер 1 назначит кодовое слово 011 для представления значения 3 и поменяет местами кодовые слова 010 и 011. После этого упомянутая часть памяти будет содержать следующие значения: 10, 11, 011, 010, 00100, 00101,…. Также существуют другие возможности для реализации таблиц сортировки и кодовых слов и установления соответствия между ними.

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

Хранение таблиц 5.1-5.М кодовых слов и адаптивных таблиц сортировки может быть реализовано многими способами. Например, они могут храниться в памяти 4 первого устройства 8. Каждая строка может храниться в последовательных местоположениях памяти, так что каждое значение имеет определенную длину битов так, что после каждого значения имеется разделитель поля для отделения разных столбцов друг от друга. Также возможно хранить значения таблиц столбец за столбцом.

Выше были рассмотрены некоторые принципы настоящего изобретения с точки зрения кодера, однако реализация декодера является почти аналогичной за исключением того, что обработка происходит в обратном порядке, то есть принятое кодовое слово используется для определения соответствующего символа. Далее этот процесс будет описан более подробно со ссылкой на декодер, показанный на фиг.3, и блок-схему, показанную на фиг.5. Второе устройство 10 (фиг.1) принимает переданную информацию и выполняет в приемнике 14, например, преобразование 14.1 радиочастотного сигнала в низкочастотный сигнал (например, сигнал основной полосы частот), выполняет канальное декодирование 14.2 низкочастотного сигнала и/или другие операции для получения кодовых слов из принятого сигнала. Принятые кодовые слова могут быть сохранены в памяти 12 второго устройства для дальнейшей обработки.

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

Блок 11.3 инициализации декодера 11 инициализирует (блок 501 на фиг.5) адаптивные таблицы сортировки в начальное состояние, которое соответствует начальному состоянию адаптивных таблиц сортировки кодера 1. Декодер 11 имеет доступ к таблицам, соответствующим таблицам кодера. Например, декодер 11 имеет набор адаптивных таблиц 17.1-17.М сортировки, аналогичных адаптивным таблицам 5.1-5.М сортировки кодера 1.

Таблицы могут быть сформированы, например, в памяти 12 декодера, или декодер 11 может использовать вместо таблиц некоторые алгоритмы.

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

Блок 11.2 определения символов может использовать текущее значение переменной k для определения того, какую адаптивную таблицу сортировки использовать (блок 502), или для выбора адаптивной таблицы сортировки может использоваться селектор 11.9 таблицы сортировки. Например, если переменная k указывает на то, что текущее кодовое слово относится к информации о шаблоне кодированного блока, то блок 11.2 определения символов или селектор 11.9 таблицы сортировки использует информацию о типе кадра и размере преобразования для выбора правильной строки в таблице CBP[ctx][i] шаблонов кодированных блоков и использует кодовое слово для выбора правильного элемента в этой строке.

Принятые биты являются входными данными, например, один за одним или большими частями подаваемыми на вход 11.1 декодера 11, откуда биты передаются далее в блок 11.2 определения символов (блок 503). Блок 11.2 определения символов проверяет кодовые слова адаптивной таблицы 17.1, 17.2, 17.М сортировки для определения, существует ли такое кодовое слово в адаптивной таблице сортировки (блоки 504, 505). Если проверка указывает на то, что такое кодовое слово существует, то полученное таким образом слово может быть использовано для определения символа, то есть значения шаблона кодированного блока (блок 506). Однако если декодированная на данный момент битовая комбинация не является кодовым словом в таблице кодовых слов, то на вход принимается следующий бит, который объединяется с предыдущим (предыдущими) битом (битами). Когда существующее кодовое слово найдено, оно может использоваться для определения правильного значения шаблона кодированного блока. Это значение шаблона кодированного блока также может быть сохранено, например, в памяти 12 второго устройства 10. Блок 11.2 определения символов может включать селектор 11.8 символа для выполнения проверки кодовых слов и соответствующих символов в адаптивных таблицах сортировки. После нахождения кодового слова из входного битового потока и соответствующего значения шаблона кодированного блока, таблица CBP[ctx][i] шаблонов кодированных блоков может быть обновлена, например, с помощью адаптера 11.6, посредством увеличения ранга значения шаблона кодированного блока, как было описано ранее в отношении работы кодера (блок 507). В случае декодирования кодовых слов, относящихся к значениям шаблонов разделения преобразования, операция является почти аналогичной за исключением того, что используемой таблицей является таблица TSP[ctx][i] шаблонов разделения преобразования, соответствующая таблице TSP[ctx][i] шаблонов разделения преобразования кодера.

Как показано на фиг.14, в некоторых вариантах осуществления изобретения декодер 11 может включать селектор 11.8 синтаксического элемента, который может использовать кодовое слово для выбора правильного синтаксического элемента в выбранной строке выбранной таблицы сортировки, и адаптер 11.10 для адаптации выбранной таблицы сортировки.

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

Следует отметить, что также существуют и другие возможности декодирования символа на основе кодового слова. В данном контексте может использоваться не только побитовое сравнение, но любой другой способ для нахождения соответствия кодового слова. Например, на вход 11.1 декодера 11 подается часть битового потока, откуда биты передаются на блок 11.2 определения символов. Блок 11.2 определения символов проверяет в выбранной таблице кодовых слов переменной длины, включает ли упомянутая часть битового потока кодовое слово из упомянутой выбранной таблицы кодовых слов переменной длины. Если проверка показывает, что упомянутая часть битового потока включает кодовое слово из упомянутой выбранной таблицы кодовых слов переменной длины, то блок 11.2 определения символов определяет, какой символ в упомянутой выбранной таблице кодовых слов переменной длины соответствует кодовому слову, и выводит этот символ. Если проверка показывает, что упомянутая часть битового потока не включает какое-либо кодовое слово из упомянутой выбранной таблицы кодовых слов переменной длины, на вход 11.1 декодера 11 подается следующая часть битового потока, которая передается в блок 11.2 определения символов для дальнейшей проверки. Описанные выше шаги повторяются до тех пор, пока не будет найдено правильное кодовое слово в выбранной таблице кодовых слов переменной длины.

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

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

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

На фиг.12 представлена структурная схема видеодекодера, подходящего для декодирования макроблоков и восстановления видео, например, для его отображения, хранения или для дальнейшей обработки. Декодер включает энтропийный декодер 600, который выполняет энтропийное декодирование принятого сигнала может включать декодер 11, описанный выше. Энтропийный декодер, таким образом, выполняет операцию, обратную той, которую выполняет энтропийный кодер 330, описанный выше. Энтропийный декодер 600 передает результат энтропийного декодирования в декодер 602 ошибки предсказания и предсказатель 604 пикселей.

Предсказатель 604 пикселей принимает выходной сигнал энтропийного декодера 600, а селектор 614 предсказателя, расположенный в предсказателе 604 пикселей, определяет, должно ли выполняться внутрикадровое или межкадровое предсказание. Селектор предсказателя, кроме того, передает предсказанное представление блока 616 изображения в первый объединитель 613. Предсказанное представление блока 616 изображения используется совместно с реконструированным сигналом 612 ошибки предсказания для генерации предварительно реконструированного изображения 618. Предварительно реконструированное изображение 618 может использоваться в предсказателе 614 или может передаваться в фильтр 620. Фильтр 620 выполняет фильтрацию, в результате которой выводится конечный предсказанный сигнал 622. Конечный предсказанный сигнал 622 может сохраняться в памяти 624 опорных кадров, которая также соединяется с предсказателем 614 для выполнения операций предсказания.

Декодер 602 ошибки предсказания принимает выходные данные энтропийного декодера 600 и выполняет обратное преобразование посредством блока 692 обратного преобразования и деквантование посредством деквантователя 693 для получения восстановленного сигнала 612 предсказания ошибки.

В представленных выше примерах функциональные элементы кодера 1 и декодера 11 были показаны в виде отдельных блоков. Однако в практических реализациях функциональные элементы или некоторые из них могут быть реализованы в виде аппаратного обеспечения или в виде программного кода контроллера 1.4 кодера 1 и/или контроллера 11.4 декодера 11. Контроллеры 1.4, 11.4 могут являться процессорами цифровой обработки сигналов или другими процессорами, включающими интерпретатор программного кода и другие средства для исполнения программного кода. Программный код может храниться на носителе данных, таком как память 4,12, или на диске, например, CDROM, или на другом типе носителя данных.

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

Настоящее изобретение может также использоваться при кодировании информации о позиции последнего ненулевого коэффициента в преобразованном посредством дискретного косинусного преобразования (DCT) блоке. Затем кодовое слово VLC может быть выбрано на основе адаптивной таблицы сортировки, например, в зависимости от типа изображения и размера преобразования текущего блока.

Первое устройство 8, включающее кодер 1, может быть, например, устройством беспроводной связи, компьютером, сервером, CDROM-плеером, DVD-плеером и т.д. Второе устройство 10, включающее декодер 11, может быть, например, устройством беспроводной связи, компьютером, сервером, CDROM-плеером, DVD-плеером и т.д. Канал 15 передачи может включать сеть связи, такую как беспроводная сеть связи, локальная сеть, проводное или беспроводное соединение между первым устройством 9 и вторым устройством 10 и т.д.

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

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

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

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

Кроме того, элементы наземной сети мобильной связи общего пользования (PLMN, public land mobile network) также могут содержать описанные выше видеокодеки.

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

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

Блоки памяти могут быть любого типа, подходящего к локальной технической среде, и могут быть реализованы с использованием любых подходящих технологий хранения данных и представлять собой, например, устройства полупроводниковой памяти, устройства и системы магнитной памяти, устройства и системы оптической памяти, несъемную и съемную память. Процессоры данных могут быть любого типа, подходящего для локальной технической среды, и могут включать в качестве не ограничивающих изобретение примеров один или более универсальных компьютеров, специализированных компьютеров, микропроцессоров, цифровых сигнальных процессоров (DSP, digital signal processor) и процессоров на основе многоядерной архитектуры.

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

Программы, производимые, например, компаниями Synopsys, Inc., Маунтин Вью, Калифорния, и Cadence Design, Сан Хосе, Калифорния, автоматически разводят проводники и размещают компоненты на полупроводниковом кристалле с использованием установленных правил разработки, а также библиотек заранее сохраненных модулей разработки. По окончании разработки полупроводниковой схемы полученный в результате проект в стандартизованном электронном формате (например, Opus, GDSII и т.п.) может быть передан на производство полупроводникового устройства для изготовления.

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

Способ в соответствии с первым вариантом осуществления изобретения включает:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

использование иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки;

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

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

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

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

размер преобразования,

размер блока предсказания или

размер макроблока.

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

шаблон кодированного блока,

шаблон разделения преобразования и

информация о разделении движения.

Способ в соответствии со вторым вариантом осуществления изобретения включает:

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

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

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

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

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

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

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

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

В упомянутом способе согласно второму варианту осуществления изобретения упомянутое обновление соответствия включает обновление таблицы сортировки.

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

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

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

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

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

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

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

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

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

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

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

размер преобразования,

размер блока предсказания или

размер макроблока.

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

шаблон кодированного блока,

шаблон разделения преобразования и

информация о разделении движения.

Устройство в соответствии с третьим вариантом осуществления изобретения включает:

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

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

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

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

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

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

Упомянутое устройство согласно третьему варианту осуществления изобретения может включать таблицу сортировки для задания упомянутого соответствия.

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

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

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

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

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

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

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

размер преобразования,

размер блока предсказания или

размер макроблока.

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

шаблон кодированного блока,

шаблон разделения преобразования и

информация о разделении движения.

Устройство в соответствии с четвертым вариантом осуществления изобретения включает:

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

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

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

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

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

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

Упомянутое устройство согласно четвертому варианту осуществления изобретения может включать таблицу сортировки для задания упомянутого соответствия.

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

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

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

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

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

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

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

размер преобразования,

размер блока предсказания или

размер макроблока.

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

шаблон кодированного блока,

шаблон разделения преобразования и

информация о разделении движения.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

использования иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки;

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

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

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

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

размер преобразования,

размер блока предсказания или

размер макроблока.

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

шаблон кодированного блока,

шаблон разделения преобразования и

информация о разделении движения.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

использования иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки;

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

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

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

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

размер преобразования,

размер блока предсказания или

размер макроблока.

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

шаблон кодированного блока,

шаблон разделения преобразования и

информация о разделении движения.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2. Способ по п. 1, в котором упомянутая древовидная структура представляет собой квадрадерево.

3. Способ по п. 1 или 2, в котором упомянутое определение соответствия включает использование таблицы сортировки для определения упомянутого соответствия.

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

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

6. Способ по п. 5, в котором упомянутая древовидная структура представляет собой квадрадерево.

7. Способ по п. 5 или 6, в котором упомянутое определение соответствия включает использование таблицы сортировки для определения упомянутого соответствия.

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

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

10. Устройство по п. 9, в котором упомянутая древовидная структура представляет собой квадрадерево.

11. Устройство по п. 9 или 10, содержащее таблицу сортировки для определения упомянутого соответствия.

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

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

14. Устройство по п. 13, в котором упомянутая древовидная структура представляет собой квадрадерево.

15. Устройство по п. 13 или 14, содержащее таблицу сортировки для определения упомянутого соответствия.

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



 

Похожие патенты:

Изобретение относится к средству редактирования видео. Техническим результатом является повышение качества редактирования видеоконтента.

Изобретение относится к средству редактирования видео. Техническим результатом является повышение качества редактирования видеоконтента.

Изобретение относится к средствам оценки движения в последовательности изображений. Техническим результатом является повышение точности оценки движения в последовательности изображений.

Изобретение относится к технологиям кодирования/декодирования видеоданных. Техническим результатом является повышение эффективности кодирования/декодирования коэффициентов преобразования.

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

Изобретение относится к технологиям обработки изображений. Техническим результатом является снижение вычислительной сложности процесса удаление шума целевого пикселя.

Изобретение относится к вычислительной технике. Технический результат заключается в быстром и точном определении начального и конечного положений I-кадра.

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

Изобретение относится к технологиям кодирования и декодирования видеоданных. Техническим результатом является снижение влияния ошибок округления при двунаправленном и многонаправленном предсказании за счет обеспечения регулировки точности сигналов предсказания.

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

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

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

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

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

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

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

Изобретение относится к области кодирования и декодирования изображений с предсказанием. Технический результат - повышение эффективности кодирования информации режима для идентификации способа внутрикадрового предсказания. Устройство кодирования изображения с предсказанием содержит: средство разделения области, средство генерации предсказанного сигнала, приспособленное для определения оптимального режима предсказания и для генерации предсказанного сигнала, средство генерации остаточного сигнала, средство кодирования сигнала, приспособленное для кодирования остаточного сигнала для генерации сжатого сигнала, средство кодирования режима предсказания, приспособленное для кодирования оптимального режима предсказания, и средство хранения, приспособленное для восстановления сжатого сигнала и хранения восстановленного сигнала в качестве воспроизводимого пиксельного сигнала. 4 н. и 2 з.п. ф-лы, 16 ил.

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

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

Изобретение относится к средствам кодирования и декодирования битового потока видео. Технический результат заключается в уменьшении избыточности кодирования и декодирования. Принимают первый сигнал указания, указывающий процесс декодирования, из битового потока видео. Выбирают упомянутый процесс декодирования из группы, состоящей из первого процесса декодирования и второго процесса декодирования, согласно упомянутому первому сигналу указания. Определяют структуру CU для текущего блока кодирования (CU), связанного с битовым потоком видео, с использованием выбранного процесса декодирования. Восстанавливают текущий CU согласно определенной структуре CU. При этом, когда выбирается упомянутый первый процесс декодирования, упомянутое определение структуры CU использует первую структуру CU без INTER N×N с N=4 для CU 2N×2N. 4 н. и 21 з.п. ф-лы, 10 ил, 4 табл.
Наверх