Способ и устройство для кодирования элементов синтаксиса в видеокодеке
Иллюстрации
Показать всеИзобретение относится к вычислительной технике. Технический результат заключается в улучшении кодирования элемента Run синтаксиса палитрового режима. Способ для определения параметра энтропийного кода, ассоциированного с индексами из блока индексов, используемого для кодирования или декодирования единицы кодирования изображения согласно палитре, причем упомянутая палитра содержит набор индексов, ассоциированных с пиксельными значениями, причем упомянутый энтропийный код используется для кодирования или декодирования по меньшей мере части упомянутого блока индексов, при этом индекс упомянутого блока индексов кодируется с прогнозированием, используя один из множества режимов прогнозирования, и параметр упомянутого энтропийного кода определяется в зависимости от режима прогнозирования кодируемого с прогнозированием индекса, ассоциированного с энтропийным кодом. 9 н. и 12 з.п. ф-лы, 17 ил., 1 табл.
Реферат
Изобретение относится к способу и устройству для прогнозирования кодирования элементов синтаксиса на основе компонента вектора смещения в процессе кодирования или декодирования видео. Оно, в частности, относится к элементу Run синтаксиса при кодировании в палитровом режиме в HEVC.
Более конкретно, оно применяется к режиму кодирования, в котором блок пиксела кодируется с прогнозированием на основе блока предиктора, кодированного с помощью или скомпонованного из так называемой палитры.
Палитра в этом документе задается как таблица поиска, имеющая записи, ассоциирующие индекс со значением пиксела. Типично, но необязательно, значение пиксела состоит из значения каждого цветового компонента, ассоциированного с пикселом, что приводит к цветовой палитре. С другой стороны, значение пиксела может формироваться из одного пиксельного компонента, что приводит к монохромной палитре.
Этот режим кодирования блока пиксела, в общем, упоминается в качестве режима палитрового кодирования. Предполагается приспосабливать этот режим, например, в расширении диапазона международного стандарта высокоэффективного кодирования видео (HEVC: ISO/IEC 23008-2 MPEG-H Part 2 ITU-T H.265).
При кодировании изображения в видеопоследовательности, изображение сначала разделяется на объекты кодирования пикселов равного размера, называемые "блоком дерева кодирования (CTB)". Размер блока дерева кодирования типично составляет 64х64 пикселов. Каждый блок дерева кодирования затем может разбиваться на иерархическое дерево меньших блоков, размер которых может варьироваться, и которые представляют собой фактические блоки пикселов для кодирования. Эти меньшие блоки для кодирования упоминаются в качестве единицы кодирования (CU).
Кодирование конкретной единицы кодирования типично является прогнозирующим. Это означает то, что сначала определяется блок предиктора. Затем, вычисляется разность между блоком предиктора и единицей кодирования. Эта разность называется "остатком". Затем, этот остаток сжимается. Фактическая кодированная информация единицы кодирования формируется из некоторой информации для того, чтобы указывать способ определения блока предиктора и сжатого остатка. Наилучшие блоки предикторов представляют собой блоки, максимально возможно аналогичные единице кодирования, с тем чтобы получать небольшой остаток, который может эффективно сжиматься.
Режим кодирования задается на основе способа, используемого для того, чтобы определять блок предиктора для способа кодирования единицы кодирования с прогнозированием.
Первый режим кодирования упоминается в качестве внутреннего режима. Согласно внутреннему режиму, блок предиктора компонуется на основе значения пикселов, непосредственно окружающих единицу кодирования в текущем изображении. Необходимо отметить, что блок предиктора представляет собой блок не текущего изображения, а конструкции. Направление используется для того, чтобы определять то, какие пикселы границы фактически используются для того, чтобы компоновать блок предиктора, и то, как они используются. Идея в основе внутреннего режима состоит в том, что вследствие общей когерентности натуральных изображений, пикселы, непосредственно окружающие единицу кодирования, с большой вероятностью являются аналогичными пикселам текущей единицы кодирования. Следовательно, можно получать хорошее прогнозирование значения пикселов единицы кодирования с использованием блока предиктора на основе этих окружающих пикселов.
Второй режим кодирования упоминается в качестве взаимного режима. Согласно взаимному режиму, блок предиктора представляет собой блок другого изображения. Идея в основе взаимного режима состоит в том, что последовательные изображения в последовательности являются, в общем, почти идентичными. Основное различие типично обусловлено движением между этими изображениями вследствие прокрутки камеры или вследствие движущихся объектов в сцене. Блок предиктора определяется посредством вектора, представляющего его местоположение в опорном изображении относительно местоположения единицы кодирования в текущем изображении. Этот вектор упоминается в качестве вектора движения. Согласно этому режиму, кодирование такой единицы кодирования с использованием этого режима содержит информацию движения, содержащую вектор движения и сжатый остаток.
В этом документе, внимание сосредоточено на третьем режиме кодирования, называемом "палитровым режимом". Согласно палитровому режиму, можно задавать блок предиктора для данной единицы кодирования в качестве блока индексов из палитры: для каждого пиксельного местоположения в блоке предиктора, блок предиктора содержит индекс, ассоциированный с пиксельным значением в палитре, которое является ближайшим к значению пиксела, имеющего идентичное местоположение (т.е. совместно размещенного) в единице кодирования. Остаток, представляющий разность между блоком предиктора и единицей кодирования, затем вычисляется и кодируется. Индексы записей в палитре также известны как "уровни".
При использовании палитрового режима, блок предиктора уровней должен передаваться в потоке битов. Для этой передачи, блок предиктора двоично кодируется с использованием трех элементов синтаксиса. Первый элемент синтаксиса, называемый "Pred mode", обеспечивает возможность различать между двумя режимами кодирования. В первом режиме, соответствующем режиму прогнозирования, имеющему значение 0, значение уровня, который должен кодироваться, должно передаваться в потоке битов. Во втором режиме, соответствующем режиму прогнозирования, имеющему значение 1, значение уровня, который должен кодироваться, получается из значения вышеуказанного пиксела в блоке предиктора. Уровень не должен обязательно передаваться.
Второй элемент синтаксиса, называемый "Level", задается для передачи значения уровня в первом режиме. Третий элемент синтаксиса, называемый "Run", используется для того, чтобы кодировать повторяющееся значение. С учетом того, что блок предиктора сканируется из верхнего левого угла в правый нижний угол, построчно слева направо и сверху вниз, элемент Run синтаксиса задает число последовательных пикселов в блоке предиктора, имеющих идентичное кодирование. Если режим прогнозирования равен 0, это представляет собой число последовательных пикселов блока предиктора, имеющих идентичное значение уровня. Если режим прогнозирования равен 1, это представляет собой число последовательных пикселов блока предиктора, имеющих значение уровня, соответствующее значению уровня вышеуказанного пиксела.
Элемент Run синтаксиса кодируется с использованием кода Голомба-Райса для наименьших значений и экспоненциального кода Голомба для наибольших значений. Эти коды Голомба задаются с использованием параметра, называемого "порядком Голомба". Для кодирования элемента Run синтаксиса, этот порядок Голомба предположительно имеет значение 3. Необходимо отметить, что длина энтропийного кода Голомба зависит порядка.
Настоящее изобретение разработано с возможностью улучшать кодирование кодирования элемента Run синтаксиса палитрового режима.
Оно предлагает улучшать кодирование элемента Run синтаксиса посредством использования переменной "порядок Голомба". Описываются несколько вариантов осуществления, в которых порядок Голомба адаптирован согласно различным параметрам.
Согласно первому аспекту настоящего изобретения, предусмотрен способ для определения, по меньшей мере, одного параметра энтропийного кода, ассоциированного с индексами из блока индексов, используемого для кодирования единицы кодирования изображения согласно палитре, причем упомянутая палитра содержит набор индексов, ассоциированных с пиксельными значениями, причем упомянутый энтропийный код используется для кодирования, по меньшей мере, части упомянутого блока индексов, при этом упомянутый, по меньшей мере, один параметр энтропийного кода определяется в зависимости от, по меньшей мере, параметра, используемого в процессе кодирования упомянутого блока индексов.
В варианте осуществления, упомянутый, по меньшей мере, один параметр энтропийного кода связан с длиной энтропийного кода.
В варианте осуществления, упомянутый энтропийный код представляет собой код Голомба.
В варианте осуществления, упомянутый, по меньшей мере, один параметр энтропийного кода представляет собой порядок кода Голомба.
В варианте осуществления, по меньшей мере, один индекс упомянутого блока индексов кодируется с прогнозированием, и упомянутый, по меньшей мере, один параметр энтропийного кода определяется в зависимости от режима прогнозирования упомянутого, по меньшей мере, одного индекса, ассоциированного с энтропийным кодом.
В варианте осуществления, по меньшей мере, один индекс упомянутого блока индексов кодируется с прогнозированием, и упомянутый, по меньшей мере, один параметр энтропийного кода определяется в зависимости от значения индекса упомянутого, по меньшей мере, одного индекса, ассоциированного с энтропийным кодом.
В варианте осуществления, по меньшей мере, один индекс упомянутого блока индексов кодируется с прогнозированием, и упомянутый, по меньшей мере, один параметр энтропийного кода определяется в зависимости от размера палитры.
В варианте осуществления, по меньшей мере, один индекс упомянутого блока индексов кодируется с прогнозированием, и упомянутый, по меньшей мере, один параметр энтропийного кода определяется в зависимости от размера единицы кодирования.
В варианте осуществления, по меньшей мере, один индекс упомянутого блока индексов кодируется с прогнозированием, причем каждый индекс из блока индексов ассоциирован с соответствующим пикселом, и упомянутый, по меньшей мере, один параметр энтропийного кода определяется в зависимости от оставшегося числа пикселов, которые следует ассоциировать с индексами в блоке индексов.
В варианте осуществления, по меньшей мере, один индекс из блока индексов кодируется посредством группы последовательных пикселов в порядке сканирования, причем каждая группа кодируется с использованием первого элемента синтаксиса, задающего режим прогнозирования, и второго элемента, задающего повторение, и упомянутый энтропийный код используется для кодирования элемента синтаксиса повторений.
В варианте осуществления, способ содержит:
- определение категорий на основе, по меньшей мере, одного второго параметра, используемого в процессе кодирования упомянутого блока индексов; и
- определение значения упомянутого, по меньшей мере, одного параметра энтропийного кода для каждой категории.
В варианте осуществления, способ дополнительно содержит:
- адаптацию упомянутых определенных значений упомянутого, по меньшей мере, одного параметра энтропийного кода на основе, по меньшей мере, одного третьего параметра, используемого в процессе кодирования упомянутого блока индексов.
В варианте осуществления, упомянутый, по меньшей мере, один третий параметр содержит последнее значение, определенное для идентичной категории, и последнее кодированное повторяющееся значение.
В варианте осуществления, упомянутый, по меньшей мере, один второй параметр содержит режим прогнозирования или значение индекса пиксела, ассоциированного с энтропийным кодом.
В варианте осуществления, упомянутый, по меньшей мере, один параметр энтропийного кода определяется для кодирования данного элемента в качестве значения параметра энтропийного кода, которое должно быть оптимальным для кодирования или декодирования последнего кодированного или декодированного соответствующего элемента.
В варианте осуществления, значение упомянутого, по меньшей мере, одного параметра энтропийного кода ограничивается фиксированным числом значений.
Согласно второму аспекту настоящего изобретения, предусмотрен способ для кодирования видеоданных в потоке битов, при этом упомянутый способ содержит:
- определение, по меньшей мере, одного параметра энтропийного кода согласно способу первого аспекта; и
- запись значения в упомянутый поток битов с использованием упомянутого или одного определенного параметра энтропийного кода.
Согласно третьему аспекту настоящего изобретения, предусмотрен способ для декодирования видеоданных из потока битов, при этом упомянутый способ содержит:
- получение из упомянутого потока битов параметра, используемого в процессе кодирования блока индексов;
- определение, по меньшей мере, одного параметра энтропийного кода согласно способу первого аспекта.
Согласно четвертому аспекту настоящего изобретения, предусмотрено устройство для определения, по меньшей мере, одного параметра энтропийного кода, ассоциированного с индексами из блока индексов, используемого для кодирования единицы кодирования изображения согласно палитре, причем упомянутая палитра содержит набор индексов, ассоциированных с пиксельными значениями, причем упомянутый энтропийный код используется для кодирования, по меньшей мере, части упомянутого блока индексов, при этом упомянутое устройство содержит средство для определения упомянутого, по меньшей мере, одного параметра энтропийного кода в зависимости от, по меньшей мере, параметра, используемого в процессе кодирования упомянутого блока индексов.
Согласно пятому аспекту настоящего изобретения, предусмотрено устройство для кодирования видеоданных в потоке битов, содержащее: средство для определения, по меньшей мере, одного параметра энтропийного кода, ассоциированного с индексами из блока индексов, используемого для кодирования единицы кодирования изображения согласно палитре, причем упомянутая палитра содержит набор индексов, ассоциированных с пиксельными значениями, причем упомянутый энтропийный код используется для кодирования, по меньшей мере, части упомянутого блока индексов, при этом упомянутое устройство содержит средство для определения упомянутого, по меньшей мере, одного параметра энтропийного кода в зависимости от, по меньшей мере, параметра, используемого в процессе кодирования упомянутого блока индексов; и средство для записи значения в упомянутый поток битов с использованием упомянутого или одного определенного параметра энтропийного кода.
Согласно шестому аспекту настоящего изобретения, предусмотрено устройство для декодирования видеоданных из потока битов, содержащее: средство для получения из упомянутого потока битов параметра, используемого в процессе кодирования блока индексов; и средство для определения, по меньшей мере, одного параметра энтропийного кода, ассоциированного с индексами из блока индексов, используемого для кодирования единицы кодирования изображения согласно палитре, причем упомянутая палитра содержит набор индексов, ассоциированных с пиксельными значениями, причем упомянутый энтропийный код используется для кодирования, по меньшей мере, части упомянутого блока индексов, при этом упомянутое устройство содержит средство для определения упомянутого, по меньшей мере, одного параметра энтропийного кода в зависимости от, по меньшей мере, параметра, используемого в процессе кодирования упомянутого блока индексов.
Согласно седьмому аспекту настоящего изобретения, предусмотрен компьютерный программный продукт для программируемого устройства, причем компьютерный программный продукт содержит последовательность инструкций для реализации способа согласно любому из вышеуказанных первого, второго и третьего, при загрузке и выполнении посредством программируемого устройства.
Согласно восьмому аспекту настоящего изобретения, предусмотрен энергонезависимый машиночитаемый носитель хранения данных, хранящий инструкции компьютерной программы для реализации способа согласно любому из первого, второго или третьего аспектов.
Согласно девятому аспекту настоящего изобретения, предусмотрено средство хранения информации, считываемое посредством компьютера или микропроцессора, сохраняющего инструкции компьютерной программы, причем оно позволяет реализовывать способ согласно любому из первого, второго или третьего аспектов.
Согласно одному дополнительному аспекту настоящего изобретения, предусмотрен способ для кодирования видеоданных в потоке битов, при этом упомянутый способ содержит: определение, по меньшей мере, одного параметра энтропийного кода согласно первому аспекту; и запись, в упомянутый поток битов, определенного значения.
Согласно другому аспекту настоящего изобретения, предусмотрен способ для декодирования видеоданных из потока битов, при этом упомянутый способ содержит: определение, по меньшей мере, одного параметра энтропийного кода согласно первому аспекту; и считывание из упомянутого потока битов определенного значения.
Согласно дополнительному аспекту изобретения, предусмотрен способ для определения, по меньшей мере, одного параметра энтропийного кода, ассоциированного с индексами из блока индексов, используемого для кодирования единицы кодирования изображения согласно палитре, причем упомянутая палитра содержит набор индексов, ассоциированных с пиксельными значениями, причем упомянутый энтропийный код используется для кодирования, по меньшей мере, части упомянутого блока индексов, при этом упомянутый, по меньшей мере, один параметр определяется в зависимости от, по меньшей мере, параметра, используемого в процессе кодирования упомянутого блока индексов. Соответственно, улучшается кодирование элемента Run синтаксиса.
В варианте осуществления, упомянутый, по меньшей мере, один параметр энтропийного кода связан с длиной энтропийного кода.
В варианте осуществления, упомянутый энтропийный код представляет собой код Голомба.
В варианте осуществления, упомянутый, по меньшей мере, один параметр энтропийного кода представляет собой порядок кода Голомба.
В варианте осуществления, по меньшей мере, один индекс упомянутого блока индексов кодируется с прогнозированием, упомянутый, по меньшей мере, один параметр энтропийного кода определяется в зависимости от режима прогнозирования упомянутого, по меньшей мере, одного индекса, ассоциированного с энтропийным кодом.
В варианте осуществления, по меньшей мере, один индекс упомянутого блока индексов кодируется с прогнозированием, упомянутый, по меньшей мере, один параметр энтропийного кода определяется в зависимости от значения индекса упомянутого, по меньшей мере, одного индекса, ассоциированного с энтропийным кодом.
В варианте осуществления, по меньшей мере, один индекс упомянутого блока индексов кодируется с прогнозированием, упомянутый, по меньшей мере, один параметр энтропийного кода определяется в зависимости от размера палитры.
В варианте осуществления, по меньшей мере, один индекс упомянутого блока индексов кодируется с прогнозированием, упомянутый, по меньшей мере, один параметр энтропийного кода определяется в зависимости от размера единицы кодирования.
В варианте осуществления, по меньшей мере, один индекс упомянутого блока индексов кодируется с прогнозированием, упомянутый, по меньшей мере, один параметр энтропийного кода определяется в зависимости от числа пикселов, остающихся в блоке уровня, который должен декодироваться или кодироваться.
В варианте осуществления, упомянутый блок индексов кодируется посредством группы последовательных пикселов в порядке сканирования, причем каждая группа кодируется с использованием первого элемента синтаксиса, задающего режим прогнозирования, и второго элемента, задающего повторение, упомянутый энтропийный код используется для кодирования элемента синтаксиса повторений.
В варианте осуществления, способ содержит:
- определение категорий на основе, по меньшей мере, одного второго параметра, используемого в процессе кодирования упомянутого блока индексов; и
- определение значения упомянутого, по меньшей мере, одного параметра энтропийного кода для каждой категории.
В варианте осуществления, способ дополнительно содержит:
- адаптацию упомянутых определенных значений упомянутого, по меньшей мере, одного параметра энтропийного кода на основе, по меньшей мере, одного третьего параметра, используемого в процессе кодирования упомянутого блока индексов.
В варианте осуществления, упомянутый, по меньшей мере, один третий параметр содержит последнее значение, определенное для идентичной категории, и последнее кодированное повторяющееся значение.
В варианте осуществления, упомянутый, по меньшей мере, один второй параметр содержит режим прогнозирования или значение индекса пиксела, ассоциированного с энтропийным кодом.
В варианте осуществления, упомянутый, по меньшей мере, один параметр энтропийного кода определяется для кодирования данного элемента в качестве значения параметра энтропийного кода, которое должно быть оптимальным для кодирования или декодирования последнего кодированного или декодированного соответствующего элемента.
В варианте осуществления, значение упомянутого, по меньшей мере, одного параметра энтропийного кода ограничивается фиксированным числом значений.
Согласно другому аспекту изобретения, предусмотрен способ для кодирования или декодирования видеоданных в потоке битов, при этом упомянутый способ содержит:
- этап для определения, по меньшей мере, одного параметра энтропийного кода согласно изобретению; и
- этап записи или считывания, из упомянутого потока битов, определенного значения.
Согласно другому аспекту изобретения, предусмотрен способ для кодирования блока индексов, используемых для кодирования единицы кодирования изображения согласно палитре, причем упомянутая палитра содержит набор индексов, ассоциированных с пиксельными значениями, причем упомянутый энтропийный код используется для кодирования, по меньшей мере, части упомянутого блока индексов, причем упомянутый блок индексов кодируется посредством группы последовательных пикселов в порядке сканирования, причем каждая группа кодируется с использованием первого элемента синтаксиса, задающего режим прогнозирования, и второго элемента, задающего повторение, упомянутый энтропийный код используется для кодирования элемента синтаксиса повторений, причем упомянутая палитра переупорядочивается согласно вхождению индексов в блоке индексов, при этом элемент повторения не кодируется для групп пикселов, ассоциированных с индексом, превышающим предварительно заданное пороговое значение.
Согласно другому аспекту изобретения, предусмотрен способ для определения, по меньшей мере, одного параметра энтропийного кода, ассоциированного с индексами из блока индексов, используемого для кодирования единицы кодирования изображения согласно палитре, причем упомянутая палитра содержит набор индексов, ассоциированных с пиксельными значениями, причем упомянутый энтропийный код используется для кодирования, по меньшей мере, части упомянутого блока индексов, при этом упомянутый, по меньшей мере, один параметр определяется равным нулевому значению.
Согласно другому аспекту изобретения, предусмотрено устройство для определения, по меньшей мере, одного параметра энтропийного кода, ассоциированного с индексами из блока индексов, используемого для кодирования единицы кодирования изображения согласно палитре, причем упомянутая палитра содержит набор индексов, ассоциированных с пиксельными значениями, причем упомянутый энтропийный код используется для кодирования, по меньшей мере, части упомянутого блока индексов, при этом упомянутое устройство содержит средство для определения упомянутого, по меньшей мере, одного параметра в зависимости от, по меньшей мере, параметра, используемого в процессе кодирования упомянутого блока индексов.
Согласно другому аспекту изобретения, предусмотрен компьютерный программный продукт для программируемого устройства, причем компьютерный программный продукт содержит последовательность инструкций для реализации способа согласно изобретению, при загрузке и выполнении посредством программируемого устройства.
Согласно другому аспекту изобретения, предусмотрен энергонезависимый машиночитаемый носитель хранения данных, хранящий инструкции компьютерной программы для реализации способа согласно изобретению.
Согласно другому аспекту изобретения, предусмотрено средство хранения информации, считываемое посредством компьютера или микропроцессора, сохраняющего инструкции компьютерной программы, причем оно позволяет реализовывать способ согласно изобретению.
Согласно еще одному другому аспекту изобретения, предусмотрен способ для определения параметров энтропийного кода, ассоциированного с пикселами из блока пикселов, кодированных согласно палитровому режиму в изображении, при этом один упомянутый параметр определяется в зависимости от направления прогнозирования ассоциированных пикселов.
В варианте осуществления, упомянутый определенный параметр представляет собой длину энтропийного кода.
В варианте осуществления, упомянутый определенный параметр представляет собой параметр кода Голомба.
В дополнительном аспекте настоящего изобретения, предусмотрен способ кодирования изображения, содержащий способ для определения параметров по еще одному другому аспекту, описанному выше.
В дополнительном аспекте настоящего изобретения, предусмотрен способ декодирования изображения, содержащий способ для определения параметров по еще одному другому аспекту, описанному выше. По меньшей мере, части способов согласно изобретению могут быть машинореализованными. Соответственно настоящее изобретение может принимать форму полностью аппаратного варианта осуществления, полностью программного варианта осуществления (включающего в себя микропрограммное обеспечение, резидентное программное обеспечение, микрокод и т.д.) или варианта осуществления, комбинирующего программные и аппаратные аспекты, которые могут совместно, в общем, упоминаться в данном документе как "схема", "модуль" или "система". Кроме того, настоящее изобретение может принимать форму компьютерного программного продукта, осуществленного в любом материальном носителе, в представлении, имеющем машиноприменимый программный код, осуществленный на носителе.
Поскольку настоящее изобретение может быть реализовано в программном обеспечении, настоящее изобретение может быть осуществлено в качестве машиночитаемого кода для предоставления в программируемое устройство на любом подходящем носителе. Материальный носитель может содержать носитель хранения данных, такой как гибкий диск, CD-ROM, жесткий диск, устройство на магнитных лентах или полупроводниковое запоминающее устройство и т.п. Переходная несущая среда может включать в себя такой сигнал, как электрический сигнал, электронный сигнал, оптический сигнал, акустический сигнал, магнитный сигнал либо электромагнитный сигнал, например, микроволновый или RF-сигнал.
Далее описываются варианты осуществления изобретения, только в качестве примера и со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 иллюстрирует архитектуру HEVC-кодера;
Фиг. 2 иллюстрирует архитектуру HEVC-декодера;
Фиг. 3 иллюстрирует принцип причинно-следственной области;
Фиг. 4 иллюстрирует различные видеоформаты;
Фиг. 5 иллюстрирует разбиение блока дерева кодирования на единицы кодирования и декодирование в порядке сканирования этих единиц кодирования;
Фиг. 6 иллюстрирует двоичное кодирование Голомба элемента синтаксиса в HEVC;
Фиг. 7 иллюстрирует принцип прогнозирования в палитровом режиме на стороне декодера, исследуемый в расширении диапазона HEVC;
Фиг. 8 иллюстрирует пример единицы кодирования с ее соответствующим блоком уровней и ассоциированной палитрой;
Фиг. 9 иллюстрирует идентичный блок уровней и набор элементов синтаксиса, используемых для кодирования этого блока уровней;
Фиг. 10 иллюстрирует процесс декодирования элементов синтаксиса, связанных с палитровым режимом;
Фиг. 11 иллюстрирует процесс восстановления, чтобы компоновать блок уровней и затем предиктор блока в цветовом пространстве, который должен использоваться в качестве предиктора;
Фиг. 12 иллюстрирует примерный алгоритм определения палитры в кодере;
Фиг. 13 иллюстрирует выбор элементов Pred mode, Level и Run синтаксиса в кодере;
Фиг. 14 иллюстрирует вариант осуществления, в котором значение Order зависит от числа пикселов, остающихся в блоке уровней;
Фиг. 15 иллюстрирует вариант осуществления, в котором значение Order передается в потоке битов;
Фиг. 16 иллюстрирует вариант осуществления, связанный с декодированием порогового значения для значения уровня, используемого для того, чтобы решать не передать значение Run.
Фиг. 17 является принципиальной блок-схемой вычислительного устройства для реализации одного или более вариантов осуществления изобретения.
Фиг. 1 иллюстрирует архитектуру HEVC-кодера. В видеокодере, исходная последовательность 101 разделена на блоки пикселов 102. Режим кодирования затем оказывает влияние на каждый блок. Предусмотрено два семейства режимов кодирования, типично используемых в HEVC: режимы на основе пространственного прогнозирования, или внутренние режимы 103, и режимы на основе временного прогнозирования, или взаимные режимы на основе оценки 104 движения и компенсации 105 движения. Единица внутреннего кодирования, в общем, прогнозируется из кодированных пикселов на причинно-следственной границе посредством процесса, называемого "внутренним прогнозированием". Расширение в данный момент проектируемого HEVC, известное как HEVC RExt, добавляет дополнительный режим кодирования, а именно, режим палитрового кодирования, который конкурирует с режимами внутреннего и взаимного кодирования, чтобы кодировать блоки пикселов. Этот режим палитрового кодирования подробнее описан ниже, в частности, со ссылкой на фиг. 7-13.
Временное прогнозирование режима взаимного кодирования сначала состоит в нахождении предыдущего или будущего кадра, называемого "опорным кадром 116", опорная область которого является ближайшей к единице кодирования, на этапе 104 оценки движения. Эта опорная область составляет блок предиктора. Затем эта единица кодирования прогнозируется с использованием блока предиктора, чтобы вычислять остаток на этапе 105 компенсации движения.
В обоих случаях, пространственное и временное прогнозирование, остаток вычисляется посредством вычитания единицы кодирования из исходного блока предиктора.
При внутреннем прогнозировании, кодируется направление прогнозирования. При временном прогнозировании, кодируется, по меньшей мере, один вектор движения. Тем не менее, чтобы дополнительно уменьшать затраты с точки зрения скорости передачи битов, связанные с кодированием на основе векторов движения, вектор движения непосредственно не кодируется. Фактически, при условии, что движение является гомогенным, особенно интересно кодировать вектор движения в качестве разности между этим вектором движения и вектором движения в его окружении. Например, в стандарте кодирования H.264/AVC, векторы движения кодируются относительно среднего вектора, вычисленного между 3 блоками, расположенными выше и слева от текущего блока. Только разность, также называемая "остаточным вектором движения", вычисленная между средним вектором и вектором движения текущего блока, кодируется в потоке битов. Это обрабатывается в модуле 117 Mv-прогнозирование и кодирования. Значение каждого кодированного вектора сохраняется в поле 118 векторов движения. Соседние векторы движения, используемые для прогнозирования, извлекаются из поля 118 векторов движения.
После этого режим, оптимизирующий производительность искажения в зависимости от скорости передачи, выбирается в модуле 106. Чтобы дополнительно уменьшать избыточность, преобразование, типично DCT, применяется к остаточному блоку в модуле 107, и квантование применяется к коэффициентам в модуле 108. Квантованный блок коэффициентов затем энтропийно кодируется в модуле 109, и результат вставляется в поток 110 битов.
Кодер затем выполняет декодирование кодированного кадра для будущей оценки движения в модулях 111-116. Это представляет собой контур декодирования в кодере. Эти этапы обеспечивают возможность кодеру и декодеру иметь идентичные опорные кадры. Чтобы восстанавливать кодированный кадр, остаток обратно квантуется в модуле 111 и обратно преобразуется в модуле 112, чтобы предоставлять "восстановленный" остаток в пиксельной области. Согласно режиму кодирования (взаимному или внутреннему), этот остаток суммируется со взаимным предиктором 114 или с внутренним предиктором 113.
Далее, это первое восстановление фильтруется в модуле 115 посредством одного или нескольких видов постфильтрации. Эти постфильтры интегрированы в контур декодирования. Это означает то, что они должны применяться к восстановленному кадру в кодере и декодере, чтобы использовать идентичные опорные кадры в кодере и декодере. Цель этой постфильтрации состоит в том, чтобы удалять артефакты сжатия.
Принцип HEVC-декодера представлен на фиг. 2. Видеопоток 201 сначала энтропийно декодируется в модуле 202. Остаточные данные затем обратно квантуются в модуле 203 и обратно преобразуются в модуле 204, чтобы получать пиксельные значения. Данные режима также энтропийно декодируются, и в функции режима выполняется внутреннее декодирование или взаимное декодирование. В случае внутреннего режима, направление внутреннего прогнозирования декодируется из потока битов. Направление прогнозирования затем используется для того, чтобы находить опорную область 205. Если режим является взаимным, информация движения декодируется из потока 202 битов. Она состоит из индекса опорного кадра и остатка вектора движения. Предиктор вектора движения суммируется с остатком вектора движения, чтобы получать вектор 210 движения. Вектор движения затем используется для того, чтобы находить опорную область в опорном кадре 206. Следует отметить, что данные 211 поля векторов движения обновляются с декодированным вектором движения, с тем чтобы использоваться для прогнозирования следующих декодированных векторов движения. Это первое восстановление декодированного кадра далее подвергается постфильтрации 207 с помощью постфильтра, полностью идентичного постфильтру, используемому на стороне кодера. Вывод декодера представляет собой распакованное видео 209.
Фиг. 3 иллюстрирует причинно-следственный принцип, получающийся в результате поблочного кодирования, аналогично HEVC.
На высоком уровне, изображение разделено на единицы кодирования, которые кодируются в порядке растрового сканирования. Таким образом, при кодировании блока 3.1, все блоки области 3.3 уже кодированы и могут считаться доступными в кодере. Аналогично, при декодировании блока 3.1 в декодере, все блоки области 3.3 уже декодированы и в силу этого восстановлены и могут считаться доступными в декодере. Область 3.3 называется "причинно-следственной областью" единицы 3.1 кодирования. После того, как единица 3.1 кодирования кодируется, она должна принадлежать причинно-следственной области для следующей единицы кодирования. Эта следующая единица кодирования, а также все следующие, принадлежит области 3.4, проиллюстрированной в качестве пунктирной области, и не может использоваться для кодирования текущей единицы 3.1 кодирования. Необходимо отметить, что причинно-следственная область состоит из восстановленных блоков. Информация, используемая для того, чтобы кодировать данную единицу кодирования, не представляет собой исходные блоки изображения по причине того, что эта информация недоступна при декодировании. Единственная информация, доступная при декодировании, представляет собой восстановленную версию блоков пикселов в причинно-следственной области, а именно, декодированную версию этих блоков. По этой причине, при кодировании, ранее кодированные блоки причинно-следственной области декодируются, чтобы предоставлять эту восстановленную версию этих блоков.
Можно использовать информацию из блока 3.2 в причинно-следственной области при кодировании блока