СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ, ЭЛЕКТРОННОЕ УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ И НОСИТЕЛЬ ДАННЫХ Российский патент 2024 года по МПК H04N19/176 

Описание патента на изобретение RU2820848C2

Настоящая заявка выделена из заявки №2022106876 на выдачу патента РФ на изобретение, поданной 16.09.2020, с испрашиванием приоритета по дате подачи первой заявки CN 201910901352.7, поданной в патентное ведомство КНР 23.09.2019.

Область техники, к которой относится изобретение

Настоящая заявка относится к технологиям кодирования и декодирования, в частности - к способам и устройствам для кодирования и декодирования, электронному устройству кодирования/декодирования и долговременному носителю данных.

Уровень техники

На недавней конференции Объединенной группы специалистов в области видеотехнологий (JVET, англ. Joint Video Experts Team) был предложен способ регулирования компенсации предсказания. Исходные значения предсказания для субблоков текущего блока изображения получают на основе исходной информации о движении данных субблоков. Значения компенсации для субблоков получают на основе исходных значений предсказания. Далее получают конечное значение предсказания для текущего блока изображения на основе значений компенсации и исходных значений предсказания для субблоков.

При этом следует отметить, что, на практике, известный способ регулирования компенсации предсказания применим только в том случае, когда используют режим двунаправленного предсказания и каждый субблок имеет тот же вектор движения, что и все пиксельные точки в нем. Для блока изображения, в котором вектор движения субблока отличен от векторов движения пиксельных точек в нем, регулирование компенсации предсказания неприменимо.

Раскрытие сущности изобретения

С учетом вышесказанного, в настоящей заявке предложены способ, аппарат и устройство для кодирования и декодирования.

В частности, настоящая завка реализована посредством следующих технических решений.

Согласно первому аспекту варианта осуществления настоящей заявки, предложен способ кодирования и декодирования, включающий в себя этапы, на которых:

определяют значение предсказания для каждой пиксельной точки текущего блока изображения;

определяют значение градиента для каждой пиксельной точки текущего блока изображения на основе значения предсказания для каждой пиксельной точки текущего блока изображения;

определяют вектор сдвига для каждой пиксельной точки текущего блока изображения;

определяют значение компенсации предсказания для каждой пиксельной точки текущего блока изображения на основе значения градиента и вектора сдвига для каждой пиксельной точки текущего блока изображения; и

определяют конечное значение предсказания для каждой пиксельной точки текущего блока изображения на основе значения предсказания и значения компенсации предсказания для каждой пиксельной точки текущего блока изображения.

Согласно второму аспекту варианта осуществления настоящей заявки, предложен аппарат для кодирования и декодирования, содержащий:

первый определяющий блок, выполненный с возможностью определения значения предсказания для каждой пиксельной точки текущего блока изображения;

второй определяющий блок, выполненный с возможностью определения значения градиента для каждой пиксельной точки текущего блока изображения на основе значения предсказания для каждой пиксельной точки текущего блока изображения;

третий определяющий блок, выполненный с возможностью определения вектора сдвига для каждой пиксельной точки текущего блока изображения;

четвертый определяющий блок, выполненный с возможностью определения значения компенсации предсказания для каждой пиксельной точки текущего блока изображения на основе значения градиента и вектора сдвига для каждой пиксельной точки текущего блока изображения; и

пятый определяющий блок, выполненный с возможностью определения конечного значения предсказания для каждой пиксельной точки текущего блока изображения на основе значения предсказания и значения компенсации предсказания для каждой пиксельной точки текущего блока изображения.

Согласно третьему аспекту варианта осуществления настоящей заявки, предложено устройство на стороне кодирования, содержащее процессор и машиночитаемый носитель данных, причем машиночитаемый носитель данных содержит машиноисполняемые инструкции, исполнимые процессором, при этом процессор выполнен с возможностью исполнения машиноисполняемых инструкций для реализации этапов, на которых:

определяют значение предсказания для каждой пиксельной точки текущего блока изображения;

определяют значение градиента для каждой пиксельной точки текущего блока изображения на основе значения предсказания для каждой пиксельной точки текущего блока изображения;

определяют вектор сдвига для каждой пиксельной точки текущего блока изображения;

определяют значение компенсации предсказания для каждой пиксельной точки текущего блока изображения на основе значения градиента и вектора сдвига для каждой пиксельной точки текущего блока изображения; и

определяют конечное значение предсказания для каждой пиксельной точки текущего блока изображения на основе значения предсказания и значения компенсации предсказания для каждой пиксельной точки текущего блока изображения.

Согласно четвертому аспекту варианта осуществления настоящей заявки, предложено устройство на стороне декодирования, содержащее процессор и машиночитаемый носитель данных, причем машиночитаемый носитель данных содержит машиноисполняемые инструкции, исполнимые процессором, при этом процессор выполнен с возможностью исполнения машиноисполняемых инструкций для реализации этапов, на которых:

определяют значение предсказания для каждой пиксельной точки текущего блока изображения;

определяют значение градиента для каждой пиксельной точки текущего блока изображения на основе значения предсказания для каждой пиксельной точки текущего блока изображения;

определяют вектор сдвига для каждой пиксельной точки текущего блока изображения;

определяют значение компенсации предсказания для каждой пиксельной точки текущего блока изображения на основе значения градиента и вектора сдвига для каждой пиксельной точки текущего блока изображения; и

определяют конечное значение предсказания для каждой пиксельной точки текущего блока изображения на основе значения предсказания и значения компенсации предсказания для каждой пиксельной точки текущего блока изображения.

Способ кодирования и декодирования включает в себя этапы, на которых, после того, как будет определено значение предсказания для каждой пиксельной точки текущего блока изображения, определяют значение компенсации предсказания для каждой пиксельной точки текущего блока изображения на основе значения градиента и вектора сдвига для каждой пиксельной точки текущего блока изображения, далее определяют конечное значение предсказания для каждой пиксельной точки текущего блока изображения на основе значения предсказания и значения компенсации предсказания для каждой пиксельной точки текущего блока изображения. Таким образом, регулирование компенсации предсказания больше не ограничено блоком изображения, использующим режим двунаправленного предсказания, и не ограничено блоком изображения, вектор движения каждого субблока которого является тем же, что и вектор движения каждого пикселя в соответствующем субблоке, что расширяет сферу применения регулирования компенсации предсказания.

Краткое описание чертежей

ФИГ. 1А-1В - принципиальные схемы разбиения блоков согласно одному примеру осуществления настоящей заявки;

ФИГ. 2 - принципиальная схема интерполяции с 8 подстановками согласно одному примеру осуществления настоящей заявки;

ФИГ. 3 - принципиальная схема последовательности способа кодирования и декодирования согласно одному примеру осуществления настоящей заявки;

ФИГ. 4 - принципиальная схема вектора движения контрольной точки режима аффинного движения согласно одному примеру осуществления настоящей заявки;

ФИГ. 5А - принципиальная схема целопиксельного блока согласно одному примеру осуществления настоящей заявки;

ФИГ. 5 В - принципиальная схема заполнения 1 строки/столбца целопиксельных точек согласно одному примеру осуществления настоящей заявки;

ФИГ. 5С - принципиальная схема заполнения 2 строк/столбцов целопиксельных точек согласно одному примеру осуществления настоящей заявки;

ФИГ. 5D - принципиальная схема заполнения 2 строк/столбцов целопиксельных точек по другому примеру осуществления настоящей заявки;

ФИГ. 6 - принципиальная схема последовательности способа кодирования и декодирования согласно одному примеру осуществления настоящей заявки;

ФИГ. 7А-7Е - принципиальные схемы заполнения 1 строки/столбца целопиксельных точек по примерам осуществления настоящей заявки;

ФИГ. 8 - принципиальная схема последовательности способа выбора потенциальных векторов движения согласно одному примеру осуществления настоящей заявки;

ФИГ. 9 - принципиальная схема последовательности способа выбора потенциальных векторов движения согласно одному примеру осуществления настоящей заявки;

ФИГ. 10 - принципиальная схема последовательности способа выбора режима предсказания согласно одному примеру осуществления настоящей заявки;

ФИГ. 11 - принципиальная схема последовательности способа выбора режима предсказания согласно одному примеру осуществления настоящей заявки;

ФИГ. 12 - принципиальная структурная схема аппарата для кодирования и декодирования согласно одному примеру осуществления настоящей заявки;

ФИГ. 13 - принципиальная схема аппаратной структуры устройства на стороне кодирования согласно одному примеру осуществления настоящей заявки;

ФИГ. 14 - принципиальная схема аппаратной структуры устройства на стороне декодирования согласно одному примеру осуществления настоящей заявки.

Осуществление изобретения

Примеры осуществления будут подробно раскрыты совместно с примерами на чертежах. Одни и те же номера позиций на разных чертежах обозначают одни и те же или аналогичные элементы, если не указано иначе. В нижеследующих примерах осуществления раскрыты не все варианты реализации, соответствующие настоящей заявке. Они являются не более чем примерами аппаратов и способов по некоторым аспектам настоящей заявки, охарактеризованным в прилагаемой формуле изобретения.

Понятия, используемые в частных вариантах осуществления настоящей заявки, служат исключительно для их раскрытия и не предназначены для ограничения настоящей заявки. Также следует понимать, что формы единственного числа, в том числе с определением «указанный», в тексте настоящей заявки и прилагаемой формулы изобретения включают в себя значения множественного числа, если иное явно не следует из контекста.

Чтобы облегчить специалистам в данной области техники понимание технических решений согласно вариантам осуществления настоящей заявки, сперва будут кратко описаны методики разбиения на блоки и решения по внутрикадровому разбиению на субблоки в стандартах видеокодирования, а также некоторые технические понятия, используемые в вариантах осуществления настоящей заявки.

1. Методики разбиения на блоки в стандартах видеокодирования Согласно стандарту «Высокоэффективное видеокодирование» (HEVC, англ.

High Efficiency Video Coding), единицу дерева кодирования (ЕДК, англ. Coding Tree Unit (CTU)) рекурсивно разбивают на единицы кодирования (ЕК, англ. Coding Unit (CU)) по квадродереву. Решение об использовании внутрикадрового или межкадрового предсказания принимают на уровне ЕК концевого узла. Далее ЕК может быть разбита на две или четыре единицы предсказания (ЕП, англ. Prediction Unit (PU)), при этом в одной и той же ЕП используют одну и ту же предсказательную информацию. После получения остаточной информации по завершении предсказания, ЕК может быть разбита на множество единиц преобразования (ЕПр, англ. Transform Unit (TU)). Например, текущий блок изображения в настоящей заявке представляет собой ЕП.

При этом методики разбиения на блоки в предложенном новом стандарте «Универсальное видеокодирование» (WC, англ. Versatile Video Coding) претерпели значительные изменения. На смену ранее использовавшемуся принципу разбиения пришла структура разбиения, представляющая собой комбинацию бинарного дерева / тернарного дерева / квадродерева. Отличия между понятиями ЕК, ЕП и ЕПр упразднены, при этом предусмотрена возможность использования более гибкого принципа разбиения. ЕК может представлять собой результат разбиения на квадраты и/или прямоугольники. Сперва реализуют разбиение по квадродереву в отношении ЕДК, а затем может быть реализовано разбиение по бинарному дереву и разбиение по тернарному дереву в отношении концевых узлов, полученных в результате разбиения по квадродереву. Как видно из ФИГ. 1А, существуют пять принципов разбиения ЕК, а именно - разбиение по квадродереву, горизонтальное разбиение по бинарному дереву, вертикальное разбиение по бинарному дереву, горизонтальное разбиение по тернарному дереву и вертикальное разбиение по тернарному дереву. Как видно из ФИГ. 1 В, ЕК в ЕДК может быть разбита на основе одного из указанных пяти принципов разбиения или какой-либо их комбинации с получением ЕП разнообразных форм, например, прямоугольников и квадратов различных размеров.

2. Технические понятия

Сигнал предсказания: значение пикселя, выведенное из закодированного или декодированного пикселя, при этом остаток определяют по разности исходного пикселя и предсказанного пикселя с последующим преобразованием остатка, квантованием и кодированием коэффициента.

Например, сигнал межкадрового предсказания представляет собой значение пикселя текущего блока изображения, выведенное из опорного изображения (изображения из восстановленных пикселей). Из-за разрозненного расположения пикселей, для получения сигнала конечного предсказания нужно выполнить операцию интерполяции. Чем ближе предсказанный пиксель к исходному пикселю, тем меньше остаточная энергия, получаемая в результате вычитания одного из другого, и тем выше характеристики сжатия при кодировании.

Вектор движения (ВД, англ. Motion Vector (MV)): при межкадровом кодировании ВД отражает смещение текущего блока кодирования относительно оптимально соответствующего блока в опорном изображении. Каждый блок, являющийся результатом разбиения (который может именоваться «субблок»), имеет соответствующий вектор движения, подлежащий передаче стороне декодирования. Кодирование и передача ВД для каждого субблока, особенно - субблоков малых размеров, требует большого количества бит. Чтобы уменьшить количество бит для кодирования ВД, видеокодирование включает в себя предсказание подлежащего кодированию ВД текущего блока по ВД соседних закодированных блоков с использованием пространственной корреляции между соседними блоками изображения с последующим кодированием разности предсказания. Это позволяет эффективно уменьшить количество бит, приходящихся на ВД. С учетом этого, в процессе кодирования ВД текущего блока изображения, предсказание ВД текущего блока изображения обычно осуществляют по ВД соседних закодированных блоков с последующим кодированием разности значения предсказания вектора движения (ПВД, англ. Motion Vector Prediction (MVP)) и фактического оценочного значения вектора движения, то есть разности векторов движения (РВД, англ. Motion Vector Difference (MVD)), для эффективного уменьшения количества бит кодирования ВД.

Информация о движении: так как ВД указывает смещение текущего блока изображения относительно оптимально соответствующего блока в определенном опорном изображении, для получения достоверной информации, указывающей на этот блок изображения в дополнение к информации о ВД, используемое опорное изображение должно быть указано посредством информации об индексе опорного изображения. Методики видеокодирования обычно предусматривают создание списка опорных изображений для текущего изображения в соответствии с определенными принципами. Информация об индексе опорного изображения указывает используемое для текущего блока опорное изображение в списке опорных изображений. Многие методики кодирования также предусматривают возможность наличия нескольких списков опорных изображений, в связи с чем необходимо дополнительное значение индекса для указания используемого списка опорных изображений. Значение индекса может именоваться «опорное направление». В области видеокодирования, информация о кодировании, относящаяся к движению, например, ВД, индекс опорного изображения и опорное направление, собирательно именуется «информация о движении».

Интерполяция: если текущий ВД не является целопиксельным, существующее значение пикселя не может быть непосредственно скопировано из соответствующего опорного изображения и должно быть получено путем интерполяции.

Как видно из ФИГ. 2, значение Y1/2 пикселя со сдвигом 1/2 пикселя получено путем интерполяции значений X окружающих существующих пикселей. При использовании интерполяционного фильтра с числом отводов N, значение Y1/2 пикселя получают путем интерполяции N окружающих целых пикселей. Если число отводов составляет 8, то , где аk - коэффициент фильтрации, т.е. весовой коэффициент.

Компенсация движения: процесс получения всех значений предсказания пикселей текущего блока путем интерполяции (или копирования).

Режим предсказания временного вектора движения (режим ПВВД, англ. Temporal Motion Vector Prediction (TMVP)): режим мультиплексирования векторов движения в опорном изображении во временной области.

Режим двунаправленного оптического потока (ДНОП, англ. Bi-directional Optical Flow (BDOF)): также именуется «режим ДНОП», в котором регулирование значения компенсации движения осуществляют на основе значений компенсации движения двух опорных изображений с использованием способа оптического потока.

Режим уточнения вектора движения на стороне декодирования (режим УВДСД, Decoder-side Motion Vector Refinement (DMVR)): поиск разности векторов движения по значениям компенсации движения двух опорных изображений.

Режим разности симметричных векторов движения (режим РСВД, англ. Symmetric Motion Vector Difference (SMVD)): разность векторов движения одного направления выводят напрямую из разности векторов движения другого направления без кодирования в режиме двунаправленного предсказания.

Например, разность векторов движения определенного направления может быть получена путем непосредственного масштабирования разности векторов движения в указанном направлении, при этом коэффициент масштабирования зависит от расстояния от указанных двух опорных изображений до изображения, к которому принадлежит текущий блок изображения.

Для создания более детального представления о вышеуказанных объектах, признаках и преимуществах варианта осуществления настоящей заявки, ниже будет подробно раскрыто техническое решение по данному варианту осуществления настоящей заявки на примерах чертежей.

Следует отметить, что раскрытый в настоящей заявке способ кодирования и декодирования для регулирования компенсации предсказания может найти применение в устройстве кодирования или устройстве на стороне декодирования. Раскрытый в настоящей заявке блок изображения представляет собой блок кодирования при применении способа в устройстве на стороне кодирования и блок декодирования при применении способа в устройстве декодирования.

ФИГ. 3 изображает принципиальную схему последовательности способа кодирования и декодирования для регулирования компенсации предсказания согласно одному варианту осуществления настоящей заявки, при этом способ кодирования и декодирования для регулирования компенсации предсказания на ФИГ. 3 может включать в себя этапы, на которых:

На этапе S300 определяют значения предсказания для пиксельных точек текущего блока изображения.

В данном варианте осуществления настоящей заявки значение предсказания для каждой пиксельной точки текущего блока изображения можно определять на основе информации о движении текущего блока изображения.

Например, текущий блок изображения может быть разбит на множество субблоков, при этом значение предсказания для каждой пиксельной точки в каждом субблоке можно определять на основе данного субблока.

Например, субблоки могут представлять собой субблоки 4*4 или субблоки 8*8.

Например, блок изображения 8*8 может быть разбит на четыре субблока 4*4, при этом определяют соответствующие значения предсказания для пиксельных точек в каждом субблоке 4*4.

В качестве другого примера, блок изображения 16*16 может быть разбит на четыре субблока 8*8, при этом определяют соответствующие значения предсказания для пиксельных точек в каждом субблоке 8*8.

На этапе S310 определяют значения градиента для пиксельных точек текущего блока изображения на основе значений предсказания для пиксельных точек текущего блока изображения.

На этапе S320 определяют векторы сдвига для пиксельных точек текущего блока изображения.

Для компенсации предсказания, в данном варианте осуществления настоящей заявки, с одной стороны, можно определять значения градиента для пиксельных точек текущего блока изображения на основе значений предсказания для пиксельных точек текущего блока изображения.

С другой стороны, можно определять вектор сдвига для каждой пиксельной точки текущего блока изображения.

Следует отметить, что в данном варианте осуществления настоящей заявки не установлен временной порядок для операций определения значений градиента для пиксельных точек текущего блока изображения и определения векторов сдвига для пиксельных точек текущего блока изображения. Иначе говоря, сперва можно определять значения градиента для пиксельных точек текущего блока изображения, а затем определяют векторы сдвига для пиксельных точек текущего блока изображения, как показано на ФИГ. 3. В качестве альтернативы, сперва можно определять векторы сдвига для пиксельных точек текущего блока изображения, а затем определяют значения градиента для пиксельных точек текущего блока изображения. В качестве альтернативы, значение градиента и вектор сдвига для каждой пиксельной точки текущего блока изображения можно определять одновременно, при этом частные варианты реализации не будут раскрываться повторно в настоящей заявке.

На этапе S330 определяют значения компенсации предсказания для пиксельных точек текущего блока изображения на основе значений градиента и векторов сдвига для пиксельных точек текущего блока изображения.

В данном варианте осуществления настоящей заявки значения компенсации предсказания для пиксельных точек текущего блока изображения можно определять на основе полученных значений градиента и определенных векторов сдвига для пиксельных точек текущего блока изображения.

На этапе S340 определяют конечное значение предсказания для пиксельной точки текущего блока изображения на основе значений предсказания и значений компенсации предсказания для пиксельных точек текущего блока изображения.

В данном варианте осуществления настоящей заявки конечные значения предсказания для пиксельных точек текущего блока изображения можно определять на основе полученных значений компенсации предсказания для пиксельных точек текущего блока изображения и значений предсказания.

Согласно последовательности способа на ФИГ. 3, после того, как будут определены значения предсказания для пиксельных точек текущего блока изображения, определяют значения компенсации предсказания для пиксельных точек текущего блока изображения на основе значений градиента и векторов сдвига для пиксельных точек текущего блока изображения. Конечные значения предсказания для пиксельных точек текущего блока изображения определяют на основе значений предсказания и значений компенсации предсказания для пиксельных точек текущего блока изображения. Регулирование компенсации предсказания больше не ограничено блоком изображения, использующим режим двунаправленного предсказания, и не ограничено блоком изображения, вектор движения каждого субблока которого является тем же, что и вектор движения каждого пикселя в соответствующем субблоке, что расширяет сферу применения регулирования компенсации предсказания.

В данном варианте осуществления настоящей заявки регулирование компенсации предсказания больше не ограничено блоками изображения в режиме двунаправленного предсказания. То есть способ также применим к блокам изображения в режиме однонаправленного предсказания.

В возможном варианте реализации, если текущий блок изображения использует режим однонаправленного предсказания, определение значения предсказания для каждой пиксельной точки текущего блока изображения на этапе S300 может включать в себя этап, на котором: определяют значения однонаправленного предсказания для пиксельных точек текущего изображения.

Определение значений градиента для пиксельных точек текущего блока изображения на основе значений предсказания для пиксельных точек текущего блока изображения на этапе S310 может включать в себя этап, на котором: определяют значения градиента для пиксельных точек текущего блока изображения в соответствующем направлении на основе значений однонаправленного предсказания для пиксельных точек текущего блока изображения.

Определение векторов сдвига для пиксельных точек текущего блока изображения на этапе S320 может включать в себя этап, на котором: определяют векторы сдвига для пиксельных точек текущего блока изображения в соответствующем направлении.

Определение значений компенсации предсказания для пиксельных точек текущего блока изображения на основе значений градиента и векторов сдвига для пиксельных точек текущего блока изображения на этапе S330 может включать в себя этап, на котором: определяют значения компенсации предсказания для пиксельных точек текущего блока изображения в соответствующем направлении на основе значений градиента и векторов сдвига для пиксельных точек текущего блока изображения в соответствующем направлении.

Определение конечных значений предсказания для пиксельных точек текущего блока изображения на основе значений предсказания и значений компенсации предсказания для пиксельных точек текущего блока изображения на этапе S340 может включать в себя этап, на котором: определяют конечные значения предсказания для пиксельных точек текущего блока изображения в соответствующем направлении на основе значений предсказания и значений компенсации предсказания для пиксельных точек текущего блока изображения в соответствующем направлении.

Например, если текущий блок изображения использует режим однонаправленного предсказания, то должно быть определено значение предсказания для пиксельной точки текущего блока изображения, при этом значение предсказания для данной пиксельной точки текущего блока изображения можно определить в одном направлении.

Например, если текущий блок изображения использует режим предсказания вперед, можно определить значение предсказания вперед для пиксельной точки текущего блока изображения; если текущий блок изображения использует режим предсказания назад, можно определить значение предсказания назад для данной пиксельной точки текущего блока изображения.

Для упрощения описания и понимания, ниже будет раскрыт пример режима предсказания вперед.

Значения предсказания вперед для пиксельных точек текущего блока изображения определены. С одной стороны, на основе значений предсказания вперед для пиксельных точек текущего блока изображения можно определять значения градиента в направлении вперед для пиксельных точек текущего блока изображения; с другой стороны, можно определять векторы сдвига в направлении вперед для пиксельных точек текущего блока изображения.

Кроме того, значения компенсации предсказания вперед для пиксельных точек текущего блока изображения можно определять на основе значений градиента в направлении вперед и векторов сдвига для пиксельных точек текущего блока изображения, а конечные значения предсказания вперед для пиксельных точек текущего блока изображения можно определять на основе значений предсказания вперед и значений компенсации предсказания для пиксельных точек текущего блока изображения.

В другом варианте реализации, если текущий блок изображения использует режим двунаправленного предсказания, операция определения значений предсказания для пиксельных точек текущего блока изображения на этапе S300 может включать в себя этап, на котором: определяют значения предсказания вперед и значений предсказания назад, соответственно, для пиксельных точек текущего блока изображения.

Определение значений градиента для пиксельных точек текущего блока изображения на основе значений предсказания для пиксельных точек текущего блока изображения на этапе S310 может включать в себя этап, на котором: определяют значения градиента в направлении вперед и значений градиента в направлении назад для пиксельных точек текущего блока изображения на основе значений предсказания вперед и значений предсказания назад, соответственно, для пиксельных точек текущего блока изображения.

Определение векторов сдвига для пиксельных точек текущего блока изображения на этапе S320 может включать в себя этап, на котором: определяют векторы сдвига в направлении вперед и векторов сдвига в направлении назад, соответственно, для пиксельных точек текущего блока изображения.

Определение значений компенсации предсказания для пиксельных точек текущего блока изображения на основе значений градиента и векторов сдвига для пиксельных точек текущего блока изображения на этапе S330 может включать в себя этап, на котором: определяют значения компенсации предсказания вперед и значений компенсации предсказания назад для пиксельных точек текущего блока изображения на основе значений градиента в направлении вперед, значений градиента в направлении назад, векторов сдвига в направлении вперед и векторов сдвига в направлении назад, соответственно, для пиксельных точек текущего блока изображения.

Определение конечных значений предсказания для пиксельных точек текущего блока изображения на основе значений предсказания и значений компенсации предсказания для пиксельных точек текущего блока изображения на этапе S340 может включать в себя этап, на котором: определяют конечные значения предсказания вперед и конечных значений предсказания назад для пиксельных точек текущего блока изображения на основе значений предсказания вперед, значений предсказания назад, значений компенсации предсказания вперед и значения компенсации предсказания назад, соответственно, для пиксельных точек текущего блока изображения; и определение конечных значений предсказания для пиксельных точек текущего блока изображения на основе конечных значений предсказания вперед и конечных значений предсказания назад для пиксельных точек текущего блока изображения.

Например, если текущий блок изображения использует режим двунаправленного предсказания, определяют значения предсказания вперед, значения предсказания назад, значения компенсации предсказания вперед и значения компенсации предсказания назад, соответственно, для пиксельных точек текущего блока изображения для определения конечных значений предсказания вперед и назад для пиксельных точек текущего блока изображения. Затем определяют конечное значение предсказания для пиксельных точек текущего блока изображения.

Например, если текущий блок изображения использует режим двунаправленного предсказания, конечные значения предсказания вперед или конечные значения предсказания назад для пиксельных точек текущего блока изображения можно определять с опорой на значения для текущего блока изображения, определяемые в режиме однонаправленного предсказания.

В случае определения конечных значений предсказания вперед и конечных значений предсказания назад для пиксельных точек текущего блока изображения, конечные значения предсказания для пиксельных точек текущего блока изображения можно определять на основе конечных значений предсказания вперед и конечных значений предсказания назад для пиксельных точек текущего блока изображения.

Например, выполняют взвешивание конечного значения предсказания вперед и конечного значения предсказания назад для каждой пиксельной точки текущего блока изображения с получением конечного значения предсказания для каждой пиксельной точки текущего блока изображения.

В одном варианте реализации операция определения векторов сдвига для пиксельных точек текущего блока изображения на этапе S320 может включать в себя этап, на котором:

для любого субблока текущего блока изображения определяют вектор сдвига конкретной пиксельной точки в субблоке; и

определяют векторы сдвига остальных пиксельных точек в субблоке на основе вектора сдвига конкретной пиксельной точки в субблоке.

Например, для любого субблока в текущем блоке изображения, для того, чтобы определить векторы сдвига для пиксельных точек в субблоке, сначала можно определить вектор сдвига какой-либо пиксельной точки (в настоящей заявке именуемой «конкретная пиксельная точка») в субблоке, после чего определяют векторы сдвига других пиксельных точек в субблоке на основе вектора сдвига конкретной пиксельной точки в субблоке.

Например, в одном из вариантов осуществления с использованием режима аффинного движения в отношении текущего блока изображения определение вектора сдвига конкретной пиксельной точки в субблоке может включать в себя этап, на котором:

определяют вектор сдвига конкретной пиксельной точки в субблоке на основе аффинных параметров и сдвига конкретной пиксельной точки от центрального положения субблока.

Например, в случае применения к текущему блоку изображения режима аффинного движения, вектор сдвига конкретной пиксельной точки в субблоке можно определять на основе аффинных параметров и сдвига конкретной пиксельной точки в субблоке от центрального положения субблока.

В одном из примеров определение вектора сдвига конкретной пиксельной точки в субблоке на основе аффинных параметров и сдвига конкретной пиксельной точки от центрального положения субблока может включать в себя этап, на котором:

определяют горизонтальную составляющую вектора сдвига конкретной пиксельной точки в субблоке по сдвигу конкретной пиксельной точки от центрального положения субблока в горизонтальном направлении, сдвигу конкретной пиксельной точки от центрального положения субблока в вертикальном направлении, первого аффинного параметра и второго аффинного параметра; и

определяют вертикальную составляющую вектора сдвига конкретной пиксельной точки в субблоке по сдвигу конкретной пиксельной точки от центрального положения субблока в горизонтальном направлении, сдвигу конкретной пиксельной точки от центрального положения субблока в вертикальном направлении, третьего аффинного параметра и четвертого аффинного параметра.

Например, в случае 4-параметрической аффинной модели, первый аффинный параметр и четвертый аффинный параметр являются одинаковыми, при этом каждый из них представляет собой отношение первого числового значения к ширине субблока, второй аффинный параметр и третий аффинный параметр противоположны, при этом третий аффинный параметр представляет собой отношение второго числового значения к ширине субблока.

В случае 6-параметрической аффинной модели, первый аффинный параметр представляет собой отношение первого числового значения к ширине субблока, второй аффинный параметр представляет собой отношение третьего числового значения к высоте субблока, третий аффинный параметр представляет собой отношение второго числового значения к ширине субблока, а четвертый аффинный параметр представляет собой отношение четвертого числового значения к высоте субблока.

Первое числовое значение представляет собой разность горизонтальной составляющей вектора движения верхней правой контрольной точки субблока и горизонтальной составляющей вектора движения верхней левой контрольной точки субблока, второе числовое значение представляет собой разность вертикальной составляющей вектора движения верхней правой контрольной точки субблока и вертикальной составляющей вектора движения верхней левой контрольной точки субблока, третье числовое значение представляет собой разность горизонтальной составляющей вектора движения нижней левой контрольной точки субблока и горизонтальной составляющей вектора движения верхней левой контрольной точки субблока, а четвертое числовое значение представляет собой разность вертикальной составляющей вектора движения нижней левой контрольной точки субблока и вертикальной составляющей вектора движения верхней левой контрольной точки субблока.

Например, как видно из ФИГ. 4, векторами движения верхней левой контрольной точки, верхней правой контрольной точки и нижней левой контрольной точки являются , и , соответственно, первое числовое значение составляет , второе числовое значение -, третье числовое значение - , четвертое числовое значение - . Аффинные параметры с первого по четвертый (с - f, например) согласно 4-параметрической аффинной модели и 6-параметрической аффинной модель могут быть соответственно представлены в уравнениях (1) и (2):

В одном из примеров вектор сдвига конкретной пиксельной точки в субблоке на основе аффинных параметров и сдвига конкретной пиксельной точки от центрального положения субблока можно определить с помощью следующего уравнения:

Например,- горизонтальная составляющая вектора сдвига конкретной пиксельной точки в субблоке, - вертикальная составляющая вектора сдвига конкретной пиксельной точки в субблоке, а (Δх, Δу) - сдвиг конкретной пиксельной точки от центрального положения субблока.

В одном из примеров определение векторов сдвига остальных пиксельных точек в субблоке на основе вектора сдвига конкретной пиксельной точки в субблоке включает в себя этапы, на которых:

определяют горизонтальные составляющие векторов сдвига других пиксельных точек в строке конкретной пиксельной точки в субблоке на основе горизонтальной составляющей вектора сдвига конкретной пиксельной точки в субблоке и первого аффинного параметра;

определяют вертикальные составляющие векторов сдвига других пиксельных точек в строке конкретной пиксельной точки в субблоке на основе вертикальной составляющей вектора сдвига конкретной пиксельной точки в субблоке и третьего аффинного параметра; и

для каждой пиксельной точки в строке конкретной пиксельной точки определяют горизонтальные составляющие векторов сдвига других пиксельных точек в столбце пиксельной точки в субблоке на основе горизонтальной составляющей вектора сдвига пиксельной точки и второго аффинного параметра; и определяют вертикальные составляющие векторов сдвига других пиксельных точек в столбце пиксельной точки в субблоке на основе вертикальной составляющей вектора сдвига пиксельной точки и четвертого аффинного параметра.

Например, к текущему блоку изображения применяют режим аффинного движения. После того, как будет определен вектор сдвига конкретной пиксельной точки в субблоке, могут быть определены соответствующие векторы сдвига других пиксельных точек в той же строке, что и конкретная пиксельная точка, на основе вектора сдвига субблока, первого аффинного параметра и третьего аффинного параметра.

Когда будут определены векторы сдвига для пиксельных точек в строке конкретной пиксельной точки субблока, для любой пиксельной точки в строке конкретной пиксельной точки в субблоке могут быть определены векторы сдвига других пиксельных точек в том же столбце, что и данная пиксельная точка, в субблоке на основе вектора сдвига пиксельной точки, второго аффинного параметра и четвертого аффинного параметра.

Например, для любой пиксельной точки в субблоке, горизонтальная составляющая вектора сдвига пиксельной точки может представлять собой сумму горизонтальной составляющей вектора сдвига соседней слева пиксельной точки (при ее наличии) и первого аффинного параметра или разность горизонтальной составляющей вектора сдвига соседней справа пиксельной точки (при ее наличии) и первого аффинного параметра. Вертикальная составляющая вектора сдвига пиксельной точки может представлять собой сумму вертикальной составляющей вектора сдвига соседней слева пиксельной точки (при ее наличии) и третьего аффинного параметра или разность вертикальной составляющей вектора сдвига соседней справа пиксельной точки (при ее наличии) и третьего аффинного параметра.

Кроме того, для любой пиксельной точки в субблоке, горизонтальная составляющая вектора сдвига пиксельной точки может представлять собой сумму горизонтальной составляющей вектора сдвига соседней сверху пиксельной точки (при ее наличии) и второго аффинного параметра или разность горизонтальной составляющей вектора сдвига соседней снизу пиксельной точки (при ее наличии) и второго аффинного параметра. Вертикальная составляющая вектора сдвига пиксельной точки может представлять собой сумму вертикальной составляющей вектора сдвига соседней сверху пиксельной точки (при ее наличии) и четвертого аффинного параметра или разность вертикальной составляющей вектора сдвига соседней снизу пиксельной точки (при ее наличии) и четвертого аффинного параметра.

Водном варианте реализации операция определения значений градиента для пиксельных точек текущего блока изображения на основе значений предсказания для пиксельных точек текущего блока изображения на этапе S310 включает в себя этапы, на которых:

для каждого субблока текущего блока изображения заполняют N строк / столбцов целопиксельных точек на каждой из верхней, нижней, левой и правой границ субблока; причем N представляет собой положительное целое число; и

определяют значения градиента для пиксельных точек в субблоке на основе значений предсказания для пиксельных точек и значений пикселей заполненных целопиксельных точек субблока.

Например, для определения горизонтальной составляющей значения градиента пиксельной точки нужны значения пикселей соседних пиксельных точек слева и справа от пикселя, а для определения вертикальной составляющей значения градиента пиксельной точки нужны значения пикселей соседних пиксельных точек над и под данной пиксельной точкой. При этом для пиксельной точки на границе субблока отсутствует нужные пиксели с по меньшей мере одной стороны.

Например, для пиксельной точки на верхней границе субблока отсутствуют пиксельные точки над ней в субблоке; а для пиксельных точек на левой границе субблока отсутствуют пиксельные точки слева в субблоке.

Поэтому, для того, чтобы определить значения градиента всех пиксельных точек в субблоке, заполняют, соответственно, N (N представляет собой положительное целое число) строк / столбцов целопиксельных точек (пиксели являются целыми) на каждой из верхней, нижней, левой и правой границ субблока. Значения градиента для пиксельных точек в субблоке определяют на основе значений предсказания для пиксельных точек субблока и значений пикселей заполненных целопиксельных точек.

Например, для уменьшения роста использования полосы пропускания, значения пикселей заполняемой строки / столбца целопиксельных точек могут быть скопированы напрямую из ближних целопиксельных точек опорного пикселя.

В одном из вариантов осуществления на этапе, на котором заполняют N строк / столбцов целопиксельных точек на каждой из верхней, нижней, левой и правой границ субблока:

выявляют в опорном изображении целопиксельный блок, ближайший к указанному субблоку и одного с ним размера; и

принимают значения пикселей N строк / столбцов целопиксельных точек, соседних целопиксельному блоку, в качестве значений пикселей заполнения пиксельных точек на верхней, нижней, левой и правой границах субблока, соответственно.

Например, для заполнения N строк / столбцов целопиксельных точек на верхней, нижней, левой и правой границах субблока, сперва можно выявить ближайший к субблоку равновеликий целопиксельный блок (блок, образованный целопиксельными точками) в опорном изображении.

Например, для субблока 4*4, ближайший целопиксельный субблок 4*4 в опорном изображении можно выявить, как показано на ФИГ. 5А.

После того, как в опорном изображении будет выявлен ближайший к субблоку равновеликий целопиксельный блок, значения пикселей соседних N строк / столбцов целопиксельных точек вокруг целопиксельного блока можно использовать в качестве значений заполнения пиксельных точек на верхней, нижней, левой и правой границах субблока, соответственно.

Например, заполнение точек при N=1 и N=2 показано на ФИГ. 5 В и 5С, соответственно.

В одном из примеров заполнение N строк / столбцов целопиксельных точек на каждой из верхней, нижней, левой и правой границ субблока включает в себя этапы, на которых:

заполняют, соответственно, N строк / столбцов целопиксельных точек, расположенных точно сверху, снизу, слева и справа от целопиксельного блока, соответственно.

Например, в результате заполнения N строк/ столбцов целопиксельных точек на верхней, нижней, левой и правой границах субблока будет получен заполненный блок, по ширине и высоте превышающий исходный блок на 2N. Угловые точки каждого слоя пиксельных точек в N слоях пиксельных точек за пределами блока не будут учтены при вычислении значения градиента для каждой пиксельной точки в исходном блоке на основе значения пикселя каждой пиксельной точки в блоке.

Поэтому, для снижения связанной с заполнением рабочей нагрузки и повышения эффективности заполнения, при заполнении N строк / столбцов целопиксельных точек на верхней, нижней, левой и правой границах субблока, заполняют N строк / столбцов целопиксельных точек точно сверху, снизу, слева и справа от указанного равновеликий ближайшего целопиксельного блока в опорном изображении.

Например, N=2. Окончательно заполненные точки показаны на ФИГ. 5D.

В одном из вариантов осуществления, если N=1, то при заполнении, соответственно, 1 строки / столбца целых пикселей на верхней, нижней, левой и правой границах субблока:

если субпиксельная вертикальная составляющая значения предсказания для пиксельной точки в субблоке больше половины пикселя, заполняют ближайшую целопиксельную точку над верхней границей субблока и заполняют следующую за ближайшей целопиксельную точку под нижней границей субблока;

если субпиксельная вертикальная составляющая значения предсказания для пиксельной точки в субблоке меньше половины пикселя, заполняют следующую за ближайшей целопиксельную точку над верхней границей субблока и заполняют ближайшую целопиксельную точку под нижней границей субблока;

если субпиксельная горизонтальная составляющая значения предсказания для пиксельной точки в субблоке больше половины пикселя, заполняют ближайшую целопиксельную точку слева от левой границы субблока и заполняют следующую за ближайшей целопиксельную точку справа от правой границы субблока; и

если субпиксельная горизонтальная составляющая значения предсказания для пиксельной точки в субблоке меньше половины пикселя, заполняют следующую за ближайшей целопиксельную точку слева от левой границы субблока и заполняют ближайшую целопиксельную точку справа от правой границы субблока.

Например, при определении горизонтальной составляющей значения градиента пиксельной точки используют значение пикселя пиксельной точки, расположенной слева от указанной пиксельной точки со смещением на один пиксель относительно указанной пиксельной точки, и значение пикселя пиксельной точки, расположенной справа от указанной пиксельной точки со смещением на один пиксель относительно указанной пиксельной точки. Кроме того, при заполнении пиксельных точек на субблоке, все заполняемые строки / столбцы являются целопиксельными точками. Поэтому, если значение предсказания для пиксельной точки в субблоке не является целопиксельный, то смещение заполненной целопиксельной точки и пиксельной точки на границе субблока относительно друг друга не будет составлять один пиксель (смещение не-целопиксельной точки и целопиксельной точки относительно друг друга не составляет целый пиксель).

Для уменьшения погрешности определения значений градиента для пиксельных точек и повышения точности определения значений градиента для пиксельных точек, если нужно заполнить по 1 строке / столбцу целопиксельных точек на верхней, нижней, левой и правой границах субблока, то положения подлежащих заполнению целопиксельных точек можно выбирать в зависимости от того, превышает ли вертикальная составляющая и горизонтальная составляющая субпикселя (а именно - часть за вычетом целого пикселя, т.е. если значение пикселя составляет 5,4, то субпиксель - это 0,4) значения предсказания для данной пиксельной точки в субблоке половину пикселя (т.е. 0,5 пикселя).

В одном из примеров заполнению подлежат целопиксельные точки на верхней и нижней границах.

Можно получить вертикальную составляющую субпикселя значения предсказания для данной пиксельной точки в субблоке и сравнить вертикальную составляющую субпикселя с половиной пикселя.

Например, субпиксель значения предсказания для пиксельной точки в субблоке означает субпиксель соответствующего положения в опорном изображении для значения предсказания для данной пиксельной точки в субблоке.

Если вертикальная составляющая субпикселя больше половины пикселя, для любой пиксельной точки на верхней границе субблока, сравниваемой с другими целопиксельными точками над данной пиксельной точкой, смещение ближайшей целопиксельной точки над данной пиксельной точкой относительно данной пиксельной точки наиболее близко к одному пикселю, поэтому вышеуказанную ближайшую целопиксельную точку заполняют для данной пиксельной точки.

Для любой пиксельной точки на нижней границе субблока, сравниваемой с другими целопиксельными точками под данной пиксельной точкой, смещение следующей за ближайшей целопиксельной точки под данной пиксельной точкой относительно данной пиксельной точки наиболее близко к одному пикселю.

Например, если вертикальная составляющая субпикселя пиксельной точки на нижней границе субблока равна 0,8, смещение ближайшей целопиксельной точки под данной пиксельной точкой относительно данной пиксельной точки равно 0,2, смещение следующей за ближайшей целопиксельной точки под данной пиксельной точкой относительно данной пиксельной точки равно 1,2, а смещение всех прочих целопиксельных точек под данной пиксельной точкой относительно данной пиксельной точки больше 1,2, то очевидно, что смещение следующей за ближайшей целопиксельной точкой под данной пиксельной точкой относительно данной пиксельной точки наиболее близко к одному пикселю.

Поэтому следующую за ближайшей целопиксельную точку заполняют для данной пиксельной точки.

Аналогичным образом,

если субпиксельная вертикальная составляющая значения предсказания для пиксельной точки в субблоке меньше половины пикселя, заполняют следующую за ближайшей целопиксельную точку над верхней границей субблока и заполняют ближайшую целопиксельную точку под нижней границей субблока;

если субпиксельная горизонтальная составляющая значения предсказания для пиксельной точки в субблоке больше половины пикселя, заполняют ближайшую целопиксельную точку слева от левой границы субблока и заполняют следующую за ближайшей целопиксельную точку справа от правой границы субблока; и

если субпиксельная горизонтальная составляющая значения предсказания для пиксельной точки в субблоке меньше половины пикселя, заполняют следующую за ближайшей целопиксельную точку слева от левой границы субблока и заполняют ближайшую целопиксельную точку справа от правой границы субблока.

Следует отметить, что для случая, в котором горизонтальная составляющая субпикселя значения предсказания для данной пиксельной точки равна половине пикселя, обработка может происходить так же, как в случае, когда горизонтальная составляющая субпикселя значения предсказания для данной пиксельной точки больше половины пикселя, или как в случае, когда горизонтальная составляющая субпикселя значения предсказания для данной пиксельной точки меньше половины пикселя.

Аналогичным образом, для случая, в котором вертикальная составляющая субпикселя значения предсказания для данной пиксельной точки равна половине пикселя, обработка может происходить так же, как в случае, когда вертикальная составляющая субпикселя значения предсказания для данной пиксельной точки больше половины пикселя, или как в случае, когда вертикальная составляющая субпикселя значения предсказания для данной пиксельной точки меньше половины пикселя.

В одном из примеров заполнение 1 строки / столбца целопиксельных точек на верхней, нижней, левой и правой границах субблока, соответственно, включает в себя:

заполнение целопиксельных точек в области заполнения, образованной подлежащими заполнению строками / столбцами на верхней, нижней, левой и правой границах субблока, за исключением 4 угловых точек области заполнения.

В результате заполнения 1 строки / столбца целопиксельных точек на верхней, нижней, левой и правой границах субблока будет получен блок, по ширине и высоте превышающий исходный блок на 2. Четыре угловые точки блока не будут учтены при вычислении значений градиента для пиксельных точек в исходном блоке на основе значений пикселей пиксельных точек в блоке.

Например, исходный субблок представляет собой субблок 4*4, при этом в результате заполнения 1 строки / столбца целопиксельных точек на верхней, нижней, левой и правой границах субблока будет получен блок 6*6, а 4 угловые точки блока 6*6 не будет учтены при вычислении значений градиента для пиксельных точек в исходном блоке 4*4.

Таким образом, для снижения связанной с заполнением рабочей нагрузки и повышения эффективности заполнения, при заполнении 1 строки / столбца целопиксельных точек на верхней, нижней, левой и правой границах субблока, соответственно, могут быть заполнены целопиксельные точки в области заполнения, образованной строками / столбцами, заполняемыми на верхней, нижней, левой и правой границах субблока, за вычетом 4 угловых точек области заполнения.

В одном из примеров определение значений градиента для пиксельных точек в субблоке на основе значений предсказания для пиксельных точек и значений пикселей заполненных целопиксельных точек субблока может включать в себя этап, на котором:

для каждой пиксельной точки в субблоке определяют горизонтальную составляющую значения градиента пиксельной точки на основе значений пикселей N соседних пиксельных точек слева отданной пиксельной точки и значений пикселей N соседних пиксельных точек справа от данной пиксельной точки и определяют вертикальную составляющую значения градиента пиксельной точки на основе значений пикселей N соседних пиксельных точек над данной пиксельной точкой и значений пикселей N соседних пиксельных точек под данной пиксельной точкой.

Например, для каждой пиксельной точки в субблоке, горизонтальную составляющую значения градиента пиксельной точки можно определять на основе значений пикселей пиксельных точек слева от данной пиксельной точки и значений пикселей пиксельных точек справа от данной пиксельной точки, соответственно, а вертикальную составляющую можно определять на основе значений пикселей пиксельных точек над данной пиксельной точкой и значений пикселей пиксельных точек под данной пиксельной точкой.

Для определения горизонтальной составляющей или/и вертикальной составляющей значения градиента пиксельной точки на границе субблока нужны значения пикселей заполненных целопиксельных точек, соседних пиксельной точке.

Например, для определения вертикальной составляющей значения градиента пиксельной точки на верхней границе субблока нужно значение пикселя соседней ей сверху заполненной целопиксельной точки (ближайшей целопиксельной точки или следующей за ближайшей целопиксельной точки); для определения горизонтальной составляющей значения градиента пиксельной точки на левой границе субблока нужно значение пикселя соседней ей слева заполненной целопиксельной точки.

Например, N=1. Для любой пиксельной точки в субблоке, значение градиента пиксельной точки можно определить с помощью следующего уравнения:

Например, - горизонтальная составляющая значения радиента пиксельной точки в i-ном столбце и j-ной строке в субблоке, - горизонтальная составляющая значения градиента пиксельной точки в i-ном столбце и j-ной строке в субблоке, I(i,j) - значение пикселя пиксельной точки в i-ном столбце и j-ной строке в субблоке.

Следует отметить, что для устройства кодирования значение пикселя пиксельной точки в субблоке является значением предсказания, а значение пикселя заполненной целопиксельной точки - исходным значением; для устройства декодирования значение пикселя пиксельной точки в субблоке является значением предсказания, а значение пикселя заполненной целопиксельной точки - значением восстановления.

Для достижения эффекта от использования решения по регулированию компенсации предсказания согласно одному варианту осуществления настоящей заявки и во избежание использования данного решения в случае, когда оно неприменимо, может быть заранее задано условие (в настоящей заявке именуемое «разрешающее условие для регулирования компенсации предсказания»), разрешающее использование решения по регулированию компенсации предсказания согласно одному варианту осуществления настоящей заявки.

В возможном варианте реализации:

перед этапом, на котором определяют значения градиента для пиксельных точек текущего блока изображения на основе значений предсказания для пиксельных точек текущего блока изображения, способ дополнительно содержит этапы, на которых:

определяют, удовлетворяет ли текущий блок изображения разрешающему условию для регулирования компенсации предсказания; и

если текущий блок изображения удовлетворяет разрешающему условию для регулирования компенсации предсказания, выполняют операцию определения значений градиента для пиксельных точек текущего блока изображения на основе значений предсказания для пиксельных точек текущего блока изображения.

В одном из примеров разрешающее условие для регулирования компенсации предсказания может включать в себя то, что: к текущему блоку изображения применяют конкретный режим предсказания, и то, что в данном конкретном режиме предсказания вектор движения субблока не идентичен вектору движения какой-либо пиксельной точки в субблоке.

Например, выполнение регулирования компенсации предсказания согласно известным решениям по регулированию компенсации предсказания невозможно в режиме предсказания (в настоящей заявке именуемом «конкретный режим предсказания»), в котором вектор движения субблока не идентичен вектору движения какой-либо пиксельной точки в субблоке, поэтому разрешающее условие для регулирования компенсации предсказания может быть сформулировано следующим образом: к текущему блоку изображения применяют конкретный режим предсказания.

В ходе определения значения предсказания для пиксельных точек текущего блока изображения, заключение об использовании решения по регулированию компенсации предсказания согласно одному варианту осуществления настоящей заявки может быть сделано в зависимости от режима предсказания текущего блока изображения.

Если используется решение по регулированию компенсации предсказания, то есть если текущий блок изображения использует конкретный режим предсказания, то осуществляют регулирование компенсации предсказания в отношении текущего блока изображения в порядке, раскрытом в приведенном выше варианте осуществления.

Например, конкретный режим предсказания включает в себя режим аффинного движения.

В другом примере разрешающее условие для регулирования компенсации предсказания может дополнительно включать в себя то, что: текущей предсказываемой составляющей является яркостная составляющая, то есть регулирование компенсации предсказания осуществляют в отношении яркостной составляющей блока изображения, использующего конкретный режим предсказания согласно решению по регулированию компенсации предсказания согласно одному варианту осуществления настоящей заявки.

В еще одном примере разрешающее условие для регулирования компенсации предсказания может дополнительно включать в себя то, что: текущей предсказываемой составляющей является цветностная составляющая, то есть регулирование компенсации предсказания осуществляют в отношении цветностной составляющей блока изображения, использующего конкретный режим предсказания согласно решению по регулированию компенсации предсказания согласно одному варианту осуществления настоящей заявки.

Для облегчения понимания специалистами в данной области техники технических решений, предложенных в вариантах осуществления настоящей заявки, они будут раскрыты ниже на частных примерах.

Вариант осуществления 1

ФИГ. 6 изображает принципиальную схему последовательности способа кодирования и декодирования, предложенного в одном из вариантов осуществления настоящей заявки, в части процесса декодирования и аффинного режима. Способ кодирования и декодирования на ФИГ. 6 может включать в себя этапы, на которых:

На этапе S600 определяют значения предсказания для пиксельных точек подлежащего декодированию блока.

Например, блок декодирования разбивают на субблоки 4*4 и декодируют каждый субблок по отдельности.

Для любого субблока 4*4 значения предсказания для пиксельных точек в субблоке можно определять в аффинном режиме.

Например, значение пикселя пиксельной точки с координатами (i, j) в субблоке обозначено «I (i, j)».

На этапе S610: определяют, удовлетворяет ли блок декодирования разрешающему условию для регулирования компенсации предсказания, и если блок декодирования удовлетворяет условию для регулирования компенсации предсказания, переходят на этап S620 последовательности; в противном случае -текущий процесс завершают.

Например, после того, как будут определены значения предсказания для пиксельных точек подлежащего декодированию блока, определяют, удовлетворяет ли блок разрешающему условию для регулирования компенсации предсказания.

Если будет определено, что подлежащий декодированию блок не удовлетворяет разрешающему условию для регулирования компенсации предсказания, то регулирование компенсации предсказания не подлежит осуществлению согласно решению по регулированию компенсации предсказания, предложенному в варианте осуществления настоящей заявки. В данном случае, значения предсказания для пиксельных точек блока, определенные на этапе S600, можно определить в качестве конечных значений предсказания для пиксельных точек. В качестве альтернативы, можно осуществить решение по регулированию компенсации предсказания согласно иным стратегиям, при этом конкретный вариант его реализации не ограничен.

На этапе S620 для каждого субблока определяют значения градиента для пиксельных точек субблока на основе значений предсказания для пиксельных точек субблока.

На этапе S630 определяют векторы сдвига для пиксельных точек субблока.

Например, когда будет определено, что подлежащий декодированию блок удовлетворяет разрешающему условию для регулирования компенсации предсказания, для любого субблока 4*4 можно определить значения градиента для пиксельных точек субблока 4*4 на основе значений предсказания для пиксельных точек субблока 4*4.

Кроме того, можно определить векторы сдвига для пиксельных точек субблока 4*4.

На этапе S640 определяют значения компенсации предсказания для пиксельных точек субблока на основе значений градиента и векторов сдвига пиксельной точки субблока.

Например, когда будут определены значения градиента и векторы сдвига для пиксельных точек субблока 4*4, можно определить значения компенсации предсказания для пиксельных точек субблока 4*4 на основе значений градиента и векторов сдвига для пиксельных точек субблока 4*4.

На этапе S650 определяют конечные значения предсказания для пиксельных точек блока на основе значений предсказания и значений компенсации предсказания для пиксельных точек подлежащего декодированию блока.

Например, в случае использования режима однонаправленного предсказания, можно определить значения однонаправленного предсказания и значения компенсации предсказания для пиксельных точек подлежащего декодированию блока в соответствующем направлении, как раскрыто на этапах S600 - S640. Далее получают конечные значения предсказания для пиксельных точек подлежащего декодированию блока.

В случае использования режима двунаправленного предсказания, можно определить значения предсказания вперед, значения предсказания назад, значения компенсации предсказания вперед и значения компенсации предсказания назад для пиксельных точек подлежащего декодированию блока, как раскрыто на этапах S600 -S640, после чего получают конечные значения предсказания для пиксельных точек подлежащего декодированию блока.

Вариант осуществления 2

В одном из примеров разрешающее условие для последовательности способа кодирования и декодирования, раскрытой на этапах S600 - S650, может включать в себя то, что:

к текущему блоку изображения применяют режим аффинного движения.

Вариант осуществления 3

В одном из примеров разрешающее условие для последовательности способа кодирования и декодирования, раскрытой на этапах S600 - S650, может включать в себя то, что:

к текущему блоку изображения применяют режим аффинного движения; и

текущей предсказываемой составляющей является яркостная составляющая. Вариант осуществления 4

В одном из примеров разрешающее условие для последовательности способа кодирования и декодирования, раскрытой на этапах S600 - S650, может включать в себя то, что:

к текущему блоку изображения применяют режим аффинного движения; и

текущей предсказываемой составляющей является цветностная составляющая.

Вариант осуществления 5

В одном из примеров на основе любого из раскрытых выше вариантов осуществления определение значений градиента для пиксельных точек субблока на этапе S620 может включать в себя этапы, на которых:

1. Заполняют 1 строку / столбец целопиксельных точек на верхней границе, нижней границе, левой границе и правой границе блока 4*4, соответственно, с получением соответствующего блока 6*6.

Например, значения пикселей целопиксельных точек, заполняемых на верхней, нижней, левой и правой границах блока 4*4, могут быть выведены из восстановленных значений соседних целопиксельных точек в опорном изображении.

2. Вычисляют значения градиента для пиксельных точек в субблоке 4*4 на основе значений пикселей пиксельных точек в блоке 6*6.

Например, для каждой пиксельной точки в субблоке 4*4, значение градиента пиксельной точки можно определять с помощью уравнений 4 и 5 (горизонтальная составляющая значения градиента пиксельной точки может быть представлена в виде mm_gradx, а вертикальная составляющая значения градиента пиксельной точки - в виде mm_grady).

Вариант осуществления 6

В примере на основе варианта осуществления 5 заполняют 1 строку / столбец целопиксельных точек на верхней, нижней, левой и правой границах субблока 4*4, соответственно, что может включать в себя нижеследующие варианты реализации.

Например, целопиксельные точки, заполняемые на верхней, нижней, левой и правой границах субблока 4*4, могут быть выбраны в зависимости от того, превышают ли горизонтальная составляющая и вертикальная составляющая субпикселя значения предсказания для пиксельной точки в субблоке 4*4 половину пикселя.

В примере на ФИГ. 7А, если и горизонтальная составляющая, и вертикальная составляющая субпикселя значения предсказания для данной пиксельной точки больше половины пикселя, заполняют ближайшую целопиксельную точку над верхней границей субблока 4*4, следующую за ближайшей целопиксельную точку под нижней границей субблока 4*4, ближайшую целопиксельную точку слева от левой границы субблока 4*4 и следующую за ближайшей целопиксельную точку справа от правой границы субблока 4*4.

В примере на ФИГ. 7 В, если и горизонтальная составляющая, и вертикальная составляющая субпикселя значения предсказания для данной пиксельной точки меньше половины пикселя, заполняют следующую за ближайшей целопиксельную точку над верхней границей субблока 4*4, ближайшую целопиксельную точку под нижней границей субблока 4*4, следующую за ближайшей целопиксельную точку слева от левой границы субблока 4*4 и следующую за ближайшей целопиксельную точку справа от правой границы субблока 4*4.

В примере на ФИГ. 7С, если горизонтальная составляющая субпикселя значения предсказания для пиксельной точки больше половины пикселя, а вертикальная составляющая субпикселя значения предсказания для данной пиксельной точки меньше половины пикселя, заполняют следующую за ближайшей целопиксельную точку над верхней границей субблока 4*4, ближайшую целопиксельную точку под нижней границей субблока 4*4, ближайшую целопиксельную точку слева от левой границы субблока 4*4 и следующую за ближайшей целопиксельную точку справа от правой границы субблока 4*4.

В примере на ФИГ. 7D, если горизонтальная составляющая субпикселя значения предсказания для пиксельной точки меньше половины пикселя, а вертикальная составляющая субпикселя значения предсказания для данной пиксельной точки больше половины пикселя, заполняют следующую за ближайшей целопиксельную точку над верхней границей субблока 4*4, следующую за ближайшей целопиксельную точку под нижней границей субблока 4*4, следующую за ближайшей целопиксельную точку слева от левой границы субблока 4*4 и ближайшую целопиксельную точку справа от правой границы субблока 4*4.

Например, на ФИГ. 7А - 7D, треугольник обозначает значение предсказания для пиксельной точки субблока 4*4, круг - восстановленное значение целопиксельной точки в опорном изображении, а заштрихованный круг -восстановленное значение целопиксельной точки в опорном изображении, выбранной для заполнения.

Следует отметить, что, если горизонтальная составляющая субпикселя значения предсказания для данной пиксельной точки равна половине пикселя, процесс заполнения можно выполнять, как в случае, когда горизонтальная составляющая субпикселя значения предсказания для данной пиксельной точки больше половины пикселя, или как в случае, когда горизонтальная составляющая субпикселя значения предсказания для данной пиксельной точки меньше половины пикселя.

Аналогичным образом, если вертикальная составляющая субпикселя значения предсказания для данной пиксельной точки равна половине пикселя, процесс заполнения можно выполнять, как в случае, когда вертикальная составляющая субпикселя значения предсказания для данной пиксельной точки больше половины пикселя, или как в случае, когда вертикальная составляющая субпикселя значения предсказания для данной пиксельной точки меньше половины пикселя.

Вариант осуществления 7

В примере на основе варианта осуществления 6, поскольку значения пикселей четырех угловых точек области заполнения не будут использоваться, при заполнении 1 строки / столбца целопиксельных точек на верхней, нижней, левой и правой границах субблока 4*4 указанные 4 угловые точки можно не заполнять. 4 точки на каждой из верхней, нижней, левой и правой границ можно заполнить, соответственно.

ФИГ. 7Е - принципиальная схема, изображающая блок с 1 строкой / столбцом на верхней, нижней, левой и правой границах субблока 4*4, заполняемыми в случае, когда и горизонтальная составляющая, и вертикальная составляющая субпикселя значения предсказания для данной пиксельной точки больше половины пикселя.

Раскрытый выше процесс применим и в других случаях.

Вариант осуществления 8

В одном из примеров на основе любого из раскрытых выше вариантов осуществления определение векторов сдвига для пиксельных точек субблока на этапе S630 может включать в себя этапы, на которых:

1. Вычисляют аффинные параметры с (т.е. первый аффинный параметр), d (т.е. второй аффинный параметр), е (т.е. третий аффинный параметр) и f (т.е. четвертый аффинный параметр).

Например, аффинные параметры с, d, е и f можно определять с помощью уравнений 1 и 2.

2. Определяют вектор сдвига первой пиксельной точки в субблоке 4*4 на основе аффинных параметров с, d, е и f и сдвиг первой пиксельной точки в субблоке 4*4 от центрального положения субблока 4*4.

Например, конкретной пиксельной точкой является первая пиксельная точка.

Сдвиг (Δх, Δу) первой пиксельной точки в субблоке 4*4 от центрального положения субблока 4*4 можно определять по координатам первой пиксельной точки в субблоке 4*4 и координатам центрального положения субблока 4*4.

Вектор сдвига первой пиксельной точки субблока 4*4 можно определять с помощью следующего уравнения:

3. Векторы сдвига других пиксельных точек в субблоке 4*4 определяют на основе векторов сдвига первой пиксельной точки в субблоке 4*4.

После того, как будет определен вектор сдвига первой пиксельной точки в субблоке 4*4 с помощью уравнения 6, векторы сдвига других пиксельных точек в первой строке субблока 4*4 можно определять с помощью следующего уравнения:

- горизонтальная составляющая вектора сдвига пиксельной точки в столбце w+1 и 1-ой строке в субблоке 4*4, - вертикальная составляющая вектора сдвига пиксельной точки в столбце w+1 и 1-ой строке в субблоке 4*4, при этом 1≤w≤3. После того, как векторы сдвига для пиксельных точек в первой строке в субблоке 4*4 будут определены с помощью уравнения 7, векторы сдвига других пиксельных точек в субблоке 4*4 можно определять с помощью

следующего уравнения:

- горизонтальная составляющая вектора сдвига пиксельной точки в столбце w+1 и строке h+1 в субблоке 4*4, - вертикальная составляющая вектора сдвига пиксельной точки в столбце w+1 и строке h+1 в субблоке 4*4, при этом 1≤h≤3.

Следует отметить, что, поскольку параметры аффинного режима и пиксельные точки в одном и том же положении в каждом субблоке имеют одинаковый сдвиг от центрального положения субблока, после того, как будут вычислены векторы сдвига для пиксельных точек в одном субблоке, векторы сдвига для пиксельных точек в данном субблоке можно повторно использовать для других субблоков в блоке декодирования.

Вариант осуществления 9

В одном из примеров на основе варианта осуществления 8 можно использовать «сдвиг влево, а затем сдвиг вправо» вместо разбиения при вычислении аффинных параметры с, d, е и f для обеспечения точности и повышения удобства для аппаратных средств.

Параметры с и е могут быть сначала сдвинуты влево на (MAX_CU_DEPTH-Log2[width]) бит, а затем сдвинуты вправо на MAX_CU_DEPTH бит; параметры d и f в 6-параметрической модели могут быть сдвинуты влево на (MAX_CU_DЕРТН-Log2[height]) бит, а затем сдвинуты вправо на MAX_CU_DEPTH бит.

Например, «width» - это ширина текущего блока изображения, «height» - высота текущего блока изображения, a MAX_CU_DEPTH - глубина ширины или высоты наибольшего блока изображения, по умолчанию равная 7 (т.е. ширина или высота соответствующего блока изображения составляет 128).

В одном из примеров MAX_CU_DEPTH=7, следовательно с, d, е и f можно определить с помощью следующих уравнений:

В случае 6-параметрической модели:

например, « обозначает сдвиг влево.

В случае 4-параметрической модели: d=-е; f=с.

Вариант осуществления 10

В одном из примеров, для повышения точности векторов сдвига, на основе любого из раскрытых выше вариантов осуществления векторы сдвига для пиксельных точек субблока 4*4 могут быть увеличены при их определении.

Например, в процессе вычисления векторов сдвига, векторы сдвига для пиксельных точек в субблоке 4*4 можно умножить на N1 (N1 представляет собой положительное целое число, например, 4 или 8) и далее определить вектор сдвига первой пиксельной точки в субблоке 4*4 с помощью следующего уравнения:

После того, как вектор сдвига первой пиксельной точки в субблоке 4*4 будет определен с помощью уравнения 13, можно определить векторы сдвига других пиксельных точек в первой строке в субблоке 4*4 с помощью следующего уравнения:

После того, как векторы сдвига пиксельных точек в первой строке субблока 4*4 будут определены с помощью уравнения 14, можно определить векторы сдвига других пиксельных точек в субблоке 4*4 с помощью следующего уравнения:

После того, как будут определены увеличенные в N1 раз векторы сдвига для пиксельных точек субблока 4*4 с помощью уравнений 13-15, векторы сдвига для пиксельных точек, увеличенные в N1 раз, могут быть уменьшены в N2 раз.

Например, значение N2 может быть тем же, что и N1, или может быть отлично от N1.

Например, если N1 равно 4, то N2 может быть равно 4 или N2 может быть равно 2 (т.е. окончательно определенный вектор сдвига представляет собой вектор сдвига, увеличенный в 2 раза).

В одном из примеров определенный вектор сдвига может быть уменьшен с помощью следующего уравнения:

Например, mvx - это горизонтальная составляющая вектора сдвига пиксельной точки, mvy - вертикальная составляющая вектора сдвига пиксельной точки, >> обозначает сдвиг вправо, << обозначает сдвиг влево, mvx>=0 означает, что если mvx не меньше 0, то mvx=1, в противном случае - mvx=0; mvy>=0 означает, что если mvy не меньше 0, то mvy=1, в противном случае - mvy=0.

Например, mvx и mvy ограничены диапазоном [-(1 << bdlimit), (1 << bdlimit)-1]; при этом значение bdlimit определяют эмпирически.

В одном из примеров bdlimit=max (6, bitdepth-6), где bitdpth - глубина цвета, т.е. необходимая битовая ширина значения яркости, обычно составляющая 10 или 8.

В другом примере bdlimit=max (5, bitdepth-7).

Вариант осуществления 11

В одном из примеров на основе любого из вариантов осуществления 8-10, сдвиг первого пикселя в субблоке 4*4 от центрального положения субблока 4*4 принят равным (-1,5, -1,5), следовательно , , а 4-кратно увеличенные горизонтальная составляющая и вертикальная составляющая вектора сдвига составляют, соответственно:

Вариант осуществления 12

В одном из примеров на основе любого из вариантов осуществления 8-10, сдвиг первого пикселя в субблоке 4*4 от центрального положения субблока 4*4 принят равным (-2, -2), следовательно , , а 4-кратно увеличенные горизонтальная составляющая и вертикальная составляющая вектора сдвига составляют, соответственно: , .

Вариант осуществления 13

В одном из примеров на основе любого из вариантов осуществления 1 - 7 вектор сдвига пиксельной точки в субблоке можно определять с помощью следующих уравнений:

Например, N3 - это кратность увеличения вектора сдвига, например, 4; ,, при этом N4 составляет 6 или 8.

Вариант осуществления 14

В одном из примеров на основе любого из раскрытых выше вариантов осуществления значения компенсации предсказания для пиксельных точек субблока на основе значений градиента и векторов сдвига для пиксельных точек субблока можно определять с помощью следующего уравнения:

Например, - это значение компенсации предсказания для пиксельной точки в i-м столбце и j-й строке в субблоке, - горизонтальная составляющая значения градиента пиксельной точки в i-м столбце и j-й строке в субблоке, - вертикальная составляющая значения градиента пиксельной точки в i-м столбце и j-й строке в субблоке, - горизонтальная составляющая вектора сдвига пиксельной точки в i-м столбце и j-й строке в субблоке, а - вертикальная составляющая вектора сдвига пиксельной точки в i-м столбце и j-й строке в субблоке.

Вариант осуществления 15

В одном из примеров на основе любого из раскрытых выше вариантов осуществления, если блоку декодирования использует режим однонаправленного предсказания, регулирование компенсации однонаправленного предсказания (вперед или назад) может быть реализовано с помощью следующих уравнений:

Например, mm_dl2 - значение компенсации однонаправленного предсказания для пиксельной точки, mm_dl3 - конечное значение предсказания для данной пиксельной точки в соответствующем направлении, mvx - горизонтальная составляющая вектора сдвига пиксельной точки в соответствующем направлении, mvy - вертикальная составляющая вектора сдвига пиксельной точки в соответствующем направлении, mm_gradx - горизонтальная составляющая значения градиента пиксельной точки в соответствующем направлении, mm_grady - вертикальная составляющая значения градиента пиксельной точки в соответствующем направлении, mm_src - значение предсказания для данной пиксельной точки в соответствующем направлении, mm_w - весовое значение пиксельной точки в соответствующем направлении, a mm_w равно 1 в режиме однонаправленного предсказания.

Вариант осуществления 16

В одном из примеров на основе любого из раскрытых выше вариантов осуществления, если подлежащий декодированию блок использует режим двунаправленного предсказания, реализуют, соответственно, регулирование компенсации предсказания вперед и регулирование компенсации предсказания назад, после чего реализуют регулирование компенсации предсказания блока.

Например, регулирование компенсации предсказания вперед может быть реализовано с помощью следующих уравнений:

Например, mm_dl02 - значение компенсации предсказания вперед для пиксельной точки, mm_dl03 - конечное значение предсказания вперед для данной пиксельной точки, mvx0 - горизонтальная составляющая вектора сдвига в направлении вперед пиксельной точки, mvy0 - вертикальная составляющая вектора сдвига в направлении вперед пиксельной точки, mm_gradx0 - горизонтальная составляющая значения градиента в направлении вперед пиксельной точки, mm_grady0 - вертикальная составляющая значения градиента в направлении вперед пиксельной точки, mm_src0 - значение предсказания вперед для данной пиксельной точки, a mm_w0 - весовое значение пиксельной точки в направлении вперед.

Например, регулирование компенсации предсказания назад может быть реализовано с помощью следующих уравнений:

Например, mm_dl12 - значение компенсации предсказания назад для пиксельной точки, mm_dl13 - конечное значение предсказания назад для данной пиксельной точки, mvx1 - горизонтальная составляющая вектора сдвига в направлении назад пиксельной точки, mvy1 - вертикальная составляющая вектора сдвига в направлении назад пиксельной точки, mm_gradx1 - горизонтальная составляющая значения градиента в направлении назад пиксельной точки, mm_grady1 -вертикальная составляющая значения градиента в направлении назад пиксельной точки, mm_srd - значение предсказания назад для данной пиксельной точки, a mm_w1 - весовое значение пиксельной точки в направлении назад.

Процесс взвешивания (деления суммы конечного значения предсказания вперед и конечного значения предсказания назад на сумму весового значения в направлении вперед и весового значения в направлении назад) выполняют на основе конечных значений предсказания вперед и конечных значений предсказания назад для пиксельных точек подлежащего декодированию блока с получением конечных значений предсказания для пиксельных точек подлежащего декодированию блока.

Вариант осуществления 17

ФИГ. 8 изображает принципиальную схему последовательности способа выбора потенциального вектора движения, предложенного в одном из вариантов осуществления настоящей заявки. Способ выбора потенциального вектора движения на ФИГ. 8 может включать в себя этапы, на которых:

Этап S800: определяют, удовлетворяет ли текущий блок изображения условию для использования опорного изображения во временной области. Если да, то переходят на этап S810 способа; в противном случае - переходят на этап S820 способа.

Этап S810: разрешают использование вектора движения опорного изображения во временной области для кодирования/декодирования текущего блока изображения; и

Этап S820: отказываются от использования вектора движения опорного изображения во временной области для кодирования/декодирования текущего блока изображения.

В некоторых случаях, вероятность того, что вектор движения опорного изображения во временной области в итоге будет выбран, является низкой. Для улучшения характеристик кодирования и декодирования и во избежание ненадлежащего использования вектора движения опорного изображения во временной области в качестве потенциального вектора движения, может быть заранее задано условие (в настоящей заявке именуемое «условие для использования опорного изображения во временной области») для разрешения использования вектора движения опорного изображения во временной области.

Соответственно, в процессе кодирования/декодирования текущего блока изображения можно определять, удовлетворяет ли текущий блок изображения условию для использования опорного изображения во временной области, т.е. разрешено ли использование вектора движения опорного изображения во временной области для кодирования/декодирования текущего блока изображения или нет.

В одном из примеров условие для использования опорного изображения во временной области может включать в себя то, что:

размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения.

Например, вероятность того, что вектор движения опорного изображения во временной области в итоге будет выбран, является низкой, если размер опорного изображения отличен от размера изображения, к которому относится текущий блок изображения. Поэтому, для улучшения характеристик кодирования и декодирования, условие для использования опорного изображения во временной области включает в себя то, что размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения. То есть, если размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения, разрешают использование вектора движения опорного изображения во временной области для кодирования/декодирования текущего блока изображения; а если размер опорного изображения отличен от размера изображения, к которому относится текущий блок изображения, не разрешают использование вектора движения опорного изображения во временной области для кодирования/декодирования текущего блока изображения.

В другом примере условие для использования опорного изображения во временной области может дополнительно включать в себя то, что:

опорное изображение не является долговременным опорным изображением (сокращенно ДВОИ, англ. Long-Term Reference Picture (LTRP)).

Например, долговременное опорное изображение является таковым относительно опорного изображения, более близкого к изображению, к которому относится текущий блок изображения, при этом долговременное опорное изображение обычно расположено дальше от изображения, к которому относится текущий блок изображения.

Например, вероятность того, что в итоге будет выбран вектор движения опорного изображения во временной области, ниже, если размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения, но опорное изображение является долговременным опорным изображением, поэтому условие для использования опорного изображения во временной области может включать в себя то, что опорное изображение не является долговременным опорным изображением. Таким образом, если размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения, и опорное изображение не является долговременным опорным изображением, разрешают использование вектора движения опорного изображения во временной области для кодирования/декодирования текущего блока изображения; а если размер опорного изображения отличен от размера изображения, к которому относится текущий блок изображения, и/или опорное изображение является долговременным опорным изображением, не разрешают использование вектора движения опорного изображения во временной области для кодирования/декодирования текущего блока изображения.

В возможном варианте осуществления, после того, как будет разрешено использование вектора движения опорного изображения во временной области для кодирования/декодирования текущего блока изображения, оно может дополнительно включать в себя этапы, на которых:

определяют, удовлетворяет ли текущий блок изображения условию для масштабирования вектора движения опорного изображения во временной области;

если текущий блок изображения удовлетворяет условию для масштабирования вектора движения опорного изображения во временной области, разрешают масштабирование вектора движения опорного изображения во временной области для кодирования/декодирования текущего блока изображения; и

если текущий блок изображения не удовлетворяет условию для масштабирования и использования вектора движения опорного изображения во временной области, отказываются от масштабирования вектора движения опорного изображения во временной области для кодирования/декодирования текущего блока изображения.

Например, учитывая низкую вероятность того, что масштабированный вектор движения опорного изображения во временной области будет в итоге выбран в определенных ситуациях, для улучшения характеристик кодирования и декодирования и во избежание использования масштабированного вектора движения опорного изображения во временной области в качестве потенциального вектора движения в состоянии, при котором масштабированный вектор движения опорного изображения во временной области неприменим, может быть заранее задано условие (в настоящей заявке именуемое «условие для масштабирования и использования вектора движения опорного изображения во временной области») для разрешения использования масштабированного вектора движения опорного изображения во временной области.

В одном из примеров условие для масштабирования вектора движения опорного изображения во временной области может включать в себя то, что:

размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения, и опорное изображение не является долговременным опорным изображением.

Например, вероятность того, что в итоге будет выбран масштабированный вектор движения опорного изображения во временной области, является низкой, если размер опорного изображения отличен от размера изображения, к которому относится текущий блок изображения, и/или опорное изображение является долговременным опорным изображением. Поэтому условие для масштабирования вектора движения опорного изображения во временной области включает в себя то, что размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения, и опорное изображение не является долговременным опорным изображением.

Если размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения, и опорное изображение не является долговременным опорным изображением, разрешают использование масштабированного вектора движения опорного изображения во временной области для кодирования/декодирования текущего блока изображения; а если размер опорного изображения отличен от размера изображения, к которому относится текущий блок изображения, и/или опорное изображение является долговременным опорным изображением, использование масштабированного вектора движения опорного изображения во временной области для кодирования/декодирования текущего блока изображения не разрешают.

В возможном варианте реализации, после того, как будет определено, удовлетворяет ли текущий блок изображения условию для использования опорного изображения во временной области, способ дополнительно включает в себя этапы, на которых:

определяют, что использование режима предсказания первого типа разрешено в случае соблюдения условия для использования опорного изображения во временной области; и

определяют, что использование режима предсказания первого типа и режима предсказания второго типа не разрешено в случае несоблюдения условия для использования опорного изображения во временной области.

В одном из примеров в число режимом предсказания первого типа входят такие режимы с использованием векторов движения во временной области, как режим ПВВД, режим ДНОП, режим УВДСД; а в число режимом предсказания второго типа входят режимы с масштабированием векторов движения во временной области, например, режим РСВД.

Следует отметить, что, в одном из примеров использование режима предсказания второго типа также может быть разрешено в случае соблюдения условия для использования опорного изображения во временной области.

В возможном варианте реализации, после того, как будет определено, соблюдено ли условие для масштабирования вектора движения опорного изображения во временной области, способ дополнительно включает в себя этапы, на которых:

если условие для масштабирования вектора движения опорного изображения во временной области соблюдено, разрешают использование режима предсказания первого типа и режима предсказания второго типа; и

если условие для масштабирования вектора движения опорного изображения во временной области не соблюдено, отказываются от использования режима предсказания второго типа.

В одном из примеров, если условие для масштабирования вектора движения опорного изображения во временной области не соблюдено, от использования режима предсказания первого типа также могут отказаться.

Вариант осуществления 18

ФИГ. 9 изображает принципиальную схему последовательности способа выбора потенциального вектора движения, предложенного в одном из вариантов осуществления настоящей заявки, при этом способ выбора потенциального вектора движения на ФИГ. 9 может включать в себя этапы, на которых:

Этап S900: определяют, удовлетворяет ли текущий блок изображения условию для масштабирования вектора движения опорного изображения во временной области, и, если текущий блок изображения удовлетворяет условию для масштабирования вектора движения опорного изображения во временной области, переходят на этап S910; если текущий блок изображения не удовлетворяет условию для масштабирования вектора движения опорного изображения во временной области, переходят на этап S920;

Этап S910: разрешают масштабирование вектора движения опорного изображения во временной области для кодирования/декодирования текущего блока изображения; и

Этап S920: отказываются от масштабирования вектора движения опорного изображения во временной области для кодирования/декодирования текущего блока изображения.

В данном варианте осуществления настоящей заявки вероятность того, что масштабированный вектор движения опорного изображения во временной области будет в итоге выбран, в определенных ситуациях является низкой. Поэтому, для улучшения характеристик кодирования и декодирования и во избежание использования масштабированного вектора движения опорного изображения во временной области в качестве потенциального вектора движения в состоянии, при котором масштабированный вектор движения опорного изображения во временной области неприменим, может быть заранее задано условие (в настоящей заявке именуемое «условие для масштабирования вектора движения опорного изображения во временной области») для разрешения использования масштабированного вектора движения опорного изображения во временной области.

В одном из примеров условие для масштабирования вектора движения опорного изображения во временной области может включать в себя то, что:

размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения, и опорное изображение не является долговременным опорным изображением.

Например, вероятность того, что в итоге будет выбран масштабированный вектор движения опорного изображения во временной области, является низкой, если размер опорного изображения отличен от размера изображения, к которому относится текущий блок изображения, и/или опорное изображение является долговременным опорным изображением. Поэтому условие для масштабирования вектора движения опорного изображения во временной области включает в себя то, что размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения, и опорное изображение не является долговременным опорным изображением.

Если размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения, и опорное изображение не является долговременным опорным изображением, разрешают использование масштабированного вектора движения опорного изображения во временной области для кодирования/декодирования текущего блока изображения; а если размер опорного изображения отличен от размера изображения, к которому относится текущий блок изображения, или/и опорное изображение является долговременным опорным изображением, отказываются от использования масштабированного вектора движения опорного изображения во временной области для кодирования/декодирования текущего блока изображения.

В возможном варианте реализации, после того, как будет определено, соблюдено ли условие для масштабирования вектора движения опорного изображения во временной области, способ дополнительно включает в себя этапы, на которых:

если условие для масштабирования вектора движения опорного изображения во временной области соблюдено, разрешают использование режима предсказания первого типа и режима предсказания второго типа; и

если условие для масштабирования вектора движения опорного изображения во временной области не соблюдено, отказываются от использования режима предсказания второго типа.

В одном из примеров в число режимов предсказания первого типа входят такие режимы с использованием векторов движения во временной области, как режим ПВВД, режим ДНОП, режим УВДСД и т.п.; а в число режимов предсказания второго типа входят режимы с масштабированием векторов движения во временной области, например, режим РСВД.

В одном из примеров, если условие для масштабирования вектора движения опорного изображения во временной области не соблюдено, от использования режима предсказания первого типа также могут отказаться.

Вариант осуществления 19

ФИГ. 10 изображает принципиальную схему последовательности способа выбора режима предсказания согласно одному варианту осуществления настоящей заявки, при этом способ выбора режима предсказания на ФИГ. 10 может включать в себя этапы, на которых:

Этап S1000: определяют, удовлетворяет ли текущий блок изображения разрешающему условию для конкретного режима предсказания, и, если текущий блок изображения удовлетворяет разрешающему условию для конкретного режима предсказания, переходят на этап S1010; если текущий блок изображения не удовлетворяет разрешающему условию для конкретного режима предсказания, переходят на этап S1020;

Этап S1010: разрешают использование конкретного режима предсказания; и

Этап S1020: отказываются от использования конкретного режима предсказания.

Использование конкретного режима предсказания может ухудшить характеристики кодирования и декодирования в определенных ситуациях. Поэтому, для улучшения характеристик кодирования и декодирования и во избежание использования конкретного режима предсказания в качестве потенциального режима предсказания в состоянии, при котором конкретный режим предсказания неприменим, может быть заранее задано условие (в настоящей заявке именуемое «условие для использования конкретного режима предсказания») для разрешения использования конкретного режима предсказания.

В возможном варианте реализации конкретный режим предсказания включает в себя режим предсказания первого типа.

Например, в число режимов предсказания первого типа входят такие режимы с использованием векторов движения во временной области, как режим ПВВД, режим ДНОП, режим УВДСД и т.п.

В одном из примеров условие для использования конкретного режима предсказания может включать в себя то, что:

размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения.

Например, характеристики кодирования/декодирования при использовании режима предсказания первого типа являются низкими, если размер опорного изображения отличен от размера изображения, к которому относится текущий блок изображения. Поэтому, для повышения характеристик кодирования/декодирования, условие для использования конкретного режима предсказания может включать в себя то, что размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения. То есть, если размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения, использование конкретного режима предсказания разрешают; если размер опорного изображения отличен от размера изображения, к которому относится текущий блок изображения, отказываются от использования конкретного режима предсказания.

В другом примере условие для использования конкретного режима предсказания может дополнительно включать в себя то, что:

опорное изображение не является долговременным опорным изображением.

Например, характеристики кодирования и декодирования при использовании режима предсказания первого типа ниже, если размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения, но опорное изображение является долговременным опорным изображением. Поэтому условие для использования конкретного режима предсказания может дополнительно включать в себя то, что опорное изображение не является долговременным опорным изображением. То есть, если размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения, и опорное изображение не является долговременным опорным изображением, использование конкретного режима предсказания разрешают; а если размер опорного изображения отличен от размера изображения, к которому относится текущий блок изображения, и/или опорное изображение является долговременным опорным изображением, отказываются от использования конкретного режима предсказания.

В другом возможном варианте реализации конкретный режим предсказания включает в себя режим предсказания первого типа и режим предсказания второго типа.

Например, в число режимов предсказания второго типа входят режимы с масштабированием векторов движения во временной области, например, режим РСВД.

В одном из примеров условие для использования конкретного режима предсказания может включать в себя то, что:

размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения, и опорное изображение не является долговременным опорным изображением.

Например, характеристики кодирования и декодирования при использовании режима предсказания первого типа и режима предсказания второго типа являются низкими, если размер опорного изображения отличен от размера изображения, к которому относится текущий блок изображения, и/или опорное изображение является долговременным опорным изображением. Поэтому условие для использования конкретного режима предсказания может включать в себя то, что размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения, и опорное изображение не является долговременным опорным изображением.

Если размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения, и опорное изображение не является долговременным опорным изображением, использование конкретного режима предсказания разрешают; а если размер опорного изображения отличен от размера изображения, к которому относится текущий блок изображения, и/или опорное изображение является долговременным опорным изображением, отказываются от использования конкретного режима предсказания.

В другом возможном варианте осуществления конкретный режим предсказания включает в себя режим предсказания второго типа.

В одном из примеров условие для использования конкретного режима предсказания может включать в себя то, что:

размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения, и опорное изображение не является долговременным опорным изображением.

Например, характеристики кодирования и декодирования при использовании режима предсказания второго типа являются низкими, если размер опорного изображения отличен от размера изображения, к которому относится текущий блок изображения, или/и опорное изображение является долговременным опорным изображением. Поэтому условие для использования конкретного режима предсказания может включать в себя то, что размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения, и опорное изображение не является долговременным опорным изображением.

Если размер опорного изображения равен размеру изображения, к которому относится текущий блок изображения, и опорное изображение не является долговременным опорным изображением, использование конкретного режима предсказания разрешают; а если размер опорного изображения отличен от размера изображения, к которому относится текущий блок изображения, или/и опорное изображение является долговременным опорным изображением, отказываются от использования конкретного режима предсказания.

Вариант осуществления 20

ФИГ. 11 изображает принципиальную схему последовательности способа выбора режима предсказания согласно одному варианту осуществления настоящей заявки, при этом способ выбора режима предсказания на ФИГ. 11 может включать в себя этапы, на которых:

Этап S1100: определяют, удовлетворяет ли текущий блок изображения разрешающему условию для режима УВДСД, и, если текущий блок изображения удовлетворяет разрешающему условию для режима УВДСД, переходят на этап S1110; если текущий блок изображения не удовлетворяет разрешающему условию для режима УВДСД, переходят на этап S1120;

Этап S1110: разрешают использование режима УВДСД; и

Этап S1120: отказываются от использования режима УВДСД.

В данном варианте осуществления настоящей заявки эффективность декодирования при использовании режима УВДСД в определенных ситуациях является более низкой. Для улучшения характеристик кодирования и декодирования и во избежание разрешения использования режима УВДСД, когда режим УВДСД неприменим, может быть заранее задано разрешающее условие для режима УВДСД.

Таким образом, в процессе декодирования текущего блока изображения можно определять, удовлетворяет ли текущий блок изображения разрешающему условию для режима УВДСД. Если текущий блок изображения удовлетворяет разрешающему условию для режима УВДСД, использование режима УВДСД разрешают; если текущий блок изображения не удовлетворяет разрешающему условию для режима УВДСД, отказываются от использования режима УВДСД.

В одном из примеров разрешающее условие для режима УВДСД может включать в себя то, что:

текущим режимом является общий режим слияния/пропуска.

Общими режимами слияния/пропуска являются общий режим слияния и общий режим пропуска. В общем режиме слияния или общем режиме пропуска выбирают информацию о движении из списка информации о движении кандидатов и генерируют значение предсказания текущего блока изображения на основе информации о движении.

Список информации о движении кандидатов содержит: информацию о движении соседних в пространстве блоков-кандидатов, информацию о движении соседних во временной области блоков-кандидат, информацию о движении не-соседних в пространстве блоков-кандидатов, информацию о движении, полученную путем комбинирования имеющейся информации о движении, или/и стандартную информацию о движении, и т.п.

Например, если будет определено, что текущий блок изображения находится в общем режиме слияния/пропуска, использование режима УВДСД разрешают; в противном случае - отказываются от использования режима УВДСД.

В другом примере разрешающее условие для режима УВДСД может включать в себя то, что:

оператор выбора управления режимом УВДСД на уровне последовательности имеет первое числовое значение, и оператор выбора управления заголовком изображения в режиме УВДСД имеет первое числовое значение;

текущим режимом является общий режим слияния/пропуска;

текущий блок изображения использует режим двунаправленного предсказания, порядок отображения одного из двух опорных изображений предусматривает его отображение перед изображением, к которому относится текущий блок изображения, порядок отображения другого из указанных двух опорных изображений предусматривает его отображение следом за изображением, к которому относится текущий блок изображения, а расстояния между указанными двумя опорными изображениями и изображением, к которому относится текущий блок изображения, равны;

полученные в результате взвешивания веса указанных двух опорных изображений равны;

размер текущего блока изображения удовлетворяет ограничивающему условию; и

длина и ширина указанных двух опорных изображений равны, соответственно, длине и ширине изображения, к которому относится текущий блок изображения.

В одном из примеров первое значение равно 1.

В одном из примеров удовлетворение размера текущего блока изображения ограничивающему условию включает в себя то, что: ширина текущего блока изображения больше или равна 8, высота текущего блока изображения больше или равна 8 и площадь текущего блока изображения больше или равна 128.

В данном варианте осуществления настоящей заявки, после того, как будут определены значения предсказания для пиксельных точек текущего блока изображения, определяют значения компенсации предсказания для пиксельных точек текущего блока изображения на основе значений градиента и векторов сдвига для пиксельных точек текущего блока изображения, а затем определяют конечные значения предсказания для пиксельных точек текущего блока изображения на основе значений предсказания и значений компенсации предсказания для пиксельных точек текущего блока изображения. Регулирование компенсации предсказания больше не ограничено блоком изображения, использующим режим двунаправленного предсказания, и не ограничено блоком изображения, вектор движения каждого субблока которого является тем же, что и вектор движения каждого пикселя в соответствующем субблоке, что расширяет сферу применения регулирования компенсации предсказания.

Способ согласно настоящей заявке раскрыт выше. Аппарат по настоящей заявке раскрыт ниже.

ФИГ. 12 изображает принципиальную структурную схему аппарата для кодирования и декодирования согласно одному варианту осуществления настоящей заявки, при этом аппарат для кодирования и декодирования на ФИГ. 12 может включать в себя:

первый определяющий блок 1210, выполненный с возможностью определения значений предсказания для пиксельных точек текущего блока изображения;

второй определяющий блок 1220, выполненный с возможностью определения значений градиента для пиксельных точек текущего блока изображения на основе значений предсказания для пиксельных точек текущего блока изображения;

третий определяющий блок 1230, выполненный с возможностью определения векторов сдвига для пиксельных точек текущего блока изображения;

четвертый определяющий блок 1240, выполненный с возможностью определения значений компенсации предсказания для пиксельных точек текущего блока изображения на основе значений градиента и векторов сдвига для пиксельных точек текущего блока изображения; и

пятый определяющий блок 1250, выполненный с возможностью определения конечных значений предсказания для пиксельных точек текущего блока изображения на основе значений предсказания и значений компенсации предсказания для пиксельных точек текущего блока изображения.

В возможном варианте осуществления, если текущий блок изображения использует режим однонаправленного предсказания:

Первый определяющий блок 1210 выполнен, в частности, с возможностью определения значений однонаправленного предсказания для пиксельных точек текущего блока изображения.

Второй определяющий блок 1220 выполнен, в частности, с возможностью определения значений градиента для пиксельных точек текущего блока изображения в соответствующем направлении на основе значений однонаправленного предсказания для пиксельных точек текущего блока изображения.

Третий определяющий блок 1230 выполнен, в частности, с возможностью определения векторов сдвига для пиксельных точек текущего блока изображения в соответствующем направлении.

Четвертый определяющий блок 1240 выполнен, в частности, с возможностью определения значений компенсации предсказания для пиксельных точек текущего блока изображения в соответствующем направлении на основе значений градиента и векторов сдвига для пиксельных точек текущего блока изображения в соответствующем направлении.

Пятый определяющий блок 1250 выполнен, в частности, с возможностью определения конечных значений предсказания для пиксельных точек текущего блока изображения в соответствующем направлении на основе значений предсказания и значений компенсации предсказания для пиксельных точек текущего блока изображения в соответствующем направлении.

В возможном варианте осуществления, если текущий блок изображения использует режим двунаправленного предсказания:

Первый определяющий блок 1210 выполнен, в частности, с возможностью определения значения предсказания вперед и значения предсказания назад, соответственно, для пиксельных точек текущего блока изображения.

Второй определяющий блок 1220 выполнен, в частности, с возможностью определения значения градиента в направлении вперед и значения градиента в направлении назад для пиксельных точек текущего блока изображения на основе значений предсказания вперед и значений предсказания назад, соответственно, для пиксельных точек текущего блока изображения.

Третий определяющий блок 1230 выполнен, в частности, с возможностью определения векторов сдвига в направлении вперед и векторов сдвига в направлении назад, соответственно, для пиксельных точек текущего блока изображения.

Четвертый определяющий блок 1240 выполнен, в частности, с возможностью определения значений компенсации предсказания вперед и значений компенсации предсказания назад для пиксельных точек текущего блока изображения на основе значений градиента в направлении вперед, значений градиента в направлении назад, векторов сдвига в направлении вперед и векторов сдвига в направлении назад, соответственно, для пиксельных точек текущего блока изображения.

Пятый определяющий блок 1250 выполнен, в частности, с возможностью определения конечных значений предсказания вперед и конечных значений предсказания назад для пиксельных точек текущего блока изображения на основе значений предсказания вперед, значений предсказания назад, значений компенсации предсказания вперед и значений компенсации предсказания назад, соответственно, для пиксельных точек текущего блока изображения; и определения конечных значений предсказания для пиксельных точек текущего блока изображения на основе конечных значений предсказания вперед и конечных значений предсказания назад для пиксельных точек текущего блока изображения.

В возможном варианте реализации третий определяющий блок 1230 выполнен, в частности, с возможностью:

определения вектора сдвига конкретной пиксельной точки в субблоке для каждого субблока текущего блока изображения; и

определения векторов сдвига остальных пиксельных точек в субблоке на основе вектора сдвига конкретной пиксельной точки в субблоке.

В возможном варианте реализации третий определяющий блок 1230 выполнен, в частности, с возможностью определения вектора сдвига конкретной пиксельной точки в субблоке на основе аффинных параметров и сдвига конкретной пиксельной точки от центрального положения субблока.

В возможном варианте реализации третий определяющий блок 1230 выполнен, в частности, с возможностью:

определения горизонтальной составляющей вектора сдвига конкретной пиксельной точки в субблоке на основе горизонтального сдвига конкретной пиксельной точки от центрального положения субблока, вертикального сдвига конкретной пиксельной точки от центрального положения субблока, первого аффинного параметра и второго аффинного параметра; и

определения вертикальной составляющей вектора сдвига конкретной пиксельной точки в субблоке на основе горизонтального сдвига конкретной пиксельной точки от центрального положения субблока в горизонтальном направлении, вертикального сдвига конкретной пиксельной точки от центрального положения субблока, третьего аффинного параметра и четвертого аффинного параметра.

В возможном варианте реализации, в случае 4-параметрической аффинной модели, первый аффинный параметр и четвертый аффинный параметр являются одинаковыми и равны отношению первого числового значения к ширине субблока, второй аффинный параметр и третий аффинный параметр противоположны, а третий аффинный параметр представляет собой отношение второго числового значения к ширине субблока;

причем первое числовое значение представляет собой разность горизонтальной составляющей вектора движения верхней правой контрольной точки субблока и горизонтальной составляющей вектора движения верхней левой контрольной точки субблока, а второе числовое значение представляет собой разность вертикальной составляющей вектора движения верхней правой контрольной точки субблока и вертикальной составляющей вектора движения верхней левой контрольной точки субблока.

В возможном варианте реализации, в случае 6-параметрической аффинной модели, первый аффинный параметр представляет собой отношение первого числового значения к ширине субблока, второй аффинный параметр представляет собой отношение третьего числового значения к высоте субблока, третий аффинный параметр представляет собой отношение второго числового значения к ширине субблока, а четвертый аффинный параметр представляет собой отношение четвертого числового значения к высоте субблока;

причем первое числовое значение представляет собой разность горизонтальной составляющей вектора движения верхней правой контрольной точки субблока и горизонтальной составляющей вектора движения верхней левой контрольной точки субблока, второе числовое значение представляет собой разность вертикальной составляющей вектора движения верхней правой контрольной точки субблока и вертикальной составляющей вектора движения верхней левой контрольной точки субблока, третье числовое значение представляет собой разность горизонтальной составляющей вектора движения нижней левой контрольной точки субблока и горизонтальной составляющей вектора движения верхней левой контрольной точки субблока, а четвертое числовое значение представляет собой разность вертикальной составляющей вектора движения нижней левой контрольной точки субблока и вертикальной составляющей вектора движения верхней левой контрольной точки субблока.

В возможном варианте реализации третий определяющий блок 1230 выполнен, в частности, с возможностью:

определения горизонтальных составляющих векторов сдвига других пиксельных точек в строке конкретной пиксельной точки в субблоке на основе горизонтальной составляющей вектора сдвига конкретной пиксельной точки в субблоке и первого аффинного параметра;

определения вертикальных составляющих векторов сдвига других пиксельных точек в строке конкретной пиксельной точки в субблоке на основе вертикальной составляющей вектора сдвига конкретной пиксельной точки в субблоке и третьего аффинного параметра; и

определения, для каждой пиксельной точки в строке конкретной пиксельной точки, горизонтальных составляющих векторов сдвига других пиксельных точек в столбце пиксельной точки в субблоке на основе горизонтальной составляющей вектора сдвига пиксельной точки и второго аффинного параметра; и определения вертикальных составляющих векторов сдвига других пиксельных точек в столбце пиксельной точки в субблоке на основе вертикальной составляющей вектора сдвига пиксельной точки и четвертого аффинного параметра.

В возможном варианте реализации второй определяющий блок 1220 выполнен, в частности, с возможностью заполнения, для каждого субблока текущего блока изображения, N строк / столбцов целопиксельных точек на каждой из верхней, нижней, левой и правой границ субблока; причем N представляет собой положительное целое число; и

определения значений градиента для пиксельных точек в субблоке на основе значений предсказания для пиксельных точек субблока и значений пикселей заполненных целопиксельных точек.

В возможном варианте реализации второй определяющий блок 1220 выполнен, в частности, с возможностью:

определения в опорном изображении целопиксельного блока, ближайшего к указанному субблоку и одного с ним размера; и

принятия значений пикселей N строк / столбцов целопиксельных точек, соседних целопиксельному блоку, в качестве значений пикселей заполнения пиксельных точек на верхней, нижней, левой и правой границах субблока, соответственно.

В возможном варианте реализации второй определяющий блок 1220 выполнен, в частности, с возможностью:

заполнения, соответственно, N строк / столбцов целопиксельных точек, расположенных точно сверху, снизу, слева и справа от целопиксельного блока, соответственно.

В возможном варианте реализации, если N=1, второй определяющий блок 1220 выполнен, в частности, с возможностью:

если вертикальная составляющая субпикселя значения предсказания для пиксельной точки в субблоке больше половины пикселя - заполнения ближайшей целопиксельной точки над верхней границей субблока и заполнения следующей за ближайшей целопиксельной точки под нижней границей субблока;

если субпиксельная вертикальная составляющая значения предсказания для пиксельной точки в субблоке меньше половины пикселя - заполнения следующей за ближайшей целопиксельной точки над верхней границей субблока и заполнения ближайшей целопиксельной точки под нижней границей субблока;

если субпиксельная горизонтальная составляющая значения предсказания для пиксельной точки в субблоке больше половины пикселя - заполнения ближайшей целопиксельной точки слева от левой границы субблока и заполнения следующей за ближайшей целопиксельной точки справа от правой границы субблока; и

если субпиксельная горизонтальная составляющая значения предсказания для пиксельной точки в субблоке меньше половины пикселя - заполнения следующей за ближайшей целопиксельной точки слева от левой границы субблока и заполнения ближайшей целопиксельной точки справа от правой границы субблока.

В возможном варианте реализации второй определяющий блок 1220 выполнен, в частности, с возможностью:

определения, для каждой пиксельной точки в субблоке, горизонтальной составляющей значения градиента пиксельной точки на основе значений пикселей N соседних пиксельных точек слева от данной пиксельной точки и значений пикселей N соседних пиксельных точек справа от данной пиксельной точки и определения вертикальной составляющей значения градиента пиксельной точки на основе значений пикселей N соседних пиксельных точек над данной пиксельной точкой и значений пикселей N соседних пиксельных точек под данной пиксельной точкой.

В возможном варианте реализации второй определяющий блок 1220 также выполнен с возможностью:

определения того, удовлетворяет ли текущий блок изображения разрешающему условию для регулирования компенсации предсказания; и

если текущий блок изображения удовлетворяет разрешающему условию для регулирования компенсации предсказания - выполнения операции определения значений градиента для пиксельных точек текущего блока изображения на основе значений предсказания для пиксельных точек текущего блока изображения.

В возможном варианте реализации разрешающее условие для регулирования компенсации предсказания включает в себя то, что: к текущему блоку изображения применяют конкретный режим предсказания, и в данном конкретном режиме предсказания вектор движения субблока не идентичен вектору движения какой-либо пиксельной точки в субблоке.

В возможном варианте реализации разрешающее условие для регулирования компенсации предсказания также включает в себя то, что: текущей предсказываемой составляющей является яркостная составляющая.

В возможном варианте реализации разрешающее условие для регулирования компенсации предсказания также включает в себя то, что: текущей предсказываемой составляющей является цветностная составляющая.

В возможном варианте реализации конкретный режим предсказания включает в себя режим аффинного движения.

ФИГ. 13 изображает принципиальную схему аппаратной структуры устройства кодирования согласно одному варианту осуществления настоящей заявки. Устройство на стороне кодирования может включать в себя процессор 1301, машиночитаемый носитель 1302 данных, содержащий машиноисполняемые инструкции. Процессор 1301 и машиночитаемый носитель 1302 данных выполнены с возможностью связи друг с другом посредством системной шины 1303. Кроме того, процессор 1301 выполнен с возможностью осуществления раскрытого выше способа кодирования и декодирования путем чтения и исполнения машиноисполняемых инструкций в машиночитаемом носителе 1302 данных, соответствующих логике управления кодирования и декодирования.

Машиночитаемый носитель 1302 данных, речь о котором идет в настоящей заявке, может представлять собой любое электронное, магнитное, оптическое или иное физическое устройство хранения, которое может содержать или хранить информацию, например, исполнимые инструкции, данные и т.п. Например, машиночитаемый носитель данных может представлять собой: оперативное запоминающее устройство (ОЗУ), энергозависимое запоминающее устройство, энергонезависимое запоминающее устройство, флэш-память, накопитель (например, жесткий диск), твердотельный накопитель, диск хранения любого типа (например, компактный диск, цифровой универсальный диск (DVD-диск, англ. Digital Versatile Disk) и т.п.), или аналогичный носитель данных, или их комбинацию.

ФИГ. 14 изображает принципиальную схему аппаратной структуры устройства на стороне декодирования согласно одному варианту осуществления настоящей заявки. Устройство на стороне декодирования может включать в себя процессор 1401, машиночитаемый носитель 1402 данных, содержащий машиноисполняемые инструкции. Процессор 1401 и машиночитаемый носитель 1402 данных выполнены с возможностью связи друг с другом посредством системной шины 1403. Кроме того, процессор 1401 выполнен с возможностью осуществления раскрытого выше способа кодирования и декодирования путем чтения и исполнения машиноисполняемых инструкций в машиночитаемом носителе 1402 данных, соответствующих логике управления кодирования и декодирования.

Машиночитаемый носитель 1402 данных, речь о котором идет в настоящей заявке, может представлять собой любое электронное, магнитное, оптическое или иное физическое устройство хранения, которое может содержать или хранить информацию, например, исполнимые инструкции, данные и т.п.Например, машиночитаемый носитель данных может представлять собой: ОЗУ, энергозависимое запоминающее устройство, энергонезависимое запоминающее устройство, флэш-память, накопитель (например, жесткий диск), твердотельный накопитель, диск хранения любого типа (например, компактный диск, цифровой универсальный диск (DVD-диск, англ. Digital Versatile Disk) и т.п.), или аналогичный носитель данных, или их комбинацию.

Следует отметить, что понятия, обозначающие взаимосвязи, например, «первый» и «второй», и т.п. в тексте настоящей заявки служат исключительно для проведения различия между одним объектом или действием и другим объектом или действием, не требуя и не предполагая обязательного наличия фактической взаимосвязи или порядка следования таких объектов или действий. Кроме того, понятия «содержит», «содержащий» и их варианты служат для обозначения случаев неисключительного вхождения в состав, а именно того, что процесс, способ, предмет или устройство, содержащее перечень элементов, содержит не только указанные элементы, но и те, что явным образом не перечислены, или элементы, свойственные этому процессу, способу, предмету или устройству. Без каких-либо дополнительных ограничений, выражение «содержит» применительно к какому-либо элементу не исключает наличия иных идентичных элементов в процессе, способе, предмете или аппарате, включающем в себя указанный элемент.

Выше раскрыт только предпочтительный вариант осуществления настоящей заявки, который не следует понимать как ограничивающий ее, при этом любые изменения, эквивалентные решения или усовершенствования и т.п. без отступления от существа и принципа настоящей заявки входят в объем охраны по настоящей заявке.

Похожие патенты RU2820848C2

название год авторы номер документа
СПОСОБ, УСТРОЙСТВО И АППАРАТ ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ 2020
  • Чэнь, Фандун
RU2797358C1
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ, ОБОРУДОВАНИЕ НА СТОРОНЕ КОДИРОВАНИЯ И ОБОРУДОВАНИЕ НА СТОРОНЕ ДЕКОДИРОВАНИЯ 2020
  • Чэнь, Фандун
RU2776356C1
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ, ОБОРУДОВАНИЕ НА СТОРОНЕ КОДИРОВАНИЯ И ОБОРУДОВАНИЕ НА СТОРОНЕ ДЕКОДИРОВАНИЯ 2020
  • Чэнь, Фандун
RU2795586C2
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕО С ИСПОЛЬЗОВАНИЕМ ИНТЕР-ПРЕДСКАЗАНИЯ 2020
  • Кан Чи Вон
  • Пак Сан Хё
  • Пак Сон Ук
  • Лим Хва Пён
RU2806280C2
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕО С ИСПОЛЬЗОВАНИЕМ ИНТЕР-ПРЕДСКАЗАНИЯ 2020
  • Кан Чи Вон
  • Пак Сан Хё
  • Пак Сон Ук
  • Лим Хва Пён
RU2806279C2
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕО С ИСПОЛЬЗОВАНИЕМ ИНТЕРПРЕДСКАЗАНИЯ 2020
  • Кан Чи Вон
  • Пак Сан Хё
  • Пак Сон Ук
  • Лим Хва Пён
RU2778099C1
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕО С ИСПОЛЬЗОВАНИЕМ ИНТЕР-ПРЕДСКАЗАНИЯ 2020
  • Кан Чи Вон
  • Пак Сан Хё
  • Пак Сон Ук
  • Лим Хва Пён
RU2802844C2
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕО С ИСПОЛЬЗОВАНИЕМ ИНТЕР-ПРЕДСКАЗАНИЯ 2020
  • Кан Чи Вон
  • Пак Сан Хё
  • Пак Сон Ук
  • Лим Хва Пён
RU2801342C2
КОДЕР, ДЕКОДЕР, СПОСОБ КОДИРОВАНИЯ И СПОСОБ ДЕКОДИРОВАНИЯ 2020
  • Тома, Тадамаса
  • Ниси, Такахиро
  • Абе, Киёфуми
  • Като, Юсуке
RU2810304C2
КОДЕР, ДЕКОДЕР, СПОСОБ КОДИРОВАНИЯ И СПОСОБ ДЕКОДИРОВАНИЯ 2020
  • Тома, Тадамаса
  • Ниси, Такахиро
  • Абе, Киёфуми
  • Като, Юсуке
RU2825824C2

Иллюстрации к изобретению RU 2 820 848 C2

Реферат патента 2024 года СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ, ЭЛЕКТРОННОЕ УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ И НОСИТЕЛЬ ДАННЫХ

Изобретение относится к технологиям кодирования и декодирования. Техническим результатом является повышение эффективности кодирования и декодирования. Результат достигается тем, что способ декодирования включает в себя этапы, на которых: определяют, удовлетворяет ли текущий блок изображения разрешающему условию для режима уточнения вектора движения на стороне декодера (УВДСД); если текущий блок изображения удовлетворяет разрешающему условию для режима УВДСД, разрешают использовать режим УВДСД; если текущий блок изображения не удовлетворяет разрешающему условию для режима УВДСД, отказываются от использования режима УВДСД; при этом, когда режим УВДСД используют для текущего блока изображения, условие, которому удовлетворяет текущий блок изображения, включает в себя то, что: размер опорного изображения текущего блока изображения равен размеру изображения, к которому относится текущий блок изображения, а опорное изображение не является долговременным опорным изображением; причем, когда размер опорного изображения текущего блока изображения отличается от размера изображения, к которому относится текущий блок изображения, не разрешено использовать режим УВДСД на стороне декодера для текущего блока изображения; причем, когда опорное изображение текущего блока изображения представляет собой долговременное опорное изображение, не разрешено использовать режим УВДСД на стороне декодера для текущего блока изображения; при этом, когда размер опорного изображения текущего блока изображения отличается от размера изображения, к которому относится текущий блок изображения, и опорное изображение текущего блока изображения представляет собой долговременное опорное изображение, не разрешено использовать режим УВДСД на стороне декодера для текущего блока изображения; причем, когда текущий блок изображения не представляет собой общий режим слияния, не разрешено использовать режим УВДСД на стороне декодера для текущего блока изображения. 7 н. и 3 з.п. ф-лы, 22 ил.

Формула изобретения RU 2 820 848 C2

1. Способ декодирования, включающий в себя этапы на которых: определяют, удовлетворяет ли текущий блок изображения разрешающему условию для режима уточнения вектора движения на стороне декодера (УВДСД);

если текущий блок изображения удовлетворяет разрешающему условию для режима УВДСД, разрешают использовать режим УВДСД;

если текущий блок изображения не удовлетворяет разрешающему условию для режима УВДСД, отказываются от использования режима УВДСД;

при этом, когда режим УВДСД используют для текущего блока изображения, условие, которому удовлетворяет текущий блок изображения, включает в себя то, что: размер опорного изображения текущего блока изображения равен размеру изображения, к которому относится текущий блок изображения, а опорное изображение не является долговременным опорным изображением;

причем, когда размер опорного изображения текущего блока изображения отличается от размера изображения, к которому относится текущий блок изображения, не разрешено использовать режим УВДСД на стороне декодера для текущего блока изображения;

причем, когда опорное изображение текущего блока изображения представляет собой долговременное опорное изображение, не разрешено использовать режим УВДСД на стороне декодера для текущего блока изображения;

при этом, когда размер опорного изображения текущего блока изображения отличается от размера изображения, к которому относится текущий блок изображения, и опорное изображение текущего блока изображения представляет собой долговременное опорное изображение, не разрешено использовать режим УВДСД на стороне декодера для текущего блока изображения;

причем, когда текущий блок изображения не представляет собой общий режим слияния, не разрешено использовать режим УВДСД на стороне декодера для текущего блока изображения.

2. Способ по п. 1, в котором, когда режим УВДСД используют для текущего блока изображения, текущий блок изображения одновременно удовлетворяет по меньшей мере следующим условиям:

текущий режим текущего блока изображения представляет собой общий режим слияния;

информация управления заголовком изображения указывает, что использовать режим УВДСД для текущего блока изображения разрешено;

текущий блок изображения использует режим двунаправленного предсказания, причем порядок отображения одного из двух опорных изображений предусматривает его отображение перед изображением, к которому относится текущий блок изображения, а порядок отображения другого из двух опорных изображений предусматривает его отображение после изображения, к которому относится текущий блок изображения, и расстояния между указанными двумя опорными изображениями и изображением, к которому относится текущий блок изображения, равны;

полученные в результате взвешивания веса двух опорных изображений текущего блока изображения равны;

размер текущего блока изображения удовлетворяет ограничивающему условию; при этом размер текущего блока изображения удовлетворяет ограничивающему условию, включающему в себя то, что: ширина текущего блока изображения больше или равна первому пороговому значению, высота текущего блока изображения больше или равна второму пороговому значению, а площадь текущего блока изображения больше или равна третьему пороговому значению;

размеры двух опорных изображений текущего блока изображения соответственно равны размеру изображения, к которому относится текущий блок изображения.

3. Способ по п. 1, в котором, когда режим УВДСД используют для текущего блока изображения, текущий блок изображения одновременно удовлетворяет по меньшей мере следующим условиям:

текущий режим текущего блока изображения представляет собой общий режим слияния;

информация управления заголовком изображения разрешает использовать режим УВДСД для текущего блока изображения;

текущий блок изображения использует режим двунаправленного предсказания, причем порядок отображения одного из двух опорных изображений предусматривает его отображение перед изображением, к которому относится текущий блок изображения, а порядок отображения другого из двух опорных изображений предусматривает его отображение после изображения, к которому относится текущий блок изображения, и расстояния между указанными двумя опорными изображениями и изображением, к которому относится текущий блок изображения, равны;

полученные в результате взвешивания веса двух опорных изображений текущего блока изображения равны;

размер текущего блока изображения удовлетворяет ограничивающему условию; при этом размер текущего блока изображения удовлетворяет ограничивающему условию, включающему в себя то, что: ширина текущего блока изображения больше или равна первому пороговому значению, высота текущего блока изображения больше или равна второму пороговому значению, а площадь текущего блока изображения больше или равна третьему пороговому значению;

размеры двух опорных изображений текущего блока изображения соответственно равны размеру изображения, к которому относится текущий блок изображения;

два опорных изображения текущего блока изображения не являются долгосрочными опорными изображениями;

причем предпочтительно информация управления заголовком изображения указывает, что разрешено использовать режим УВДСД для текущего блока изображения, и включает в себя то, что:

оператор выбора управления заголовком изображения в режиме УВДСД имеет первое числовое значение; при этом оператор выбора управления заголовком изображения для режима УВДСД имеет первое числовое значение, означающее, что управление заголовком изображения разрешает использовать режим УВДСД для текущего блока изображения;

при этом размер текущего блока изображения удовлетворяет ограничивающему условию, включающему в себя то, что: ширина текущего блока изображения больше или равна 8, высота текущего блока изображения больше или равна 8, а площадь текущего блока изображения больше или равна 128.

4. Способ по п. 2 или 3, в котором

когда текущий блок изображения не позволяет задействовать режим УВДСД, текущий блок изображения не удовлетворяет по меньшей мере одному из следующих условий:

текущий режим текущего блока изображения представляет собой общий режим слияния;

информация управления заголовком изображения разрешает использовать режим УВДСД для текущего блока изображения;

текущий блок изображения использует режим двунаправленного предсказания, причем порядок отображения одного из двух опорных изображений предусматривает его отображение перед изображением, к которому относится текущий блок изображения, а порядок отображения другого из двух опорных изображений предусматривает его отображение после изображения, к которому относится текущий блок изображения, и расстояния между указанными двумя опорными изображениями и изображением, к которому относится текущий блок изображения, равны;

полученные в результате взвешивания веса двух опорных изображений текущего блока изображения равны;

размер текущего блока изображения удовлетворяет ограничивающему условию;

размеры двух опорных изображений текущего блока изображения соответственно равны размеру изображения, к которому относится текущий блок изображения;

или

текущий блок изображения представляет собой блок декодирования, полученный путем разбиения с использованием одного из разбиения по квадродереву, горизонтального разбиения по бинарному дереву, вертикального разбиения по бинарному дереву, горизонтального разбиения по тернарному дереву или вертикального разбиения по тернарному дереву;

при этом режим вектора движения на стороне декодера относится к режиму, в котором разность между векторами движения получают посредством поиска на основе значений компенсации движения двух опорных изображений текущего блока изображения.

5. Способ кодирования, содержащий этапы, на которых:

определяют, удовлетворяет ли текущий блок изображения разрешающему условию для режима уточнения вектора движения на стороне декодера (УВДСД);

если текущий блок изображения удовлетворяет разрешающему условию для режима УВДСД, разрешают использовать режим УВДСД;

если текущий блок изображения не удовлетворяет разрешающему условию для режима УВДСД, отказываются от использования режима УВДСД;

при этом, когда режим УВДСД используют для текущего блока изображения, условие, которому удовлетворяет текущий блок изображения, включает в себя то, что: размер опорного изображения текущего блока изображения равен размеру изображения, к которому относится текущий блок изображения, а опорное изображение не является долговременным опорным изображением;

причем, когда размер опорного изображения текущего блока изображения отличается от размера изображения, к которому относится текущий блок изображения, не разрешено использовать режим УВДСД на стороне декодера для текущего блока изображения;

причем, когда опорное изображение текущего блока изображения представляет собой долговременное опорное изображение, не разрешено использовать режим УВДСД на стороне декодера для текущего блока изображения;

при этом, когда размер опорного изображения текущего блока изображения отличается от размера изображения, к которому относится текущий блок изображения, и опорное изображение текущего блока изображения представляет собой долговременное опорное изображение, не разрешено использовать режим УВДСД на стороне декодера для текущего блока изображения;

причем, когда текущий блок изображения не представляет собой общий режим слияния, не разрешено использовать режим УВДСД на стороне декодера для текущего блока изображения.

6. Устройство кодирования/декодирования, выполненное с возможностью выполнения способа по любому из пп. 1-5.

7. Устройство декодирования, содержащее процессор и машиночитаемый носитель данных, хранящий машиноисполняемые инструкции, исполнимые процессором, при этом процессор выполнен с возможностью исполнения машиноисполняемых инструкций для реализации способа по любому из пп. 1-4.

8. Устройство кодирования, содержащее процессор и машиночитаемый носитель данных, хранящий машиноисполняемые инструкции, исполнимые процессором, при этом процессор выполнен с возможностью исполнения машиноисполняемых инструкций для реализации способа по п. 5.

9. Электронное устройство кодирования/декодирования, содержащее: процессор;

память для хранения инструкций, исполняемых процессором; при этом процессор выполнен с возможностью исполнения способа по любому из пп. 1-5.

10. Долговременный носитель данных, содержащий сохраненные на нем инструкции, которые при исполнении процессором реализуют способ по любому из пп. 1-5.

Документы, цитированные в отчете о поиске Патент 2024 года RU2820848C2

US 2018278950 A1, 2018.09.27
US 2019132606 A1, 2019.05.02
CN 105898296 A, 2016.08.24
CN 104488272 B, 2018.03.16
WO 2019144930 A1, 2019.08.01
СИНТАКСИЧЕСКИЕ РАСШИРЕНИЯ ВЫСОКОГО УРОВНЯ ДЛЯ ВЫСОКОЭФФЕКТИВНОГО ВИДЕОКОДИРОВАНИЯ 2013
  • Чэнь Ин
  • Ван Е-Куй
  • Чжан Ли
RU2636692C2
US 10264288 B2, 2019.04.16
US 2019141333 A1, 2019.05.09.

RU 2 820 848 C2

Авторы

Чэнь, Фандун

Даты

2024-06-11Публикация

2020-09-16Подача