СПОСОБ МОДЕЛИРОВАНИЯ ИНФОРМАЦИИ КОДИРОВАНИЯ ВИДЕОСИГНАЛА ДЛЯ КОМПРЕССИИ/ДЕКОМПРЕССИИ ИНФОРМАЦИИ
METHOD OF MODELLING VIDEO SIGNAL CODING INFORMATION FOR INFORMATION COMPRESSION/DECOMPRESSION

Область техники, к которой относится изобретение
Настоящее изобретение относится к способу моделирования информации кодирования видеосигнала с использованием энтропийного кодирования для компрессии (сжатия) или декомпрессии (восстановления) информации кодирования.
Предшествующий уровень техники
Масштабируемое видеокодирование (SVC) является схемой кодирования, кодирующей видеоданные в последовательность изображений с наивысшим качеством изображения, гарантируя, что часть последовательности кодированных изображений (в частности, частичная последовательность кадров, скачкообразно выбранных из общей последовательности кадров) может быть декодирована и использована для отображения видеоданных с низким качеством изображения.
Несмотря на возможность отображения видеоданных с низким качеством изображения посредством приема и обработки части последовательности изображений, закодированных согласно масштабируемой схеме кодирования, остается проблема, заключающаяся в значительном снижении качества изображения в случае низкой скорости передачи данных. Одно решение этой проблемы заключается в обеспечении вспомогательной последовательности изображений для низких скоростей передачи данных, например последовательности изображений, имеющих малый размер экрана и/или низкую частоту кадров.
Вспомогательная последовательность изображений называется основным уровнем, а основная последовательность изображений называется усовершенствованным уровнем. При использовании в блоке декодирования основная последовательность изображений также называется текущим уровнем, декодируемым на основе основного уровня. При обеспечении основного уровня для увеличения эффективности кодирования выполняется межуровневое предсказание.
SVC может использоваться в комбинации с видеокодеком MPEG-4 или усовершенствованным видеокодеком MPEG-4 (AVC), также называемым «H.264». Для адаптивного применения бинарного арифметического кодирования, являющегося схемой энтропийного кодирования согласно смежной информации кодирования, существует потребность в определении способа кодирования или декодирования данных кодирования (например, синтаксической информации) видеокодека.
Раскрытие изобретения
Цель настоящего изобретения заключается в обеспечении способа моделирования контекста информации кодирования для увеличения коэффициента компрессии данных с использованием контекстно-адаптивного бинарного арифметического кодирования (CABAC), являющегося схемой энтропийного кодирования AVC, когда масштабируемая схема кодирования объединена с AVC MPEG-4.
Цель настоящего изобретения может быть достигнута посредством обеспечения способа моделирования, в котором первоначальное значение функции для вероятностного кодирования информации кодирования блока изображения первого уровня (например, текущего уровня) определяется на основе информации кодирования второго уровня (например, основного уровня), отличающегося от первого уровня.
В варианте осуществления настоящего изобретения флаги, которые могут быть использованы для определения первоначального значения функции для вероятностного кодирования информации кодирования, включают в себя флаг «base_mode_flag», указывающий на то, действительно ли данные изображения, закодированные в режиме внутрикадрового кодирования, или информация вектора движения блока второго уровня, соответствующего блоку изображения, должна быть использована для блока изображения, флаг «base_mode_refinement_flag», указывающий на то, действительно ли блоку изображения необходимо повышение качества для использования информации вектора движения блока второго уровня, соответствующего блоку изображения, флаг «residual_prediction_flag», указывающий на то, действительно ли остаточные данные блока изображения были закодированы с использованием данных, предсказанных из остаточных данных блока второго уровня, соответствующего блоку изображения, флаг «intra_base_flag», указывающий на то, действительно ли данные изображения блока изображения были закодированы в разностные данные на основе данных изображения, закодированного в режиме внутрикадрового кодирования блока второго уровня, соответствующего блоку изображения, флаг «mvd_ref_1X», указывающий значение повышения качества, требуемое для получения вектора движения блока изображения с использованием информации вектора движения блока второго уровня, соответствующего блоку изображения, а также флаг «motion_prediction_flag_1X», указывающий на то, действительно ли вектор движения блока второго уровня, соответствующего блоку изображения, должен быть использован для предсказывающего вектора движения блока изображения.
В другом варианте осуществления настоящего изобретения информация кодирования блока второго уровня, соответствующего блоку изображения, используется в качестве информации кодирования второго уровня. А также информация кодирования блока второго уровня соответствует информации кодирования блока изображения.
В другом варианте осуществления настоящего изобретения информация, указывающая на то, закодирован ли блок второго уровня, соответствующий блоку изображения, в режиме межкадрового кодирования или в режиме внутрикадрового кодирования, используется в качестве информации кодирования второго уровня.
В другом варианте осуществления настоящего изобретения первоначальное значение определяется на основе того, действительно ли информация сегментирования блока второго уровня, соответствующего блоку изображения, идентична информации сегментирования блока изображения.
В другом варианте осуществления настоящего изобретения первоначальное значение определяется либо на основе значения параметра квантования блока второго уровня, соответствующего блоку изображения, либо на основе разности между значением параметра квантования блока второго уровня и значением параметра квантования блока изображения.
В другом варианте осуществления настоящего изобретения первоначальное значение определяется на основе разности между вектором движения блока изображения и вектором движения блока второго уровня, соответствующего блоку изображения.
В другом варианте осуществления настоящего изобретения первоначальное значение определяется на основе того, действительно ли значение, указывающее на эталонное изображение блока изображения, идентично значению, указывающему на эталонное изображение блока второго уровня, соответствующего блоку изображения.
В другом варианте осуществления настоящего изобретения первоначальное значение определяется на основе того, действительно ли пространственное разрешение блока изображения идентично пространственному разрешению блока второго уровня, соответствующего блоку изображения.
В другом варианте осуществления настоящего изобретения информация структуры блока, указывающая на то, действительно ли значение, исключая 0, присутствует в блоке второго уровня, соответствующем блоку изображения, используется в качестве информации кодирования второго уровня.
В другом варианте осуществления настоящего изобретения для определения первоначального значения, на основе информации кодирования второго уровня, выбираются две константы «m» и «n», на основе выбранных констант «m» и «n» определяется промежуточное значение и информация, связанная с кодированием второго уровня (например, значение параметра квантования второго уровня, различие между значениями параметра квантования первого и второго уровней или отношение пространственного разрешения между первым и вторым уровнями), а на основе того, действительно ли промежуточное значение больше предварительно определенного значения, определяется первоначальное значение вероятности и MPS информации кодирования.
Краткое описание чертежей
Фиг.1 изображает блок-схему блока выполнения CABAC блока кодирования усовершенствованного уровня, выполняющего моделирование контекста, согласно настоящему изобретению;
Фиг.2 изображает пример бинаризации входной информации кодирования;
Фиг.3 изображает способ моделирования контекста для вероятностного кодирования информации кодирования;
Фиг.4 изображает подпрограмму для определения первоначального значения для вероятностного кодирования; и
Фиг.5 изображает блок-схему блока выполнения CABAC блока декодирования усовершенствованного уровня, выполняющего моделирование контекста, согласно настоящему изобретению;
Фиг.6 изображает информацию структуры блока согласно настоящему изобретению; и
Фиг.7 изображает способ выполнения моделирования контекста с использованием информации структуры блока и информации указателя предсказания остатков согласно настоящему изобретению.
Предпочтительный вариант осуществления изобретения
Далее будет сделана подробная ссылка на предпочтительные варианты осуществления настоящего изобретения, примеры которого иллюстрируются на чертежах.
Фиг.1 изображает блок-схему блока выполнения CABAC усовершенствованного уровня согласно предпочтительному варианту осуществления настоящего изобретения. Изображенный на Фиг.1 блок выполнения CABAC включает в себя блок 101 бинаризации, блок 102 моделирования контекста 102 и блок 110 арифметического кодирования. Блок 101 бинаризации выполняет бинаризацию входящей небинарной информации кодирования согласно определенной схеме. В частности, блок 101 бинаризации выполняет преобразование небинарного синтаксического элемента в бинарную строку, как изображено на Фиг.1. Блок 102 моделирования контекста выполняет моделирование каждого бита бинарной информации кодирования не только на основе информации кодирования соседнего блока того же уровня (в данном примере - усовершенствованного уровня), но также и на основе информации кодирования основного уровня, коррелированной с бинарной информацией кодирования или информацией 10 межуровневого соотношения. Блок 110 арифметического кодирования выполняет арифметическое кодирование входного бита на основе установленной модели.
Блок 110 арифметического кодирования включает в себя стандартный механизм 103 кодирования для выполнения арифметического кодирования битов информации кодирования на основе переменных (в частности, вероятностных функций и первоначальных значений вероятностных функций), смоделированных блоком 102 моделирования контекста, а также механизм 104 обходного кодирования для выполнения арифметического кодирования информации кодирования, которая не извлекает выгоду из моделирования, поскольку биты 0 и 1 информации кодирования имеют почти аналогичную вероятность появления.
Настоящее изобретение, которое использует моделирование входной информации кодирования, непосредственно не связано с процедурой арифметического кодирования, основанной на смоделированных переменных. Поэтому описание битовой компрессии (энтропийного кодирования), связанной с блоком 110 арифметического кодирования, опускается в настоящем документе, поскольку это не является необходимым для понимания настоящего изобретения.
Если входящая информация кодирования имеет небинарное значение, то изображенный на Фиг.1 блок выполнения CABAC выполняет бинаризацию значения входящей информации кодирования с помощью блока 101 бинаризации. Фиг.2 изображает пример бинаризации. Информация кодирования, используемая в изображенном на Фиг.2 примере, связана с типами макроблоков (mb_type). Типам макроблоков (с прямым кодированием, с внутрикадровым кодированием, P_16×l6, P_16×8, P_8×l6 и P_8×8) назначаются соответствующие бинарные значения согласно предварительно определенной схеме (или таблице преобразования). Другая информация кодирования бинаризуется согласно другим схемам (или другой таблице преобразования), определенным для соответствующих элементов способом, подобным изображенному на Фиг.2.
При битовой компрессии биты, полученные с помощью вышеупомянутой бинаризации, вводятся на блок 110 арифметического кодирования. Биты информации кодирования, имеющие аналогичную вероятность битовых значений 0 и 1, возникающих в информации кодирования, непосредственно вводятся на механизм 104 обходного кодирования, тогда как биты информации кодирования, имеющие другие вероятности битовых значений 0 и 1, возникающих в информации кодирования, вводятся на блок 102 моделирования контекста, чтобы входящие биты подвергались процессу моделирования.
k-1
k
k+1
Блок 102 моделирования контекста выполняет моделирование битов входящей информации кодирования на усовершенствованном уровне либо на основе информации кодирования, коррелированной с битовыми значениями соответствующей информации кодирования соседнего макроблока и/или значения соответствующей информации кодирования, принятой от блока кодирования основного уровня (не показан), либо на основе информации 10, относящейся к соотношению между усовершенствованным уровнем и основным уровнем. Моделирование является процессом выбора вероятностной функции и определения первоначального значения вероятностной функции. Как изображено на Фиг.3, значение смещения (…,k-1, k, k+1,…) определяется, согласно информации кодирования, для выбора вероятностной функции (…,f, f, f,…) информации кодирования, а значение индексной переменной «ctxIdxInc» определяется из значения смещения согласно информации, коррелированной с информацией кодирования. В качестве значения индексной переменной определяется «ctxIdxInc», а также определяются первоначальные значения «valMPS» и «pStateIdx» для использования с вероятностной функцией. В качестве первоначального значения определяется «pStateIdx», а первоначальная вероятность LPS (или MPS) определяется изображенным на Фиг.3 способом. Соответственно стандартный механизм 103 кодирования выполняет кодирование (или компрессию) битов входящей информации кодирования с использованием выбранной вероятностной функции, начиная с определенных первоначальных значений «valMPS» и «pStateIdx».
Далее предлагаются подробные примеры способа определения значения индексной переменной «ctxIdxInc» при моделировании, выполняемом блоком 102 моделирования контекста. Множество предложенных ниже примеров попросту являются примерами способа моделирования определенной информации кодирования усовершенствованного уровня либо на основе информации кодирования, коррелированной со значением определенной информации кодирования, либо на основе соотношения между усовершенствованным и основным уровнями. В связи с этим настоящее изобретение не ограничивается предложенными ниже примерами, а также любой способ, характеризуемый моделированием информации кодирования усовершенствованного уровня либо на основе информации кодирования, коррелированной со значением элемента информации кодирования, либо на основе соотношения между усовершенствованным и основным уровнями, находится в пределах объема настоящего изобретения.
Сначала описывается множество способов определения индексной переменной «ctxIdxInc» флага «base_mode_flag», указывающего на то, действительно ли информация кодирования (такая как информация вектора движения или данные изображения, закодированные в режиме внутрикадрового кодирования) блока основного уровня, соответствующего любому макроблоку, должна быть использована для макроблока.
1-1) ctxIdxInc=condTermFlagA+condTermFlagB+condTermFlagBase
В данном случае «A» и «B» обозначают соседние макроблоки, расположенные на верхней и левой сторонах текущего макроблока X. Флагу «condTermFlagN» (N=A или B) присваивается значение «0» в случае, если макроблок N недоступен, или в случае, если флагу «base_mode_flag» макроблока N присвоено значение «0», в противном случае ему присваивается значение «1». Подобным образом флагу «condTermFlagBase» присваивается значение «0» в случае отсутствия блока основного уровня, соответствующего текущему макроблоку X, или в случае, если флагу «base_mode_flag» соответствующего блока присвоено значение «0», в противном случае ему присваивается значение «1». В связи с этим значение соответствующей информации кодирования основного уровня используется в качестве основы для определения значения индексной переменной «ctxIdxInc». Оно указывает на то, что первоначальное значение для вероятностного кодирования изменения в зависимости от значения соответствующей информации кодирования основного уровня.
1-2) ctxIdxInc=condTermFlagA'+condTermFlagB'+condTermFlagBase'
В данном случае флагу «conTermFlag'» блока присваивается значение «0» или «1» в зависимости от того, в каком из режимов (межкадрового кодирования или внутрикадрового кодирования) закодирован блок. Например, флагу «condTermFlagBase'» присваивается значение «0» (или «1») в случае, если блок основного уровня, соответствующий текущему макроблоку X, закодирован в режиме межкадрового кодирования, а значение «1» (или «0») присваивается в случае, если соответствующий блок закодирован в режиме внутрикадрового кодирования.
В этом способе режимы (межкадрового или внутрикадрового кодирования) двух соседних блоков A и В, а также соответствующего блока основного уровня, используются в качестве основы для определения первоначального значения вероятностной функции для кодирования бита флага «base_mode_flag».
Альтернативно, только флаг «condTermFlagBase'» (то есть только режим соответствующего блока основного уровня) может быть использован в качестве основы для определения значения индексной переменной «ctxIdxInc» для изменения первоначального значения в зависимости исключительно от значения флага «condTermFlagBase'».
1-3) ctxIdxInc=(BaseBlkSize==EnhanceBlkSize)? 1:0+condTermFlagA+condTermFlagB
В этом способе значение, указывающее на то, действительно ли сегмент блока основного уровня идентичен сегменту блока усовершенствованного уровня (например, значение «1» в случае идентичности и значение «0» в случае отсутствия идентичности), или значение, указывающее на то, действительно ли размер блока усовершенствованного уровня равен размеру соответствующего блока основного уровня (например, значение «1» в случае равенства и значение «0» в случае неравенства), используется в качестве основы для определения первоначального значения вероятностной функции.
1-4) ctxIdxInc=condTermFlagA"+condTermFlagB"+condTermFlagBase"
В данном случае флагу «condTermFlag"» блока присваивается значение «1» в случае, если параметр квантования блока имеет значение, равное или большее предварительно определенного порога, в противном случае ему присваивается значение «0». В этом способе параметры квантования двух соседних блоков A и В, а также параметр квантования соответствующего блока основного уровня используются в качестве основы для определения первоначального значения вероятностной функции для кодирования бита флага «base_mode_flag».
Флагу «condTermFlag"» блока также может быть присвоено значение «1» или «0» в зависимости от разности между значением параметра квантования блока и значением другого параметра квантования, вместо зависимости от параметра квантования блока, для определения значения индексной переменной «ctxIdxInc» на основе значения флага «condTermFlag"». Например, флагу «condTermFlagN"» блока N присваивается значение «1» в случае, если разность между значением параметра квантования блока N и значением параметра квантования блока основного уровня, соответствующего блоку N, равна или больше предварительно определенного порога, в противном случае флагу «condTermFlagN"» присваивается значение «0». В этом примере «condTermFlagBase"» обозначает флаг, указывающий на то, является ли разность между значением параметра квантования текущего блока X и значением параметра квантования блока основного уровня, соответствующего текущему блоку X, большей или меньшей предварительно определенного порога.
Альтернативно, только флаг «condTermFlagBase"» (то есть только значение параметра квантования блока основного уровня, соответствующего текущему блоку X (или только разность между значением параметра квантования текущего блока X и значением параметра квантования соответствующего блока)) может быть использован в качестве основы для определения значения индексной переменной «ctxIdxInc» для изменения первоначального значения в зависимости только от значения флага «condTermFlagBase"».
1-5) ctxIdxInc=0 (если С> порога 1),
1 (если порог 1>С> порога 2),
2 (если С<порога 2)
В данном случае «C» обозначает либо вектор движения соответствующего блока основного уровня, либо разность между вектором движения соответствующего блока и вектором движения одного из соседних макроблоков, либо среднее значение вектора движения соседних макроблоков.
В связи с этим вектор движения основного уровня используется в качестве основы для определения первоначального значения вероятностной функции.
Enhance
Base
Enhance
Base
1-6) CtxIdxInc=(refIdxL1==refIdxL1)? 1:0+(refIdxL0==refIdxL0)? 1:0
В этом способе значение, указывающее на то, действительно ли индексы эталонного изображения refIdxL0 и refIdxL1 групп изображений L0 и L1 макроблока, содержащего кодируемую в настоящее время информацию, равны индексам эталонных изображений групп изображений L0 и L1 соответствующего блока основного уровня (например, значение «2» в случае, если и индексы эталонного изображения refIdxL0 и refIdxL1 групп изображений L0 и L1 равны индексам эталонного изображения основного уровня, значение «1» в случае, если один из индексов эталонного изображения refIdxL0 и refIdxL1 равен соответствующему индексу эталонного изображения основного уровня, и значения «0» в случае, если ни один из индексов эталонного изображения refIdxL0 и refIdxL1 не равен индексу эталонного изображения основного уровня), используется в качестве основы для определения первоначального значения вероятностной функции для изменения первоначального значения в зависимости от значения, указывающего на то, действительно ли индексы эталонного изображения усовершенствованного уровня равны индексам эталонного изображения основного уровня.
Комбинация вышеупомянутых способов (с 1-1 до 1-6) вместо одного из вышеупомянутых способов может быть использована для определения первоначального значения вероятностной функции для энтропийного кодирования флага «base_mode_flag».
Далее описано множество способов определения индексной переменной «ctxIdxInc» флага «base_mode_refinement_flag», указывающего на то, действительно ли любому макроблоку необходимо повышение качества для использования информации вектора движения блока основного уровня, соответствующего макроблоку.
Поскольку флаг «base_mode_refinement_flag не используется при кодировании соответствующего макроблока основного уровня в режиме внутрикадрового кодирования, способ, предполагающий кодирование в режиме внутрикадрового кодирования, такой как способ, подобный вышеупомянутому способу 1-2), не используется для моделирования бита флага «base_mode_refinement_flag».
2-1) ctxIdxInc=condTermFlagA+condTermFlagB+condTermFlagBase
Флагу «condTermFlagN» (N=A или B) присваивается значение «0» в случае, если макроблок N недоступен, или в случае, если флагу «base_mode_refinement_flag» макроблока N присвоено значение «0», в противном случае ему присваивается значение «1». Подобным образом флагу «condTermFlagBase» присваивается значение «0» в случае отсутствия блока основного уровня, соответствующего текущему макроблоку, или в случае, если флагу «base_mode_refinement_flag» соответствующего блока присвоено значение «0», в противном случае ему присваивается значение «1». В связи с этим значение соответствующей информации кодирования основного уровня используется в качестве основы для определения значения индексной переменной «ctxIdxInc».
2-2) ctxIdxInc=(BaseBlkSize==EnhanceBlkSize)? 1:0+condTermFlagA+condTermFlagB
Этот способ подобен вышеупомянутому способу 1-3).
2-3) ctxIdxInc=condTermFlagA"+condTermFlagB"+condTermFlagBase"
или ctxIdxInc=condTermFlagBase"
Этот способ подобен вышеупомянутому способу 1-4).
Enhance
Base
2-4) ctxIdxInc=(SpatialRes==SpatialRes)? 1:0
В этом способе значение, указывающее на то, действительно ли пространственное разрешение изображения основного уровня равно пространственному разрешению изображения усовершенствованного уровня (например, значение «1» в случае равенства и значение «0» в случае неравенства), используется в качестве основы для определения первоначального значения вероятностной функции.
Комбинация вышеупомянутых способов (с 2-1 до 2-4) вместо одного из вышеупомянутых способов может быть использована для определения первоначального значения вероятностной функции для вероятностного кодирования флага «base_mode_refinement_flag».
Далее будет предоставлено описание множества способов определения индексной переменной «ctxIdxInc» флага «residual_prediction_flag», указывающего на то, действительно ли остаточные данные любого макроблока были закодированы с использованием данных, предсказанных из остаточных данных блока основного уровня, соответствующего макроблоку.
3-1) ctxIdxInc=condTermFlagA+condTermFlagB+condTermFlagBase
Флагу «condTermFlagN» (N=A или B) присваивается значение «0» в случае, если макроблок N недоступен, или в случае, если флагу «residual_prediction_flag» макроблока N присвоено значение «0», в противном случае ему присваивается значение «1». Подобным образом флагу «condTermFlagBase» присваивается значение «0» в случае отсутствия блока основного уровня, соответствующего текущему макроблоку, или в случае, если флагу «residual_prediction_flag» соответствующего блока присвоено значение «0», в противном случае ему присваивается значение «1». В связи с этим значение соответствующей информации кодирования основного уровня используется в качестве основы для определения значения индексной переменной «ctxIdxInc».
3-2) ctxIdxInc=(BaseBlkSize==EnhanceBlkSize)? 1:0+condTermFlagA+condTermFlagB
Этот способ подобен вышеупомянутому способу 1-3).
3-3) ctxIdxInc=condTermFlagA"+condTermFlagB"+condTermFlagBase"
или ctxIdxInc=condTermFlagBase"
Этот способ подобен вышеупомянутому способу 1-4).
Enhance
Base
Enhance
Base
3-4) ctxIdxInc=(refIdxL1==refIdxL1)? 1:0+(refIdxL0==refIdxL0)? 1:0
Этот способ подобен вышеупомянутому способу 1-6).
3-5) ctxIdxInc=0 (если С> порога 1),
1 (если порог 1>С> порога 2),
2 (если С< порога 2)
Этот способ подобен вышеупомянутому способу 1-5).
Enhance
Base
3-6) ctxIdxInc=(SpatialRes==SpatialRes)? 1:0
Этот способ подобен вышеупомянутому способу 2-4).
Base
3-7) ctxIdxInc=CBP? 1:0
В этом способе первоначальное значение вероятностной функции для кодирования флага «residual_prediction_flag» определяется из значения состава закодированного блока (СВР) соответствующего блока основного уровня. В данном случае CBP блока яркости (яркость) или блока цветности (цветность) основного уровня может быть использован в качестве СВР. СВР блока присваивается значение, отличное от «0», в случае присутствия в блоке битового значения, отличного от «0», в противном случае ему присваивается значение «0». В этом способе первоначальное значение вероятностной функции для кодирования флага «residual_prediction_flag» устанавливается иначе в зависимости от значения, указывающего на то, действительно ли в соответствующем блоке основного уровня присутствует значение, отличное от «0», которое устанавливается в «1» в случае присутствия значения, отличного от «0», и устанавливается в «0» в случае отсутствия значения, отличного от «0».
Вase
В способе использования СВР для определения первоначального значения значения соответствующей информации кодирования «residual_prediction_flag» соседних блоков A и B, в дополнение к вышеупомянутому условию (CBP? 1:0), могут быть использованы в качестве условий для определения индексной переменной «ctxIdxInc». В этом случае индексная переменная «ctxIdxInc» может быть определена следующим образом:
Вase
ctxIdxInc=CBP? 1:0+condTermFlagA+condTermFlagB
Альтернативно, индексная переменная «ctxIdxInc» может быть определена на основе значений СВР двух соседних блоков A и В следующим образом:
A
B
ctxIdxInc=CBP? 1:0+CBP? 1:0
Комбинация вышеупомянутых способов (с 3-1 до 3-7) вместо одного из вышеупомянутых способов может быть использована для определения первоначального значения вероятностной функции для вероятностного кодирования флага «residual_prediction_flag».
Моделирование (например, установка первоначального значения) информации кодирования, кроме вышеописанной информации кодирования, также может быть выполнено различными способами либо согласно информации кодирования основного уровня, либо согласно межуровневому соотношению.
Например, моделирование для вероятностного кодирования флага «intra_base_flag», указывающего на то, действительно ли данные изображения блока усовершенствованного уровня были закодированы в разностные данные на основе данных изображения, закодированного в режиме внутрикадрового кодирования блока основного уровня, соответствующего блоку усовершенствованного уровня, также может быть выполнено различными способами либо используя межуровневое соотношение (в частности, используя соответствующую информацию кодирования основного уровня) согласно способу, подобному способу 1-1), либо используя межуровневое соотношение пространственного разрешения согласно способу, подобному способу 2-4), либо используя параметр квантования, отражающий уровень качества изображения основного уровня, согласно способу, подобному способу 1-4).
Кроме того, моделирование для вероятностного кодирования информации «mvd_ref_1X, X=0,1», отражающей значение повышения качества, требуемого любому макроблоку для использования информации вектора движения блока основного уровня, соответствующего макроблоку, также может быть выполнено различными способами либо используя межуровневое соотношение (в частности, используя соответствующую информацию кодирования основного уровня) согласно способу, подобному способу 1-1), либо используя межуровневое соотношение пространственного разрешения согласно способу, подобному способу 2-4).
Кроме того, моделирование для вероятностного кодирования флага «motion_prediction_flag_1X, X=0,1», указывающего на то, действительно ли вектор движения блока основного уровня, соответствующего макроблоку, должен быть использован для предсказывающего вектора движения макроблока, также может быть выполнено различными способами либо используя межуровневое соотношение (в частности, используя соответствующую информацию кодирования основного уровня) согласно способу, подобному способу 1-1), либо используя межуровневое соотношение пространственного разрешения согласно способу, подобному способу 2-4), либо используя соотношение размеров блока согласно способу, подобному способу 1-3).
Моделирование трех типов информации (intra_base_flag, mvd_ref_1X, motion_prediction_flag_1X) также может быть выполнено с использованием других межуровневых соотношений, отличающихся от вышеупомянутых соотношений.
Множество вышеописанных способов моделирования также может быть применено к любой другой информации кодирования, на значение которой может оказывать влияние на межуровневое соотношение.
Несмотря на то что вышеупомянутое описание было изложено со ссылкой на то, что первоначальные значения «valMPS» и «pStateIdx» определяются из индексной переменной «ctxIdxInc», эти два первоначальных значения определяются из значений «m» и «n», которые определяются из индексной переменной «ctxIdxInc» изображенным на Фиг.4 способом.
Промежуточное значение «preCtxState» в изображенной на Фиг.4 подпрограмме определения первоначального значения определяется с помощью функции «Clip3 ()». Функция «Clip3 ()» определения «preCtxState» содержит параметр «SliceQPY» квантования яркости в качестве аргумента (varX) в дополнение к значениям «m» и «n». Этот аргумент (varX) связан с макроблоком, содержащим кодируемую в настоящее время информацию кодирования. Аргумент (varX), влияющий на определение первоначального значения, в дополнение к значениям «m» и «n», не имеет значения, связанного с межуровневым соотношением.
Соответственно, если межуровневое соотношение будет отражено в аргументе (varX) для получения первоначального значения на основе межуровневого соотношения, то первоначальное значение, вероятно, будет иметь значение, которое намного более выгодно в отношении вероятностного кодирования. В связи с этим согласно настоящему изобретению межуровневое соотношение отражается в аргументе (varX).
Способы отражения межуровневого соотношения в аргументе (varX) должны либо использовать параметр «BaseSliceQPY» квантования яркости основного уровня в качестве аргумента (varX), либо использовать разность между параметрами квантования усовершенствованного и основного уровней в качестве аргумента (varX), либо использовать коэффициент пространственного разрешения между основным уровнем и текущим уровнем в качестве аргумента (varX).
Если разность между параметрами квантования усовершенствованного и основного уровней используется в качестве аргумента (varX), то изображенная на Фиг.4 функция 401 определения «preCtxState» согласно настоящему изобретению может быть определена следующим образом:
preCtxState=Clip3(1,126,((m*(SliceQPYBaseSliceQPY))>>4)+n)
Несмотря на то что вышеупомянутый способ был описан для вероятностного кодирования в блоке кодирования, аналогичный способ применяется к изображенному на Фиг.5 блоку декодирования CABAC для декомпрессии сжатых данных. В связи с этим описание моделирования контекста в блоке декодирования в настоящем документе опускается.
Подобно способу, в котором блок 102 моделирования контекста изображенного на Фиг.1 блока кодирования CABAC моделирует целевую информацию кодирования, блок 202 моделирования контекста изображенного на Фиг.5 блока декодирования CABAC моделирует целевую информацию кодирования на основе информации кодирования основного уровня и информации 20 межуровневого соотношения, а также передает соответствующее первоначальное значение на стандартный механизм 203 декодирования, обеспеченный следом за блоком 202 моделирования контекста. Стандартный механизм 203 декодирования преобразует биты входящей информации кодирования в сжатую битовую строку, начинающуюся со значения, подобного первоначальному значению, используемому в стандартном механизме 103 кодирования блока кодирования.
Фиг.6 изображает элементы информации состава закодированного блока (СВР) согласно настоящему изобретению.
Информация структуры блока является типом характерного битового флага, указывающего на то, действительно ли присутствует остаток, в частности действительно ли присутствует остаток блока яркости размером 8×8. Например, если в текущем кадре присутствует основной макроблок (baseMB), соответствующий макроблоку (currMB), то основной макроблок делится на четыре блока, и нулевой бит информации структуры блока указывает на то, действительно ли в верхнем левом блоке присутствует остаток, первый бит указывает на то, действительно ли в верхнем правом блоке присутствует остаток, второй бит указывает на то, действительно ли в нижнем левом блоке присутствует остаток, а третий бит указывает на то, действительно ли в нижнем правом блоке присутствует остаток. Информация структуры блока отображается с помощью шести битов, включая 0-3 биты и два бита (AC и DC), отображающие блоки цветности. В связи с этим информация структуры блока указывает на то, действительно ли в каждом из разделенных блоков присутствует остаток, и посредством значения «1» указывается присутствие остатка, а посредством значения «0» указывается отсутствие остатка. Кроме того, первоначальное значение вероятностной функции для кодирования информации флага предсказания остатков (residual_prediction_flag) устанавливается иначе в зависимости от того, действительно ли значение, отличное от «0», присутствует в соответствующем блоке нижнего уровня.
Фиг.7 изображает способ выполнения моделирования контекста с использованием информации структуры блока и информации флага предсказания остатков согласно настоящему изобретению.
В варианте осуществления настоящего изобретения предполагается, что информации флага предсказания остатков присваивается значение «1» на обоих уровнях 1 и 2 (Layer1 и Layer2), а информации состава блока присваивается значение «0» на уровне 1. В этом случае информация кодирования уровня 1 не может быть использована при выполнении моделирования контекста уровня 2. Это происходит в связи с тем, что информации состава блока уровня 1 присваивается значение «0», указывающее на то, что в блоке уровня 1, соответствующем макроблоку уровня 2, отсутствует остаток. Однако можно видеть, что остаток присутствует, ввиду того что значение информации структуры блока уровня 0 больше «0». Из этого следует, что, даже в случае, если информации структуры блока уровня 1 присвоено значение «0», то информация флага предсказания остатков уровня 1 также должна быть учтена для определения фактического присутствия остатка. Соответственно настоящее изобретение использует дискретизированный с повышением остаток уровня 0, который ниже уровня 1, при выполнении предсказания остатков уровня 2.
Далее будет представлено описание другого варианта осуществления настоящего изобретения, которое обеспечивает множество способов определения индексной переменной «ctxIdxInc» информации флага предсказания остатков «residual_prediction_flag», указывающей на то, действительно ли остаточные данные любого макроблока были закодированы с использованием данных, предсказанных из остаточных данных блока основного уровня, соответствующего макроблоку.
base
base
ctxIdxInc=min(1, resPredFlag+CBP)
Уравнение 1
base
base
base
base
Выраженный уравнением (1) способ обеспечивается для выбора либо значения «0», либо значения «1» в качестве состояния индексной переменной. Если информации флага предсказания остатков соответствующего макроблока основного кадра присвоено значение «0», то информации флага предсказания остатков (resPredFlag) основного кадра присваивается значение «0», в противном случае ей присваивается значение «1». Подобным образом значение «0» или «1» присваивается информации структуры блока (CBP) основного кадра. В связи с этим сумма значения информации флага предсказания остатков (resPredFlag) и значения информации структуры блока (CBP) имеет значение «0», «1» или «2». Индексная переменная имеет значение «0» или «1», поскольку меньше из «1» и значения суммы («0», «1» или «2») присваивается индексной переменной.
base
bаsе
ctxIdxInc=resPredFlag+СВР
Уравнение 2
Выраженный уравнением (2) способ обеспечивается для выбора либо значения «0», либо значения «1», либо значения «2» в качестве состояния индексной переменной.
Далее представлено описание другого варианта осуществления настоящего изобретения, обеспечивающего способ определения индексной переменной (ctxIdxInc) с использованием суммы значений остаточной информации соответствующих блоков основного кадра. Этот вариант осуществления может быть применен в случае несоответствия блоков текущего кадра соответствующим блокам основного кадра, то есть в случае присутствия множества соответствующих основных макроблоков.
Уравнение 3
baseij
base
В уравнении (3) «P» обозначает значение пикселя в позиции (i, j) остаточной информации соответствующего блока основного изображения. «Energy» указывает на присутствие остатка, который может быть определен посредством поиска по всем пикселям соответствующего блока основного изображения.
base
ctxIdxInc=Energy? 1:0
Уравнение 4
В выраженном уравнением (4) способе по всем пикселям осуществляется поиск для определения присутствия значения изображения, и значение «1» присваивается индексной переменной в случае присутствия любого значения пикселя, а значение «0» присваивается индексной переменной в случае отсутствия любого значения пикселя.
base
0 Energy<=порог 1
base
ctxIdxInc=1 порог 1<Energy<порог 2
base
2 Energy>=порог 2
Уравнение 5
Выраженный уравнением (5) способ использует множество порогов (порог 1 и порог 2) для того, чтобы значение «0» присваивалось индексной переменной в случае, если общая сумма значений пикселя меньше или равна порогу (порог 1), значение «1» присваивалось индексной переменной в случае, если общая сумма находится между порогами (порог 1 и порог 2), а значение «2» присваивалось индексной переменной в случае, если общая сумма равна или больше порога (порог 2).
Блок декодирования, включающий в себя блок моделирования контекста для моделирования информации кодирования согласно вышеописанному способу, может быть включен в терминал мобильной связи, медиа плеер или подобное устройство.
Несмотря на то, что данное изобретение было описано со ссылкой на предпочтительные варианты осуществления, специалистам в данной области техники будет понятно, что в изобретении могут быть сделаны различные усовершенствования, модификации, замены и добавления, не отступая от сущности и объема изобретения. Таким образом, это означает, что изобретение охватывает усовершенствования, модификации, замены и добавления в пределах объема приложенной формулы изобретения и ее эквивалентов.
Индустриальная применимость
Как было описано выше, со ссылкой на ограниченные варианты осуществления, настоящее изобретение выполняет моделирование контекста каждого бита информации кодирования с использованием межуровневого соотношения для определения первоначального значения функции для вероятностного кодирования информации кодирования, которое является предпочтительным в отношении вероятностного кодирования, (то есть, первоначального значения, дополнительно сокращающего первоначальную вероятность LPS), таким образом, значительно повышая коэффициент компрессии данных вероятностного кодирования.