RU2806152C2 - Method and device for encoding/decoding image signals - Google Patents

Method and device for encoding/decoding image signals Download PDF

Info

Publication number
RU2806152C2
RU2806152C2 RU2021116404A RU2021116404A RU2806152C2 RU 2806152 C2 RU2806152 C2 RU 2806152C2 RU 2021116404 A RU2021116404 A RU 2021116404A RU 2021116404 A RU2021116404 A RU 2021116404A RU 2806152 C2 RU2806152 C2 RU 2806152C2
Authority
RU
Russia
Prior art keywords
prediction
block
information
triangular
candidate
Prior art date
Application number
RU2021116404A
Other languages
Russian (ru)
Other versions
RU2021116404A (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 RU2021116404A publication Critical patent/RU2021116404A/en
Application granted granted Critical
Publication of RU2806152C2 publication Critical patent/RU2806152C2/en

Links

Abstract

FIELD: video encoding and decoding.
SUBSTANCE: method for decoding images is proposed, which includes the steps of: dividing a coding block into the first prediction element and the second prediction element; obtaining a list of merge candidates for the coding block; obtaining first motion information for the first prediction element and second motion information for the second prediction element through a fusion candidate list; and based on the first motion information and the second motion information, sampling a prediction sample in the encoding block.
EFFECT: increase of efficiency of prediction carried out between images.
14 cl, 29 dwg, 2 tbl

Description

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕFIELD OF TECHNOLOGY TO WHICH THE INVENTION RELATES

Настоящее изобретение относится к способу и устройству для кодирования и декодирования видеосигнала.The present invention relates to a method and apparatus for encoding and decoding a video signal.

ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯPREREQUISITES FOR CREATION OF THE INVENTION

По мере увеличения дисплейных панелей требуется все больше видеоуслуг более высокого качества. Самой большой проблемой видеоуслуг высокой четкости является значительное увеличение объема данных, и для решения этой проблемы активно проводятся исследования по улучшению степени сжатия видео. В качестве иллюстративного примера группа экспертов по кинематографии (MPEG) и группа экспертов по видеокодированию (VCEG) в рамках сектора по стандартизации телекоммуникаций в составе Международного союза электросвязи (ITU-T) сформировали объединенную команду по видеокодированию (JCT-VC) в 2009 году. JCT-VC предложила высокоэффективное видеокодирование (HEVC), которое представляет собой стандарт сжатия видео, имеющий эффективность сжатия примерно вдвое выше, чем эффективность сжатия H.264/AVC, и он одобрен в качестве стандарта 25 января 2013 г. С быстрым развитием видеоуслуг высокой четкости эффективность HEVC постепенно обнаруживает свои ограничения.As display panels become larger, more and higher quality video services are required. The biggest challenge of high-definition video services is the significant increase in data volume, and to address this issue, research is being actively conducted to improve video compression rates. As an illustrative example, the Motion Picture Experts Group (MPEG) and the Video Coding Experts Group (VCEG) within the telecommunications standards sector of the International Telecommunication Union (ITU-T) formed the Joint Video Coding Team (JCT-VC) in 2009. JCT-VC proposed High Efficiency Video Coding (HEVC), which is a video compression standard that has a compression efficiency approximately twice that of H.264/AVC, and it was approved as a standard on January 25, 2013. With the rapid development of high-definition video services The effectiveness of HEVC is gradually revealing its limitations.

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

Целью настоящего изобретения является предоставление способа применения разбиения к блоку кодирования для получения множества блоков предсказания при кодировании/декодировании видеосигнала и устройства для выполнения способа.An object of the present invention is to provide a method for applying partitioning to a coding block to obtain a plurality of prediction blocks when encoding/decoding a video signal and an apparatus for executing the method.

Другой целью настоящего изобретения является предоставление способа получения информации о движении каждого из множества блоков предсказания при кодировании/декодировании видеосигнала.Another object of the present invention is to provide a method for obtaining motion information of each of a plurality of prediction blocks when encoding/decoding a video signal.

Другой целью настоящего изобретения является предоставление способа получения кандидата на слияние с использованием списка информации о движении между участками при кодировании/декодировании видеосигнала.Another object of the present invention is to provide a method for obtaining a merge candidate using a list of inter-section motion information when encoding/decoding a video signal.

Технические задачи, которые должны быть решены в настоящем изобретении, не ограничиваются техническими задачами, упомянутыми выше, и не упомянутые другие задачи могут быть ясно поняты специалистами в данной области техники из следующего описания.The technical problems to be solved by the present invention are not limited to the technical problems mentioned above, and other objects not mentioned can be clearly understood by those skilled in the art from the following description.

Способ декодирования/кодирования видеосигнала согласно настоящему изобретению может включать следующие этапы: применение разбиения к блоку кодирования для получения первого элемента предсказания и второго элемента предсказания; получение списка кандидатов на слияние для блока кодирования; получение первой информации о движении для первого элемента предсказания и второй информации о движении для второго элемента предсказания с использованием списка кандидатов на слияние; и получение отсчета предсказания в блоке кодирования на основании первой информации о движении и второй информации о движении. В этом случае то, применять или нет разбиение к блоку кодирования, определяют на основании размера блока кодирования, и первую информацию о движении для первого элемента предсказания получают из первого кандидата на слияние в списке кандидатов на слияние, и вторую информацию о движении для второго элемента предсказания получают из второго кандидата на слияние, отличного от первого кандидата на слияние.A method for decoding/encoding a video signal according to the present invention may include the following steps: applying partitioning to a coding block to obtain a first prediction element and a second prediction element; obtaining a list of merge candidates for the coding block; obtaining first motion information for the first prediction element and second motion information for the second prediction element using the fusion candidate list; and obtaining a prediction sample in the encoding block based on the first motion information and the second motion information. In this case, whether or not to apply partitioning to the encoding block is determined based on the size of the encoding block, and the first motion information for the first prediction element is obtained from the first merge candidate in the merge candidate list, and the second motion information for the second prediction element is obtained from a second fusion candidate different from the first fusion candidate.

В способе кодирования и декодирования видеосигнала согласно настоящему изобретению, когда по меньшей мере одно из ширины и высоты блока кодирования больше, чем пороговое значение, разбиение блока кодирования может не быть разрешено.In the video signal encoding and decoding method according to the present invention, when at least one of the encoding block width and height is larger than a threshold value, splitting the encoding block may not be allowed.

В способе кодирования и декодирования видеосигнала согласно настоящему изобретению способ может дополнительно включать этап декодирования первой информации об индексах для указания первого кандидата на слияние и второй информации об индексах для указания второго кандидата на слияние из битового потока, и, когда значение второй информации об индексах равняется значению первой информации об индексах или больше него, значение второй информации об индексах, указывающей второго кандидата на слияние, получают путем прибавления 1 к значению первой информации об индексах, указывающей первого кандидата на слияние.In a video signal encoding and decoding method according to the present invention, the method may further include the step of decoding first index information to indicate a first merge candidate and second index information to indicate a second merge candidate from the bit stream, and when the value of the second index information is equal to the value the first index information or more, the value of the second index information indicating the second merger candidate is obtained by adding 1 to the value of the first index information indicating the first merger candidate.

В способе кодирования и декодирования видеосигнала согласно настоящему изобретению, когда отсчет предсказания включен в граничный участок между первым элементом предсказания и вторым элементом предсказания, отсчет предсказания может быть получен на основании операции взвешенной суммы первого отсчета предсказания, полученного на основании первой информации о движении, и второго предсказанного отсчета, полученного на основании второй информации о движении.In the video signal encoding and decoding method according to the present invention, when a prediction sample is included in a boundary portion between the first prediction element and the second prediction element, the prediction sample can be obtained based on a weighted sum operation of the first prediction sample obtained based on the first motion information and the second a predicted count obtained from the second motion information.

В способе кодирования и декодирования видеосигнала согласно настоящему изобретению первое значение взвешивания, применяемое к первому отсчету предсказания, может быть определено на основании координаты оси x и координаты оси y отсчета предсказания.In the video signal encoding and decoding method of the present invention, a first weighting value applied to the first prediction sample can be determined based on the x-axis coordinate and the y-axis coordinate of the prediction sample.

В способе кодирования и декодирования видеосигнала согласно настоящему изобретению второе значение взвешивания, применяемое ко второму отсчету предсказания, может быть получено путем вычитания первого значения взвешивания из постоянного значения.In the video signal encoding and decoding method of the present invention, a second weighting value applied to the second prediction sample can be obtained by subtracting the first weighting value from a constant value.

В способе кодирования и декодирования видеосигнала согласно настоящему изобретению максимальное количество кандидатов на слияние, которое может содержать список кандидатов на слияние, может быть определено на основании того, разбивают ли блок кодирования на первый элемент предсказания и второй элемент предсказания.In the video signal encoding and decoding method of the present invention, the maximum number of merge candidates that the merge candidate list can contain can be determined based on whether the encoding block is divided into a first prediction element and a second prediction element.

Признаки, кратко изложенные выше в отношении настоящего изобретения, являются просто иллюстративными аспектами подробного описания настоящего изобретения, которые будут описаны ниже, и не ограничивают объем настоящего изобретения.The features briefly set forth above in relation to the present invention are merely illustrative aspects of the detailed description of the present invention, which will be described below, and do not limit the scope of the present invention.

Согласно настоящему изобретению эффективность предсказания, осуществляемого между изображениями, может быть улучшена путем предоставления способа применения разбиения к блоку кодирования для получения множества блоков предсказания и получения информации о движении каждого из блоков предсказания.According to the present invention, the efficiency of prediction performed between pictures can be improved by providing a method of applying partitioning to a coding block to obtain a plurality of prediction blocks and obtain motion information of each of the prediction blocks.

Согласно настоящему изобретению эффективность предсказания, осуществляемого между изображениями, может быть улучшена путем предоставления способа получения кандидата на слияние с использованием списка информации о движении между участками.According to the present invention, the performance of inter-image prediction can be improved by providing a method for obtaining a fusion candidate using a list of inter-site motion information.

Эффекты, которые могут быть получены из настоящего изобретения, не ограничены упомянутыми выше эффектами, и неупомянутые другие эффекты могут быть ясно поняты специалистами в данной области техники из следующего описания.The effects that can be obtained from the present invention are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the following description.

КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВBRIEF DESCRIPTION OF GRAPHIC MATERIALS

На фиг. 1 представлена структурная схема, показывающая видеокодер согласно одному варианту осуществления настоящего изобретения.In fig. 1 is a block diagram showing a video encoder according to one embodiment of the present invention.

На фиг. 2 представлена структурная схема, показывающая видеодекодер согласно одному варианту осуществления настоящего изобретения.In fig. 2 is a block diagram showing a video decoder according to one embodiment of the present invention.

На фиг. 3 представлен вид, показывающий базовый элемент кодового дерева согласно одному варианту осуществления настоящего изобретения.In fig. 3 is a view showing a code tree base element according to one embodiment of the present invention.

На фиг. 4 представлен вид, показывающий различные типы разбиения блока кодирования.In fig. 4 is a view showing various types of partitioning of a coding block.

На фиг. 5 представлен вид, показывающий схему разбиения элемента кодового дерева.In fig. 5 is a view showing a code tree element partitioning diagram.

На фиг. 6 представлена блок-схема, изображающая способ предсказания, осуществляемого между изображениями, согласно одному варианту осуществления настоящего изобретения.In fig. 6 is a flowchart illustrating an inter-image prediction method according to one embodiment of the present invention.

На фиг. 7 представлен вид, показывающий нелинейные движения объекта.In fig. 7 is a view showing non-linear movements of an object.

На фиг. 8 представлена блок-схема, изображающая способ предсказания, осуществляемого между изображениями, на основании аффинного движения согласно одному варианту осуществления настоящего изобретения.In fig. 8 is a flowchart illustrating a method for inter-image prediction based on affine motion according to one embodiment of the present invention.

На фиг. 9 представлен вид, показывающий пример аффинных исходных векторов каждой модели аффинного движения.In fig. 9 is a view showing an example of affine source vectors of each affine motion model.

На фиг. 10 представлен вид, показывающий пример аффинных векторов подблоков в 4-параметрической модели движения.In fig. 10 is a view showing an example of subblock affine vectors in a 4-parameter motion model.

На фиг. 11 представлена блок-схема, изображающая процесс получения информации о движении текущего блока с использованием режима слияния.In fig. 11 is a flowchart showing the process of obtaining movement information of the current block using the merge mode.

На фиг. 12 представлен вид, показывающий пример кандидатных блоков, используемых для получения кандидата на слияние.In fig. 12 is a view showing an example of candidate blocks used to obtain a merge candidate.

На фиг. 13 представлен вид, показывающий положения опорных отсчетов.In fig. 13 is a view showing positions of reference samples.

На фиг. 14 представлен вид, показывающий пример кандидатных блоков, используемых для получения кандидата на слияние.In fig. 14 is a view showing an example of candidate blocks used to obtain a merge candidate.

На фиг. 15 представлена блок-схема, изображающая процесс обновления списка информации о движении между участками.In fig. 15 is a flowchart showing the process of updating the inter-section traffic information list.

На фиг. 16 представлен вид, показывающий вариант осуществления обновления списка кандидатов на слияние между участками.In fig. 16 is a view showing an embodiment of updating a cross-site merge candidate list.

На фиг. 17 представлен вид, показывающий пример, в котором индекс ранее сохраненного кандидата на слияние между участками обновлен.In fig. 17 is a view showing an example in which the index of a previously stored inter-site merge candidate is updated.

На фиг. 18 представлен вид, показывающий положение иллюстративного подблока.In fig. 18 is a view showing the position of an illustrative sub-block.

На фиг. 19 представлен вид, показывающий пример, в котором список информации о движении между участками генерируется для каждого режима предсказания, осуществляемого между изображениями.In fig. 19 is a view showing an example in which a list of inter-section motion information is generated for each inter-image prediction mode.

На фиг. 20 представлен вид, показывающий пример, в котором кандидат на слияние между участками, включенный в долговременный список информации о движении, добавляется в список кандидатов на слияние.In fig. 20 is a view showing an example in which a cross-section merging candidate included in the long-term traffic information list is added to the merging candidate list.

На фиг. 21 представлен вид, показывающий пример, в котором контроль по избыточности выполняется только в отношении некоторых кандидатов на слияние.In fig. 21 is a view showing an example in which redundancy checking is performed only on some merge candidates.

На фиг. 22 представлен вид, показывающий пример, в котором контроль по избыточности опускается для конкретного кандидата на слияние.In fig. 22 is a view showing an example in which the redundancy check is omitted for a particular merge candidate.

На фиг. 23 представлен вид, показывающий примеры применения разбиения к блоку кодирования для получения множества элементов предсказания с использованием диагональной линии.In fig. 23 is a view showing examples of applying partitioning to a coding block to obtain a plurality of prediction elements using a diagonal line.

На фиг. 24 представлен вид, показывающий примеры применения разбиения к блоку кодирования для получения двух элементов предсказания.In fig. 24 is a view showing examples of applying partitioning to a coding block to obtain two prediction elements.

На фиг. 25 представлен вид, показывающий примеры применения разбиения к блоку кодирования для получения множества блоков предсказания разного размера.In fig. 25 is a view showing examples of applying partitioning to a coding block to obtain multiple prediction blocks of different sizes.

На фиг. 26 представлен вид, показывающий соседние блоки, используемые для получения треугольного кандидата на слияние.In fig. 26 is a view showing adjacent blocks used to obtain a triangular merge candidate.

На фиг. 27 представлен вид для описания примеров определения доступности соседнего блока для каждого треугольного элемента предсказания.In fig. 27 is a view for describing examples of determining the availability of a neighboring block for each triangular prediction element.

На фиг. 28 и 29 представлены виды, показывающие примеры получения отсчета предсказания на основании операции взвешенной суммы первого отсчета предсказания и второго отсчета предсказания.In fig. 28 and 29 are views showing examples of obtaining a prediction sample based on a weighted sum operation of the first prediction sample and the second prediction sample.

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

Далее будет подробно описан вариант осуществления настоящего изобретения со ссылкой на прилагаемые графические материалы.An embodiment of the present invention will now be described in detail with reference to the accompanying drawings.

Кодирование и декодирование видео выполняется посредством элемента блока. Например, процесс кодирования/декодирования, такой как преобразование, квантование, предсказание, фильтрование в контуре, восстановление и т.п., может выполняться в отношении блока кодирования, блока преобразования или блока предсказания.Video encoding and decoding is performed through a block element. For example, an encoding/decoding process such as transform, quantization, prediction, in-loop filtering, reconstruction, and the like may be performed on an encoding block, a transform block, or a prediction block.

Далее блок, подлежащий кодированию/декодированию, будет называться «текущим блоком». Например, текущий блок может представлять блок кодирования, блок преобразования или блок предсказания согласно текущему этапу процесса кодирования/декодирования.In the following, the block to be encoded/decoded will be referred to as the “current block”. For example, the current block may represent an encoding block, a transform block, or a prediction block according to the current stage of the encoding/decoding process.

Кроме того, следует понимать, что термин «элемент», используемый в настоящем описании, обозначает базовый элемент для выполнения конкретного процесса кодирования/декодирования, и термин «блок» обозначает массив отсчетов предварительно определенного размера. Если не указано иное, «блок» и «элемент» могут использоваться с одинаковым значением. Например, в варианте осуществления, описанном ниже, следует понимать, что блок кодирования и элемент кодирования имеют одинаковое значение.In addition, it should be understood that the term "element" as used herein denotes a basic element for performing a particular encoding/decoding process, and the term "block" denotes an array of samples of a predetermined size. Unless otherwise specified, "block" and "element" may be used with the same meaning. For example, in the embodiment described below, it should be understood that a coding block and a coding element have the same meaning.

На фиг. 1 представлена структурная схема, показывающая видеокодер согласно одному варианту осуществления настоящего изобретения.In fig. 1 is a block diagram showing a video encoder according to one embodiment of the present invention.

Как показано на фиг. 1, устройство 100 кодирования видео может содержать часть 110 для разбиения изображений, части 120 и 125 для предсказания, часть 130 для преобразования, часть 135 для квантования, часть 160 для перестановки, часть 165 для энтропийного кодирования, часть 140 для обратного квантования, часть 145 для обратного преобразования, часть 150 для фильтрации и запоминающее устройство 155.As shown in FIG. 1, the video encoding apparatus 100 may include an image partitioning portion 110, prediction portions 120 and 125, a transform portion 130, a quantization portion 135, a permutation portion 160, an entropy encoding portion 165, an inverse quantization portion 140, and a portion 145. for deconversion, a filtering portion 150, and a storage device 155.

Каждый из компонентов, показанных на фиг. 1, показан независимо, чтобы представить характерные функции, отличающиеся друг от друга в устройстве кодирования видео, но это не означает, что каждый компонент образован элементом конфигурации отдельного аппаратного обеспечения или одного программного обеспечения. То есть каждый компонент включен в список в качестве компонента для удобства объяснения, и по меньшей мере два из компонентов могут быть объединены для образования единого компонента, или один компонент может быть разделен на множество компонентов для выполнения функции. Варианты осуществления с объединением и варианты осуществления с разделением компонентов также входят в объем настоящего изобретения, если они не выходят за рамки сущности настоящего изобретения.Each of the components shown in FIG. 1 is shown independently to represent characteristic functions different from each other in a video encoding apparatus, but this does not mean that each component is constituted by a configuration item of a single hardware or a single software. That is, each component is listed as a component for convenience of explanation, and at least two of the components may be combined to form a single component, or one component may be divided into multiple components to perform a function. Combination embodiments and component separation embodiments are also included within the scope of the present invention as long as they do not depart from the spirit of the present invention.

Кроме того, некоторые из компонентов не являются важными компонентами, которые выполняют основные функции в настоящем изобретении, но могут быть необязательными компонентами только для повышения эффективности. Настоящее изобретение может быть реализовано путем включения только компонентов, необходимых для реализации сущности настоящего изобретения, за исключением компонентов, используемых для повышения эффективности, и конструкция, содержащая только необходимые компоненты, за исключением необязательных компонентов, используемых для повышения эффективности, также включена в объем настоящего изобретения.In addition, some of the components are not essential components that perform essential functions in the present invention, but may be optional components only to enhance efficiency. The present invention can be implemented by including only the components necessary to implement the essence of the present invention, excluding components used to improve efficiency, and a structure containing only the necessary components, excluding optional components used to increase efficiency, is also included within the scope of the present invention .

Часть 110 для разбиения изображений может применять разбиение к входному изображению для получения по меньшей мере одного элемента обработки. В этом случае элемент обработки может представлять собой элемент предсказания (PU), элемент преобразования (TU) или элемент кодирования (CU). Часть 110 для разбиения изображений может применять разбиение к изображению для получения совокупности, состоящей из множества элементов кодирования, элементов предсказания и элементов преобразования, и кодировать изображение за счет выбора совокупности элемента кодирования, элемента предсказания и элемента преобразования на основании предварительно определенного критерия (например, функции стоимости).The image partitioning portion 110 may apply partitioning to the input image to obtain at least one processing element. In this case, the processing element may be a prediction element (PU), a transformation element (TU), or a coding element (CU). The image partitioning portion 110 may apply partitioning to an image to obtain a plurality of encoding elements, prediction elements, and transform elements, and encode the image by selecting a plurality of encoding element, prediction element, and transform element based on a predetermined criterion (for example, a function cost).

Например, одно изображение может быть разбито на множество элементов кодирования. Для разбиения элементов кодирования в изображении может использоваться структура в виде рекурсивного дерева, такая как структура в виде четверичного дерева. Видео или элемент кодирования, разбитые на разные элементы кодирования с использованием наибольшего элемента кодирования в качестве корня, могут быть разбиты так, чтобы иметь столько же узлов-потомков, сколько разбитых элементов кодирования. Элемент кодирования, который больше не разбивается согласно предварительно определенному ограничению, становится листовым узлом. То есть, если предполагается, что возможно только квадратное разбиение для одного элемента кодирования, один элемент кодирования может быть разбит на не более чем четыре разных элемента кодирования.For example, a single image may be split into multiple encoding elements. A recursive tree structure, such as a quaternary tree structure, may be used to partition the encoding elements in an image. A video or encoding element split into different encoding elements using the largest encoding element as the root can be split to have as many child nodes as there are split encoding elements. An encoding element that is no longer split according to a predefined constraint becomes a leaf node. That is, if it is assumed that only a square partition is possible for one encoding element, one encoding element can be split into at most four different encoding elements.

Далее в варианте осуществления настоящего изобретения элемент кодирования может использоваться в значении элемента, выполняющего кодирование, или в значении элемента, выполняющего декодирование.Further, in an embodiment of the present invention, an encoding element may be used in the value of an element performing encoding or in the value of an element performing decoding.

Элемент предсказания может представлять собой элемент, разбитый в форме по меньшей мере одного квадрата, прямоугольника и т.п. одинакового размера в пределах одного элемента кодирования, или он может представлять собой любой элемент предсказания из элементов предсказания, разбитых в пределах одного элемента кодирования, который разбит так, что имеет форму и/или размер, отличающиеся от таковых другого элемента предсказания.The prediction element may be an element divided into the shape of at least one square, rectangle, or the like. the same size within a single encoding element, or it may be any prediction element of the prediction elements partitioned within a single encoding element that is partitioned to have a different shape and/or size from those of another prediction element.

Если элемент кодирования не является наименьшим элементом кодирования, когда генерируется элемент предсказания, который выполняет внутреннее предсказание на основании элемента кодирования, внутреннее предсказание может выполняться без разбиения изображения на множество элементов предсказания N×N.If the coding element is not the smallest coding element, when a prediction element that performs intra prediction based on the coding element is generated, intra prediction can be performed without dividing the image into a plurality of N×N prediction elements.

Части 120 и 125 для предсказания могут содержать часть 120 для предсказания, осуществляемого между изображениями, которая выполняет предсказание, осуществляемое между изображениями, и часть 125 для внутреннего предсказания, которая выполняет внутреннее предсказание. Может быть определено, использовать ли предсказание, осуществляемое между изображениями, или выполнить внутреннее предсказание для элемента предсказания, и определить конкретную информацию (например, режим внутреннего предсказания, вектор движения, опорное изображение и т.д.) согласно каждому способу предсказания. В этом случае элемент обработки для выполнения предсказания может отличаться от элемента обработки для определения способа предсказания и конкретного содержимого. Например, способ предсказания и режим предсказания могут быть определены в элементе предсказания, и предсказание может выполняться в элементе преобразования. Остаточный коэффициент (остаточный блок) между сгенерированным блоком предсказания и первоначальным блоком может быть введен в часть 130 для преобразования. Кроме того, информация о режиме предсказания, информация о векторе движения и т.п., используемые для предсказания, могут быть кодированы посредством части 165 для энтропийного кодирования вместе с остаточным коэффициентом и переданы на декодер. Когда используется конкретный режим кодирования, первоначальный блок может быть кодирован как есть и передан на декодер без генерирования блока предсказания посредством частей 120 и 125 для предсказания.The prediction portions 120 and 125 may include an inter-picture prediction portion 120 that performs inter-picture prediction and an intra prediction portion 125 that performs intra prediction. It can be determined whether to use inter-picture prediction or perform intra prediction on a prediction element, and determine specific information (eg, intra prediction mode, motion vector, reference image, etc.) according to each prediction method. In this case, the processing element for performing the prediction may be different from the processing element for determining the prediction method and the specific content. For example, a prediction method and a prediction mode may be determined in a prediction element, and prediction may be performed in a transform element. A residual coefficient (residual block) between the generated prediction block and the original block may be input to the transformation portion 130. In addition, prediction mode information, motion vector information, and the like used for prediction can be encoded by the entropy encoding portion 165 together with a residual coefficient and transmitted to the decoder. When a particular encoding mode is used, the original block can be encoded as is and transmitted to the decoder without generating a prediction block by the prediction portions 120 and 125.

Часть 120 для предсказания, осуществляемого между изображениями, может предсказывать элемент предсказания на основании информации о по меньшей мере одном изображении из изображений перед текущим изображением или после него, и в некоторых случаях она может предсказывать элемент предсказания на основании информации о частичной области, которая была закодирована в текущем изображении. Часть 120 для предсказания, осуществляемого между изображениями, может содержать часть для интерполяции опорного изображения, часть для предсказания движения и часть для компенсации движения.The inter-picture prediction portion 120 may predict a prediction element based on information about at least one image of the images before or after the current image, and in some cases, it may predict a prediction element based on information about a partial region that has been encoded. in the current image. The inter-image prediction portion 120 may include a reference image interpolation portion, a motion prediction portion, and a motion compensation portion.

Часть для интерполяции опорного изображения может принимать информацию об опорном изображении от запоминающего устройства 155 и генерировать информацию об отсчете для целого числа отсчетов или меньше из опорного изображения. В случае отсчета яркости 8-отводный интерполяционный фильтр на основе DCT с переменным коэффициентом фильтрования может использоваться для генерирования информации об отсчете для целого числа отсчетов или меньше посредством элемента, состоящего из 1/4 отсчетов. В случае цветоразностного сигнала 4-отводный интерполяционный фильтр на основе DCT с переменным коэффициентом фильтрования может использоваться для генерирования информации об отсчете для целого числа отсчетов или меньше посредством элемента, состоящего из 1/8 отсчетов.The reference image interpolation portion may receive reference image information from the memory 155 and generate sample information for an integer number of samples or less from the reference image. In the case of luminance samples, an 8-tap DCT-based interpolation filter with a variable filter coefficient can be used to generate sample information for an integer number of samples or less through a 1/4 sample element. In the case of a color difference signal, a 4-tap DCT-based interpolation filter with a variable filter coefficient can be used to generate sample information for an integer number of samples or less through a 1/8-sample element.

Часть для предсказания движения может выполнять предсказание движения на основании опорного изображения, интерполированного частью для интерполяции опорного изображения. Различные способы, такие как алгоритм сопоставления блоков на основе полного поиска (FBMA), трехступенчатый поиск (TSS), алгоритм нового трехступенчатого поиска (NTS) и т.п., могут использоваться в качестве способа вычисления вектора движения. Вектор движения может иметь значение вектора движения в виде элемента, состоящего из 1/2 или 1/4 отсчетов, на основании интерполированных отсчетов. Часть для предсказания движения может предсказывать текущий элемент предсказания за счет изменения способа предсказания движения. Различные способы, такие как способ пропуска, способ слияния, способ усовершенствованного предсказания вектора движения (AMVP), способ внутриблочного копирования и т.п., могут использоваться в качестве способа предсказания движения.The motion prediction portion may perform motion prediction based on a reference image interpolated by the reference image interpolation portion. Various methods such as Full Search Based Block Matching Algorithm (FBMA), Three Stage Search (TSS), New Three Stage Search (NTS) algorithm, and the like can be used as the motion vector calculation method. The motion vector may have a motion vector value as a 1/2 or 1/4 sample element based on the interpolated samples. The motion prediction portion may predict the current prediction element by changing the motion prediction method. Various methods such as a skip method, a merging method, an advanced motion vector prediction (AMVP) method, an intra-block copy method, etc. can be used as the motion prediction method.

Часть 125 для внутреннего предсказания может генерировать элемент предсказания на основании информации об опорных отсчетах, расположенных поблизости от текущего блока, которая представляет собой информацию об отсчете в текущем изображении. Когда блок, находящийся поблизости от текущего элемента предсказания, представляет собой блок, в отношении которого было выполнено предсказание, осуществляемое между изображениями, и, таким образом, опорный отсчет представляет собой отсчет, в отношении которого было выполнено предсказание, осуществляемое между изображениями, опорный отсчет, включенный в блок, в отношении которого было выполнено предсказание, осуществляемое между изображениями, может использоваться вместо информации об опорном отсчете блока, находящегося поблизости, в отношении которого было выполнено внутреннее предсказание. То есть, когда опорный отсчет недоступен, по меньшей мере один опорный отсчет из доступных опорных отсчетов может использоваться вместо недоступной информации об опорном отсчете.The intra prediction portion 125 may generate a prediction element based on information about reference samples located in the vicinity of the current block, which is information about a sample in the current image. When a block adjacent to the current prediction element is a block on which inter-picture prediction has been performed, and thus the reference sample is a count on which inter-picture prediction has been performed, the reference sample is included in a block that has been subject to inter-picture prediction may be used in place of the reference sample information of a nearby block that has been intra-predicted. That is, when a reference sample is not available, at least one reference sample from the available reference samples may be used instead of the unavailable reference sample information.

При внутреннем предсказании режим предсказания может предусматривать режим предсказания, основанный на информации об углах, в котором используется информация об опорном отсчете согласно направлению предсказания, и режим предсказания, не основанный на информации об углах, в котором не используется информация о направлении при выполнении предсказания. Режим для предсказания информации о яркости может отличаться от режима для предсказания информации о цветовой разности, и информация о режиме внутреннего предсказания, используемая для предсказания информации о яркости или информации о предсказанном сигнале яркости, может использоваться для предсказания информации о цветовой разности.In intra prediction, a prediction mode may include a prediction mode based on angle information, in which reference count information is used according to the prediction direction, and a prediction mode not based on angle information, in which direction information is not used when making prediction. The mode for predicting the luminance information may be different from the mode for predicting the color difference information, and the intra prediction mode information used to predict the luminance information or the predicted luminance signal information may be used to predict the color difference information.

Если размер элемента предсказания такой же, как размер элемента преобразования, когда выполняется внутреннее предсказание, внутреннее предсказание может выполняться для элемента предсказания на основании отсчета на левой стороне, отсчета на верхней левой стороне и отсчета сверху от элемента предсказания. Однако, если размер элемента предсказания отличается от размера элемента преобразования, когда выполняется внутреннее предсказание, внутреннее предсказание может выполняться с использованием опорного отсчета на основании элемента преобразования. Кроме того, внутреннее предсказание с использованием разбиения N×N может использоваться только для наименьшего элемента кодирования.If the size of the prediction element is the same as the size of the transform element when intra prediction is performed, intra prediction may be performed on the prediction element based on a sample on the left side, a sample on the upper left side, and a sample on top of the prediction element. However, if the size of the prediction element is different from the size of the transformation element when intra prediction is performed, intra prediction may be performed using a reference sample based on the transformation element. In addition, intra prediction using N×N partitioning can only be used for the smallest coding element.

Посредством способа внутреннего предсказания можно генерировать блок предсказания после применения фильтра адаптивного внутреннего сглаживания (AIS) к опорному отсчету согласно режиму предсказания. Тип фильтра AIS, применяемого к опорному отсчету, может меняться. Для выполнения способа внутреннего предсказания режим внутреннего предсказания текущего элемента предсказания может быть предсказан из режима внутреннего предсказания элемента предсказания, существующего поблизости от текущего элемента предсказания. Когда режим предсказания текущего элемента предсказания предсказан с использованием информации о режиме, предсказанной из соседнего элемента предсказания, если режимы внутреннего предсказания текущего элемента предсказания такие же, как элемент предсказания поблизости, то информация, указывающая, что режимы предсказания текущего элемента предсказания такие же, как элемент предсказания поблизости, может передаваться с использованием информации о предварительно определенном флаге, и если режимы предсказания текущего элемента предсказания и элемента предсказания поблизости отличаются друг от друга, информация о режиме предсказания текущего блока может быть кодирована за счет выполнения энтропийного кодирования.By the intra prediction method, a prediction block can be generated after applying an adaptive intra smoothing (AIS) filter to the reference sample according to the prediction mode. The type of AIS filter applied to the reference sample may vary. To perform the intra prediction method, the intra prediction mode of the current prediction element can be predicted from the intra prediction mode of the prediction element existing in the vicinity of the current prediction element. When the prediction mode of the current prediction element is predicted using mode information predicted from a neighboring prediction element, if the intra prediction modes of the current prediction element are the same as the nearby prediction element, then information indicating that the prediction modes of the current prediction element are the same as the element nearby prediction element can be transmitted using the predetermined flag information, and if the prediction modes of the current prediction element and the nearby prediction element are different from each other, the prediction mode information of the current block can be encoded by performing entropy encoding.

Кроме того, может быть сгенерирован остаточный блок, содержащий элемент предсказания, который выполнил предсказание на основании элемента предсказания, сгенерированного частями 120 и 125 для предсказания, и информации об остаточном коэффициенте, которая представляет собой значение разницы элемента предсказания от первоначального блока. Сгенерированный остаточный блок может быть введен в часть 130 для преобразования.In addition, a residual block may be generated containing a prediction element that has performed prediction based on the prediction element generated by the prediction portions 120 and 125 and residual coefficient information that is a difference value of the prediction element from the original block. The generated residual block may be input to the conversion portion 130.

Часть 130 для преобразования может преобразовывать остаточный блок, содержащий первоначальный блок и информацию об остаточном коэффициенте элемента предсказания, сгенерированного посредством частей 120 и 125 для предсказания, с помощью способа преобразования, такого как дискретное косинусное преобразование (DCT) или дискретное синусное преобразование (DST). В этом случае основа преобразования DCT содержит по меньшей мере одно из DCT2 или DCT8, и основа преобразования DST содержит DST7. Применять или не применять DCT или DST для преобразования остаточного блока, может быть определено на основании информации о режиме внутреннего предсказания элемента предсказания, используемого для генерирования остаточного блока. Преобразование в отношении остаточного блока может быть пропущено. Может кодироваться флаг, указывающий, пропускать или не пропускать преобразование в отношении остаточного блока. Пропуск преобразования может быть разрешен для остаточного блока, имеющего размер, который меньше, чем пороговое значение, или равняется ему, компонента яркости или компонента цветности при формате 4:4:4.The transform portion 130 may transform the residual block containing the original block and the residual coefficient information of the prediction element generated by the prediction portions 120 and 125 using a transformation method such as discrete cosine transform (DCT) or discrete sine transform (DST). In this case, the DCT transform base contains at least one of DCT2 or DCT8, and the DST transform base contains DST7. Whether or not to apply DCT or DST to transform the residual block can be determined based on information about the intra prediction mode of the prediction element used to generate the residual block. The transformation regarding the remainder block may be skipped. A flag may be encoded indicating whether or not to skip the conversion with respect to the remainder block. Skip conversion may be allowed for a residual block having a size that is less than or equal to the threshold, luma component, or chrominance component in a 4:4:4 format.

Часть 135 для квантования может квантовать значения, преобразованные в частотную область посредством части 130 для преобразования. Коэффициенты квантования могут изменяться в зависимости от блока или важности видео. Значение, вычисленное частью 135 для квантования, может быть предоставлено в часть 140 для обратного квантования и часть 160 для перестановки.The quantization portion 135 may quantize the values converted to the frequency domain by the conversion portion 130. Quantization factors may vary depending on the block or importance of the video. The value calculated by the quantization portion 135 may be provided to the inverse quantization portion 140 and the permutation portion 160.

Часть 160 для перестановки может выполнять перестановку значений коэффициентов для квантованных остаточных коэффициентов.The permutation portion 160 may perform permutation of coefficient values for the quantized residual coefficients.

Часть 160 для перестановки может изменять коэффициенты двумерной формы блока на одномерную векторную форму посредством способа сканирования коэффициентов. Например, часть 160 для перестановки может сканировать от коэффициентов DC до коэффициентов высокочастотной области с использованием способа зигзагообразного сканирования и менять коэффициенты с приданием им одномерной векторной формы. Согласно размеру элемента преобразования и режиму внутреннего предсказания вместо зигзагообразного сканирования может использоваться вертикальное сканирование в виде сканирования коэффициентов двумерной формы блока в направлении столбцов и горизонтальное сканирование коэффициентов двумерной формы блока в направлении строк. То есть согласно размеру элемента преобразования и режиму внутреннего предсказания может быть определен способ сканирования, который будет использоваться, из зигзагообразного сканирования, сканирования в вертикальном направлении и сканирования в горизонтальном направлении.The permutation portion 160 may change the coefficients of a two-dimensional block shape to a one-dimensional vector shape through a coefficient scanning method. For example, the permutation portion 160 may scan from the DC coefficients to the high frequency domain coefficients using a zigzag scanning method and change the coefficients into a one-dimensional vector form. According to the size of the transform element and the intra prediction mode, instead of zigzag scanning, vertical scanning in the form of scanning of two-dimensional block shape coefficients in the column direction and horizontal scanning of two-dimensional block shape coefficients in the row direction can be used. That is, according to the transform element size and the intra prediction mode, the scanning method to be used from zigzag scanning, vertical direction scanning, and horizontal direction scanning can be determined.

Часть 165 для энтропийного кодирования может выполнять энтропийное кодирование на основании значений, вычисленных частью 160 для перестановки. Для энтропийного кодирования могут использоваться различные способы кодирования, такие как кодирование экспоненциальным способом Голомба, контекстно-адаптивное кодирование с переменной длиной слова (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и т.п.The entropy encoding portion 165 may perform entropy encoding based on the values calculated by the permutation portion 160. For entropy coding, various encoding methods can be used, such as exponential Golomb coding, context-adaptive variable-length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), and the like.

Часть 165 для энтропийного кодирования может кодировать различную информацию, такую как информация об остаточном коэффициенте и информация о типе блока элемента кодирования, информация о режиме предсказания, информация об элементе разбиения, информация об элементе предсказания и информация об элементе передачи, информация о векторе движения, информация об опорном кадре, информация об интерполяции блока и информация о фильтрации, которая введена из части 160 для перестановки и частей 120 и 125 для предсказания.The entropy encoding portion 165 may encode various information such as residual coefficient information and coding element block type information, prediction mode information, split element information, prediction element information and transmission element information, motion vector information, information about the reference frame, block interpolation information, and filtering information that is input from the permutation portion 160 and the prediction portions 120 and 125.

Часть 165 для энтропийного кодирования может выполнять энтропийное кодирование значения коэффициента элемента кодирования, введенного из части 160 для перестановки.The entropy encoding portion 165 may perform entropy encoding of the coefficient value of the encoding element input from the permutation portion 160.

Часть 140 для обратного квантования и часть 145 для обратного преобразования выполняют обратное квантование значений, квантованных посредством части 135 для квантования, и обратное преобразование значений, преобразованных посредством части 130 для преобразования. Остаточный коэффициент, сгенерированный частью 140 для обратного квантования и частью 145 для обратного преобразования, может быть объединен с элементом предсказания, предсказанным посредством части для оценки движения, часть для компенсации движения и части для внутреннего предсказания, включенных в части 120 и 125 для предсказания, для генерирования восстановленного блока.The inverse quantization portion 140 and the inverse transform portion 145 perform inverse quantization of the values quantized by the quantization portion 135 and inverse transform of the values transformed by the transform portion 130. The residual coefficient generated by the inverse quantization portion 140 and the inverse transform portion 145 may be combined with a prediction element predicted by the motion estimation portion, the motion compensation portion, and the intra prediction portion included in the prediction portions 120 and 125 to generating a recovered block.

Часть 150 для фильтрации может содержать по меньшей мере одно из деблочного фильтра, элемента для коррекции смещения и адаптивного контурного фильтра (ALF).The filtering portion 150 may comprise at least one of a deblocking filter, an offset correction element, and an adaptive loop filter (ALF).

Деблочный фильтр может удалять искажение блока, возникающее на границе между блоками в восстановленном изображении. Определение того, выполнять ли удаление блочности, применять ли деблочный фильтр к текущему блоку, может осуществляться на основании отсчетов, содержащихся в нескольких столбцах или строках, содержащихся в блоке. Сильный фильтр или слабый фильтр может применяться согласно необходимой степени фильтрации для удаления блочности при применении деблочного фильтра к блоку. Кроме того, когда выполняются фильтрация в вертикальном направлении и фильтрация в горизонтальном направлении при применении деблочного фильтра, фильтрация в вертикальном направлении и фильтрация в горизонтальном направлении могут осуществляться параллельно.The deblocking filter can remove block distortion occurring at the boundary between blocks in the reconstructed image. Determining whether to deblock or apply a deblocking filter to the current block can be made based on samples contained in multiple columns or rows contained in the block. A strong filter or a weak filter can be applied according to the required degree of filtering to remove blocking when applying a deblocking filter to a block. In addition, when vertical direction filtering and horizontal direction filtering are performed when using a deblocking filter, vertical direction filtering and horizontal direction filtering can be performed in parallel.

Элемент для коррекции смещения может корректировать смещение первоначального видео посредством элемента отсчета для видео, в отношении которого было выполнено удаление блочности. Для выполнения коррекции смещения для конкретного изображения можно использовать способ разделения отсчетов, включенных в видео, на определенное количество областей, определения области для выполнения смещения, и применения смещения к области, или способ применения смещения, учитывающий информацию о крае каждого отсчета.The offset correction element may correct the offset of the original video by a reference element for the video that has been deblocked. To perform offset correction for a particular image, you can use a method of dividing the samples included in the video into a certain number of regions, defining an area to perform the offset, and applying the offset to the area, or a method of applying the offset that takes into account the edge information of each sample.

Адаптивная контурная фильтрация (ALF) может выполняться на основании значения, полученного посредством сравнения восстановленного и отфильтрованного видео с первоначальным видео. После разделения отсчетов, включенных в видео, на предварительно определенные группы, может быть определен один фильтр, который должен применяться к соответствующей группе, и фильтрация может выполняться по-разному для каждой группы. Сигнал яркости, который представляет собой информацию, связанную с тем, применять ли ALF, может передаваться для каждого элемента кодирования (CU), и форма и коэффициент фильтрования фильтра ALF, который должен быть применен, могут варьировать в зависимости от каждого блока. Кроме того, фильтр ALF того же типа (фиксированного типа) может применяться независимо от характеристики применяемого блока.Adaptive contour filtering (ALF) can be performed based on the value obtained by comparing the reconstructed and filtered video with the original video. After dividing the samples included in the video into predefined groups, a single filter can be defined to be applied to the corresponding group, and filtering can be performed differently for each group. A luminance signal, which is information related to whether to apply ALF, may be transmitted for each coding unit (CU), and the shape and filter coefficient of the ALF filter to be applied may vary depending on each block. In addition, an ALF filter of the same type (fixed type) can be applied regardless of the characteristic of the block used.

Запоминающее устройство 155 может хранить восстановленный блок или изображение, вычисленные посредством части 150 для фильтрации, и восстановленный и сохраненный блок или изображение могут быть предоставлены в части 120 и 125 для предсказания при выполнении предсказания, осуществляемого между изображениями.The storage device 155 may store the reconstructed block or image calculated by the filtering portion 150, and the reconstructed and stored block or image may be provided to the prediction portions 120 and 125 when performing inter-image prediction.

На фиг. 2 представлена структурная схема, показывающая видеодекодер согласно одному варианту осуществления настоящего изобретения.In fig. 2 is a block diagram showing a video decoder according to one embodiment of the present invention.

Как показано на фиг. 2, видеодекодер 200 может содержать часть 210 для энтропийного декодирования, часть 215 для перестановки, часть 220 для обратного квантования, часть 225 для обратного преобразования, части 230 и 235 для предсказания, часть 240 для фильтрации и запоминающее устройство 245.As shown in FIG. 2, video decoder 200 may include an entropy decoding portion 210, a permutation portion 215, an inverse quantization portion 220, an inverse transform portion 225, prediction portions 230 and 235, a filtering portion 240, and a memory 245.

Когда битовый поток видео вводится из видеокодера, входной битовый поток может быть декодирован согласно процедуре, противоположной процедуре работы видеокодера.When a video bitstream is input from a video encoder, the input bitstream can be decoded according to a procedure opposite to that of the video encoder.

Часть 210 для энтропийного декодирования может выполнять энтропийное декодирование согласно процедуре, противоположной процедуре выполнения энтропийного кодирования в части для энтропийного декодирования видеокодера. Например, могут применяться различные способы, соответствующие способу, выполняемому видеокодером, такие как кодирование экспоненциальным способом Голомба, контекстно-адаптивное кодирование с переменной длиной слова (CAVLC) и контекстно-адаптивное двоичное арифметическое кодирование (CABAC).The entropy decoding portion 210 may perform entropy decoding according to a procedure opposite to the procedure of performing entropy encoding in the entropy decoding portion of the video encoder. For example, various methods corresponding to the method performed by the video encoder may be used, such as exponential Golomb coding, context adaptive variable length coding (CAVLC), and context adaptive binary arithmetic coding (CABAC).

Часть 210 для энтропийного декодирования может декодировать информацию, связанную с внутренним предсказанием и предсказанием, осуществляемым между изображениями, выполняемыми кодером.The entropy decoding portion 210 can decode information related to intra prediction and inter-picture prediction performed by the encoder.

Часть 215 для перестановки может выполнять перестановку в отношении битового потока, подвергнутого энтропийному декодированию посредством части 210 для энтропийного декодирования, на основании способа перестановки, выполняемого кодером. Коэффициенты, выраженные в одномерной векторной форме, могут быть восстановлены и переставлены как коэффициенты в двумерной форме блока. Часть 215 для перестановки может принимать информацию, связанную со сканированием коэффициентов, выполняемым частью для кодирования, и выполнять восстановление посредством способа обратного сканирования на основании порядка сканирования, выполняемого соответствующей частью для кодирования.The permutation portion 215 may perform permutation on the bit stream subjected to entropy decoding by the entropy decoding portion 210 based on the permutation method performed by the encoder. Coefficients expressed in one-dimensional vector form can be recovered and rearranged as coefficients in two-dimensional block form. The permutation portion 215 may receive information related to coefficient scanning performed by the encoding portion and perform reconstruction by an inverse scan method based on the scanning order performed by the corresponding encoding portion.

Часть 220 для обратного квантования может выполнять обратное квантование на основании параметра квантования, предоставленного кодером, и значения коэффициента переставленного блока.The inverse quantization portion 220 may perform inverse quantization based on the quantization parameter provided by the encoder and the permuted block coefficient value.

Часть 225 для обратного преобразования может выполнять обратное преобразование в отношении элемента преобразования, т.е., DCT или DST, выполняемое частью для преобразования в отношении результата квантования, выполняемого видеокодером, т.е. обратное DCT или обратное DST. В этом случае основа преобразования DCT может содержать по меньшей мере одно из DCT2 и DCT8, и основа преобразования DST может содержать DST7. Альтернативно, когда преобразование в видеокодере пропускается, часть 225 для обратного преобразования также может не выполнять обратное преобразование. Обратное преобразование может выполняться на основании элемента передачи, определенного видеокодером. Часть 225 для обратного преобразования видеодекодера может выборочно выполнять метод преобразования (например, DCT или DST) согласно множеству фрагментов информации, такой как способ предсказания, размер текущего блока, направление предсказания и т.п.The de-transforming portion 225 may perform the de-transforming on a transform element, i.e., DCT or DST, performed by the transforming portion on a quantization result performed by the video encoder, i.e. reverse DCT or reverse DST. In this case, the DCT transform base may comprise at least one of DCT2 and DCT8, and the DST transform base may comprise DST7. Alternatively, when conversion is skipped in the video encoder, the de-conversion portion 225 may also skip the de-conversion. The inverse conversion may be performed based on the transfer element determined by the video encoder. The video decoder deconversion portion 225 may selectively perform a conversion method (eg, DCT or DST) according to a plurality of pieces of information such as a prediction method, a current block size, a prediction direction, and the like.

Части 230 и 235 для предсказания могут генерировать блок предсказания на основании информации, относящейся к генерированию блока предсказания, предоставленного энтропийным декодером 210, и информации о ранее декодированном блоке или изображении, предоставленном запоминающим устройством 245.The prediction parts 230 and 235 may generate a prediction block based on the prediction block generation-related information provided by the entropy decoder 210 and the previously decoded block or image information provided by the storage device 245.

Как описано выше, если размер элемента предсказания и размер элемента преобразования одинаковы, когда внутреннее предсказание выполняется таким же образом, как операция в видеокодере, внутреннее предсказание выполняется в отношении элемента предсказания на основании отсчета, находящегося на левой стороне, отсчета на верхней левой стороне и отсчета сверху от элемента предсказания. Однако, если размер элемента предсказания и размер элемента преобразования отличаются друг от друга, когда выполняется внутреннее предсказание, внутреннее предсказание может выполняться с использованием опорного отсчета на основании элемента преобразования. Кроме того, внутреннее предсказание с использованием разбиения N×N может использоваться только для наименьшего элемента кодирования.As described above, if the size of the prediction element and the size of the transform element are the same, when intra prediction is performed in the same way as the operation in a video encoder, intra prediction is performed on the prediction element based on the sample located on the left side, the sample on the upper left side and the sample above the prediction element. However, if the size of the prediction element and the size of the transformation element are different from each other when intra prediction is performed, intra prediction may be performed using a reference sample based on the transformation element. In addition, intra prediction using N×N partitioning can only be used for the smallest coding element.

Части 230 и 235 для предсказания могут содержать часть для определения элемента предсказания, часть для предсказания, осуществляемого между изображениями, и часть для внутреннего предсказания. Часть для определения элемента предсказания может принимать различную информацию, такую как информация об элементе предсказания, введенная от части 210 для энтропийного декодирования, информация о режиме предсказания для способа внутреннего предсказания, информация, относящаяся к предсказанию движения для способа предсказания, осуществляемого между изображениями, и т.п., идентифицировать элемент предсказания из текущего элемента кодирования и определять, выполняет элемент предсказания предсказание, осуществляемое между изображениями, или внутреннее предсказание. Часть 230 для предсказания, осуществляемого между изображениями, может выполнять предсказание, осуществляемое между изображениями, в отношении текущего элемента предсказания на основании информации, включенной в по меньшей мере одно изображение из изображений до или после текущего изображения, включая текущий элемент предсказания, за счет использования информации, необходимой для предсказания, осуществляемого между изображениями, текущего элемента предсказания, предоставленного видеокодером. Альтернативно часть 230 для предсказания, осуществляемого между изображениями, может выполнять предсказание, осуществляемое между изображениями, на основании информации о частичной области, ранее восстановленной в текущем изображении, содержащем текущий элемент предсказания.The prediction portions 230 and 235 may include a prediction element determination portion, an inter-picture prediction portion, and an intra prediction portion. The prediction element determination portion may receive various information such as prediction element information inputted from the entropy decoding portion 210, prediction mode information for the intra prediction method, motion prediction related information for the inter-picture prediction method, etc. etc., identify a prediction element from the current encoding element and determine whether the prediction element performs inter-picture prediction or intra-prediction. The inter-picture prediction portion 230 may perform inter-picture prediction regarding the current prediction element based on information included in at least one image of the images before or after the current image, including the current prediction element, by using the information , necessary for inter-picture prediction of the current prediction element provided by the video encoder. Alternatively, the inter-image prediction portion 230 may perform inter-image prediction based on the partial region information previously reconstructed in the current image containing the current prediction element.

Для выполнения предсказания, осуществляемого между изображениями, можно определить на основании элемента кодирования, является способ предсказания движения элемента предсказания, включенного в соответствующий элемент кодирования, режимом пропуска, режимом слияния, режимом предсказания вектора движения (режимом AMVP) или режимом внутриблочного копирования.To perform prediction carried out between pictures, it can be determined based on the encoding element whether the motion prediction method of the prediction element included in the corresponding encoding element is a skip mode, a merging mode, a motion vector prediction mode (AMVP mode), or an intra-block copy mode.

Часть 235 для внутреннего предсказания может генерировать блок предсказания на основании информации об отсчете в текущем изображении. Когда элемент предсказания представляет собой элемент предсказания, который выполнил внутреннее предсказание, внутреннее предсказание может быть выполнено на основании информации о режиме внутреннего предсказания элемента предсказания, предоставленного видеокодером. Часть 235 для внутреннего предсказания может содержать фильтр адаптивного внутреннего сглаживания (AIS), часть для интерполяции опорного отсчета и фильтр DC. Фильтр AIS представляет собой часть, которая выполняет фильтрацию в отношении опорного отсчета текущего блока, и может определять, применять ли фильтр согласно режиму предсказания текущего элемента предсказания, и применять фильтр. Фильтрация AIS может выполняться в отношении опорного отсчета текущего блока за счет использования режима предсказания и информации о фильтре AIS элемента предсказания, предоставленного видеокодером. Когда режим предсказания текущего блока представляет собой режим, который не выполняет фильтрацию AIS, фильтр AIS может не применяться.The intra prediction portion 235 may generate a prediction block based on the sample information in the current image. When the prediction element is a prediction element that has performed intra prediction, intra prediction may be performed based on the intra prediction mode information of the prediction element provided by the video encoder. The intra prediction portion 235 may include an adaptive intra smoothing (AIS) filter, a reference sample interpolation portion, and a DC filter. The AIS filter is a part that performs filtering on a reference sample of the current block, and can determine whether to apply a filter according to the prediction mode of the current prediction element, and apply the filter. AIS filtering can be performed on a reference sample of the current block by using the prediction mode and prediction element AIS filter information provided by the video encoder. When the prediction mode of the current block is a mode that does not perform AIS filtering, the AIS filter may not be applied.

Когда режим предсказания элемента предсказания представляет собой элемент предсказания, который выполняет внутреннее предсказание на основании значения отсчета, полученного за счет интерполяции опорного отсчета, часть для интерполяции опорного отсчета может генерировать опорный отсчет элемента, состоящего из отсчетов, который имеет целое значение или меньше за счет интерполяции опорного отсчета. Когда режим предсказания текущего элемента предсказания представляет собой режим предсказания, который генерирует блок предсказания без интерполяции опорного отсчета, опорный отсчет может не быть интерполирован. Фильтр DC может генерировать блок предсказания посредством фильтрации, когда режим предсказания текущего блока представляет собой режим DC.When the prediction element prediction mode is a prediction element that performs intra prediction based on a sample value obtained by interpolating a reference sample, the reference sample interpolation part may generate a reference sample of an element composed of samples that has an integer value or less by interpolation reference count. When the prediction mode of the current prediction element is a prediction mode that generates a prediction block without interpolating a reference sample, the reference sample may not be interpolated. The DC filter may generate a prediction block by filtering when the prediction mode of the current block is a DC mode.

Восстановленный блок или изображение могут быть предоставлены в часть 240 для фильтрации. Часть 240 для фильтрации может содержать деблочный фильтр, элемент для коррекции смещения и ALF.The reconstructed block or image may be provided to part 240 for filtering. The filtering portion 240 may include a deblocking filter, an offset correction element, and an ALF.

Информация о том, применять ли деблочный фильтр к соответствующему блоку или изображению, и информация о том, применять сильный фильтр или слабый фильтр, когда применяется деблочный фильтр, могут быть предоставлены видеокодером. В деблочный фильтр видеодекодера может быть предоставлена информация, связанная с деблочным фильтром, предоставленная видеокодером, и видеодекодер может выполнять фильтрацию для удаления блочности в отношении соответствующего блока.Information about whether to apply a deblocking filter to the corresponding block or image, and information about whether to apply a strong filter or a weak filter when the deblocking filter is applied may be provided by the video encoder. The video decoder deblocking filter may be provided with information associated with the deblocking filter provided by the video encoder, and the video decoder may perform deblocking filtering on the corresponding block.

Элемент для коррекции смещения может выполнять коррекцию смещения в отношении восстановленного видео на основании типа коррекции смещения и информации о значении смещения, применяемых к видео при выполнении кодирования.The offset correction element may perform offset correction on the reconstructed video based on the offset correction type and offset value information applied to the video when encoding is performed.

ALF может применяться к элементу кодирования на основании информации о том, следует или нет применять ALF, и информации о коэффициентах ALF, предоставленной кодером. Информация об ALF может быть предоставлена для включения в набор конкретных параметров.ALF may be applied to an encoding element based on information about whether or not ALF should be applied and information about ALF coefficients provided by the encoder. ALF information can be provided for inclusion in a set of specific parameters.

Запоминающее устройство 245 может хранить восстановленное изображение или блок и использовать их в качестве опорного изображения или опорного блока и может предоставлять восстановленное изображение на элемент вывода.Storage device 245 may store the reconstructed image or block and use it as a reference image or reference block, and may provide the reconstructed image to an output element.

На фиг. 3 представлен вид, показывающий базовый элемент кодового дерева согласно одному варианту осуществления настоящего изобретения.In fig. 3 is a view showing a code tree base element according to one embodiment of the present invention.

Блок кодирования максимального размера может быть определен как блок кодового дерева. Изображение разбивается на множество элементов кодового дерева (CTU). Элемент кодового дерева представляет собой элемент кодирования, имеющий максимальный размер, и может называться большим элементом кодирования (LCU). На фиг. 3 представлен пример, в котором изображение разбивается на множество элементов кодового дерева.A maximum size coding block can be defined as a code tree block. The image is divided into many code tree units (CTUs). A code tree element is a coding element having a maximum size and may be called a large coding unit (LCU). In fig. Figure 3 shows an example in which an image is divided into many code tree elements.

Размер элемента кодового дерева может быть определен на уровне изображения или уровне последовательности. Для этого информация, указывающая размер элемента кодового дерева, может быть передана посредством набора параметров изображения или набора параметров последовательности.The size of a code tree element can be determined at the image level or the sequence level. To do this, information indicating the size of the code tree element may be transmitted by an image parameter set or a sequence parameter set.

Например, размер элемента кодового дерева для всего изображения в последовательности может быть установлен равным 128×128. Альтернативно на уровне изображения любой размер из 128×128 и 256×256 может быть определен как размер элемента кодового дерева. Например, размер элемента кодового дерева может быть установлен равным 128×128 в первом изображении, и размер элемента кодового дерева может быть установлен равным 256×256 во втором изображении.For example, the code tree element size for the entire image in the sequence can be set to 128×128. Alternatively, at the image level, any size between 128×128 and 256×256 may be defined as the code tree element size. For example, the code tree element size may be set to 128×128 in the first image, and the code tree element size may be set to 256×256 in the second image.

Блоки кодирования могут быть сгенерированы посредством разбиения элемента кодового дерева. Блок кодирования указывает базовый элемент для выполнения кодирования/декодирования. Например, предсказание или преобразование может выполняться для каждого блока кодирования, или режим кодирования с предсказанием может быть определен для каждого блока кодирования. В данном случае режим кодирования с предсказанием указывает способ генерирования изображения предсказания. Например, режим кодирования с предсказанием может включать предсказание в пределах изображения (внутреннее предсказание), предсказание между изображениями (предсказание, осуществляемое между изображениями), привязку к текущему изображению (CPR), или внутриблочное копирование (IBC), или комбинированное предсказание. Для блока кодирования блок предсказания может быть сгенерирован за счет использования по меньшей мере одного режима кодирования с предсказанием из внутреннего предсказания, предсказания, осуществляемого между изображениями, привязки к текущему изображению и комбинированного предсказания.Coding blocks can be generated by splitting a code tree element. The encoding block specifies a base element for performing encoding/decoding. For example, prediction or transformation may be performed for each encoding block, or a predictive encoding mode may be determined for each encoding block. Here, the predictive encoding mode indicates a method for generating a prediction image. For example, the predictive coding mode may include intra-picture prediction (intra-picture prediction), inter-picture prediction (inter-picture prediction), current picture reference (CPR), or intra-block copy (IBC), or combined prediction. For a coding block, a prediction block may be generated by using at least one predictive coding mode of intra prediction, inter-picture prediction, anchor to current picture, and combined prediction.

Информация, указывающая режим кодирования с предсказанием текущего блока, может передаваться посредством битового потока. Например, информация может представлять собой 1-битный флаг, указывающий, является режим кодирования с предсказанием внутренним режимом или режимом, осуществляемым между изображениями. Только когда режим кодирования с предсказанием текущего блока определен как режим, осуществляемый между изображениями, может использоваться привязка к текущему изображению или комбинированное предсказание.Information indicating the predictive encoding mode of the current block may be transmitted via a bitstream. For example, the information may be a 1-bit flag indicating whether the predictive coding mode is an intra-picture mode or an inter-picture mode. Only when the predictive encoding mode of the current block is determined to be an inter-picture mode can lock to the current picture or combined prediction be used.

Привязка к текущему изображению предназначена для установления текущего изображения как опорного изображения и получения блока предсказания текущего блока из области, которая уже была кодирована/декодирована в текущем изображении. В данном случае текущее изображение означает изображение, содержащее текущий блок. Информация, указывающая, применяется ли привязка к текущему изображению к текущему блоку, может быть передана посредством битового потока. Например, информация может представлять собой 1-битный флаг. Когда флаг является истинным, режим кодирования с предсказанием текущего блока может быть определен как привязка к текущему изображению, а когда флаг является ложным, режим предсказания текущего блока может быть определен как предсказание, осуществляемое между изображениями.The purpose of snapping to the current picture is to establish the current picture as a reference picture and obtain the prediction block of the current block from the region that has already been encoded/decoded in the current picture. In this case, the current image means the image containing the current block. Information indicating whether an anchor to the current image is applied to the current block may be transmitted via a bitstream. For example, the information may be a 1-bit flag. When the flag is true, the predictive encoding mode of the current block can be defined as anchor to the current picture, and when the flag is false, the predictive mode of the current block can be defined as inter-picture prediction.

Альтернативно режим кодирования с предсказанием текущего блока может быть определен на основании индекса опорного изображения. Например, когда индекс опорного изображения указывает текущее изображение, режим кодирования с предсказанием текущего блока может быть определен как привязка к текущему изображению. Когда индекс опорного изображения указывает изображение, отличающееся от текущего изображения, режим кодирования с предсказанием текущего блока может быть определен как предсказание, осуществляемое между изображениями. То есть привязка к текущему изображению представляет собой способ предсказания, использующий информацию об области, в которой было осуществлено кодирование/декодирование, в текущем изображении, и предсказание, осуществляемое между изображениями, представляет собой способ предсказания, использующий информацию о другом изображении, в котором было осуществлено кодирование/декодирование.Alternatively, the predictive coding mode of the current block may be determined based on the index of the reference picture. For example, when the reference picture index indicates the current picture, the predictive encoding mode of the current block may be determined to be anchored to the current picture. When the reference picture index indicates a picture different from the current picture, the predictive coding mode of the current block can be defined as prediction performed between pictures. That is, anchoring to the current image is a prediction method using information about the region in which encoding/decoding has been performed in the current image, and prediction performed between images is a prediction method using information about another image in which encoding/decoding has been performed. encoding/decoding.

Комбинированное предсказание представляет режим кодирования, в котором объединены два или более из внутреннего предсказания, предсказания, осуществляемого между изображениями, и текущего опорного изображения. Например, при применении комбинированного предсказания первый блок предсказания может быть сгенерирован на основании одно из внутреннего предсказания, предсказания, осуществляемого между изображениями, и привязки к текущему изображению, а второй блок предсказания может быть сгенерирован на основании другого из них. При генерировании первого блока предсказания и второго блока предсказания, конечный блок предсказания может быть сгенерирован посредством операции усреднения или операции взвешенного суммирования первого блока предсказания и второго блока предсказания. Информация, указывающая, применяется ли комбинированное предсказание, может быть передана посредством битового потока. Информация может представлять собой 1-битный флаг.Combined prediction represents a coding mode in which two or more of intra prediction, inter-picture prediction, and the current reference picture are combined. For example, when applying combined prediction, a first prediction block may be generated based on one of intra prediction, inter-image prediction, and current image anchoring, and a second prediction block may be generated based on another of them. When generating the first prediction block and the second prediction block, the final prediction block may be generated by an averaging operation or a weighted addition operation of the first prediction block and the second prediction block. Information indicating whether combined prediction is applied may be transmitted via a bit stream. The information may be a 1-bit flag.

На фиг. 4 представлен вид, показывающий различные типы разбиения блока кодирования.In fig. 4 is a view showing various types of partitioning of a coding block.

Блок кодирования может быть разбит на множество блоков кодирования на основании разбиения на основе четверичного дерева, разбиения на основе двоичного дерева или разбиения на основе троичного дерева. Разбитый блок кодирования может быть разбит снова на множество блоков кодирования на основании разбиения на основе четверичного дерева, разбиения на основе двоичного дерева или разбиения на основе троичного дерева.The encoding block may be partitioned into a plurality of encoding blocks based on a quaternary tree partition, a binary tree partition, or a ternary tree partition. The split encoding block may be split again into a plurality of encoding blocks based on a quaternary tree split, a binary tree split, or a ternary tree split.

Разбиение на основе четверичного дерева относится к методу разбиения, который разбивает текущий блок на четыре блока. В результате разбиения на основе четверичного дерева текущий блок может быть разбит на четыре раздела квадратной формы (см. «SPLIT_QT» на фиг. 4 (a)).Quaternary tree partitioning refers to a partitioning method that splits the current block into four blocks. As a result of quaternary tree partitioning, the current block can be split into four square-shaped partitions (see “SPLIT_QT” in Fig. 4(a)).

Разбиение на основе двоичного дерева относится к методу разбиения, который разбивает текущий блок на два блока. Разбиение текущего блока на два блока вдоль вертикального направления (т.е. с использованием вертикальной линии, пересекающей текущий блок) может называться разбиением на основе двоичного дерева в вертикальном направлении, и разбиение текущего блока на два блока вдоль горизонтального направления (т.е. с использованием горизонтальной линии, пересекающей текущий блок) может называться разбиением на основе двоичного дерева в горизонтальном направлении. В результате разбиения на основе двоичного дерева текущий блок может быть разбит на два раздела неквадратной формы. «SPLIT_BT_VER» на фиг. 4 (b) представляет результат разбиения на основе двоичного дерева в вертикальном направлении, а «SPLIT_BT_HOR» на фиг. 4 (c) представляет результат разбиения на основе двоичного дерева в горизонтальном направлении.Binary tree partitioning refers to a partitioning method that splits the current block into two blocks. Splitting the current block into two blocks along the vertical direction (i.e. using a vertical line intersecting the current block) can be called binary tree splitting in the vertical direction, and splitting the current block into two blocks along the horizontal direction (i.e. with using a horizontal line intersecting the current block) can be called a binary tree partition in the horizontal direction. Binary tree partitioning can split the current block into two non-square partitions. "SPLIT_BT_VER" in Fig. 4(b) represents the result of binary tree splitting in the vertical direction, and “SPLIT_BT_HOR” in FIG. 4(c) presents the result of binary tree partitioning in the horizontal direction.

Разбиение на основе троичного дерева относится к методу разбиения, который разбивает текущий блок на три блока. Разбиение текущего блока на три блока вдоль вертикального направления (т.е. с использованием двух вертикальных линий, пересекающих текущий блок) может называться разбиением на основе троичного дерева в вертикальном направлении, и разбиение текущего блока на три блока вдоль горизонтального направления (т.е. с использованием двух горизонтальных линий, пересекающих текущий блок) может называться разбиением на основе троичного дерева в горизонтальном направлении. В результате разбиения на основе троичного дерева текущий блок может быть разбит на три раздела неквадратной формы. В этом случае ширина/высота раздела, расположенного в центре текущего блока, может быть вдвое больше ширины/высоты других разделов. «SPLIT_TT_VER» на фиг. 4 (d) представляет результат разбиения на основе троичного дерева в вертикальном направлении, а «SPLIT_TT_HOR» на фиг. 4 (e) представляет результат разбиения на основе троичного дерева в горизонтальном направлении.Ternary tree partitioning refers to a partitioning method that splits the current block into three blocks. Splitting the current block into three blocks along the vertical direction (i.e. using two vertical lines crossing the current block) can be called ternary tree splitting in the vertical direction, and splitting the current block into three blocks along the horizontal direction (i.e. using two horizontal lines crossing the current block) can be called ternary tree partitioning in the horizontal direction. As a result of ternary tree partitioning, the current block can be partitioned into three non-square partitions. In this case, the width/height of the section located in the center of the current block can be twice the width/height of other sections. "SPLIT_TT_VER" in Fig. 4(d) represents the result of ternary tree partitioning in the vertical direction, and “SPLIT_TT_HOR” in FIG. 4(e) presents the result of ternary tree partitioning in the horizontal direction.

Количество разбиений элемента кодового дерева может быть определено как глубина разбиения. Максимальная глубина разбиения элемента кодового дерева может быть определена на уровне последовательности или уровне изображения. Соответственно, максимальная глубина разбиения элемента кодового дерева может отличаться для каждой последовательности или изображения.The number of splits of a code tree element can be defined as the split depth. The maximum split depth of a code tree element can be determined at the sequence level or the image level. Accordingly, the maximum depth of a code tree element may differ for each sequence or image.

Альтернативно максимальная глубина разбиения для каждого метода разбиения может быть определена отдельно. Например, максимальная глубина разбиения, допускаемая для разбиения на основе четверичного дерева, может быть отличной от максимальной глубины разбиения, допускаемой для разбиения на основе двоичного дерева и/или разбиения на основе троичного дерева.Alternatively, the maximum splitting depth for each splitting method can be determined separately. For example, the maximum partition depth allowed for a quaternary tree partition may be different from the maximum partition depth allowed for a binary tree partition and/or ternary tree partition.

Кодер может передавать информацию, указывающую по меньшей мере одно из типа разбиения и глубины разбиения текущего блока посредством битового потока. Декодер может определять тип разбиения и глубину разбиения элемента кодового дерева на основании информации, проанализированной из битового потока.The encoder may transmit information indicating at least one of a split type and a split depth of the current block via a bit stream. The decoder may determine the split type and split depth of a code tree element based on information parsed from the bit stream.

На фиг. 5 представлен вид, показывающий схему разбиения элемента кодового дерева.In fig. 5 is a view showing a code tree element partitioning diagram.

Разбиение блока кодирования с использованием такого метода разбиения, как разбиение на основе четверичного дерева, разбиение на основе двоичного дерева и/или разбиение на основе троичного дерева, может называться разбиением на основе нескольких деревьев.Partitioning a coding block using a partitioning method such as quaternary tree partitioning, binary tree partitioning, and/or ternary tree partitioning may be referred to as multi-tree partitioning.

Блоки кодирования, сгенерированные путем применения разбиения на основе нескольких деревьев к блоку кодирования, могут называться нижними блоками кодирования. Когда глубина разбиения блока кодирования представляет собой k, глубина разбиения нижних блоков кодирования установлена равной k+1.Coding blocks generated by applying a multi-tree partition to a coding block may be called lower coding blocks. When the partition depth of the encoding block is k, the partition depth of the lower encoding blocks is set to k+1.

И, с другой стороны, для блоков кодирования, имеющих глубину разбиения k + 1, блок кодирования, имеющий глубину разбиения k, может называться верхним блоком кодирования.And on the other hand, for encoding blocks having partition depth k + 1, the encoding block having partition depth k may be called an upper encoding block.

Тип разбиения текущего блока кодирования может быть определен на основании по меньшей мере одного из типа разбиения верхнего блока кодирования и типа разбиения соседнего блока кодирования. В данном случае соседний блок кодирования представляет собой блок кодирования, смежный с текущим блоком кодирования, и может включать по меньшей мере один из верхнего соседнего блока и левого соседнего блока текущего блока кодирования, и соседний блок, смежный с верхним левым углом. В данном случае тип разбиения может включать по меньшей мере одно из следующего: применялось ли разбиение на основе четверичного дерева, применялось ли разбиение на основе двоичного дерева, направление разбиения на основе двоичного дерева, применялось ли разбиение на основе троичного дерева и направление разбиения на основе троичного дерева.The partition type of the current encoding block may be determined based on at least one of the partition type of the upper encoding block and the partition type of the adjacent encoding block. Here, a neighboring encoding block is an encoding block adjacent to the current encoding block, and may include at least one of an upper adjacent block and a left adjacent block of the current encoding block, and an adjacent block adjacent to the upper left corner. In this case, the type of splitting may include at least one of the following: whether a quaternary tree splitting was used, whether a binary tree splitting was used, a binary tree splitting direction, whether a ternary tree splitting was used, and a ternary splitting direction tree.

Чтобы определить тип разбиения блока кодирования, информация, указывающая то, может ли быть разбит блок кодирования, может быть передана посредством битового потока. Информация представляет собой 1-битный флаг «split_cu_flag», и, когда флаг является истинным, она указывает, что блок кодирования разбит с помощью метода разбиения на основе четверичного дерева.To determine the type of splitting of the encoding block, information indicating whether the coding block can be split may be transmitted by a bit stream. The information is a 1-bit flag "split_cu_flag", and when the flag is true, it indicates that the encoding block is split using a quaternary tree splitting method.

Когда split_cu_flag является истинным, информация, указывающая то, разбит ли блок кодирования на основе четверичного дерева, может быть передана посредством битового потока. Информация представляет собой 1-битный флаг в виде split_qt_flag, и, когда флаг является истинным, блок кодирования может быть разбит на четыре блока.When split_cu_flag is true, information indicating whether a quaternary tree coding block is split can be transmitted via the bitstream. The information is a 1-bit flag in the form split_qt_flag, and when the flag is true, the encoding block can be split into four blocks.

Например, в примере, показанном на фиг. 5, когда элемент кодового дерева разбит на основе четверичного дерева, генерируются четыре блока кодирования, имеющие глубину разбиения 1. Кроме того, показано, что разбиение на основе четверичного дерева применяется снова к первому и четвертому блокам кодирования из четырех блоков кодирования, сгенерированных в результате разбиения на основе четверичного дерева. В результате могут быть сгенерированы четыре блока кодирования, имеющие глубину разбиения 2.For example, in the example shown in FIG. 5, when a code tree element is partitioned based on the quaternary tree, four encoding blocks having a partition depth of 1 are generated. In addition, it is shown that the partition based on the quaternary tree is applied again to the first and fourth encoding blocks of the four encoding blocks generated by the partitioning based on a quaternary tree. As a result, four coding blocks having a partition depth of 2 can be generated.

Кроме того, блоки кодирования, имеющие глубину разбиения, равную 3, могут быть сгенерированы путем повторного применения разбиения на основе четверичного дерева к блоку кодирования, имеющему глубину разбиения, равную 2.In addition, encoding blocks having a partition depth of 3 can be generated by repeatedly applying the quaternary tree partition to a encoding block having a partition depth of 2.

Когда разбиение на основе четверичного дерева не применяется к блоку кодирования, может быть определено то, выполняется ли разбиение на основе двоичного дерева или разбиение на основе троичного дерева в отношении блока кодирования, с учетом по меньшей мере одного из следующего: размера блока кодирования, расположен ли блок кодирования на границе изображения, максимальной глубины разбиения и типа разбиения соседнего блока. Когда определено, что следует выполнить разбиение на основе двоичного дерева или разбиение на основе троичного дерева в отношении блока кодирования, информация, указывающая направление разбиения, может быть передана посредством битового потока. Информация может представлять собой 1-битный флаг в виде mtt_split_cu_vertical_flag. На основании флага может быть определено, является направление разбиения вертикальным направлением или горизонтальным направлением. Дополнительно информация, указывающая то, применено ли разбиение на основе двоичного дерева или разбиение на основе троичного дерева к блоку кодирования, может быть передана посредством битового потока. Информация может представлять собой 1-битный флаг в виде mtt_split_cu_binary_flag. На основании флага может быть определено то, применено ли разбиение на основе двоичного дерева или разбиение на основе троичного дерева к блоку кодирования.When a quaternary tree partition is not applied to an encoding block, it can be determined whether a binary tree partition or a ternary tree partition is performed on the encoding block, taking into account at least one of the size of the encoding block, whether encoding block on the image boundary, maximum partition depth and partition type of the adjacent block. When it is determined that binary tree partitioning or ternary tree partitioning should be performed on an encoding block, information indicating the direction of partitioning may be transmitted by a bit stream. The information may be a 1-bit flag in the form mtt_split_cu_vertical_flag. Based on the flag, it can be determined whether the dividing direction is the vertical direction or the horizontal direction. Additionally, information indicating whether a binary tree partition or a ternary tree partition is applied to the encoding block may be transmitted by the bitstream. The information can be a 1-bit flag in the form mtt_split_cu_binary_flag. Based on the flag, it can be determined whether a binary tree partition or a ternary tree partition is applied to the encoding block.

Например, в примере, показанном на фиг. 5, показано, что разбиение на основе двоичного дерева в вертикальном направлении применено к блоку кодирования, имеющему глубину разбиения, равную 1, разбиение на основе троичного дерева в вертикальном направлении применено к левому блоку кодирования из блоков кодирования, сгенерированных в результате разбиения, и разбиение на основе двоичного дерева в вертикальном направлении применено к правому блоку кодирования.For example, in the example shown in FIG. 5, it is shown that a binary tree partition in the vertical direction is applied to a coding block having a partition depth of 1, a ternary tree partition in the vertical direction is applied to the left encoding block of the encoding blocks generated by the partition, and a partition into the binary tree base in the vertical direction is applied to the right encoding block.

Предсказание, осуществляемое между изображениями, представляет собой режим кодирования с предсказанием, который предсказывает текущий блок путем использования информации о предшествующем изображении. Например, блок в том же положении, что и текущий блок в предшествующем изображении (далее - совмещаемый блок), может быть установлен как блок предсказания текущего блока. Далее блок предсказания, сгенерированный на основании блока в том же положении, что и текущий блок, будет называться совмещаемым блоком предсказания.Inter-picture prediction is a predictive coding mode that predicts the current block by using information about the previous picture. For example, a block at the same position as the current block in the previous image (hereinafter referred to as a compatible block) can be set as a prediction block of the current block. Hereinafter, a prediction block generated based on a block at the same position as the current block will be called a compatible prediction block.

С другой стороны, когда объект, находящийся в предшествующем изображении, переместился в другое положение в текущем изображении, текущий блок может быть эффективным образом предсказан путем использования движения объекта. Например, когда направление движения и размер объекта можно узнать путем сравнения предшествующего изображения и текущего изображения, блок предсказания (или изображение предсказания) текущего блока может быть сгенерирован с учетом информации о движении объекта. Далее блок предсказания, сгенерированный путем использования информации о движении, может называться блоком предсказания движения.On the other hand, when an object located in the previous image has moved to a different position in the current image, the current block can be efficiently predicted by using the movement of the object. For example, when the motion direction and size of an object can be learned by comparing a previous image and a current image, a prediction block (or prediction image) of the current block can be generated taking into account the motion information of the object. Hereinafter, the prediction block generated by using the motion information may be called a motion prediction block.

Остаточный блок может быть сгенерирован путем вычитания блока предсказания из текущего блока. В этом случае, когда имеется движение объекта, энергия остаточного блока может быть уменьшена путем использования блока предсказания движения вместо совмещаемого блока предсказания, и, таким образом, эффективность сжатия остаточного блока может быть улучшена.A residual block can be generated by subtracting a prediction block from the current block. In this case, when there is motion of the object, the energy of the residual block can be reduced by using a motion prediction block instead of a compatible prediction block, and thus the compression efficiency of the residual block can be improved.

Как описано выше, генерирование блока предсказания путем использования информации о движении может называться предсказанием с компенсацией движения. В большинстве предсказаний, осуществляемых между изображениями, блок предсказания может быть сгенерирован на основании предсказания с компенсацией движения.As described above, generating a prediction block by using motion information may be called motion-compensated prediction. In most inter-image predictions, a prediction block may be generated based on motion compensated prediction.

Информация о движении может содержать по меньшей мере одно из вектора движения, индекса опорного изображения, направления предсказания и двунаправленного весового индекса. Вектор движения указывает направление движения и размер объекта. Индекс опорного изображения указывает опорное изображение текущего блока из опорных изображений, включенных в список опорных изображений. Направление предсказания указывает любое из однонаправленного предсказания L0, однонаправленного предсказания L1 и двунаправленного предсказания (предсказания L0 и предсказания L1). Согласно направлению предсказания текущего блока может использоваться по меньшей мере одно из информации о движении в направлении L0 и информации о движении в направлении L1. Двунаправленный весовой индекс указывает значение взвешивания, примененное к блоку предсказания L0, и значение взвешивания, примененное к блоку предсказания L1.The motion information may comprise at least one of a motion vector, a reference image index, a prediction direction, and a bidirectional weight index. The motion vector indicates the direction of motion and the size of the object. The reference picture index indicates the reference picture of the current block of the reference pictures included in the reference picture list. The prediction direction indicates any of unidirectional L0 prediction, unidirectional L1 prediction, and bidirectional prediction (L0 prediction and L1 prediction). According to the prediction direction of the current block, at least one of the movement information in the L0 direction and the movement information in the L1 direction may be used. The bidirectional weight index indicates the weighting value applied to the L0 prediction block and the weighting value applied to the L1 prediction block.

На фиг. 6 представлена блок-схема, изображающая способ предсказания, осуществляемого между изображениями, согласно одному варианту осуществления настоящего изобретения.In fig. 6 is a flowchart illustrating an inter-image prediction method according to one embodiment of the present invention.

Как показано на фиг. 6, способ предсказания, осуществляемого между изображениями, включает этапы определения (S601) режима предсказания, осуществляемого между изображениями, текущего блока, получения (S602) информации о движении текущего блока согласно определенному режиму предсказания, осуществляемого между изображениями, и выполнения (S603) предсказания с компенсацией движения для текущего блока на основании полученной информации о движении.As shown in FIG. 6, the inter-picture prediction method includes the steps of determining (S601) an inter-picture prediction mode of the current block, obtaining (S602) information about the movement of the current block according to the determined inter-picture prediction mode, and performing (S603) the inter-picture prediction motion compensation for the current block based on received motion information.

В данном случае режим предсказания, осуществляемого между изображениями, представляет различные методы определения информации о движении текущего блока и может включать режим предсказания, осуществляемого между изображениями, который использует информацию о поступательном движении, и режим предсказания, осуществляемого между изображениями, который использует информацию об аффинном движении. Например, режим предсказания, осуществляемого между изображениями, который использует информацию о поступательном движении, может включать режим слияния и режим предсказания вектора движения, и режим предсказания, осуществляемого между изображениями, который использует информацию об аффинном движении, может включать аффинный режим слияния и режим предсказания вектора аффинного движения. Информация о движении текущего блока может быть определена на основании соседнего блока, смежного с текущим блоком, или информации, проанализированной из битового потока согласно режиму предсказания, осуществляемого между изображениями.Here, the inter-picture prediction mode represents various methods for determining motion information of the current block, and may include an inter-picture prediction mode that uses translational motion information and an inter-picture prediction mode that uses affine motion information. . For example, an inter-image prediction mode that uses translational motion information may include a fusion mode and a motion vector prediction mode, and an inter-image prediction mode that uses affine motion information may include an affine fusion mode and a vector prediction mode. affine movement. The motion information of the current block may be determined based on a neighboring block adjacent to the current block or information analyzed from the bitstream according to an inter-picture prediction mode.

Далее способ предсказания, осуществляемого между изображениями, который использует информацию об аффинном движении, будет описан подробно.Next, an inter-image prediction method that uses affine motion information will be described in detail.

На фиг. 7 представлен вид, показывающий нелинейные движения объекта.In fig. 7 is a view showing non-linear movements of an object.

Нелинейное движение объекта может быть сгенерировано в видео. Например, как показано в примере на фиг. 7, может происходить такое нелинейное движение объекта, как приближение, отдаление, поворот, аффинное преобразование и т.п. камеры. Когда происходит нелинейное движение объекта, движение объекта не может быть эффективно выражено с помощью вектора поступательного движения. Соответственно, эффективность кодирования может быть улучшена за счет использования аффинного движения вместо поступательного движения в области, где происходит нелинейное движение объекта.Nonlinear object motion can be generated in video. For example, as shown in the example of FIG. 7, such nonlinear movement of an object can occur as approaching, moving away, rotating, affine transformation, etc. cameras. When nonlinear motion of an object occurs, the motion of the object cannot be effectively expressed by a translational motion vector. Accordingly, encoding efficiency can be improved by using affine motion instead of translational motion in the region where nonlinear object motion occurs.

На фиг. 8 представлена блок-схема, изображающая способ предсказания, осуществляемого между изображениями, на основании аффинного движения согласно одному варианту осуществления настоящего изобретения.In fig. 8 is a flowchart illustrating a method for inter-image prediction based on affine motion according to one embodiment of the present invention.

Применяется ли метод предсказания, осуществляемого между изображениями, основанный на аффинном движении, к текущему блоку, может быть определено на основании информации, проанализированной из битового потока. В частности, применяется ли метод предсказания, осуществляемого между изображениями, основанный на аффинном движении, к текущему блоку, может быть определено на основании по меньшей мере одно из флага, указывающего, применяется ли аффинный режим слияния к текущему блоку, и флага, указывающего, применяется ли режим предсказания вектора аффинного движения к текущему блоку.Whether the inter-image prediction method based on affine motion is applied to the current block can be determined based on the information parsed from the bitstream. In particular, whether an inter-image prediction method based on affine motion is applied to the current block can be determined based on at least one of a flag indicating whether the affine fusion mode is applied to the current block and a flag indicating whether whether the mode of predicting the affine motion vector to the current block.

Когда метод предсказания, осуществляемого между изображениями, основанный на аффинном движении, применяется к текущему блоку, может быть определена (S1101 → S801) модель аффинного движения текущего блока. Модель аффинного движения может быть определена как по меньшей мере одна из шестипараметрической модели аффинного движения и четырехпараметрической модели аффинного движения. Шестипараметрическая модель аффинного движения выражает аффинное движение с использованием шести параметров, а четырехпараметрическая модель аффинного движения выражает аффинное движение с использованием четырех параметров.When the inter-image prediction method based on affine motion is applied to the current block, an affine motion model of the current block can be determined (S1101 → S801). The affine motion model may be defined as at least one of a six-parameter affine motion model and a four-parameter affine motion model. A six-parameter affine motion model expresses affine motion using six parameters, and a four-parameter affine motion model expresses affine motion using four parameters.

Уравнение 1 выражает аффинное движение с использованием шести параметров. Аффинное движение представляет поступательное движение для предварительно определенной области, определенной аффинными исходными векторами.Equation 1 expresses affine motion using six parameters. Affine motion represents translational motion for a predefined region defined by affine source vectors.

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

Когда аффинное движение выражено с использованием шести параметров, может быть выражено сложное движение. Однако, поскольку увеличивается количество битов, необходимых для кодирования каждого из параметров, эффективность кодирования может снижаться. Соответственно, аффинное движение может быть выражено с использованием четырех параметров. Уравнение 2 выражает аффинное движение с использованием четырех параметров.When affine motion is expressed using six parameters, complex motion can be expressed. However, as the number of bits required to encode each parameter increases, the encoding efficiency may decrease. Accordingly, affine motion can be expressed using four parameters. Equation 2 expresses the affine motion using four parameters.

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

Информация для определения модели аффинного движения текущего блока может быть кодирована и передана посредством битового потока. Например, информация может представлять собой 1-битный флаг в виде «affine_type_flag». Когда значение флага равно 0, это может указывать, что применяется 4-параметрическая модель аффинного движения, а когда значение флага равно 1, это может указывать, что применяется 6-параметрическая модель аффинного движения. Флаг может быть кодирован посредством элемента в виде слайса, тайла или блока (например, посредством элемента блока кодирования или кодового дерева). Когда флаг передается на уровне слайса, модель аффинного движения, определенная на уровне слайса, может применяться ко всем блокам, принадлежащим к слайсу.Information for determining the affine motion model of the current block can be encoded and transmitted via a bitstream. For example, the information could be a 1-bit flag in the form "affine_type_flag". When the flag value is 0, it may indicate that a 4-parameter affine motion model is applied, and when the flag value is 1, it may indicate that a 6-parameter affine motion model is applied. The flag may be encoded through a slice, tile, or block element (eg, through an encoding block or encoding tree element). When a flag is passed at the slice level, the affine motion model defined at the slice level can be applied to all blocks belonging to the slice.

Альтернативно модель аффинного движения текущего блока может быть определена на основании аффинного режима предсказания, осуществляемого между изображениями, текущего блока. Например, когда применяется аффинный режим слияния, модель аффинного движения текущего блока может быть определена как 4-параметрическая модель движения. С другой стороны, когда применяется режим предсказания вектора аффинного движения, информация для определения модели аффинного движения текущего блока может быть кодирована и передана посредством битового потока. Например, когда режим предсказания вектора аффинного движения применяется к текущему блоку, модель аффинного движения текущего блока может быть определена на основании 1-битного флага в виде «affine_type_flag».Alternatively, the affine motion model of the current block may be determined based on the inter-image affine prediction mode of the current block. For example, when the affine merging mode is applied, the affine motion model of the current block can be defined as a 4-parameter motion model. On the other hand, when the affine motion vector prediction mode is applied, information for determining the affine motion model of the current block can be encoded and transmitted by a bit stream. For example, when the affine motion vector prediction mode is applied to the current block, the affine motion model of the current block can be determined based on a 1-bit flag in the form “affine_type_flag”.

Затем может быть получен (S1102 → S802) аффинный исходный вектор текущего блока. Когда выбрана 4-параметрическая модель аффинного движения, могут быть получены векторы движения в двух контрольных точках текущего блока. С другой стороны, когда выбрана 6-параметрическая модель аффинного движения, могут быть получены векторы движения в трех контрольных точках текущего блока. Вектор движения в контрольной точке может называться аффинным исходным вектором. Контрольная точка может включать по меньшей мере один из верхнего левого угла, верхнего правого угла и нижнего левого угла текущего блока.Then, the affine source vector of the current block can be obtained (S1102 → S802). When a 4-parameter affine motion model is selected, motion vectors at two control points of the current block can be obtained. On the other hand, when the 6-parameter affine motion model is selected, the motion vectors at the three control points of the current block can be obtained. The motion vector at a control point can be called an affine source vector. The reference point may include at least one of the top left corner, top right corner, and bottom left corner of the current block.

На фиг. 9 представлен вид, показывающий пример аффинных исходных векторов каждой модели аффинного движения.In fig. 9 is a view showing an example of affine source vectors of each affine motion model.

В 4-параметрической модели аффинного движения аффинные исходные векторы могут быть получены для двух из верхнего левого угла, верхнего правого угла и нижнего левого угла. Например, как показано в примере на фиг. 9(a), когда выбрана 4-параметрическая модель аффинного движения, аффинный вектор может быть получен путем использования аффинного исходного вектора sv0 для верхнего левого угла текущего блока (например, верхний левый отсчет (x1, y1)) и аффинного исходного вектора sv1 для верхнего правого угла текущего блока (например, верхний правый отсчет (x1, y1)). Также можно использовать аффинный исходный вектор для нижнего левого угла вместо аффинного исходного вектора для верхнего левого угла, или использовать аффинный исходный вектор для нижнего левого угла вместо аффинного исходного вектора для верхнего правого угла.In the 4-parameter affine motion model, affine source vectors can be obtained for two of the upper left corner, upper right corner and lower left corner. For example, as shown in the example of FIG. 9(a), when the 4-parameter affine motion model is selected, the affine vector can be obtained by using the affine source vector sv 0 for the top left corner of the current block (for example, the top left sample (x1, y1)) and the affine source vector sv 1 for the top right corner of the current block (for example, top right count (x1, y1)). You can also use an affine source vector for the bottom left corner instead of an affine source vector for the top left corner, or use an affine source vector for the bottom left corner instead of an affine source vector for the top right corner.

В 6-параметрической модели аффинного движения аффинные исходные векторы могут быть получены для верхнего левого угла, верхнего правого угла и нижнего левого угла. Например, как показано в примере на фиг. 9(b), когда выбрана 6-параметрическая модель аффинного движения, аффинный вектор может быть получен путем использования аффинного исходного вектора sv0 для верхнего левого угла текущего блока (например, верхний левый отсчет (x1, y1)), аффинного исходного вектора sv1 для верхнего правого угла текущего блока (например, верхний правый отсчет (x1, y1)) и аффинного исходного вектора sv2 для верхнего левого угла текущего блока (например, верхний левый отсчет (x2, y2)).In the 6-parameter affine motion model, affine source vectors can be obtained for the upper left corner, upper right corner and lower left corner. For example, as shown in the example of FIG. 9(b), when the 6-parameter affine motion model is selected, the affine vector can be obtained by using the affine source vector sv 0 for the top left corner of the current block (for example, the top left sample (x1, y1)), the affine source vector sv 1 for the top right corner of the current block (for example, top right sample (x1, y1)) and the affine source vector sv 2 for the top left corner of the current block (for example, top left sample (x2, y2)).

В варианте осуществления, описанном ниже, в 4-параметрической модели аффинного движения аффинные исходные векторы верхней левой контрольной точки и верхней правой контрольной точки будут называться первым аффинным исходным вектором и вторым аффинным исходным вектором соответственно. В вариантах осуществления, в которых используются первый аффинный исходный вектор и второй аффинный исходный вектор, описанные ниже, по меньшей мере один из первого аффинного исходного вектора и второго аффинного исходного вектора может быть заменен аффинным исходным вектором нижней левой контрольной точки (третьим аффинным исходным вектором) или аффинным исходным вектором нижней правой контрольной точки (четвертым аффинным исходным вектором).In the embodiment described below, in the 4-parameter affine motion model, the affine source vectors of the top left control point and the top right control point will be called the first affine source vector and the second affine source vector, respectively. In embodiments that use the first affine seed vector and the second affine seed vector described below, at least one of the first affine seed vector and the second affine seed vector may be replaced by the lower left reference point affine seed vector (third affine seed vector) or the affine source vector of the lower right control point (the fourth affine source vector).

Кроме того, в 6-параметрической модели аффинного движения аффинные исходные векторы верхней левой контрольной точки, верхней правой контрольной точки и нижней левой контрольной точки будут называться первым аффинным исходным вектором, вторым аффинным исходным вектором и третьим аффинным исходным вектором соответственно. В вариантах осуществления, в которых используется первый аффинный исходный вектор, второй аффинный исходный вектор и третий аффинный исходный вектор, описанные ниже, по меньшей мере один из первого аффинного исходного вектора, второго аффинного исходного вектора и третьего аффинного исходного вектора может быть заменен аффинным исходным вектором нижней правой контрольной точки (четвертым аффинным исходным вектором).In addition, in the 6-parameter affine motion model, the affine source vectors of the top left control point, top right control point and bottom left control point will be called the first affine source vector, the second affine source vector and the third affine source vector, respectively. In embodiments that use a first affine seed vector, a second affine seed vector, and a third affine seed vector described below, at least one of the first affine seed vector, the second affine seed vector, and the third affine seed vector may be replaced by an affine seed vector bottom right control point (the fourth affine source vector).

Аффинный вектор может быть получен (S803) для каждого подблока за счет использования аффинных исходных векторов. В данном случае аффинный вектор представляет вектор поступательного движения, полученный на основании аффинных исходных векторов. Аффинный вектор подблока может называться аффинным вектором движения подблока или вектором движения подблока.An affine vector can be obtained (S803) for each sub-block by using affine source vectors. In this case, the affine vector represents the translational motion vector obtained from the affine source vectors. An affine subblock vector may be called an affine subblock motion vector or a subblock motion vector.

На фиг. 10 представлен вид, показывающий пример аффинных векторов подблоков в 4-параметрической модели движения.In fig. 10 is a view showing an example of subblock affine vectors in a 4-parameter motion model.

Аффинный вектор подблока может быть получен на основании положения контрольной точки, положения подблока и аффинного исходного вектора. Например, в уравнении 3 показан пример получения аффинного вектора подблока.The affine sub-block vector can be obtained based on the position of the reference point, the position of the sub-block and the affine source vector. For example, Equation 3 shows an example of obtaining an affine subblock vector.

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

В уравнении 3 (x, y) обозначают положение подблока. В данном случае положение подблока указывает положение опорного отсчета, включенного в подблок. Опорный отсчет может представлять собой отсчет, расположенный в верхнем левом углу подблока, или отсчет, у которого по меньшей мере одна из координат по оси x и оси y представляет собой центральную точку. (x0, y0) обозначает положение первой контрольной точки и (sv0x, sv0y) обозначает первый аффинный исходный вектор. Кроме того, (x1, y1) обозначает положение второй контрольной точки и (sv1x, sv1y) обозначает второй аффинный исходный вектор.In Equation 3, (x, y) denotes the position of the sub-block. Here, the position of the sub-block indicates the position of the reference sample included in the sub-block. The reference sample may be a sample located in the upper left corner of the subblock, or a sample for which at least one of the x-axis and y-axis coordinates represents a center point. (x 0 , y 0 ) denotes the position of the first control point and (sv 0x , sv 0y ) denotes the first affine source vector. In addition, (x 1 , y 1 ) denotes the position of the second control point and (sv 1x , sv 1y ) denotes the second affine source vector.

Когда первая контрольная точка и вторая контрольная точка соответствуют верхнему левому углу и верхнему правому углу текущего блока соответственно, x1-x0 может быть установлено на значение, равное ширине текущего блока.When the first control point and the second control point correspond to the top left corner and top right corner of the current block, respectively, x 1 -x 0 can be set to a value equal to the width of the current block.

После этого может быть выполнено (S1104 → S804) предсказание с компенсацией движения для каждого подблока с использованием аффинного вектора каждого подблока. В результате выполнения предсказания с компенсацией движения может быть сгенерирован блок предсказания для каждого подблока. Блоки предсказания подблоков могут быть установлены как блоки предсказания текущего блока.Thereafter, motion compensation prediction can be performed (S1104 → S804) for each sub-block using the affine vector of each sub-block. By performing motion-compensated prediction, a prediction block for each sub-block can be generated. Sub-block prediction blocks can be set as prediction blocks of the current block.

Затем способ предсказания, осуществляемого между изображениями, использующий информацию о поступательном движении, будет описан подробно.Next, an inter-image prediction method using translational motion information will be described in detail.

Информация о движении текущего блока может быть получена из информации о движении другого блока. В данном случае другой блок может представлять собой блок, кодированный/декодированный путем предсказания, осуществляемого между изображениями, перед текущим блоком. Установка информации о движении текущего блока равной информации о движении другого блока может быть определена как режим слияния. Кроме того, установка вектора движения другого блока в качестве значения предсказания вектора движения текущего блока может быть определена в качестве режима предсказания вектора движения.Information about the movement of the current block can be obtained from information about the movement of another block. Here, the other block may be a block encoded/decoded by inter-picture prediction before the current block. Setting the motion information of the current block equal to the motion information of another block can be defined as a merging mode. In addition, setting the motion vector of another block as the motion vector prediction value of the current block can be defined as a motion vector prediction mode.

На фиг. 11 представлена блок-схема, изображающая процесс получения информации о движении текущего блока с использованием режима слияния.In fig. 11 is a flowchart showing the process of obtaining movement information of the current block using the merge mode.

Может быть получен (S1101) кандидат на слияние текущего блока. Кандидат на слияние текущего блока может быть получен из блока, кодированного/декодированного путем предсказания, осуществляемого между изображениями, перед текущим блоком.A merge candidate of the current block may be obtained (S1101). The merge candidate of the current block may be obtained from a block encoded/decoded by inter-picture prediction before the current block.

На фиг. 12 представлен вид, показывающий пример кандидатных блоков, используемых для получения кандидата на слияние.In fig. 12 is a view showing an example of candidate blocks used to obtain a merge candidate.

Кандидатные блоки могут включать по меньшей мере один из соседних блоков, содержащих отсчет, смежный с текущим блоком, или несоседних блоков, содержащих отсчет, который не является смежным с текущим блоком. Далее отсчеты для определения кандидатных блоков задаются в качестве опорных отсчетов. Кроме того, опорный отсчет, смежный с текущим блоком, называется соседним опорным отсчетом, и опорный отсчет, не являющийся смежным с текущим блоком, называется несоседним опорным отсчетом.Candidate blocks may include at least one of neighboring blocks containing a sample adjacent to the current block, or non-adjacent blocks containing a sample that is not adjacent to the current block. Next, the samples for determining candidate blocks are set as reference samples. In addition, a reference sample adjacent to the current block is called an adjacent reference sample, and a reference sample that is not adjacent to the current block is called a non-adjacent reference sample.

Соседний опорный отсчет может быть включен в соседний столбец самого левого столбца текущего блока или соседнюю строку самой верхней строки текущего блока. Например, когда координаты верхнего левого отсчета текущего блока составляют (0, 0), по меньшей мере один из блока, содержащего опорный отсчет в положении (-1, H-1), блока, содержащего опорный отсчет в положении (W-1, -1), блока, содержащего опорный отсчет в положении (W, -1), блока, содержащего опорный отсчет в положении (-1, H), и блока, содержащего опорный отсчет в положении (-1, -1), может использоваться в качестве кандидатного блока. Обращаясь к графическим материалам, соседние блоки индекса 0-4 могут использоваться в качестве кандидатных блоков.An adjacent reference sample may be included in an adjacent column of the leftmost column of the current block or an adjacent row of the topmost row of the current block. For example, when the coordinates of the top left sample of the current block are (0, 0), at least one of the block containing the reference sample at position (-1, H-1), the block containing the reference sample at position (W-1, - 1), a block containing a reference count at position (W, -1), a block containing a reference count at position (-1, H), and a block containing a reference count at position (-1, -1) can be used in as a candidate block. Referring to graphics materials, adjacent blocks of index 0-4 can be used as candidate blocks.

Несоседний опорный отсчет представляет отсчет, в котором по меньшей мере одно из расстояния по оси x и расстояния по оси y от опорного отсчета, смежного с текущим блоком, имеет предварительно заданное значение. Например, по меньшей мере один из блока, содержащего опорный отсчет, в котором расстояние по оси x от левого опорного отсчета представляет собой предварительно заданное значение, блока, содержащего несоседний отсчет, в котором расстояние по оси y от верхнего опорного отсчета представляет собой предварительно заданное значение, и блока, содержащего несоседний отсчет, в котором расстояние по оси x и расстояние по оси y от верхнего левого опорного отсчета представляют собой предварительно заданные значения, может использоваться в качестве кандидатного блока. Предварительно заданные значения могут представлять собой натуральное число, такое как 4, 8, 12, 16 или т.п. Обращаясь к графическим материалам, по меньшей мере один из блоков индекса 5-26 может использоваться в качестве кандидатного блока.A non-adjacent reference sample represents a sample in which at least one of the x-axis distance and the y-axis distance from a reference sample adjacent to the current block has a predetermined value. For example, at least one of a block containing a reference sample, in which the x-axis distance from the left reference sample is a predetermined value, a block containing a non-adjacent sample, in which the y-axis distance from the top reference sample is a predetermined value , and a block containing a non-adjacent sample in which the x-axis distance and the y-axis distance from the upper left reference sample are preset values, can be used as a candidate block. The preset values may be a natural number such as 4, 8, 12, 16 or the like. Referring to graphics, at least one of the index blocks 5-26 may be used as a candidate block.

Отсчет, не расположенный на одинаковой вертикальной линии, горизонтальной линии или диагональной линии в качестве соседнего опорного отсчета, может быть установлен в качестве несоседнего опорного отсчета.A reference not located on the same vertical line, horizontal line or diagonal line as an adjacent reference reference may be set as a non-adjacent reference reference.

На фиг. 13 представлен вид, показывающий положения опорных отсчетов.In fig. 13 is a view showing positions of reference samples.

Как показано в примере на фиг. 13, координаты x верхних несоседних опорных отсчетов могут быть установлены отличающимися от координат x верхних соседних опорных отсчетов. Например, когда положение верхнего соседнего опорного отсчета составляет (W-1, -1), положение верхнего несоседнего опорного отсчета, отдаленного вплоть до N от верхнего соседнего опорного отсчета на оси y, может быть установлено на ((W/2)-1, -1-N), и положение верхнего несоседнего опорного отсчета, отдаленного вплоть до 2N от верхнего соседнего опорного отсчета на оси y, может быть установлено на (0, -1-2N). То есть положение несмежного опорного отсчета может быть определено на основании положения смежного опорного отсчета и расстояния от смежного опорного отсчета.As shown in the example in FIG. 13, the x-coordinates of the upper non-adjacent reference samples can be set different from the x-coordinates of the upper adjacent reference samples. For example, when the position of the top adjacent reference count is (W-1, -1), the position of the top non-neighboring reference count up to N away from the top adjacent reference count on the y-axis can be set to ((W/2)-1, -1-N), and the position of the top non-adjacent reference count, distant up to 2N from the top adjacent reference count on the y-axis, can be set to (0, -1-2N). That is, the position of the non-adjacent reference sample can be determined based on the position of the adjacent reference sample and the distance from the adjacent reference sample.

Далее кандидатный блок, содержащий соседний опорный отсчет, из кандидатных блоков называется соседним блоком, и блок, содержащий несоседний опорный отсчет, называется несоседним блоком.Hereinafter, a candidate block containing an adjacent reference sample of the candidate blocks is called an adjacent block, and a block containing a non-adjacent reference sample is called a non-adjacent block.

Когда расстояние между текущим блоком и кандидатным блоком больше, чем пороговое значение или равняется ему, кандидатный блок может быть установлен недоступным в качестве кандидата на слияние. Пороговое значение может быть определено на основании размера элемента кодового дерева. Например, пороговое значение может быть установлено равным высоте (ctu_height) элемента кодового дерева или значению, полученному путем сложения смещения с высотой (например, ctu_height ± N) элемента кодового дерева или вычитания смещения из нее. Смещение N представляет собой значение, предварительно заданное в кодере и декодере, и может быть установлено равным 4, 8, 16, 32 или ctu_height.When the distance between the current block and a candidate block is greater than or equal to the threshold, the candidate block may be set unavailable as a merge candidate. The threshold value may be determined based on the size of the code tree element. For example, the threshold may be set to the height (ctu_height) of the code tree element, or a value obtained by adding the offset to or subtracting the offset from the height (eg, ctu_height ± N) of the code tree element. The offset N is a value preset in the encoder and decoder and can be set to 4, 8, 16, 32 or ctu_height.

Когда разница между координатой по оси y текущего блока и координатой по оси y отсчета, включенного в кандидатный блок, больше, чем пороговое значение, кандидатный блок может быть определен недоступным в качестве кандидата на слияние.When the difference between the y-coordinate of the current block and the y-coordinate of the sample included in the candidate block is greater than a threshold value, the candidate block may be determined to be unavailable as a merge candidate.

Альтернативно кандидатный блок, который не принадлежит к такому же элементу кодового дерева в качестве текущего блока, может быть установлен недоступным в качестве кандидата на слияние. Например, когда опорный отсчет отклоняется от верхней границы элемента кодового дерева, к которому принадлежит текущий блок, кандидатный блок, содержащий опорный отсчет, может быть установлен недоступным в качестве кандидата на слияние.Alternatively, a candidate block that does not belong to the same code tree element as the current block may be set unavailable as a merge candidate. For example, when a reference sample deviates from the top boundary of a code tree element to which the current block belongs, the candidate block containing the reference sample may be set unavailable as a merge candidate.

Когда верхняя граница текущего блока является смежной с верхней границей элемента кодового дерева, множество кандидатных блоков определяются недоступными в качестве кандидата на слияние, и, таким образом, эффективность кодирования/декодирования текущего блока может снижаться. Для решения этой проблемы кандидатные блоки могут быть установлены так, чтобы количество кандидатных блоков, расположенных на левой стороне текущего блока, было больше, чем количество кандидатных блоков, расположенных сверху текущего блока.When the upper boundary of the current block is adjacent to the upper boundary of a code tree element, a plurality of candidate blocks are determined to be unavailable as a merge candidate, and thus the encoding/decoding efficiency of the current block may be reduced. To solve this problem, candidate blocks can be set so that the number of candidate blocks located on the left side of the current block is greater than the number of candidate blocks located on top of the current block.

На фиг. 14 представлен вид, показывающий пример кандидатных блоков, используемых для получения кандидата на слияние.In fig. 14 is a view showing an example of candidate blocks used to obtain a merge candidate.

Как показано в примере на фиг. 14, верхние блоки, принадлежащие к верхним столбцам блоков N текущего блока, и левые блоки, принадлежащие к левым столбцам блоков M текущего блока, могут быть установлены в качестве кандидатных блоков. В этом случае количество левых кандидатных блоков может быть установлено большим, чем количество верхних кандидатных блоков, путем установки M больше, чем N.As shown in the example in FIG. 14, the top blocks belonging to the top columns of the N blocks of the current block and the left blocks belonging to the left columns of the M blocks of the current block can be set as candidate blocks. In this case, the number of left candidate blocks can be set to be greater than the number of top candidate blocks by setting M greater than N.

Например, разница между координатой по оси y опорного отсчета в текущем блоке и координатой по оси y верхнего блока, который может использоваться в качестве кандидатного блока, может быть установлена такой, что не превышает в N раз высоту текущего блока. Кроме того, разница между координатой по оси x опорного отсчета в текущем блоке и координатой по оси x левого блока, который может использоваться в качестве кандидатного блока, может быть установлена такой, что не превышает в M раз ширину текущего блока.For example, the difference between the y-coordinate of a reference sample in the current block and the y-coordinate of an upper block that can be used as a candidate block can be set to be no greater than N times the height of the current block. In addition, the difference between the x-coordinate of the reference sample in the current block and the x-coordinate of the left block, which can be used as a candidate block, can be set to not exceed M times the width of the current block.

Например, в примере, показанном на фиг. 14, показано, что блоки, принадлежащие к верхним двум столбцам блоков текущего блока, и блоки, принадлежащие к левым пяти столбцам блоков текущего блока, устанавливаются в качестве кандидатных блоков.For example, in the example shown in FIG. 14, it is shown that blocks belonging to the top two block columns of the current block and blocks belonging to the left five block columns of the current block are set as candidate blocks.

Кандидат на слияние может также быть получен на основании временного соседнего блока, включенного в изображение, отличающегося от текущего блока. Например, кандидат на слияние может быть получен из совмещаемого блока, включенного в совмещаемое изображение.A merge candidate may also be obtained based on a temporary neighboring block included in the image that is different from the current block. For example, a fusion candidate may be obtained from a fusion block included in a fusion image.

Информация о движении кандидата на слияние может быть установлена равной информации о движении кандидатного блока. Например, по меньшей мере одно из вектора движения, индекса опорного изображения, направления предсказания и двунаправленного весового индекса кандидатного блока может быть установлено в качестве информации о движении кандидата на слияние.The movement information of the merge candidate may be set equal to the movement information of the candidate block. For example, at least one of the motion vector, the reference image index, the prediction direction, and the bidirectional weight index of the candidate block may be set as the motion information of the fusion candidate.

Может генерироваться (S1102) список кандидатов на слияние, содержащий кандидатов на слияние. Кандидаты на слияние могут быть разделены на смежного кандидата на слияние, полученного из соседнего блока, смежного с текущим блоком, и несмежного кандидата на слияние, полученного из несоседнего блока.A merge candidate list containing the merge candidates may be generated (S1102). The merge candidates can be divided into a contiguous merge candidate obtained from an adjacent block adjacent to the current block and a non-adjacent merge candidate obtained from a non-adjacent block.

Индексы кандидатов на слияние в списке кандидатов на слияние могут быть присвоены в предварительно определенном порядке. Например, индекс, присвоенный смежному кандидату на слияние, может иметь значение, меньше чем в индексе, присвоенном несмежному кандидату на слияние. Альтернативно индекс может быть присвоен каждому из кандидатов на слияние на основании индекса каждого блока, показанного на фиг. 12 или 14.The merge candidate indices in the merge candidate list may be assigned in a predetermined order. For example, the index assigned to an adjacent merge candidate may have a value less than the index assigned to a non-adjacent merge candidate. Alternatively, an index may be assigned to each of the merge candidates based on the index of each block shown in FIG. 12 or 14.

Когда множество кандидатов на слияние включены в список кандидатов на слияние, может быть выбран (S1103) по меньшей мере один из множества кандидатов на слияние. В этом случае информация, указывающая на то, получена ли информация о движении текущего блока из смежного кандидата на слияние, может быть передана посредством битового потока. Информация может представлять собой 1-битный флаг. Например, элемент синтаксиса isAdjancentMergeFlag, указывающий на то, получена ли информация о движении текущего блока из смежного кандидата на слияние, может быть передана посредством битового потока. Когда значение элемента синтаксиса isAdjancentMergeFlag равно 1, информация о движении текущего блока может быть получена на основании смежного кандидата на слияние. С другой стороны, когда значение элемента синтаксиса isAdjancentMergeFlag равно 0, информация о движении текущего блока может быть получена на основании несмежного кандидата на слияние.When a plurality of merger candidates are included in the merger candidate list, at least one of the plurality of merger candidates may be selected (S1103). In this case, information indicating whether movement information of the current block is obtained from an adjacent merge candidate may be transmitted by a bit stream. The information may be a 1-bit flag. For example, the isAdjancentMergeFlag syntax element indicating whether the current block's movement information is derived from an adjacent merge candidate may be conveyed via a bitstream. When the value of the isAdjancentMergeFlag syntax element is 1, information about the movement of the current block can be obtained based on the adjacent merge candidate. On the other hand, when the value of the isAdjancentMergeFlag syntax element is 0, information about the movement of the current block can be obtained based on the non-adjacent merge candidate.

Информация для указания любого из множества кандидатов на слияние может передаваться посредством битового потока. Например, информация, указывающая индекс любого из кандидатов на слияние, включенных в список кандидатов на слияние, может быть передана посредством битового потока.Information to indicate any of a plurality of merge candidates may be transmitted via a bit stream. For example, information indicating the index of any of the merge candidates included in the list of merge candidates may be transmitted by a bit stream.

Когда isAdjacentMergeflag равен 1, может быть передан элемент синтаксиса merge_idx, указывающий любой из смежных кандидатов на слияние. Максимальное значение элемента синтаксиса merge_idx может быть установлено равным значению, полученному путем вычитания 1 из количества смежных кандидатов на слияние.When isAdjacentMergeflag is equal to 1, a merge_idx syntax element may be passed indicating any of the adjacent merge candidates. The maximum value of the merge_idx syntax element can be set to the value obtained by subtracting 1 from the number of contiguous merge candidates.

Когда isAdjacentMergeflag равен 0, может быть передан элемент синтаксиса NA_merge_idx, указывающий любой из несмежных кандидатов на слияние. Элемент синтаксиса NA_merge_idx представляет значение, полученное путем вычитания количества смежных кандидатов на слияние из индекса несмежного кандидата на слияние. Декодер может выбрать несмежного кандидата на слияние путем сложения количества смежных кандидатов на слияние с индексом, указанным посредством NA_merge_idx.When isAdjacentMergeflag is 0, a NA_merge_idx syntax element may be passed indicating any of the non-adjacent merge candidates. The NA_merge_idx syntax element represents the value obtained by subtracting the number of contiguous merge candidates from the index of the non-contiguous merge candidate. The decoder may select a non-contiguous merge candidate by adding the number of contiguous merge candidates with the index specified by NA_merge_idx.

Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем пороговое значение, кандидат на слияние, включенный в список информации о движении между участками, может быть добавлен в список кандидатов на слияние. В данном случае пороговое значение может представлять собой максимальное количество кандидатов на слияние, которое список кандидатов на слияние может содержать, или значение, полученное путем вычитания смещения из максимального количества кандидатов на слияние. Смещение может представлять собой натуральное число, такое как 1, 2 или т.п. Список информации о движении между участками может содержать кандидата на слияние, полученного на основании блока, кодированного/декодированного перед текущим блоком.When the number of merge candidates included in the merge candidate list is less than a threshold value, the merge candidate included in the inter-site traffic information list may be added to the merge candidate list. In this case, the threshold may be the maximum number of merge candidates that the list of merge candidates can contain, or a value obtained by subtracting the offset from the maximum number of merge candidates. The offset may be a natural number such as 1, 2, or the like. The list of inter-hop traffic information may include a merge candidate obtained based on a block encoded/decoded before the current block.

Список информации о движении между участками содержит кандидата на слияние, полученного из блока, кодированного/декодированного на основании предсказания, осуществляемого между изображениями, в текущем изображении. Например, информация о движении кандидата на слияние, включенного в список информации о движении между участками, может быть установлена равной информации о движении блока, кодированного/декодированного на основании предсказания, осуществляемого между изображениями. В данном случае информация о движении может содержать по меньшей мере одно из вектора движения, индекса опорного изображения, направления предсказания и двунаправленного весового индекса.The inter-section motion information list contains a fusion candidate obtained from a block encoded/decoded based on inter-picture prediction in the current picture. For example, the motion information of a fusion candidate included in the inter-section motion information list may be set equal to the motion information of a block encoded/decoded based on inter-picture prediction. Here, the motion information may comprise at least one of a motion vector, a reference image index, a prediction direction, and a bidirectional weight index.

Для удобства объяснения кандидат на слияние, включенный в список информации о движении между участками, будет называться кандидатом на слияние между участками.For convenience of explanation, a fusion candidate included in the inter-site traffic information list will be referred to as an inter-site fusion candidate.

Максимальное количество кандидатов на слияние, которое может содержать список информации о движении между участками, может быть предварительно задано кодером и декодером. Например, максимальное количество кандидатов на слияние, которое может содержать список информации о движении между участками, может составлять 1, 2, 3, 4, 5, 6, 7, 8 или больше (например, 16).The maximum number of merge candidates that can contain a list of inter-hop motion information can be preset by the encoder and decoder. For example, the maximum number of merge candidates that can contain a list of inter-site traffic information can be 1, 2, 3, 4, 5, 6, 7, 8 or more (eg, 16).

Альтернативно информация, указывающая максимальное количество кандидатов на слияние в списке информации о движении между участками, может быть передана посредством битового потока. Информация может передаваться на уровне последовательности, изображения или слайса.Alternatively, information indicating the maximum number of merge candidates in the inter-hop traffic information list may be transmitted via a bitstream. Information can be transferred at the sequence, image or slice level.

Альтернативно максимальное количество кандидатов на слияние списка информации о движении между участками может быть определено согласно размеру изображения, размеру слайса или размеру элемента кодового дерева.Alternatively, the maximum number of cross-section motion information list merging candidates may be determined according to the image size, slice size, or code tree element size.

Список информации о движении между участками может быть инициализирован элементом изображения, слайса, тайла, пакета, элементом кодового дерева или линией элементов кодового дерева (строкой или столбцом). Например, когда инициализирован слайс, список информации о движении между участками также инициализирован, и список информации о движении между участками может не содержать какого-либо кандидата на слияние.The list of inter-section motion information may be initialized by an image element, a slice, a tile, a packet, a code tree element, or a line of code tree elements (row or column). For example, when a slice is initialized, the inter-slice traffic information list is also initialized, and the inter-slice traffic information list may not contain any merge candidate.

Альтернативно информация, указывающая на то, нужно или нет инициализировать список информации о движении между участками, может быть передана посредством битового потока. Информация может быть передана на уровне слайса, тайла, пакета или блока. Пока информация не укажет об инициализации списка информации о движении между участками, может использоваться предварительно сконфигурированный список информации о движении между участками.Alternatively, information indicating whether or not to initialize a list of inter-section traffic information may be transmitted via a bitstream. Information can be transferred at the slice, tile, packet or block level. Until the information indicates initialization of the inter-section traffic information list, a preconfigured inter-section traffic information list may be used.

Альтернативно информация в отношении начального кандидата на слияние между участками может быть передана посредством набора параметров изображения или заголовка слайса. Несмотря на инициализацию слайса, список информации о движении между участками может содержать начального кандидата на слияние между участками. Соответственно кандидат на слияние между участками может использоваться для блока, который представляет собой первую цель кодирования/декодирования в слайсе.Alternatively, information regarding the initial inter-slice fusion candidate may be conveyed through a set of image parameters or a slice header. Despite slice initialization, the list of inter-partition traffic information may contain an initial inter-partition merge candidate. Accordingly, a cross-section merge candidate may be used for a block that represents the first encoding/decoding target in the slice.

Блоки кодированы/декодированы согласно порядку кодирования/декодирования, и блоки, кодированные/декодированные на основании предсказания, осуществляемого между изображениями, могут быть последовательно установлены в качестве кандидата на слияние между участками согласно порядку кодирования/декодирования.The blocks are encoded/decoded according to the encoding/decoding order, and the blocks encoded/decoded based on the prediction performed between pictures can be sequentially set as a fusion candidate between sections according to the encoding/decoding order.

На фиг. 15 представлена блок-схема, изображающая процесс обновления списка информации о движении между участками.In fig. 15 is a flowchart showing the process of updating the inter-section traffic information list.

Когда предсказание, осуществляемое между изображениями, выполняется (S1501) в отношении текущего блока, кандидат на слияние между участками может быть получен (S1502) на основании текущего блока. Информация о движении кандидата на слияние между участками может быть установлена равной информации о движении текущего блока.When inter-picture prediction is performed (S1501) on the current block, an inter-patch fusion candidate can be obtained (S1502) based on the current block. The movement information of a merge candidate between blocks may be set equal to the movement information of the current block.

Когда список информации о движении между участками пуст (S1503), кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S1504) в список информации о движении между участками.When the inter-section traffic information list is empty (S1503), the inter-section merging candidate obtained based on the current block can be added (S1504) to the inter-section traffic information list.

Когда список информации о движении между участками уже содержит кандидата на слияние между участками (S1503), в отношении информации о движении текущего блока (или кандидата на слияние между участками, полученного на основании текущего блока), может выполняться (S1505) контроль по избыточности. Контроль по избыточности предназначен для определения того, являются ли одинаковыми информация о движении кандидата на слияние между участками, ранее сохраненного в списке информации о движении между участками, и информация о движении текущего блока. Контроль по избыточности может быть выполнен в отношении всех кандидатов на слияние между участками, ранее сохраненными в списке информации о движении между участками. Альтернативно контроль по избыточности может быть выполнен в отношении кандидатов на слияние между участками, имеющих индекс, который больше, чем пороговое значение, или меньше, чем пороговое значение, из кандидатов на слияние между участками, ранее сохраненных в списке информации о движении между участками.When the inter-section movement information list already contains an inter-section merging candidate (S1503), redundancy check can be performed (S1505) on the movement information of the current block (or the inter-section merging candidate obtained based on the current block). The redundancy check is to determine whether the movement information of the inter-section merge candidate previously stored in the inter-section movement information list and the movement information of the current block are the same. Redundancy checking may be performed on all inter-site merging candidates previously stored in the inter-site traffic information list. Alternatively, redundancy checking may be performed on inter-site fusion candidates having an index that is greater than a threshold value or less than a threshold value from among the inter-site fusion candidates previously stored in the inter-site traffic information list.

Когда кандидат на слияние между участками, имеющий такую же информацию о движении в качестве информации о движении текущего блока, не включен, кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S1508) в список информации о движении между участками. Определение того, являются ли кандидаты на слияние одинаковыми, может быть осуществлено на основании того, является ли одинаковой информация о движении (например, вектор движения и/или индекс опорного изображения) кандидатов на слияние между участками.When an inter-section merging candidate having the same motion information as the motion information of the current block is not included, an inter-section merging candidate obtained based on the current block can be added (S1508) to the inter-section motion information list. Determining whether the fusion candidates are the same can be made based on whether the motion information (eg, motion vector and/or reference image index) of the fusion candidates is the same between regions.

В этом случае, когда максимальное количество кандидатов на слияние между участками уже сохранено в списке информации о движении между участками (S1506), наиболее старшие кандидаты на слияние между участками удаляются (S1507), и кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S1508) в список информации о движении между участками.In this case, when the maximum number of inter-section merging candidates has already been stored in the inter-section traffic information list (S1506), the most senior inter-section merging candidates are deleted (S1507), and the inter-section merging candidate obtained based on the current block is may be added (S1508) to the inter-section traffic information list.

Каждый из кандидатов на слияние между участками может быть идентифицирован индексом. Когда кандидат на слияние между участками, полученный из текущего блока, добавляется в список информации о движении между участками, самый низкий индекс (например, 0) присваивается кандидату на слияние между участками, и индексы ранее сохраненных кандидатов на слияние между участками могут быть увеличены на 1. В этом случае, когда максимальное количество кандидатов на слияние между участками уже сохранено в списке информации о движении между участками, кандидат на слияние между участками, имеющий самый большой индекс, удаляется.Each of the cross-site fusion candidates can be identified by an index. When an inter-site merge candidate obtained from the current block is added to the inter-site traffic information list, the lowest index (for example, 0) is assigned to the inter-site merge candidate, and the indices of previously stored inter-site merge candidates may be incremented by 1 In this case, when the maximum number of inter-site merge candidates has already been stored in the inter-site traffic information list, the inter-site merge candidate having the largest index is deleted.

Альтернативно, когда кандидат на слияние между участками, полученный из текущего блока, добавляется в список информации о движении между участками, самый большой индекс может присваиваться кандидату на слияние между участками. Например, когда количество кандидатов на слияние между участками, ранее сохраненных в списке информации о движении между участками, меньше, чем максимальное значение, индекс, имеющий такое же значение, как количество ранее сохраненных кандидатов на слияние между участками, может присваиваться кандидату на слияние между участками. Альтернативно, когда количество кандидатов на слияние между участками, ранее сохраненное в списке информации о движении между участками, является таким же, как максимальное значение, кандидату на слияние между участками может присваиваться индекс, вычитающий 1 из максимального значения. Кроме того, кандидат на слияние между участками, имеющий самый маленький индекс, удаляется, и индексы оставшихся ранее сохраненных кандидатов на слияние между участками могут уменьшаться на 1.Alternatively, when an inter-site merge candidate obtained from the current block is added to the inter-site traffic information list, the largest index may be assigned to the inter-site merge candidate. For example, when the number of inter-site fusion candidates previously stored in the inter-site traffic information list is less than the maximum value, an index having the same value as the number of previously stored inter-site fusion candidates may be assigned to the inter-site fusion candidate . Alternatively, when the number of inter-site fusion candidates previously stored in the inter-site traffic information list is the same as the maximum value, the inter-site fusion candidate may be assigned an index subtracting 1 from the maximum value. Additionally, the inter-site merge candidate having the smallest index is removed, and the indices of the remaining previously stored inter-site merge candidates may be decremented by 1.

На фиг. 16 представлен вид, показывающий вариант осуществления обновления списка кандидатов на слияние между участками.In fig. 16 is a view showing an embodiment of updating a cross-site merge candidate list.

Предположительно, поскольку кандидат на слияние между участками, полученный из текущего блока, добавляется в список кандидатов на слияние между участками, самый большой индекс присваивается кандидату на слияние между участками. Кроме того, предположительно максимальное количество кандидатов на слияние между участками уже сохранено в списке кандидатов на слияние между участками.Presumably, since the inter-site merge candidate obtained from the current block is added to the list of inter-site merge candidates, the largest index is assigned to the inter-site merge candidate. In addition, presumably the maximum number of cross-site merge candidates is already stored in the inter-site merge candidate list.

Когда кандидат на слияние между участками HmvpCand[n + 1], полученный из текущего блока, добавляется в список кандидатов на слияние между участками HmvpCandList, кандидат на слияние между участками HmvpCand[0], имеющий самый маленький индекс среди ранее сохраненных кандидатов на слияние между участками, удаляется, и индексы оставшихся кандидатов на слияние между участками могут быть уменьшены на 1. Кроме того, индекс кандидата на слияние между участками HmvpCand[n + 1], полученного из текущего блока, может быть установлен равным максимальному значению (n в примере, показанном на фиг. 16).When an inter-site merge candidate HmvpCand[n + 1] obtained from the current block is added to the inter-site merge candidate list HmvpCandList, the inter-site merge candidate HmvpCand[0] having the smallest index among the previously stored inter-site merge candidates , is removed, and the indices of the remaining cross-section merge candidates can be decremented by 1. Additionally, the index of the cross-section merge candidate HmvpCand[n + 1] obtained from the current block can be set to the maximum value (n in the example shown in Fig. 16).

Когда кандидат на слияние между участками, являющийся таким же, как кандидат на слияние между участками, полученный на основании текущего блока, сохранен ранее (S1505), кандидат на слияние между участками, полученный на основании текущего блока, может не добавляться (S1509) в список информации о движении между участками.When an inter-site fusion candidate that is the same as an inter-site fusion candidate obtained based on the current block is stored previously (S1505), the inter-site fusion candidate obtained based on the current block may not be added (S1509) to the list information about movement between sections.

Альтернативно, поскольку кандидат на слияние между участками, полученный на основании текущего блока, добавляется в список информации о движении между участками, ранее сохраненный кандидат на слияние между участками, который является таким же, как кандидат на слияние между участками, может удаляться. В этом случае достигается эффект, аналогичный обновлению заново индекса ранее сохраненного кандидата на слияние между участками.Alternatively, since the inter-site merge candidate obtained based on the current block is added to the inter-site traffic information list, a previously stored inter-site merge candidate that is the same as the inter-site merge candidate may be deleted. In this case, an effect similar to updating the index of a previously saved merge candidate between sites is achieved.

На фиг. 17 представлен вид, показывающий пример, в котором индекс ранее сохраненного кандидата на слияние между участками обновлен.In fig. 17 is a view showing an example in which the index of a previously stored inter-site merge candidate is updated.

Когда индекс ранее сохраненного кандидата на слияние между участками mvCand, который является таким же, как кандидат на слияние между участками mvCand, полученный на основании текущего блока, представляет собой hIdx, ранее сохраненный кандидат на слияние между участками удаляется, и индексы кандидатов на слияние между участками, имеющие индекс, который больше, чем hIdx, могут быть уменьшены на 1. Например, в примере, показанном на фиг. 17, показано, что HmvpCand[2], являющийся таким же, как mvCand, удаляется из списка информации о движении между участками HvmpCandList, и индексы HmvpCand[3]-HmvpCand[n] увеличиваются на 1.When the index of a previously stored inter-site merge candidate mvCand, which is the same as the inter-site merge candidate mvCand obtained based on the current block, is hIdx, the previously stored inter-site merge candidate is deleted, and the indexes of the inter-site merge candidates having an index that is greater than hIdx may be decreased by 1. For example, in the example shown in FIG. 17, it is shown that HmvpCand[2], which is the same as mvCand, is removed from the inter-section traffic information list HvmpCandList, and the indices HmvpCand[3]-HmvpCand[n] are increased by 1.

Кроме того, кандидат на слияние между участками mvCand, полученный на основании текущего блока, может добавляться в конец списка информации о движении между участками.In addition, the inter-site fusion candidate mvCand obtained based on the current block may be added to the end of the inter-site traffic information list.

Альтернативно индекс, присвоенный ранее сохраненному кандидату на слияние между участками, который является таким же, как кандидат на слияние между участками, полученный на основании текущего блока, может обновляться. Например, индекс ранее сохраненного кандидата на слияние между участками может изменяться до минимального значения или максимального значения.Alternatively, the index assigned to a previously stored inter-partition merge candidate that is the same as the inter-partition merge candidate obtained based on the current block may be updated. For example, the index of a previously stored cross-site merge candidate may be changed to a minimum value or a maximum value.

Он может быть установлен не добавлять информацию о движении блоков, включенных в предварительно определенную область, в список информации о движении между участками. Например, кандидат на слияние между участками, полученный на основании информации о движении блока, включенного в область обработки слияния, может не добавляться в список информации о движении между участками. Поскольку порядок кодирования/декодирования не определяется для блоков, включенных в область обработки слияния, неуместно использовать информацию о движении любого из блоков для предсказания, осуществляемого между изображениями, другого блока. Соответственно кандидаты на слияние между участками, полученные на основании блоков, включенных в область обработки слияния, могут не добавляться в список информации о движении между участками.It can be set not to add movement information of blocks included in a predefined area to the inter-area movement information list. For example, an inter-area fusion candidate obtained based on the movement information of a block included in the fusion processing area may not be added to the inter-area movement information list. Since the encoding/decoding order is not determined for the blocks included in the fusion processing region, it is inappropriate to use the motion information of any of the blocks for inter-picture prediction of another block. Accordingly, inter-section fusion candidates obtained based on blocks included in the fusion processing area may not be added to the inter-section traffic information list.

Когда предсказание с компенсацией движения выполняется элементом подблока, кандидат на слияние между участками может быть получен на основании информации о движении иллюстративного подблока из множества подблоков, включенных в текущий блок. Например, когда кандидат на слияние подблока используется для текущего блока, кандидат на слияние между участками может быть получен на основании информации о движении иллюстративного подблока из подблоков.When motion-compensated prediction is performed by a sub-block element, a cross-section fusion candidate can be obtained based on the motion information of an example sub-block of a plurality of sub-blocks included in the current block. For example, when a subblock merge candidate is used for a current block, an inter-section merge candidate may be obtained based on the motion information of an example subblock of subblocks.

Векторы движения подблоков могут быть получены в следующем порядке. Сначала выбирается любой из кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, и начальный вектор сдвига (shVector) может быть получен на основании вектора движения выбранного кандидата на слияние. Затем подблок сдвига, у которого положение опорного отсчета представляет собой (xColSb, yColSb), может быть получен в качестве начального вектора сдвига, который добавляется в положении (xSb, ySb) опорного отсчета (например, верхнего левого отсчета или отсчета в центре) каждого подблока в блоке кодирования. В уравнении 4 показано уравнение для получения подблока сдвига.The motion vectors of the subblocks can be obtained in the following order. First, any of the merge candidates included in the list of merge candidates of the current block is selected, and an initial shift vector (shVector) can be obtained based on the motion vector of the selected merge candidate. Then, a shift subblock whose reference sample position is (xColSb, yColSb) can be obtained as an initial shift vector, which is added at the reference sample position (e.g., top left sample or center sample) of each subblock in the coding block. Equation 4 shows the equation for obtaining the shift subblock.

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

Затем вектор движения совмещаемого блока, соответствующего центральному положению подблока, имеющего (xColSb, yColSb), может быть установлен в качестве вектора движения подблока, имеющего (xSb, ySb).Then, the motion vector of the aligned block corresponding to the center position of the subblock having (xColSb, yColSb) can be set as the motion vector of the subblock having (xSb, ySb).

Иллюстративный подблок может означать подблок, содержащий верхний левый отсчет или отсчет в центре текущего блока.An exemplary sub-block may mean a sub-block containing the top-left sample or the sample in the center of the current block.

На фиг. 18 представлен вид, показывающий положение иллюстративного подблока.In fig. 18 is a view showing the position of an illustrative sub-block.

На фиг. 18 (a) показан пример, в котором подблок, расположенный сверху слева текущего блока, установлен в качестве иллюстративного подблока, и на фиг. 18 (b) показан пример, в котором подблок, расположенный в центре текущего блока, установлен в качестве иллюстративного подблока. Когда предсказание с компенсацией движения выполняется элементом подблока, кандидат на слияние между участками текущего блока может быть получен на основании вектора движения подблока, содержащего верхний левый отсчет текущего блока, или подблока, содержащего отсчет в центре текущего блока.In fig. 18(a) shows an example in which a subblock located at the top left of the current block is set as an example subblock, and FIG. 18(b) shows an example in which a subblock located at the center of the current block is set as an example subblock. When motion-compensated prediction is performed by a sub-block element, a candidate for merging between portions of the current block can be obtained based on the motion vector of the sub-block containing the top-left sample of the current block or the sub-block containing the sample in the center of the current block.

Может быть определено, использовать или нет текущий блок в качестве кандидата на слияние между участками, на основании режима предсказания, осуществляемого между изображениями, текущего блока. Например, блок, кодированный/декодированный на основании модели аффинного движения, может быть установлен недоступным в качестве кандидата на слияние между участками. Соответственно, несмотря на то, что текущий блок является кодированным/декодированным путем предсказания, осуществляемого между изображениями, когда режим предсказания, осуществляемого между изображениями, текущего блока представляет собой режим аффинного предсказания, список информации о движении между участками может не обновляться на основании текущего блока.It can be determined whether or not to use the current block as an inter-patch fusion candidate based on the inter-image prediction mode of the current block. For example, a block encoded/decoded based on an affine motion model may be set unavailable as a candidate for cross-patch merging. Accordingly, although the current block is encoded/decoded by inter-picture prediction, when the inter-picture prediction mode of the current block is an affine prediction mode, the inter-section motion information list may not be updated based on the current block.

Альтернативно кандидат на слияние между участками может быть получен на основании по меньшей мере одного вектора подблока из подблоков, включенных в блок, кодированный/декодированный на основании модели аффинного движения. Например, кандидат на слияние между участками может быть получен с использованием подблока, расположенного сверху слева, подблока, расположенного в центре, или подблока, расположенного на верхней правой стороне текущего блока. Альтернативно среднее значение векторов подблоков множества подблоков может быть установлено в качестве вектора движения кандидата на слияние между участками.Alternatively, an inter-region fusion candidate may be obtained based on at least one sub-block vector of the sub-blocks included in the block encoded/decoded based on the affine motion model. For example, a cross-section merge candidate may be obtained using a sub-block located on the top left side, a sub-block located in the center, or a sub-block located on the top right side of the current block. Alternatively, the average of the subblock vectors of the plurality of subblocks may be set as the motion vector of a cross-section fusion candidate.

Альтернативно кандидат на слияние между участками может быть получен на основании среднего значения аффинных исходных векторов блока, кодированного/декодированного на основании модели аффинного движения. Например, среднее по меньшей мере одного из первого аффинного исходного вектора, второго аффинного исходного вектора и третьего аффинного исходного вектора текущего блока может быть установлено в качестве вектора движения кандидата на слияние между участками.Alternatively, a cross-patch fusion candidate can be obtained based on the average of the affine source vectors of the block encoded/decoded based on the affine motion model. For example, the average of at least one of the first affine source vector, the second affine source vector, and the third affine source vector of the current block may be set as the motion vector of the cross-section fusion candidate.

Альтернативно список информации о движении между участками может быть сконфигурирован для каждого режима предсказания, осуществляемого между изображениями. Например, может быть определен по меньшей мере один из списка информации о движении между участками для блока, кодированного/декодированного путем внутриблочного копирования, списка информации о движении между участками для блока, кодированного/декодированного на основании модели поступательного движения, и списка информации о движении между участками для блока, кодированного/декодированного на основании модели аффинного движения. Согласно режиму предсказания, осуществляемого между изображениями текущего блока, может быть выбран любой из множества списков информации о движении между участками.Alternatively, a list of inter-patch motion information may be configured for each inter-picture prediction mode. For example, at least one of a list of inter-lot motion information for a block encoded/decoded by intra-block copying, a list of inter-lot motion information for a block encoded/decoded based on a translational motion model, and a list of inter-lot motion information may be defined. sections for a block encoded/decoded based on the affine motion model. According to the prediction mode performed between images of the current block, any of a plurality of inter-section motion information lists can be selected.

На фиг. 19 представлен вид, показывающий пример, в котором список информации о движении между участками генерируется для каждого режима предсказания, осуществляемого между изображениями.In fig. 19 is a view showing an example in which a list of inter-section motion information is generated for each inter-image prediction mode.

Когда блок является кодированным/декодированным на основании модели неаффинного движения, кандидат на слияние между участками mvCand, полученный на основании блока, может быть добавлен в список информации о неаффинном движении между участками HmvpCandList. С другой стороны, когда блок является кодированным/декодированным на основании модели аффинного движения, кандидат на слияние между участками mvAfCand, полученный на основании блока, может быть добавлен в список информации об аффинном движении между участками HmvpAfCandList.When a block is encoded/decoded based on a non-affine motion model, the inter-site fusion candidate mvCand obtained based on the block may be added to the inter-site non-affine motion information list HmvpCandList. On the other hand, when a block is encoded/decoded based on an affine motion model, the inter-site fusion candidate mvAfCand obtained based on the block may be added to the inter-site affine motion information list HmvpAfCandList.

Аффинные исходные векторы блока, кодированного/декодированного на основании модели аффинного движения, могут быть сохранены в кандидате на слияние между участками, полученном из блока. Соответственно, кандидат на слияние между участками может использоваться в качестве кандидата на слияние для получения аффинного исходного вектора текущего блока.The affine source vectors of a block encoded/decoded based on the affine motion model can be stored in a cross-section fusion candidate derived from the block. Accordingly, the cross-section merge candidate can be used as a merge candidate to obtain the affine source vector of the current block.

Дополнительно к списку информации о движении между участками, описанному выше, может быть определен дополнительный список информации о движении между участками. Дополнительно к списку информации о движении между участками, описанному выше (далее называемому первым списком информации о движении между участками), может быть определен долговременный список информации о движении (далее называемый вторым списком информации о движении между участками). В данном случае долговременный список информации о движении содержит долговременных кандидатов на слияние.In addition to the list of inter-section traffic information described above, an additional list of inter-section traffic information may be defined. In addition to the inter-section traffic information list described above (hereinafter referred to as the first inter-section traffic information list), a long-term traffic information list (hereinafter referred to as the second inter-section traffic information list) can be defined. In this case, the long-term motion information list contains long-term merge candidates.

Когда оба из первого списка информации о движении между участками и второго списка информации о движении между участками пусты, сначала кандидаты на слияние между участками могут быть добавлены во второй список информации о движении между участками. Только после того, как количество доступных кандидатов на слияние между участками достигает максимального количества во втором списке информации о движении между участками, кандидаты на слияние между участками могут быть добавлены в первый список информации о движении между участками.When both of the first inter-site traffic information list and the second inter-site traffic information list are empty, first, inter-site merging candidates may be added to the second inter-site traffic information list. Only after the number of available inter-site fusion candidates reaches the maximum number in the second inter-site traffic information list, the inter-site fusion candidates can be added to the first inter-site traffic information list.

Альтернативно один кандидат на слияние между участками может быть добавлен в оба из второго списка информации о движении между участками и первого списка информации о движении между участками.Alternatively, one inter-site merging candidate may be added to both of the second inter-site traffic information list and the first inter-site traffic information list.

В этом случае второй список информации о движении между участками, конфигурация которого завершена, может больше не обновляться. Альтернативно, когда декодированный участок больше, чем предварительно определенное соотношение слайса или равняется ему, может быть обновлен второй список информации о движении между участками. Альтернативно второй список информации о движении между участками может быть обновлен для каждых N линий элементов кодового дерева.In this case, the second inter-section traffic information list whose configuration is completed may no longer be updated. Alternatively, when the decoded slice is greater than or equal to the predetermined slice ratio, the second inter-slice motion information list may be updated. Alternatively, the second list of inter-leg traffic information may be updated for every N code tree element lines.

С другой стороны первый список информации о движении между участками может обновляться в любое время, когда генерируется блок, кодированный/декодированный путем предсказания, осуществляемого между изображениями. Однако может быть установлено не использовать кандидата на слияние между участками, добавленного во второй список информации о движении между участками, для обновления первого списка информации о движении между участками.On the other hand, the first list of inter-section motion information may be updated at any time when a block encoded/decoded by inter-picture prediction is generated. However, it may be determined not to use the inter-site fusion candidate added to the second inter-site traffic information list to update the first inter-site traffic information list.

Информация для выбора любого из первого списка информации о движении между участками и второго списка информации о движении между участками может быть передана посредством битового потока. Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем пороговое значение, кандидаты на слияние, включенные в список информации о движении между участками, указанный информацией, могут быть добавлены в список кандидатов на слияние.Information for selecting any of the first list of inter-section traffic information and the second list of inter-section traffic information may be transmitted by a bit stream. When the number of merger candidates included in the merger candidate list is less than a threshold value, the merger candidates included in the inter-site traffic information list specified by the information may be added to the merger candidate list.

Альтернативно список информации о движении между участками может быть выбран на основании размера и формы текущего блока, режима предсказания, осуществляемого между изображениями, того, обеспечено ли двунаправленное предсказание, того, обеспечено ли уточнение вектора движения, или того, обеспечено ли треугольное разбиение.Alternatively, the list of inter-patch motion information may be selected based on the size and shape of the current block, the prediction mode performed between images, whether bidirectional prediction is provided, whether motion vector refinement is provided, or whether triangular partitioning is provided.

Альтернативно, несмотря на то, что кандидат на слияние между участками, включенный в первый список информации о движении между участками, добавляется, когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное количество слияний, кандидаты на слияние между участками, включенные во второй список информации о движении между участками, могут быть добавлены в список кандидатов на слияние.Alternatively, although the inter-site fusion candidate included in the first inter-site traffic information list is added, when the number of fusion candidates included in the fusion candidate list is less than the maximum number of fusions, the inter-site fusion candidates , included in the second list of information about traffic between sites, can be added to the list of candidates for merging.

На фиг. 20 представлен вид, показывающий пример, в котором кандидат на слияние между участками, включенный в долговременный список информации о движении, добавляется в список кандидатов на слияние.In fig. 20 is a view showing an example in which a cross-section merging candidate included in the long-term traffic information list is added to the merging candidate list.

Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное количество, кандидаты на слияние между участками, включенные в первый список информации о движении между участками HmvpCandList, могут быть добавлены в список кандидатов на слияние. Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное количество, несмотря на то, что кандидаты на слияние между участками, включенные в первый список информации о движении между участками, добавляются в список кандидатов на слияние, кандидаты на слияние между участками, включенные в долговременный список информации о движении HmvpLTCandList, могут добавляться в список кандидатов на слияние.When the number of merge candidates included in the merge candidate list is less than the maximum number, inter-site merge candidates included in the first inter-site traffic information list HmvpCandList may be added to the merge candidate list. When the number of fusion candidates included in the fusion candidate list is less than the maximum number, although inter-site fusion candidates included in the first inter-site traffic information list are added to the fusion candidate list, the fusion candidates between sites included in the long-term traffic information list HmvpLTCandList can be added to the list of merge candidates.

Кандидат на слияние между участками может быть установлен содержащим дополнительную информацию, дополнительно к информации о движении. Например, для кандидата на слияние между участками дополнительно может сохраняться размер, форма или информация о разбиении блока. При построении списка кандидатов на слияние текущего блока только кандидаты на слияние между участками, имеющие размер, форму или информацию о разбиении, которые являются такими же, как или подобными с таковыми текущего блока, используются среди кандидатов на слияние между участками, или кандидаты на слияние между участками, имеющие размер, форму или информацию о разбиении, которые являются такими же, как или подобными с таковыми текущего блока, могут добавляться в список кандидатов на слияние в первую очередь.The cross-section fusion candidate may be set to contain additional information in addition to the traffic information. For example, size, shape, or block splitting information may be additionally stored for a cross-section merge candidate. When constructing a list of merge candidates of the current block, only inter-partition merge candidates having size, shape, or partitioning information that are the same as or similar to those of the current block are used among the inter-partition merge candidates, or inter-partition merge candidates. sections having size, shape, or partitioning information that are the same as or similar to those of the current block may be added to the merge candidate list first.

Альтернативно список информации о движении между участками может генерироваться для каждого из размера, формы или информации о разбиении блока. Из множества списков информации о движении между участками список кандидатов на слияние текущего блока может генерироваться с использованием списка информации о движении между участками, соответствующего форме, размеру или информации о разбиении текущего блока.Alternatively, a list of inter-lot traffic information may be generated for each of the size, shape, or block partition information. From the plurality of inter-lot traffic information lists, a list of candidates for merging a current block may be generated using a list of inter-lot traffic information corresponding to the shape, size or partition information of the current block.

Когда количество кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, меньше, чем пороговое значение, кандидаты на слияние между участками, включенные в список информации о движении между участками, могут добавляться в список кандидатов на слияние. Процесс добавления выполняется в порядке возрастания или убывания на основании индекса. Например, кандидат на слияние между участками, имеющий самый большой индекс, может сначала быть добавлен в список кандидатов на слияние.When the number of merge candidates included in the merge candidate list of the current block is less than a threshold value, inter-site merge candidates included in the inter-site traffic information list may be added to the merge candidate list. The adding process is performed in ascending or descending order based on the index. For example, the cross-site merge candidate that has the largest index may be added to the merge candidate list first.

Когда необходимо добавить кандидата на слияние между участками, включенного в список информации о движении между участками, в список кандидатов на слияние, контроль по избыточности может выполняться между кандидатом на слияние между участками и кандидатами на слияние, ранее сохраненными в списке кандидатов на слияние.When it is necessary to add an inter-site merge candidate included in the inter-site traffic information list to the merge candidate list, redundancy checking may be performed between the inter-site merge candidate and the merge candidates previously stored in the merge candidate list.

Контроль по избыточности может выполняться только в отношении некоторых кандидатов на слияние между участками, включенных в список информации о движении между участками. Например, контроль по избыточности может выполняться только в отношении кандидатов на слияние между участками, имеющих индекс, который больше, чем пороговое значение, или меньше, чем пороговое значение. Альтернативно контроль по избыточности может выполняться только в отношении N кандидатов на слияние, имеющих наибольший индекс, или N кандидатов на слияние, имеющих наименьший индекс.Redundancy checking can only be performed on some inter-site merging candidates included in the inter-site traffic information list. For example, redundancy checking may be performed only on cross-site merge candidates having an index that is greater than a threshold value or less than a threshold value. Alternatively, redundancy checking may be performed on only the N merge candidates having the largest index or the N merge candidates having the smallest index.

Альтернативно контроль по избыточности может выполняться только в отношении некоторых кандидатов на слияние, ранее сохраненных в списке кандидатов на слияние. Например, контроль по избыточности может выполняться только в отношении кандидата на слияние, имеющего индекс, который больше, чем пороговое значение, или меньше, чем пороговое значение, или в отношении кандидата на слияние, полученного из блока в конкретном положении. В данном случае конкретное положение может содержать по меньшей мере один из левого соседнего блока, верхнего соседнего блока, верхнего правого соседнего блока и нижнего левого соседнего блока текущего блока.Alternatively, redundancy checking may be performed only on some of the merge candidates previously stored in the merge candidate list. For example, redundancy checking may be performed only on a merge candidate having an index that is greater than a threshold value, or less than a threshold value, or on a merge candidate derived from a block at a particular position. Here, the particular position may comprise at least one of a left adjacent block, an upper adjacent block, an upper right adjacent block, and a lower left adjacent block of the current block.

На фиг. 21 представлен вид, показывающий пример, в котором контроль по избыточности выполняется только в отношении некоторых кандидатов на слияние.In fig. 21 is a view showing an example in which redundancy checking is performed only on some merge candidates.

Когда необходимо добавить кандидата на слияние между участками HmvpCand[j] в список кандидатов на слияние, контроль по избыточности может выполняться в отношении кандидата на слияние между участками с двумя кандидатами на слияние mergeCandList[NumMerge-2] и mergeCandList[NumMerge-1], имеющими самые большие индексы. В данном случае NumMerge может представлять количество пространственных кандидатов на слияние и временных кандидатов на слияние, которые являются доступными.When it is necessary to add the cross-section merge candidate HmvpCand[j] to the merge candidate list, redundancy checking can be performed on the cross-section merge candidate with two merge candidates mergeCandList[NumMerge-2] and mergeCandList[NumMerge-1] having the largest indices. In this case, NumMerge may represent the number of spatial merge candidates and temporal merge candidates that are available.

В отличие от примера, показанного на графическом материале, когда необходимо добавить кандидата на слияние между участками HmvpCand[j] в список кандидатов на слияние, контроль по избыточности может выполняться в отношении кандидата на слияние между участками не более чем с двумя кандидатами на слияние, имеющими самый маленький индекс. Например, можно проверить, являются ли mergeCandList[0] и mergeCandList[1] такими же, как HmvpCand[j]. Альтернативно контроль по избыточности может выполняться только в отношении кандидатов на слияние, полученных в конкретном положении. Например, контроль по избыточности может выполняться в отношении по меньшей мере одного из кандидата на слияние, полученного из соседнего блока, расположенного на левой стороне текущего блока, и кандидата на слияние, полученного из соседнего блока, расположенного сверху текущего блока. Когда кандидат на слияние, полученный в конкретном положении, не существует в списке кандидатов на слияние, кандидат на слияние между участками может добавляться в список кандидатов на слияние без наличия контроля по избыточности.Unlike the example shown in the graphic, where it is necessary to add a cross-site merge candidate HmvpCand[j] to the list of merge candidates, a redundancy check can be performed on a cross-site merge candidate with no more than two merge candidates having smallest index. For example, you can check whether mergeCandList[0] and mergeCandList[1] are the same as HmvpCand[j]. Alternatively, redundancy checking may be performed only on merger candidates obtained at a particular position. For example, redundancy checking may be performed on at least one of a merge candidate obtained from an adjacent block located on the left side of the current block and a merge candidate obtained from an adjacent block located on top of the current block. When a merge candidate obtained at a particular location does not exist in the merge candidate list, the cross-site merge candidate may be added to the merge candidate list without having a redundancy check.

Когда кандидат на слияние, являющийся таким же, как первый кандидат на слияние между участками, обнаруживается, и выполняется контроль по избыточности в отношении второго кандидата на слияние между участками, контроль по избыточности с кандидатом на слияние, который является таким же, как первый кандидат на слияние между участками, может опускаться.When a fusion candidate that is the same as the first inter-site fusion candidate is detected and redundancy check is performed on the second inter-site fusion candidate, a redundancy check is performed on the fusion candidate that is the same as the first inter-site fusion candidate. merging between sections may be omitted.

На фиг. 22 представлен вид, показывающий пример, в котором контроль по избыточности опускается для конкретного кандидата на слияние.In fig. 22 is a view showing an example in which the redundancy check is omitted for a particular merge candidate.

Когда необходимо добавить кандидата на слияние между участками HmvpCand[i], имеющего индекс i, в список кандидатов на слияние, контроль по избыточности выполняется между кандидатом на слияние между участками и кандидатами на слияние, ранее сохраненными в списке кандидатов на слияние. В этом случае, когда кандидат на слияние mergeCandList[j], являющийся таким же, как кандидат на слияние между участками HmvpCand[i], обнаруживается, контроль по избыточности может выполняться между кандидатом на слияние между участками HmvpCand[i-1], имеющим индекс i-1, и кандидатами на слияние без добавления кандидата на слияние между участками HmvpCand[i] в список кандидатов на слияние. В этом случае контроль по избыточности между кандидатом на слияние между участками HmvpCand[i-1] и кандидатом на слияние mergeCandList[j] может опускаться.When it is necessary to add an inter-site merge candidate HmvpCand[i] having index i to the merge candidate list, redundancy checking is performed between the inter-site merge candidate and the merge candidates previously stored in the merge candidate list. In this case, when a merge candidate mergeCandList[j] that is the same as an inter-site merge candidate HmvpCand[i] is detected, redundancy checking may be performed between the inter-site merge candidate HmvpCand[i-1] having the index i-1, and merge candidates without adding the cross-site merge candidate HmvpCand[i] to the list of merge candidates. In this case, the redundancy check between the cross-section merge candidate HmvpCand[i-1] and the merge candidate mergeCandList[j] may be omitted.

Например, в примере, показанном на фиг. 22, определяется, что HmvpCand[i] и mergeCandList[2] являются одинаковыми. Соответственно, HmvpCand[i] не добавляется в список кандидатов на слияние, и контроль по избыточности может выполняться в отношении HmvpCand[i-1]. В этом случае контроль по избыточности между HvmpCand[i-1] и mergeCandList[2] может опускаться.For example, in the example shown in FIG. 22, it is determined that HmvpCand[i] and mergeCandList[2] are the same. Accordingly, HmvpCand[i] is not added to the merge candidate list, and redundancy checking can be performed on HmvpCand[i-1]. In this case, the redundancy check between HvmpCand[i-1] and mergeCandList[2] can be omitted.

Когда количество кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, меньше, чем пороговое значение, по меньшей мере один из парного кандидата на слияние и нулевого кандидата на слияние могут быть дополнительно включены, дополнительно к кандидату на слияние между участками. Парный кандидат на слияние означает кандидата на слияние, имеющего среднее значение векторов движения двух или более кандидатов на слияние в качестве вектора движения, и нулевой кандидат на слияние означает кандидата на слияние, имеющего вектор движения, равный 0.When the number of merge candidates included in the current block's merge candidate list is less than a threshold, at least one of the paired merge candidate and the null merge candidate may be further included in addition to the inter-block merge candidate. A paired fusion candidate means a fusion candidate having the average of the motion vectors of two or more fusion candidates as a motion vector, and a zero fusion candidate means a fusion candidate having a motion vector of 0.

Кандидат на слияние может быть добавлен в список кандидатов на слияние текущего блока в следующем порядке.A merge candidate can be added to the list of merge candidates of the current block in the following order.

Пространственный кандидат на слияние - Временной кандидат на слияние - Кандидат на слияние между участками - (кандидат на аффинное слияние между участками) - Парный кандидат на слияние - Нулевой кандидат на слияниеSpatial merge candidate - Temporal merge candidate - Inter-site merge candidate - (inter-site affine merge candidate) - Pairwise merge candidate - Null merge candidate

Пространственный кандидат на слияние означает кандидата на слияние, полученного из по меньшей мере одного из соседнего блока и несоседнего блока, и временной кандидат на слияние означает кандидата на слияние, полученного из предыдущего опорного изображения. Кандидат на аффинное слияние между участками представляет кандидата на слияние между участками, полученного из блока, кодированного/декодированного моделью аффинного движения.A spatial merge candidate means a merge candidate obtained from at least one of an adjacent block and a non-neighboring block, and a temporal merge candidate means a merge candidate obtained from a previous reference image. The inter-region affine fusion candidate represents the inter-region fusion candidate obtained from the block encoded/decoded by the affine motion model.

Список информации о движении между участками может также использоваться в режиме предсказания вектора движения. Например, когда количество кандидатов предсказания вектора движения, включенных в список кандидатов предсказания вектора движения текущего блока, меньше, чем пороговое значение, кандидат на слияние между участками, включенный в список информации о движении между участками, может быть установлен как кандидат предсказания вектора движения для текущего блока. В частности, вектор движения кандидата на слияние между участками может быть установлен в качестве кандидата предсказания вектора движения.The list of traffic information between sections can also be used in the motion vector prediction mode. For example, when the number of motion vector prediction candidates included in the motion vector prediction candidate list of the current block is less than a threshold value, an inter-section fusion candidate included in the inter-section motion information list may be set as a motion vector prediction candidate for the current block. block. Specifically, the motion vector of the cross-section fusion candidate may be set as the motion vector prediction candidate.

Когда выбирается любой из кандидатов предсказания вектора движения, включенных в список кандидатов предсказания вектора движения текущего блока, выбранный кандидат может быть установлен в качестве предсказателя вектора движения текущего блока. Затем после декодирования остаточного коэффициента вектора движения текущего блока вектор движения текущего блока может быть получен путем добавления предсказателя вектора движения и остаточного коэффициента вектора движения.When any of the motion vector prediction candidates included in the motion vector prediction candidate list of the current block is selected, the selected candidate can be set as the motion vector predictor of the current block. Then, after decoding the residual motion vector coefficient of the current block, the motion vector of the current block can be obtained by adding a motion vector predictor and a residual motion vector coefficient.

Список кандидатов предсказания вектора движения текущего блока может быть сконфигурирован в следующем порядке.The motion vector prediction candidate list of the current block can be configured in the following order.

Пространственный кандидат предсказания вектора движения - Временной кандидат предсказания вектора движения - Кандидат на слияние между участками - (Кандидат на аффинное слияние между участками) - Кандидат предсказания нулевого вектора движения.Spatial motion vector prediction candidate - Temporal motion vector prediction candidate - Inter-site fusion candidate - (Inter-site affine fusion candidate) - Null motion vector prediction candidate.

Пространственный кандидат предсказания вектора движения означает кандидата предсказания вектора движения, полученного из по меньшей мере одного из соседнего блока и несоседнего блока, и временной кандидат предсказания вектора движения означает кандидата предсказания вектора движения, полученного из предыдущего опорного изображения. Кандидат на аффинное слияние между участками представляет кандидата предсказания вектора движения между участками, полученного из блока, кодированного/декодированного моделью аффинного движения. Кандидат предсказания нулевого вектора движения представляет кандидата, имеющего значение вектора движения, равное 0.The spatial motion vector prediction candidate means a motion vector prediction candidate obtained from at least one of an adjacent block and a non-neighboring block, and a temporal motion vector prediction candidate means a motion vector prediction candidate obtained from a previous reference picture. The inter-region affine fusion candidate represents the inter-region motion vector prediction candidate obtained from the block encoded/decoded by the affine motion model. The zero motion vector prediction candidate represents a candidate having a motion vector value of 0.

Блок кодирования может быть разбит на множество элементов предсказания, и предсказание может быть выполнено в отношении каждого из разбитых элементов предсказания. В этом случае элемент предсказания представляет базовый элемент для выполнения предсказания.A coding block may be divided into a plurality of prediction elements, and prediction may be performed on each of the divided prediction elements. In this case, the prediction element represents the base element for performing the prediction.

Блок кодирования может быть разбит с использованием по меньшей мере одной из вертикальной линии, горизонтальной линии, наклонной линии и диагональной линии. Информация для определения по меньшей мере одного из количества, углов и положений линий, которые разбивают блок кодирования, может передаваться посредством битового потока. Например, информация, указывающая любого из кандидатов типа разбивки блока кодирования, может передаваться посредством битового потока, или информация, указывающая любого из множества кандидатов линий для разбиения блока кодирования, может передаваться посредством битового потока. Альтернативно информация для определения количества или типов кандидатов линий, разбивающих блок кодирования, может передаваться посредством битового потока. Например, то, может ли использоваться наклонная линия, имеющая больший угол, чем диагональная линия, и/или наклонная линия, имеющая меньший угол, чем диагональная линия, в качестве кандидата линии, может быть определено с использованием 1-битного флага.The encoding block may be divided using at least one of a vertical line, a horizontal line, an oblique line, and a diagonal line. Information for determining at least one of the number, angles, and positions of lines that divide a coding block may be transmitted via a bitstream. For example, information indicating any of the encoding block partition type candidates may be transmitted by a bit stream, or information indicating any of a plurality of line candidates for encoding block partitioning may be transmitted by the bit stream. Alternatively, information for determining the number or types of candidate lines dividing a coding block may be transmitted via a bitstream. For example, whether a slant line having a larger angle than the diagonal line and/or a slant line having a smaller angle than the diagonal line can be used as a line candidate can be determined using a 1-bit flag.

Альтернативно по меньшей мере одно из количества, углов или положений линий, разбивающих блок кодирования, может быть адаптивно определено на основании по меньшей мере одного из режима внутреннего предсказания блока кодирования, режима предсказания, осуществляемого между изображениями, блока кодирования, положения доступного кандидата на слияние блока кодирования и схемы разбиения соседнего блока.Alternatively, at least one of the number, angles, or positions of lines dividing a coding block may be adaptively determined based on at least one of a coding block's intra prediction mode, an inter-picture prediction mode, a coding block, a position of an available merge candidate block coding and neighboring block partitioning schemes.

Когда блок кодирования разбит на множество элементов предсказания, внутреннее предсказание или предсказание, осуществляемое между изображениями, может быть выполнено в отношении каждого из разбитых элементов предсказания.When a coding block is divided into multiple prediction elements, intra or inter-picture prediction can be performed on each of the divided prediction elements.

На фиг. 23 представлен вид, показывающий примеры применения разбиения к блоку кодирования для получения множества элементов предсказания с использованием диагональной линии.In fig. 23 is a view showing examples of applying partitioning to a coding block to obtain a plurality of prediction elements using a diagonal line.

Как показано в примерах на фиг. 23 (a) и 23 (b), блок кодирования может быть разбит на два треугольных элемента предсказания с использованием диагональной линии.As shown in the examples in FIGS. 23(a) and 23(b), a coding block can be divided into two triangular prediction elements using a diagonal line.

На фиг. 23 (a) и 23 (b) показано, что блок кодирования разбит на два элемента предсказания с использованием диагональной линии, соединяющей две вершины блока кодирования. Однако блок кодирования может быть разбит на два элемента предсказания с использованием наклонной линии, по меньшей мере один конец которой не проходит через вершину блока кодирования.In fig. 23(a) and 23(b) show that a coding block is divided into two prediction elements using a diagonal line connecting two vertices of the coding block. However, a coding block may be divided into two prediction elements using an inclined line, at least one end of which does not pass through the top of the coding block.

На фиг. 24 представлен вид, показывающий примеры применения разбиения к блоку кодирования для получения двух элементов предсказания.In fig. 24 is a view showing examples of applying partitioning to a coding block to obtain two prediction elements.

Как показано в примерах на фиг. 24 (a) и 24 (b), блок кодирования может быть разбит на два элемента предсказания с использованием наклонной линии, оба конца которой находятся в контакте с верхней границей и нижней границей блока кодирования соответственно.As shown in the examples in FIGS. 24(a) and 24(b), a coding block can be divided into two prediction elements using an inclined line, both ends of which are in contact with the upper boundary and the lower boundary of the coding block, respectively.

Альтернативно, как показано в примерах на фиг. 24 (c) и 24 (d), блок кодирования может быть разбит на два элемента предсказания с использованием наклонной линии, оба конца которой находятся в контакте с левой границей и правой границей блока кодирования соответственно.Alternatively, as shown in the examples of FIGS. 24(c) and 24(d), a coding block can be divided into two prediction elements using an inclined line, both ends of which are in contact with the left boundary and the right boundary of the coding block, respectively.

Альтернативно блок кодирования может быть разбит на два блока предсказания разного размера. Например, блок кодирования может быть разбит на два элемента предсказания разного размера путем установки наклонной линии, разбивающей блок кодирования, в контакт с двумя граничными поверхностями, которые образуют одну вершину.Alternatively, the coding block may be split into two prediction blocks of different sizes. For example, a coding block can be split into two prediction elements of different sizes by placing an inclined line dividing the coding block into contact with two boundary surfaces that form a single vertex.

На фиг. 25 представлен вид, показывающий примеры разбиения блока кодирования на множество блоков предсказания разного размера.In fig. 25 is a view showing examples of dividing a coding block into a plurality of prediction blocks of different sizes.

Как показано в примерах на фиг. 25 (a) и 25 (b), поскольку диагональная линия, соединяющая верхний левый и нижний правый углы блока кодирования, установлена с прохождением через левую границу, правую границу, верхнюю границу или нижнюю границу, вместо прохождения через верхний левый угол или нижний правый угол блока кодирования, блок кодирования может быть разбит на два элемента предсказания, которые имеют разный размер.As shown in the examples in FIGS. 25(a) and 25(b), since the diagonal line connecting the upper left and lower right corners of the encoding block is set to pass through the left border, right border, upper border or bottom border, instead of passing through the upper left corner or lower right corner coding block, the coding block can be split into two prediction elements that have different sizes.

Альтернативно, как показано в примерах на фиг. 25 (c) и 25 (d), поскольку диагональная линия, соединяющая верхний правый и нижний левый углы блока кодирования, установлена с прохождением через левую границу, правую границу, верхнюю границу или нижнюю границу, вместо прохождения через верхний левый угол или нижний правый угол блока кодирования, блок кодирования может быть разбит на два элемента предсказания, которые имеют разный размер.Alternatively, as shown in the examples of FIGS. 25(c) and 25(d), since the diagonal line connecting the upper right and lower left corners of the encoding block is set to pass through the left border, right border, upper border or bottom border, instead of passing through the upper left corner or lower right corner coding block, the coding block can be split into two prediction elements that have different sizes.

Каждый из элементов предсказания, сгенерированных путем разбиения блока кодирования, будет называться «N-м элементом предсказания». Например, в примерах, показанных на фиг. 23-25, PU1 может быть задан в качестве первого элемента предсказания, и PU2 может быть задан в качестве второго элемента предсказания. Первый элемент предсказания относится к элементу предсказания, содержащему отсчет, расположенный в нижней левой части, или отсчет, расположенный в верхней левой части в блоке кодирования, и второй элемент предсказания относится к элементу предсказания, содержащему отсчет, расположенный в верхней правой части, или отсчет, расположенный в нижней правой части в блоке кодирования.Each of the prediction elements generated by splitting the encoding block will be called the "Nth prediction element". For example, in the examples shown in FIGS. 23-25, PU1 may be specified as the first prediction element, and PU2 may be specified as the second prediction element. The first prediction element refers to a prediction element containing a sample located in the lower left portion or a sample located in the upper left portion in the encoding block, and the second prediction element refers to a prediction element containing a sample located in the upper right portion or a sample located in the encoding block. located in the lower right side of the encoding block.

И наоборот, элемент предсказания, содержащий отсчет, расположенный в верхней правой части, или отсчет, расположенный в нижней правой части в блоке кодирования, может быть задан в качестве первого элемента предсказания, и элемент предсказания, содержащий отсчет, расположенный в нижней левой части, или отсчет, расположенный в верхней левой части в блоке кодирования, может быть задан в качестве второго элемента предсказания.Conversely, a prediction element containing a sample located at the upper right portion or a sample located at the lower right portion in the encoding block may be set as the first prediction element, and a prediction element containing a sample located at the lower left portion or a sample located at the upper left in the encoding block may be specified as the second prediction element.

Варианты осуществления, представленные ниже, описаны с фокусировкой на примеры разбиения блока кодирования с использованием диагональной линии. В частности, разбиение блока кодирования на два элемента предсказания с использованием диагональной линии называется диагональным разбиением или треугольным разбиением, и элемент предсказания, сгенерированный на основании диагонального разбиения, называется треугольным элементом предсказания. Однако описанные ниже варианты осуществления могут также применяться к примерам разбиения блока кодирования с использованием наклонной линии, имеющей угол, отличный от угла вертикальной линии, горизонтальной линии или диагональной линии.The embodiments presented below are described by focusing on examples of dividing a coding block using a diagonal line. Specifically, dividing a coding block into two prediction elements using a diagonal line is called diagonal division or triangular division, and a prediction element generated based on the diagonal division is called triangular prediction element. However, the embodiments described below can also be applied to examples of dividing a coding block using an inclined line having an angle different from the angle of a vertical line, a horizontal line or a diagonal line.

То, следует ли применять диагональное разбиение к блоку кодирования, может быть определено на основании по меньшей мере одного из типа слайса, максимального количества кандидатов на слияние, которое может включать список кандидатов на слияние, размера блока кодирования, формы блока кодирования, режима кодирования с предсказанием блока кодирования и схемы разбиения порождающего узла.Whether a diagonal partition should be applied to an encoding block may be determined based on at least one of slice type, a maximum number of merge candidates, which may include a list of merge candidates, encoding block size, encoding block shape, predictive encoding mode coding block and partitioning scheme of the generating node.

Например, то, следует ли применять диагональное разбиение к блоку кодирования, может быть определено на основании того, имеет ли текущий слайс тип B. Диагональное разбиение может быть разрешено только тогда, когда текущий слайс имеет тип B.For example, whether diagonal partitioning should be applied to an encoding block can be determined based on whether the current slice is of type B. Diagonal partitioning can be enabled only when the current slice is of type B.

Альтернативно то, следует ли применять диагональное разбиение к блоку кодирования, может быть определено на основании того, составляет ли максимальное количество кандидатов на слияние, включенных в список кандидатов на слияние, два или более. Диагональное разбиение может быть разрешено только тогда, когда максимальное количество кандидатов на слияние, включенных в список кандидатов на слияние, составляет два или более.Alternatively, whether diagonal partitioning should be applied to a coding block may be determined based on whether the maximum number of merge candidates included in the merge candidate list is two or more. Diagonal splitting can only be allowed when the maximum number of merge candidates included in the merge candidate list is two or more.

Альтернативно, когда по меньшей мере одна из ширины или высоты больше чем 64 в аппаратной реализации, проблемой является то, что к элементу обработки данных, имеющему размер 64×64, осуществляют избыточный доступ. Соответственно, когда по меньшей мере одно из ширины и высоты блока кодирования больше, чем пороговое значение, разбиение блока кодирования на множество блоков предсказания может не быть разрешено. Например, когда по меньшей мере одно из ширины и высоты блока кодирования больше чем 64 (например, когда по меньшей мере одно из ширины и высоты равняется 128), диагональное разбиение может не использоваться.Alternatively, when at least one of the width or height is greater than 64 in the hardware implementation, the problem is that the processing element having a size of 64x64 is redundantly accessed. Accordingly, when at least one of the width and height of a coding block is larger than a threshold value, partitioning of the coding block into a plurality of prediction blocks may not be allowed. For example, when at least one of the encoding block width and height is greater than 64 (eg, when at least one of the width and height is 128), diagonal partitioning may not be used.

Альтернативно диагональное разбиение может не быть разрешено для блока кодирования, количество отсчетов которого больше, чем пороговое значение, с учетом максимального количества отсчетов, которое может быть одновременно обработано в аппаратной реализации. Например, диагональное разбиение может не быть разрешено для блока кодового дерева, количество отсчетов которого больше чем 4096.Alternatively, diagonal partitioning may not be allowed for a coding block whose number of samples is greater than a threshold, subject to the maximum number of samples that can be simultaneously processed in the hardware implementation. For example, diagonal splitting may not be allowed for a code tree block whose number of samples is greater than 4096.

Альтернативно диагональное разбиение может не быть разрешено для блока кодирования, количество отсчетов, включенных в блок кодирования, которого меньше, чем пороговое значение. Например, может быть установлено применять диагональное разбиение к блоку кодирования, когда количество отсчетов, включенных в блок кодирования, меньше чем 64.Alternatively, diagonal partitioning may not be allowed for a coding block whose number of samples included in the coding block is less than a threshold. For example, it may be set to apply diagonal partitioning to an encoding block when the number of samples included in the encoding block is less than 64.

Альтернативно то, следует ли применять диагональное разбиение к блоку кодирования, может быть определено на основании того, меньше ли соотношение ширины и высоты блока кодирования, чем первое пороговое значение, или того, больше ли соотношение ширины и высоты блока кодирования, чем второе пороговое значение. В этом случае соотношение ширины и высоты whRatio блока кодирования может быть определено в качестве соотношения между шириной CbW и высотой CbH блока кодирования, как показано в уравнении 5.Alternatively, whether diagonal partitioning should be applied to the encoding block may be determined based on whether the width-to-height ratio of the encoding block is smaller than the first threshold value or whether the width-to-height ratio of the encoding block is greater than the second threshold value. In this case, the width-height ratio whRatio of the encoding block can be defined as the ratio between the width CbW and the height CbH of the encoding block, as shown in Equation 5.

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

Второе пороговое значение может представлять собой обратное число первого порогового значения. Например, когда первое пороговое значение равняется k, второе пороговое значение может равняться 1/k.The second threshold value may be the inverse of the first threshold value. For example, when the first threshold value is equal to k, the second threshold value may be equal to 1/k.

Диагональное разбиение может быть применено к блоку кодирования только тогда, когда соотношение ширины и высоты блока кодирования находится между первым пороговым значением и вторым пороговым значением.Diagonal partitioning can be applied to a coding block only when the width-to-height ratio of the coding block is between the first threshold value and the second threshold value.

Альтернативно треугольное разбиение может быть использовано только тогда, когда соотношение ширины и высоты блока кодирования меньше, чем первое пороговое значение, или больше, чем второе пороговое значение. Например, когда первое пороговое значение равняется 16, диагональное разбиение может не быть разрешено для блока кодирования с размером 64×4 или 4×64.Alternatively, the triangular partition may be used only when the width-to-height ratio of the encoding block is less than the first threshold value or greater than the second threshold value. For example, when the first threshold value is 16, diagonal partitioning may not be allowed for a 64x4 or 4x64 encoding block.

Альтернативно то, разрешать ли диагональное разбиение, может быть определено на основании схемы разбиения порождающего узла. Например, когда блок кодирования, являющийся порождающим узлом, разбивают на основании разбиения на основе четвертичного дерева, диагональное разбиение может быть применено к блоку кодирования, являющемуся листовым узлом. С другой стороны, может быть установлено не разрешать диагональное разбиение блока кодирования, являющегося листовым узлом, когда блок кодирования, являющийся порождающим узлом, разбивают на основании разбиения на основе двоичного дерева или троичного дерева.Alternatively, whether to allow diagonal splitting may be determined based on the splitting pattern of the parent node. For example, when an encoding block that is a parent node is partitioned based on a quaternary tree partition, a diagonal partition may be applied to the encoding block that is a leaf node. On the other hand, it may be set to not allow diagonal partitioning of an encoding block being a leaf node when an encoding block being a parent node is partitioned based on a binary tree or ternary tree partitioning.

Альтернативно то, разрешать ли диагональное разбиение, может быть определено на основании режима кодирования с предсказанием блока кодирования. Например, диагональное разбиение может быть разрешено только тогда, когда блок кодирования кодируют с помощью внутреннего предсказания, когда блок кодирования кодируют с помощью предсказания, осуществляемого между изображениями, или когда блок кодирования кодируют с помощью предварительно заданного режима предсказания, осуществляемого между изображениями. В этом случае предварительно заданный режим предсказания, осуществляемого между изображениями, может представлять по меньшей мере один из режима слияния, режима предсказания вектора движения, аффинного режима слияния и режима предсказания вектора аффинного движения.Alternatively, whether to allow diagonal partitioning may be determined based on the predictive coding mode of the coding block. For example, diagonal partitioning may be enabled only when the encoding block is encoded using intra-prediction, when the encoding block is encoded using inter-picture prediction, or when the encoding block is encoded using a predetermined inter-picture prediction mode. In this case, the predetermined inter-image prediction mode may be at least one of a fusion mode, a motion vector prediction mode, an affine fusion mode, and an affine motion vector prediction mode.

Альтернативно то, разрешать ли диагональное разбиение, может быть определено на основании размера участка параллельной обработки. Например, когда размер блока кодирования больше, чем размер участка параллельной обработки, диагональное разбиение может не использоваться.Alternatively, whether to allow diagonal partitioning may be determined based on the size of the parallel processing area. For example, when the encoding block size is larger than the parallel processing area size, diagonal partitioning may not be used.

То, следует ли применять диагональное разбиение к блоку кодирования, может быть определено с учетом двух или более перечисленных выше условий.Whether or not diagonal partitioning should be applied to a coding block can be determined by considering two or more of the above conditions.

В качестве еще одного примера информация, указывающая то, применяется ли диагональное разбиение к блоку кодирования, может быть передана посредством битового потока. Информация может передаваться на уровне последовательности, изображения, слайса или блока. Например, флаг triangle_partition_flag, указывающий то, применяется ли треугольное разбиение к блоку кодирования, может быть передан на уровне блока кодирования.As another example, information indicating whether diagonal partitioning is applied to the encoding block may be transmitted by a bit stream. Information can be transferred at the sequence, image, slice or block level. For example, a triangle_partition_flag indicating whether a triangle partition is applied to a coding block may be passed at the coding block level.

Когда определяется, что следует применять диагональное разбиение к блоку кодирования, информация, указывающая количество линий, разбивающих блок кодирования, или положения линий, может быть передана посредством битового потока.When it is determined that a diagonal partition should be applied to a coding block, information indicating the number of lines dividing the coding block or the positions of the lines may be transmitted by a bitstream.

Например, когда блок кодирования разбивают диагональной линией, информация, указывающая направление диагональной линии, разбивающей блок кодирования, может передаваться посредством битового потока. Например, флаг triangle_partition_type_flag, который указывает направление диагональной линии, может передаваться посредством битового потока. Флаг указывает то, разбивают ли блок кодирования диагональной линией, соединяющей верхний левый угол и нижний правый угол, или то, разбивают ли блок кодирования диагональной линией, соединяющей верхний правый угол и нижний левый угол. Разбиение блока кодирования диагональной линией, соединяющей верхний левый угол и нижний правый угол, может называться левым треугольным типом разбивки, и разбиение блока кодирования диагональной линией, соединяющей верхний правый угол и нижний левый угол, может называться правым треугольным типом разбивки. Например, когда значение флага равняется 0, это может указывать, что тип разбивки блока кодирования имеет левый треугольный тип разбивки, а когда значение флага равняется 1, это может указывать, что тип разбивки блока кодирования имеет правый треугольный тип разбивки.For example, when a coding block is divided by a diagonal line, information indicating the direction of the diagonal line dividing the coding block may be transmitted by a bit stream. For example, the triangle_partition_type_flag, which indicates the direction of the diagonal line, may be transmitted via a bit stream. The flag indicates whether the encoding block is divided by a diagonal line connecting the upper left corner and the lower right corner, or whether the encoding block is divided by a diagonal line connecting the upper right corner and the lower left corner. Dividing the encoding block with a diagonal line connecting the upper left corner and the lower right corner may be called a left triangular partition type, and dividing the encoding block with a diagonal line connecting the upper right corner and the lower left corner may be called a right triangular partition type. For example, when the flag value is 0, it may indicate that the encoding block partition type is of a left triangular partition type, and when the flag value is 1, it may indicate that the encoding block partition type is of a right triangular partition type.

Дополнительно информация, указывающая то, имеют ли элементы предсказания одинаковый размер, или информация, указывающая положение диагональной линии для разбиения блока кодирования, может передаваться посредством битового потока. Например, когда информация, указывающая размеры элементов предсказания, указывает, что размеры элементов предсказания являются одинаковыми, кодирование информации, указывающей положение диагонали, пропускается, и блок кодирования может быть разбит на два элемента предсказания с использованием диагональной линии, проходящей через две вершины блока кодирования. С другой стороны, когда информация, указывающая размеры элементов предсказания, указывает, что размеры элементов предсказания не являются одинаковыми, положение диагональной линии, разбивающей блок кодирования, может быть определено на основании информации, указывающей положение диагональной линии. Например, когда левый треугольный тип разбивки применяется к блоку кодирования, информация о положении может указывать то, что диагональная линия находится в контакте с левой границей и нижней границей или верхней границей и правой границей блока кодирования. Альтернативно, когда правый треугольный тип разбивки применяется к блоку кодирования, информация о положении может указывать то, что диагональная линия находится в контакте с правой границей и нижней границей или верхней границей и левой границей блока кодирования.Additionally, information indicating whether the prediction elements have the same size or information indicating the position of a diagonal line for dividing a coding block may be transmitted by the bit stream. For example, when the information indicating the sizes of the prediction elements indicates that the sizes of the prediction elements are the same, encoding of the information indicating the position of the diagonal is skipped, and the encoding block can be divided into two prediction elements using a diagonal line passing through two vertices of the encoding block. On the other hand, when the information indicating the sizes of the prediction elements indicates that the sizes of the prediction elements are not the same, the position of the diagonal line dividing the encoding block can be determined based on the information indicating the position of the diagonal line. For example, when the left triangular partition type is applied to a coding block, the position information may indicate that the diagonal line is in contact with the left border and the bottom border or the top border and the right border of the coding block. Alternatively, when the right triangular layout type is applied to the encoding block, the position information may indicate that the diagonal line is in contact with the right border and the bottom border or the top border and the left border of the encoding block.

Информация, указывающая тип разбивки блока кодирования, может передаваться на уровне блока кодирования. Соответственно, тип разбивки может быть определен для каждого блока кодирования, к которому применяется диагональное разбиение.Information indicating the type of coding block breakdown may be transmitted at the coding block level. Accordingly, a split type can be determined for each coding block to which the diagonal split is applied.

В качестве другого примера, информация, указывающая типа разбивки, может быть передана для последовательности, изображения, слайса, тайла или элемента кодового дерева. В этом случае типы разбивки блоков кодирования, к которым применяется диагональное разбиение, могут быть установлены идентичным образом в последовательности, изображении, слайсе, тайле или элементе кодового дерева.As another example, information indicating the type of breakdown may be transmitted for a sequence, image, slice, tile, or code tree element. In this case, the coding block split types to which the diagonal split applies can be set identically in a sequence, picture, slice, tile, or code tree element.

Альтернативно информация для определения типа разбивки может быть кодирована и передана для первого элемента кодирования, к которому в элементе кодового дерева применяется диагональное разбиение, и второй и последующие элементы кодирования, к которым применяется диагональное разбиение, могут быть установлены для использования такого же типа разбивки, как у первого элемента кодирования.Alternatively, information to determine the type of split may be encoded and transmitted for the first coding element to which the diagonal split is applied in the code tree element, and the second and subsequent coding elements to which the diagonal split is applied may be set to use the same split type as at the first coding element.

В качестве другого примера, тип разбивки блока кодирования может быть определен на основании типа разбивки соседнего блока. В этом случае соседний блок может содержать по меньшей мере один из соседнего блока, смежного с верхним левым углом блока кодирования, соседнего блока, смежного с верхним правым углом, соседнего блока, смежного с нижним левым углом, соседнего блока, расположенного сверху, или соседнего блока, расположенного на левой стороне. Например, тип разбивки текущего блока может быть установлен таким же, как тип разбивки соседнего блока. Альтернативно тип разбивки текущего блока может быть определен на основании того, применяется ли левый треугольный тип разбивки к верхнему левому соседнему блоку, или того, применяется ли правый треугольный тип разбивки к верхнему правому соседнему блоку или нижнему левому соседнему блоку.As another example, the partition type of a coding block may be determined based on the partition type of an adjacent block. In this case, the adjacent block may comprise at least one of an adjacent block adjacent to the upper left corner of the encoding block, an adjacent block adjacent to the upper right corner, an adjacent block adjacent to the lower left corner, an adjacent block located above, or an adjacent block , located on the left side. For example, the split type of the current block can be set to the same as the split type of an adjacent block. Alternatively, the split type of the current block may be determined based on whether a left triangular split type is applied to a top left adjacent block, or whether a right triangular split type is applied to a top right neighbor block or a bottom left neighbor block.

Чтобы выполнить компенсацию предсказания движения для первого треугольного элемента предсказания и второго треугольного элемента предсказания, может быть получена информация о движении каждого из первого треугольного элемента предсказания и второго треугольного элемента предсказания. В этом случае информация о движении первого треугольного элемента предсказания и второго треугольного элемента предсказания может быть получена от кандидатов на слияние, включенных в список кандидатов на слияние. Чтобы отличать общий список кандидатов на слияние от списка кандидатов на слияние, используемого для получения информации о движении треугольных элементов предсказания, список кандидатов на слияние для получения информации о движении треугольных элементов предсказания называется списком треугольных кандидатов на слияние, и кандидат на слияние, включенный в список треугольных кандидатов на слияние, будет называться треугольным кандидатом на слияние. Однако использование вышеописанных способа получения кандидата на слияние и способа построения списка кандидатов на слияние для треугольных кандидатов на слияния, а также способа построения списка треугольных кандидатов на слияние также включено в сущность настоящего изобретения.To perform motion prediction compensation for the first triangular prediction element and the second triangular prediction element, motion information of each of the first triangular prediction element and the second triangular prediction element can be obtained. In this case, motion information of the first triangular prediction element and the second triangular prediction element can be obtained from the fusion candidates included in the fusion candidate list. To distinguish the general fusion candidate list from the fusion candidate list used to obtain motion information of triangular prediction elements, the fusion candidate list for obtaining motion information of triangular prediction elements is called a triangular fusion candidate list, and the fusion candidate included in the list triangular fusion candidates will be called a triangular fusion candidate. However, the use of the above-described method for obtaining a fusion candidate and the method for constructing a fusion candidate list for triangular fusion candidates, as well as the method for constructing a list of triangular fusion candidates, are also included in the spirit of the present invention.

Информация для определения максимального количества треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние, может передаваться посредством битового потока. Информация может указывать разницу между максимальным количеством кандидатов на слияние, которое может содержать список кандидатов на слияние, и максимальным количеством треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние.Information for determining the maximum number of triangular merge candidates that can contain the list of triangular merge candidates may be transmitted via a bitstream. The information may indicate the difference between the maximum number of merge candidates that the list of merge candidates can contain and the maximum number of triangular merge candidates that the list of triangular merge candidates can contain.

Треугольные кандидаты на слияние могут быть получены от соседнего в пространственном отношении блока и соседнего во временном отношении блока блока кодирования.Triangular merge candidates can be obtained from a spatially adjacent block and a temporally adjacent block of a coding block.

На фиг. 26 представлен вид, показывающий соседние блоки, используемые для получения треугольного кандидата на слияние.In fig. 26 is a view showing adjacent blocks used to obtain a triangular merge candidate.

Треугольный кандидат на слияние может быть получен с использованием по меньшей мере одного из соседнего блока, расположенного над блоком кодирования, соседнего блока, расположенного слева от блока кодирования, или совмещаемого блока, включенного в изображение, отличное от изображения блока кодирования. Верхний соседний блок может содержать по меньшей мере один из блока, содержащего отсчет (xCb + CbW-1, yCb-1), расположенный над блоком кодирования, блока, содержащего отсчет (xCb + CbW, yCb-1), расположенный над блоком кодирования, и блока, содержащего отсчет (xCb-1, yCb-1), расположенный над блоком кодирования. Левый соседний блок может содержать по меньшей мере один из блока, содержащего отсчет (xCb-1, yCb + CbH-1), расположенный слева от блока кодирования, и блока, содержащего отсчет (xCb-1, yCb + CbH), расположенный слева от блока кодирования. Совмещаемый блок может быть определен любым из блока, содержащего отсчет (xCb + CbW, yCb + CbH), смежный с верхним правым углом блока кодирования, или блока, содержащего отсчет (xCb/2, yCb/2), расположенный в центре блока кодирования, в совмещаемом изображении.A triangular fusion candidate may be obtained using at least one of a neighboring block located above the encoding block, an adjacent block located to the left of the encoding block, or a fusion block included in an image other than the encoding block image. The upper adjacent block may contain at least one of a block containing a sample (xCb + CbW-1, yCb-1) located above the encoding block, a block containing a sample (xCb + CbW, yCb-1) located above the encoding block, and a block containing a sample (xCb-1, yCb-1) located above the coding block. The left adjacent block may contain at least one of a block containing a sample (xCb-1, yCb + CbH-1) located to the left of the encoding block and a block containing a sample (xCb-1, yCb + CbH) located to the left of coding block. The overlapping block can be defined by either a block containing a sample (xCb + CbW, yCb + CbH) adjacent to the upper right corner of the encoding block, or a block containing the sample (xCb/2, yCb/2) located in the center of the encoding block, in the combined image.

Поиск соседних блоков может осуществляться в предварительно заданном порядке, и список треугольных кандидатов на слияние может быть построен из треугольных кандидатов на слияние согласно предварительно заданному порядку. Например, список треугольных кандидатов на слияние может быть построен путем поиска треугольных кандидатов на слияние в порядке B1, A1, B0, A0, C0, B2 и C1.Neighboring blocks can be searched in a predetermined order, and a triangular merge candidate list can be constructed from triangular merge candidates according to the predetermined order. For example, a list of triangular merge candidates can be constructed by searching for triangular merge candidates in the order B1, A1, B0, A0, C0, B2, and C1.

Информация о движении треугольных элементов предсказания может быть получена на основании списка треугольных кандидатов на слияние. То есть треугольные элементы предсказания могут находиться в одном списке треугольных кандидатов на слияние.The motion information of the triangular prediction elements can be obtained based on the list of triangular fusion candidates. That is, triangular prediction elements can be in the same list of triangular merging candidates.

Для получения информации о движении треугольного элемента слияния информация, которая предназначена для указания по меньшей мере одного из треугольных кандидатов на слияние, включенных в список треугольных кандидатов на слияние, может быть передана посредством битового потока. Например, информация об индексах merge_triangle_idx, которая предназначена для указания по меньшей мере одного из треугольных кандидатов на слияние, может передаваться посредством битового потока.To obtain information about the movement of a triangular fusion element, information that is intended to indicate at least one of the triangular fusion candidates included in the triangular fusion candidate list may be transmitted by a bitstream. For example, index information merge_triangle_idx, which is intended to indicate at least one of the triangular merge candidates, may be transmitted via a bitstream.

Информация об индексах может указывать комбинацию кандидата на слияние первого треугольного элемента предсказания и кандидата на слияние второго треугольного элемента предсказания. Например, в таблице 1 показан пример комбинации кандидатов на слияние согласно информации об индексах merge_triangle_idx.The index information may indicate a combination of a first triangular prediction element fusion candidate and a second triangular prediction element fusion candidate. For example, Table 1 shows an example combination of merge candidates according to the merge_triangle_idx index information.

Таблица 1Table 1

Когда значение информации об индексах merge_triangle_idx равняется 1, это указывает, что информация о движении первого треугольного элемента предсказания получена от кандидата на слияние с индексом 1, и что информация о движении второго треугольного элемента предсказания получена от кандидата на слияние с индексом 0. С помощью информации об индексах merge_triangle_idx могут быть определены треугольный кандидат на слияние для получения информации о движении первого треугольного элемента предсказания и треугольный кандидат на слияние для получения информации о движении второго треугольного элемента предсказания.When the index information value of merge_triangle_idx is 1, it indicates that the motion information of the first triangular prediction element is obtained from the merge candidate at index 1, and that the motion information of the second triangular prediction element is obtained from the merge candidate at index 0. Using the information about the merge_triangle_idx indices, a triangular merge candidate for obtaining motion information of the first triangular prediction element and a triangular merge candidate for obtaining motion information of the second triangular prediction element may be defined.

Тип разбивки блока кодирования, к которому применяется диагональное разбиение, может быть определен на основании информации об индексах. То есть информация об индексах может указывать комбинацию кандидата на слияние первого треугольного элемента предсказания, кандидата на слияние второго треугольного элемента предсказания и направления разбиения блока кодирования. Когда тип разбивки блока кодирования определен на основании информации об индексах, информация triangle_partition_type_flag, которая указывает направление диагональной линии, разбивающей блок кодирования, может не кодироваться. Таблица 2 представляет типы разбивки блока кодирования относительно информации об индексах merge_triangle_idx.The partition type of the encoding block to which the diagonal partition is applied can be determined based on the index information. That is, the index information may indicate a combination of a first triangular prediction element fusion candidate, a second triangular prediction element fusion candidate, and a coding block partitioning direction. When the partition type of an encoding block is determined based on the index information, the triangle_partition_type_flag information that indicates the direction of the diagonal line dividing the encoding block may not be encoded. Table 2 presents the coding block split types with respect to merge_triangle_idx index information.

Таблица 2table 2

Когда переменная TriangleDir равняется 0, это указывает, что левый треугольный тип разбивки применяется к блоку кодирования, а когда переменная TriangleDir равняется 1, это указывает, что правый треугольный тип разбивки применяется к блоку кодирования. Путем комбинирования таблицы 1 и таблицы 2 может быть установлено указывать комбинацию кандидата на слияние первого треугольного элемента предсказания, кандидата на слияние второго треугольного элемента предсказания и направления разбиения блока кодирования с помощью информации об индексах merge_triangle_idx.When the TriangleDir variable is equal to 0, it indicates that the left triangular partition type is applied to the encoding block, and when the TriangleDir variable is equal to 1, it indicates that the right triangular partition type is applied to the encoding block. By combining Table 1 and Table 2, it can be set to indicate a combination of the first triangular prediction element merging candidate, the second triangular prediction element merging candidate, and the encoding block splitting direction using the merge_triangle_idx index information.

В качестве другого примера, может передаваться только информация об индексах для любого из первого треугольного элемента предсказания и второго треугольного элемента предсказания, и индекс треугольного кандидата на слияние для другого из первого треугольного элемента предсказания и второго треугольного элемента предсказания может быть определен на основании информации об индексах. Например, треугольный кандидат на слияние первого треугольного элемента предсказания может быть определен на основании информации об индексах merge_triangle_idx, которая указывает индекс любого из треугольных кандидатов на слияние. Кроме того, треугольный кандидат на слияние второго треугольного элемента предсказания может быть указан на основании merge_triangle_idx. Например, треугольный кандидат на слияние второго треугольного элемента предсказания может быть получен путем добавления смещения к информации об индексах merge_triangle_idx или вычитания из нее. Смещение может представлять собой целое, такое как 1 или 2. Например, треугольный кандидат на слияние, имеющий значение, полученное путем добавления 1 к merge_traingle_idx, в качестве индекса, может быть определен в качестве треугольного кандидата на слияние второго треугольного элемента предсказания. Когда merge_triangle_idx указывает треугольного кандидата на слияние с наибольшим значением индекса из треугольных кандидатов на слияние, информация о движении второго треугольного элемента предсказания может быть получена от треугольного кандидата на слияние с индексом, равным 0, или треугольного кандидата на слияние со значением, полученным путем вычитания 1 из merge_triangle_idx, в качестве индекса.As another example, only index information for any of the first triangular prediction element and the second triangular prediction element may be transmitted, and the index of a triangular fusion candidate for the other of the first triangular prediction element and the second triangular prediction element may be determined based on the index information . For example, the triangular merge candidate of the first triangular prediction element may be determined based on the index information merge_triangle_idx, which indicates the index of any of the triangular merge candidates. In addition, a triangular merging candidate of the second triangular prediction element may be specified based on merge_triangle_idx. For example, a triangular merge candidate for a second triangular prediction element can be obtained by adding an offset to or subtracting from the merge_triangle_idx index information. The offset may be an integer such as 1 or 2. For example, a triangular merge candidate having the value obtained by adding 1 to merge_traingle_idx as an index may be defined as the triangular merge candidate of the second triangular prediction element. When merge_triangle_idx indicates the triangular merge candidate with the highest index value of the triangular merge candidates, the motion information of the second triangular prediction element can be obtained from the triangular merge candidate with an index of 0 or the triangular merge candidate with a value obtained by subtracting 1 from merge_triangle_idx, as an index.

Альтернативно информация о движении второго треугольного элемента предсказания может быть получена от треугольного кандидата на слияние, имеющего такое же опорное изображение, как и треугольный кандидат на слияние первого треугольного элемента предсказания, который указан с помощью информации об индексах. В этом случае треугольный кандидат на слияние, имеющий такое же опорное изображение, как и треугольный кандидат на слияние первого треугольного элемента предсказания, может указывать треугольного кандидата на слияние, в котором по меньшей мере одно из опорного изображения L0 и опорного изображения L1 является таким же, как и у треугольного кандидата на слияние первого треугольного элемента предсказания. Когда имеются множество треугольных кандидатов на слияние, имеющих такое же опорное изображение, как и у треугольного кандидата на слияние первого треугольного элемента предсказания, по меньшей мере один из треугольных кандидатов на слияние может быть выбран на основании того, содержит ли кандидат на слияние информацию о двунаправленном движении, или значения разницы между индексом кандидата на слияние и информацией об индексах.Alternatively, the motion information of the second triangular prediction element may be obtained from a triangular fusion candidate having the same reference image as the triangular fusion candidate of the first triangular prediction element, which is indicated by the index information. In this case, the triangular fusion candidate having the same reference picture as the triangular fusion candidate of the first triangular prediction element may indicate a triangular fusion candidate in which at least one of the L0 reference picture and the L1 reference picture is the same. as with the triangular fusion candidate of the first triangular prediction element. When there are a plurality of triangular fusion candidates having the same reference image as the triangular fusion candidate of the first triangular prediction element, at least one of the triangular fusion candidates may be selected based on whether the fusion candidate contains bidirectional information movement, or the difference value between the merge candidate index and the index information.

В качестве другого примера, информация об индексах может передаваться для каждого из первого треугольного элемента предсказания и второго треугольного элемента предсказания. Например, первая информация об индексах 1st_merge_idx, которая предназначена для определения треугольного кандидата на слияние первого треугольного элемента предсказания, и вторая информация об индексах 2nd_merge_idx, которая предназначена для определения треугольного кандидата на слияние второго треугольного элемента предсказания, могут передаваться посредством битового потока. Информация о движении первого треугольного элемента предсказания может быть получена от треугольного кандидата на слияние, определенного на основании первой информации об индексах 1st_merge_idx, и информация о движении второго треугольного элемента предсказания может быть получена от треугольного кандидата на слияние, определенного на основании второй информации об индексах 2nd_merge_idx.As another example, index information may be transmitted for each of the first triangular prediction element and the second triangular prediction element. For example, first index information 1st_merge_idx, which is for determining a triangular merging candidate of the first triangular prediction element, and second index information 2nd_merge_idx, which is for determining a triangular merging candidate of the second triangular prediction element, may be transmitted by a bitstream. The movement information of the first triangular prediction element may be obtained from the triangular merger candidate determined based on the first index information 1st_merge_idx, and the movement information of the second triangular prediction element may be obtained from the triangular merger candidate determined based on the second index information 2nd_merge_idx .

Первая информация об индексах 1st_merge_idx может указывать индекс любого из треугольных кандидатов на слияние, включенных в список треугольных кандидатов на слияние. Треугольный кандидат на слияние первого треугольного элемента предсказания может быть определен в качестве треугольного кандидата на слияние, указанного с помощью первой информации об индексах 1st_merge_idx.The first index information 1st_merge_idx may indicate the index of any of the triangular merge candidates included in the triangular merge candidate list. The triangular merging candidate of the first triangular prediction element may be determined to be the triangular merging candidate indicated by the first index information 1st_merge_idx.

Треугольный кандидат на слияние, указанный с помощью первой информации об индексах 1st_merge_idx, может быть установлен так, чтобы не использоваться как треугольный кандидат на слияние второго треугольного элемента предсказания. Соответственно, вторая информация об индексах 2nd_merge_idx второго треугольного элемента предсказания может указывать индекс любого из остальных треугольных кандидатов на слияние, за исключением треугольного кандидата на слияние, указанного с помощью первой информации об индексах. Когда значение второй информации об индексах 2nd_merge_idx меньше, чем значение первой информации об индексах 1st_merge_idx, треугольный кандидат на слияние второго треугольного элемента предсказания может быть определен как треугольный кандидат на слияние, имеющий информацию об индексах, указанную с помощью второй информации об индексах 2nd_merge_idx. С другой стороны, когда значение второй информации об индексах 2nd_merge_idx равняется значению первой информации об индексах 1st_merge_idx, или больше него, треугольный кандидат на слияние второго треугольного элемента предсказания может быть определен как треугольный кандидат на слияние, имеющий значение, полученное путем добавления 1 к значению второй информации об индексах 2nd_merge_idx, в качестве индекса.The triangular merge candidate indicated by the first index information 1st_merge_idx may be set not to be used as a triangular merge candidate of the second triangular prediction element. Accordingly, the second index information 2nd_merge_idx of the second triangular prediction element may indicate the index of any of the remaining triangular merge candidates except the triangular merge candidate indicated by the first index information. When the value of the second index information 2nd_merge_idx is less than the value of the first index information 1st_merge_idx, the triangular merging candidate of the second triangular prediction element may be determined to be a triangular merging candidate having the index information indicated by the second index information 2nd_merge_idx. On the other hand, when the value of the second index information 2nd_merge_idx is equal to or greater than the value of the first index information 1st_merge_idx, the triangular merging candidate of the second triangular prediction element may be defined as the triangular merging candidate having a value obtained by adding 1 to the value of the second information about indexes 2nd_merge_idx, as an index.

Альтернативно то, передавать или нет вторую информацию об индексах, может быть определено согласно количеству треугольных кандидатов на слияние, включенных в список треугольных кандидатов на слияние. Например, когда максимальное количество треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние, не превышает 2, передача второй информации об индексах может быть опущена. Когда передача второй информации об индексах опущена, второй треугольный кандидат на слияние может быть получен путем добавления смещения к первой информации об индексах или вычитания из нее. Например, когда максимальное количество треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние, равно 2, и первая информация об индексах указывает индекс 0, второй треугольный кандидат на слияние может быть получен путем добавления 1 к первой информации об индексах. Альтернативно, когда максимальное количество треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние, равно 2, и первая информация об индексах указывает 1, второй треугольный кандидат на слияние может быть получен путем вычитания 1 из первой информации об индексах.Alternatively, whether or not to transmit the second index information may be determined according to the number of triangular merge candidates included in the triangular merge candidate list. For example, when the maximum number of triangular merge candidates that the triangular merge candidate list can contain does not exceed 2, transmission of the second index information may be omitted. When the transmission of the second index information is omitted, a second triangular merge candidate can be obtained by adding an offset to or subtracting from the first index information. For example, when the maximum number of triangular merge candidates that the list of triangular merge candidates can contain is 2, and the first index information indicates an index of 0, the second triangular merge candidate can be obtained by adding 1 to the first index information. Alternatively, when the maximum number of triangular merge candidates that the list of triangular merge candidates can contain is 2, and the first index information indicates 1, the second triangular merge candidate can be obtained by subtracting 1 from the first index information.

Альтернативно, когда передача второй информации об индексах опущена, вторая информация об индексах может быть установлена в качестве значения по умолчанию. В этом случае значение по умолчанию может равняться 0. Второй треугольный кандидат на слияние может быть получен путем сравнения первой информации об индексах и второй информации об индексах. Например, когда вторая информация об индексах меньше, чем первая информация об индексах, кандидат на слияние, имеющий индекс 0, может быть установлен в качестве второго треугольного кандидат на слияние, и когда вторая информация об индексах равняется первой информации об индексах или больше нее, кандидат на слияние, имеющий индекс 1, может быть установлен в качестве второго треугольного кандидата на слияние.Alternatively, when transmitting the second index information is omitted, the second index information may be set as a default value. In this case, the default value may be 0. The second triangular merge candidate may be obtained by comparing the first index information and the second index information. For example, when the second index information is less than the first index information, the merge candidate having index 0 may be set as the second triangular merge candidate, and when the second index information is equal to or greater than the first index information, the candidate the merge candidate having index 1 can be set as the second triangular merge candidate.

Когда треугольный кандидат на слияние имеет информацию об однонаправленном движении, информация об однонаправленном движении треугольного кандидата на слияние может быть установлена в качестве информации о движении треугольного элемента предсказания. С другой стороны, когда треугольный кандидат на слияние имеет информацию о двунаправленном движении, только одна из информации о движении L0 или информации о движении L1 может быть установлена в качестве информации о движении треугольного элемента предсказания. То, что будет взято из информации о движении L0 и информации о движении L1, может быть определено на основании индекса треугольного кандидата на слияние или информации о движении другого треугольного элемента предсказания.When the triangular fusion candidate has unidirectional motion information, the unidirectional motion information of the triangular fusion candidate can be set as the motion information of the triangular prediction element. On the other hand, when the triangular fusion candidate has bidirectional motion information, only one of the L0 motion information or the L1 motion information can be set as the motion information of the triangular prediction element. What will be taken from the motion information L0 and the motion information L1 can be determined based on the index of a triangular fusion candidate or the motion information of another triangular prediction element.

Например, когда индекс треугольного кандидата на слияние является четным числом, информация о движении L0 треугольного элемента предсказания может быть установлена равной 0, и информация о движении L1 треугольного кандидата на слияние может быть установлена как информация о движении L1 треугольного элемента предсказания. С другой стороны, когда индекс треугольного кандидата на слияние является нечетным числом, информация о движении L1 треугольного элемента предсказания может быть установлена равной 0, и информация о движении L0 треугольного кандидата на слияние может быть установлена равной 0. И наоборот, когда индекс треугольного кандидата на слияние является четным числом, информация о движении L0 треугольного кандидата на слияние может быть установлена в качестве информации о движении L0 треугольного элемента предсказания, и когда индекс треугольного кандидата на слияние является нечетным числом, информация о движении L1 треугольного кандидата на слияние может быть установлена в качестве информации о движении L1 треугольного элемента предсказания. Альтернативно, когда треугольный кандидат на слияние является четным числом для первого треугольного элемента предсказания, информация о движении L0 треугольного кандидата на слияние может быть установлена в качестве информации о движении L0 первого треугольного элемента предсказания, тогда как, когда треугольный кандидат на слияние является нечетным числом для второго треугольного элемента предсказания, информация о движении L1 треугольного кандидата на слияние может быть установлена в качестве информации о движении L1 второго треугольного элемента предсказания.For example, when the index of the triangular fusion candidate is an even number, the motion information L0 of the triangular prediction element may be set to 0, and the motion information L1 of the triangular fusion candidate may be set to the motion information L1 of the triangular prediction element. On the other hand, when the index of the triangular fusion candidate is an odd number, the motion information L1 of the triangular prediction element can be set to 0, and the motion information L0 of the triangular fusion candidate can be set to 0. Conversely, when the index of the triangular fusion candidate is fusion is an even number, the motion information L0 of the triangular fusion candidate can be set as the motion information L0 of the triangular prediction element, and when the index of the triangular fusion candidate is an odd number, the motion information L1 of the triangular fusion candidate can be set as information about the L1 motion of the triangular prediction element. Alternatively, when the triangular fusion candidate is an even number for the first triangular prediction element, the motion information L0 of the triangular fusion candidate can be set as the motion information L0 of the first triangular prediction element, whereas when the triangular fusion candidate is an odd number for of the second triangular prediction element, the L1 motion information of the triangular fusion candidate may be set as the L1 motion information of the second triangular prediction element.

Альтернативно, когда первый треугольный элемент предсказания имеет информацию о движении L0, информация о движении L0 второго треугольного элемента предсказания может быть установлена равной 0, и информация о движении L1 треугольного кандидата на слияние может быть установлена в качестве информации о движении L1 второго треугольного элемента предсказания. С другой стороны, когда первый треугольный элемент предсказания имеет информацию о движении L1, информация о движении L1 второго треугольного элемента предсказания может быть установлена равной 0, и информация о движении L0 треугольного кандидата на слияние может быть установлена в качестве информации о движении L0 второго треугольного элемента предсказания.Alternatively, when the first triangular prediction element has L0 motion information, the L0 motion information of the second triangular prediction element may be set to 0, and the L1 motion information of the triangular fusion candidate may be set as the L1 motion information of the second triangular prediction element. On the other hand, when the first triangular prediction element has motion information L1, the motion information L1 of the second triangular prediction element can be set to 0, and the motion information L0 of the triangular fusion candidate can be set as the motion information L0 of the second triangular element predictions.

Список треугольных кандидатов на слияние для получения информации о движении первого треугольного элемента предсказания и список треугольных кандидатов на слияние для получения информации о движении второго треугольного элемента предсказания могут быть установлены по-разному.The triangular fusion candidate list for obtaining motion information of the first triangular prediction element and the triangular fusion candidate list for obtaining motion information of the second triangular prediction element may be set differently.

Например, когда треугольный кандидат на слияние для получения информации о движении первого треугольного элемента предсказания в списке треугольных кандидатов на слияние указан на основании информации об индексах для первого треугольного элемента предсказания, информация о движении второго треугольного элемента предсказания может быть получена с использованием списка треугольных кандидатов на слияние, содержащего остальных треугольных кандидатов на слияние, за исключением треугольного кандидата на слияние, указанного с помощью информации об индексах. В частности, информация о движении второго треугольного элемента предсказания может быть получена из любого из остальных треугольных кандидатов на слияние.For example, when a triangular fusion candidate for obtaining motion information of a first triangular prediction element in a triangular merging candidate list is specified based on index information for the first triangular prediction element, motion information of a second triangular prediction element may be obtained using the triangular fusion candidate list. a merge containing the remaining triangular merge candidates, excluding the triangular merge candidate specified by the index information. In particular, the motion information of the second triangular prediction element can be obtained from any of the remaining triangular fusion candidates.

Соответственно, максимальное количество треугольных кандидатов на слияние, которое содержит список треугольных кандидатов на слияние первого треугольного элемента предсказания, и максимального количество треугольных кандидатов на слияние, которое содержит список треугольных кандидатов на слияние второго треугольного элемента предсказания, могут быть разными. Например, когда список треугольных кандидатов на слияние первого треугольного элемента предсказания содержит M кандидатов на слияние, список треугольных кандидатов на слияние второго треугольного элемента предсказания может содержать M-1 кандидатов на слияние, за исключением треугольного кандидата на слияние, указанного с помощью информации об индексах первого треугольного элемента предсказания.Accordingly, the maximum number of triangular fusion candidates that contains the list of triangular fusion candidates of the first triangular prediction element and the maximum number of triangular fusion candidates that contains the list of triangular fusion candidates of the second triangular prediction element may be different. For example, when the triangular fusion candidate list of the first triangular prediction element contains M fusion candidates, the triangular fusion candidate list of the second triangular prediction element may contain M-1 fusion candidates excluding the triangular fusion candidate indicated by the index information of the first triangular divination element.

В качестве другого примера, кандидата на слияние каждого треугольного элемента предсказания получают на основании соседних блоков, смежных с блоком кодирования, и доступность соседних блоков может быть определена с учетом формы или положения треугольного элемента предсказания.As another example, a fusion candidate of each triangular prediction element is obtained based on neighboring blocks adjacent to the encoding block, and the availability of neighboring blocks may be determined based on the shape or position of the triangular prediction element.

На фиг. 27 представлен вид для описания примеров определения доступности соседнего блока для каждого треугольного элемента предсказания.In fig. 27 is a view for describing examples of determining the availability of a neighboring block for each triangular prediction element.

Соседний блок, не являющийся смежным с первым треугольным элементом предсказания, может быть установлен как недоступный для первого треугольного элемента предсказания, и соседний блок, не являющийся смежным со вторым треугольным элементом предсказания, может быть установлен как недоступный для второго треугольного элемента предсказания.An adjacent block not adjacent to the first triangular prediction element may be set as unavailable to the first triangular prediction element, and an adjacent block not adjacent to the second triangular prediction element may be set as unavailable to the second triangular prediction element.

Например, как показано в примере по фиг. 27 (a), когда левый треугольный тип разбивки применяется к блоку кодирования, может быть определено, что блоки A1, A0 и A2, смежные с первым треугольным элементом предсказания, из соседних блоков, смежных с блоком кодирования, доступны для первого треугольного элемента предсказания, тогда как блоки B0 и B1 не являются доступными для первого треугольного элемента предсказания. Соответственно, список треугольных кандидатов на слияние для первого треугольного элемента предсказания может содержать треугольных кандидатов на слияние, полученных из блоков A1, A0 и A2, и может не содержать треугольных кандидатов на слияние, полученных из блоков B0 и B1.For example, as shown in the example of FIG. 27(a), when the left triangular partition type is applied to the encoding block, it can be determined that blocks A1, A0 and A2 adjacent to the first triangular prediction element from adjacent blocks adjacent to the encoding block are available for the first triangular prediction element. whereas blocks B0 and B1 are not available for the first triangular prediction element. Accordingly, the triangular merge candidate list for the first triangular prediction element may include triangular merge candidates derived from blocks A1, A0, and A2, and may not contain triangular merge candidates derived from blocks B0 and B1.

Как показано в примере по фиг. 27 (b), когда левый треугольный тип разбивки применяется к блоку кодирования, может быть определено, что блоки B0 и B1, смежные со вторым треугольным элементом предсказания, доступны для второго треугольного элемента предсказания, тогда как блоки A1, A0 и A2 не являются доступными для второго треугольного элемента предсказания. Соответственно, список треугольных кандидатов на слияние для второго треугольного элемента предсказания может содержать треугольных кандидатов на слияние, полученных из блоков B0 и B1, и может не содержать треугольных кандидатов на слияние, полученных из блоков A1, A0 и A2.As shown in the example of FIG. 27(b), when the left triangular partition type is applied to the encoding block, it can be determined that blocks B0 and B1 adjacent to the second triangular prediction element are available for the second triangular prediction element, while blocks A1, A0 and A2 are not available for the second triangular prediction element. Accordingly, the list of triangular merge candidates for the second triangular prediction element may include triangular merge candidates obtained from blocks B0 and B1, and may not contain triangular merge candidates obtained from blocks A1, A0 and A2.

Соответственно, количество треугольных кандидатов на слияние или диапазон треугольных кандидатов на слияние, которые может использовать треугольный элемент предсказания, могут быть определены на основании по меньшей мере одного из положения треугольного элемента предсказания или типа разбивки блока кодирования.Accordingly, the number of triangular fusion candidates or the range of triangular fusion candidates that the triangular prediction element can use can be determined based on at least one of the position of the triangular prediction element or the partition type of the encoding block.

В качестве другого примера, режим слияния может быть применен только к одному из первого треугольного элемента предсказания и второго треугольного элемента предсказания. Кроме того, информация о движении другого из первого треугольного элемента предсказания и второго треугольного элемента предсказания может быть установлена такой же, как информация о движении треугольного элемента предсказания, к которому применяется режим слияния, или может быть получена путем уточнения информации о движении треугольного элемента предсказания, к которому применяется режим слияния.As another example, the merging mode may be applied to only one of the first triangular prediction element and the second triangular prediction element. In addition, the motion information of the other of the first triangular prediction element and the second triangular prediction element can be set to be the same as the motion information of the triangular prediction element to which the merging mode is applied, or can be obtained by refining the motion information of the triangular prediction element. to which merge mode is applied.

Например, вектор движения и индекс опорного изображения первого треугольного элемента предсказания могут быть получены на основании треугольного кандидата на слияние, и вектор движения второго треугольного элемента предсказания может быть получен путем уточнения вектора движения первого треугольного элемента предсказания. Например, вектор движения второго треугольного элемента предсказания может быть получен путем добавления уточненного вектора движения {Rx, Ry} к вектору движения {mvD1LXx, mvD1LXy} первого треугольного элемента предсказания или вычитания из него. Индекс опорного изображения второго треугольного элемента предсказания может быть установлен равным индексу опорного изображения первого треугольного элемента предсказания.For example, the motion vector and reference image index of the first triangular prediction element can be obtained based on the triangular fusion candidate, and the motion vector of the second triangular prediction element can be obtained by refining the motion vector of the first triangular prediction element. For example, the motion vector of the second triangular prediction element may be obtained by adding or subtracting the refined motion vector {Rx, Ry} to the motion vector {mvD1LXx, mvD1LXy} of the first triangular prediction element. The reference image index of the second triangular prediction element may be set equal to the reference image index of the first triangular prediction element.

Информация для определения уточненного вектора движения, указывающего разницу между вектором движения первого треугольного элемента предсказания и вектором движения второго треугольного элемента предсказания, может передаваться посредством битового потока. Информация может содержать по меньшей мере одно из информации, указывающей размер уточненного вектора движения, и информации, указывающей знак уточненного вектора движения.Information for determining the refined motion vector indicating the difference between the motion vector of the first triangular prediction element and the motion vector of the second triangular prediction element may be transmitted by the bit stream. The information may comprise at least one of information indicating the size of the refined motion vector and information indicating the sign of the refined motion vector.

Альтернативно знак уточненного вектора движения может быть получен на основании по меньшей мере одного из положения треугольного элемента предсказания, индекса треугольного элемента предсказания и типа разбивки, применяемого к блоку кодирования.Alternatively, the sign of the refined motion vector may be obtained based on at least one of the position of the triangular prediction element, the index of the triangular prediction element, and the type of partitioning applied to the encoding block.

В качестве другого примера, могут передаваться вектор движения и индекс опорного изображения любого из первого треугольного элемента предсказания и второго треугольного элемента предсказания. Вектор движения другого из первого треугольного элемента предсказания и второго треугольного элемента предсказания может быть получен путем уточнения переданного вектора движения.As another example, a motion vector and a reference image index of any of the first triangular prediction element and the second triangular prediction element may be transmitted. The motion vector of the other of the first triangular prediction element and the second triangular prediction element can be obtained by refining the transmitted motion vector.

Например, вектор движения и индекс опорного изображения первого треугольного элемента предсказания могут быть определены на основании информации, переданной из битового потока. Кроме того, вектор движения второго треугольного элемента предсказания может быть получен путем уточнения вектора движения первого треугольного элемента предсказания. Например, вектор движения второго треугольного элемента предсказания может быть получен путем добавления уточненного вектора движения {Rx, Ry} к вектору движения {mvD1LXx, mvD1LXy} первого треугольного элемента предсказания или вычитания из него. Индекс опорного изображения второго треугольного элемента предсказания может быть установлен равным индексу опорного изображения первого треугольного элемента предсказания.For example, the motion vector and the reference image index of the first triangular prediction element may be determined based on the information transmitted from the bitstream. In addition, the motion vector of the second triangular prediction element can be obtained by refining the motion vector of the first triangular prediction element. For example, the motion vector of the second triangular prediction element may be obtained by adding or subtracting the refined motion vector {Rx, Ry} to the motion vector {mvD1LXx, mvD1LXy} of the first triangular prediction element. The reference image index of the second triangular prediction element may be set equal to the reference image index of the first triangular prediction element.

Предсказание с компенсацией предсказания движения для каждого блока кодирования может выполняться на основании информации о движении первого треугольного элемента предсказания и информации о движении второго треугольного элемента предсказания. В этом случае ухудшение качества видео может возникать на границе между первым треугольным элементом предсказания и вторым треугольным элементом предсказания. Например, непрерывность качества видео может ухудшаться рядом с краем, присутствующим на границе между первым треугольным элементом предсказания и вторым треугольным элементом предсказания. Для снижения ухудшения качества видео на границе отсчет предсказания может быть получен с помощью фильтра сглаживания или взвешенного предсказания.Motion prediction compensation prediction for each encoding block may be performed based on the motion information of the first triangular prediction element and the motion information of the second triangular prediction element. In this case, video degradation may occur at the boundary between the first triangular prediction element and the second triangular prediction element. For example, the continuity of video quality may deteriorate near an edge present at the boundary between the first triangular prediction element and the second triangular prediction element. To reduce video quality degradation at the edge, a prediction sample can be obtained using a smoothing filter or weighted prediction.

Отсчеты предсказания в блоке кодирования, к которому применяется диагональное разбиение, могут быть получены на основании операции взвешенной суммы первого отсчета предсказания, полученного на основании информации о движении первого треугольного элемента предсказания, и второго отсчета предсказания, полученного на основании информации о движении второго треугольного элемента предсказания. Альтернативно отсчет предсказания первого треугольного элемента предсказания получают из первого блока предсказания, определенного на основании информации о движении первого треугольного элемента предсказания, и отсчет предсказания второго треугольного элемента предсказания получают из второго блока предсказания, определенного на основании информации о движении второго треугольного элемента предсказания, и отсчет предсказания, расположенный на граничном участке первого треугольного элемента предсказания и второго треугольного элемента предсказания, может быть получен на основании операции взвешенной суммы первого отсчета предсказания, включенного в первый блок предсказания и второго отсчета предсказания, включенного во второй блок предсказания. Например, в уравнении 6 показан пример получения отсчетов предсказания первого треугольного элемента предсказания и второго треугольного элемента предсказания.The prediction samples in the encoding block to which the diagonal partition is applied may be obtained based on a weighted sum operation of the first prediction sample obtained from the motion information of the first triangular prediction element and the second prediction sample obtained from the motion information of the second triangular prediction element . Alternatively, the prediction count of the first triangular prediction element is obtained from the first prediction block determined based on the motion information of the first triangular prediction element, and the prediction count of the second triangular prediction element is obtained from the second prediction block determined based on the motion information of the second triangular prediction element, and the count a prediction located at a boundary portion of the first triangular prediction element and the second triangular prediction element may be obtained based on a weighted sum operation of the first prediction sample included in the first prediction block and the second prediction sample included in the second prediction block. For example, Equation 6 shows an example of obtaining prediction samples of the first triangular prediction element and the second triangular prediction element.

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

В уравнении 6 P1 обозначает первый отсчет предсказания, и P2 обозначает второй отсчет предсказания. W1 обозначает значение взвешивания, применяемое к первому отсчету предсказания, и (1-w1) обозначает значение взвешивания, применяемое ко второму отсчету предсказания. Как показано в примере уравнения 6, значение взвешивания, применяемое ко второму отсчету предсказания, может быть получено путем вычитания значения взвешивания, применяемого к первому отсчету предсказания, из постоянного значения.In Equation 6 , P1 denotes the first prediction sample, and P2 denotes the second prediction sample. W1 denotes a weighting value applied to the first prediction sample, and (1- w1 ) denotes a weighting value applied to the second prediction sample. As shown in the example of Equation 6, the weighting value applied to the second prediction sample can be obtained by subtracting the weighting value applied to the first prediction sample from a constant value.

Когда левый треугольный тип разбивки применяется к блоку кодирования, граничный участок может содержать отсчеты предсказания, в которых координата оси x и координата оси y являются одинаковыми. С другой стороны, когда правый треугольный тип разбивки применяется к блоку кодирования, граничный участок может содержать отсчеты предсказания, в которых сумма координаты оси x и координаты оси y больше, чем первое пороговое значение, или равняется ему, и меньше, чем второе пороговое значение.When the left triangular partition type is applied to a coding block, the boundary portion may contain prediction samples in which the x-axis coordinate and the y-axis coordinate are the same. On the other hand, when the right triangular partition type is applied to a coding block, the boundary portion may contain prediction samples in which the sum of the x-axis coordinate and the y-axis coordinate is greater than or equal to the first threshold value and less than the second threshold value.

Размер граничного участка может быть определен на основании по меньшей мере одного из размера блока кодирования, формы блока кодирования, информации о движении треугольных элементов предсказания, значения разницы между векторами движения треугольных элементов предсказания, порядка вывода опорных изображений и значения разницы между первым отсчетом предсказания и вторым отсчетом предсказания на диагональной границе.The size of the boundary portion may be determined based on at least one of a coding block size, a coding block shape, motion information of triangular prediction elements, a difference value between motion vectors of triangular prediction elements, an output order of reference pictures, and a difference value between the first prediction sample and the second prediction count on the diagonal boundary.

На фиг. 28 и 29 представлены виды, показывающие примеры получения отсчета предсказания на основании операции взвешенной суммы первого отсчета предсказания и второго отсчета предсказания. На фиг. 28 показан пример применения левого треугольного типа разбивки к блоку кодирования, и на фиг. 29 показан пример правого треугольного типа разбивки к блоку кодирования. Кроме того, на фиг. 28 (a) и 29 (a) представлены виды, показывающие схемы предсказания для компонента яркости, и на фиг. 28 (b) и 29 (b) представлены виды, показывающие схемы предсказания для компонента цветности.In fig. 28 and 29 are views showing examples of obtaining a prediction sample based on a weighted sum operation of the first prediction sample and the second prediction sample. In fig. 28 shows an example of applying the left triangular partition type to a coding block, and FIG. 29 shows an example of a right triangular type of partition to a coding block. In addition, in FIG. 28(a) and 29(a) are views showing prediction circuits for the luminance component, and FIGS. 28(b) and 29(b) are views showing prediction schemes for the chrominance component.

На графических материалах числа, записанные в отсчетах предсказания, расположенных рядом с границей между первым элементом предсказания и вторым элементом предсказания, указывают значения взвешивания, применяемые к первому отсчету предсказания. Например, когда число, записанное в отсчете предсказания, равняется N, отсчет предсказания может быть получен путем применения значения взвешивания N/8 к первому отсчету предсказания и применения значения взвешивания 1-(N/8) ко второму отсчету предсказания.In the graphics, numbers recorded in prediction samples located adjacent to the boundary between the first prediction element and the second prediction element indicate weighting values applied to the first prediction sample. For example, when the number recorded in the prediction sample is N, the prediction sample can be obtained by applying a weighting value of N/8 to the first prediction sample and applying a weighting value of 1-(N/8) to the second prediction sample.

В находящемся не на границе участке первый отсчет предсказания или второй отсчет предсказания может быть определен в качестве отсчета предсказания. Как показано в примере по фиг. 28, в участке, принадлежащем первому треугольному элементу предсказания, из участков, в которых абсолютное значение разницы между координатой оси x и координатой оси y больше, чем пороговое значение, первый отсчет предсказания, полученный на основании информации о движении первого треугольного элемента предсказания, может быть определен в качестве отсчета предсказания. С другой стороны, в участке, принадлежащем второму треугольному элементу предсказания, из участков, в которых значение разницы между координатой оси x и координатой оси y больше, чем пороговое значение, второй отсчет предсказания, полученный на основании информации о движении второго треугольного элемента предсказания, может быть определен в качестве отсчета предсказания.In the non-boundary portion, the first prediction sample or the second prediction sample may be defined as the prediction sample. As shown in the example of FIG. 28, in the portion belonging to the first triangular prediction element, of the portions in which the absolute value of the difference between the x-axis coordinate and the y-axis coordinate is larger than the threshold value, the first prediction sample obtained based on the movement information of the first triangular prediction element may be defined as the prediction reference. On the other hand, in the portion belonging to the second triangular prediction element, from the portions in which the difference value between the x-axis coordinate and the y-axis coordinate is larger than the threshold value, the second prediction sample obtained based on the motion information of the second triangular prediction element may be defined as the prediction reference.

Как показано в примере по фиг. 29, в участке, в котором сумма координаты оси x и координаты оси y меньше, чем первое пороговое значение, первый отсчет предсказания, полученный на основании информации о движении первого треугольного элемента предсказания, может быть определен в качестве отсчета предсказания. С другой стороны, в участке, в котором сумма координаты оси x и координаты оси y больше, чем второе пороговое значение, второй отсчет предсказания, полученный на основании информации о движении второго треугольного элемента предсказания, может быть определен в качестве отсчета предсказания.As shown in the example of FIG. 29, in a portion in which the sum of the x-axis coordinate and the y-axis coordinate is less than the first threshold value, the first prediction sample obtained based on the motion information of the first triangular prediction element can be determined as the prediction sample. On the other hand, in a portion in which the sum of the x-axis coordinate and the y-axis coordinate is greater than the second threshold value, the second prediction sample obtained based on the motion information of the second triangular prediction element can be determined as the prediction sample.

Пороговое значение для определения находящегося не на границе участка может быть определено на основании по меньшей мере одного из размера блока кодирования, формы блока кодирования и цветового компонента. Например, когда пороговое значение для компонента яркости установлено равным N, пороговое значение для компонента цветности может быть установлено равным N/2.A threshold value for determining a non-boundary region may be determined based on at least one of a coding block size, a coding block shape, and a color component. For example, when the threshold value for the luma component is set to N, the threshold value for the chrominance component may be set to N/2.

Отсчеты предсказания, включенные в находящийся на границе участок, могут быть получены на основании операции взвешенной суммы первого отсчета предсказания и второго отсчета предсказания. В этом случае значения взвешивания, применяемые к первому отсчету предсказания и второму отсчету предсказания, могут быть определены на основании по меньшей мере одного из положения отсчета предсказания, размера блока кодирования, формы блока кодирования и цветового компонента.The prediction samples included in the boundary portion may be obtained based on a weighted sum operation of the first prediction sample and the second prediction sample. In this case, the weighting values applied to the first prediction sample and the second prediction sample may be determined based on at least one of a position of the prediction sample, a coding block size, a coding block shape, and a color component.

Например, как показано в примере по фиг. 28 (a), отсчеты предсказания в положении одинаковых координаты оси x и координаты оси y могут быть получены путем применения одинакового значения взвешивания к первому отсчету предсказания и второму отсчету предсказания. Отсчеты предсказания, в которых абсолютное значение разницы между координатой оси x и координатой оси y равно 1, могут быть получены путем установки соотношения между значениями взвешивания, применяемого к первому отсчету предсказания и второму отсчету предсказания, равного (3:1) или (1:3). Кроме того, отсчеты предсказания, в которых абсолютное значение разницы между координатой оси x и координатой оси y равно 2, могут быть получены путем установки соотношения между значениями взвешивания, применяемого к первому отсчету предсказания и второму отсчету предсказания, равного (7:1) или (1:7).For example, as shown in the example of FIG. 28(a), prediction samples at a position of the same x-axis coordinate and y-axis coordinate can be obtained by applying the same weighting value to the first prediction sample and the second prediction sample. Prediction samples in which the absolute value of the difference between the x-axis coordinate and the y-axis coordinate is 1 can be obtained by setting the ratio between the weighting values applied to the first prediction sample and the second prediction sample to (3:1) or (1:3 ). In addition, prediction samples in which the absolute value of the difference between the x-axis coordinate and the y-axis coordinate is 2 can be obtained by setting the ratio between the weighting values applied to the first prediction sample and the second prediction sample to (7:1) or ( 1:7).

Альтернативно, как показано в примере на фиг. 28 (b), отсчеты предсказания в положении одинаковых координаты оси x и координаты оси y могут быть получены путем применения одинакового значения взвешивания к первому отсчету предсказания и второму отсчету предсказания, и отсчеты предсказания, в которых абсолютное значение разницы между координатой оси x и координатой оси y равно 1, могут быть получены путем установки соотношения между значениями взвешивания, применяемого к первому отсчету предсказания и второму отсчет предсказания, равного (7:1) или (1:7).Alternatively, as shown in the example of FIG. 28(b), prediction samples at the same position of the x-axis coordinate and y-axis coordinate can be obtained by applying the same weighting value to the first prediction sample and the second prediction sample, and prediction samples in which the absolute value of the difference between the x-axis coordinate and the axis coordinate y equal to 1 can be obtained by setting the ratio between the weighting values applied to the first prediction sample and the second prediction sample to (7:1) or (1:7).

Например, как показано в примере по фиг. 29 (a), отсчеты предсказания, в которых сумма координаты оси x и координаты оси y меньше, чем ширина или высота блока кодирования на 1, могут быть получены путем применения одинакового значения взвешивания к первому отсчету предсказания и второму отсчету предсказания. Отсчеты предсказания, в которых сумма координаты оси x и координаты оси y равна ширине или высоте блока кодирования или меньше них на 2, могут быть получены путем установки соотношения между значениями взвешивания, применяемого к первому отсчету предсказания и второму отсчету предсказания, равного (3:1) или (1:3). Предсказанные отсчеты, в которых сумма координат оси x и координат оси y больше, чем ширина или высота блока кодирования или меньше них на 1 или 3, могут быть получены путем установки соотношения между значениями взвешивания, применяемого к первому отсчету предсказания и второму отсчету предсказания, равного (7:1) или (1:7).For example, as shown in the example of FIG. 29(a), prediction samples in which the sum of the x-axis coordinate and the y-axis coordinate is less than the width or height of the encoding block by 1 can be obtained by applying the same weighting value to the first prediction sample and the second prediction sample. Prediction samples in which the sum of the x-axis coordinate and the y-axis coordinate are equal to or 2 less than the width or height of the encoding block can be obtained by setting the ratio between the weighting values applied to the first prediction sample and the second prediction sample to (3:1 ) or (1:3). Prediction samples in which the sum of the x-axis coordinates and the y-axis coordinates are greater than or 1 or 3 less than the width or height of the encoding block can be obtained by setting the ratio between the weighting values applied to the first prediction sample and the second prediction sample to (7:1) or (1:7).

Альтернативно, как показано в примере на фиг. 29 (b), отсчеты предсказания, в которых сумма координаты оси x и координаты оси y меньше, чем ширина или высота блока кодирования на 1, могут быть получены путем применения одинакового значения взвешивания к первому отсчету предсказания и второму отсчету предсказания. Отсчеты предсказания, в которых сумма координаты оси x и координаты оси y равна ширине или высоте блока кодирования или меньше них на 2, могут быть получены путем установки соотношения между значениями взвешивания, применяемого к первому отсчету предсказания и второму отсчету предсказания, равного (7:1) или (1:7).Alternatively, as shown in the example of FIG. 29(b), prediction samples in which the sum of the x-axis coordinate and the y-axis coordinate is less than the width or height of the encoding block by 1 can be obtained by applying the same weighting value to the first prediction sample and the second prediction sample. Prediction samples in which the sum of the x-axis coordinate and the y-axis coordinate are equal to or 2 less than the width or height of the encoding block can be obtained by setting the ratio between the weighting values applied to the first prediction sample and the second prediction sample to (7:1 ) or (1:7).

В качестве другого примера, значение взвешивания может быть определено с учетом положения отсчета предсказания или формы блока кодирования. В уравнениях 7-9 показан пример получения значения взвешивания, когда левый треугольный тип разбивки применяется к блоку кодирования. В уравнении 7 показан пример получения значения взвешивания, применяемого к первому отсчету предсказания, когда блок кодирования имеет квадратную форму.As another example, the weighting value may be determined taking into account the position of the prediction sample or the shape of the encoding block. Equations 7-9 show an example of obtaining a weighting value when the left triangular partition type is applied to a coding block. Equation 7 shows an example of obtaining a weighting value applied to the first prediction sample when the coding block has a square shape.

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

В уравнении 7 x и y обозначают положение отсчета предсказания. Когда блок кодирования не имеет квадратной формы, значение взвешивания, применяемое к первому отсчету предсказания, может быть получено, как показано в уравнении 8 или 9. В уравнении 8 показан случай, в котором ширина блока кодирования больше, чем высота, и в уравнении 9 показан случай, в котором ширина блока кодирования меньше, чем высота.In Equation 7, x and y denote the position of the prediction reference. When the coding block is not square-shaped, the weighting value applied to the first prediction sample can be obtained as shown in Equation 8 or 9. Equation 8 shows the case in which the width of the coding block is larger than the height, and Equation 9 shows a case in which the width of the coding block is less than the height.

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

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

Когда правый треугольный тип разбивки применяется к блоку кодирования, значение взвешивания, применяемое к первому отсчету предсказания, может быть определено, как показано в уравнениях 10-12. В уравнении 10 показан пример получения значения взвешивания, применяемого к первому отсчету предсказания, когда блок кодирования имеет квадратную форму.When the right triangular split type is applied to a coding block, the weighting value applied to the first prediction sample can be determined as shown in Equations 10-12. Equation 10 shows an example of obtaining a weighting value applied to the first prediction sample when the coding block has a square shape.

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

В уравнении 10 CbW обозначает ширину блока кодирования. Когда блок кодирования не имеет квадратной формы, значение взвешивания, применяемое к первому отсчету предсказания, может быть получено, как показано в уравнении 11 или уравнении 12. В уравнении 11 показан случай, в котором ширина блока кодирования больше, чем высота, и в уравнении 12 показан случай, в котором ширина блока кодирования меньше, чем высота.In Equation 10 , CbW denotes the coding block width. When the coding block is not square-shaped, the weighting value applied to the first prediction sample can be obtained as shown in Equation 11 or Equation 12. Equation 11 shows the case in which the width of the coding block is larger than the height, and Equation 12 shows a case in which the width of the coding block is less than the height.

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

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

В уравнении 11 CbH обозначает высоту блока кодирования.In Equation 11 , CbH denotes the coding block height.

Как показано в примере, среди отсчетов предсказания в граничном участке отсчеты предсказания, включенные в первый треугольный элемент предсказания, получают путем присваивания значения взвешивания, которое больше, чем значение взвешивания второго отсчета предсказания, первому отсчету предсказания, и отсчеты предсказания, включенные во второй треугольный элемент предсказания, получают путем присваивания значения взвешивания, которое больше, чем значение взвешивания первого отсчета предсказания, второму отсчету предсказания.As shown in the example, among the prediction samples in the boundary portion, the prediction samples included in the first triangular prediction element are obtained by assigning a weighting value that is greater than the weighting value of the second prediction sample to the first prediction sample, and the prediction samples included in the second triangular element predictions are obtained by assigning a weighting value that is greater than the weighting value of the first prediction sample to the second prediction sample.

Когда диагональное разбиение применяется к блоку кодирования, может быть установлено не применять комбинированный режим предсказания, объединяющий режим внутреннего предсказания и режим слияния, к блоку кодирования.When diagonal partitioning is applied to a coding block, it may be set not to apply a combined prediction mode combining an intra prediction mode and a merging mode to the coding block.

Внутреннее предсказание предназначено для предсказания текущего блока с использованием восстановленных отсчетов, которые были кодированы/декодированы поблизости от текущего блока. В этом случае отсчеты, восстановленные до применения фильтра в контуре, могут использоваться для внутреннего предсказания текущего блока.Intra prediction is designed to predict the current block using reconstructed samples that were encoded/decoded in the vicinity of the current block. In this case, the samples reconstructed before applying the filter in the loop can be used for intra-prediction of the current block.

Метод внутреннего предсказания включает внутреннее предсказание на основе матрицы и общее внутреннее предсказание, учитывающее направленность относительно соседних восстановленных отсчетов. Информация, указывающая метод внутреннего предсказания текущего блока, может передаваться посредством битового потока. Информация может представлять собой 1-битный флаг. Альтернативно метод внутреннего предсказания текущего блока может быть определен на основании по меньшей мере одного из положения текущего блока, размера текущего блока, формы текущего блока и метода внутреннего предсказания соседнего блока. Например, когда текущий блок находится на границе изображения, он может быть установлен таким образом, чтобы не применять внутреннее предсказание на основе матрицы к текущему блоку.The intra prediction method includes matrix-based intra prediction and general intra prediction taking into account directionality relative to neighboring reconstructed samples. Information indicating the intra prediction method of the current block may be transmitted via a bit stream. The information may be a 1-bit flag. Alternatively, the intra prediction method of the current block may be determined based on at least one of the position of the current block, the size of the current block, the shape of the current block, and the intra prediction method of the adjacent block. For example, when the current block is on an image boundary, it can be set to not apply matrix-based intra prediction to the current block.

Внутреннее предсказание, представляющее собой внутреннее предсказание на основе матрицы, представляет собой способ получения блока предсказания текущего блока кодером и декодером на основании матричного произведения между ранее сохраненной матрицей и восстановленными отсчетами поблизости от текущего блока. Информация для указания любой из множества ранее сохраненных матриц может передаваться посредством битового потока. Декодер может определять матрицу для внутреннего предсказания текущего блока на основании информации и размера текущего блока.Intra prediction, which is matrix-based intra prediction, is a method of obtaining a block prediction of a current block by an encoder and decoder based on a matrix product between a previously stored matrix and reconstructed samples in the vicinity of the current block. Information to indicate any of a plurality of previously stored matrices may be transmitted via a bit stream. The decoder may determine a matrix for intra prediction of the current block based on the information and size of the current block.

Общее внутреннее предсказание представляет собой способ получения блока предсказания для текущего блока на основании режима внутреннего предсказания, не основанного на информации об углах, или режима внутреннего предсказания, основанного на информации об углах.General intra prediction is a method of obtaining a prediction block for a current block based on an intra prediction mode not based on angle information or an intra prediction mode based on angle information.

Полученное остаточное изображение может быть получено путем вычитания видео предсказания из первоначального видео. В этом случае, когда остаточное видео изменяется на частотную область, субъективное качество видео существенно не снижается, хотя высокочастотные компоненты удалены из частотных компонентов. Соответственно, когда значения высокочастотных компонентов конвертируются в небольшие или значения высокочастотных компонентов установлены равными 0, имеет место эффект увеличения эффективности сжатия без генерирования существенного визуального искажения. Отражая эту характеристику, текущий блок может быть преобразован для разложения остаточного видео на двумерные частотные компоненты. Преобразование может быть выполнено с использованием метода преобразования, такого как дискретное косинусное преобразование (DCT) или дискретное синусное преобразование (DST).The resulting residual image can be obtained by subtracting the prediction video from the original video. In this case, when the residual video is changed to the frequency domain, the subjective quality of the video is not significantly reduced although the high-frequency components are removed from the frequency components. Accordingly, when the high-frequency component values are converted to small values or the high-frequency component values are set to 0, the effect of increasing compression efficiency occurs without generating significant visual distortion. Reflecting this characteristic, the current block can be transformed to decompose the residual video into two-dimensional frequency components. The conversion can be done using a transform method such as discrete cosine transform (DCT) or discrete sine transform (DST).

Двумерное преобразование видео может не быть выполнено для некоторых блоков остаточного видео. Невыполнение двумерного преобразования видео может называться пропуском преобразования. Когда применен пропуск преобразования, квантование может быть применено к остаточным коэффициентам, которые не были преобразованы.2D video conversion may not be performed for some residual video blocks. Failure to perform 2D video conversion may be referred to as skip conversion. When skip transform is applied, quantization can be applied to the residual coefficients that were not transformed.

После преобразования текущего блока с использованием DCT или DST преобразованный текущий блок может быть преобразован повторно. В этом случае преобразование на основании DCT или DST может быть определено как первое преобразование, а повторное преобразование блока, к которому применено первое преобразование, может быть определено как второе преобразование.After converting the current block using DCT or DST, the converted current block can be re-converted. In this case, the transformation based on the DCT or DST can be defined as the first transform, and the retransformation of the block to which the first transform is applied can be defined as the second transform.

Первое преобразование может быть выполнено с использованием любой из множества основ-кандидатов преобразования. Например, первое преобразование может быть выполнено с использованием любого из DCT2, DCT8 или DCT7.The first transformation may be performed using any of a variety of candidate transformation bases. For example, the first conversion may be performed using any of DCT2, DCT8 or DCT7.

Разные основы преобразования могут быть использованы для горизонтального направления и вертикального направления. Информация, указывающая комбинацию основы преобразования в горизонтальном направлении и основы преобразования в вертикальном направлении, может быть передана посредством битового потока.Different transformation bases can be used for the horizontal direction and the vertical direction. Information indicating a combination of a translation base in the horizontal direction and a transformation basis in the vertical direction may be transmitted by a bit stream.

Элементы для выполнения первого преобразования и второго преобразования могут быть разными. Например, первое преобразование может быть выполнено в отношении блока 8×8, а второе преобразование может быть выполнено в отношении подблока размером 4×4 из преобразованного блока 8×8. В этом случае коэффициенты преобразования остаточных участков, в отношении которых не было выполнено второе преобразование, могут быть установлены равными 0.The elements for performing the first transformation and the second transformation may be different. For example, the first transformation may be performed on an 8x8 block, and the second transformation may be performed on a 4x4 subblock of the transformed 8x8 block. In this case, the transformation coefficients of the residual areas for which the second transformation has not been performed can be set to 0.

Альтернативно первое преобразование может быть выполнено в отношении блока 4×4, а второе преобразование может быть выполнено в отношении участка размером 8×8, содержащего преобразованный блок 4×4.Alternatively, the first transform may be performed on the 4x4 block and the second transform may be performed on the 8x8 portion containing the transformed 4x4 block.

Информация, указывающая, было ли выполнено второе преобразование, может быть передана посредством битового потока.Information indicating whether the second conversion has been performed may be transmitted via a bit stream.

Альтернативно то, следует ли выполнять второе преобразование, может быть определено на основании того, являются ли одинаковыми основа преобразования в горизонтальном направлении и основа преобразования в вертикальном направлении. Например, второе преобразование может быть выполнено только тогда, когда основа преобразования в горизонтальном направлении и основа преобразования в вертикальном направлении являются одинаковыми. Альтернативно второе преобразование может быть выполнено только тогда, когда основа преобразования в горизонтальном направлении и основа преобразования в вертикальном направлении отличаются друг от друга.Alternatively, whether the second transformation should be performed can be determined based on whether the transformation basis in the horizontal direction and the transformation basis in the vertical direction are the same. For example, the second transformation can be performed only when the transformation basis in the horizontal direction and the transformation basis in the vertical direction are the same. Alternatively, the second transformation can be performed only when the transformation basis in the horizontal direction and the transformation basis in the vertical direction are different from each other.

Альтернативно второе преобразование может быть допущено только тогда, когда преобразование в горизонтальном направлении и преобразование в вертикальном направлении используют предварительно заданную основу преобразования. Например, когда основа преобразования DCT2 используется для преобразования в горизонтальном направлении и преобразования в вертикальном направлении, второе преобразование может быть допущено.Alternatively, the second transformation may be allowed only when the transformation in the horizontal direction and the transformation in the vertical direction use a predefined transformation basis. For example, when the DCT2 transformation basis is used for transformation in the horizontal direction and transformation in the vertical direction, the second transformation may be allowed.

Альтернативно то, следует ли выполнять второе преобразование, может быть определено на основании количества ненулевых коэффициентов преобразования текущего блока. Например, может быть установлено не использовать второе преобразование, когда количество ненулевых коэффициентов преобразования текущего блока меньше, чем пороговое значение, или равняется ему, и может быть установлено использовать второе преобразование, когда количество ненулевых коэффициентов преобразования текущего блока больше, чем пороговое значение. Может быть установлено использовать второе преобразование только тогда, когда текущий блок кодирован с помощью внутреннего предсказания.Alternatively, whether to perform the second transform may be determined based on the number of non-zero transform coefficients of the current block. For example, it may be set to not use the second transform when the number of non-zero transform coefficients of the current block is less than or equal to the threshold value, and it may be set to use the second transform when the number of non-zero transform coefficients of the current block is greater than the threshold value. It can be set to use the second transform only when the current block is intra-prediction encoded.

Декодер может выполнять обратное преобразование второго преобразования (второе обратное преобразование) и может выполнять обратное преобразование первого преобразования (первое обратное преобразование) в отношении результата второго обратного преобразования. В результате выполнения второго обратного преобразования и первого обратного преобразования могут быть получены остаточные сигналы для текущего блока.The decoder may invert the second transform (second inverse transform) and may inverse the first transform (first inverse transform) with respect to the result of the second inverse transform. By performing the second deconversion and the first deconversion, residual signals for the current block can be obtained.

Когда кодер выполняет преобразование и квантование, декодер может получать остаточный блок путем обратного квантования и обратного преобразования. Декодер может получать восстановленный блок для текущего блока путем сложения блока предсказания и остаточного блока.When the encoder performs the transform and quantization, the decoder can obtain the residual block by inverse quantization and inverse transform. The decoder can obtain a reconstructed block for the current block by adding the prediction block and the residual block.

Когда получают восстановленный блок текущего блока, потеря информации, происходящая в процессе квантования и кодирования, может быть уменьшена посредством фильтрования в контуре. Фильтр в контуре может включать по меньшей мере один из деблочного фильтра, фильтра адаптивного смещения отсчета (SAO) и адаптивного контурного фильтра (ALF).When the reconstructed block of the current block is obtained, the information loss occurring in the quantization and encoding process can be reduced by in-loop filtering. The filter in the loop may include at least one of a deblocking filter, an adaptive sample offset filter (SAO), and an adaptive loop filter (ALF).

Применение вариантов осуществления, описанных выше, сфокусированных на процессе декодирования или процессе кодирования, к процессу кодирования или процессу декодирования включено в объем настоящего изобретения. Изменение вариантов осуществления, описанных в предварительно определенном порядке, в порядке, отличающемся от описанного порядка, также включено в объем настоящего изобретения.The application of the embodiments described above, focused on a decoding process or an encoding process, to an encoding process or a decoding process is included within the scope of the present invention. Changing the embodiments described in a predetermined order in an order different from the described order is also included within the scope of the present invention.

Хотя приведенные выше варианты осуществления были описаны на основании ряда этапов или блок-схем, это не ограничивает порядок выполнения во времени настоящего изобретения, и они могут быть выполнены одновременно или в другом порядке при необходимости. Кроме того, каждый из компонентов (например, элементы, модули и т.д.), составляющих структурную схему в вариантах осуществления, описанных выше, может быть реализован в виде аппаратного устройства или программного обеспечения, или множество компонентов могут быть скомбинированы для реализации в виде одного аппаратного устройства или программного обеспечения. Варианты осуществления, описанные выше, могут быть реализованы в форме программных команд, которые могут быть исполнены посредством различных компьютерных компонентов и записаны в машиночитаемом носителе данных. Машиночитаемый носитель данных может содержать программные команды, файлы данных, структуры данных и т.п. независимо или в комбинации. Машиночитаемый носитель данных включает, например, магнитные носители, такие как жесткий диск, гибкий диск и магнитную ленту, оптические носители данных, такие как CD-ROM и DVD, магнитно-оптические носители, такие как гибкий оптический диск, и аппаратные устройства, специально выполненные с возможностью хранения и исполнения программных команд, такие как ROM, RAM, флеш-память и т.п. Аппаратные устройства, описанные выше, могут быть выполнены с возможностью работы с использованием одного или более программных модулей для выполнения процесса согласно настоящему изобретению, и наоборот.Although the above embodiments have been described based on a number of steps or flowcharts, this does not limit the timing of the present invention, and they can be executed simultaneously or in a different order as necessary. In addition, each of the components (eg, elements, modules, etc.) constituting the block diagram in the embodiments described above may be implemented as a hardware device or software, or a plurality of components may be combined to be implemented as one hardware device or software. The embodiments described above may be implemented in the form of program instructions that can be executed by various computer components and recorded in a computer-readable storage medium. The computer-readable storage medium may contain program instructions, data files, data structures, and the like. independently or in combination. Computer readable storage media includes, for example, magnetic media such as hard disk, floppy disk and magnetic tape, optical storage media such as CD-ROM and DVD, magnetic-optical media such as floppy optical disk, and hardware devices specially designed with the ability to store and execute software commands, such as ROM, RAM, flash memory, etc. The hardware devices described above may be configured to operate using one or more software modules to perform a process according to the present invention, and vice versa.

Настоящее изобретение может быть применено к электронному устройству, которое кодирует и декодирует видео.The present invention can be applied to an electronic device that encodes and decodes video.

Claims (34)

1. Способ декодирования видео, включающий следующие этапы:1. A method for video decoding, including the following steps: применение разбиения к блоку кодирования для получения первого элемента предсказания и второго элемента предсказания, при этом то, применять или нет разбиение к блоку кодирования, определяют на основании размера блока кодирования;applying partitioning to the encoding block to obtain a first prediction element and a second prediction element, wherein whether or not to apply the partitioning to the encoding block is determined based on the size of the encoding block; получение списка кандидатов на слияние для блока кодирования;obtaining a list of merge candidates for the coding block; получение первой информации о движении для первого элемента предсказания и второй информации о движении для второго элемента предсказания с использованием списка кандидатов на слияние; иobtaining first motion information for the first prediction element and second motion information for the second prediction element using the fusion candidate list; And получение отсчета предсказания в блоке кодирования на основании первой информации о движении и второй информации о движении, при этомobtaining a prediction sample in the encoding block based on the first motion information and the second motion information, wherein первую информацию о движении для первого элемента предсказания получают из первого кандидата на слияние в списке кандидатов на слияние, и вторую информацию о движении для второго элемента предсказания получают из второго кандидата на слияние, отличного от первого кандидата на слияние,the first motion information for the first prediction element is obtained from the first fusion candidate in the list of fusion candidates, and the second motion information for the second prediction element is obtained from a second fusion candidate different from the first fusion candidate, при этом способ включает этап декодирования первой информации об индексах для указания первого кандидата на слияние и второй информации об индексах для указания второго кандидата на слияние из битового потока, при этомwherein the method includes the step of decoding first index information to indicate a first merge candidate and second index information to indicate a second merge candidate from the bit stream, wherein когда значение второй информации об индексах равняется значению первой информации об индексах или больше него, значение второй информации об индексах, указывающей второго кандидата на слияние, получают путем прибавления 1 к значению второй информации об индексах.when the value of the second index information is equal to or greater than the value of the first index information, the value of the second index information indicating the second merger candidate is obtained by adding 1 to the value of the second index information. 2. Способ по п. 1, отличающийся тем, что, когда по меньшей мере одно из ширины и высоты блока кодирования больше, чем пороговое значение, разбиение блока кодирования не разрешают.2. The method according to claim 1, characterized in that when at least one of the width and height of the encoding block is greater than a threshold value, splitting the encoding block is not allowed. 3. Способ по п. 1, отличающийся тем, что максимальное количество кандидатов на слияние, которое содержит список кандидатов на слияние, определяют на основании того, получают ли первый элемент предсказания и второй элемент предсказания путем применения разбиения к блоку кодирования.3. The method of claim 1, wherein the maximum number of merge candidates that comprises the list of merge candidates is determined based on whether the first prediction element and the second prediction element are obtained by applying partitioning to the encoding block. 4. Способ по п. 1, отличающийся тем, что первый элемент предсказания представляет собой первый треугольный элемент предсказания, и второй элемент предсказания представляет собой второй треугольный элемент предсказания.4. The method of claim 1, wherein the first prediction element is a first triangular prediction element and the second prediction element is a second triangular prediction element. 5. Способ по п. 4, отличающийся тем, что дополнительно включает этап декодирования первой информации об индексах для определения кандидата на слияние первого треугольного элемента предсказания и второй информации об индексах для определения кандидата на слияние второго треугольного элемента предсказания из битового потока,5. The method of claim 4, further comprising the step of decoding the first index information for determining a fusion candidate of the first triangular prediction element and the second index information for determining a fusion candidate of the second triangular prediction element from the bit stream, при этом, когда значение второй информации об индексах равняется значению первой информации об индексах или больше него, значение второй информации об индексах получают путем прибавления 1 к значению второй информации об индексах.wherein, when the value of the second index information is equal to or greater than the value of the first index information, the value of the second index information is obtained by adding 1 to the value of the second index information. 6. Способ по п. 5, отличающийся тем, что получение первой информации о движении для первого элемента предсказания и второй информации о движении для второго элемента предсказания с использованием списка кандидатов на слияние включает:6. The method according to claim 5, characterized in that obtaining the first motion information for the first prediction element and the second motion information for the second prediction element using the list of merge candidates includes: получение первой информации о движении для первого треугольного элемента предсказания из кандидата на слияние, определенного на основании первой информации об индексах, иobtaining first motion information for the first triangular prediction element from the fusion candidate determined based on the first index information, and получение второй информации о движении для второго треугольного элемента предсказания из кандидата на слияние, определенного на основании второй информации об индексах.obtaining second motion information for the second triangular prediction element from the fusion candidate determined based on the second index information. 7. Способ кодирования видео, включающий следующие этапы:7. Video encoding method, including the following steps: применение разбиения к блоку кодирования для получения первого элемента предсказания и второго элемента предсказания, при этом то, применять или нет разбиение к блоку кодирования, определяют на основании размера блока кодирования;applying partitioning to the encoding block to obtain a first prediction element and a second prediction element, wherein whether or not to apply the partitioning to the encoding block is determined based on the size of the encoding block; получение списка кандидатов на слияние для блока кодирования;obtaining a list of merge candidates for the coding block; получение первой информации о движении для первого элемента предсказания и второй информации о движении для второго элемента предсказания с использованием списка кандидатов на слияние; иobtaining first motion information for the first prediction element and second motion information for the second prediction element using the fusion candidate list; And получение отсчета предсказания в блоке кодирования на основании первой информации о движении и второй информации о движении, при этомobtaining a prediction sample in the encoding block based on the first motion information and the second motion information, wherein первую информацию о движении для первого элемента предсказания получают из первого кандидата на слияние в списке кандидатов на слияние, и вторую информацию о движении для второго элемента предсказания получают из второго кандидата на слияние, отличного от первого кандидата на слияние,the first motion information for the first prediction element is obtained from the first fusion candidate in the list of fusion candidates, and the second motion information for the second prediction element is obtained from a second fusion candidate different from the first fusion candidate, при этом способ включает этап кодирования первой информации об индексах для указания первого кандидата на слияние и второй информации об индексах для указания второго кандидата на слияние из битового потока, при этомwherein the method includes the step of encoding first index information to indicate a first merge candidate and second index information to indicate a second merge candidate from the bit stream, wherein когда индекс второго кандидата на слияние больше, чем индекс первого кандидата на слияние, вторую информацию об индексах кодируют с использованием значения, полученного путем вычитания 1 из индекса второго кандидата на слияние.when the index of the second merger candidate is greater than the index of the first merger candidate, the second index information is encoded using a value obtained by subtracting 1 from the index of the second merger candidate. 8. Способ по п. 7, отличающийся тем, что, когда по меньшей мере одно из ширины и высоты блока кодирования больше, чем пороговое значение, разбиение блока кодирования не разрешают.8. The method according to claim 7, characterized in that when at least one of the width and height of the encoding block is larger than the threshold value, splitting the encoding block is not allowed. 9. Способ по п. 7, отличающийся тем, что максимальное количество кандидатов на слияние, которое содержит список кандидатов на слияние, определяют на основании того, разбивают ли блок кодирования на первый элемент предсказания и второй элемент предсказания.9. The method of claim 7, wherein the maximum number of merge candidates that comprises the list of merge candidates is determined based on whether the encoding block is divided into a first prediction element and a second prediction element. 10. Способ по п. 7, отличающийся тем, что первый элемент предсказания представляет собой первый треугольный элемент предсказания, при этом второй элемент предсказания представляет собой второй треугольный элемент предсказания.10. The method of claim 7, wherein the first prediction element is a first triangular prediction element, and the second prediction element is a second triangular prediction element. 11. Способ по п. 10, отличающийся тем, что дополнительно включает этап кодирования первой информации об индексах для определения кандидата на слияние первого треугольного элемента предсказания и второй информации об индексах для определения кандидата на слияние второго треугольного элемента предсказания, при этом11. The method of claim 10, further comprising the step of encoding first index information for determining a fusion candidate of the first triangular prediction element and second index information for determining a fusion candidate of the second triangular prediction element, wherein когда индекс кандидата на слияние второго треугольного элемента предсказания равняется индексу кандидата на слияние первого треугольного элемента предсказания или больше него, вторую информацию об индексах кодируют с использованием значения, полученного путем вычитания 1 из индекса кандидата на слияние второго треугольного элемента предсказания.when the fusion candidate index of the second triangular prediction element is equal to or greater than the fusion candidate index of the first triangular prediction element, the second index information is encoded using a value obtained by subtracting 1 from the fusion candidate index of the second triangular prediction element. 12. Способ по п. 11, отличающийся тем, что получение первой информации о движении для первого элемента предсказания и второй информации о движении для второго элемента предсказания с использованием списка кандидатов на слияние включает:12. The method according to claim 11, characterized in that obtaining the first motion information for the first prediction element and the second motion information for the second prediction element using the merging candidate list includes: получение первой информации о движении для первого треугольного элемента предсказания из кандидата на слияние, определенного на основании первой информации об индексах, иobtaining first motion information for the first triangular prediction element from the fusion candidate determined based on the first index information, and получение второй информации о движении для второго треугольного элемента предсказания из кандидата на слияние, определенного на основании второй информации об индексах.obtaining second motion information for the second triangular prediction element from the fusion candidate determined based on the second index information. 13. Устройство декодирования видео, содержащее блок для предсказания, осуществляемого между изображениями, выполненное с возможностью выполнения способа по любому из пп. 1-6.13. A video decoding device comprising a block for prediction carried out between images, configured to perform the method according to any one of claims. 1-6. 14. Устройство кодирования видео, содержащее блок для предсказания, осуществляемого между изображениями, выполненное с возможностью выполнения способа по любому из пп. 7-12.14. A video encoding device comprising a block for prediction carried out between images, configured to perform the method according to any one of claims. 7-12.
RU2021116404A 2018-11-08 2019-11-08 Method and device for encoding/decoding image signals RU2806152C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0136306 2018-11-08
KR10-2018-0136249 2018-11-08

Publications (2)

Publication Number Publication Date
RU2021116404A RU2021116404A (en) 2022-12-08
RU2806152C2 true RU2806152C2 (en) 2023-10-26

Family

ID=

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2577779C2 (en) * 2011-11-07 2016-03-20 Квэлкомм Инкорпорейтед Generating additional merge candidates
RU2617920C9 (en) * 2012-04-12 2017-08-29 ДжейВиСи КЕНВУД КОРПОРЕЙШН 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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2577779C2 (en) * 2011-11-07 2016-03-20 Квэлкомм Инкорпорейтед Generating additional merge candidates
RU2617920C9 (en) * 2012-04-12 2017-08-29 ДжейВиСи КЕНВУД КОРПОРЕЙШН 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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
S. OUDIN et al., BLOCK MERGING FOR QUADTREE-BASED VIDEO CODING, IEEE International Conference on Multimedia and Expo (ICME 2011), Barcelona, Spain 2011.07.11-2011.07.15. RU-LING LIAO et al., CE10.3.1.b: Triangular prediction unit mode, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-L0124-v2, 12th Meeting: Macao, 03-12 Oct. 2018. MAX BLASER et al., Description of SDR and 360 video coding technology proposal by RWTH Aachen University, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-J0023-v1, 10th Meeting: San Diego, 10-20 Apr. 2018. *

Similar Documents

Publication Publication Date Title
US11889077B2 (en) Method for encoding/decoding image signal and device therefor
US20220014775A1 (en) Method for encoding/decoding video signal and device therefor
CN113507603B (en) Image signal encoding/decoding method and apparatus therefor
JP7364818B2 (en) Video signal encoding/decoding method and device
CN113039788A (en) Video signal encoding/decoding method and apparatus for the same
JP2024045193A (en) Video signal encoding/decoding method and device therefor
KR20230114250A (en) Method for encodign/decodign video signal and apparatus therefor
RU2806152C2 (en) Method and device for encoding/decoding image signals
RU2819286C2 (en) Method and device for encoding/decoding image signals
RU2819080C2 (en) Method and device for encoding/decoding image signals
RU2819393C2 (en) Method and device for encoding/decoding image signals
RU2813667C2 (en) Method and device for encoding and decoding video signals
RU2810054C2 (en) Method and device for encoding and decoding video signals
RU2809582C2 (en) Method and device for encoding and decoding video signals
RU2802731C2 (en) Method and device for encoding and decoding video signals
RU2809324C2 (en) Method and device for encoding and decoding video signals
RU2808720C2 (en) Method and device for coding/decoding image signals
RU2799079C2 (en) Method and device for coding/decoding image signals
RU2812857C2 (en) Method and device for encoding/decoding image signals
RU2801863C2 (en) Method and device for coding/decoding image signals
RU2817331C2 (en) Method and device for encoding/decoding image signal