Энтропийное кодирование разностей векторов движения
Иллюстрации
Показать всеИзобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности энтропийного кодирования разностей векторов движения. Декодер для декодирования видео из потока данных, в который кодируются горизонтальные и вертикальные составляющие разностей векторов движения, содержит энтропийный декодер, выполненный, для горизонтальных и вертикальных составляющих разностей векторов движения, с возможностью выведения усеченного унарного кода из потока данных, используя контекстно-адаптивное двоичное энтропийное декодирование с точно одним контекстом на каждую позицию бина усеченного унарного кода, который является общим для горизонтальных и вертикальных составляющих разностей векторов движения, и экспоненциального кода Голомба, используя режим обхода с постоянной равновероятностью для получения бинаризаций разностей векторов движения; десимволизатор для дебинаризации бинаризаций синтаксических элементов разностей векторов движения для получения целочисленных значений горизонтальных и вертикальных составляющих разностей векторов движения; восстановитель для восстановления видео, основываясь на целочисленных значениях горизонтальных и вертикальных составляющих разностей векторов движения. 7 н. и 30 з.п. ф-лы, 22 ил., 12 табл.
Реферат
Настоящее изобретение относится к принципу энтропийного кодирования для кодирования видеоданных.
В технике известны многие видеокодеки. Как правило, эти кодеки уменьшают необходимое количество данных, чтобы представлять видеоконтент, т.е. они сжимают данные. В контексте видеокодирования известно, что сжатие видеоданных выгодно достигается последовательным применением разных методов кодирования: используется предсказание с компенсацией движения, чтобы предсказывать содержимое изображения. Векторы движения, определенные при предсказании с компенсацией движения, а также остаток предсказания, подвергаются энтропийному кодированию без потерь. Чтобы дополнительно уменьшить количество данных сами векторы движения подвергаются предсказанию, так что только разности векторов движения, представляющие остаток предсказания вектора движения, должны энтропийно кодироваться. В H.264, например, применяется только что кратко изложенная процедура, чтобы передавать информацию о разностях векторов движения. В частности, разности векторов движения бинаризуются в строки бинов (контейнеров), соответствующие комбинации усеченного унарного кода и, от некоторого значения отсечки, экспоненциального кода Голомба. Тогда как бины экспоненциального кода Голомба легко кодируются с использованием режима равновероятного обхода с фиксированной вероятностью 0,5, для первых бинов обеспечиваются несколько контекстов. Значение отсечки выбирается равным девяти. Следовательно, обеспечивается большое количество контекстов для кодирования разностей векторов движения.
Обеспечение большого количества контекстов, однако, не только увеличивает сложность кодирования, но также может оказывать отрицательное влияние на эффективность кодирования: если контекст посещается очень редко, не выполняется эффективно вероятностная адаптация, т.е. адаптация оценки вероятности, ассоциированной с соответствующим контекстом во время причины энтропийного кодирования. Следовательно, примененные не надлежащим образом оценки вероятности оценивают фактическую статистику символов. Кроме того, если для некоторого бина бинаризации обеспечивается несколько контекстов, выбор между ними может потребовать инспектирование значений соседних бинов/синтаксических элементов, необходимость чего может препятствовать выполнению процесса декодирования. С другой стороны, если количество контекстов обеспечивается слишком малым, бины с сильно изменяющейся фактической статистикой символов группируются вместе в одном контексте и, следовательно, оценка вероятности, ассоциированная с этим контекстом, не кодирует эффективно бины, ассоциированные с ним.
Существует текущая потребность в дальнейшем повышении эффективности кодирования энтропийного кодирования разностей векторов движения.
Следовательно, задачей настоящего изобретения является обеспечение такого принципа кодирования.
Данная задача достигается объектом независимых пунктов формулы изобретения, приложенных к данному документу.
Основным решением настоящего изобретения является то, что эффективность кодирования энтропийного кодирования разностей векторов движения может быть дополнительно повышена посредством снижения значения отсечки, до которого используется усеченный унарный код, чтобы бинаризировать разности векторов движения, до двух, так что имеется только две позиции бинов усеченного унарного кода, и, если порядок единицы используется для экспоненциального кода Голомба для бинаризации разностей векторов движения от значения отсечки, и, если, дополнительно, точно один контекст обеспечивается для двух позиций бинов усеченного унарного кода, соответственно, так что не является необходимым выбор контекста, основанный на значениях бина или синтаксического элемента соседних блоков изображения, и исключается слишком мелкая классификация бинов в этих позициях бинов в контексты, так что вероятностная адаптация работает надлежащим образом, и, если одинаковые контексты используются для горизонтальных и вертикальных составляющих, тем самым дополнительно уменьшая отрицательные эффекты слишком мелкого подразделения контекста.
Кроме того, было обнаружено, что только что упомянутые установки в отношении энтропийного кодирования разностей векторов движения являются особенно ценными при объединении их с улучшенными способами предсказания векторов движения и уменьшения необходимого количества разностей векторов движения, подлежащих передаче. Например, могут обеспечиваться многочисленные предикторы вектора движения, чтобы получать упорядоченный список предикторов вектора движения, и индекс этого списка предикторов вектора движения может использоваться, чтобы определять фактический предиктор вектора движения, остаток предсказания которого представляется рассматриваемой разностью вектора движения. Хотя информация об используемом индексе списка должна выводиться из потока данных на декодирующей стороне, общее качество предсказания векторов движения повышается, и, следовательно, величина разностей векторов движения дополнительно уменьшается, так что в целом эффективность кодирования дополнительно повышается, и уменьшение значения отсечки и общее использование контекста для горизонтальных и вертикальных составляющих разностей векторов движения соответствуют такому улучшенному предсказанию вектора движения. С другой стороны, может использоваться слияние, чтобы уменьшить количество разностей векторов движения, подлежащих передаче в потоке данных: с этой целью, информация слияния может передаваться в потоке данных, сигнализируя блокам декодера о подразделении блоков, которые группируются в группу блоков. Разности векторов движения затем могут передаваться в потоке данных в единицах этих объединенных групп вместо индивидуальных блоков, таким образом уменьшая количество разностей векторов движения, которые необходимо передавать. Так как эта кластеризация блоков уменьшает взаимную корреляцию между соседними разностями векторов движения, только что упомянутое исключение обеспечения нескольких контекстов для одной позиции бина предотвращает очень мелкую классификацию схемы энтропийного кодирования в контексты в зависимости от соседних разностей векторов движения. Вместо этого, принцип слияния уже использует взаимную корреляцию между разностями векторов движения соседних блоков, и, следовательно, является достаточным один контекст для одной позиции бина - один и тот же для горизонтальной и вертикальной составляющих.
Предпочтительные варианты осуществления настоящей заявки описываются ниже в отношении чертежей, среди которых:
фиг. 1 изображает блок-схему кодера согласно варианту осуществления;
фиг. 2a-2c схематически изображают разные подразделения массива элементов дискретизации, такого как изображение, на блоки;
фиг. 3 изображает блок-схему декодера согласно варианту осуществления;
фиг. 4 изображает более подробно блок-схему кодера согласно варианту осуществления;
фиг. 5 изображает более подробно блок-схему декодера согласно варианту осуществления;
фиг. 6 схематически иллюстрирует преобразование блока из пространственной области в спектральную область, результирующий блок преобразования и его повторное преобразование;
фиг. 7 изображает блок-схему кодера согласно варианту осуществления;
фиг. 8 изображает блок-схему декодера, пригодного для декодирования битового потока, генерируемого кодером по фиг. 8, согласно варианту осуществления;
фиг. 9 изображает схематическую диаграмму, иллюстрирующую пакет данных с мультиплексированными частичными битовыми потоками согласно варианту осуществления;
фиг. 10 изображает схематическую диаграмму, иллюстрирующую пакет данных с альтернативным сегментированием, использующим сегменты фиксированного размера, согласно другому варианту осуществления;
фиг. 11 изображает декодер, поддерживающий переключение режимов, согласно варианту осуществления;
фиг. 12 изображает декодер, поддерживающий переключение режимов, согласно другому варианту осуществления;
фиг. 13 изображает кодер, соответствующий декодеру по фиг. 11, согласно варианту осуществления;
фиг. 14 изображает кодер, соответствующий декодеру по фиг. 12, согласно варианту осуществления;
фиг. 15 изображает отображение pStateCtx и fullCtxState/256**E**;
фиг. 16 изображает декодер согласно варианту осуществления настоящего изобретения; и
фиг. 17 изображает кодер согласно варианту осуществления настоящего изобретения.
Фиг. 18 схематически изображает бинаризацию разности векторов движения согласно варианту осуществления настоящего изобретения;
фиг. 19 схематически иллюстрирует принцип слияния согласно варианту осуществления; и
фиг. 20 схематически иллюстрирует схему предсказания вектора движения согласно варианту осуществления.
Отмечается, что при описании чертежей элементы, встречающиеся на нескольких из этих чертежей, обозначаются одинаковой ссылочной позицией на каждом из этих чертежей, и исключается повторное описание этих элементов, что касается функциональных возможностей, чтобы исключить необязательные повторения. Тем не менее, функциональные возможности и описания, обеспечиваемые в отношении одного чертежа, также применимы к другим чертежам, если только в явной форме не указано противоположное.
Ниже сначала описываются варианты осуществления общего принципа видеокодирования, в отношении фиг. 1-10. Фиг. 1-6 относятся к части видеокодека, работающей на уровне синтаксиса. Последующие фиг. 8-10 относятся к вариантам осуществления для части кода, относящегося к преобразованию потока синтаксических элементов в поток данных и наоборот. Затем описываются конкретные аспекты и варианты осуществления настоящего изобретения в виде возможных реализаций общего принципа, представительно кратко изложенного в отношении фиг. 1-10.
Фиг. 1 изображает пример кодера 10, в котором могут быть реализованы аспекты настоящей заявки.
Кодер кодирует массив элементов 20 дискретизации информации в поток данных. Массив элементов дискретизации информации может представлять элементы дискретизации информации, соответствующие, например, значениям освещенности, значениям цветности, значениям яркости, значениям насыщенности цвета или т.п. Однако элементы дискретизации информации также могут представлять собой значения глубины в случае массива 20 элементов дискретизации, представляющего собой карту глубины, сгенерированную, например, по времени датчика света или т.п.
Кодер 10 представляет собой кодер на основе блоков. Т.е. кодер 10 кодирует массив 20 элементов дискретизации в поток 30 данных в единицах блоков 40. Кодирование в единицах блоков 40 не обязательно означает, что кодер 10 кодирует эти блоки 40 совершенно независимо один от другого. Вместо этого кодер 10 может использовать восстановления ранее кодированных блоков, чтобы экстраполировать или внутренне предсказывать остальные блоки, и может использовать степень разбиения блоков для установки параметров кодирования, т.е. для установки метода, которым кодируется каждая область массива элементов дискретизации, соответствующая соответствующему блоку.
Кроме того, кодер 10 представляет собой кодер с преобразованием. Т.е. кодер 10 кодирует блоки 40 посредством использования преобразования, чтобы переносить элементы дискретизации информации в каждом блоке 40 из пространственной области в спектральную область. Может использоваться двумерное преобразование, такое как дискретное косинусное преобразование (DCT) быстрого преобразования Фурье (FFT) или т.п. Предпочтительно, что блоки 40 имеют квадратную форму или прямоугольную форму.
Подразделение массива 20 элементов дискретизации на блоки 40, показанное на фиг. 1, служит просто для целей иллюстрации. Фиг. 1 изображает массив 20 элементов дискретизации с подразделением на обычное двумерное расположение квадратных или прямоугольных блоков 40, которые примыкают друг к другу неперекрывающимся образом. Размер блоков 40 может определяться заранее. Т.е. кодер 10 может не переносить информацию о размере блока блоков 40 в потоке 30 данных на декодирующую сторону. Например, декодер может ожидать заданный размер блока.
Однако возможно несколько альтернатив. Например, блоки могут перекрывать друг друга. Перекрытие, однако, может ограничиваться до такой степени, что каждый блок имеет часть, не перекрываемую никаким соседним блоком, или так, что каждый элемент дискретизации блоков перекрывается по максимуму одним блоком из числа соседних блоков, расположенных рядом друг с другом с текущим блоком по заданному направлению. Последнее означает, что левый и правый соседние блоки могут перекрывать текущий блок, чтобы полностью покрывать текущий блок, но они могут не накладываться друг на друга, и это же применимо к соседям в вертикальном и диагональном направлении.
В качестве другой альтернативы, подразделение массива 20 элементов дискретизации на блоки 40 может адаптироваться к содержимому массива 20 элементов дискретизации кодером 10, причем информация подразделения об используемом подразделении пересылается на сторону декодера по битовому потоку 30.
Фиг. 2a-2c изображают разные примеры для подразделения массива 20 элементов дискретизации в блоки 40. Фиг. 2a изображает подразделение на основе квадродерева массива 20 элементов дискретизации в блоки 40 разных размеров, причем типовые блоки обозначаются позициями 40a, 40b, 40c и 40d с увеличивающимся размером. В соответствии с подразделением на фиг. 2a, массив 20 элементов дискретизации сначала делится на обычное двумерное расположение древовидных блоков 40d, которые, в свою очередь, имеют индивидуальную информацию подразделения, ассоциированную с ним, в соответствии с которой некоторый древовидный блок 40d может дополнительно подразделяться или нет в соответствии со структурой квадродерева. Древовидный блок слева от блока 40d, в качестве примера, подразделяется на меньшие блоки в соответствии со структурой квадродерева. Кодер 10 может выполнять одно двумерное преобразование для каждого из блоков, показанных сплошными и пунктирными линиями на фиг. 2a. Другими словами, кодер 10 может преобразовывать массив 20 в единицах подразделения блока.
Вместо подразделения на основе квадродерева может использоваться более общее подразделение на основе нескольких деревьев, и количество дочерних узлов на уровень иерархии может отличаться между разными уровнями иерархии.
Фиг. 2b изображает другой пример для подразделения. В соответствии с фиг. 2b массив 20 элементов дискретизации сначала делится на макроблоки 40b, расположенные в обычном двумерном расположении неперекрывающимся, взаимно примыкающим образом, причем каждый макроблок 40b имеет ассоциированную с ним информацию подразделения, в соответствии с которой макроблок не подразделяется, или, если подразделяется, подразделяется обычным двумерным образом на подблоки равного размера для достижения разных степеней разбиения подразделения для разных макроблоков. Результатом является подразделение массива 20 элементов дискретизации в блоках 40 с разным размером, причем представители разных размеров обозначаются позициями 40a, 40b и 40a’. Как на фиг. 2a, кодер 10 выполняет двумерное преобразование в отношении каждого из блоков, показанных на фиг.2b сплошными и пунктирными линиями. Фиг. 2c описывается ниже.
Фиг. 3 изображает декодер 50, способный декодировать поток 30 данных, сгенерированный кодером 10 для восстановления восстановленной версии 60 массива 20 элементов дискретизации. Декодер 50 извлекает из потока 30 данных блок коэффициентов преобразования для каждого из блоков 40 и восстанавливает восстановленную версию 60 посредством выполнения обратного преобразования в отношении каждого из блоков коэффициентов преобразования.
Кодер 10 и декодер 50 могут быть выполнены с возможностью выполнения энтропийного кодирования/декодирования, чтобы вставлять информацию о блоках коэффициентов преобразования в поток данных и извлекать эту информацию из него соответственно. Ниже описываются подробности в этом отношении в соответствии с разными вариантами осуществления. Необходимо отметить, что поток 30 данных необязательно содержит информацию о блоках коэффициентов преобразования для всех блоков 40 массива 20 элементов дискретизации. Вместо этого, так как подмножество блоков 40 может кодироваться в битовый поток 30 другим образом. Например, кодер 10, вместо этого, может принять решение воздержаться от вставки блока коэффициентов преобразования для некоторого блока из блоков 40 со вставкой в битовый поток 30 параметров альтернативного кодирования, которые позволяют декодеру 50 предсказывать или иным образом наполнять соответствующий блок в восстановленной версии 60. Например, кодер 10 может выполнять анализ текстуры, чтобы определять расположение блоков в массиве 20 элементов дискретизации, который может наполняться на стороне декодера декодером посредством синтеза текстуры, и указывать это в битовом потоке соответствующим образом.
Как описывается в отношении следующих фигур, блоки коэффициентов преобразования необязательно представляют представление спектральной области исходных элементов дискретизации информации соответствующего блока 40 массива 20 элементов дискретизации. Вместо этого, такой блок коэффициентов преобразования может представлять представление спектральной области остатка предсказания соответствующего блока 40. Фиг. 4 изображает вариант осуществления для такого кодера. Кодер по фиг. 4 содержит ступень (каскад) 100 преобразования, энтропийный кодер 102, ступень 104 обратного преобразования, предиктор (предсказатель) 106 и вычитатель 108, а также сумматор 110. Вычитатель 108, ступень 100 преобразования и энтропийный кодер 102 соединены последовательно в упомянутом порядке между входом 112 и выходом 114 кодера на фиг. 4. Ступень 104 обратного преобразования, сумматор 110 и предиктор 106 соединены в упомянутом порядке между выходом ступени 100 преобразования и инвертирующим входом вычитателя 108, причем выход предиктора 106 также соединен с другим входом сумматора 110.
Кодер по фиг. 4 представляет собой блочный кодер на основе преобразования с предсказанием. Т.е. блоки массива 20 элементов дискретизации, поступающие на вход 112, предсказываются из ранее кодированных и восстановленных частей этого же массива 20 элементов дискретизации или ранее кодированных и восстановленных других массивов элементов дискретизации, которые могут предшествовать или следовать за текущим массивом 20 элементов дискретизации во времени представления. Предсказание выполняется предиктором 106. Вычитатель 108 вычитает предсказание из такого исходного блока, и ступень 100 преобразования выполняет двумерное преобразование остатков предсказания. Само двумерное преобразование или последующая мера в ступени 100 преобразования могут приводить к квантованию коэффициентов преобразования в блоках коэффициентов преобразования. Квантованные блоки коэффициентов преобразования кодируются без потерь, например, посредством энтропийного кодирования в энтропийном кодере 102, причем результирующий поток данных выводится на выходе 114. Ступень 104 обратного преобразования восстанавливает квантованный остаток, и сумматор 110, в свою очередь, объединяет восстановленный остаток с соответствующим предсказанием для получения восстановленных элементов дискретизации информации, основываясь на которых предиктор 106 может предсказывать вышеупомянутые кодируемые в настоящий момент блоки предсказания. Предиктор 106 может использовать разные режимы предсказания, такие как режимы внутреннего предсказания и режимы внешнего предсказания, чтобы предсказывать блоки, и параметры предсказания направляются энтропийному кодеру 102 для вставки в поток данных. Для каждого блока предсказания с внешним предсказанием соответствующие данные движения вставляются в битовый поток при помощи энтропийного кодера 114, чтобы предоставить возможность декодирующей стороне повторно выполнить предсказание. Данные движения для блока предсказания изображения могут включать в себя часть синтаксиса, включающую в себя синтаксический элемент, представляющий разность вектора движения, дифференциально кодирующую вектор движения для текущего блока предсказания относительно предиктора вектора движения, полученного, например, посредством заданного способа из векторов движения соседних, уже кодированных блоков предсказания.
Т.е. согласно варианту осуществления по фиг. 4 блоки коэффициентов преобразования представляют спектральное представление остатка массива элементов дискретизации, а не его фактические элементы дискретизации информации. Т.е. согласно варианту осуществления по фиг. 4 последовательность синтаксических элементов может поступать в энтропийный кодер 102 для энтропийного кодирования в поток 114 данных. Последовательность синтаксических элементов может содержать синтаксические элементы разностей векторов движения для блоков внешнего предсказания и синтаксические элементы, касающиеся карты значимостей, указывающей позиции значимых уровней коэффициентов преобразования, а также синтаксические элементы, определяющие сами значимые уровни коэффициентов преобразования, для блоков преобразования.
Необходимо отметить, что несколько альтернатив существует для варианта осуществления по фиг. 4, причем некоторые из них были описаны в вводной части описания изобретения, описание которых включено в описание фиг. 4 настоящего документа.
Фиг. 5 изображает декодер, способный декодировать поток данных, генерируемый кодером по фиг. 4. Декодер по фиг. 5 содержит энтропийный декодер 150, ступень 152 обратного преобразования, сумматор 154 и предиктор 156. Энтропийный декодер 150, ступень 152 обратного преобразования и сумматор 154 последовательно соединены между входом 158 и выходом 160 декодера по фиг. 5 в упомянутом порядке. Другой выход энтропийного декодера 150 соединен с предиктором 156, который, в свою очередь, подсоединен между выходом сумматора 154 и другим его входом. Энтропийный декодер 150 извлекает из потока данных, поступающего в декодер по фиг. 5 на входе 158, блоки коэффициентов преобразования, причем обратное преобразование применяется к блокам коэффициентов преобразования в ступени 152 для получения сигнала остатка. Сигнал остатка объединяется с предсказанием от предиктора 156 в сумматоре 154 для получения восстановленного блока восстановленной версии массива элементов дискретизации на выходе 160. Основываясь на восстановленных версиях, предиктор 156 генерирует предсказания, таким образом восстанавливая предсказания, выполняемые предиктором 106 на стороне кодера. Для получения таких же предсказаний, что и те, которые используются на стороне кодера, предиктор 156 использует параметры предсказания, которые энтропийный декодер 150 также получает из потока данных на входе 158.
Необходимо отметить, что в вышеописанных вариантах осуществления пространственная степень разбиения, с которой выполняется предсказание и преобразование остатка, не должна быть равной друг другу. Это показано на фиг. 2C. Эта фигура изображает подразделение для блоков предсказания степени разбиения предсказания сплошными линиями и степень разбиения остатка - пунктирными линиями. Как можно видеть, подразделения могут выбираться кодером независимо друг от друга. Более точно, синтаксис потока данных может учитывать определение подразделения остатка независимо от подразделения предсказания. Альтернативно, подразделение остатка может представлять собой расширение подразделения предсказания, так что каждый блок остатка или равен блоку предсказания или представляет собой надлежащее подмножество его. Это показано на фиг. 2a и фиг. 2b, например, где снова степень разбиения предсказания показана сплошными линиями и степень разбиения остатка - пунктирными линиями. Т.е. на фиг. 2a-2c все блоки, имеющие ссылочную позицию, ассоциированную с ними, будут блоками остатка, для которых будет выполняться одно двумерное преобразование, тогда как блоки со сплошными линиями большего размера, охватывающие блоки 40a с пунктирными линиями, например, будут блоками предсказания, для которых установка параметров предсказания выполняется индивидуально.
Вышеупомянутые варианты осуществления имеют в общем то, что блок (элементов дискретизации остатка или исходных элементов дискретизации) должен преобразовываться на стороне кодера в блок коэффициентов преобразования, который, в свою очередь, должен обратно преобразовываться в восстановленный блок элементов дискретизации на стороне декодера. Это изображено на фиг. 6. Фиг. 6 изображает блок 200 элементов дискретизации. В случае фиг. 6, этот блок 200 в качестве примера является квадратным и имеет 4×4 элементов 202 дискретизации в размере. Элементы 202 дискретизации регулярно располагаются по горизонтальному направлению x и по вертикальному направлению y. Посредством вышеупомянутого двумерного преобразования T, блок 200 преобразуется в спектральную область, а именно, в блок 204 коэффициентов 206 преобразования, причем блок 204 преобразования имеет такой же размер, что и блок 200. Т.е. блок 204 преобразования имеет столько коэффициентов 206 преобразования, сколько блок 200 имеет элементов дискретизации как в горизонтальном направлении, так и вертикальном направлении. Однако так как преобразование T представляет собой спектральное преобразование, позиции коэффициентов 206 преобразования в блоке 204 преобразования не соответствуют пространственным позициям, но скорее спектральным составляющим содержимого блока 200. В частности, горизонтальная ось блока 204 преобразования соответствует оси, вдоль которой спектральная частота в горизонтальном направлении монотонно увеличивается, в то время как вертикальная ось соответствует оси, вдоль которой пространственная частота в вертикальном направлении монотонно увеличивается, причем коэффициент преобразования составляющей постоянного тока (DC) располагается в углу - здесь, в качестве примера, верхний левый угол - блока 204, так что в нижнем правом углу располагается коэффициент 206 преобразования, соответствующий наибольшей частоте как в горизонтальном, так и в вертикальном направлении. Пренебрегая пространственным направлением, пространственная частота, к которой принадлежит некоторый коэффициент 206 преобразования, как правило увеличивается от верхнего левого угла к нижнему правому углу. Посредством обратного преобразования T-1, блок 204 преобразования переносится из спектральной области в пространственную область, чтобы повторно получить копию 208 блока 200. В случае отсутствия введения потерь квантования при преобразовании, восстановление будет совершенным.
Как уже отмечено выше, можно видеть на фиг. 6, что большие размеры блока у блока 200 увеличивают спектральное разрешение результирующего спектрального представления 204. С другой стороны, шум квантования стремится распространиться по всему блоку 208, и, таким образом, резкие и очень локализованные объекты в блоках 200 стремятся привести к отклонениям повторно преобразованного блока относительно исходного блока 200 из-за шума квантования. Главным преимуществом использования больших блоков является, однако, то, что отношение между количеством значимых, т.е. ненулевых (квантованных) коэффициентов преобразования, т.е. уровней, с одной стороны, и количеством незначимых коэффициентов преобразования, с другой стороны, может уменьшаться в больших блоках по сравнению с меньшими блоками, тем самым позволяя получить лучшую эффективность кодирования. Другими словами, часто значимые уровни коэффициентов преобразования, т.е. коэффициенты преобразования, не квантованные в нуль, редко распределяются по блоку 204 преобразования. Вследствие этого, согласно вариантам осуществления, описанным более подробно ниже, позиции значимых уровней коэффициентов преобразования сигнализируются в потоке данных посредством карты значимостей. Отдельно от нее, значения значимого коэффициента преобразования, т.е. уровней коэффициентов преобразования в случае, когда коэффициенты преобразования квантуются, передаются в потоке данных.
Все кодеры и декодеры, описанные выше, таким образом, выполнены с возможностью работы с некоторым синтаксисом синтаксических элементов. Т.е. вышеупомянутые синтаксические элементы, такие как уровни коэффициентов преобразования, синтаксические элементы, касающиеся карты значимостей блоков преобразования, синтаксические элементы данных движения, касающиеся блоков внешнего предсказания, и т.п., как предполагается, располагаются последовательно в потоке данных заданным образом. Такой заданный образ может представляться в виде псевдокода, как, например, сделано в стандарте H.264 или других видеокодеках.
Другими словами, вышеупомянутое описание, имеющее дело главным образом с преобразованием мультимедийных данных, здесь, в качестве примера, видеоданные, в последовательность синтаксических элементов в соответствии с предварительно определенной синтаксической структурой, задающей некоторые типы синтаксических элементов, его семантикой и порядком среди них. Энтропийный кодер и энтропийный декодер по фиг. 4 и 5 может быть выполнен с возможностью работы, и может быть структурирован, как кратко изложено ниже. Они отвечают за выполнение преобразования между последовательностью синтаксических элементов и потоком данных, т.е. потоком символов или битов.
Энтропийный кодер согласно варианту осуществления изображен на фиг. 7. Кодер без потерь преобразует поток синтаксических элементов 301 в множество из двух или более частичных битовых потоков 312.
В предпочтительном варианте осуществления изобретения каждый синтаксический элемент 301 ассоциируется с категорией множества из одной или нескольких категорий, т.е. типом синтаксического элемента. В качестве примера, категории могут задавать тип синтаксического элемента. В контексте гибридного видеокодирования отдельная категория может ассоциироваться с режимами кодирования макроблоков, режимами кодирования блоков, индексами опорного изображения, разностями векторов движения, флагами подразделения, флагами кодированного блока, параметрами квантования, уровнями коэффициентов преобразования и т.д. В других областях применения, таких как аудио, речь, текст, документ или обычное кодирование данных, возможны разные категоризации синтаксических элементов.
Обычно, каждый синтаксический элемент может принимать значение конечного или счетно-бесконечного множества значений, где множество возможных значений синтаксического элемента может различаться для разных категорий синтаксических элементов. Например, имеются двоичные синтаксические элементы, а также целочисленные.
Для уменьшения сложности алгоритма кодирования и декодирования и для предоставления возможности общей разработки кодирования и декодирования для разных синтаксических элементов и категорий синтаксических элементов, синтаксические элементы 301 преобразуются в упорядоченные множества двоичных решений, и эти двоичные решения затем обрабатываются простыми алгоритмами двоичного кодирования. Поэтому, бинаризатор 302 биективно (взаимно-однозначно) отображает значение каждого синтаксического элемента 301 на последовательность (или строку или слово) бинов 303. Последовательность бинов 303 представляет множество упорядоченных двоичных решений. Каждый бин 303 или двоичное решение может принимать одно значение из множества из двух значений, например, одно из значений 0 и 1. Схема бинаризации может быть разной для разных категорий синтаксических элементов. Схема бинаризации для конкретной категории синтаксических элементов может зависеть от множества возможных значений синтаксических элемента и/или других свойств синтаксического элемента для конкретной категории.
Таблица 1 иллюстрирует три примерные схемы бинаризации для счетно-бесконечных множеств. Схемы бинаризации для счетно-бесконечных множеств также могут быть применимы для конечных множеств значений синтаксических элементов. В частности для больших конечных множеств значений синтаксических элементов может быть незначительной неэффективность (являющаяся результатом неиспользованных последовательностей бинов), но универсальность таких схем бинаризации обеспечивает преимущество в смысле сложности и требований к памяти. Для малых конечных множеств значений синтаксических элементов часто бывает предпочтительным (в смысле эффективности кодирования) адаптировать схему бинаризации к количеству возможных значений символов.
Таблица 2 иллюстрирует три примерные схемы бинаризации для конечных множеств из 8 значений. Схемы бинаризации для конечных множеств могут быть выведены из универсальных схем бинаризации для счетно-бесконечных множеств посредством модифицирования некоторых последовательностей бинов таким образом, что конечные множества последовательностей бинов представляют код без избыточности (и потенциально переупорядочение последовательностей бинов). В качестве примера, схема усеченной унарной бинаризации в таблице 2 была создана посредством модифицирования последовательности бинов для синтаксического элемента 7 универсальной унарной бинаризации (см. таблицу 1). Усеченная и переупорядоченная экспоненциальная бинаризация Голомба порядка 0 в таблице 2 была создана посредством модифицирования последовательности бинов для синтаксического элемента 7 универсальной экспоненциальной бинаризации Голомба порядка 0 (см. таблица 1) и посредством переупорядочения последовательностей бинов (усеченная последовательность бинов для символа 7 была назначена символу 1). Для конечных множеств синтаксических элементов также возможно использование несистематических/неуниверсальных схем бинаризации, как приведено в качестве примера в последнем столбце таблицы 2.
Каждый бин 303 последовательности бинов, создаваемых бинаризатором 302, подается в средство 304 назначения параметра в последовательном порядке. Средство назначения параметра назначает множество из одного или нескольких параметров каждому бину 303 и выводит бин с ассоциированным множеством параметров 305. Множество параметров определяется точно одинаковым образом в кодере и декодере. Множество параметров может состоять из одного или нескольких из следующих параметров:
В частности, средство 304 назначения параметра может быть выполнено с возможностью назначения текущему бину 303 контекстной модели. Например, средство 304 назначения параметра может выбирать один из доступных индексов контекста для текущего бина 303. Доступное множество контекстов для текущего бина 303 может зависеть от типа бина, который, в свою очередь, может определяться типом/категорией синтаксического элемента 301, бинаризация какого текущего бина 303 является частью и позицией текущего бина 303 в последней бинаризации. Выбор контекста из числа доступного множества контекстов может зависеть от предыдущих бинов и синтаксических элементов, ассоциированных с последним. Каждый из этих контекстов имеет вероятностную модель, ассоциированную с ним, т.е. меру для оценки вероятности для одного из двух возможных значений бина для текущего бина. Вероятностная модель, в частности, может представлять собой меру для оценки вероятности для менее вероятного или более вероятного значения бина для текущего бина, причем вероятностная модель дополнительно определяется идентификатором, задающим оценку, какое из двух возможных значений бина представляет менее вероятное или более вероятное значение бина для текущего бина 303. В случае, когда доступен только один контекст для текущего бина, может быть исключен выбор контекста. Как более подробно изложено ниже, средство 304 назначения параметра также может выполнять адаптацию вероятностной модели, чтобы адаптировать вероятностные модели, ассоциированные с различными контекстами, с фактическ