СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ И СПОСОБ И УСТРОЙСТВО ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ Российский патент 2020 года по МПК H04N19/593 H04N19/139 H04N19/44 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

формула (1); и

определение предсказателя вектора движения для верхней правой вершины блока, подлежащего кодированию с использованием следующей формулы (2) и на основе вектора движения для верхней левой вершины n-го кодированного блока, вектора движения для верхней правой вершины n-гоh кодированного блока, выборочных координат верхней левой вершины n-го кодированного блока, выборочных координат верхней правой вершины n-го кодированного блока, предсказателя вектора движения для верхней левой вершины блока, подлежащего кодированию, выборочных координат верхней левой вершины блока, подлежащего кодированию, и выборочных координат верхней левой вершины блока, подлежащего кодированию:

формула (2).

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

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

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

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

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

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

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

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

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

добавление Q групп векторов движения к концу списка N групп векторов движения для генерирования очереди векторов-кандидатов движения;

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

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

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

В качестве опции, процедура генерирования Q групп векторов движения может содержать:

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

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

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

В качестве альтернативы, процедура генерирования Q групп векторов движения может содержать:

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

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

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

определение вектора движения для j-го кодированного блока из совокупности соседних кодированных блоков в качестве второго предсказателя вектора движения для m-ой контрольной точки, где j представляет собой какое-либо одно из чисел 1, …, или J, где J представляет собой число соседних кодированных блоков, и J – положительное целое число;

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

добавление K первых групп векторов движения к концу последовательности L вторых групп векторов движения для генерирования Q групп векторов движения.

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

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

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

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

В качестве опции, процедура определения характеристического значения, соответствующего q-ой группе векторов движения, содержит:

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

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

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

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

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

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

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

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

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

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

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

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

определение оптимальной группы векторов движения из совокупности N групп векторов движения на основе идентификатора индекса для оптимальной группы векторов движения;

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

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

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

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

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

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

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

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

формула (1); и

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

формула (2).

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

сортировку N групп векторов движения в соответствии с заданным правилом сортировки для генерирования очереди векторов-кандидатов движения;

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

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

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

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

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

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

добавление Q групп векторов движения в конце последовательности из N групп векторов движения, для генерирования очереди векторов-кандидатов движения;

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

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

В качестве опции, процедура генерирования Q групп векторов движения содержит:

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

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

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

В качестве альтернативы, процедура генерирования Q групп векторов движения содержит:

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

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

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

определение вектора движения для j-го декодированного блока из совокупности соседних декодированных блоков в качестве второго предсказателя вектора движения для m-ой контрольной точки, где j представляет собой какое-либо одно из чисел 1, …, или J, где J представляет собой число соседних декодированных блоков, и J – положительное целое число;

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

добавление K первых групп векторов движения к концу последовательности L вторых групп векторов движения для генерирования Q групп векторов движения.

В качестве опции, процедура добавления Q групп векторов движения к концу последовательности N групп векторов движения для генерирования очереди векторов-кандидатов движения содержит:

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

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

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

В качестве опции, процедура определения характеристического значения, соответствующего q-ой группе векторов движения, содержит:

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

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

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

В качестве опции, процедура определения характеристического значения, соответствующего q-ой группе векторов движения, содержит:

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

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

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

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

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

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

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

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

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

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

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

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

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

формула (1); и

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

формула (2).

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

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

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

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

В качестве опции, решающий модуль дополнительно конфигурирован для: определения, из совокупности соседних кодированных блоков, кодированного блока, соответствующего m-ой контрольной точке в блоке, подлежащем кодированию, где расстояние между кодированным блоком, соответствующим этой m-ой контрольной точке, и этой m-ой контрольной точкой не больше заданного расстояния, и m представляет собой какое-либо положительное целое число не больше M; определения вектора движения для кодированного блока, соответствующего этой m-ой контрольной точки, в качестве первого предсказателя вектора движения для указанной m-ой контрольной точки; генерирования K первых групп векторов движения на основе первых предсказателей векторов движения для M контрольных точек; определения вектора движения для j-го кодированного блока из совокупности соседних кодированных блоков в качестве второго предсказателя вектора движения для m-ой контрольной точки, где j представляет собой какое-либо одно из чисел 1, …, или J, где J представляет собой число соседних кодированных блоков, и J – положительное целое число; генерирование L вторых групп векторов движения на основе вторых предсказателей векторов движения для M контрольных точек; и добавление K первых групп векторов движения к концу последовательности L вторых групп векторов движения для генерирования Q групп векторов движения.

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

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

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

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

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

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

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

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

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

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

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

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

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

формула (1); и

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

формула (2).

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

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

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

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

В качестве опции, решающий модуль дополнительно конфигурирован для: определения, из совокупности соседних декодированных блоков, декодированного блока, соответствующего m-ой контрольной точке в блоке, подлежащем декодированию, где расстояние между декодированным блоком, соответствующим m-ой контрольной точке и этой m-ой контрольной точкой не больше заданного расстояния, и m представляет собой какое-либо положительное целое число не больше M; определение вектора движения для декодированного блока, соответствующего указанной m-ой контрольной точке, в качестве первого предсказателя вектора движения для рассматриваемой m-ой контрольной точки; генерирования K первых групп векторов движения на основе первых предсказателей векторов движения для M контрольных точек; определение вектора движения для j-го декодированного блока из совокупности соседних декодированных блоков в качестве второго предсказателя вектора движения для m-ой контрольной точки, где j представляет собой какое-либо одно из чисел 1, …, или J, где J представляет собой число соседних декодированных блоков, и J – положительное целое число; генерирование L вторых групп векторов движения на основе вторых предсказателей векторов движения для M контрольных точек; и добавление K первых групп векторов движения к концу последовательности L вторых групп векторов движения для генерирования Q групп векторов движения.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Фиг. 2 представляет упрощенную структурную схему блока, подлежащего кодированию, и соседних кодированных блоков для способа кодирования изображения согласно Варианту 1 настоящего изобретения;

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

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

Фиг. 5 представляет упрощенную структурную схему устройства кодирования изображения согласно Варианту 4 настоящего изобретения;

Фиг. 6 представляет упрощенную структурную схему устройства декодирования изображения согласно Варианту 5 настоящего изобретения;

Фиг. 7 представляет упрощенную структурную схему устройства кодирования изображения согласно Варианту 6 настоящего изобретения; и

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

Описание вариантов

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

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

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

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

В частности, блок, подлежащий кодированию, может представлять собой единицу кодирования (Coding unit (CU)) согласно стандарту высокоэффективного видео кодирования (High Efficiency Video Coding (HEVC)) и последующим стандартам кодирования. Согласно стандарту HEVC, максимальная единица кодирования может представлять собой единицу дерева кодирования (Coding tree unit (CTU)), и каждая единица CTU может быть разбита на уровни для получения единиц CU меньшего размера. Возможные размеры единиц CU могут составлять четыре уровня, такие как уровни 64x64, 32x32, 16x16 и 8x8. Единица CU на уровне 64x64 содержит 64x64 отсчетов, единица CU на уровне 32x32 содержит 32x32 отсчетов, единица CU на уровне 16x16 содержит 16x16 отсчетов и единица CU на уровне 8x8 содержит 8x8 отсчетов. Блок, подлежащий кодированию, может представлять собой кодовую единицу, соответствующую любому из этих четырех уровней – 64x64, 32x32, 16x16 или 8x8.

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

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

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

После определения N кодированных блоков из совокупности кодированных блоков, соседних с блоком, подлежащим кодированию, в соответствии с первым заданным правилом на этапе S101, этот способ далее содержит:

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

Если режим прогнозирования движения представляет собой аффинный режим прогнозирования движения, индикаторная информация, соответствующая этому аффинному режиму прогнозирования движения может быть определена, например, синтаксическим элементом affine-merge-flag (флаг аффинного слияния), и этому флагу affine-merge-flag присвоено значение 1.

Если режим прогнозирования движения представляет собой аффинный режим прогнозирования движения, но ни один из соседних кодированных блоков не имеет такой же режим прогнозирования движения, как блок, подлежащий кодированию, тогда этому флагу affine-merge-flag может быть присвоено значение 0.

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

На фиг. 2 представлена упрощенная структурная схема блока, подлежащего кодированию, и соседних кодированных блоков в соответствии со способом кодирования изображения согласно Варианту 1 настоящего изобретения. Как показано на фиг. 2, например, совокупность кодированных блоков, соседних с блоком, подлежащим кодированию, может содержать кодированный блок A, кодированный блок B, кодированный блок C, кодированный блок D и кодированный блок E. Если режим прогнозирования движения для блока, подлежащего кодированию, представляет собой аффинный режим прогнозирования движения, в блоке, подлежащем кодированию, может быть несколько контрольных точек, например, две контрольные точки. Например, эти две контрольные точки могут представлять собой верхнюю левую вершину блока, подлежащего кодированию, и верхнюю правую вершину блока, подлежащего кодированию. Верхняя левая вершина блока, подлежащего кодированию, может быть представлена в качестве элемента 0 выборки, а верхняя правая вершина блока, подлежащего кодированию, может быть представлена в качестве элемента 1 выборки.

Устройство кодирования изображения может последовательно пересечь кодированный блок A и кодированный блок B в первом направлении прогнозирования и найти в этом первом направлении прогнозирования первый кодированный блок, режим прогнозирования движения для которого является аффинным режимом прогнозирования движения, например, кодированный блок B; и последовательно пересечь кодированный блок C, кодированный блок D и кодированный блок E во втором направлении прогнозирования и найти первый кодированный блок, режим прогнозирования движения для которого является аффинным режимом прогнозирования движения, например, кодированный блок D.

В качестве альтернативы, устройство кодирования изображения может последовательно пересечь кодированный блок A, кодированный блок B, кодированный блок C, кодированный блок D и кодированный блок E и найти первый кодированный блок, режим прогнозирования движения для которого является аффинным режимом прогнозирования движения, например, кодированный блок B.

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

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

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

генерирование n-ой группы векторов движения на основе предсказателей векторов движения для M контрольных точек.

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

Например, если режим прогнозирования движения для блока, подлежащего кодированию, представляет собой аффинный режим прогнозирования движения, число M может быть равно 2, и совокупность M контрольных точек может содержать верхнюю левую вершину блока, подлежащего кодированию, и верхнюю правую вершину блока, подлежащего кодированию. Верхняя левая вершина блока, подлежащего кодированию, может представлять собой элемент 0 выборки, показанный на фиг. 2, и верхняя правая вершина блока, подлежащего кодированию, может представлять собой элемент 1 выборки, показанный на фиг. 2. Например, n-ый кодированный блок из состава совокупности N кодированных блоков, найденной на этапе S101, может представлять собой кодированный блок B, показанный на фиг. 2. Далее приведено описание с использованием кодированного блока B в качестве примера. Совокупность по меньшей мере двух элементов выборки в составе кодированного блока B, показанного на фиг. 2, может содержать три элемента выборки: верхнюю левую вершину кодированного блока B, верхнюю правую вершину кодированного блока B и нижнюю левую вершину кодированного блока B. Верхняя левая вершина кодированного блока B может представлять собой элемент 2 выборки, верхняя правая вершина кодированного блока B может представлять собой элемент 3 выборки, и нижняя левая вершина кодированного блока B может представлять собой элемент 4 выборки.

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

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

формула (1); и

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

формула (2).

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

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

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

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

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

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

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

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

формула (3)

где – размер каждого кодированного блока, – ширина каждого кодированного блока по горизонтали, – высота каждого кодированного блока по вертикали и – идентификатор каждого кодированного блока.

Например, если N равно 2, совокупность N кодированных блоков может содержать кодированный блок B и кодированный блок D, показанные на фиг. 2.

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

Например, идентификатор индекса, соответствующий группе векторов движения, в очереди векторов-кандидатов движения, сформированной на основе кодированного блока B, может быть равен 1. Например, идентификатор индекса, соответствующий группе векторов движения, в очереди векторов-кандидатов движения, сформированной на основе кодированного блока D, может быть равен 2.

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

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

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

определение стоимости скорость-искажение (Rate distortion cost, сокращенно RD Cost), соответствующей группе векторов движения на основе сумме квадратов разностей (Sum of Squared Differences, сокращенно SSD) или суммы абсолютных величин разностей (Sum of Absolute Differences, сокращенно SAD) между прогнозируемой опорной величиной для элемента выборки, соответствующего рассматриваемой группе векторов движения, и исходной опорной величиной для этого элемента выборки; и

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

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

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

формула (4)

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

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

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

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

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

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

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

формула (5)

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

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

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

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

Преобразование может представлять собой преобразование Карунена-Лёва (Karhunen-Loиve Transform, сокращенно KLT), дискретное преобразование Фурье (Discrete Fourier Transform), дискретное косинусное преобразование (Discrete Cosine Transform, сокращенно DCT) или другое подобное преобразование. Кодирование может представлять собой энтропийное (Entropy) кодирование.

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

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

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

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

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

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

S301: Сортировка N групп векторов движения в соответствии с заданным правилом сортировки.

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

S302: Если N меньше заданной величины, генерирование Q групп векторов движения, где сумма N и Q не меньше заданной величины и Q положительное целое число.

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

В качестве опции, процедура генерирования Q групп векторов движения на этапе S302 может содержать:

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

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

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

Например, как показано на фиг. 2, если совокупность соседних кодированных блоков содержит кодированный блок A, кодированный блок B, кодированный блок C, кодированный блок D и кодированный блок E, а в блоке, подлежащем кодированию, имеются две контрольные точки, кодированный блок, в совокупности соседних кодированных блоков, соответствующий верхней левой вершине блока, подлежащего кодированию, может представлять собой кодированный блок C, а кодированный блок, в совокупности соседних кодированных блоков, соответствующий верхней правой вершине блока, подлежащего кодированию, может содержать кодированный блок D и кодированный блок E.

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

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

Здесь совокупность Q групп векторов движения может содержать две группы векторов движения: и . Например, Q может быть равно 2.

В качестве альтернативы, процедура генерирования Q групп векторов движения на этапе S302 может содержать:

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

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

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

определение вектора движения для j-го кодированного блока из совокупности соседних кодированных блоков в качестве второго предсказателя вектора движения для m-ой контрольной точки, где j представляет собой какое-либо одно из чисел 1, …, или J, где J представляет собой число соседних кодированных блоков, и J – положительное целое число;

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

добавление K первых групп векторов движения к концу последовательности L вторых групп векторов движения для генерирования Q групп векторов движения.

В частности, совокупность Q групп векторов движения можно генерировать за несколько приемов. Например, сначала генерируют K первых групп векторов движения, а затем генерируют L вторых групп векторов движения.

S303: Добавление Q групп векторов движения к концу последовательности N групп векторов движения для генерирования очереди векторов-кандидатов движения.

S304: Определение заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения.

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

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

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

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

В качестве опции, процедура добавления Q групп векторов движения к концу последовательности N групп векторов движения для генерирования очереди векторов-кандидатов движения на этапе S303 может содержать:

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

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

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

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

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

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

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

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

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

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

формула (6)

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

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

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

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

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

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

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

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

Например, в этом варианте характеристическое значение, соответствующее q-ой группе векторов движения, может быть определено с использованием следующей формулы (7) и на основе предсказателя вектора движения для рассматриваемой другой контрольной точки и предсказателей векторов движения, в q-ой группе векторов движения, для M контрольных точек:

формула (7)

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

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

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

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

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

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

Конкретная процедура реализации этапа S401 аналогична процедуре для этапа S101 в описанном выше варианте. Подробности здесь повторно описаны не будут.

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

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

В частности, процедура определения режима прогнозирования движения для блока, подлежащего декодированию, может содержать: анализ синтаксического элемента, соответствующего блоку, подлежащему декодированию, для получения режима прогнозирования движения для блока, подлежащего декодированию. Если флаг affine-merge-flag для этого синтаксического элемента, полученный после анализа, равен 1, режим прогнозирования движения для блока, подлежащего декодированию, представляет собой аффинный режим прогнозирования движения. Если флаг affine-merge-flag для этого синтаксического элемента, полученный после анализа, равен 0, режим прогнозирования движения для блока, подлежащего декодированию, представляет собой трансляционный режим прогнозирования движения.

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

Конкретная процедура реализации этапа S402 аналогична процедуре для этапа S102 в описанном выше варианте. Подробности здесь повторно описаны не будут.

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

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

S404: Определение оптимальной группы векторов движения из состава совокупности N групп векторов движения на основе идентификатора индекса для этой оптимальной группы векторов движения.

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

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

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

S406: Определение реконструированной опорной величины для каждого элемента выборки на основе суммы прогнозируемой опорной величины для каждого элемента выборки и остатка прогнозирования для этого элемента выборки.

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

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

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

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

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

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

формула (1); и

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

формула (2).

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

сортировку N групп векторов движения в соответствии с заданным правилом сортировки для генерирования очереди векторов-кандидатов движения;

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

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

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

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

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

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

добавление Q групп векторов движения к концу последовательности из N групп векторов движения для генерирования очереди векторов-кандидатов движения;

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

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

В качестве опции, процедура генерирования Q групп векторов движения может содержать:

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

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

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

В качестве опции, процедура генерирования Q групп векторов движения может содержать:

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

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

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

определение вектора движения для j-го декодированного блока из совокупности соседних декодированных блоков в качестве второго предсказателя вектора движения для m-ой контрольной точки, где j представляет собой какое-либо одно из чисел 1, …, или J, где J представляет собой число соседних декодированных блоков, и J – положительное целое число;

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

добавление K первых групп векторов движения к концу последовательности L вторых групп векторов движения для генерирования Q групп векторов движения.

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

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

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

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

В качестве опции, процедура определения характеристического значения, соответствующего q-ой группе векторов движения, содержит:

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

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

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

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

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

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

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

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

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

Вариант 4 настоящего изобретения предлагает устройство кодирования изображения. На фиг. 5 представлена упрощенная структурная схема устройства кодирования изображения согласно Варианту 4 настоящего изобретения. Как показано на фиг. 5, устройство 500 кодирования изображения содержит решающий модуль 501, вычислительный модуль 502 и кодирующий модуль 503.

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

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

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

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

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

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

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

вычислительный модуль 502, в частности, конфигурирован для определения предсказателя вектора движения для верхней левой вершины блока, подлежащего кодированию, с использованием следующей формулы (1) и на основе вектора движения для верхней левой вершины n-го кодированного блока, найденного решающим модулем 501, вектора движения для верхней правой вершины n-го кодированного блока, вектора движения для нижней левой вершины n-го кодированного блока, выборочных координат верхней левой вершины n-го кодированного блока, выборочных координат верхней правой вершины n-го кодированного блока, выборочных координат нижней левой вершины n-го кодированного блока и выборочных координат верхней левой вершины блока, подлежащего кодированию:

формула (1); и

вычислительный модуль 502 дополнительно конфигурирован для определения предсказателя вектора движения для верхней правой вершины блока, подлежащего кодированию, с использованием следующей формулы (2) и на основе вектора движения для верхней левой вершины n-го кодированного блока, найденного решающим модулем 501, вектора движения для верхней правой вершины n-го кодированного блока, выборочных координат верхней левой вершины n-го кодированного блока, выборочных координат верхней правой вершины n-го кодированного блока, предсказателя вектора движения для верхней левой вершины блока, подлежащего кодированию, выборочных координат верхней левой вершины блока, подлежащего кодированию, и выборочных координат верхней левой вершины блока, подлежащего кодированию:

формула (2).

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

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

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

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

В качестве опции, решающий модуль 501 дополнительно конфигурирован для: определения, из совокупности соседних кодированных блоков, кодированного блока, соответствующего m-ой контрольной точке, в блоке, подлежащем кодированию, где расстояние между кодированным блоком, соответствующим m-ой контрольной точке и этой m-ой контрольной точкой не больше заданного расстояния, и m представляет собой какое-либо положительное целое число не больше M; определения вектора движения для кодированного блока, соответствующего указанной m-ой контрольной точке, в качестве первого предсказателя вектора движения для рассматриваемой m-ой контрольной точки; генерирования K первых групп векторов движения на основе первых предсказателей векторов движения для M контрольных точек; определения вектора движения для j-го кодированного блока из совокупности соседних кодированных блоков в качестве второго предсказателя вектора движения для m-ой контрольной точки, где j представляет собой какое-либо одно из чисел 1, …, или J, где J представляет собой число соседних кодированных блоков, и J – положительное целое число; генерирования L вторых групп векторов движения на основе вторых предсказателей векторов движения для M контрольных точек; и добавления K первых групп векторов движения к концу последовательности L вторых групп векторов движения для генерирования Q групп векторов движения.

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

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

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

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

Устройство кодирования изображения, предлагаемое в Варианте 4 настоящего изобретения, может быть конфигурировано для осуществления способа кодирования изображения согласно Варианту 1 или Варианту 2. Конкретная процедура осуществления и благоприятный эффект аналогичны тем, которые описаны применительно к рассмотренным выше вариантам. Подробности здесь повторно описаны не будут.

Вариант 5 настоящего изобретения далее предлагает устройство декодирования изображения. На фиг. 6 представлена упрощенная структурная схема устройства декодирования изображения согласно Варианту 5 настоящего изобретения. Как показано на фиг. 6, устройство 600 декодирования изображения может содержать решающий модуль 601, вычислительный модуль 602 и декодирующий модуль 603.

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

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

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

Решающий модуль 601 дополнительно конфигурирован для определения оптимальной группы векторов движения из совокупности N групп векторов движения на основе идентификатора индекса для оптимальной группы векторов движения, найденной декодирующим модулем 603.

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

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

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

вычислительный модуль 602, в частности, конфигурирован для определения предсказателя вектора движения для верхней левой вершины блока, подлежащего декодированию, с использованием следующей формулы (1) и на основе вектора движения для верхней левой вершины n-го декодированного блока, найденного решающим модулем 601, вектора движения для верхней правой вершины n-го декодированного блока, вектора движения для нижней левой вершины n-го декодированного блока, выборочных координат верхней левой вершины n-го декодированного блока, выборочных координат верхней правой вершины n-го декодированного блока, выборочных координат нижней левой вершины n-го декодированного блока и выборочных координат верхней левой вершины блока, подлежащего декодированию:

формула (1); и

в частности, вычислительный модуль 602 дополнительно конфигурирован для определения предсказателя вектора движения для верхней правой вершины блока, подлежащего декодированию, с использованием следующей формулы (2) и на основе вектора движения для верхней левой вершины n-го декодированного блока, найденного решающим модулем 601, вектора движения для верхней правой вершины n-го декодированного блока, выборочных координат верхней левой вершины n-го декодированного блока, выборочных координат верхней правой вершины n-го декодированного блока, предсказателя вектора движения для верхней левой вершины блока, подлежащего декодированию, выборочных координат верхней левой вершины блока, подлежащего декодированию, и выборочных координат верхней левой вершины блока, подлежащего декодированию:

формула (2).

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

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

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

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

В качестве опции, решающий модуль 601 дополнительно конфигурирован для: определения, из совокупности соседних декодированных блоков, декодированного блока, соответствующего m-ой контрольной точке, в блоке, подлежащем декодированию, где расстояние между декодированным блоком, соответствующим m-ой контрольной точке и этой m-ой контрольной точкой не больше заданного расстояния, и m представляет собой какое-либо положительное целое число не больше M; определения вектора движения для декодированного блока, соответствующего указанной m-ой контрольной точке, в качестве первого предсказателя вектора движения для рассматриваемой m-ой контрольной точки; генерирования K первых групп векторов движения на основе первых предсказателей векторов движения для M контрольных точек; определения вектора движения для j-го декодированного блока из совокупности соседних декодированных блоков в качестве второго предсказателя вектора движения для m-ой контрольной точки, где j представляет собой какое-либо одно из чисел 1, …, или J, где J представляет собой число соседних декодированных блоков, и J – положительное целое число; генерирования L вторых групп векторов движения на основе вторых предсказателей векторов движения для M контрольных точек; и добавление K первых групп векторов движения к концу последовательности L вторых групп векторов движения для генерирования Q групп векторов движения.

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

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

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

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

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

Вариант 6 настоящего изобретения предлагает устройство кодирования изображения. На фиг. 7 представлена упрощенная структурная схема устройства кодирования изображения согласно Варианту 6 настоящего изобретения. Как показано на фиг. 7, устройство 700 кодирования изображения содержит процессор 701, запоминающее устройство 702, интерфейс 703 связи и шину 704. Процессор 701 соединен с запоминающим устройством 702 и интерфейсом 703 связи с использованием шины 704.

Запоминающее устройство 702 конфигурировано для сохранения команд.

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

Устройство кодирования изображения, предлагаемое в Варианте 6 настоящего изобретения может осуществлять способ кодирования изображения, предлагаемый Вариантом 1 или Вариантом 2. Конкретная процедура осуществления и благоприятный эффект аналогичны тем, которые описаны применительно к рассмотренным выше вариантам. Подробности здесь повторно описаны не будут.

Вариант 7 настоящего изобретения предлагает устройство декодирования изображения. На фиг. 8 представлена упрощенная структурная схема устройства декодирования изображения согласно Варианту 7 настоящего изобретения. Как показано на фиг. 8, устройство 800 декодирования изображения может содержать процессор 801, запоминающее устройство 802, интерфейс 803 связи и шину 804. Процессор 801 соединен с запоминающим устройством 802 и интерфейсом 803 связи с использованием шины 804.

Запоминающее устройство 802 конфигурировано для хранения команд.

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

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

Даже рядовые специалисты в рассматриваемой области могут понимать, что все или некоторые из этапов вариантов способов могут быть осуществлены с использованием программы, управляющей соответствующей аппаратурой. Эта программа может быть сохранена на читаемом компьютером носителе информации. Когда программа работает, она осуществляет этапы вариантов способов. Упомянутый выше носитель информации представляет собой какой-либо носитель, способный сохранять программный код, такой как ПЗУ (ROM), ЗУПВ (RAM), магнитный диск или оптический диск.

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

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

название год авторы номер документа
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ И СПОСОБ И УСТРОЙСТВО ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ 2016
  • Чэнь, Хуаньбан
  • Линь, Сисинь
  • Ян, Хайтао
RU2708347C1
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ И СПОСОБ И УСТРОЙСТВО ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ 2020
  • Чэнь, Хуаньбан
  • Линь, Сисинь
  • Ян, Хайтао
RU2748360C1
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ И СПОСОБ И УСТРОЙСТВО ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ 2020
  • Чэнь, Хуаньбан
  • Линь, Сисинь
  • Ян, Хайтао
RU2737315C1
СПОСОБ ПРОГНОЗИРОВАНИЯ ИЗОБРАЖЕНИЯ И УСТРОЙСТВО ПРОГНОЗИРОВАНИЯ ИЗОБРАЖЕНИЯ 2016
  • Линь Сисинь
  • Хуан Жуопу
  • Ян Хайтао
RU2675092C1
СПОСОБ ПРОГНОЗИРОВАНИЯ ИЗОБРАЖЕНИЯ И УСТРОЙСТВО ПРОГНОЗИРОВАНИЯ ИЗОБРАЖЕНИЯ 2016
  • Линь Сисинь
  • Хуан Жуопу
  • Ян Хайтао
RU2699258C2
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ НА ОСНОВЕ ПОДКАРТИНКИ 2020
  • Хендри, Хендри
RU2803187C1
Способ и устройство декодирования изображения на основе предсказания аффинного движения с использованием списка кандидатов аффинного MVP в системе кодирования изображения 2019
  • Ли, Дзаехо
RU2768957C1
СПОСОБ И УСТРОЙСТВО ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ НА ОСНОВЕ ПРЕДСКАЗАНИЯ АФФИННОГО ДВИЖЕНИЯ С ИСПОЛЬЗОВАНИЕМ СПИСКА КАНДИДАТОВ АФФИННОГО MVP В СИСТЕМЕ КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ 2019
  • Ли, Дзаехо
RU2800679C2
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ НА ОСНОВЕ ПОДКАРТИНКИ 2020
  • Хендри, Хендри
RU2810200C2
СПОСОБ И АППАРАТУРА ПРЕДСКАЗАНИЯ ВИДЕОИЗОБРАЖЕНИЙ 2019
  • Чэнь, Хуаньбан
  • Ян, Хайтао
RU2787812C2

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

Реферат патента 2020 года СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ И СПОСОБ И УСТРОЙСТВО ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ

Изобретение относится к вычислительной технике. Технический результат заключается в повышении точности декодирования изображения. Способ декодирования изображения, в котором определяют N декодированных блоков из соседних декодированных блоков блока, подлежащего декодированию, причем режим прогнозирования движения для указанных N декодированных блоков является таким же, как режим для блока, подлежащего декодированию; генерируют n-ю группу векторов движения на основе вектора движения для n-го декодированного блока, где n является любым положительным целым числом не больше N; декодируют поток битов данных, соответствующий блоку, подлежащему декодированию, для получения остатка прогнозирования для каждого блока выборки и идентификатора индекса для оптимальной группы векторов движения; определяют оптимальную группу векторов движения из N групп векторов движения на основе идентификатора индекса для оптимальной группы векторов движения; определяют прогнозируемую величину выборки для каждого блока выборки в блоке, подлежащем декодированию на основе оптимальной группы векторов движения; и определяют реконструированную величину выборки для каждого блока выборки на основе суммы прогнозируемой величины выборки для каждого блока выборки и остатка прогнозирования для каждого блока выборки. 5 н. и 20 з.п. ф-лы, 8 ил.

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

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

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

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

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

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

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

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

2. Способ по п. 1, в котором этап генерирования n-й группы векторов движения с использованием первого заданного алгоритма и на основе вектора движения для n-го декодированного блока содержит подэтапы, на которых:

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

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

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

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

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

формула (1); и

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

формула (2).

4. Способ по п.1, в котором этап определения оптимальной группы векторов движения из совокупности N групп векторов движения на основе идентификатора индекса для оптимальной группы векторов движения содержит подэтапы, на которых:

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

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

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

5. Способ по п. 4, в котором заданное правило сортировки содержит расположение N декодированных блоков в порядке убывания.

6. Способ по п. 1, в котором этап определения оптимальной группы векторов движения из N групп векторов движения на основе идентификатора индекса для оптимальной группы векторов движения содержит подэтапы, на которых:

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

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

добавляют Q групп векторов движения к концу последовательности N групп векторов движения для генерирования очереди векторов-кандидатов движения;

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

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

7. Способ по п. 6, в котором этап генерирования Q групп векторов движения содержит подэтапы, на которых:

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

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

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

8. Способ по п. 6, в котором этап генерирования Q групп векторов движения содержит подэтапы, на которых:

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

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

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

определяют вектор движения для j-го декодированного блока, из соседних декодированных блоков в качестве второго предсказателя вектора движения для m-й контрольной точки, где j является любым числом из чисел 1, …, или J, а J представляет собой число соседних декодированных блоков, и J – положительное целое число;

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

добавляют K первых групп векторов движения к концу последовательности L вторых групп векторов движения для генерирования Q групп векторов движения.

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

10. Устройство декодирования изображения, содержащее:

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

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

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

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

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

11. Устройство декодирования изображения по п. 10, в котором

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

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

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

формула (1); при этом

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

формула (2).

13. Устройство декодирования изображения по п. 10, в котором

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

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

15. Устройство декодирования изображения по п. 10, в котором

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

16. Устройство декодирования изображения по п. 15, в котором

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

17. Устройство декодирования изображения по п. 15, в котором

решающий модуль дополнительно выполнен с возможностью: определения, из совокупности соседних декодированных блоков, декодированного блока, соответствующего m-й контрольной точке, в блоке, подлежащем декодированию, причем расстояние между декодированным блоком, соответствующим m-й контрольной точке, и m-й контрольной точкой меньше или равно заданному расстоянию, и m является любым положительным целым числом, меньшим или равным M; определения вектора движения для декодированного блока, соответствующего указанной m-й контрольной точке, в качестве предсказателя вектора движения для m-й контрольной точки; генерирования K первых групп векторов движения на основе первых предсказателей векторов движения для M контрольных точек; определения вектора движения для j-го декодированного блока из соседних декодированных блоков в качестве второго предсказателя вектора движения для m-й контрольной точки, где j является любым числом из чисел 1, …, или J, где J представляет собой число соседних декодированных блоков, и J – положительное целое число; генерирования L вторых групп векторов движения на основе вторых предсказателей векторов движения для M контрольных точек; и добавления K первых групп векторов движения к концу последовательности L вторых групп векторов движения для генерирования Q групп векторов движения.

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

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

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

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

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

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

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

определяют оптимальную группу векторов движения на основе N групп векторов движения;

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

21. Способ по п. 20, в котором режим прогнозирования движения представляет собой аффинный режим прогнозирования движения; а этап определения N декодированных блоков из декодированных блоков, соседних с блоком, подлежащим декодированию, в соответствии с первым заданным правилом содержит подэтапы, на которых:

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

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

22. Способ по п. 20, в котором этап определения оптимальной группы векторов движения на основе N групп векторов движения содержит подэтапы, на которых:

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

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

23. Устройство декодирования изображения, содержащее:

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

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

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

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

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

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

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

25. Устройство по п. 23, дополнительно содержащий:

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

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

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

Печь для непрерывного получения сернистого натрия 1921
  • Настюков А.М.
  • Настюков К.И.
SU1A1
Способ очистки нефти и нефтяных продуктов и уничтожения их флюоресценции 1921
  • Тычинин Б.Г.
SU31A1
US

RU 2 722 389 C2

Авторы

Чэнь, Хуаньбан

Линь, Сисинь

Ян, Хайтао

Даты

2020-05-29Публикация

2016-09-08Подача