ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[1] Настоящее изобретение относится к способу энтропийного кодирования и энтропийного декодирования видеосигналов. В частности, изобретение относится к способу и устройству для кодирования и декодирования позиции последнего ненулевого коэффициента, когда коэффициенты преобразования кодированы.
УРОВЕНЬ ТЕХНИКИ
[2] Энтропийное кодирование является процессом беспотерьного сжатия элементов синтаксиса, определенных в процессе кодирования и генерирования полезной информации необработанных байтовых последовательностей (RBSP). При энтропийном кодировании используется статистика синтаксиса и выделяется короткий бит для часто генерируемого синтаксиса и выделяется длинный бит для другого синтаксиса, после чего элементы синтаксиса выражаются в виде кратких данных.
[3] В частности, при контекстно–адаптивном двоичном арифметическом кодировании (CABAC) используется адаптивно обновляемая модель контекста на основании контекста синтаксиса и символа, ранее сгенерированного в процессе осуществления двоичного арифметического кодирования. Однако CABAC содержит большое количество операций и отличается высокой сложностью и последовательной структурой, что затрудняет параллельную операцию.
[4] Соответственно, для сжатия видеосигнала необходимо более эффективно сжимать и передавать элемент синтаксиса, и для этого необходимо повышать производительность энтропийного кодирования.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Техническая проблема
[5] Задачей настоящего изобретения является обеспечение способа кодирования области, которой принадлежит последний ненулевой коэффициент преобразования, из областей, полученных делением блока преобразования.
[6] Кроме того, задачей настоящего изобретения является обеспечение способа кодирования области, которой принадлежит последний ненулевой коэффициент преобразования, из областей, полученных путем рекурсивного деления блока преобразования.
[7] Дополнительно, задачей настоящего изобретения является обеспечение способа кодирования позиции последнего ненулевого коэффициента при адаптивном изменении способа кодирования.
[8] Дополнительно, задачей настоящего изобретения является обеспечение способа кодирования позиции последнего ненулевого коэффициента путем применения разных способов кодирования в зависимости от различных условий.
[9] Дополнительно, задачей настоящего изобретения является обеспечение способа кодирования позиции последнего ненулевого коэффициента с учетом случая, когда гарантируется присутствие позиции последнего ненулевого коэффициента в ограниченной области.
[10] Специалистам в данной области техники очевидно, что задачи, которых может достигать настоящее изобретение, не ограничиваются конкретно описанными выше, и вышеперечисленные и другие задачи, которых может достигать настоящее изобретение, можно лучше понять из нижеследующего подробного описания.
Техническое решение
[11] Согласно аспекту настоящего изобретения, способ декодирования видеосигнала может включать в себя: декодирование, из битового потока, элемента синтаксиса, указывающего последнюю ненулевую область, причем последняя ненулевая область представляет область, включающую в себя последний ненулевой коэффициент преобразования в порядке сканирования; деление текущего блока на множество подобластей; и определение последней ненулевой области текущего блока из полученных разделением подобластей на основании элемента синтаксиса.
[12] Предпочтительно, способ может дополнительно включать в себя декодирование индексной информации, указывающей позицию последнего ненулевого коэффициента преобразования в последней ненулевой области текущего блока.
[13] Предпочтительно, деление текущего блока на множество подобластей может включать в себя деление текущего блока на множество подобластей путем рекурсивного деления текущего блока на области большей глубины (lower depths) на основе заранее определенного способа деления.
[14] Предпочтительно, элемент синтаксиса может включать в себя информацию, указывающую, для каждой глубины, область, включающую в себя последний ненулевой коэффициент преобразования, из областей большей глубины, полученных разделением текущего блока.
[15] Предпочтительно, деление текущего блока на множество подобластей может включать в себя группирование ширины текущего блока в множество горизонтальных групп и группирование высоты текущего блока в множество вертикальных групп, причем текущий блок делится на множество подобластей на основании горизонтальных групп и вертикальных групп.
[16] Предпочтительно, элемент синтаксиса может включать в себя информацию о горизонтальной группе или вертикальной группе, указывающую последнюю ненулевую область из горизонтальных групп или вертикальных групп.
[17] Предпочтительно, способ может дополнительно включать в себя декодирование элемента синтаксиса, указывающего позицию последнего ненулевого коэффициента преобразования в последней ненулевой области текущего блока, причем элемент синтаксиса, указывающий последнюю ненулевую область, бинаризуется с использованием усеченного унарного кода, и элемент синтаксиса, указывающий позицию последнего ненулевого коэффициента преобразования, бинаризуется с использованием кода фиксированной длины.
[18] Предпочтительно, элемент синтаксиса, указывающий последнюю ненулевую область, может декодироваться в регулярном режиме, использующем контекст, и элемент синтаксиса, указывающий позицию последнего ненулевого коэффициента преобразования, может декодироваться в обходном режиме, который не использует контекст.
[19] Предпочтительно, способ может дополнительно включать в себя адаптивное определение набора параметров, применяемого к текущему блоку, из ранее сохраненных наборов параметров, причем набор параметров включает в себя по меньшей мере один из параметра, указывающего количество горизонтальных групп или вертикальных групп, параметра, указывающего длину кода, выделенного каждой группе, и параметра, указывающего индекс контекста, используемый для кода, выделенного каждой группе.
[20] Предпочтительно, адаптивное определение набора параметров, применяемого к текущему блоку, может включать в себя определение набора параметров, применяемого к текущему блоку на основании вероятностного распределения позиции последнего ненулевого коэффициента преобразования.
[21] Предпочтительно, текущий блок может делиться на подобласти, состоящие из конкретного количества пикселей, когда текущий блок является неквадратным блоком, причем конкретное количество определяется в зависимости от отношения ширины к высоте текущего блока.
[22] Предпочтительно, когда последний ненулевой коэффициент преобразования присутствует в конкретной области текущего блока, элемент синтаксиса может бинаризоваться с использованием усеченного унарного кода, выделенного в диапазоне конкретной области.
[23] В другом аспекте настоящего изобретения устройство для декодирования видеосигнала может включать в себя: модуль декодирования элементов синтаксиса для декодирования, из битового потока, элемента синтаксиса, указывающего последнюю ненулевую область, причем последняя ненулевая область представляет область, включающую в себя последний ненулевой коэффициент преобразования в порядке сканирования; модуль сегментирования на подобласти для деления текущего блока на множество подобластей; и модуль определения последней ненулевой области для определения последней ненулевой области текущего блока из полученных разделением подобластей на основании элемента синтаксиса.
ПОЛЕЗНЫЕ РЕЗУЛЬТАТЫ
[24]Согласно вариантам осуществления настоящего изобретения, можно сократить объем данных, необходимый для сигнализации коэффициентов преобразования путем эффективного кодирования позиционной информации последнего ненулевого коэффициента.
[25] Специалистам в данной области техники очевидно, что результаты которых может достигать настоящее изобретение, не ограничиваются конкретно описанными выше, и вышеперечисленные и другие результаты которых может достигать настоящее изобретение, можно лучше понять из нижеследующего подробного описания.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
[26] Фиг. 1 – блок–схема, демонстрирующая конфигурацию кодера для кодирования видеосигнала согласно варианту осуществления настоящего изобретения.
[27] Фиг. 2 – блок–схема, демонстрирующая конфигурацию декодера для декодирования видеосигнала согласно варианту осуществления настоящего изобретения.
[28] Фиг. 3 – блок–схема модуля энтропийного кодирования, к которому применяется контекстно–адаптивное двоичное арифметическое кодирование (CABAC), в качестве варианта осуществления, к которому применяется настоящее изобретение.
[29] Фиг. 4 – блок–схема модуля энтропийного декодирования, к которому применяется контекстно–адаптивное двоичное арифметическое кодирование (CABAC), в качестве варианта осуществления, к которому применяется настоящее изобретение.
[30] Фиг. 5 – блок–схема операций кодирования, осуществляемого согласно контекстно–адаптивному двоичному арифметическому кодированию (CABAC), в качестве варианта осуществления, к которому применяется настоящее изобретение.
[31] Фиг. 6 – блок–схема операций декодирования, осуществляемого согласно контекстно–адаптивному двоичному арифметическому кодированию (CABAC), в качестве варианта осуществления, к которому применяется настоящее изобретение.
[32] Фиг. 7 – блок–схема операций, демонстрирующая способ кодирования позиционной информации последнего ненулевого коэффициента преобразования в качестве варианта осуществления, к которому применяется настоящее изобретение.
[33] Фиг. 8 – способ кодирования позиционной информации последнего ненулевого коэффициента преобразования путем рекурсивного деления в качестве варианта осуществления, к которому применяется настоящее изобретение.
[34] Фиг. 9 демонстрирует способ кодирования позиционной информации последнего ненулевого коэффициента преобразования с использованием суперпикселя в качестве варианта осуществления, к которому применяется настоящее изобретение.
[35] Фиг. 10 – блок–схема операций, демонстрирующая способ декодирования позиционной информации последнего ненулевого коэффициента преобразования в качестве варианта осуществления, к которому применяется настоящее изобретение.
[36] Фиг. 11 демонстрирует устройство для декодирования позиционной информации последнего ненулевого коэффициента преобразования в качестве варианта осуществления, к которому применяется настоящее изобретение.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[37] В дальнейшем иллюстративные элементы и операции в соответствии с вариантами осуществления настоящего изобретения описаны со ссылкой на прилагаемые чертежи. Однако нужно отметить, что элементы и операции настоящего изобретения, описанные со ссылкой на чертежи, обеспечены как единственно возможные варианты осуществления, и техническая сущность и основная конфигурация и операция настоящего изобретения этим не ограничиваются.
[38] Кроме того, термины, используемые в этом описании изобретения, являются общими терминами, в настоящее время широко используемыми, но в особых случаях, используются термины, произвольно выбранные заявителем. В таком случае, значение соответствующего термина отчетливо раскрыто в подробном описании соответствующей части. Соответственно, следует отметить, что настоящее изобретение не следует рассматривать как основанное только на наименовании термина, используемого в соответствующем месте этого описания изобретения, и что настоящее изобретение следует рассматривать даже путем проверки значения соответствующего термина.
[39] Кроме того, термины, используемые в настоящем изобретении, являются общими терминами, выбранными для описания изобретения, но могут быть заменены другими терминами для более подходящего анализа, если присутствуют такие термины, имеющие аналогичные значения. Например, сигнал, данные, выборка, изображение, кадр и блок могут надлежащим образом заменяться и интерпретироваться в каждом процессе кодирования.
[40] Кроме того, принципы и способы, описанные в настоящем изобретении, могут применяться к другим вариантам осуществления, и комбинация вариантов осуществления также применима в рамках настоящего изобретения, хотя это в явном виде не описано в настоящем изобретении.
[41]
[42] На фиг. 1 показана блок–схема кодера для кодирования видеосигнала, в соответствии с одним вариантом осуществления настоящего изобретения.
[43] Согласно фиг. 1, кодер 100 может включать в себя модуль 110 сегментирования изображения, модуль 120 преобразования, модуль 130 квантования, модуль 140 деквантования, модуль 150 обратного преобразования, модуль 160 фильтрации, DPB (буфер декодированных изображений) 170, модуль 180 внешнего (интер-) предсказания, модуль 185 внутреннего (интра-) предсказания и модуль 190 энтропийного кодирования.
[44] Модуль 110 сегментирования изображения может делить входное изображение (или изображение, кадр), поступающее на кодер 100, на один или более блоков обработки. Например, блок обработки может быть блоком предсказания (PU) или блоком преобразования (TU).
[45] Кодер 100 может генерировать остаточный сигнал путем вычитания предсказательного сигнала, выводимого из модуля 180 внешнего предсказания или модуля 185 внутреннего предсказания из сигнала входное изображение. Генерируемый остаточный сигнал может передаваться на модуль 120 преобразования.
[46] Модуль 120 преобразования может применять метод преобразования к остаточному сигналу для создания коэффициента преобразования. Например, метод преобразования может включать в себя по меньшей мере один из дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования Карунена–Лева (KLT), преобразования на основе графа (GBT) или условно нелинейного преобразования (CNT). Когда GBT представляет информацию отношения между пикселями в виде графа, GBT означает преобразование, полученное из графа. CNT означает преобразование путем генерирования предсказательного сигнала с использованием и на основе всех ранее реконструированных пикселей. Кроме того, процесс преобразования может применяться к блоку пикселей, имеющему тот же размер, что и квадратный, или к блоку переменного размера, отличному от квадратного.
[47] Модуль 130 квантования может квантовать коэффициент преобразования и передавать квантованный коэффициент на модуль 190 энтропийного кодирования. Модуль 190 энтропийного кодирования может энтропийно кодировать квантованный сигнал и затем выводить энтропийно кодированный сигнал в качестве битового потока.
[48] Квантованный сигнал, выводимый из модуля 130 квантования, может использоваться для генерации предсказательного сигнала. Например, квантованный сигнал может подвергаться деквантованию и обратному преобразованию посредством модуля 140 деквантования и модуля 150 обратного преобразования в цикле соответственно для реконструкции остаточного сигнала. Реконструированное остаточный сигнал может суммироваться с предсказательным сигналом, выводимым из модуля 180 внешнего предсказания или модуля 185 внутреннего предсказания, для генерации реконструированного сигнала.
[49] Модуль 160 фильтрации может применять фильтрацию к реконструированному сигналу и затем выводить фильтрованный реконструированный сигнал на устройство воспроизведения или буфер 170 декодированных изображений. Фильтрованный сигнал, передаваемый в буфер 170 декодированных изображений, может использоваться как опорное изображение в модуле 180 внешнего предсказания. Таким образом, используя фильтрованное изображение в качестве опорного изображения в режиме внешнего предсказания изображения, можно повысить не только качество изображения, но и эффективность кодирования.
[50] В буфере 170 декодированных изображений может храниться фильтрованное изображение для использования в качестве опорного изображения в модуле 180 внешнего предсказания.
[51] Модуль 180 внешнего предсказания может осуществлять временное предсказание и/или пространственное предсказание со ссылкой на реконструированное изображение для удаления временной избыточности и/или пространственной избыточности. В этом случае, для снижения объема информации о движении, передаваемой в режиме внешнего предсказания, информацию о движении можно предсказать на основании корреляции информации о движении между соседним блоком и текущим блоком.
[52] Модуль 185 внутреннего предсказания может предсказывать текущий блок на основании выборок вблизи блока, подлежащего кодированию на данный момент. Модуль 185 внутреннего предсказания может осуществлять следующую процедуру для осуществления внутреннего предсказания. Сначала модуль 185 внутреннего предсказания может подготавливать опорные выборки, необходимые для генерации предсказательного сигнала. Затем модуль 185 внутреннего предсказания может генерировать предсказательный сигнал с использованием подготовленных опорных выборок. После этого, модуль 185 внутреннего предсказания может кодировать режим предсказания. В это время опорные выборки могут подготавливаться посредством заполнение опорных выборок и/или фильтрация опорных выборок. Поскольку опорные выборки претерпевают процесс предсказания и реконструкции, возможно ошибка квантования. Поэтому, для снижения частоты таких ошибок может осуществляться процесс фильтрации опорных выборок для каждого режима предсказания, используемого для внутреннего предсказания.
[53] Предсказательный сигнал, генерируемый модулем 180 внешнего предсказания или модулем 185 внутреннего предсказания, может использоваться для генерации реконструированного сигнала или для генерации остаточного сигнала.
[54]
[55] На фиг. 2 показана блок–схема декодера для декодирования видеосигнала, в соответствии с одним вариантом осуществления настоящего изобретения.
[56] Согласно фиг. 2, декодер 200 может включать в себя модуль 210 энтропийного декодирования, модуль 220 деквантования, модуль 230 обратного преобразования, модуль 240 фильтрации, буфер 250 декодированных изображений (DPB), модуль 260 внешнего предсказания и модуль 265 внутреннего предсказания.
[57] Реконструированный видеосигнал, выводимый из декодера 200, может воспроизводиться с использованием устройства воспроизведения.
[58] Декодер 200 может принимать сигнал, выводимый из кодера, как показано на фиг. 1. Принятый сигнал может энтропийно декодироваться модулем 210 энтропийного декодирования.
[59] Модуль 220 деквантования может получать коэффициент преобразования из энтропийно декодированного сигнала с использованием информации о размере шага квантования.
[60] Модуль 230 обратного преобразования может осуществлять обратное преобразование коэффициента преобразования для получения остаточного сигнала.
[61] Реконструированный сигнал может генерироваться суммированием полученного остаточного сигнала с предсказательным сигналом, выводимым из модуля 260 внешнего предсказания или модуля 265 внутреннего предсказания.
[62] Модуль 240 фильтрации может применять фильтрацию к реконструированному сигналу и может выводить фильтрованный реконструированный сигнал на устройство воспроизведения или в буфер 250 декодированных изображений. Фильтрованный сигнал, передаваемый в буфер 250 декодированных изображений может использоваться как опорное изображение в модуле 260 внешнего предсказания.
[63] Здесь, подробные описания модуля 160 фильтрации, модуля 180 внешнего предсказания и модуля 185 внутреннего предсказания кодера 100 в равной степени применимы к модулю 240 фильтрации, модулю 260 внешнего предсказания и модулю 265 внутреннего предсказания декодера 200 соответственно.
[64]
[65] На фиг. 3 показана блок–схема модуля энтропийного кодирования, к которому применяется контекстно–адаптивное двоичное арифметическое кодирование (CABAC), в качестве варианта осуществления, к которому применяется настоящее изобретение.
[66] Модуль 300 энтропийного кодирования, к которому применяется настоящее изобретение, включает в себя модуль 310 бинаризации, модуль 320 моделирования контекста, модуль 330 двоичного арифметического кодирования и память 360, и модуль 330 двоичного арифметического кодирования включает в себя модуль 340 регулярного двоичного кодирования и модуль 350 обходного двоичного кодирования. Здесь модуль 340 регулярного двоичного кодирования и модуль 350 обходного двоичного кодирования могут именоваться машиной регулярное кодирование и машиной обходного кодирования, соответственно.
[67] Модуль 310 бинаризации может принимать последовательность символов данных и осуществлять их бинаризацию для вывода строки двоичных символов (бинов), включающей в себя бинаризованное значение 0 или 1. Модуль 310 бинаризации может отображать элементы синтаксиса в двоичные символы. Для бинаризации могут использоваться различные процессы бинаризации, например, унарный (U), усеченный унарный (TU), Exp–Голомба k–го порядка (EGk), процессы фиксированной длины и пр. Процесс бинаризация можно выбирать на основании типа элемента синтаксиса.
[68] Строка выходных двоичных символов передается на модуль 320 моделирования контекста.
[69] Модуль 320 моделирования контекста выбирает вероятностную информацию, необходимую для кодирования текущего блока, из памяти и передает вероятностную информацию на модуль 330 двоичного арифметического кодирования. Например, модуль 320 моделирования контекста может выбирать контекстную информацию из памяти 360 на основании элемента синтаксиса, подлежащего кодированию, и выбирать вероятностную информацию, необходимую для кодирования текущего элемента синтаксиса посредством индекса binIdx бина. Здесь под контекстом подразумевается информация о вероятности генерации символа, и под моделированием контекста подразумевается процесс оценивания вероятности, необходимой для двоичного арифметического кодирования следующего бина из информации о ранее закодированных бинах. Кроме того, контекст может состоять из состояния, указывающего конкретное значение вероятности и наиболее вероятного символа (MPS).
[70] Модуль 320 моделирования контекста может обеспечивать правильную оценку вероятности, необходимую для достижения высокой эффективности кодирования. Соответственно, для разных двоичных символов могут использоваться разные модели контекста, и вероятность таких моделей контекста может обновляться на основании ранее закодированных двоичных значений символов.
[71] Двоичные символы, имеющие аналогичные распределения, могут совместно использовать одну и ту же модель контекста. Для оценки вероятности модели контекста для каждого двоичного символа может использоваться по меньшей мере одна из информации синтаксиса бина, индекса binIdx бина, указывающего позицию бина в строке бинов, вероятности включения бина в блок, соседствующий с блоком, содержащим бин, и декодированного значения конкретного элемента синтаксиса соседнего блока.
[72] Модуль 330 двоичного арифметического кодирования включает в себя модуль 340 регулярного двоичного кодирования и модуль 350 обходного двоичного кодирования, и осуществляет энтропийное кодирование на выходной строке и выводит биты сжатых данных.
[73] Модуль 340 регулярного двоичного кодирования осуществляет арифметическое кодирование на основании рекурсивного деления интервала.
[74] Сначала интервал (или секция или диапазон) с начальным значением от 0 до 1 делится на два подинтервала на основании вероятности двоичного символа. Кодированные биты обеспечивают смещение, с которым можно выбирать один из интервалов, указывающих 0 и 1, в процессе непрерывного декодирования двоичных значений символов при преобразовании в двоично–десятичный код.
[75] После двоичного символа декодированного режима, вышеупомянутый интервал может обновляться таким образом, что выбранные подинтервалы становятся одинаковыми, и процесс деления интервала повторяется. Вышеупомянутые интервал и смещение имеют ограниченную битовую точность и, таким образом, может потребоваться перенормировка для поддержания точности всякий раз, когда интервал уменьшается ниже конкретного значения (т.е. для предотвращения чрезмерного уменьшения и неправильного представления значения или его обнуления и утраты). Перенормировка может происходить после кодирования или декодирования каждого двоичного символа.
[76] Модуль 350 обходного двоичного кодирования осуществляет кодирование без модели контекста и осуществляет кодирование путем фиксации вероятности кодированного на данный момент бина равной 0,5. Этим можно пользоваться, когда трудно определить вероятность синтаксиса или когда требуется кодирование с высокой скоростью.
[77]
[78] На фиг. 4 показана блок–схема модуля энтропийного декодирования, к которому применяется контекстно–адаптивное двоичное арифметическое кодирование (CABAC), в качестве варианта осуществления, к которому применяется настоящее изобретение.
[79] Модуль 400 энтропийного декодирования включает в себя модуль 410 моделирования контекста, модуль 420 двоичного арифметического декодирования, память 450 и модуль 460 обратной бинаризации, и в себя модуль 430 регулярного двоичного декодирования и модуль 440 обходного двоичного декодирования.
[80] Модуль 400 энтропийного декодирования принимает битовый поток и проверяет, применяется ли обходной режим к текущему элементу синтаксиса. Здесь обходной режим означает фиксацию вероятности кодированного на данный момент бина равной 0,5 и осуществление кодирования без использования модели контекста. Когда обходной режим не применяется, модуль 430 регулярного двоичного декодирования осуществляет двоичное арифметическое декодирование согласно регулярному режиму.
[81] Здесь модуль 410 моделирования контекста выбирает вероятностную информацию, необходимую для декодирования текущего битового потока из памяти 450, и передает вероятностную информацию на модуль 430 регулярного двоичного декодирования.
[82] С другой стороны, когда обходной режим применяется, модуль 440 обходного двоичного декодирования осуществляет двоичное арифметическое декодирование согласно обходному режиму.
[83] Модуль 460 обратной бинаризации принимает декодированный бин в двоичной форме от модуля 420 двоичного арифметического декодирования, преобразует бин в значение элемента синтаксиса в форме целого числа и выводит значение элемента синтаксиса. Когда бин или строка бинов в двоичной форме является элементом синтаксиса, отображаемым в значение элемента синтаксиса, модуль 460 обратной бинаризации может выводить бин в исходной двоичной форме.
[84]
[85] На фиг. 5 показана блок–схема операций кодирования, осуществляемого согласно контекстно–адаптивному двоичному арифметическому кодированию (CABAC), в качестве варианта осуществления, к которому применяется настоящее изобретение.
[86] Кодер может осуществлять (этап S510) бинаризацию элемента синтаксиса.
[87] Кодер может проверять (этап S520), осуществлять ли двоичное арифметическое кодирование согласно регулярному режиму или осуществлять двоичное арифметическое кодирование согласно обходному режиму.
[88] В регулярном режиме, кодер может выбирать (S530) модель контекста и осуществлять (S540) двоичное арифметическое кодирование на основании модели контекста. Кроме того, кодер может обновлять (S550) модель контекста и снова выбирать подходящую модель контекста на основании модели контекста, обновленной на этапе S530.
[89] В обходном режиме кодер может осуществлять (S560) двоичное арифметическое кодирование на основании вероятности 0,5.
[90]
[91] На фиг. 6 показана блок–схема операций декодирования, осуществляемого согласно контекстно–адаптивному двоичному арифметическому кодированию (CABAC), в качестве варианта осуществления, к которому применяется настоящее изобретение.
[92] Сначала декодер может принимать (этап S610) битовый поток.
[93] Декодер может проверять (S620), применяется ли к текущему элементу синтаксиса регулярный режим или обходной режим применяется. Здесь, применяется ли обходной режим, можно определять заранее в зависимости от типа синтаксиса.
[94] Дополнительно, символы, к которым применяется регулярный режим, и символы, к которым применяется обходной режим, могут объединяться с образованием элемента синтаксиса. В этом случае, декодер может проверять, применяется ли обходной режим к символам текущего элемента синтаксиса.
[95] Когда проверка на этапе S620 дает применение регулярного режима, декодер может выбирать (S630) модель контекста и осуществлять (S640) двоичное арифметическое декодирование на основании модели контекста. Кроме того, декодер может обновлять (S650) модель контекста и снова выбирать подходящую модель контекста на основании модели контекста, обновленной на этапе S630.
[96] Когда обходной режим применяется в результате проверки на этапе S620, декодер может осуществлять (S660) двоичное арифметическое декодирование на основании вероятности 0,5.
[97] Декодер может осуществлять (S670) обратную бинаризацию на строке декодированных бинов. Например, декодер может принимать декодированный бин в двоичной форме, преобразовывать декодированный бин в значение элемента синтаксиса в форме целого числа и выводить значение элемента синтаксиса.
[98]
[99] Настоящее изобретение предусматривает способ кодирования области, которой принадлежит последний ненулевой коэффициент преобразования, из областей, полученных делением блока преобразования.
[100] Кроме того, настоящее изобретение предусматривает способ кодирования области, которой принадлежит последний ненулевой коэффициент преобразования, из областей, полученных путем рекурсивного деления блока преобразования.
[101] Дополнительно, настоящее изобретение предусматривает способ кодирования позиции последнего ненулевого коэффициента при адаптивном изменении способы кодирования.
[102] Дополнительно, настоящее изобретение предусматривает способ кодирования позиции последнего ненулевого коэффициента путем применения разных способов кодирования в зависимости от различных условий.
[103] Дополнительно, настоящее изобретение предусматривает способ кодирования позиции последнего ненулевого коэффициента с использованием дополнительного контекста в зависимости от горизонтальной и вертикальной координат последнего ненулевого коэффициента или размера и формы блока преобразования.
[104] Дополнительно, настоящее изобретение предусматривает способ кодирования группы, которой принадлежит последний ненулевой коэффициент, из сгруппированных групп коэффициентов преобразования, и кодирования смещения в соответствующей группе.
[105] Дополнительно, настоящее изобретение предусматривает способ кодирования позиции последнего ненулевого коэффициента с учетом случая, когда гарантируется присутствие позиции последнего ненулевого коэффициента в ограниченной области.
[106] Согласно способам, обеспеченным настоящим изобретением, можно сократить объем данных, необходимый для сигнализации коэффициента преобразования путем эффективного кодирования позиционной информации последнего ненулевого коэффициента.
[107]
[108] Вариант осуществления 1
[109] В традиционном стандарте кодирования видеосигнала (например, HEVC или JVET), кодер/декодер сначала кодирует/декодирует позиционную информацию последнего ненулевого коэффициента преобразования для кодирования/декодирования остаточного сигнала. Здесь кодер/декодер кодирует/декодирует позицию (т.е. горизонтальную и вертикальную координаты) последнего ненулевого коэффициента преобразования в блоке преобразования. Согласно традиционным способам, с увеличением размера блока преобразования, большее количество битов может потребоваться для сигнализации значения координаты последнего ненулевого коэффициента преобразования в блоке преобразования, и, таким образом, эффективность кодирования может снижаться.
[110] Соответственно, настоящее изобретение предусматривает способ кодирования области, которой принадлежит последний ненулевой коэффициент преобразования, из областей, полученных разделением блока преобразования (или блока кодирования) для решения вышеупомянутой проблемы и эффективного кодирования позиционной информации о последнем ненулевом коэффициенте преобразования. Здесь последний ненулевой коэффициент преобразования означает ненулевой коэффициент (т.е. значимый коэффициент), расположенный в конце в порядке сканирования в текущем блоке преобразования (или блоке кодирования) и может именоваться последним ненулевым коэффициентом, последним значимым коэффициентом и т.п.
[111] На фиг. 7 показана блок–схема операций, демонстрирующая способ кодирования позиционной информации последнего ненулевого коэффициента преобразования в качестве варианта осуществления, к которому применяется настоящее изобретение.
[112] Согласно фиг. 7, хотя способ, описанный в настоящем варианте осуществления, можно одинаково эффективно применять к кодеру и декодеру, для удобства приведено описание кодера.
[113] Кодер получает коэффициент преобразования текущего блока (S701). Кодер может генерировать предсказанный блок путем осуществления внешнего или внутреннего предсказания. Кодер может генерировать остаточный блок текущего блока путем вычитания предсказанного блока из исходного изображения. Кодер может генерировать коэффициент преобразования путем преобразования остаточного блока и генерировать квантованный коэффициент преобразования путем применения квантования к коэффициенту преобразования.
[114] Кодер делит (S702) текущий блок на множество подобластей (или субобластей (lower regions)). Например, кодер может делить текущий блок на N подобластей. В этом случае, подобласти могут быть исключительно полученными разделением областями или полученными разделением областями некоторые или все из которых перекрываются. Текущий блок (или текущий блок обработки) может представлять собой модуль кодирования, блок кодирования, модуль преобразования, блок преобразования, предсказанный модуль, предсказанный блок и т.п.
[115] Кодер кодирует последнюю ненулевую область текущего блока из полученных разделением подобластей (S703). Здесь последняя ненулевая область означает область, включающую в себя последний ненулевой коэффициент. Например, когда текущий блок делится на N подобластей, кодер может кодировать информацию индекса (или элемент синтаксиса), указывающую подобласть, включающую в себя последний ненулевой коэффициент преобразования из N подобластей.
[116] Дополнительно, этапы S702 и S703 могут рекурсивно (повторно) осуществляться. Другими словами, кодер может рекурсивно (или повторно) делить область, которой принадлежит последний ненулевой коэффициент преобразования, на области большей глубины для представления области в качестве большего числа полученных подразделением областей. Кодер может выбирать область, включающую в себя последний ненулевой коэффициент, из N подобластей и делить область, включающую в себя последний ненулевой коэффициент, на M субобластей (или областей большей глубины). Рекурсивное деление может осуществляться K раз и может осуществляться, пока последняя ненулевая область не достигнет блока пикселей. Это будет подробно описано ниже.
[117] Кодер/декодер может подразделять последнюю ненулевую область на блок пикселей или нет. Когда последняя ненулевая область не подразделяется на блоки пикселей, кодер/декодер может кодировать/декодировать коэффициенты в окончательно определенной последней ненулевой области (т.е. последней ненулевой области, имеющей самую большую глубину). Например, кодер/декодер может кодировать/декодировать последнюю ненулевую область и затем кодировать/декодировать значимую карту (или карту значимых коэффициентов), указывающую, имеет ли каждый коэффициент в окончательно определенной последней ненулевой области ненулевое значение. Таким образом, кодер/декодер может кодировать/декодировать наличие или отсутствие ненулевого коэффициента путем кодирования информации, указывающей окончательную субобласть, в которой присутствует последний ненулевой коэффициент, и передачи значимых флагов в отношении позиций всех коэффициентов в соответствующей области.
[118] Согласно варианту осуществления, способ кодирования позиционной информации последнего ненулевого коэффициента путем рекурсивного деления (например, определения значений M, N и K) может определяться в зависимости от формы или размера текущего блока (например, блока кодирования или блока преобразования). Например, форма может представлять квадратный блок или неквадратный блок, и размер может представлять ширину и высоту текущего блока или количество пикселей (ширина*высота) в текущем блоке. Способ кодирования последней ненулевой области (например, определения значений M, N и K) может задаваться заранее на кодере/декодере или сигнализироваться из кодера на декодер в единицах изображений или слайсов, блока кодирования или блока преобразования.
[119] Способ кодирования последней ненулевой области, обеспеченный настоящим изобретением, может использоваться совместно с традиционным способом для передачи позиционной информации для каждого пикселя (т.е. горизонтальной и вертикальной координат в блоке преобразования последнего ненулевого коэффициента преобразования).
[120] Далее будет описан способ кодирования позиционной информации последнего ненулевого коэффициента путем рекурсивного деления.
[121]
[122] Вариант осуществления 2
[123] Согласно варианту осуществления настоящего изобретения, кодер/декодер может делить область, в которой присутствует последний ненулевой коэффициент, на области большей глубины и затем кодировать область, включающую в себя последний ненулевой коэффициент (т.е. последнюю ненулевую область) из областей большей глубины. Здесь большая глубина указывает количество разделений текущего блока (или текущего блока преобразования), и глубина может увеличиваться на 1 при всяком делении текущего блока глубиной 0. Кодер/декодер может кодировать информацию, указывающую последнюю ненулевую область из областей большей глубины. Последняя ненулевая область может дополнительно иерархически делиться на области большей глубины.
[124] Если обозначить набор, включающий в себя все пиксели (или позиции пикселей) в текущем блоке, как P, P может делиться на P(k), что представлено математическим выражением 1.
[125] Математическое выражение 1
, ,
[126] Согласно математическому выражению 1, P может делиться на P(k) и глубина P(k) может увеличиваться на 1. Глубина P(k) больше глубины P на 1. Другими словами, глубина P, включающего в себя все пиксели в текущем блоке, равна 0, и глубина P(k) равна 1.
[127] При рекурсивном делении текущего блока P(k) может дополнительно делиться на субобласти большей глубины, и субобласти могут дополнительно делиться на области большей глубины (области, имеющие глубину, увеличенную на 1).
[128] Область, имеющую глубину d, можно представить математическим выражением 2.
[129] Математическое выражение 2
[130] Область, представленная математическим выражением 2, принадлежит i1–ой области (или области, идентифицированной посредством i1), когда текущий блок, имеющий глубину 0 (i0–я область, имеющая глубину 0) делится на области, имеющие глубину 1. Область, представленная математическим выражением 2, указывает id–ю область (или область, идентифицированную посредством id), когда текущий блок окончательно разделен на области, имеющие глубину d. Здесь, текущий блок, имеющий глубину 0, является полной областью, и значение id может быть равно 1.
[131] Вышеупомянутое рекурсивное деление можно представить математическим выражением 3.
[132] Математическое выражение 3
,
,
[133] Согласно математическому выражению 3, предполагается случай исключительного разделения на субобласти. Здесь, Nd(i0, i1, …, id) представляет количество субобластей (т.е. областей глубиной d+1), полученных разделением на глубине d.
[134] Применяя систему обозначений математических выражений 2 и 3, деление текущего блока можно представить математическим выражением 4.
[135] Математическое выражение 4
[136] Согласно математическому выражению 4, текущий блок, имеющий глубину 0, может делиться на N областей, имеющих глубину 1.
[137] Когда Pd(i0, i1, …, id) не является краевой областью, кодер/декодер может кодировать код, который может различать Pd(i0, i1, …, 1), в Pd(i0, i1, …, Nd–1(i0, i1, …, id–1)). Здесь под краевой областью подразумевается область, не подлежащая дальнейшему делению ни рекурсивным, ни иерархическим образом. Таким образом, кодер/декодер может кодировать область, включающую в себя последний ненулевой коэффициент преобразования для каждой глубины из областей большей глубины, полученных разделением текущего блока.
[138] Для кодирования полученных рекурсивным разделением областей большей глубины можно применять различные способы энтропийного кодирования. Например, кодер/декодер может осуществлять бинаризацию, выделяя двоичный код каждой области, и применять двоичное арифметическое кодирование к двоичному коду. Дополнительно, когда первая область и вторая область, полученные разделением текущего блока, делятся на множество субобластей, способ кодирования для идентификации субобластей первой области могут отличаться от способа кодирования для идентификации субобластей второй области. Например, кодер/декодер может применять двоичное арифметическое кодирование к коду для различения субобластей первой области и применять недвоичное арифметическое кодирование к коду для различения субобластей второй области.
[139] Если код для различения Pd(i0, i1, …, id), которая не является краевой областью, представляет собой sd(i0, i1, …, id), и код, указывающий позицию q последнего ненулевого коэффициента преобразования в области A, которая является краевой областью, представляет собой s(A, q), код для кодирования q можно представить математическим выражением 5.
[140] Математическое выражение 5
[141] Согласно математическому выражению 5, текущий блок может делиться на области глубиной dq, где q может принадлежать области глубиной d. Здесь, оператор Π конкатенирует коды. q принадлежит областям, идентифицированными индексами i0, i1, … , области на каждой глубине.
[142] На фиг. 8 показан способ кодирования позиционной информации последнего ненулевого коэффициента преобразования путем рекурсивного деления в качестве варианта осуществления, к которому применяется настоящее изобретение.
[143] Согласно фиг. 8 текущим блоком является блок преобразования размерами 4×4. Согласно математическому выражению 4, набор P можно представить математическим выражением 6.
[144] Математическое выражение 6
[145] P0(1) может делиться на 3 области, имеющие глубину 1 что представлено математическим выражением 7 и каждой области, полученной разделением, может быть выделен код.
[146] Математическое выражение 7
,
,
,
[147] Кроме того, P1(1,1) и P1(1,3) могут соответственно делиться на 2 области глубиной 2 и 3 области глубиной 2, что представлено математическим выражением 8, и каждой области, полученной разделением, может быть выделен код.
[148] Математическое выражение 8
,
,
,
,
,
[149] Здесь, области P1(1,2), P2(1,1,1), P2(1,1,2), P2(1,1,3), P2(1,3,1) и P2(1,3,2) могут соответствовать краевым областям. Коды для позиций коэффициентов, принадлежащих краевым областям, могут выделяться согласно математическому выражению 9.
[150] Математическое выражение 9
, , ,
,
, ,
, ,
, ,
[151] Здесь область P2(1,1,1) является областью, разделенной до блока пикселей, и код для идентификации коэффициента в конкретной позиции в соответствующей области может не выделяться.
[152] Если коды выделяются, как представлено математическими выражениями 7–9, и последний ненулевой коэффициент преобразования располагается в q34, кодер/декодер может кодировать позиционную информацию последнего ненулевого коэффициента преобразования, что представлено математическим выражением 10.
[153] Математическое выражение 10
[154] В математическом выражении 10 оператор ∙ конкатенирует коды.
[155] Способ, предложенный в настоящем варианте осуществления, может применяться независимо от размера или формы блока преобразования. Таким образом, способ может применяться не только к случаю, когда текущий блок является квадратным блоком, но и к случаю, когда текущий блок является неквадратным блоком или блоком произвольной формы.
[156]
[157] Вариант осуществления 3
[158] Согласно варианту осуществления настоящего изобретения, кодер/декодер может делить позиционную информацию последнего ненулевого коэффициента преобразования на префикс и суффикс и осуществлять их бинаризацию. Например, кодер/декодер может представлять префикс как усеченный унарный код и представлять суффикс как код фиксированной длины.
[159] Кодер/декодер может делить каждую из горизонтальной координаты (т.е. координаты x) и вертикальной координаты (т.е. координаты y) последнего ненулевого коэффициента преобразования на префикс и суффикс и осуществлять их бинаризацию. Если префикс представлен как усеченный унарный код, и суффикс представлен как код фиксированной длины, кодер/декодер может группировать значения координат и выделять двоичный код каждой группе как показано в таблице 1.
[160] Таблица 1
[161] В случае, когда предполагается, что значения координат в текущем блоке делятся на N групп, коды в таблице 1 можно представить набором параметров Bk, что представлено математическим выражением 11.
[162] Математическое выражение 11
[163] Здесь Pi обозначает длину кода префикса для группы i. Si обозначает длину кода суффикса для группы i. Pi может определяться согласно математическому выражению 12.
[164] Математическое выражение 12
[165] Кроме того, Si может удовлетворять условию Si≥0.
[166] Способ регулярного кодирования с использованием контекста для каждого бина (т.е. двоичного символа) может применяться как к коду префикса, так и к коду суффикса. Таким образом, в математическом выражении 11, Cp(i, j) указывает индекс контекста для j–го бина (т.е. двоичного символа) в префиксе для группы i. При этом могут выполняться условия 1≤i≤N, 1≤j≤Pi и Cp(i, j)≥0. Если количество контекстов равно NC, и индекс контекста начинается с 1, кодер/декодер может быть настроен обращаться к обходному кодированию, когда значение индекса контекста равно 0.
[167] Кроме того, в математическом выражении 11, Cs(i, j) указывает индекс контекста для j–го бина в суффиксе для группы i. При этом могут выполняться условия 1≤i≤N, 1≤j≤Si и Cs(i, j)≥0. Если количество контекстов равно NC, и индекс контекста начинается с 1, кодер/декодер может быть настроен обращаться к обходному кодированию, когда значение индекса контекста равно 0.
[168] Все наборы параметров, поддерживаемые на кодере/декодере, можно представить как набор , что представлено математическим выражением 13 на основании математическое выражение 11.
[169] Математическое выражение 13
[170] Согласно математическому выражению 13, кодер/декодер может поддерживать наборы параметров для кодирования позиции последнего ненулевого коэффициента преобразования. Вышеупомянутый набор параметров может именоваться параметром кодирования, набором параметров кодирования, способом кодирования и т.п.
[171] Согласно варианту осуществления настоящего изобретения, кодер/декодер может адаптивно определять конкретный набор параметров из наборов параметров для кодирования позиции последнего ненулевого коэффициента преобразования и кодировать последний ненулевой коэффициент преобразования с использованием определенного набора параметров.
[172] Для адаптивного определения конкретного набора параметров из множества наборов параметров, кодер/декодер может заранее сохранять (или включать в себя) различные наборы параметров. Далее будет приведен пример набора параметров.
[173] В случае, когда предполагается, что ширина или высота текущего блока равна 128, кодер/декодер может выделять код позиции каждого пикселя (или коэффициента) в текущем блоке, как показано в таблице 2.
[174] Таблица 2
[175] Согласно таблице 2, кодер/декодер может группировать ширину или высоту текущего блока в горизонтальные группы или вертикальные группы. Кроме того, кодер/декодер может отображать префикс, представленный как усеченный унарный код, в каждую горизонтальную группу (или вертикальную группу). Кодер/декодер может отображать суффикс, представленный как код фиксированной длины, в позицию коэффициента в горизонтальных группах (или вертикальных группах).
[176] В этом случае кодер/декодер может кодировать префикс в регулярном режиме, использующем контекст, и кодировать суффикс в обходном режиме, использующем контекст.
[177] В общем случае, позиция последнего ненулевого коэффициента блока преобразования в изображении может иметь тенденцию. Соответственно, такую тенденцию (т.е. вероятность генерации бина) можно эффективно отражать путем применения регулярного режима к кодированию префикса, и упрощение и распараллеливание реализации можно повысить путем применения обходного режима к кодированию суффикса.
[178] Кодер/декодер может отображать коды таким образом, чтобы длина суффикса была больше 0 из относительно низкой группы и чтобы длина суффикса увеличивалась быстрее для следующих групп, как показано в таблице 3. Можно выразить состояние, в котором последний ненулевой коэффициент преобразования часто располагался в высокочастотной области неквадратного блок преобразования, и повысить эффективность кодирования, конфигурируя коды, как описано выше.
[179] Таблица 3
(регулярный режим)
(обходной режим)
[180] Дополнительно, кодер/декодер может отображать коды таким образом, чтобы длина суффикса была больше 0 из относительно высокой группы, как показано в таблице 4. Конфигурируя коды таким образом, можно выразить состояние, в котором последний ненулевой коэффициент преобразования часто располагается в низкочастотной области, и вероятность того, что последний ненулевой коэффициент преобразования располагается в относительно высокочастотной области, резко уменьшается.
[181] Таблица 4
(регулярный режим)
(обходной режим)
[182] Кроме того, кодер/декодер может конфигурировать коды таким образом, что поддерживается точка, в которой длина суффикса оказывается больше 0, и длина суффикса начинается с 2, как показано в таблице 5.
[183] Таблица 5
(регулярный режим)
(обходной режим)
[184] Дополнительно, кодер/декодер может применять регулярное кодирование вместо обходного кодирования к первому бину суффикса, как показано в таблице 6.
[185] Таблица 6
(регулярный режим)
(R: регулярный режим, X: обходной режим)
[186]
[187] Предполагается случай, когда наборы параметров (или способы кодирования), представленные в таблице 1 и математических выражениях 12 и 13, заранее установлены (или сохранены) на кодере/декодере. В этом случае кодер/декодер может кодировать последний ненулевой коэффициент преобразования с использованием измененных наборов параметров при адаптивном изменении наборов параметров.
[188] Согласно варианту осуществления, кодер/декодер может определять набор параметров текущего блока на основании вероятностного распределения последнего ненулевого коэффициента преобразования.
[189] Например, когда диапазон значений координат в текущем блоке составляет от 1 до W, кодер/декодер может делить диапазон от 1 до W на M секций. Кодер/декодер может накапливать значение счетчика секции, в которой располагается последний ненулевой коэффициент всякий раз, когда значение координаты последнего ненулевого коэффициента кодируется. Кодер/декодер может определять набор параметров (или способ кодирования) секции, имеющей наивысшее накопленное значение счетчика, как набор параметров текущего блока. Альтернативно, кодер/декодер может вычислять (накапливать) вероятности того, что последний ненулевой коэффициент преобразования располагается в M секциях, и затем определять набор параметров секции, имеющей наивысшее значение вероятности. Кодер/декодер может кодировать позицию последнего ненулевого коэффициента преобразования текущего блока с использованием определенного набора параметров.
[190] При этом кодер/декодер может отражать статистику для всех ранее закодированных блоков преобразования (т.е. TU), отражать только статистику в кодированном на данный момент CTU (или максимальном блоке кодирования) или только статистику для CTU в конкретных позициях (или конкретного количества CTU) из соседних CTU при вычислении вероятности для каждой секции.
[191] Например, кодер/декодер может выбирать секцию, в которой накопленное значение вероятности или накопленное значение счетчика больше конкретного порога из M секций и определять набор параметров выбранной секции как набор параметров для кодирования последнего ненулевого коэффициента преобразования текущего блока.
[192] Кроме того, при выборе стольких конкретных секций, сколько заранее задано в процессе кодирования, кодирование, например, может осуществляться с использованием наборов параметров для соответствующих секций. Здесь, заранее заданное количество может устанавливаться по–разному для секций.
[193] Кроме того, кодер/декодер может определять набор параметров текущего блока способом конечного автомата, который определяет набор параметров в качестве состояния. Например, если текущим состоянием является состояние, соответствующее секции k из M секций, кодер/декодер может устанавливать переменную счетчика в низкочастотном направлении и переменную счетчика в высокочастотном направлении для каждого состояния. Кодер/декодер может увеличивать значение счетчика в низкочастотном направлении, когда кодируется сторона более низкой частоты (т.е. секция с меньшими координатами), чем текущая секция, и увеличивать значение счетчика в высокочастотном направлении, когда кодируется сторона более высокой частоты (т.е. секция с большими координатами).
[194] Когда значение счетчика в низкочастотном направлении или высокочастотном направлении достигает конкретного порогового значения, кодер/декодер может сдвигать текущее состояние в низкочастотном направлении или высокочастотном направлении согласно в сторону увеличения значения счетчика. В случае кодирования текущей секции, могут снижаться как значение счетчика в низкочастотном направлении, так и значение счетчика в высокочастотном направлении. Альтернативно, в случае кодирования секции в низкочастотном направлении, кодер/декодер может увеличивать соответствующее значение счетчика и, одновременно, уменьшать значение счетчика в высокочастотном направлении (или низкочастотном направлении).
[195] В другом варианте осуществления, вышеописанные наборы параметров (или способы кодирования), представленные таблицей 1 и математическими выражениями 12 и 13, могут применяться по–разному в зависимости от различных условий (например, параметра квантования, размера блока, формы блока и режима предсказания).
[196] Например, кодер/декодер может применять разные наборы параметров в зависимости от размеров блоков.
[197] Кроме того, кодер/декодер может применять разные наборы параметров, например, в зависимости от форм блоков. Например, кодер/декодер может применять разные наборы параметров для квадрата, прямоугольника более длинного в ширину, и прямоугольника более длинного в высоту. Дополнительно, кодер/декодер может применять разные наборы параметров для случаев, когда отношения ширины к высоте неквадратных блоков равны 2:1, 4:1, 8:1, 1:2, 1:4 и 1:8. Дополнительно, кодер/декодер может применять разные наборы параметров в зависимости от размеров блоков (например, ширины и высоты 8×4, 16×8 и 32×16) для неквадратного блока, в котором отношение ширины к высоте равно 2:1.
[198] Дополнительно, кодер/декодер может применять разные наборы параметров для ширины и высоты текущего блока в случае неквадратного блока. Например, в случае неквадратных блоков 8×4, 16×8 и 32×16, кодер/декодер может применять один и тот же набор параметров к более длинным сторонам 16, 16 и 32 и применять один и тот же набор параметров к более коротким сторонам 8, 4 и 8.
[199] Дополнительно, кодер/декодер может применять разные наборы параметров только для более длинных сторон или более коротких сторон из ширин или высот неквадратных блоков. Например, в случае блоков 8×16, 16×4 и 32×8, кодер/декодер может применять отдельный набор параметров к более длинным сторонам 16, 16 и 32.
[200] Произвольные способы кодирования, отличные от способа кодирования, предложенного в таблице 1 и математические выражениях 12 и 13, могут применяться как вышеописанный способ для адаптивного изменения способов кодирования и способ для применения разных способов кодирования в зависимости от различных условий. Кроме того, способ для адаптивного изменения способов кодирования и способ для применения разных способов кодирования в зависимости от различных условий могут применяться независимо или применяться совместно. Например, когда способ кодирования адаптивно изменяется с использованием конечного автомата, кодер/декодер может устанавливать разные конечные автоматы в зависимости от конкретных условий.
[201] Согласно варианту осуществления, когда горизонтальная координата и вертикальная координата последнего ненулевого коэффициента преобразования кодируются независимо, кодер/декодер можно настроить совместно использовать набор контекстов по–разному для кодирования горизонтальной координаты и набор контекстов для кодирования вертикальной координаты. Здесь, набор контекстов означает набор параметров, который может использоваться для определения контекста и может именоваться контекстом, моделью контекста и т.п. Дополнительно, кодер/декодер может применять отдельные наборы контекстов для квадратного блока, неквадратного блока с более длинной стороной в горизонтальном направлении и неквадратного блока с более длинной стороной в вертикальном направлении и применять индивидуальный набор контекстов только для неквадратного блока, в котором отношение ширины к высоте имеет конкретное значение.
[202]
[203] Вариант осуществления 4
[204] Согласно варианту осуществления настоящего изобретения, когда текущий блок является неквадратным блоком, кодер/декодер может делить текущий блок на подобласти, каждая из которых состоит из набора, содержащего конкретное количество пикселей, для кодирования позиции последнего ненулевого коэффициента преобразования. В этом случае, конкретное количество может определяться в зависимости от отношения ширины к высоте текущего блока. Это будет описано со ссылкой на следующую фигуру.
[205] Фиг. 9 иллюстрирует способ кодирования позиционной информации последнего ненулевого коэффициента преобразования с использованием суперпикселя в качестве варианта осуществления, к которому применяется настоящее изобретение.
[206] Согласно фиг. 9, предполагается, что текущий блок имеет размеры 16×4. Здесь кодер/декодер может делить текущий блок на суперпиксели. Здесь суперпиксель означает набор из конкретного количества пикселей, и конкретное количество может определяться отношением ширины к высоте текущего блока. Поскольку отношение ширины к высоте текущего блока равно 4, суперпиксель может состоять из 4 пикселей.
[207] Таким образом, когда позиция последнего ненулевого коэффициента преобразования кодируется для неквадратного блока, один суперпиксель может состоять из 4 пикселей, как показано на фиг. 9, таким образом, что количество суперпикселей в горизонтальном направлении равно количеству суперпикселей в вертикальном направлении в текущем блоке. Благодаря этой конфигурации, кодер/декодер может кодировать последнюю ненулевую область в единицах суперпикселей и кодировать позицию последнего ненулевого коэффициента как смещение в суперпикселе. Например, когда кодер/декодер кодирует последнюю ненулевую область в единицах суперпикселей, кодер/декодер может кодировать последнюю ненулевую область тем же способом, который традиционно применяется для кодирования последнего ненулевого коэффициента HEVC.
[208] Кроме того, кодер/декодер может кодировать смещение различными способами. Например, когда суперпиксель состоит из 4 пикселей, кодер/декодер может выделять коды 00, 01, 10 и 11 позициям соответствующих пикселей. Дополнительно, кодер/декодер может выделять индивидуальные контексты двум бинам в выделенных кодах и затем применять регулярное кодирование. Кроме того, кодер/декодер может выделять разные контексты в горизонтальном направлении и вертикальном направлении. Дополнительно, кодер/декодер может выделять индивидуальный контекст для каждого размера блока. В другом варианте осуществления, кодер/декодер может применять способ кодирования на основе суперпикселей только когда отношение ширины к высоте имеет конкретное значение (например, 1:2 или 2:1).
[209]
[210] Вариант осуществления 5
[211] Кодер/декодер может размещать последний ненулевой коэффициент преобразования в ограниченной области независимо от размера блока при определенном условии. Например, кодер/декодер может размещать последний ненулевой коэффициент преобразования в ограниченной области текущего блока, когда ширина и высота текущего блока больше или равны конкретным значениям, текущий блок является блоком, кодированным с использованием внешнего предсказания (или внутреннего предсказания), или произведение ширины и высоты текущего блока больше или равно конкретному значению (т.е. количество пикселей в текущем блоке больше или равно конкретному количеству).
[212] В этом случае кодер/декодер может выделять ограниченной области усеченный унарный код префикса. Например, когда гарантируется присутствие последнего ненулевого коэффициента преобразования только в области 32×32 в левом верхнем углу неквадратного блока 64×128, кодер/декодер может применять усеченный унарный код, ограниченный 31, для значений горизонтальной и вертикальной координат. В этом случае, код 111111111 вместо кода 1111111110 может выделяться в качестве префикса для секций 24–31 в таблице 2.
[213]
[214] Вышеописанные варианты осуществления 1–5 могут применяться независимо или несколько вариантов осуществления может применяться совместно.
[215] На фиг. 10 показана блок–схема операций, демонстрирующая способ декодирования позиционной информации последнего ненулевого коэффициента преобразования в качестве варианта осуществления, к которому применяется настоящее изобретение.
[216] Декодер декодирует (S1001) элемент синтаксиса, указывающий последнюю ненулевую область из битового потока. Здесь последняя ненулевая область указывает область, включающую в себя последний ненулевой коэффициент преобразования в порядке сканирования.
[217] Декодер (S1002) делит текущий блок на множество подобластей.
[218] Как описано выше, декодер может делить текущий блок на множество подобластей путем рекурсивного деления текущего блока на области большей глубины на основе заранее определенного способа деления. В этом случае, декодер может декодировать информацию, указывающую область, включающую в себя последний ненулевой коэффициент преобразования на каждой большей глубине.
[219] как описано выше, декодер может группировать ширину текущего блока в множество горизонтальных групп и группировать высоту текущего блока в множество горизонтальных групп. В этом случае, декодер может делить текущий блок на множество подобластей на основании горизонтальных групп и вертикальных групп. Кроме того, декодер может декодировать информацию о горизонтальной группе или вертикальной группе, которая указывает последнюю ненулевую область из горизонтальных групп или вертикальных групп.
[220] Дополнительно, как описано выше, элемент синтаксиса, указывающий последнюю ненулевую область, может бинаризоваться с использованием усеченного унарного кода, и элемент синтаксиса, указывающий позицию области последнего ненулевого коэффициента преобразования, может бинаризоваться с использованием кода фиксированной длины. Дополнительно, элемент синтаксиса, указывающий последнюю ненулевую область, может декодироваться в регулярном режиме, использующем контекст, и элемент синтаксиса, указывающий позицию области последнего ненулевого коэффициента преобразования, может декодироваться в обходном режиме, который не использует контекст.
[221] Дополнительно, как описано выше, декодер может адаптивно определять набор параметров, применяемый к текущему блоку, из ранее сохраненных наборов параметров. Здесь набор параметров может включать в себя по меньшей мере один из параметра, указывающего количество горизонтальных групп или вертикальных групп, параметра, указывающего длину кода, выделенного каждой группе, и параметра, указывающего индекс контекста, используемый для кода, выделенного каждой группе, что представлено математическим выражением 11. Декодер может адаптивно определять набор параметров, применяемый к текущему блоку, на основании вероятностного распределения последнего ненулевого коэффициента преобразования.
[222] Дополнительно, как описано выше, декодер может делить текущий блок на конкретное количество пикселей, зависящее от отношения ширины к высоте текущего блока, когда текущий блок является неквадратным блоком. Кроме того, когда последний ненулевой коэффициент преобразования присутствует в конкретной области текущего блока, элемент синтаксиса может бинаризоваться с использованием усеченного унарного кода, выделенного в диапазоне конкретной области.
[223] Декодер определяет (S1003) последнюю ненулевую область текущего блока из подобластей, полученных разделением на этапе S1002 на основании элемента синтаксиса, декодированного на этапе S1001.
[224] Как описано выше, кодер может сигнализировать последний ненулевой коэффициент преобразования в последней ненулевой области на декодер. Здесь, декодер может декодировать индексную информацию, указывающую позицию последнего ненулевого коэффициента преобразования в последней ненулевой области текущего блока.
[225] Фиг. 11 иллюстрирует устройство для декодирования позиционной информации последнего ненулевого коэффициента преобразования в качестве варианта осуществления, к которому применяется настоящее изобретение.
[226] Согласно фиг. 11, устройство декодирования реализует функции, процессы и/или способы, представленные на фиг. 6–10. В частности, устройство декодирования может включать в себя модуль 1101 декодирования элементов синтаксиса, модуль 1102 сегментирования на подобласти и модуль 1103 определения последней ненулевой области.
[227] Модуль 1101 декодирования элементов синтаксиса декодирует элемент синтаксиса, указывающий последнюю ненулевую область из битового потока. Здесь последняя ненулевая область указывает область, включающую в себя последний ненулевой коэффициент преобразования в порядке сканирования.
[228] Модуль 1102 сегментирования на подобласти делит текущий блок на множество подобластей.
[229] Как описано выше, модуль 1102 сегментирования на подобласти может делить текущий блок на множество подобластей путем рекурсивного деления текущего блока на области большей глубины на основе заранее определенного способа деления. В этом случае модуль 1102 сегментирования на подобласти может декодировать информацию, указывающую область, включающую в себя последний ненулевой коэффициент преобразования на каждой большей глубине.
[230] Как описано выше, модуль 1102 сегментирования на подобласти может группировать ширину текущего блока в множество горизонтальных групп и группировать высоту текущего блока в множество горизонтальных групп. В этом случае модуль 1102 сегментирования на подобласти может делить текущий блок на множество подобластей на основании горизонтальных групп и вертикальных групп. Кроме того, модуль 1103 определения последней ненулевой области может декодировать информацию о горизонтальной группе или вертикальной группе, которая указывает последнюю ненулевую область из горизонтальных групп или вертикальных групп.
[231] Дополнительно, как описано выше, элемент синтаксиса, указывающий последнюю ненулевую область, может бинаризоваться с использованием усеченного унарного кода, и элемент синтаксиса, указывающий позицию области последнего ненулевого коэффициента преобразования, может бинаризоваться с использованием кода фиксированной длины. Дополнительно, элемент синтаксиса, указывающий последнюю ненулевую область, может декодироваться в регулярном режиме, использующем контекст, и элемент синтаксиса, указывающий позицию области последнего ненулевого коэффициента преобразования, может декодироваться в обходном режиме, который не использует контекст.
[232] Дополнительно, как описано выше, модуль 1103 определения последней ненулевой области может адаптивно определять набор параметров, применяемый к текущему блоку, из ранее сохраненных наборов параметров. Здесь набор параметров может включать в себя по меньшей мере один из параметра, указывающего количество горизонтальных групп или вертикальных групп, параметра, указывающего длину кода, выделенного каждой группе, и параметра, указывающего индекс контекста, используемый для кода, выделенного каждой группе, что представлено математическим выражением 11. Модуль 1103 определения последней ненулевой области может адаптивно определять набор параметров, применяемый к текущему блоку, на основании вероятностного распределения последнего ненулевого коэффициента преобразования.
[233] Дополнительно, как описано выше, модуль 1102 сегментирования на подобласти может делить текущий блок на конкретное количество пикселей, зависящее от отношения ширины к высоте текущего блока, когда текущий блок является неквадратным блоком. Кроме того, когда последний ненулевой коэффициент преобразования присутствует в конкретной области текущего блока, элемент синтаксиса может бинаризоваться с использованием усеченного унарного кода, выделенного в диапазоне конкретной области.
[234] Модуль 1103 определения последней ненулевой области определяет последнюю ненулевую область текущего блока из полученных разделением подобластей на основании декодированного элемента синтаксиса.
[235] Как описано выше, кодер может сигнализировать последний ненулевой коэффициент преобразования в последней ненулевой области на декодер. Здесь, декодер может декодировать индексную информацию, указывающую позицию последнего ненулевого коэффициента преобразования в последней ненулевой области текущего блока.
[236] Модуль 1101 декодирования элементов синтаксиса, модуль 1102 сегментирования на подобласти и модуль 1103 определения последней ненулевой области можно настроить путем органичного объединения для осуществления способов, предложенных в настоящем изобретении. Например, декодирование элементов синтаксиса, осуществляемое модулем 1101 декодирования элементов синтаксиса, и деление, осуществляемое модулем 1102 сегментирования на подобласти, могут органично осуществляться для каждой глубины.
[237]
[238] Как описано выше, варианты осуществления, описанные в настоящем изобретении, могут реализоваться и осуществляться на процессоре, микропроцессоре, контроллере или микросхеме. Например, функциональные модули, представленные на фиг. 1–4, могут осуществляться и выполняться на компьютере, процессоре, микропроцессоре, контроллере или микросхеме.
[239] Кроме того, декодер и кодер, к которым применяется настоящее изобретение, могут быть включены в мультимедийные широковещательные передающие/принимающие устройства, терминалы мобильной связи, устройства домашнего кинотеатра, устройства воспроизведения цифрового видео, камеры слежения, устройства для осуществления видеоконференции, устройства связи в реальном времени, например, устройства видеосвязи, мобильные устройства потоковой передачи, носители данных, портативные видеокамеры, устройства предоставления обслуживания VoD, устройства предоставления обслуживания потоковой передачи через интернет, устройства 3D–видео, устройства видеотелефонии, видео–устройства медицинского назначения и т.д., и могут использоваться для обработки видеосигналов и сигналов данных.
[240] Кроме того, способ обработки, к которому применяется настоящее изобретение, может быть реализован в форме программы выполняемой компьютером и хранящейся на считываемом компьютером носителе записи. Мультимедийные данные, имеющие структуру данных согласно настоящему изобретению, также могут храниться на считываемом компьютером носителе записи. Считываемый компьютером носитель записи может включать в себя все виды записывающих устройств, где могут храниться данные, считываемые компьютером. Примеры считываемого компьютером носителя записи могут включать в себя диск Blu–ray (BD), накопитель с интерфейсом универсальной последовательной шины (USB), ROM, RAM, CD–ROM, магнитные ленты, флоппи–диски, оптически устройства хранения данных и пр. Дополнительно, считываемый компьютером носитель записи также включает в себя реализацию типа несущей волны (например, передачу по интернету). Дополнительно, битовый поток, генерируемый посредством способа кодирования, может храниться на считываемом компьютером носителе записи или передаваться через сети проводной/ беспроводной связи.
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ
[241] Иллюстративный аспекты настоящего изобретения были описаны в целях иллюстрации, и специалисты в данной области техники могут предложить различные модификации, добавления и замены, не выходя за рамки существенных характеристик изобретения.
название | год | авторы | номер документа |
---|---|---|---|
СПОСОБ И УСТРОЙСТВО ДЛЯ ЭНТРОПИЙНОГО КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛА | 2022 |
|
RU2785817C1 |
СПОСОБ И УСТРОЙСТВО ДЛЯ ЭНТРОПИЙНОГО КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛА | 2018 |
|
RU2738317C1 |
СПОСОБ И УСТРОЙСТВО ДЛЯ ЭНТРОПИЙНОГО КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛА | 2021 |
|
RU2768379C1 |
ИНИЦИАЛИЗАЦИЯ КОНТЕКСТА ПРИ ЭНТРОПИЙНОМ КОДИРОВАНИИ | 2019 |
|
RU2755020C2 |
ИНИЦИАЛИЗАЦИЯ КОНТЕКСТА ПРИ ЭНТРОПИЙНОМ КОДИРОВАНИИ | 2018 |
|
RU2699677C2 |
ИНИЦИАЛИЗАЦИЯ КОНТЕКСТА ПРИ ЭНТРОПИЙНОМ КОДИРОВАНИИ | 2012 |
|
RU2642373C1 |
ИНИЦИАЛИЗАЦИЯ КОНТЕКСТА ПРИ ЭНТРОПИЙНОМ КОДИРОВАНИИ | 2021 |
|
RU2779898C1 |
ИНИЦИАЛИЗАЦИЯ КОНТЕКСТА ПРИ ЭНТРОПИЙНОМ КОДИРОВАНИИ | 2012 |
|
RU2595934C2 |
ПРОГРЕССИВНОЕ КОДИРОВАНИЕ ПОЗИЦИИ ПОСЛЕДНЕГО ЗНАЧИМОГО КОЭФФИЦЕНТА | 2012 |
|
RU2595892C2 |
КОДИРОВАНИЕ КОЭФФИЦИЕНТОВ ПРЕОБРАЗОВАНИЯ | 2022 |
|
RU2782697C1 |
Изобретение относится к средствам для энтропийного кодирования и декодирования видеосигнала. Технический результат заключается в повышении эффективности энтропийного кодирования видеосигнала. Разделяют блок кодирования на множество блоков преобразования. Определяют ограниченную область на основе того, что блок кодирования разделен на множество блоков преобразования, при этом последний ненулевой коэффициент преобразования расположен в ограниченной области в пределах текущего блока преобразования. Генерируют информацию о позиции последнего ненулевого коэффициента преобразования в ограниченной области, при этом информация о позиции последнего ненулевого коэффициента преобразования включает в себя информацию префикса позиции по горизонтали и информацию префикса позиции по вертикали для последнего ненулевого коэффициента преобразования. Кодируют текущий блок преобразования на основе позиции последнего ненулевого коэффициента преобразования. 3 н. и 9 з.п. ф-лы, 6 табл. 11 ил.
1. Способ декодирования видеосигнала, содержащий:
проверку, разделен ли блок кодирования на множество блоков преобразования;
определение ограниченной области на основе того, что блок кодирования разделен на множество блоков преобразования, при этом последний ненулевой коэффициент преобразования расположен в ограниченной области в пределах текущего блока преобразования;
получение информации о позиции последнего ненулевого коэффициента преобразования в ограниченной области, при этом информация о позиции последнего ненулевого коэффициента преобразования включает в себя информацию префикса позиции по горизонтали и информацию префикса позиции по вертикали для последнего ненулевого коэффициента преобразования; и
декодирование текущего блока преобразования на основе позиции последнего ненулевого коэффициента преобразования.
2. Способ по п. 1,
в котором информация префикса позиции по горизонтали и информация префикса позиции по вертикали для последнего ненулевого коэффициента преобразования обратно бинаризуются на основе усеченного унарного кода.
3. Способ по п. 1,
в котором ограниченная область определяется на основе ширины и высоты текущего блока преобразования.
4. Способ по п. 1, дополнительно содержащий
разделение текущего блока преобразования на множество подобластей,
при этом ширина текущего блока преобразования сгруппирована во множество горизонтальных групп, а высота текущего блока преобразования сгруппирована во множество вертикальных групп,
при этом текущий блок преобразования разделяется на множество подобластей на основе множества горизонтальных групп и множества вертикальных групп.
5. Способ кодирования видеосигнала, содержащий:
разделение блока кодирования на множество блоков преобразования;
определение ограниченной области на основе того, что блок кодирования разделен на множество блоков преобразования, при этом последний ненулевой коэффициент преобразования расположен в ограниченной области в пределах текущего блока преобразования;
генерирование информации о позиции последнего ненулевого коэффициента преобразования в ограниченной области, при этом информация о позиции последнего ненулевого коэффициента преобразования включает в себя информацию префикса позиции по горизонтали и информацию префикса позиции по вертикали для последнего ненулевого коэффициента преобразования; и
кодирование текущего блока преобразования на основе позиции последнего ненулевого коэффициента преобразования.
6. Способ по п. 5,
в котором информация префикса позиции по горизонтали и информация префикса позиции по вертикали для последнего ненулевого коэффициента преобразования бинаризуются на основе усеченного унарного кода.
7. Способ по п. 5,
в котором ограниченная область определяется на основе ширины и высоты текущего блока преобразования.
8. Способ по п. 5, дополнительно содержащий
разделение текущего блока преобразования на множество подобластей,
при этом ширина текущего блока преобразования сгруппирована во множество горизонтальных групп, а высота текущего блока преобразования сгруппирована во множество вертикальных групп,
при этом текущий блок преобразования разделяется на множество подобластей на основе множества горизонтальных групп и множества вертикальных групп.
9. Долговременный считываемый декодером носитель для хранения битового потока, генерируемого обработкой видео, причем битовый поток содержит:
информацию для разделения блока кодирования на множество блоков преобразования;
информацию для определения ограниченной области на основе того, что блок кодирования разделен на множество блоков преобразования, при этом последний ненулевой коэффициент преобразования расположен в ограниченной области в пределах текущего блока преобразования;
информацию о позиции последнего ненулевого коэффициента преобразования в ограниченной области, при этом информация о позиции последнего ненулевого коэффициента преобразования включает в себя информацию префикса позиции по горизонтали и информацию префикса позиции по вертикали для последнего ненулевого коэффициента преобразования; и
информацию для декодирования текущего блока преобразования на основе позиции последнего ненулевого коэффициента преобразования.
10. Долговременный считываемый декодером носитель по п. 9,
в котором информация префикса позиции по горизонтали и информация префикса позиции по вертикали для последнего ненулевого коэффициента преобразования обратно бинаризуются на основе усеченного унарного кода.
11. Долговременный считываемый декодером носитель по п. 9,
в котором ограниченная область определяется на основе ширины и высоты текущего блока преобразования.
12. Долговременный считываемый декодером носитель по п. 9,
в котором битовый поток дополнительно содержит информацию для разделения текущего блока преобразования на множество подобластей,
при этом ширина текущего блока преобразования сгруппирована во множество горизонтальных групп, а высота текущего блока преобразования сгруппирована во множество вертикальных групп,
при этом текущий блок преобразования разделяется на множество подобластей на основе множества горизонтальных групп и множества вертикальных групп.
Многоступенчатая активно-реактивная турбина | 1924 |
|
SU2013A1 |
KR 2014120891 A, 14.10.2014 | |||
KR 101552027 B1, 09.09.2015 | |||
KR 2016038063 A, 06.04.2016 | |||
KR 2015064165 A, 10.06.2015 | |||
Многоступенчатая активно-реактивная турбина | 1924 |
|
SU2013A1 |
СПОСОБ ЭНТРОПИЙНОГО КОДИРОВАНИЯ СЕГМЕНТА СЛАЙСА И УСТРОЙСТВО ДЛЯ НЕГО И СПОСОБ ЭНТРОПИЙНОГО ДЕКОДИРОВАНИЯ СЕГМЕНТА СЛАЙСА И УСТРОЙСТВО ДЛЯ НЕГО | 2014 |
|
RU2609750C1 |
Авторы
Даты
2021-08-12—Публикация
2018-04-09—Подача