RU2790325C2 - Method and device for inter-frame prediction based on the fusion mode - Google Patents

Method and device for inter-frame prediction based on the fusion mode Download PDF

Info

Publication number
RU2790325C2
RU2790325C2 RU2021101214A RU2021101214A RU2790325C2 RU 2790325 C2 RU2790325 C2 RU 2790325C2 RU 2021101214 A RU2021101214 A RU 2021101214A RU 2021101214 A RU2021101214 A RU 2021101214A RU 2790325 C2 RU2790325 C2 RU 2790325C2
Authority
RU
Russia
Prior art keywords
block
candidate
merge candidate
current block
prediction
Prior art date
Application number
RU2021101214A
Other languages
Russian (ru)
Other versions
RU2021101214A (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 RU2021101214A publication Critical patent/RU2021101214A/en
Application granted granted Critical
Publication of RU2790325C2 publication Critical patent/RU2790325C2/en

Links

Images

Abstract

FIELD: imaging technology.
SUBSTANCE: invention relates to a method and device for inter-frame prediction. The result is achieved by compiling a list of candidates for the fusion of the current block, obtaining information about the movement of the current block from the list of candidates for the fusion and performing an inter-frame prediction of the current block using movement information, and the list of candidates for the fusion contains at least one of the spatial candidate for the fusion, a temporary candidate for the fusion or a combined candidate for the fusion, and a combined candidate for fusion is obtained by combining n candidates for fusion belonging to the list of candidates for fusion, moreover, information about the movement of a combined candidate for fusion is obtained by means of a weighted average of information about the movement of the first candidate for fusion and information about the movement of the second candidate for fusion.
EFFECT: increase in the accuracy of motion information by using not only a spatial/temporal fusion candidate, but also a combined fusion candidate.
13 cl, 15 dwg, 9 tbl

Description

ПРЕДПОСЫЛКИ ИЗОБРЕТЕНИЯBACKGROUND OF THE INVENTION

Область техники, к которой относится изобретениеThe technical field to which the invention belongs

Настоящее изобретение относится к способу и устройству для межкадрового предсказания.The present invention relates to a method and apparatus for inter-picture prediction.

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

В последнее время растет спрос на видео высокого разрешения и высокого качества, такое как видео высокой четкости (HD) и видео сверхвысокой четкости (UHD) в различных областях применения, и, соответственно, обсуждается высокоэффективная технология сжатия видео.Recently, the demand for high-definition and high-quality video such as high-definition (HD) video and ultra-high-definition (UHD) video in various applications has been increasing, and accordingly, a high-performance video compression technology has been discussed.

Что касается технологии сжатия видео, существуют различные технологии, такие как технология межкадрового предсказания для предсказания значения пикселя, включенного в текущее изображение, из изображения до или после текущего изображения, технология внутрикадрового предсказания для предсказания значения пикселя, включенного в текущее изображение, с использованием информации пикселя в текущем изображении, технология энтропийного кодирования для присвоения короткого кода значению, имеющему высокую частоту появления, и присвоения длинного кода значению, имеющему низкую частоту появления, и т. д., и видеоданные могут быть эффективно сжаты и переданы, или сохранены с использованием такой технологии сжатия видео.As for the video compression technology, there are various technologies, such as inter frame prediction technology for predicting a pixel value included in the current image from an image before or after the current image, intra frame prediction technology for predicting a pixel value included in the current image using pixel information in the current image, an entropy encoding technique for assigning a short code to a value having a high occurrence rate and assigning a long code to a value having a low occurrence rate, etc., and video data can be efficiently compressed and transmitted or stored using such technology video compression.

СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

[Техническая задача][Technical issue]

Одной из целей настоящего изобретения является предоставление способа и устройства для межкадрового предсказания.One of the objectives of the present invention is to provide a method and apparatus for inter-picture prediction.

Одной из целей настоящего изобретения является предоставление способа и устройства для составления списка кандидатов на слияние.One of the objectives of the present invention is to provide a method and apparatus for compiling a list of merger candidates.

Одной из целей настоящего изобретения является предоставление способа и устройства для компенсации движения в элементах подблоков.One of the objectives of the present invention is to provide a method and apparatus for compensating for motion in subblock elements.

Одной из целей настоящего изобретения является предоставление способа и устройства для определения аффинного кандидата.One of the objectives of the present invention is to provide a method and apparatus for determining an affine candidate.

Одной из целей настоящего изобретения является предоставление способа и устройства для межкадрового предсказания согласно формату проецирования видео в 360 градусов.One of the objectives of the present invention is to provide a method and apparatus for inter-picture prediction according to a 360-degree video projection format.

[Решение задачи][The solution of the problem]

Способ и устройство для кодирования/декодирования видео согласно настоящему изобретению могут составлять список кандидатов на слияние текущего блока, получать информацию о движении текущего блока из списка кандидатов на слияние и выполнять межкадровое предсказание текущего блока с использованием информации о движении.The video encoding/decoding method and apparatus according to the present invention can list the current block merge candidates, obtain motion information of the current block from the merge candidate list, and perform inter-frame prediction of the current block using the motion information.

В способе и устройстве для кодирования/декодирования видео согласно настоящему изобретению список кандидатов на слияние может содержать по меньшей мере одного из пространственного кандидата на слияние, временного кандидата на слияние или комбинированного кандидата на слияние.In the video encoding/decoding method and apparatus according to the present invention, the merge candidate list may comprise at least one of a spatial merge candidate, a temporal merge candidate, or a combined merge candidate.

В способе и устройстве для кодирования/декодирования видео согласно настоящему изобретению комбинированный кандидат на слияние может быть получен за счет комбинирования n кандидатов на слияние, принадлежащих к списку кандидатов на слияние.In the video encoding/decoding method and apparatus according to the present invention, a combined merge candidate can be obtained by combining n merge candidates belonging to a merge candidate list.

В способе и устройстве для кодирования/декодирования видео согласно настоящему изобретению n кандидатов на слияние могут представлять собой кандидатов на слияние, соответствующих индексам от 0 до (n-1) в списке кандидатов на слияние.In the video encoding/decoding method and apparatus according to the present invention, the n merge candidates may be merge candidates corresponding to indices 0 to (n-1) in the merge candidate list.

В способе и устройстве для кодирования/декодирования видео согласно настоящему изобретению индекс комбинированного кандидата на слияние может быть больше индекса временного кандидата на слияние.In the video encoding/decoding method and apparatus according to the present invention, the combined merge candidate index may be larger than the temporary merge candidate index.

В способе и устройстве для кодирования/декодирования видео согласно настоящему изобретению n кандидатов на слияние могут содержать первого кандидата на слияние и второго кандидата на слияние, и информация о движении комбинированного кандидата на слияние может быть получена с учетом направления предсказания первого кандидата на слияние и направления предсказания второго кандидата на слияние.In the video encoding/decoding method and apparatus according to the present invention, n merge candidates may comprise a first merge candidate and a second merge candidate, and motion information of the combined merge candidate can be obtained considering the prediction direction of the first merge candidate and the prediction direction second merger candidate.

В способе и устройстве для кодирования/декодирования видео согласно настоящему изобретению информация о движении комбинированного кандидата на слияние может быть получена посредством средневзвешенного значения информации о движении первого кандидата на слияние и информации о движении второго кандидата на слияние.In the video encoding/decoding method and apparatus according to the present invention, the motion information of the combined merge candidate can be obtained by a weighted average of the motion information of the first merge candidate and the motion information of the second merge candidate.

В способе и устройстве для кодирования/декодирования видео согласно настоящему изобретению весовой коэффициент средневзвешенного значения может представлять собой любое из [1:1], [1:2], [1:3] или [2:3].In the video encoding/decoding method and apparatus according to the present invention, the weighted average may be any of [1:1], [1:2], [1:3], or [2:3].

Способ и устройство для кодирования/декодирования видео согласно настоящему изобретению могут генерировать список кандидатов для предсказания информации о движении текущего блока, получать вектор контрольной точки текущего блока на основании списка кандидатов и индекса кандидата, получать вектор движения текущего блока на основании вектора контрольной точки текущего блока и выполнять межкадровое предсказание в отношении текущего блока с использованием вектора движения.The video encoding/decoding method and apparatus according to the present invention can generate a candidate list for predicting motion information of the current block, obtain the current block's checkpoint vector based on the candidate list and the candidate index, obtain the current block's motion vector based on the current block's checkpoint vector, and perform inter-frame prediction on the current block using the motion vector.

В устройстве для кодирования/декодирования видео согласно настоящему изобретению список кандидатов может содержать множество аффинных кандидатов.In the video encoding/decoding device according to the present invention, the candidate list may contain a plurality of affine candidates.

В устройстве для кодирования/декодирования видео согласно настоящему изобретению аффинные кандидаты могут включать по меньшей мере одного из пространственного кандидата, временного кандидата или настроенного кандидата.In the video encoding/decoding apparatus of the present invention, affine candidates may include at least one of a spatial candidate, a temporal candidate, or a tuned candidate.

В устройстве для кодирования/декодирования видео согласно настоящему изобретению вектор движения текущего блока может быть получен в элементах подблоков текущего блока.In the video encoding/decoding device according to the present invention, the motion vector of the current block can be obtained in subblock elements of the current block.

В устройстве для кодирования/декодирования видео согласно настоящему изобретению пространственный кандидат может быть определен с учетом того, находится ли граница текущего блока в контакте с границей блока кодового дерева (границей CTU).In the video encoding/decoding device according to the present invention, a spatial candidate can be determined based on whether a current block boundary is in contact with a code tree block boundary (CTU boundary).

В устройстве для кодирования/декодирования видео согласно настоящему изобретению настроенный кандидат может быть определен на основании комбинации по меньшей мере двух векторов контрольной точки, которые соответствуют соответствующим углам текущего блока.In the video encoding/decoding apparatus of the present invention, a tuned candidate may be determined based on a combination of at least two checkpoint vectors that correspond to respective corners of the current block.

В способе и устройстве для кодирования/декодирования видео согласно настоящему изобретению, когда опорный участок для межкадрового предсказания содержит границу опорного изображения или границу между прерывистыми поверхностями, все или некоторые из пикселей в опорном участке могут быть получены с использованием данных коррелируемого участка.In the video encoding/decoding method and apparatus of the present invention, when the inter prediction reference area comprises a reference image boundary or a boundary between discontinuous surfaces, all or some of the pixels in the reference area can be obtained using correlated area data.

[Преимущественные эффекты изобретения][Advantageous Effects of the Invention]

Согласно настоящему изобретению точность информации о движении может быть повышена за счет использования не только пространственного/временного кандидата на слияние, но также комбинированного кандидата на слияние.According to the present invention, the accuracy of motion information can be improved by using not only a spatial/temporal merge candidate, but also a combined merge candidate.

Согласно настоящему изобретению характеристики кодирования/декодирования видео могут быть улучшены за счет межкадрового предсказания на основании аффинной модели.According to the present invention, video encoding/decoding performance can be improved by inter-picture prediction based on an affine model.

Согласно настоящему изобретению точность предсказания может быть повышена за счет межкадрового предсказания в элементах подблоков.According to the present invention, the prediction accuracy can be improved by inter-picture prediction in sub-block elements.

Согласно настоящему изобретению эффективность кодирования/декодирования межкадрового предсказания может быть улучшена за счет эффективного определения аффинного кандидата.According to the present invention, the performance of inter prediction encoding/decoding can be improved by efficiently determining an affine candidate.

Согласно настоящему изобретению эффективность кодирования межкадрового предсказания может быть улучшена за счет настройки опорного участка с учетом корреляции.According to the present invention, the performance of inter prediction coding can be improved by adjusting the reference plot in view of the correlation.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

На фиг. 1 представлена структурная схема устройства для кодирования видео согласно одному варианту осуществления настоящего изобретения.In FIG. 1 is a block diagram of a video encoding apparatus according to one embodiment of the present invention.

На фиг. 2 представлена структурная схема устройства для декодирования видео согласно одному варианту осуществления настоящего изобретения.In FIG. 2 is a block diagram of a video decoding apparatus according to one embodiment of the present invention.

На фиг. 3 представлена иллюстративная схема, изображающая древовидную форму блока.In FIG. 3 is an exemplary diagram depicting a block tree form.

На фиг. 4 представлена иллюстративная схема, изображающая различные типы блоков, которые могут быть получены из секции разбиения блоков согласно настоящему изобретению.In FIG. 4 is an exemplary diagram depicting various types of blocks that can be obtained from a block splitting section according to the present invention.

На фиг. 5 изображен процесс разбиения блоков согласно одному варианту осуществления настоящего изобретения.In FIG. 5 shows a block splitting process according to one embodiment of the present invention.

На фиг. 6 изображен способ выполнения межкадрового предсказания на основании режима слияния на основе блоков в качестве варианта осуществления, к которому применяется настоящее изобретение.In FIG. 6 shows a method for performing inter prediction based on a block-based merge mode as an embodiment to which the present invention is applied.

На фиг. 7 изображен способ межкадрового предсказания на основании аффинной модели в качестве варианта осуществления, к которому применяется настоящее изобретение.In FIG. 7 shows an inter-picture prediction method based on an affine model as an embodiment to which the present invention is applied.

Фиг. 8 относится к способу получения аффинного кандидата из векторов контрольной точки пространственного/временного соседнего блока в качестве варианта осуществления, к которому применяется настоящее изобретение.Fig. 8 relates to a method for deriving an affine candidate from space/temporal neighbor block checkpoint vectors as an embodiment to which the present invention is applied.

На фиг. 9 изображен способ получения настроенного кандидата на основании комбинации векторов движения пространственных/временных соседних блоков в качестве варианта осуществления, к которому применяется настоящее изобретение.In FIG. 9 shows a method for obtaining a tuned candidate based on a combination of motion vectors of space/time neighbor blocks as an embodiment to which the present invention is applied.

На фиг. 10 представлена схема, изображающая способ получения информации о движении временного кандидата на основе подблоков в качестве варианта осуществления, к которому применяется настоящее изобретение.In FIG. 10 is a diagram showing a sub-block-based temporal candidate motion information acquisition method as an embodiment to which the present invention is applied.

На фиг. 11 изображен способ межкадрового предсказания в формате проецирования ERP в качестве варианта осуществления, к которому применяется настоящее изобретение.In FIG. 11 shows an ERP projection format inter-picture prediction method as an embodiment to which the present invention is applied.

На фиг. 12 и 15 изображен способ межкадрового предсказания, в формате проецирования CMP в качестве варианта осуществления, к которому применяется настоящее изобретение.In FIG. 12 and 15 show an inter-picture prediction method in CMP projection format as an embodiment to which the present invention is applied.

ПОДРОБНОЕ ОПИСАНИЕDETAILED DESCRIPTION

Способ и устройство для кодирования/декодирования видео согласно настоящему изобретению могут составлять список кандидатов на слияние текущего блока, получать информацию о движении текущего блока из списка кандидатов на слияние и выполнять межкадровое предсказание текущего блока с использованием информации о движении.The video encoding/decoding method and apparatus according to the present invention can list the current block merge candidates, obtain motion information of the current block from the merge candidate list, and perform inter-frame prediction of the current block using the motion information.

В способе и устройстве для кодирования/декодирования видео согласно настоящему изобретению список кандидатов на слияние может содержать по меньшей мере одного из пространственного кандидата на слияние, временного кандидата на слияние или комбинированного кандидата на слияние.In the video encoding/decoding method and apparatus according to the present invention, the merge candidate list may comprise at least one of a spatial merge candidate, a temporal merge candidate, or a combined merge candidate.

В способе и устройстве для кодирования/декодирования видео согласно настоящему изобретению комбинированный кандидат на слияние может быть получен за счет комбинирования n кандидатов на слияние, принадлежащих к списку кандидатов на слияние.In the video encoding/decoding method and apparatus according to the present invention, a combined merge candidate can be obtained by combining n merge candidates belonging to a merge candidate list.

В способе и устройстве для кодирования/декодирования видео согласно настоящему изобретению n кандидатов на слияние могут представлять собой кандидатов на слияние, соответствующих индексам от 0 до (n-1) в списке кандидатов на слияние.In the video encoding/decoding method and apparatus according to the present invention, the n merge candidates may be merge candidates corresponding to indices 0 to (n-1) in the merge candidate list.

В способе и устройстве для кодирования/декодирования видео согласно настоящему изобретению индекс комбинированного кандидата на слияние может быть больше индекса временного кандидата на слияние.In the video encoding/decoding method and apparatus according to the present invention, the combined merge candidate index may be larger than the temporary merge candidate index.

В способе и устройстве для кодирования/декодирования видео согласно настоящему изобретению n кандидатов на слияние могут содержать первого кандидата на слияние и второго кандидата на слияние, и информация о движении комбинированного кандидата на слияние может быть получена с учетом направления предсказания первого кандидата на слияние и направления предсказания второго кандидата на слияние.In the video encoding/decoding method and apparatus according to the present invention, n merge candidates may comprise a first merge candidate and a second merge candidate, and motion information of the combined merge candidate can be obtained considering the prediction direction of the first merge candidate and the prediction direction second merger candidate.

В способе и устройстве для кодирования/декодирования видео согласно настоящему изобретению информация о движении комбинированного кандидата на слияние может быть получена посредством средневзвешенного значения информации о движении первого кандидата на слияние и информации о движении второго кандидата на слияние.In the video encoding/decoding method and apparatus according to the present invention, the motion information of the combined merge candidate can be obtained by a weighted average of the motion information of the first merge candidate and the motion information of the second merge candidate.

В способе и устройстве для кодирования/декодирования видео согласно настоящему изобретению весовой коэффициент средневзвешенного значения может представлять собой любое из [1:1], [1:2], [1:3] или [2:3].In the video encoding/decoding method and apparatus according to the present invention, the weighted average may be any of [1:1], [1:2], [1:3], or [2:3].

Способ и устройство для кодирования/декодирования видео согласно настоящему изобретению могут генерировать список кандидатов для предсказания информации о движении текущего блока, получать вектор контрольной точки текущего блока на основании списка кандидатов и индекса кандидата, получать вектор движения текущего блока на основании вектора контрольной точки текущего блока и выполнять межкадровое предсказание в отношении текущего блока с использованием вектора движения.The video encoding/decoding method and apparatus according to the present invention can generate a candidate list for predicting motion information of the current block, obtain the current block's checkpoint vector based on the candidate list and the candidate index, obtain the current block's motion vector based on the current block's checkpoint vector, and perform inter-frame prediction on the current block using the motion vector.

В устройстве для кодирования/декодирования видео согласно настоящему изобретению список кандидатов может содержать множество аффинных кандидатов.In the video encoding/decoding device according to the present invention, the candidate list may contain a plurality of affine candidates.

В устройстве для кодирования/декодирования видео согласно настоящему изобретению аффинные кандидаты могут включать по меньшей мере одного из пространственного кандидата, временного кандидата или настроенного кандидата.In the video encoding/decoding apparatus of the present invention, affine candidates may include at least one of a spatial candidate, a temporal candidate, or a tuned candidate.

В устройстве для кодирования/декодирования видео согласно настоящему изобретению вектор движения текущего блока может быть получен в элементах подблоков текущего блока.In the video encoding/decoding device according to the present invention, the motion vector of the current block can be obtained in subblock elements of the current block.

В устройстве для кодирования/декодирования видео согласно настоящему изобретению пространственный кандидат может быть определен с учетом того, находится ли граница текущего блока в контакте с границей блока кодового дерева (границей CTU).In the video encoding/decoding device according to the present invention, a spatial candidate can be determined based on whether a current block boundary is in contact with a code tree block boundary (CTU boundary).

В устройстве для кодирования/декодирования видео согласно настоящему изобретению настроенный кандидат может быть определен на основании комбинации по меньшей мере двух векторов контрольной точки, которые соответствуют соответствующим углам текущего блока.In the video encoding/decoding apparatus of the present invention, a tuned candidate may be determined based on a combination of at least two checkpoint vectors that correspond to respective corners of the current block.

В способе и устройстве для кодирования/декодирования видео согласно настоящему изобретению, когда опорный участок для межкадрового предсказания содержит границу опорного изображения или границу между прерывистыми поверхностями, все или некоторые из пикселей в опорном участке могут быть получены с использованием данных коррелируемого участка.In the video encoding/decoding method and apparatus of the present invention, when the inter prediction reference area comprises a reference image boundary or a boundary between discontinuous surfaces, all or some of the pixels in the reference area can be obtained using correlated area data.

[Варианты осуществления][Embodiment]

В настоящем изобретении могут быть выполнены различные модификации и могут быть предоставлены различные варианты осуществления, и конкретные варианты осуществления будут изображены на графических материалах и подробно описаны. Однако следует понимать, что настоящее изобретение не ограничено этими конкретными вариантами осуществления, но должно включать все изменения, эквиваленты и замены, которые находятся в пределах сущности и объема настоящего изобретения.Various modifications may be made to the present invention and various embodiments may be provided, and specific embodiments will be illustrated in the drawings and described in detail. However, it should be understood that the present invention is not limited to these specific embodiments, but is to include all alterations, equivalents, and substitutions that are within the spirit and scope of the present invention.

Такие термины, как первый, второй, A и B могут использоваться для описания различных компонентов, но компоненты не должны ограничиваться такими терминами. Эти термины используются только для того, чтобы отличить один компонент от другого компонента. Например, без отклонения от объема настоящего изобретения, первый компонент может называться вторым компонентом, и аналогично второй компонент может называться первым компонентом. Термин «и/или» включает в себя комбинацию множества связанных перечисленных объектов или любого из множества связанных перечисленных объектов.Terms such as first, second, A, and B may be used to describe various components, but components should not be limited to such terms. These terms are only used to distinguish one component from another component. For example, without deviating from the scope of the present invention, the first component may be referred to as the second component, and likewise the second component may be referred to as the first component. The term "and/or" includes a combination of a plurality of related listed objects or any of a plurality of related listed objects.

Когда компонент упоминается как «связанный» или «соединенный» с другим компонентом, компонент может быть напрямую связан или соединен с другим компонентом. Однако следует понимать, что еще один компонент может присутствовать в середине. С другой стороны, когда компонент упоминается как «непосредственно связанный» или «непосредственно соединенный» с другим компонентом, следует понимать, что в середине нет другого компонента.When a component is referred to as "coupled" or "coupled" to another component, the component may be directly coupled to or connected to the other component. However, it should be understood that another component may be present in the middle. On the other hand, when a component is referred to as "directly coupled" or "directly coupled" to another component, it should be understood that there is no other component in the middle.

Термины, используемые в настоящей заявке, используются только для описания конкретных вариантов осуществления и не предназначены для ограничения настоящего изобретения. Формы единственного числа включают в себя формы множественного числа, если контекст явно не указывает иное. В настоящей заявке термин, такой как «включать» или «иметь», предназначен для обозначения наличия признаков, чисел, этапов, действий, компонентов, частей или их комбинаций, описанных в описании, и следует понимать, что этот термин не исключает возможности наличия или добавления одного или более других признаков или чисел, этапов, действий, компонентов, частей или их комбинаций.The terms used in this application are used only to describe specific embodiments and are not intended to limit the present invention. The singular forms include the plural forms unless the context clearly indicates otherwise. In this application, a term such as "include" or "have" is intended to mean the presence of the features, numbers, steps, acts, components, parts, or combinations thereof described in the description, and it should be understood that this term does not exclude the possibility of the presence or adding one or more other features or numbers, steps, actions, components, parts, or combinations thereof.

Если не указано иное, все используемые в данном документе термины, включая технические или научные термины, означают то же, что обычно понимается специалистом в данной области техники, к которой относится настоящее изобретение. Такие термины, как те, которые определены в обычно используемом словаре, должны интерпретироваться как соответствующие значениям соответствующей технологии и не интерпретироваться как идеальные или чрезмерно формальные значения, если они явно не определены в настоящей заявке.Unless otherwise indicated, all terms used herein, including technical or scientific terms, have the same meaning as generally understood by a person skilled in the art to which the present invention pertains. Terms such as those defined in a commonly used dictionary are to be interpreted as corresponding to the meanings of the relevant technology and not to be interpreted as ideal or overly formal meanings unless they are explicitly defined in this application.

Устройства для кодирования и декодирования видео могут представлять собой пользовательские терминалы, такие как персональный компьютер (PC), ноутбук, персональный цифровой ассистент (PDA), портативный мультимедийный проигрыватель (PMP), игровую консоль PlayStation Portable (PSP), терминал беспроводной связи, смартфон, телевизор, устройство виртуальной реальности (VR), устройство дополненной реальности (AR), устройство смешанной реальности (MR), наголовный дисплей (HMD) и умные очки, или серверные терминалы, такие как сервер приложений и сервер услуг, и могут включать в себя различные устройства, оснащенные устройством связи, таким как модем связи, для осуществления связи с различными устройствами или сетями проводной/беспроводной связи, запоминающее устройство для хранения различных программ и данных для кодирования или декодирования видео или для выполнения внутрикадрового или межкадрового предсказания для кодирования или декодирования, процессор для выполнения программы для выполнения операций вычисления и управления и т. д. Кроме того, видео, закодированное как битовый поток с помощью устройства для кодирования видео, может быть передано на устройство для декодирования видео в реальном времени или не в реальном времени через проводную или беспроводную сеть, такую как Интернет, локальная сеть беспроводной связи, беспроводная сеть LAN, сеть WiBro или сеть мобильной связи, или через различные интерфейсы связи, такие как кабель и универсальная последовательная шина (USB), декодировано устройством для декодирования видео и восстановлено и воспроизведено как видео.The video encoding and decoding devices may be user terminals such as a personal computer (PC), laptop, personal digital assistant (PDA), portable media player (PMP), PlayStation Portable (PSP), wireless communication terminal, smartphone, TV, virtual reality (VR) device, augmented reality (AR) device, mixed reality (MR) device, head-mounted display (HMD), and smart glasses, or server terminals such as an application server and a service server, and may include various devices equipped with a communication device, such as a communication modem, for communicating with various wired/wireless communication devices or networks, a memory device for storing various programs and data for encoding or decoding video, or for performing intra-frame or inter-frame prediction for encoding or decoding, a processor to execute the program to execute and calculation and control operations, etc. In addition, video encoded as a bitstream with a video encoding device can be transmitted to a device for real-time or non-real-time video decoding via a wired or wireless network such as Internet, wireless local area network, wireless LAN, WiBro network or mobile network, or through various communication interfaces such as cable and universal serial bus (USB), decoded by the video decoding device and restored and played back as video.

Кроме того, видео, закодированное как битовый поток с помощью устройства для кодирования видео, может быть передано от устройства для кодирования на устройство для декодирования посредством машиночитаемого носителя информации.In addition, video encoded as a bitstream by a video encoding device can be transferred from the encoding device to the decoding device via a computer-readable storage medium.

Вышеописанные устройство для кодирования видео и устройство для декодирования видео могут представлять собой отдельные устройства, соответственно. Однако устройства могут быть выполнены как одно устройство для кодирования/декодирования видео согласно реализации. В этом случае некоторые компоненты устройства для кодирования видео представляют собой по существу такие же технические элементы, как некоторые компоненты устройства для декодирования видео, и могут быть реализованы по меньшей мере с такой же конструкцией или выполнять по меньшей мере такую же функцию, как и некоторые компоненты устройства для декодирования видео.The above-described video encoding device and video decoding device may be separate devices, respectively. However, the devices may be implemented as a single video encoding/decoding device according to the implementation. In this case, some components of the video encoding device are essentially the same technical elements as some components of the video decoding device, and can be implemented with at least the same design or perform at least the same function as some components. video decoding devices.

Следовательно, избыточные описания соответствующих технических элементов будут опущены в подробном описании следующих технических элементов и принципов их работы.Therefore, redundant descriptions of the respective technical elements will be omitted in the detailed description of the following technical elements and their working principles.

Кроме того, поскольку устройство для декодирования видео соответствует вычислительному устройству, которое применяет способ кодирования видео, выполняемый устройством для кодирования видео, к декодированию, следующее описание будет сосредоточено на устройстве для кодирования видео.In addition, since the video decoding apparatus corresponds to a computing device that applies the video encoding method performed by the video encoding apparatus to decoding, the following description will focus on the video encoding apparatus.

Вычислительное устройство может содержать запоминающее устройство, на котором хранится программа или модуль программного обеспечения, реализующий способ кодирования видео и/или способ декодирования видео, и процессор, связанный с запоминающим устройством для выполнения программы. Кроме того, устройство для кодирования видео может называться кодером, а устройство для декодирования видео может называться декодером.The computing device may include a storage device that stores a program or software module that implements the video encoding method and/or the video decoding method, and a processor associated with the storage device for executing the program. In addition, a video encoding device may be referred to as an encoder, and a video decoding device may be referred to as a decoder.

Как правило, видео может содержать последовательность неподвижных картинок, и эти неподвижные картинки могут быть классифицированы по элементам группы изображений (GOP), и каждая неподвижная картинка может называться изображением. В этом случае изображение может представлять одно из кадра или поля в сигнале с прогрессивной разверткой или сигнале с чересстрочной разверткой, и видео может быть выражено как «кадр», когда кодирование/декодирование выполняется на основе кадров, и выражено как «поле», когда кодирование/декодирование выполняется на основе полей. В настоящем изобретении рассматривается и описывается сигнал с прогрессивной разверткой. Однако настоящее изобретение может быть применено и к сигналу с чересстрочной разверткой. В концепции более высокого уровня могут существовать такие элементы, как GOP и последовательность, и каждое изображение может быть разбито на заданные участки, такие как слои, плитки и блоки. Кроме того, одна GOP может содержать элементы, такие как изображение I, изображение P и изображение B. Изображение I может относиться к изображению, которое само закодировано/декодировано без использования опорного изображения, а изображение P и изображение B могут относиться к изображениям, которые закодированы/декодированы за счет выполнения такого процесса, как оценка движения и компенсация движения, с использованием опорного изображения. В целом, изображение I и изображение P могут использоваться в качестве опорных изображений в случае изображения P, причем изображение I и изображение P могут использоваться в качестве опорных изображений в случае изображения B. Однако вышеприведенное определение может быть изменено посредством настройки кодирования/декодирования.Typically, a video may contain a sequence of still pictures, and these still pictures may be classified into group of pictures (GOP) elements, and each still picture may be called a picture. In this case, the picture may represent one of a frame or a field in a progressive signal or an interlaced signal, and the video may be expressed as a "frame" when encoding/decoding is performed on a frame-by-frame basis, and expressed as a "field" when encoding /decoding is done based on the fields. The present invention discusses and describes a progressive signal. However, the present invention can also be applied to an interlaced signal. In a higher level concept, there may be elements such as GOPs and sequences, and each image may be broken down into defined areas such as layers, tiles, and blocks. In addition, one GOP may contain elements such as an I picture, a P picture, and a B picture. /decoded by performing a process such as motion estimation and motion compensation using a reference picture. In general, the I picture and the P picture can be used as reference pictures in the case of the P picture, and the I picture and the P picture can be used as reference pictures in the case of the B picture. However, the above definition can be changed by encoding/decoding setting.

В данном случае изображение упоминается для кодирования/декодирования в качестве опорного изображения, а блок или пиксель упоминаются в качестве опорного блока или опорного пикселя. Кроме того, опорные данные могут представлять собой не только значение пикселя в пространственной области, но также значение коэффициента в частотной области и различные типы информации о кодировании/декодировании, сгенерированной и определенной во время процесса кодирования/декодирования. Их примеры могут соответствовать информации, связанной с внутрикадровым предсказанием, или информации, связанной с движением в секции предсказания, информации, связанной с преобразованием в секции преобразования/секции обратного преобразования, информации, связанной с квантованием в секции квантования/секции обратного квантования, информации, связанной с кодированием/декодированием (контекстная информация) в секции кодирования/секции декодирования, информации, связанной с фильтром в секции фильтрования в контуре, и т. д.Here, an image is referred to for encoding/decoding as a reference picture, and a block or pixel is referred to as a reference block or a reference pixel. In addition, the reference data may be not only a pixel value in the spatial domain, but also a coefficient value in the frequency domain and various types of encoding/decoding information generated and determined during the encoding/decoding process. Examples thereof may correspond to information related to intra-frame prediction or motion related information in the prediction section, information related to transformation in the transformation section/inverse transformation section, information related to quantization in the quantization section/inverse quantization section, information related to with encoding/decoding (context information) in the encoding section/decoding section, filter related information in the filtering section in the loop, etc.

Наименьший элемент, составляющий видео, может представлять собой пиксель, и количество бит, используемых для представления одного пикселя, называется битовой глубиной. В целом, битовая глубина может составлять 8 бит, причем согласно настройкам кодирования может поддерживаться битовая глубина более 8 бит. В качестве битовой глубины может поддерживаться по меньшей мере одна битовая глубина согласно цветовому пространству. Кроме того, по меньшей мере одно цветовое пространство может быть предусмотрено согласно формату цвета видео. Одно или более изображений, имеющих определенный размер, или одно или более изображений, имеющих разные размеры, могут быть предусмотрены согласно формату цвета. Например, в случае YCbCr 4:2:0 могут быть предусмотрены одна компонента яркости (Y в этом примере) и две цветоразностные компоненты (Cb/Cr в этом примере). В этом примере компонентное соотношение цветоразностных компонент и компоненты яркости может представлять собой соотношение 1:2 в ширину и высоту. В качестве другого примера, в случае 4:4:4 ширина и высота могут быть такими же в компонентном соотношении. В случае наличия одного или более цветовых пространств, как в вышеприведенном примере, изображение может быть разбито на соответствующие цветовые пространства.The smallest element that makes up a video can be a pixel, and the number of bits used to represent one pixel is called bit depth. In general, the bit depth may be 8 bits, and according to the encoding settings, bit depths greater than 8 bits may be supported. As the bit depth, at least one bit depth according to the color space may be supported. Further, at least one color space may be provided according to the video color format. One or more images having a certain size or one or more images having different sizes may be provided according to the color format. For example, in the case of YCbCr 4:2:0, one luminance component (Y in this example) and two color difference components (Cb/Cr in this example) may be provided. In this example, the component ratio of the color difference components and the luminance component may be a 1:2 ratio in width and height. As another example, in the case of 4:4:4, the width and height may be the same in aspect ratio. In the case of having one or more color spaces, as in the example above, the image can be split into the corresponding color spaces.

В настоящем изобретении описание будет приведено на основании некоторых цветовых пространств (Y в этом примере) некоторых форматов цвета (YCbCr в этом примере), и такое же или аналогичное применение (настройка, зависящая от конкретного цветового пространства) может быть применено к другим цветовым пространствам (Cb и Cr в этом примере) согласно формату цвета. Однако в каждое цветовое пространство могут быть внесены некоторые отличия (не зависящие от настройки для конкретного цветового пространства). Другими словами, настройка, зависящая от каждого цветового пространства, может означать наличие настройки, пропорциональной компонентному соотношению каждой компоненты, или зависящей от него (например, 4:2:0, 4:2:2, 4:4:4 и т. д.), а независимая настройка для каждого цветового пространства может означать наличие настройки только соответствующего цветового пространства, не учитывающей или не зависящей от компонентного соотношения каждой компоненты. В настоящем изобретении в зависимости от кодера/декодера некоторые конфигурации могут иметь независимые или зависимые настройки.In the present invention, description will be given based on some color spaces (Y in this example) of some color formats (YCbCr in this example), and the same or similar application (setting depending on the specific color space) can be applied to other color spaces ( Cb and Cr in this example) according to the color format. However, some differences can be made to each color space (regardless of the setting for a particular color space). In other words, a setting dependent on each color space can mean having a setting proportional to or dependent on the component ratio of each component (e.g., 4:2:0, 4:2:2, 4:4:4, etc.). .), and an independent setting for each color space may mean that there is only a setting for the corresponding color space, which does not take into account or does not depend on the component ratio of each component. In the present invention, depending on the encoder/decoder, some configurations may have independent or dependent settings.

Информация о конфигурации или элемент синтаксиса, необходимый в процессе кодирования видео, может быть определен на уровне элементов, таком как видео, последовательность, изображение, слой, плитка, блок и т. д., который включен в битовый поток в элементах, таких как набор параметров видео (VPS), набор параметров последовательности (SPS), набор параметров изображения (PPS), заголовок слоя, заголовок плитки, заголовок блока и т. д., и передается на декодер, и декодер может выполнять анализ в элементах того же уровня для восстановления информации о настройках, переданной от кодера, и использовать восстановленную информацию о настройках в процессе декодирования видео. Кроме того, связанная информация может передаваться как битовый поток в виде информации для дополнительной оптимизации (SEI) или метаданных, и она может быть проанализирована и использована. Каждый набор параметров имеет уникальное значение идентификатора (ID), а нижний набор параметров может иметь значение идентификатора верхнего набора параметров, на который следует ссылаться. Например, нижний набор параметров может относиться к информации верхнего набора параметров, имеющего совпадающее значение идентификатора среди одного или более верхних наборов параметров. Среди примеров различных элементов, упомянутых выше, когда один элемент включает один или более других элементов, соответствующий элемент может называться верхним элементом, а включенный элемент может называться нижним элементом.The configuration information or syntax element required in the video encoding process can be defined at the element level, such as video, sequence, image, layer, tile, block, etc., which is included in the bitstream in elements, such as set video parameter set (VPS), sequence parameter set (SPS), picture parameter set (PPS), layer header, tile header, block header, etc., and is transmitted to the decoder, and the decoder can perform analysis in the same layer elements for recovering the setting information transmitted from the encoder, and using the recovered setting information in a video decoding process. In addition, related information can be transmitted as a bitstream in the form of additional optimization information (SEI) or metadata, and it can be parsed and used. Each option set has a unique identifier (ID) value, and the bottom option set can have an ID value of the top option set to refer to. For example, the lower parameter set may refer to the information of the upper parameter set having a matching identifier value among one or more upper parameter sets. Among the examples of the various elements mentioned above, when one element includes one or more other elements, the corresponding element may be referred to as the top element, and the included element may be referred to as the bottom element.

Информация о настройках, сгенерированная в элементе, может содержать содержимое для независимой настройки для каждого элемента или содержать содержимое для настройки, зависящей от предыдущего, последующего или верхнего элемента и т. д. В данном случае зависимую настройку можно понимать как указывающую информацию о настройках соответствующего элемента в качестве информации флага, указывающей, что соблюдается настройка предыдущего, последующего или верхнего элемента (например, 1-битовый флаг, настройка соблюдается в случае 1 и не соблюдается в случае 0). Описание информации о настройках в настоящем изобретении будет сосредоточено на примере независимой настройки. Однако может быть включен пример добавления или замены содержимого на основании взаимосвязи, зависящей от информации о настройках предыдущего или последующего элемента относительно текущего элемента, или верхнего элемента.The setting information generated in an element may contain content for independent setting for each element, or contain content for setting depending on the previous, next, or top element, etc. In this case, the dependent setting can be understood as indicating the setting information of the corresponding element as flag information indicating that the setting of the previous, next or top element is respected (eg, 1-bit flag, setting is respected in case of 1 and not respected in case of 0). The description of setting information in the present invention will focus on an example of independent setting. However, an example of adding or replacing content based on a relationship dependent on the setting information of the previous or next element relative to the current element, or the top element, may be included.

На фиг. 1 представлена структурная схема устройства для кодирования видео согласно одному варианту осуществления настоящего изобретения. На фиг. 2 представлена структурная схема устройства для декодирования видео согласно одному варианту осуществления настоящего изобретения.In FIG. 1 is a block diagram of a video encoding apparatus according to one embodiment of the present invention. In FIG. 2 is a block diagram of a video decoding apparatus according to one embodiment of the present invention.

Как показано на фиг. 1, устройство для кодирования видео может содержать секцию предсказания, секцию вычитания, секцию преобразования, секцию квантования, секцию обратного квантования, секцию обратного преобразования, секцию сложения, секцию фильтрования в контуре, запоминающее устройство и/или секцию кодирования. Некоторые из вышеперечисленных компонентов не обязательно могут быть включены, некоторые или все компоненты могут быть включены выборочно в зависимости от реализации, и могут быть включены некоторые дополнительные компоненты, не изображенные на фигуре.As shown in FIG. 1, the video encoding apparatus may comprise a prediction section, a subtraction section, a transformation section, a quantization section, an inverse quantization section, an inverse transform section, an adder section, an in-loop filtering section, a memory, and/or an encoding section. Some of the above components may not necessarily be included, some or all of the components may be optionally included depending on the implementation, and some additional components not shown in the figure may be included.

Как показано на фиг. 2, устройство для декодирования видео может содержать секцию декодирования, секцию предсказания, секцию обратного квантования, секцию обратного преобразования, секцию сложения, секцию фильтрования в контуре и/или запоминающее устройство. Некоторые из вышеперечисленных компонентов не обязательно могут быть включены, некоторые или все компоненты могут быть включены выборочно в зависимости от реализации, и могут быть включены некоторые дополнительные компоненты, не изображенные на фигуре.As shown in FIG. 2, the video decoding apparatus may comprise a decoding section, a prediction section, an inverse quantization section, an inverse transform section, an addition section, an in-loop filtering section, and/or a storage device. Some of the above components may not necessarily be included, some or all of the components may be optionally included depending on the implementation, and some additional components not shown in the figure may be included.

Устройство для кодирования видео и устройство для декодирования видео могут представлять собой отдельные устройства, соответственно, или могут быть выполнены как одно устройство для кодирования/декодирования видео согласно реализации. В этом случае некоторые компоненты устройства для кодирования видео представляют собой по существу такие же технические элементы, как некоторые компоненты устройства для декодирования видео, и могут быть реализованы по меньшей мере с такой же конструкцией или выполнять по меньшей мере такую же функцию, как и некоторые компоненты устройства для декодирования видео. Следовательно, избыточные описания соответствующих технических элементов будут опущены в подробном описании следующих технических элементов и принципов их работы. Поскольку устройство для декодирования видео соответствует вычислительному устройству, которое применяет способ кодирования видео, выполняемый устройством для кодирования видео, к декодированию, следующее описание будет сосредоточено на устройстве для кодирования видео. Устройство для кодирования видео может называться кодером, а устройство для декодирования видео может называться декодером.The video encoding device and the video decoding device may be separate devices, respectively, or may be implemented as a single video encoding/decoding device according to an implementation. In this case, some components of the video encoding device are essentially the same technical elements as some components of the video decoding device, and can be implemented with at least the same design or perform at least the same function as some components. video decoding devices. Therefore, redundant descriptions of the respective technical elements will be omitted in the detailed description of the following technical elements and their working principles. Since the video decoding device corresponds to a computing device that applies the video encoding method performed by the video encoding device to decoding, the following description will focus on the video encoding device. A video encoding device may be referred to as an encoder and a video decoding device may be referred to as a decoder.

Секция предсказания может включать секцию внутрикадрового предсказания, которая выполняет внутрикадровое предсказание, и секцию межкадрового предсказания, которая выполняет межкадровое предсказание. При внутрикадровом предсказании режим внутрикадрового предсказания может быть определен за счет задания пикселя блока, смежного с текущим блоком, в качестве опорного пикселя, и блок предсказания может быть сгенерирован с использованием режима внутрикадрового предсказания. При межкадровом предсказании блок предсказания может быть сгенерирован за счет определения информации о движении текущего блока с использованием одного или более опорных видео и выполнения компенсации движения с использованием информации о движении. Может быть определено одно из внутрикадрового предсказания и межкадрового предсказания, используемых для текущего блока (элемент кодирования или элемент предсказания), и может быть определена конкретная информация (например, режим внутрикадрового предсказания, вектор движения, опорное видео и т. д.) согласно каждому способу предсказания. В этом случае элемент обработки, в котором выполняется предсказание, и элемент обработки, в котором определяются способ предсказания и конкретное содержимое, могут быть определены согласно настройке кодирования/декодирования. Например, способ предсказания, режим предсказания и т. д. определяются в элементе предсказания (или элементе кодирования), и предсказание выполняется в элементе блока предсказания (или элементе кодирования, или элементе преобразования).The prediction section may include an intra prediction section that performs intra prediction and an inter prediction section that performs inter prediction. In intra prediction, the intra prediction mode may be determined by setting a block pixel adjacent to the current block as a reference pixel, and the prediction block may be generated using the intra prediction mode. In inter-picture prediction, a prediction block may be generated by determining motion information of the current block using one or more reference videos and performing motion compensation using the motion information. One of intra prediction and inter prediction used for the current block (coding unit or prediction unit) may be determined, and specific information (eg, intra prediction mode, motion vector, reference video, etc.) may be determined according to each method. predictions. In this case, the processing element in which prediction is performed and the processing element in which the prediction method and specific content are determined can be determined according to the encoding/decoding setting. For example, a prediction method, a prediction mode, etc. are defined in a prediction element (or coding element), and prediction is performed in a prediction block element (or coding element or transform element).

Секция вычитания генерирует остаточный блок за счет вычитания блока предсказания из текущего блока. То есть, секция вычитания вычисляет разницу между значением пикселя каждого пикселя в текущем блоке, который должен быть закодирован, и предсказанным значением пикселя каждого пикселя в блоке предсказания, который сгенерирован посредством секции предсказания, для генерирования остаточного блока, который представляет собой остаточный сигнал в виде блока.The subtract section generates a residual block by subtracting the prediction block from the current block. That is, the subtraction section calculates the difference between the pixel value of each pixel in the current block to be encoded and the predicted pixel value of each pixel in the prediction block, which is generated by the prediction section, to generate a residual block, which is a block residual signal. .

Секция преобразования может преобразовывать сигнал, принадлежащий пространственной области, в сигнал, принадлежащий частотной области, и в это время сигнал, полученный в результате процесса преобразования, называется преобразованным коэффициентом. Например, блок преобразования, имеющий преобразованный коэффициент, может быть получен за счет преобразования остаточного блока, имеющего остаточный сигнал, принятый от секции вычитания, и принятый сигнал определяется согласно настройке кодирования и не ограничен остаточным сигналом.The conversion section can convert a signal belonging to the spatial domain into a signal belonging to the frequency domain, and at this time, the signal resulting from the conversion process is called a converted coefficient. For example, a transform block having a transformed coefficient can be obtained by transforming a residual block having a residual signal received from the subtractor section, and the received signal is determined according to the encoding setting and is not limited to the residual signal.

Секция преобразования может преобразовывать остаточный блок с использованием такой схемы преобразования, как преобразование Адамара, преобразование на основе DST (дискретное синусное преобразование) или преобразование на основе DCT (дискретное косинусное преобразование). Однако схема преобразования не ограничена этим, и можно использовать различные схемы преобразования, полученные путем улучшения и модификации этой схемы преобразования.The transform section may transform the residual block using a transform scheme such as Hadamard transform, DST (Discrete Sine Transform), or DCT (Discrete Cosine Transform) based transform. However, the conversion scheme is not limited to this, and various conversion schemes obtained by improving and modifying this conversion scheme can be used.

Преобразование может выполняться в горизонтальном/вертикальном направлении. Например, используя базисный вектор при преобразовании, полное двумерное преобразование может быть выполнено за счет выполнения одномерного преобразования в горизонтальном направлении и выполнения одномерного преобразования в вертикальном направлении, тем самым преобразуя значение пикселя в пространственной области в значение пикселя в частотной области.The conversion can be performed in the horizontal/vertical direction. For example, using a basis vector in the transformation, a full 2D transformation can be performed by performing a 1D transformation in the horizontal direction and performing a 1D transformation in the vertical direction, thereby converting a pixel value in the spatial domain to a pixel value in the frequency domain.

Кроме того, секция преобразования может передавать информацию, необходимую для генерирования блока преобразования, в секцию кодирования, вследствие чего информация кодируется, включать соответствующую информация в битовый поток и передавать информацию в декодер, а секция декодирования декодера может анализировать информацию и использовать информацию для процесса обратного преобразования.In addition, the transformation section can transmit information necessary for generating a transformation block to the encoding section, whereby the information is encoded, include the corresponding information in the bitstream, and transmit the information to the decoder, and the decoding section of the decoder can analyze the information and use the information for the inverse transformation process. .

Секция квантования может квантовать входной сигнал, и в это время сигнал, полученный в результате процесса квантования, называется квантованным коэффициентом. Например, блок квантования, имеющий квантованный коэффициент, может быть получен за счет квантования остаточного блока, имеющего остаточный преобразованный коэффициент, принятый от секции преобразования, и входной сигнал определяется согласно настройке кодирования, которая не ограничена остаточным преобразованным коэффициентом.The quantization section may quantize the input signal, and at this time, the signal resulting from the quantization process is called the quantized coefficient. For example, a quantization block having a quantized coefficient can be obtained by quantizing a residual block having a residual transformed coefficient received from the transform section, and an input signal is determined according to an encoding setting that is not limited to the residual transformed coefficient.

Секция квантования может квантовать преобразованный остаточный блок с использованием схемы квантования, такой как равномерное пороговое квантование с мертвой зоной и взвешенная матрица квантования. Однако схема квантования не ограничена этим, и можно использовать различные схемы квантования, полученные путем улучшения и модификации этой схемы квантования.The quantization section may quantize the transformed residual block using a quantization scheme such as uniform threshold quantization with a dead zone and a weighted quantization matrix. However, the quantization scheme is not limited to this, and various quantization schemes obtained by improving and modifying this quantization scheme can be used.

Секция квантования может передавать информацию, необходимую для генерирования блока квантования, в секцию кодирования, вследствие чего информация кодируется, включать соответствующую информация в битовый поток и передавать информацию в декодер, а секция декодирования декодера может анализировать информацию и использовать информацию для процесса обратного квантования.The quantization section may transmit the information necessary to generate the quantization block to the coding section, whereby the information is encoded, include the corresponding information in the bitstream, and transmit the information to the decoder, and the decoder section of the decoder may analyze the information and use the information for the inverse quantization process.

В вышеприведенном примере описание было сделано с учетом предположения, что остаточный блок подвергнут преобразованию и квантованию посредством секции преобразования и секции квантования. Однако остаточный сигнал остаточного блока может быть преобразован для генерирования остаточного блока, имеющего преобразованный коэффициент, и процесс квантования может не выполняться. Альтернативно остаточный сигнал остаточного блока может быть не преобразован в преобразованный коэффициент, и может выполняться только процесс квантования. Альтернативно может не выполняться ни процесс преобразования, ни процесс квантования. Определение может быть выполнено согласно настройке кодера.In the above example, the description has been made on the assumption that the residual block is subjected to transformation and quantization by a transformation section and a quantization section. However, the residual signal of the residual block may be transformed to generate a residual block having a transformed coefficient, and the quantization process may not be performed. Alternatively, the residual signal of the residual block may not be converted to a transformed coefficient, and only the quantization process may be performed. Alternatively, neither the transform process nor the quantization process may be performed. The determination may be made according to the setting of the encoder.

Секция кодирования может сканировать квантованный коэффициент, преобразованный коэффициент, остаточный сигнал и т. д. сгенерированного остаточного блока согласно по меньшей мере одному порядку сканирования (например, зигзагообразное сканирование, вертикальное сканирование, горизонтальное сканирование и т. д.) для генерирования последовательности квантованных коэффициентов, последовательности преобразованных коэффициентов или последовательности сигналов и выполнения кодирования с использованием по меньшей мере одной схемы энтропийного кодирования. В этом случае информация о порядке сканирования может быть определена согласно настройке кодирования (например, режим кодирования, режим предсказания и т. д.), и связанная информация может быть в неявном виде определена или в явном виде сгенерирована. Например, один из множества порядков сканирования может быть выбран согласно режиму внутрикадрового предсказания. В этом случае схема сканирования может быть установлена как одна из различных схем, таких как зигзагообразная схема, диагональные линии и растр.The coding section may scan the quantized coefficient, the transformed coefficient, the residual signal, etc. of the generated residual block according to at least one scan order (e.g., zigzag scan, vertical scan, horizontal scan, etc.) to generate a sequence of quantized coefficients, a sequence of transformed coefficients or a sequence of signals; and performing encoding using at least one entropy coding scheme. In this case, the scan order information may be determined according to the encoding setting (eg, encoding mode, prediction mode, etc.), and related information may be implicitly determined or explicitly generated. For example, one of the plurality of scan orders may be selected according to the intra-prediction mode. In this case, the scanning pattern can be set to one of various patterns such as zigzag pattern, diagonal lines, and raster.

Кроме того, данные кодирования, включающие информацию кодирования, переданную от каждого компонента, могут быть сгенерированы и выведены в качестве битового потока, который может быть реализован посредством мультиплексора (MUX). В этом случае кодирование может выполняться с использованием в качестве схемы кодирования такого способа, как экспоненциальный способ Голомба, контекстно-адаптивное кодирование с переменной длиной слова (CAVLC) или контекстно-адаптивное двоичное арифметическое кодирование (CABAC). Однако схема кодирования не ограничена этим, и можно использовать различные схемы кодирования, полученные путем улучшения и модификации этой схемы кодирования.In addition, encoding data including encoding information transmitted from each component may be generated and output as a bitstream, which may be implemented by a multiplexer (MUX). In this case, encoding may be performed using a method such as exponential Golomb, context adaptive variable length coding (CAVLC), or context adaptive binary arithmetic coding (CABAC) as the coding scheme. However, the coding scheme is not limited to this, and various coding schemes obtained by improving and modifying this coding scheme can be used.

При выполнении энтропийного кодирования (с учетом CABAC в этом примере) в отношении данных остаточного блока и элемента синтаксиса, такого как информация, сгенерированная в процессе кодирования/декодирования, устройство для энтропийного кодирования может содержать преобразователь в двоичную форму, средство контекстного моделирования и двоичный арифметический кодер. В этом случае двоичный арифметический кодер может содержать движок для нормального кодирования и движок для обходного кодирования. В этом случае движок для нормального кодирования может представлять собой процесс, выполняемый в отношении средства контекстного моделирования, а движок для обходного кодирования может представлять собой процесс, выполняемый независимо от средства контекстного моделирования.When performing entropy encoding (considering CABAC in this example) on residual block data and a syntax element such as information generated during the encoding/decoding process, the entropy encoding apparatus may comprise a binarizer, a context simulator, and a binary arithmetic encoder . In this case, the binary arithmetic encoder may comprise a normal coding engine and a bypass coding engine. In this case, the engine for normal coding may be a process performed on the context modeler, and the engine for bypass coding may be a process performed independently of the context modeler.

Поскольку элемент синтаксиса, введенный в устройство для энтропийного кодирования, может не представлять собой двоичное значение, когда элементы синтаксиса не являются двоичными значениями, преобразователь в двоичную форму может преобразовывать в двоичную форму элементы синтаксиса и выводить строку двоичных чисел, содержащую 0 или 1. В этом случае двоичное число представляет собой бит, содержащий 0 или 1, и он может быть закодирован с помощью двоичного арифметического кодера. В этом случае один из движка для нормального кодирования или движка для обходного кодирования может быть выбран на основании вероятности появления 0 и 1, которая может быть определена согласно настройке кодирования/декодирования. Движок для обходного кодирования может использоваться, когда элемент синтаксиса представляет собой данные, в которых частота появления 0 и 1 одинакова, а движок для нормального кодирования может использоваться в иных случаях, на которые можно ссылаться, когда последующий движок для нормального кодирования выполняется посредством контекстного моделирования (или обновления контекстной информации).Since the syntax element input to the entropy encoding device may not be a binary value when the syntax elements are not binary values, the binarizer can binarize the syntax elements and output a binary number string containing 0 or 1. In this case, a binary number is a bit containing 0 or 1, and it can be encoded using a binary arithmetic encoder. In this case, one of the normal encoding engine or the bypass encoding engine may be selected based on the occurrence probability of 0 and 1, which may be determined according to the encoding/decoding setting. The engine for bypass encoding can be used when the syntax element is data in which the frequency of occurrence of 0 and 1 is the same, and the engine for normal encoding can be used in other cases that can be referenced when the subsequent engine for normal encoding is performed via context modeling ( or contextual information updates).

В этом случае контекст представляет собой информацию о вероятности появления двоичного числа, и контекстное моделирование представляет собой процесс оценки вероятности двоичного числа, необходимого для двоичного арифметического кодирования с использованием двоичного числа, которое получено в результате преобразования в двоичную форму, в качестве входного значения. Для оценки вероятности может использоваться информация об элементе синтаксиса двоичного числа, индекс, который является положением двоичного числа в строке двоичных чисел, вероятность того, что двоичное число включено в блок, смежный с блоком, и т. д., и для этого может использоваться по меньшей мере одна контекстная таблица. Например, в качестве информации для некоторых флагов может использоваться множество контекстных таблиц в соответствии с комбинацией того, используются ли флаги соседних блоков или нет.In this case, context is information about the occurrence probability of a binary number, and context modeling is a process of estimating the probability of a binary number required for binary arithmetic encoding using a binary number that is obtained by binarization as an input value. To estimate the probability, information about the syntax element of the binary number, the index, which is the position of the binary number in the string of binary numbers, the probability that the binary number is included in a block adjacent to the block, etc., can be used, and for this can be used by at least one context table. For example, a plurality of context tables may be used as information for some flags according to a combination of whether the flags of neighboring blocks are used or not.

При выполнении преобразования в двоичную форму элемента синтаксиса могут использоваться различные способы. Например, способы могут быть разделены на преобразование в двоичную форму с фиксированной длиной и преобразование в двоичную форму с переменной длиной. В случае преобразования в двоичную форму с переменной длиной можно использовать унарное преобразование в двоичную форму (усеченное унарное преобразование в двоичную форму), преобразование в двоичную форму Райса (усеченное преобразование в двоичную форму Райса), преобразование в двоичную форму по экспоненциальному методу Голомба порядка k, усеченное двоичное преобразование в двоичную форму и т. д. Кроме того, может выполняться знаковое преобразование в двоичную форму или беззнаковое преобразование в двоичную форму согласно диапазону значений элемента синтаксиса. Процесс преобразования в двоичную форму для элемента синтаксиса, осуществляемый в настоящем изобретении, может быть выполнен, включая не только преобразование в двоичную форму, упомянутое в вышеописанном примере, но также другие дополнительные способы преобразования в двоичную форму.When performing binarization of a syntax element, various methods can be used. For example, the methods can be divided into fixed-length binarization and variable-length binarization. In the case of variable length binarization, unary binarization (truncated unary binarization), Rice binarization (truncated Rice binarization), exponential Golomb binarization of order k, truncated binarization, etc. In addition, signed binarization or unsigned binarization can be performed according to the value range of the syntax element. The binarization process for the syntax element carried out in the present invention can be performed, including not only the binarization mentioned in the above example, but also other additional binarization methods.

Секция обратного квантования и секция обратного преобразования могут быть реализованы за счет обратного выполнения процессов в секции преобразования и секции квантования. Например, секция обратного квантования может осуществлять обратное квантование квантованного преобразованного коэффициента, сгенерированного посредством секции квантования, а секция обратного преобразования может осуществлять обратное преобразование преобразованного коэффициента, подвергнутого обратному квантованию, для генерирования восстановленного остаточного блока.The inverse quantization section and the inverse transform section may be implemented by reversing the processes in the transform section and the quantization section. For example, the inverse quantization section may inversely quantize the quantized transformed coefficient generated by the quantization section, and the inverse transformation section may inversely transform the inversely quantized transformed coefficient to generate a reconstructed residual block.

Секция сложения восстанавливает текущий блок за счет сложения блока предсказания и восстановленного остаточного блока. Восстановленный блок может храниться в запоминающем устройстве и использоваться в качестве опорных данных (секция предсказания, элемент фильтра и т. д.).The addition section reconstructs the current block by adding the prediction block and the reconstructed residual block. The reconstructed block may be stored in a storage device and used as reference data (prediction section, filter element, etc.).

Секция фильтрования в контуре может предусматривать по меньшей мере один процесс фильтрации после обработки, такой как деблочный фильтр, адаптивный к выборке сдвиг (SAO) и адаптивный контурный фильтр (ALF). Деблочный фильтр может удалять искажение блока, возникающее на границе между блоками в восстановленном видео. ALF может выполнять фильтрацию на основании значения, полученного за счет сравнения восстановленного видео и входного видео. Подробнее, после фильтрации блока посредством деблочного фильтра, может быть выполнена фильтрация на основании значения, полученного за счет сравнения восстановленного видео и входного видео. Альтернативно после фильтрации блока посредством SAO, может быть выполнена фильтрация на основании значения, полученного за счет сравнения восстановленного видео и входного видео.The in-loop filtering section may include at least one post-processing filtering process such as a deblocking filter, sample adaptive shift (SAO), and adaptive loop filter (ALF). The deblocking filter can remove block distortion that occurs at the boundary between blocks in the reconstructed video. ALF can perform filtering based on the value obtained by comparing the reconstructed video and the input video. More specifically, after filtering a block with a deblock filter, filtering can be performed based on the value obtained by comparing the reconstructed video and the input video. Alternatively, after filtering the block with SAO, filtering can be performed based on a value obtained by comparing the reconstructed video and the input video.

Запоминающее устройство может хранить восстановленный блок или изображение. Восстановленный блок или изображение, хранящиеся в запоминающем устройстве, могут быть предоставлены в секцию предсказания, которая выполняет внутрикадровое предсказание или межкадровое предсказание. Подробнее, пространство хранения в виде очереди битового потока, сжатого кодером, может быть помещено и обработано как буфер кодированных изображений (CPB), а пространство для хранения декодированного видео в элементах изображений может быть помещено и обработано как буфер декодированных изображений (DPB). В случае CPB элементы декодирования сохраняются в соответствии с порядком декодирования, операция декодирования эмулируется в кодере, битовый поток, сжатый во время процесса эмуляции, может быть сохранен, битовый поток, выводимый из CPB, восстанавливается посредством процесса декодирования, восстановленное видео сохраняется в DPB, и изображения, сохраненные в DPB, могут упоминаться в последующем процессе кодирования и декодирования видео.The storage device may store the reconstructed block or image. The reconstructed block or image stored in the memory may be provided to a prediction section that performs intra prediction or inter prediction. In more detail, a storage space in the form of a bitstream queue compressed by an encoder can be placed and processed as a coded picture buffer (CPB), and a space for storing decoded video in picture elements can be placed and processed as a decoded picture buffer (DPB). In the case of the CPB, decoding items are stored according to the decoding order, the decoding operation is emulated in the encoder, the bitstream compressed during the emulation process can be stored, the bitstream output from the CPB is restored by the decoding process, the reconstructed video is stored in the DPB, and images stored in the DPB may be referred to in a subsequent video encoding and decoding process.

Секция декодирования может быть реализована за счет выполнения процесса в секции кодирования в обратном порядке. Например, последовательность квантованных коэффициентов, последовательность преобразованных коэффициентов или последовательность сигналов могут быть приняты из битового потока и декодированы, и данные декодирования, включающие информацию декодирования, могут быть проанализированы и переданы в каждый компонент.The decoding section may be implemented by performing the process in the encoding section in reverse order. For example, a sequence of quantized coefficients, a sequence of transformed coefficients, or a sequence of signals may be received from a bitstream and decoded, and decoding data including decoding information may be parsed and transmitted to each component.

Секция разбиения блоков может быть включена в устройство для кодирования видео и устройство для декодирования видео согласно вариантам осуществления настоящего изобретения. Базовый элемент кодирования может означать базовый (или начальный) элемент для предсказания, преобразования, квантования и т. д. в процессе кодирования/декодирования видео. В этом случае элемент кодирования может содержать один блок кодирования яркости и два блока кодирования цветовой разности согласно формату цвета (YCbCr в этом примере), и размер каждого блока может быть определен согласно формату цвета. В примере, который будет описан далее, описание приводится на основании блока (компоненты яркости в этом примере). В этом случае предполагается, что блок представляет собой элемент, который может быть получен после определения каждого элемента, и описание приводится с учетом того, что аналогичные настройки могут быть применены к другим типам блоков.A block splitting section may be included in a video encoding apparatus and a video decoding apparatus according to embodiments of the present invention. A base coding element may mean a base (or start) element for prediction, transformation, quantization, etc. in a video encoding/decoding process. In this case, the coding unit may contain one luminance coding unit and two color difference coding units according to the color format (YCbCr in this example), and the size of each block may be determined according to the color format. In the example to be described later, the description is given on a block basis (luminance components in this example). In this case, the block is assumed to be an element that can be obtained after each element is defined, and the description is given with the understanding that similar settings can be applied to other types of blocks.

Секция разбиения блоков может быть настроена в отношении каждого компонента устройства для кодирования видео и устройства для декодирования, и размер и форма блока могут быть определены посредством этого процесса. В этом случае настроенный блок может быть определен по-другому в зависимости от компонента и может соответствовать блоку предсказания в случае секции предсказания, блоку преобразования в случае секции преобразования и блоку квантования в случае секции квантования. Настоящее изобретение не ограничено этим, и дополнительно могут быть определены элементы блока согласно другим компонентам. Размер и форма блока могут быть определены длинами блока в горизонтальном и вертикальном направлениях.The block splitting section may be configured with respect to each component of the video encoding apparatus and the decoding apparatus, and the size and shape of the block may be determined through this process. In this case, the tuned block may be defined differently depending on the component, and may correspond to a prediction block in the case of a prediction section, a transform block in the case of a transform section, and a quantization block in the case of a quantization section. The present invention is not limited to this, and block elements according to other components can be additionally defined. The size and shape of a block can be determined by the length of the block in the horizontal and vertical directions.

В секции разбиения блоков блок может быть выражен следующим образом: M×N, и максимальное и минимальное значения каждого блока могут быть получены в пределах диапазона. Например, когда форма блока поддерживает квадрат, и максимальное значение блока установлено равным 256×256, а минимальное значение блока установлено равным 8×8, можно получить блок, имеющий размер 2m×2m (в этом примере, m – целое число от 3 до 8, например, 8×8, 16×16, 32×32, 64×64, 128×128 или 256×256), блок, имеющий размер 2m×2m (в этом примере, m – целое число от 4 до 128), или блок, имеющий размер m×m (в этом примере, m – целое число от 8 до 256). Альтернативно, в случае когда форма блока поддерживает квадрат и прямоугольник, и имеет такой же диапазон, как в вышеприведенном примере, можно получить блок, имеющий размер 2m×2n (в этом примере, m и n – целые числа от 3 до 8, например, 8×8, 8×16, 16×8, 16×16, 16×32, 32×16, 32×32, 32×64, 64×32, 64×64, 64×128, 128×64, 128×128, 128×256, 256×128 или 256×256 с учетом того, что соотношение ширины и высоты составляет максимум 2:1, причем может отсутствовать ограничение по соотношению ширины и высоты, или может быть максимальное значение соотношения в зависимости от настройки кодирования/декодирования). Альтернативно можно получить блок, имеющий размер 2m×2n (в этом примере m и n – целые числа от 4 до 128). Альтернативно можно получить блок, имеющий размер m×n (в этом примере m и n – целые числа от 8 до 256).In the block splitting section, a block can be expressed as M×N, and the maximum and minimum values of each block can be obtained within a range. For example, when the block shape supports a square, and the maximum block value is set to 256x256 and the minimum block value is set to 8x8, a block having a size of 2mx2m can be obtained (in this example, m is an integer from 3 to 8 , for example, 8x8, 16x16, 32x32, 64x64, 128x128 or 256x256), a block having a size of 2mx2m (in this example, m is an integer from 4 to 128), or a block having size m×m (in this example, m is an integer from 8 to 256). Alternatively, in the case where the block shape supports square and rectangle, and has the same range as in the above example, a block having a size of 2m×2n can be obtained (in this example, m and n are integers from 3 to 8, for example, 8×8, 8×16, 16×8, 16×16, 16×32, 32×16, 32×32, 32×64, 64×32, 64×64, 64×128, 128×64, 128× 128, 128x256, 256x128, or 256x256, assuming that the width-to-height ratio is a maximum of 2:1, and there may be no restriction on the width-to-height ratio, or there may be a maximum ratio value depending on the encoding setting / decoding). Alternatively, you can get a block having a size of 2m×2n (in this example, m and n are integers from 4 to 128). Alternatively, you can get a block having a size m×n (in this example, m and n are integers from 8 to 256).

В секции разбиения блоков входной блок может получить один или более блоков. Например, входной блок может быть выводом без изменения или может быть получен за счет разбиения на два или более подблоков. В этом случае количество подблоков может составлять 2, 3, 4 и т. д. и может быть определено согласно схеме разбиения (типу разбиения). Форма подблока может быть получена на основании блока перед разбиением (в этом примере, входного блока), и различные формы могут быть получены согласно настройке разбиения блоков.In the block splitting section, the input block can receive one or more blocks. For example, the input block may be the output without change, or may be obtained by splitting into two or more sub-blocks. In this case, the number of sub-blocks may be 2, 3, 4, etc., and may be determined according to the partition scheme (partition type). The shape of the sub-block can be derived based on the block before splitting (in this example, the input block), and different shapes can be derived according to the setting of splitting the blocks.

В настоящем изобретении описание приводится на основании схемы разбиения на основе дерева. Однако настоящее изобретение не ограничено ею.In the present invention, the description is given based on a tree-based partitioning scheme. However, the present invention is not limited thereto.

Получаемые блоки могут быть определены согласно настройкам кодирования/декодирования (например, типу блока, схеме разбиения, настройке разбиения и т. д.). Например, блок, имеющий размер 2m×2n, может быть получен в качестве блока кодирования, блок, имеющий размер 2m×2n или m×n может быть получен в качестве блока предсказания, и блок, имеющий размер 2m×2n может быть получен в качестве блока преобразования. Информация о размере блока, диапазоне и т. д. (например, информация, относящаяся к индексу и множителю и т. д.) может быть сгенерирована на основании настройки.Received blocks can be defined according to encoding/decoding settings (eg, block type, splitting scheme, splitting setting, etc.). For example, a block having a size of 2m×2n can be obtained as a coding block, a block having a size of 2m×2n or m×n can be obtained as a prediction block, and a block having a size of 2m×2n can be obtained as conversion block. Information about block size, range, etc. (for example, information related to index and multiplier, etc.) can be generated based on the setting.

Диапазон (определяемый как максимальное значение и минимальное значение в этом примере) может быть определен согласно типу блока. Кроме того, для некоторых блоков информация о диапазоне блоков может быть сгенерирована в явном виде, а для некоторых блоков информация о диапазоне блоков может быть определена в неявном виде. Например, связанная информация может быть сгенерирована в явном виде в блоке кодирования и преобразования, и связанная информация может быть обработана в неявном виде в блоке предсказания.The range (defined as the maximum value and minimum value in this example) can be defined according to the block type. In addition, for some blocks, the block range information may be explicitly generated, and for some blocks, the block range information may be implicitly defined. For example, the associated information may be explicitly generated in the coding and transform block, and the associated information may be implicitly processed in the prediction block.

В случае с явным видом может быть сгенерирован по меньшей мере один фрагмент информации о диапазоне. Например, в случае блока кодирования информация о максимальном значении и минимальном значении может быть сгенерирована в качестве информации о диапазоне. Альтернативно информация может быть сгенерирована на основании разницы между максимальным значением и предварительно установленным минимальным значением (например, 8) (например, сгенерированной на основании настройки, информации о значении разницы между индексами максимального значения и минимального значения и т. д.). Кроме того, может быть сгенерирована информация о множестве диапазонов для длины в горизонтальном и вертикальном направлении прямоугольного блока.In the explicit case, at least one piece of range information may be generated. For example, in the case of a coding block, the maximum value and minimum value information may be generated as range information. Alternatively, the information may be generated based on the difference between a maximum value and a preset minimum value (e.g., 8) (e.g., generated based on a setting, value information of the difference between the maximum value and minimum value indices, etc.). In addition, information on a plurality of ranges for the length in the horizontal and vertical direction of the rectangular block can be generated.

В случае с неявным видом информация о диапазоне может быть получена на основании настройки кодирования/декодирования (например, тип блока, схема разбиения, настройка разбиения и т. д.). Например, в случае блока предсказания информация о максимальном значении и минимальном значении может быть получена в качестве группы кандидатов (в этом примере, M×N и m/2×n/2), которая может быть получена посредством настройки разбиения блока предсказания (например, разбиение методом квадродерева + глубина разбиения 0) в блоке кодирования (например, максимальный размер блока кодирования составляет M×N, а минимальный размер блока кодирования составляет m×n), который представляет собой верхний элемент.In the case of the implicit view, the range information can be obtained based on the encoding/decoding setting (eg, block type, partitioning scheme, partitioning setting, etc.). For example, in the case of a prediction block, information about the maximum value and minimum value can be obtained as a group of candidates (in this example, M×N and m/2×n/2), which can be obtained by adjusting the division of the prediction block (for example, quadtree split + split depth 0) in a coding block (for example, the maximum coding block size is M×N and the minimum coding block size is m×n), which is the top element.

Размер и форма исходного (или начального) блока секции разбиения блоков могут быть определены из верхнего элемента. Базовый блок кодирования может представлять собой исходный блок в случае блока кодирования, блок кодирования может представлять исходный блок в случае блока предсказания, и блок кодирования или блок предсказания может представлять собой исходный блок в случае блока преобразования, который может быть настроен согласно настройке кодирования/декодирования. The size and shape of the initial (or initial) block of the block splitting section can be determined from the top element. A base coding block may be a source block in the case of a coding block, an coding block may be a source block in the case of a prediction block, and an encoding block or a prediction block may be a source block in the case of a transform block, which may be customized according to the encoding/decoding setting.

Например, когда режим кодирования является внутрикадровым, блок предсказания может представлять собой верхний элемент блока преобразования, а когда режим кодирования является межкадровым, блок предсказания может представлять собой независимый элемент блока преобразования. Исходный блок может быть разбит на блоки меньших размеров, как начальный элемент разбиения. Когда определены оптимальные размер и форма согласно разбиению каждого блока, блок может быть определен как исходный блок нижнего элемента. Например, блок может представлять собой блок кодирования в первом случае и может представлять собой блок предсказания или блок преобразования в последнем случае (подэлемент). Когда исходный блок нижнего элемента определен как в вышеприведенном примере, может быть выполнен процесс разбиения для нахождения блока, имеющего оптимальные размер и форму, как верхний элемент.For example, when the coding mode is intra frame, the prediction block may be the top element of the transform block, and when the coding mode is inter frame, the prediction block may be an independent element of the transform block. The original block can be split into smaller blocks as the initial element of the split. When the optimal size and shape is determined according to the partition of each block, the block can be determined as the source block of the lower element. For example, the block may be a coding block in the first case, and may be a prediction block or a transformation block in the latter case (sub-element). When the source block of the bottom element is determined as in the above example, a splitting process can be performed to find a block having the optimal size and shape as the top element.

В итоге, секция разбиения блоков может разделять базовый элемент кодирования (или наибольший элемент кодирования) на по меньшей мере один элемент кодирования (или нижний элемент кодирования). Кроме того, элемент кодирования может быть разбит на по меньшей мере один элемент предсказания и может быть разбит на по меньшей мере один элемент преобразования. Элемент кодирования может быть разбит на по меньшей мере один блок кодирования, блок кодирования может быть разбит на по меньшей мере один блок предсказания и может быть разбит на по меньшей мере один блок преобразования. Элемент предсказания может быть разбит на по меньшей мере один блок предсказания и элемент преобразования может быть разбит на по меньшей мере один блок преобразования.Finally, the block splitting section may divide the base coding unit (or the largest coding unit) into at least one coding unit (or bottom coding unit). In addition, the coding element may be split into at least one prediction element, and may be split into at least one transform element. A coding unit may be split into at least one coding unit, a coding unit may be split into at least one prediction unit, and may be split into at least one transform unit. The prediction element may be split into at least one prediction block, and the transform element may be split into at least one transform block.

Как в вышеприведенном примере, когда блок, имеющий оптимальные размер и форму, найден посредством процесса определения режима, может быть сгенерирована информация о режиме (например, информация о разбиении и т. д.) для этого блока. Информация о режиме может быть включена в битовый поток вместе с информацией, сгенерированной от компонента, к которому принадлежит блок (например, связанная с предсказанием информация, связанная с преобразованием информация и т. д.), и передана в декодер, и может быть проанализирована в элементе того же уровня в декодере и использована в процессе декодирования видео.As in the above example, when a block having an optimal size and shape is found through the mode determination process, mode information (eg, split information, etc.) for that block can be generated. The mode information may be included in the bitstream along with the information generated from the component to which the block belongs (eg, prediction-related information, transformation-related information, etc.) and transmitted to the decoder, and may be parsed into element of the same level in the decoder and used in the video decoding process.

В примере, описанном далее, будет описана схема разбиения, и описание приводится с учетом того, что исходный блок имеет квадратную форму. Однако в случае прямоугольной формы допускается такое же или аналогичное применение.In the example described later, a partitioning scheme will be described, and the description will be made on the basis that the original block has a square shape. However, in the case of a rectangular shape, the same or similar application is allowed.

На фиг. 3 представлена иллюстративная схема, изображающая древовидную форму блока.In FIG. 3 is an exemplary diagram depicting a block tree form.

Изображены примеры получения блоков, на которых «a» изображает один блок 2N × 2N, который не разбит, «b» изображает два блока 2N × N, полученных посредством флага частичного разбиения (горизонтальное разбиение методом двоичного дерева в этом примере), «c» изображает два блока N × 2N, полученных посредством флага частичного разбиения (вертикальное разбиение методом двоичного дерева в этом примере) и «d» изображает четыре блока N × N, полученных посредством флага частичного разбиения (четыре разбиения методом квадродерева в этом примере). Форма полученного блока может быть определена согласно типу дерева, используемого для разбиения. Например, когда выполняется разбиение методом квадродерева, получаемые кандидатные блоки могут представлять собой блоки «a» и «d». Когда выполняется разбиение методом двоичного дерева, получаемые кандидатные блоки могут представлять собой блоки «a», «b» и «c». В случае квадродерева поддерживается один флаг разбиения. Блок «a» может быть получен, когда флаг разбиения представляет собой «0», а блок «b» может быть получен, когда флаг разбиения представляет собой «1». В случае двоичного дерева поддерживается множество флагов разбиения, один из которых может представлять собой флаг, указывающий, выполняется ли разбиение, и один из которых может представлять собой флаг, указывающий на то, разбиение выполняется горизонтально или вертикально. В случае квадродерева может использоваться базовая схема разбиения на основе дерева. Кроме того, схема разбиения методом дерева (двоичного дерева в этом примере) может быть включена в схему разбиения на основе дерева. Когда флаг, разрешающий дополнительное разбиение методом дерева, активирован в неявном виде или в явном виде, может быть выполнено множество операций разбиения методом дерева. Разбиение на основе дерева может представлять собой способ, который обеспечивает рекурсивное разбиение. То есть, разбитый блок может быть снова установлен как исходный блок для выполнения разбиения на основе дерева, которое может быть определено согласно настройкам разбиения, таким как диапазон разбиения и допустимая глубина разбиения. Эта схема может представлять собой пример иерархической схемы разбиения.Examples of obtaining blocks are shown, in which "a" depicts one 2N × 2N block that is not split, "b" depicts two 2N × N blocks obtained through a partial split flag (horizontal split by the binary tree method in this example), "c" depicts two N × 2N blocks obtained by the partial split flag (vertical binary tree split in this example) and “d” depicts four N × N blocks obtained by the partial split flag (four quadtree splits in this example). The shape of the resulting block can be determined according to the type of tree used for splitting. For example, when quadtree partitioning is performed, the resulting candidate blocks may be "a" and "d" blocks. When binary tree splitting is performed, the resulting candidate blocks may be "a", "b", and "c" blocks. In the case of a quadtree, one split flag is supported. Block "a" can be obtained when the split flag is "0", and block "b" can be obtained when the split flag is "1". In the case of a binary tree, a plurality of splitting flags are supported, one of which may be a flag indicating whether splitting is performed and one of which may be a flag indicating whether splitting is performed horizontally or vertically. In the case of a quadtree, a basic tree-based partitioning scheme may be used. In addition, a tree-based partitioning scheme (binary tree in this example) can be included in a tree-based partitioning scheme. When the flag enabling additional tree splitting is enabled implicitly or explicitly, a plurality of tree splitting operations can be performed. Tree-based partitioning may be a technique that provides a recursive partitioning. That is, the broken block can be set again as a source block to perform tree-based splitting, which can be determined according to splitting settings such as a splitting range and a valid splitting depth. This schema may be an example of a hierarchical partitioning schema.

На фиг. 4 представлена иллюстративная схема, изображающая различные типы блоков, которые могут быть получены из секции разбиения блоков согласно настоящему изобретению.In FIG. 4 is an exemplary diagram depicting various types of blocks that can be obtained from a block splitting section according to the present invention.

Как показано на фиг. 4, блоки «a»–«s» могут быть получены согласно настройке разбиения и схеме разбиения, и может быть возможна форма дополнительного блока, которая не изображена.As shown in FIG. 4, blocks "a" to "s" can be obtained according to the split setting and split pattern, and an additional block shape that is not shown may be possible.

В качестве примера (1) для разбиения на основе дерева может быть разрешено асимметричное разбиение. Например, в случае двоичного дерева могут быть возможны такие блоки, как блоки «b» и «c», или такие блоки, как блоки «b»–«g». Когда флаг, разрешающий асимметричное разбиение, деактивирован в явном виде или в неявном виде согласно настройке кодирования/декодирования, получаемый кандидатный блок может представлять собой блоки «b» или «c», и когда флаг, разрешающий асимметричное разбиение, активирован, получаемый кандидатный блок может представлять собой блоки «b», «d» и «e» (горизонтальное разбиение в этом примере) или блоки «c», «f» и «g» (вертикальное разбиение в этом примере).As an example (1), an asymmetric split may be allowed for tree-based partitioning. For example, in the case of a binary tree, blocks such as blocks "b" and "c" or blocks such as blocks "b" to "g" may be possible. When the asymmetric split enabling flag is explicitly disabled or implicitly according to the encoding/decoding setting, the resulting candidate block may be "b" or "c" blocks, and when the asymmetric split enabling flag is enabled, the resulting candidate block may represent blocks "b", "d" and "e" (horizontal split in this example) or blocks "c", "f" and "g" (vertical split in this example).

В вышеприведенном примере описание дается с учетом того, что соотношение длин левого блока и правого блока или верхнего блока и нижнего блока при асимметричном разбиении составляет 1:3 или 3:1. Однако настоящее изобретение не ограничено этим, и возможно наличие группы кандидатов, имеющих другое соотношение (например, 1:2, 1:4, 2:3, 2:5, 3:5 и т. д.) согласно настройке кодирования.In the above example, the description is given considering that the ratio of the lengths of the left block and the right block or the top block and the bottom block in an asymmetric split is 1:3 or 3:1. However, the present invention is not limited to this, and there may be a group of candidates having a different ratio (eg, 1:2, 1:4, 2:3, 2:5, 3:5, etc.) according to the coding setting.

Далее представлены различные примеры информации о разбиении, сгенерированной при разбиении методом двоичного дерева (группа кандидатов с соотношением 1:1, 1:3 и 3:1 в этом примере).The following are various examples of split information generated by a binary tree split (a set of candidates with a ratio of 1:1, 1:3, and 3:1 in this example).

Например, в дополнение к флагу, указывающему, выполняется ли разбиение, и флагу, указывающему направление разбиения, может быть сгенерирован флаг, указывающий форму разбиения. В этом случае форма разбиения может относиться к симметричному или асимметричному разбиению. Среди этих типов, когда асимметричное разбиение определяется в качестве формы разбиения, может быть сгенерирован флаг, указывающий соотношение разбиения, и может быть присвоен индекс согласно предварительно установленной группе кандидатов. Когда соотношение разбиения 1:3 или 3:1 поддерживается в качестве группы кандидатов, соотношение разбиения может быть выбрано посредством 1-битового флага.For example, in addition to a flag indicating whether splitting is performed and a flag indicating the direction of splitting, a flag indicating the shape of splitting may be generated. In this case, the shape of the partition may refer to a symmetric or asymmetric partition. Among these types, when an asymmetric split is determined as a split shape, a flag indicating a split ratio may be generated, and an index may be assigned according to a predetermined candidate group. When a split ratio of 1:3 or 3:1 is supported as a candidate group, the split ratio may be selected by a 1-bit flag.

В дополнение к флагу, указывающему, выполняется ли разбиение, и флагу, указывающему направление разбиения, может быть сгенерирован флаг, указывающий соотношение разбиения. В этом примере группа, имеющая симметричное отношение 1:1, может быть включена в качестве группы кандидатов для соотношения разбиения.In addition to a flag indicating whether splitting is performed and a flag indicating the splitting direction, a flag indicating a splitting ratio may be generated. In this example, a group having a 1:1 symmetrical ratio may be included as a candidate group for the split ratio.

В настоящем изобретении предполагается, что разбиение методом двоичного дерева имеет такую же конфигурацию, как и в первом примере (где активирован флаг, разрешающий асимметричное разбиение). Если не указано иное, двоичное дерево относится к симметричному двоичному дереву.In the present invention, it is assumed that the binary tree partitioning has the same configuration as in the first example (where the flag enabling asymmetric partitioning is enabled). Unless otherwise noted, a binary tree refers to a symmetric binary tree.

В качестве примера (2) для разбиения на основе дерева может быть разрешено дополнительное разбиение методом дерева. Например, можно выполнить разбиение методом тернарного дерева, квадродерева, октодерева и т. д., посредством чего может быть получено n блоков разбиения (3, 4 и 8 в этом примере, n – целое число). В случае тернарного дерева поддерживаемые блоки (при разбиении на множество блоков в этом примере) могут представлять собой блоки h–m. В случае квадродерева поддерживаемые блоки могут представлять собой блоки n–p. В случае октодерева поддерживаемый блок может представлять собой блок q. Необходимость поддерживания разбиения на основе дерева может быть в неявном виде определена согласно настройке кодирования/декодирования, или связанная информация может быть сгенерирована в явном виде. Кроме того, в зависимости от настройки кодирования/декодирования разбиение может использоваться отдельно или может использоваться в комбинации с разбиением методом двоичного дерева или квадродерева.As an example (2), for tree-based splitting, additional tree-based splitting may be allowed. For example, you can split using ternary tree, quadtree, octree, etc., whereby n split blocks can be obtained (3, 4 and 8 in this example, n is an integer). In the case of a ternary tree, the supported blocks (when split into multiple blocks in this example) could be blocks h–m. In the case of a quadtree, the supported blocks may be n-p blocks. In the case of an octree, the supported block may be the q block. The need to support tree-based partitioning may be implicitly determined according to the encoding/decoding setting, or the associated information may be explicitly generated. Moreover, depending on the encoding/decoding setting, partitioning may be used alone or may be used in combination with binary tree or quadtree partitioning.

Например, в случае двоичного дерева могут быть возможны такие, блоки как блоки b и c. Когда двоичное дерево и тернарное дерево используются в комбинации (в этом примере предполагается, что диапазон использования двоичного дерева и диапазон использования тернарного дерева частично перекрываются), могут быть возможны такие блоки, как блоки b, c, i и l. Когда флаг, разрешающий дополнительное разбиение, отличающееся от существующего дерева, деактивирован в явном виде или в неявном виде согласно настройке кодирования/декодирования, получаемый кандидатный блок может представлять собой блок b или c. Когда флаг активирован, получаемый кандидатный блок может представлять собой блоки b и i или блоки b, h, i и j (горизонтальное разбиение в этом примере), или может представлять собой блоки c и l или блоки c, k, l и m (вертикальное разбиение в этом примере).For example, in the case of a binary tree, blocks such as blocks b and c may be possible. When binary tree and ternary tree are used in combination (this example assumes that the range of use of binary tree and the range of use of ternary tree overlap), blocks such as b, c, i, and l blocks may be possible. When the flag allowing additional splitting different from the existing tree is explicitly or implicitly deactivated according to the encoding/decoding setting, the resulting candidate block may be block b or c. When the flag is enabled, the resulting candidate block may be blocks b and i or blocks b, h, i and j (horizontal partitioning in this example), or may be blocks c and l or blocks c, k, l and m (vertical split in this example).

В вышеприведенном примере описание дается с учетом того, что соотношение длин левого блока, среднего блока и правого блока или верхнего блока, среднего блока и нижнего блока при разбиении методом тернарного дерева составляет 2:1:1 или 1:2:1, или 1:1:2. Однако настоящее изобретение не ограничено этим, и могут быть возможны другие соотношения в зависимости от настройки кодирования.In the above example, the description is given assuming that the ratio of the lengths of the left block, middle block and right block or the top block, middle block and bottom block when split using the ternary tree method is 2:1:1 or 1:2:1, or 1: 1:2. However, the present invention is not limited to this, and other ratios may be possible depending on the encoding setting.

Далее представлен пример информации о разбиении, сгенерированной при разбиении методом тернарного дерева (кандидат с соотношением 1:2:1 в этом примере).The following is an example of the split information generated by a ternary tree split (a 1:2:1 candidate in this example).

Например, флаг, указывающий тип разбиения, может быть сгенерирован в дополнение к флагу, указывающему, выполняется ли разбиение, и флагу, указывающему направление разбиения. В этом случае тип разбиения может относиться к разбиению методом двоичного дерева или разбиению методом тернарного дерева.For example, a flag indicating a type of split may be generated in addition to a flag indicating whether a split is in progress and a flag indicating a split direction. In this case, the split type may refer to a binary tree split or a ternary tree split.

В настоящем изобретении можно применить настройку адаптивного кодирования/декодирования согласно схеме разбиения.In the present invention, the adaptive encoding/decoding setting according to the partitioning scheme can be applied.

В качестве примера схема разбиения может быть определена согласно типу блока. Например, для блока кодирования и блока преобразования может использоваться разбиение методом квадродерева, а для блока предсказания может использоваться схема разбиения методом квадродерева и двоичного дерева (или тернарного дерева и т. д.).As an example, a partitioning scheme may be determined according to the block type. For example, the coding block and transform block may use quadtree partitioning, and the prediction block may use quadtree and binary tree (or ternary tree, etc.) partitioning.

В качестве примера схема разбиения может быть определена согласно размеру блока. Например, для части диапазона (например, от a×b до c×d, когда последний имеет больший размер) между максимальным значением и минимальным значением блока может выполняться разбиение методом квадродерева, а для части диапазона (например, от e×f до g×h) может выполняться разбиение методом двоичного дерева (или тернарного дерева и т. д.). В этом случае информация о диапазоне согласно схеме разбиения может быть в явном виде сгенерирована или может быть в неявном виде определена, и эти диапазоны могут перекрываться.As an example, a partitioning scheme may be determined according to the block size. For example, part of the range (for example, from a×b to c×d, when the latter is larger) between the maximum value and minimum value of the block can be quadtree partitioned, and part of the range (for example, from e×f to g× h) a binary tree (or ternary tree, etc.) split can be performed. In this case, the range information according to the partitioning scheme may be explicitly generated or may be implicitly defined, and these ranges may overlap.

В качестве примера схема разбиения может быть определена согласно форме блока (или блока до разбиения). Например, когда блок имеет квадратную форму, может выполняться разбиение методом квадродерева и двоичного дерева (или тернарного дерева и т. д.). Альтернативно, когда блок имеет прямоугольную форму, может выполняться разбиение на основе двоичного дерева (или тернарного дерева и т. д.).As an example, a partitioning scheme may be determined according to the shape of the block (or the block before splitting). For example, when a block is square in shape, quadtree and binary tree (or ternary tree, etc.) splitting can be performed. Alternatively, when the block is rectangular, splitting based on a binary tree (or ternary tree, etc.) may be performed.

В качестве примера настройка разбиения может быть определена согласно типу блока. Например, при разбиении на основе дерева для блока кодирования и блока предсказания может использоваться разбиение методом квадродерева, а для блока преобразования может использоваться разбиение методом двоичного дерева. Альтернативно допустимая глубина разбиения может быть установлена равной m в случае блока кодирования, допустимая глубина разбиения может быть установлена равной n в случае блока предсказания, и допустимая глубина разбиения может быть установлена равной o в случае блока преобразования. Кроме того, m, n и o могут быть или могут не быть одинаковыми.As an example, the split setting may be determined according to the block type. For example, in tree-based partitioning, a quadtree partitioning may be used for a coding block and a prediction block, and a binary tree partitioning may be used for a transform block. Alternatively, the allowable split depth may be set to m in the case of a coding block, the allowable split depth may be set to n in the case of a prediction block, and the allowable split depth may be set to o in the case of a transform block. Also, m, n, and o may or may not be the same.

В качестве примера настройка разбиения может быть определена согласно размеру блока. Например, для части диапазона блока (например, от a×b до c×d) может выполняться разбиение методом квадродерева, для части диапазона (например, от e×f до g×h, в этом примере предполагается, что c×d больше, чем g×h) может выполняться разбиение методом двоичного дерева, и для части диапазона (например, от i×j до k×l, в этом примере предполагается, что g×h больше или равно k×l) может выполняться разбиение методом тернарного дерева. В этом случае диапазон может содержать все диапазоны между максимальным значением и минимальным значением блока, и диапазоны могут быть установлены так, чтобы не перекрываться друг с другом или чтобы перекрываться друг с другом. Например, минимальное значение части диапазона может быть таким же, как максимальное значение части диапазона, или минимальное значение части диапазона может быть меньше максимального значения части диапазона. В случае перекрывающихся диапазонов схема разбиения, имеющая более высокое максимальное значение, может иметь приоритет, или может быть в явном виде сгенерирована информация о том, какую схему разбиения использовать. То есть в схеме разбиения, имеющей приоритет, может быть определено, выполнять или нет схему разбиения, имеющую более низкий приоритет, согласно результату разбиения, или схема разбиения, которая должна быть использована, может быть определена согласно информации о выборе схемы разбиения.As an example, the split setting may be determined according to the block size. For example, a portion of the range of a block (eg, a×b to c×d) may be quad-tree partitioned, a portion of the range (eg, e×f to g×h, in this example, c×d is assumed to be greater than than g×h) can be split using the binary tree method, and a part of the range (for example, from i×j to k×l, in this example it is assumed that g×h is greater than or equal to k×l) can be split using the ternary tree method . In this case, the range may contain all ranges between the maximum value and the minimum value of the block, and the ranges may be set to not overlap with each other or to overlap with each other. For example, the minimum value of the range part may be the same as the maximum value of the range part, or the minimum value of the range part may be less than the maximum value of the range part. In the case of overlapping ranges, the partition scheme having the higher maximum value may take precedence, or information may be explicitly generated as to which partition scheme to use. That is, in the partition scheme having priority, it can be determined whether or not to execute the partition scheme having lower priority according to the partition result, or the partition scheme to be used can be determined according to the partition scheme selection information.

В качестве примера настройка разбиения может быть определена согласно форме блока. Например, когда блок имеет квадратную форму, может выполняться разбиение методом квадродерева. Альтернативно, когда блок имеет прямоугольную форму, может выполняться разбиение методом двоичного дерева или тернарного дерева.As an example, the split setting can be determined according to the shape of the block. For example, when the block has a square shape, quadtree partitioning can be performed. Alternatively, when the block has a rectangular shape, splitting using a binary tree or ternary tree method can be performed.

В качестве примера настройка разбиения может быть определена согласно информации о кодировании/декодировании (например, типе слоя, цветовой компоненте, режиме кодирования и т. д.). Например, разбиение методом квадродерева (или двоичного дерева или тернарного дерева) может выполняться в части диапазона (например, от a×b до c×d), когда тип слоя представляет собой I, может выполняться в части диапазона (например, от e×f до g×h), когда тип слоя представляет собой P, и может выполняться в части диапазона (например, от i×j до k×l), когда тип слоя представляет собой B. Кроме того, допустимая глубина разбиения при разбиении методом квадродерева (или двоичного дерева или тернарного дерева) может быть установлена равной m, когда тип слоя представляет собой I, может быть установлена равной n, когда тип слоя представляет собой P, и может быть установлена равной o, когда тип слоя представляет собой B. В данном случае m, n и o могут быть или могут не быть одинаковыми. Некоторые типы слоя могут иметь такую же конфигурацию, как и другие слои (например, слои P и B).As an example, a split setting may be determined according to encoding/decoding information (eg, layer type, color component, encoding mode, etc.). For example, quadtree (or binary tree or ternary tree) partitioning may be performed on a portion of a range (e.g., a×b to c×d) when the layer type is I may be performed on a portion of a range (e.g., e×f to g×h) when the layer type is P, and can be performed in a part of the range (for example, from i×j to k×l) when the layer type is B. In addition, the allowed splitting depth when splitting by the quadtree method ( or binary tree or ternary tree) may be set to m when the layer type is I, may be set to n when the layer type is P, and may be set to o when the layer type is B. In this case, m, n and o may or may not be the same. Some layer types may have the same configuration as other layers (eg P and B layers).

В качестве другого примера допустимая глубина разбиения при разбиении методом квадродерева (или двоичного дерева или тернарного дерева) может быть установлена равной m, когда цветовая компонента представляет собой компоненту яркости, и может быть установлена равной n, когда цветовая компонента представляет собой цветоразностную компоненту, причем m и n могут быть или могут не быть одинаковыми. Кроме того, диапазон разбиения методом квадродерева (или двоичного дерева или тернарного дерева) в случае, если цветовая компонента представляет собой компоненту яркости (например, от a×b до c×d), может быть или может не быть таким же, как диапазон разбиения методом квадродерева (или двоичного дерева или тернарного дерева), в случае, если цветовая компонента представляет собой цветоразностную компоненту (например, от e×f до g×h).As another example, the allowable splitting depth in quadtree (or binary tree or ternary tree) splitting may be set to m when the color component is a luma component, and may be set to n when the color component is a chroma component, where m and n may or may not be the same. In addition, the quadtree (or binary tree or ternary tree) splitting range, in case the color component is a luminance component (e.g., a×b to c×d), may or may not be the same as the splitting range. by the quadtree (or binary tree or ternary tree) method, in case the color component is a color difference component (for example, from e×f to g×h).

В качестве другого примера допустимая глубина разбиения при разбиении методом квадродерева (или двоичного дерева или тернарного дерева) может представлять собой m, когда режим кодирования является внутрикадровым, и может представлять собой n (в этом примере предполагается, что n больше, чем m), когда режим кодирования является межкадровым. В данном случае m и n могут быть или могут не быть одинаковыми. Кроме того, диапазон разбиения методом квадродерева (или двоичного дерева или тернарного дерева) в случае, если режим кодирования является внутрикадровым, может быть или может не быть таким же, как диапазон разбиения методом квадродерева (или двоичного дерева или тернарного дерева), в случае, если режим кодирования является межкадровым.As another example, the allowable split depth in quadtree (or binary tree or ternary tree) splitting may be m when the coding mode is intraframe, and may be n (in this example, n is assumed to be greater than m) when the encoding mode is interframe. Here, m and n may or may not be the same. In addition, the range of quadtree (or binary tree or ternary tree) splitting in case the coding mode is intraframe may or may not be the same as the range of quadtree (or binary tree or ternary tree) splitting in case if the coding mode is interframe.

В случае вышеприведенного примера информация о том, поддерживать ли конфигурацию группы кандидатов на адаптивное разбиение согласно информации о кодировании/декодировании, может быть в явном виде сгенерирована или может быть в неявном виде определена.In the case of the above example, information on whether to support the configuration of the adaptive partition candidate group according to the encoding/decoding information may be explicitly generated or may be implicitly determined.

В вышеприведенном примере был описан случай, в котором схема разбиения и настройка разбиения определены согласно настройке кодирования/декодирования. Вышеприведенный пример демонстрирует некоторые случаи согласно каждому элементу, при этом могут быть возможны изменения с получением других случаев. Кроме того, схема разбиения и настройка разбиения могут быть определены согласно комбинации множества элементов. Например, схема разбиения и настройка разбиения могут быть определены согласно типу, размеру, форме, информации о кодировании/декодировании и т. д. блока.In the above example, a case has been described in which the partitioning scheme and the partitioning setting are determined according to the encoding/decoding setting. The above example shows some of the cases according to each element and may be subject to change to obtain other cases. In addition, the partition scheme and the partition setting can be determined according to the combination of the plurality of elements. For example, the partition scheme and the partition setting may be determined according to the type, size, shape, encoding/decoding information, etc. of the block.

Кроме того, в вышеприведенном примере факторы, связанные со схемой разбиения, настройкой и т. д., могут быть в неявном виде определены или информация может быть в явном виде сгенерирована для определения того, разрешать ли адаптивный случай, как в вышеприведенном примере.Also, in the above example, factors related to partitioning scheme, tuning, etc. may be implicitly defined, or information may be explicitly generated to determine whether to allow the adaptive case, as in the above example.

В настройке разбиения глубина разбиения относится к количеству раз пространственного разбиения относительно исходного блока (в этом примере глубина разбиения исходного блока составляет 0), и разбиение на меньшие блоки может выполняться с увеличением глубины разбиения. Связанная с глубиной настройка может варьировать согласно схеме разбиения. Например, среди способов выполнения разбиения на основе дерева, одна общая глубина может использоваться для глубины разбиения двоичного дерева и глубины разбиения тернарного дерева, и различные глубины могут использоваться для глубины разбиения квадродерева и глубины разбиения двоичного дерева. Таким образом, отдельные глубины могут использоваться в зависимости от типа дерева.In the splitting setting, the splitting depth refers to the number of times the spatial splitting is relative to the original block (in this example, the splitting depth of the original block is 0), and splitting into smaller blocks can be performed with increasing splitting depth. The depth-related setting may vary according to the partitioning scheme. For example, among tree-based splitting methods, one common depth may be used for binary tree splitting depth and ternary tree splitting depth, and different depths may be used for quadtree splitting depth and binary tree splitting depth. Thus, separate depths can be used depending on the type of tree.

В вышеприведенном примере, когда отдельная глубина разбиения используется согласно типу дерева, глубина разбиения может быть установлена равной 0 в начальном положении разбиения (блок до разбиения в этом примере) дерева. Глубина разбиения может быть вычислена на основании положения начала разбиения, а не на основании диапазона разбиения каждого дерева (максимальное значение в этом примере).In the above example, when a separate split depth is used according to the tree type, the split depth can be set to 0 at the split start position (block before split in this example) of the tree. The split depth can be calculated based on the position of the start of the split, rather than based on the split range of each tree (the maximum value in this example).

На фиг. 5 изображен процесс разбиения блоков согласно одному варианту осуществления настоящего изобретения. Подробнее, на этой фигуре изображен пример размера и формы блока, получаемого согласно одному или более способов разбиения, начиная с базового блока кодирования.In FIG. 5 shows a block splitting process according to one embodiment of the present invention. In more detail, this figure depicts an example of the size and shape of a block obtained according to one or more partitioning methods, starting from the basic coding block.

На фигуре жирная сплошная линия представляет базовый блок кодирования, жирная пунктирная линия представляет границу разбиения методом квадродерева, двойная сплошная линия представляет границу симметричного разбиения методом двоичного дерева, сплошная линия представляет границу разбиения методом тернарного дерева, и тонкая пунктирная линия представляет границу асимметричного разбиения методом двоичного дерева. За исключением жирной сплошной линии, каждая линия представляет границу, разделенную согласно каждому способу разбиения. Настройки разбиения (например, тип разбиения, информация о разбиении, порядок конфигурации информации о разбиении и т. д.), описанные ниже, не ограничены случаем соответствующего примера, и могут быть выполнены различные изменения.In the figure, the heavy solid line represents the base coding block, the heavy dotted line represents the quadtree split boundary, the double solid line represents the symmetric binary tree split boundary, the solid line represents the ternary tree split boundary, and the thin dashed line represents the asymmetric binary tree split boundary. . With the exception of the thick solid line, each line represents a boundary divided according to each partitioning method. The split settings (eg, split type, split information, split information configuration order, etc.) described below are not limited to the case of the corresponding example, and various changes can be made.

Для удобства изложения описание будет приведено с учетом того, что отдельные настройки разбиения блоков установлены для верхнего левого, верхнего правого, нижнего левого и нижнего правого блоков (NxN. 64x64) в отношении базового блока кодирования (2Nx2N. 128x128). Сначала получают четыре подблока за счет одной операции разбиения (глубина разбиения 0 -> 1, то есть глубина разбиения увеличена на 1) в исходном блоке, и максимальный блок кодирования представляет собой 128x128, минимальный блок кодирования представляет собой 8x8, и максимальная глубина разбиения составляет 4 с учетом настройки разбиения для квадродерева, которая, как предполагается, является настройкой, которая обычно применяется к каждому блоку.For convenience, the description will be given considering that separate block splitting settings are set for the top left, top right, bottom left and bottom right blocks (NxN. 64x64) with respect to the base coding block (2Nx2N. 128x128). First, four sub-blocks are obtained by one splitting operation (split depth 0 -> 1, that is, the split depth is increased by 1) in the original block, and the maximum coding block is 128x128, the minimum coding block is 8x8, and the maximum split depth is 4 given the split setting for the quadtree, which is assumed to be the setting that is normally applied to each block.

(№ 1, верхний левый блок, от A1 до A6)(No. 1, top left block, A1 to A6)

В этом примере поддерживается разбиение методом одиночного дерева (квадродерева в этом примере), причем могут быть определены размер и форма блока, который может быть получен посредством одной настройки разбиения блоков, такой как максимальный блок кодирования, минимальный блок кодирования и глубина разбиения. Этот пример представляет собой случай, в котором есть один блок, который может быть получен согласно разбиению (разбиение ширины и высоты на две части, соответственно). Информация о разбиении, необходимая для одной операция разбиения (на основании блока 4Mx4N до разбиения, глубина разбиения увеличена на 1), представляет собой флаг, указывающий, выполняется разбиение или нет (в этом примере, разбиение не выполняется, когда флаг представляет собой 0, разбиение выполняется, когда флаг представляет собой 1), и получаемые кандидаты могут представлять собой 4Mx4N и 2Mx2N.In this example, splitting by a single tree method (quadtree in this example) is supported, and the size and shape of a block that can be obtained by a single block splitting setting, such as a maximum coding block, a minimum coding block, and a splitting depth, can be determined. This example is a case in which there is one block that can be obtained according to splitting (splitting the width and height into two parts, respectively). The split information required for one split operation (based on the 4Mx4N block before split, split depth increased by 1) is a flag indicating whether split is performed or not (in this example, split is not performed when the flag is 0, split is executed when the flag is 1), and the resulting candidates may be 4Mx4N and 2Mx2N.

(№ 2, верхний правый блок, от A7 до A11)(No. 2, top right block, A7 to A11)

Этот пример представляет собой случай, в котором поддерживается разбиение по схеме нескольких деревьев (квадродерева и двоичного дерева в этом примере), причем могут быть определены размер и форма блока, который может быть получен посредством множества настроек разбиения блоков. В этом примере предполагается, что в случае двоичного дерева максимальный блок кодирования представляет собой 64x64, минимальный блок кодирования имеет длину 4, и максимальная глубина разбиения составляет 4.This example is a case in which schema partitioning of multiple trees (quadtree and binary tree in this example) is supported, and the size and shape of a block can be determined, which can be obtained through a plurality of block partitioning settings. This example assumes that in the case of a binary tree, the maximum coding block is 64x64, the minimum coding block is 4 in length, and the maximum split depth is 4.

Поскольку этот пример представляет собой случай, в котором могут быть получены два или более блоков (два или четыре в этом примере), информация о разбиении, необходимая для одной операции разбиения (квадродерево, глубина разбиения увеличена на 1), может представлять собой флаг, указывающий, выполняется ли разбиение, флаг, указывающий тип разбиения, флаг, указывающий форму разбиения, и флаг, указывающий направление разбиения, и получаемые кандидаты могут представлять собой 4Mx4N, 4Mx2N, 2Mx4N, 4MxN/4Mx3N, 4Mx3N/4MxN, Mx4N/3Mx4N и 3Mx4N/Mx4N.Since this example is a case in which two or more blocks (two or four in this example) can be obtained, the split information needed for one split operation (quadtree, split depth increased by 1) can be a flag indicating whether a split is performed, a flag indicating the type of split, a flag indicating the shape of the split, and a flag indicating the direction of the split, and the resulting candidates may be 4Mx4N, 4Mx2N, 2Mx4N, 4MxN/4Mx3N, 4Mx3N/4MxN, Mx4N/3Mx4N, and 3Mx4N/ Mx4N.

Когда диапазоны разбиения методом квадродерева и двоичного дерева перекрывают друг друга (то есть в диапазоне, где может выполняться как разбиение методом квадродерева, так и разбиение методом двоичного дерева в текущей стадии), и текущий блок (в состоянии до разбиения) представляет собой блок, полученный посредством разбиения методом квадродерева (блок, полученный посредством разбиения методом квадродерева из родительского блока <когда глубина разбиения на 1 меньше текущей>), информация о разбиении может быть разделена на следующие случаи и сконфигурирована. То есть, когда блок, поддерживаемый согласно каждой настройке разбиения, может быть получен посредством множества способов разбиения, информация о разбиении может быть сгенерирована за счет классификации на следующие процессы.When the ranges of quadtree splitting and binary tree splitting overlap (that is, in the range where both quadtree splitting and binary tree splitting can be performed in the current stage), and the current block (in the pre-split state) is the block obtained by quadtree splitting (block obtained by quadtree splitting from the parent box <when the splitting depth is 1 less than the current>), splitting information can be divided into the following cases and configured. That is, when a block maintained according to each partition setting can be obtained by a plurality of partition methods, partition information can be generated by classifying into the following processes.

(1) Когда разбиение методом квадродерева и разбиение методом двоичного дерева перекрывают друг друга(1) When quadtree splitting and binary tree splitting overlap

[Таблица 1][Table 1]

Figure 00000001
Figure 00000001

В вышеприведенной таблице «a» обозначает флаг, указывающий, выполняется ли разбиение методом квадродерева, и когда флаг представляет собой 1, выполняется разбиение методом квадродерева (QT). Когда флаг представляет собой 0, проверяется «b», который представляет собой флаг, указывающий, выполняется ли разбиение методом двоичного дерева. Когда b представляет собой 0, дальнейшее разбиение не выполняется в блоке (No Split), но, когда b представляет собой 1, выполняется разбиение методом двоичного дерева.In the above table, "a" denotes a flag indicating whether quadtree splitting is performed, and when the flag is 1, quadtree splitting (QT) is performed. When the flag is 0, "b" is checked, which is a flag indicating whether splitting is performed by the binary tree method. When b is 0, no further split is performed in the block (No Split), but when b is 1, a binary tree split is performed.

«c» обозначает флаг, указывающий направление разбиения. c = 0 означает горизонтальное разбиение (hor), а c = 1 означает вертикальное разбиение (ver). «d» обозначает флаг, указывающий форму разбиения. d = 0 означает симметричное разбиение (SBT: симметричное двоичное дерево), и d = 1 означает асимметричное разбиение (ABT: асимметричное двоичное дерево). Только когда d представляет собой 1, проверяется информация о детальном соотношении разбиения (1/4 или 3/4) при асимметричном разбиении. Когда d представляет собой 0, в левом/правом или верхнем/нижнем блоках соотношение левого блока и верхнего блока представляет собой 1/4, и соотношение правого блока и нижнего блока представляет собой 3/4. Когда d представляет собой 1, соотношение является противоположным."c" stands for a flag indicating the direction of splitting. c = 0 means horizontal split (hor) and c = 1 means vertical split (ver). "d" stands for a flag indicating the shape of the split. d = 0 means symmetric partition (SBT: symmetric binary tree) and d = 1 means asymmetric partition (ABT: asymmetric binary tree). Only when d is 1 is the information about the detailed split ratio (1/4 or 3/4) in asymmetric split checked. When d is 0, in the left/right or top/bottom blocks, the ratio of the left block to the top block is 1/4, and the ratio of the right block to the bottom block is 3/4. When d is 1, the relationship is reversed.

(2) Когда может выполняться только разбиение методом двоичного дерева(2) When only binary tree partitioning can be performed

В вышеприведенной таблице информация о разбиении может быть выражена с использованием флагов «b»–«e» за исключением флага «a».In the above table, split information can be expressed using flags "b" through "e" with the exception of flag "a".

Случай блока A7 на фиг. 5 представляет собой случай, в котором разбиение методом квадродерева может выполняться в блоках до разбиения (A7–A11) (то есть даже хотя может выполняться разбиение методом квадродерева, выполняется разбиение методом двоичного дерева вместо разбиения методом квадродерева), и, таким образом, соответствует случаю, в котором генерируется информация о разбиении в пункте (1).The case of block A7 in FIG. 5 represents a case in which quadtree splitting can be performed in blocks before splitting (A7 to A11) (that is, even though quadtree splitting can be performed, binary tree splitting is performed instead of quadtree splitting), and thus corresponds to the case , in which information about the split in paragraph (1) is generated.

С другой стороны, случай блоков A8–A11 соответствует случаю, в котором разбиение методом двоичного дерева выполняется без предварительного выполнения разбиения методом квадродерева в блоках A8–A11 до разбиения (то есть разбиение методом квадродерева больше не возможно в соответствующих блоках <A8–A11>), и, таким образом, соответствует случаю, в котором генерируется информация о разбиении в пункте (2).On the other hand, the case of blocks A8-A11 corresponds to the case in which binary tree splitting is performed without first performing quadtree splitting in blocks A8-A11 before splitting (that is, quadtree splitting is no longer possible in the corresponding blocks <A8-A11>) , and thus corresponds to the case in which split information is generated in item (2).

(№ 3, нижний левый блок, от A12 до A15)(No. 3, bottom left block, A12 to A15)

Этот пример представляет собой случай, в котором поддерживается разбиение по схеме нескольких деревьев (квадродерева, двоичного дерева и тернарного дерева в этом примере), причем могут быть определены размер и форма блока, который может быть получен посредством множества настроек разбиения блоков. В этом примере предполагается, что в случае двоичного дерева/тернарного дерева максимальный блок кодирования представляет собой 64x64, минимальный блок кодирования имеет длину 4, и максимальная глубина разбиения составляет 4.This example is a case in which schema partitioning of multiple trees (quadtree, binary tree, and ternary tree in this example) is supported, and the size and shape of a block can be determined, which can be obtained through a variety of block partitioning settings. This example assumes that in the case of a binary tree/ternary tree, the maximum coding unit is 64x64, the minimum coding unit is 4 in length, and the maximum split depth is 4.

Поскольку этот пример представляет собой случай, в котором могут быть получены два или более блоков (два, три и четыре в этом примере), информация о разбиении, необходимая для одной операции разбиения, может представлять собой флаг, указывающий, выполняется ли разбиение, флаг, указывающий тип разбиения, и флаг, указывающий направление разбиения, и получаемые кандидаты могут представлять собой 4Mx4N, 4Mx2N, 2Mx4N, 4MxN/4Mx2N/4MxN и Mx4N/2Mx4N/Mx4N.Since this example is a case in which two or more blocks (two, three, and four in this example) can be obtained, the split information required for one split operation may be a flag indicating whether a split is performed, a flag, indicating the split type and a flag indicating the split direction, and the resulting candidates may be 4Mx4N, 4Mx2N, 2Mx4N, 4MxN/4Mx2N/4MxN, and Mx4N/2Mx4N/Mx4N.

Когда диапазоны разбиения методом квадродерева и двоичного дерева/тернарного дерева перекрывают друг друга, и текущий блок представляет собой блок, полученный посредством разбиения методом квадродерева, информация о разбиении может быть разделена на следующие случаи и сконфигурирована.When the ranges of the quadtree split and the binary tree/ternary tree overlap each other, and the current block is a block obtained by quadtree split, the split information can be divided into the following cases and configured.

(1) Когда разбиение методом квадродерева и разбиение методом двоичного дерева/тернарного дерева перекрывают друг друга(1) When quadtree splitting and binary tree/ternary tree splitting overlap

[Таблица 2][Table 2]

Figure 00000002
Figure 00000002

В вышеприведенной таблице «a» обозначает флаг, указывающий, выполняется ли разбиение методом квадродерева, и когда флаг представляет собой 1, выполняется разбиение методом квадродерева. Когда флаг представляет собой 0, проверяется «b», который представляет собой флаг, указывающий, выполняется ли разбиение методом двоичного дерева или тернарного дерева. Когда b представляет собой 0, дальнейшее разбиение не выполняется в блоке, но, когда b представляет собой 1, выполняется разбиение методом двоичного дерева или тернарного дерева.In the above table, "a" denotes a flag indicating whether quadtree splitting is performed, and when the flag is 1, quadtree splitting is performed. When the flag is 0, "b" is checked, which is a flag indicating whether the partitioning is performed by the binary tree method or the ternary tree method. When b is 0, no further partitioning is performed in the block, but when b is 1, binary tree or ternary tree partitioning is performed.

«c» обозначает флаг, указывающий направление разбиения. c = 0 означает горизонтальное разбиение, а c = 1 означает вертикальное разбиение. «d» обозначает флаг, указывающий тип разбиения. d = 0 означает разбиение методом двоичного дерева (BT), и d = 1 означает разбиение методом тернарного дерева (TT)."c" stands for a flag indicating the direction of splitting. c = 0 means horizontal split and c = 1 means vertical split. "d" stands for a flag indicating the type of partition. d = 0 means binary tree split (BT), and d = 1 means ternary tree split (TT).

(2) Когда может выполняться только разбиение методом двоичного дерева/тернарного дерева(2) When only binary tree/ternary tree partitioning can be performed

В вышеприведенной таблице информация о разбиении может быть выражена с использованием флагов «b»–«d» за исключением флага «a».In the above table, partitioning information can be expressed using the flags "b" through "d" with the exception of the flag "a".

На фиг. 5 случай блоков A12 и A15 представляет собой случай, в котором разбиение методом квадродерева может выполняться в блоках A12 и A15 до разбиения, и, таким образом, соответствует случаю, в котором генерируется информация о разбиении в пункте (1).In FIG. 5, the case of blocks A12 and A15 is a case in which quadtree splitting can be performed in blocks A12 and A15 before splitting, and thus corresponds to the case in which split information is generated in item (1).

С другой стороны, случай блоков A13 и A14 соответствует случаю, в котором разбиение методом тернарного дерева выполняется без предварительного выполнения разбиения методом квадродерева в блоках A13 и A14 до разбиения, и, таким образом, соответствует случаю, в котором генерируется информация о разбиении в пункте (2).On the other hand, the case of blocks A13 and A14 corresponds to the case in which the ternary tree split is performed without first performing the quadtree split in blocks A13 and A14 before splitting, and thus corresponds to the case in which split information is generated at point ( 2).

(№ 4, нижний левый блок, от A16 до A20)(No. 4, bottom left block, A16 to A20)

Этот пример представляет собой случай, в котором поддерживается разбиение по схеме нескольких деревьев (квадродерева, двоичного дерева и тернарного дерева в этом примере), причем могут быть определены размер и форма блока, который может быть получен посредством множества настроек разбиения блоков. В этом примере предполагается, что в случае двоичного дерева/тернарного дерева максимальный блок кодирования представляет собой 64x64, минимальный блок кодирования имеет длину 4, и максимальная глубина разбиения составляет 4.This example is a case in which schema partitioning of multiple trees (quadtree, binary tree, and ternary tree in this example) is supported, and the size and shape of a block can be determined, which can be obtained through a variety of block partitioning settings. This example assumes that in the case of a binary tree/ternary tree, the maximum coding unit is 64x64, the minimum coding unit is 4 in length, and the maximum split depth is 4.

Поскольку этот пример представляет собой случай, в котором могут быть получены два или более блоков (два, три и четыре в этом примере) посредством разбиения, информация о разбиении, необходимая для одной операции разбиения, может представлять собой флаг, указывающий, выполняется ли разбиение, флаг, указывающий тип разбиения, флаг, указывающий форму разбиения, и флаг, указывающий направление разбиения, и получаемые кандидаты могут представлять собой 4Mx4N, 4Mx2N, 2Mx4N, 4MxN/4Mx3N, 4Mx3N/4MxN, Mx4N/3Mx4N, 3Mx4N/Mx4N, 4MxN/4Mx2N/4MxN и Mx4N/2Mx4N/Mx4N.Since this example is a case in which two or more blocks (two, three and four in this example) can be obtained by splitting, the split information needed for one split operation may be a flag indicating whether splitting is performed, a flag indicating a split type, a flag indicating a split shape, and a flag indicating a split direction, and the resulting candidates may be 4Mx4N, 4Mx2N, 2Mx4N, 4MxN/4Mx3N, 4Mx3N/4MxN, Mx4N/3Mx4N, 3Mx4N/Mx4N, 4MxN/4Mx2N /4MxN and Mx4N/2Mx4N/Mx4N.

Когда диапазоны разбиения методом квадродерева и двоичного дерева/тернарного дерева перекрывают друг друга, и текущий блок представляет собой блок, полученный посредством разбиения методом квадродерева, информация о разбиении может быть разделена на следующие случаи и сконфигурирована.When the ranges of the quadtree split and the binary tree/ternary tree overlap each other, and the current block is a block obtained by quadtree split, the split information can be divided into the following cases and configured.

(1) Когда разбиение методом квадродерева и разбиение методом двоичного дерева/тернарного дерева перекрывают друг друга(1) When quadtree splitting and binary tree/ternary tree splitting overlap

[Таблица 3][Table 3]

Figure 00000003
Figure 00000003

В вышеприведенной таблице «a» обозначает флаг, указывающий, выполняется ли разбиение методом квадродерева, и когда флаг представляет собой 1, выполняется разбиение методом квадродерева. Когда флаг представляет собой 0, проверяется «b», который представляет собой флаг, указывающий, выполняется ли разбиение методом двоичного дерева. Когда b представляет собой 0, дальнейшее разбиение не выполняется в блоке, но, когда b представляет собой 1, выполняется разбиение методом двоичного дерева или тернарного дерева.In the above table, "a" denotes a flag indicating whether quadtree splitting is performed, and when the flag is 1, quadtree splitting is performed. When the flag is 0, "b" is checked, which is a flag indicating whether splitting is performed by the binary tree method. When b is 0, no further partitioning is performed in the block, but when b is 1, binary tree or ternary tree partitioning is performed.

«c» обозначает флаг, указывающий направление разбиения. c = 0 означает горизонтальное разбиение, а c = 1 означает вертикальное разбиение. «d» обозначает флаг, указывающий тип разбиения. d = 0 означает тернарное разбиение, и d = 1 означает разбиение методом двоичного дерева. Когда d представляет собой 1, проверяется e, которое представляет собой флаг для формы разбиения. Когда e представляет собой 0, выполняется симметричное разбиение, а когда e представляет собой 1, выполняется асимметричное разбиение. Когда e представляет собой 1, проверяется информация о детальном соотношении разбиения при асимметричном разбиении, как и в предыдущем примере."c" stands for a flag indicating the direction of splitting. c = 0 means horizontal split and c = 1 means vertical split. "d" stands for a flag indicating the type of partition. d = 0 means ternary splitting, and d = 1 means binary tree splitting. When d is 1, e is checked, which is a flag for the split form. When e is 0, a symmetrical split is performed, and when e is 1, an asymmetric split is performed. When e is 1, information about the detailed split ratio in asymmetric split is checked, as in the previous example.

(2) Когда может выполняться только разбиение методом двоичного дерева/тернарного дерева(2) When only binary tree/ternary tree partitioning can be performed

В вышеприведенной таблице информация о разбиении может быть выражена с использованием флагов «b»–«f» за исключением флага «a».In the above table, split information can be expressed using flags "b" through "f" with the exception of flag "a".

На фиг. 5 случай блока A20 представляет собой случай, в котором разбиение методом квадродерева может выполняться в блоках A16–A19 до разбиения, и, таким образом, соответствует случаю, в котором генерируется информация о разбиении в пункте (1).In FIG. 5, the case of block A20 is a case in which quadtree splitting can be performed in blocks A16 to A19 before splitting, and thus corresponds to the case in which split information is generated in item (1).

С другой стороны, случай блоков A16–A19 соответствует случаю, в котором разбиение методом двоичного дерева выполняется без предварительного выполнения разбиения методом квадродерева в блоках A16–A19 до разбиения, и, таким образом, соответствует случаю, в котором генерируется информация о разбиении в пункте (2).On the other hand, the case of blocks A16 to A19 corresponds to the case in which binary tree splitting is performed without first performing quadtree splitting in blocks A16 to A19 before splitting, and thus corresponds to the case in which split information is generated at point ( 2).

Далее будет рассмотрен способ межкадрового предсказания на основе режима слияния. В режиме слияния информация о движении может быть получена в элементах одного блока. В данном случае блок может относиться к блоку кодирования, определенному посредством вышеупомянутого блока разбиение. Кроме того, блок представляет собой блок кодирования листового узла и может относиться к блоку, который больше не разбивается на меньшие блоки кодирования. В режиме слияния информация о движении может быть получена в элементах подблоков, принадлежащих к одному блоку. Для этого один блок может быть дополнительно разбит на множество подблоков. Например, моделирование аффинного движения может выполняться на основании режима слияния в элементах подблоков. Текущий блок может выборочно использовать либо режим слияния на основе блоков, либо режим слияния на основе подблоков, и для этого может использоваться заданный флаг. В данном случае флаг может представлять собой информацию, указывающую, применяется ли режим слияния на основе подблоков. Флаг может быть закодирован и передан устройством для кодирования на основании заданного параметра кодирования или может быть получен устройством для декодирования. Параметр кодирования может означать размер/форму блока, тип компонента, тип разбиения, глубину разбиения и т. д. Например, когда размер текущего блока больше или равен NxM, флаг может быть передан. В ином случае, флаг может быть получен в качестве предварительно определенного значения. В данном случае N и M могут представлять собой целое число: 8, 16 или больше. N и M могут быть одинаковыми или разными. Режим слияния на основе блоков будет описан со ссылкой на фиг. 6, а режим слияния на основе подблоков будет описан со ссылкой на фиг. 7–10, соответственно.Next, an inter-picture prediction method based on the fusion mode will be discussed. In merge mode, motion information can be obtained in the elements of one block. In this case, a block may refer to a coding block determined by the aforementioned splitting block. In addition, a block is a leaf node coding block and may refer to a block that is no longer split into smaller coding blocks. In the merge mode, motion information can be obtained in the elements of sub-blocks belonging to the same block. To do this, one block can be further divided into a plurality of subblocks. For example, affine motion modeling may be performed based on the fusion mode in the subblock elements. The current block can selectively use either a block-based merge mode or a sub-block-based merge mode, and a given flag can be used for this. In this case, the flag may be information indicating whether the merge mode is applied based on sub-blocks. The flag may be encoded and transmitted by the encoder based on a predetermined encoding parameter, or may be received by the decoder. The encoding parameter may mean block size/shape, component type, split type, split depth, etc. For example, when the size of the current block is greater than or equal to NxM, a flag may be passed. Otherwise, the flag may be received as a predefined value. In this case, N and M may be an integer: 8, 16 or more. N and M may be the same or different. The block-based merge mode will be described with reference to FIG. 6, and the sub-block-based merge mode will be described with reference to FIG. 7–10, respectively.

На фиг. 6 изображен способ выполнения межкадрового предсказания на основании режима слияния на основе блоков в качестве варианта осуществления, к которому применяется настоящее изобретение.In FIG. 6 shows a method for performing inter prediction based on a block-based merge mode as an embodiment to which the present invention is applied.

Как показано на фиг. 6, может быть составлен список кандидатов на слияние текущего блока (S600).As shown in FIG. 6, a merge candidate list of the current block may be compiled (S600).

Список кандидатов на слияние может содержать по меньшей мере одного из пространственного кандидата на слияние или временного кандидата на слияние текущего блока.The merge candidate list may comprise at least one of a spatial merge candidate or a temporal merge candidate of the current block.

Информация о движении пространственного кандидата на слияние может быть получена из информации о движении пространственного соседнего блока текущего блока. В данном случае пространственный соседний блок представляет собой блок, принадлежащий к тому же изображению, что и изображение текущего блока, и может означать блок, смежный с текущим блоком. Пространственный соседний блок может включать по меньшей мере один из левого, верхнего, верхнего правого, нижнего левого или верхнего левого соседнего блока текущего блока. Верхний левый соседний блок может использоваться только когда по меньшей мере один из блоков, смежных с левым, верхним, верхний правым и нижним левым блоками, не доступен.The motion information of the spatial merge candidate can be obtained from the motion information of the spatial neighboring block of the current block. In this case, a spatial neighbor block is a block belonging to the same image as the image of the current block, and may mean a block adjacent to the current block. The spatial neighbor block may include at least one of the left, top, top right, bottom left, or top left neighbor of the current block. The top left adjacent block can only be used when at least one of the blocks adjacent to the left, top, top right, and bottom left blocks is not available.

Информация о движении временного кандидата на слияние может быть получена из информации о движении временного соседнего блока текущего блока. Временной соседний блок представляет собой блок, принадлежащий к изображению, отличающемуся от изображения текущего блока, и может быть определен как блок, находящийся в том же положении, что и текущий блок. В данном случае блок в том же положении может относиться к по меньшей мере одному из блока BR, смежного с нижним правым углом текущего блока, блока CTR, имеющего положение центральной точки отсчета текущего блока, или блока TL, имеющего положение верхней левой точки отсчета текущего блока. Альтернативно блок в том же положении может относиться к блоку, имеющему положение, сдвинутое на заданный вектор диспаратности из положения верхней левой точки отсчета текущего блока. В данном случае вектор диспаратности может быть определен на основании любого одного из векторов движения пространственного соседнего блока, описанного выше. Альтернативно вектор диспаратности может быть определен на основании комбинации по меньшей мере двух векторов движения пространственных соседних блоков, описанных выше. Комбинация может относиться к вычислению, такому как максимальное значение, минимальное значение, медианное значение и средневзвешенное значение. Например, вектор диспаратности может быть установлен как вектор движения левого соседнего блока или верхнего соседнего блока. Альтернативно вектор диспаратности может быть установлен как медианное значение или среднее значение между вектором движения левого соседнего блока и вектором движения нижнего левого соседнего блока.The motion information of the temporary merge candidate can be obtained from the motion information of the temporary neighboring block of the current block. The temporal neighbor block is a block belonging to an image different from the image of the current block, and may be defined as a block at the same position as the current block. In this case, the block at the same position may refer to at least one of a BR block adjacent to the bottom right corner of the current block, a CTR block having the position of the center origin of the current block, or a TL block having the position of the top left origin of the current block. . Alternatively, a block at the same position may refer to a block having a position shifted by a given disparity vector from the position of the upper left origin of the current block. In this case, the disparity vector may be determined based on any one of the spatial neighbor block motion vectors described above. Alternatively, the disparity vector may be determined based on a combination of at least two motion vectors of the spatial neighboring blocks described above. The combination may refer to a calculation such as a maximum value, a minimum value, a median value, and a weighted average. For example, the disparity vector may be set to the motion vector of the left neighbor block or the top neighbor block. Alternatively, the disparity vector may be set to the median value or average between the motion vector of the left neighbor block and the motion vector of the lower left neighbor block.

Вектор движения и индекс опорного изображения временного кандидата на слияние могут быть получены в качестве вектора движения и индекса опорного изображения вышеописанного временного соседнего блока, соответственно. Альтернативно вектор движения временного кандидата на слияние может быть получен в качестве вектора движения временного соседнего блока, и индекс опорного изображения временного кандидата на слияние может быть установлен на значение по умолчанию (например, 0), предварительно отправленное на устройство для декодирования независимо от временного соседнего блока.The motion vector and the reference picture index of the temporary merge candidate may be obtained as the motion vector and the reference picture index of the above-described temporal neighbor block, respectively. Alternatively, the motion vector of the temporal merge candidate may be obtained as the motion vector of the temporal neighbor block, and the reference picture index of the temporal merge candidate may be set to a default value (e.g., 0) previously sent to the device for decoding regardless of the temporal neighbor block .

Список кандидатов на слияние может дополнительно содержать комбинированного кандидата на слияние. Комбинированный кандидат на слияние может быть получен за счет комбинирования n кандидатов на слияние, принадлежащих к предварительно сгенерированному списку кандидатов на слияние.The merge candidate list may further comprise a combined merge candidate. A combined merge candidate can be obtained by combining n merge candidates belonging to a pre-generated list of merge candidates.

В данном случае n может представлять собой целое число: 2, 3, 4 или больше. Количество n кандидатов на слияние, подлежащих комбинированию, может представлять собой фиксированное значение, предварительное отправленное на устройство для кодирования/декодирования, или может быть закодировано и передано посредством устройства для кодирования. Передача может выполняться по меньшей мере в одном элементе последовательности, изображения, слоя, плитки, части плитки (пакета) или заданного блока. Количество n кандидатов на слияние, подлежащих комбинированию, может переменно определяться на основании количества оставшихся кандидатов на слияние. В данном случае количество оставшихся кандидатов на слияние может означать разницу между максимальным количеством кандидатов на слияние, которое может быть включено в список кандидатов на слияние, и текущим количеством кандидатов на слияние, принадлежащих к списку кандидатов на слияние. Максимальное количество может представлять собой количество, предварительно отправленное на устройство для кодирования/декодирования, или оно может быть закодировано и передано посредством устройства для кодирования. Текущее количество может означать количество кандидатов на слияние, настроенных перед добавлением комбинированного кандидата на слияние. Например, когда количество оставшихся кандидатов на слияние представляет собой 1, могут использоваться два кандидата на слияние, и когда количество оставшихся кандидатов на слияние больше 1, может использоваться три или больше кандидатов на слияние.In this case, n may be an integer: 2, 3, 4 or more. The number n of merge candidates to be combined may be a fixed value previously sent to the encoder/decoder, or may be encoded and transmitted by the encoder. The transfer can be performed in at least one element of a sequence, image, layer, tile, part of a tile (package) or a given block. The number n of merge candidates to be combined may be variably determined based on the number of remaining merge candidates. In this case, the number of remaining merger candidates may mean the difference between the maximum number of merger candidates that can be included in the merger candidate list and the current number of merger candidates belonging to the merger candidate list. The maximum number may be the amount previously sent to the encoder/decoder, or it may be encoded and transmitted by the encoder. The current count can mean the number of merge candidates configured before adding the combined merge candidate. For example, when the number of remaining merge candidates is 1, two merge candidates may be used, and when the number of remaining merge candidates is greater than 1, three or more merge candidates may be used.

Положения n кандидатов на слияние могут представлять собой положения, предварительно определенные в списке кандидатов на слияние. Например, индексы (от 0 од (k-1)) могут быть присвоены каждому кандидату на слияние, принадлежащему к списку кандидатов на слияние. В данном случае k может означать общее количество кандидатов на слияние, принадлежащих к списку кандидатов на слияние. В этом случае положения n кандидатов на слияние могут соответствовать от индекса 0 до индекса (n-1) в списке кандидатов на слияние. Альтернативно n кандидатов на слияние могут быть определены с учетом направления предсказания каждого кандидата на слияние, принадлежащего к списку кандидатов на слияние. Например, среди кандидатов на слияние, принадлежащих к списку кандидатов на слияние, может выборочно использоваться только кандидат на слияние, соответствующий двунаправленному предсказанию, или может выборочно использоваться только кандидат на слияние, соответствующий однонаправленному предсказанию.The positions of the n merge candidates may be positions predetermined in the merge candidate list. For example, indices (from 0 to (k-1)) may be assigned to each merge candidate belonging to the list of merge candidates. In this case, k may mean the total number of merge candidates belonging to the list of merge candidates. In this case, the positions of n merge candidates may correspond from index 0 to index (n-1) in the list of merge candidates. Alternatively, n merge candidates may be determined considering the prediction direction of each merge candidate belonging to the merge candidate list. For example, among the merge candidates belonging to the merge candidate list, only the merge candidate corresponding to bidirectional prediction may be selectively used, or only the merge candidate corresponding to unidirectional prediction may be selectively used.

Комбинированный кандидат на слияние может быть получен с использованием и пространственного кандидата на слияние, и временного кандидата на слияние, или может быть получен с использованием только либо пространственного кандидата на слияние, либо временного кандидата на слияние. Например, комбинированный кандидат на слияние может быть ограничен получением только с использованием пространственного кандидата на слияние. В этом случае количество кандидатов на слияние, подлежащих комбинированию, может быть ограничено в пределах количества пространственных кандидатов на слияние, принадлежащих к предварительно сгенерированному списку кандидатов на слияние.The combined merge candidate may be generated using both the spatial merge candidate and the temporal merge candidate, or may be generated using only either the spatial merge candidate or the temporal merge candidate. For example, a combined merge candidate may be limited to being derived using only a spatial merge candidate. In this case, the number of merge candidates to be combined may be limited within the number of spatial merge candidates belonging to the pre-generated merge candidate list.

Комбинированный кандидат на слияние может быть добавлен после пространственного/временного кандидата на слияние в списке кандидатов на слияние. То есть индекс комбинированного кандидата на слияние может быть больше индекса пространственного/временного кандидата на слияние. Альтернативно комбинированный кандидат на слияние может быть добавлен между пространственным кандидатом на слияние и временным кандидатом на слияние в списке кандидатов на слияние. То есть индекс комбинированного кандидата на слияние может быть больше индекса пространственного кандидата на слияние и меньше индекса временного кандидата на слияние. Альтернативно положение комбинированного кандидата на слияние может переменно определяться с учетом направления предсказания комбинированного кандидата на слияние. Положения комбинированных кандидатов на слияние в списке кандидатов на слияние могут быть расположены в ином порядке в зависимости от того, является ли направление предсказания комбинированного кандидата на слияние двунаправленным предсказанием. Например, когда комбинированный кандидат на слияние представляет собой двунаправленное предсказание, может быть присвоен индекс, меньший, чем индекс пространственного или временного кандидата на слияние, и, в ином случае, может быть присвоен индекс, большим чем индекс пространственного или временного кандидата на слияние.The combined merge candidate may be added after the spatial/temporal merge candidate in the merge candidate list. That is, the combined merge candidate index may be greater than the spatial/temporal merge candidate index. Alternatively, a combined merge candidate may be added between the spatial merge candidate and the temporal merge candidate in the merge candidate list. That is, the combined merge candidate index may be greater than the spatial merge candidate index and less than the temporal merge candidate index. Alternatively, the position of the combined merge candidate may be variably determined based on the prediction direction of the combined merge candidate. The positions of the combined merge candidates in the merge candidate list may be arranged differently depending on whether the prediction direction of the combined merge candidate is bidirectional prediction. For example, when the combined merge candidate is a bidirectional prediction, an index smaller than the index of the spatial or temporal merge candidate may be assigned and, otherwise, an index greater than the index of the spatial or temporal merge candidate may be assigned.

Здесь и далее для удобства описания будет изложен способ получения комбинированного кандидата на слияние на основании двух кандидатов на слияние.Hereinafter, for convenience of description, a method for obtaining a combined merge candidate based on two merge candidates will be described.

Информация о движении комбинированного кандидата на слияние может быть получена посредством средневзвешенного значения информации о движении первого кандидата на слияние и информации о движении второго кандидата на слияние. В данном случае весовой коэффициент средневзвешенного значения представляет собой [1:1], [1:2], [1:3], [2:3] и т. д., и не ограничен этим. Весовой коэффициент может быть предварительно определен в устройстве для кодирования/декодирования или получен от устройства для декодирования. В этом случае весовой коэффициент может быть получен путем рассмотрения по меньшей мере одного из расстояния между текущим изображением и опорным изображением кандидата на слияние или направления предсказания кандидата на слияние. Альтернативно информация о движении комбинированного кандидата на слияние может быть получена за счет получения информации о движении в направлении L0 от первого кандидата на слияние и информации о движении в направлении L1 от второго кандидата на слияние, и комбинирования информации о движении в направлении L0 и информации о движении в направлении L1. Информация о движении комбинированного кандидата на слияние может быть получена на основании по меньшей мере одного из вышеописанных способов получения, и получение может быть выполнено с учетом направления предсказания кандидата на слияние, подлежащего комбинированию, как описано ниже.The motion information of the combined merger candidate can be obtained by a weighted average of the motion information of the first merger candidate and the motion information of the second merger candidate. Here, the weighted average is [1:1], [1:2], [1:3], [2:3], etc., and is not limited to this. The weighting factor may be predetermined in the encoder/decoder or received from the decoder. In this case, the weighting factor can be obtained by considering at least one of the distance between the current picture and the reference picture of the merge candidate or the prediction direction of the merge candidate. Alternatively, the movement information of the combined merge candidate can be obtained by obtaining the movement information in the L0 direction from the first merge candidate and the movement information in the L1 direction from the second merge candidate, and combining the movement information in the L0 direction and the movement information in the direction L1. The motion information of the combined merge candidate may be obtained based on at least one of the above-described acquisition methods, and the acquisition may be performed considering the prediction direction of the merge candidate to be combined, as described below.

В этом описании информация о движении может содержать по меньшей мере одно из флага направления предсказания, индекса опорного изображения или вектора движения. Информация о движении может быть определена для предсказания L0 и предсказания L1, соответственно. В данном случае предсказание L0 может относиться к предсказанию, относящемуся к списку опорных изображений L0, а предсказание L1 может относиться к предсказанию, относящемуся к списку опорных изображений L1.In this description, the motion information may comprise at least one of a prediction direction flag, a reference picture index, or a motion vector. Motion information may be determined for L0 prediction and L1 prediction, respectively. In this case, the L0 prediction may refer to the prediction related to the L0 reference picture list, and the L1 prediction may refer to the prediction related to the L1 reference picture list.

1. Когда как первый кандидат на слияние, так и второй кандидат на слияние представляют собой однонаправленные предсказания 1. When both the first fusion candidate and the second fusion candidate are unidirectional predictions

(Случай 1) Когда первый кандидат на слияние представляет собой предсказание L0 и второй кандидат на слияние представляет собой предсказание L1, индекс опорного изображения комбинированного кандидата на слияние в направлении L0 может быть получен как индекс опорного изображения первого кандидата на слияние. Флаг направления предсказания комбинированного кандидата на слияние в направлении L0 может быть получен как 1. Вектор движения комбинированного кандидата на слияние в направлении L0 может быть получен как вектор движения первого кандидата на слияние. Индекс опорного изображения комбинированного кандидата на слияние в направлении L1 может быть получен как индекс опорного изображения второго кандидата на слияние. Флаг направления предсказания комбинированного кандидата на слияние в направлении L1 может быть получен как 1. Вектор движения комбинированного кандидата на слияние в направлении L1 может быть получен как вектор движения второго кандидата на слияние.(Case 1) When the first merge candidate is the L0 prediction and the second merge candidate is the L1 prediction, the reference picture index of the combined merge candidate in the L0 direction can be obtained as the reference picture index of the first merge candidate. The prediction direction flag of the combined merge candidate in the L0 direction may be obtained as 1. The motion vector of the combined merge candidate in the L0 direction may be obtained as the motion vector of the first merge candidate. The reference picture index of the combined merge candidate in the L1 direction may be obtained as the reference picture index of the second merge candidate. The prediction direction flag of the combined merge candidate in the L1 direction may be obtained as 1. The motion vector of the combined merge candidate in the L1 direction may be obtained as the motion vector of the second merge candidate.

(Случай 2) Когда первый кандидат на слияние представляет собой предсказание L1 и второй кандидат на слияние представляет собой предсказание L0, индекс опорного изображения комбинированного кандидата на слияние в направлении L0 может быть получен как индекс опорного изображения второго кандидата на слияние. Флаг направления предсказания комбинированного кандидата на слияние в направлении L0 может быть получен как 1. Вектор движения комбинированного кандидата на слияние в направлении L0 может быть получен как вектор движения второго кандидата на слияние. Индекс опорного изображения комбинированного кандидата на слияние в направлении L1 может быть получен как индекс опорного изображения первого кандидата на слияние. Флаг направления предсказания комбинированного кандидата на слияние в направлении L1 может быть получен как 1. Вектор движения комбинированного кандидата на слияние в направлении L1 может быть получен как вектор движения первого кандидата на слияние.(Case 2) When the first merge candidate is the L1 prediction and the second merge candidate is the L0 prediction, the reference picture index of the combined merge candidate in the L0 direction can be obtained as the reference picture index of the second merge candidate. The prediction direction flag of the combined merge candidate in the L0 direction may be obtained as 1. The motion vector of the combined merge candidate in the L0 direction may be obtained as the motion vector of the second merge candidate. The reference picture index of the combined merge candidate in the L1 direction may be obtained as the reference picture index of the first merge candidate. The prediction direction flag of the combined merge candidate in the L1 direction may be obtained as 1. The motion vector of the combined merge candidate in the L1 direction may be obtained as the motion vector of the first merge candidate.

(Случай 3) Когда первый кандидат на слияние и второй кандидат на слияние представляют собой предсказание L0, индекс опорного изображения комбинированного кандидата на слияние в направлении L0 может быть получен как индекс опорного изображения любого из первого кандидата на слияние и второго кандидата на слияние. Например, индекс опорного изображения одного из первого кандидата на слияние и второго кандидата на слияние, имеющих наименьший индекс, может быть установлен как индекс опорного изображения комбинированного кандидата на слияние в направлении L0. Флаг направления предсказания комбинированного кандидата на слияние в направлении L0 может быть получен как 1. Вектор движения комбинированного кандидата на слияние в направлении L0 может быть получен как средневзвешенное значение вектора движения первого кандидата на слияние и второго кандидата на слияние. Индекс опорного изображения комбинированного кандидата на слияние в направлении L1 может быть получен как -1, флаг направления предсказания в направлении L1 может быть получен как 0, и информация о движении в направлении L1 может быть получена как 0.(Case 3) When the first merge candidate and the second merge candidate are L0 prediction, the reference picture index of the combined merge candidate in the L0 direction can be obtained as the reference picture index of any of the first merge candidate and the second merge candidate. For example, a reference picture index of one of the first merge candidate and the second merge candidate having the smallest index may be set as the reference picture index of the combined merge candidate in the L0 direction. The prediction direction flag of the combined merge candidate in the L0 direction may be obtained as 1. The motion vector of the combined merge candidate in the L0 direction may be obtained as a weighted average of the motion vector of the first merge candidate and the second merge candidate. The reference picture index of the combined merge candidate in the L1 direction may be obtained as -1, the prediction direction flag in the L1 direction may be obtained as 0, and the motion information in the L1 direction may be obtained as 0.

(Случай 4) Когда первый кандидат на слияние и второй кандидат на слияние представляют собой предсказание L1, индекс опорного изображения комбинированного кандидата на слияние в направлении L0 может быть получен как -1, флаг направления предсказания в направлении L0 может быть получен как 0, и информация о движении в направлении L0 может быть получена как 0. Индекс опорного изображения комбинированного кандидата на слияние в направлении L1 может быть получен как индекс опорного изображения либо первого кандидата на слияние, либо второго кандидата на слияние. Например, индекс опорного изображения одного из первого кандидата на слияние и второго кандидата на слияние, имеющих наименьший индекс, может быть установлен как индекс опорного изображения комбинированного кандидата на слияние в направлении L1. Флаг направления предсказания комбинированного кандидата на слияние в направлении L1 может быть получен как 1. Вектор движения комбинированного кандидата на слияние в направлении L1 может быть получен как средневзвешенное значение вектора движения первого кандидата на слияние и второго кандидата на слияние.(Case 4) When the first merge candidate and the second merge candidate are L1 prediction, the reference picture index of the combined merge candidate in the L0 direction can be obtained as −1, the prediction direction flag in the L0 direction can be obtained as 0, and the information about moving in the L0 direction may be obtained as 0. The reference picture index of the combined merge candidate in the L1 direction may be obtained as the reference picture index of either the first merge candidate or the second merge candidate. For example, a reference picture index of one of the first merge candidate and the second merge candidate having the smallest index may be set as the reference picture index of the combined merge candidate in the L1 direction. The prediction direction flag of the combined merge candidate in the L1 direction may be obtained as 1. The motion vector of the combined merge candidate in the L1 direction may be obtained as a weighted average of the motion vector of the first merge candidate and the second merge candidate.

2. Когда как первый кандидат на слияние, так и второй кандидат на слияние представляют собой двунаправленные предсказания2. When both the first fusion candidate and the second fusion candidate are bidirectional predictions

(Случай 5) Индекс опорного изображения комбинированного кандидата на слияние в направлении L0 может быть получен как индекс опорного изображения либо первого кандидата на слияние, либо второго кандидата на слияние. Например, индекс опорного изображения одного из первого кандидата на слияние и второго кандидата на слияние, имеющих наименьший индекс, может быть установлен как индекс опорного изображения комбинированного кандидата на слияние в направлении L0. Флаг направления предсказания комбинированного кандидата на слияние в направлении L0 может быть получен как 1. Вектор движения комбинированного кандидата на слияние в направлении L0 может быть получен как средневзвешенное значение вектора движения первого кандидата на слияние и второго кандидата на слияние. Индекс опорного изображения комбинированного кандидата на слияние в направлении L1 может быть получен как индекс опорного изображения либо первого кандидата на слияние, либо второго кандидата на слияние. Например, индекс опорного изображения одного из первого кандидата на слияние и второго кандидата на слияние, имеющих наименьший индекс, может быть установлен как индекс опорного изображения комбинированного кандидата на слияние в направлении L1. Флаг направления предсказания комбинированного кандидата на слияние в направлении L1 может быть получен как 1. Вектор движения комбинированного кандидата на слияние в направлении L1 может быть получен как средневзвешенное значение вектора движения первого кандидата на слияние и второго кандидата на слияние.(Case 5) The reference picture index of the combined merge candidate in the L0 direction may be obtained as the reference picture index of either the first merge candidate or the second merge candidate. For example, a reference picture index of one of the first merge candidate and the second merge candidate having the smallest index may be set as the reference picture index of the combined merge candidate in the L0 direction. The prediction direction flag of the combined merge candidate in the L0 direction may be obtained as 1. The motion vector of the combined merge candidate in the L0 direction may be obtained as a weighted average of the motion vector of the first merge candidate and the second merge candidate. The reference picture index of the combined merge candidate in the L1 direction may be obtained as the reference picture index of either the first merge candidate or the second merge candidate. For example, a reference picture index of one of the first merge candidate and the second merge candidate having the smallest index may be set as the reference picture index of the combined merge candidate in the L1 direction. The prediction direction flag of the combined merge candidate in the L1 direction may be obtained as 1. The motion vector of the combined merge candidate in the L1 direction may be obtained as a weighted average of the motion vector of the first merge candidate and the second merge candidate.

3. Когда первый кандидат на слияние представляет собой двунаправленное предсказание, а второй кандидат на слияние представляет собой однонаправленное предсказание3. When the first merge candidate is a bidirectional prediction and the second merge candidate is a unidirectional prediction

(Случай 6) Когда второй кандидат на слияние представляет собой предсказание L0, индекс опорного изображения комбинированного кандидата на слияние в направлении L0 может быть получен как индекс опорного изображения либо первого кандидата на слияние, либо второго кандидата на слияние. Например, индекс опорного изображения одного из первого кандидата на слияние и второго кандидата на слияние, имеющих наименьший индекс, может быть установлен как индекс опорного изображения комбинированного кандидата на слияние в направлении L0. Флаг направления предсказания комбинированного кандидата на слияние в направлении L0 может быть получен как 1. Вектор движения комбинированного кандидата на слияние в направлении L0 может быть получен как средневзвешенное значение вектора движения первого кандидата на слияние и второго кандидата на слияние. Индекс опорного изображения комбинированного кандидата на слияние в направлении L1 может быть получен как индекс опорного изображения первого кандидата на слияние. Флаг направления предсказания комбинированного кандидата на слияние в направлении L1 может быть получен как 1. Вектор движения комбинированного кандидата на слияние в направлении L1 может быть получен как вектор движения первого кандидата на слияние.(Case 6) When the second merge candidate is the L0 prediction, the reference picture index of the combined merge candidate in the L0 direction can be obtained as the reference picture index of either the first merge candidate or the second merge candidate. For example, a reference picture index of one of the first merge candidate and the second merge candidate having the smallest index may be set as the reference picture index of the combined merge candidate in the L0 direction. The prediction direction flag of the combined merge candidate in the L0 direction may be obtained as 1. The motion vector of the combined merge candidate in the L0 direction may be obtained as a weighted average of the motion vector of the first merge candidate and the second merge candidate. The reference picture index of the combined merge candidate in the L1 direction may be obtained as the reference picture index of the first merge candidate. The prediction direction flag of the combined merge candidate in the L1 direction may be obtained as 1. The motion vector of the combined merge candidate in the L1 direction may be obtained as the motion vector of the first merge candidate.

(Случай 7) Когда второй кандидат на слияние представляет собой предсказание L1, индекс опорного изображения комбинированного кандидата на слияние в направлении L0 может быть получен как индекс опорного изображения первого кандидата на слияние. Флаг направления предсказания комбинированного кандидата на слияние в направлении L0 может быть получен как 1. Вектор движения комбинированного кандидата на слияние в направлении L0 может быть получен как вектор движения первого кандидата на слияние. Индекс опорного изображения комбинированного кандидата на слияние в направлении L1 может быть получен как индекс опорного изображения либо первого кандидата на слияние, либо второго кандидата на слияние. Например, индекс опорного изображения одного из первого кандидата на слияние и второго кандидата на слияние, имеющих наименьший индекс, может быть установлен как индекс опорного изображения комбинированного кандидата на слияние в направлении L1. Флаг направления предсказания комбинированного кандидата на слияние в направлении L1 может быть получен как 1. Вектор движения комбинированного кандидата на слияние в направлении L1 может быть получен как средневзвешенное значение вектора движения первого кандидата на слияние и второго кандидата на слияние.(Case 7) When the second merge candidate is an L1 prediction, the reference picture index of the combined merge candidate in the L0 direction can be obtained as the reference picture index of the first merge candidate. The prediction direction flag of the combined merge candidate in the L0 direction may be obtained as 1. The motion vector of the combined merge candidate in the L0 direction may be obtained as the motion vector of the first merge candidate. The reference picture index of the combined merge candidate in the L1 direction may be obtained as the reference picture index of either the first merge candidate or the second merge candidate. For example, a reference picture index of one of the first merge candidate and the second merge candidate having the smallest index may be set as the reference picture index of the combined merge candidate in the L1 direction. The prediction direction flag of the combined merge candidate in the L1 direction may be obtained as 1. The motion vector of the combined merge candidate in the L1 direction may be obtained as a weighted average of the motion vector of the first merge candidate and the second merge candidate.

Как показано на фиг. 6, информация о движении текущего блока может быть получена из списка кандидатов на слияние (S610).As shown in FIG. 6, the movement information of the current block can be obtained from the merge candidate list (S610).

В частности, может быть передан индекс слияния текущего блока. Индекс слияния может указывать любого из множества кандидатов на слияние, принадлежащих к списку кандидатов на слияние. То есть может быть отобран кандидат на слияние, имеющий такой же индекс, как индекс слияния, и информация о движении текущего блока может быть получена с использованием информации о движении отобранного кандидата на слияние.In particular, the merge index of the current block may be passed. The merge index may indicate any of a plurality of merge candidates belonging to the merge candidate list. That is, a merge candidate having the same index as the merge index can be selected, and motion information of the current block can be obtained using the motion information of the selected merge candidate.

Как показано на фиг. 6, может быть выполнено межкадровое предсказание текущего блока с использованием полученной информации о движении (S620).As shown in FIG. 6, inter prediction of the current block can be performed using the acquired motion information (S620).

В частности, опорное изображение может быть выбрано из списка опорных изображений на основании индекса опорного изображения текущего блока. Опорный блок в опорном изображении может быть указан на основании вектора движения текущего блока. Пиксель предсказания текущего блока может быть сгенерирован с использованием восстановленного пикселя указанного опорного блока. Текущий блок может быть восстановлен за счет сложения пикселя предсказания текущего блока и остаточного пикселя. В данном случае остаточный пиксель может быть получен за счет выполнения по меньшей мере одного из обратного квантования или обратного преобразования в отношении остаточного коэффициента, переданного посредством битового потока.In particular, the reference picture may be selected from the reference picture list based on the reference picture index of the current block. The reference block in the reference picture may be specified based on the motion vector of the current block. The prediction pixel of the current block may be generated using the reconstructed pixel of the specified reference block. The current block can be reconstructed by adding the prediction pixel of the current block and the residual pixel. In this case, the residual pixel may be obtained by performing at least one of inverse quantization or inverse transform on the residual coefficient transmitted by the bitstream.

На фиг. 7 изображен способ межкадрового предсказания на основании аффинной модели в качестве варианта осуществления, к которому применяется настоящее изобретение.In FIG. 7 shows an inter-picture prediction method based on an affine model as an embodiment to which the present invention is applied.

Как показано на фиг. 7, может быть сгенерирован список кандидатов для предсказания информации о движении текущего блока (S700).As shown in FIG. 7, a list of candidates for predicting motion information of the current block may be generated (S700).

Список кандидатов может содержать один или более кандидатов на основе аффинной модели (здесь и далее называемые аффинными кандидатами). Аффинный кандидат может относиться к кандидату, имеющему вектор контрольной точки. Вектор контрольной точки относится к вектору движения контрольной точки для аффинной модели и может быть определен для углового положения блока (например, по меньшей мере одного положения среди верхнего левого угла, верхнего правого угла, нижнего левого угла или нижнего правого угла).The candidate list may contain one or more affine model candidates (hereinafter referred to as affine candidates). An affine candidate may refer to a candidate having a checkpoint vector. The control point vector refers to the control point motion vector for the affine model, and may be defined for the angular position of the block (eg, at least one position among top left, top right, bottom left, or bottom right).

Аффинный кандидат может включать по меньшей мере одного из пространственного кандидата, временного кандидата или настроенного кандидата. В данном случае пространственный кандидат может быть получен из вектора соседнего блока, в пространственном отношении смежного с текущим блоком, и временной кандидат может быть получен из вектора соседнего блока, во временном отношении смежного с текущим блоком. В данном случае соседний блок может относиться к блоку, закодированному посредством аффинной модели. Вектор может относиться к вектору движения или вектору контрольной точки.The affine candidate may include at least one of a spatial candidate, a temporal candidate, or a customized candidate. In this case, a spatial candidate may be derived from a neighboring block vector spatially adjacent to the current block, and a temporal candidate may be derived from a neighboring block vector temporally adjacent to the current block. In this case, a neighboring block may refer to a block encoded with an affine model. The vector may refer to a motion vector or a control point vector.

Способ получения пространственного/временного кандидата на основании вектора пространственного/временного соседнего блока будет описан подробно со ссылкой на фиг. 8.A method for obtaining a space/time candidate based on a space/time neighbor block vector will be described in detail with reference to FIG. 8.

Между тем, настроенный кандидат может быть получен на основании комбинации векторов движения пространственных/временных соседних блоков относительно текущего блока, что будет описано подробно со ссылкой на фиг. 9.Meanwhile, a tuned candidate can be obtained based on the combination of motion vectors of the space/time neighboring blocks with respect to the current block, which will be described in detail with reference to FIG. 9.

Множество аффинных кандидатов, описанных выше, могут быть расположены в списке кандидатов на основании заданного приоритета. Например, множество аффинных кандидатов могут быть расположены в списке кандидатов в следующем порядке: пространственный кандидат, временной кандидат и настроенный кандидат. Альтернативно множество аффинных кандидатов могут быть расположены в списке кандидатов в следующем порядке: временной кандидат, пространственный кандидат и настроенный кандидат. Однако настоящее изобретение не ограничено этим, и временной кандидат может быть расположен после настроенного кандидата. Альтернативно некоторые из настроенных кандидатов могут быть расположены перед пространственным кандидатом, а остальные могут быть расположены после пространственного кандидата.The plurality of affine candidates described above may be placed in the candidate list based on a given priority. For example, a set of affine candidates may be placed in the candidate list in the following order: spatial candidate, temporal candidate, and tuned candidate. Alternatively, the set of affine candidates may be arranged in the candidate list in the following order: temporal candidate, spatial candidate, and tuned candidate. However, the present invention is not limited to this, and the temporary candidate may be located after the tuned candidate. Alternatively, some of the tuned candidates may be located before the spatial candidate and the rest may be located after the spatial candidate.

Список кандидатов может дополнительно содержать временного кандидата на основе подблоков. Информация о движении временного кандидата может быть получена в качестве совмещаемого блока, соответствующего текущему блоку, что будет описано подробно со ссылкой на фиг. 10.The list of candidates may further comprise an interim candidate based on subblocks. The movement information of the temporal candidate may be obtained as a co-located block corresponding to the current block, which will be described in detail with reference to FIG. 10.

На основании списка кандидатов и индекса кандидата может быть получен вектор контрольной точки текущего блока (S710).Based on the candidate list and the candidate index, a checkpoint vector of the current block can be obtained (S710).

Индекс кандидата может относиться к индексу, который закодирован для получения вектора контрольной точки текущего блока. Индекс кандидата может указывать любой из множества аффинных кандидатов, принадлежащих к списку кандидатов. Вектор контрольной точки текущего блока может быть получен с использованием вектора контрольной точки аффинного кандидата, указанного посредством индекса кандидата.The candidate index may refer to an index that is encoded to obtain the checkpoint vector of the current block. The candidate index may indicate any of the plurality of affine candidates belonging to the candidate list. The checkpoint vector of the current block may be obtained using the affine candidate checkpoint vector indicated by the candidate index.

Например, предполагается, что тип аффинной модели текущего блока является 4-параметральным (то есть определяется, что текущий блок использует два вектора контрольной точки). В этом случае, когда аффинный кандидат, указанный посредством индекса кандидата, имеет три вектора контрольной точки, только два вектора контрольной точки (например, векторы контрольной точки, индексы которых представляют собой 0 и 1) могут быть выбраны из трех векторов контрольной точки и установлены в качестве векторов контрольной точки текущего блока. Альтернативно три вектора контрольной точки указанных аффинных кандидатов могут быть установлены в качестве векторов контрольной точки текущего блока. В этом случае тип аффинной модели текущего блока может быть обновлен до 6-параметрального.For example, the affine model type of the current block is assumed to be 4-parameter (ie, it is determined that the current block uses two checkpoint vectors). In this case, when the affine candidate indicated by the candidate index has three checkpoint vectors, only two checkpoint vectors (eg, checkpoint vectors whose indices are 0 and 1) can be selected from the three checkpoint vectors and set to as checkpoint vectors of the current block. Alternatively, the three checkpoint vectors of the indicated affine candidates may be set as the checkpoint vectors of the current block. In this case, the affine model type of the current block can be updated to 6-parameter.

И наоборот, предполагается, что тип аффинной модели текущего блока является 6-параметральным (то есть определяется, что текущий блок использует три вектора контрольной точки). В этом случае, когда аффинный кандидат, указанный посредством индекса кандидата, имеет два вектора контрольной точки, может быть сгенерирован один дополнительный вектор контрольной точки, и два вектора контрольной точки и дополнительный вектор контрольной точки аффинного кандидата могут быть установлены в качестве векторов контрольной точки текущего блока. Дополнительный вектор контрольной точки может быть получен на основании по меньшей мере одного из двух векторов контрольной точки аффинного кандидата, а также информации о размере или положении текущего/соседнего блока.Conversely, the affine model type of the current block is assumed to be 6-parameter (ie, it is determined that the current block uses three checkpoint vectors). In this case, when the affine candidate indicated by the candidate index has two checkpoint vectors, one additional checkpoint vector can be generated, and the two checkpoint vectors and the additional checkpoint vector of the affine candidate can be set as the checkpoint vectors of the current block. . An additional checkpoint vector may be derived based on at least one of the two checkpoint vectors of the affine candidate, as well as current/adjacent block size or position information.

Альтернативно два вектора контрольной точки указанных аффинных кандидатов могут быть установлены в качестве векторов контрольной точки текущего блока. В этом случае тип аффинной модели текущего блока может быть обновлен до 4-параметрального.Alternatively, the two checkpoint vectors of the specified affine candidates may be set as the checkpoint vectors of the current block. In this case, the affine model type of the current block can be updated to 4-parameter.

Вектор движения текущего блока может быть получен на основании вектора контрольной точки текущего блока (S720).The motion vector of the current block may be obtained based on the checkpoint vector of the current block (S720).

Вектор движения может быть получен в элементах подблоков текущего блока. Для этого текущий блок может быть разбит на множество NxM подблоков. В данном случае NxM подблоков могут быть в форме прямоугольника (N > M или N < M) или квадрата (N = M). Значения N и M могут представлять собой 4, 8, 16, 32 или больше.The motion vector can be obtained in the elements of sub-blocks of the current block. To do this, the current block can be divided into many NxM subblocks. In this case, the NxM sub-blocks may be in the form of a rectangle (N > M or N < M) or a square (N = M). The values of N and M may be 4, 8, 16, 32 or more.

Например, размер/форма подблока могут представлять собой фиксированные размер/форму, предварительно определенные в устройстве для декодирования. Например, размер/форма подблока могут представлять собой квадрат, такой как 4x4, 8x8 или 16x16, или прямоугольник, такой как 2x4, 2x8, 4x8 или 4x16. Альтернативно подблок может быть определен как блок, в котором сумма ширины и высоты составляет 8, 12, 16 или больше. Альтернативно подблок может быть определен как блок, в котором произведение ширины на высоту представляет собой целое число: 16, 32, 64 или больше.For example, the sub-block size/shape may be a fixed size/shape predetermined in the decoding device. For example, the size/shape of the sub-block may be a square, such as 4x4, 8x8, or 16x16, or a rectangle, such as 2x4, 2x8, 4x8, or 4x16. Alternatively, a subblock may be defined as a block in which the sum of the width and height is 8, 12, 16, or greater. Alternatively, a subbox may be defined as a box in which the width times the height is an integer: 16, 32, 64, or greater.

Альтернативно размер/форма подблока могут быть получены переменным образом на основании атрибута вышеописанного блока. Например, когда размер текущего блока больше или равен заданному пороговому размеру, текущий блок может быть разбит на элементы первого подблока (например, 8x8 и 16x16), и, в ином случае, текущий блок может быть разбит на элементы второго подблока (например, 4x4).Alternatively, the size/shape of the sub-block may be obtained in a variable manner based on an attribute of the above-described block. For example, when the size of the current block is greater than or equal to a given threshold size, the current block may be split into elements of the first sub-block (for example, 8x8 and 16x16), and, otherwise, the current block may be divided into elements of the second sub-block (for example, 4x4) .

Альтернативно информация о размере/форме подблока может быть закодирована и передана посредством устройства для кодирования. Информация указывает по меньшей мере одно из размера или формы подблока, которые могут быть переданы по меньшей мере на одном уровне последовательности, изображения, группы плиток, плитки и CTU.Alternatively, the size/shape information of the sub-block may be encoded and transmitted by the encoder. The information indicates at least one of the size or shape of the sub-unit that can be conveyed at least one level of sequence, image, tile group, tile, and CTU.

Контрольная точка, представляющая текущий блок, может иметь верхнее левое положение и верхнее правое положение. Однако настоящее изобретение не ограничено этим, и контрольная точка может иметь три точки: верхнее левое положение, верхнее правое положение и нижнее левое положение, или может дополнительно иметь множество дополнительных точек.The breakpoint representing the current block can have a top left position and a top right position. However, the present invention is not limited to this, and the reference point may have three points: an upper left position, an upper right position, and a lower left position, or may further have a plurality of additional points.

Когда используются две контрольные точки, вектор движения для каждого подблока текущего блока может быть получен с использованием по меньшей мере одного из вектора первой контрольной точки, соответствующего первой контрольной точке, вектора второй контрольной точки, соответствующего второй контрольной точке, и положения (x, y) подблока или размера (ширины или высоты) текущего блока.When two breakpoints are used, a motion vector for each sub-block of the current block can be obtained using at least one of a first breakpoint vector corresponding to the first breakpoint, a second breakpoint vector corresponding to the second breakpoint, and a position (x, y) subblock or size (width or height) of the current block.

Когда используются три контрольные точки, вектор движения для каждого подблока текущего блока может быть получен с использованием по меньшей мере одного из вектора первой контрольной точки, соответствующего первой контрольной точке, вектора второй контрольной точки, соответствующего второй контрольной точке, вектора третьей контрольной точки, соответствующего третьей контрольной точке, и положения (x, y) подблока или размера (ширины или высоты) текущего блока. В этом случае может использоваться разностный вектор между вектором второй контрольной точки и вектором первой контрольной точки, и может использоваться разностный вектор между вектором третьей контрольной точки и вектором первой контрольной точки. Разностный вектор может быть вычислен для каждого из горизонтального направления (направление по оси x) и вертикального направления (направление по оси y).When three breakpoints are used, a motion vector for each sub-block of the current block can be obtained using at least one of a first breakpoint vector corresponding to the first breakpoint, a second breakpoint vector corresponding to the second breakpoint, a third breakpoint vector corresponding to the third breakpoint, and the position (x, y) of the subbox or the size (width or height) of the current box. In this case, a difference vector between the second checkpoint vector and the first checkpoint vector may be used, and a difference vector between the third checkpoint vector and the first checkpoint vector may be used. A difference vector may be computed for each of a horizontal direction (x direction) and a vertical direction (y direction).

Процесс получения вектора движения может дополнительно включать процесс применения заданного сдвига к вектору движения, полученному на основании вектора контрольной точки. Сдвиг может относиться к вектору для улучшения предварительно полученного вектора движения. Сдвиг может быть определен на основании информация о по меньшей мере одном из размера или направления сдвига. Размер (абсолютный) может представлять собой целое число: 1, 2, 3 или больше. Направление может включать по меньшей мере одно из направления влево, направления вправо, направления вверх или направления вниз. Информация о размере и/или направлении сдвига может быть закодирована и передана посредством устройства для кодирования. Альтернативно размер сдвига может представлять собой фиксированное значение, предварительно установленное в устройстве для декодирования.The motion vector derivation process may further include a process of applying a predetermined offset to the motion vector derived from the reference point vector. The shift may be relative to the vector to improve the previously obtained motion vector. The shift may be determined based on information about at least one of the size or direction of the shift. Size (absolute) can be an integer: 1, 2, 3 or more. The direction may include at least one of a left direction, a right direction, an upward direction, or a downward direction. Information about the size and/or direction of the shift may be encoded and transmitted by the encoding device. Alternatively, the shift size may be a fixed value preset in the decoder.

Межкадровое предсказание может быть выполнено в отношении текущего блока с использованием полученного вектора движения (S730).Inter prediction may be performed on the current block using the obtained motion vector (S730).

В частности, опорный блок может быть указан с использованием вектора движения текущего блока. Опорный блок может быть указан для каждого подблока текущего блока. Опорный блок каждого подблока может относиться к одному опорному изображению. То есть подблоки, принадлежащие к текущему блоку, могут совместно использовать одно опорное изображение. Альтернативно индекс опорного изображения может быть независимо установлен для каждого подблока текущего блока.In particular, the reference block may be specified using the motion vector of the current block. A reference block can be specified for each subblock of the current block. The reference block of each sub-block may refer to one reference picture. That is, sub-blocks belonging to the current block can share one reference picture. Alternatively, the reference picture index may be independently set for each sub-block of the current block.

Между тем, полученный вектор движения может содержать по меньшей мере один из вектора движения L0 и вектора движения L1. Когда вектор движения содержит векторы движения L0 и L1, устройство для декодирования может выполнять однонаправленное предсказание за счет установки любого из векторов движения L0 и L1 равным 0.Meanwhile, the resulting motion vector may comprise at least one of the motion vector L0 and the motion vector L1. When the motion vector contains motion vectors L0 and L1, the decoding apparatus can perform unidirectional prediction by setting any of the motion vectors L0 and L1 to 0.

Установка может быть выборочно выполнена с учетом по меньшей мере одного из размера блока или режима предсказания. В данном случае блок может относиться к текущему блоку или подблоку текущего блока. Режим предсказания может относиться к режиму пропуска, режиму слияния, режиму AMVP, режиму предсказания на основе аффинной модели, режиму ссылки на текущее изображение и т. д.The setting may be selectively performed considering at least one of the block size or the prediction mode. In this case, the block may refer to the current block or a subblock of the current block. The prediction mode may refer to skip mode, merge mode, AMVP mode, affine model prediction mode, current image reference mode, etc.

Например, когда размер текущего блока (или подблока текущего блока) меньше или равен заданному пороговому размеру, выполняется однонаправленное предсказание за счет установки вектора движения L1 равным 0, и, в ином случае, может выполняться двунаправленное предсказание с использованием векторов движения L0 и L1. В данном случае пороговый размер может быть определен как размер блока, в котором по меньшей мере одно из ширины и высоты представляет собой 4, 8 или 16.For example, when the size of the current block (or a subblock of the current block) is less than or equal to a predetermined threshold size, unidirectional prediction is performed by setting the motion vector L1 to 0, and otherwise, bidirectional prediction can be performed using the motion vectors L0 and L1. In this case, the threshold size may be defined as a block size in which at least one of the width and height is 4, 8, or 16.

Альтернативно, когда текущий блок закодирован в первом режиме предсказания, выполняется однонаправленное предсказание за счет установки вектора движения L1 равным 0, и, в ином случае, может выполняться двунаправленное предсказание с использованием векторов движения L0 и L1.Alternatively, when the current block is encoded in the first prediction mode, unidirectional prediction is performed by setting the motion vector L1 to 0, and otherwise bidirectional prediction may be performed using the motion vectors L0 and L1.

Указанный опорный блок может быть установлен как блок предсказания текущего блока. Текущий блок может быть восстановлен за счет сложения остаточного блока и блока предсказания.Said reference block may be set as a prediction block of the current block. The current block can be reconstructed by adding the residual block and the prediction block.

Фиг. 8 относится к способу получения аффинного кандидата из вектора контрольной точки пространственного/временного соседнего блока в качестве варианта осуществления, к которому применяется настоящее изобретение.Fig. 8 relates to a method for obtaining an affine candidate from a space/temporal neighbor block checkpoint vector as an embodiment to which the present invention is applied.

Ширина и высота текущего блока 800 представляют собой cbW и cbH, соответственно, а положение текущего блока представляет собой (xCb, yCb). Ширина и высота пространственных соседних блоков 810–850 представляют собой nbW и nbH, соответственно, и положения пространственных соседних блоков представляют собой (xNb, yNb). Пространственный соседний блок может включать по меньшей мере один из левого блока 810, нижнего левого блока 840, верхнего правого блока 830, верхнего блока 820 или верхнего левого блока 850 текущего блока. Альтернативно пространственный соседний блок может дополнительно включать по меньшей мере один из блока, смежного с правой стороной, или блока, смежного с нижней стороной верхнего левого блока 850.The width and height of the current block 800 are cbW and cbH, respectively, and the position of the current block is (xCb, yCb). The width and height of the spatial neighbor blocks 810-850 are nbW and nbH, respectively, and the positions of the spatial neighbor blocks are (xNb, yNb). The spatial neighbor block may include at least one of the left block 810, bottom left block 840, top right block 830, top block 820, or top left block 850 of the current block. Alternatively, the spatial adjacent block may further include at least one of the block adjacent to the right side or the block adjacent to the bottom side of the upper left block 850.

Пространственный кандидат может иметь n векторов контрольной точки (cpMV). В данном случае значение n может представлять собой целое число: 1, 2, 3 или больше. Значение n определяется на основании по меньшей мере одной из информации о том, выполняется ли декодирование в элементах подблоков, информации о том, кодируется ли блок посредством аффинной модели, или информации о типе (4-параметральном или 6-параметральном) аффинной модели.A spatial candidate may have n checkpoint vectors (cpMV). In this case, the value of n may be an integer: 1, 2, 3 or more. The value of n is determined based on at least one of information about whether decoding is performed in the elements of sub-blocks, information about whether the block is encoded by an affine model, or information about the type (4-parameter or 6-parameter) of an affine model.

Например, согласно информации, когда соответствующий блок представляет собой блок, декодированный в элементах подблоков, или закодированный посредством аффинной модели, соответствующий блок может иметь два вектора контрольной точки. С другой стороны, в ином случае, соответствующий блок может не подвергаться предсказанию на основании аффинной модели.For example, according to the information, when the corresponding block is a block decoded in subblock elements, or encoded by an affine model, the corresponding block may have two checkpoint vectors. On the other hand, otherwise, the corresponding block may not be predicted based on the affine model.

Альтернативно согласно информации, когда соответствующий блок представляет собой блок, закодированный посредством аффинной модели, и тип аффинной модели является 6-параметральным, соответствующий блок может иметь три вектора контрольной точки. С другой стороны, в ином случае, соответствующий блок может подвергаться предсказанию на основании аффинной модели.Alternatively, according to the information, when the corresponding block is an affine model encoded block and the affine model type is 6-parameter, the corresponding block may have three checkpoint vectors. On the other hand, otherwise, the corresponding block may be subject to prediction based on the affine model.

Вышеописанная информация может быть закодирована и передана посредством устройства для кодирования. Альтернативно вся информация или ее часть может быть получена от устройства для декодирования на основании атрибута блока. В данном случае блок может относиться к текущему блоку или может относиться к пространственному/временному соседнему блоку текущего блока. Атрибут может относиться к параметрам, связанным с размером, формой, положением, типом разбиения, межкадровым режимом, остаточным коэффициентом и т. д. Межкадровый режим представляет собой режим, предварительно определенный в устройстве для декодирования, и может относиться к режиму слияния, режиму пропуска, режиму AMVP, аффинной модели, комбинированному внутрикадровому/межкадровому режиму, режиму ссылки на текущее изображение и т. д. Альтернативно значение n может быть получено от устройства для декодирования на основании вышеописанного атрибута блока.The above-described information may be encoded and transmitted by an encoder. Alternatively, all or part of the information may be obtained from the device for decoding based on the attribute of the block. In this case, a block may refer to the current block, or may refer to a spatial/temporal neighboring block of the current block. The attribute may refer to parameters related to size, shape, position, split type, inter frame mode, residual ratio, etc. Inter frame mode is a mode predefined in the device for decoding, and may refer to merge mode, skip mode, AMVP mode, affine model, combined intra/inter frame mode, current picture reference mode, etc. Alternatively, the value of n may be obtained from the decoding device based on the block attribute described above.

В настоящем варианте осуществления n векторов контрольной точки могут быть выражены как вектор первой контрольной точки (cpMV[0]), вектор второй контрольной точки (cpMV[1]), вектор третьей контрольной точки (cpMV[2]) и вектор n-й контрольной точки (cpMV[n-1]).In the present embodiment, the n checkpoint vectors can be expressed as the first checkpoint vector (cpMV[0]), the second checkpoint vector (cpMV[1]), the third checkpoint vector (cpMV[2]), and the nth checkpoint vector. points (cpMV[n-1]).

В качестве примера вектор первой контрольной точки (cpMV[0]), вектор второй контрольной точки (cpMV[1]), вектор третьей контрольной точки (cpMV[2]) и вектор четвертой контрольной точки (cpMV[3]) могут представлять собой векторы, соответствующие положениям верхней левой точки отсчета, верхней правой точки отсчета, нижней левой точки отсчета и нижней правой точки отсчета блока. В данном случае предполагается, что пространственный кандидат имеет три вектора контрольной точки, и три вектора контрольной точки могут представлять собой произвольные векторы контрольной точки, выбранные из векторов с первой по n-ую контрольных точек. Однако настоящее изобретение не ограничено этим, и пространственный кандидат может иметь два вектора контрольной точки, и два вектора контрольной точки могут представлять собой произвольные векторы контрольной точки, выбранные из векторов с первой по n-ую контрольных точек.As an example, the first checkpoint vector (cpMV[0]), the second checkpoint vector (cpMV[1]), the third checkpoint vector (cpMV[2]), and the fourth checkpoint vector (cpMV[3]) may be vectors , corresponding to the positions of the top left origin, top right origin, bottom left origin, and bottom right origin of the block. In this case, the spatial candidate is assumed to have three control point vectors, and the three control point vectors may be arbitrary control point vectors selected from the first to n-th control point vectors. However, the present invention is not limited to this, and the spatial candidate may have two checkpoint vectors, and the two checkpoint vectors may be arbitrary checkpoint vectors selected from the first to nth checkpoint vectors.

Далее будет описан способ получения вектора контрольной точки пространственного кандидата.Next, a method for obtaining a spatial candidate checkpoint vector will be described.

1. Когда граница текущего блока не касается границы CTU1. When the current block boundary does not touch the CTU boundary

Вектор первой контрольной точки может быть получен на основании по меньшей мере одного из вектора первой контрольной точки пространственного соседнего блока, заданного разностного значения и информации о положении (xCb, yCb) текущего блока или информации о положении (xNb, yNb) пространственного соседнего блока.The first breakpoint vector may be obtained based on at least one of the first breakpoint vector of the spatial neighbor block, the predetermined difference value, and position information (xCb, yCb) of the current block, or position information (xNb, yNb) of the spatial neighbor block.

Количество разностных значений может быть 1, 2, 3 или больше. Количество разностных значений может быть определено переменным образом с учетом атрибута вышеописанного блока или может представлять собой фиксированное значение, предварительно отправленное на устройство для декодирования. Разностное значение может быть определено как разностное значение между одним из множества векторов контрольной точки и другим из них. Например, разностное значение может включать по меньшей мере одно из первого разностного значения между вектором второй контрольной точки и вектором первой контрольной точки, второго разностного значения между вектором третьей контрольной точки и вектором первой контрольной точки, третьего разностного значения между вектором четвертой контрольной точки и вектором третьей контрольной точки или четвертое разностное значение между вектором четвертой контрольной точки и вектором второй контрольной точки.The number of difference values may be 1, 2, 3 or more. The number of delta values may be variably determined based on the attribute of the block described above, or may be a fixed value previously sent to the device for decoding. The delta value may be defined as the delta value between one of the plurality of checkpoint vectors and another of them. For example, the difference value may include at least one of a first difference between the second checkpoint vector and the first checkpoint vector, a second difference between the third checkpoint vector and the first checkpoint vector, a third difference between the fourth checkpoint vector and the third checkpoint vector. checkpoint, or the fourth difference between the fourth checkpoint vector and the second checkpoint vector.

Например, вектор первой контрольной точки может быть получен как в уравнении 1 ниже.For example, the vector of the first control point can be obtained as in Equation 1 below.

[Уравнение 1][Equation 1]

cpMvLX[0][0] = (mvScaleHor + dHorX*(xCb - xNb) + dHorY*(yCb - yNb))cpMvLX[0][0] = (mvScaleHor + dHorX*(xCb - xNb) + dHorY*(yCb - yNb))

cpMvLX[0][1] = (mvScaleVer + dVerX*(xCb - xNb) + dVerY*(yCb - yNb))cpMvLX[0][1] = (mvScaleVer + dVerX*(xCb - xNb) + dVerY*(yCb - yNb))

В уравнении 1 переменные mvScaleHor и mvScaleVer могут относиться к вектору первой контрольной точки пространственного соседнего блока или значению, полученному за счет применения вычисления со смещением на k к вектору первой контрольной точки. В данном случае k может представлять собой целое число: 1, 2, 3, 4, 5, 6, 7, 8, 9 или больше. Переменные dHorX и dVerX соответствуют компоненту x и компоненту y первого разностного значения между вектором второй контрольной точки и вектором первой контрольной точки, соответственно. Переменные dHorY и dVerY соответствуют компоненту x и компоненту y второго разностного значения между вектором третьей контрольной точки и вектором первой контрольной точки, соответственно. Вышеописанные переменные могут быть получены как в уравнении 2 ниже.In Equation 1, the variables mvScaleHor and mvScaleVer may refer to the vector of the first control point of the spatial neighbor block, or the value obtained by applying a k-offset calculation to the vector of the first control point. In this case, k may be an integer: 1, 2, 3, 4, 5, 6, 7, 8, 9 or more. The variables dHorX and dVerX correspond to the x component and y component of the first difference between the second control point vector and the first control point vector, respectively. The variables dHorY and dVerY correspond to the x component and the y component of the second difference between the third control point vector and the first control point vector, respectively. The variables described above can be obtained as in Equation 2 below.

[Уравнение 2][Equation 2]

mvScaleHor = CpMvLX[xNb][yNb][0][0] << 7mvScaleHor = CpMvLX[xNb][yNb][0][0] << 7

mvScaleVer = CpMvLX[xNb][yNb][0][1] << 7mvScaleVer = CpMvLX[xNb][yNb][0][1] << 7

dHorX = (CpMvLX[xNb + nNbW - 1][yNb][1][0] - CpMvLX[xNb][yNb][0][0]) << (7 - log2NbW)dHorX = (CpMvLX[xNb + nNbW - 1][yNb][1][0] - CpMvLX[xNb][yNb][0][0]) << (7 - log2NbW)

dVerX = (CpMvLX[xNb + nNbW - 1][yNb][1][1] - CpMvLX[xNb][yNb][0][1]) << (7 - log2NbW)dVerX = (CpMvLX[xNb + nNbW - 1][yNb][1][1] - CpMvLX[xNb][yNb][0][1]) << (7 - log2NbW)

dHorY = (CpMvLX[xNb][yNb + nNbH - 1][2][0] - CpMvLX[xNb][yNb][2][0]) << (7 - log2NbH)dHorY = (CpMvLX[xNb][yNb + nNbH - 1][2][0] - CpMvLX[xNb][yNb][2][0]) << (7 - log2NbH)

dVerY = (CpMvLX[xNb][yNb + nNbH - 1][2][1] - CpMvLX[xNb][yNb][2][1]) << (7 - log2NbH)dVerY = (CpMvLX[xNb][yNb + nNbH - 1][2][1] - CpMvLX[xNb][yNb][2][1]) << (7 - log2NbH)

Вектор второй контрольной точки может быть получен на основании по меньшей мере одного из вектора первой контрольной точки пространственного соседнего блока, заданного разностного значения, информации о положении (xCb, yCb) текущего блока, размера блока (ширины или высоты) или информации о положении (xNb, yNb) пространственного соседнего блока. В данном случае размер блока может относиться к размеру текущего блока и/или размеру пространственного соседнего блока. Разностное значение является таким же, как в описании вектора первой контрольной точки, вследствие чего его подробное описание будет опущено. Однако диапазон и/или количество разностных значений, используемых в процессе получения вектора второй контрольной точки, могут отличаться от таковых вектора первой контрольной точки.The second breakpoint vector may be obtained based on at least one of the first breakpoint vector of the spatial neighbor block, the predetermined difference value, the position information (xCb, yCb) of the current block, the block size (width or height), or the position information (xNb , yNb) spatial neighboring block. In this case, the block size may refer to the size of the current block and/or the size of the spatial neighboring block. The difference value is the same as in the description of the first control point vector, so its detailed description will be omitted. However, the range and/or number of deltas used in the process of deriving the second checkpoint vector may be different from those of the first checkpoint vector.

Например, вектор второй контрольной точки может быть получен как в уравнении 3 ниже.For example, the second control point vector can be obtained as in Equation 3 below.

[Уравнение 3][Equation 3]

cpMvLX[1][0] = (mvScaleHor + dHorX*(xCb + cbWidth - xNb) + dHorY*(yCb - yNb))cpMvLX[1][0] = (mvScaleHor + dHorX*(xCb + cbWidth - xNb) + dHorY*(yCb - yNb))

cpMvLX[1][1] = (mvScaleVer + dVerX*(xCb + cbWidth - xNb) + dVerY*(yCb - yNb))cpMvLX[1][1] = (mvScaleVer + dVerX*(xCb + cbWidth - xNb) + dVerY*(yCb - yNb))

В уравнении 3, переменные mvScaleHor, mvScaleVer, dHorX, dVerX, dHorY и dVerY являются такими, как описано в уравнении 1, вследствие чего их подробное описание будет опущено.In Equation 3, the variables mvScaleHor, mvScaleVer, dHorX, dVerX, dHorY, and dVerY are as described in Equation 1, so their detailed description will be omitted.

Вектор третьей контрольной точки может быть получен на основании по меньшей мере одного из вектора первой контрольной точки пространственного соседнего блока, заданного разностного значения, информации о положении (xCb, yCb) текущего блока, размера блока (ширины или высоты) или информации о положении (xNb, yNb) пространственного соседнего блока. В данном случае размер блока может относиться к размеру текущего блока и/или пространственного соседнего блока. Разностное значение является таким же, как в описании вектора первой контрольной точки, вследствие чего его подробное описание будет опущено. Однако диапазон и/или количество разностных значений, используемых в процессе получения вектора третьей контрольной точки, могут отличаться от таковых вектора первой контрольной точки или вектора второй контрольной точки.A third breakpoint vector may be obtained based on at least one of a first breakpoint vector of a spatial neighbor block, a predetermined difference value, position information (xCb, yCb) of the current block, block size (width or height), or position information (xNb , yNb) spatial neighboring block. In this case, the block size may refer to the size of the current block and/or the spatial neighboring block. The difference value is the same as in the description of the first control point vector, so its detailed description will be omitted. However, the range and/or number of deltas used in the process of deriving the third checkpoint vector may be different from those of the first checkpoint vector or the second checkpoint vector.

Например, вектор третьей контрольной точки может быть получен как в уравнении 4 ниже.For example, the third control point vector can be obtained as in Equation 4 below.

[Уравнение 4][Equation 4]

cpMvLX[2][0] = (mvScaleHor + dHorX*(xCb - xNb) + dHorY*(yCb + cbHeight - yNb))cpMvLX[2][0] = (mvScaleHor + dHorX*(xCb - xNb) + dHorY*(yCb + cbHeight - yNb))

cpMvLX[2][1] = (mvScaleVer + dVerX*(xCb - xNb) + dVerY*(yCb + cbHeight - yNb))cpMvLX[2][1] = (mvScaleVer + dVerX*(xCb - xNb) + dVerY*(yCb + cbHeight - yNb))

В уравнении 4, переменные mvScaleHor, mvScaleVer, dHorX, dVerX, dHorY и dVerY являются такими, как описано в уравнении 1, вследствие чего их подробное описание будет опущено. Между тем, посредством вышеописанного процесса может быть получен вектор n-й контрольной точки пространственного кандидата.In Equation 4, the variables mvScaleHor, mvScaleVer, dHorX, dVerX, dHorY, and dVerY are as described in Equation 1, so their detailed description will be omitted. Meanwhile, through the above-described process, the n-th checkpoint vector of the spatial candidate can be obtained.

2. Когда граница текущего блока касается границы CTU2. When the current block boundary touches the CTU boundary

Вектор первой контрольной точки может быть получен на основании по меньшей мере одного из вектора движения (MV) пространственного соседнего блока, заданного разностного значения, информации о положении (xCb, yCb) текущего блока или информации о положении (xNb, yNb) пространственного соседнего блока.The first reference point vector may be obtained based on at least one of a motion vector (MV) of a spatial neighbor block, a predetermined difference value, position information (xCb, yCb) of the current block, or position information (xNb, yNb) of the spatial neighbor block.

Вектор движения может представлять собой вектор движения подблока, расположенного на самой нижней стороне пространственного соседнего блока. Подблок может представлять собой подблок, расположенный левее всего, в центре или правее всего среди множества подблоков, расположенных на самой нижней стороне пространственного соседнего блока. Альтернативно вектор движения может означать среднее значение, максимальное значение или минимальное значение векторов движения подблока.The motion vector may be the motion vector of the sub-block located on the lowest side of the spatial neighboring block. A subblock may be the leftmost, centered, or rightmost subblock of the plurality of subblocks located on the lowest side of the spatial adjacent block. Alternatively, the motion vector may mean the average value, the maximum value, or the minimum value of the sub-block motion vectors.

Количество разностных значений может быть 1, 2, 3 или больше. Количество разностных значений может быть определено переменным образом с учетом атрибута вышеописанного блока или может представлять собой фиксированное значение, предварительно отправленное на устройство для декодирования. Разностное значение может быть определено как разностное значение между одним из множества векторов движения, хранящихся в элементах подблоков в пространственном соседнем блоке, и другим из них. Например, разностное значение может относиться к разностному значению между вектором движения нижнего правого подблока и вектором движения нижнего левого подблока пространственного соседнего блока.The number of difference values may be 1, 2, 3 or more. The number of delta values may be variably determined based on the attribute of the block described above, or may be a fixed value previously sent to the device for decoding. The difference value may be defined as the difference value between one of the plurality of motion vectors stored in the sub-block elements in the spatial neighbor block and another of them. For example, the difference value may refer to the difference value between the motion vector of the lower right sub-block and the motion vector of the lower left sub-block of the spatial neighboring block.

Например, вектор первой контрольной точки может быть получен как в уравнении 5 ниже.For example, the vector of the first control point can be obtained as in Equation 5 below.

[Уравнение 5][Equation 5]

cpMvLX[0][0] = (mvScaleHor + dHorX*(xCb - xNb) + dHorY*(yCb - yNb))cpMvLX[0][0] = (mvScaleHor + dHorX*(xCb - xNb) + dHorY*(yCb - yNb))

cpMvLX[0][1] = (mvScaleVer + dVerX*(xCb - xNb) + dVerY*(yCb - yNb))cpMvLX[0][1] = (mvScaleVer + dVerX*(xCb - xNb) + dVerY*(yCb - yNb))

В уравнении 5 переменные mvScaleHor и mvScaleVer могут относиться к вектору движения (MV) вышеописанного пространственного соседнего блока или значению, полученному за счет применения вычисления со смещением на k к вектору движения. В данном случае k может представлять собой целое число: 1, 2, 3, 4, 5, 6, 7, 8, 9 или больше.In Equation 5, the variables mvScaleHor and mvScaleVer may refer to the motion vector (MV) of the spatial neighbor block described above, or a value obtained by applying a k-offset calculation to the motion vector. In this case, k may be an integer: 1, 2, 3, 4, 5, 6, 7, 8, 9 or more.

Переменные dHorX и dVerX соответствуют компоненту x и компоненту y заданного разностного значения, соответственно. В данном случае разностное значение относится к разностному значению между вектором движения нижнего правого подблока и вектором движения нижнего левого подблока в пространственном соседнем блоке. Переменные dHorY и dVerY могут быть получены на основании переменных dHorX и dVerX. Вышеописанные переменные могут быть получены как в уравнении 6 ниже.The variables dHorX and dVerX correspond to the x component and the y component of the given difference value, respectively. Here, the difference value refers to a difference value between the motion vector of the lower right sub-block and the motion vector of the lower left sub-block in the spatial adjacent block. The variables dHorY and dVerY can be derived from the variables dHorX and dVerX. The variables described above can be obtained as in Equation 6 below.

[Уравнение 6][Equation 6]

mvScaleHor = MvLX[xNb][yNb + nNbH - 1][0] << 7mvScaleHor = MvLX[xNb][yNb + nNbH - 1][0] << 7

mvScaleVer = MvLX[xNb][yNb + nNbH - 1][1] << 7mvScaleVer = MvLX[xNb][yNb + nNbH - 1][1] << 7

dHorX = (MvLX[xNb + nNbW - 1][yNb + nNbH - 1][0] - MvLX[xNb][yNb + nNbH - 1][0]) << (7 - log2NbW)dHorX = (MvLX[xNb + nNbW - 1][yNb + nNbH - 1][0] - MvLX[xNb][yNb + nNbH - 1][0]) << (7 - log2NbW)

dVerX = (MvLX[xNb + nNbW - 1][yNb + nNbH - 1][1] - MvLX[xNb][yNb + nNbH - 1][1]) << (7 - log2NbW)dVerX = (MvLX[xNb + nNbW - 1][yNb + nNbH - 1][1] - MvLX[xNb][yNb + nNbH - 1][1]) << (7 - log2NbW)

dHorY = -dVerXdHorY=-dVerX

dVerY = dHorXdVerY = dHorX

Вектор второй контрольной точки может быть получен на основании по меньшей мере одного из вектора движения (MV) пространственного соседнего блока, заданного разностного значения, информации о положении (xCb, yCb) текущего блока, размера блока (ширины или высоты) или информации о положении (xNb, yNb) пространственного соседнего блока. В данном случае размер блока может относиться к размеру текущего блока и/или пространственного соседнего блока. Вектор движения и разностное значение являются такими же, как в описании вектора первой контрольной точки, вследствие чего их подробное описание будет опущено. Однако положение вектора движения, диапазон и/или количество разностных значений, используемых в процессе получения вектора второй контрольной точки, могут отличаться от таковых вектора первой контрольной точки.The second reference point vector may be obtained based on at least one of a motion vector (MV) of a spatial neighbor block, a predetermined difference value, position information (xCb, yCb) of the current block, a block size (width or height), or position information ( xNb, yNb) spatial neighboring block. In this case, the block size may refer to the size of the current block and/or the spatial neighboring block. The motion vector and the difference value are the same as in the description of the first reference point vector, so their detailed description will be omitted. However, the motion vector position, range, and/or number of deltas used in the process of deriving the second breakpoint vector may be different from those of the first breakpoint vector.

Например, вектор второй контрольной точки может быть получен как в уравнении 7 ниже.For example, the second control point vector can be obtained as in Equation 7 below.

[Уравнение 7][Equation 7]

cpMvLX[1][0] = (mvScaleHor + dHorX*(xCb + cbWidth - xNb) + dHorY*(yCb - yNb))cpMvLX[1][0] = (mvScaleHor + dHorX*(xCb + cbWidth - xNb) + dHorY*(yCb - yNb))

cpMvLX[1][1] = (mvScaleVer + dVerX*(xCb + cbWidth - xNb) + dVerY*(yCb - yNb))cpMvLX[1][1] = (mvScaleVer + dVerX*(xCb + cbWidth - xNb) + dVerY*(yCb - yNb))

В уравнении 7, переменные mvScaleHor, mvScaleVer, dHorX, dVerX, dHorY и dVerY являются такими, как описано в уравнении 5, и их подробное описание будет опущено.In Equation 7, the variables mvScaleHor, mvScaleVer, dHorX, dVerX, dHorY, and dVerY are as described in Equation 5, and their detailed description will be omitted.

Вектор третьей контрольной точки может быть получен на основании по меньшей мере одного из вектора движения (MV) пространственного соседнего блока, заданного разностного значения, информации о положении (xCb, yCb) текущего блока, размера блока (ширины или высоты) или информации о положении (xNb, yNb) пространственного соседнего блока. В данном случае размер блока может относиться к размеру текущего блока и/или пространственного соседнего блока. Вектор движения и разностное значение являются такими же, как в описании вектора первой контрольной точки, вследствие чего их подробное описание будет опущено. Однако положение вектора движения, а также диапазон и/или количество разностных значений, используемых в процессе получения вектора третьей контрольной точки, могут отличаться от таковых вектора первой контрольной точки или вектора второй контрольной точки.A third reference point vector may be obtained based on at least one of a motion vector (MV) of a spatial neighboring block, a predetermined difference value, position information (xCb, yCb) of the current block, a block size (width or height), or position information ( xNb, yNb) spatial neighboring block. In this case, the block size may refer to the size of the current block and/or the spatial neighboring block. The motion vector and the difference value are the same as in the description of the first reference point vector, so their detailed description will be omitted. However, the position of the motion vector and the range and/or number of deltas used in the process of deriving the third breakpoint vector may be different from those of the first breakpoint vector or the second breakpoint vector.

Например, вектор третьей контрольной точки может быть получен как в уравнении 8 ниже.For example, the third control point vector can be obtained as in Equation 8 below.

[Уравнение 8][Equation 8]

cpMvLX[2][0] = (mvScaleHor + dHorX*(xCb - xNb) + dHorY*(yCb + cbHeight - yNb))cpMvLX[2][0] = (mvScaleHor + dHorX*(xCb - xNb) + dHorY*(yCb + cbHeight - yNb))

cpMvLX[2][1] = (mvScaleVer + dVerX*(xCb - xNb) + dVerY*(yCb + cbHeight - yNb))cpMvLX[2][1] = (mvScaleVer + dVerX*(xCb - xNb) + dVerY*(yCb + cbHeight - yNb))

В уравнении 8, переменные mvScaleHor, mvScaleVer, dHorX, dVerX, dHorY и dVerY являются такими, как описано в уравнении 5, и их подробное описание будет опущено. Между тем, посредством вышеописанного процесса может быть получен вектор n-й контрольной точки пространственного кандидата.In Equation 8, the variables mvScaleHor, mvScaleVer, dHorX, dVerX, dHorY, and dVerY are as described in Equation 5, and their detailed description will be omitted. Meanwhile, through the above-described process, the n-th checkpoint vector of the spatial candidate can be obtained.

Вышеописанный процесс получения аффинного кандидата может выполняться для каждого из предварительно определенных пространственных соседних блоков. Предварительно определенные пространственные соседние блоки могут включать по меньшей мере один из левого блока, нижнего левого блока, верхнего правого блока, верхнего блока или верхнего левого блока текущего блока.The above-described affine candidate derivation process may be performed for each of the predetermined spatial neighbor blocks. The predefined spatial neighbor blocks may include at least one of the left block, bottom left block, top right block, top block, or top left block of the current block.

Альтернативно процесс получения аффинного кандидата может быть выполнен для каждой группы пространственных соседних блоков. В данном случае пространственные соседние блоки могут быть классифицированы на первую группу, содержащую левый блок и нижний левый блок, и вторую группу, содержащую верхний правый блок, верхний блок и верхний левый блок.Alternatively, the process of obtaining an affine candidate may be performed for each group of spatial neighboring blocks. In this case, the spatial neighbor blocks can be classified into a first group containing a left block and a lower left block, and a second group containing a top right block, a top block, and an upper left block.

Например, один аффинный кандидат может быть получен из пространственного соседнего блока, принадлежащего к первой группе. Получение может выполняться до тех пор, пока не будет найден доступный аффинный кандидат на основании заданного приоритета. Приоритет может представлять собой следующий порядок: левый блок -> нижний левый блок, или обратный порядок. Согласно приоритету определяется, является ли соответствующий пространственный соседний блок в первой группе блоком, декодированным посредством предсказания на основе аффинной модели, и блок, первым декодированный посредством предсказания на основе аффинной модели, может быть выбран в качестве аффинного кандидата.For example, one affine candidate may be derived from a spatial neighbor block belonging to the first group. The derivation may be performed until an available affine candidate is found based on the given priority. The priority can be the following order: left block -> bottom left block, or the reverse order. According to the priority, it is determined whether the corresponding spatial neighbor block in the first group is a block decoded by affine model prediction, and the block first decoded by affine model prediction can be selected as an affine candidate.

Аналогично, один аффинный кандидат может быть получен из пространственного соседнего блока, принадлежащего ко второй группе. Получение может выполняться до тех пор, пока не будет найден доступный аффинный кандидат на основании заданного приоритета. Приоритет может быть в следующем порядке: верхний правый блок -> верхний блок -> верхний левый блок, или в обратном порядке. Согласно приоритету определяется, является ли соответствующий пространственный соседний блок во второй группе блоком, декодированным посредством предсказания на основе аффинной модели, и блок, первым декодированный посредством предсказания на основе аффинной модели, может быть выбран в качестве аффинного кандидата.Similarly, one affine candidate can be obtained from a spatial neighbor block belonging to the second group. The derivation may be performed until an available affine candidate is found based on the given priority. The priority can be in the following order: top right block -> top block -> top left block, or vice versa. According to the priority, it is determined whether the corresponding spatial neighbor block in the second group is a block decoded by affine model prediction, and the block first decoded by affine model prediction can be selected as an affine candidate.

Вышеописанный вариант осуществления может применяться таким же/аналогичным образом к временному соседнему блоку. В данном случае временной соседний блок принадлежит к изображению, отличающемуся от изображения текущего блока, и может представлять собой блок в том же положении, что и текущий блок. Блок в том же положении может представлять собой блок, имеющий положение верхней левой точки отсчета текущего блока, центральное положение или положение точки отсчета, смежной с нижней правой точкой отсчета текущего блока.The above-described embodiment can be applied in the same/similar manner to the temporary neighbor block. In this case, the temporary neighbor block belongs to an image different from the image of the current block, and may be a block at the same position as the current block. A block at the same position may be a block having the position of the top left origin of the current block, a center position, or a position of an origin adjacent to the bottom right origin of the current block.

Альтернативно временной соседний блок может означать блок в положении, смещенном на заданный вектор диспаратности от блока в том же положении. В данном случае вектор диспаратности может быть определен на основании вектора движения любого из пространственных соседних блоков текущего блока, описанных выше.Alternatively, a temporal adjacent block may mean a block at a position offset by a given disparity vector from a block at the same position. In this case, the disparity vector may be determined based on the motion vector of any of the spatial neighboring blocks of the current block described above.

На фиг. 9 изображен способ получения настроенного кандидата на основании комбинации векторов движения пространственных/временных соседних блоков в варианте осуществления, к которому применяется настоящее изобретение.In FIG. 9 shows a method for deriving a tuned candidate based on a combination of motion vectors of space/time neighboring blocks in an embodiment to which the present invention is applied.

Настроенный кандидат согласно настоящему изобретению может быть получен на основании комбинации по меньшей мере двух векторов контрольной точки (далее называемых векторами контрольной точки (cpMVCorner[n])), соответствующих каждому углу текущего блока. В данном случае n может представлять собой 0, 1, 2 или 3.A customized candidate according to the present invention can be obtained based on a combination of at least two checkpoint vectors (hereinafter referred to as checkpoint vectors (cpMVCorner[n])) corresponding to each corner of the current block. In this case, n may be 0, 1, 2, or 3.

Вектор контрольной точки cPMVCorner[n] может быть получен на основании вектора движения пространственного соседнего блока и/или временного соседнего блока. В данном случае пространственный соседний блок может включать по меньшей мере один из первого соседнего блока A, B или C, смежного с верхней левой точкой отсчета текущего блока, второго соседнего блока D или E, смежного с верхней правой точкой отсчета текущего блока, или третьего соседнего блока F или G, смежного с нижней левой точкой отсчета текущего блока. Временной соседний блок представляет собой блок, принадлежащий к изображению, отличающемуся от изображения текущего блока, и может относиться к блоку в том же положении, что и текущий блок (далее называемый четвертым соседним блоком Col). В данном случае четвертый соседний блок может относиться к блоку (H, I или J), имеющему положение верхней левой точки отсчета, верхней правой точки отсчета или нижней левой точки отсчета текущего блока, или блоку, смежному с положением нижней правой точки отсчета текущего блока.The checkpoint vector cPMVCorner[n] may be derived based on the motion vector of the spatial neighbor block and/or the temporal neighbor block. In this case, the spatial neighbor block may include at least one of a first neighbor block A, B, or C adjacent to the top left anchor of the current block, a second neighbor D or E adjacent to the top right anchor of the current block, or a third neighbor. block F or G adjacent to the lower left origin of the current block. The temporal adjacent block is a block belonging to an image different from the image of the current block and may refer to a block at the same position as the current block (hereinafter referred to as the fourth adjacent block Col). In this case, the fourth adjacent block may refer to a block (H, I, or J) having the position of the top left origin, top right origin, or bottom left origin of the current block, or a block adjacent to the position of the bottom right origin of the current block.

Первый соседний блок может относиться к верхнему левому (A), верхнему (B) или левому (C) соседнему блоку текущего блока. Определяется, доступны ли векторы движения соседних блоков A, B и C согласно заданному приоритету, и вектор контрольной точки может быть определен с использованием доступных векторов движения соседних блоков. Определение доступности может выполняться до тех пор, пока не будет найден соседний блок, имеющий доступный вектор движения. В данном случае приоритет может быть в следующем порядке: A -> B -> C. Однако настоящее изобретение не ограничено этим, и порядок может быть следующим: A -> C -> B, C -> A -> B или B -> A -> C.The first adjacent block may refer to the top left (A), top (B), or left (C) adjacent block of the current block. It is determined whether the motion vectors of neighboring blocks A, B, and C are available according to the given priority, and the reference point vector can be determined using the available motion vectors of neighboring blocks. The availability determination may be performed until a neighboring block is found that has an available motion vector. In this case, the priority may be in the following order: A -> B -> C. However, the present invention is not limited to this, and the order may be: A -> C -> B, C -> A -> B or B -> A -> C.

Второй соседний блок может относиться к верхнему (D) или верхнему правому (E) соседнему блоку текущего блока. Аналогично можно определить, доступны ли векторы движения соседних блоков D и E согласно заданному приоритету, и определить вектор контрольной точки с использованием доступных векторов движения соседних блоков. Определение доступности может выполняться до тех пор, пока не будет найден соседний блок, имеющий доступный вектор движения. В данном случае приоритет может быть в следующем порядке: D -> E, или в следующем порядке: E -> D.The second neighbor block may refer to the top (D) or top right (E) neighbor block of the current block. Similarly, it can be determined whether motion vectors of adjacent blocks D and E are available according to a given priority, and a checkpoint vector can be determined using the available motion vectors of neighboring blocks. The availability determination may be performed until a neighboring block is found that has an available motion vector. In this case, the priority can be in the following order: D -> E, or in the following order: E -> D.

Третий соседний блок может относиться к левому (F) или нижнему левому (G) соседнему блоку текущего блока. Аналогично можно определить, является ли доступным вектор движения соседнего блока согласно заданному приоритету, и определить вектор контрольной точки с использованием доступного вектора движения соседнего блока. Определение доступности может выполняться до тех пор, пока не будет найден соседний блок, имеющий доступный вектор движения. В данном случае приоритет может быть в следующем порядке: G -> F, или в следующем порядке: F -> G.The third adjacent block may refer to the left (F) or bottom left (G) adjacent block of the current block. Similarly, it can be determined whether a motion vector of a neighboring block is available according to a given priority, and a checkpoint vector can be determined using the available motion vector of a neighboring block. The availability determination may be performed until a neighboring block is found that has an available motion vector. In this case, the priority can be in the following order: G -> F, or in the following order: F -> G.

Например, вектор первой контрольной точки (cpMVCorner[0]) может быть установлен как вектор движения первого соседнего блока, вектор второй контрольной точки (cpMVCorner[1]) может быть установлен как вектор движения второго соседнего блока и вектор третьей контрольной точки cpMVCorner[2] может быть установлен как вектор движения третьего соседнего блока. Вектор четвертой контрольной точки cpMVCorner[3] может быть установлен как вектор движения четвертого соседнего блока.For example, the first breakpoint vector (cpMVCorner[0]) can be set to the first neighbor block motion vector, the second breakpoint vector (cpMVCorner[1]) can be set to the second neighbor block motion vector, and the third breakpoint vector cpMVCorner[2] can be set as the motion vector of the third neighboring block. The fourth breakpoint vector cpMVCorner[3] may be set as the motion vector of the fourth neighbor block.

Альтернативно вектор первой контрольной точки может быть получен с использованием вектора движения по меньшей мере одного из первого соседнего блока или четвертого соседнего блока, причем четвертый соседний блок может представлять собой блок H, имеющий положение верхней левой точки отсчета. Вектор второй контрольной точки может быть получен с использованием вектора движения по меньшей мере одного из второго соседнего блока или четвертого соседнего блока. В данном случае четвертый соседний блок может представлять собой блок I, имеющий положение верхней правой точки отсчета. Вектор третьей контрольной точки может быть получен с использованием вектора движения по меньшей мере одного из третьего соседнего блока или четвертого соседнего блока. В данном случае четвертый соседний блок может представлять собой блок J, имеющий положение нижней левой точки отсчета.Alternatively, the first checkpoint vector may be derived using a motion vector of at least one of the first neighbor block or the fourth neighbor block, where the fourth neighbor block may be an H block having an upper left datum position. The second reference point vector may be obtained using the motion vector of at least one of the second neighboring block or the fourth neighboring block. In this case, the fourth adjacent block may be an I block having an upper right reference position. The third reference point vector may be obtained using the motion vector of at least one of the third neighboring block or the fourth neighboring block. In this case, the fourth adjacent block may be a J block having a lower left reference position.

Альтернативно любой из векторов с первой по четвертую контрольных точек может быть получен на основании другого. Например, вектор второй контрольной точки может быть получен за счет применения заданного вектора сдвига к вектору первой контрольной точки. Вектор сдвига может представлять собой разностный вектор между вектором третьей контрольной точки и вектором первой контрольной точки, или он может быть получен за счет применения заданного коэффициента масштабирования к разностному вектору. Коэффициент масштабирования может быть определен на основании по меньшей мере одного из ширины или высоты текущего блока и/или соседнего блока.Alternatively, any of the first to fourth checkpoint vectors may be derived from the other. For example, the second control point vector can be obtained by applying a given shift vector to the first control point vector. The shift vector may be a difference vector between the third breakpoint vector and the first checkpoint vector, or it can be obtained by applying a predetermined scaling factor to the difference vector. The scaling factor may be determined based on at least one of the width or height of the current block and/or a neighboring block.

Посредством комбинации по меньшей мере двух из векторов с первой по четвертую контрольных точек, описанных выше, могут быть определены K настроенных кандидатов ConstK согласно настоящему изобретению. Значение K может представлять собой целое число: 1, 2, 3, 4, 5, 6, 7 или больше. Значение K может быть получено на основании информации, переданной посредством устройства для кодирования, или может представлять собой значение, предварительно отправленное на устройство для декодирования. Информация может включать информацию, указывающую максимальное количество настроенных кандидатов, включенных в список кандидатов.By combining at least two of the first to fourth checkpoint vectors described above, K tuned ConstK candidates according to the present invention can be determined. The value of K may be an integer: 1, 2, 3, 4, 5, 6, 7 or more. The value of K may be obtained based on information transmitted by the encoder, or may be a value previously sent to the decoder. The information may include information indicating the maximum number of customized candidates included in the list of candidates.

В частности, первый настроенный кандидат Const1 может быть получен за счет комбинирования векторов с первой по третью контрольных точек. Например, первый настроенный кандидат Const1 может иметь вектор контрольной точки, как показано в таблице 4 ниже. Между тем, только когда информация об опорном изображении первого соседнего блока такая же, как информация об опорном изображении второго и третьего соседних блоков, вектор контрольной точки может быть ограничен конфигурацией, показанной в таблице 4. В данном случае информация об опорном изображении может относиться к индексу опорного изображения, указывающему положение соответствующего опорного изображения в списке опорных изображений, или может относиться к значению порядкового номера изображения (POC), указывающему порядок вывода.In particular, the first tuned candidate Const1 can be obtained by combining the vectors from the first to the third control points. For example, the first Const1 candidate configured could have a checkpoint vector as shown in Table 4 below. Meanwhile, only when the reference image information of the first neighboring block is the same as the reference image information of the second and third neighboring blocks, the checkpoint vector may be limited to the configuration shown in Table 4. In this case, the reference image information may refer to the index a reference picture indicating the position of the corresponding reference picture in the reference picture list, or may refer to a picture sequence number (POC) value indicating the output order.

[Таблица 4][Table 4]

Figure 00000004
Figure 00000004

Второй настроенный кандидат Const2 может быть получен за счет комбинирования векторов первой, второй и четвертой контрольных точек. Например, второй настроенный кандидат Const2 может иметь вектор контрольной точки, как показано в таблице 5 ниже. Между тем, только когда информация об опорном изображении первого соседнего блока такая же, как информация об опорном изображении второго и четвертого соседних блоков, вектор контрольной точки может быть ограничен конфигурацией, показанной в таблице 5. В данном случае информация об опорном изображении такая, как описано выше.A second tuned Const2 candidate can be obtained by combining the vectors of the first, second, and fourth control points. For example, the second configured Const2 candidate could have a checkpoint vector as shown in Table 5 below. Meanwhile, only when the reference image information of the first neighboring block is the same as the reference image information of the second and fourth neighboring blocks, the checkpoint vector can be limited to the configuration shown in Table 5. In this case, the reference image information is as described higher.

[Таблица 5][Table 5]

Figure 00000005
Figure 00000005

Третий настроенный кандидат Const3 может быть получен за счет комбинирования векторов первой, третьей и четвертой контрольных точек. Например, третий настроенный кандидат Const3 может иметь вектор контрольной точки, как показано в таблице 6 ниже. Между тем, только когда информация об опорном изображении первого соседнего блока такая же, как информация об опорном изображении третьего и четвертого соседних блоков, вектор контрольной точки может быть ограничен конфигурацией, показанной в таблице 6. В данном случае информация об опорном изображении такая, как описано выше.A third tuned Const3 candidate can be obtained by combining the vectors of the first, third, and fourth control points. For example, a third configured Const3 candidate could have a checkpoint vector as shown in Table 6 below. Meanwhile, only when the reference image information of the first neighboring block is the same as the reference image information of the third and fourth neighboring blocks, the checkpoint vector can be limited to the configuration shown in Table 6. In this case, the reference image information is as described higher.

[Таблица 6][Table 6]

Figure 00000006
Figure 00000007
Figure 00000006
Figure 00000007

Четвертый настроенный кандидат Const4 может быть получен за счет комбинирования векторов второй, третьей и четвертой контрольных точек. Например, четвертый настроенный кандидат Const4 может иметь вектор контрольной точки, как показано в таблице 7 ниже. Между тем, только когда информация об опорном изображении второго соседнего блока такая же, как информация об опорном изображении третьего и четвертого соседних блоков, конфигурация может быть ограничена так, как показано в таблице 7. В данном случае информация об опорном изображении такая, как описано выше.A fourth tuned Const4 candidate can be obtained by combining the second, third, and fourth control point vectors. For example, a fourth configured Const4 candidate could have a checkpoint vector as shown in Table 7 below. Meanwhile, only when the reference image information of the second neighboring block is the same as the reference image information of the third and fourth neighboring blocks, the configuration can be restricted as shown in Table 7. In this case, the reference image information is as described above. .

[Таблица 7][Table 7]

Figure 00000008
Figure 00000008

Пятый настроенный кандидат Const5 может быть получен за счет комбинирования векторов первой и второй контрольных точек. Например, пятый настроенный кандидат Const5 может иметь вектор контрольной точки, как показано в таблице 8 ниже. Между тем, только когда информация об опорном изображении первого соседнего блока такая же, как информация об опорном изображении второго соседнего блока, вектор контрольной точки может быть ограничен конфигурацией, показанной в таблице 8. В данном случае информация об опорном изображении такая, как описано выше.A fifth tuned candidate, Const5, can be obtained by combining the vectors of the first and second control points. For example, a fifth configured Const5 candidate could have a checkpoint vector as shown in Table 8 below. Meanwhile, only when the reference image information of the first neighbor block is the same as the reference image information of the second neighbor block, the checkpoint vector can be limited to the configuration shown in Table 8. In this case, the reference image information is as described above.

[Таблица 8][Table 8]

Figure 00000009
Figure 00000009

Шестой настроенный кандидат Const6 может быть получен за счет комбинирования векторов первой и третьей контрольных точек. Например, шестой настроенный кандидат Const6 может иметь вектор контрольной точки, как показано в таблице 9 ниже. Между тем, только когда информация об опорном изображении первого соседнего блока такая же, как информация об опорном изображении третьего соседнего блока, вектор контрольной точки может быть ограничен конфигурацией, показанной в таблице 9. В данном случае информация об опорном изображении такая, как описано выше.A sixth tuned Const6 candidate can be obtained by combining the vectors of the first and third control points. For example, the sixth configured Const6 candidate could have a checkpoint vector as shown in Table 9 below. Meanwhile, only when the reference image information of the first neighbor block is the same as the reference image information of the third neighbor block, the checkpoint vector can be limited to the configuration shown in Table 9. In this case, the reference image information is as described above.

[Таблица 9][Table 9]

Figure 00000010
Figure 00000010

В таблице 9 cpMVCorner[1] может представлять собой вектор второй контрольной точки, полученный на основании векторов первой и третьей контрольных точек. Вектор второй контрольной точки может быть получен на основании по меньшей мере одного из вектора первой контрольной точки, заданного разностного значения или размера текущего/соседнего блока. Например, вектор второй контрольной точки может быть получен как в уравнении 9 ниже.In Table 9, cpMVCorner[1] may be a second checkpoint vector derived from the first and third checkpoint vectors. The second checkpoint vector may be derived based on at least one of the first checkpoint vector, a predetermined delta value, or the current/adjacent block size. For example, the second control point vector can be obtained as in Equation 9 below.

[Уравнение 9][Equation 9]

cpMvCorner[1][0] = (cpMvCorner[0][0] << 7) + ((cpMvCorner[2][1] - cpMvCorner[0][1]) << (7 + Log2(cbHeight/cbWidth)))cpMvCorner[1][0] = (cpMvCorner[0][0] << 7) + ((cpMvCorner[2][1] - cpMvCorner[0][1]) << (7 + Log2(cbHeight/cbWidth) ))

cpMvCorner[1][1] = (cpMvCorner[0][1] << 7) + ((cpMvCorner[2][0] - cpMvCorner[0][0]) << (7 + Log2(cbHeight/cbWidth)))cpMvCorner[1][1] = (cpMvCorner[0][1] << 7) + ((cpMvCorner[2][0] - cpMvCorner[0][0]) << (7 + Log2(cbHeight/cbWidth) ))

В вышеописанных K настроенных кандидатах ConstK значение K не ограничивает положение или приоритет настроенных кандидатов, расположенных в списке кандидатов.In the above-described K customized candidates ConstK, the value of K does not restrict the position or priority of the customized candidates located in the list of candidates.

Кроме того, все из настроенных кандидатов с первого по шестой могут быть включены в список кандидатов или только некоторые из кандидатов могут быть включены в список кандидатов.In addition, all of the configured first to sixth candidates may be included in the candidate list, or only some of the candidates may be included in the candidate list.

Например, когда определяется, что текущий блок использует три вектора контрольной точки, может использоваться только настроенный кандидат, сгенерированный посредством комбинации трех из векторов с первой по четвертую контрольных точек. Когда определяется, что текущий блок использует два вектора контрольной точки, может использоваться настроенный кандидат, сгенерированный посредством комбинации по меньшей мере двух из векторов с первой по четвертую контрольных точек или может использоваться настроенный кандидат, сгенерированный посредством комбинации только двух из векторов с первой по четвертую контрольных точек.For example, when it is determined that the current block uses three checkpoint vectors, only the tuned candidate generated by the combination of three of the first to fourth checkpoint vectors may be used. When it is determined that the current block uses two checkpoint vectors, a customized candidate generated by a combination of at least two of the first to fourth checkpoint vectors may be used, or a customized candidate generated by a combination of only two of the first to fourth checkpoint vectors may be used. points.

Альтернативно только некоторые настроенные кандидаты могут быть включены в список кандидатов с учетом максимального количества аффинных кандидатов, включенных в список кандидатов. В данном случае максимальное количество может быть определено на основании информации о максимальном количестве, переданной посредством устройства для кодирования, или может быть определено переменным образом с учетом вышеописанного атрибута текущего блока. В этом случае значение K настроенного кандидата ConstK может означать приоритет, подлежащий введению в список кандидатов.Alternatively, only some of the tuned candidates may be included in the candidate list, given the maximum number of affine candidates included in the candidate list. In this case, the maximum number may be determined based on the maximum number information transmitted by the encoder, or may be determined variably based on the above-described attribute of the current block. In this case, the value K of the configured candidate ConstK may indicate the priority to be entered in the list of candidates.

Между тем, когда разностное значение между двумя векторами контрольной точки, принадлежащими к настроенному кандидату, меньше заданного порогового значения, настроенный кандидат может не вводиться в список кандидатов. Разностное значение между двумя векторами контрольной точки может быть разделено на разностное значение в горизонтальном направлении и разностное значение в вертикальном направлении. В данном случае разностное значение в горизонтальном направлении может относиться к разностному значению между вектором 910 первой контрольной точки и вектором 920 второй контрольной точки и может относиться к разностному значению между вектором 910 первой контрольной точки и вектором 930 третьей контрольной точки. Пороговое значение может относиться к 0 или вектору, имеющему величину, предварительно отправленную на устройство для кодирования/декодирования.Meanwhile, when the difference between two checkpoint vectors belonging to the tuned candidate is less than a predetermined threshold, the tuned candidate may not be entered into the candidate list. The difference value between the two reference point vectors can be divided into a difference value in the horizontal direction and a difference value in the vertical direction. Here, the difference value in the horizontal direction may refer to the difference value between the first breakpoint vector 910 and the second breakpoint vector 920, and may refer to the difference between the first breakpoint vector 910 and the third breakpoint vector 930. The threshold value may refer to 0 or a vector having a value previously sent to the device for encoding/decoding.

На фиг. 10 представлена схема, изображающая способ получения информации о движении временного кандидата на основе подблоков в качестве варианта осуществления, к которому применяется настоящее изобретение.In FIG. 10 is a diagram showing a sub-block-based temporal candidate motion information acquisition method as an embodiment to which the present invention is applied.

Информация о движении временного кандидата согласно настоящему изобретению может быть получена из информации о движении совмещаемого блока. Информация о движении может быть получена в элементах подблоков.The motion information of the temporal candidate according to the present invention can be obtained from the motion information of the co-located block. Motion information can be obtained in subblock elements.

В данном случае совмещаемый блок представляет собой блок, принадлежащий к изображению, отличающемуся от изображения текущего блока 1010 (то есть совмещаемого изображения), и может представлять собой блок 1040 в том же положении, что и текущий блок, или блок 1030 в положении, смещенном на временной вектор от положения текущего блока. Временной вектор может быть определен на основании вектора движения пространственного соседнего блока текущего блока. Пространственный соседний блок может относиться к по меньшей мере одному из левого, нижнего левого, верхнего, верхнего правого или верхнего левого соседнего блока текущего блока. Временной вектор может быть определен с использованием только соседнего блока в положении, предварительно отправленном на устройство для кодирования/декодирования. Например, предварительно отправленное положение может представлять собой левую сторону 1011 или верхнюю сторону 1012 и может представлять собой левую сторону 1011 и верхнюю сторону 1012. Когда имеется множество соседних блоков на левой стороне, можно использовать блок, расположенный на одном из самой нижней стороны, самой верхней стороны или в центре среди множества соседних блоков. Когда имеется множество соседних блоков на верхней стороне, можно использовать блок, расположенный на одном из самой левой стороны, самой правой стороны или в центре среди множества соседних блоков.In this case, the alignment block is a block belonging to an image different from the image of the current block 1010 (i.e., the alignment image), and may be a block 1040 at the same position as the current block, or a block 1030 at a position shifted by a time vector from the position of the current block. The temporal vector may be determined based on the motion vector of the spatial neighboring block of the current block. The spatial neighbor block may refer to at least one of the left, bottom left, top, top right, or top left neighbors of the current block. The time vector may be determined using only the adjacent block at the position previously sent to the encoder/decoder. For example, the pre-sent position may be the left side 1011 or the top side 1012, and may be the left side 1011 and the top side 1012. sides or in the center among many neighboring blocks. When there are a plurality of neighboring blocks on the top side, a block located on one of the leftmost side, the rightmost side, or in the center among the plurality of neighboring blocks can be used.

При получении временного кандидата на основе подблоков текущий блок и/или совмещаемый блок может быть разбит на множество подблоков.When obtaining a sub-block-based provisional candidate, the current block and/or the overlapping block may be split into a plurality of sub-blocks.

В данном случае подблок может иметь фиксированные размер/форму, предварительно отправленные на устройство для кодирования/декодирования. Например, подблок представлен блоком NxM, и значения N и M могут быть целыми числами: 4, 8 или больше. Подблок может представлять собой квадрат (N = M) или прямоугольник (N > M, N < M). Он может означать размер. Альтернативно устройство для кодирования может кодировать и передавать информацию о размере/форме подблока, и устройство для декодирования может определять размер/форму подблока на основании переданной информации.In this case, the subblock may have a fixed size/shape previously sent to the device for encoding/decoding. For example, a subblock is represented by an NxM block, and the values of N and M can be integers: 4, 8, or greater. A subblock can be a square (N = M) or a rectangle (N > M, N < M). It can mean size. Alternatively, the encoding device may encode and transmit sub-block size/shape information, and the decoding device may determine the sub-block size/shape based on the transmitted information.

Альтернативно текущий блок и/или совмещаемый блок может быть разбит на множество подблоков на основании заданного количества. В данном случае количество может представлять собой фиксированное количество, предварительно отправленное на устройство для кодирования/декодирования, или может быть определено переменным образом с учетом размера/формы блока. Альтернативно количество может быть определено на основании информации о количестве, переданной посредством устройства для кодирования.Alternatively, the current block and/or the overlapping block may be split into a plurality of sub-blocks based on a predetermined number. In this case, the number may be a fixed number previously sent to the encoder/decoder, or may be variably determined based on the size/shape of the block. Alternatively, the amount may be determined based on the amount information transmitted by the encoder.

Далее будет исследован способ получения информации о движении временного кандидата в элементах подблоков. Вектор движения временного кандидата может быть установлен как вектор движения, хранящийся для каждого подблока совмещаемого блока. Индекс опорного изображения временного кандидата может быть установлен равным значению (например, 0), предварительно определенному в устройстве для кодирования/декодирования. Альтернативно индекс опорного изображения временного кандидата может быть установлен как индекс опорного изображения совмещаемого блока или индекс опорного изображения верхнего левого подблока среди подблоков. Альтернативно, аналогично вектору движения индекс опорного изображения временного кандидата может быть установлен как индекс опорного изображения, хранящийся для каждого подблока.Next, a method for obtaining information about the movement of a temporary candidate in the elements of sub-blocks will be investigated. The motion vector of the temporal candidate may be set as the motion vector stored for each sub-block of the matching block. The temporal candidate reference picture index may be set to a value (eg, 0) predetermined in the encoding/decoding device. Alternatively, the index of the reference picture of the temporary candidate may be set to the reference picture index of the matching block or the reference picture index of the upper left sub-frame among the sub-frames. Alternatively, similar to the motion vector, the reference picture index of the temporal candidate may be set to the reference picture index stored for each sub-block.

Однако, когда имеется недоступный подблок среди подблоков, принадлежащих к совмещаемому блоку, вектор движения недоступного подблока может быть заменен вектором движения доступного подблока в совмещаемом блоке. В данном случае доступный подблок может относиться к блоку, смежному с любой из левой стороны, правой стороны, верхней стороны или нижней стороны недоступного подблока. Альтернативно доступный подблок может представлять собой блок в положении, предварительно отправленном на устройство для кодирования/декодирования. Например, предварительно отправленное положение может представлять собой положение нижнего правого подблока в совмещаемом блоке или положение подблока, включающее центральное положение совмещаемого блока. Вышеописанный временной кандидат на основе подблоков может быть добавлен в список кандидатов, только когда имеется доступный подблок. Альтернативно вышеописанный временной кандидат на основе подблоков может быть добавлен в список кандидатов, только когда доступен подблок в предварительно отправленном положении.However, when there is an unavailable sub-block among the sub-blocks belonging to the matching block, the motion vector of the unavailable sub-block may be replaced by the motion vector of the available sub-block in the matching block. In this case, an accessible subblock may refer to a block adjacent to any of the left side, right side, top side, or bottom side of the inaccessible subblock. Alternatively, the available subblock may be a block at a position previously sent to the encoder/decoder. For example, the pre-sent position may be the position of the lower right sub-block in the matching block, or the position of a sub-block including the center position of the matching block. The above-described provisional candidate based on sub-blocks can be added to the list of candidates only when there is an available sub-block. Alternatively, the above-described temporal candidate based on sub-blocks may be added to the list of candidates only when a sub-block is available in the pre-sent position.

На фиг. 11 изображен способ межкадрового предсказания в формате проецирования ERP в качестве варианта осуществления, к которому применяется настоящее изобретение.In FIG. 11 shows an ERP projection format inter-picture prediction method as an embodiment to which the present invention is applied.

Как показано на фиг. 11, в случае формата проецирования ERP, может произойти случай, в котором опорный участок, указанный вектором движения, перекрывает границу опорного изображения.As shown in FIG. 11, in the case of the ERP projection format, a case may occur in which the reference portion indicated by the motion vector overlaps the boundary of the reference image.

В этом случае граница опорного изображения может быть расширена, и расширенный участок может быть заполнен данными, смежными с границей в горизонтальном направлении (см. A). Альтернативно граница опорного изображения может быть расширена, и расширенный участок может быть заполнен данными (данными, имеющими непрерывность или корреляцию с границей), смежными с противоположной границей (см. B). Альтернативно данные в несуществующем участке могут быть заполнены с использованием данных, смежных с противоположной границей (см. C).In this case, the boundary of the reference picture may be extended, and the extended area may be filled with data adjacent to the boundary in the horizontal direction (see A). Alternatively, the boundary of the reference image may be extended and the extended area may be filled with data (data having continuity or correlation with the boundary) adjacent to the opposite boundary (see B). Alternatively, the data in the non-existent region can be filled in using the data adjacent to the opposite boundary (see C).

A и B требуют процесса расширения данных опорного изображения. Однако процесс вычисления может быть упрощен. Кроме того, C не требует дополнительного запоминающего устройства из-за расширения. Однако может потребоваться дополнительный процесс вычисления.A and B require a reference picture data expansion process. However, the calculation process can be simplified. Also, C doesn't require any extra storage because of the extension. However, an additional calculation process may be required.

В случае A и B размер текущего изображения и размер (расширенного) опорного изображения могут не быть одинаковыми. Заданный процесс корректировки с учетом такой разницы в размере может быть включен в процесс получения пикселя предсказания.In the case of A and B, the size of the current picture and the size of the (expanded) reference picture may not be the same. A predetermined adjustment process for such a difference in size may be included in the prediction pixel acquisition process.

Когда сравниваются только горизонтальные длины, текущее изображение может иметь диапазон от 0 до (pic_width - 1), и опорное изображение (расширенное в качестве правой стороны) может иметь диапазон от -L_offset до (pic_width - 1 + R_offset) или диапазон от 0 до (pic_width - 1 + L_offset + R_offset). В первом случае пиксель предсказания может быть получен из расширенного опорного изображения в положении, полученном за счет сложения координат текущего блока и вектора движения. В последнем случае пиксель предсказания может быть получен в повторно скорректированном положении после корректировки полученного положения. В данном случае L_offest и R_offset могут относиться к значениям длины, расширенным в направлениях влево и вправо. В настоящем изобретении предполагается, что координаты вычисляются на основании диапазона текущего изображения или существующего опорного изображения, как и ранее.When only horizontal lengths are compared, the current picture may have a range of 0 to (pic_width - 1), and a reference picture (expanded as the right side) may have a range of -L_offset to (pic_width - 1 + R_offset) or a range of 0 to ( pic_width - 1 + L_offset + R_offset). In the first case, the prediction pixel may be obtained from an extended reference image at a position obtained by adding the coordinates of the current block and the motion vector. In the latter case, the prediction pixel may be obtained at a re-corrected position after the obtained position has been corrected. In this case, L_offest and R_offset may refer to length values extended in the left and right directions. The present invention assumes that the coordinates are calculated based on the range of the current image or an existing reference image, as before.

В случае C положение в опорном изображении может быть вычислено за счет сложения координат текущего блока и вектора движения. Можно проверить, находится ли вычисленное положение пикселя за пределами диапазона опорного изображения (от <0,0> до <pic_width - 1, pic_height - 1>). Когда вычисленное положение пикселя не превышает диапазон опорного изображения, пиксель предсказания может быть получен из вычисленного положения пикселя. С другой стороны, когда вычисленное положение пикселя находится за пределами диапазона опорного изображения, положение, соответствующее вычисленному положению, может быть вычислено в положении, противоположном внутренней части границы <внутри изображения> (правая сторона в случае левой стороны и левая сторона в случае правой стороны), и пиксель предсказания может быть получен из вычисленного соответствующего положения.In case C, the position in the reference picture can be calculated by adding the coordinates of the current block and the motion vector. You can check if the calculated pixel position is outside the range of the reference image (<0.0> to <pic_width - 1, pic_height - 1>). When the calculated pixel position does not exceed the range of the reference image, a prediction pixel can be obtained from the calculated pixel position. On the other hand, when the calculated pixel position is outside the range of the reference image, the position corresponding to the calculated position can be calculated at the position opposite the inside of the border <inside image> (right side in case of left side and left side in case of right side) , and the prediction pixel can be obtained from the calculated corresponding position.

На основании по меньшей мере одного из вышеописанных вариантов осуществления можно выполнить межкадровое предсказание на границе опорного изображения. Способ межкадрового предсказания на границе опорного изображения может быть предварительно отправлен посредством устройства для кодирования/декодирования и может быть определен на основании информации о выборе, указывающей любой из вышеописанных вариантов осуществления, и информации, связанной с выбранным способом (способ обработки данных, информация о размере расширения и т. д.), который может быть применен в равной степени к вариантам осуществления, описанным ниже.Based on at least one of the above-described embodiments, it is possible to perform inter-picture prediction at a reference picture boundary. The inter frame prediction method at the reference picture boundary may be pre-sent by the encoding/decoding apparatus, and may be determined based on selection information indicating any of the above embodiments and information associated with the selected method (data processing method, extension size information etc.), which can be applied equally to the embodiments described below.

На фиг. 12 и 15 изображен способ межкадрового предсказания, в формате проецирования CMP в качестве варианта осуществления, к которому применяется настоящее изобретение.In FIG. 12 and 15 show an inter-picture prediction method in CMP projection format as an embodiment to which the present invention is applied.

Как показано на фиг. 12, в случае формата проецирования CMP, непрерывность в трехмерном пространстве может существовать между верхней поверхностью 3 x 1 и нижний поверхностью 3 x 1 из-за упаковки по участкам. Однако непрерывность может отсутствовать в трехмерном пространстве между верхней поверхностью 3 x 1 и нижней поверхностью 3 x 1.As shown in FIG. 12, in the case of the CMP projection format, continuity in 3D space may exist between the 3 x 1 top surface and the 3 x 1 bottom surface due to patch packing. However, there may be no continuity in the 3D space between the top 3 x 1 surface and the bottom 3 x 1 surface.

Аналогично, может быть случай, в котором опорный участок, указанный вектором движения, перекрывает границу опорного изображения или частичную границу поверхности. В случае A опорный участок указывает внутреннюю часть опорного изображения, но расположен на частичной границе поверхности (взаимная непрерывность в трехмерном пространстве отсутствует, вследствие чего корреляция низкая). В случае B опорный участок расположен на границе опорного изображения.Similarly, there may be a case in which the reference portion indicated by the motion vector overlaps a reference image boundary or a partial surface boundary. In case A, the reference area indicates the interior of the reference image, but is located at a partial boundary of the surface (there is no mutual continuity in three-dimensional space, so the correlation is low). In case B, the reference area is located at the boundary of the reference image.

В частности, в случае A, даже хотя опорный участок указывает внутреннюю часть опорного изображения, поскольку опорный участок содержит непрерывную границу поверхности, точность межкадрового предсказания может быть снижена.In particular, in the case of A, even though the reference portion indicates the inside of the reference image, since the reference portion contains a continuous surface boundary, inter prediction accuracy may be lowered.

В случае A и B положение опорного участка в опорном изображении может быть вычислено за счет сложения координат текущего блока и вектора движения. Можно проверить, находится ли по меньшей мере часть опорного участка за пределами диапазона опорного изображения или содержит непрерывную границу в опорном изображении.In the case of A and B, the position of the reference area in the reference image can be calculated by adding the coordinates of the current block and the motion vector. It can be checked whether at least part of the reference area is outside the range of the reference image or contains a continuous border in the reference image.

Когда опорный участок находится за пределами диапазона опорного изображения, может быть определено положение, в котором непрерывность или корреляция существует в трехмерном пространстве, и пиксель предсказания может быть получен из определенного положения.When the reference area is outside the range of the reference image, a position at which continuity or correlation exists in 3D space can be determined, and a prediction pixel can be obtained from the determined position.

С другой стороны, когда опорный участок не превышает диапазон опорного изображения, можно проверить, принадлежит ли по меньшей мере один пиксель в опорном участке, указанном посредством вектора движения текущего блока, к двум или более поверхностям. В данном случае процесс проверки может быть выполнен посредством положений пикселя, таких как верхняя левая сторона, верхняя правая сторона, нижняя левая сторона и нижняя правая сторона текущего блока.On the other hand, when the reference area does not exceed the range of the reference image, it can be checked whether at least one pixel in the reference area indicated by the motion vector of the current block belongs to two or more surfaces. In this case, the verification process may be performed by pixel positions such as top left, top right, bottom left, and bottom right of the current block.

Когда по меньшей мере один пиксель в опорном участке не принадлежит к двум или более поверхностям, пиксель предсказания может быть получен из опорного участка. Однако, в ином случае, можно проверить, имеет ли поверхность непрерывность с поверхностью, к которой принадлежит текущий блок. В случае опорного участка A', верхний участок имеет непрерывность с поверхностью, к которой принадлежит текущий блок, и нижний участок не имеет непрерывности с поверхностью, к которой принадлежит текущий блок.When at least one pixel in the reference area does not belong to two or more surfaces, the prediction pixel can be obtained from the reference area. However, otherwise, it is possible to check if the surface has continuity with the surface to which the current block belongs. In the case of the reference section A', the upper section has continuity with the surface to which the current block belongs, and the lower section has no continuity with the surface to which the current block belongs.

Когда вышеописанная непрерывность существует, пиксель предсказания может быть получен из опорного участка. Однако, в ином случае, пиксель предсказания может быть получен из участка, имеющего непрерывность или корреляцию в трехмерном пространстве.When the above-described continuity exists, the prediction pixel can be obtained from the reference area. However, otherwise, the prediction pixel may be obtained from a region having continuity or correlation in three-dimensional space.

Вышеописанный порядок межкадрового предсказания представлен в качестве примера, и различные модификации могут быть выполнены за счет изменения порядка и изменения некоторых конфигураций.The above-described order of inter-picture prediction is given as an example, and various modifications can be made by changing the order and changing some configurations.

В случае C и D опорное изображение может быть расширено, и расширенный участок может быть заполнен заполняющими данными, смежными с границей в горизонтальном/вертикальном направлении, или с использованием данных коррелируемого участка. Случай D является таким же, как в описании ERP, вследствие чего подробное описание будет опущено. В случае C, как и в случае A, опорный участок расположен внутри опорного изображения, но содержит границу поверхности, имеющую низкую корреляцию. Таким образом, когда отдельный расширенный участок не сгенерирован внутри опорного изображения, точность межкадрового предсказания может быть снижена, что будет подробно описано со ссылкой на фиг. 13.In the case of C and D, the reference image may be expanded and the expanded area may be filled with padding data adjacent to the boundary in the horizontal/vertical direction or using correlated area data. Case D is the same as in the ERP description, so the detailed description will be omitted. In case C, as in case A, the reference area is located within the reference image, but contains a low-correlation surface boundary. Thus, when a single extended region is not generated within a reference picture, inter-picture prediction accuracy may be reduced, which will be described in detail with reference to FIG. 13.

В случае C и D размер текущего изображения и размер опорного изображения могут не быть одинаковыми из-за расширения опорного изображения. В этом случае опорное изображение может иметь диапазон от (-L_offset, -U_offset) до (pic_width - 1 + R_offset, pic_height - 1 + D_offset). В данном случае L_, R_, U_ и D_ offsets могут означать значения длины, расширенные в направлениях влево, вправо, вверх и вниз опорного изображения. Сдвиги могут иметь одинаковое значение или могут иметь разные значения. Длина, расширенная согласно опорному изображению, может в явном виде передаваться или может быть в неявном виде определяться.In the case of C and D, the size of the current picture and the size of the reference picture may not be the same due to the extension of the reference picture. In this case, the reference image may have a range from (-L_offset, -U_offset) to (pic_width - 1 + R_offset, pic_height - 1 + D_offset). In this case, L_, R_, U_ and D_ offsets may mean length values extended in the left, right, up and down directions of the reference picture. The shifts may have the same value or may have different values. The length extended according to the reference picture may be explicitly transmitted or may be implicitly determined.

Например, можно поддерживать одно из значений длины, которые могут поддерживаться секцией разбиения блоков, например, 2, 4, 8 и т. д. Альтернативно длина расширения может быть определена на основании минимального блока кодирования, максимального блока кодирования, минимального блока предсказания и максимального блока предсказания. Альтернативно длина может быть определена на основании элементов, таких как плитки и пакеты.For example, one of the length values that can be supported by the block split section may be supported, such as 2, 4, 8, etc. Alternatively, the extension length may be determined based on a minimum coding block, a maximum coding block, a minimum prediction block, and a maximum block. predictions. Alternatively, the length may be determined based on elements such as tiles and packs.

Например, длина может быть расширена на длину максимального блока предсказания, и в этом случае получение блоков предсказания из всех блоков может осуществляться в пределах расширенного диапазона. Когда участок, указанный посредством вектора движения текущего блока, находится за пределами диапазона расширенного опорного изображения, даже хотя опорное изображение расширено, пиксель предсказания части, находящейся за пределами диапазона, может быть получен посредством горизонтального, вертикального, диагонального заполнения и т. д.For example, the length may be extended by the length of the maximum prediction block, in which case prediction blocks from all blocks may be obtained within the extended range. When the area indicated by the motion vector of the current block is outside the range of the expanded reference picture, even though the reference picture is expanded, the out-of-range portion prediction pixel can be obtained by horizontal, vertical, diagonal filling, etc.

Как показано на фиг. 13, случаи A–D могут соответствовать случаям, в которых опорное изображение расширено в элементах одной или более поверхностей. В случае A и B опорное изображение (или фрагмент опорного изображения) расширяется за счет объединения поверхностей, имеющих непрерывность. Случай C и D представляет собой примеры, в которых опорное изображение по отдельности расширяется для каждой поверхности. Обработка данных расширенного участка является такой же/аналогичной обработке данных вышеописанного варианта осуществления. В вышеописанном варианте осуществления существует один диапазон для опорного изображения. В этом примере, поскольку каждый участок (называемый фрагментом опорного изображения) расширяется за счет разбиения опорного изображения на две или более частей, могут быть сгенерированы перекрывающиеся диапазоны.As shown in FIG. 13, cases A-D may correspond to cases in which the reference image is expanded in elements of one or more surfaces. In the case of A and B, the reference image (or fragment of the reference image) is expanded by combining surfaces having continuity. Case C and D are examples in which the reference image is separately expanded for each surface. The extended area data processing is the same/similar to the data processing of the above-described embodiment. In the above embodiment, there is one range for the reference image. In this example, since each region (called a reference picture tile) is expanded by splitting the reference picture into two or more parts, overlapping ranges can be generated.

В примерах A и B расширенный фрагмент опорного изображения, расположенный вверху, имеет диапазон от (-L_offset, -U_offset) до (pic_width - 1 + R_offset, pic_height/2 - 1 + D_offset), а расширенный фрагмент опорного изображения, расположенный внизу, имеет диапазон от (-L_offset, pic_height/2 - U_offset) до (pic_width - 1 + R_offset, pic_height - 1 + D_offset). Предполагается, что расширенные левая, правая, верхняя и нижняя длины каждого фрагмента опорного изображения одинаковы. Однако длины, проходящие в направлениях влево, вправо, вверх и вниз, могут быть установлены равными во всех элементах, подлежащих расширению, или могут быть установлены разными. Кроме того, длины расширения могут быть установлены по отдельности согласно расширенным элементам.In examples A and B, the top widened reference picture has a range of (-L_offset, -U_offset) to (pic_width - 1 + R_offset, pic_height/2 - 1 + D_offset) and the bottom widened reference picture has range from (-L_offset, pic_height/2 - U_offset) to (pic_width - 1 + R_offset, pic_height - 1 + D_offset). It is assumed that the extended left, right, top and bottom lengths of each reference picture tile are the same. However, the lengths extending in the left, right, up, and down directions may be set equal in all elements to be extended, or may be set to be different. In addition, extension lengths can be set individually according to the extension elements.

В этом случае координаты диапазона, расширенного вниз от верхнего фрагмента опорного изображения, такие же, как координаты внутри нижнего фрагмента опорного изображения. Однако, в случае верхнего фрагмента опорного изображения, соответствующий участок имеет расширенные коррелированные данные, а в случае нижнего фрагмента опорного изображения, соответствующий участок имеет исходные данные до расширения.In this case, the coordinates of the range extended downward from the top reference picture tile are the same as the coordinates inside the lower reference picture tile. However, in the case of the upper reference picture, the corresponding portion has expanded correlated data, and in the case of the lower reference picture, the corresponding portion has the original data before expansion.

В итоге, опорное изображение может иметь диапазон от (-L_offset, -U_offset) до (pic_width - 1 + R_offset, pic_height - 1 + D_offset). В целом, правильно, что одно значение пикселя присваивается каждому положению. Однако, поскольку опорное видео расширяется за счет разбиения на два или более участков с учетом характеристики всенаправленного видео, два или более значений пикселя могут быть присвоены в части диапазона. В этом случае может потребоваться определить, какое значение пикселя должно быть получено в качестве предсказанного значения пикселя в положении, которому присвоено два или более значений пикселя.As a result, the reference image may have a range from (-L_offset, -U_offset) to (pic_width - 1 + R_offset, pic_height - 1 + D_offset). In general, it is correct that one pixel value is assigned to each position. However, since the reference video is expanded by dividing into two or more sections considering the characteristics of the omnidirectional video, two or more pixel values may be assigned in a portion of the range. In this case, it may be necessary to determine which pixel value is to be obtained as the predicted pixel value at the position to which two or more pixel values are assigned.

Как показано на фиг. 14, в случае E можно определить, какой фрагмент опорного изображения содержит больший участок, и получить значение предсказания с использованием данных фрагмента опорного изображения, содержащего больший участок.As shown in FIG. 14, in the case of E, it is possible to determine which reference picture fragment contains a larger area, and obtain a prediction value using the data of the reference picture fragment containing the larger area.

В случае F, когда фрагмент опорного изображения, содержащий текущий блок, содержит предварительно установленное количество пикселей или больше, или содержит заданную область, могут использоваться данные соответствующего фрагмента опорного изображения. Однако, в ином случае, может быть возможна обработка с использованием данных фрагмента опорного изображения участка, содержащего большую область, например, E.In the case F, when the reference image fragment containing the current block contains a predetermined number of pixels or more, or contains a predetermined area, data of the corresponding reference image fragment can be used. However, otherwise, it may be possible to process using reference image fragment data of a portion containing a large area, such as E.

Случай G – это случай, в котором оба фрагмента опорного изображения содержат равные участки. В этом случае приоритет отдается фрагменту опорного изображения, содержащему текущий блок, и могут использоваться данные соответствующего фрагмента опорного изображения. Этот пример может быть включен в качестве подробных условий F и E.Case G is the case in which both reference picture tiles contain equal portions. In this case, the reference picture fragment containing the current block is given priority, and data of the corresponding reference picture fragment can be used. This example can be included as detailed terms F and E.

В итоге, когда участок, указанный посредством вектора движения текущего блока, представляет собой границу между фрагментами опорного изображения, можно определить фрагмент опорного изображения, данные которого используются, согласно области покрытия и тому, является ли фрагмент опорного изображения таким же, как текущий блок. Можно определить данные фрагмента опорного изображения, данные которого используются для выполнения межкадрового предсказания, за счет включения всех или некоторых из вышеописанных условий согласно настройке кодирования/декодирования.In summary, when the area indicated by the motion vector of the current block is the boundary between the reference picture tiles, it is possible to determine the reference picture chip whose data is used according to the coverage area and whether the reference picture tiles is the same as the current block. It is possible to determine the sub-picture data of the reference picture whose data is used to perform inter-picture prediction by including all or some of the above-described conditions according to the encoding/decoding setting.

В вышеописанном примере каждый участок расширяется за счет разбиения опорного изображения на две части. Однако в этом примере будет описан случай, в котором больше фрагментов опорного изображения сгенерированы в элементах поверхностей.In the above example, each region is expanded by dividing the reference image into two parts. However, in this example, a case will be described in which more reference image fragments are generated in surface elements.

На фиг. 15 предполагается, что каждый элемент поверхности представляет собой фрагмент опорного изображения. Аналогично, необходимо определить, какое значение пикселя должно быть получено в качестве значения пикселя предсказания в положении, которому присвоено два или более значений пикселя.In FIG. 15, each surface element is assumed to be a fragment of a reference image. Similarly, it is necessary to determine which pixel value is to be obtained as a prediction pixel value at a position assigned two or more pixel values.

Как показано на фиг. 15, в случае H можно использовать данные фрагмента опорного изображения в участке, покрытом в большей степени, или можно использовать данные фрагмента опорного изображения, содержащего текущий блок.As shown in FIG. 15, in the case of H, the reference picture sub-picture data in the area covered more may be used, or the reference picture sub-picture data containing the current block may be used.

Например, когда фрагмент опорного изображения, содержащий текущий блок, включен за счет предварительно установленного количества пикселей или в предварительно определенной области или больше, можно использовать данные соответствующего фрагмента опорного изображения. Альтернативно, когда используются данные фрагмента опорного изображения в участке, покрытом в большей степени, можно использовать данные соответствующего фрагмента опорного изображения. Однако, когда включенные участки одинаковы, можно ограничить использование данных фрагмента опорного изображения, содержащего текущий блок.For example, when a reference image fragment containing the current block is included by a predetermined number of pixels or in a predetermined area or more, data of the corresponding reference image fragment can be used. Alternatively, when reference image fragment data is used in a more heavily covered area, corresponding reference image fragment data may be used. However, when the included areas are the same, it is possible to limit the use of the reference picture fragment data containing the current block.

В случае I можно использовать данные фрагмента опорного изображения в участке, покрытом в большей степени. В этом примере фрагменты опорного изображения поддерживаются в элементах поверхностей. Однако настройка поверхности имеет характеристику, в которой верхний участок 3 x 1 и нижний участок 3 x 1 являются прерывистыми, и, таким образом, приоритет может быть отдан фрагменту опорного изображения на стороне, имеющей непрерывную характеристику, чем фрагменту опорного изображения на стороне, имеющей прерывистую характеристику.In case I, reference image fragment data can be used in the area covered to a greater extent. In this example, reference image fragments are supported in surface elements. However, the surface tuning has a characteristic in which the 3 x 1 top portion and the 3 x 1 lower portion are discontinuous, and thus priority can be given to a reference image portion on a side having a continuous characteristic over a reference image portion on a side having a discontinuous characteristic. characteristic.

В случае J можно использовать данные фрагмента опорного изображения в участке, покрытом в большей степени. Однако включенные участки равны, и в этом примере фрагмент опорного изображения, содержащий текущий блок (вверху справа в участке 3 x 2), не покрыт. Кроме того, фрагменты опорного изображения (вверху слева и по центру в участке 3 x 2) принадлежат к тому же участку 3 x 1, что и фрагмент опорного изображения, содержащий текущий блок. В этом случае приоритет может быть отдан тому, который ближе к фрагменту опорного изображения, содержащему текущий блок.In the case of J, the reference image fragment data can be used in the area covered to a greater extent. However, the included areas are equal, and in this example, the reference picture fragment containing the current block (upper right in the 3 x 2 area) is not covered. In addition, the reference image tiles (top left and center in the 3 x 2 region) belong to the same 3 x 1 region as the reference image fragment containing the current block. In this case, priority may be given to the one closest to the reference picture fragment containing the current block.

В итоге, когда участок, указанный посредством вектора движения текущего блока, представляет собой границу между фрагментами опорного изображения, можно определить фрагмент опорного изображения, данные которого используются, согласно области покрытия и приоритету для использования фрагмента опорного изображения.In summary, when the area indicated by the motion vector of the current block is a boundary between reference picture tiles, it is possible to determine the reference picture slice whose data is used according to the coverage area and the priority for using the reference picture slice.

Между тем способ выполнения межкадрового предсказания на основании моделирования аффинного движения был описан со ссылкой на фиг. 7–10, который может использоваться идентично/аналогично кодированию/декодированию видео в 360 градусов, и его подробное описание будет опущено.Meanwhile, a method for performing inter prediction based on affine motion simulation has been described with reference to FIG. 7-10, which can be used identically/similarly to 360-degree video encoding/decoding, and its detailed description will be omitted.

Способы согласно настоящему изобретению могут быть реализованы в форме программных команд, которые могут быть выполнены посредством различных компьютерных средств и записаны в машиночитаемом носителе. Машиночитаемый носитель может содержать программные команды, файлы данных, структуры данных и т. д., отдельно или в комбинации. Программные команды, записанные на машиночитаемом носителе, могут быть специально разработаны и сконфигурированы для настоящего изобретения или могут быть известны и доступны для специалистов в области компьютерного программного обеспечения.The methods of the present invention may be implemented in the form of program instructions that may be executed by various computer means and recorded on a computer-readable medium. The computer-readable medium may contain program instructions, data files, data structures, etc., alone or in combination. Program instructions recorded on a computer-readable medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the art of computer software.

Примеры машиночитаемого носителя могут включать аппаратное устройство, специально выполненное с возможностью хранения и исполнения программной команды, такое как ROM, RAM или флеш-память. Примеры программной команды могут включать коды на высокоуровневом языке, которые могут исполняться компьютером с использованием интерпретатора и т. д., а также машинные коды, например, полученные с помощью компилятора. Вышеописанное аппаратное устройство может быть выполнено с возможностью работы в качестве по меньшей мере одного модуля программного обеспечения для выполнения операций настоящего изобретения, и наоборот.Examples of a computer-readable medium may include a hardware device specially configured to store and execute a program instruction, such as ROM, RAM, or flash memory. Examples of a program instruction may include high-level language codes that can be executed by a computer using an interpreter, etc., as well as machine codes, such as those obtained using a compiler. The above described hardware device may be configured to operate as at least one software module to perform the operations of the present invention, and vice versa.

Кроме того, вышеописанный способ или устройство могут быть реализованы за счет комбинирования всех или некоторых конфигураций или функций, или могут быть реализованы за счет разделения конфигураций или функций.In addition, the method or apparatus described above may be implemented by combining all or some of the configurations or functions, or may be implemented by separating configurations or functions.

Даже хотя описание было приведено выше со ссылкой на предпочтительные варианты осуществления настоящего изобретения, следует понимать, что специалисты в данной области техники могут вносить различные модификации и изменения в настоящее изобретение без отхода от объема и без отхода от сущности и объема настоящего изобретения, изложенного далее в прилагаемой формуле изобретения.Even though the description has been given above with reference to the preferred embodiments of the present invention, it should be understood that various modifications and changes can be made to the present invention by those skilled in the art without departing from the scope and without departing from the spirit and scope of the present invention set forth in the following paragraphs. the attached claims.

[Промышленная применимость][Industrial applicability]

Настоящее изобретение может использоваться при кодировании/декодировании видеосигналов.The present invention can be used in encoding/decoding video signals.

Claims (31)

1. Способ декодирования видеосигнала, причем способ включает1. A method for decoding a video signal, the method comprising составление списка кандидатов на слияние текущего блока;compiling a list of candidates for the merger of the current block; получение информации о движении текущего блока из списка кандидатов на слияние, при этом информация о движении содержит по меньшей мере одно из флага направления предсказания, индекса опорного изображения или вектора движения; иobtaining motion information of the current block from the merge candidate list, the motion information comprising at least one of a prediction direction flag, a reference picture index, or a motion vector; And выполнение межкадрового предсказания текущего блока с использованием информации о движении,performing interframe prediction of the current block using motion information, при этом список кандидатов на слияние содержит по меньшей мере одного из пространственного кандидата на слияние, временного кандидата на слияние или комбинированного кандидата на слияние, и комбинированного кандидата на слияние получают за счет комбинирования n кандидатов на слияние, принадлежащих к списку кандидатов на слияние, иwherein the merge candidate list comprises at least one of a spatial merge candidate, a temporary merge candidate, or a combined merge candidate, and the combined merge candidate is obtained by combining n merge candidates belonging to the merge candidate list, and комбинированный кандидат на слияние содержит первого кандидата на слияние и второго кандидата на слияние, и информацию о движении комбинированного кандидата на слияние получают посредством средневзвешенного значения информации о движении первого кандидата на слияние и информации о движении второго кандидата на слияние.the combined merger candidate comprises a first merger candidate and a second merger candidate, and movement information of the combined merger candidate is obtained by a weighted average of the movement information of the first merger candidate and the movement information of the second merger candidate. 2. Способ по п. 1, отличающийся тем, что n кандидатов на слияние представляют собой кандидатов на слияние, соответствующих индексам от 0 до (n-1) в списке кандидатов на слияние.2. The method of claim 1, wherein the n merge candidates are merge candidates corresponding to indices 0 to (n-1) in the merge candidate list. 3. Способ по п. 1, отличающийся тем, что индекс комбинированного кандидата на слияние больше индекса временного кандидата на слияние.3. The method of claim 1, wherein the index of the combined merge candidate is greater than the index of the temporary merge candidate. 4. Способ по п. 1, отличающийся тем, что информацию о движении комбинированного кандидата на слияние получают с учетом направления предсказания первого кандидата на слияние и направления предсказания второго кандидата на слияние.4. The method according to claim 1, wherein the movement information of the combined merge candidate is obtained taking into account the prediction direction of the first merge candidate and the prediction direction of the second merge candidate. 5. Способ по п. 1, отличающийся тем, что весовой коэффициент средневзвешенного значения представляет собой любой из [1:1], [1:2], [1:3] или [2:3].5. The method of claim 1, wherein the weighted average is any of [1:1], [1:2], [1:3], or [2:3]. 6. Способ по п. 1, отличающийся тем, что вектор движения получают в элементах подблоков текущего блока.6. The method according to claim 1, characterized in that the motion vector is obtained in the elements of the subblocks of the current block. 7. Способ по п. 6, отличающийся тем, что размер подблока представляет собой фиксированный размер.7. The method of claim 6, wherein the subblock size is a fixed size. 8. Способ по п. 6 или 7, отличающийся тем, что размер подблока представляет собой 4×4.8. The method according to claim 6 or 7, characterized in that the subblock size is 4x4. 9. Способ по п. 1, отличающийся тем, что выполнение межкадрового предсказания текущего блока с использованием информации о движении включает9. The method of claim 1, wherein performing interframe prediction of the current block using the motion information includes выбор опорного изображения из списка опорных изображений на основании индекса опорного изображения текущего блока;selecting a reference picture from the reference picture list based on the reference picture index of the current block; определение опорного блока в опорном изображении на основании вектора движения текущего блока;determining a reference block in the reference image based on a motion vector of the current block; генерирование пикселя предсказания текущего блока с использованием пикселя определенного опорного блока; иgenerating a prediction pixel of the current block using the determined reference block pixel; And восстановление текущего блока за счет сложения пикселя предсказания текущего блока и остаточного пикселя.restoring the current block by adding the prediction pixel of the current block and the residual pixel. 10. Способ по п. 9, отличающийся тем, что дополнительно включает получение остаточного пикселя за счет выполнения по меньшей мере одного из обратного квантования или обратного преобразования в отношении остаточного коэффициента, переданного посредством битового потока.10. The method of claim 9, further comprising obtaining a residual pixel by performing at least one of inverse quantization or inverse transform on the residual coefficient transmitted via the bitstream. 11. Устройство для декодирования видеосигнала, причем устройство содержит11. A device for decoding a video signal, and the device contains запоминающее устройство, выполненное с возможностью хранения программы для выполнения межкадрового предсказания; иa storage device configured to store a program for performing inter-picture prediction; And процессор, выполненный с возможностью выполнения при запуске программы способа по любому из пп. 1-10.a processor configured to execute at program startup the method according to any one of claims. 1-10. 12. Способ кодирования видеосигнала, причем способ включает12. A method for encoding a video signal, the method comprising составление списка кандидатов на слияние текущего блока;compiling a list of candidates for the merger of the current block; получение информации о движении текущего блока из списка кандидатов на слияние, при этом информация о движении содержит по меньшей мере одно из флага направления предсказания, индекса опорного изображения или вектора движения; иobtaining motion information of the current block from the merge candidate list, the motion information comprising at least one of a prediction direction flag, a reference picture index, or a motion vector; And выполнение межкадрового предсказания текущего блока с использованием информации о движении,performing interframe prediction of the current block using motion information, при этом список кандидатов на слияние содержит по меньшей мере одного из пространственного кандидата на слияние, временного кандидата на слияние или комбинированного кандидата на слияние, и комбинированного кандидата на слияние получают за счет комбинирования n кандидатов на слияние, принадлежащих к списку кандидатов на слияние, иwherein the merge candidate list comprises at least one of a spatial merge candidate, a temporary merge candidate, or a combined merge candidate, and the combined merge candidate is obtained by combining n merge candidates belonging to the merge candidate list, and комбинированный кандидат на слияние содержит первого кандидата на слияние и второго кандидата на слияние, и информацию о движении комбинированного кандидата на слияние получают посредством средневзвешенного значения информации о движении первого кандидата на слияние и информации о движении второго кандидата на слияние.the combined merger candidate comprises a first merger candidate and a second merger candidate, and movement information of the combined merger candidate is obtained by a weighted average of the movement information of the first merger candidate and the movement information of the second merger candidate. 13. Устройство для кодирования видеосигнала, причем устройство содержит13. A device for encoding a video signal, and the device contains запоминающее устройство, выполненное с возможностью хранения программы для выполнения межкадрового предсказания; иa storage device configured to store a program for performing inter-picture prediction; And процессор, выполненный с возможностью выполнения при запуске программы способа по п. 12.a processor capable of executing the method of claim 12 when the program is started.
RU2021101214A 2018-06-30 2019-07-01 Method and device for inter-frame prediction based on the fusion mode RU2790325C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0076177 2018-06-30
KR10-2018-0085680 2018-07-24

Publications (2)

Publication Number Publication Date
RU2021101214A RU2021101214A (en) 2022-08-01
RU2790325C2 true RU2790325C2 (en) 2023-02-16

Family

ID=

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2470480C1 (en) * 2007-06-28 2012-12-20 Мицубиси Электроник Корпорейшн Picture encoder and decoder
KR20140018953A (en) * 2011-05-31 2014-02-13 파나소닉 주식회사 Image encoding method, image encoding device, image decoding method, image decoding device, and image encoding/decoding device
KR20140082969A (en) * 2011-10-19 2014-07-03 파나소닉 주식회사 Image encoding method, image encoding device, image decoding method, and image decoding device
JP2016048953A (en) * 2012-01-18 2016-04-07 株式会社Jvcケンウッド Dynamic image decoding device, dynamic image decoding method, dynamic image decoding program, reception device, reception method and reception program
WO2016195453A1 (en) * 2015-06-05 2016-12-08 한양대학교 산학협력단 Image encoding and decoding method and image decoding device
WO2016200242A1 (en) * 2015-06-11 2016-12-15 한양대학교 산학협력단 Method for encoding and decoding image using adaptive deblocking filtering, and apparatus therefor
WO2017171370A1 (en) * 2016-03-28 2017-10-05 주식회사 케이티 Method and apparatus for processing video signal
RU2623796C9 (en) * 2011-12-28 2017-11-15 ДжейВиСи КЕНВУД КОРПОРЕЙШН Moving picture coding device, moving picture coding method, and moving picture coding program, and moving picture decoding device, moving picture decoding method, and moving picture decoding program
WO2018012851A1 (en) * 2016-07-12 2018-01-18 한국전자통신연구원 Image encoding/decoding method and recording medium therefor
KR20180007345A (en) * 2016-07-12 2018-01-22 한국전자통신연구원 A method for encoding/decoding a video and a readable medium therefor
KR20180035190A (en) * 2011-10-26 2018-04-05 인텔렉추얼디스커버리 주식회사 Method and apparatus for scalable video coding using inter prediction mode
WO2018066867A1 (en) * 2016-10-04 2018-04-12 한국전자통신연구원 Method and apparatus for encoding and decoding image, and recording medium for storing bitstream
RU2654136C2 (en) * 2010-09-30 2018-05-16 Мицубиси Электрик Корпорейшн Moving image encoding device, moving image decoding device, moving image encoding method and moving image decoding method

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2470480C1 (en) * 2007-06-28 2012-12-20 Мицубиси Электроник Корпорейшн Picture encoder and decoder
RU2654136C2 (en) * 2010-09-30 2018-05-16 Мицубиси Электрик Корпорейшн Moving image encoding device, moving image decoding device, moving image encoding method and moving image decoding method
KR20140018953A (en) * 2011-05-31 2014-02-13 파나소닉 주식회사 Image encoding method, image encoding device, image decoding method, image decoding device, and image encoding/decoding device
KR20140082969A (en) * 2011-10-19 2014-07-03 파나소닉 주식회사 Image encoding method, image encoding device, image decoding method, and image decoding device
KR20180035190A (en) * 2011-10-26 2018-04-05 인텔렉추얼디스커버리 주식회사 Method and apparatus for scalable video coding using inter prediction mode
RU2623796C9 (en) * 2011-12-28 2017-11-15 ДжейВиСи КЕНВУД КОРПОРЕЙШН Moving picture coding device, moving picture coding method, and moving picture coding program, and moving picture decoding device, moving picture decoding method, and moving picture decoding program
JP2016048953A (en) * 2012-01-18 2016-04-07 株式会社Jvcケンウッド Dynamic image decoding device, dynamic image decoding method, dynamic image decoding program, reception device, reception method and reception program
WO2016195453A1 (en) * 2015-06-05 2016-12-08 한양대학교 산학협력단 Image encoding and decoding method and image decoding device
WO2016200242A1 (en) * 2015-06-11 2016-12-15 한양대학교 산학협력단 Method for encoding and decoding image using adaptive deblocking filtering, and apparatus therefor
WO2017171370A1 (en) * 2016-03-28 2017-10-05 주식회사 케이티 Method and apparatus for processing video signal
KR20180007345A (en) * 2016-07-12 2018-01-22 한국전자통신연구원 A method for encoding/decoding a video and a readable medium therefor
WO2018012851A1 (en) * 2016-07-12 2018-01-18 한국전자통신연구원 Image encoding/decoding method and recording medium therefor
WO2018066867A1 (en) * 2016-10-04 2018-04-12 한국전자통신연구원 Method and apparatus for encoding and decoding image, and recording medium for storing bitstream

Similar Documents

Publication Publication Date Title
AU2021266245B2 (en) Image data encoding/decoding method and apparatus
JP7395518B2 (en) Inter prediction method and device based on merge mode
JP2024054330A (en) Image data encoding/decoding method and apparatus
RU2790325C2 (en) Method and device for inter-frame prediction based on the fusion mode
JP2017069862A (en) Dynamic image encoding device, dynamic image encoding method, and dynamic image encoding computer program
JP2024057039A (en) Image data encoding/decoding method and apparatus
KR20190113611A (en) Method and apparatus for image encoding/decoding