RU2781517C1 - Dynamic image encoding device, dynamic image encoding method, dynamic image encoding program, dynamic image decoding device, dynamic image decoding method and dynamic image decoding program - Google Patents

Dynamic image encoding device, dynamic image encoding method, dynamic image encoding program, dynamic image decoding device, dynamic image decoding method and dynamic image decoding program Download PDF

Info

Publication number
RU2781517C1
RU2781517C1 RU2021137427A RU2021137427A RU2781517C1 RU 2781517 C1 RU2781517 C1 RU 2781517C1 RU 2021137427 A RU2021137427 A RU 2021137427A RU 2021137427 A RU2021137427 A RU 2021137427A RU 2781517 C1 RU2781517 C1 RU 2781517C1
Authority
RU
Russia
Prior art keywords
block
prediction
motion vector
encoding
vector predictor
Prior art date
Application number
RU2021137427A
Other languages
Russian (ru)
Inventor
Тору КУМАКУРА
Сигэру ФУКУСИМА
Хидэки ТАКЭХАРА
Хироя НАКАМУРА
Сатору САКАДЗУМЭ
Хироюки КУРАСИГЭ
Original Assignee
ДжейВиСиКЕНВУД Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ДжейВиСиКЕНВУД Корпорейшн filed Critical ДжейВиСиКЕНВУД Корпорейшн
Application granted granted Critical
Publication of RU2781517C1 publication Critical patent/RU2781517C1/en

Links

Images

Abstract

FIELD: imaging technology.
SUBSTANCE: group of inventions relates to image encoding and decoding technologies in which the image is divided into blocks and prediction is performed. An image encoding device is proposed, characterized by the fact that it divides a block of the encoding tree into one or more standard blocks of in-block copying. The device contains a block for obtaining a block candidate vector, a selector, a storage device, a block for correcting the boundary of the reference area, and a bit string encoding block. In this case, the block of obtaining a block candidate vector is made with the possibility of obtaining block candidate vectors of the target encoding block in the target encoding image from encoding information stored in memory for storing encoding information. The selector is made with the ability to select the selected block vector from the candidate block vectors. The storage device is designed with the ability to store encoded images of a given number of standard blocks of in-block copying located directly in front of the target standard block of in-block copying encoding.
EFFECT: increase in the efficiency of encoding/decoding images.
6 cl, 83 dwg

Description

Уровень техникиState of the art

Настоящее изобретение относится к способам кодирования и декодирования изображений, в которых изображение разделяется на блоки и выполняется предсказание.The present invention relates to image encoding and decoding methods in which an image is divided into blocks and prediction is performed.

При кодировании и декодировании изображения целевое изображение разделяется на блоки, каждый из которых является группой из заданного количества выборок, и обработка выполняется в блоках блоков. Разделение изображения на соответствующие блоки с соответствующими установками внутрикадрового предсказания и межкадрового предсказания позволяет повысить эффективность кодирования.When encoding and decoding an image, the target image is divided into blocks, each of which is a group of a predetermined number of samples, and processing is performed in blocks of blocks. Dividing an image into appropriate blocks with appropriate intra-prediction and inter-prediction settings can improve coding efficiency.

В патентном документе 1 раскрыта методика внутрикадрового предсказания, в которой получают предсказанного изображения с использованием декодированных выборок в блоке, соседнем с целевым блоком кодирования/декодирования. Patent Document 1 discloses an intra-frame prediction technique in which a predicted image is obtained using decoded samples in a block adjacent to an encoding/decoding target block.

[Патентный документ 1] JP 9–172644 A.[Patent Document 1] JP 9-172644A.

Раскрытие сущности изобретенияDisclosure of the essence of the invention

Однако в технологии, изложенной в патентном документе 1, для предсказания используются только декодированные выборки в блоке, соседнем с целевым блоком кодирования/декодирования, и это приводит к плохой эффективности предсказания.However, in the technology set forth in Patent Document 1, only decoded samples in a block adjacent to an encoding/decoding target block are used for prediction, and this results in poor prediction performance.

В аспекте настоящего изобретения для решения вышеописанной проблемы предоставляется устройство, включающее в себя: блок получения блочного вектора-кандидата, который получает блочные векторы-кандидаты целевого блока кодирования в целевом изображении кодирования из информации кодирования, сохраненной в памяти для хранения информации кодирования; селектор, который выбирает подлежащий выбору блочный вектор из блочных векторов-кандидатов; запоминающее устройство, в котором хранятся кодированные изображения заданного количества стандартных блоков внутриблочного копирования, находящихся непосредственно перед целевым блоком кодирования; и блок коррекции границы опорной области, который удаляет кодированное изображение одного стандартного блока внутриблочного копирования, хранящегося в запоминающем устройстве, из области, на которую можно ссылаться, после завершения процесса кодирования целевого блока кодирования, и определяет, включены ли как верхняя левая позиция, так и нижняя правая позиция опорного блока, указанного выбранным блочным вектором, в область, на которую можно ссылаться.In an aspect of the present invention, in order to solve the above-described problem, an apparatus is provided, including: a block vector candidate deriving unit that obtains candidate block vectors of an encoding target block in an encoding target image from encoding information stored in a memory for storing encoding information; a selector that selects a block vector to be selected from among the candidate block vectors; a storage device that stores encoded images of a predetermined number of intra-block copy building blocks immediately before the encoding target block; and a reference area boundary correction unit that removes an encoded image of one standard block copy stored in the memory from the referenced area after the encoding process of the encoding target block is completed, and determines whether both the upper left position and the bottom right position of the reference block specified by the selected block vector into the referenced area.

Согласно настоящему изобретению предложен высокоэффективный процесс кодирования/декодирования изображений с низкой нагрузкой.According to the present invention, a highly efficient low load image encoding/decoding process is provided.

Краткое описание чертежейBrief description of the drawings

Фиг. 1 – блок-схема устройства кодирования изображений согласно варианту осуществления настоящего изобретения.Fig. 1 is a block diagram of an image encoding apparatus according to an embodiment of the present invention.

Фиг. 2 – блок-схема устройства декодирования изображения согласно варианту осуществления настоящего изобретения.Fig. 2 is a block diagram of an image decoding apparatus according to an embodiment of the present invention.

Фиг. 3 – блок-схема алгоритма, иллюстрирующая операцию разделения блока дерева.Fig. 3 is a block diagram of the algorithm illustrating the operation of dividing a tree block.

Фиг. 4 – схема, иллюстрирующая состояние разделения входного изображения на блоки дерева.Fig. 4 is a diagram illustrating the state of splitting the input image into tree blocks.

Фиг. 5 – схема, иллюстрирующая z-сканирование.Fig. 5 is a diagram illustrating z-scan.

Фиг. 6A – схема, иллюстрирующая форму разделенного блока.Fig. 6A is a diagram illustrating the shape of a divided block.

Фиг. 6B – схема, иллюстрирующая форму разделенного блока.Fig. 6B is a diagram illustrating the shape of a divided block.

Фиг. 6C – схема, иллюстрирующая форму разделенного блока.Fig. 6C is a diagram illustrating the shape of a divided block.

Фиг. 6D – схема, иллюстрирующая форму разделенного блока.Fig. 6D is a diagram illustrating the shape of a divided block.

Фиг. 6E – схема, иллюстрирующая форму разделенного блока.Fig. 6E is a diagram illustrating the shape of a divided block.

Фиг. 7 – блок-схема алгоритма, иллюстрирующая операцию разделения блока на четыре.Fig. 7 is a block diagram of the algorithm illustrating the operation of dividing a block into four.

Фиг. 8 – блок-схема алгоритма, иллюстрирующая операцию разделения блока на два или три.Fig. 8 is a flowchart illustrating the operation of dividing a block into two or three.

Фиг. 9 – синтаксис для выражения формы разделения блока.Fig. 9 is the syntax for expressing the shape of a block split.

Фиг. 10A – схема, иллюстрирующая внутрикадровое предсказание.Fig. 10A is a diagram illustrating intra prediction.

Фиг. 10B – схема, иллюстрирующая внутрикадровое предсказание.Fig. 10B is a diagram illustrating intra prediction.

Фиг. 11 – схема, иллюстрирующая опорные блоки для межкадрового предсказания.Fig. 11 is a diagram illustrating reference blocks for inter prediction.

Фиг. 12A – синтаксис для выражения режима предсказания блока кодирования.Fig. 12A is a syntax for expressing a coding block prediction mode.

Фиг. 12В – синтаксис для выражения режима предсказания блока кодирования.Fig. 12B is a syntax for expressing a coding block prediction mode.

Фиг. 13 – таблица, иллюстрирующая соответствие между элементами синтаксиса и режимами, которые относятся к межкадровому предсказанию.Fig. 13 is a table illustrating the correspondence between syntax elements and modes that are related to inter prediction.

Фиг. 14 – схема, иллюстрирующая компенсацию аффинного движения в двух контрольных точках.Fig. 14 is a diagram illustrating affine motion compensation at two control points.

Фиг. 15 – схема, иллюстрирующая компенсацию аффинного движения в трех контрольных точках.Fig. 15 is a diagram illustrating affine motion compensation at three control points.

Фиг. 16 – блок-схема подробной конфигурации блока 102 межкадрового предсказания (фиг. 1).Fig. 16 is a block diagram of a detailed configuration of the inter prediction block 102 (FIG. 1).

Фиг. 17 – блок-схема подробной конфигурации блока 301 получения режима предиктора нормального вектора движения (фиг. 16).Fig. 17 is a block diagram of a detailed configuration of the normal motion vector predictor mode acquisition block 301 (FIG. 16).

Фиг. 18 – блок-схема подробной конфигурации блока 302 получения режима нормального слияния (фиг. 16).Fig. 18 is a block diagram of a detailed configuration of the normal merge mode acquisition block 302 (FIG. 16).

Фиг. 19 – блок-схема алгоритма, иллюстрирующая процесс получения режима предиктора нормального вектора движения блока 301 получения режима предиктора нормального вектора движения (фиг. 16).Fig. 19 is a flowchart illustrating a normal motion vector predictor mode acquisition process of the normal motion vector predictor mode acquisition unit 301 (FIG. 16).

Фиг. 20 – блок-схема алгоритма, иллюстрирующая процедуру обработки процесса получения режима предиктора нормального вектора движения.Fig. 20 is a flowchart illustrating a normal motion vector predictor mode acquisition processing procedure.

Фиг. 21 – блок-схема алгоритма, иллюстрирующая процедуру обработки нормального процесса получения режима слияния.Fig. 21 is a flowchart illustrating a normal merge mode acquisition process processing procedure.

Фиг. 22 – блок-схема подробной конфигурации блока 203 межкадрового предсказания (фиг. 2).Fig. 22 is a block diagram of a detailed configuration of the inter prediction block 203 (FIG. 2).

Фиг. 23 – блок-схема подробной конфигурации блока 401 получения режима предиктора нормального вектора движения (фиг. 22).Fig. 23 is a block diagram of a detailed configuration of the normal motion vector predictor mode acquisition block 401 (FIG. 22).

Фиг. 24 – блок-схема подробной конфигурации блока 402 получения режима нормального слияния (фиг. 22).Fig. 24 is a block diagram of a detailed configuration of the normal merge mode acquisition block 402 (FIG. 22).

Фиг. 25 – блок-схема алгоритма, иллюстрирующая процесс получения режима предиктора нормального вектора движения блока 401 получения режима предиктора нормального вектора движения (фиг. 22).Fig. 25 is a flowchart illustrating the normal motion vector predictor mode acquisition process of the normal motion vector predictor mode acquisition unit 401 (FIG. 22).

Фиг. 26 – блок-схема алгоритма, иллюстрирующая процедуру обработки инициализации/обновления списка кандидатов предикторов вектора движения на основании истории.Fig. 26 is a flowchart illustrating a process of initializing/updating a motion vector predictor candidate list based on history.

Фиг. 27 – блок-схема алгоритма процедуры обработки подтверждения идентичного элемента в процедуре обработки инициализации/обновления списка кандидатов предикторов вектора движения на основании истории.Fig. 27 is a flowchart of the identity confirmation processing procedure in the history-based motion vector predictor candidate list initialization/updating processing procedure.

Фиг. 28 – блок-схема алгоритма процедуры обработки сдвига элемента в процедуре обработки инициализации/обновления списка кандидатов предикторов вектора движения на основании истории.Fig. 28 is a flowchart of the element shift processing procedure in the history-based motion vector predictor candidate list initialization/updating processing procedure.

Фиг. 29 – блок-схема алгоритма, иллюстрирующая процедуру обработки получения кандидата предиктора вектора движения на основании истории.Fig. 29 is a flowchart illustrating a processing procedure for obtaining a motion vector predictor candidate based on history.

Фиг. 30 – блок-схема алгоритма, иллюстрирующая процедуру обработки получения кандидатов слияния на основании истории.Fig. 30 is a flowchart illustrating a history-based merge candidate acquisition processing procedure.

Фиг. 31A – схема, иллюстрирующая пример процесса обновления списка кандидатов предиктора вектора движения на основании истории.Fig. 31A is a diagram illustrating an example of a process for updating a motion vector predictor candidate list based on history.

Фиг. 31B – схема, иллюстрирующая пример процесса обновления списка кандидатов предиктора вектора движения на основании истории.Fig. 31B is a diagram illustrating an example of a process for updating a motion vector predictor candidate list based on history.

Фиг. 31C – схема, иллюстрирующая процесса обновления списка кандидатов предиктора вектора движения на основании истории.Fig. 31C is a diagram illustrating a process of updating a motion vector predictor candidate list based on history.

Фиг. 32 – схема, иллюстрирующая предсказание компенсации движения в случае, когда выполняется предсказание L0 и опорное изображение (RefL0Pic) L0 происходит в момент перед целевым изображением (CurPic).Fig. 32 is a diagram illustrating motion compensation prediction in a case where L0 prediction is performed and an L0 reference picture (RefL0Pic) occurs at a time before the target picture (CurPic).

Фиг. 33 – схема, иллюстрирующая предсказание с компенсацией движения в случае, когда выполняется предсказание L0 и опорное изображение предсказания L0 происходит в момент после целевого изображения.Fig. 33 is a diagram illustrating motion-compensated prediction in a case where L0 prediction is performed and an L0 prediction reference picture occurs at a time after the target picture.

Фиг. 34 – схема, иллюстрирующая направление предсказания компенсации движения в двунаправленном предсказании, в котором L0 предсказание опорного изображения происходит в момент перед целевым изображением и L1 предсказание опорного изображения происходит в момент после целевого изображения.Fig. 34 is a diagram illustrating a motion compensation prediction direction in bidirectional prediction in which L0 reference picture prediction occurs at a time before the target picture and L1 reference picture prediction occurs at a time after the target picture.

Фиг. 35 – схема, иллюстрирующая направление предсказания компенсации движения в двунаправленном предсказании, в котором L0 предсказание опорного изображения и L1 предсказание опорного изображения происходит в момент до целевого кадра.Fig. 35 is a diagram illustrating a motion compensation prediction direction in bidirectional prediction in which L0 reference picture prediction and L1 reference picture prediction occur at a time before the target frame.

Фиг. 36 – схема, иллюстрирующая направление предсказания компенсации движения в двунаправленном предсказании, в котором L0 предсказание опорного изображения и L1 предсказание опорного изображения происходит в момент, после целевого изображения.Fig. 36 is a diagram illustrating a motion compensation prediction direction in bidirectional prediction in which L0 reference picture prediction and L1 reference picture prediction occur at a time after the target picture.

Фиг. 37 – блок-схема, иллюстрирующая пример конфигурации аппаратных средств устройства для кодирования-декодирования согласно варианту осуществления настоящего изобретения.Fig. 37 is a block diagram illustrating a hardware configuration example of an encoding/decoding device according to an embodiment of the present invention.

Фиг.38 – блок-схема алгоритма, иллюстрирующая процедуру процесса получения усредненного кандидата слияния.38 is a flowchart illustrating a procedure for obtaining an average merge candidate.

Фиг.39A – схема, иллюстрирующая действительную опорную область внутриблочного копирования.39A is a diagram illustrating the actual in-block copy reference area.

Фиг.39B – схема, иллюстрирующая действительную опорную область внутриблочного копирования.39B is a diagram illustrating the actual in-block copy reference area.

Фиг.40 – блок-схема подробной конфигурации блока 103 внутрикадрового предсказания (фиг.1).FIG. 40 is a block diagram of a detailed configuration of the intra prediction block 103 (FIG. 1).

Фиг.41 – блок-схема подробной конфигурации блока 204 внутрикадрового предсказания (фиг.2).FIG. 41 is a block diagram of a detailed configuration of the intra prediction block 204 (FIG. 2).

Фиг.42 – блок-схема блока 352 предсказания внутририблочного копирования.FIG. 42 is a block diagram of block 352 of intra-block copy prediction.

Фиг.43 – блок-схема блока 362 предсказания внутририблочного копирования.43 is a block diagram of an intra-block copy prediction block 362 .

Фиг.44 – блок-схема алгоритма, иллюстрирующая процесс копирования внутрикадрового блока предсказания блока 352 предсказания внутририблочного копирования.44 is a flowchart illustrating the process of copying an intra-frame prediction block of the intra-block copy prediction block 352 .

Фиг.45 – блок-схема алгоритма, иллюстрирующая процесс копирования внутрикадрового блока предсказания блока 362 предсказания внутририблочного копирования.45 is a flowchart illustrating the process of copying an intra-frame prediction block of the intra-block copy prediction block 362 .

Фиг.46 – блок-схема алгоритма, иллюстрирующая процесс внутриблочного копирования в режиме слияния.Fig. 46 is a flowchart illustrating the intra-block copy process in merge mode.

Фиг.47 - блок-схема алгоритма, иллюстрирующая процедуру выполнения процесса получения режима предсказания блочного вектора с внутририблочным копированием.FIG. 47 is a flowchart illustrating a process flow for obtaining a block vector prediction mode with intra-block copy.

Фиг.48 – блок-схема алгоритма, иллюстрирующая процесс, выполняемый блоком 380 коррекции опорной позиции и блоком 480 коррекции опорной позиции.48 is a flowchart illustrating the process performed by the reference position correction block 380 and the reference position correction block 480.

Фиг.49 – схематичное представление, иллюстрирующее состояние коррекции опорной позиции.Fig. 49 is a schematic diagram illustrating a state of reference position correction.

Фиг.50A – схематичное представление, иллюстрирующее верхнюю левую и нижнюю правую позиции, когда область, на которую можно ссылаться, является прямоугольной.Fig. 50A is a schematic diagram illustrating the top left and bottom right positions when the area that can be referred to is rectangular.

Фиг.50B – схематичное представление, иллюстрирующее верхнюю левую и нижнюю правую позиции, когда область, на которую можно ссылаться, является прямоугольной.50B is a schematic diagram illustrating the top left and bottom right positions when the area that can be referred to is rectangular.

Фиг.50C – схематичное представление, иллюстрирующее верхнюю левую и нижнюю правую позиции, когда область, на которую можно ссылаться, является прямоугольной.50C is a schematic diagram illustrating the top left and bottom right positions when the area that can be referred to is rectangular.

Фиг.50D – схематичное представление, иллюстрирующее верхнюю левую и нижнюю правую позиции, когда область, на которую можно ссылаться, является прямоугольной.50D is a schematic diagram illustrating the top left and bottom right positions when the area that can be referred to is rectangular.

Фиг.51 – блок-схема алгоритма, иллюстрирующая процесс коррекции опорной позиции участка, в котором область, на которую можно ссылаться, не является прямоугольной.Fig. 51 is a flowchart illustrating a process for correcting a reference position of a portion in which an area that can be referred to is not rectangular.

Фиг.52A – схематичное представление, иллюстрирующее состояние коррекции опорной позиции.Fig. 52A is a schematic diagram illustrating the status of the reference position correction.

Фиг.52B – схематичное представление, иллюстрирующее состояние коррекции опорной позиции.Fig. 52B is a schematic diagram illustrating a state of correction of the reference position.

Фиг.53 – блок-схема алгоритма, иллюстрирующая процесс, выполняемый блоком 380 коррекции опорной позиции и блоком 480 коррекции опорной позиции.53 is a flowchart illustrating the process performed by the reference position correction block 380 and the reference position correction block 480.

Фиг.54A – схематичное представление, иллюстрирующее состояние разделения области, на которую можно ссылаться, на две области.Fig. 54A is a schematic view illustrating a state of dividing an area that can be referred to into two areas.

Фиг.54B – схематичное представление, иллюстрирующее состояние разделения области, на которую можно ссылаться, на две области.Fig. 54B is a schematic view illustrating a state of dividing an area that can be referred to into two areas.

Фиг.54C – схематичное представление, иллюстрирующее состояние разделения области, на которую можно ссылаться, на две области.Fig. 54C is a schematic view illustrating a state of dividing an area that can be referred to into two areas.

Фиг.54D – схематичное представление, иллюстрирующее состояние разделения области, на которую можно ссылаться, на две области.Fig. 54D is a schematic view illustrating a state of dividing an area that can be referred to into two areas.

Фиг.55 – блок-схема алгоритма, иллюстрирующая процесс разделения опорной области на две области и коррекции каждой из опорных позиций.55 is a flowchart illustrating the process of dividing a reference area into two areas and correcting each of the reference positions.

Фиг.56A – схематичное представление, иллюстрирующее область памяти опорной области, когда единица блока дерева кодирования используется в качестве стандартного блока внутриблочного копирования.56A is a schematic diagram illustrating a reference area memory area when a coding tree block unit is used as an intra-block copy standard block.

Фиг.56B – схематичное представление, иллюстрирующее область памяти опорной области, когда единица блока дерева кодирования используется в качестве стандартного блока внутриблочного копирования.56B is a schematic diagram illustrating a reference area memory area when a coding tree block unit is used as an intra-block copy standard block.

Фиг.56C – схематичное представление, иллюстрирующее область памяти опорной области, когда единица блока дерева кодирования используется в качестве стандартного блока внутриблочного копирования.56C is a schematic diagram illustrating a reference area memory area when a coding tree block unit is used as an intra-block copy standard block.

Фиг.57A – схематичное представление, иллюстрирующее область памяти опорной области, когда действительная опорная область определяется при предположении, что единица получена путем разделения на четыре части блока дерева кодирования, в качестве стандартного блока внутриблочного копирования.57A is a schematic diagram illustrating a reference area memory area when a valid reference area is determined under the assumption that a unit is obtained by quartering a coding tree block as an intra-block copy standard block.

Фиг.57B – схематичное представление, иллюстрирующее область памяти опорной области, когда действительная опорная область определяется при предположении, что единица получена путем разделения на четыре части блока дерева кодирования, в качестве стандартного блока внутриблочного копирования.57B is a schematic diagram illustrating a reference area memory area when a valid reference area is determined under the assumption that a unit is obtained by quartering a coding tree block as an intra-block copy standard block.

Фиг.57C – схематичное представление, иллюстрирующее область памяти опорной области, когда действительная опорная область определяется при предположении, что единица получена путем разделения на четыре части блока дерева кодирования, в качестве стандартного блока внутриблочного копирования.57C is a schematic diagram illustrating a reference area memory area when a valid reference area is determined under the assumption that a unit is obtained by quartering a coding tree block as an intra-block copy standard block.

Фиг.57D – схематичное представление, иллюстрирующее область памяти опорной области, когда действительная опорная область определяется при предположении, что единица получена путем разделения на четыре части блока дерева кодирования, в качестве стандартного блока внутриблочного копирования.57D is a schematic diagram illustrating a reference area memory area when a valid reference area is determined under the assumption that a unit is obtained by quartering a coding tree block as an intra-block copy standard block.

Фиг.58 – блок-схема алгоритма, иллюстрирующая процедуру коррекции границы опорной области.58 is a flowchart illustrating the procedure for correcting the boundary of the reference area.

Фиг.59A – схематичное представление, иллюстрирующее разделение опорного блока в области памяти, когда единица блока дерева кодирования используется в качестве стандартного блока внутриблочного копирования.59A is a schematic diagram illustrating the division of a reference block in a memory area when a coding tree block unit is used as an intra-block copy standard block.

Фиг.59B – схематичное представление, иллюстрирующее разделение опорного блока в области памяти, когда единица блока дерева кодирования используется в качестве стандартного блока внутриблочного копирования.59B is a schematic diagram illustrating the division of a reference block in a memory area when a coding tree block unit is used as an intra-block copy standard block.

Фиг.60A – схематичное представление, иллюстрирующее разделение опорного блока в области памяти, когда действительная опорная область определяется при предположении, что единица получена путем разделения на четыре части блока дерева кодирования, в качестве стандартного блока внутриблочного копирования.60A is a schematic diagram illustrating the division of a reference block in a memory area when a valid reference area is determined under the assumption that a unit is obtained by quartering a coding tree block as an intra-block copy standard block.

Фиг.60B – схематичное представление, иллюстрирующее разделение опорного блока в области памяти, когда действительная опорная область определяется при предположении, что единица получена путем разделения на четыре части блока дерева кодирования, в качестве стандартного блока внутриблочного копирования.60B is a schematic diagram illustrating the division of a reference block in a memory area when a valid reference area is determined under the assumption that a unit is obtained by quartering a coding tree block as an intra-block copy standard block.

Осуществление изобретенияImplementation of the invention

Прежде всего, будет описаны определения технологии и технические термины, используемые в настоящем варианте осуществления.First of all, technology definitions and technical terms used in the present embodiment will be described.

Блок дереваwood block

В варианте осуществления целевое изображение кодирования/декодирования одинаково разделяется на заданный размер. Этот блок определяется как блок дерева. В то время, как на фиг. 4 размер блока дерева устанавливается равным 128×128 выборок, размер блока дерева этим не ограничивается и может быть установлен любой размер. Блок целевого дерева (соответствующий цели кодирования в процессе кодирования и цели декодирования в процессе декодирования) переключается в порядке растрового сканирования, то есть в порядке слева направо и сверху вниз. Внутренняя часть каждого блока дерева может быть дополнительно рекурсивно разделена. Блок кодирования/декодирования в результате рекурсивного разделения блока дерева определяется как блок кодирования. Блок дерева и блок кодирования вместе определяются как блок. Выполнение соответствующего разделения блока обеспечивает эффективное кодирование. Размер блока дерева может быть фиксированным значением, заранее определенным устройством для кодирования и устройством для декодирования, или можно принять конфигурацию, в которой размер блока дерева, определенный устройством для кодирования, передается в устройство для декодирования. Здесь максимальный размер блока дерева составляет 128×128 выборок и минимальный размер блока дерева равен 16×16 выборок. Максимальный размер блока кодирования составляет 64×64 выборки и минимальный размер блока кодирования равен 4×4 выборки.In an embodiment, the encoding/decoding target image is equally divided into a predetermined size. This block is defined as a tree block. While in FIG. 4, the tree block size is set to 128×128 samples, the tree block size is not limited to this, and any size can be set. The target tree block (corresponding to the encoding target in the encoding process and the decoding target in the decoding process) is switched in the raster scan order, that is, in the order from left to right and top to bottom. The interior of each tree block can be further divided recursively. The coding/decoding block resulting from the recursive splitting of the tree block is defined as the coding block. The tree block and the coding block are collectively defined as a block. Performing an appropriate block split provides efficient coding. The tree block size may be a fixed value predetermined by the encoding device and the decoding device, or a configuration may be adopted in which the tree block size determined by the encoding device is transmitted to the decoding device. Here, the maximum tree block size is 128×128 samples and the minimum tree block size is 16×16 samples. The maximum coding block size is 64×64 samples and the minimum coding block size is 4×4 samples.

Режим предсказанияPrediction mode

Между внутрикадровым предсказанием (MODE_INTRA) для выполнения предсказания из сигнала, обработанного изображения целевого изображения, и межкадровым предсказанием (MODE_INTER) для выполнения предсказания из сигнала изображения обработанного изображения в блоках целевых блоков кодирования выполняется переключение.Switching is performed between intra-picture prediction (MODE_INTRA) for performing prediction from the processed image signal of the target image and inter-picture prediction (MODE_INTER) for performing prediction from the image signal of the processed image in blocks of coding target blocks.

В процессе кодирования используется обработанное изображение для изображения, полученного посредством декодирования кодированного сигнала, сигнала изображения, блока дерева, блока, блока кодирования и т.п. В процессе декодирования используется обработанное изображение для декодированного изображения, сигнала изображения, блока дерева, блока, блока кодирования и т.п.The encoding process uses a processed image for an image obtained by decoding an encoded signal, an image signal, a tree block, a block, an encoding block, or the like. The decoding process uses the processed image for the decoded image, image signal, tree block, block, coding block, and the like.

Режим идентификации внутрикадрового предсказания (MODE_INTRA) и межкадрового предсказания (MODE_INTER) определяется как режим предсказания (PredMode). В качестве значения режим предсказания (PredMode) имеет внутрикадровое предсказание (MODE_INTRA) или межкадровое предсказание (MODE_INTER).The identification mode of intra-prediction (MODE_INTRA) and inter-prediction (MODE_INTER) is defined as a prediction mode (PredMode). As a value, the prediction mode (PredMode) has intra-frame prediction (MODE_INTRA) or inter-frame prediction (MODE_INTER).

Предсказание с внутрикадровым копированием блокаPrediction with intraframe block copy

Предсказание с внутрикадровым копированием блока представляет собой процесс кодирования/декодирования целевого блока по отношению к декодированной выборке в целевом изображении в качестве значения предсказания. Расстояние от целевого блока до опорной выборки представлено блочным вектором. Блочный вектор относится к целевому изображению, и опорное изображение определяется однозначным образом. Таким образом, нет необходимости предоставлять опорный индекс. Разница между блочным вектором и вектором движения заключается в том, является ли опорное изображение целевым изображением или обработанным изображением. В дополнение к этому, в случае блочного вектора точность выборки 1 или точность выборки 4 может быть выбрана с использованием адаптивного разрешения вектора движения (AMVR).Block copy prediction is a process of encoding/decoding a target block with respect to a decoded sample in the target picture as a prediction value. The distance from the target block to the reference sample is represented by a block vector. The block vector refers to the target image, and the reference image is uniquely defined. Thus, there is no need to provide a reference index. The difference between a block vector and a motion vector is whether the reference image is the target image or the processed image. In addition, in the case of a block vector, sampling precision 1 or sampling precision 4 can be selected using adaptive motion vector resolution (AMVR).

При внутриблочном копировании можно выбирать один из двух режимов: режим предсказания внутририблочного копирования или режим внутриблочного копирования со слиянием.With intrablock copy, you can choose one of two modes: intrablock copy prediction mode or intrablock copy merge mode.

Режим предсказания внутририблочного копирования представляет собой режим определения блочного вектора целевого блока на основе предиктора блочного вектора, полученного из обработанной информации, и на основе разности блочных векторов. Предиктор блочного вектора получается из обработанного блока вблизи целевого блока и из индекса для точного определения предиктора блочного вектора. Индекс для точного определения предиктора блочного вектора и разности блочных векторов передаются в потоке битов. The intra-block copy prediction mode is a mode of determining a block vector of a target block based on the block vector predictor obtained from the processed information and based on the block vector difference. The block vector predictor is obtained from the processed block near the target block and from the index to fine-tune the block vector predictor. An index to fine-tune the block vector predictor and block vector differences are transmitted in the bitstream.

Режим внутриблочного копирования со слиянием представляет собой режим получения информации предсказания внутририблочного копирования целевого блока из информации предсказания внутририблочного копирования обработанного блока вблизи целевого блока без передачи разности векторов движения.The intra-block copy-merge mode is a mode of obtaining intra-block copy prediction information of a target block from intra-block copy prediction information of a processed block near the target block without transmitting a motion vector difference.

Межкадровое предсказаниеInterframe prediction

При межкадровом предсказании, в котором предсказание выполняется из сигнала изображения обработанного изображения, можно использовать множество обработанных изображений в качестве опорных изображений. Для управления множеством опорных изображений, определены два типа справочных списков L0 (справочный список 0) и L1 (справочный список 1). В каждом из списков опорное изображение указывается с использованием опорного индекса. В P-сегменте можно использовать L0 предсказание (Pred_L0). В B-сегменте можно использовать L0 предсказание (Pred_L0), L1 предсказание (Pred_L1) и двунаправленное предсказание (Pred_BI). L0 предсказание (Pred_L0) является межкадровым предсказанием, которое относится к опорному изображению, управляемому L0, в то время, как L1 предсказание (Pred_L1) является межкадровым предсказанием, которое относится к опорному изображению, управляемому с помощью L1. Двунаправленное предсказание (Pred_BI) является межкадровым предсказанием, в котором выполняются как L0 предсказание и L1 предсказание и ссылается на одно опорное изображение, управляемое в каждом из L0 и L1. Информация, определяющая L0 предсказание, L1 предсказание и двунаправленное предсказание, определяется как режим межкадрового предсказания. В следующем процессе обработки предполагается, что обработка будет выполняться для каждого из L0 и L1 для постоянных и переменных в выходных данных суффикса LX.In inter-picture prediction, in which prediction is performed from an image signal of a processed image, a plurality of processed images can be used as reference images. To manage a plurality of reference pictures, two types of look-up lists L0 (look-up list 0) and L1 (look-up list 1) are defined. In each of the lists, a reference image is indicated using a reference index. In the P-segment, L0 prediction (Pred_L0) can be used. In the B-segment, L0 prediction (Pred_L0), L1 prediction (Pred_L1), and bidirectional prediction (Pred_BI) can be used. L0 prediction (Pred_L0) is inter-picture prediction, which is related to the reference picture driven by L0, while L1 prediction (Pred_L1) is inter-picture prediction, which is related to the reference picture driven by L1. Bidirectional prediction (Pred_BI) is inter-picture prediction in which both L0 prediction and L1 prediction are performed and refers to one reference picture driven in each of L0 and L1. Information defining L0 prediction, L1 prediction, and bidirectional prediction is defined as an inter prediction mode. The following processing process assumes that processing will be performed for each of L0 and L1 for constants and variables in the LX suffix output.

Режим предиктора вектора движенияMotion vector predictor mode

Режим предиктора вектора движения является режимом передачи индекса для указания предиктора вектора движения, разности вектора движения, режима межкадрового предсказания и опорного индекса, и определения информации межкадрового предсказания целевого блока. Предиктор вектора движения получают из кандидата предиктора вектора движения, полученного из обработанного блока в соседнем целевом блоке или блоке, принадлежащем обработанному изображению, и расположенном в той же позиции или в окрестности (vicinity) целевого блока, и из индекса для указания предиктора вектора движения.The motion vector predictor mode is an index transmission mode for specifying a motion vector predictor, a motion vector difference, an inter prediction mode, and a reference index, and determining target block inter prediction information. A motion vector predictor is obtained from a motion vector predictor candidate obtained from a processed block in a neighboring target block or a block belonging to the processed image and located at the same position or neighborhood (vicinity) of the target block, and from an index to indicate the motion vector predictor.

Режим слиянияMerge Mode

Режим слияния является режимом извлечения информации межкадрового предсказания целевого блока из информации межкадрового предсказания обработанного блока в соседнем блоке целевого блока или блока, принадлежащего обработанному изображению и расположенного на той же позиции, что и целевой блок или в окрестностях целевого блока, без передачи разности вектора движения или опорного индекса.The merge mode is a mode of extracting target block inter prediction information from inter prediction information of a processed block in a neighboring block of the target block or a block belonging to the processed image and located at the same position as the target block or in the vicinity of the target block, without transmitting a motion vector difference or base index.

Обработанный блок в соседнем блоке целевого блока и информация межкадрового предсказания обработанного блока определены как кандидаты пространственного слияния. Блоки, принадлежащие обработанному изображению и расположенные на той же позиции, что и целевой блок, или в окрестности (vicinity) целевого блока, и информация межкадрового предсказания, полученная из информации межкадрового предсказания блока, определяются как кандидаты временного слияния. Каждый из кандидатов слияния регистрируется в списке кандидатов слияния. Кандидат слияния, который будет использоваться для предсказания целевого блока, определяется индексом слияния.The processed block in the adjacent block of the target block and the inter prediction information of the processed block are determined as spatial merge candidates. Blocks belonging to the processed image and located at the same position as the target block, or in the vicinity (vicinity) of the target block, and inter prediction information obtained from the block inter prediction information are determined as temporal merge candidates. Each of the merger candidates is registered in the list of merger candidates. The merge candidate to be used to predict the target block is determined by the merge index.

Соседний блокneighboring block

На фиг. 11 показана схема, иллюстрирующая опорные блоки, на которые следует ссылаться для получения информации межкадрового предсказания в режиме предиктора вектора движения и режиме слияния. A0, A1, A2, B0, B1, B2 и B3 представляют собой обрабатываемые блоки в соседнем блоке целевого блока. T0 является блоком, принадлежащим обрабатываемому изображению и расположенным на той же позиции, что и целевой блок, или в окрестности (vicinity) целевого блока в целевом изображении.In FIG. 11 is a diagram illustrating reference blocks to be referenced for obtaining inter prediction information in the motion vector predictor mode and the merge mode. A0, A1, A2, B0, B1, B2, and B3 are processing blocks in the neighboring block of the target block. T0 is a block belonging to the image being processed and located at the same position as the target block, or in the neighborhood (vicinity) of the target block in the target image.

A1 и A2 являются блоками, расположенными слева от целевого блока кодирования и рядом с целевым блоком кодирования. B1 и B3 являются блоками, расположенными над целевым блоком кодирования и рядом с целевым блоком кодирования. A0, B0 и B2 являются блоками, расположенными соответственно в нижнем левом, верхнем правом и верхнем левом углу целевого блока кодирования.A1 and A2 are blocks located to the left of the target encoding block and next to the target encoding block. B1 and B3 are blocks located above the target encoding block and next to the target encoding block. A0, B0, and B2 are blocks located respectively at the bottom left, top right, and top left of the coding target block.

Далее приведено подробное описание процесса обработки соседних блоков в режиме предиктора вектора движения и режиме слияния.The following is a detailed description of the processing of adjacent blocks in the motion vector predictor mode and the merge mode.

Компенсация аффинного движенияAffine motion compensation

Компенсация аффинного движения сначала разбивает блок кодирования на подблоки заданного блока, и затем индивидуально определяет вектор движения для каждого из разделенных подблоков для выполнения компенсации движения. Вектор движения каждого из подблоков получают на основании одной или нескольких контрольных точек, полученных из информации межкадрового предсказания обработанного блока в соседнем блоке целевого блока или блока, принадлежащего обработанному изображению и расположенного на той же позиции, что или в окрестности (vicinity) целевого блока. В то время, как настоящий вариант осуществления устанавливает размер подблока равным 4×4 выборки, размер подблока этим не ограничивается, и вектор движения может быть получен в блоках выборок.Affine motion compensation first partitions a coding block into subblocks of a given block, and then individually determines a motion vector for each of the partitioned subblocks to perform motion compensation. The motion vector of each of the sub-blocks is obtained based on one or more control points obtained from the inter-frame prediction information of the processed block in the neighboring block of the target block or a block belonging to the processed image and located at the same position as or in the neighborhood (vicinity) of the target block. While the present embodiment sets the sub-block size to 4×4 samples, the sub-block size is not limited to this, and a motion vector can be obtained in blocks of samples.

На фиг. 14 показан пример компенсации аффинного движения в случае наличия двух контрольных точек. В этом случае каждая из двух контрольных точек имеет два параметра, то есть горизонтальную составляющую и вертикальную составляющую. Соответственно, аффинное преобразование, имеющее две контрольные точки, называется аффинным преобразованием с четырьмя параметрами. На фиг. 14 CP1 и CP2 являются контрольными точками.In FIG. 14 shows an example of affine motion compensation in the case of two control points. In this case, each of the two control points has two parameters, ie a horizontal component and a vertical component. Accordingly, an affine transformation that has two control points is called a four-parameter affine transformation. In FIG. 14 CP1 and CP2 are control points.

На фиг. 15 показан пример компенсации аффинного движения в случае трех контрольных точек. В этом случае каждая из трех контрольных точек имеет два параметра, то есть горизонтальную составляющую и вертикальную составляющую. Соответственно, аффинное преобразование, имеющее три контрольные точки, называется аффинным преобразованием с шестью параметрами. На фиг. 15 CP1, CP2 и CP3 являются контрольными точками.In FIG. 15 shows an example of affine motion compensation in the case of three control points. In this case, each of the three control points has two parameters, ie a horizontal component and a vertical component. Accordingly, an affine transformation that has three control points is called a six-parameter affine transformation. In FIG. 15 CP1, CP2 and CP3 are control points.

Компенсация аффинного движения может использоваться в любом из режима предиктора вектора движения и режима слияния. Режим применения компенсации аффинного движения в режиме предиктора вектора движения определяется как режим предиктора вектора движения подблока. Режим применения компенсации аффинного движения в режиме слияния определяется как режим слияния подблоков.Affine motion compensation may be used in either of the motion vector predictor mode and the fusion mode. The affine motion compensation application mode in the motion vector predictor mode is defined as the sub-block motion vector predictor mode. The application mode of affine motion compensation in the merge mode is defined as the sub-block merge mode.

Синтаксис блока кодированияCode block syntax

Синтаксис для выражения режима предсказания блока кодирования будет описан со ссылкой на фиг.12A, 12B и 13. На фиг.12A pred_mode_flag является флагом, указывающим то, является ли режим режимом межкадрового предсказания. Установка pred_mode_flag в 0 указывает межкадровое предсказание, тогда как установка pred_mode_flag в 1 указывает внутрикадровое предсказание. pred_mode_ibc_flag, указывающий то, является ли режим режимом предсказания внутририблочного копирования, передается в случае внутрикадрового предсказания. merge_flag передается в случае предсказания внутририблочного копирования (pred_mode_ibc_flag = 1). merge_flag является флагом, указывающим то, является ли используемый режим режимом внутриблочного копирования со слиянием или режимом копирования внутрикадрового блока предсказания. merge_idx передается в режиме внутриблочного копирования со слиянием (merge_flag = 1). Режим установлен на нормальное внутрикадровое предсказание, и информация о нормальном внутрикадровом предсказании intra_pred_mode передается в том случае, когда режим не является режимом предсказания внутририблочного копирования (pred_mode_ibc_flag = 0). The syntax for expressing a coding block prediction mode will be described with reference to FIGS. 12A, 12B, and 13. In FIG. 12A, pred_mode_flag is a flag indicating whether the mode is an inter prediction mode. Setting pred_mode_flag to 0 indicates inter-prediction, while setting pred_mode_flag to 1 indicates intra-prediction. pred_mode_ibc_flag indicating whether the mode is an intra-block copy prediction mode is transmitted in the case of intra-prediction. merge_flag is passed in case of intrablock copy prediction (pred_mode_ibc_flag = 1). merge_flag is a flag indicating whether the mode used is an intra-block merge copy mode or an intra prediction block copy mode. merge_idx is passed in intra-block merge copy mode (merge_flag = 1). The mode is set to normal intra prediction, and normal intra prediction information intra_pred_mode is transmitted when the mode is not an intra block copy prediction mode (pred_mode_ibc_flag = 0).

intra_pred_mode передается в случае внутрикадрового предсказания. merge_flag является флагом, указывающим то, является ли используемый режим режимом слияния или режимом предсказания вектора движения. В случае режима предиктора вектора движения (merge_flag = 0) передается флаг inter_affine_flag, указывающий то, применять ли режим предиктора вектора движения подблока. В случае применения режима предсказания вектора движения подблока (inter_affine_flag = 1) передается cu_affine_type_flag. cu_affine_type_flag является флагом для определения количества контрольных точек в режиме предиктора вектора движения подблока.intra_pred_mode is transmitted in case of intra prediction. merge_flag is a flag indicating whether the mode used is a merge mode or a motion vector prediction mode. In the case of the motion vector predictor mode (merge_flag = 0), an inter_affine_flag flag is transmitted indicating whether to apply the subblock motion vector predictor mode. In case of applying the sub-block motion vector prediction mode (inter_affine_flag = 1), cu_affine_type_flag is transmitted. cu_affine_type_flag is a flag for specifying the number of breakpoints in subblock motion vector predictor mode.

Напротив, как показано на фиг. 12B, в случае режима слияния (merge_flag = 1) передается merge_subblock_flag. merge_subblock_flag является флагом, указывающим, применять ли режим слияния подблоков. В случае режима слияния подблоков (merge_subblock_flag = 1) передается индекс слияния merge_subblock_idx. Наоборот, в случае, когда режим не является режимом слияния подблоков (merge_subblock_flag = 0), передается флаг merge_triangle_flag, указывающий, применять ли режим слияния треугольника. В случае применения режима слияния треугольников (merge_triangle_flag = 1) передаются индексы merge_triangle_idx0 и merge_triangle_idx1 слияния треугольников для каждого из направлений разделения блоков merge_triangle_split_dir и для каждого из двух разделенных разделов. В случае неприменения режима слияния треугольников (merge_triangle_flag = 0) передается индекс merge_idx слияния.On the contrary, as shown in FIG. 12B, in case of merge mode (merge_flag = 1), merge_subblock_flag is transmitted. merge_subblock_flag is a flag indicating whether to apply the subblock merge mode. In the case of the subblock merge mode (merge_subblock_flag = 1), the merge index merge_subblock_idx is passed. Conversely, in the case where the mode is not a subblock merge mode (merge_subblock_flag = 0), a merge_triangle_flag flag indicating whether to apply the triangle merge mode is transmitted. If the triangle merge mode is applied (merge_triangle_flag = 1), the merge_triangle_idx0 and merge_triangle_idx1 indices of the triangle merge are passed for each of the merge_triangle_split_dir block splitting directions and for each of the two split sections. If the triangle merge mode is not applied (merge_triangle_flag = 0), the merge_idx index of the merge is passed.

На фиг. 13 показано значение каждого из элементов синтаксиса межкадрового предсказания и соответствующий режим предсказания. merge_flag = 0 и inter_affine_flag = 0 соответствуют нормальному режиму предиктора вектора движения (Inter Pred Mode). merge_flag = 0 и inter_affine_flag = 1 соответствуют режиму предиктора вектора движения подблока (межаффинный режим). merge_flag = 1, merge_subblock_flag = 0 и merge_trianlge_flag = 0 соответствуют нормальному режиму слияния (Merge Mode). merge_flag = 1, merge_subblock_flag = 0 и merge_trianlge_flag = 1 соответствуют режиму слияния треугольников (Triangle Merge Mode). merge_flag = 1, merge_subblock_flag = 1 соответствуют режиму слияния подблоков (Affine Merge Mode).In FIG. 13 shows the meaning of each of the inter prediction syntax elements and the corresponding prediction mode. merge_flag = 0 and inter_affine_flag = 0 correspond to normal motion vector predictor mode (Inter Pred Mode). merge_flag = 0 and inter_affine_flag = 1 correspond to the subblock motion vector predictor mode (interaffine mode). merge_flag = 1, merge_subblock_flag = 0 and merge_trianlge_flag = 0 correspond to normal Merge Mode. merge_flag = 1, merge_subblock_flag = 0 and merge_trianlge_flag = 1 correspond to Triangle Merge Mode. merge_flag = 1, merge_subblock_flag = 1 correspond to the Affine Merge Mode.

POCPOC

Счетчик очередности изображений (POC) является переменной, ассоциированной с кодируемым изображением, и устанавливается на значение, которое увеличивается на единицу в соответствии с порядком вывода изображений. Значение POC позволяет различать, являются ли изображения одинаковыми, различать последовательную взаимосвязь внешних изображений в порядке вывода или получать расстояние между изображениями. Например, можно определить, что два изображения, имеющие одинаковое значение POC, являются идентичными изображениями. В случае, когда POCs двух изображений имеют разные значения, изображение с меньшим значением POC может быть определено как изображение, которое выводится раньше. Разница между POCs двух изображений указывает расстояние между изображениями в направлении оси времени.The Picture Order Count (POC) is a variable associated with the encoded picture and is set to a value that is incremented by one according to the output order of the pictures. The POC value allows you to distinguish whether the images are the same, to distinguish the sequential relationship of external images in the output order, or to get the distance between images. For example, it can be determined that two images having the same POC value are identical images. In the case where the POCs of two pictures have different values, the picture with the lower POC value can be determined as the picture that is output earlier. The difference between the POCs of two images indicates the distance between the images in the direction of the time axis.

Первый вариант осуществленияFirst Embodiment

Далее будет приведено описание устройства 100 для кодирования изображения и устройства 200 для декодирования изображения согласно первому варианту осуществления настоящего изобретения.Next, a description will be given of the image encoding apparatus 100 and the image decoding apparatus 200 according to the first embodiment of the present invention.

На фиг. 1 показана блок-схема устройства 100 для кодирования изображений согласно первому варианту осуществления. Устройство 100 для кодирования изображений согласно варианту осуществления включает в себя блок 101 разделения блока, блок 102 межкадрового предсказания, блок 103 внутрикадрового предсказания, память 104 декодированных изображений, определитель 105 способа предсказания, блок 106 генерирования остатка, ортогональный преобразователь/квантователь 107, блок 108 кодирования битовой строки, обратный квантователь/обратный ортогональный преобразователь 109, блок 110 наложения сигнала декодированного изображения и память 111 хранения информации кодирования.In FIG. 1 shows a block diagram of an image encoding apparatus 100 according to the first embodiment. The image encoding apparatus 100 according to the embodiment includes a block separating unit 101, an inter prediction unit 102, an intra prediction unit 103, a decoded image memory 104, a prediction method determiner 105, a residual generating unit 106, an orthogonal transform/quantizer 107, an encoding unit 108 a bit string, an inverse quantizer/inverse orthogonal converter 109, a decoded image signal overlay unit 110, and an encoding information storage memory 111 .

Блок 101 разделения блока рекурсивно разделяет входное изображение для построения блока кодирования. Блок 101 разделения блока включает в себя: блок четвертичного разделения, который разделяет целевой блок разделения как в горизонтальном направлении, так и в вертикальном направлении; и блок двоично-троичного разделения, который разделяет целевой блок разделения либо в горизонтальном направлении, либо в вертикальном направлении. Блок 101 разделения блока устанавливает построенный блок кодирования в качестве целевого блока кодирования и подает сигнал изображения целевого блока кодирования в блок 102 межкадрового предсказания, блок 103 внутрикадрового предсказания и блок 106 генерирования остатка. Дополнительно, блок 101 разделения блока поставляет информацию, указывающую определенную рекурсивную структуру разделения, в блок 108 кодирования битовой строки. Далее приводиться подробная информация функционирования блока 101 разделения блока.The block splitter 101 recursively splits the input image to construct a coding block. The block dividing unit 101 includes: a quaternary dividing unit that divides a dividing target block in both the horizontal direction and the vertical direction; and a binary-ternary splitter that splits the target splitter in either the horizontal direction or the vertical direction. The block separating unit 101 sets the constructed coding block as the target coding unit, and supplies the image signal of the target coding unit to the inter prediction unit 102, the intra prediction unit 103, and the residual generating unit 106 . Further, the block splitter 101 supplies information indicative of the determined recursive split structure to the bit string encoding unit 108 . Next, detailed operation information of the block dividing unit 101 will be given.

Блок 102 межкадрового предсказания выполняет межкадровое предсказание целевого блока кодирования. Блок 102 межкадрового предсказания выводит множество кандидатов информации межкадрового предсказания из информации межкадрового предсказания, хранящейся в памяти 111 для хранения информации кодирования, и сигнала декодированного изображения, хранящегося в памяти 104 декодированных изображений, выбирает подходящий режим межкадрового предсказания из множества полученных кандидатов, и поставляет выбранный режим межкадрового предсказания и сигнал предсказанного изображения, соответствующий выбранному режиму межкадрового предсказания, в определитель 105 способа предсказания. Далее будет приведена подробная конфигурация и функционирования блока 102 межкадрового предсказания.The inter prediction block 102 performs inter prediction of the target coding block. The inter prediction unit 102 derives a plurality of inter prediction information candidates from the inter prediction information stored in the encoding information storage memory 111 and the decoded image signal stored in the decoded picture memory 104, selects an appropriate inter prediction mode from the plurality of obtained candidates, and supplies the selected mode prediction method and a predicted image signal corresponding to the selected inter prediction mode to the prediction method determiner 105 . Next, the detailed configuration and operation of the inter prediction block 102 will be given.

Блок 103 внутрикадрового предсказания выполняет внутрикадровое предсказание для целевого блока кодирования. Блок 103 внутрикадрового предсказания обращается к сигналу декодированного изображения, хранящемуся в памяти 104 декодированных изображений, в качестве опорной выборки и выполняет внутрикадровое предсказание на основании информации кодирования, такой как режим внутрикадрового предсказания, сохраненной в памяти 111 хранения информации кодирования и, тем самым, генерирует предсказанный сигнал изображения. При внутрикадровом предсказании, блок 103 внутрикадрового предсказания выбирает подходящий режим внутрикадрового предсказания из множества режимов внутрикадрового предсказания и поставляет выбранный режим внутрикадрового предсказания и выбранный сигнал предсказанного изображения, соответствующий выбранному режиму внутрикадрового предсказания, в определитель 105 способа предсказания. Далее будет описана подробная конфигурация и работа блока 103 внутрикадрового предсказания.The intra prediction block 103 performs intra prediction for the target coding block. The intra prediction unit 103 refers to the decoded image signal stored in the decoded picture memory 104 as a reference sample, and performs intra prediction based on encoding information such as an intra prediction mode stored in the encoding information storage memory 111, and thereby generates a predicted image signal. In intra prediction, the intra prediction section 103 selects a suitable intra prediction mode from a plurality of intra prediction modes, and supplies the selected intra prediction mode and the selected predicted image signal corresponding to the selected intra prediction mode to the prediction method determiner 105. Next, the detailed configuration and operation of the intra prediction unit 103 will be described.

Память 104 декодированных изображений хранит декодированные изображения, сформированные блоком 110 наложения сигнала декодированных изображений. Память 104 декодированных изображений подает сохраненные декодированные изображения в блок 102 межкадрового предсказания и блок 103 внутрикадрового предсказания.The decoded picture memory 104 stores decoded pictures generated by the decoded picture signal overlay unit 110 . The decoded picture memory 104 supplies the stored decoded pictures to the inter prediction unit 102 and the intra prediction unit 103 .

Определитель 105 способа предсказания оценивает каждое из внутрикадрового предсказания и межкадрового предсказания, используя информацию кодирования, величину кода остатка, величину искажения между предсказанным сигналом изображения и сигналом целевого изображения или т.п., и, таким образом, определяет оптимальный режим предсказания. В случае внутрикадрового предсказания определитель 105 способа предсказания поставляет информацию внутрикадрового предсказания, такую как режим внутрикадрового предсказания, в блок 108 кодирования битовой строки в качестве информации кодирования. В случае режима слияния межкадрового предсказания определитель 105 способа предсказания предоставляет информацию межкадрового предсказания, такую как индекс слияния и информацию (флаг слияния подблоков), указывающую, является ли режим режимом слияния подблоков, в блок 108 кодирования битовой строки, как информацию кодирования. В случае режима предиктора вектора движения межкадрового предсказания определитель 105 способа предсказания поставляет информацию межкадрового предсказания, такую как режим межкадрового предсказания, индекс предиктора вектора движения, опорный индекс L0 или L1, разность векторов движения или информацию, указывающую, является ли режим режимом предиктора вектора движения подблока (флаг предиктора вектора движения подблока) в блок 108 кодирования битовой строки в качестве информации кодирования. Определитель 105 способа предсказания дополнительно поставляет определенную информацию кодирования в память 111 хранения информации кодирования. Определитель 105 способа предсказания поставляет сигнал предсказанного изображения в блок 106 генерирования остатка и блок 110 наложения сигнала декодированного изображения.The prediction method determiner 105 evaluates each of intra prediction and inter prediction using encoding information, residual code amount, distortion amount between the predicted image signal and the target image signal, or the like, and thus determines the optimal prediction mode. In the case of intra prediction, the prediction method determiner 105 supplies intra prediction information such as an intra prediction mode to the bit string encoding unit 108 as encoding information. In the case of the inter prediction merge mode, the prediction method determiner 105 provides inter prediction information such as a merge index and information (sub-block merge flag) indicating whether the mode is a sub-block merge mode to the bit string encoding unit 108 as encoding information. In the case of an inter prediction motion vector predictor mode, the prediction method determiner 105 supplies inter prediction information such as an inter prediction mode, a motion vector predictor index, a reference index L0 or L1, a motion vector difference, or information indicating whether the mode is a subblock motion vector predictor mode. (sub-block motion vector predictor flag) to the bit string encoding block 108 as encoding information. The predictive method determiner 105 further supplies the determined encoding information to the encoding information storage memory 111 . The prediction method determiner 105 supplies the predicted image signal to the residual generation unit 106 and the decoded image signal overlay unit 110 .

Блок 106 генерирования остатка формирует остаток путем вычитания сигнала предсказанного изображения из сигнала целевого изображения и поставляет сформированный остаток в ортогональный преобразователь/квантователь 107.The residual generation unit 106 generates a residual by subtracting the predicted image signal from the target image signal and supplies the generated residual to the orthogonal converter/quantizer 107.

Ортогональный преобразователь/квантователь 107 выполняет ортогональное преобразование и квантование остатка в соответствии с параметром квантования и, тем самым, формирует ортогонально преобразованный и квантованный остаток, и затем поставляет сформированный остаток в блок 108 кодирования битовой строки и обратный квантователь/обратный ортогональный преобразователь 109.The orthogonal transform/quantizer 107 performs orthogonal transformation and quantization of the residual according to the quantization parameter, and thereby generates an orthogonally transformed and quantized residual, and then supplies the generated residual to the bit string encoding unit 108 and the inverse quantizer/inverse orthogonal transform 109.

Блок 108 кодирования битовой строки кодирует, в дополнение к последовательностям, изображения, сегменты и информацию в блоках блоков кодирования, блок 108 кодирования битовой строки кодирует информацию кодирования, соответствующую способу предсказания, определенному определителем 105 способа предсказания. для каждого из блоков кодирования. В частности, блок 108 кодирования битовой строки кодирует режим предсказания PredMode для каждого из блоков кодирования. В случае, когда режимом предсказания является межкадровое предсказание (MODE_INTER), блок 108 кодирования битовой строки кодирует информацию кодирования (информацию межкадрового предсказания), такую как флаг, для определения, является ли режим режимом слияния, флаг слияния подблоков, индекс слияния в режиме слияния, режим межкадрового предсказания в режимах без слияния, индекс предиктора вектора движения, информацию, относящуюся к разности векторов движения, и флаг предиктора вектора движения подблока на основе предписанного синтаксиса (правила синтаксиса битовой строки) и, тем самым, формирует первую битовую строку. В случае, когда режимом предсказания является внутрикадровое предсказание (MODE_INTRA), блок 108 кодирования битовых строк кодирует флаг, чтобы определить, является ли режим режимом внутриблочного копирования в соответствии с предписанным синтаксисом. В случае, когда режимом является внутриблочное копирование, информация кодирования (информация внутрикадрового предсказания), такая как индекс слияния в случае режима слияния, индекс предиктора блочного вектора в случае режима без слияния и разность блочных векторов кодируется в соответствии с предписанным синтаксисом. В случае, когда режимом не является внутриблочное копирование, информация кодирования (информация внутрикадрового предсказания), такая как режим внутрикадрового предсказания, кодируется в соответствии с предписанным синтаксисом. С помощью вышеупомянутого способа кодирования создается первая битовая строка. В дополнение к этому, блок 108 кодирования битовой строки выполняет энтропийное кодирование ортогонально преобразованного и квантованного остатка на основе предписанного синтаксиса и, таким образом, формирует вторую битовую строку. Блок 108 кодирования битовой строки мультиплексирует первую битовую строку и вторую битовую строку на основе предписанного синтаксиса и выводит битовый поток.The bit string coding unit 108 encodes, in addition to the sequences, images, segments, and information in coding block blocks, the bit string coding unit 108 encodes encoding information corresponding to the prediction method determined by the prediction method determiner 105 . for each of the coding blocks. In particular, the bit string encoding unit 108 encodes the PredMode prediction mode for each of the encoding units. In the case where the prediction mode is inter prediction (MODE_INTER), the bit string encoding section 108 encodes coding information (inter prediction information) such as a flag for determining whether the mode is a merge mode, a sub-block merge flag, a merge index in the merge mode, an inter-picture prediction mode in non-merge modes, a motion vector predictor index, motion vector difference related information, and a sub-block motion vector predictor flag based on a prescribed syntax (bit string syntax rule), and thereby generates a first bit string. In the case where the prediction mode is intra-frame prediction (MODE_INTRA), the bit string encoding section 108 encodes a flag to determine whether the mode is an intra-block copy mode according to a prescribed syntax. In the case where the mode is intra-block copy, coding information (intra-prediction information) such as the merge index in the case of the merge mode, the block vector predictor index in the case of the non-merge mode, and the block vector difference are encoded according to the prescribed syntax. In the case where the mode is not intra-block copy, coding information (intra prediction information) such as the intra prediction mode is encoded according to a prescribed syntax. With the above encoding method, the first bit string is created. In addition, the bit string encoding unit 108 performs entropy encoding of the orthogonally transformed and quantized residual based on the prescribed syntax, and thus generates the second bit string. The bit string encoding unit 108 multiplexes the first bit string and the second bit string based on the prescribed syntax and outputs the bit stream.

Обратный квантователь/обратный ортогональный преобразователь 109 выполняет обратное квантование и обратное ортогональное преобразование ортогонально преобразованного/квантованного остатка, подаваемого из ортогонального преобразователя/квантователя 107 и, таким образом, вычисляет остаток и затем подает вычисленный остаток в блок 110 наложения сигнала декодированных изображений.The inverse quantizer/inverse orthogonal transformer 109 performs inverse quantization and inverse orthogonal transformation of the orthogonally transformed/quantized residual supplied from the orthogonal transformer/quantizer 107, and thus calculates the residual, and then supplies the calculated residual to the decoded image signal overlay unit 110.

Блок 110 наложения сигнала декодированного изображения накладывает сигнал предсказанного изображения в соответствии с определением определителя 105 способа предсказания с остатком, который подвергается обратному квантованию/обратному ортогональному преобразованию с помощью обратного квантователя/обратного ортогонального преобразователя 109, тем самым, формируя декодированное изображение, и сохраняет сформированное декодированное изображение в памяти 104 декодированных изображений. Блок 110 наложения сигнала декодированного изображения может выполнять обработку фильтрации для уменьшения искажения, такого как блочное искажение, из-за кодирования декодированного изображения, и может после этого сохранять декодированное изображение в памяти 104 декодированных изображений. The decoded image signal overlay section 110 superimposes the predicted image signal according to the determination of the residual prediction method determiner 105, which is subjected to inverse quantization/inverse orthogonal transform by the inverse quantizer/inverse orthogonal transform 109, thereby generating a decoded image, and stores the generated decoded picture in memory 104 decoded pictures. The decoded image signal overlay unit 110 may perform filtering processing to reduce distortion such as block distortion due to encoding of the decoded image, and may thereafter store the decoded image in the decoded image memory 104 .

Память 111 хранения информации кодирования хранит информацию кодирования, такую как режим предсказания (межкадровое предсказание или внутрикадровое предсказание), определенный определителем 105 способа предсказания. В случае межкадрового предсказания информация кодирования сохраняется в памяти 111 хранения информации кодирования, которая включает в себя информацию межкадрового предсказания, такую как определенный вектор движения, опорные индексы справочных списков L0 и L1 и список кандидатов предиктора вектора движения на основании истории. В случае режима слияния с межкадровым предсказанием информация кодирования, хранящаяся в памяти 111 хранения информации кодирования, включает в себя, в дополнение к вышеописанной информации, индекс слияния и информацию межкадрового предсказания, включающую в себя информацию, указывающую, является ли режим режимом слияния подблоков. (флаг слияния подблоков). В случае режима предиктора вектора движения межкадрового предсказания информация кодирования, хранимая в памяти 111 хранения информации кодирования, включает в себя, в дополнение к вышеупомянутой информации, информацию межкадрового предсказания, такую как режим межкадрового предсказания, индекс предиктора вектора движения, разность векторов движения и информацию, указывающую, является ли режим режимом предиктора вектора движения подблока (флаг предиктора вектора движения подблока). В случае внутрикадрового предсказания информация кодирования, хранимая в памяти 111 хранения информации кодирования, включает в себя информацию внутрикадрового предсказания, такую как определенный режим внутрикадрового предсказания.The encoding information storage 111 stores encoding information such as a prediction mode (inter prediction or intra prediction) determined by the prediction method determiner 105 . In the case of inter prediction, encoding information is stored in encoding information storage 111, which includes inter prediction information such as a determined motion vector, reference list indexes L0 and L1, and a motion vector predictor candidate list based on history. In the case of the inter prediction merge mode, encoding information stored in the encoding information storage memory 111 includes, in addition to the above-described information, a merge index and inter prediction information including information indicating whether the mode is a sub-block merge mode. (subblock merge flag). In the case of the inter prediction motion vector predictor mode, encoding information stored in the encoding information storage memory 111 includes, in addition to the above information, inter prediction information such as an inter prediction mode, a motion vector predictor index, a motion vector difference, and information indicating whether the mode is a sub-block motion vector predictor mode (sub-block motion vector predictor flag). In the case of intra prediction, the encoding information stored in the encoding information storage memory 111 includes intra prediction information such as a specific intra prediction mode.

На фиг. 2 показана блок-схема, иллюстрирующей конфигурацию устройства для декодирования изображений согласно варианту осуществления настоящего изобретения, соответствующего устройству для кодирования изображений (фиг. 1). Устройство для декодирования изображений согласно варианту осуществления включает в себя блок 201 декодирование битовой строки, блок 202 разделения блока, блок 203 межкадрового предсказания, блок 204 внутрикадрового предсказания, память 205 хранения информации кодирования, обратный квантователь/обратный ортогональный преобразователь 206 и блок 207 наложения сигнала декодированного изображения и память 208 декодированного изображения.In FIG. 2 is a block diagram illustrating the configuration of an image decoding apparatus according to an embodiment of the present invention corresponding to the image encoding apparatus (FIG. 1). The image decoding apparatus according to the embodiment includes a bit string decoding section 201, a block splitting section 202, an inter prediction section 203, an intra prediction section 204, an encoding information storage memory 205, an inverse quantizer/inverse orthogonal converter 206, and a decoded signal overlay section 207. image and decoded image memory 208 .

Так как процесс декодирования устройства для декодирования изображений на фиг. 2 соответствует процессу декодирования, выполняемому устройством для кодирования изображений на фиг. 1. Соответственно, каждая из конфигураций памяти 205 хранения информации кодирования, обратный квантователь/обратный ортогональный преобразователь 206, блок 207 наложения сигнала декодированного изображения и память 208 декодированного изображения на фиг. 2 соответственно имеют функцию, соответствующую каждому из конфигураций памяти 111 хранения информации кодирования, обратного квантователя/обратного ортогонального преобразователя 109, блока 110 наложения сигнала декодированного изображения и памяти 104 декодированных изображений устройства для кодирования изображений (фиг. 1).Since the decoding process of the image decoding device in FIG. 2 corresponds to the decoding process performed by the image encoding apparatus in FIG. 1. Accordingly, each of the configurations of the encoding information storage memory 205, the inverse quantizer/inverse orthogonal transformer 206, the decoded image signal overlay unit 207, and the decoded image memory 208 in FIG. 2 respectively have a function corresponding to each of the configurations of the encoding information storage memory 111, the inverse quantizer/inverse orthogonal converter 109, the decoded image signal overlay unit 110, and the decoded image memory 104 of the image encoding apparatus (FIG. 1).

Битовый поток, подаваемый в блок 201 декодирования битовых строк, разделяется на основе предписанного правила синтаксиса. Блок 201 декодирования битовых строк декодирует разделенную первую битовую строку и, таким образом, получает последовательность, изображение, сегмент, информацию в блоках блоков кодирования и информацию кодирования в блоках блоков кодирования. В частности, блок 201 декодирования битовых строк декодирует режим предсказания PredMode, который определяет, является ли предсказание межкадровым предсказанием (MODE_INTER) или внутрикадровым предсказанием (MODE_INTRA) в блоках блока кодирования. В случае, когда режимом предсказания является межкадровое предсказание (MODE_INTER), блок 201 декодирования битовых строк декодирует информацию кодирования (информацию межкадрового предсказания), относящуюся к флагу, который определяет, является ли режим режимом слияния, индекс слияния в случае режима слияния, флаг слияния подблока и межкадровое предсказание в случае режима предиктора вектора движения, индекс предиктора вектора движения, разность векторов движения, флаг предиктора вектора движения подблока или т.п. в соответствии с предписанным синтаксисом, и затем подает информацию кодирования (информацию межкадрового предсказания) в память 205 хранения информации кодирования через блок 203 межкадрового предсказания и блок 202 разделения блоков. В случае, когда режимом предсказания является внутрикадровое предсказание (MODE_INTRA), блок 201 декодирования битовых строк декодирует флаг, чтобы определить, является ли режимом режим внутриблочного копирования. В случае, когда режимом является внутриблочное копирование, информация кодирования (информация внутрикадрового предсказания), такая как индекс слияния в случае режима слияния, индекс предиктора блочного вектора в случае режима без слияния, и разность блочных векторов декодируется в соответствии с предписанным синтаксисом. В случае, когда режимом не является внутриблочное копирование, блок 201 декодирования битовых строк декодирует информацию кодирования (информацию внутрикадрового предсказания), такую как режим внутрикадрового предсказания, в соответствии с предписанным синтаксисом. С помощью вышеупомянутого способа декодирования декодированная информация кодирования (информация внутрикадрового предсказания) подается в память 205 хранения информации кодирования через блок 203 межкадрового предсказания или блок 204 внутрикадрового предсказания и через блок 202 разделения блоков. Блок 201 декодирования битовых строк декодирует разделенную вторую битовую строку и вычисляет ортогонально преобразованный/квантованный остаток и затем подает ортогонально преобразованный/квантованный остаток в обратный квантователь/обратный ортогональный преобразователь 206.The bit stream supplied to the bit string decoding section 201 is divided based on a prescribed syntax rule. The bit string decoding unit 201 decodes the divided first bit string, and thus obtains a sequence, a picture, a segment, information in coding blocks, and coding information in coding blocks. Specifically, the bit string decoding section 201 decodes the prediction mode PredMode, which determines whether the prediction is inter-frame prediction (MODE_INTER) or intra-frame prediction (MODE_INTRA) in blocks of a coding block. In the case where the prediction mode is inter prediction (MODE_INTER), the bit string decoding section 201 decodes encoding information (inter prediction information) related to a flag that determines whether the mode is a merge mode, a merge index in the case of a merge mode, a sub-block merge flag and inter-picture prediction in the case of a motion vector predictor mode, a motion vector predictor index, a motion vector difference, a sub-block motion vector predictor flag, or the like. in accordance with the prescribed syntax, and then supplies encoding information (inter prediction information) to the encoding information storage memory 205 via the inter prediction section 203 and the block division section 202 . In the case where the prediction mode is intra-frame prediction (MODE_INTRA), the bit string decoding section 201 decodes a flag to determine whether the mode is intra-block copy mode. In the case where the mode is intra-block copy, coding information (intra-prediction information) such as the merge index in the case of the merge mode, the block vector predictor index in the case of the non-merge mode, and the block vector difference are decoded according to the prescribed syntax. In the case where the mode is not intra-block copy, the bit string decoding section 201 decodes coding information (intra prediction information) such as the intra prediction mode according to the prescribed syntax. With the above decoding method, the decoded encoding information (intra prediction information) is supplied to the encoding information storage memory 205 via the inter prediction unit 203 or the intra prediction unit 204 and through the block division unit 202 . The bit string decoding section 201 decodes the divided second bit string and calculates an orthogonally transformed/quantized residual, and then supplies the orthogonally transformed/quantized residual to the inverse quantizer/inverse orthogonal transform 206.

Когда режим PredMode предсказания целевого блока кодирования представляет собой межкадровое предсказание (MODE_INTER) и режим предсказания вектора движения, блок 203 межкадрового предсказания использует информацию кодирования уже декодированного сигнала изображения, сохраненного в памяти 205 хранения информации кодирования, для получения множества кандидатов предикторов вектора движения. Блок 203 межкадрового предсказания затем добавляет множество полученных кандидатов предикторов вектора движения в список кандидатов предикторов вектора движения, описанный ниже. Блок 203 межкадрового предсказания выбирает предиктор вектора движения, соответствующий индексу предиктора вектора движения, который должен быть декодирован и поставленный блоком 201 декодирования битовой строки, из множества кандидатов предикторов вектора движения, зарегистрированных в списке кандидатов предикторов вектора движения. Блок 203 межкадрового предсказания затем вычисляет вектор движения на основании разности векторов движения, декодированных блоком 201 декодирования битовой строки и выбранным предиктором вектора движения, и сохраняет вычисленный вектор движения в памяти 205 хранения информации кодирования вместе с другой информацией кодирования. Здесь информация кодирования блока кодирования, которая должна быть поставлена и сохранена, включает в себя режим PredMode предсказания, флаги predFlagL0 [xP] [yP] и predFlagL1 [xP] [yP], указывающие, следует ли использовать L0 предсказание и L1 предсказание, опорные индексы refIdxL0 [xP] [yP] и refIdxL1 [xP] [yP] L0 и L1; и векторы mvL0 [xP] [yP] и mvL1 [xP] [yP] движения для L0 и L1. Здесь xP и yP являются индексами, указывающие позицию верхней левой выборки блока кодирования в изображении. В случае, когда режим PredMode предсказания является межкадровым предсказанием (MODE_INTER) и режимом межкадрового предсказания является L0 предсказанием (Pred_L0), флаг predFlagL0, указывающий, следует ли использовать L0 предсказание, устанавливается на 1, и флаг predFlagL1 указывает, использовать ли L1 предсказание, установлен на 0. В случае, когда режимом межкадрового предсказания является L1 предсказание (Pred_L1), флаг predFlagL0, указывающий, следует ли использовать L0 предсказание, установлен на 0, и флаг predFlagL1, указывающий, использовать ли L1 предсказание, установлен на 1. В случае, когда режимом межкадрового предсказания является двунаправленное предсказание (Pred_BI), и флаг predFlagL0, указывающий, следует ли использовать L0 предсказание, и флаг predFlagL1, указывающий, использовать ли L1 предсказание, устанавливаются на 1. Дополнительно, когда режим PredMode предсказания целевого блока кодирования является режимом межкадрового предсказания (MODE_INTER) и режимом слияния, то получается кандидат слияния. Используя информацию кодирования уже декодированного блока кодирования, хранящуюся в памяти 205 хранения информации кодирования, выводится множество кандидатов слияния и регистрируется в списке кандидатов слияния, описанном ниже. Затем кандидат слияния, соответствующий индексу слияния, который декодируется блоком 201 декодирования битовой строки и предоставляется, выбирается из множества кандидатов слияния, зарегистрированных в списке кандидатов слияния, и затем информация межкадрового предсказания, такая как flags predFlagL0 [xP ] [yP] и predFlagL1 [xP] [yP], указывающие, следует ли использовать L0 предсказание и L1 предсказание выбранного кандидата слияния, опорные индексы refIdxL0 [xP] [yP] и refIdxL1 [xP] [yP] L0 и L1 и векторы mvL0 [xP] [yP] и mvL1 [xP] [yP] движения для L0 и L1 должны храниться в памяти 205 хранения информации кодирования. Здесь xP и yP являются индексами, указывающими позицию верхней левой выборки блока кодирования в изображении. Далее будет приведено подробное описание конфигурации и функционирования блока 203 межкадрового предсказания.When the prediction mode PredMode of the target encoding block is inter prediction (MODE_INTER) and motion vector prediction mode, the inter prediction block 203 uses the encoding information of the already decoded image signal stored in the encoding information storage memory 205 to obtain a plurality of motion vector predictor candidates. The inter prediction block 203 then adds the plurality of received motion vector predictor candidates to the motion vector predictor candidate list described below. The inter prediction section 203 selects a motion vector predictor corresponding to the motion vector predictor index to be decoded and supplied by the bit string decoder 201 from the plurality of motion vector predictor candidates registered in the motion vector predictor candidate list. The inter prediction block 203 then calculates a motion vector based on the difference of the motion vectors decoded by the bit string decoding block 201 and the selected motion vector predictor, and stores the calculated motion vector in the encoding information storage memory 205 along with other encoding information. Here, the encoding information of a coding block to be set and stored includes a prediction mode PredMode, flags predFlagL0[xP][yP] and predFlagL1[xP][yP] indicating whether or not to use L0 prediction and L1 prediction, reference indices refIdxL0 [xP] [yP] and refIdxL1 [xP] [yP] L0 and L1; and vectors mvL0 [xP] [yP] and mvL1 [xP] [yP] of motion for L0 and L1. Here, xP and yP are indices indicating the position of the top left coding block sample in the picture. In the case where the prediction mode PredMode is inter prediction (MODE_INTER) and the inter prediction mode is L0 prediction (Pred_L0), a flag predFlagL0 indicating whether to use L0 prediction is set to 1, and a flag predFlagL1 indicating whether to use L1 prediction is set. to 0. In the case where the inter prediction mode is L1 prediction (Pred_L1), the flag predFlagL0 indicating whether to use L0 prediction is set to 0, and the flag predFlagL1 indicating whether to use L1 prediction is set to 1. In the case when the inter prediction mode is bidirectional prediction (Pred_BI), both the predFlagL0 flag indicating whether to use L0 prediction and the flag predFlagL1 indicating whether to use L1 prediction are set to 1. Further, when the prediction mode PredMode of the coding target block is the inter prediction mode prediction (MODE_INTER) and merge mode i, then it turns out the merge candidate. Using the encoding information of the already decoded encoding block stored in the encoding information storage memory 205, a plurality of merge candidates is output and registered in the merge candidate list described below. Then, a merge candidate corresponding to the merge index that is decoded by the bit string decoder 201 and provided is selected from a plurality of merge candidates registered in the merge candidate list, and then inter prediction information such as flags predFlagL0 [xP ] [yP] and predFlagL1 [xP ] [yP] indicating whether to use L0 prediction and L1 prediction of the selected merge candidate, reference indices refIdxL0 [xP] [yP] and refIdxL1 [xP] [yP] L0 and L1, and vectors mvL0 [xP] [yP] and mvL1 [xP] [yP] movements for L0 and L1 must be stored in the encoding information storage memory 205 . Here, xP and yP are indices indicating the position of the top left coding block sample in the picture. Next, a detailed description of the configuration and operation of the inter prediction block 203 will be given.

Блок 204 внутрикадрового предсказания выполняет внутрикадровое предсказание, когда режим PredMode предсказания целевого блока кодирования является внутрикадровым предсказанием (MODE_INTRA). Информация кодирования, декодированная блоком 201 декодирования битовой строки, включает в себя режим внутрикадрового предсказания. Блок 204 внутрикадрового предсказания генерирует сигнал предсказанного изображения посредством внутрикадрового предсказания из сигнала декодированного изображения, хранящегося в памяти 208 декодированных изображений, в соответствии с режимом внутрикадрового предсказания в информации кодирования, декодированной блоком 201 декодирования битовой строки. Далее блок 204 внутрикадрового предсказания поставляет сгенерированный предсказанный сигнал изображения в блок 207 наложения декодированного сигнала изображения. Блок 204 внутрикадрового предсказания соответствует блоку 103 внутрикадрового предсказания устройства 100 для кодирования изображения и, таким образом, выполняет обработку, аналогичную обработке блока 103 внутрикадрового предсказания. The intra prediction unit 204 performs intra prediction when the prediction mode PredMode of the target coding block is intra prediction (MODE_INTRA). The encoding information decoded by the bit string decoding section 201 includes an intra prediction mode. The intra prediction unit 204 generates a predicted image signal by intra prediction from a decoded image signal stored in the decoded image memory 208 according to the intra prediction mode in the coding information decoded by the bit string decoding unit 201 . Next, the intra prediction block 204 supplies the generated predicted image signal to the decoded image signal overlay block 207 . The intra prediction unit 204 corresponds to the intra prediction unit 103 of the image encoding apparatus 100, and thus performs processing similar to that of the intra prediction unit 103 .

Обратный квантователь/обратный ортогональный преобразователь 206 выполняет обратное ортогональное преобразование/обратное квантование ортогонально преобразованного/квантованного остатка, декодированного в блоке 201 декодирования битовой строки и, таким образом, получает обратно ортогонально преобразованный/обратно квантованный остаток.The inverse quantizer/inverse orthogonal transform 206 performs inverse orthogonal transformation/inverse quantization of the orthogonally transformed/quantized residual decoded in the bit string decoding section 201, and thus obtains the inversely orthogonally transformed/inversely quantized residual.

Блок 207 наложения сигнала декодированного изображения накладывает сигнал изображения, предсказанный с помощью межкадрового предсказания блоком 203 межкадрового предсказания, или сигнал изображения с предсказанием, предсказанный с помощью внутрикадрового предсказания блоком 204 внутрикадрового предсказания, с остатком, который был обратно ортогонально преобразован/обратно квантован посредством обратного квантователя/обратного ортогонального преобразователя 206, тем самым, декодируя сигнал декодированного изображения. Блок 207 наложения сигнала декодированного изображения затем сохраняет сигнал декодированного изображения, который был декодирован, в памяти 208 декодированных изображений. При сохранении декодированного изображения в памяти 208 декодированных изображений, блок 207 наложения сигнала декодированного изображения может выполнять обработку фильтрации для декодированного изображения для уменьшения блочного искажения или подобного из-за кодирования и может после этого сохранять декодированное изображение в памяти 208 декодированных изображений.The decoded image signal overlay unit 207 superimposes the image signal predicted by inter prediction by the inter prediction unit 203 or the predictive image signal predicted by intra prediction by the intra prediction unit 204 with a residual that has been inversely orthogonally transformed/inversely quantized by an inverse quantizer /inverse orthogonal converter 206, thereby decoding the decoded image signal. The decoded picture signal overlay unit 207 then stores the decoded picture signal that has been decoded in the decoded picture memory 208 . When storing the decoded image in the decoded image memory 208, the decoded image signal overlay section 207 may perform filtering processing on the decoded image to reduce block distortion or the like due to encoding, and may thereafter store the decoded image in the decoded image memory 208.

Далее будет описана работа блока 101 разделения блока в устройстве 100 для кодирования изображения. На фиг. 3 показана блок-схема алгоритма, иллюстрирующая операцию разделения изображения на блоки дерева и дополнительного разделения каждого из блоков дерева. Сначала входное изображение разделяется на блоки дерева заданного размера (этап S1001). Каждый из блоков дерева сканируется в заранее определенном порядке, то есть в порядке растрового сканирования (этап S1002), и целевой блок дерева внутренне разделяется (этап S1003).Next, the operation of the block dividing unit 101 in the image encoding apparatus 100 will be described. In FIG. 3 is a flowchart illustrating the operation of dividing an image into tree blocks and further dividing each of the tree blocks. First, the input image is divided into tree blocks of a given size (step S1001). Each of the tree blocks is scanned in a predetermined order, that is, in a raster scan order (step S1002), and the target tree block is internally divided (step S1003).

На фиг. 7 показана блок-схема алгоритма, иллюстрирующая подробную операцию процесса разделения на этапе S1003. Сначала определяется, разделить ли целевой блок на четыре (этап S1101).In FIG. 7 is a flowchart illustrating the detailed operation of the division process in step S1003. First, it is determined whether to divide the target block into four (step S1101).

В случае, когда определяется, что целевой блок должен быть разделен на четыре, целевой блок будет разделен на четыре (этап S1102). Каждый из блоков, полученных путем разделения целевого блока, сканируется в порядке Z-сканирования, то есть в порядке верхнего левого, верхнего правого, нижнего левого и нижнего правого (этап S1103). На фиг. 5 показан пример порядка Z-сканирования, 601 на фиг. 6A иллюстрирует пример, в котором целевой блок разделен на четыре. Цифры от 0 до 3 из 601 на фиг. 6A указывают порядок обработки. Затем рекурсивно выполняется процесс разделения (фиг. 7) для каждого из блоков, разделенных на этапе S1101 (этап S1104).In the case where it is determined that the target block is to be divided by four, the target block will be divided by four (step S1102). Each of the blocks obtained by dividing the target block is scanned in a Z-scan order, that is, in the order of top left, top right, bottom left, and bottom right (step S1103). In FIG. 5 shows an example of a Z-scan order, 601 in FIG. 6A illustrates an example in which the target block is divided into four. Numbers 0 to 3 out of 601 in FIG. 6A indicate the processing order. Then, the division process (FIG. 7) is recursively executed for each of the blocks divided in step S1101 (step S1104).

В случае, когда определено, что целевой блок не должен быть разделен на четыре, целевой блок будет разделен на два или три, а именно, будет выполнено двоично-троичное разделение (этап S1105).In the case where it is determined that the target block is not to be divided into four, the target block will be divided into two or three, namely, binary-ternary division will be performed (step S1105).

На фиг. 8 показана блок-схема алгоритма, подробно иллюстрирующая работу процесса двоично-троичного разделения на этапе S1105. Во-первых, определяется, будет ли выполнено двоично-троичное разделение для целевого блока, то есть будет ли выполняться какое-либо двоичное или троичное разделение (этап S1201).In FIG. 8 is a flowchart illustrating in detail the operation of the binary-ternary separation process in step S1105. First, it is determined whether binary-ternary separation will be performed for the target block, that is, whether any binary or ternary separation will be performed (step S1201).

В случае, когда не определено, что на целевом блоке должно выполняться двоично-троичное разделение, то есть в случае, когда определено, что не следует разделять целевой блок, разделение завершается (этап S1211). То есть дополнительный процесс рекурсивного разделения не должен выполняться для блока, который был разделен процессом рекурсивного разделения.In the case where it is not determined that binary-ternary separation is to be performed on the target block, that is, in the case where it is determined that the target block is not to be divided, the separation is completed (step S1211). That is, an additional recursive division process need not be performed on a block that has been divided by the recursive division process.

В случае, когда определено, что двоично-троичное разделение будет выполнено в целевом блоке, дополнительно определяется, следует ли разделить целевой блок на два (этап S1202).In the case where it is determined that binary-ternary division will be performed in the target block, it is further determined whether or not to divide the target block into two (step S1202).

В случае, когда определяется, что целевой блок должен быть разделен на два, дополнительно определяется, следует ли разделить целевой блок в верхнем-нижнем (вертикальном) направлении (этап S1203) и затем на основании результата целевой блок будет двоично разделен в верхнем-нижнем (вертикальном) направлении (этап S1204), или целевой блок будет двоично разделен в лево-правом (горизонтальном) направлении (этап S1205). В результате этапа S1204 целевой блок двоично разделяется в направлении вверх-вниз (вертикальное направление), как проиллюстрировано на позиции 602 на фиг. 6B. В результате этапа S1205 целевой блок двоично разделяется вправо-влево (горизонтальное направление), как проиллюстрировано на этапе 604 на фиг. 6D.In the case where it is determined that the target block is to be divided into two, it is further determined whether or not to split the target block in the top-bottom (vertical) direction (step S1203), and then, based on the result, the target block will be binary-divided in the top-bottom ( vertical) direction (step S1204), or the target block will be binary divided in the left-right (horizontal) direction (step S1205). As a result of step S1204, the target block is binary split in the up-down direction (vertical direction), as illustrated at 602 in FIG. 6b. As a result of step S1205, the target block is left-right binary split (horizontal direction), as illustrated in step 604 in FIG. 6d.

На этапе S1202, в случае, когда не определено, что целевой блок должен быть разделен на два, то есть в случае, когда определено, что целевой блок должен быть разделен на три, дополнительно определяют, следует ли разделить целевой блок на три части: верхнюю, среднюю и нижнюю (вертикальное направление) (этап S1206). На основании результата целевой блок разделяется на три части: верхнюю, среднюю и нижнюю части (вертикальное направление) (этап S1207) или левую, среднюю и правую части (горизонтальное направление) (этап S1208). В результате этапа S1207 целевой блок разделяется на три части: верхнюю, среднюю и нижнюю части (вертикальное направление), как проиллюстрировано на этапе 603 на фиг. 6C. В результате этапа S1208 целевой блок разделяется на три части: левую, среднюю и правую (горизонтальное направление), как проиллюстрировано на этапе 605 на фиг. 6E.In step S1202, in the case where it is not determined that the target block is to be divided into two, that is, in the case where it is determined that the target block is to be divided into three, it is further determined whether the target block is to be divided into three parts: upper , middle and bottom (vertical direction) (step S1206). Based on the result, the target block is divided into three parts: top, middle and bottom parts (vertical direction) (step S1207) or left, middle and right parts (horizontal direction) (step S1208). As a result of step S1207, the target block is divided into three parts: top, middle, and bottom (vertical direction), as illustrated in step 603 in FIG. 6C. As a result of step S1208, the target block is divided into three parts: left, middle, and right (horizontal direction), as illustrated in step 605 in FIG. 6E.

После выполнения одного из этапов S1204, S1205, S1207 или S1208 каждый из блоков, полученных путем разделения целевого блока, сканируется в порядке слева направо и сверху вниз (этап S1209). Цифры от 0 до 2 от 602 до 605 на фиг. 6B-6E указывают порядок обработки. Для каждого из блоков разделения рекурсивно выполняется процесс двоично-троичного разделения на фиг. 8 (этап S1210).After performing one of steps S1204, S1205, S1207 or S1208, each of the blocks obtained by dividing the target block is scanned in order from left to right and top to bottom (step S1209). Numerals 0 to 2 602 to 605 in FIG. 6B-6E indicate the processing order. For each of the partition blocks, the binary-ternary partitioning process in FIG. 8 (step S1210).

В описанном в настоящем документе рекурсивном разделении блоков правильность разделения может быть ограничена на основании количества разделений, размера целевого блока и т.п. Информация, которая ограничивает правильность разделения, может быть предоставлена в конфигурации, в которой информация не передается путем заключения предварительного соглашения между устройством кодирования и устройством декодирования, или в конфигурации, в которой устройство кодирования определяет информацию для ограничения правильности разделения и записывает информацию в битовые строки, тем самым, передавая информацию в устройство для декодирования.In the recursive block division described herein, the correctness of the division may be limited based on the number of divisions, the size of the target block, and the like. The information that limits the correctness of the division may be provided in a configuration in which information is not transmitted by a prior agreement between the encoder and the decoder, or in a configuration in which the encoder determines information for limiting the correctness of the division and writes the information in bit strings, thereby transmitting the information to the device for decoding.

Когда конкретный блок разделяется, блок до разделения называется родительским блоком и каждый из блоков после разделения называется дочерним блоком.When a particular block is split, the block before the split is called the parent box and each of the boxes after the split is called a child box.

Далее будет описана функциональность блока 202 разделения блока в устройстве 200 для декодирования изображения. Блок 202 разделения блока разделяет блок дерева, используя процедуру обработки, аналогичную случаю блока 101 разделения блока устройства 100 для кодирования изображения. Обратите внимание, что есть разница, хотя блок 101 разделения блока устройства 100 для кодирования изображения определяет оптимальную форму разделения блока путем применения способа оптимизации, такого как оценка оптимальной формы путем распознавания изображения или оптимизации скорости искажения, блок 202 разделения блока устройства 200 для декодирования изображения определяет форму разделения блока путем декодирования информации разделения блока, записанную в битовой строке.Next, the functionality of the block splitter 202 in the device 200 for decoding an image will be described. The block splitter 202 splits the tree block using a processing procedure similar to the case of the block splitter 101 of the image encoding device 100 . Note that there is a difference, although the block separating unit 101 of the image encoding apparatus 100 determines the optimal shape of the block division by applying an optimization method such as estimating the optimal shape by image recognition or distortion rate optimization, the block separating unit 202 of the image decoding apparatus 200 determines a block division form by decoding the block division information recorded in the bit string.

Фиг.9 иллюстрирует синтаксис (правила синтаксиса битовой строки), относящийся к разделению блока согласно первому варианту осуществления. coding_quadtree () представляет синтаксис для процесса разделения на четыре части блока. multi_type_tree () представляет синтаксис процесса разделения блока на два или три. qt_split является флагом, указывающим, следует ли разбить блок на четыре. В случае разделения блока на четыре, установка является qt_split = 1. В случае отсутствия разделения блока на четыре, настройка будет равна qt_split = 0. В случае разделения блока на четыре (qt_split = 1), процесс разделения на четыре будет выполняться рекурсивно для каждого из блоков, разделенных на четыре (coding_quadtree (0), coding_quadtree (1), coding_quadtree (2) и coding_quadtree (3), в которых аргументы от 0 до 3 соответствуют номерам 601 на фиг.6A). В случае, когда разделение на четыре не должно выполняться (qt_split = 0), последующее разделение определяется согласно multi_type_tree (). mtt_split является флагом, указывающим, следует ли выполнять дополнительное разделение. В случае, когда необходимо выполнить дополнительное разделение (mtt_split = 1), будет выполнена передача mtt_split_vertical, который является флагом, указывающим, следует ли выполнять разделение в вертикальном или горизонтальном направлении, и mtt_split_binary, который является флагом, определяющим то, следует ли выполнять двоичное разделение или троичное разделение блока. mtt_split_vertical = 1 указывает разделение в вертикальном направлении и mtt_split_vertical = 0 указывает разделение в горизонтальном направлении. mtt_split_binary = 1 указывает, что блок подвергнут двоичному разделению, а mtt_split_binary = 0 указывает, что блок разделен на три. В случае, когда блок должен быть разделен двоичным кодом (mtt_split_binary = 1), процесс разделения выполняется рекурсивно для каждого из двух разделенных блоков (multi_type_tree (0) и multi_type_tree (1), в которых аргументы от 0 до 1 соответствуют числам в 602 или 604 на фиг.6B-6D). В случае, когда блок должен быть разделен на три (mtt_split_binary = 0), процесс разделения выполняется рекурсивно для каждого из трех разделенных блоков (multi_type_tree (0), multi_type_tree (1) и multi_type_tree (2), в котором 0 2 соответствуют номерам 603 на фиг.6B или 605 на фиг.6E). multi_type_tree рекурсивно используется до тех пор, пока mtt_split = 0 не приведет к иерархическому разделению блоков.9 illustrates the syntax (bit string syntax rules) related to block division according to the first embodiment. coding_quadtree() represents the syntax for the quad block process. multi_type_tree() represents the syntax for splitting a block into two or three. qt_split is a flag indicating whether the block should be split into four. In the case of a block split by four, the setting is qt_split = 1. In the case of no block split by four, the setting will be qt_split = 0. In the case of a block split by four (qt_split = 1), the split by four process will be performed recursively for each of blocks divided into four (coding_quadtree (0), coding_quadtree (1), coding_quadtree (2) and coding_quadtree (3), in which the arguments from 0 to 3 correspond to the numbers 601 in Fig.6A). In the case where split by four is not to be performed (qt_split = 0), the subsequent split is determined according to multi_type_tree(). mtt_split is a flag indicating whether additional splitting should be performed. In the case where additional splitting needs to be performed (mtt_split = 1), mtt_split_vertical which is a flag indicating whether splitting should be performed in the vertical or horizontal direction and mtt_split_binary which is a flag specifying whether binary splitting should be performed or ternary block division. mtt_split_vertical = 1 indicates a split in the vertical direction and mtt_split_vertical = 0 indicates a split in the horizontal direction. mtt_split_binary = 1 indicates that the block has undergone a binary split, and mtt_split_binary = 0 indicates that the block has been split into three. In the case where a block is to be split by binary code (mtt_split_binary = 1), the splitting process is performed recursively for each of the two split blocks (multi_type_tree (0) and multi_type_tree (1), in which the arguments from 0 to 1 correspond to numbers in 602 or 604 in Figs. 6B-6D). In the case where a block is to be split into three (mtt_split_binary = 0), the splitting process is performed recursively for each of the three split blocks (multi_type_tree (0), multi_type_tree (1) and multi_type_tree (2), in which 0 2 correspond to numbers 603 on Fig.6B or 605 in Fig.6E). multi_type_tree is recursively used until mtt_split = 0 results in a hierarchical block split.

Внутрикадровое предсказаниеIntra-frame prediction

Способ внутрикадрового предсказания согласно варианту осуществления реализуется в блоке 103 внутрикадрового предсказания устройства 100 для кодирования изображений, показанного на фиг.1, и в блоке 204 внутрикадрового предсказания устройства 200 для декодирования изображений, показанного на фиг.2.The intra prediction method according to the embodiment is implemented in the intra prediction section 103 of the image encoding apparatus 100 shown in FIG. 1 and the intra prediction section 204 of the image decoding apparatus 200 shown in FIG. 2.

Способ внутрикадрового предсказания согласно варианту осуществления будет описан со ссылкой на чертежи. Способ внутрикадрового предсказания реализуется в любом из процессов кодирования и декодирования в единицах блоков кодирования.An intra prediction method according to an embodiment will be described with reference to the drawings. The intra-frame prediction method is implemented in any of the encoding and decoding processes in units of coding blocks.

Блок 103 внутрикадрового предсказания на стороне кодированияBlock 103 intra prediction on the side of the coding

На фиг.40 показано схематичное представление, иллюстрирующее подробную конфигурацию блока 103 внутрикадрового предсказания устройства 100 для кодирования изображений, показанного на фиг.1. Блок 351 нормального внутрикадрового предсказания вырабатывает предсказанный сигнал изображения посредством нормального внутрикадрового предсказания из декодированных пикселей, соседних с целевым блоком кодирования, выбирает подходящий режим внутрикадрового предсказания из множества режимов внутрикадрового предсказания и подает выбранный режим внутрикадрового предсказания и предсказанный сигнал изображения, соответствующий выбранному режиму внутрикадрового предсказания, в определитель 105 способа предсказания. На фиг.10A и 10B показаны примеры внутрикадрового предсказания. Фиг.10A иллюстрирует соответствие между направлением предсказания нормального внутрикадрового предсказания и номером режима внутрикадрового предсказания. Например, режим 50 «внутрикадрового предсказания» копирует опорные выборки в вертикальном направлении и тем самым создает изображение внутрикадрового предсказания. Режим 1 внутрикадрового предсказания представляет собой режим постоянного тока, в котором все значения выборки целевого блока устанавливаются равными среднему значению опорных выборок. Режим 0 внутрикадрового предсказания представляет собой планарный режим, в котором двухмерное внутрикадровое предсказание создается из опорных выборок в вертикальном и горизонтальном направлениях. На фиг.10В показан пример построения изображения внутрикадрового предсказания в случае режима 40 внутрикадрового предсказания. Для каждой из выборок целевого блока копируется значение опорной выборки в направлении, указанном режимом внутрикадрового предсказания. В случае, когда опорная выборка в режиме внутрикадрового предсказания находится не в целочисленной позиции, значение опорной выборки определяется путем интерполяции из значений опорных выборок в соседних целочисленных позициях.FIG. 40 is a schematic diagram illustrating the detailed configuration of the intra prediction unit 103 of the image encoding apparatus 100 shown in FIG. 1. FIG. The normal intra prediction unit 351 generates a predicted image signal by normal intra prediction from decoded pixels adjacent to the coding target block, selects an appropriate intra prediction mode from a plurality of intra prediction modes, and supplies the selected intra prediction mode and the predicted image signal corresponding to the selected intra prediction mode, to the determinant 105 of the prediction method. 10A and 10B show examples of intra prediction. 10A illustrates a correspondence between a normal intra prediction prediction direction and an intra prediction mode number. For example, the "intra-prediction" mode 50 copies the reference samples in the vertical direction and thereby creates an intra-prediction image. Intra prediction mode 1 is a constant current mode in which all sample values of the target block are set equal to the average value of the reference samples. Intra prediction mode 0 is a planar mode in which 2D intra prediction is generated from reference samples in the vertical and horizontal directions. FIG. 10B shows an example of constructing an intra prediction image in the case of the intra prediction mode 40 . For each of the samples of the target block, the value of the reference sample is copied in the direction indicated by the intra prediction mode. In the case where the reference sample in the intra prediction mode is not at an integer position, the value of the reference sample is determined by interpolation from the values of the reference samples at adjacent integer positions.

Блок 352 предсказания внутририблочного копирования получает декодированную область одного и того же сигнала изображения в качестве целевого блока кодирования, вырабатывает предсказанный сигнал изображения в процессе внутриблочного копирования, и подает предсказанный сигнал изображения в определитель 105 способа предсказания. Подробная конфигурация и процесс, выполняемый блоком 352 предсказания внутририблочного копирования будут описаны ниже.The block copy prediction block 352 obtains a decoded region of the same image signal as the encoding target block, generates a predicted image signal in the block copy process, and supplies the predicted image signal to the prediction method determiner 105 . The detailed configuration and process performed by the intra-block copy predictor 352 will be described below.

Блок 204 внутрикадрового предсказания на стороне декодированияBlock 204 intra prediction on the side of the decoding

На фиг.41 показано схематичное представление, иллюстрирующее подробную конфигурацию блока 204 внутрикадрового предсказания устройства 200 для декодирования изображений, показанного на фиг.2.FIG. 41 is a schematic diagram illustrating a detailed configuration of the intra prediction unit 204 of the image decoding apparatus 200 shown in FIG. 2. FIG.

Блок 361 нормального внутрикадрового предсказания вырабатывает сигнал предсказания посредством нормального внутрикадрового предсказания из декодированных пикселей, соседних с целевым блоком кодирования, выбирает подходящий режим внутрикадрового предсказания из множества режимов внутрикадрового предсказания и получает выбранный режим внутрикадрового предсказания и предсказанный сигнал изображения, соответствующий выбранному режиму внутрикадрового предсказания. Этот сигнал предсказания подается в блок 207 наложения сигналов декодированного изображения через переключатель 364. Процесс, выполняемый блоком 361 нормального внутрикадрового предсказания, показанного на фиг.41, соответствует процессу, выполняемому блоком 351 нормального внутрикадрового предсказания, показанным на фиг.40, и поэтому их подробное описание будет опущено.The normal intra prediction unit 361 generates a prediction signal by normal intra prediction from decoded pixels adjacent to the coding target block, selects an appropriate intra prediction mode from a plurality of intra prediction modes, and obtains the selected intra prediction mode and the predicted image signal corresponding to the selected intra prediction mode. This prediction signal is supplied to the decoded image superposition section 207 via the switch 364. The process performed by the normal intra prediction section 361 shown in FIG. 41 corresponds to the process performed by the normal intra prediction section 351 shown in FIG. description will be omitted.

Блок 362 предсказания внутририблочного копирования получает декодированную область одного и того же сигнала изображения в качестве целевого блока кодирования, и получает предсказанный сигнал изображения путем процесса внутриблочного копирования. Этот предсказанный сигнал изображения подается в блок 207 наложения сигналов декодированного изображения через переключатель 364. Подробная конфигурация и процесс, выполняемый блоком 362 предсказания внутририблочного копирования будут описаны ниже.The intra-block copy prediction block 362 obtains a decoded area of the same image signal as a target coding block, and obtains a predicted image signal by an intra-block copy process. This predicted image signal is supplied to the decoded image signal overlay section 207 via the switch 364. The detailed configuration and process performed by the intra-block copy prediction section 362 will be described below.

Межкадровое предсказаниеInterframe prediction

Способ межкадрового предсказания согласно варианту осуществления реализован в блоке 102 межкадрового предсказания устройства для кодирования изображения на фиг. 1 и в блоке 203 межкадрового предсказания устройства для декодирования изображения на фиг. 2.The inter prediction method according to the embodiment is implemented in the inter prediction unit 102 of the image encoding apparatus in FIG. 1 and in the inter prediction block 203 of the image decoding apparatus in FIG. 2.

Далее будет приведено описание способа межкадрового предсказания согласно варианту осуществления со ссылкой на чертежи. Способ межкадрового предсказания реализуется в любом из процессов кодирования и декодирования в блоках кодирования.Next, a description will be given of the inter prediction method according to the embodiment with reference to the drawings. The inter-frame prediction method is implemented in any of the encoding and decoding processes in coding blocks.

Блок 102 межкадрового предсказания на стороне кодированияBlock 102 inter-picture prediction on the side of the coding

На фиг. 16 показана схема, иллюстрирующая подробную конфигурацию блока 102 межкадрового предсказания устройства для кодирования изображений на фиг. 1. Блок 301 получения режима предиктора нормального вектора движения выводит множество кандидатов предиктора нормального вектора движения, выбирает предиктор вектора движения и вычисляет разность векторов движения между выбранным предиктором вектора движения и обнаруженным вектором движения. Обнаруженный режим межкадрового предсказания, опорный индекс, вектор движения и вычисленная разность векторов движения являются информацией межкадрового предсказания режима предиктора нормального вектора движения. Эта информация межкадрового предсказания подается в определитель 305 режима межкадрового предсказания. Далее будет приведена подробная информация конфигурации и обработки блока 301 получения режима предиктора нормального вектора движения.In FIG. 16 is a diagram illustrating a detailed configuration of the inter prediction unit 102 of the image encoding apparatus in FIG. 1. The normal motion vector predictor mode obtaining unit 301 outputs a plurality of normal motion vector predictor candidates, selects a motion vector predictor, and calculates a motion vector difference between the selected motion vector predictor and the detected motion vector. The detected inter prediction mode, the reference index, the motion vector, and the calculated motion vector difference are the inter prediction information of the normal motion vector predictor mode. This inter prediction information is supplied to the inter prediction mode determiner 305 . Next, detailed configuration and processing information of the normal motion vector predictor mode acquisition unit 301 will be given.

Блок 302 получения режима нормального слияния выводит множество кандидатов нормального слияния, выбирает кандидата нормального слияния и получает информацию межкадрового предсказания для режима нормального слияния. Эта информация межкадрового предсказания подается в определитель 305 режима межкадрового предсказания. Далее будет приведена подробная информация конфигурации и обработки блока 302 получения режима нормального слияния.The normal merge mode obtaining unit 302 outputs a plurality of normal merge candidates, selects a normal merge candidate, and obtains inter prediction information for the normal merge mode. This inter prediction information is supplied to the inter prediction mode determiner 305 . Next, detailed information on the configuration and processing of the normal merge mode acquisition block 302 will be given.

Блок 303 получения режима предиктора вектора движения подблока выводит множество кандидатов предиктора вектора движения подблока, выбирает предиктор вектора движения подблока и вычисляет разность векторов движения между выбранным предиктором вектора движения подблока и обнаруженным вектором движения. Обнаруженный режим межкадрового предсказания, опорный индекс, вектор движения и вычисленная разность векторов движения является информацией межкадрового предсказания режима предиктора вектора движения подблока. Эта информация межкадрового предсказания подается в определитель 305 режима межкадрового предсказания.The sub-block motion vector predictor mode derivation unit 303 outputs a plurality of sub-block motion vector predictor candidates, selects a sub-block motion vector predictor, and calculates a motion vector difference between the selected sub-block motion vector predictor and the detected motion vector. The detected inter prediction mode, reference index, motion vector, and calculated motion vector difference are sub-block motion vector predictor mode inter prediction information. This inter prediction information is supplied to the inter prediction mode determiner 305 .

Блок 304 получения режима слияния подблоков выводит множество кандидатов слияния подблоков, выбирает кандидата слияния подблоков и получает информацию межкадрового предсказания режима слияния подблоков. Эта информация межкадрового предсказания подается в определитель 305 режима межкадрового предсказания.The sub-block merge mode obtaining unit 304 outputs a plurality of sub-block merge candidates, selects a sub-block merge candidate, and obtains sub-block merge mode inter-picture prediction information. This inter prediction information is supplied to the inter prediction mode determiner 305 .

В определителе 305 режима межкадрового предсказания определяется информация межкадрового предсказания на основании информации межкадрового предсказания, поступающей из блока 301 получения режима предиктора нормального вектора движения, блока 302 получения режима нормального слияния, блока 303 получения режима предиктора вектора движения подблока и блока 304 получения режима слияния подблоков. Информация межкадрового предсказания согласно результата определения подается из определителя 305 режима межкадрового предсказания в блок 306 предсказания компенсации движения.In the inter prediction mode determiner 305, inter prediction information is determined based on the inter prediction information supplied from the normal motion vector predictor mode obtaining block 301, the normal merge mode obtaining block 302, the subblock motion vector predictor mode obtaining block 303, and the subblock merge mode obtaining block 304. The inter prediction information according to the determination result is supplied from the inter prediction mode determiner 305 to the motion compensation predictor 306 .

Блок 306 предсказания компенсации движения выполняют межкадровое предсказание на сигнале опорного изображения, сохраненном в памяти 104 декодированного изображения на основании определенной информации межкадрового предсказания. Далее будет приведена подробная информация конфигурации и обработки блока 306 предсказания компенсации движения.The motion compensation predictor 306 performs inter prediction on the reference picture signal stored in the decoded picture memory 104 based on the determined inter prediction information. Next, detailed configuration and processing information of the motion compensation predictor 306 will be given.

Блок 203 межкадрового предсказания на стороне декодированияBlock 203 inter-picture prediction on the side of the decoding

На фиг. 22 показан схема, иллюстрирующая подробную конфигурацию блока 203 межкадрового предсказания устройства для декодирования изображения на фиг. 2.In FIG. 22 is a diagram illustrating a detailed configuration of the inter prediction unit 203 of the image decoding apparatus in FIG. 2.

Блок 401 получения режима предиктора нормального вектора движения выводит множество кандидатов предиктора нормального вектора движения, выбирает предиктор вектора движения, вычисляет добавленное значение, полученное путем сложения выбранного предиктора вектора движения и разности декодированных векторов движения, и устанавливает это добавленное значение как вектор движения. Декодированный режим межкадрового предсказания, опорный индекс, вектор движения является информацией межкадрового предсказания режима предиктора нормального вектора движения. Эта информация межкадрового предсказания подается в блок 406 предсказания компенсации движения через переключатель 408. Далее будет приведено подробное описание конфигурации и обработки блока 401 получения режима предиктора нормального вектора движения.The normal motion vector predictor mode obtaining unit 401 outputs a plurality of normal motion vector predictor candidates, selects a motion vector predictor, calculates an added value obtained by adding the selected motion vector predictor and the difference of the decoded motion vectors, and sets this added value as a motion vector. The decoded inter prediction mode, reference index, motion vector is the inter prediction information of the normal motion vector predictor mode. This inter prediction information is supplied to the motion compensation predictor 406 via the switch 408. Next, the configuration and processing of the normal motion vector predictor mode obtaining unit 401 will be described in detail.

Блок 402 получения режима нормального слияния выводит множество кандидатов нормального слияния, выбирает кандидата нормального слияния и получает информацию межкадрового предсказания для режима нормального слияния. Эта информация межкадрового предсказания подается в блок 406 предсказания компенсации движения через переключатель 408. Ниже будет представлена подробная конфигурация и обработка блока 402 получения режима нормального слияния.The normal merge mode obtaining unit 402 outputs a plurality of normal merge candidates, selects a normal merge candidate, and obtains inter prediction information for the normal merge mode. This inter prediction information is supplied to the motion compensation prediction block 406 via the switch 408. The detailed configuration and processing of the normal fusion mode obtaining block 402 will be presented below.

Блок 403 получения режима предиктора вектора движения подблока выводит множество кандидатов предиктора вектора движения подблока, выбирает предиктор вектора движения подблока и вычисляет добавленное значение, полученное путем сложения выбранного предиктора вектора движения подблока и декодированной разности векторов движения, и устанавливает это добавленное значение как вектор движения. Декодированный режим межкадрового предсказания, опорный индекс и вектор движения являются информацией межкадрового предсказания режима предиктора вектора движения подблока. Эта информация межкадрового предсказания подается в блок 406 предсказания компенсации движения через переключатель 408.The sub-block motion vector predictor mode obtaining unit 403 outputs a plurality of sub-block motion vector predictor candidates, selects a sub-block motion vector predictor, and calculates an added value obtained by adding the selected sub-block motion vector predictor and the decoded motion vector difference, and sets this added value as a motion vector. The decoded inter prediction mode, the reference index, and the motion vector are inter prediction information of the sub-block motion vector predictor mode. This inter prediction information is supplied to the motion compensation predictor 406 via the switch 408.

Блок 404 получения режима слияния подблоков выводит множество кандидатов слияния подблоков, выбирает кандидата слияния подблоков и получает информацию межкадрового предсказания режима слияния подблоков. Эта информация межкадрового предсказания подается в блок 406 предсказания компенсации движения через переключатель 408.The sub-block merge mode obtaining unit 404 outputs a plurality of sub-block merge candidates, selects a sub-block merge candidate, and obtains sub-block merge mode inter-picture prediction information. This inter prediction information is supplied to the motion compensation predictor 406 via the switch 408.

Блок 406 предсказания компенсации движения выполняет межкадровое предсказание на сигнале опорного изображения, сохраненного в памяти 208 декодированного изображения на основании определенной информации межкадрового предсказания. Подробная конфигурация и обработка блока 406 предсказания компенсации движения аналогичны блоку 306 предсказания компенсации движения на стороне кодирования.The motion compensation predictor 406 performs inter prediction on the reference picture signal stored in the decoded picture memory 208 based on the determined inter prediction information. The detailed configuration and processing of the motion compensation predictor 406 is similar to the motion compensation predictor 306 on the encoding side.

Блок получения режима предиктора нормального вектора движения (Normal AMVP)Normal Motion Vector Predictor Mode (Normal AMVP) Obtaining Block

Блок 301 получения режима предиктора нормального вектора движения на фиг. 17 включает в себя блок 321 получения кандидата пространственного предиктора вектора движения, блок 322 получения кандидата временного предиктора вектора движения, блок 323 получения кандидата предиктора вектора движения на основании истории, пополнитель 325 кандидатов предиктора вектора движения, определитель 326 нормального вектора движения, селектор 327 кандидата предиктора вектора движения и вычитатель 328 вектора движения.The normal motion vector predictor mode acquisition unit 301 in FIG. 17 includes a spatial motion vector predictor candidate deriving block 321, a temporal motion vector predictor candidate deriving block 322, a history-based motion vector predictor candidate deriving block 323, a motion vector predictor candidate replenisher 325, a normal motion vector determiner 326, a predictor candidate selector 327 motion vector subtractor 328 of the motion vector.

Блок 401 получения режима предиктора нормального вектора движения на фиг. 23 включает в себя блок 421 получения кандидата пространственного предиктора вектора движения, блок 422 получения кандидата временного предиктора вектора движения, блок 423 получения кандидата предиктора вектора движения на основании истории, пополнитель 425 кандидатов предиктора вектора движения, селектор 426 кандидатов предиктора вектора движения и сумматор 427 вектора движения.The normal motion vector predictor mode acquisition unit 401 in FIG. 23 includes a spatial motion vector predictor candidate derivation unit 421, a temporal motion vector predictor candidate derivation unit 422, a history-based motion vector predictor candidate derivation unit 423, a motion vector predictor candidate adder 425, a motion vector predictor candidate selector 426, and a vector adder 427 movement.

Со ссылкой на блок-схемы алгоритма на фиг. 19 и фиг. 25, соответственно, описаны процедуры обработки блока 301 получения режима предиктора нормального вектора движения на стороне кодирования и блока 401 получения режима предиктора нормального вектора движения на стороне декодирования. На фиг. 19 показана блок-схема алгоритма, иллюстрирующая процедуру обработки получения режима предиктора нормального вектора движения, выполняемую блоком 301 получения режима нормального вектора движения на стороне кодирования. На фиг. 25 показана блок-схема алгоритма, иллюстрирующая процедуру обработки получения режима предиктора нормального вектора движения, выполняемую блоком 401 получения режима нормального вектора движения на стороне декодирования.With reference to the flowcharts in FIG. 19 and FIG. 25, respectively, the processing procedures of the normal motion vector predictor mode acquisition unit 301 on the encoding side and the normal motion vector predictor mode acquisition unit 401 on the decoding side are described. In FIG. 19 is a flowchart illustrating a normal motion vector predictor mode acquisition processing procedure executed by the normal motion vector mode acquisition unit 301 on the encoding side. In FIG. 25 is a flowchart illustrating a normal motion vector predictor mode acquisition processing procedure executed by the normal motion vector mode acquisition unit 401 on the decoding side.

Блок получения режима предиктора нормального вектора движения (Normal AMVP): сторона кодированияNormal Motion Vector Predictor Mode (Normal AMVP) Obtaining Block: Encoding Side

Со ссылкой на фиг. 19 будет описана процедура обработки получения режима предиктора нормального вектора движения на стороне кодирования. В описании процедуры обработки на фиг. 19 слово «нормальный», проиллюстрированное на фиг. 19, в некоторых случаях опускается.With reference to FIG. 19, a normal motion vector predictor mode acquisition processing procedure on the encoding side will be described. In the description of the processing procedure in FIG. 19, the word "normal" illustrated in FIG. 19 is omitted in some cases.

Во-первых, определитель 326 нормального вектора движения обнаруживает нормальный вектор движения для каждого из режимов межкадрового предсказания и опорных индексов (этап S100 на фиг. 19).First, the normal motion vector determiner 326 detects the normal motion vector for each of the inter prediction modes and reference indexes (step S100 in FIG. 19).

В последствии, для каждого из L0 и L1 вычисляется разность векторов движения вектора движения, используемого при межкадровом предсказании в режиме предиктора нормального вектора движения (этапы S101-S106 на фиг. 19) в блоке 321 получения кандидата пространственного предиктора вектора движения, блоке 322 получения кандидата временного предиктора вектора движения, блоке 323 получения кандидата предиктора вектора движения на основании истории, пополнителе 325 кандидата предиктора вектора движения, селекторе 327 кандидата предиктора вектора движения и вычитателе 328 вектора движения. В частности, в случае, где режимом предсказания PredMode целевого блока является межкадровое предсказание (MODE_INTER) и режимом межкадрового предсказания является L0 предсказание (Pred_L0), вычисляется список mvpListL0 кандидатов предиктора вектора движения L0. В последствии выбирается предиктор mvpL0 вектора движения и затем вычисляется разность mvdL0 вектора движения вектора mvL0 движения L0. В случае, когда режимом межкадрового предсказания целевого блока является L1 предсказание (Pred_L1), вычисляется список mvpListL1 кандидатов предикторов вектора движения L1. Затем выбирается предиктор mvpL1 вектора движения, в последствии вычисляется разность mvdL1 векторов движения вектора mvL1 движения L1. В случае, когда режимом межкадрового предсказания целевого блока является двунаправленное предсказание (Pred_BI), выполняются оба L0 предсказание и L1 предсказание. Вычисляется список mvpListL0 кандидатов предикторов вектора движения для L0 и выбирается предиктор mvpL0 вектора движения для L0, и затем вычисляется разность mvdL0 векторов движения вектора mvL0 движения для L0. Наряду с этим вычислением вычисляется список mvpListL1 кандидатов предикторов вектора движения для L1 и вычисляется предиктор mvpL1 вектора движения для L1 и затем вычисляется разность mvdL1 векторов движения вектора mvL1 движения для L1.Subsequently, for each of L0 and L1, the motion vector difference of the motion vector used in inter-picture prediction in the normal motion vector predictor mode is calculated (steps S101 to S106 in FIG. 19) in the spatial motion vector predictor candidate acquisition block 321, the candidate acquisition block 322 temporal motion vector predictor, a history-based motion vector predictor candidate derivation block 323 , a motion vector predictor candidate adder 325 , a motion vector predictor candidate selector 327 , and a motion vector subtractor 328 . Specifically, in the case where the target block's PredMode is inter prediction (MODE_INTER) and the inter prediction mode is L0 prediction (Pred_L0), the L0 motion vector predictor candidate list mvpListL0 is calculated. Subsequently, the motion vector predictor mvpL0 is selected and then the motion vector difference mvdL0 of the motion vector mvL0 L0 is calculated. In the case where the inter prediction mode of the target block is L1 prediction (Pred_L1), the L1 motion vector predictor candidate list mvpListL1 is calculated. Then the predictor mvpL1 of the motion vector is selected, and then the difference mvdL1 of the motion vectors of the motion vector mvL1 of the motion L1 is calculated. In the case where the inter prediction mode of the target block is bidirectional prediction (Pred_BI), both L0 prediction and L1 prediction are performed. The motion vector predictor candidate list mvpListL0 for L0 is calculated, and the motion vector predictor mvpL0 for L0 is selected, and then the motion vector difference mvdL0 of the motion vector mvL0 for L0 is calculated. Along with this calculation, a motion vector predictor candidate list mvpListL1 for L1 is calculated, and a motion vector predictor mvpL1 for L1 is calculated, and then the motion vector difference mvdL1 of the motion vector mvL1 for L1 is calculated.

Процесс вычисления разности векторов движения выполняется для каждого из L0 и L1, в котором процесс вычисления является общим процессом как для L0, так и для L1. Соответственно, L0 и L1 будут обозначаться как LX как общая процедура. В процессе вычисления разности векторов движения L0, X LX устанавливается на 0, в то время как в процессе вычисления разности векторов движения L1, X LX устанавливается на 1. Дополнительно, в случае, когда обращаются за информацией о другом списке вместо одного LX в процессе вычисления разности векторов движения одного LX, другой список будет представлен как LY.The motion vector difference calculation process is performed for each of L0 and L1, in which the calculation process is a common process for both L0 and L1. Accordingly, L0 and L1 will be referred to as LX as a general procedure. In the process of calculating the motion vector difference L0, X, LX is set to 0, while in the process of calculating the motion vector difference L1, X, LX is set to 1. the difference of the motion vectors of one LX, the other list will be represented as LY.

В случае, когда используется вектор mvLX движения LX (ДА на этапе S102 на фиг. 19), вычисляются кандидаты предиктора вектора движения LX, тем самым, составляя список mvpListLX кандидатов предикторов вектора движения LX (этап S103 на фиг. 19). В блоке 301 получения режима предиктора нормального вектора движения, блоке 321 получения кандидата пространственного предиктора вектора движения, блоке 322 получения кандидата временного предиктора вектора движения, блоке 323 получения кандидата предиктора вектора движения на основании истории и пополнителе 325 кандидатов предиктора вектора движения выводят множество кандидатов предикторов вектора движения и, тем самым, составляют список mvpListLX кандидатов предикторов вектора движения. Далее со ссылкой на фиг. 19 будет описана подробная процедура обработки этапа S103 с использованием блок-схемы алгоритма на фиг. 20.In the case where the LX motion vector mvLX is used (YES in step S102 in FIG. 19), the LX motion vector predictor candidates are calculated, thereby compiling the LX motion vector predictor candidate list mvpListLX (Step S103 in FIG. 19). In the normal motion vector predictor mode derivation block 301, the spatial motion vector predictor candidate derivation block 321, the temporal motion vector predictor candidate derivation block 322, the history-based motion vector predictor candidate derivation block 323, and the motion vector predictor candidate filler 325, a plurality of motion vector predictor candidates are output. motion vectors and thus constitute a list mvpListLX of motion vector predictor candidates. Next, with reference to FIG. 19, a detailed processing procedure of step S103 will be described using the flowchart in FIG. twenty.

Далее селектор 327 кандидатов предиктора вектора движения выбирает предиктор mvpLX вектора движения LX списка mvpListLX кандидатов предиктора вектора движения LX (этап S104 на фиг. 19). Здесь один элемент (i-й элемент, отсчитываемый от 0) в списке mvpListLX кандидатов предиктора вектора движения представлен как mvpListLX [i]. Вычисляется каждая разность векторов движения, которая представляет собой разность между вектором движения mvLX и каждым из кандидатов предикторов mvpListLX [i] вектора движения, сохраненных в списке mvpListLX кандидатов предикторов вектора движения. Для каждого из элементов (кандидатов предикторов вектора движения) списка mvpListLX кандидатов предиктора вектора движения вычисляется объем кода во время кодирования этих разностей векторов движения. Затем выбирается кандидат предиктор mvpListLX [i] вектора движения, который минимизирует количество кода для каждого из кандидатов предикторов вектора движения среди отдельных элементов, зарегистрированных в списке mvpListLX кандидатов предиктора вектора движения, в качестве предиктора mvpLX вектора движения, и получен его индекс i. В случае наличия множества кандидатов предикторов вектора движения, имеющих минимальный сгенерированный объем кода в списке mvpListLX кандидатов предикторов вектора движения, выбирается кандидат предиктор mvpListLX [i] вектора движения, имеющий индекс i в списке mvpListLX кандидатов предиктора вектора движения, представленный небольшим числом в качестве оптимального предиктора mvpLX вектора движения, и получается его индекс i.Next, the motion vector predictor candidate selector 327 selects the LX motion vector predictor mvpLX of the LX motion vector predictor candidate list mvpListLX (step S104 in FIG. 19). Here, one element (i-th element, starting from 0) in the motion vector predictor candidate list mvpListLX is represented as mvpListLX[i]. Each motion vector difference is calculated, which is the difference between the mvLX motion vector and each of the motion vector predictor candidates mvpListLX[i] stored in the motion vector predictor candidate list mvpListLX. For each of the elements (motion vector predictor candidates) of the motion vector predictor candidate list mvpListLX, the amount of code is calculated at the time of encoding these motion vector differences. Then, a motion vector predictor candidate mvpListLX[i] is selected that minimizes the amount of code for each of the motion vector predictor candidates among the individual elements registered in the motion vector predictor candidate list mvpListLX as the motion vector predictor mvpLX, and its index i is obtained. In the case of a plurality of motion vector predictor candidates having a minimum generated amount of code in the motion vector predictor candidate list mvpListLX, the motion vector predictor candidate mvpListLX [i] having index i in the mvpListLX motion vector predictor candidate list represented by a small number is selected as the optimal predictor mvpLX of the motion vector, and its index i is obtained.

Затем блок 328 вычитания вектора движения вычитает выбранный предиктор mvpLX вектора движения LX из вектора mvLX движения LX и вычисляет разность векторов mvdLX движения LX как в: Then, the motion vector subtractor 328 subtracts the selected LX motion vector predictor mvpLX from the LX motion vector mvLX and calculates the difference of the LX motion vectors mvdLX as in:

mvdLX = mvLX - mvpLX (этап S105 на фиг. 19).mvdLX = mvLX - mvpLX (step S105 in FIG. 19).

Блок получения режима предиктора нормального вектора движения (нормальный AMVP): сторона декодированияNormal motion vector predictor mode acquisition block (normal AMVP): decode side

Далее со ссылкой на фиг. 25 будет описана процедура обработки режима предиктора нормального вектора движения на стороне декодирования. На стороне декодирования блок 421 получения кандидата пространственного предиктора вектора движения, блок 422 получения кандидата временного предиктора вектора движения, блок 423 получения кандидатов предикторов вектора движения на основании истории и пополнитель 425 кандидатов предикторов вектора движения индивидуально вычисляют векторы движения, используемые во межкадровом предсказании режима предиктора нормального вектора движения для каждого из L0 и L1 (этапы S201-S206 на фиг. 25). В частности, в случае, когда режимом PredMode предсказания целевого блока является межкадровое предсказание (MODE_INTER) и режимом межкадрового предсказания целевого блока является L0 предсказание (Pred_L0), вычисляется список mvpListL0 кандидатов предикторов вектора движения L0. Затем выбирается предиктор вектора mvpL0 движения и затем вычисляется вектор mvL0 движения L0. В случае, когда режимом межкадрового предсказания целевого блока является L1 предсказание (Pred_L1), вычисляется список mvpListL1 кандидатов предикторов вектора движения L1. Затем выбирается предиктор вектора mvpL1 движения и вычисляется вектор mvL1 движения L1. В случае, когда режимом межкадрового предсказания целевого блока является двунаправленное предсказание (Pred_BI), выполняются оба L0 предсказание и L1 предсказание. Вычисляется список mvpListL0 кандидатов предикторов вектора движения L0 и выбирается предиктор mvpL0 вектора движения L0 и затем вычисляется вектор mvL0 движения для L0. Наряду с этим вычислением вычисляется список mvpListL1 кандидатов предикторов вектора движения для L1 и вычисляется предиктор mvpL1 вектора движения для L1 и затем вычисляется вектор mvL1 движения для L1.Next, with reference to FIG. 25, a normal motion vector predictor mode processing procedure on the decoding side will be described. On the decoding side, a spatial motion vector predictor candidate deriving unit 421, a temporal motion vector predictor candidate deriving unit 422, a history-based motion vector predictor candidate deriving unit 423, and a motion vector predictor candidate enhancer 425 individually calculate the motion vectors used in inter-frame prediction of the normal predictor mode. a motion vector for each of L0 and L1 (steps S201-S206 in FIG. 25). Specifically, in the case where the prediction mode PredMode of the target block is inter prediction (MODE_INTER) and the inter prediction mode of the target block is L0 prediction (Pred_L0), the L0 motion vector predictor candidate list mvpListL0 is calculated. Next, a predictor of the motion vector mvpL0 is selected, and then the motion vector mvL0 of L0 is calculated. In the case where the inter prediction mode of the target block is L1 prediction (Pred_L1), the L1 motion vector predictor candidate list mvpListL1 is calculated. Then, the motion vector mvpL1 predictor is selected and the motion vector mvL1 L1 is calculated. In the case where the inter prediction mode of the target block is bidirectional prediction (Pred_BI), both L0 prediction and L1 prediction are performed. A motion vector predictor candidate list mvpListL0 of L0 is computed, and a motion vector predictor mvpL0 of L0 is selected, and then a motion vector mvL0 of L0 is computed. Along with this calculation, the motion vector predictor candidate list mvpListL1 for L1 is calculated, and the motion vector predictor mvpL1 for L1 is calculated, and then the motion vector mvL1 for L1 is calculated.

Аналогично стороне кодирования, сторона декодирования выполняет обработку вычисления вектора движения для каждого из L0 и L1, при этом обработка является общим процессом как для L0, так и для L1. Соответственно, L0 и L1 будут обозначаться как LX как общая процедура. LX представляет режим межкадрового предсказания, используемый для межкадрового предсказания целевого блока кодирования. X равен 0 в процессе вычисления вектора движения L0 и X равен 1 в процессе вычисления вектора движения L1. Дополнительно, в случае, когда информация о другом справочном списке упоминается вместо того же справочного списка, что и LX, который должен быть вычислен в процессе вычисления вектора движения LX, другой справочный список будет представлен как LY.Similar to the encoding side, the decoding side performs motion vector calculation processing for each of L0 and L1, the processing being a common process for both L0 and L1. Accordingly, L0 and L1 will be referred to as LX as a general procedure. LX represents an inter prediction mode used for inter prediction of a target coding block. X is 0 in the process of calculating the motion vector L0 and X is 1 in the process of calculating the motion vector L1. Additionally, in the case where other lookup list information is mentioned instead of the same lookup list as LX to be calculated in the process of calculating the motion vector LX, the other lookup list will be represented as LY.

В случае, когда используется вектор mvLX движения для LX (ДА на этапе S202 на фиг. 25), вычисляются кандидаты предикторы вектора движения LX для составления списка mvpListLX кандидатов предикторов вектора движения для LX (этап S203 на фиг. 25). В блоке 401 получения режима предиктора нормального вектора движения, блоке 421 получения кандидата пространственного предиктора вектора движения, блоке 422 получения кандидата временного предиктора вектора движения, блоке 423 получения кандидата предиктора вектора движения на основании истории и пополнителе 425 кандидата предиктора вектора движения вычисляют множество кандидатов предикторов вектора движения и, тем самым, составляют список mvpListLX кандидатов предикторов вектора движения. Далее со ссылкой на фиг. 25 и с использованием блок-схемы алгоритма на фиг. 20 будет описана подробная процедура обработки этапа S203.In the case where the LX motion vector mvLX is used (YES in step S202 in FIG. 25), the LX motion vector predictor candidates are calculated to compile the LX motion vector predictor candidate list mvpListLX (step S203 in FIG. 25). In the normal motion vector predictor mode derivation block 401, the spatial motion vector predictor candidate derivation block 421, the temporal motion vector predictor candidate derivation block 422, the history-based motion vector predictor candidate derivation block 423, and the motion vector predictor candidate filler 425, a plurality of vector predictor candidates are calculated. motion vectors and thus constitute a list mvpListLX of motion vector predictor candidates. Next, with reference to FIG. 25 and using the flowchart of FIG. 20, a detailed processing procedure of step S203 will be described.

Затем селектор 426 кандидатов предиктора вектора движения извлекает кандидата предиктора mvpListLX [mvpIdxLX] вектора движения, соответствующего индексу mvpIdxLX предиктора вектора движения, декодированному и поставленному блоком 201 декодирования битовой строки из списка mvpListLX кандидатов предиктора вектора движения, как выбранный предиктор mvpLX вектора движения (этап S204 на фиг. 25).Then, the motion vector predictor candidate selector 426 extracts the motion vector predictor candidate mvpListLX [mvpIdxLX] corresponding to the motion vector predictor index mvpIdxLX decoded and supplied by the bitstring decoder 201 from the motion vector predictor candidate list mvpListLX as the selected motion vector predictor mvpLX (step S204 at Fig. 25).

Затем сумматор 427 векторов движения суммирует разность mvdLX векторов движения LX и предиктора mvpLX вектора движения LX, которые декодируются и поставляются блоком 201 декодирования битовых строк, и вычисляет вектор mvLX движения LX как в: Then, the motion vector adder 427 sums the difference mvdLX of the LX motion vectors and the predictor mvpLX of the LX motion vector that are decoded and supplied by the bit string decoder 201, and calculates the motion vector mvLX of the LX motion as in:

mvLX = mvpLX + mvdLX (этап S205 на фиг. 25).mvLX = mvpLX + mvdLX (step S205 in FIG. 25).

Блок получения режима предиктора нормального вектора движения (нормальный AMVP): способ предсказания вектора движенияNormal Motion Vector Predictor Mode Obtainer (Normal AMVP): Motion Vector Prediction Method

На фиг. 20 показана блок-схема алгоритма, иллюстрирующая процедуру обработки процесса получения режима предиктора нормального вектора движения, имеющего функцию, общую для блока 301 получения режима предиктора нормального вектора движения устройства для кодирования изображения и блока 401 получения режима предиктора нормального вектора движения устройства для декодирования изображения согласно варианту осуществления настоящего изобретения.In FIG. 20 is a flowchart illustrating a processing procedure for obtaining the normal motion vector predictor mode having a function common to the normal motion vector predictor mode obtaining unit 301 of the image encoding apparatus and the normal motion vector predictor mode obtaining unit 401 of the image decoding apparatus according to the embodiment implementation of the present invention.

Каждый из блока 301 получения режима предиктора нормального вектора движения и блока 401 получения режима предиктора нормального вектора движения включает в себя список mvpListLX кандидатов предиктора вектора движения. Список mvpListLX кандидатов предиктора вектора движения имеет структуру списка и включает в себя область хранения, которая хранит в качестве элементов индекс предиктора вектора движения, указывающий местоположение в списке кандидатов предиктора вектора движения, и кандидата предиктора вектора движения, соответствующего этому индексу. Номер индекса предиктора вектора движения начинается с 0, и кандидаты предиктора вектора движения должны храниться в области хранения списка mvpListLX кандидатов предиктора вектора движения. В настоящем варианте осуществления предполагается, что список mvpListLX кандидатов предиктора вектора движения может регистрировать, по меньшей мере, два кандидата предиктора вектора движения (в качестве информации межкадрового предсказания). Кроме того, переменная numCurrMvpCand, указывающая количество кандидатов предиктора вектора движения, зарегистрированных в списке mvpListLX кандидатов предиктора вектора движения, устанавливается на 0.Each of the normal motion vector predictor mode obtaining block 301 and the normal motion vector predictor mode obtaining block 401 includes a motion vector predictor candidate list mvpListLX. The motion vector predictor candidate list mvpListLX has a list structure and includes a storage area that stores as elements a motion vector predictor index indicating a location in the motion vector predictor candidate list and a motion vector predictor candidate corresponding to the index. The motion vector predictor index number starts from 0, and the motion vector predictor candidates must be stored in the motion vector predictor candidate list mvpListLX storage area. In the present embodiment, it is assumed that the motion vector predictor candidate list mvpListLX can register at least two motion vector predictor candidates (as inter prediction information). In addition, the numCurrMvpCand variable indicating the number of motion vector predictor candidates registered in the motion vector predictor candidate list mvpListLX is set to 0.

Каждый из блоков 321 и 421 получения кандидата пространственного предиктора движения извлекает кандидат предиктора вектора движения из блоков в соседнем с левой стороны. Этот процесс выводит предиктор mvLXA вектора движения со ссылкой на информацию межкадрового предсказания блока в соседнем с левой стороны (A0 или A1 на фиг. 11), а именно флаг, указывающий, можно ли использовать кандидат предиктор вектора движения, вектор движения, опорный индекс или т.п., и добавляет полученный mvLXA к списку mvpListLX кандидатов предиктора вектора движения (этап S301 на фиг. 20). Обратите внимание, что X равен 0 в L0 предсказании и X равен 1 в L1 предсказании (аналогично применяется в дальнейшем). Затем блоки 321 и 421 получения кандидатов предиктора вектора движения извлекают кандидатов предиктора вектора движения из верхнего соседнего блока. Этот процесс выводит предиктор вектора mvLXB движения со ссылкой на информацию межкадрового предсказания верхнего соседнего блока (B0, B1 или B2 на фиг. 11), а именно, флаг, указывающий, можно ли использовать кандидат предиктора вектора движения, вектор движения, опорный индекс и т.п. Когда полученный mvLXA и полученный mvLXB не равны, mvLXB добавляется в список mvpListLX кандидатов предиктора вектора движения (этап S302 на фиг. 20). Процессы на этапах S301 и S302 на фиг. 20 представлены как общий процесс, за исключением того, что позиции и номера опорных соседних блоков различны, и флаг availableFlagLXN, указывающий, можно ли использовать кандидата предиктора вектора движения блока кодирования, и вектор mvLXN движения, опорный индекс refIdxN (N указывает A или B, аналогично применяется в дальнейшем) в этих процессах.Each of the spatial motion predictor candidate derivation blocks 321 and 421 extracts a motion vector predictor candidate from the blocks in the adjacent left side. This process outputs the motion vector predictor mvLXA with reference to the block inter-prediction information in the adjacent left side (A0 or A1 in FIG. 11), namely a flag indicating whether the motion vector predictor candidate, motion vector, reference index, or t can be used. .p., and adds the obtained mvLXA to the motion vector predictor candidate list mvpListLX (step S301 in FIG. 20). Note that X is 0 in L0 prediction and X is 1 in L1 prediction (similarly applies later). Next, motion vector predictor candidate derivation blocks 321 and 421 extract motion vector predictor candidates from the top neighbor block. This process outputs the mvLXB motion vector predictor with reference to the upper neighbor block inter prediction information (B0, B1, or B2 in FIG. 11), namely, a flag indicating whether the motion vector predictor candidate, the motion vector, the reference index, etc., can be used. .P. When the received mvLXA and the received mvLXB are not equal, the mvLXB is added to the motion vector predictor candidate list mvpListLX (step S302 in FIG. 20). The processes in steps S301 and S302 in FIG. 20 are presented as a general process, except that the positions and numbers of reference adjacent blocks are different, and the flag availableFlagLXN indicating whether a coding block motion vector predictor candidate can be used, and motion vector mvLXN, reference index refIdxN (N indicates A or B, similarly applied later) in these processes.

Затем каждый из блоков 322 и 422 получения кандидата временного предиктора вектора движения извлекает кандидата предиктора вектора движения из блока в изображении, имеющего временное отличие от целевого изображения. Этот процесс выводит флаг availableFlagLXCol, указывающий, можно ли использовать кандидат предиктора вектора движения блока кодирования изображения, имеющего временную разницу, и вектор mvLXCol движения, опорный индекс refIdxCol и справочный список listCol, и добавляет mvLXCol в список mvpListLX кандидатов предиктора вектора движения (этап S303 на фиг. 20).Then, each of the motion vector temporal predictor candidate derivation blocks 322 and 422 extracts a motion vector predictor candidate from a block in the picture having a temporal difference from the target picture. This process outputs an availableFlagLXCol flag indicating whether the motion vector predictor candidate of the image coding block having the time difference and the motion vector mvLXCol, the reference index refIdxCol and the lookup list listCol can be used, and adds mvLXCol to the motion vector predictor candidate list mvpListLX (step S303 in Fig. 20).

Следует отметить, что предполагается, что процессы блоков 322 и 422 получения кандидата временного предиктора вектора движения могут быть опущены в блоках последовательности (SPS), изображения (PPS) или сегмента.It should be noted that it is contemplated that the processes of temporal motion vector predictor candidate derivation blocks 322 and 422 may be omitted in Sequence (SPS), Picture (PPS), or Segment blocks.

Затем блоки 323 и 423 получения кандидатов предиктора вектора движения на основании истории добавляют кандидаты предиктора вектора движения на основании истории, зарегистрированных в списке HmvpCandList кандидатов предиктора вектора движения на основании истории, в список mvpListLX кандидатов предиктора вектора движения. (Этап S304 на фиг. 20). Со ссылкой на блок-схему алгоритма на фиг. 29 далее будет приведено подробное описание процедуры обработки регистрации на этапе S304.Then, the history-based motion vector predictor candidate derivers 323 and 423 add the history-based motion vector predictor candidates registered in the history-based motion vector predictor candidate list HmvpCandList to the motion vector predictor candidate list mvpListLX. (Step S304 in FIG. 20). With reference to the flowchart in FIG. 29, next, a detailed description of the registration processing procedure in step S304 will be given.

Затем пополнители 325 и 425 кандидатов предиктора вектора движения добавляют кандидата предиктора движения, имеющего предварительно определенное значение, такое как (0, 0), до тех пор, пока не будет удовлетворен список mvpListLX кандидатов предиктора вектора движения (S305 на фиг. 20).Then, the motion vector predictor candidate fillers 325 and 425 add a motion vector predictor candidate having a predetermined value such as (0, 0) until the motion vector predictor candidate list mvpListLX is satisfied (S305 in FIG. 20).

Блок получение режима нормального слияния (normal merge)Block receiving normal merge mode (normal merge)

Блок 302 получения режима нормального слияния на фиг. 18 включает в себя блок 341 получения кандидатов пространственного слияния, блок 342 получения кандидатов временного слияния, блок 344 получения кандидата усредненного слияния, блок 345 получения кандидатов слияния на основании истории, пополнитель 346 кандидатов слияния и селектор 347 кандидатов слияния.Normal merge mode acquisition block 302 in FIG. 18 includes a spatial merge candidate derivation unit 341, a temporal merge candidate derivation unit 342, an average merge candidate derivation unit 344, a history-based merge candidate derivation unit 345, a merge candidate replenisher 346, and a merge candidate selector 347.

Блок 402 получения режима нормального слияния на фиг. 24 включает в себя блок 441 получения кандидатов пространственного слияния, блок 442 получения кандидатов временного слияния, блок 444 получения кандидата усредненного слияния, блок 445 получения кандидатов слияния на основании истории и пополнитель 446 кандидатов слияния и селектор 447 кандидатов слияния.Normal merge mode acquisition block 402 in FIG. 24 includes a spatial merge candidate derivation unit 441, a temporal merge candidate derivation unit 442, an average merge candidate derivation unit 444, a history-based merge candidate derivation unit 445, and a merge candidate augmenter 446 and a merge candidate selector 447.

На фиг. 21 показана блок-схема алгоритма, иллюстрирующая процедуру процесса получения режима нормального слияния, имеющего функцию, общую для блока 302 получения режима нормального слияния устройства для кодирования изображений и блока 402 получения режима нормального слияния устройства для декодирования изображений согласно к варианту осуществления настоящего изобретения.In FIG. 21 is a flowchart illustrating a procedure for obtaining a normal fusion mode having a function common to the normal fusion mode obtaining unit 302 of the image encoding apparatus and the normal fusion mode obtaining unit 402 of the image decoding apparatus according to an embodiment of the present invention.

В дальнейшем в этом документе будут поэтапно описаны различные процессы. Следующее описание представляет собой случай, когда тип slice_type сегмента является сегментом B, если не указано иное. Однако настоящее изобретение также может быть применено к случаю P-сегмента. Отметим, что существует только L0 предсказание (Pred_L0) в качестве режима межкадрового предсказания, L1 предсказания (Pred_L1) или двунаправленное предсказания (Pred_BI) в случае, когда тип slice_type сегмента представляет собой P-сегмент. Соответственно, в этом случае можно пропустить процесс, связанный с L1.Later in this document, the various processes will be described step by step. The following description is for the case where the slice_type of the segment is segment B, unless otherwise noted. However, the present invention can also be applied to the case of a P segment. Note that there is only L0 prediction (Pred_L0) as the inter prediction mode, L1 prediction (Pred_L1) or bidirectional prediction (Pred_BI) in the case where the slice_type of the segment is a P-segment. Accordingly, in this case, the process associated with L1 can be skipped.

Блок 302 получения режима нормального слияния и блок 402 получения режима нормального слияния включают в себя список mergeCandList кандидатов слияния. Список mergeCandList кандидатов слияния имеет структуру списка и включает в себя область хранения, которая хранит в качестве элементов индекс слияния, указывающий местоположение в списке кандидатов слияния, и кандидата слияния, соответствующего этому индексу. Номер индекса слияния начинается с 0, и кандидат слияния сохраняется в области хранения списка mergeCandList кандидатов слияния. В последующей обработке кандидат слияния индекса i слияния, зарегистрированный в списке mergeCandList кандидатов слияния, будет представлен mergeCandList [i]. В настоящем варианте осуществления предполагается, что список mergeCandList кандидатов слияния может зарегистрировать, по меньшей мере, шесть кандидатов слияния (в качестве информации межкадрового предсказания). Кроме того, переменная numCurrMergeCand, указывающая количество кандидатов слияния, зарегистрированных в списке mergeCandList кандидатов слияния, устанавливается на 0.The normal merge mode getter 302 and the normal merge mode getter 402 include a list of mergeCandList merge candidates. The mergeCandList has a list structure and includes a storage area that stores as elements a merge index indicating a location in the merge candidate list and a merge candidate corresponding to that index. The merge index number starts at 0, and the merge candidate is stored in the merge candidate list mergeCandList storage area. In post-processing, the merge candidate of merge index i registered in the mergeCandList of merge candidates will be represented by mergeCandList[i]. In the present embodiment, it is assumed that the merge candidate list mergeCandList can register at least six merge candidates (as inter prediction information). In addition, the numCurrMergeCand variable indicating the number of merge candidates registered in the mergeCandList of merge candidates is set to 0.

Блок 341 получения кандидатов пространственного слияния и блок 441 получения кандидатов пространственного слияния выводят кандидата пространственного слияния каждого из блоков (B1, A1, B0, A0, B2 на фиг. 11) в соседнем блоке целевого блока в порядке B1, A1, B0, A0 и B2 из информации кодирования, хранящейся либо в памяти 111 хранения информации кодирования устройства для кодирования изображений, либо в памяти 205 хранения информации кодирования устройства для декодирования изображений, и затем регистрирует полученные кандидаты пространственного слияния в список mergeCandList кандидатов слияния (этап S401 на фиг. 21). Здесь будет определено N, обозначающее один из B1, A1, B0, A0, B2 или кандидата Col временного слияния. Элементы, которые должны быть выведены, включают в себя флаг availableFlagN, указывающий, может ли информация межкадрового предсказания блока N использоваться в качестве кандидата на пространственное слияние, опорный индекс refIdxL0N L0 и опорный индекс refIdxL1N L1 кандидата пространственного слияния N, флаг predFlagL0N L0 предсказания, указывающий, должно ли выполняться L0 предсказание, флаг predFlagL1N L1 предсказания, указывающий, должно ли выполняться L1 предсказание, вектор mvL0N движения L0 и вектор mvL1N движения L1. Однако так как кандидат слияния в настоящем варианте осуществления выводится без ссылки на информацию межкадрового предсказания блока, включенного в целевой блок кодирования, не может быть получен кандидат пространственного слияния, использующий информацию межкадрового предсказания блока, включенного в целевой блок кодирования.The spatial merge candidate derivation unit 341 and the spatial merge candidate derivation unit 441 output a spatial merge candidate of each of the blocks (B1, A1, B0, A0, B2 in FIG. 11) in the neighboring block of the target block in the order of B1, A1, B0, A0, and B2 from encoding information stored in either the encoding information storage memory 111 of the image encoding apparatus or the encoding information storage memory 205 of the image decoding apparatus, and then registers the obtained spatial merge candidates into the mergeCandList merge candidate list (step S401 in FIG. 21) . Here, N will be defined denoting one of B1, A1, B0, A0, B2, or a temporary merge candidate Col. Items to be output include an availableFlagN flag indicating whether inter-frame prediction information of block N can be used as a spatial merge candidate, reference index refIdxL0N L0 and reference index refIdxL1N L1 of spatial merge candidate N, prediction flag predFlagL0N L0 indicating whether L0 prediction should be performed, a prediction flag predFlagL1N L1 indicating whether L1 prediction should be performed, an L0 motion vector mvL0N, and an L1 motion vector mvL1N. However, since the merge candidate in the present embodiment is output without referring to the inter prediction information of the block included in the encoding target block, a spatial merge candidate using the inter prediction information of the block included in the encoding target block cannot be obtained.

Затем блок 342 получения кандидатов временного слияния и блок 442 получения кандидатов временного слияния выводят кандидатов временного слияния из изображений, имеющих временную разницу, и регистрируют полученные временные кандидаты слияния в списке mergeCandList кандидатов слияния (этап S402 на фиг. 21). Элементы, которые должны быть получены, включают в себя флаг availableFlagCol, указывающий, можно ли использовать кандидата временного слияния, флаг predFlagL0Col L0 предсказания, указывающий, должно ли выполняться L0 предсказание кандидата временного слияния, флаг predFlagL1Col L1-предсказания, указывающий, должно быть выполнено L1 предсказание, вектор mvL0Col движения L0 и вектор mvL1Col движения L1.Then, the temporary merge candidate obtaining unit 342 and the temporary merge candidate obtaining unit 442 output the temporary merge candidates from the images having the time difference, and register the obtained temporary merge candidates in the merge candidate list mergeCandList (step S402 in FIG. 21). The elements to be received include an availableFlagCol flag indicating whether a temporary merge candidate can be used, a predFlagL0Col L0 prediction flag indicating whether an L0 temporary merge candidate prediction should be performed, a L1 prediction flag predFlagL1Col indicating whether L1 should be performed. prediction, L0 motion vector mvL0Col and L1 motion vector mvL1Col.

Отметим, что предполагается, что процессы блоков 342 и 442 получения кандидатов временного слияния могут быть опущены в блоках последовательности (SPS), изображения (PPS) или сегмента.Note that it is contemplated that the processes of temporally merge candidate derivation blocks 342 and 442 may be omitted in Sequence (SPS), Picture (PPS), or Segment blocks.

Затем блок 345 получения кандидатов слияния на основании истории и блок 445 получения кандидатов слияния на основании истории регистрируют кандидатов предиктора вектора движения на основании истории, зарегистрированных в списке HmvpCandList кандидатов предикторов вектора движения на основании истории, в списке list mergeCandList кандидатов слияния (этап S403 на фиг. 21).Next, the history-based merge candidate acquisition unit 345 and the history-based merge candidate acquisition unit 445 register the history-based motion vector predictor candidates registered in the history-based motion vector predictor candidate list HmvpCandList in the merge candidate list mergeCandList (step S403 in FIG. .21).

В случае, когда количество кандидатов numCurrMergeCand слияния, зарегистрированных в списке mergeCandList кандидатов слияния, меньше, чем максимальное количество кандидатов MaxNumMergeCand слияния, получают кандидат слияния на основании истории с количеством кандидатов numCurrMergeCand слияния, зарегистрированных в списке mergeCandList кандидатов слияния, ограниченным максимальным количеством кандидатов MaxNumMergeCand слияния и затем регистрируется в списке mergeCandList кандидатов слияния.In the case where the number of merge candidates numCurrMergeCand registered in the merge candidate list mergeCandList is less than the maximum number of merge candidates MaxNumMergeCand, obtain a merge candidate based on history with the number of merge candidates numCurrMergeCand registered in the merge candidate list mergeCandList limited by the maximum number of merge candidates MaxNumMergeCand and then registered in the mergeCandList of merge candidates.

Затем блок 344 получения кандидата усредненного слияния и блок 444 получения кандидата усредненного слияния выводят кандидата усредненного слияния из списка mergeCandList кандидатов слияния и добавляют полученный кандидат усредненного слияния в список mergeCandList кандидатов слияния (этап S404 на фиг. 21).Then, the average merge candidate derivation unit 344 and the average merge candidate acquisition unit 444 output the average merge candidate from the mergeCandList of merge candidates, and add the resulting average merge candidate to the mergeCandList of merge candidates (step S404 in FIG. 21).

В случае, когда количество кандидатов numCurrMergeCand слияния, зарегистрированных в списке mergeCandList кандидатов слияния, меньше, чем максимальное количество кандидатов MaxNumMergeCand слияния, получают кандидат усредненного слияния с количеством кандидатов numCurrMergeCand слияния, зарегистрированных в списке mergeCandList кандидатов слияния, которое ограничено до максимального числа кандидатов MaxNumMergeCand слияния и затем зарегистрируют в списке mergeCandList кандидатов слияния.In the case where the number of merge candidates numCurrMergeCand registered in the merge candidate list mergeCandList is less than the maximum number of merge candidates MaxNumMergeCand, an average merge candidate is obtained with the number of merge candidates numCurrMergeCand registered in the merge candidate list mergeCandList which is limited to the maximum number of merge candidates MaxNumMergeCand and then register in the list mergeCandList merge candidates.

Здесь кандидат усредненного слияния является новым кандидатом слияния, включающий в себя вектор движения, полученный посредством усреднения векторов движения первого кандидата слияния и второго кандидата слияния, зарегистрированных в списке mergeCandList кандидатов слияния для каждого из L0 предсказания и L1 предсказания.Here, the average merge candidate is a new merge candidate including a motion vector obtained by averaging the motion vectors of the first merge candidate and the second merge candidate registered in the merge candidate list mergeCandList for each of prediction L0 and prediction L1.

Затем в пополнителе 346 кандидатов слияния и пополнителе 446 кандидатов слияния, в случае, когда количество numCurrMergeCand кандидатов слияния, зарегистрированных в списке mergeCandList кандидатов слияния, меньше, чем максимальное количество кандидатов MaxNumMergeCand слияния, получают дополнительный кандидат слияния с количеством кандидатов numCurrMergeCand слияния, зарегистрированных в списке mergeCandList кандидатов слияния, ограниченным максимальным количеством кандидатов MaxNumMergeCand слияния и затем регистрируют в списке mergeCandList кандидатов слияния (этап S405 на фиг. 21). В P-сегменте кандидат слияния, имеющий вектор движения значения (0, 0) и режим предсказания L0 предсказания (Pred_L0), добавляется с максимальным количеством кандидатов MaxNumMergeCand слияния в качестве верхнего предела. В B-сегменте добавляется кандидат слияния, имеющий режим предсказания с двунаправленным предсказанием (Pred_BI) и вектор движения значения (0, 0). Опорный индекс на момент добавления кандидата слияния отличается от опорного индекса, который уже был добавлен.Then, in merge candidate adder 346 and merge candidate adder 446, in the case where the number numCurrMergeCand of merge candidates registered in the merge candidate list mergeCandList is less than the maximum number of merge candidates MaxNumMergeCand, an additional merge candidate with the number of merge candidates numCurrMergeCand registered in the list is obtained. mergeCandList of merge candidates limited by the maximum number of merge candidates MaxNumMergeCand and then registered in the merge candidate list mergeCandList (step S405 in FIG. 21). In the P-segment, a merge candidate having a motion vector of value (0, 0) and a prediction prediction mode L0 (Pred_L0) is added with the maximum number of merge candidates MaxNumMergeCand as an upper limit. In the B-segment, a merge candidate having a bidirectional prediction mode (Pred_BI) and a motion vector of value (0, 0) is added. The pivot index at the time the merge candidate was added is different from the pivot index that was already added.

Затем селектор 347 кандидатов слияния и селектор 447 кандидатов слияния выбирают кандидата слияния из числа кандидатов слияния, зарегистрированных в списке mergeCandList кандидатов слияния. Селектор 347 кандидатов слияния на стороне кодирования вычисляет величину кода и величину искажения и, таким образом, выбирает кандидата слияния, и затем поставляет индекс слияния, указывающий выбранного кандидата слияния, и информацию межкадрового предсказания кандидата слияния в блок 306 предсказания компенсации движения через определитель 305 режима межкадрового предсказания. В отличие от этого селектор 447 кандидатов слияния на стороне декодирования выбирает кандидата слияния на основании декодированного индекса слияния и поставляет выбранного кандидата слияния в блок 406 предсказания компенсации движения.Then, the merge candidate selector 347 and the merge candidate selector 447 select the merge candidate from among the merge candidates registered in the merge candidate list mergeCandList. The coding-side merge candidate selector 347 calculates a code amount and a distortion amount, and thus selects a merge candidate, and then supplies a merge index indicating the selected merge candidate and inter frame prediction information of the merge candidate to the motion compensation predictor 306 via the inter frame mode determiner 305 predictions. In contrast, the merge candidate selector 447 on the decoding side selects the merge candidate based on the decoded merge index, and supplies the selected merge candidate to the motion compensation predictor 406 .

Обновление списка кандидатов предиктора вектора движения на основании историиUpdate Motion Vector Predictor Candidate List Based on History

Далее будет подробно описан способ инициализации и обновления списка HmvpCandList кандидатов предиктора вектора движения на основании истории, предоставленного в памяти 111 хранения информации кодирования на стороне кодирования и памяти 205 хранения информации кодирования на стороне декодирования. На фиг. 26 показана блок-схема алгоритма, иллюстрирующая процедуру инициализации/обновления списка кандидатов предиктора вектора движения на основании истории.Next, the method of initializing and updating the motion vector predictor candidate list HmvpCandList based on the history provided in the encoding information storage memory 111 on the encoding side and the encoding information storage memory 205 on the decoding side will be described in detail. In FIG. 26 is a flowchart illustrating a procedure for initializing/updating a motion vector predictor candidate list based on history.

В настоящем варианте осуществления список HmvpCandList кандидатов предиктора вектора движения на основании истории обновляется в памяти 111 хранения информации кодирования и памяти 205 хранения информации кодирования. В качестве альтернативы в блоке 102 межкадрового предсказания и блоке 203 межкадрового предсказания может быть предусмотрен блок обновления списка кандидатов предиктора вектора движения на основании истории для обновления списка HmvpCandList кандидатов предиктора вектора движения на основании истории.In the present embodiment, the motion vector predictor candidate list HmvpCandList based on the history is updated in the encoding information storage memory 111 and the encoding information storage memory 205 . Alternatively, in the inter prediction block 102 and the inter prediction block 203, a history-based motion vector predictor candidate list updater may be provided to update the history-based motion vector predictor candidate list HmvpCandList.

В заголовке сегмента выполняются начальные установки списка HmvpCandList кандидатов предиктора вектора движения на основании истории. На стороне кодирования список HmvpCandList кандидатов предиктора вектора движения на основании истории обновляется в случае, когда определитель 105 способа предсказания выбирает режим предиктора нормального вектора движения или режим нормального слияния. На стороне декодирования список HmvpCandList кандидатов предиктора вектора движения на основании истории обновляется в случае, когда информация предсказания, декодированная блоком 201 декодирования битовой строки, является режимом предиктора нормального вектора движения или режимом нормального слияния.In the segment header, the history-based motion vector predictor candidate list HmvpCandList is initialized. On the encoding side, the history-based motion vector predictor candidate list HmvpCandList is updated in the case that the prediction method determiner 105 selects the normal motion vector predictor mode or the normal merge mode. On the decoding side, the history-based motion vector predictor candidate list HmvpCandList is updated in the case where the prediction information decoded by the bit string decoding section 201 is the normal motion vector predictor mode or the normal merge mode.

Информация межкадрового предсказания, используемая во время выполнения межкадрового предсказания в режиме предиктора нормального вектора движения или режиме нормального слияния, должна быть зарегистрирована в списке HmvpCandList кандидатов предиктора вектора движения на основании истории в качестве кандидата hMvpCand информации межкадрового предсказания. Кандидат hMvpCand информации межкадрового предсказания включает в себя опорный индекс refIdxL0 для L0 и опорный индекс refIdxL1 для L1, флаг predFlagL0 предсказания, указывающий, должно ли выполняться L0 предсказание, флаг predFlagL1 предсказания, указывающий, должно ли выполняться L1 предсказание, вектор mvL0 движения для L0 и вектор mvL1 движения для L1.The inter prediction information used at the time of performing inter prediction in the normal motion vector predictor mode or normal merge mode needs to be registered in the history-based motion vector predictor candidate list HmvpCandList as the inter prediction information candidate hMvpCand. The inter prediction information candidate hMvpCand includes a reference index refIdxL0 of L0 and a reference index refIdxL1 of L1, a prediction flag predFlagL0 indicating whether L0 prediction should be performed, a prediction flag predFlagL1 indicating whether L1 prediction should be performed, a motion vector mvL0 for L0, and motion vector mvL1 for L1.

В случае наличия информации межкадрового предсказания, имеющей то же значение, что и кандидат hMvpCand информации межкадрового предсказания среди элементов (то есть информация межкадрового предсказания), зарегистрированных в списке HmvpCandList кандидатов предиктора вектора движения на основании истории, предоставленном в памяти 111 хранения информации кодирования на стороне кодирования и памяти 205 хранения информации кодирования на стороне декодирования, элемент будет удален из списка HmvpCandList кандидатов предиктора вектора движения на основании истории. Напротив, в случае отсутствия информации межкадрового предсказания, имеющей то же значение, что и кандидат hMvpCand информации межкадрового предсказания, элемент заголовка списка HmvpCandList кандидатов предиктора вектора движения на основании истории будет удален и кандидат hMvpCand информации межкадрового предсказания будет добавлен в конец списка HmvpCandList кандидатов предиктора вектора движения на основании истории.In the case of having inter prediction information having the same value as an inter prediction information candidate hMvpCand among the elements (i.e., inter prediction information) registered in the history-based motion vector predictor candidate list HmvpCandList provided in the side encoding information storage memory 111 encoding and encoding information storage 205 on the decoding side, the element will be removed from the motion vector predictor candidate list HmvpCandList based on the history. In contrast, in the case of no inter prediction information having the same value as the inter prediction information candidate hMvpCand, the header element of the history-based motion vector predictor candidate list HmvpCandList will be deleted, and the inter prediction information candidate hMvpCand will be added to the end of the vector predictor candidate list HmvpCandList movements based on history.

Количество элементов списка HmvpCandList кандидатов предиктора вектора движения, предоставленных в памяти 111 хранения информации кодирования на стороне кодирования и в памяти 205 хранения информации кодирования на стороне декодирования настоящего изобретения, установлено равным шести.The number of elements of the motion vector predictor candidate list HmvpCandList provided in the coding information storage 111 on the coding side and the coding information storage 205 on the decoding side of the present invention is set to six.

Во-первый, список HmvpCandList кандидатов предиктора вектора движения на основании истории инициализируется в блоках сегментов (этап S2101 на фиг. 26). Все элементы списка HmvpCandList кандидатов предиктора вектора движения на основании истории очищаются в начале сегмента и количество NumHmvpCand (текущее количество кандидатов) кандидатов предиктора вектора движения на основании истории, зарегистрированных в списке HmvpCandList кандидатов предиктора вектора движения, установлено на 0.First, the history-based motion vector predictor candidate list HmvpCandList is initialized in segment blocks (step S2101 in FIG. 26). All elements of the history-based motion vector predictor candidate list HmvpCandList are cleared at the beginning of the segment, and the number NumHmvpCand (current number of candidates) of the history-based motion vector predictor candidates registered in the motion vector predictor candidate list HmvpCandList is set to 0.

Хотя инициализация списка HmvpCandList кандидатов предиктора вектора движения на основании истории должна выполняться в блоках сегментов (первый блок кодирования сегмента), инициализация может выполняться в блоках изображений, плиток или строк блока дерева.Although the initialization of the history-based motion vector predictor candidate list HmvpCandList must be performed in segment blocks (the first segment coding block), the initialization may be performed in image blocks, tiles, or rows of the tree block.

Затем для каждого из блоков кодирования в сегменте повторно выполняется следующий процесс обновления списка HmvpCandList кандидатов предиктора вектора движения на основании истории (этапы S2102-S2107 на фиг. 26).Then, for each of the coding blocks in the segment, the following process of updating the motion vector predictor candidate list HmvpCandList based on the history is repeated (steps S2102 to S2107 in FIG. 26).

Прежде всего, в блоках кодирования выполняются начальные установка. Флаг identityCandExist, указывающий наличие идентичного кандидата, устанавливается в значение FALSE (ложно), целевой индекс removeIdx удаления, указывающий удаление целевого кандидата, устанавливается на 0 (этап S2103 на фиг. 26).First of all, initial settings are made in the coding blocks. The identityCandExist flag indicating the presence of an identical candidate is set to FALSE, the removal target index removeIdx indicating removal of the target candidate is set to 0 (step S2103 in FIG. 26).

Определяется наличие кандидата hMvpCand информации межкадрового предсказания, который нужно зарегистрировать (этап S2104 на фиг. 26). В случае, когда определитель 105 способа предсказания на стороне кодирования определяет режим предиктора нормального вектора движения или режим нормального слияния или, когда блок 201 декодирования битовой строки на стороне декодирования выполняет декодирование как режим предиктора нормального вектора движения или режим нормального слияния, устанавливается соответствующая информация межкадрового предсказания как кандидат hMvpC информации межкадрового предсказания и подлежит регистрации. В случае, когда определитель 105 способа предсказания на стороне кодирования определяет режим внутрикадрового предсказания, режим предиктора вектора движения подблока или режим слияния подблоков или, в случае, когда блок 201 декодирования битовой строки на стороне декодирования выполняет декодирование как режиме внутрикадрового предсказания, в режиме предсказания вектора движения подблока или в режиме слияния подблоков не будет выполняться процесс обновления списка HmvpCandList кандидатов предиктора вектора движения на основании истории, и для регистрации не будет ни одного кандидата hMvpCand информации межкадрового предсказания. В случае отсутствия кандидата hMvpCand информации межкадрового предсказания, подлежащего регистрации, этапы S2105-S2106 будут пропущены (НЕТ на этапе S2104 на фиг. 26). В случае наличия кандидата hMvpCand информации межкадрового предсказания, который должен быть зарегистрирован, будет выполняться процесс этапа S2105 и более поздних (ДА на этапе S2104 на фиг. 26).The existence of an inter prediction information candidate hMvpCand to be registered is determined (step S2104 in FIG. 26). In the case where the encoding side prediction method determiner 105 determines the normal motion vector predictor mode or the normal merge mode, or when the bit string decoding section 201 on the decoding side performs decoding as the normal motion vector predictor mode or the normal merge mode, the corresponding inter prediction information is set. as an hMvpC candidate of inter-frame prediction information and is subject to registration. In the case where the encoding-side prediction method determiner 105 determines the intra-prediction mode, the sub-block motion vector predictor mode, or the sub-block merge mode, or, in the case that the bit-string decoding section 201 on the decoding side performs decoding as the intra-prediction mode, the vector prediction mode no motion vector predictor candidate list HmvpCandList update process based on the history, and no inter prediction information hMvpCand candidate for registration will be performed. If there is no inter prediction information candidate hMvpCand to be registered, steps S2105 to S2106 will be skipped (NO in step S2104 in FIG. 26). If there is an inter prediction information candidate hMvpCand to be registered, the process of step S2105 and later will be executed (YES in step S2104 in FIG. 26).

Затем определяется, включают ли в себя отдельные элементы списка HmvpCandList кандидатов предиктора вектора движения на основании истории элемент (информацию межкадрового предсказания), имеющий то же значение, что и кандидат hMvpCand информации межкадрового предсказания для регистрации, то есть существует ли идентичный элемент (этап S2105 на фиг. 26). На фиг. 27 показана блок-схема алгоритма процедуры обработки подтверждения идентичного элемента. В случае, когда значение количества кандидатов NumHmvpCand предиктора вектора движения на основании истории равно 0 (НЕТ на этапе этап S2121 на фиг. 27), список HmvpCandList кандидатов предиктора вектора движения на основании истории пуст, и идентичный кандидат отсутствует. Соответственно, этапы S2122-S2125 на фиг. 27 будут пропущены, что завершит процедуру обработки подтверждения идентичного элемента. В случае, когда значение числа NumHmvpCand кандидатов предиктора вектора движения на основании истории больше 0 (ДА на этапе S2121 на фиг. 27), процесс этапа S2123 будет повторяться с индекса hMvpIdx предиктора вектора движения на основании истории от 0 до NumHmvpCand-1 (этапы S2122-S2125 на фиг. 27). Сначала выполняется сравнение на предмет того, идентичен ли элемент hMvpIdx-th HmvpCandList [hMvpIdx], отсчитываемый от 0 в списке кандидатов предиктора вектора движения на основании истории, кандидату hMvpCand информации межкадрового предсказания (этап S2123 на фиг. 27). В случае, когда они идентичны (ДА на этапе S2123 на фиг. 27), флаг identityCandExist, указывающий наличие идентичного кандидата, устанавливается в значение TRUE, и целевой индекс removeIdx удаления, указывающий позицию удаляемого элемента, устанавливается в текущее значение индекса hMvpIdx предиктора вектора движения на основании истории, и обработка подтверждения идентичного элемента будет завершена. В случае, когда они не идентичны (НЕТ на этапе S2123 на фиг. 27), hMvpIdx увеличивается на единицу. В случае, когда индекс hMvpIdx предиктора вектора движения на основании истории меньше или равен NumHmvpCand-1, выполняется обработка на этапе S2123 и позже.It is then determined whether the individual elements of the history-based motion vector predictor candidate list HmvpCandList include an element (inter prediction information) having the same value as the inter prediction information candidate hMvpCand for registration, that is, whether an identical element exists (step S2105 in Fig. 26). In FIG. 27 is a flowchart of the same item confirmation processing procedure. In the case where the history-based motion vector predictor candidate number NumHmvpCand value is 0 (NO in step S2121 in FIG. 27), the history-based motion vector predictor candidate list HmvpCandList is empty and there is no identical candidate. Accordingly, steps S2122-S2125 in FIG. 27 will be skipped, which will complete the identical element confirmation processing procedure. In the case where the value of the history-based motion vector predictor candidate number NumHmvpCand is greater than 0 (YES in step S2121 in FIG. 27), the process of step S2123 will be repeated from the history-based motion vector predictor index hMvpIdx from 0 to NumHmvpCand-1 (steps S2122 -S2125 in Fig. 27). First, a comparison is made as to whether the 0-based element hMvpIdx-th HmvpCandList [hMvpIdx] in the history-based motion vector predictor candidate list is identical to the inter prediction information candidate hMvpCand (step S2123 in FIG. 27). In the case that they are identical (YES in step S2123 in FIG. 27), the identityCandExist flag indicating the existence of an identical candidate is set to TRUE, and the removal target index indicating the position of the element to be removed is set to the current value of the motion vector predictor index hMvpIdx based on history, and identical item confirmation processing will be completed. In the case where they are not identical (NO in step S2123 in FIG. 27), hMvpIdx is incremented by one. In a case where the motion vector predictor index based on history hMvpIdx is less than or equal to NumHmvpCand-1, processing is performed in step S2123 and later.

Возвращаясь к блок-схеме алгоритма на фиг. 26, выполняется процесс сдвига и добавления элементов списка HmvpCandList кандидатов предиктора вектора движения на основании истории (этап S2106 на фиг. 26). Фиг. 28 является блок-схемой алгоритма процедуры обработки сдвига/добавления элементов в списке HmvpCandList кандидатов предиктора вектора движения на основании истории на этапе S2106 на фиг. 26. Сначала определяется, следует ли добавлять новый элемент после удаления элемента, хранящегося в списке HmvpCandList кандидатов предиктора вектора движения на основании истории, или добавить новый элемент, не удаляя элемент. В частности, выполняется сравнение на предмет того, является ли флаг identityCandExist, указывающий наличие идентичного кандидата TRUE, или равен ли NumHmvpCand 6 (этап S2141 на фиг. 28). В случае, когда одно из условий, при которых флаг identityCandExist, указывающий наличие идентичного кандидата, имеет значение TRUE или то, что текущее количество кандидатов NumHmvpCand равно 6, выполняется (ДА на этапе S2141 на фиг. 28), элемент, сохраненный в списке HmvpCandList кандидатов предиктора вектора движения на основании истории удаляется, и после этого будет добавлен новый элемент. Начальное значение индекса i устанавливается на значение removeIdx + 1. Процесс сдвига элемента на этапе S2143 повторяется от этого начального значения до NumHmvpCand. (этапы S2142-S2144 на фиг. 28). Путем копирования элементов HmvpCandList [i] в HmvpCandList [i - 1] элементы сдвигаются вперед (этап S2143 на фиг. 28) и i увеличивается на единицу (этапы S2142-S2144 на фиг. 28). Затем кандидат hMvpCand информации межкадрового предсказания добавляется в (NumHmvpCand-1) HmvpCandList [NumHmvpCand-1], отсчитывая от 0, что соответствует концу списка кандидатов предиктора вектора движения на основании истории (этап S2145 на фиг. 28) и процесс сдвига/добавления элементов списка HmvpCandList кандидатов предиктора вектора движения на основании истории будет завершен. Напротив, в случае, когда ни одно из условий, при которых флаг identityCandExist, указывающий наличие идентичного кандидата, имеет значение TRUE и что NumHmvpCand равно 6, не удовлетворяется (НЕТ на этапе S2141 на фиг. 28), кандидат hMvpCand информации межкадрового предсказания будет добавлен в конец списка кандидатов предиктора вектора движения на основании истории без удаления элемента, хранящегося в списке HmvpCandList кандидатов предиктора вектора движения на основании истории (этап S2146 на фиг. 28). Здесь концом списка кандидатов предиктора вектора движения на основании истории является NumHmvpCand-th HmvpCandList [NumHmvpCand], отсчитываемый от 0. Более того, NumHmvpCand увеличивается на единицу и процесс сдвига и добавления элементов списка HmvpCandList кандидатов предиктора вектора движения на основании истории завершен.Returning to the flowchart of the algorithm in FIG. 26, a process of shifting and adding elements of the motion vector predictor candidate list HmvpCandList based on the history is performed (step S2106 in FIG. 26). Fig. 28 is a flowchart of the shift/add processing procedure of elements in the history-based motion vector predictor candidate list HmvpCandList in step S2106 in FIG. 26. First, it is determined whether to add a new element after deleting the element stored in the history-based motion vector predictor candidate list HmvpCandList, or to add a new element without deleting the element. Specifically, a comparison is made as to whether the identityCandExist flag indicating the existence of an identical candidate is TRUE or NumHmvpCand is equal to 6 (step S2141 in FIG. 28). In the case where one of the conditions under which the identityCandExist flag indicating the presence of an identical candidate is TRUE or that the current number of candidates NumHmvpCand is 6 is satisfied (YES in S2141 in FIG. 28), the item stored in the HmvpCandList history-based motion vector predictor candidates are removed and a new element is added afterwards. The initial value of index i is set to removeIdx + 1. The element shifting process in step S2143 is repeated from this initial value to NumHmvpCand. (steps S2142-S2144 in FIG. 28). By copying the elements of HmvpCandList[i] to HmvpCandList[i - 1], the elements are shifted forward (step S2143 in FIG. 28) and i is incremented (steps S2142-S2144 in FIG. 28). Then, the inter prediction information candidate hMvpCand is added to (NumHmvpCand-1) HmvpCandList [NumHmvpCand-1] counting from 0, which corresponds to the end of the history-based motion vector predictor candidate list (step S2145 in FIG. 28), and the list shift/add process HmvpCandList of motion vector predictor candidates based on history will be completed. On the contrary, in the case where none of the conditions under which the identityCandExist flag indicating the existence of an identical candidate is TRUE and that NumHmvpCand is equal to 6 is satisfied (NO in step S2141 in FIG. 28), the inter prediction information candidate hMvpCand will be added to the end of the history-based motion vector predictor candidate list without deleting an entry stored in the history-based motion vector predictor candidate list HmvpCandList (step S2146 in FIG. 28). Here, the end of the history-based motion vector predictor candidate list is NumHmvpCand-th HmvpCandList [NumHmvpCand], counted from 0. Moreover, NumHmvpCand is incremented by one, and the process of shifting and adding elements of the history-based motion vector predictor candidate list HmvpCandList is completed.

На фиг. 31 показан вид, иллюстрирующий пример процесса обновления списка кандидатов предиктора вектора движения на основании истории. В случае, когда новый элемент должен быть добавлен в список HmvpCandList кандидатов предиктора вектора движения на основании истории, в котором уже зарегистрировано шесть элементов (информация межкадрового предсказания), список HmvpCandList кандидатов предиктора вектора движения на основании истории сравнивается с новой информацией межкадрового предсказания в порядке с начального элемента (фиг. 31A). Когда новый элемент имеет то же значение, что и третий элемент HMVP2 из заголовка списка HmvpCandList кандидатов предиктора вектора движения на основании истории, элемент HMVP2 удаляется из списка HmvpCandList кандидатов предиктора вектора движения на основании истории и элементы HMVP3-HMVP5 сдвигаются (копируются) один за другим вперед, и новый элемент добавляется в конец списка HmvpCandList кандидатов предиктора вектора движения на основании истории (фиг. 31B) для завершения обновления списка HmvpCandList кандидатов предиктора вектора движения на основании истории (фиг. 31C).In FIG. 31 is a view illustrating an example of a process for updating a motion vector predictor candidate list based on history. In the case where a new element is to be added to the history-based motion vector predictor candidate list HmvpCandList in which six elements (inter prediction information) are already registered, the history-based motion vector predictor candidate list HmvpCandList is compared with the new inter prediction information in order of initial element (Fig. 31A). When the new element has the same value as the third element HMVP2 from the header of the history-based motion vector predictor candidate list HmvpCandList, the HMVP2 element is removed from the history-based motion vector predictor candidate list HmvpCandList, and the elements HMVP3-HMVP5 are shifted (copied) one by one. forward, and a new element is added to the end of the history-based motion vector predictor candidate list HmvpCandList (FIG. 31B) to complete updating the history-based motion vector predictor candidate list HmvpCandList (FIG. 31C).

Процесс получения кандидатов предиктора вектора движения на основании историиThe Process of Deriving Motion Vector Predictor Candidates Based on History

Далее будет подробно описан способ получения кандидата предиктора вектора движения на основании истории из списка HmvpCandList кандидатов предиктора вектора движения на основании истории. Это соответствует процедуре обработки этапа S304 на фиг. 20, касающейся общей обработки, выполняемой блоком 323 получения кандидата предиктора вектора движения на основании истории блока 301 получения режима предиктора нормального вектора движения на стороне кодирования и блоком 423 получения кандидата предиктора вектора движения на основании истории из блока 401 получения режима предиктора нормального вектора движения на стороне декодирования. Фиг. 29 является блок-схемой последовательности операций, иллюстрирующей процедуру обработки получения кандидата предиктора вектора движения на основании истории.Next, a method for obtaining a history-based motion vector predictor candidate from the history-based motion vector predictor candidate list HmvpCandList will be described in detail. This corresponds to the processing procedure of step S304 in FIG. 20 regarding the general processing performed by the motion vector predictor candidate obtaining unit 323 based on the history of the normal motion vector predictor mode obtaining unit 301 on the encoding side and the motion vector predictor candidate obtaining unit 423 based on the history from the normal motion vector predictor mode obtaining unit 401 on the side. decoding. Fig. 29 is a flowchart illustrating a processing procedure for obtaining a motion vector predictor candidate based on history.

В случае, когда текущее количество кандидатов numCurrMvpCand предиктора вектора движения больше или равно максимальному количеству элементов списка mvpListLX кандидатов предиктора вектора движения (здесь 2) или количество кандидатов NumHmvpCand предиктора вектора движения на основании истории равно 0 (НЕТ на этапе S2201 на фиг. 29), процесс этапов S2202-S2209 на фиг. 29 будет опущен, и процедура обработки получения кандидата предиктора вектора движения на основании истории будет завершена. В случае, когда число numCurrMvpCand текущих кандидатов предиктора вектора движения меньше 2, что является максимальным числом элементов списка mvpListLX кандидатов предиктора вектора движения, и, в случае, когда значение числа NumHmvpCand кандидатов предиктора вектора движения на основании истории больше 0 (ДА на этапе S2201 на фиг. 29), будет выполняться процесс этапов S2202-S2209 на фиг. 29.In the case where the current number of motion vector predictor candidates numCurrMvpCand is greater than or equal to the maximum number of elements of the motion vector predictor candidate list mvpListLX (here 2) or the number of motion vector predictor candidates NumHmvpCand based on history is 0 (NO in step S2201 in FIG. 29), the process of steps S2202-S2209 in FIG. 29 will be omitted, and the history-based motion vector predictor candidate acquisition process will be completed. In the case where the number numCurrMvpCand of the current motion vector predictor candidates is less than 2, which is the maximum number of elements of the motion vector predictor candidate list mvpListLX, and, in the case where the value of the number NumHmvpCand of the history-based motion vector predictor candidates is greater than 0 (YES in step S2201 in 29), the process of steps S2202-S2209 in FIG. 29.

Затем процесс этапов S2203-S2208 на фиг. 29 повторяется до тех пор, пока индекс i не станет равным от 1 до меньшего значения из 4, или до числа кандидатов numCheckedHMVPCand предиктора вектора движения на основании истории (этапы S2202-S2209 на фиг. 29). В случае, когда текущее количество кандидатов numCurrMvpCand предиктора вектора движения больше или равно 2, что является максимальным количеством элементов списка mvpListLX кандидатов предиктора вектора движения (НЕТ на этапе S2203 на фиг. 29), этапы процесса S2204-S2209 на фиг. 29 будут опущены, и процедура обработки получения кандидата предиктора вектора движения на основании истории будет завершена. В случае, когда текущее количество кандидатов numCurrMvpCand предиктора вектора движения меньше 2, что является максимальным количеством элементов в списке mvpListLX кандидатов предиктора вектора движения (ДА на этапе S2203 на фиг. 29), будет выполняться процесс на этапе S2204 и позже на фиг. 29.Then, the process of steps S2203-S2208 in FIG. 29 is repeated until index i is 1 to the lower of 4, or up to the number of history-based motion vector predictor candidates numCheckedHMVPCand (steps S2202-S2209 in FIG. 29). In the case where the current number of motion vector predictor candidates numCurrMvpCand is greater than or equal to 2, which is the maximum number of elements of the motion vector predictor candidate list mvpListLX (NO in step S2203 in FIG. 29), process steps S2204 to S2209 in FIG. 29 will be omitted, and the history-based motion vector predictor candidate acquisition process will be completed. In the case where the current number of motion vector predictor candidates numCurrMvpCand is less than 2, which is the maximum number of elements in the motion vector predictor candidate list mvpListLX (YES in S2203 in FIG. 29), the process in S2204 and later in FIG. 29.

Затем процесс на этапах S2205-S2207 выполняется для случаев, когда Y равно 0, и Y равно 1 (L0 и L1) (этапы S2204-S2208 на фиг. 29). В случае, когда текущее количество кандидатов numCurrMvpCand предиктора вектора движения больше или равно 2, что является максимальным количеством элементов списка mvpListLX кандидатов предиктора вектора движения (НЕТ на этапе S2205 на фиг. 29), процесс этапов S2206-S2209 на фиг. 29 будут опущены, и процедура обработки получения кандидата предиктора вектора движения на основании истории будет завершена. В случае, когда текущее количество кандидатов numCurrMvpCand предиктора вектора движения меньше 2, что является максимальным количеством элементов в списке mvpListLX кандидатов предиктора вектора движения (ДА на этапе S2205 на фиг. 29), будет выполняться процесс на этапе S2206 и позже на фиг. 29.Then, the process in steps S2205 to S2207 is performed for the cases where Y is 0 and Y is 1 (L0 and L1) (steps S2204 to S2208 in FIG. 29). In the case where the current number of motion vector predictor candidates numCurrMvpCand is greater than or equal to 2, which is the maximum number of elements of the motion vector predictor candidate list mvpListLX (NO in step S2205 in FIG. 29), the process of steps S2206 to S2209 in FIG. 29 will be omitted, and the history-based motion vector predictor candidate acquisition process will be completed. In the case where the current number of motion vector predictor candidates numCurrMvpCand is less than 2, which is the maximum number of elements in the motion vector predictor candidate list mvpListLX (YES in S2205 in FIG. 29), the process in S2206 and later in FIG. 29.

Затем, в случае, когда список HmvpCandList кандидатов предиктора вектора движения на основании истории включает в себя элемент, имеющий тот же опорный индекс, что и опорный индекс refIdxLX целевого вектора движения кодирования/декодирования и который отличается от любого элемента списка mvpListLX предикторов вектора движения (ДА на этапе S2206 на фиг. 29), вектор движения LY кандидата HmvpCandList [NumHmvpCand-i] предиктора вектора движения на основании истории добавляется к numCurrMvpCand-ому элементу mvpListLX [numCurr] посчитывается от 0 в списке кандидатов предиктора вектора движения (этап S2207 на фиг. 29), и число numCurrMvpCand текущих кандидатов предиктора вектора движения увеличивается на единицу. В случае, когда в списке HmvpCandList кандидатов предиктора вектора движения на основании истории отсутствует элемент, который имеет тот же опорный индекс, что и опорный индекс refIdxLX целевого вектора движения кодирования/декодирования, и отличается от любого элемента списка mvpListLX предикторов вектора движения (НЕТ на этапе S2206 на фиг. 29), дополнительный процесс на этапе S2207 будет пропущен.Then, in the case that the history-based motion vector predictor candidate list HmvpCandList includes an element having the same reference index as the encoding/decoding target motion vector reference index refIdxLX and which is different from any element of the motion vector predictor list mvpListLX (YES in step S2206 in FIG. 29) and the number numCurrMvpCand of current motion vector predictor candidates is incremented by one. In the case where there is no element in the history-based motion vector predictor candidate list HmvpCandList that has the same reference index as the reference index refIdxLX of the encode/decode target motion vector and is different from any element of the motion vector predictor list mvpListLX (NO in step S2206 in Fig. 29), the additional process in step S2207 will be skipped.

Процесс этапов S2205-S2207 на фиг. 29 выполняется как для L0, так и для L1 (этапы S2204-S2208 на фиг. 29). Индекс i увеличивается на единицу, и когда индекс i меньше или равен любому из меньшего значения 4 или количества кандидатов NumHmvpCand предиктора вектора движения на основании истории, процесс этапа S2203 и более поздних будет повторяться (этапы S2202-S2209 на фиг. 29).The process of steps S2205-S2207 in FIG. 29 is performed for both L0 and L1 (steps S2204-S2208 in FIG. 29). Index i is incremented by one, and when index i is less than or equal to any of the smaller value 4 or the number of history-based motion vector predictor candidates NumHmvpCand, the process of step S2203 and later will be repeated (steps S2202-S2209 in FIG. 29).

Процесс получения кандидатов слияния на основании историиThe process of obtaining merger candidates based on history

Ниже приводится подробное описание способа получения кандидата слияния на основании истории из списка HmvpCandList кандидатов слияния на основании истории, процедуры процесса этапа S404 на фиг. 21, который является общим процессом блока 345 получения кандидатов слияния на основании истории из блока 302 получения режима нормального слияния на стороне кодирования, и блока 445 получения кандидатов слияния на основании истории блока 402 получения режима нормального слияния на стороне декодирования. На фиг. 30 показана блок-схема последовательности операций, иллюстрирующая процедуру обработки получения кандидатов слияния на основании истории.The following is a detailed description of the method for obtaining a history-based merge candidate from the history-based merge candidate list HmvpCandList, the process procedure of step S404 in FIG. 21, which is the general process of block 345 for obtaining merge candidates based on history from block 302 for obtaining normal merge mode on the encoding side, and block 445 for obtaining merge candidates based on the history of block 402 for obtaining normal merge mode on the decoding side. In FIG. 30 is a flowchart illustrating a history-based merge candidate acquisition processing procedure.

Во-первых, выполняется процесс инициализации (этап S2301 на фиг. 30). Каждому из элементов от 0 до (numCurrMergeCand -1) isPruned [i] устанавливается значение FALSE, и переменная numOrigMergeCand устанавливается на значение numCurrMergeCand числа элементов, зарегистрированных в текущем списке кандидатов слияния.First, an initialization process is performed (step S2301 in FIG. 30). The elements from 0 to (numCurrMergeCand -1) of isPruned[i] are each set to FALSE and numOrigMergeCand is set to numCurrMergeCand of the number of elements registered in the current merge candidate list.

Затем начальное значение индекса hMvpIdx устанавливается равным 1, и дополнительный процесс с этапа S2303 по этап S2310 на фиг. 30 повторяется от этого начального значения до NumHmvpCand (этапы S2302-S2311 на фиг. 30). Когда число numCurrMergeCand элементов, зарегистрированных в текущем списке кандидатов слияния, не меньше или равно (максимальное количество кандидатов слияния MaxNumMergeCand-1), кандидаты слияния были добавлены ко всем элементам в списке кандидатов слияния. Соответственно, процесс получения кандидатов слияния на основании истории будет завершен (НЕТ на этапе S2303 на фиг. 30). В случае, когда число numCurrMergeCand элементов, зарегистрированных в текущем списке кандидатов слияния, меньше или равно (максимальное количество кандидатов слияния MaxNumMergeCand-1), будет выполняться процесс этапа S2304 и позже. sameMotion устанавливается в значение FALSE (этап S2304 на фиг. 30). Затем начальное значение индекса i устанавливается на 0, и процесс этапов S2306 и S2307 на фиг. 30 выполняется от этого начального значения до numOrigMergeCand-1 (этапы S2305-S2308 на фиг. 30). Сравнение выполняется на предмет того, является ли (NumHmvpCand-hMvpIdx) элемент HmvpCandList [NumHmvpCand-hMvpIdx], отсчитываемый от 0 в списке кандидатов предиктора вектора движения на основании истории, тем же значением, что и i-ый элемент mergeCandList [i], отсчитываемый от 0 в списке кандидатов слияния (этап S2306 на фиг. 30).Then, the hMvpIdx index initial value is set to 1, and the sub-process from step S2303 to step S2310 in FIG. 30 is repeated from this initial value to NumHmvpCand (steps S2302-S2311 in FIG. 30). When the number numCurrMergeCand of elements registered in the current merge candidate list is not less than or equal to (MaxNumMergeCand-1 maximum merge candidates), merge candidates have been added to all elements in the merge candidate list. Accordingly, the history-based merge candidate acquisition process will be completed (NO at S2303 in FIG. 30). In the case where the number numCurrMergeCand of items registered in the current merge candidate list is less than or equal to (the maximum number of merge candidates MaxNumMergeCand-1), the process of step S2304 and later will be executed. sameMotion is set to FALSE (step S2304 in FIG. 30). Then, the initial value of index i is set to 0, and the process of steps S2306 and S2307 in FIG. 30 is executed from this initial value to numOrigMergeCand-1 (steps S2305-S2308 in FIG. 30). A comparison is made to see if the (NumHmvpCand-hMvpIdx) element of HmvpCandList [NumHmvpCand-hMvpIdx] counted from 0 in the history-based motion vector predictor candidate list is the same value as the ith element of mergeCandList [i] counted from from 0 in the merge candidate list (step S2306 in FIG. 30).

Определяется, что кандидаты слияния имеют одинаковое значение в случае, когда все составляющие элементы (режим межкадрового предсказания, опорный индекс, вектор движения) кандидата слияния имеют одинаковое значение. В случае, когда кандидаты слияния имеют одинаковое значение и isPruned [i] установлен на FALSE (ДА на этапе S2306 на фиг. 30), для sameMotion и isPruned [i] будет установлено значение TRUE (этап S2307 на фиг. 30). В случае, если значения не совпадают (НЕТ на этапе S2306 на фиг. 30), процесс на этапе S2307 будет пропущен. После завершения обработки повторения с этапа S2305 по этап S2308 на фиг. 30 выполняется сравнение на предмет того, является ли sameMotion FALSE (этап S2309 на фиг. 30). В случае, когда sameMotion имеет значение FALSE (ДА на этап S2309 на фиг. 30), то есть (NumHmvpCand-hMvpIdx) элемент HmvpCandList [NumHmvpCand - hMvpIdx], который отсчитывается от 0 в списке кандидатов предиктора вектора движения на основании истории, отсутствует в mergeCandList и, следовательно, элемент HmvpCandList [NumHmvpCand - hMvpIdx], который является (NumHmvpCand - hMvpIdx) элементом, отсчитываемым от 0 в списке кандидатов предиктора вектора движения на основании истории, добавляется в mergeCandList [ngeumCurr], который является numCurrMergeCand в списке кандидатов слияния, и numCurrMergeCand увеличивается на единицу (этап S2310 на фиг. 30). Индекс hMvpIdx увеличивается на единицу (этап S2302 на фиг. 30), и процесс этапов S2302-S2311 на фиг. 30 повторяется.The merge candidates are determined to have the same value in the case where all constituent elements (inter prediction mode, reference index, motion vector) of the merge candidate have the same value. In the case where the merge candidates have the same value and isPruned[i] is set to FALSE (YES in step S2306 in FIG. 30), sameMotion and isPruned[i] will be set to TRUE (step S2307 in FIG. 30). In case the values do not match (NO in step S2306 in FIG. 30), the process in step S2307 will be skipped. After completion of repetition processing from step S2305 to step S2308 in FIG. 30, a comparison is made as to whether the sameMotion is FALSE (step S2309 in FIG. 30). In the case where sameMotion is FALSE (YES at step S2309 in FIG. 30), that is, (NumHmvpCand-hMvpIdx), the HmvpCandList [NumHmvpCand-hMvpIdx] item, which is 0-based in the history-based motion vector predictor candidate list, is not present in mergeCandList and hence the element HmvpCandList [NumHmvpCand - hMvpIdx], which is the (NumHmvpCand - hMvpIdx) element 0-based in the history-based motion vector predictor candidate list, is added to mergeCandList [ngeumCurr], which is numCurrMergeCand in the merge candidate list, and numCurrMergeCand is incremented (step S2310 in FIG. 30). The hMvpIdx index is incremented by one (step S2302 in FIG. 30), and the process of steps S2302-S2311 in FIG. 30 is repeated.

После завершения подтверждения всех элементов в списке кандидатов предиктора вектора движения на основании истории или завершения добавления кандидатов слияния ко всем элементам в списке кандидатов слияния процесс получения кандидатов слияния на основании истории завершается.When all elements in the history-based motion vector predictor candidate list are confirmed or adding merge candidates to all elements in the merge candidate list is completed, the history-based merge candidate derivation process ends.

Процесс получения кандидатов усредненного слиянияThe Process of Obtaining Average Merge Candidates

Ниже приводится подробное описание способа получения кандидата усредненного слияния, процедуры обработки этапа S403 на фиг. 21, который является общим процессом блока 344 получения кандидата усредненного слияния блока 302 получения режима нормального слияния на стороне кодирования, и блока 444 получения кандидата усредненного слияния блока 402 получения режима нормального слияния на стороне декодирования. На фиг. 38 показана блок-схема алгоритма, иллюстрирующая процедуру обработки получения кандидата усредненного слияния.The following is a detailed description of the average merge candidate acquisition method, the processing procedure of step S403 in FIG. 21, which is the common process of the average merge candidate obtaining block 344 of the normal merge mode obtaining block 302 on the encoding side, and the average merge candidate obtaining block 444 of the normal merge mode obtaining block 402 on the decoding side. In FIG. 38 is a flowchart illustrating an average merge candidate acquisition processing procedure.

Сначала выполняется процесс инициализации (этап S1301 на фиг. 38). Переменная numOrigMergeCand устанавливается равной количеству элементов numCurrMergeCand, зарегистрированных в текущем списке кандидатов слияния.First, an initialization process is performed (step S1301 in FIG. 38). The variable numOrigMergeCand is set to the number of numCurrMergeCand elements registered in the current list of merge candidates.

Затем выполняется последовательное сканирование, начиная с начала списка кандидатов слияния для определения двух фрагментов информации движения. Индекс i, указывающий первую информацию движения, устанавливается таким образом, что индекс i = 0, и индекс j, указывающий вторую информацию движения, устанавливается таким образом, что индекс j=1. (Этапы S1302-S1303 на фиг. 38). Когда число numCurrMergeCand элементов, зарегистрированных в текущем списке кандидатов слияния, не меньше или равно (максимальное количество кандидатов MaxNumMergeCand-1 слияния), ко всем элементам в списке кандидатов слияния были добавлены кандидаты слияния. Соответственно, процесс получения кандидатов слияния на основании истории будет завершен (этап S1304 на фиг. 38). В случае, когда количество numCurrMergeCand элементов, зарегистрированных в текущем списке кандидатов слияния, меньше или равно (максимальное количество кандидатов MaxNumMergeCand-1 слияния), будет выполняться процесс этапа S1305 и более поздних.A sequential scan is then performed, starting at the beginning of the merge candidate list, to determine two pieces of motion information. An index i indicating the first motion information is set such that the index i = 0, and an index j indicating the second motion information is set such that the index j=1. (Steps S1302-S1303 in FIG. 38). When the number numCurrMergeCand of elements registered in the current merge candidate list is not less than or equal to (the maximum number of merge candidates MaxNumMergeCand-1), merge candidates have been added to all elements in the merge candidate list. Accordingly, the process of obtaining merge candidates based on the history will be completed (step S1304 in FIG. 38). In the case where the number numCurrMergeCand of elements registered in the current merge candidate list is less than or equal to (the maximum number of merge candidates MaxNumMergeCand-1), the process of step S1305 and later will be executed.

Определяется, являются ли действительной как i-ая информация mergeCandList [i] движения из списка кандидатов слияния, так и j-ая информация mergeCandList [j] движения из списка кандидатов слияния (этап S1305 на фиг. 38). В случае, когда обе являются недействительными, процесс переходит к следующему элементу без получения кандидата усредненного слияния mergeCandList [i] и mergeCandList [j]. В случае, когда условие, что оба mergeCandList [i] и mergeCandList [j] являются недействительными, не удовлетворяется, следующий процесс повторяется с X, установленным на 0 и 1 (этапы S1306-S1314 на фиг. 38).It is determined whether both the i-th mergeCandList [i] motion information of the merge candidate list and the j-th mergeCandList [j] motion information of the merge candidate list are valid (step S1305 in FIG. 38). In the case where both are invalid, the process proceeds to the next element without obtaining an average merge candidate mergeCandList[i] and mergeCandList[j]. In the case where the condition that both mergeCandList[i] and mergeCandList[j] are invalid is not satisfied, the following process is repeated with X set to 0 and 1 (steps S1306 to S1314 in FIG. 38).

Определение, действительно ли LX предсказание mergeCandList [i] (этап S1307 на фиг. 38). В случае, когда LX предсказание mergeCandList [i] является действительным, выполняется определение, действительно ли LX предсказание mergeCandList [j] (этап S1308 на фиг. 38). В случае, когда LX предсказание mergeCandList [j] действительно, то есть в случае, когда действительны как LX предсказание mergeCandList [i], так и LX предсказание mergeCandList [j], получают вектор движения LX предсказания путем усреднения вектора движения предсказания LX для mergeCandList [i] и вектора движения предсказания LX для mergeCandList [j] и будет получен кандидат усредненного слияния предсказания LX, имеющий опорный индекс предсказания LX для mergeCandList [i], для установления LX предсказание как averageCand, и LX предсказание averageCand будет являться действительным (этап S1309 на фиг. 38). На этапе S1308 на фиг. 38, в случае, когда LX предсказание mergeCandList [j] недействительно, то есть в случае, когда LX предсказание mergeCandList [i] действительно и LX предсказание mergeCandList [j] недействительно, будут получены вектор движения LX предсказания mergeCandList [i] и кандидат усредненного слияния LX предсказания, имеющий опорный индекс, чтобы быть установленным как LX предсказание averageCand и LX предсказание meanCand будет действительным (этап S1310 на фиг. 38). В случае, когда LX предсказание mergeCandList [i] недействительно на этапе S1307 на фиг. 38, то выполняется определение относительно того, действительно ли LX предсказание mergeCandList [j] (этап S1311 на фиг. 38). В случае, когда LX предсказание mergeCandList [j] действительно, то есть в случае, когда LX предсказание mergeCandList [i] недействительно и LX предсказание mergeCandList [j] действительно, будут получены вектор движения LX предсказания mergeCandList [j], и кандидат усредненного слияния LX предсказания, имеющий опорный индекс, чтобы быть установленным как LX предсказание averageCand, и LX предсказание averageCand будет являться действительным (этап S1312 на фиг. 38). На этапе S1311 на фиг. 38, в случае, когда LX предсказание mergeCandList [j] недействительно, то есть в случае, когда LX предсказание mergeCandList [i] и LX предсказание mergeCandList [j] оба недействительны, LX предсказание averageCand будет недействительным (этап S1312 на фиг. 38).Determining whether the LX prediction mergeCandList [i] is valid (step S1307 in FIG. 38). In the case where the LX prediction mergeCandList[i] is valid, a determination is made whether the LX prediction mergeCandList[j] is valid (step S1308 in FIG. 38). In the case where the LX prediction of mergeCandList[j] is valid, that is, in the case where both the LX prediction of mergeCandList[i] and the LX prediction of mergeCandList[j] are valid, obtain an LX prediction motion vector by averaging the LX prediction motion vector of mergeCandList[ i] and the LX prediction motion vector of mergeCandList[j], and an LX prediction average merge candidate having a LX prediction reference index of mergeCandList[i] will be obtained to set the LX prediction to averageCand, and the LX prediction averageCand will be valid (step S1309 on Fig. 38). At step S1308 in FIG. 38, in the case where the LX prediction mergeCandList[j] is invalid, that is, in the case where the LX prediction mergeCandList[i] is valid and the LX prediction mergeCandList[j] is invalid, the LX prediction motion vector mergeCandList[i] and the average merge candidate will be obtained. LX prediction having a reference index to be set as LX prediction averageCand and LX prediction meanCand will be valid (step S1310 in FIG. 38). In the case where the LX mergeCandList [i] prediction is invalid in step S1307 in FIG. 38, a determination is made as to whether or not the LX mergeCandList [j] prediction is valid (step S1311 in FIG. 38). In the case where the LX prediction of mergeCandList[j] is valid, i.e., in the case where the LX prediction of mergeCandList[i] is invalid and the LX prediction of mergeCandList[j] is valid, the LX prediction motion vector mergeCandList[j] and the LX average merge candidate will be obtained prediction having a reference index to be set as LX prediction averageCand, and LX prediction averageCand will be valid (step S1312 in FIG. 38). At step S1311 in FIG. 38, in the case where LX prediction mergeCandList[j] is invalid, that is, in the case where LX prediction mergeCandList[i] and LX prediction mergeCandList[j] are both invalid, LX prediction averageCand will be invalid (step S1312 in FIG. 38).

Полученный таким образом кандидат averageCand усредненного слияния L0 предсказания, L1 предсказания или предсказания BI, добавляется к numCurrMergeCand-th mergeCandList [numCurrMergeCand] списка кандидатов слияния, и numCurrMergeCand увеличивается на единицу (этап S1315 на фиг. 38). На этом процесс получения кандидата усредненного слияния завершается.Thus obtained average merge candidate L0 prediction, L1 prediction or BI prediction is added to numCurrMergeCand-th mergeCandList [numCurrMergeCand] of the merge candidate list, and numCurrMergeCand is incremented by one (step S1315 in FIG. 38). This completes the process of obtaining an average merge candidate.

Кандидат усреднённого слияния получается посредством усреднения по каждой из горизонтальной составляющей вектора движения и вертикальной составляющей вектора движения.An average fusion candidate is obtained by averaging over each of the horizontal motion vector component and the vertical motion vector component.

Процесс предсказания компенсации движенияMotion Compensation Prediction Process

Блок 306 предсказания компенсации движения получает позицию и размер блока, который в настоящее время подвергается обработке предсказания при кодировании. Дополнительно, блок 306 предсказания компенсации движения получает информацию межкадрового предсказания из определителя 305 режима межкадрового предсказания. Опорный индекс и вектор движения выводятся из полученной информации межкадрового предсказания и опорное изображение, указанное опорным индексом в памяти 104 декодированного изображения сдвигается из той же позиции, что и сигнал изображения целевого блока предсказания, который подвергается обработке с предсказанием, на величину вектора движения. После сдвига получают сигнал изображения этой позиции и после этого генерируется сигнал предсказания.The motion compensation prediction block 306 obtains the position and size of the block currently undergoing encoding prediction processing. Further, the motion compensation predictor 306 obtains inter prediction information from the inter prediction mode determiner 305 . The reference index and the motion vector are derived from the obtained inter prediction information, and the reference image indicated by the reference index in the decoded image memory 104 is shifted from the same position as the image signal of the prediction target block to be subjected to prediction processing by the amount of the motion vector. After the shift, an image signal of this position is obtained, and then a prediction signal is generated.

В случае, когда предсказание выполнено из сигнального опорного изображения, например, когда режим межкадрового предсказания в межкадровом предсказании является L0 предсказанием или L1 предсказанием, в качестве сигнала предсказания компенсации движения сигнал предсказания устанавливается сигнал предсказания, полученный из одного опорного изображения. В случае, когда предсказание выполняется из двух опорных изображений, например, когда режимом межкадрового предсказания является предсказание BI, в качестве сигнала предсказания компенсации движения устанавливается средневзвешенное значение сигналов предсказания, полученных из двух опорных изображений. Полученный сигнал предсказания компенсации движения подается в определитель 105 способа предсказания. Здесь отношение средневзвешенных значений при двунаправленном предсказании устанавливается равным 1:1. В качестве альтернативы, можно использовать другое отношение средневзвешенных значений. Например, коэффициент взвешенного усреднения может быть установлен таким образом, что чем короче интервал изображения между целевым изображением предсказания и опорным изображением, тем выше коэффициент взвешенного усреднения. Вычисление коэффициента взвешенного усреднения также может выполняться с использованием таблицы соответствия между комбинацией интервалов изображения и коэффициентов взвешенного усреднения.In the case where the prediction is made from the signal reference picture, for example, when the inter prediction mode in the inter prediction is L0 prediction or L1 prediction, the prediction signal obtained from one reference picture is set as the motion compensation prediction signal. In the case where prediction is performed from two reference pictures, for example, when the inter prediction mode is BI prediction, a weighted average of the prediction signals obtained from the two reference pictures is set as the motion compensation prediction signal. The received motion compensation prediction signal is supplied to the prediction method determiner 105 . Here, the ratio of the weighted averages in bidirectional prediction is set to 1:1. Alternatively, another ratio of weighted averages can be used. For example, the weighted averaging factor may be set such that the shorter the picture interval between the prediction target picture and the reference picture, the higher the weighted averaging factor. The calculation of the weighted average coefficient can also be performed using a lookup table between the combination of image intervals and the weighted average coefficients.

Блок 406 предсказания компенсации движения имеет функцию, аналогичную блоку 306 предсказания компенсации движения на стороне кодирования. Блок 406 предсказания компенсации движения получает информацию межкадрового предсказания от блока 401 получения режима предиктора нормального вектора движения, блока 402 получения режима нормального слияния, блока 403 получения режима предиктора вектора движения подблока и блока 404 получения режима слияния подблока через переключатель 408. Блок 406 предсказания компенсации движения подает полученный сигнал предсказания компенсации движения в блок 207 наложения сигнала декодированного изображения.The motion compensation predictor 406 has a function similar to the motion compensation predictor 306 on the encoding side. The motion compensation predictor 406 obtains inter-picture prediction information from the normal motion vector predictor mode obtainer 401, the normal merge mode obtainer 402, the sub-block motion vector predictor mode obtainer 403, and the sub-block merge mode obtainer 404 through the switch 408. The motion compensation predictor 406 supplies the received motion compensation prediction signal to the decoded image signal overlay unit 207 .

Режим межкадрового предсказанияInterframe prediction mode

Процесс выполнения предсказания из одного опорного изображения определяется как однонаправленное предсказание. Однонаправленное предсказание выполняет предсказание L0 предсказания или L1 предсказания с использованием одного из двух опорных изображений, зарегистрированных в справочных списках L0 или L1.The process of performing prediction from one reference picture is defined as unidirectional prediction. Unidirectional prediction performs L0 prediction or L1 prediction using one of two reference pictures registered in the L0 or L1 directory lists.

На фиг. 32 показан случай однонаправленного предсказания, в котором опорное изображение (RefL0Pic) L0 происходит в тот момент до целевого изображения (CurPic). Фиг. 33 иллюстрирует случай однонаправленного предсказания, в котором опорное изображение L0 предсказания происходит в тот момент после целевого изображения. Точно так же, однонаправленное предсказание может быть выполнено путем замены L0 предсказания опорного изображения на фиг. 32 и фиг. 33 на опорное изображение (RefL1Pic) L1 предсказания.In FIG. 32 shows a case of unidirectional prediction in which the reference picture (RefL0Pic) L0 occurs at the time before the target picture (CurPic). Fig. 33 illustrates a case of unidirectional prediction in which the prediction reference picture L0 occurs at a time after the target picture. Similarly, unidirectional prediction can be performed by replacing the reference picture prediction L0 in FIG. 32 and FIG. 33 per prediction reference picture (RefL1Pic) L1.

Процесс выполнения предсказания из двух опорных изображений определяется как двунаправленное предсказание. Двунаправленное предсказание выполняет предсказание, выраженное как предсказание BI, с использованием как L0 предсказания, так и L1 предсказания. Фиг. 34 иллюстрирует случай двунаправленного предсказания, в котором L0 предсказание опорного изображения происходит в тот момент до целевого изображения и L1 предсказание опорного изображения происходит в тот момент после целевого изображения. Фиг. 35 иллюстрирует случай двунаправленного предсказания, в котором опорное изображение L0 предсказания и опорное изображение L1 предсказания происходит в тот момент до целевого изображения. Фиг. 36 иллюстрирует случай двунаправленного предсказания, в котором опорный кадр для L0 предсказания и опорное изображение L1 предсказания происходит в тот момент после целевого изображения.The process of performing prediction from two reference pictures is defined as bidirectional prediction. Bidirectional prediction performs prediction expressed as BI prediction using both L0 prediction and L1 prediction. Fig. 34 illustrates a case of bidirectional prediction in which L0 reference picture prediction occurs at that point before the target picture and L1 reference picture prediction occurs at that point after the target picture. Fig. 35 illustrates a case of bidirectional prediction in which the prediction reference picture L0 and the prediction reference picture L1 occur at the same time as the target picture. Fig. 36 illustrates a case of bidirectional prediction in which a reference frame for prediction L0 and a reference picture L1 prediction occur at a time after the target picture.

Таким образом, можно использовать предсказание без ограничения взаимосвязи между типом предсказания L0/L1 и временем, так что L0 для прошлого направления и L1 для будущего направления. Более того, двунаправленное предсказание может выполнить каждое из L0 предсказание L1 предсказание, используя то же опорное изображение. Определение, следует ли выполнять предсказание компенсации движения при однонаправленном предсказании или двунаправленном предсказании, выполняется на основании информации (например, флага), указывающей, следует ли использовать L0 предсказание и следует ли использовать L1 предсказание.Thus, it is possible to use prediction without limiting the relationship between L0/L1 prediction type and time, such that L0 for the past direction and L1 for the future direction. Moreover, bidirectional prediction can perform each of the L0 predictions and L1 predictions using the same reference picture. Determining whether to perform motion compensation prediction in unidirectional prediction or bidirectional prediction is performed based on information (eg, a flag) indicating whether to use L0 prediction and whether to use L1 prediction.

Опорный индексReference index

В варианте осуществления настоящего изобретения, можно выбрать оптимальные опорное изображение из множества опорных изображений в предсказании компенсации движения для повышения точности предсказания компенсации движения. Таким образом, опорное изображение, используемое в предсказании компенсации движения должно быть использовано в качестве опорного индекса, и опорный индекс кодируется в битовом потоке вместе с разностью векторов движения.In an embodiment of the present invention, it is possible to select optimal reference pictures from a plurality of reference pictures in motion compensation prediction to improve the accuracy of motion compensation prediction. Thus, a reference picture used in motion compensation prediction should be used as a reference index, and the reference index is encoded in the bitstream along with the motion vector difference.

Процесс компенсации движения на основании режима предиктора нормального вектора движенияMotion Compensation Process Based on Normal Motion Vector Predictor Mode

Как проиллюстрировано в блоке 102 межкадрового предсказания на стороне кодирования на фиг. 16, в случае, когда в определителе 305 режима межкадрового предсказания была выбрана информация межкадрового предсказания блоком 301 получения режима предиктора нормального вектора движения, блок 306 предсказания компенсации движения получает эту информацию межкадрового предсказания из определителя 305 режима межкадрового предсказания и получает режим межкадрового предсказания, опорный индекс и вектор движения целевого блока и, таким образом, генерирует сигнал предсказания компенсации движения. Сформированный сигнал предсказания компенсации движения подается в определитель 105 способа предсказания.As illustrated in the inter prediction block 102 on the encoding side in FIG. 16, in the case where the inter prediction mode determiner 305 has selected the inter prediction information by the normal motion vector predictor mode obtaining unit 301, the motion compensation predictor 306 obtains this inter prediction information from the inter prediction mode determiner 305, and obtains the inter prediction mode, the reference index and a motion vector of the target block, and thus generates a motion compensation prediction signal. The generated motion compensation prediction signal is supplied to the prediction method determiner 105 .

Аналогично, как проиллюстрировано в блоке 203 межкадрового предсказания на стороне декодирования на фиг. 22, в случае, когда переключатель 408 подключен к блоку 401 получения режима предиктора нормального вектора движения во время процесса декодирования, блок 406 предсказания компенсации движения получает информацию межкадрового предсказания посредством блока 401 получения режима предиктора нормального вектора движения и получает режим межкадрового предсказания, опорный индекс и вектор движения целевого блока и, таким образом, генерирует сигнал предсказания компенсации движения. Сформированный сигнал предсказания компенсации движения подается в блок 207 наложения сигнала декодированного изображения.Similarly, as illustrated in the inter prediction block 203 on the decoding side in FIG. 22, in the case where the switch 408 is connected to the normal motion vector predictor mode obtaining unit 401 during the decoding process, the motion compensation prediction unit 406 acquires inter prediction information through the normal motion vector predictor mode acquisition unit 401, and obtains the inter prediction mode, the reference index, and the motion vector of the target block, and thus generates a motion compensation prediction signal. The generated motion compensation prediction signal is supplied to the decoded image signal overlay unit 207 .

Процесс компенсации движения на основании режима нормального слиянияMotion compensation process based on normal fusion mode

Как проиллюстрировано в блоке 102 межкадрового предсказания на стороне кодирования на фиг. 16, в случае, когда в определителе 305 режима межкадрового предсказания была выбрана информация межкадрового предсказания блоком 302 получения режима нормального слияния, блок 306 предсказания компенсации движения получает эту информацию межкадрового предсказания из определителя 305 режима межкадрового предсказания и получает режим межкадрового предсказания, опорный индекс и вектор движения целевого блока, тем самым, генерируя сигнал предсказания компенсации движения. Сформированный сигнал предсказания компенсации движения подается в определитель 105 способа предсказания.As illustrated in the inter prediction block 102 on the encoding side in FIG. 16, in the case where inter prediction information has been selected in the inter prediction mode determiner 305 by the normal merge mode obtaining section 302, the motion compensation prediction section 306 obtains this inter prediction information from the inter prediction mode determiner 305, and obtains the inter prediction mode, the reference index, and the vector motion of the target block, thereby generating a motion compensation prediction signal. The generated motion compensation prediction signal is supplied to the prediction method determiner 105 .

Аналогично, как проиллюстрировано в блоке 203 межкадрового предсказания на стороне декодирования на фиг. 22, в случае, когда переключатель 408 подключен к блоку 402 получения режима нормального слияния во время процесса декодирования, блок 406 предсказания компенсации движения получает информацию межкадрового предсказания блоком 402 получения режима нормального слияния и получает режим межкадрового предсказания, опорный индекс и вектор движения целевого блока, тем самым, генерируя сигнал предсказания компенсации движения. Сформированный сигнал предсказания компенсации движения подается в блок 207 наложения сигнала декодированного изображения.Similarly, as illustrated in the inter prediction block 203 on the decoding side in FIG. 22, in the case where the switch 408 is connected to the normal merge mode obtaining unit 402 during the decoding process, the motion compensation prediction unit 406 obtains inter prediction information by the normal merge mode obtaining unit 402, and obtains the inter prediction mode, reference index, and motion vector of the target block, thereby generating a motion compensation prediction signal. The generated motion compensation prediction signal is supplied to the decoded image signal overlay unit 207 .

Процесс компенсации движения на основании режима предиктора вектора движения подблокаMotion Compensation Process Based on Subblock Motion Vector Predictor Mode

Как проиллюстрировано в блоке 102 межкадрового предсказания на стороне кодирования на фиг. 16, в случае, когда в определителе 305 режима межкадрового предсказания была выбрана информация межкадрового предсказания блоком 303 получения режима предиктора вектора движения подблока, блок 306 предсказания компенсации движения получает эту информацию межкадрового предсказания из определителя 305 режима межкадрового предсказания и получает режим межкадрового предсказания, опорный индекс и вектор движения целевого блока, тем самым, генерируя сигнал предсказания компенсации движения. Сформированный сигнал предсказания компенсации движения подается в определитель 105 способа предсказания.As illustrated in the inter prediction block 102 on the encoding side in FIG. 16, in the case where inter prediction mode determiner 305 has selected inter prediction information by sub-block motion vector predictor mode obtaining unit 303, motion compensation predictor 306 obtains this inter prediction information from inter prediction mode determiner 305 and obtains inter prediction mode, reference index and a motion vector of the target block, thereby generating a motion compensation prediction signal. The generated motion compensation prediction signal is supplied to the prediction method determiner 105 .

Аналогично, как проиллюстрировано в блоке 203 межкадрового предсказания на стороне декодирования на фиг. 22, в случае, когда переключатель 408 подключен к блоку 403 получения режима предиктора вектора движения подблока во время процесса декодирования, блок 406 предсказания компенсации движения получает информацию межкадрового предсказания посредством блока 403 получения режима предиктора вектора движения подблока и выводит режим межкадрового предсказания, опорный индекс и вектор движения целевого блока, тем самым, генерируя сигнал предсказания компенсации движения. Сформированный сигнал предсказания компенсации движения подается в блок 207 наложения сигнала декодированного изображения.Similarly, as illustrated in the inter prediction block 203 on the decoding side in FIG. 22, in the case where the switch 408 is connected to the sub-block motion vector predictor mode obtaining block 403 during the decoding process, the motion compensation prediction block 406 acquires inter-frame prediction information through the sub-block motion vector predictor mode obtaining block 403, and outputs the inter-prediction mode, the reference index, and the motion vector of the target block, thereby generating a motion compensation prediction signal. The generated motion compensation prediction signal is supplied to the decoded image signal overlay unit 207 .

Процесс компенсации движения на основании режима слияния подблоковMotion Compensation Process Based on Subblock Merge Mode

Как проиллюстрировано в блоке 102 межкадрового предсказания на стороне кодирования на фиг. 16, в случае, когда в определителе 305 режима межкадрового предсказания была выбрана информация межкадрового предсказания блоком 304 получения режима слияния подблоков, блок 306 предсказания компенсации движения получает эту информацию межкадрового предсказания из определителя 305 режима межкадрового предсказания и выводит режим межкадрового предсказания, опорный индекс и вектор движения целевого блока, тем самым, генерируя сигнал предсказания компенсации движения. Сформированный сигнал предсказания компенсации движения подается в определитель 105 способа предсказания.As illustrated in the inter prediction block 102 on the encoding side in FIG. 16, in the case where the inter prediction mode determiner 305 has selected the inter prediction information by the sub-block merge mode obtaining unit 304, the motion compensation predictor 306 obtains this inter prediction information from the inter prediction mode determiner 305 and outputs the inter prediction mode, the reference index, and the vector motion of the target block, thereby generating a motion compensation prediction signal. The generated motion compensation prediction signal is supplied to the prediction method determiner 105 .

Аналогично, как проиллюстрировано в блоке 203 межкадрового предсказания на стороне декодирования на фиг. 22, в случае, когда переключатель 408 подключен к блоку 404 получения режима слияния подблоков во время процесса декодирования, блок 406 предсказания компенсации движения получает информацию межкадрового предсказания посредством блока 404 получения режима слияния подблоков и выводит режим межкадрового предсказания, опорный индекс и вектор движения целевого блока, тем самым, генерируя сигнал предсказания компенсации движения. Сформированный сигнал предсказания компенсации движения подается в блок 207 наложения сигнала декодированного изображения.Similarly, as illustrated in the inter prediction block 203 on the decoding side in FIG. 22, in the case where the switch 408 is connected to the sub-block merge mode obtaining block 404 during the decoding process, the motion compensation prediction block 406 obtains inter-prediction information through the sub-block merge mode obtaining block 404, and outputs the inter-prediction mode, reference index, and motion vector of the target block. , thereby generating a motion compensation prediction signal. The generated motion compensation prediction signal is supplied to the decoded image signal overlay unit 207 .

Процесс компенсации движения на основании предсказания аффинного преобразованияMotion Compensation Process Based on Affine Transform Prediction

В режиме предиктора нормального вектора движения и режиме нормального слияния может использоваться компенсация движения с использованием аффинной модели на основании следующих флагов. Следующие флаги отражаются в следующих флагах на основании условий межкадрового предсказания, определенных определителем 305 режима межкадрового предсказания в процессе кодирования, и кодируются в битовом потоке. В процессе декодирования определяется, выполнять ли компенсацию движения с использованием аффинной модели на основании следующих флагов в битовом потоке.In the normal motion vector predictor mode and the normal merge mode, motion compensation using an affine model can be used based on the following flags. The following flags are reflected in the following flags based on the inter prediction conditions determined by the inter prediction mode determiner 305 in the encoding process, and are encoded in the bitstream. In the decoding process, it is determined whether to perform motion compensation using the affine model based on the following flags in the bitstream.

sps_affine_enabled_flag указывает, может ли использоваться компенсация движения с использованием аффинной модели во межкадровом предсказании. Когда sps_affine_enabled_flag равен 0, процесс подавляется, чтобы не выполнять компенсацию движения с помощью аффинной модели в блоках последовательности. Более того, inter_affine_flag и cu_affine_type_flag не передаются в синтаксисе блока кодирования (CU) кодирующей видеопоследовательности. Когда sps_affine_enabled_flag равен 1, может использоваться компенсация движения с помощью аффинной модели в видеопоследовательности кодирования.sps_affine_enabled_flag indicates whether motion compensation using the affine model can be used in inter-prediction. When sps_affine_enabled_flag is 0, the process is suppressed to not perform motion compensation with the affine model in sequence blocks. Moreover, inter_affine_flag and cu_affine_type_flag are not conveyed in the coding unit (CU) syntax of the video coding sequence. When sps_affine_enabled_flag is equal to 1, affine model motion compensation can be used in the video coding sequence.

sps_affine_type_flag указывает, может ли использоваться компенсация движения с использованием 6-параметрической аффинной модели во межкадровом предсказании. Когда sps_affine_type_flag равен 0, процесс подавляется, чтобы не выполнять компенсацию движения с использованием 6-параметрической аффинной модели. Более того, cu_affine_type_flag не передается в синтаксисе CU кодирующей видеопоследовательности. Когда sps_affine_type_flag равен 1, в видеопоследовательности кодирования может использоваться компенсация движения на основании 6-параметрической аффинной модели. В случае отсутствия sps_affine_type_flag, должен быть равен 0.sps_affine_type_flag indicates whether motion compensation using the 6-parameter affine model can be used in inter-prediction. When sps_affine_type_flag is 0, the process is suppressed to not perform motion compensation using the 6-parameter affine model. Moreover, cu_affine_type_flag is not conveyed in the CU syntax of the video coding sequence. When sps_affine_type_flag is equal to 1, motion compensation based on a 6-parameter affine model can be used in the video coding sequence. If there is no sps_affine_type_flag, it should be 0.

В случае декодирования P- или B-сегмента, когда inter_affine_flag равен 1 в текущем CU, для генерирования сигнала предсказания компенсации движения текущего CU используется компенсация движения с использованием аффинной модели. Когда inter_affine_flag равен 0, аффинная модель не используется для текущего CU. В случае отсутствия inter_affine_flag, должен быть равен 0.In the case of P or B segment decoding, when inter_affine_flag is equal to 1 in the current CU, motion compensation using an affine model is used to generate a motion compensation prediction signal of the current CU. When inter_affine_flag is 0, no affine model is used for the current CU. If there is no inter_affine_flag, it must be 0.

В случае декодирования P- или B-сегмента, когда cu_affine_type_flag равен 1 в текущем CU, для генерирования сигнала предсказания компенсации движения текущего CU используется компенсация движения с использованием 6-параметрической аффинной модели. Когда cu_affine_type_flag равен 0, для генерирования сигнала предсказания компенсации движения CU, обрабатываемого в данный момент, используется компенсация движения с использованием четырехпараметрической аффинной модели.In the case of P or B segment decoding, when cu_affine_type_flag is equal to 1 in the current CU, motion compensation using a 6-parameter affine model is used to generate a motion compensation prediction signal of the current CU. When cu_affine_type_flag is 0, motion compensation using a four-parameter affine model is used to generate a motion compensation prediction signal of the CU currently being processed.

Опорный индекс и вектор движения выводятся в блоках подблоков в компенсации движения на основании аффинной модели. Соответственно, сигнал предсказания с компенсацией движения генерируется с использованием опорного индекса и вектора движения для обработки в подблоках.The reference index and motion vector are output in blocks of sub-blocks in motion compensation based on the affine model. Accordingly, a motion-compensated prediction signal is generated using a reference index and a motion vector for sub-block processing.

Четырехпараметрическая аффинная модель представляет собой режим, в котором получают вектор движения подблока из четырех параметров горизонтального компонента и вертикального компонента каждого из векторов движения двух контрольных точек и компенсация движения выполняется в блоках подблоков.The four-parameter affine model is a mode in which a sub-block motion vector is obtained from the four parameters of the horizontal component and the vertical component of each of the motion vectors of the two control points, and motion compensation is performed in blocks of sub-blocks.

Для предсказания компенсации движения раздела 0 используется информация движения однонаправленного предсказания, обозначенная индексом 0 слияния треугольников. Информация движения однонаправленного предсказания, обозначенная индексом 1 слияния треугольников, используется для предсказания компенсации движения раздела 1. Информация движения двунаправленного предсказания, объединенная с информацией движения однонаправленного предсказания, обозначенная индексом 0 слияния треугольников, и информации движения однонаправленного предсказания, обозначенная индексом 1 слияния треугольников, используется для предсказания компенсации движения раздела 2.For section 0 motion compensation prediction, unidirectional prediction motion information, indicated by triangle merge index 0, is used. The unidirectional prediction motion information indicated by triangle fusion index 1 is used for section 1 motion compensation prediction. for section 2 motion compensation prediction.

Внутриблочное копирование (IBC)Intrablock Copy (IBC)

Действительная опорная область внутриблочного копирования будет описана со ссылкой на фиг.39. На фиг.39A показан примерный случай, когда действительная опорная область определяется при условии, что единица блока дерева кодирования используется в качестве стандартного блока внутриблочного копирования. Блоки 500, 501, 502, 503 и 504 на фиг.39A являются блоками дерева кодирования, и блок 504 среди них является целевым блоком дерева кодирования. Блок 505 представляет собой целевой блок кодирования. Блоки дерева кодирования обрабатываются в порядке 500, 501, 502, 503 и 504. В этом случае все три блока 501, 502 и 503 дерева кодирования, которые обрабатываются непосредственно перед блоком 504 дерева кодирования, включая целевой блок 505 кодирования, устанавливаются как действительные опорные области целевого блока 505 кодирования. Блок дерева кодирования, который обрабатывается перед блоком 501 дерева кодирования, и области, включенные в блок 504 дерева кодирования, включая целевой блок 505 кодирования, устанавливаются все как недействительные опорные области независимо от того, завершена ли обработка перед целевым блоком 505 кодирования. The actual intra-block copy reference area will be described with reference to FIG. FIG. 39A shows an exemplary case where a valid reference area is determined under the condition that a coding tree block unit is used as an intra-block copy standard block. Blocks 500, 501, 502, 503, and 504 in FIG. 39A are coding tree blocks, and block 504 among them is the target coding tree block. Block 505 is a target coding block. The coding tree blocks are processed in the order 500, 501, 502, 503, and 504. In this case, all three coding tree blocks 501, 502, and 503 that are processed immediately before the coding tree block 504, including the target coding tree block 505, are set as valid reference regions. target block 505 coding. The coding tree block that is processed before the coding tree block 501 and the regions included in the coding tree block 504, including the target encoding block 505, are all set as invalid reference regions regardless of whether processing is completed before the target encoding block 505.

На фиг.39B показан примерный случай, когда действительная опорная область определяется при условии, что единица, полученная путем разделения на четыре части единицы блока дерева кодирования, используется в качестве стандартного блока внутриблочного копирования. На фиг.39B блоки 515 и 516 представляют собой блоки дерева кодирования, и блок 516 является целевым блоком дерева кодирования. Блок 515 дерева кодирования разделен на блоки 506, 507, 508 и 509, и блок 516 дерева кодирования разделен на блоки 510, 511, 512 и 513. Ссылочная позиция 514 обозначает целевой блок кодирования. Стандартные блоки внутриблочного копирования обрабатываются в порядке 506, 507, 508, 509, 510, 511, 512 и 513. В этом случае три стандартных блока 508, 509, 510 внутриблочного копирования обрабатываются непосредственно перед стандартным блоком 511 внутриблочного копирования, включая целевой блок 514 кодирования, задаются как действительные опорные области целевого блока 514 кодирования. Блок дерева кодирования, обработанный перед стандартным блоком 508 внутриблочного копирования, и вся область, включенная в стандартный блок 511 внутриблочного копирования, включая целевой блок 514 кодирования устанавливаются все как недействительные опорные области независимо от того, завершена ли обработка перед целевым блоком 514 кодирования. FIG. 39B shows an exemplary case where a valid reference area is determined under the condition that a unit obtained by dividing a coding tree block into four units is used as an intra-block copy standard unit. 39B, blocks 515 and 516 are coding tree blocks, and block 516 is the target coding tree block. The coding tree block 515 is divided into blocks 506, 507, 508, and 509, and the coding tree block 516 is divided into blocks 510, 511, 512, and 513. Reference numeral 514 denotes a target coding block. Intrablock copy building blocks 506, 507, 508, 509, 510, 511, 512, and 513 are processed. In this case, three intrablock copy building blocks 508, 509, 510 are processed immediately before intrablock copy building block 511, including encoding target block 514 , are set as the actual reference areas of the target encoding block 514 . The coding tree block processed before the intra-block copy standard 508 and the entire area included in the intra-block copy standard 511 including the target encoding block 514 are all set as invalid reference areas regardless of whether processing is completed before the target encoding block 514.

Пространство памяти опорной областиReference area memory space

Ниже будет описано пространство памяти для хранения обработанного изображения опорной области. На фиг.56 показано схематичное представление, иллюстрирующее пространство памяти опорной области, когда единица блока дерева кодирования используется в качестве стандартного блока внутриблочного копирования. Блоки 500, 501, 502, 503, 504 и 505, показанные на фиг.56A, являются блоками дерева кодирования. Блок 503 дерева кодирования является целевым блоком дерева кодирования. Блок 500 дерева кодирования, блок 501 дерева кодирования, блок 502 дерева кодирования являются обработанными блоками дерева кодирования и соответствуют опорной области целевого блока 503 дерева кодирования. Блоки 504 и 505 дерева кодирования являются необработанными блоками дерева кодирования. На фиг.56A промежутки 600, 601, 602 и 603 представляют собой пространство памяти. Пространство памяти 600 хранит обработанное изображение блока кодирования дерева 500. Аналогичным образом, пространство памяти 601 хранит обработанное изображение блока 501 кодирования дерева, в то время как пространство памяти 602 хранит обработанное изображение блока 502 дерева кодирования. Пространство 603 памяти последовательно сохраняет обработанные изображения в соответствии с обработкой целевого блока 503 дерева кодирования. Когда обработка блока 503 дерева кодирования завершается, затем начинается обработка блока 504 дерева кодирования. The memory space for storing the processed image of the reference area will be described below. 56 is a schematic diagram illustrating the memory space of a reference area when a coding tree block unit is used as an intra-block copy standard block. Blocks 500, 501, 502, 503, 504, and 505 shown in FIG. 56A are coding tree blocks. The coding tree block 503 is the target coding tree block. The coding tree block 500, the coding tree block 501, the coding tree block 502 are processed coding tree blocks and correspond to the reference area of the target coding tree block 503. Encoding tree blocks 504 and 505 are raw coding tree blocks. On figa gaps 600, 601, 602 and 603 represent the memory space. Memory space 600 stores the processed tree coding block image 500. Similarly, memory space 601 stores the processed tree coding block 501 image, while memory space 602 stores the processed coding tree block 502 image. The memory space 603 sequentially stores the processed images in accordance with the processing of the target block 503 of the coding tree. When the processing of the coding tree block 503 is completed, then the processing of the coding tree block 504 is started.

Процесс, выполняемый при завершении обработки блока 503 дерева кодирования, будет описан с использованием фиг.56B. На данном этапе блок 504 дерева кодирования будет целевым блоком дерева кодирования. Кроме того, блок 503 дерева кодирования будет опорной областью, и блок 500 дерева кодирования больше не будет опорной областью. На данном этапе обработанное изображение блока 503 дерева кодирования было сохранено в пространстве 603 памяти, которая последовательно хранила обработанное изображение блока 503 дерева кодирования. Так как блок 500 дерева кодирования больше не является опорной областью кодирования блока 504 дерева, обработанное изображение блока 500 дерева кодирования, сохраненное в пространстве 600 памяти, будет представлять собой ненужную информацию. Соответственно, обработанные изображения целевого блока 504 дерева кодирования будут последовательно сохраняться в пространстве 600 памяти. Когда обработка блока 504 дерева кодирования завершена, затем начинается обработка блока 505 дерева кодирования. The process performed when processing of the coding tree block 503 is completed will be described using FIG. 56B. At this point, coding tree block 504 will be the target coding tree block. In addition, coding tree block 503 will be a reference region, and coding tree block 500 will no longer be a reference region. At this stage, the processed image of the coding tree block 503 has been stored in the memory space 603 that sequentially stored the processed image of the coding tree block 503. Since the coding tree block 500 is no longer the coding reference area of the tree block 504, the processed image of the coding tree block 500 stored in the memory space 600 will be waste information. Accordingly, the processed images of the target coding tree block 504 will be sequentially stored in the memory space 600 . When the processing of the coding tree block 504 is completed, then the processing of the coding tree block 505 begins.

Аналогичным образом, пример завершения обработки блока 504 дерева кодирования показан на фиг.56C. На данном этапе блок 505 дерева кодирования будет целевым блоком дерева кодирования, и блок 504 дерева кодирования будет опорной областью. Блок 501 дерева кодирования больше не является опорной областью. Обработанные изображения целевого блока 504 дерева кодирования последовательно сохраняются в пространстве 601 памяти. Когда обработка блока 505 дерева кодирования завершена, начинается обработка следующего блока дерева кодирования. Similarly, an example of completing processing of the coding tree block 504 is shown in FIG. 56C. At this point, coding tree block 505 will be the target coding tree block, and coding tree block 504 will be the reference region. Block 501 of the coding tree is no longer a reference area. The processed images of the target block 504 of the coding tree are sequentially stored in the memory space 601 . When processing of coding tree block 505 is completed, processing of the next coding tree block is started.

На фиг.57 показано схематичное представление, иллюстрирующее пространство памяти опорной области, когда действительная опорная область определяется при предположении, что единица получена путем разделения на четыре части блока дерева кодирования, в качестве стандартного блока внутриблочного копирования. На фиг.57A 510 и 511 показаны блоки дерева кодирования. Блок 510 дерева кодирования является обработанным блоком дерева кодирования, и блок 511 дерева кодирования является целевым блоком дерева кодирования. Блок 510 дерева кодирования включает в себя блоки 500, 501, 502 и 503. Блок 511 дерева кодирования включает в себя блоки 504, 505, 506 и 507. Блок 504 является целевым блоком. Блоки 501, 502 и 503 являются обработанными блоками и соответствуют опорной области целевого блока 504. Блоки 505, 506, 507 являются необработанными блоками. Промежутки 600, 601, 602 и 603 на фиг.57A являются пространствами памяти. В пространстве 603 памяти хранится обработанное изображение блока 501. Аналогичным образом, в пространстве 602 памяти хранится обработанное изображение блока 502. В пространстве 603 памяти хранится обработанное изображение блока 503. В пространстве 600 памяти последовательно сохраняются обработанные изображения в соответствии с обработкой целевого блока 504. Когда обработка блока 504 завершена, затем начинается обработка блока 505. Fig. 57 is a schematic diagram illustrating the memory space of a reference area when a valid reference area is determined under the assumption that a unit is obtained by quartering a coding tree block as an intra-block copy standard block. On figa 510 and 511 shows blocks of the coding tree. Encoding tree block 510 is a processed coding tree block, and coding tree block 511 is a target coding tree block. Code tree block 510 includes blocks 500, 501, 502, and 503. Code tree block 511 includes blocks 504, 505, 506, and 507. Block 504 is the target block. Blocks 501, 502 and 503 are processed blocks and correspond to the reference area of the target block 504. Blocks 505, 506, 507 are raw blocks. The spaces 600, 601, 602, and 603 in FIG. 57A are memory spaces. The memory space 603 stores the processed image of the block 501. Similarly, the processed image of the block 502 is stored in the memory space 602. The processed image of the block 503 is stored in the memory space 603. The processed images are sequentially stored in the memory space 600 according to the processing of the target block 504. When processing of block 504 is completed, then processing of block 505 begins.

Процесс, выполняемый при завершении обработки блока 504, будет описан с использованием фиг.57B. На данном этапе блок 505 будет целевым блоком дерева кодирования. Кроме того, блок 504 будет опорной областью, и блок 501 больше не будет опорной областью. На данном этапе обработанное изображение блока 504 сохраняется в пространстве 600 памяти, в котором последовательно сохраняется обработанное изображение блока 504. Так как блок 501 дерева кодирования больше не является опорной областью блока 505 дерева кодирования, обработанное изображение блока 501 дерева кодирования, сохраненное в пространстве 601 памяти, будет представлять собой ненужную информацию. Соответственно, обработанные изображения целевого блока 505 дерева кодирования будут последовательно сохраняться в пространстве 601 памяти. Когда обработка блока 505 завершена, затем начинается обработка блока 506 дерева кодирования. The process performed at the completion of block 504 processing will be described using FIG. 57B. At this point, block 505 will be the target block of the coding tree. Also, block 504 will be a reference area, and block 501 will no longer be a reference area. At this stage, the processed image of the block 504 is stored in the memory space 600, in which the processed image of the block 504 is sequentially stored. , will be unnecessary information. Accordingly, the processed images of the target coding tree block 505 will be sequentially stored in the memory space 601 . When processing of block 505 is completed, processing of block 506 of the coding tree then begins.

Процесс, выполняемый при завершении обработки блока 504, будет описан с использованием фиг.57C. На данном этапе блок 506 будет целевым блоком. Кроме того, блок 505 будет опорной областью, и блок 502 дерева кодирования больше не будет опорной областью. Аналогично вышеприведенному примеру, обработанные изображения целевого блока 506 дерева кодирования будут последовательно сохраняться в пространстве 602 памяти. The process performed at the completion of block 504 processing will be described using Fig. 57C. At this point, block 506 will be the target block. In addition, block 505 will be a reference region, and coding tree block 502 will no longer be a reference region. Similar to the above example, the processed images of the target block 506 of the coding tree will be sequentially stored in the memory space 602.

Процесс, выполняемый при завершении обработки блока 505, будет описан со ссылкой на фиг.57D. На данном этапе блок 507 будет целевым блоком. Кроме того, блок 506 будет опорной областью, и блок 503 дерева кодирования больше не будет опорной областью. Аналогично вышеприведенному примеру, обработанные изображения целевого блока 507 дерева кодирования будут последовательно сохраняться в пространстве 603 памяти. The process performed at the completion of block 505 processing will be described with reference to FIG. 57D. At this point, block 507 will be the target block. In addition, block 506 will be a reference region, and coding tree block 503 will no longer be a reference region. Similar to the above example, the processed images of the target block 507 of the coding tree will be sequentially stored in the memory space 603 .

Внутриблочное копирование с предсказанием: сторона кодирования Intrablock Predictive Copy: Encoding Side

Процедура обработки внутририблочного копирования с предсказанием на стороне кодирования будет описана со ссылкой на фиг.44.The encoding-side intra-block copy copy processing procedure will be described with reference to FIG.

Сначала детектор 375 блочного вектора обнаруживает блочный вектор mvL (этап S4500 на фиг.44). Затем блок 371 получения пространственного блочного вектора-кандидата IBC, блок 372 получения кандидата предиктора блочного вектора IBC на основе истории, пополнитель 373 кандидата предиктора блочного вектора IBC, селектор 376 кандидата предиктора блочного вектора IBC, вычитатель 378 блочного вектора вычисляют разность блочных векторов для блочного вектора, используемого в режиме предиктора блочного вектора (этапы S4501-S4503 на фиг.44). First, the block vector detector 375 detects the block vector mvL (step S4500 in FIG. 44). Then, an IBC spatial block vector candidate derivation block 371, a history-based block vector IBC predictor candidate derivation block 372, an IBC block vector predictor candidate enhancer 373, an IBC block vector predictor candidate selector 376, a block vector subtractor 378 calculate the block vector difference for the block vector used in the block vector predictor mode (steps S4501-S4503 in FIG. 44).

Кандидаты предиктора блочного вектора вычисляются для составления списка mvpList кандидатов блочного вектора (этап S4501 на фиг.44). В блоке 352 предсказания внутририблочного копирования блок 371 получения пространственного блочного вектора-кандидата IBC, блок 372 получения блочного вектора-кандидата IBC на основе истории и пополнитель 373 кандидата предиктора блочного вектора IBC получают множество кандидатов предиктора блочного вектора и составляют список кандидатов предиктора блочного вектора mvpList. Подробная процедура обработки, выполняемой на этапе S4501 на фиг.44, будет описана ниже с использованием блок-схемы на фиг.47. The block vector predictor candidates are computed to construct the block vector candidate list mvpList (step S4501 in FIG. 44). In intra-block copy prediction block 352, an IBC spatial block vector candidate derivation block 371, a history-based block vector IBC candidate derivation block 372, and an IBC block vector predictor candidate augmenter 373 obtain a plurality of block vector predictor candidates and compile a block vector predictor candidate list mvpList. The detailed procedure of the processing performed in step S4501 in FIG. 44 will be described below using the flowchart in FIG.

Затем селектор 376 кандидатов предиктора блочного вектора IBC выбирает предиктор mvpL блочного вектора из списка mvpListL кандидатов предиктора блочного вектора (этап S4502 на фиг.44). Вычисляется каждая разность блочных векторов, которая представляет собой разность между блочным вектором mvL и каждым из списка mvpListL[i] кандидатов предиктора блочного вектора, хранящихся в списке mvpListL кандидатов предиктора блочного вектора. Объем кода во время кодирования этих разностей блочных векторов вычисляется для каждого из элементов списка mvpListL кандидатов предиктора блочного вектора. Затем кандидат предиктора блочного вектора mvpListL[i], который минимизирует объем кода для каждого из кандидатов предиктора блочного вектора среди отдельных элементов, зарегистрированных в списке mvpListL кандидатов предиктора блочного вектора, выбирается в качестве предиктора блочного вектора mvpL, и получается его индекс i. В случае, когда существует множество кандидатов предиктора блочного вектора, имеющих минимальный выработанный объем кода в списке mvpListL кандидатов предиктора блочного вектора, кандидат предиктора блочного вектора mvpListL[i], имеющий индекс i в списке mvpListL кандидатов предиктора блочного вектора, представленный маленьким числом, выбирается в качестве оптимального предиктора блочного вектора mvpL, и получается его индекс i. Then, the IBC block vector predictor candidate selector 376 selects the block vector predictor mvpL from the block vector predictor candidate list mvpListL (step S4502 in FIG. 44). Each block vector difference is computed, which is the difference between the block vector mvL and each of the block vector predictor candidate list mvpListL[i] stored in the block vector predictor candidate list mvpListL. The amount of code during encoding of these block vector differences is computed for each of the elements of the block vector predictor candidate list mvpListL. Then, a block vector predictor candidate mvpListL[i] that minimizes the amount of code for each of the block vector predictor candidates among the individual elements registered in the block vector predictor candidate list mvpListL is selected as the block vector predictor mvpL, and its index i is obtained. In the case where there are a plurality of block vector predictor candidates having the minimum amount of code generated in the block vector predictor candidate list mvpListL, the block vector predictor candidate mvpListL[i] having index i in the block vector predictor candidate list mvpListL represented by a small number is selected in as the optimal predictor of the block vector mvpL, and its index i is obtained.

Затем вычитатель 378 блочных векторов вычитает выбранный предиктор блочного вектора mvpL из блочного вектора mvL и, таким образом, вычисляет разность mvdL блочных векторов в виде:The block vector subtractor 378 then subtracts the selected block vector predictor mvpL from the block vector mvL and thus computes the block vector difference mvdL as:

mvdL = mvL - mvpL (этап S4503 на фиг.44).mvdL = mvL - mvpL (step S4503 in FIG. 44).

Внутриблочное копирование с предсказанием: сторона декодированияIntrablock Predictive Copy: Decoding Side

Далее, процедура обработки режима нормального предиктора блочного вектора на стороне декодирования будет описана со ссылкой на фиг.45. На стороне декодирования блок 471 получения кандидата предиктора пространственного блочного вектора IBC, блок 472 получения блочного вектора-кандидата IBC на основе истории, и пополнитель 473 предиктора блочного вектора IBC вычисляют блочный вектор, используемый в режиме предиктора блочного вектора (этапы S4600-S4602 на фиг.45). В частности, вычисляется список mvpListL кандидатов предиктора блочного вектора, выбирается предиктор блочного вектора mvpL, и затем вычисляется блочный вектор mvL. Next, the block vector normal predictor mode processing procedure on the decoding side will be described with reference to FIG. On the decoding side, an IBC spatial block vector predictor candidate deriver 471, a history-based block vector IBC candidate deriver 472, and an IBC block vector predictor enhancer 473 calculate a block vector used in the block vector predictor mode (steps S4600 to S4602 in FIG. 45). In particular, the block vector predictor candidate list mvpListL is calculated, the block vector predictor mvpL is selected, and then the block vector mvL is calculated.

Кандидаты предиктора блочного вектора вычисляются для составления списка mvpListL кандидатов предиктора блочного вектора (этап S4601 на фиг.45). В блоке 362 предсказания внутририблочного копирования блок 471 получения пространственного блочного вектора-кандидата IBC, блок 472 получения блочного вектора-кандидата IBC на основе истории и пополнитель 473 предиктора блочного вектора IBC вычисляют множество кандидатов предиктора блочного вектора и составляют список mvpListL кандидатов предиктора блочного вектора. Описание подробной процедуры обработки, выполняемой на этапе S4601 на фиг.45, опущено. Затем селектор 476 кандидатов предиктора блочного вектора извлекает кандидата предиктора блочного вектора mvpListL[mvpIdxL], соответствующего индексу предиктора блочного вектора mvpIdxL, декодированному и предоставленному блоком 201 декодирования битовых строк, из списка mvpListL кандидатов предиктора блочного вектора, в качестве выбранного блочного вектора-предиктора mvpL (этап S4601 на фиг.45). Затем сумматор 478 блочных векторов суммирует разность mvdL блочных векторов и предиктора блочных векторов mvpL, декодированные и предоставленные блоком 201 декодирования битовых строк, и вычисляет (этап S4602 на фиг.45) блочный вектор mvL следующим образом: The block vector predictor candidates are computed to construct a block vector predictor candidate list mvpListL (step S4601 in FIG. 45). In intra-block copy prediction block 362, an IBC spatial block vector candidate derivation block 471, a history-based block vector IBC candidate derivation block 472, and an IBC block vector predictor augmenter 473 calculate a set of block vector predictor candidates and compile a list mvpListL of block vector predictor candidates. Description of the detailed processing procedure performed in step S4601 in FIG. 45 has been omitted. Then, the block vector predictor candidate selector 476 extracts the block vector predictor candidate mvpListL[mvpIdxL] corresponding to the block vector predictor index mvpIdxL decoded and provided by the bitstring decoder 201 from the block vector predictor candidate list mvpListL as the selected block predictor vector mvpL( step S4601 in Fig. 45). Then, the block vector adder 478 adds the difference mvdL of the block vectors and the block vector predictor mvpL decoded and provided by the bit string decoder 201, and calculates (step S4602 in FIG. 45) the block vector mvL as follows:

mvL = mvpL + mvdLmvL = mvpL + mvdL

Режим блочного вектора предсказания: способ предсказания блочного вектораBlock vector prediction mode: block vector prediction method

На фиг.47 показана блок-схема алгоритма, иллюстрирующая процедуру обработки предсказания процесса получения режима внутриблочного копирования, имеющего функцию, общую с блоком 352 предсказания внутририблочного копирования устройства для кодирования движущихся изображений и блоком 362 предсказания внутририблочного копирования устройства для декодирования движущихся изображений согласно варианту осуществления настоящего изобретения.Fig. 47 is a flowchart illustrating a prediction processing procedure of an intra-block copy mode acquisition process having a function in common with an intra-block copy predictor 352 of a moving picture coding apparatus and an intra-block copy predictor 362 of a moving image decoder according to an embodiment of the present. inventions.

Каждый из блока 352 предсказания внутририблочного копирования и блока 362 предсказания внутририблочного копирования включает в себя список mvpListL кандидатов предиктора блочного вектора. Список mvpListL кандидатов предиктора блочного вектора имеет структуру списка и включает в себя область хранения, которая хранит в качестве элементов индекс предиктора блочного вектора, указывающий местоположение в списке кандидатов предиктора блочного вектора, и кандидата предиктора блочного вектора, соответствующего этому индексу. Номер индекса предиктора блочного вектора начинается с 0, и кандидаты предиктора блочного вектора должны храниться в области хранения списка mvpListL кандидатов предиктора блочного вектора. В настоящем варианте осуществления предполагается, что список mvpListL кандидатов предиктора блочного вектора может регистрировать трех кандидатов предиктора блочного вектора. Кроме того, переменная numCurrMvpIbcCand, указывающая количество кандидатов предиктора блочного вектора, зарегистрированных в списке mvpListL кандидатов предиктора блочного вектора, устанавливается на 0. Each of the intra-block copy predictor 352 and the intra-block copy predictor 362 includes a block vector predictor candidate list mvpListL. The block vector predictor candidate list mvpListL has a list structure and includes a storage area that stores as elements a block vector predictor index indicating a location in the list of block vector predictor candidates and a block vector predictor candidate corresponding to that index. The block vector predictor index number starts from 0, and the block vector predictor candidates shall be stored in the block vector predictor candidate list mvpListL storage area. In the present embodiment, it is assumed that the block vector predictor candidate list mvpListL can register three block vector predictor candidates. In addition, the numCurrMvpIbcCand variable indicating the number of block vector predictor candidates registered in the block vector predictor candidate list mvpListL is set to 0.

Блоки 371 и 471 получения пространственного блочного вектора-кандидата IBC получают кандидата предиктора блочного вектора из соседнего блока на левой стороне (этап S4801 на фиг.47). В этом процессе получаются флаг availableFlagLA, указывающий то, можно ли использовать кандидат предиктора блочного вектора соседнего блока (A0 или A1) с левой стороны, и блочный вектор mvLA, и полученный mvLA будет добавлен в список mvpListL кандидатов предиктора блочного вектора. Затем блоки 371 и 471 получения пространственного блочного вектора-кандидата IBC получают кандидата предиктора блочного вектора из соседнего блока (B0, B1 или B2) на верхней стороне (этап S4802 на фиг.47). Этот процесс получает флаг availableFlagLB, указывающий то, можно ли использовать кандидат предиктора вектора движения соседнего блока на верхней стороне, и блочный вектор mvLB. Когда mvLA и mvLB не равны, блочный вектор mvLB будет добавлен в список mvpListL кандидатов предиктора блочного вектора. Процессы на этапах S4801 и S4802 на фиг.47 представлены в виде общего процесса, за исключением того, что позиции и номера опорных соседних блоков являются различными. Эти процессы получают флаг availableFlagLN, указывающий то, можно ли использовать кандидат предиктора блочного вектора для блока кодирования, и вектор движения mvLN (N указывает A или B, аналогично применяется в дальнейшем). IBC spatial block vector candidate derivation blocks 371 and 471 obtain a block vector predictor candidate from an adjacent block on the left side (step S4801 in FIG. 47). In this process, the availableFlagLA flag indicating whether the block vector predictor candidate of the adjacent block (A0 or A1) on the left side can be used and the mvLA block vector are obtained, and the resulting mvLA will be added to the block vector predictor candidate list mvpListL. Next, IBC spatial block vector candidate derivation blocks 371 and 471 obtain the block vector predictor candidate from the neighboring block (B0, B1 or B2) on the upper side (step S4802 in FIG. 47). This process obtains an availableFlagLB flag indicating whether the neighbor block motion vector predictor candidate on the upper side can be used, and the mvLB block vector. When mvLA and mvLB are not equal, the mvLB block vector will be added to the block vector predictor candidate list mvpListL. The processes in steps S4801 and S4802 in FIG. 47 are shown as a general process, except that the positions and numbers of reference neighboring blocks are different. These processes receive an availableFlagLN flag indicating whether a block vector predictor candidate for a coding block can be used, and a motion vector mvLN (N indicates A or B, similarly applied hereinafter).

Затем блоки 372 и 472 получения блочных векторов-кандидатов IBC на основе истории добавляют блочные векторы-кандидаты на основе истории, зарегистрированные в списке HmvpIbcCandList блочных векторов-кандидатов на основе истории, в список mvpListL кандидатов предиктора блочного вектора. (Этап S4803 на фиг.47). Для подробностей процедуры обработки регистрации на этапе S4803 достаточно выполнить операцию, аналогичную операции, показанной на блок-схеме на фиг.29, то есть операцию, когда вектор движения заменяется блочным вектором, список опорных индексов заменяется на L0, список HmvpCandList кандидатов предиктора вектора движения на основе истории заменяется список HmvpIbcCandList блочных векторов-кандидатов на основе истории, и, таким образом, их описание будет опущено. Then, the history-based IBC block vector candidate derivers 372 and 472 add the history-based block vector candidates registered in the history-based block vector candidate list HmvpIbcCandList to the block vector predictor candidate list mvpListL. (Step S4803 in FIG. 47). For the details of the registration processing procedure, in step S4803, it is sufficient to perform an operation similar to the operation shown in the flowchart of FIG. the history-based list HmvpIbcCandList of history-based candidate block vectors is replaced, and thus their description will be omitted.

Затем пополнители 373 и 473 предиктора блочного вектора IBC добавляют блочный вектор, имеющий предварительно определенное значение, такое как (0, 0), до тех пор, пока список mvpListL кандидатов предиктора блочного вектора не будет удовлетворен (S4804 на фиг.47).Then, the IBC block vector predictor fillers 373 and 473 add a block vector having a predetermined value such as (0, 0) until the block vector predictor candidate list mvpListL is satisfied (S4804 in FIG. 47).

Блок получения режима внутриблочного копирования со слияниемIn-block copy-and-merge mode receive block

Блок 352 предсказания внутририблочного копирования, показанный на фиг.42, включает в себя блок 371 получения пространственного блочного вектора-кандидата IBC, блок 372 получения блочного вектора-кандидата IBC на основе истории, пополнитель 373 предиктора блочного вектора IBC, блок 380 коррекции опорной позиции, блок 381 коррекции границы опорной области, селектор 374 кандидатов слияния IBC и определитель 377 режима предсказания IBC.The intra-block copy prediction block 352 shown in FIG. a reference area boundary correction block 381 , an IBC merge candidate selector 374 , and an IBC prediction mode determiner 377 .

Блок 362 предсказания внутририблочного копирования на фиг.43 включает в себя блок 471 получения пространственного блочного вектора-кандидата IBC, блок 472 получения блочного вектора-кандидата IBC на основе истории, пополнитель 473 предиктора блочного вектора IBC, селектор 474 кандидатов слияния IBC, блок 480 коррекции опорной позиции, блок 481 коррекции границы опорной области и блок 477 блочного копирования.The intra-block copy prediction block 362 of FIG. reference position, block 481 correction of the boundary of the reference area and block 477 block copy.

На фиг.46 показана блок-схема, иллюстрирующая процесс получения режима внутриблочного копирования в режиме слияния, имеющий функцию, общую с блоком 352 предсказания внутририблочного копирования устройства для кодирования движущихся изображений и блоком 362 предсказания внутририблочного копирования устройства для декодирования движущихся изображений согласно варианту осуществления настоящего изобретения.FIG. 46 is a flowchart illustrating a process of obtaining the intra-block copy mode in the merge mode having a function in common with the intra-copy predictor 352 of the moving picture encoding apparatus and the intra-copy predictor 362 of the moving picture decoding apparatus according to an embodiment of the present invention. .

Блок 352 предсказания внутририблочного копирования и блок 362 предсказания внутририблочного копирования включают в себя список mergeIbcCandList кандидатов внутриблочного копирования в режиме слияния. Список mergeIbcCandList кандидатов внутриблочного копирования в режиме слияния имеет структуру списка и включает в себя: область хранения, в которой в качестве элементов хранится индекс слияния, указывающий местоположение внутри кандидата внутриблочного копирования в режиме слияния; и кандидат внутриблочного копирования в режиме слияния, соответствующий индексу. Номер индекса слияния начинается с 0, и кандидат внутриблочного копирования в режиме слияния сохраняется в области хранения списка mergeIbcCandList кандидатов внутриблочного копирования в режиме слияния. В последующих процессах кандидат слияния индекса слияния, зарегистрированный в списке mergeIbcCandList кандидатов внутриблочного копирования в режиме слияния, будет представлен как mergeIbcCandList [i]. В настоящем варианте осуществления предполагается, что список mergeCandList кандидатов слияния позволяет зарегистрировать по меньшей мере три кандидата внутриблочного копирования в режиме слияния. Более того, переменная numCurrMergeIbcCand, указывающая количество кандидатов внутриблочного копирования в режиме слияния, зарегистрированных в списке mergeIbcCandList кандидатов внутриблочного копирования в режиме слияния, имеет значение 0. The intra-block copy predictor 352 and the intra-block copy predictor 362 include a list of mergeIbcCandList in-block copy candidates in merge mode. The list mergeIbcCandList of in-block merge-copy candidates has a list structure and includes: a storage area in which a merge index is stored as elements indicating a location within the in-block merge copy candidate; and the in-block merge-copy candidate corresponding to the index. The merge index number starts at 0, and the in-block merge-mode copy candidate is stored in the merge-in-block copy candidate list storage area mergeIbcCandList. In subsequent processes, the merge index merge candidate registered in the merge mode in-block copy merge candidate list mergeIbcCandList will be represented as mergeIbcCandList[i]. In the present embodiment, it is assumed that the merge candidate list mergeCandList allows at least three in-block copy candidates to be registered in merge mode. Moreover, the variable numCurrMergeIbcCand, which indicates the number of in-block merge copy candidates registered in the mergeIbcCandList of in-block merge copy candidates, has a value of 0.

Блок 371 получения пространственного блочного вектора-кандидата IBC и блок 471 получения пространственного блочного вектора-кандидата IBC получают кандидаты A и B пространственного слияния соседних блоков на левой и верхней сторонах целевого блока из информации кодирования, хранящейся в памяти 111 для хранения информации кодирования устройства для кодирования движущегося изображения или в памяти 205 для хранения информации кодирования устройства для декодирования движущегося изображения, и затем добавляют полученные кандидаты пространственного слияния в список mergeIbcCandList кандидатов внутриблочного копирования в режиме слияния (этап S4701 на фиг.46). В данном документе будет определено N, обозначающее один из кандидатов A и B пространственного слияния. Получаются флаг availableFlagN и блочный вектор mvL, указывающие то, может ли информация предсказания внутририблочного копирования блока N использоваться в качестве кандидата N слияния пространственного блочного вектора. Однако в настоящем варианте осуществления кандидат слияния блочных векторов получается без ссылки на другие блоки кодирования, включенные в блок, включая целевой блок кодирования. Соответственно, не будет получаться кандидат слияния пространственного блочного вектора, включенный в блок, включающий в себя целевой блок кодирования. The IBC spatial block vector candidate deriving unit 371 and the IBC spatial block vector candidate deriving unit 471 obtain spatial merging candidates A and B of neighboring blocks on the left and upper sides of the target block from the encoding information stored in the encoding information storage memory 111 of the encoding device. of the moving picture or in the memory 205 for storing encoding information of the moving picture decoding device, and then adding the obtained spatial merge candidates to the mergeIbcCandList of intra-block copy merge candidates (step S4701 in FIG. 46). In this document, N will be defined denoting one of the spatial merging candidates A and B. An availableFlagN flag and a block vector mvL are obtained indicating whether the intra-block copy prediction information of block N can be used as a spatial block vector merge candidate N. However, in the present embodiment, a block vector merge candidate is obtained without reference to other coding blocks included in the block, including the target coding block. Accordingly, a spatial block vector merge candidate included in a block including the target coding block will not be obtained.

Затем блок 372 получения кандидата блочного вектора IBC на основе истории и блок 472 получения блочного вектора-кандидата IBC на основе истории добавляют кандидаты предиктора блочного вектора на основе истории, зарегистрированные в списке HmvpIbcCandList кандидатов предиктора блочного вектора на основе истории, в список mergeIbcCandList кандидатов внутриблочного копирования в режиме слияния (этап S4702 на фиг.46). В настоящем примере, в случае, когда блочный вектор, уже добавленный в mergeIbcCandList, и блочный вектор кандидата предиктора блочного вектора на основе истории имеют одинаковое значение, не будет выполняться добавление в mergeIbcCandList. Then, the history-based IBC block vector candidate derivation unit 372 and the history-based IBC block vector candidate derivation unit 472 add the history-based block vector predictor candidates registered in the history-based block vector predictor candidate list HmvpIbcCandList to the intra-block copy candidate list mergeIbcCandList in the merge mode (step S4702 in FIG. 46). In the present example, in the case where the block vector already added to mergeIbcCandList and the block vector of history-based block vector predictor candidate have the same value, no addition to mergeIbcCandList will be performed.

Затем в случае, когда количество кандидатов numCurrMergeIbcCand слияния, зарегистрированное в списке mergeIbcCandList кандидатов внутриблочного копирования в режиме слияния меньше, чем максимальное количество кандидатов numCurrMergeIbcCand внутриблочного слияния, пополнитель 373 предиктора блочного вектора IBC и пополнитель 473 предиктора блочного вектора IBC получают дополнительный кандидат внутриблочного слияния таким образом, что количество кандидатов numCurrMergeIbcCand слияния, зарегистрированных в списке mergeIbcCandList кандидатов внутриблочного копирования в режиме слияния, находится в пределах верхнего предела максимального количества кандидатов numCurrMergeIbcCand внутриблочного слияния, и добавляют полученный кандидат в список mergeIbcCandList3 кандидатов внутриблочного копирования в режиме слияния (фиг.46). Блочный вектор, имеющий значение (0,0), будет добавлен в список mergeIbcCandList кандидатов внутриблочного копирования в режиме слияния в пределах верхнего предела максимального количества кандидатов numCurrMergeIbcCand внутриблочного слияния. Then, in the case where the number of merge candidates numCurrMergeIbcCand registered in the merge mode in-block copy candidate list mergeIbcCandList is less than the maximum number of in-block merge candidates numCurrMergeIbcCand, the IBC block vector predictor pad 373 and the IBC block vector predictor pad 473 obtain an additional intra-block merge candidate, thus that the number of merge candidates numCurrMergeIbcCand registered in the merge mode in-block copy candidate list mergeIbcCandList is within the upper limit of the maximum number of in-block merge candidates numCurrMergeIbcCand, and the resulting candidate is added to the in-block merge mode copy candidate list mergeIbcCandList3 (FIG. 46). A block vector with a value of (0,0) will be added to the list of mergeIbcCandList in-block copy candidates within the upper limit of the maximum number of in-block merge candidates numCurrMergeIbcCand.

Затем селектор 374 кандидатов слияния IBC и селектор 474 кандидатов слияния IBC выбирают один из кандидатов внутриблочного слияния, зарегистрированных в списке mergeIbcCandList кандидатов внутриблочного копирования в режиме слияния (этап S4704 на фиг.46). Селектор 374 кандидатов слияния IBC получает декодированное изображение в опорной позиции из памяти 104 декодированных изображений, вычисляет объем кода и величину искажения, тем самым выбирая кандидат слияния, и затем подает индекс слияния, указывающий выбранный кандидат внутриблочного слияния, в определитель 377 режима предсказания IBC. Определитель 377 режима предсказания IBC вычисляет объем кода и количество искажений, тем самым выбирая режим слияния, и затем подает результат в определитель 105 способа предсказания. С другой стороны, селектор 474 кандидатов слияния IBC на стороне декодирования выбирает кандидата внутриблочного слияния на основе декодированного индекса слияния, и затем передает выбранный кандидат внутриблочного слияния в блок 480 коррекции опорной позиции. Then, the IBC merge candidate selector 374 and the IBC merge candidate selector 474 select one of the intra-block merge candidates registered in the merge mode intra-block copy candidate list mergeIbcCandList (step S4704 in FIG. 46). The IBC merge candidate selector 374 receives the decoded image at the reference position from the decoded image memory 104, calculates the code amount and distortion amount, thereby selecting the merge candidate, and then supplies the merge index indicating the selected intra-block merge candidate to the IBC prediction mode determiner 377. The IBC prediction mode determiner 377 calculates the code amount and the amount of distortion, thereby selecting the merge mode, and then supplies the result to the prediction method determiner 105 . On the other hand, the IBC merge candidate selector 474 on the decoding side selects an intra-block merge candidate based on the decoded merge index, and then passes the selected intra-block merge candidate to the reference position corrector 480 .

Затем блок 380 коррекции опорной позиции и блок 480 коррекции опорной позиции выполняют процесс коррекции опорной позиции над кандидатом внутриблочного слияния (этап S4705 на фиг.46). Подробности процессов блока 380 коррекции опорной позиции и блока 480 коррекции опорной позиции будут описаны ниже. Then, the reference position correction block 380 and the reference position correction block 480 execute the reference position correction process on the intra-block merge candidate (step S4705 in FIG. 46). The details of the processes of the reference position correction block 380 and the reference position correction block 480 will be described below.

Затем блок 381 коррекции границы опорной области и блок 481 коррекции границы опорной области выполняют процесс коррекции границы опорной области над кандидатом внутриблочного слияния (этап S4706 на фиг.46). Подробности процессов, выполняемых блоком 381 коррекции опорной позиции и блоком 481 коррекции опорной позиции, будут описаны ниже. Then, the reference area boundary correction unit 381 and the reference area boundary correction unit 481 execute the reference area boundary correction process on the intra-block merge candidate (step S4706 in FIG. 46). Details of the processes performed by the reference position correction unit 381 and the reference position correction unit 481 will be described below.

Блок 477 блочного копирования получает декодированное изображение в опорной позиции из памяти 208 декодированных изображений и передает полученное изображение в блок 207 наложения сигнала декодированного изображения. В данном документе блок 477 блочного копирования копирует компонент яркости и компонент цветового различия. The block copy unit 477 receives the decoded image at the reference position from the decoded image memory 208, and transmits the obtained image to the decoded image signal overlay unit 207 . Here, the block copy block 477 copies the luminance component and the color difference component.

Вышеупомянутый блочный вектор mvL представляет блочный вектор яркости. Когда формат цветового различия равен 420, блочный вектор mvC цветового различия получается следующим образом: The above block vector mvL represents the luminance block vector. When the color difference format is 420, the mvC block vector of the color difference is obtained as follows:

mvC = ((mvL >> (3 + 2)) * 32mvC = ((mvL >> (3 + 2)) * 32

С помощью приведенного выше уравнения будет обработан каждый из компонентов x и y mvC.The above equation will process each of the x and y components of mvC.

Блок коррекции опорной позицииReference position correction block

На фиг.48 показана блок-схема, иллюстрирующая процесс, выполняемый блоком 380 коррекции опорной позиции и блоком 480 коррекции опорной позиции. В данном документе предполагается, что единицей стандартного блока внутриблочного копирования является блок дерева кодирования (CTU), и его размер не равен 128×128 выборок. FIG. 48 is a flowchart illustrating a process performed by the reference position correction block 380 and the reference position correction block 480. FIG. This document assumes that the unit of the standard intra-block copy unit is a coding tree unit (CTU) and its size is not 128×128 samples.

Сначала вычисляются верхняя левая и нижняя правая позиции опорного блока (S6001). Опорный блок относится к блоку, на который ссылается целевой блок кодирования с использованием блочного вектора. Когда в опорном блоке определено, что верхняя левая позиция имеет координаты (xRefTL, yRefTL), и нижняя правая позиция имеет координаты (xRefBR, yRefBR), будет получено следующее выражение: First, the upper left and lower right positions of the reference block are calculated (S6001). The reference block refers to the block referenced by the target encoding block using the block vector. When it is determined in the reference block that the top left position has coordinates (xRefTL, yRefTL) and the bottom right position has coordinates (xRefBR, yRefBR), the following expression will be obtained:

(xRefTL, yRefTL) = (xCb + (mvL [0] >> 4), yCb + (mvL [1] >> 4))(xRefTL, yRefTL) = (xCb + (mvL[0] >> 4), yCb + (mvL[1] >> 4))

(xRefBR, yRefBR) = (xRefTL + cbWidth - 1, yRefTL + cbHeight - 1)(xRefBR, yRefBR) = (xRefTL + cbWidth - 1, yRefTL + cbHeight - 1)

В данном документе позиция целевого блока кодирования имеет координаты (xCb, yCb), блочный вектор – (mvL [0], mvL [1]), ширина целевого блока кодирования равна cbWidth, и высота равна cbHeight.In this document, the position of the target encoding block has coordinates (xCb, yCb), the block vector is (mvL[0], mvL[1]), the width of the target encoding block is cbWidth, and the height is cbHeight.

Затем определяется то, равен ли размер CTU 128×128 выборок (S6002). В данном документе, так как размер не равен 128×128 выборок (S6002: Нет), вычисляются верхнюю левую и нижнюю правую позиции области (S6003), на которую можно ссылаться. Когда верхняя левая позиции (xAvlTL, yAvlTL) и нижняя правая позиция (xAvlBR, yAvlBR) в области, на которую можно ссылаться, отдельные позиции будут получены следующим образом: It is then determined whether the CTU size is 128×128 samples (S6002). Herein, since the size is not 128×128 samples (S6002: No), the top left and bottom right positions of the area that can be referred to are calculated (S6003). When the top left position (xAvlTL, yAvlTL) and bottom right position (xAvlBR, yAvlBR) are in the area that can be referenced, the individual positions will be obtained as follows:

NL = Min (1, 7-CtbLog2SizeY) - (1 << ((7-CtbLog2SizeY) << 1))NL = Min(1, 7-CtbLog2SizeY) - (1 << ((7-CtbLog2SizeY) << 1))

(xAvlTL, yAvlTL) = (((xCb >> CtbLog2SizeY) + NL) << CtbLog2SizeY,(xAvlTL, yAvlTL) = (((xCb >> CtbLog2SizeY) + NL) << CtbLog2SizeY,

(yCb >> CtbLog2SizeY) << CtbLog2SizeY))(yCb >> CtbLog2SizeY) << CtbLog2SizeY))

(xAvlBR, yAvlBR) = (((xCb >> CtbLog2SizeY) << CtbLog2SizeY) -1,(xAvlBR, yAvlBR) = (((xCb >> CtbLog2SizeY) << CtbLog2SizeY) -1,

(((yCb >> CtbLog2SizeY) + 1) << CtbLog2SizeY) -1)(((yCb >> CtbLog2SizeY) + 1) << CtbLog2SizeY) -1)

В данном документе размер CTU равен CtbLog2SizeY.In this document, the CTU size is CtbLog2SizeY.

Затем определяется то, меньше ли опорная позиция опорного блока в направлении x, чем верхний левый участок области (S6004), на которую можно ссылаться. Когда определение является ложным (S6004: Нет), процесс переходит к следующему процессу (S6006). Напротив, когда определение является истинным (S6004: Да), опорная позиция в направлении x будет скорректирована в соответствии с верхним левым участком области (S6005), на которую можно ссылаться. It is then determined whether the reference position of the reference block in the x direction is smaller than the upper left portion of the area that can be referred to. When the determination is false (S6004: No), the process advances to the next process (S6006). On the contrary, when the determination is true (S6004: Yes), the reference position in the x direction will be corrected according to the upper left portion of the area (S6005) that can be referred to.

На фиг.49 показано схематичное представление, иллюстрирующее состояние коррекции опорной позиции. Ссылочная позиция 6001 обозначает целевой блок дерева кодирования, 6002 обозначает целевой блок кодирования, и 6003 обозначает область, на которую можно ссылаться. Теперь, при условии, что опорный блок r2 расположен в позиции 6011, опорная позиция в направлении x меньше, чем верхний левый участок области, на которую можно ссылаться (S6004: Да). Таким образом, опорная позиция корректируется перед позицией 6012, при условии, что xRefTL = xAvlTL (S6005). В данном документе, так как xRefBR = xRefTL + cbWidth-1 сохраняется, как в S6001, xRefBR также будет скорректирован совместно с скоррекцией xRefTL. При этой коррекции опорной позиции может быть скорректирован блочный вектор mvL [0]. То есть коррекция выполняется следующим образом: Fig. 49 is a schematic diagram illustrating a state of reference position correction. Reference numeral 6001 denotes a target coding tree block, 6002 denotes a target coding unit, and 6003 denotes an area that can be referred to. Now, assuming that the reference block r2 is located at position 6011, the reference position in the x direction is smaller than the upper left portion of the referenced area (S6004: Yes). Thus, the reference position is corrected before position 6012 under the condition that xRefTL = xAvlTL (S6005). In this document, since xRefBR = xRefTL + cbWidth-1 is kept as in S6001, xRefBR will also be adjusted along with the xRefTL adjustment. With this reference position correction, the block vector mvL[0] can be corrected. That is, the correction is performed as follows:

mvL [0] = (xAvlTL - xCb) << 4.mvL[0] = (xAvlTL - xCb) << 4.

Это удовлетворяет xRefTL = xAvlTL, что позволяет скорректировать опорную позицию.This satisfies xRefTL = xAvlTL, which allows the reference position to be corrected.

Таким образом, в случае, когда опорный блок расположен за пределами области, на которую можно ссылаться, коррекция опорной позиции позволит ссылаться на опорный блок.Thus, in the case where the reference block is located outside the area that can be referred to, the correction of the reference position will allow the reference block to be referenced.

Теперь предполагается, что некоторые блочные векторы в списке блочных векторов-кандидатов, составленном блоком 352 предсказания внутририблочного копирования, находятся за пределами области, на которую можно ссылаться. В случае, когда опорная позиция не подлежит коррекции, на эти блочные вектора невозможно будет ссылаться, запрещая добавление этих блочных векторов к кандидатам для режима слияния IBC. Напротив, в случае, когда опорная позиция должна быть скорректирована в настоящем изобретении, все блочные векторы в составленном списке кандидатов блочных векторов будут находиться внутри области, на которую можно ссылаться. Это сделает все блочные векторы доступными для ссылок, что позволит добавить все блочные векторы к кандидатам для режима слияния IBC. Таким образом, селектор 374 режима слияния IBC может выбрать оптимальный режим предсказания из каждого из кандидатов режима слияния IBC, соответствующих всем блочным векторам, что приводит к повышению эффективности кодирования. It is now assumed that some of the block vectors in the list of block vector candidates compiled by intra-block copy predictor 352 are outside the region that can be referenced. In the case where the reference position is not subject to correction, these block vectors will not be referenced, disallowing the addition of these block vectors to candidates for the IBC merge mode. In contrast, in the case where the reference position is to be adjusted in the present invention, all of the block vectors in the compiled list of block vector candidates will be within the area that can be referenced. This will make all block vectors linkable, allowing all block vectors to be added to candidates for IBC merge mode. Thus, the IBC merge mode selector 374 can select the optimal prediction mode from each of the IBC merge mode candidates corresponding to all block vectors, resulting in improved coding efficiency.

Теперь предполагается, что некоторые блочные векторы в списке блочных векторов-кандидатов, составленном блоком 362 предсказания внутририблочного копирования, находятся за пределами области, на которую можно ссылаться. В случае, когда опорная позиция не должна корректироваться, к этим блочным векторам будет невозможно обращаться, что приведет отключению декодирования в режиме слияния IBC с использованием этих блочных векторов. В устройстве кодирования, которое не является настоящим изобретением, индекс слияния указывает режим слияния IBC при условии, что эти блочные векторы действуют как некодированные. Однако такой индекс слияния может быть закодирован для выработки битового потока из-за сбоя операции или тому подобного. В других случаях часть битового потока может быть утеряна из-за потери пакета или тому подобного, и результатом декодирования может быть такой индекс слияния. При попытке декодировать такой неполный битовый поток существует возможность обращения к памяти декодированных изображений в неправильной позиции при попытке обратиться за пределами области, на которую можно ссылаться. Таким образом, результат декодирования отличается в зависимости от устройства декодирования, или процесс декодирования останавливается. Напротив, в случае, когда опорная позиция должна быть скорректирована в настоящем изобретении, все блочные векторы в составленном списке кандидатов блочных векторов будут находиться внутри области, на которую можно ссылаться. Таким образом, даже тогда, когда декодируется такой неполный битовый поток, опорная позиция будет скорректирована внутри области, на которую можно ссылаться, что позволяет ей быть опорной. Таким образом, коррекция опорной позиции позволяет гарантировать диапазон обращения к памяти. Это приводит к получению того же результата декодирования устройством декодирования, что позволяет продолжить процесс декодирования, что, в свою очередь, приводит к повышению устойчивости устройства декодирования. It is now assumed that some of the block vectors in the list of block vector candidates compiled by intra-block copy predictor 362 are outside the region that can be referenced. In the case where the reference position is not to be adjusted, these block vectors will not be accessible, which will disable IBC merge mode decoding using these block vectors. In an encoder that is not the present invention, the merge index indicates the IBC merge mode, provided that these block vectors act as unencoded. However, such a merge index may be coded to generate a bitstream due to an operation failure or the like. In other cases, a portion of the bitstream may be lost due to packet loss or the like, and such a merge index may be the result of decoding. When attempting to decode such an incomplete bitstream, there is a possibility that decoded image memory is accessed at the wrong position when attempting to access outside of the area that can be referenced. Thus, the decoding result differs depending on the decoding apparatus, or the decoding process is stopped. In contrast, in the case where the reference position is to be adjusted in the present invention, all of the block vectors in the compiled list of block vector candidates will be within the region that can be referenced. Thus, even when such an incomplete bitstream is decoded, the reference position will be adjusted within the area that can be referred to, allowing it to be a reference. Thus, the reference position correction makes it possible to guarantee the memory access range. This leads to the same decoding result by the decoding device, which allows the decoding process to continue, which in turn leads to an increase in the stability of the decoding device.

Кроме того, в случае, когда блочный вектор должен быть скорректирован при коррекции опорной позиции, целью является блочный вектор яркости. В данном документе блочный вектор цветового различия вычисляется из блочного вектора яркости. То есть коррекция блочного вектора яркости также корректирует блочный вектор цветового различия. Таким образом, нет необходимости снова корректировать опорную позицию по цветовому различию. Объем обработки может быть уменьшен по сравнению со случаем, когда коррекция блочного вектора не выполняется и возникает необходимость определять, возможна ли ссылка на основе как яркости, так и цветового различия.In addition, in the case where the block vector is to be corrected when correcting the reference position, the target is the luminance block vector. In this document, a color difference block vector is computed from a luminance block vector. That is, the luminance block vector correction also corrects the color difference block vector. Thus, it is not necessary to correct the reference position for the color difference again. The amount of processing can be reduced compared to the case where no block vector correction is performed and it becomes necessary to determine whether a reference is possible based on both brightness and color difference.

Кроме того, в случае, когда блочный вектор должен быть скорректирован при коррекции опорной позиции, скорректированный блочный вектор будет сохранен в памяти 111 для хранения информации кодирования или памяти 205 для хранения информации кодирования как блочный вектор целевого блока кодирования. То есть скорректированная опорная позиция и позиция, указанная блочным вектором, являются одинаковыми. В данном документе хранение результата декодирования в памяти декодированных изображений иногда включает в себя процесс фильтрации с удалением блочности. В этом процессе фильтрации управление мощностью фильтра осуществляется за счет разницы между блочными векторами двух блоков, находящихся перед границей блока. По сравнению со случаем, когда блочный вектор не скорректирован, и скорректированная опорная позиция отличается от позиции, которую указывает блочный вектор, можно получить дополнительную соответствующую мощность фильтра, которая приводит к повышению эффективности кодирования. In addition, in the case where the block vector needs to be corrected when correcting the reference position, the corrected block vector will be stored in the encoding information storage memory 111 or the encoding information storage memory 205 as the block vector of the encoding target block. That is, the adjusted reference position and the position indicated by the block vector are the same. Herein, storing a decoding result in decoded picture memory sometimes includes a deblocking filtering process. In this filtering process, the filter power is controlled by the difference between the block vectors of the two blocks before the block boundary. Compared with the case where the block vector is uncorrected and the corrected reference position differs from the position indicated by the block vector, additional corresponding filter power can be obtained, which results in improved coding efficiency.

Затем определяется то, меньше ли опорная позиция опорного блока в направлении y, чем верхний левый участок области, на которую можно ссылаться (S6006). Когда определение является ложным (S6006: Нет), процесс переходит к следующему процессу (S6008). Напротив, когда определение является истинным (S6006: Да), опорная позиция в направлении y будет скорректирована в соответствии с верхним левым участком области (S6007), на которую можно ссылаться. It is then determined whether the reference position of the reference block in the y direction is smaller than the upper left portion of the area that can be referred to (S6006). When the determination is false (S6006: No), the process advances to the next process (S6008). On the contrary, when the determination is true (S6006: Yes), the reference position in the y direction will be corrected according to the upper left portion of the area (S6007) that can be referred to.

Теперь, при условии, что опорный блок r4 расположен в позиции 6021, опорная позиция в направлении y меньше верхнего левого участка области, на которую можно ссылаться (S6006: Да). Таким образом, опорная позиция корректируется перед позицией 6022, при условии, что yRefTL = yAvlTL (S6007). В данном документе, так как yRefBR = yRefTL + cbHeight-1 выполняется, как в S6001, yRefBR также будет скорректирован вместе с коррекцией yRefTL. При этой коррекции опорной позиции может быть скорректирован блочный вектор mvL [1]. То есть коррекция выполняется следующим образом: Now, assuming that the reference block r4 is located at position 6021, the reference position in the y direction is smaller than the upper left portion of the referenced area (S6006: Yes). Thus, the reference position is corrected before position 6022, provided that yRefTL=yAvlTL (S6007). In this document, since yRefBR = yRefTL + cbHeight-1 is performed as in S6001, yRefBR will also be corrected along with the yRefTL correction. With this correction of the reference position, the block vector mvL [1] can be corrected. That is, the correction is performed as follows:

mvL [1] = (yAvlTL - yCb) << 4mvL[1] = (yAvlTL - yCb) << 4

Это удовлетворяет yRefTL = yAvlTL, что позволяет корректировать опорную позицию.This satisfies yRefTL = yAvlTL, which allows the reference position to be corrected.

Затем определяется то, больше ли опорная позиция опорного блока в направлении x, чем нижний правый участок области, на которую можно ссылаться (S6008). Когда определение является ложным (S6008: Нет), процесс переходит к следующему процессу (S6010). Напротив, когда определение является истинным (S6008: Да), опорная позиция в направлении x будет скорректирована в соответствии с нижним правым участком области, на которую можно ссылаться (S6009). It is then determined whether the reference position of the reference block in the x direction is larger than the lower right portion of the area that can be referred to (S6008). When the determination is false (S6008: No), the process advances to the next process (S6010). On the contrary, when the determination is true (S6008: Yes), the reference position in the x direction will be corrected according to the lower right portion of the referenced area (S6009).

Теперь, при условии, что опорный блок r7 расположен в позиции 6031, опорная позиция в направлении x больше, чем нижний правый участок области, на которую можно ссылаться (S6008: Да). Таким образом, опорная позиция корректируется перед позицией 6032, при условии, что xRefBR = xAvlBR (S6009). В данном документе, так как xRefBR = xRefTL + cbWidth-1 выполняется, как в S6001, то есть выполняется xRefTL = xRefBR- (cbWidth-1), xRefTL также будет скорректирован вместе с коррекцией xRefBR. При этой коррекции опорной позиции может быть скорректирован блочный вектор mvL [0]. То есть коррекция выполняется следующим образом: Now, assuming that the reference block r7 is located at position 6031, the reference position in the x direction is larger than the lower right portion of the referenced area (S6008: Yes). Thus, the reference position is corrected before position 6032 under the condition that xRefBR = xAvlBR (S6009). In this document, since xRefBR = xRefTL + cbWidth-1 is performed as in S6001, that is, xRefTL = xRefBR-(cbWidth-1) is performed, xRefTL will also be adjusted along with the xRefBR correction. With this reference position correction, the block vector mvL[0] can be corrected. That is, the correction is performed as follows:

mvL [0] = (xAvlBR- (xCb + cbWidth-1)) << 4mvL[0]=(xAvlBR-(xCb+cbWidth-1)) << 4

Это удовлетворяет xRefBR = xAvlBR, что позволяет скорректировать опорную позицию.This satisfies xRefBR = xAvlBR, which allows the reference position to be corrected.

Затем определяется то, больше ли опорная позиция опорного блока в направлении y, чем нижний правый участок области, на которую можно ссылаться (S6010). Когда определение является ложным (S6010: Нет), процесс заканчивается. Напротив, когда определение является истинным (S6010: Да), опорная позиция в направлении y будет скорректирована в соответствии с нижним правым участком области, на которую можно ссылаться (S6011). It is then determined whether the reference position of the reference block in the y direction is larger than the lower right portion of the area that can be referred to (S6010). When the determination is false (S6010: No), the process ends. On the contrary, when the determination is true (S6010: Yes), the reference position in the y direction will be adjusted according to the lower right portion of the referenced area (S6011).

Теперь, при условии, что опорный блок r5 расположен в позиции 6041, опорная позиция в направлении y больше правого нижнего участка области, на которую можно ссылаться (S6010: Да). Таким образом, опорная позиция корректируется перед позицией 6042, при условии, что yRefBR = yAvlBR (S6011). В данном документе, так как yRefBR = yRefTL + cbHeight-1 выполняется, как в S6001, то есть выполняется yRefTL = yRefBR- (cbHeight-1), yRefTL также будет скорректирован вместе с коррекцией yRefBR. При этой коррекции опорной позиции может быть скорректирован блочный вектор mvL [1]. То есть коррекция выполняется следующим образом: Now, assuming that the reference block r5 is located at position 6041, the reference position in the y direction is larger than the lower right portion of the referenced area (S6010: Yes). Thus, the reference position is corrected before position 6042, provided that yRefBR = yAvlBR (S6011). In this document, since yRefBR = yRefTL + cbHeight-1 is performed as in S6001, i.e., yRefTL = yRefBR-(cbHeight-1) is performed, yRefTL will also be adjusted along with the yRefBR correction. With this correction of the reference position, the block vector mvL [1] can be corrected. That is, the correction is performed as follows:

mvL [1] = (yAvlBR- (yCb + cbHeitght-1)) << 4mvL[1] = (yAvlBR-(yCb+cbHeitght-1)) << 4

Это удовлетворяет yRefBR = yAvlBR, что позволяет скорректировать опорную позицию.This satisfies yRefBR = yAvlBR, which allows the reference position to be corrected.

В данном документе будет описан случай, когда опорный блок r1 расположен в позиции 6051. В этом случае опорная позиция в направлении x корректируется аналогично случаю, когда опорным блоком является r2. Кроме того, аналогично случаю, когда опорным блоком является r4, опорная позиция в направлении y корректируется. В результате опорный блок r1 будет расположен в позиции 6052 внутри области, на которую можно ссылаться. Herein, the case where the reference block r1 is located at position 6051 will be described. In this case, the reference position in the x direction is adjusted in the same way as when the reference block is r2. In addition, similar to the case where the reference block is r4, the reference position in the y direction is corrected. As a result, reference block r1 will be located at position 6052 within the area that can be referenced.

В случае, когда опорный блок r3 расположен в позиции 6061, где опорный блок r6 расположен в позиции 6062, или где опорный блок r8 расположен в позиции 6063, опорная позиция в каждом из направлений x и y корректируется аналогично вышеуказанному случаю. В результате каждый опорный блок располагается внутри области, на которую можно ссылаться. In the case where the reference block r3 is located at position 6061, where the reference block r6 is located at position 6062, or where the reference block r8 is located at position 6063, the reference position in each of the x and y directions is adjusted similarly to the above case. As a result, each anchor block is located within the area that can be referenced.

Вышеупомянутая процедура завершает процесс для случая, когда размер CTU не равен 128×128 выборок. Напротив, в случае, когда размер CTU составляет 128×128 выборок (S6002: Да), вычисляются верхняя левая и нижняя правая позиции, когда область, на которую можно ссылаться, является прямоугольной (S6012). The above procedure terminates the process for the case where the CTU size is not 128×128 samples. On the contrary, in the case where the CTU size is 128×128 samples (S6002: Yes), the top left and bottom right positions are calculated when the area that can be referred to is rectangular (S6012).

На фиг.50 показано схематичное представление, иллюстрирующее верхнюю левую и нижнюю правую позиции, когда область, на которую можно ссылаться, является прямоугольной. В случае, показанном на фиг.50A, целевой блок 6101 дерева кодирования разделен на четыре части, и целевой блок 6102 кодирования расположен сверху слева разделенных позиций. На данном этапе область, на которую можно ссылаться, имеет перевернутую L-образную форму, такую как заштрихованный участок в позиции 6103. В случае, когда область, на которую можно ссылаться, является прямоугольной, диапазоном будет диапазон прямоугольной области 6103. В случае, когда опорная область является прямоугольной, и когда верхняя левая часть опорного блока определена как (xRefTL, yRefTL), и его нижняя правая часть определена как (xRefBR, yRefBR), будет получено следующее выражение: Fig. 50 is a schematic diagram illustrating the top left and bottom right positions when the area that can be referred to is rectangular. In the case shown in FIG. 50A, the target coding tree block 6101 is divided into four parts, and the target coding block 6102 is located at the top left of the divided positions. At this stage, the referenced area has an inverted L-shape, such as the hatched portion at 6103. In the case where the referenced area is rectangular, the range will be the range of the rectangular area 6103. In the case where the reference area is rectangular, and when the top left of the reference block is defined as (xRefTL, yRefTL) and its bottom right is defined as (xRefBR, yRefBR), the following expression will be obtained:

offset [4] = {0, 64, 128, 128}offset[4] = {0, 64, 128, 128}

NL = -offset [3-blk_idx], NR = offset [blk_idx]NL=-offset[3-blk_idx], NR=offset[blk_idx]

(xAvlTL, yAvlTL) = ((xCb >> CtbLog2SizeY) << CtbLog2SizeY + NL,(xAvlTL, yAvlTL) = ((xCb >> CtbLog2SizeY) << CtbLog2SizeY + NL,

(yCb >> CtbLog2SizeY) << CtbLog2SizeY))(yCb >> CtbLog2SizeY) << CtbLog2SizeY))

(xAvlBR, yAvlBR) = (((xCb >> CtbLog2SizeY) << CtbLog2SizeY)-1 + NR,(xAvlBR, yAvlBR) = (((xCb >> CtbLog2SizeY) << CtbLog2SizeY)-1 + NR,

(((yCb >> CtbLog2SizeY) + 1) << CtbLog2SizeY)-1).(((yCb >> CtbLog2SizeY) + 1) << CtbLog2SizeY)-1).

Здесь blk_idx – индекс, указывающий позицию целевого блока кодирования. В случае, когда целевой блок кодирования расположен в верхней левой позиции после разделения на четыре части целевого блока дерева кодирования, параметр настройку будет представлять собой: blk_idx = 0. Аналогичным образом, в случае, когда целевые блоки кодирования расположены в верхней правой, нижней левой и нижней правой позициях, blk_idx будет установлен в 1, 2 и 3. На фиг.50A показано схематичное представление, иллюстрирующее случай, где blk_idx = 0. Аналогичным образом, на фиг.50B-50D показаны схематичные представления, иллюстрирующие случаи, когда blk_idx = 1 – blk_idx = 3, соответственно. Here, blk_idx is an index indicating the position of the target coding block. In the case where the target coding block is located at the top left position after the division into four parts of the target block of the coding tree, the tuning parameter will be: blk_idx = 0. Similarly, in the case where the target coding blocks are located at the top right, bottom left, and bottom right positions, blk_idx will be set to 1, 2, and 3. FIG. 50A is a schematic diagram illustrating the case where blk_idx = 0. Similarly, FIGS. 50B-50D are schematic diagrams illustrating cases where blk_idx = 1 – blk_idx = 3, respectively.

Затем корректируется опорная позиция непрямоугольной опорной области (S6013). На фиг.51 показана блок-схема алгоритма, иллюстрирующая процесс коррекции опорной позиции участка области, на которую можно ссылаться и которая не является прямоугольной. Сначала вычисляется (S6021) верхняя левая позиции области, на которую можно ссылаться. Так как область, на которую можно ссылаться, представляет собой заштрихованный участок на фиг.50, имеются две верхние левые позиции 6111 и 6112, за исключением случая, когда blk_idx = 3. Когда эти две точки имеют координаты (X1, Y1), (X2, Y2), соответственно, позиции рассчитываются следующим образом: Then, the reference position of the non-rectangular reference area is corrected (S6013). FIG. 51 is a flowchart illustrating a process for correcting the reference position of a portion of an area that can be referenced and is not rectangular. First, the upper left position of the area that can be referred to is calculated (S6021). Since the area that can be referred to is the shaded area in FIG. 50, there are two upper left positions 6111 and 6112 except when blk_idx = 3. When these two points have coordinates (X1, Y1), (X2 , Y2), respectively, positions are calculated as follows:

offset [4] = {64, 128, 64, 0}, NL = offset [blk_idx]offset[4] = {64, 128, 64, 0}, NL = offset[blk_idx]

(X1, Y1) = (xAvlTL, yAvlTL + 64)(X1, Y1) = (xAvlTL, yAvlTL + 64)

(X2, Y2) = (xAvlTL + NL, yAvlTL)(X2, Y2) = (xAvlTL + NL, yAvlTL)

Затем определяется (S6022) то, должна ли быть скорректирована опорная позиция в соответствии с верхним левым участком области, на которую можно ссылаться. В этом определении определяется, что это истина будет в случае, когда blk_idx = 3 не удовлетворяется, и опорный блок расположен в области меньше, чем X2 и Y1 (S6022: Да). В случае ложного определения (S6022: Нет) процесс переходит к следующему процессу (S6026). Then, it is determined (S6022) whether the reference position is to be corrected according to the upper left portion of the referenced area. In this determination, it is determined that it will be true in the case where blk_idx = 3 is not satisfied and the reference block is located in an area smaller than X2 and Y1 (S6022: Yes). In case of a false determination (S6022: No), the process advances to the next process (S6026).

Затем определяется то, меньше ли разница между опорным блоком и областью, на которую можно ссылаться, в направлении x, чем разница между опорным блоком и областью, на которую можно ссылаться, в направлении y (S6023). В случае, когда определение является истинным (S6023: Да), будет скорректирована (S6024) опорная позиция в направлении x. Напротив, в случае, когда определение является ложным (S6023: Нет), будет скорректирована (S6025) опорная позиция в направлении y. It is then determined whether the difference between the reference block and the referenced area in the x direction is smaller than the difference between the reference block and the referenced area in the y direction (S6023). In the case where the determination is true (S6023: Yes), the reference position in the x direction will be corrected (S6024). On the contrary, in the case where the determination is false (S6023: No), the reference position in the y direction will be corrected (S6025).

На фиг.52A показано схематичное представление, иллюстрирующее состояние коррекции опорной позиции на этапах S6024 и S6025. Теперь blk_idx = 0. При условии, что опорный блок r1 расположен в позиции 6201, blk_idx = 3 не удовлетворяется, и верхний левый опорный блок расположен в области меньше, чем X2 (направление x 6112) и Y1 (направление y 6111) (S6022: Да). Кроме того, разница между опорным блоком и областью, на которую можно ссылаться, в направлении x меньше, чем разница между опорным блоком и областью, на которую можно ссылаться, в направлении y (S6023: Да). Таким образом, опорная позиция в направлении x будет скорректирована перед позицией 6202, при условии, что xRefTL = xAvlTL + NL (S6024). В данном документе, так как xRefBR = xRefTL + cbWidth-1 сохраняется, как в S6001, xRefBR также будет скорректирован совместно с скоррекцией xRefTL. При этой коррекции опорной позиции может быть скорректирован блочный вектор mvL [0]. То есть коррекция выполняется следующим образом: 52A is a schematic diagram illustrating the state of the reference position correction in steps S6024 and S6025. Now, blk_idx = 0. Assuming that the reference block r1 is located at position 6201, blk_idx = 3 is not satisfied, and the upper left reference block is located in an area less than X2 (x direction 6112) and Y1 (y direction 6111) (S6022: Yes). In addition, the difference between the reference block and the referenced area in the x direction is smaller than the difference between the reference block and the referenced area in the y direction (S6023: Yes). Thus, the reference position in the x direction will be corrected before position 6202, provided that xRefTL = xAvlTL + NL (S6024). In this document, since xRefBR = xRefTL + cbWidth-1 is kept as in S6001, xRefBR will also be adjusted along with the xRefTL adjustment. With this reference position correction, the block vector mvL[0] can be corrected. That is, the correction is performed as follows:

mvL [0] = (xAvlTL + NL-xCb) << 4mvL[0] = (xAvlTL + NL-xCb) << 4

Это удовлетворяет xRefTL = xAvlTL + NL, что позволяет скорректировать опорную позицию.This satisfies xRefTL = xAvlTL + NL, which allows the reference position to be corrected.

Напротив, когда опорный блок r2 расположен в позиции 6203, blk_idx = 3 не удовлетворяется, и верхний левый участок опорного блока расположен в области меньше, чем X2 (6112 направление x) и Y1 (6111 направление y). (S6022: Да). Кроме того, разница между опорным блоком и областью, на которую можно ссылаться, в направлении x не меньше, чем разница между опорным блоком и областью, на которую можно ссылаться, в направлении y (S6023: Нет). Таким образом, опорная позиция в направлении y корректируется перед позицией 6204, при условии, что yRefTL = yAvlTL + 64 (S6025). В данном документе, так как yRefBR = yRefTL + cbHeight-1 выполняется, как в S6001, yRefBR также будет скорректирован вместе с коррекцией yRefTL. При этой коррекции опорной позиции может быть скорректирован блочный вектор mvL [0]. То есть коррекция выполняется следующим образом: In contrast, when the reference block r2 is located at position 6203, blk_idx = 3 is not satisfied, and the upper left portion of the reference block is located in an area smaller than X2 (6112 x direction) and Y1 (6111 y direction). (S6022: Yes). In addition, the difference between the reference block and the referenced area in the x direction is not less than the difference between the reference block and the referenced area in the y direction (S6023: No). Thus, the reference position in the y direction is corrected before position 6204, provided that yRefTL = yAvlTL + 64 (S6025). In this document, since yRefBR = yRefTL + cbHeight-1 is performed as in S6001, yRefBR will also be corrected along with the yRefTL correction. With this reference position correction, the block vector mvL[0] can be corrected. That is, the correction is performed as follows:

mvL [1] = (yAvlTL + 64-yCb) << 4mvL[1] = (yAvlTL + 64-yCb) << 4

Это удовлетворяет yRefTL = yAvlTL + 64, что позволяет корректировать опорную позицию.This satisfies yRefTL = yAvlTL + 64, which allows the reference position to be corrected.

В данном документе предполагается, что опорный блок r3 расположен в позиции 6205. В этом случае разница между опорным блоком и областью, на которую можно ссылаться, в направлении x меньше, чем разница между опорным блоком и областью, на которую можно ссылаться, в направление y (S6023: Да). Соответственно, опорная позиция в направлении x корректируется аналогично опорному блоку r1, чтобы находиться в позиции 6206 (S6024). В этот момент контрольный блок находится за пределами области, на которую можно ссылаться. Однако опорная позиция в направлении y корректируется процессами S6006 и S6007, описанными ниже. Таким образом, опорный блок расположен внутри области, на которую можно ссылаться. In this document, reference block r3 is assumed to be located at position 6205. In this case, the difference between the reference block and the referenced area in the x direction is smaller than the difference between the reference block and the referenced area in the y direction. (S6023: Yes). Accordingly, the reference position in the x direction is corrected similarly to the reference block r1 to be at position 6206 (S6024). At this point, the control block is outside of the area that can be referenced. However, the reference position in the y direction is corrected by processes S6006 and S6007 described below. Thus, the reference block is located within the area that can be referenced.

Затем вычисляется нижняя правая позиция области, на которую можно ссылаться (S6026). Так как область, на которую можно ссылаться, представляет собой заштрихованный участок на фиг.50, имеются две нижние правые позиции, 6113 и 6114, за исключением случая, когда blk_idx = 0. Когда эти две точки имеют координаты (X3, Y3) и (X4, Y4), соответственно, позиции рассчитываются следующим образом: Then, the lower right position of the area that can be referred to is calculated (S6026). Since the area that can be referred to is the shaded area in Fig. 50, there are two lower right positions, 6113 and 6114, except when blk_idx = 0. When these two points have coordinates (X3, Y3) and ( X4, Y4), respectively, positions are calculated as follows:

offset [4] = {0, 64, 128, 64}, NR = offset [blk_idx]offset[4] = {0, 64, 128, 64}, NR = offset[blk_idx]

(X3, Y3) = (xAvlBR, yAvlBR-64)(X3, Y3) = (xAvlBR, yAvlBR-64)

(X4, Y4) = (xAvlBR-NR, yAvlBR)(X4, Y4) = (xAvlBR-NR, yAvlBR)

Затем определяется, будет ли скорректирована опорная позиция в соответствии с нижним правым участком области, на которую можно ссылаться (S6027). В этом определении определяется, что это истина, когда blk_idx не равно 0 и опорный блок расположен в области, большей, чем X4 и Y3 (S6027: Да). В случае, когда определение является ложным (S6027: Нет), процесс завершается. It is then determined whether the reference position will be corrected according to the bottom right portion of the referenced area (S6027). In this determination, it is determined that it is true when blk_idx is not equal to 0 and the reference block is located in an area larger than X4 and Y3 (S6027: Yes). In the case where the determination is false (S6027: No), the process ends.

Затем определяется то, меньше ли разница между опорным блоком и областью, на которую можно ссылаться, в направлении x, чем разница между опорным блоком и областью, на которую можно ссылаться, в направлении y (S6028). В случае, когда определение является истинным (S6028: Да), опорная позиция будет скорректирована (S6029) в направлении x. Напротив, в случае, когда определение является ложным (S6028: Нет), опорная позиция будет скорректирована (S6030) в направлении y. It is then determined whether the difference between the reference block and the referenced area in the x direction is smaller than the difference between the reference block and the referenced area in the y direction (S6028). In the case where the determination is true (S6028: Yes), the reference position will be corrected (S6029) in the x direction. On the contrary, in the case where the determination is false (S6028: No), the reference position will be corrected (S6030) in the y direction.

На фиг.52B показано схематичное представление, иллюстрирующее состояние коррекции опорной позиции на этапах S6029 и S6030. Теперь blk_idx = 3. При условии, что опорный блок r1 расположен в позиции 6211, blk_idx = 0 не удовлетворяется, и нижний правый участок опорного блока расположен в области больше, чем X4 (направление x 6114) и Y3 (направление y 6113) (S6027: Да). Кроме того, разница между опорным блоком и областью, на которую можно ссылаться, в направлении x меньше, чем разница между опорным блоком и областью, на которую можно ссылаться, в направлении y (S6028: Да). Таким образом, опорная позиция в направлении x корректируется перед позицией 6212, при условии, что xRefBR = xAvlBR (S6029). В данном документе, так как xRefBR = xRefTL + cbWidth-1 выполняется, как в S6001, то есть выполняется xRefTL = xRefBR- (cbWidth-1), xRefTL также будет скорректирован вместе с коррекцией xRefBR. При этой коррекции опорной позиции может быть скорректирован блочный вектор mvL [0]. То есть коррекция выполняется следующим образом: Fig. 52B is a schematic diagram illustrating the state of the reference position correction in steps S6029 and S6030. Now, blk_idx = 3. Assuming that the reference block r1 is located at position 6211, blk_idx = 0 is not satisfied, and the bottom right portion of the reference block is located in an area larger than X4 (x direction 6114) and Y3 (y direction 6113) (S6027 : Yes). In addition, the difference between the reference block and the referenced area in the x direction is smaller than the difference between the reference block and the referenced area in the y direction (S6028: Yes). Thus, the reference position in the x direction is corrected before position 6212, provided that xRefBR = xAvlBR (S6029). In this document, since xRefBR = xRefTL + cbWidth-1 is performed as in S6001, that is, xRefTL = xRefBR-(cbWidth-1) is performed, xRefTL will also be adjusted along with the xRefBR correction. With this reference position correction, the block vector mvL[0] can be corrected. That is, the correction is performed as follows:

mvL [0] = (xAvlBR-NR- (xCb + cbWitdh-1)) << 4mvL[0] = (xAvlBR-NR-(xCb + cbWitdh-1)) << 4

Это удовлетворяет xRefBR = xAvlBR, что позволяет скорректировать опорную позицию.This satisfies xRefBR = xAvlBR, which allows the reference position to be corrected.

Напротив, если предположить, что опорный блок r2 расположен в позиции 6213, blk_idx = 0 не удовлетворяется, и нижний правый участок опорного блока, расположенный в области, больше, чем X4 (направление x 6114) и Y3 (направление y 6113) (S6027: Да). Кроме того, разница между опорным блоком и областью, на которую можно ссылаться, в направлении x не меньше, чем разница между опорным блоком и областью, на которую можно ссылаться, в направлении y (S6028: Нет). Таким образом, опорная позиция в направлении y корректируется перед позицией 6214, при условии, что yRefBR = yAvlBR (S6030). В данном документе, так как yRefBR = yRefTL + cbHeight-1 выполняется, как в S6001, то есть выполняется yRefTL = yRefBR- (cbHeight-1), yRefTL также будет скорректирован вместе с коррекцией yRefBR. При этой коррекции опорной позиции может быть скорректирован блочный вектор mvL [1]. То есть коррекция выполняется следующим образом: On the contrary, assuming that the reference block r2 is located at the position 6213, blk_idx = 0 is not satisfied, and the bottom right portion of the reference block located in the area is larger than X4 (x direction 6114) and Y3 (y direction 6113) (S6027: Yes). In addition, the difference between the reference block and the referenced area in the x direction is not less than the difference between the reference block and the referenced area in the y direction (S6028: No). Thus, the reference position in the y direction is corrected before position 6214, provided that yRefBR = yAvlBR (S6030). In this document, since yRefBR = yRefTL + cbHeight-1 is performed as in S6001, i.e., yRefTL = yRefBR-(cbHeight-1) is performed, yRefTL will also be adjusted along with the yRefBR correction. With this correction of the reference position, the block vector mvL [1] can be corrected. That is, the correction is performed as follows:

mvL [1] = (yAvlBR-64- (yCb + cbHeight - 1)) << 4mvL[1] = (yAvlBR-64-(yCb + cbHeight - 1)) << 4

Это удовлетворяет yRefBR = yAvlBR, что позволяет скорректировать опорную позицию.This satisfies yRefBR = yAvlBR, which allows the reference position to be corrected.

В данном документе предполагается, что опорный блок r3 расположен в позиции 6215. В этом случае разница между опорным блоком и областью, на которую можно ссылаться, в направлении x не меньше, чем разница между опорным блоком и областью, на которую можно ссылаться, в направлении y (S6028: Нет). Соответственно, опорная позиция в направлении y корректируется аналогично опорному блоку r2, чтобы быть расположенной в позиции 6216 (S6030). В этот момент контрольный блок находится за пределами области, на которую можно ссылаться. Однако опорная позиция в направлении x корректируется процессами S6008 и S6009, описанными ниже. Таким образом, опорный блок расположен внутри области, на которую можно ссылаться. In this document, reference block r3 is assumed to be located at position 6215. In this case, the difference between the reference block and the referenced area in the x direction is no less than the difference between the reference block and the referenced area in the x direction. y (S6028: No). Accordingly, the reference position in the y direction is adjusted similarly to the reference block r2 to be located at position 6216 (S6030). At this point, the control block is outside of the area that can be referenced. However, the reference position in the x direction is corrected by processes S6008 and S6009 described below. Thus, the reference block is located within the area that can be referenced.

На фиг.52 процесс коррекции опорной позиции был описан с использованием примерных случаев, когда blk_idx = 0 и blk_idx = 3. В случае, когда blk_idx = 1 или blk_idx = 2, процесс коррекции опорной позиции выполняется аналогично случаям, когда blk_idx = 0 и blk_idx = 3. 52, the reference position correction process has been described using the exemplary cases where blk_idx=0 and blk_idx=3. = 3.

После процесса коррекции опорной позиции непрямоугольной области, на которую можно ссылаться (S6013), выполняются процессы S6004-S6011. Вышеупомянутая процедура завершает процесс для случая, когда размер CTU составляет 128×128 выборок. After the reference position correction process of the non-rectangular area that can be referenced (S6013), processes S6004 to S6011 are executed. The above procedure terminates the process for the case where the CTU size is 128×128 samples.

Теперь предполагается, что в процессе коррекции опорной позиции непрямоугольной части области, на которую можно ссылаться (S6013), процесс коррекции опорной позиции в направлении x выполняется (S6024) в соответствии с верхним левым участком области, на которую можно ссылаться. В этом случае опорная позиция в направлении x опорного блока не станет меньше верхнего левого участка области, на которую можно ссылаться, и, таким образом, определение на этапе S6004 всегда является ложным (S6004: Нет). Таким образом, в случае, когда процесс S6024 был выполнен, процессы S6004 и S6005 могут быть исключены. Аналогичным образом, в случае, когда была выполнена обработка S6025, процессы S6006 и S6007 могут быть исключены. В случае, когда был выполнен процесс S6029, процессы S6008 и S6009 могут быть исключены. В случае, когда процесс S6030 был выполнен, процессы S6010 и S6011 могут быть исключены. Now, it is assumed that in the process of correcting the reference position of the non-rectangular portion of the referenced area (S6013), the process of correcting the reference position in the x direction is performed (S6024) in accordance with the upper left portion of the referenced area. In this case, the reference position in the x direction of the reference block does not become smaller than the upper left portion of the referenced area, and thus the determination in S6004 is always false (S6004: No). Thus, in the case where process S6024 has been executed, processes S6004 and S6005 can be omitted. Similarly, in the case where processing S6025 has been performed, processes S6006 and S6007 can be omitted. In the case where process S6029 has been executed, processes S6008 and S6009 may be omitted. In the case where process S6030 has been executed, processes S6010 and S6011 may be omitted.

Кроме того, можно использовать конфигурацию, представленную в виде алгоритма, показанного на фиг.51, в котором процесс сравнения на этапе S6023 опущен, и этап S6024 выполняется всегда, или всегда выполняется этап S6025. Аналогичным образом, можно использовать конфигурацию, в которой процесс сравнения на этапе S6028 опущен, и этап S6029 выполняется всегда, или всегда выполняется этап S6030. В такой конфигурации опорную позицию можно скорректировать с помощью простого процесса. Also, the configuration shown in the flowchart shown in FIG. 51 in which the comparison process in step S6023 is omitted and step S6024 is always executed, or step S6025 is always performed can be used. Similarly, a configuration in which the comparison process in step S6028 is omitted and step S6029 is always executed, or step S6030 is always performed can be used. In such a configuration, the reference position can be corrected by a simple process.

На фиг.48 опорная позиция корректируется с использованием процессов S6012, S6013 и S6004-S6011 в случае, когда размер CTU составляет 128×128 выборок. Вместо этого, как показано на фиг.53, это также может быть реализовано посредством процесса разделения области, на которую можно ссылаться, на две области и последующей коррекции каждой из опорных позиций (S6101). 48, the reference position is adjusted using processes S6012, S6013, and S6004-S6011 in the case where the CTU size is 128×128 samples. Instead, as shown in FIG. 53, this can also be realized by a process of dividing the referenced area into two areas and then correcting each of the reference positions (S6101).

На фиг.54 показано схематичное представление, иллюстрирующее состояние разделения области, на которую можно ссылаться, на две области. В отличие от прямоугольной области, на которую можно ссылаться и которая показана на фиг.50, опорная область разделена на две на фиг.54. В случае, когда целевой блок (6102) кодирования расположен в верхней левой позиции после разделения на четыре части целевого блока дерева кодирования (6101 ), параметр настройка будет представлять собой: blk_idx = 0. Аналогичным образом, в случае, когда целевые блоки кодирования расположены в верхней правой, нижней левой и нижней правой позициях, blk_idx будет установлен в 1, 2 и 3. На фиг.54A показано схематичное представление, иллюстрирующее случай, когда blk_idx = 0. Аналогичным образом, на фиг.54B-54D показаны схематичные представления, иллюстрирующие случаи, когда blk_idx = 1, blk_idx = 2 и blk_idx = 3, соответственно. Кроме того, одна область, на которую можно ссылаться (6301), определена как область A, на которую можно ссылаться, и другая область (6302), на которую можно ссылаться, определена как область B, на которую можно ссылаться. Fig. 54 is a schematic diagram illustrating a state of dividing an area that can be referred to into two areas. In contrast to the rectangular area that can be referred to and which is shown in Fig.50, the reference area is divided into two in Fig.54. In the case where the coding target block (6102) is located at the upper left position after the division into four parts of the coding tree target block (6101 ), the tuning parameter will be: blk_idx = 0. Similarly, in the case where the coding target blocks are located in top right, bottom left, and bottom right positions, blk_idx will be set to 1, 2, and 3. FIG. 54A is a schematic diagram illustrating the case where blk_idx = 0. Similarly, FIGS. cases where blk_idx = 1, blk_idx = 2 and blk_idx = 3, respectively. In addition, one area that can be referenced (6301) is defined as area A that can be referred to, and another area that can be referred to (6302) is defined as area B that can be referred to.

На фиг.55 показана блок-схема алгоритма, иллюстрирующая процесс (S6101) разделения области на две области, на которые можно ссылаться, и коррекции каждой из опорных позиций областей, на которые можно ссылаться. На фиг.55 тот же процесс, что и на фиг.48, обозначен теми же номерами этапов, и его описание будет опущено. Сначала вычисляются (S6111) верхняя левая и нижняя правая позиции области A, на которую можно ссылаться. Когда верхний левый участок области A, на которую можно ссылаться, определен как (xAvlTL, yAvlTL), и нижний правый участок определен как (xAvlBR, yAvlBR), получаются следующие выражения: 55 is a flowchart illustrating a process (S6101) of dividing an area into two referenced areas and correcting each of the reference positions of the referenced areas. In Fig. 55, the same process as in Fig. 48 is indicated by the same step numbers, and its description will be omitted. First, the top left and bottom right positions of the referenced area A are calculated (S6111). When the upper left portion of the referenced region A is defined as (xAvlTL, yAvlTL) and the lower right portion is defined as (xAvlBR, yAvlBR), the following expressions are obtained:

xOffsetTL [4] = {-128, -128, -64, 0}, yOffsetTL [4] = {64, 64, 64, 0}xOffsetTL[4] = {-128, -128, -64, 0}, yOffsetTL[4] = {64, 64, 64, 0}

xOffsetBR [4] = {0, 0, 0, 128}, yOffsetBR [4] = {128, 128, 128, 64}xOffsetBR[4] = {0, 0, 0, 128}, yOffsetBR[4] = {128, 128, 128, 64}

(xAvlTL, yAvlTL) = ((xCb >> CtbLog2SizeY) << CtbLog2SizeY(xAvlTL, yAvlTL) = ((xCb >> CtbLog2SizeY) << CtbLog2SizeY

+ xOffsetTL [blk_idx],+xOffsetTL[blk_idx],

(yCb >> CtbLog2SizeY) << CtbLog2SizeY + yOffsetTL [blk_idx])(yCb >> CtbLog2SizeY) << CtbLog2SizeY + yOffsetTL[blk_idx])

(xAvlBR, yAvlBR) = (((xCb >> CtbLog2SizeY) << CtbLog2SizeY) - 1(xAvlBR, yAvlBR) = (((xCb >> CtbLog2SizeY) << CtbLog2SizeY) - 1

+ xOffsetBR [blk_idx],+xOffsetBR[blk_idx],

(((yCb >> CtbLog2SizeY) + 1) << CtbLog2SizeY) - 1 + yOffsetBR [blk_idx])(((yCb >> CtbLog2SizeY) + 1) << CtbLog2SizeY) - 1 + yOffsetBR[blk_idx])

Затем вычисление относительно того, находится ли опорный блок за пределами области A, на которую можно ссылаться, выполняется следующим образом (S6112):Then, a calculation as to whether the reference block is outside the referenced area A is performed as follows (S6112):

out_xRefTL = xRefTL <xAvlTLout_xRefTL = xRefTL<xAvlTL

out_yRefTL = yRefTL <yAvlTLout_yRefTL = yRefTL<yAvlTL

out_xRefBR = xRefBR> xAvlBRout_xRefBR = xRefBR > xAvlBR

out_yRefBR = yRefBR> yAvlBRout_yRefBR = yRefBR > yAvlBR

Затем вычисляются верхняя левая и нижняя правая позиции области B, на которую можно ссылаться, (S6113). Когда верхний левый участок области B, на которую можно ссылаться, определен как (xAvlTL, yAvlTL), и нижний правый участок определен как (xAvlBR, yAvlBR), получаются следующие выражения: Then, the top left and bottom right positions of the referable area B are calculated (S6113). When the upper left portion of the referenced region B is defined as (xAvlTL, yAvlTL) and the lower right portion is defined as (xAvlBR, yAvlBR), the following expressions are obtained:

xOffsetTL [4] = {-64, 0, 0, 0}, yOffsetTL [4] = {0, 0, 0, 0}xOffsetTL[4] = {-64, 0, 0, 0}, yOffsetTL[4] = {0, 0, 0, 0}

xOffsetBR [4] = {0, 64, 128, 64}, yOffsetBR [4] = {128, 64, 64, 128}xOffsetBR[4] = {0, 64, 128, 64}, yOffsetBR[4] = {128, 64, 64, 128}

(xAvlTL, yAvlTL) = ((xCb >> CtbLog2SizeY) << CtbLog2SizeY(xAvlTL, yAvlTL) = ((xCb >> CtbLog2SizeY) << CtbLog2SizeY

+ xOffsetTL [blk_idx],+xOffsetTL[blk_idx],

(yCb >> CtbLog2SizeY) << CtbLog2SizeY + yOffsetTL [blk_idx])(yCb >> CtbLog2SizeY) << CtbLog2SizeY + yOffsetTL[blk_idx])

(xAvlBR, yAvlBR) = (((xCb >> CtbLog2SizeY) << CtbLog2SizeY) - 1(xAvlBR, yAvlBR) = (((xCb >> CtbLog2SizeY) << CtbLog2SizeY) - 1

+ xOffsetBR [blk_idx],+xOffsetBR[blk_idx],

(((yCb >> CtbLog2SizeY) + 1) << CtbLog2SizeY) - 1 + yOffsetBR [blk_idx])(((yCb >> CtbLog2SizeY) + 1) << CtbLog2SizeY) - 1 + yOffsetBR[blk_idx])

Затем определяется то, меньше ли опорная позиция опорного блока в направлении x, чем верхний левый участок области A, на которую можно ссылаться, и меньше ли опорная позиция опорного блока в направлении x, чем верхняя левая часть область B, на которую можно ссылаться, (S6114). Когда определение является ложным (S6114: Нет), процесс переходит к следующему процессу (S6116). Напротив, когда определение является истинным (S6114: Да), опорная позиция в направлении x будет скорректирована в соответствии с верхним левым участком области B, на которую можно ссылаться (S6005). Так как процесс S6005 уже был описан, его описание опускается. It is then determined whether the reference block reference position in the x direction is smaller than the upper left portion of the referenced region A, and whether the reference block reference position in the x direction is smaller than the upper left portion of the referenced region B, ( S6114). When the determination is false (S6114: No), the process advances to the next process (S6116). On the contrary, when the determination is true (S6114: Yes), the reference position in the x direction will be corrected according to the upper left portion of the area B that can be referred to (S6005). Since the process S6005 has already been described, its description is omitted.

Затем определяется то, меньше ли опорная позиция опорного блока в направлении y, чем верхний левый участок области A, на которую можно ссылаться, и меньше ли опорная позиция опорного блока в направлении y, чем верхний левый участок области B, на которую можно ссылаться (S6116). Когда определение является ложным (S6116: Нет), обработка переходит к следующему этапу (S6118). Напротив, когда определение является истинным (S6116: Да), опорная позиция в направлении y будет скорректирована в соответствии с верхним левым участком области B, на которую можно ссылаться (S6007). Так как процесс S6007 уже был описан, его описание опускается. It is then determined whether the reference position of the reference block in the y direction is smaller than the upper left portion of the referenced region A, and whether the reference position of the reference block in the y direction is smaller than the upper left portion of the referenced region B (S6116 ). When the determination is false (S6116: No), the processing proceeds to the next step (S6118). On the contrary, when the determination is true (S6116: Yes), the reference position in the y direction will be corrected according to the upper left portion of the area B that can be referred to (S6007). Since the process S6007 has already been described, its description is omitted.

Затем определяется то, больше ли опорная позиция в направлении x опорного блока, чем нижний правый участок области A, на которую можно ссылаться, и больше ли опорная позиция опорного блока в направлении x, чем нижний правый участок области B, на которую можно ссылаться (S6118). Когда определение является ложным (S6118: Нет), процесс переходит к следующему процессу (S6120). Напротив, когда определение является истинным (S6118: Да), опорная позиция в направлении x будет скорректирована в соответствии с нижним правым участком области B, на которую можно ссылаться (S6009). Так как процесс S6009 уже был описан, его описание опускается. It is then determined whether the reference position in the x direction of the reference block is larger than the lower right portion of the referenced area A, and whether the reference position of the reference block in the x direction is greater than the lower right portion of the referenced area B (S6118 ). When the determination is false (S6118: No), the process advances to the next process (S6120). On the contrary, when the determination is true (S6118: Yes), the reference position in the x direction will be corrected according to the lower right portion of the area B that can be referred to (S6009). Since the process S6009 has already been described, its description is omitted.

Затем определяется то, больше ли опорная позиция опорного блока в направлении y, чем нижний правый участок области A, на которую можно ссылаться, и больше ли опорная позиция опорного блока в направлении y, чем нижняя правая области B, на которую можно ссылаться (S6120). Когда определение является ложным (S6120: Нет), процесс завершается. Напротив, когда определение является истинным (S6120: Да), опорная позиция в направлении y будет скорректирована в соответствии с нижним правым участком области B, на которую можно ссылаться (S6011). Так как процесс S6011 уже был описан, его описание опускается. It is then determined whether the reference position of the reference block in the y direction is greater than the lower right portion of the referenced area A, and whether the reference position of the reference block in the y direction is greater than the lower right portion of the referenced region B (S6120) . When the determination is false (S6120: No), the process ends. On the contrary, when the determination is true (S6120: Yes), the reference position in the y direction will be corrected according to the lower right portion of the area B that can be referred to (S6011). Since the process S6011 has already been described, its description is omitted.

Как описано выше, даже в случае, когда опорный блок расположен за пределами области, на которую можно ссылаться, когда размер CTU составляет 128×128 выборок, опорная позиция может быть скорректирована и может стать опорной позицией, на которую можно ссылаться. Кроме того, упростить процесс и уменьшить объем вычислений можно путем разделения области, на которую можно ссылаться, на две части и коррекции каждой из опорных позиций. В данном документе одна область (6301), на которую можно ссылаться, определена как область A, на которую можно ссылаться, в то время как другая область (6302), на которую можно ссылаться, определена как область B, на которую можно ссылаться. В качестве альтернативы, область A, на которую можно ссылаться, и область B, на которую можно ссылаться, могут быть заменены, и одна область (6301), на которую можно ссылаться, может обрабатываться как область B, на которую можно ссылаться, в то время как другая опорная область (6302) может обрабатываться как область A, на которую можно ссылаться. As described above, even in the case where the reference block is located outside the area that can be referred to, when the CTU size is 128×128 samples, the reference position can be adjusted and can become a reference position that can be referred to. In addition, you can simplify the process and reduce the amount of calculations by dividing the area that can be referenced into two parts and correcting each of the reference positions. In this document, one area (6301) that can be referred to is defined as area A that can be referred to, while the other area (6302) that can be referred to is defined as area B that can be referred to. Alternatively, the referenced area A and the referenced area B may be replaced, and one referenced area (6301) may be treated as the referenced area B, while while the other reference area (6302) can be treated as an A area that can be referred to.

В данном примере определяется то, равен ли размер CTU 128×128 выборок (S6002), и процесс переключается соответствующим образом. Это определение может быть заменено определением того, предоставляется ли стандартный блок внутриблочного копирования в единице, полученной путем разделения на четыре части блока дерева кодирования, или определением того, превышает ли размер CTU максимальный размер блока кодирования. In this example, it is determined whether the CTU size is 128×128 samples (S6002) and the process switches accordingly. This determination may be replaced by determining whether an intrablock copy standard unit is provided in a unit obtained by quadrupling a coding tree block, or determining whether the CTU size exceeds the maximum coding unit size.

Блок коррекции границы опорной областиReference area border correction block

На фиг.58 показана блок-схема алгоритма, иллюстрирующая процесс, выполняемый блоком 381 коррекции границы опорной области и блоком 481 коррекции границы опорной области.FIG. 58 is a flowchart illustrating the process performed by the reference area boundary correction unit 381 and the reference area boundary correction unit 481. FIG.

Сначала определяется верхняя левая позиции опорного блока (этап S1401) следующим образом:First, the upper left position of the reference block is determined (step S1401) as follows:

(xRefTL, yRefTL) = (xCb + (mvL [0] >> 4), yCb + (mvL [1] >> 4))(xRefTL, yRefTL) = (xCb + (mvL[0] >> 4), yCb + (mvL[1] >> 4))

(xRefBR, yRefBR) = (xRefTL + cbWidth - 1, yRefTL + cbHeight - 1)(xRefBR, yRefBR) = (xRefTL + cbWidth - 1, yRefTL + cbHeight - 1)

Так как эта процедура аналогична этапу S6001 на фиг.48, ее описание опускается.Since this procedure is the same as step S6001 in Fig. 48, its description will be omitted.

Затем вычисляются верхняя левая и нижняя правая позиции областей A, B и C, на которые можно ссылаться (этапы S1402-S1403). Здесь предполагается, что область A, на которую можно ссылаться, представляет собой стандартный блок внутриблочного копирования, обрабатываемый непосредственно перед целевым стандартным блоком внутриблочного копирования, область B, на которую можно ссылаться, представляет собой стандартный блок внутриблочного копирования, обрабатываемый непосредственно перед областью A, на которую можно ссылаться, и область C, на которую можно ссылаться, представляет собой стандартный блок внутриблочного копирования, обработанный непосредственно перед областью B, на которую можно ссылаться. На фиг.56 показан пример, в котором единица блока дерева кодирования используется в качестве стандартного блока внутриблочного копирования. В примере, показанном на фиг.56A, блок 503 дерева кодирования является целевым блоком дерева кодирования. На данном этапе блок 502 дерева кодирования соответствует области A, на которую можно ссылаться, блок 501 дерева кодирования соответствует области B, на которую можно ссылаться, и блок 500 дерева кодирования соответствует области C, на которую можно ссылаться. На фиг.57 показан пример использования единицы, полученной путем разделения на четыре части блока дерева кодирования, в качестве стандартного блока внутриблочного копирования. В примере, показанном на фиг.57A, блок 504 дерева кодирования является целевым стандартным блоком внутриблочного копирования. На данном этапе блок 503 дерева кодирования соответствует области A, на которую можно ссылаться, блок 502 дерева кодирования соответствует области B, на которую можно ссылаться, и блок 501 дерева кодирования соответствует области C, на которую можно ссылаться. Then, the top left and bottom right positions of the regions A, B, and C that can be referred to are calculated (steps S1402 to S1403). Here it is assumed that the region A that can be referenced is an in-block copy building block processed immediately before the target in-block copy building block, the region B that can be referenced is an intra-block copy building block processed immediately before region A, on that can be referenced and the region C that can be referred to is the block copy building block processed immediately before the region B that can be referenced. FIG. 56 shows an example in which a coding tree block unit is used as an intra-block copy standard block. In the example shown in FIG. 56A, coding tree block 503 is the target coding tree block. At this point, coding tree block 502 corresponds to region A that can be referenced, coding tree block 501 corresponds to region B that can be referred to, and coding tree block 500 corresponds to region C that can be referred to. FIG. 57 shows an example of using a unit obtained by quartering a coding tree block as an intra-block copy standard block. In the example shown in FIG. 57A, coding tree block 504 is the target building block of the intra-block copy. At this point, coding tree block 503 corresponds to region A that can be referred to, coding tree block 502 corresponds to region B that can be referred to, and coding tree block 501 corresponds to region C that can be referred to.

Верхние левые позиции областей A, B и C, на которые можно ссылаться, установлены на (xAvlATL, yAvlATL), (xAvlBTL, yAvlBTL) и (xAvlCTL, yAvlCTL), соответственно. Кроме того, нижние правые позиции областей A, B и C, на которые можно ссылаться, установлены на (xAvlABR, yAvlABR), (xAvlBBR, yAvlBBR) и (xAvlCBR, yAvlCBR), соответственно. Когда единица блока дерева кодирования используется в качестве стандартного блока внутриблочного копирования, каждый из (xAvlATL, yAvlATL), (xAvlBTL, yAvlBTL), (xAvlCTL, yAvlCTL), (xAvlABR, yAvlABR), (xAvlBR), (xAvlBR), (xAvlBR), (xAvlBR), yAvlCBR) устанавливаются следующим образом: The top left positions of regions A, B, and C that can be referenced are set to (xAvlATL, yAvlATL), (xAvlBTL, yAvlBTL), and (xAvlCTL, yAvlCTL), respectively. In addition, the bottom right positions of regions A, B, and C that can be referenced are set to (xAvlABR, yAvlABR), (xAvlBBR, yAvlBBR), and (xAvlCBR, yAvlCBR), respectively. When the coding tree block unit is used as the standard intrablock copy block, each of (xAvlATL, yAvlATL), (xAvlBTL, yAvlBTL), (xAvlCTL, yAvlCTL), (xAvlABR, yAvlABR), (xAvlBR), (xAvlBR), (xAvlBR) , (xAvlBR), yAvlCBR) are set as follows:

(xAvlATL, yAvlATL) = ((xCb >> CtbLog2SizeY) << (CtbLog2SizeY) - (1 << CtbLog2SizeY),(xAvlATL, yAvlATL) = ((xCb >> CtbLog2SizeY) << (CtbLog2SizeY) - (1 << CtbLog2SizeY),

(yCb >> CtbLog2SizeY) << (CtbLog2SizeY))(yCb >> CtbLog2SizeY) << (CtbLog2SizeY))

(xAvlABR, yAvlABR) = (xAvlATL + cbWidth - 1, yAvlATL + cbHeight - 1)(xAvlABR, yAvlABR) = (xAvlATL + cbWidth - 1, yAvlATL + cbHeight - 1)

(xAvlATL, yAvlATL) = ((xCb >> CtbLog2SizeY) << (CtbLog2SizeY) - 2 * (1 << CtbLog2SizeY)),(xAvlATL, yAvlATL) = ((xCb >> CtbLog2SizeY) << (CtbLog2SizeY) - 2 * (1 << CtbLog2SizeY)),

(yCb >> CtbLog2SizeY) << (CtbLog2SizeY))(yCb >> CtbLog2SizeY) << (CtbLog2SizeY))

(xAvlBBR, yAvlBBR) = (xAvlBTL + cbWidth -1, yAvlBTL + cbHeight - 1)(xAvlBBR, yAvlBBR) = (xAvlBTL + cbWidth -1, yAvlBTL + cbHeight - 1)

(xAvlATL, yAvlATL) = ((xCb >> CtbLog2SizeY) << (CtbLog2SizeY) - 3 * (1 << CtbLog2SizeY),(xAvlATL, yAvlATL) = ((xCb >> CtbLog2SizeY) << (CtbLog2SizeY) - 3 * (1 << CtbLog2SizeY),

(yCb >> CtbLog2SizeY) << (CtbLog2SizeY))(yCb >> CtbLog2SizeY) << (CtbLog2SizeY))

(xAvlCBR, yAvlCBR) = (xAvlCTL + cbWidth -1, yAvlCTL + cbHeight - 1)(xAvlCBR, yAvlCBR) = (xAvlCTL + cbWidth -1, yAvlCTL + cbHeight - 1)

Когда единица, полученная путем разделения на четыре части блока дерева кодирования, используется в качестве стандартного блока внутриблочного копирования, каждый из параметров (xAvlATL, yAvlATL), (xAvlBTL, yAvlBTL), (xAvlCTL, yAvlCTL) устанавливается следующим образом:When a unit obtained by dividing the coding tree block into four parts is used as an intrablock copy standard block, each of the parameters (xAvlATL, yAvlATL), (xAvlBTL, yAvlBTL), (xAvlCTL, yAvlCTL) is set as follows:

(xAvlATL, yAvlATL) = ((xCb >> (CtbLog2SizeY-1)) << (CtbLog2SizeY-1) - (1 << (CtbLog2SizeY-1)),(xAvlATL, yAvlATL) = ((xCb >> (CtbLog2SizeY-1)) << (CtbLog2SizeY-1) - (1 << (CtbLog2SizeY-1)),

(yCb >> (CtbLog2SizeY-1)) << ((CtbLog2SizeY-1)) + (1 << (CtbLog2SizeY-1)))(yCb >> (CtbLog2SizeY-1)) << ((CtbLog2SizeY-1)) + (1 << (CtbLog2SizeY-1)))

(xAvlABR, yAvlABR) = (xAvlATL + cbWidth - 1, yAvlATL + cbHeight - 1)(xAvlABR, yAvlABR) = (xAvlATL + cbWidth - 1, yAvlATL + cbHeight - 1)

(xAvlBTL, yAvlBTL) = ((xCb >> (CtbLog2SizeY-1)) << (CtbLog2SizeY-1) - (1 << (CtbLog2SizeY)),(xAvlBTL, yAvlBTL) = ((xCb >> (CtbLog2SizeY-1)) << (CtbLog2SizeY-1) - (1 << (CtbLog2SizeY)),

(yCb >> (CtbLog2SizeY-1)) << ((CtbLog2SizeY-1)) + (1 << (CtbLog2SizeY-1)))(yCb >> (CtbLog2SizeY-1)) << ((CtbLog2SizeY-1)) + (1 << (CtbLog2SizeY-1)))

(xAvlBBR, yAvlBBR) = (xAvlBTL + cbWidth -1, yAvlBTL + cbHeight - 1)(xAvlBBR, yAvlBBR) = (xAvlBTL + cbWidth -1, yAvlBTL + cbHeight - 1)

(xAvlCTL, yAvlCTL) = ((xCb >> (CtbLog2SizeY-1)) << (CtbLog2SizeY-1) - (1 << (CtbLog2SizeY-1)),(xAvlCTL, yAvlCTL) = ((xCb >> (CtbLog2SizeY-1)) << (CtbLog2SizeY-1) - (1 << (CtbLog2SizeY-1)),

(yCb >> (CtbLog2SizeY-1)) << ((CtbLog2SizeY-1)) + (1 << (CtbLog2SizeY-1)))(yCb >> (CtbLog2SizeY-1)) << ((CtbLog2SizeY-1)) + (1 << (CtbLog2SizeY-1)))

(xAvlCBR, yAvlCBR) = (xAvlCTL + cbWidth -1, yAvlCTL + cbHeight - 1)(xAvlCBR, yAvlCBR) = (xAvlCTL + cbWidth -1, yAvlCTL + cbHeight - 1)

Затем определяется область, на которую можно ссылаться, включающая в себя верхнюю левую позицию опорного блока (Этап S1405). В частности, верхняя левая и нижняя правая позиции областей A, B, C, на которые можно ссылаться, сравниваются с верхней левой позицией опорного блока, и затем область, на которую можно ссылаться, включающая в себя верхнюю левую позицию опорного блока, определяется как опорная область, включающая в себя опорный блок. Then, an area that can be referred to including the upper left position of the reference block is determined (Step S1405). Specifically, the top left and bottom right positions of the referenced areas A, B, C are compared with the top left position of the reference block, and then the referenced area including the top left position of the reference block is determined to be the reference the area including the reference block.

Затем определяется то, включает ли опорная область, включающая в себя верхнюю левую позицию опорного блока, нижнюю правую позицию опорного блока (этап S1406). В случае, когда опорная область, включающая в себя верхнюю левую позицию опорного блока, включает в себя нижнюю правую позицию опорного блока, алгоритм, показанный на фиг.58, заканчивается. It is then determined whether the reference area including the upper left position of the reference block includes the lower right position of the reference block (step S1406). In the case where the reference area including the upper left position of the reference block includes the lower right position of the reference block, the algorithm shown in FIG. 58 ends.

В случае, когда область, на которую можно ссылаться, включающая в себя верхнюю левую позицию опорного блока, не включает в себя нижнюю правую позицию опорного блока, опорный блок корректируется (этап S1407). Коррекция опорного блока будет описана со ссылкой на фиг.59. На фиг.59 показан пример, в котором единица блока дерева кодирования используется в качестве стандартного блока внутриблочного копирования. На фиг.59A показан случай, когда блочный вектор 507 установлен для целевого блока 505 кодирования. Область B (503), на которую можно ссылаться, включает в себя верхнюю левую позицию опорного блока и не включает в себя нижнюю правую позицию опорного блока. На данном этапе, как показано на фиг.59B, опорный блок 508 разделен на разделенный опорный блок 509 и разделенный опорный блок 510 в пространстве памяти. Разделенный опорный блок 509 представляет собой область, включенную в область B (503), на которую можно ссылаться, которая является областью, на которую можно ссылаться, включающей верхний левый участок опорного блока, в то время как разделенный опорный блок 510 является опорным блоком, включенным в опорную область, отличную от области B (503), на которую можно ссылаться. В данном примере при построении опорного изображения опорного блока 510 для каждой из области, соответствующей разделенному опорному блоку 509, и области, соответствующей разделенному опорному блоку 510, выполняется другой процесс. В частности, что касается области, соответствующей разделенному опорному блоку 509, опорное изображение создается на основе позиции, указанной блочным вектором. Напротив, что касается области, соответствующей разделенному опорному блоку 510, опорное изображение создается путем установки заданного значения без ссылки на пространство 600 памяти. В данном документе заданное значение будет равно MaxPixelValue/2, когда максимальное значение выборки равно MaxPixelValue. Однако, что касается области, соответствующей разделенному опорному блоку 510, можно принять конфигурацию, в которой опорное изображение строится из области 603 памяти, включающей в себя разделенный опорный блок 509, вместо заданного значения. Например, опорное изображение может быть построено путем выполнения копирования в горизонтальном направлении крайней правой выборки разделенного опорного блока 509. In a case where the referenced area including the upper left position of the reference block does not include the lower right position of the reference block, the reference block is corrected (step S1407). Reference block correction will be described with reference to FIG. FIG. 59 shows an example in which a coding tree block unit is used as an intra-block copy standard block. FIG. 59A shows the case where the block vector 507 is set to the target encoding block 505 . The region B (503) that can be referred to includes the upper left position of the reference block and does not include the lower right position of the reference block. At this stage, as shown in FIG. 59B, reference block 508 is divided into divided reference block 509 and divided reference block 510 in the memory space. The divided reference block 509 is the area included in the referenced area B (503), which is the referenced area including the upper left portion of the reference block, while the divided reference block 510 is the reference block included to a reference area other than area B (503) that can be referred to. In this example, when constructing a reference image of the reference block 510, a different process is performed for each of the area corresponding to the divided reference block 509 and the area corresponding to the divided reference block 510. In particular, with regard to the area corresponding to the divided reference block 509, the reference image is created based on the position indicated by the block vector. On the contrary, with regard to the area corresponding to the divided reference block 510, the reference image is created by setting a predetermined value without reference to the memory space 600 . In this document, the set value will be MaxPixelValue/2 when the maximum sample value is MaxPixelValue. However, with regard to the area corresponding to the divided reference block 510, it is possible to adopt a configuration in which the reference image is constructed from the memory area 603 including the divided reference block 509 instead of a predetermined value. For example, a reference image may be constructed by performing a horizontal copy of the rightmost sample of the divided reference block 509.

На фиг.60 показан пример использования единицы, полученной путем разделения на четыре части блока дерева кодирования, в качестве стандартного блока внутриблочного копирования. На фиг.60A показан случай, когда блочный вектор 508 установлен для целевого блока 509 кодирования. Область C (501), на которую можно ссылаться, включает в себя верхнюю левую позицию опорного блока и не включает в себя нижнюю правую позицию опорного блока. На данном этапе, как показано на фиг.60B, опорный блок 510 разделен на разделенный опорный блок 511 и разделенный опорный блок 512 в пространстве памяти. Разделенный опорный блок 511 представляет собой область, включенную в область C (501), на которую можно ссылаться, которая является опорной областью, включающей в себя верхний левый участок опорного блока, в то время как разделенный опорный блок 512 является опорным блоком, включенным в опорную область, отличную от области C (501), на которую можно ссылаться. В данном примере при построении опорного изображения опорного блока 510 для каждой из области, соответствующей разделенному опорному блоку 511, и области, соответствующей разделенному опорному блоку 512, выполняется другой процесс. В частности, что касается области, соответствующей для разделенного опорного блока 511 опорное изображение создается на основе позиции, указанной блочным вектором. Напротив, для области, соответствующей разделенному опорному блоку 511, опорное изображение создается путем установки заданного значения без ссылки на пространство 602 памяти. В данном документе заданное значение будет равно MaxPixelValue/2, когда максимальное значение выборки равно MaxPixelValue. Однако, что касается области, соответствующей разделенному опорному блоку 512, допустимо использовать конфигурацию, в которой опорное изображение строится из области 601 памяти, включающей в себя опорный блок 511 разделения, вместо заданного значения. Например, опорное изображение может быть построено путем выполнения копирования в вертикальном направлении выборки, расположенной внизу разделенного опорного блока 511. FIG. 60 shows an example of using a unit obtained by quartering a coding tree block as an intra-block copy standard block. On figa shows the case when the block vector 508 is set to the target block 509 coding. The area C (501) that can be referred to includes the upper left position of the reference block and does not include the lower right position of the reference block. At this stage, as shown in FIG. 60B, reference block 510 is divided into divided reference block 511 and divided reference block 512 in the memory space. The split reference block 511 is the area included in the referenced region C (501), which is the reference area including the top left portion of the reference block, while the split reference block 512 is the reference block included in the reference block. an area other than area C (501) that can be referred to. In this example, when constructing a reference image of the reference block 510, a different process is performed for each of the area corresponding to the divided reference block 511 and the area corresponding to the divided reference block 512. In particular, with regard to the area corresponding to the divided reference block 511, the reference image is created based on the position indicated by the block vector. On the contrary, for the area corresponding to the divided reference block 511, the reference image is created by setting a predetermined value without reference to the memory space 602. In this document, the set value will be MaxPixelValue/2 when the maximum sample value is equal to MaxPixelValue. However, with regard to the area corresponding to the divided reference block 512, it is permissible to use a configuration in which the reference image is constructed from the memory area 601 including the division reference block 511 instead of a predetermined value. For example, a reference image may be constructed by performing vertical copying of a sample located at the bottom of the divided reference block 511.

Используя эту конфигурацию, при определении опорного блока внутриблочного копирования можно избежать доступа к разделенному пространству памяти множество раз в случае, когда опорное изображение разделяется и размещается в пространстве памяти. Это позволяет сократить объем обработки при построении опорного блока внутриблочного копирования. By using this configuration, when determining the intra-block copy reference block, access to the divided memory space multiple times in the case where the reference image is divided and allocated to the memory space can be avoided. This allows you to reduce the amount of processing when building an intrablock copy reference block.

Во всех вариантах осуществления, описанных выше, многочисленные технологии могут быть объединены друг с другом.In all of the embodiments described above, multiple technologies may be combined with each other.

Во всех вариантах осуществления, описанных выше, битовый поток, выводимый из устройства для кодирования изображений, имеет определенный формат данных, чтобы быть декодированным в соответствии со способом кодирования, используемым в варианте осуществления. Битовый поток может быть записан и предоставлен на машиночитаемом носителе записи, таком как HDD, SSD, флэш-память, оптический диск и т.п., или битовый поток может быть предоставлен с сервера через проводную или беспроводную сеть. Таким образом, независимо от того, как предоставляется битовый поток, устройство для декодирования изображений, соответствующее устройству для кодирования изображений, выполнено с возможностью декодировать битовый поток конкретного формата данных.In all the embodiments described above, the bitstream output from the image encoding device has a specific data format to be decoded according to the encoding method used in the embodiment. The bitstream may be recorded and provided on a computer-readable recording medium such as an HDD, SSD, flash memory, optical disc, or the like, or the bitstream may be provided from a server via a wired or wireless network. Thus, no matter how the bitstream is provided, the image decoding apparatus corresponding to the image encoding apparatus is configured to decode the bitstream of a specific data format.

В случае, когда для обмена битовым потоком между устройством для кодирования изображения и устройством для декодирования изображения используется проводная или беспроводная сеть, битовый поток может быть преобразован в формат данных, подходящий для формы передачи канала связи при передаче. В этом случае предоставляется устройство передачи, которое преобразует выходной битовый поток из устройства для кодирования изображений в кодированные данные в формате данных, подходящем для формы передачи канала связи, и передает кодированные данные в сеть, и устройство приема, которое принимает кодированные данные из сети, которые необходимо восстановить в битовый поток, и подает битовый поток в устройство для декодирования изображений. Устройство передачи включает в себя память, которая буферизует битовый поток, выводимый из устройства для кодирования изображений, блок обработки пакетов, который пакетирует битовый поток, и передатчик, который передает пакетированные кодированные данные через сеть. Устройство приема включает в себя приемник, который принимает пакетированные кодированные данные через сеть, память, которая буферизует принятые кодированные данные, и блок обработки пакетов, который распаковывает кодированные данные для формирования битового потока и передает сформированный битовый поток в устройство для декодирования изображений.In the case where a wired or wireless network is used to exchange the bit stream between the image encoding apparatus and the image decoding apparatus, the bit stream can be converted to a data format suitable for a transmission form of a communication channel in transmission. In this case, a transmission device is provided that converts an output bitstream from an image encoding device into coded data in a data format suitable for a transmission form of a communication channel, and transmits the coded data to the network, and a reception device that receives the coded data from the network, which needs to be restored to a bitstream, and supplies the bitstream to an image decoding device. The transmission apparatus includes a memory that buffers a bitstream output from the image encoding apparatus, a packet processing unit that packetizes the bitstream, and a transmitter that transmits the packetized encoded data via a network. The receiving device includes a receiver that receives packetized coded data via a network, a memory that buffers the received coded data, and a packet processing unit that decompresses the coded data to form a bitstream and transmits the generated bitstream to an image decoding device.

В случае, когда проводная или беспроводная сеть используется для обмена битовым потоком между устройством для кодирования изображений и устройством для декодирования изображений, в дополнение к передающему устройству и приемному устройству может быть предусмотрено ретрансляционное устройство, которое принимает кодированные данные, переданные передающим устройством, и подает кодированные данные в приемное устройство. Ретрансляционное устройство включает в себя приемник, который принимает пакетированные кодированные данные, переданные передающим устройством, память, которая буферизует принятые кодированные данные, и передатчик, который передает пакетированные кодированные данные в сеть. Ретрансляционное устройство может дополнительно включать в себя блок обработки принимаемых пакетов, который пакетирует пакетированные кодированные данные для создания битового потока, носитель записи, который хранит битовый поток, и блок обработки переданных пакетов, который пакетирует битовый поток.In the case where a wired or wireless network is used to exchange the bit stream between the image encoding apparatus and the image decoding apparatus, a relay apparatus may be provided in addition to the transmitter apparatus and the receiver apparatus, which receives the encoded data transmitted by the transmitter and supplies the encoded data to the receiving device. The relay apparatus includes a receiver that receives packetized coded data transmitted by a transmitter, a memory that buffers the received coded data, and a transmitter that transmits the packetized coded data to a network. The relay apparatus may further include a received packet processing unit that packetizes the packetized encoded data to create a bitstream, a recording medium that stores the bitstream, and a transmitted packet processing unit that packetizes the bitstream.

Более того, в качестве устройства отображения в конфигурацию может быть добавлен блок отображения, который отображает изображение, декодированное устройством для декодирования изображения. В этом случае блок отображения считывает сигнал декодированного изображения, сгенерированный блоком 207 наложения сигналов декодированного изображения и сохраненный в памяти 208 декодированного изображения, и отображает сигнал на экране.Moreover, as a display device, a display unit that displays an image decoded by the image decoding apparatus can be added to the configuration. In this case, the display unit reads the decoded image signal generated by the decoded image signal overlay unit 207 and stored in the decoded image memory 208, and displays the signal on a screen.

Более того, в конфигурацию может быть добавлен блок формирования изображения, что позволит функционировать в качестве устройства формирования изображения, путем ввода захваченного изображения в устройство для кодирования изображения. В этом случае блок формирования изображения вводит сигнал захваченного изображения в блок 101 разделения блоков.Moreover, an imager can be added to the configuration to function as an imager by inputting the captured image into the image encoder. In this case, the imaging section inputs the captured image signal to the block separating section 101 .

На фиг.37 показан пример конфигурации аппаратных средств устройства для кодирования-декодирования согласно настоящему варианту осуществления. Устройство для кодирования-декодирования включает в себя конфигурации устройства для кодирования изображений и устройства для декодирования изображений согласно вариантам осуществления настоящего изобретения. Устройство 9000 для кодирования-декодирования включает в себя CPU 9001, кодек IC 9002, интерфейс 9003 ввода/вывода, память 9004, привод 9005 оптических дисков, сетевой интерфейс 9006 и видеоинтерфейс 9009, в которых отдельные блоки соединены посредством шины 9010.FIG. 37 shows an example of a hardware configuration of an encoding/decoding apparatus according to the present embodiment. The encoding/decoding apparatus includes configurations of an image encoding apparatus and an image decoding apparatus according to embodiments of the present invention. The encoder/decoder device 9000 includes a CPU 9001, an IC codec 9002, an input/output interface 9003, a memory 9004, an optical disc drive 9005, a network interface 9006, and a video interface 9009 in which the individual units are connected via a bus 9010.

Кодер 9007 изображения и декодер 9008 изображения, как правило, реализуются как IC 9002 кодека. Процесс кодирования изображения устройства для кодирования изображения согласно вариантам осуществления настоящего изобретения выполняется кодером 9007 изображения. Процесс декодирования изображения в устройстве для декодирования изображения согласно варианту осуществления настоящего изобретения выполняется декодером 9008 изображения. Интерфейс 9003 ввода/вывода реализован, например, посредством интерфейса USB, и подключается к внешней клавиатуре 9104, мыши 9105 или подобному. CPU 9001 управляет устройством 9000 для кодирования-декодирования на основе ввода операции пользователя через интерфейс 9003 ввода/вывода для выполнения операции пользователя. Операции пользователя на клавиатуре 9104, мыши 9105 и т.п. включают в себя выбор выполняемой функции кодирования или декодирования, установка качества кодирования, назначение ввода/вывода битового потока, назначение ввода/вывода изображения или подобное, аналогичное, похожее.Image encoder 9007 and image decoder 9008 are typically implemented as codec IC 9002. The image encoding process of the image encoding device according to the embodiments of the present invention is performed by the image encoder 9007 . The image decoding process in the image decoding apparatus according to the embodiment of the present invention is performed by the image decoder 9008. The input/output interface 9003 is implemented, for example, via a USB interface, and is connected to an external keyboard 9104, mouse 9105, or the like. The CPU 9001 controls the encoder/decode device 9000 based on the input of the user's operation via the input/output interface 9003 to perform the user's operation. User operations on keyboard 9104, mouse 9105, etc. include selecting the encoding or decoding function to be performed, setting the encoding quality, bitstream I/O assignment, image I/O assignment, or the like, the like, the like.

В случае, когда пользователю требуется операция воспроизведения изображения, записанного на дисковом носителе 9100 записи, привод 9005 оптического диска считывает битовый поток со вставленного носителя 9100 записи диска и передает считанный битовый поток в декодер 9008 изображения кодека IC 9002 через шину 9010. Декодер 9008 изображения выполняет процесс декодирования изображения в устройстве для декодирования изображения согласно вариантам осуществления настоящего изобретения на входном битовом потоке и передает декодированное изображение на внешний монитор 9103 через видео интерфейс 9009. Устройство 9000 для кодирования-декодирования имеет сетевой интерфейс 9006 и может быть подключено к внешнему серверу 9106 распределения и мобильному оконечному устройству 9107 через сеть 9101. В случае, когда пользователь желает воспроизвести изображение, записанное при распределении, сервер 9106 или мобильное оконечное устройство 9107 вместо изображения, записанного на дисковом носителе 9100 записи, сетевой интерфейс 9006 получает битовый поток из сети 9101 вместо считывания битового потока с входного дискового носителя записи 9100. В случае, когда пользователь желает воспроизвести изображение, записанное в памяти 9004, обработка декодирования изображения выполняется устройством для декодирования изображения битового потока, записанного в памяти 9004 согласно вариантам осуществления в настоящем изобретении.In the case where the user requires an operation to reproduce an image recorded on the disc recording medium 9100, the optical disc drive 9005 reads the bitstream from the inserted disc recording medium 9100 and transmits the read bitstream to the image decoder 9008 of the IC codec 9002 via the bus 9010. The image decoder 9008 performs an image decoding process in an image decoding apparatus according to embodiments of the present invention on an input bitstream, and transmits the decoded image to an external monitor 9103 via a video interface 9009. The encoding/decoding apparatus 9000 has a network interface 9006 and can be connected to an external distribution server 9106 and to the mobile terminal device 9107 via the network 9101. In the case where the user wishes to reproduce the image recorded in the distribution, the server 9106 or the mobile terminal device 9107 instead of the image recorded on the recording disk 9100 and, the network interface 9006 receives the bitstream from the network 9101 instead of reading the bitstream from the input disk recording medium 9100. In the case where the user wishes to reproduce the image recorded in the memory 9004, the image decoding processing is performed by the apparatus for decoding the image of the bitstream recorded in the memory 9004 according to embodiments in the present invention.

В случае, когда пользователь желает выполнить операцию кодирования изображения, захваченного внешней камерой 9102, и записи изображения в память 9004, видеоинтерфейс 9009 вводит изображение с камеры 9102 и передает изображение в кодер 9007 изображения кодека 9002 через шину 9010. Кодер 9007 изображения выполняет процесс кодирования изображения устройством для кодирования изображения согласно варианту осуществления настоящего изобретения на входе изображения через видеоинтерфейс 9009 и, тем самым, формирует битовый поток. Затем битовый поток передается в память 9004 через шину 9010. В случае, когда пользователь желает записать битовый поток на дисковый носитель 9100 записи вместо памяти 9004, дисковод 9005 оптического диска записывает битовый поток на вставленный диск носителя 9100.In the case where the user wishes to perform the operation of encoding an image captured by the external camera 9102 and writing the image to the memory 9004, the video interface 9009 inputs the image from the camera 9102 and transmits the image to the image encoder 9007 of the codec 9002 via the bus 9010. The image encoder 9007 performs an image encoding process by an image encoding device according to an embodiment of the present invention at the image input through the video interface 9009 and thereby generates a bitstream. The bitstream is then transferred to the memory 9004 via the bus 9010. In the case where the user wishes to record the bitstream on the disk recording medium 9100 instead of the memory 9004, the optical disk drive 9005 writes the bitstream on the inserted disk of the medium 9100.

Также возможно реализовать конфигурацию оборудования, имеющую устройство для кодирования изображения и не имеющую устройства для декодирования изображения, или конфигурацию оборудования, имеющую устройство для декодирования изображения и не имеющую устройства для кодирования изображения. Такая конфигурация оборудования реализуется путем замены IC 9002 кодека кодером 9007 изображения или декодером 9008 изображения.It is also possible to realize an equipment configuration having an image encoding device and no image decoding device, or an equipment configuration having an image decoding device and no image encoding device. This hardware configuration is implemented by replacing the codec IC 9002 with an image encoder 9007 or an image decoder 9008.

Вышеописанный процесс, относящийся к кодированию и декодированию, естественно, может быть реализован как устройство передачи, хранения и приема с использованием оборудования, и, в качестве альтернативы, процесс может быть реализован с помощью встроенного программного обеспечения, хранимого в постоянном запоминающем устройстве (ROM), флэш-памяти или тому подобное, или с помощью программного обеспечения, предоставленного для компьютера или подобного. Программа микропрограмм и программное обеспечение могут быть предоставлены путем записи на носителе записи, читаемом компьютером и т.п., могут предоставляться с сервера через проводную или беспроводную сеть, или могут предоставляться посредством широковещательной передачи данных наземным или спутниковым цифровым способом. The above-described process relating to encoding and decoding can naturally be implemented as a transmission, storage, and reception device using hardware, and alternatively, the process can be implemented using firmware stored in read-only memory (ROM) flash memory or the like, or using software provided for a computer or the like. The firmware program and the software may be provided by being recorded on a computer-readable recording medium or the like, may be provided from a server via a wired or wireless network, or may be provided by a digital terrestrial or satellite broadcast.

Настоящее изобретение было описано со ссылкой на настоящие варианты осуществления. Вышеописанный вариант осуществления был описан только для иллюстративных целей. Скорее, специалисты в данной области техники могут легко понять, что различные примеры модификаций могут быть сделаны путем формирования различных комбинаций вышеописанных компонентов или процессов, которые также входят в технический объем настоящего изобретения.The present invention has been described with reference to the present embodiments. The above described embodiment has been described for illustrative purposes only. Rather, those skilled in the art can readily appreciate that various examples of modifications can be made by forming various combinations of the components or processes described above, which are also within the technical scope of the present invention.

Настоящее изобретение может использоваться для способов кодирования и декодирования изображений, которые разделяют изображение на блоки для выполнения предсказания.The present invention can be used for image encoding and decoding methods that divide an image into blocks to perform prediction.

100 – Устройство кодирования изображений100 - Image encoding device

101 – Блок разделения блока101 - Block division block

102 – Блок межкадрового предсказания102 - Block interframe prediction

103 – Блок внутрикадрового предсказания103 - Intra prediction block

104 – Память декодированных изображений104 - Decoded picture memory

105 – Определитель способа предсказания105 - Determinant of the method of prediction

106 – Блок выработки остатка106 - Residue generation unit

107 – Ортогональный преобразователь/квантователь107 - Orthogonal Converter/Quantizer

108 – Блок кодирования битовых строк108 - Bit string encoding block

109 – Обратный квантователь/обратный ортогональный преобразователь109 - Inverse quantizer/inverse orthogonal converter

110 – Блок наложения сигнала декодированного изображения 110 - Decoded image signal overlay block

111 – Память для хранения информации кодирования111 - Memory for storing encoding information

200 – Устройство для декодирования изображений200 - Image decoding device

201 – Блок декодирования битовых строк201 - Bit string decoding block

202 – Блок разделения блока202 - Block division block

203 – Блок межкадрового предсказания203 - Block interframe prediction

204 – Блок внутрикадрового предсказания204 - Intra prediction block

205 – Память для хранения информации кодирования205 - Memory for storing encoding information

206 – Обратный квантователь/обратный ортогональный преобразователь206 - Inverse quantizer/inverse orthogonal converter

207 – Блок наложения сигнала декодированного изображения 207 - Decoded image signal overlay block

208 – Память декодированных изображений.208 - Decoded picture memory.

Claims (34)

1. Устройство для кодирования изображения, характеризующееся тем, что делит блок дерева кодирования на один или более стандартных блоков внутриблочного копирования, при этом устройство содержит:1. A device for encoding an image, characterized in that it divides a block of the coding tree into one or more standard blocks of intrablock copying, while the device contains: блок получения блочного вектора-кандидата, выполненный с возможностью получения блочных векторов-кандидатов целевого блока кодирования в целевом изображении кодирования из информации кодирования, хранящейся в памяти для хранения информации кодирования;a candidate block vector deriving unit, configured to obtain candidate block vectors of the coding target block in the coding target image from the coding information stored in the coding information storage memory; селектор, выполненный с возможностью выбора выбранного блочного вектора из блочных векторов-кандидатов;a selector configured to select a selected block vector from the candidate block vectors; запоминающее устройство, выполненное с возможностью хранения кодированных изображений заданного количества стандартных блоков внутриблочного копирования, находящихся непосредственно перед целевым стандартным блоком кодирования внутриблочного копирования;a storage device configured to store encoded images of a predetermined number of intra-block copy building blocks immediately before the target intra-block copy coding building block; блок коррекции границы опорной области, выполненный с возможностьюblock for correcting the boundary of the reference area, configured to удаления всех кодированных изображений стандартных блоков внутриблочного копирования, которые включают в себя целевой блок кодирования, из области, на которую можно ссылаться, иremoving all encoded images of intra-block copy building blocks that include the target encoding block from the referenced area, and определения, включены ли верхняя левая позиция и нижняя правая позиция опорного блока, указанного выбранным блочным вектором, в область, на которую можно ссылаться; иdetermining whether the top left position and bottom right position of the reference block indicated by the selected block vector are included in the area that can be referred to; and блок кодирования битовой строки, выполненный с возможностью кодирования информации кодирования, соответствующей способу предсказания для каждого блока кодирования.a bit string encoding unit configured to encode encoding information corresponding to the prediction method for each encoding unit. 2. Устройство для кодирования изображения по п.1, в котором блок коррекции границы опорной области выполнен с возможностью удаления всех кодированных изображений стандартных блоков внутриблочного копирования, обработанных до заданного количества стандартных блоков внутриблочного копирования, непосредственно перед целевым стандартным блоком кодирования внутриблочного копирования из области, на которую можно ссылаться.2. The image encoding device according to claim 1, wherein the reference area boundary correction unit is configured to remove all encoded images of intra-block copy building blocks processed to a predetermined number of intra-block copy building blocks immediately before the target intra-block copy encoding building block from the area, to which you can refer. 3. Способ кодирования изображений, в котором делят блок дерева кодирования на один или более стандартных блоков внутриблочного копирования, при этом способ содержит:3. A method for encoding images, in which a block of the coding tree is divided into one or more standard blocks of intrablock copying, while the method contains: этап получения блочного вектора-кандидата, на котором получают блочные векторы-кандидаты целевого блока кодирования в целевом изображении кодирования из информации кодирования, хранящейся в памяти для хранения информации кодирования;a candidate block vector deriving step of obtaining candidate block vectors of an encoding target block in an encoding target image from the encoding information stored in the encoding information storage memory; этап выбора, на котором выбирают выбранный блочный вектор из блочных векторов-кандидатов;a selection step of selecting a selected block vector from the candidate block vectors; этап сохранения, на котором сохраняют кодированные изображения заданного количества стандартных блоков внутриблочного копирования, находящихся непосредственно перед целевым стандартным блоком кодирования внутриблочного копирования; иa storage step of storing encoded pictures of a predetermined number of intra-block copy building blocks immediately before the target intra-block copy coding building block; and этап коррекции границы опорной области, на котором:the stage of correction of the boundary of the reference area, in which: удаляют все кодированные изображения стандартных блоков внутриблочного копирования, которые включают в себя целевой блок декодирования, из области, на которую можно ссылаться, иremoving all encoded pictures of intra-block copy building blocks that include the decoding target block from the referenced area, and определяют, включены ли верхняя левая позиция и нижняя правая позиция опорного блока, указанные выбранным блочным вектором, в область, на которую можно ссылаться; иdetermining whether the top left position and the bottom right position of the reference block indicated by the selected block vector are included in the area that can be referred to; and этап кодирования, на котором кодируют информацию кодирования, соответствующую способу предсказания для каждого блока кодирования. an encoding step in which encoding information corresponding to the prediction method for each encoding block is encoded. 4. Устройство для декодирования изображения, характеризующееся тем, что делит блок дерева кодирования на один или более стандартных блоков внутриблочного копирования, при этом устройство содержит:4. A device for decoding an image, characterized in that it divides a block of the coding tree into one or more standard blocks of intrablock copying, while the device contains: блок получения блочного вектора-кандидата, выполненный с возможностью получения блочных векторов-кандидатов целевого блока декодирования в целевом изображении декодирования из информации кодирования, хранящейся в памяти для хранения информации кодирования;a block vector candidate deriving unit, configured to obtain block vector candidates of the decoding target block in the decoding target image from the encoding information stored in the encoding information storage memory; селектор, выполненный с возможностью выбора выбранного блочного вектора из блочных векторов-кандидатов;a selector configured to select a selected block vector from the candidate block vectors; запоминающее устройство, выполненное с возможностью сохранения декодированных изображений заданного количества стандартных блоков внутриблочного копирования непосредственно перед целевым стандартным блоком декодирования внутриблочного копирования;a storage device configured to store decoded images of a predetermined number of intra-block copy building blocks immediately before the target intra-block copy decoding building block; блок коррекции границы опорной области, выполненный с возможностьюblock for correcting the boundary of the reference area, configured to удаления всех декодированных изображений стандартных блоков внутриблочного копирования, которые включают в себя целевой блок декодирования, из области, на которую можно ссылаться, иremoving all decoded intra-block copy building block pictures that include the decoding target block from the referenced area, and определения, включены ли верхняя левая позиция и нижняя правая позиция опорного блока, указанные выбранным блочным вектором, в область, на которую можно ссылаться; иdetermining whether the top left position and the bottom right position of the reference block indicated by the selected block vector are included in the area that can be referred to; and блок декодирования, выполненный с возможностью декодирования битовой строки с получением кодированных данных и декодирования кодированных данных с получением восстановленных данных.a decoding unit, configured to decode the bit string to obtain encoded data, and decode the encoded data to obtain recovered data. 5. Устройство для декодирования изображения по п.4, в котором блок коррекции границы опорной области выполнен с возможностью удаления всех декодированных изображений стандартных блоков внутриблочного копирования, обработанных до заданного количества стандартных блоков внутриблочного копирования, непосредственно перед декодирующим целевым стандартным блоком внутриблочного копирования из области, на которую можно ссылаться.5. The image decoding apparatus according to claim 4, wherein the reference area boundary correction unit is configured to remove all decoded intrablock copy building block images processed to a predetermined number of intrablock copy building blocks immediately before the decoding target intrablock copy building block from the area, to which you can refer. 6. Способ декодирования изображения, в котором делят блок дерева кодирования на один или более стандартных блоков внутриблочного копирования, при этом способ содержит:6. An image decoding method, in which the coding tree block is divided into one or more intrablock copy standard blocks, the method comprising: этап получения блочного вектора-кандидата, на котором получают блочные векторы-кандидаты целевого блока декодирования в целевом изображении декодирования из информации кодирования, хранящейся в памяти для хранения информации кодирования;a candidate block vector derivation step of obtaining candidate block vectors of the decoding target block in the decoding target image from the encoding information stored in the encoding information storage memory; этап выбора, на котором выбирают выбранный блочный вектор из блочных векторов-кандидатов;a selection step of selecting a selected block vector from the candidate block vectors; этап сохранения, на котором сохраняют декодированные изображения заданного количества стандартных блоков внутриблочного копирования непосредственно перед целевым стандартным блоком декодирования внутриблочного копирования;a storage step of storing decoded pictures of a predetermined number of intra-block copy building blocks just before the target intra-block copy decoding building block; этап коррекции границы опорной области, на котором:the stage of correction of the boundary of the reference area, in which: удаляют все декодированные изображения стандартных блоков внутриблочного копирования, которые включают в себя целевой блок декодирования, из области, на которую можно ссылаться, иremoving all decoded intra-block copy building block pictures that include the decoding target block from the referenced area, and определяют, включены ли верхняя левая позиция и нижняя правая позиция опорного блока, указанные выбранным блочным вектором, в область, на которую можно ссылаться; иdetermining whether the top left position and the bottom right position of the reference block indicated by the selected block vector are included in the area that can be referred to; and этап декодирования, на котором декодируют битовую строку с получением кодированных данных и декодируют кодированные данные с получением восстановленных данных.a decoding step of decoding the bit string to obtain encoded data, and decoding the encoded data to obtain recovered data.
RU2021137427A 2019-06-25 2020-06-25 Dynamic image encoding device, dynamic image encoding method, dynamic image encoding program, dynamic image decoding device, dynamic image decoding method and dynamic image decoding program RU2781517C1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019-117516 2019-06-25

Publications (1)

Publication Number Publication Date
RU2781517C1 true RU2781517C1 (en) 2022-10-13

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013128010A9 (en) * 2012-03-02 2014-07-03 Canon Kabushiki Kaisha Method and devices for encoding a sequence of images into a scalable video bit-stream, and decoding a corresponding scalable video bit-stream
RU2547239C2 (en) * 2010-12-22 2015-04-10 Квэлкомм Инкорпорейтед Mode-dependent scanning of video data block coefficients
WO2015106121A1 (en) * 2014-01-10 2015-07-16 Qualcomm Incorporated Block vector coding for intra block copy in video coding
US20170094271A1 (en) * 2014-07-07 2017-03-30 Hfi Innovation Inc. Method of Intra Block Copy Search and Compensation Range
RU2654129C2 (en) * 2013-10-14 2018-05-16 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Features of intra block copy prediction mode for video and image coding and decoding
US10027981B2 (en) * 2014-09-01 2018-07-17 Hfi Innovation Inc. Method of intra picture block copy for screen content and video coding

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2547239C2 (en) * 2010-12-22 2015-04-10 Квэлкомм Инкорпорейтед Mode-dependent scanning of video data block coefficients
WO2013128010A9 (en) * 2012-03-02 2014-07-03 Canon Kabushiki Kaisha Method and devices for encoding a sequence of images into a scalable video bit-stream, and decoding a corresponding scalable video bit-stream
RU2654129C2 (en) * 2013-10-14 2018-05-16 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Features of intra block copy prediction mode for video and image coding and decoding
WO2015106121A1 (en) * 2014-01-10 2015-07-16 Qualcomm Incorporated Block vector coding for intra block copy in video coding
US20170094271A1 (en) * 2014-07-07 2017-03-30 Hfi Innovation Inc. Method of Intra Block Copy Search and Compensation Range
US10027981B2 (en) * 2014-09-01 2018-07-17 Hfi Innovation Inc. Method of intra picture block copy for screen content and video coding

Similar Documents

Publication Publication Date Title
JP7287433B2 (en) Video encoding device, video encoding method, video encoding program, video decoding device, video decoding method, and video decoding program
JP7375890B2 (en) Video encoding device, video encoding method, video encoding program, video decoding device, video decoding method, and video decoding program
CN112929674B (en) Image encoding device and method, image decoding device and method
CN113287314A (en) Moving picture decoding device, moving picture decoding method, moving picture decoding program, moving picture encoding device, moving picture encoding method, and moving picture encoding program
JP7063416B2 (en) Moving image coding device, moving image coding method, and moving image coding program, moving image decoding device, moving image decoding method and moving image decoding program
CN112954361B (en) Image encoding/decoding device, image encoding/decoding method
CN112470476A (en) Image encoding device, image encoding method, image encoding program, image decoding device, image decoding method, and image decoding program
RU2767973C1 (en) Video encoding device, video encoding method, video decoding device and video decoding method
RU2781517C1 (en) Dynamic image encoding device, dynamic image encoding method, dynamic image encoding program, dynamic image decoding device, dynamic image decoding method and dynamic image decoding program
RU2779635C1 (en) Video encoding device, video encoding method, video encoding program, video decoding device, video decoding method and video decoding program
CN113068038B (en) Moving image decoding device, moving image decoding method, and moving image decoding program
RU2783841C2 (en) Video encoding device, video encoding method, video decoding device and video decoding method
RU2774908C1 (en) Image encoding device, image encoding method, image encoding program, image decoding device, image decoding method and image decoding program
RU2775838C1 (en) Video encoding device, video encoding method, video encoding program, video decoding device, video decoding method and video decoding program
JP7354610B2 (en) Image encoding device, image encoding method, and image encoding program
JP7338262B2 (en) Image encoding device, image encoding method and image encoding program