RU2783841C2 - Video encoding device, video encoding method, video decoding device and video decoding method - Google Patents

Video encoding device, video encoding method, video decoding device and video decoding method Download PDF

Info

Publication number
RU2783841C2
RU2783841C2 RU2022105478A RU2022105478A RU2783841C2 RU 2783841 C2 RU2783841 C2 RU 2783841C2 RU 2022105478 A RU2022105478 A RU 2022105478A RU 2022105478 A RU2022105478 A RU 2022105478A RU 2783841 C2 RU2783841 C2 RU 2783841C2
Authority
RU
Russia
Prior art keywords
prediction
motion vector
triangle
block
merge
Prior art date
Application number
RU2022105478A
Other languages
Russian (ru)
Other versions
RU2022105478A (en
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 ДжейВиСиКЕНВУД Корпорейшн
Publication of RU2022105478A publication Critical patent/RU2022105478A/en
Application granted granted Critical
Publication of RU2783841C2 publication Critical patent/RU2783841C2/en

Links

Images

Abstract

FIELD: video encoding.
SUBSTANCE: invention relates to means for video encoding. List of triangle fusion candidates is then compiled, including spatial fusion candidates. From the list of triangle fusion candidates, a first triangle fusion candidate is selected, which is a unidirectional prediction. A second triangle merge candidate is chosen, which is a one-way prediction. Meanwhile, in the region where motion compensation is performed with the first triangle fusion candidate, motion information of the first triangle fusion candidate is stored. In the area where motion compensation is performed with the second triangle merge candidate, motion information of the second triangle merge candidate is stored. And in the area where motion compensation is performed by weighted averaging with the first and second triangle fusion candidates, motion information of the unidirectional prediction of the first or second triangle fusion candidate is stored.
EFFECT: improving the efficiency of video encoding.
4 cl, 67 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 описывает способ применения аффинного преобразования во время межкадрового предсказания. Движущиеся изображения часто имеют искажения формы объекта, такие как увеличение/уменьшение или поворот и, таким образом, применение способа в патентном документе 1 обеспечивает эффективное кодирование.When encoding/decoding a moving picture, inter-picture prediction is used, which performs prediction from an encoded/decoded picture, thereby improving encoding efficiency. Patent Document 1 describes a method for applying an affine transform during inter prediction. Moving images often have object shape distortions such as enlargement/reduction or rotation, and thus the application of the method in Patent Document 1 provides efficient coding.

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

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

Однако, способ патентного документа 1 предусматривает выполнение процесса преобразования изображения, что приводит к большой нагрузке обработки. Настоящее изобретение было предложено с учетом вышеупомянутой технической задачи и обеспечивает низкую нагрузку и эффективный способ кодирования.However, the method of Patent Document 1 involves performing an image conversion process, which results in a large processing load. The present invention has been proposed in view of the above technical problem, and provides a low load and an efficient encoding method.

В одном аспекте настоящего изобретения для решения вышеупомянутой технической задачи предоставляется способ, который включает в себя: конструктор списка кандидатов слияния треугольников, выполненный с возможностью составления списка кандидатов слияния треугольников, включающего в себя кандидаты пространственное слияния; первый селектор кандидатов слияния треугольников, выполненный с возможностью выбирать из списка кандидатов слияния треугольников первого кандидата слияния треугольников, который является однонаправленным предсказанием; и второй селектор кандидатов слияния треугольников, выполненный с возможностью выбирать из списка кандидатов слияния треугольников второго кандидата слияния треугольников, который является однонаправленным предсказанием, в котором в области, где выполняется компенсация движения посредством взвешенного усреднения первым кандидатом слияния треугольников и вторым кандидатом слияния треугольников, сохраняется информация движения однонаправленного предсказания одного из первого кандидата слияния треугольников или второго кандидата слияния треугольников.In one aspect of the present invention, for solving the above technical problem, a method is provided, which includes: a triangle merge candidate list constructor, configured to construct a triangle merge candidate list including spatial merge candidates; a first triangle merge candidate selector, configured to select from the list of triangle merge candidates a first triangle merge candidate that is unidirectional prediction; and a second triangle merge candidate selector, configured to select from the triangle merge candidate list a second triangle merge candidate, which is a unidirectional prediction in which information is stored in the area where motion compensation is performed by weighted averaging by the first triangle merge candidate and the second triangle merge candidate. one-way prediction motions of one of the first triangle fusion candidate or the second triangle fusion candidate.

Согласно настоящему изобретению предложен высокоэффективный процесс кодирования/декодирования изображений с низкой нагрузкой.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 apparatus for decoding an image according to an embodiment of the present invention.

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

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

Фиг. 5 является схемой, иллюстрирующей z-сканирование.Fig. 5 is a diagram illustrating a 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 flowchart illustrating an 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 block division form.

Фиг. 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.

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

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

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

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

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

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

Фиг. 18 является схемой подробной конфигурации блока 302 получения режима нормального слияния по фиг. 16.Fig. 18 is a detailed configuration diagram of the normal merge mode acquisition block 302 of 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 of 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 detailed configuration diagram of the inter prediction block 203 of FIG. 2.

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

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

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

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

Фиг. 27 является блок-схемой алгоритма процедуры обработки подтверждения идентичного элемента в процедуре обработки инициализации/обновления списка кандидатов предикторов вектора движения на основании истории.Fig. 27 is a flowchart of an identical element confirmation processing procedure in a 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 the 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 direction of motion compensation prediction in bidirectional prediction in which L0 reference picture prediction and L1 reference picture prediction occur 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 diagram illustrating a hardware configuration example of an encoding/decoding device according to an embodiment of the present invention.

Фиг. 38A является схемой, иллюстрирующей предсказание режима слияния треугольников.Fig. 38A is a diagram illustrating triangle fusion mode prediction.

Фиг. 38B является схемой, иллюстрирующей предсказание режима слияния треугольников.Fig. 38B is a diagram illustrating triangle fusion mode prediction.

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

Фиг. 40 является блок-схемой алгоритма, иллюстрирующей процесс получения кандидата слияния треугольников.Fig. 40 is a flowchart illustrating a process for obtaining a triangle merge candidate.

Фиг. 41 является блок-схемой алгоритма, иллюстрирующей получение информации движения однонаправленного предсказания раздела 0 слияния треугольников согласно настоящему варианту осуществления.Fig. 41 is a flowchart illustrating the acquisition of triangle merge section 0 unidirectional prediction motion information according to the present embodiment.

Фиг. 42 является блок-схемой алгоритма, иллюстрирующей получение информации движения однонаправленного предсказания для раздела 1 слияния треугольников в варианте осуществления настоящего изобретения.Fig. 42 is a flowchart illustrating the acquisition of unidirectional prediction motion information for triangle merging section 1 in an embodiment of the present invention.

Фиг. 43A является схемой, иллюстрирующей взвешивание в режиме слияния треугольников.Fig. 43A is a diagram illustrating triangle merging mode weighting.

Фиг. 43B является схемой, иллюстрирующей взвешивание в режиме слияния треугольников.Fig. 43B is a diagram illustrating triangle fusion mode weighting.

Фиг. 44A является схемой, иллюстрирующей разделы в режиме слияния треугольников.Fig. 44A is a diagram illustrating partitions in a triangle fusion mode.

Фиг. 44B является схемой, иллюстрирующей разделы в режиме слияния треугольников.Fig. 44B is a diagram illustrating sections in a triangle fusion mode.

Фиг. 44C является схемой, иллюстрирующей разделы в режиме слияния треугольников.Fig. 44C is a diagram illustrating partitions in a triangle fusion mode.

Фиг. 44D является схемой, иллюстрирующей разделы в режиме слияния треугольников.Fig. 44D is a diagram illustrating partitions in a triangle fusion mode.

Фиг. 44E является схемой, иллюстрирующей разделы в режиме слияния треугольников.Fig. 44E is a diagram illustrating partitions in a triangle fusion mode.

Фиг. 44F является схемой, иллюстрирующей разделы в режиме слияния треугольников.Fig. 44F is a diagram illustrating sections in a triangle fusion mode.

Фиг. 45A является схемой, иллюстрирующей сохраненную информацию в режиме слияния треугольников.Fig. 45A is a diagram illustrating stored information in a triangle fusion mode.

Фиг. 45B является схемой, иллюстрирующей сохраненную информацию в режиме слияния треугольников.Fig. 45B is a diagram illustrating stored information in the triangle fusion mode.

Фиг. 46A является схемой, иллюстрирующей сохраненную информацию в режиме слияния треугольников.Fig. 46A is a diagram illustrating stored information in the triangle fusion mode.

Фиг. 46B является схемой, иллюстрирующей сохраненную информацию в режиме слияния треугольников.Fig. 46B is a diagram illustrating stored information in the triangle fusion mode.

Фиг. 47A является схемой, иллюстрирующей сохраненную информацию в режиме слияния треугольников.Fig. 47A is a diagram illustrating stored information in the triangle fusion mode.

Фиг. 47B является схемой, иллюстрирующей сохраненную информацию в режиме слияния треугольников.Fig. 47B is a diagram illustrating stored information in the triangle fusion mode.

Фиг. 48A является схемой, иллюстрирующей сохраненную информацию в режиме слияния треугольников.Fig. 48A is a diagram illustrating stored information in the triangle fusion mode.

Фиг. 48B является схемой, иллюстрирующей сохраненную информацию в режиме слияния треугольников.Fig. 48B is a diagram illustrating stored information in the triangle fusion mode.

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

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

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

В варианте осуществления целевое изображение процесса кодирования/декодирования (processing target picture) одинаково разделяется на заданный размер. Этот блок определяется как блок дерева. В то время, как на фиг. 4 размер блока дерева устанавливается равным 128 × 128 выборок, размер блока дерева этим не ограничивается и может быть установлен любой размер. Блок целевого дерева (соответствующий цели кодирования в процессе кодирования и цели декодирования в процессе декодирования) переключается в порядке растрового сканирования, то есть, в порядке слева направо и сверху вниз. Внутренняя часть каждого блока дерева может быть дополнительно рекурсивно разделена. Блок кодирования/декодирования в результате рекурсивного разделения блока дерева определяется как блок кодирования. Блок дерева и блок кодирования вместе определяются как блок. Выполнение соответствующего разделения блока обеспечивает эффективное кодирование. Размер блока дерева может быть фиксированным значением, заранее определенным устройством для кодирования и устройством для декодирования, или можно принять конфигурацию, в которой размер блока дерева, определенный устройством для кодирования, передается в устройство для декодирования. Здесь максимальный размер блока дерева составляет 128 × 128 выборок и минимальный размер блока дерева равен 16 × 16 выборок. Максимальный размер блока кодирования составляет 64 × 64 выборки и минимальный размер блока кодирования равен 4 × 4 выборки.In an embodiment, the target image of the encoding/decoding process (processing target picture) is equally divided into a given 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 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).

Межкадровое предсказание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

Режим слияния является режимом, который извлекает информацию межкадрового предсказания целевого блока из информации межкадрового предсказания обработанного блока в соседнем блоке целевого блока или блока, принадлежащего обработанному изображению и расположенного на той же позиции, что и целевой блок или в окрестностях (vicinity) целевого блока, без передачи разности вектора движения или опорного индекса.The merge mode is a mode that extracts 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 (vicinity) of the target block, without transmitting a motion vector difference or a reference 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) целевого блока в целевом изображении.Fig. 11 is a diagram illustrating reference blocks to be referred to 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 являются контрольными точками.Fig. 14 illustrates 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, i.e., 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 являются контрольными точками.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, i.e., 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 иллюстрируют синтаксис для выражения режима предсказания блока кодирования. На фиг. 12А pred_mode_flag является флагом, указывающим режим межкадрового предсказания. Установка pred_mode_flag 0 указывает на межкадровое предсказание и установка pred_mode_flag 1 указывает на внутрикадровое предсказание. Информация внутрикадрового предсказания intra_pred_mode передается в случае внутрикадрового предсказания, в то время как merge_flag передается в случае межкадрового предсказания. merge_flag является флагом, указывающим, является ли используемый режим режимом слияния или режимом предиктора вектора движения. В случае режима предиктора вектора движения (merge_flag = 0) передается флаг inter_affine_flag, указывающий, применять ли режим предиктора вектора движения подблока. В случае применения режима предсказания вектора движения подблока (inter_affine_flag = 1) передается cu_affine_type_flag. cu_affine_type_flag является флагом для определения количества контрольных точек в режиме предиктора вектора движения подблока.Fig. 12A, FIG. 12B and FIG. 13 illustrate the syntax for expressing a coding block prediction mode. In FIG. 12A, pred_mode_flag is a flag indicating an inter prediction mode. Setting pred_mode_flag 0 indicates inter-prediction and setting pred_mode_flag 1 indicates intra-prediction. The intra prediction information intra_pred_mode is transmitted in the case of intra prediction, while the merge_flag is transmitted in the case of inter prediction. merge_flag is a flag indicating whether the mode used is a merge mode or a motion vector predictor 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.

Напротив, как показано на фиг. 12В, в случае режима слияния (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).Fig. 13 illustrates the meaning of each of the 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, description will be made 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 хранения информации кодирования.Fig. 1 is a block diagram of an apparatus 100 for encoding images 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 splitter 101 sets the constructed coding block as the target coding block, and supplies the image signal of the target coding block to the inter prediction section 102, the intra prediction section 103, and the residual generation section 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 способа предсказания. 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 unit 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.

Фиг. 10A и фиг. 10B иллюстрируют примеры внутрикадрового предсказания. Фиг. 10A иллюстрирует соответствие между направлением предсказания внутрикадрового предсказания и номером режима внутрикадрового предсказания. Например, режим 50 внутрикадрового предсказания копирует опорные выборки в вертикальном направлении и, тем самым, формирует изображение внутрикадрового предсказания. Режим 1 внутрикадрового предсказания является DC режимом, в котором установлены все значения выборок целевого блока на среднее значение опорных выборок. Режим 0 внутрикадрового предсказания является планарным режимом, в котором формируется изображение двумерного внутрикадрового предсказания из опорных выборок в вертикальном и горизонтальном направлениях. Фиг. 10B представляет собой пример построения изображения внутрикадрового предсказания в случае режима 40 внутрикадрового предсказания. Блок 103 внутрикадрового предсказания копирует для каждой из выборок целевого блока значение опорной выборки в направлении, указанном режим внутрикадрового предсказания. В случае, когда опорная выборка в режиме внутрикадрового предсказания не находится на целочисленной позиции, блок 103 внутрикадрового предсказания определяет значение опорной выборки путем интерполяции из значений опорной выборки на соседних целочисленных позициях.Fig. 10A and FIG. 10B illustrate examples of intra prediction. Fig. 10A illustrates a correspondence between an 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 generates an intra prediction image. Intra prediction mode 1 is a DC mode in which all target block sample values are set to the average of the reference samples. Intra prediction mode 0 is a planar mode in which a 2D intra prediction image is formed from reference samples in the vertical and horizontal directions. Fig. 10B is an example of constructing an intra prediction image in the case of the intra prediction mode 40 . The intra prediction block 103 copies, for each of the samples of the target block, the value of the reference sample 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 intra prediction unit 103 determines the value of the reference sample by interpolating from the reference sample values at neighboring integer positions.

Память 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 кодирования битовой строки мультиплексирует первую битовую строку и вторую битовую строку на основании предписанного синтаксиса и выводит битовый поток.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 case of a merge mode , an inter-picture prediction mode in the case of non-merging modes, a motion vector predictor index, information related to the motion vector difference, and a sub-block motion vector predictor flag based on the prescribed syntax (by the bit string syntax rules), and thereby generates the first bit string. In the case where the prediction mode is intra prediction (MODE_INTRA), coding information (intra prediction information) such as the intra prediction mode is encoded according to a prescribed syntax (bit string syntax rules) to form a first bit string. Further, the bit string encoding section 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 the encoding information storage 111, which includes inter prediction information such as a determined motion vector, reference list indexes L0 and L1, and a history-based motion vector predictor candidate list. 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, the encoding information stored in the encoding information storage memory 111 includes, in addition to the above information, inter prediction information such as the inter prediction mode, motion vector predictor index, 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 декодированного изображения.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 of FIG. 1. The image decoding apparatus according to the embodiment includes a bit string decoding section 201, a block division 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 an overlay section 207. a decoded image signal and a 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 of FIG. one.

Битовый поток, подаваемый в блок 201 декодирования битовой строки, разделяется на основании предписанного правила синтаксиса. Блок 201 декодирования битовой строки декодирует разделенную первую битовую строку и, таким образом, получает последовательность, изображение, сегмент, информацию в блоках блоков кодирования и информацию кодирования в блоках блоков кодирования. В частности, блок 201 декодирования битовой строки декодирует режим предсказания PredMode, который определяет, является ли предсказание межкадровым предсказанием (MODE_INTER) или внутрикадровым предсказанием (MODE_INTRA) в блоках блока кодирования. В случае, когда режимом предсказания является межкадровое предсказание (MODE_INTER), блок 201 декодирования битовой строки декодирует информацию кодирования (информацию межкадрового предсказания), относящуюся к флагу, который определяет, является ли режим режимом слияния, индекс слияния в случае режима слияния, флаг слияния подблока и режим межкадрового предсказания в случае режима предиктора вектора движения, индекс предиктора вектора движения, разность векторов движения, флаг предиктора вектора движения подблока или т.п. в соответствии с предписанным синтаксисом, и затем поставляет информацию кодирования (информацию межкадрового предсказания) в память 205 хранения информации кодирования через блок 203 межкадрового предсказания и блок 202 разделения блоков. В случае, когда режимом предсказания является внутрикадровое предсказание (MODE_INTRA), блок 201 декодирования битовой строки декодирует информацию кодирования (информацию внутрикадрового предсказания), такую как режим внутрикадрового предсказания, согласно предписанному синтаксису, и затем предоставляет декодированную информацию кодирования (информация внутрикадрового предсказания) в память 205 хранения информации кодирования через блок 203 межкадрового предсказания или блок 204 внутрикадрового предсказания и через блок 202 разделения блоков. Блок 201 декодирования битовой строки декодирует разделенную вторую битовую строку и вычисляет ортогонально преобразованный/квантованный остаток и затем поставляет ортогонально преобразованный/квантованный остаток в обратный квантователь/обратный ортогональный преобразователь 206.The bit stream supplied to the bit string decoder 201 is divided based on a prescribed syntax rule. The bit string decoding section 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 the 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 an inter prediction mode 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 prediction (MODE_INTRA), the bit string decoding section 201 decodes coding information (intra prediction information) such as the intra prediction mode according to a prescribed syntax, and then provides the decoded coding information (intra prediction information) to the memory 205 encoding information storage through block 203 inter prediction or block 204 intra prediction and through block 202 block division. 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 registers the plurality of received motion vector predictor candidates into a 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, or the like. 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 encoding 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. 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 raster scan order (step S1002), and the target tree block is internally divided (step S1003).

Фиг. 7 является блок-схемой алгоритма, иллюстрирующей подробную операцию процесса разделения на этапе S1003. Сначала определяется, разделить ли целевой блок на четыре (этап S1101).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). Fig. 5 illustrates 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 splitting process of FIG. 7 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).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: top, 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 can be provided in a configuration in which information is not transmitted by 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 optimal shape estimation 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 не приведет к иерархическому разделению блоков.Fig. 9 illustrates the syntax (bit string syntax rules) related to block division according to the first embodiment. coding_quadtree() represents the syntax for the process of quadruple block splitting. 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 is needed (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 the block should be split into two, will be transmitted. or three. 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 Fig. 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.

Межкадровое предсказание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, the inter prediction method according to the embodiment will be described 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 получения режима предиктора нормального вектора движения.Fig. 16 is a diagram illustrating a detailed configuration of the inter frame 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 obtaining 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.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 acquires 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.

[0Блок 401 получения режима предиктора нормального вектора движения на фиг. 23 включает в себя блок 421 получения кандидата пространственного предиктора вектора движения, блок 422 получения кандидата временного предиктора вектора движения, блок 423 получения кандидата предиктора вектора движения на основании истории, пополнитель 425 кандидатов предиктора вектора движения, селектор 426 кандидатов предиктора вектора движения и сумматор 427 вектора движения.[0The normal motion vector predictor mode acquisition block 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. 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. 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 (step S102 in FIG. 19: YES), 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 как в: mvdLX = mvLX-mvpLX (этап S105 на фиг. 19).Then, the motion vector subtractor 328 subtracts the selected motion vector LX predictor mvpLX from the motion vector LX mvLX and calculates the difference of the LX motion vectors mvdLX as in: 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 to 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 LX motion vector calculation process, 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 motion vector mvLX for LX is used (step S202 in FIG. 25: YES), motion vector predictor candidates LX are computed to compile a motion vector predictor candidate list mvpListLX for LX (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, декодированных и поставленных блоком 201 декодирования битовой строки, и предиктор mvpLX вектора движения LX, и вычисляет вектор mvLX движения LX как в: + mvdLX (этап S205 на фиг. 25).Then, the motion vector adder 427 adds the difference mvdLX of the LX motion vectors decoded and delivered by the bit string decoder 201 and the LX motion vector predictor mvpLX, and calculates the LX motion vector mvLX as in: + mvdLX (step S205 in FIG. 25).

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

Фиг. 20 является блок-схемой алгоритма, иллюстрирующей процедуру обработки процесса получения режима предиктора нормального вектора движения, имеющего функцию, общую для блока 301 получения режима предиктора нормального вектора движения устройства для кодирования изображения и блока 401 получения режима предиктора нормального вектора движения устройства для декодирования изображения согласно варианту осуществления настоящего изобретения.Fig. 20 is a flowchart illustrating a processing procedure for obtaining a 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 shall 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 derives a motion vector predictor candidate from blocks in the left side adjacent. This process outputs a motion vector predictor mvLXA with reference to the inter frame prediction information of the block in the left side adjacent (A0 or A1 in FIG. 11 ), namely a flag indicating whether a motion vector predictor candidate, a motion vector, a reference index, or the like can be used, 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 the 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 получения режима нормального слияния устройства для декодирования изображений согласно к варианту осуществления настоящего изобретения.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 merge candidate list mergeCandList 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). Опорный индекс на момент добавления кандидата слияния отличается от опорного индекса, который уже был добавлен.Subsequently, in merge candidate augmenter 346 and merge candidate augmenter 446, in the case where the number of numCurrMergeCand 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 merge candidate list mergeCandList 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 предсказания компенсации движения.Subsequently, the merge candidate selector 347 and the merge candidate selector 447 select a 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. 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 предсказания, указывающий, должно ли выполняться L0 предсказание, флаг predFlagL1 L1 предсказания, указывающий, должно ли выполняться 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 L0 indicating whether L0 prediction should be performed, a prediction flag predFlagL1 L1 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 the inter prediction information candidate hMvpCand among the elements (i.e., inter prediction information) registered in 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 205 on the decoding side, the item will be removed from the motion vector predictor candidate list HmvpCandList based on the history. On the contrary, 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 slot 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 кандидатов предиктора вектора движения на основании истории должна выполняться в блоках сегментов (первый блок кодирования сегмента), инициализация может выполняться в блоках изображений, плиток или строк блока дерева.While 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, the 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 (step S2104 in FIG. 26: NO). If there is an inter prediction information candidate hMvpCand to be registered, the process of step S2105 and later will be executed (step S2104 in FIG. 26: YES).

Впоследствии определяется, включают ли в себя отдельные элементы списка 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 и позже.Subsequently, it is 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). Fig. 27 is a flowchart of an identical element confirmation processing procedure. In the case where the history-based motion vector predictor candidate number value NumHmvpCand is 0 (S2121: NO 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 with S2122 to 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 where they are identical (step S2123 in FIG. 27: YES), the identityCandExist flag indicating the existence of an identical candidate is set to TRUE, and the removal target index removeIdx 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 (step S2123 in FIG. 27: NO), hMvpIdx is incremented by one. In the 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 existence of an identical candidate is TRUE or that the number of the current candidate NumHmvpCand is 6 is satisfied (step S2141: YES in FIG. 28), the item stored in the candidate list HmvpCandList history-based motion vector predictor is 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 to 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 increased by one (steps S2142 to 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 presence of an identical candidate is TRUE and that NumHmvpCand is 6 is satisfied (Step S2141: NO 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).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 in 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 following HMVP3-HMVP5 elements are shifted (copied) one by one. others forward, and a new entry 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 (step S2201: NO in FIG. 29), the process of steps S2202 to S2209 in FIG. 29 will be omitted, and the history-based motion vector predictor candidate acquisition processing 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 (step S2201: YES on 29), the process of steps S2202 to 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 to 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 (step S2203: NO in FIG. 29), 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 (step S2203 in FIG. 29: YES), the process in step 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 (S2205: NO 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 (S2205: YES 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 where 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 (step S2206: YES 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 encoding/decoding target motion vector reference index refIdxLX and is different from any element of the motion vector predictor list mvpListLX (step S2206: NO 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 to 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. 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).Subsequently, 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 to 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 (Step S2303: NO 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 (MaxNumMergeCand-1 maximum merge candidate list) will be the process of step S2304 and later is performed. sameMotion is set to FALSE (step S2304 in FIG. 30). Subsequently, 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 (S2305 to 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 (step S2306: YES in FIG. 30), sameMotion and isPruned[i] will be set to TRUE (step S2307 in FIG. 30). In case the values do not match (step S2306: NO 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 (Step S2309: YES in FIG. 30), that is, (NumHmvpCand-hMvpIdx) there is no HmvpCandList [NumHmvpCand-hMvpIdx] item which is 0-based in the history-based motion vector predictor candidate list. in the mergeCandList and hence the element HmvpCandList [NumHmvpCand - hMvpIdx], which is the (NumHmvpCand - hMvpIdx) 0-based element 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 increased by one (step S2310 in FIG. 30). The hMvpIdx index is incremented by one (step S2302 in FIG. 30), and the process of steps S2302 to S2311 in FIG. 30 is repeated.

После завершения подтверждения всех элементов в списке кандидатов предиктора вектора движения на основании истории или завершения добавления кандидатов слияния ко всем элементам в списке кандидатов слияния процесс получения кандидатов слияния на основании истории завершается.After confirming all elements in the history-based motion vector predictor candidate list is completed, 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 получения режима нормального слияния на стороне декодирования. Фиг. 39 является блок-схемой алгоритма, иллюстрирующей процедуру обработки получения кандидата усредненного слияния.The following is a detailed description of the method for obtaining the average merge candidate, the process 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. Fig. 39 is a flowchart illustrating an average merge candidate acquisition processing procedure.

Сначала выполняется процесс инициализации (этап S1301 на фиг. 39). Переменная numOrigMergeCand устанавливается равной количеству элементов numCurrMergeCand, зарегистрированных в текущем списке кандидатов слияния.First, an initialization process is performed (step S1301 in FIG. 39). 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 на фиг. 39). Когда число numCurrMergeCand элементов, зарегистрированных в текущем списке кандидатов слияния, не меньше или равно (максимальное количество кандидатов MaxNumMergeCand-1 слияния), ко всем элементам в списке кандидатов слияния были добавлены кандидаты слияния. Соответственно, процесс получения кандидатов слияния на основании истории будет завершен (этап S1304 на фиг. 39). В случае, когда количество 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. The index i indicating the first motion information is set such that the index i = 0, and the index j indicating the second motion information is set such that the index j=1. (Steps S1302-S1303 in Fig. 39). 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 process of obtaining merge candidates based on the history will be completed (step S1304 in FIG. 39). 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 на фиг. 39). В случае, когда обе являются недействительными, процесс переходит к следующему элементу без получения кандидата усредненного слияния mergeCandList [i] и mergeCandList [j]. В случае, когда условие, что оба mergeCandList [i] и mergeCandList [j] являются недействительными, не удовлетворяется, следующий процесс повторяется с X, установленным на 0 и 1 (этапы с S1306 по S1314 на фиг. 39).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. 39). 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. 39).

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

Полученный таким образом кандидат averageCand усредненного слияния L0 предсказания, L1 предсказания или предсказания BI, добавляется к numCurrMergeCand-th mergeCandList [numCurrMergeCand] списка кандидатов слияния, и numCurrMergeCand увеличивается на единицу (этап S1315 на фиг. 39). На этом процесс получения кандидата усредненного слияния завершается.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. 39). 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 picture indicated by the reference index in the decoded picture memory 104 is shifted from the same position as the picture signal of the block that is 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 prediction is made from one reference picture, for example, when the inter prediction mode in 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 the prediction mode 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 weighted averaging ratio in bidirectional prediction is set to 1:1. Alternatively, weighted averaging may use a different ratio. 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 receives 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 been 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, 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 current 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 processing 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 the inter prediction mode determiner 305 has been selected the inter prediction information 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 movement of the current 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 current 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 the inter prediction mode determiner 305 has selected the inter prediction information by the sub-block motion vector predictor mode obtaining unit 303, 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 current 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 obtains inter-picture 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 movement of the current 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 acquires 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 current 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 not to perform affine model motion compensation on 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 not to 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 target CU, motion compensation using an affine model is used to generate a motion compensation prediction signal of the current target CU. When inter_affine_flag is 0, no affine model is used for the current target 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 parametric 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.

Режим слияния треугольниковTriangle Merge Mode

Режим слияния треугольников представляет собой тип режима слияния, в котором блок кодирования/декодирования разделяется на диагональные части для выполнения предсказания компенсации движения. Режим слияния треугольников представляет собой тип режима слияния с геометрическим разделением, в котором блок кодирования/декодирования разделяется на блоки, имеющие непрямоугольную форму. В режиме слияния с геометрическим разделением это соответствует режиму, в котором блок кодирования/декодирования разделяется на два прямоугольных треугольника диагональной линией.The triangle fusion mode is a type of fusion mode in which an encoding/decoding block is divided into diagonal parts to perform motion compensation prediction. The triangle merge mode is a type of geometric division merge mode in which an encoding/decoding block is divided into blocks having a non-rectangular shape. In the geometric division merge mode, this corresponds to a mode in which an encoding/decoding block is divided into two rectangular triangles by a diagonal line.

Режим слияния с геометрическим разделением выражается комбинацией двух параметров, например, индекс (angleIdx), указывающий угол разделения, и индекс (distanceIdx), указывающий расстояние от центра блока кодирования. Например, определены 64 шаблона как режим слияния с геометрическим разделением, и выполняется кодирование с фиксированной длиной. Из 64 шаблонов два режима, в которых индекс, обозначающий угол деления, указывает угол, образующий диагональную линию блока кодирования (например, 45 градусов (angleIdx = 4 в конфигурации, в которой 360 градусов представлены 32 делениями) или 135 градусов (angleIdx = 12 в конфигурации, в которой 360 градусов представлены 32 делениями)), и индекс, указывающий расстояние от центра блока кодирования, является минимальным (distanceIdx = 0, указывая, что граница разделения проходит через центр блока кодирования), указывают, что блок кодирования разделен диагональной линией и соответствует режиму слияния треугольников.The geometric separation merge mode is expressed by a combination of two parameters, for example, an index (angleIdx) indicating a separation angle and an index (distanceIdx) indicating a distance from the center of the coding block. For example, 64 patterns are defined as the geometric separation merge mode, and fixed length encoding is performed. Of the 64 patterns, two modes in which the division angle index indicates the angle forming the diagonal line of the coding block (for example, 45 degrees (angleIdx = 4 in a configuration in which 360 degrees are represented by 32 divisions) or 135 degrees (angleIdx = 12 in configuration in which 360 degrees are represented by 32 divisions)), and the index indicating the distance from the center of the coding block is the minimum (distanceIdx = 0, indicating that the division boundary passes through the center of the coding block), indicate that the coding block is divided by a diagonal line, and corresponds to the mode of merging triangles.

Режим слияния треугольников будет описан со ссылкой на фиг. 38A и фиг. 38B. Фиг. 38A и фиг. 38B иллюстрируют пример предсказания блоков кодирования/декодирования 16 × 16 режима слияния треугольников. Блок кодирования/декодирования режима слияния треугольников разделен на подблоки 4 × 4, и каждый из подблоков назначается трем разделам, а именно, разделу 0 (UNI0) однонаправленного предсказания, разделу 1 (UNI1) однонаправленного предсказания и разделу 2 (BI) двунаправленного предсказания. Здесь подблоки выше диагональной линии назначаются разделу 0, подблоки ниже диагональной линии назначаются разделу 1 и подблоки на диагональной линии назначаются разделу 2. Когда merge_triangle_split_dir равен 0, разделы назначаются, как показано на фиг. 38A и, когда merge_triangle_split_dir равен 1, разделы назначаются, как показано на фиг. 38B.The triangle fusion mode will be described with reference to FIG. 38A and FIG. 38b. Fig. 38A and FIG. 38B illustrate an example of 16×16 coding/decoding block prediction of triangle fusion mode. The triangle merge mode encoding/decoding block is divided into 4×4 subblocks, and each of the subblocks is assigned to three partitions, namely, unidirectional prediction partition 0 (UNI0), unidirectional prediction partition 1 (UNI1), and bidirectional prediction partition 2 (BI). Here, subblocks above the diagonal line are assigned to section 0, subblocks below the diagonal line are assigned to section 1, and subblocks on the diagonal line are assigned to section 2. When merge_triangle_split_dir is 0, sections are assigned as shown in FIG. 38A, and when merge_triangle_split_dir is 1, partitions are assigned as shown in FIG. 38b.

Для предсказания компенсации движения раздела 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 partition motion compensation prediction 1. Bidirectional prediction motion information combined with unidirectional prediction motion information indicated by triangle fusion index 0 and unidirectional prediction motion information indicated by triangle fusion index 1 is used for section 2 motion compensation prediction.

Здесь, информация движения однонаправленного предсказания представляет собой набор вектора движения и опорного индекса, в то время как информация движения двунаправленного предсказания формируется с двумя наборами вектора движения и опорным индексом. Информация движения представляет либо информацию движения однонаправленного предсказания, либо информацию движения двунаправленного предсказания.Here, the unidirectional prediction motion information is a set of a motion vector and a reference index, while the bidirectional prediction motion information is generated with two sets of a motion vector and a reference index. The motion information represents either unidirectional prediction motion information or bidirectional prediction motion information.

Селекторы 347 и 447 кандидатов слияния используют полученный список mergeCandList кандидатов слияния в качестве списка triangleMergeCandList кандидатов слияния треугольников.Merge candidate selectors 347 and 447 use the resulting mergeCandList of merge candidates as the triangleMergeCandList of triangle merge candidates.

Со ссылкой на фиг. 40 будет описана блок-схема алгоритма, относящаяся к получению кандидата слияния треугольников.With reference to FIG. 40, a flowchart related to obtaining a triangle merge candidate will be described.

Во-первых, список mergeCandList кандидатов слияния используется в качестве списка triangleMergeCandList кандидатов слияния треугольников (этап S3501).First, the mergeCandList of merge candidates is used as the triangleMergeCandList of triangle merge candidates (step S3501).

Впоследствии, кандидат слияния, имеющий список L0 информации движения, получает приоритет, и получается информация движения однонаправленного предсказания для раздела 0 слияния треугольников (этап S3502).Subsequently, the merge candidate having the motion information list L0 receives priority, and the unidirectional prediction motion information for the triangle merge section 0 is obtained (step S3502).

Затем кандидат слияния, имеющий список L1 информации движения, получает приоритет, и получается информация движения однонаправленного предсказания для раздела 1 слияния треугольников (этап S3503).Then, the merge candidate having the motion information list L1 is given priority, and unidirectional prediction motion information for triangle merging section 1 is obtained (step S3503).

Следует отметить, что этап S3502 и этап S3503 могут выводиться в случайном порядке, а также могут обрабатываться параллельно.Note that step S3502 and step S3503 may be output in random order, and may also be processed in parallel.

Фиг. 41 является блок-схемой последовательности операций, иллюстрирующей получение информации движения однонаправленного предсказанием для раздела 0 слияния треугольников согласно настоящему варианту осуществления.Fig. 41 is a flowchart illustrating acquisition of unidirectional prediction motion information for triangle merging section 0 according to the present embodiment.

Во-первых, для M-го кандидата в полученном списке mergeCandList кандидатов слияния выполняется определение, имеет ли кандидат M информацию движения списка L0 информации движения (этап S3601). В случае, когда кандидат M имеет информацию движения списка L0 информации движения, информация движения списка L0 информации движения кандидата M устанавливается, как кандидат слияния треугольников (этап S3602). Для кандидатов M (M = 0, 1, ..., numMergeCand-1) этапы S3601 и этап S3602 выполняются в порядке возрастания, и дополнительно выводятся кандидаты слияния треугольников.First, for the Mth candidate in the obtained merge candidate list mergeCandList, a determination is made whether the candidate M has motion information of the motion information list L0 (step S3601). In the case where the candidate M has the motion information of the motion information list L0, the motion information of the motion information list L0 of the candidate M is set as a triangle merge candidate (step S3602). For M candidates (M = 0, 1, ..., numMergeCand-1), steps S3601 and step S3602 are executed in ascending order, and triangle merge candidates are additionally output.

Затем для M-го кандидата в полученном списке mergeCandList кандидатов слияния выполняется определение, имеет ли кандидат M информацию движения списка L1 информации движения (этап S3603). В случае, когда кандидат M имеет информацию движения списка L1 информации движения, информация движения списка L1 информации движении кандидата M устанавливается, как кандидат слияния треугольников (этап S3604). Для кандидатов M (M = numMergeCand-1, ..., 1, 0) этапы S3603 и этап S3604 выполняются в порядке убывания, и дополнительно выводятся кандидаты на объединение треугольников.Then, for the Mth candidate in the obtained merge candidate list mergeCandList, a determination is made whether the candidate M has motion information of the motion information list L1 (step S3603). In the case where the candidate M has the motion information of the motion information list L1, the motion information of the motion information list L1 of the candidate M is set as a triangle merge candidate (step S3604). For candidates M (M = numMergeCand-1, ..., 1, 0), steps S3603 and step S3604 are executed in descending order, and triangle merging candidates are additionally output.

Фиг. 42 является блок-схемой последовательности операций, иллюстрирующей получение информации движения однонаправленного предсказания для раздела 1 слияния треугольников согласно настоящему варианту осуществления.Fig. 42 is a flowchart illustrating the acquisition of unidirectional prediction motion information for triangle merging section 1 according to the present embodiment.

Прежде всего, для M-го кандидата в полученном списке mergeCandList кандидатов слияния определяется, имеет ли кандидат M информацию движения списка L1 информации движении (этап S3701). В случае, когда кандидат M имеет информацию движения списка L1 информации движении, информация движении списка L1 информации движении кандидата M устанавливается, как кандидат слияния треугольников (этап S3702). Для кандидатов M (M = 0, 1, ..., numMergeCand-1) этапы S3701 и этап S3702 выполняются в порядке возрастания, и дополнительно выводятся кандидаты слияния треугольников.First of all, it is determined for the M-th candidate in the obtained merge candidate list mergeCandList whether the candidate M has the motion information of the motion information list L1 (step S3701). In the case where the candidate M has the motion information of the motion information list L1, the motion information of the motion information list L1 of the candidate M is set as a triangle merge candidate (step S3702). For M candidates (M = 0, 1, ..., numMergeCand-1), steps S3701 and step S3702 are executed in ascending order, and triangle merge candidates are additionally output.

Затем для M-го кандидата в полученном списке mergeCandList кандидатов слияния определяется, имеет ли кандидат M информацию движения списка L0 информации движении (этап S3703). В случае, когда кандидат M имеет информацию движения списка L0 информации движения, информация движении списка L0 информации движении кандидата M устанавливается, как кандидат слияния треугольников (этап S3704). Для кандидатов M (M = numMergeCand-1, ..., 1, 0) этапы S3703 и этап S3704 выполняются в порядке убывания, и дополнительно выводятся кандидаты слияния треугольников.Then, for the M-th candidate in the obtained merge candidate list mergeCandList, it is determined whether the candidate M has motion information of the motion information list L0 (step S3703). In the case where the candidate M has the motion information of the motion information list L0, the motion information of the motion information list L0 of the candidate M is set as a triangle merge candidate (step S3704). For candidates M (M = numMergeCand-1, ..., 1, 0), steps S3703 and step S3704 are executed in descending order, and triangle merge candidates are additionally output.

Селектор 347 кандидатов слияния на стороне кодирования получает информацию движении из полученного списка triangleMergeCandList кандидатов слияния треугольников и вычисляет количества кода и величины искажения.The coding-side merge candidate selector 347 receives motion information from the obtained triangleMergeCandList of triangle merge candidates, and calculates code amounts and distortion amounts.

Селектор 347 кандидатов слияния сравнивает вычисленные множества величин кода и величин искажения, тем самым, выбирая направления разделения блоков кодирования и кандидатов слияния треугольников для разделенных разделов. В случае, когда кодирование выполняется с использованием режима слияния треугольников, селектор 347 кандидатов слияния поставляет выбранную информацию (направления разделения блока кодирования merge_triangle_split_dir и индексы merge_triangle_idx0, merge_triangle_idx1 слияния треугольников, указывающие кандидатов слияния треугольников разделенных разделов) и информацию межкадрового предсказания кандидатов слияния треугольников в блок 306 предсказания компенсации движения. Блок 108 кодирования битовой строки кодирует выбранную информацию.The merge candidate selector 347 compares the calculated sets of code values and distortion values, thereby selecting directions for splitting coding blocks and triangle merge candidates for the split sections. In the case where encoding is performed using the triangle merge mode, the merge candidate selector 347 supplies the selected information (the division directions of the encoding block merge_triangle_split_dir and the triangle merge indices merge_triangle_idx0, merge_triangle_idx1 indicating the triangle merge candidates of the split sections) and the interframe prediction information of the triangle merge candidates to block 306 motion compensation predictions. The bit string encoding unit 108 encodes the selected information.

С другой стороны, в случае режима слияния треугольников селектор 447 кандидатов слияния на стороне декодирования выбирает кандидатов слияния треугольников на основании декодированной информации (направления разделения блоков кодирования merge_triangle_split_dir и индексы merge_triangle_idx0 и merge_triangle_idx1 слияния треугольников, указывающие кандидаты слияния треугольников разделенных разделов) и предоставляет информацию межкадрового предсказания выбранных кандидатов слияния треугольников в блок 406 предсказания компенсации движения.On the other hand, in the case of the triangle merge mode, the merge candidate selector 447 on the decoding side selects the triangle merge candidates based on the decoded information (merge_triangle_split_dir coding block splitting directions and merge_triangle_idx0 and merge_triangle_idx1 triangle merge indices indicating split section triangle merge candidates) and provides inter-picture prediction information of the selected triangle merge candidates to the motion compensation predictor 406 .

В случае режима слияния треугольников блоки 306 и 406 предсказания компенсации движения выполняют взвешенное усреднение, описанное ниже. В случае яркости блоки 306 и 406 предсказания компенсации движения вычисляют nCbR = (nCbW> nCbH)? (nCbW / nCbH): (nCbH / nCbW) относительно ширины nCbW и высоты nCbH блока кодирования. Затем на позиции (x, y) в блоке кодирования вес wValue в случае фиг. 38A вычисляется как wValue = (nCbW> nCbH)?In the case of the triangle merge mode, motion compensation predictors 306 and 406 perform weighted averaging, described below. In the case of brightness, motion compensation predictors 306 and 406 calculate nCbR = (nCbW > nCbH)? (nCbW / nCbH): (nCbH / nCbW) relative to the width nCbW and the height nCbH of the coding block. Then, at position (x, y) in the coding block, the weight of wValue in the case of FIG. 38A is calculated as wValue = (nCbW > nCbH)?

(Clip3 (0, 8, x / nCbR - y + 4)):(Clip3(0, 8, x/nCbR - y + 4)):

(Clip3 (0, 8, y / nCbR - x + 4)). С другой стороны, вес wValue в случае фиг. 38B рассчитывается как wValue = (nCbW> nCbH)?(Clip3(0, 8, y/nCbR - x + 4)). On the other hand, the weight of wValue in the case of FIG. 38B is calculated as wValue = (nCbW > nCbH)?

(Clip3 (0, 8, nCbH - 1 - x / nCbR - y + 4)):(Clip3(0, 8, nCbH - 1 - x / nCbR - y + 4)):

(Clip3 (0, 8, nCbW - 1 - y / nCbR - x + 4)). Кроме того, блоки 306 и 406 предсказания компенсации движения вычисляют shift1 = max (5, 17 - bitDepth).(Clip3(0, 8, nCbW - 1 - y / nCbR - x + 4)). In addition, motion compensation predictors 306 and 406 calculate shift1=max(5, 17-bitDepth).

offset1 = 1 << (shift1 - 1) относительно битового числа bitDepth. Затем результат взвешенного усреднения pbSamples вычисляется как pbSamples = Clip3 (0, (1 << bitDepth) - 1,offset1 = 1 << (shift1 - 1) relative to bitDepth. The result of the weighted average pbSamples is then calculated as pbSamples = Clip3 (0, (1 << bitDepth) - 1,

(predSamplesLA * wValue +(predSamplesLA * wValue +

predSamplesLB * (8 - wValue) + offset1) >> shift 1). Здесь predSamplesLA является значением пикселя с компенсацией движения с использованием вектора mvLA движения, и predSamplesLB является значением пикселя с компенсацией движения с использованием mvLB.predSamplesLB * (8 - wValue) + offset1) >> shift 1). Here, predSamplesLA is a motion-compensated pixel value using the mvLA motion vector, and predSamplesLB is a motion-compensated pixel value using mvLB.

Процесс хранения в памяти хранения информации кодированияThe process of storing encoding information in storage memory

Информация межкадрового предсказания, полученная в режиме слияния треугольников, сохраняется в памяти хранения информации кодирования, так что информация межкадрового предсказания может упоминаться как информация межкадрового предсказания, соседняя с целевым блоком при выполнении кодирования и декодирования. Процесс сохранения в памяти хранения информации кодирования выполняется в блоках подблока 4x4, и сохраняется информация межкадрового предсказания, заданная разделами.The inter prediction information obtained in the triangle fusion mode is stored in the encoding information storage memory, so that the inter prediction information can be referred to as inter prediction information adjacent to the target block when encoding and decoding are performed. The coding information storage memory process is performed in 4×4 sub-block blocks, and the inter prediction information specified by the partitions is stored.

Указанная информация межкадрового предсказания является информацией межкадрового предсказания для раздела 0 (UNI0) однонаправленного предсказания и раздела 1 (UNI1) однонаправленного предсказания. Раздел 2 (BI) двунаправленного предсказания получается с использованием информации межкадрового предсказания UNI0 и UNI1.This inter prediction information is inter prediction information for unidirectional prediction section 0 (UNI0) and unidirectional prediction section 1 (UNI1). Bidirectional prediction section 2 (BI) is obtained using the inter prediction information UNI0 and UNI1.

Для подблоков на диагональных линиях, разделенных как разделы, в случае, когда выполняется взвешивание, показанное на фиг. 43, возможно разделение 2, показанное на фиг. 44. Фиг. 44A иллюстрирует случай, когда область, в которой выполняется взвешивание, проиллюстрированное на фиг. 43A, задается как раздел 2. Аналогично, фиг. 44B соответствует фиг. 43B. Фиг. 44C иллюстрирует случай, когда подблоки, для которых выполняется взвешивание на фиг. 43A, задаются как раздел 2. Точно так же фиг. 44D соответствует фиг. 43B. Фиг. 44E иллюстрирует случай, когда подблоки, для которых выполняется взвешивание на фиг. 43A, заданы как раздел 2. Аналогично, фиг. 44F соответствует фиг. 43B.For sub-blocks on diagonal lines divided as sections, in the case where the weighting shown in FIG. 43, separation 2 shown in FIG. 44. FIG. 44A illustrates a case where the area in which the weighing illustrated in FIG. 43A is set as section 2. Similarly, FIG. 44B corresponds to FIG. 43b. Fig. 44C illustrates the case where the sub-blocks for which weighting is performed in FIG. 43A are set as section 2. Similarly, FIG. 44D corresponds to FIG. 43b. Fig. 44E illustrates the case where the sub-blocks for which weighting is performed in FIG. 43A are set as section 2. Similarly, FIG. 44F corresponds to FIG. 43b.

Область раздела 2, показанная на фиг. 44, также может быть сохранена как BI, как показано на фиг. 45. Однако в этом варианте осуществления для подблоков, для части которых выполняется взвешивание, как показано на фиг. 46, информация межкадрового предсказания принадлежащая разделу, имеющему большее значение веса, сохраняется как однонаправленное предсказание (UNIY). Здесь Y равно 0 или 1.Section 2 shown in FIG. 44 can also be stored as BI as shown in FIG. 45. However, in this embodiment, for the sub-blocks for which part of the weighting is performed, as shown in FIG. 46, inter prediction information belonging to a section having a larger weight value is stored as unidirectional prediction (UNIY). Here Y is 0 or 1.

Дополнительно, как проиллюстрировано на фиг. 47 и фиг. 48, подблоки, первоначально сохраненные как BI, сохраняются как однонаправленное предсказание с использованием информации межкадрового предсказания заданного раздела. Фиг. 47A и фиг. 47B представляют собой случай, когда UNI0 является заданным разделом. Фиг. 48A и фиг. 48B представляют собой случай, когда UNI1 является заданным разделом.Additionally, as illustrated in FIG. 47 and FIG. 48, sub-blocks originally stored as BI are stored as unidirectional prediction using the predetermined section inter prediction information. Fig. 47A and FIG. 47B represent the case where UNI0 is a predetermined partition. Fig. 48A and FIG. 48B represent the case where UNI1 is a predetermined partition.

Как описано в этом варианте осуществления, сохраняя раздел 2 (BI) двунаправленного предсказания в памяти хранения информации кодирования как UNIY однонаправленного предсказания, можно уменьшить объем памяти хранения. Дополнительно, поскольку информация движения списка L0 информации движения и списка L1 информации движения сохраняется в памяти хранения информации кодирования без преобразования в предсказание BI, можно уменьшить объем обработки. Более того, можно уменьшить объем обработки в случае, когда информация межкадрового предсказания, заданная режимом слияния треугольников, упоминается и используется в последующем кодировании и декодировании.As described in this embodiment, by storing bidirectional prediction section 2 (BI) in the encoding information storage memory as unidirectional prediction UNIY, the storage memory can be reduced. Further, since the motion information of the motion information list L0 and the motion information list L1 is stored in the encoding information storage memory without being converted to BI prediction, the amount of processing can be reduced. Moreover, it is possible to reduce the amount of processing in the case where the inter prediction information given by the triangle fusion mode is referred to and used in subsequent encoding and decoding.

Посредством выбора UNI1 в качестве заданного раздела, как проиллюстрировано на фиг. 48A и фиг. 48B, в случае, когда блок справа режима объединения треугольников, проиллюстрированный на фиг. 48B, находится в режиме слияния треугольников на фиг. 48A, также может поддерживаться непрерывность сохраняемой информации движения в области, где продолжают выполняться два режима слияния треугольников. Следовательно, эффективность кодирования повышается по сравнению с выбором UNI0 в качестве заданного раздела, как показано на фиг. 47A и фиг. 47B.By selecting UNI1 as a predetermined partition, as illustrated in FIG. 48A and FIG. 48B, in the case where the right block of the triangle merge mode illustrated in FIG. 48B is in triangle fusion mode in FIG. 48A, the continuity of the stored motion information in the area where the two triangle merge modes continue to be performed can also be maintained. Therefore, the coding efficiency is improved compared to selecting UNI0 as the predetermined partition, as shown in FIG. 47A and FIG. 47b.

Выбор UNI1 в качестве заданного раздела, как проиллюстрировано на фиг. 48A и фиг. 48B, также может поддерживать непрерывность обработки, поскольку после кодирования/декодирования информация движения разделов накапливается. Следовательно, объем обработки сокращается по сравнению с выбором UNI0 в качестве заданного раздела, как показано на фиг. 47A и фиг. 47B.Selecting UNI1 as the predetermined partition, as illustrated in FIG. 48A and FIG. 48B can also maintain processing continuity because after encoding/decoding, partition motion information is accumulated. Therefore, the amount of processing is reduced compared to selecting UNI0 as the predetermined partition, as shown in FIG. 47A and FIG. 47b.

За счет фиксации в качестве предсказания L0 однонаправленного предсказания для сохранения как UNI1, поскольку предсказание L0 может обрабатываться так же, как P-сегмент, объем обработки уменьшается по сравнению со случаем, когда сохраняется однонаправленное предсказание как L1 предсказание.By fixing the unidirectional prediction as L0 prediction to be stored as UNI1, since the L0 prediction can be processed in the same way as the P-segment, the amount of processing is reduced compared to the case where the unidirectional prediction is stored as L1 prediction.

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

Во всех вариантах осуществления, описанных выше, битовый поток, выводимый из устройства для кодирования изображений, имеет определенный формат данных, чтобы быть декодированным в соответствии со способом кодирования, используемым в варианте осуществления. Более того, устройство для декодирования изображений, соответствующее устройству для кодирования изображений, выполнено с возможностью декодировать битовый поток конкретного формата данных.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. Moreover, the image decoding apparatus corresponding to the image encoding apparatus is configured to decode a 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.

Более того, в качестве устройства отображения в конфигурацию может быть добавлен блок отображения, который отображает изображение, декодированное устройством для декодирования изображения. В этом случае блок отображения считывает сигнал декодированного изображения, сгенерированный блоком 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 разделения блоков.Additionally, an imaging unit may be added to the configuration to allow it to function as an imaging device by inputting a captured image into an image encoding device. 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 illustrates a hardware configuration example of an encoding/decoding device 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/decoder device 9000 based on the user's operation input via the I/O 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 distribution, the server 9106 or the mobile terminal device 9107 instead of the image recorded on the disk medium 9100 recording, 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 device 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 bit stream. 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 through 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 - interframe prediction block

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

104 - память декодированных изображений104 - decoded image memory

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

106 - блок генерирования остатка106 - block generating the remainder

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 - encoding information storage memory

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

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

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

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

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

205 - память хранения информации кодирования205 - encoding information storage memory

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

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

208 - память декодированных изображений208 - decoded image memory

Claims (28)

1. Устройство для кодирования движущегося изображения, содержащее:1. A device for encoding a moving image, containing: конструктор списка кандидатов слияния треугольников, выполненный с возможностью составлять список кандидатов слияния треугольников, включающий в себя кандидатов пространственного слияния;a triangle merge candidate list constructor, configured to construct a triangle merge candidate list including spatial merge candidates; первый селектор кандидатов слияния треугольников, выполненный с возможностью выбирать из списка кандидатов слияния треугольников первого кандидата слияния треугольников, который является однонаправленным предсказанием; иa first triangle merge candidate selector, configured to select from the list of triangle merge candidates a first triangle merge candidate that is unidirectional prediction; and второй селектор кандидатов слияния треугольников, выполненный с возможностью выбирать из списка кандидатов слияния треугольников второго кандидата слияния треугольников, который является однонаправленным предсказанием, при этомa second triangle merge candidate selector, configured to select from a list of triangle merge candidates a second triangle merge candidate that is unidirectional prediction, wherein в области, где выполняется компенсация движения с помощью первого кандидата слияния треугольников, сохраняется информация движения первого кандидата слияния треугольников, in the area where motion compensation is performed with the first triangle fusion candidate, motion information of the first triangle fusion candidate is stored, в области, где выполняется компенсация движения с помощью второго кандидата слияния треугольников, сохраняется информация движения второго кандидата слияния треугольников, иin the area where motion compensation is performed with the second triangle fusion candidate, motion information of the second triangle fusion candidate is stored, and в области, где выполняется компенсация движения посредством взвешенного усреднения с помощью первого кандидата слияния треугольников и второго кандидата слияния треугольников, сохраняется информация движения однонаправленного предсказания одного из первого кандидата слияния треугольников или второго кандидата слияния треугольников.in a region where motion compensation is performed by weighted averaging with the first triangle merge candidate and the second triangle merge candidate, unidirectional prediction motion information of one of the first triangle merge candidate or the second triangle merge candidate is stored. 2. Способ кодирования движущегося изображения, содержащий:2. A method for encoding a moving image, comprising: этап составления списка кандидатов слияния треугольников, на котором составляют список кандидатов слияния треугольников, включающий в себя кандидатов пространственного слияния;a triangle fusion candidate listing step of compiling a triangle fusion candidate list including spatial fusion candidates; этап выбора первого кандидата слияния треугольников, на котором выбирают из списка кандидатов слияния треугольников первого кандидата слияния треугольников, который представляет собой однонаправленное предсказание; иa first triangle merge candidate selection step of selecting from the triangle merge candidate list a first triangle merge candidate that is unidirectional prediction; and этап выбора второго кандидата слияния треугольника, на котором выбирают из списка кандидатов слияния треугольников второго кандидата слияния треугольников, который является однонаправленным предсказанием, при этомa second triangle fusion candidate selection step of selecting from a list of triangle fusion candidates a second triangle fusion candidate that is unidirectional prediction, wherein в области, где выполняется компенсация движения с помощью первого кандидата слияния треугольников, сохраняется информация движения первого кандидата слияния треугольников, in the area where motion compensation is performed with the first triangle fusion candidate, motion information of the first triangle fusion candidate is stored, в области, где выполняется компенсация движения с помощью второго кандидата слияния треугольников, сохраняется информация движения второго кандидата слияния треугольников, иin the area where motion compensation is performed with the second triangle fusion candidate, motion information of the second triangle fusion candidate is stored, and в области, где выполняется компенсация движения посредством взвешенного усреднения с помощью первого кандидата слияния треугольников и второго кандидата слияния треугольников, сохраняется информация движения однонаправленного предсказания первого кандидата слияния треугольников или второго кандидата слияния треугольников.in a region where motion compensation is performed by weighted averaging with the first triangle merge candidate and the second triangle merge candidate, motion information of the unidirectional prediction of the first triangle merge candidate or the second triangle merge candidate is stored. 3. Устройство для декодирования движущегося изображения, содержащее:3. A device for decoding a moving image, comprising: конструктор списка кандидатов слияния треугольников, выполненный с возможностью составлять список кандидатов слияния треугольников, включающий в себя кандидатов пространственного слияния;a triangle merge candidate list constructor, configured to construct a triangle merge candidate list including spatial merge candidates; первый селектор кандидатов слияния треугольников, выполненный с возможностью выбирать из списка кандидатов слияния треугольников первого кандидата слияния треугольников, который является однонаправленным предсказанием; иa first triangle merge candidate selector, configured to select from the list of triangle merge candidates a first triangle merge candidate that is unidirectional prediction; and второй селектор кандидатов слияния треугольников, выполненный с возможностью выбирать из списка кандидатов слияния треугольников второго кандидата слияния треугольников, который является однонаправленным предсказанием, при этомa second triangle merge candidate selector, configured to select from a list of triangle merge candidates a second triangle merge candidate that is unidirectional prediction, wherein в области, где выполняется компенсация движения с помощью первого кандидата слияния треугольников, сохраняется информация движения первого кандидата слияния треугольников, in the area where motion compensation is performed with the first triangle fusion candidate, motion information of the first triangle fusion candidate is stored, в области, где выполняется компенсация движения с помощью второго кандидата слияния треугольников, сохраняется информация движения второго кандидата слияния треугольников, иin the area where motion compensation is performed with the second triangle fusion candidate, motion information of the second triangle fusion candidate is stored, and в области, где выполняется компенсация движения посредством взвешенного усреднения с помощью первого кандидата слияния треугольников и второго кандидата слияния треугольников, сохраняется информация движения однонаправленного предсказания первого кандидата слияния треугольников или второго кандидата слияния треугольников.in a region where motion compensation is performed by weighted averaging with the first triangle merge candidate and the second triangle merge candidate, motion information of the unidirectional prediction of the first triangle merge candidate or the second triangle merge candidate is stored. 4. Способ декодирования движущегося изображения, содержащий:4. A method for decoding a moving image, comprising: этап составления списка кандидатов слияния треугольников, на котором составляют список кандидатов слияния треугольников, включающий в себя кандидатов пространственного слияния;a triangle fusion candidate listing step of compiling a triangle fusion candidate list including spatial fusion candidates; этап выбора первого кандидата слияния треугольников, на котором выбирают из списка кандидатов слияния треугольников первого кандидата слияния треугольников, который представляет собой однонаправленное предсказание; иa first triangle merge candidate selection step of selecting from the triangle merge candidate list a first triangle merge candidate that is unidirectional prediction; and этап выбора второго кандидата слияния треугольника, на котором выбирают из списка кандидатов слияния треугольников второго кандидата слияния треугольников, который является однонаправленным предсказанием, при этомa second triangle fusion candidate selection step of selecting from a list of triangle fusion candidates a second triangle fusion candidate that is unidirectional prediction, wherein в области, где выполняется компенсация движения с помощью первого кандидата слияния треугольников, сохраняется информация движения первого кандидата слияния треугольников, in the area where motion compensation is performed with the first triangle fusion candidate, motion information of the first triangle fusion candidate is stored, в области, где выполняется компенсация движения с помощью второго кандидата слияния треугольников, сохраняется информация движения второго кандидата слияния треугольников, иin the area where motion compensation is performed with the second triangle fusion candidate, motion information of the second triangle fusion candidate is stored, and в области, где выполняется компенсация движения посредством взвешенного усреднения с помощью первого кандидата слияния треугольников и второго кандидата слияния треугольников, сохраняется информация движения однонаправленного предсказания первого кандидата слияния треугольников или второго кандидата слияния треугольников.in a region where motion compensation is performed by weighted averaging with the first triangle merge candidate and the second triangle merge candidate, motion information of the unidirectional prediction of the first triangle merge candidate or the second triangle merge candidate is stored.
RU2022105478A 2019-03-08 2020-03-06 Video encoding device, video encoding method, video decoding device and video decoding method RU2783841C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-042575 2019-03-08
JP2019042575 2019-03-08

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
RU2021107739A Division RU2767973C1 (en) 2019-03-08 2020-03-06 Video encoding device, video encoding method, video decoding device and video decoding method

Publications (2)

Publication Number Publication Date
RU2022105478A RU2022105478A (en) 2022-05-04
RU2783841C2 true RU2783841C2 (en) 2022-11-21

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275532B1 (en) * 1995-03-18 2001-08-14 Sharp Kabushiki Kaisha Video coding device and video decoding device with a motion compensated interframe prediction
US8737480B2 (en) * 2011-01-14 2014-05-27 Motorola Mobility Llc Joint spatial and temporal block merge mode for HEVC
RU2628226C2 (en) * 2011-12-16 2017-08-15 Сан Пэтент Траст Method of coding video images, device for coding video images, method of decoding video images, device for decoding video images and device for coding / decoding video images
US9838710B2 (en) * 2014-12-23 2017-12-05 Intel Corporation Motion estimation for arbitrary shapes
WO2018141416A1 (en) * 2017-02-06 2018-08-09 Huawei Technologies Co., Ltd. Video encoder and decoder for predictive partitioning

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275532B1 (en) * 1995-03-18 2001-08-14 Sharp Kabushiki Kaisha Video coding device and video decoding device with a motion compensated interframe prediction
US8737480B2 (en) * 2011-01-14 2014-05-27 Motorola Mobility Llc Joint spatial and temporal block merge mode for HEVC
RU2628226C2 (en) * 2011-12-16 2017-08-15 Сан Пэтент Траст Method of coding video images, device for coding video images, method of decoding video images, device for decoding video images and device for coding / decoding video images
US9838710B2 (en) * 2014-12-23 2017-12-05 Intel Corporation Motion estimation for arbitrary shapes
WO2018141416A1 (en) * 2017-02-06 2018-08-09 Huawei Technologies Co., Ltd. Video encoder and decoder for predictive partitioning

Similar Documents

Publication Publication Date Title
CN113491126B (en) Image encoding device, image encoding method, image encoding program, image decoding device, image decoding method, and image decoding program
CN113557739B (en) Image encoding device, image encoding method, image encoding program, image decoding device, image decoding method, and image 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
CN112400321B (en) Image decoding device, image decoding method, and image decoding program
CN114128279A (en) Moving picture encoding device, moving picture encoding method, moving picture encoding program, moving picture decoding device, moving picture decoding method, and moving picture decoding program
RU2767973C1 (en) Video encoding device, video encoding method, video decoding device and video decoding method
CN112470476A (en) Image encoding device, image encoding method, image encoding program, image decoding device, image decoding method, and image decoding program
CN113068038B (en) Moving image decoding device, moving image decoding method, and moving image decoding program
CN116193142B (en) Moving image encoding device and method, moving image decoding device and method
RU2783841C2 (en) Video encoding device, video encoding method, video decoding device and video decoding method
RU2775838C1 (en) Video encoding device, video encoding method, video encoding program, video decoding device, video decoding method and video decoding program
RU2774908C1 (en) Image encoding device, image encoding method, image encoding program, image decoding device, image decoding method and image decoding program
RU2779635C1 (en) Video encoding device, video encoding method, video encoding program, video decoding device, video decoding method and video decoding program
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
CN113228678B (en) Moving image encoding device, moving image encoding method, moving image encoding program, moving image decoding device, moving image decoding method, and moving image decoding program
CN113055690B (en) Image encoding device and method, image decoding device and method, and storage medium