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

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

Info

Publication number
RU2565877C2
RU2565877C2 RU2013104941/08A RU2013104941A RU2565877C2 RU 2565877 C2 RU2565877 C2 RU 2565877C2 RU 2013104941/08 A RU2013104941/08 A RU 2013104941/08A RU 2013104941 A RU2013104941 A RU 2013104941A RU 2565877 C2 RU2565877 C2 RU 2565877C2
Authority
RU
Russia
Prior art keywords
codeword
syntax element
block
hierarchical level
sorting
Prior art date
Application number
RU2013104941/08A
Other languages
English (en)
Other versions
RU2013104941A (ru
Inventor
Кемал УГУР
Антти Олли ХАЛЛАПУРО
Original Assignee
Нокиа Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Нокиа Корпорейшн filed Critical Нокиа Корпорейшн
Publication of RU2013104941A publication Critical patent/RU2013104941A/ru
Application granted granted Critical
Publication of RU2565877C2 publication Critical patent/RU2565877C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

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

Description

Область техники
Предлагается способ определения соответствия между синтаксическим элементом и кодовым словом для кодирования переменной длины, способ определения соответствия между синтаксическим элементом и кодовым словом для декодирования переменной длины, устройство, кодер и декодер.
Предпосылки создания изобретения
Видеокодек содержит кодер, который преобразует входной видеосигнал в сжатое представление, подходящее для хранения и/или передачи, и декодер, который может распаковать сжатое представление видеосигнала в воспроизводимую форму. Обычно кодер отбрасывает некоторую часть информации в исходной видеопоследовательности для представления видеосигнала в более компактной форме, например, с более низкой битовой скоростью передачи.
Типовые видеокодеки, например, соответствующие стандартам Н.263 и Н.264 Международного союза электросвязи - Технического совета (ITU-T, International Telegraphic Union - Technical Board), кодируют видеоинформацию на двух стадиях. На первой стадии выполняется предсказание значений пикселей в определенной области изображения или "блоке". Эти значения пикселей могут быть предсказаны, например, с помощью механизмов компенсации движения, которые включают обнаружение и указание области в одном из ранее закодированных видеокадров (или в последнем закодированном видеокадре), которая наиболее точно соответствует кодируемому блоку. Дополнительно, значения пикселей могут быть предсказаны путем пространственных механизмов, которые включают обнаружение и указание взаимосвязи пространственных областей.
На второй стадии выполняется кодирование ошибки между предсказанным блоком пикселей и исходным блоком пикселей. Обычно это выполняется путем преобразования разности значений пикселей с использованием заданного преобразования. Обычно используется дискретное косинусное преобразование (DCT, Discrete Cosine Transform) или его варианты. После преобразования разности выполняется квантование и энтропийное кодирование этой преобразованной разности.
Путем изменения точности процесса квантования кодер может управлять балансом между точностью представления пикселей (другими словами, качеством изображения) и размером результирующего представления кодированного видео (другими словами, размером файла или битовой скоростью передачи). Пример процесса кодирования представлен на фиг.1.
Декодер реконструирует выходное видео путем применения механизма предсказания, аналогичного тому, который использовался кодером, для формирования предсказанного представления блоков пикселей (с использованием информации о движении или пространственной информации, созданной кодером и хранимой в сжатом представлении изображения), и путем декодирования ошибки предсказания (операция, обратная кодированию ошибки предсказания, для восстановления квантованного сигнала предсказания в пространственной области).
После применения процессов предсказания пикселей и декодирования ошибки декодер объединяет сигналы предсказания и ошибки предсказания (значения пикселей) для формирования выходного видеокадра.
Декодер (и кодер) может также применять дополнительный процесс фильтрации для повышения качества выходного видеосигнала перед его отображением и/или сохранением в качестве опорного для предсказания последующих кадров в видеопоследовательности. Пример процесса декодирования представлен на фиг.2
В типовых видеокодеках информация о движении указывается векторами движения, связанными с каждым блоком изображения с компенсацией движения. Каждый из этих векторов движения представляет смещение блока изображения на изображении, подлежащем кодированию (в кодере) или декодированию (в декодере), относительно исходного блока предсказания в одном из ранее кодированных или декодированных изображений (или кадров). Для эффективного представления векторов движения эти вектора обычно кодируются дифференциально по отношению к предсказанному вектору движения, специфичному для блока. В типовом видеокодеке предсказанные вектора движения создаются заданным заранее образом, например, путем вычисления медианы кодируемых или декодируемых векторов движения смежных блоков.
В типовых видео кодеках невязка предсказания после компенсации движения вначале преобразуется с использованием ядра преобразования (аналогично DCT), а затем кодируется. Причиной этому является то, что часто имеется некоторая корреляция между невязками, при этом преобразование в большинстве случаев может помочь уменьшить эту корреляцию и обеспечить более эффективное кодирование.
В типовых видеокодерах для нахождения оптимальных режимов кодирования, например, требуемого режима макроблока и связанных векторов движения, используется функция Лагранжа. Функция этого типа использует весовой коэффициент А для связывания точного или оценочного искажения изображения, возникающего вследствие применения способов кодирования с потерями, и точного или оценочного объема информации, требуемого для представления значений пикселей в области изображения. Она может быть представлена следующей формулой:
C = D + λ R ( 1 )
Figure 00000001
где С - функция Лагранжа, которая должна быть минимизирована, 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 и т.п.) может быть передан на производство полупроводникового устройства для изготовления.
Приведенное описание является полным и информативным описанием вариантов осуществления настоящего изобретения, представленных в качестве примеров, не ограничивающих изобретение. Из описания, приложенных чертежей и формулы изобретения специалисту могут быть очевидны различные модификации и адаптации изобретения. Однако все такие модификации изобретения остаются в пределах объема настоящего изобретения.
Способ в соответствии с первым вариантом осуществления изобретения включает:
прием синтаксического элемента, подлежащего кодированию в качестве кодового слова из набора кодовых слов;
определение соответствия между синтаксическим элементом и кодовым словом на основе иерархического уровня в древовидной структуре;
использование упомянутого соответствия для получения кодового слова и
обновление упомянутого соответствия.
В упомянутом способе согласно первому варианту осуществления изобретения упомянутая древовидная структура может представлять собой дерево кодирования.
В упомянутом способе согласно первому варианту осуществления изобретения упомянутое дерево кодирования может включать квадрадерево.
Упомянутый способ согласно первому варианту осуществления изобретения может включать использование таблицы сортировки для задания упомянутого соответствия.
В упомянутом способе согласно первому варианту осуществления изобретения упомянутое обновление соответствия включает обновление упомянутой таблицы сортировки.
Упомянутый способ согласно первому варианту осуществления изобретения может включать обновление упомянутого соответствия посредством перестановки двух значений в упомянутой таблице сортировки.
Упомянутый способ согласно первому варианту осуществления изобретения может включать использование по меньшей мере двух таблиц сортировки, при этом способ также включает использование иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки.
Упомянутый способ согласно первому варианту осуществления изобретения может включать использование по меньшей мере двух таблиц сортировки, каждая из которых содержит набор кодовых слов, при этом способ также включает
использование иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки и
использование упомянутого синтаксического элемента для выбора кодового слова.
Упомянутый способ согласно первому варианту осуществления изобретения может включать использование по меньшей мере двух таблиц сортировки, каждая из которых содержит набор кодовых слов, при этом способ также включает
использование иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки;
использование упомянутого синтаксического элемента для выбора кодового слова и
перестановку кодового слова с другим кодовым словом из упомянутого набора кодовых слов в выбранной таблице сортировки.
В упомянутом способе согласно первому варианту осуществления изобретения упомянутый иерархический уровень соответствует набору узлов, которые находятся на одном и том же расстоянии от корня древовидной структуры.
В упомянутом способе согласно первому варианту осуществления изобретения упомянутая древовидная структура может относиться по меньшей мере к одному из следующего:
размер преобразования,
размер блока предсказания или
размер макроблока.
В упомянутом способе согласно первому варианту осуществления изобретения упомянутый синтаксический элемент может относиться к одному из следующего:
шаблон кодированного блока,
шаблон разделения преобразования и
информация о разделении движения.
Способ в соответствии со вторым вариантом осуществления изобретения включает:
прием кодового слова из набора кодовых слов,
определение иерархического уровня в древовидной структуре,
определение соответствия для получения синтаксического элемента на основе упомянутого иерархического уровня и
обновление упомянутого соответствия.
В упомянутом способе согласно второму варианту осуществления изобретения упомянутая древовидная структура может представлять собой дерево кодирования.
В упомянутом способе согласно второму варианту осуществления изобретения упомянутое дерево кодирования может представлять собой квадрадерево.
В упомянутом способе согласно второму варианту осуществления изобретения упомянутое определение может включать получение синтаксического элемента из упомянутой определенной таблицы сортировки на основе упомянутого кодового слова.
Упомянутый способ согласно второму варианту осуществления изобретения может включать использование таблицы сортировки для задания упомянутого соответствия.
В упомянутом способе согласно второму варианту осуществления изобретения упомянутое обновление соответствия включает обновление таблицы сортировки.
Упомянутый способ согласно второму варианту осуществления изобретения может включать обновление упомянутого соответствия посредством перестановки двух значений в таблице сортировки.
Упомянутый способ согласно второму варианту осуществления изобретения может включать использование по меньшей мере двух таблиц сортировки, при этом способ также включает использование иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки.
Упомянутый способ согласно второму варианту осуществления изобретения может включать использование по меньшей мере двух таблиц сортировки, каждая из которых содержит набор кодовых слов и набор синтаксических элементов, при этом способ также включает
использование иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки и
использование упомянутого кодового слова для выбора синтаксического элемента.
Упомянутый способ согласно второму варианту осуществления изобретения может включать использование по меньшей мере двух таблиц сортировки, каждая из которых содержит набор кодовых слов и набор синтаксических элементов, при этом способ также включает
использование иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки,
использование упомянутого кодового слова для выбора синтаксического элемента и
перестановку синтаксического элемента с другим синтаксическим элементом из упомянутого набора синтаксических элементов в выбранной таблице сортировки.
В упомянутом способе согласно второму варианту осуществления изобретения упомянутый иерархический уровень соответствует набору узлов, которые находятся на одном и том же расстоянии от корня древовидной структуры.
В упомянутом способе согласно второму варианту осуществления изобретения упомянутая древовидная структура относится по меньшей мере к одному из следующего:
размер преобразования,
размер блока предсказания или
размер макроблока.
В упомянутом способе согласно второму варианту осуществления изобретения упомянутый синтаксический элемент может относиться по меньшей мере к одному из следующего:
шаблон кодированного блока,
шаблон разделения преобразования и
информация о разделении движения.
Устройство в соответствии с третьим вариантом осуществления изобретения включает:
вход, сконфигурированный для приема синтаксического элемента, подлежащего кодированию в качестве кодового слова из набора кодовых слов;
элемент определения, сконфигурированный для определения соответствия между синтаксическим элементом и кодовым словом на основе иерархического уровня в древовидной структуре;
селектор кодового слова, сконфигурированный для использования упомянутого соответствия для получения кодового слова, и
адаптер, сконфигурированный для обновления упомянутого соответствия.
В упомянутом устройстве согласно третьему варианту осуществления изобретения упомянутая древовидная структура может представлять собой дерево кодирования.
В упомянутом устройстве согласно третьему варианту осуществления изобретения упомянутое дерево кодирования может представлять собой квадрадерево.
Упомянутое устройство согласно третьему варианту осуществления изобретения может включать таблицу сортировки для задания упомянутого соответствия.
В упомянутом устройстве согласно третьему варианту осуществления изобретения упомянутый адаптер сконфигурирован для обновления упомянутой таблицы сортировки.
В упомянутом устройстве согласно третьему варианту осуществления изобретения упомянутый адаптер сконфигурирован для осуществления перестановки двух значений в таблице сортировки.
Упомянутое устройство согласно третьему варианту осуществления изобретения может включать по меньшей мере две таблицы сортировки, при этом устройство может также включать селектор таблицы сортировки, сконфигурированный для использования иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки.
Упомянутое устройство согласно третьему варианту осуществления изобретения может включать упомянутые по меньшей мере две таблицы сортировки, каждая из которых содержит набор кодовых слов, при этом упомянутый селектор таблицы сортировки может быть сконфигурирован для использования иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки, а упомянутый селектор кодового слова может быть сконфигурирован для использования упомянутого синтаксического элемента для выбора кодового слова.
Упомянутое устройство согласно третьему варианту осуществления изобретения может включать упомянутые по меньшей мере две таблицы сортировки, каждая из которых содержит набор кодовых слов, при этом упомянутый селектор таблицы сортировки может быть сконфигурирован для использования иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки, упомянутый селектор кодового слова может быть сконфигурирован для использования упомянутого синтаксического элемента для выбора кодового слова, а упомянутый адаптер может быть сконфигурирован для осуществления перестановки упомянутого кодового слова с другим кодовым словом из упомянутого набора кодовых слов в выбранной таблице сортировки.
В упомянутом устройстве согласно третьему варианту осуществления изобретения упомянутый иерархический уровень соответствует набору узлов, которые находятся на одном и том же расстоянии от корня древовидной структуры.
В упомянутом устройстве согласно третьему варианту осуществления изобретения упомянутая древовидная структура может относиться по меньшей мере к одному из следующего:
размер преобразования,
размер блока предсказания или
размер макроблока.
В упомянутом устройстве согласно третьему варианту осуществления изобретения упомянутый синтаксический элемент может относиться к одному из следующего:
шаблон кодированного блока,
шаблон разделения преобразования и
информация о разделении движения.
Устройство в соответствии с четвертым вариантом осуществления изобретения включает:
вход, сконфигурированный для приема кодового слова из набора кодовых слов;
элемент определения, сконфигурированный для определения иерархического уровня в древовидной структуре;
селектор синтаксического элемента, сконфигурированный для определения соответствия для получения синтаксического элемента на основе упомянутого иерархического уровня, и
адаптер, сконфигурированный для обновления упомянутого соответствия.
В упомянутом устройстве согласно четвертому варианту осуществления изобретения древовидная структура может представлять собой дерево кодирования.
В упомянутом устройстве согласно четвертому варианту осуществления изобретения упомянутое дерево кодирования может представлять собой квадрадерево.
Упомянутое устройство согласно четвертому варианту осуществления изобретения может включать таблицу сортировки для задания упомянутого соответствия.
В упомянутом устройстве согласно четвертому варианту осуществления изобретения упомянутый адаптер сконфигурирован для обновления таблицы сортировки.
В упомянутом устройстве согласно четвертому варианту осуществления изобретения упомянутый адаптер сконфигурирован для осуществления перестановки двух значений в таблице сортировки.
Упомянутое устройство согласно четвертому варианту осуществления изобретения может включать по меньшей мере две таблицы сортировки, при этом устройство может также включать селектор таблицы сортировки, сконфигурированный для использования иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки.
Упомянутое устройство согласно четвертому варианту осуществления изобретения может включать по меньшей мере две таблицы сортировки, каждая из которых содержит набор кодовых слов и набор синтаксических элементов, при этом упомянутый селектор таблицы сортировки может быть сконфигурирован для использования иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки, а упомянутый селектор синтаксического элемента может быть сконфигурирован для использования упомянутого кодового слова для выбора синтаксического элемента.
Упомянутое устройство согласно четвертому варианту осуществления изобретения может включать по меньшей мере две таблицы сортировки, каждая из которых содержит набор кодовых слов, при этом упомянутый селектор таблицы сортировки может быть сконфигурирован для использования иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки; упомянутый селектор синтаксического элемента может быть сконфигурирован для использования упомянутого кодового слова для выбора синтаксического элемента, а упомянутый адаптер может быть сконфигурирован для осуществления перестановки синтаксического элемента с другим синтаксическим элементом из упомянутого набора синтаксических элементов в выбранной таблице сортировки.
В упомянутом устройстве согласно четвертому варианту осуществления изобретения упомянутый иерархический уровень соответствует набору узлов, которые находятся на одном и том же расстоянии от корня древовидной структуры.
В упомянутом устройстве согласно четвертому варианту осуществления изобретения упомянутая древовидная структура относится по меньшей мере к одному из следующего:
размер преобразования,
размер блока предсказания или
размер макроблока.
В упомянутом устройстве согласно четвертому варианту осуществления изобретения упомянутый синтаксический элемент относится к одному из следующего:
шаблон кодированного блока,
шаблон разделения преобразования и
информация о разделении движения.
В соответствии с пятым вариантом осуществления изобретения носитель данных содержит хранимый на нем исполняемый компьютером программный код для использования кодером, при этом упомянутый программный код включает инструкции для
приема синтаксического элемента, подлежащего кодированию в качестве кодового слова из набора кодовых слов;
определения соответствия между синтаксическим элементом и упомянутым кодовым словом на основе иерархического уровня в древовидной структуре;
использования упомянутого соответствия для получения кодового слова и
обновления упомянутого соответствия.
В упомянутом носителе данных согласно пятому варианту осуществления изобретения древовидная структура может представлять собой дерево кодирования.
В упомянутом носителе данных согласно пятому варианту осуществления изобретения упомянутое дерево кодирования может представлять собой квадрадерево.
Упомянутый носитель данных согласно пятому варианту осуществления изобретения может включать инструкции для использования таблицы сортировки для задания упомянутого соответствия.
В упомянутом носителе данных согласно пятому варианту осуществления изобретения упомянутое обновление соответствия может включать инструкции для обновления таблицы сортировки.
Упомянутый носитель данных согласно пятому варианту осуществления изобретения может включать инструкции для обновления соответствия путем перестановки двух значений в таблице сортировки.
Упомянутый носитель данных согласно пятому варианту осуществления изобретения может включать инструкции для использования по меньшей мере двух таблиц сортировки, при этом носитель данных также включает инструкции для использования иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки.
Упомянутый носитель данных согласно пятому варианту осуществления изобретения может включать инструкции для использования по меньшей мере двух таблиц сортировки, каждая из которых содержит набор кодовых слов, при этом носитель данных также включает инструкции для
использования иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки и
использования упомянутого синтаксического элемента для выбора кодового слова.
Упомянутый носитель данных согласно пятому варианту осуществления изобретения может включать инструкции для использования по меньшей мере двух таблиц сортировки, каждая из которых содержит набор кодовых слов, при этом носитель данных также включает инструкции для
использования иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки;
использования упомянутого синтаксического элемента для выбора кодового слова и
перестановки упомянутого кодового слова с другим кодовым словом из упомянутого набора кодовых слов в выбранной таблице сортировки.
В упомянутом носителе данных согласно пятому варианту осуществления изобретения упомянутый иерархический уровень соответствует набору узлов, которые находятся на одном и том же расстоянии от корня древовидной структуры.
В упомянутом носителе данных согласно пятому варианту осуществления изобретения упомянутая древовидная структура относится по меньшей мере к одному из следующего:
размер преобразования,
размер блока предсказания или
размер макроблока.
В упомянутом носителе данных согласно пятому варианту осуществления изобретения упомянутый синтаксический элемент относится к одному из следующего:
шаблон кодированного блока,
шаблон разделения преобразования и
информация о разделении движения.
В соответствии с шестым вариантом осуществления изобретения носитель данных содержит хранимый на нем исполняемый компьютером программный код для использования декодером, при этом упомянутый программный код включает инструкции для
приема кодового слова из набора кодовых слов;
определения иерархического уровня в древовидной структуре;
определения соответствия для получения синтаксического элемента на основе упомянутого иерархического уровня и
обновления упомянутого соответствия.
В упомянутом носителе данных согласно шестому варианту осуществления изобретения древовидная структура может представлять собой дерево кодирования.
В упомянутом носителе данных согласно шестому варианту осуществления изобретения упомянутое дерево кодирования может представлять собой квадрадерево.
Упомянутый носитель данных согласно шестому варианту осуществления изобретения может включать инструкции для получения синтаксического элемента из упомянутой определенной таблицы сортировки на основе упомянутого кодового слова.
Упомянутый носитель данных согласно шестому варианту осуществления изобретения может включать инструкции для использования таблицы сортировки для задания упомянутого соответствия.
Упомянутый носитель данных согласно шестому варианту осуществления изобретения может включать инструкции для обновления таблицы сортировки.
Упомянутый носитель данных согласно шестому варианту осуществления изобретения может включать инструкции для обновления упомянутого соответствия посредством перестановки двух значений в таблице сортировки.
Упомянутый носитель данных согласно шестому варианту осуществления изобретения может включать инструкции для использования по меньшей мере двух таблиц сортировки, при этом носитель данных также включает инструкции для использования иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки.
Упомянутый носитель данных согласно шестому варианту осуществления изобретения может включать инструкции для использования по меньшей мере двух таблиц сортировки, каждая из которых содержит набор кодовых слов и набор синтаксических элементов, при этом носитель данных также включает инструкции для
использования иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки и
использования упомянутого кодового слова для выбора синтаксического элемента.
Упомянутый носитель данных согласно шестому варианту осуществления изобретения может включать инструкции для использования по меньшей мере двух таблиц сортировки, каждая из которых содержит набор кодовых слов и набор синтаксических элементов, при этом носитель данных также включает инструкции для
использования иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки;
использования упомянутого кодового слова для выбора синтаксического элемента и
перестановки упомянутого синтаксического элемента с другим синтаксическим элементом из упомянутого набора синтаксических элементов в выбранной таблице сортировки.
В упомянутом носителе данных согласно шестому варианту осуществления изобретения упомянутый иерархический уровень соответствует набору узлов, которые находятся на одном и том же расстоянии от корня древовидной структуры.
В упомянутом носителе данных согласно шестому варианту осуществления изобретения упомянутая древовидная структура относится по меньшей мере к одному из следующего:
размер преобразования,
размер блока предсказания или
размер макроблока.
В упомянутом носителе данных согласно шестому варианту осуществления изобретения упомянутый синтаксический элемент относится к одному из следующего:
шаблон кодированного блока,
шаблон разделения преобразования и
информация о разделении движения.
В соответствии с седьмым вариантом осуществления изобретения устройство включает по меньшей мере один процессор и
по меньшей мере одну память, содержащую компьютерный программный код;
при этом по меньшей мере одна память и компьютерный программный код сконфигурированы так, чтобы с помощью упомянутого по меньшей мере одного процессора обеспечивать выполнение устройством по меньшей мере следующего:
приема синтаксического элемента, подлежащего кодированию в качестве кодового слова из набора кодовых слов;
определения соответствия между синтаксическим элементом и кодовым словом на основе иерархического уровня в древовидной структуре;
использования упомянутого соответствия для получения кодового слова и
обновления упомянутого соответствия.
В соответствии с восьмым вариантом осуществления изобретения устройство включает
по меньшей мере один процессор и
по меньшей мере одну память, содержащую компьютерный программный код;
при этом по меньшей мере одна память и компьютерный программный код сконфигурированы так, чтобы с помощью по меньшей мере одного процессора обеспечивать выполнение устройством по меньшей мере следующего:
приема кодового слова из набора кодовых слов;
определения иерархического уровня в древовидной структуре;
определения соответствия для получения синтаксического элемента на основе упомянутого иерархического уровня и
обновления упомянутого соответствия.
В соответствии с девятым вариантом осуществления изобретения устройство включает
средства для приема синтаксического элемента, подлежащего кодированию в качестве кодового слова из набора кодовых слов;
средства для определения соответствия между синтаксическим элементом и кодовым словом на основе иерархического уровня в древовидной структуре;
средства для использования упомянутого соответствия для получения кодового слова и
средства для обновления упомянутого соответствия.
В соответствии с десятым вариантом осуществления изобретения устройство включает
средства для приема кодового слова из набора кодовых слов;
средства для определения иерархического уровня в древовидной структуре;
средства для определения соответствия для получения синтаксического элемента на основе упомянутого иерархического уровня и
средства для обновления упомянутого соответствия.

Claims (16)

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, содержащее по меньшей мере две таблицы сортировки, каждая из которых содержит набор кодовых слов, при этом устройство также включает
средства для использования иерархического уровня для выбора таблицы сортировки из упомянутых по меньшей мере двух таблиц сортировки и
средства для использования упомянутого кодового слова для выбора синтаксического элемента.
RU2013104941/08A 2010-07-06 2011-07-06 Способ и устройство для определения соответствия между синтаксическим элементом и кодовым словом для кодирования переменной длины RU2565877C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US36168310P 2010-07-06 2010-07-06
US61/361,683 2010-07-06
PCT/IB2011/053008 WO2012023061A1 (en) 2010-07-06 2011-07-06 Method and apparatus for determining mapping between a syntax element and a code word for variable length coding

Publications (2)

Publication Number Publication Date
RU2013104941A RU2013104941A (ru) 2014-10-20
RU2565877C2 true RU2565877C2 (ru) 2015-10-20

Family

ID=45604818

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2013104941/08A RU2565877C2 (ru) 2010-07-06 2011-07-06 Способ и устройство для определения соответствия между синтаксическим элементом и кодовым словом для кодирования переменной длины

Country Status (7)

Country Link
US (1) US8576097B2 (ru)
EP (2) EP2591605B1 (ru)
KR (1) KR101497845B1 (ru)
CN (1) CN103069801B (ru)
RU (1) RU2565877C2 (ru)
WO (1) WO2012023061A1 (ru)
ZA (1) ZA201300915B (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2754870C2 (ru) * 2017-06-28 2021-09-08 Хуавей Текнолоджиз Ко., Лтд. Способ и устройство кодирования данных изображения, способ и устройство декодирования данных изображения
RU2773641C2 (ru) * 2018-03-09 2022-06-06 Хуавей Текнолоджиз Ко., Лтд. Способ и устройство кодирования данных изображения, способ и устройство декодирования данных изображения

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011125211A1 (ja) 2010-04-08 2011-10-13 株式会社 東芝 画像符号化方法及び画像復号化方法
CN103238321B (zh) * 2010-09-30 2016-11-02 三星电子株式会社 用于对分层结构的符号进行编解码的视频编解码方法及其装置
KR101955374B1 (ko) * 2011-06-30 2019-05-31 에스케이 텔레콤주식회사 고속 코딩 단위(Coding Unit) 모드 결정을 통한 부호화/복호화 방법 및 장치
MX2013001709A (es) 2011-07-29 2013-03-06 Panasonic Corp Metodo de codificacion de imagenes en movimiento, metodo de decodificacion de imagenes en movimiento, aparato de codificacion de imagenes en movimiento, aparato de decodificacion de imágenes en movimiento, y aparato de codificacion y decodificacion de imagenes en movimiento.
CN106101727B (zh) 2011-08-04 2019-10-08 寰发股份有限公司 基于上下文自适应二进制算术编码的方法及装置
GB2505169B (en) * 2012-08-13 2016-03-16 Gurulogic Microsystems Oy decoder and method
US10412414B2 (en) 2012-08-13 2019-09-10 Gurulogic Microsystems Oy Decoder and method for decoding encoded input data containing a plurality of blocks or packets
US9735812B2 (en) * 2015-06-26 2017-08-15 Intel IP Corporation Digital RF receiver power saving with signal quality dependent word length reduction
CN113810709A (zh) * 2016-04-29 2021-12-17 世宗大学校产学协力团 用于对图像信号进行编码和解码的方法和装置
EP3662671B1 (en) * 2017-11-28 2021-11-24 Huawei Technologies Co., Ltd. Syntax prediction using reconstructed samples
CN109462762B (zh) * 2018-10-26 2020-12-01 国网福建省电力有限公司漳州供电公司 用于无人机航拍的图像处理方法
US20240048641A1 (en) * 2022-08-05 2024-02-08 Samsung Display Co., Ltd. System and method for dynamic entropy coding

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4816914A (en) * 1987-01-07 1989-03-28 Pictel Corporation Method and apparatus for efficiently encoding and decoding image sequences
RU2335845C2 (ru) * 2002-04-02 2008-10-10 Нокиа Корпорейшн Кодирование коэффициентов преобразования в кодерах и/или декодерах изображения/видеосигнала

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4916914A (en) * 1988-05-27 1990-04-17 Cpi Engineering Services, Inc. Rotary displacement compression heat transfer systems incorporating highly fluorinated refrigerant-synthetic oil lubricant compositions
ATE159396T1 (de) 1991-06-04 1997-11-15 Qualcomm Inc System zur adaptiven kompression der blockgrössen eines bildes
US6941511B1 (en) * 2000-08-31 2005-09-06 International Business Machines Corporation High-performance extensible document transformation
US6900748B2 (en) * 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
US7199735B1 (en) * 2005-08-25 2007-04-03 Mobilygen Corporation Method and apparatus for entropy coding
CN100466739C (zh) * 2005-10-12 2009-03-04 华为技术有限公司 Cabac解码系统及方法
US8335261B2 (en) 2007-01-08 2012-12-18 Qualcomm Incorporated Variable length coding techniques for coded block patterns
US7443318B2 (en) * 2007-03-30 2008-10-28 Hong Kong Applied Science And Technology Research Institute Co. Ltd. High speed context memory implementation for H.264
US8041746B2 (en) * 2007-10-30 2011-10-18 Sap Ag Mapping schemas using a naming rule
US20100086031A1 (en) 2008-10-03 2010-04-08 Qualcomm Incorporated Video coding with large macroblocks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4816914A (en) * 1987-01-07 1989-03-28 Pictel Corporation Method and apparatus for efficiently encoding and decoding image sequences
RU2335845C2 (ru) * 2002-04-02 2008-10-10 Нокиа Корпорейшн Кодирование коэффициентов преобразования в кодерах и/или декодерах изображения/видеосигнала

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
K. UGUR, Description of video coding technology proposal by Tandberg, Nokia, Ericsson, Document JCTVC-A119, опубл. 11.04.2010, с. 4-5, 9-11. *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2754870C2 (ru) * 2017-06-28 2021-09-08 Хуавей Текнолоджиз Ко., Лтд. Способ и устройство кодирования данных изображения, способ и устройство декодирования данных изображения
US11277648B2 (en) 2017-06-28 2022-03-15 Huawei Technologies Co., Ltd. Picture data encoding method and apparatus and picture data decoding method and apparatus
US11695968B2 (en) 2017-06-28 2023-07-04 Huawei Technologies Co., Ltd. Picture data encoding method and apparatus and picture data decoding method and apparatus
US12069317B2 (en) 2017-06-28 2024-08-20 Huawei Technologies Co., Ltd. Picture data encoding method and apparatus and picture data decoding method and apparatus
RU2773641C2 (ru) * 2018-03-09 2022-06-06 Хуавей Текнолоджиз Ко., Лтд. Способ и устройство кодирования данных изображения, способ и устройство декодирования данных изображения

Also Published As

Publication number Publication date
RU2013104941A (ru) 2014-10-20
US20120169519A1 (en) 2012-07-05
EP2591605A1 (en) 2013-05-15
KR101497845B1 (ko) 2015-03-02
EP2591605A4 (en) 2016-11-30
CN103069801B (zh) 2016-06-01
KR20130030299A (ko) 2013-03-26
EP2591605B1 (en) 2019-11-06
WO2012023061A1 (en) 2012-02-23
EP3554075A1 (en) 2019-10-16
ZA201300915B (en) 2014-07-30
CN103069801A (zh) 2013-04-24
US8576097B2 (en) 2013-11-05

Similar Documents

Publication Publication Date Title
RU2565877C2 (ru) Способ и устройство для определения соответствия между синтаксическим элементом и кодовым словом для кодирования переменной длины
US9906789B2 (en) Encoding or decoding method and apparatus
TWI656786B (zh) 取樣自適應偏移裝置
CN108989823B (zh) 用于视频解码的方法
AU2015210374B2 (en) Method and apparatus for encoding and decoding transform coefficients
CN102783035B (zh) 并行熵编码方法和设备
TW202002636A (zh) 網格寫碼之量化係數寫碼
CN103999468A (zh) 用于视频编码的方法和装置
JP7448558B2 (ja) 画像エンコーディングおよびデコーディングのための方法およびデバイス
CN111263150B (zh) 视频编码设备和视频解码设备
CN1622593B (zh) 用于实现信噪比可伸缩性的视频处理的装置和方法
Kabir et al. Edge-based transformation and entropy coding for lossless image compression
US20140269896A1 (en) Multi-Frame Compression
CN104170385A (zh) 用于编码的方法和装置
RU2809558C2 (ru) Способ и устройство для кодирования и декодирования изображения
US20070223826A1 (en) Fine grained scalability ordering for scalable video coding
Mohamed Wireless Communication Systems: Compression and Decompression Algorithms
KR20220119643A (ko) 데이터 스트림의 압축
CN118200608A (zh) 运动补偿残差确定方法、装置、终端设备及存储介质

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20160602