RU2818968C2 - Method and apparatus for encoding/decoding image and recording medium on which bit stream is stored - Google Patents
Method and apparatus for encoding/decoding image and recording medium on which bit stream is stored Download PDFInfo
- Publication number
- RU2818968C2 RU2818968C2 RU2023111088A RU2023111088A RU2818968C2 RU 2818968 C2 RU2818968 C2 RU 2818968C2 RU 2023111088 A RU2023111088 A RU 2023111088A RU 2023111088 A RU2023111088 A RU 2023111088A RU 2818968 C2 RU2818968 C2 RU 2818968C2
- Authority
- RU
- Russia
- Prior art keywords
- block
- prediction
- motion information
- list
- candidate list
- Prior art date
Links
Abstract
Description
Область техникиTechnical field
[0001] Настоящее изобретение относится к способу и устройству для кодирования/декодирования изображения и носителю записи, хранящему битовый поток. Более конкретно, настоящее изобретение относится к способу и устройству для кодирования/декодирования изображения и носителю записи, хранящему битовый поток, на основе списка кандидатов и списка режимов интра-предсказания.[0001] The present invention relates to a method and apparatus for encoding/decoding an image and a recording medium storing a bit stream. More specifically, the present invention relates to a method and apparatus for encoding/decoding an image and a recording medium storing a bit stream based on a candidate list and an intra-prediction mode list.
Предшествующий уровень техникиPrior Art
[0002] В последнее время, потребности в изображениях высокого разрешения и высокого качества, таких как изображения высокой четкости (HD) и изображения ультравысокой четкости (UHD), возросли в различных областях применения. Однако данные изображения более высокого разрешения и качества имеют увеличенные объемы данных по сравнению с данными обычного изображения. Поэтому при передаче данных изображения с использованием носителя, такого как традиционные проводные и беспроводные широкополосные сети, или при хранении данных изображения с использованием традиционных носителей хранения, затраты на передачу и хранение увеличиваются. Чтобы решить эти проблемы, возникающие с увеличением разрешения и качества данных изображения, требуются высокоэффективные методы кодирования/ декодирования изображения для изображений более высокого разрешения и более высокого качества. [0002] Recently, demands for high resolution and high quality images, such as high definition (HD) images and ultra high definition (UHD) images, have increased in various application fields. However, higher resolution and quality image data have increased data volumes compared to regular image data. Therefore, when transmitting image data using a medium such as traditional wired and wireless broadband networks, or storing image data using traditional storage media, transmission and storage costs increase. To overcome these problems that arise with increasing resolution and quality of image data, highly efficient image encoding/decoding techniques are required for higher resolution and higher quality images.
[0003] Технология сжатия изображений включает в себя различные методы, в том числе: метод интер-предсказания путем предсказания пиксельного значения, включенного в текущую картинку, из предыдущей или последующей картинки относительно текущей картинки; метод интра-предсказания путем предсказания пиксельного значения, включенного в текущую картинку, с использованием пиксельной информации в текущей картинке; метод преобразования и квантования для сжатия энергии остаточного сигнала; метод энтропийного кодирования путем назначения короткого кода значению с высокой частотой появления и назначения длинного кода значению с низкой частотой появления и т.д. Данные изображения могут быть эффективно сжаты с использованием такой технологии сжатия изображения и могут передаваться или сохраняться.[0003] Image compression technology includes various methods, including: an inter-prediction method by predicting a pixel value included in the current picture from a previous or subsequent picture relative to the current picture; an intra-prediction method by predicting a pixel value included in the current picture using pixel information in the current picture; conversion and quantization method for compressing the energy of the residual signal; entropy encoding method by assigning a short code to a value with a high frequency of occurrence and assigning a long code to a value with a low frequency of occurrence, etc. The image data can be efficiently compressed using such image compression technology and can be transmitted or stored.
РаскрытиеDisclosure
Техническая задачаTechnical problem
[0004] Задачей настоящего изобретения является обеспечить способ и устройство для кодирования/декодирования изображения, имеющие повышенную эффективность сжатия, и носитель записи, хранящий битовый поток, сгенерированный способом и устройством для кодирования/декодирования изображения.[0004] An object of the present invention is to provide an image encoding/decoding method and apparatus having improved compression efficiency, and a recording medium storing a bit stream generated by the image encoding/decoding method and apparatus.
[0005] Кроме того, задачей настоящего изобретения является обеспечить способ и устройство для кодирования/декодирования изображения и носитель записи, хранящий битовый поток, которые имеют повышенную эффективность сжатия, с использованием списка кандидатов.[0005] It is further an object of the present invention to provide a method and apparatus for encoding/decoding an image and a recording medium storing a bitstream that has improved compression efficiency using a candidate list.
[0006] Другой задачей настоящего изобретения является обеспечить способ и устройство для кодирования/декодирования изображения и носитель записи, хранящий битовый поток, которые имеют повышенную эффективность сжатия, с использованием списка режимов интра-предсказания.[0006] Another object of the present invention is to provide a method and apparatus for encoding/decoding an image and a recording medium storing a bit stream that has improved compression efficiency using a list of intra-prediction modes.
Техническое решениеTechnical solution
[0007] В соответствии с настоящим изобретением, способ декодирования изображения содержит выведение первого списка кандидатов текущего блока с использованием информации движения соседнего блока текущего блока, чтобы вывести первый список кандидатов для текущего блока, выведение второго списка кандидатов для текущего блока с использованием ранее восстановленной информации движения, выведение третьего списка кандидатов с использованием первого списка кандидатов и второго списка кандидатов и генерирование блока предсказания для текущего блока с использованием третьего списка кандидатов. [0007] According to the present invention, an image decoding method comprises deriving a first candidate list of a current block using motion information of an adjacent block of the current block to output a first candidate list for the current block, deriving a second candidate list for the current block using previously recovered motion information , deriving a third candidate list using the first candidate list and a second candidate list, and generating a prediction block for the current block using the third candidate list.
[0008] В способе декодирования видео, соседний блок включает в себя по меньшей мере одно из пространственно соседнего блока и соседнего по времени блока.[0008] In a video decoding method, a neighboring block includes at least one of a spatially neighboring block and a temporally neighboring block.
[0009] В способе декодирования видео, выведение второго списка кандидатов включает в себя добавление ранее восстановленной информации движения во второй список кандидатов, причем ранее восстановленная информация движения представляет собой информацию движения блока кодирования, декодированного непосредственно перед декодированием текущего блока.[0009] In a video decoding method, deriving a second candidate list includes adding previously recovered motion information to the second candidate list, wherein the previously recovered motion information is motion information of an encoding block decoded immediately before decoding the current block.
[0010] Способ декодирования видео дополнительно содержит инициализацию второго списка кандидатов, причем второй список кандидатов инициализируется на основе границы строки единицы дерева кодирования (CTU).[0010] The video decoding method further comprises initializing a second candidate list, wherein the second candidate list is initialized based on a line boundary of a coding tree unit (CTU).
[0011] Способ декодирования видео дополнительно содержит, когда число частей информации движения, включенной во второй список кандидатов, является предопределенным значением, удаление информации движения, включенной во второй список кандидатов первой среди частей информации движения, включенной во второй список кандидатов.[0011] The video decoding method further comprises, when the number of pieces of motion information included in the second candidate list is a predetermined value, removing the motion information included in the second candidate list of the first among the pieces of motion information included in the second candidate list.
[0012] В способе декодирования видео, ранее восстановленная информация движения добавляется в следующем порядке информации движения, включенной во второй список кандидатов последней.[0012] In the video decoding method, the previously recovered motion information is added in the following order of the motion information included in the second candidate list last.
[0013] Способ декодирования видео дополнительно содержит, когда та же самая информация движения, что и ранее восстановленная информация движения, уже включена во второй список кандидатов, удаление той же самой информации движения из второго списка кандидатов.[0013] The video decoding method further comprises, when the same motion information as the previously recovered motion information is already included in the second candidate list, removing the same motion information from the second candidate list.
[0014] В способе декодирования видео, ранее восстановленная информация движения добавляется в следующем порядке информации движения, включенной во второй список кандидатов последней.[0014] In the video decoding method, the previously recovered motion information is added in the following order of the motion information included in the second candidate list last.
[0015] В способе декодирования видео, максимальное число частей информации движения, которая может быть включена во второй список кандидатов, является предопределенным.[0015] In the video decoding method, the maximum number of pieces of motion information that can be included in the second candidate list is predetermined.
[0016] Способ декодирования видео дополнительно содержит выведение средней информации движения путем вычисления среднего значения множества частей информации движения, включенных в третий список кандидатов, и добавление средней информации движения в третий список кандидатов.[0016] The video decoding method further comprises deriving average motion information by calculating an average value of a plurality of pieces of motion information included in the third candidate list, and adding the average motion information to the third candidate list.
[0017] Способ декодирования видео дополнительно содержит разделение текущего блока на первую область и вторую область, причем генерирование блока предсказания для текущего блока включает в себя генерирование блоков предсказания для первой области и второй области с использованием третьего списка кандидатов.[0017] The video decoding method further comprises dividing a current block into a first region and a second region, wherein generating a prediction block for the current block includes generating prediction blocks for the first region and the second region using the third candidate list.
[0018] В способе декодирования видео, третий список кандидатов используется для генерирования блока предсказания внутриблочного копирования (IBC) для текущего блока.[0018] In the video decoding method, the third candidate list is used to generate an intra-block copy (IBC) prediction block for the current block.
[0019] В соответствии с настоящим изобретением, способ декодирования изображения содержит определение информации движения текущего блока, выведение первого списка кандидатов для текущего блока с использованием информации движения соседнего блока текущего блока, выведение второго списка кандидатов для текущего блока с использованием ранее кодированной информации движения и выведение третьего списка кандидатов с использованием первого списка кандидатов и второго списка кандидатов.[0019] According to the present invention, an image decoding method comprises determining motion information of a current block, deriving a first candidate list for the current block using motion information of an adjacent block of the current block, deriving a second candidate list for the current block using previously encoded motion information, and deriving a third list of candidates using the first list of candidates and the second list of candidates.
[0020] В способе кодирования видео, выведение второго списка кандидатов включает в себя добавление ранее кодированной информации движения во второй список кандидатов, причем ранее кодированная информация движения представляет собой информацию движения блока кодирования, кодированного непосредственно перед кодированием текущего блока.[0020] In a video encoding method, deriving a second candidate list includes adding previously encoded motion information to the second candidate list, wherein the previously encoded motion information is motion information of an encoding block encoded immediately before encoding the current block.
[0021] Способ кодирования видео дополнительно содержит инициализацию второго списка кандидатов, причем второй список кандидатов инициализируется на основе границы строки единицы дерева кодирования (CTU).[0021] The video encoding method further comprises initializing a second candidate list, wherein the second candidate list is initialized based on a line boundary of a coding tree unit (CTU).
[0022] Способ декодирования видео дополнительно содержит, когда число частей информации движения, включенных во второй список кандидатов, является предопределенным значением, удаление информации движения, включенной во второй список кандидатов первой среди частей информации движения, включенных во второй список кандидатов.[0022] The video decoding method further comprises, when the number of motion information pieces included in the second candidate list is a predetermined value, removing the motion information included in the second candidate list first among the motion information pieces included in the second candidate list.
[0023] Способ декодирования видео дополнительно содержит, когда та же самая информация движения, что и ранее кодированная информация движения, уже включена во второй список кандидатов, удаление той же самой информации движения из второго списка кандидатов.[0023] The video decoding method further comprises, when the same motion information as the previously encoded motion information is already included in the second candidate list, removing the same motion information from the second candidate list.
[0024] В способе кодирования видео, число частей информации движения, которая может быть включена во второй список кандидатов, является предопределенным.[0024] In the video encoding method, the number of pieces of motion information that can be included in the second candidate list is predetermined.
[0025] В соответствии с настоящим изобретением, считываемый компьютером носитель записи хранит битовый поток, который принимается устройством декодирования изображения и используется для восстановления текущего блока, включенного в текущую картинку, причем битовый поток включает в себя информацию о предсказании текущего блока, информация о предсказании используется, чтобы вывести первый список кандидатов для текущего блока с использованием информации движения соседнего блока текущего блока, информация о предсказании используется, чтобы вывести второй список кандидатов для текущего блока с использованием ранее восстановленной информации движения, и первый список кандидатов и второй список кандидатов используются, чтобы вывести третий список кандидатов, используемый для генерирования блока предсказания для текущего блока.[0025] According to the present invention, a computer-readable recording medium stores a bit stream that is received by an image decoding apparatus and used to reconstruct a current block included in the current picture, wherein the bit stream includes prediction information of the current block, the prediction information is used to output a first candidate list for the current block using the motion information of a neighboring block of the current block, the prediction information is used to output a second candidate list for the current block using the previously recovered motion information, and the first candidate list and the second candidate list are used to output a third candidate list used to generate a prediction block for the current block.
ПОЛЕЗНЫЕ ЭФФЕКТЫBENEFITIVE EFFECTS
[0026] В соответствии с настоящим изобретением, можно обеспечить способ и устройство для кодирования/декодирования изображения, имеющие повышенную эффективность сжатия, и носитель записи, хранящий битовый поток, сгенерированный способом и устройством для кодирования/декодирования изображения.[0026] According to the present invention, it is possible to provide an image encoding/decoding method and apparatus having improved compression efficiency, and a recording medium storing a bit stream generated by the image encoding/decoding method and apparatus.
[0027] Кроме того, в соответствии с настоящим изобретением, можно обеспечить способ и устройство для кодирования/ декодирования изображения и носитель записи, хранящий битовый поток, которые имеют повышенную эффективность сжатия, с использованием списка кандидатов.[0027] In addition, according to the present invention, it is possible to provide a method and apparatus for encoding/decoding an image and a recording medium storing a bit stream that has improved compression efficiency using a candidate list.
[0028] Кроме того, в соответствии с настоящим изобретением, можно обеспечить способ и устройство для кодирования/ декодирования изображения и носитель записи, хранящий битовый поток, которые имеют повышенную эффективность сжатия, с использованием списка режимов интра-предсказания.[0028] In addition, according to the present invention, it is possible to provide a method and apparatus for encoding/decoding an image and a recording medium storing a bitstream that has improved compression efficiency using a list of intra-prediction modes.
ОПИСАНИЕ ЧЕРТЕЖЕЙDESCRIPTION OF DRAWINGS
[0029] Фиг. 1 представляет собой блок-схему, показывающую конфигурацию устройства кодирования, в котором применимо настоящее изобретение.[0029] FIG. 1 is a block diagram showing the configuration of an encoding apparatus to which the present invention is applicable.
[0030] Фиг. 2 представляет собой блок-схему, показывающую конфигурацию устройства декодирования, в котором применимо настоящее изобретение.[0030] FIG. 2 is a block diagram showing the configuration of a decoding apparatus to which the present invention is applicable.
[0031] Фиг. 3 представляет собой вид, схематично показывающий структуру разбиения при кодировании и декодировании изображения.[0031] FIG. 3 is a view schematically showing a partitioning structure in image encoding and decoding.
[0032] Фиг. 4 представляет собой вид, показывающий пример интра-предсказания.[0032] FIG. 4 is a view showing an example of intra-prediction.
[0033] Фиг. 5 представляет собой вид, показывающий пример интер-предсказания.[0033] FIG. 5 is a view showing an example of inter-prediction.
[0034] Фиг. 6 представляет собой вид, показывающий пример преобразования и квантования.[0034] FIG. 6 is a view showing an example of transformation and quantization.
[0035] Фиг. 7 представляет собой вид, показывающий опорные выборки, которые полезны для интра-предсказания.[0035] FIG. 7 is a view showing reference samples that are useful for intra-prediction.
[0036] Фиг. 8 представляет собой диаграмму, иллюстрирующую верхнюю единицу предсказания (UPU) используемую в некоторых вариантах осуществления настоящего изобретения.[0036] FIG. 8 is a diagram illustrating an upper prediction unit (UPU) used in some embodiments of the present invention.
[0037] Фиг. 9 представляет собой диаграмму, иллюстрирующую структуру кодера в соответствии с вариантом осуществления настоящего изобретения.[0037] FIG. 9 is a diagram illustrating the structure of an encoder according to an embodiment of the present invention.
[0038] Фиг. 10 представляет собой диаграмму, иллюстрирующую структуру декодера в соответствии с вариантом осуществления настоящего изобретения.[0038] FIG. 10 is a diagram illustrating the structure of a decoder according to an embodiment of the present invention.
[0039] Фиг. 11 представляет собой блок-схему последовательности операций, иллюстрирующую способ кодирования/декодирования в соответствии с вариантом осуществления настоящего изобретения.[0039] FIG. 11 is a flowchart illustrating an encoding/decoding method in accordance with an embodiment of the present invention.
[0040] Фиг. 12 представляет собой диаграмму, иллюстрирующую структуру кодера и декодера в соответствии с другим вариантом осуществления настоящего изобретения.[0040] FIG. 12 is a diagram illustrating the structure of an encoder and decoder in accordance with another embodiment of the present invention.
[0041] Фиг. 13 представляет собой диаграмму, иллюстрирующую список кандидатов в соответствии с вариантом осуществления настоящего изобретения.[0041] FIG. 13 is a diagram illustrating a list of candidates in accordance with an embodiment of the present invention.
[0042] Фиг. 14 представляет собой диаграмму, иллюстрирующую способ добавления информации движения в список кандидатов в соответствии с одним вариантом осуществления настоящего изобретения.[0042] FIG. 14 is a diagram illustrating a method for adding motion information to a candidate list in accordance with one embodiment of the present invention.
[0043] Фиг. 15 представляет собой другую диаграмму, иллюстрирующую способ добавления информации движения в список кандидатов в соответствии с одним вариантом осуществления настоящего изобретения.[0043] FIG. 15 is another diagram illustrating a method for adding motion information to a candidate list in accordance with one embodiment of the present invention.
[0044] Фиг. 16 представляет собой диаграмму, иллюстрирующую способ добавления информации движения в список кандидатов в соответствии с одним вариантом осуществления настоящего изобретения.[0044] FIG. 16 is a diagram illustrating a method for adding motion information to a candidate list in accordance with one embodiment of the present invention.
[0045] Фиг. 17-20 представляют собой диаграммы, иллюстрирующие структуру синтаксиса в соответствии с некоторыми вариантами осуществления настоящего изобретения.[0045] FIG. 17-20 are diagrams illustrating syntax structure in accordance with some embodiments of the present invention.
[0046] Фиг. 21 и 22 представляют собой диаграммы, иллюстрирующие блок-схемы последовательностей операций кодера и декодера для аппроксимации информации движения в соответствии с некоторыми вариантами осуществления настоящего изобретения.[0046] FIG. 21 and 22 are diagrams illustrating flowcharts of an encoder and decoder for approximating motion information in accordance with some embodiments of the present invention.
[0047] Фиг. 23 и 24 представляют собой диаграммы, иллюстрирующие структуру кодера и декодера для аппроксимации информации движения, в соответствии с некоторыми вариантами осуществления настоящего изобретения.[0047] FIG. 23 and 24 are diagrams illustrating the structure of an encoder and decoder for approximating motion information, in accordance with some embodiments of the present invention.
[0048] Фиг. 25 и 26 представляют собой диаграммы, иллюстрирующие способ вычисления потенциала списка кандидатов в соответствии с некоторыми вариантами осуществления настоящего изобретения.[0048] FIG. 25 and 26 are diagrams illustrating a method for calculating candidate list potential in accordance with some embodiments of the present invention.
[0049] Фиг. 27 и 28 представляют собой диаграммы, иллюстрирующие структуру кодера и декодера для вычисления потенциала списка кандидатов в соответствии с некоторыми вариантами осуществления настоящего изобретения.[0049] FIG. 27 and 28 are diagrams illustrating the structure of an encoder and decoder for computing candidate list potential in accordance with some embodiments of the present invention.
[0050] Фиг. 29 представляет собой диаграмму, иллюстрирующую структуру кодера и декодера для вычисления потенциала предсказания списка кандидатов в соответствии с некоторыми вариантами осуществления настоящего изобретения.[0050] FIG. 29 is a diagram illustrating the structure of an encoder and decoder for calculating candidate list prediction potential in accordance with some embodiments of the present invention.
[0051] Фиг. 30 представляет собой диаграмму, иллюстрирующую генерацию смешанного списка кандидатов в соответствии с вариантом осуществления настоящего изобретения.[0051] FIG. 30 is a diagram illustrating generation of a mixed candidate list in accordance with an embodiment of the present invention.
[0052] Фиг. 31 и 32 представляют собой диаграммы, иллюстрирующие способ инициализации списка кандидатов в соответствии с некоторыми вариантами осуществления настоящего изобретения.[0052] FIG. 31 and 32 are diagrams illustrating a method for initializing a candidate list in accordance with some embodiments of the present invention.
[0053] Фиг. 33 представляет собой диаграмму, иллюстрирующую масштабирование информации движения.[0053] FIG. 33 is a diagram illustrating scaling of motion information.
[0054] Фиг. 34 представляет собой диаграмму, иллюстрирующую масштабирование информации движения в соответствии с вариантом осуществления настоящего изобретения.[0054] FIG. 34 is a diagram illustrating scaling of motion information in accordance with an embodiment of the present invention.
[0055] Фиг. 35-39 представляют собой диаграммы, иллюстрирующие способ обновления и совместного использования списка кандидатов в соответствии с некоторыми вариантами осуществления настоящего изобретения.[0055] FIG. 35-39 are diagrams illustrating a method for updating and sharing a candidate list in accordance with some embodiments of the present invention.
[0056] Фиг. 40 представляет собой диаграмму, иллюстрирующую список кандидатов, составленный из одной UPU, и список кандидатов, составленный из множества UPU в соответствии с вариантом осуществления настоящего изобретения.[0056] FIG. 40 is a diagram illustrating a candidate list composed of one UPU and a candidate list composed of multiple UPUs in accordance with an embodiment of the present invention.
[0057] Фиг. 41 представляет собой блок-схему последовательности операций, иллюстрирующую способ декодирования в соответствии с вариантом осуществления настоящего изобретения.[0057] FIG. 41 is a flowchart illustrating a decoding method in accordance with an embodiment of the present invention.
[0058] Фиг. 42 представляет собой блок-схему последовательности операций, иллюстрирующую способ кодирования в соответствии с вариантом осуществления настоящего изобретения.[0058] FIG. 42 is a flowchart illustrating an encoding method in accordance with an embodiment of the present invention.
[0059] Фиг. 43 и 44 представляют собой диаграммы, иллюстрирующие кандидатов MPM.[0059] FIG. 43 and 44 are diagrams illustrating MPM candidates.
[0060] Фиг. 45 представляет собой диаграмму, иллюстрирующую пример выбора режима интра-предсказания.[0060] FIG. 45 is a diagram illustrating an example of intra-prediction mode selection.
[0061] Фиг. 46 представляет собой диаграмму, иллюстрирующую случай, когда режим интра-предсказания текущего блока не включен в список MPM.[0061] FIG. 46 is a diagram illustrating a case where the intra-prediction mode of the current block is not included in the MPM list.
[0062] Фиг. 47 представляет собой диаграмму, иллюстрирующую способ конфигурирования списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[0062] FIG. 47 is a diagram illustrating a method for configuring an intra-prediction mode list in accordance with an embodiment of the present invention.
[0063] Фиг. 48 представляет собой другую диаграмму, иллюстрирующую способ конфигурирования списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[0063] FIG. 48 is another diagram illustrating a method for configuring an intra-prediction mode list in accordance with an embodiment of the present invention.
[0064] Фиг. 49 иллюстрирует способ, иллюстрирующий основанный на счете список режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[0064] FIG. 49 illustrates a method illustrating a count-based list of intra-prediction modes in accordance with an embodiment of the present invention.
[0065] Фиг. 50 представляет собой диаграмму, иллюстрирующую способ конфигурирования основанного на затратах списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[0065] FIG. 50 is a diagram illustrating a method for configuring a cost-based intra-prediction mode list in accordance with an embodiment of the present invention.
[0066] Фиг. 51 и 52 представляют собой диаграммы, иллюстрирующие способ изменения индекса списка режимов интра-предсказания в соответствии с некоторыми вариантами осуществления настоящего изобретения.[0066] FIG. 51 and 52 are diagrams illustrating a method for changing an intra-prediction mode list index in accordance with some embodiments of the present invention.
[0067] Фиг. 53 и 54 представляют собой диаграммы, иллюстрирующие область, конфигурирующую список режимов интра-предсказания в соответствии с некоторыми вариантами осуществления настоящего изобретения.[0067] FIG. 53 and 54 are diagrams illustrating an area configuring an intra-prediction mode list in accordance with some embodiments of the present invention.
[0068] Фиг. 55 представляет собой диаграмму, иллюстрирующую способ конфигурирования списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[0068] FIG. 55 is a diagram illustrating a method for configuring an intra-prediction mode list in accordance with an embodiment of the present invention.
[0069] Фиг. 56-58 представляют собой диаграммы, иллюстрирующие способ распределения индекса режима интра-предсказания в соответствии с некоторыми вариантами осуществления настоящего изобретения.[0069] FIG. 56-58 are diagrams illustrating a method for allocating an intra-prediction mode index in accordance with some embodiments of the present invention.
[0070] Фиг. 59 представляет собой диаграмму, иллюстрирующую способ конфигурирования множества списков режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[0070] FIG. 59 is a diagram illustrating a method for configuring a plurality of intra-prediction mode lists in accordance with an embodiment of the present invention.
[0071] Фиг. 60 и 61 представляют собой диаграммы, иллюстрирующие способ конфигурирования множества списков режимов интра-предсказания с учетом направления режима предсказания в соответствии с вариантом осуществления настоящего изобретения.[0071] FIG. 60 and 61 are diagrams illustrating a method for configuring a plurality of intra-prediction mode lists in consideration of a prediction mode direction in accordance with an embodiment of the present invention.
[0072] Фиг. 62 представляет собой схему, иллюстрирующую структуру кодера и декодера для дополнения списка интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[0072] FIG. 62 is a diagram illustrating the structure of an encoder and decoder for intra-prediction list completion according to an embodiment of the present invention.
[0073] Фиг. 63 представляет собой диаграмму, иллюстрирующую способ дополнения списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[0073] FIG. 63 is a diagram illustrating a method for expanding a list of intra-prediction modes in accordance with an embodiment of the present invention.
[0074] Фиг. 64 представляет собой диаграмму, иллюстрирующую способ изменения порядка подстановки с учетом режима интра-предсказания соседнего блока в соответствии с вариантом осуществления настоящего изобретения.[0074] FIG. 64 is a diagram illustrating a method for changing the substitution order taking into account the intra-prediction mode of a neighboring block in accordance with an embodiment of the present invention.
[0075] Фиг. 65 представляет собой диаграмму, иллюстрирующую способ применения списка режимов интра-предсказания к режиму MPM в соответствии с одним вариантом осуществления настоящего изобретения. Фиг. 66 представляет собой диаграмму для описания способа применения списка режимов интра-предсказания к режиму не-MPM кодером в соответствии с вариантом осуществления настоящего изобретения.[0075] FIG. 65 is a diagram illustrating a method of applying a list of intra-prediction modes to an MPM mode in accordance with one embodiment of the present invention. Fig. 66 is a diagram for describing a method of applying an intra-prediction mode list to a non-MPM mode by an encoder in accordance with an embodiment of the present invention.
[0076] Фиг. 66 представляет собой диаграмму, иллюстрирующую способ применения списка режимов интра-предсказания к режиму не-MPM кодером в соответствии с вариантом осуществления настоящего изобретения.[0076] FIG. 66 is a diagram illustrating a method of applying an intra-prediction mode list to a non-MPM mode by an encoder in accordance with an embodiment of the present invention.
[0077] Фиг. 67 представляет собой диаграмму, иллюстрирующую способ применения списка режимов интра-предсказания к режиму не-MPM декодером в соответствии с вариантом осуществления настоящего изобретения.[0077] FIG. 67 is a diagram illustrating a method of applying an intra-prediction mode list to a non-MPM mode by a decoder according to an embodiment of the present invention.
[0078] Фиг. 68 представляет собой диаграмму, иллюстрирующую способ кодирования/декодирования изображения с использованием списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[0078] FIG. 68 is a diagram illustrating an image encoding/decoding method using an intra-prediction mode list according to an embodiment of the present invention.
[0079] Фиг. 69 представляет собой диаграмму, иллюстрирующую способ конфигурирования списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[0079] FIG. 69 is a diagram illustrating a method for configuring an intra-prediction mode list in accordance with an embodiment of the present invention.
[0080] Фиг. 70 и 71 представляют собой диаграммы, иллюстрирующие способ кодирования/декодирования в соответствии с некоторыми вариантами осуществления настоящего изобретения.[0080] FIG. 70 and 71 are diagrams illustrating an encoding/decoding method in accordance with some embodiments of the present invention.
[0081] Фиг. 72 представляет собой диаграмму, иллюстрирующую способ инициализации списка интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[0081] FIG. 72 is a diagram illustrating a method for initializing an intra-prediction list in accordance with an embodiment of the present invention.
[0082] Фиг. 73 представляет собой диаграмму, иллюстрирующую синтаксис списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[0082] FIG. 73 is a diagram illustrating the syntax of an intra-prediction mode list according to an embodiment of the present invention.
Наилучший режимBest mode
[0083] Множество модификаций может быть выполнено в настоящем изобретении, и имеются различные варианты осуществления настоящего изобретения, примеры которых будут представлены далее и подробно описаны со ссылками на чертежи. Однако настоящее изобретение не ограничено ими, хотя примерные варианты осуществления могут быть истолкованы как включающие все модификации, эквиваленты или замены в техническом принципе и техническом объеме настоящего изобретения. Сходные ссылочные позиции относятся к одинаковым или сходным функциям в различных аспектах. На чертежах, формы и размеры элементов могут быть преувеличены для ясности. В последующем подробном описании настоящего изобретения ссылки даются на приложенные чертежи, которые показывают, для иллюстрации, конкретные варианты осуществления, в которых может быть реализовано настоящее изобретение. Эти варианты осуществления описаны достаточно детально, чтобы позволить специалистам в данной области реализовать настоящее раскрытие. Должно быть понятно, что многочисленные варианты осуществления настоящего раскрытия, хотя и различные, не обязательно являются взаимно исключающими. Например, конкретные признаки, структуры и характеристики, описанные здесь в связи с одним вариантом осуществления, могут быть реализованы в другом варианте осуществления без отклонения от сущности и объема настоящего раскрытия. Кроме того, должно быть понятно, что местоположение или компоновка отдельных элементов в каждом раскрытом варианте осуществления может модифицироваться без отклонения от сущности и объема настоящего раскрытия. Поэтому последующее подробное описание не следует понимать в ограничивающем смысле, и объем настоящего раскрытия определяется только приложенными пунктами формулы изобретения, интерпретируемыми надлежащим образом, вместе с полным диапазоном эквивалентов того, что заявляется в пунктах формулы изобретения. [0083] Many modifications can be made to the present invention, and there are various embodiments of the present invention, examples of which will be presented below and described in detail with reference to the drawings. However, the present invention is not limited to them, although the exemplary embodiments may be construed as including all modifications, equivalents or substitutions in the technical principle and technical scope of the present invention. Like reference numerals refer to the same or similar functions in different aspects. In drawings, shapes and sizes of elements may be exaggerated for clarity. In the following detailed description of the present invention, reference is made to the accompanying drawings, which show, by way of illustration, specific embodiments in which the present invention may be implemented. These embodiments are described in sufficient detail to enable those skilled in the art to implement the present disclosure. It should be understood that the numerous embodiments of the present disclosure, although different, are not necessarily mutually exclusive. For example, specific features, structures, and characteristics described herein in connection with one embodiment may be implemented in another embodiment without departing from the spirit and scope of the present disclosure. Moreover, it should be understood that the location or arrangement of individual elements in each disclosed embodiment may be modified without departing from the spirit and scope of the present disclosure. Therefore, the following detailed description is not to be construed in a limiting sense, and the scope of the present disclosure is determined only by the appended claims, construed as appropriate, together with the full range of equivalents of what is claimed in the claims.
[0084] Используемые в описании термины ‘первый’, ‘второй’ и т.д. могут использоваться для описания различных компонентов, но компоненты не должны подразумеваться ограниченными этими терминами. Эти термины используются только для различения одного компонента от других компонентов. Например, ‘первый’ компонент может именоваться ‘вторым’ компонентом без отклонения от объема настоящего изобретения, и ‘второй’ компонент может также аналогичным образом именоваться ‘первым’ компонентом. Термин ‘и/или’ включает в себя комбинацию множества элементов или любой один из множества членов.[0084] The terms 'first', 'second', etc. used in the description. may be used to describe various components, but the components should not be implied to be limited by these terms. These terms are used only to distinguish one component from other components. For example, the 'first' component may be referred to as the 'second' component without departing from the scope of the present invention, and the 'second' component may also likewise be referred to as the 'first' component. The term 'and/or' includes a combination of a plurality of elements or any one of a plurality of elements.
[0085] Следует понимать, что когда элемент просто упоминается как ‘соединенный с’ или ‘связанный с’ другим элементом, не будучи ‘непосредственно соединенным с’ или ‘непосредственно связанным с’ другим элементом в настоящем описании, он может быть ‘непосредственно соединенным с’ или ‘непосредственно связанным с’ с другим элементом или быть соединенным или связанным с другим элементом, имея другой элемент, промежуточный между ними. Напротив, следует понимать, что когда элемент упоминается как “непосредственно связанный” или “непосредственно соединенный” с другим элементом, то не имеется промежуточных элементов.[0085] It should be understood that when an element is simply referred to as being 'connected to' or 'associated with' another element, without being 'directly connected to' or 'directly associated with' the other element in the present specification, it may be 'directly connected to' ' or 'directly associated with' with another element or to be connected or associated with another element, having another element intermediate between them. On the contrary, it should be understood that when an element is referred to as “directly connected” or “directly connected” to another element, there are no intermediate elements.
[0086] Кроме того, составные части, показанные в вариантах осуществления настоящего изобретения, показаны независимо, чтобы представлять характерные функции, отличающиеся друг от друга. Таким образом, это не означает, что каждая составная часть содержится в составном блоке отдельного аппаратного средства или программного обеспечения. Иными словами, каждая составная часть включает в себя каждую из пронумерованных составных частей, для удобства. Таким образом, по меньшей мере две составные части каждой составной части могут объединяться, чтобы образовывать одну составную часть, или одна составная часть может быть разделена на множество составных частей, чтобы выполнять каждую функцию. Вариант осуществления, где каждая составная часть объединена, и вариант осуществления, где одна составная часть разделена, также включены в объем настоящего изобретения, если это не приводит к отклонению от сущности настоящего изобретения.[0086] In addition, the component parts shown in the embodiments of the present invention are shown independently to represent characteristic functions different from each other. Thus, this does not mean that each component part is contained in a separate hardware or software building block. That is, each component includes each of the numbered components for convenience. Thus, at least two component parts of each component part may be combined to form one component part, or one component part may be divided into multiple component parts to perform each function. An embodiment where each component part is combined and an embodiment where one component part is separated are also included within the scope of the present invention unless this leads to a departure from the spirit of the present invention.
[0087] Термины, используемые в настоящем описании, используются просто для описания конкретных вариантов осуществления и не подразумевают ограничения настоящего изобретения. Выражение, использованное в единственном числе, включает в себя выражение во множественном числе, если только это не имеет явно отличающегося значения в контексте. В настоящем описании, следует понимать, что такие термины, как “включающий в себя”, “имеющий” и т.д., предназначены, чтобы указывать наличие признаков, количеств, этапов, действий, элементов, частей или их комбинаций, раскрытых в описании, не должны исключать возможность того, один или более других признаков, количеств, этапов, действий, элементов, частей или их комбинаций могут существовать или могут добавляться. Иными словами, когда конкретный элемент упоминается как “включенный”, элементы иные, чем соответствующий элемент, не исключаются, но дополнительные элементы могут быть включены в варианты осуществления настоящего изобретения или объем настоящего изобретения.[0087] The terms used in this description are used simply to describe specific embodiments and are not intended to limit the present invention. An expression used in the singular includes an expression in the plural unless it has a clearly different meaning in the context. As used herein, it should be understood that terms such as “including,” “having,” etc. are intended to indicate the presence of the features, quantities, steps, acts, elements, parts, or combinations thereof disclosed in the specification shall not exclude the possibility that one or more other features, quantities, steps, actions, elements, parts or combinations thereof may exist or be added. In other words, when a particular element is referred to as “included,” elements other than the corresponding element are not excluded, but additional elements may be included within embodiments of the present invention or the scope of the present invention.
[0088] Кроме того, некоторые из компонентов могут не являться необходимыми компонентами, выполняющими существенные функции настоящего изобретения, а являются конкретными компонентами, лишь улучшающими его рабочие характеристики. Настоящее изобретение может быть реализовано путем включения в него только необходимых составных частей для реализации сущности настоящего изобретения, исключая компоненты, используемые для улучшения рабочих характеристик. Структура, включающая в себя только необходимые компоненты, исключая конкретные компоненты, используемые только для улучшения рабочих характеристик, также включена в объем настоящего изобретения. [0088] In addition, some of the components may not be necessary components that perform the essential functions of the present invention, but are specific components that merely enhance its performance. 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 performance. A structure including only the necessary components, excluding specific components used only to improve performance, is also included within the scope of the present invention.
[0089] Далее, варианты осуществления настоящего изобретения будут описаны подробно со ссылками на приложенные чертежи. При описании примерных вариантов осуществления настоящего изобретения, хорошо известные функции или конструкции не будут подробно описываться, поскольку они могли бы ненужным образом усложнить понимание настоящего изобретения. Одинаковые компоненты на чертежах обозначены теми же самыми ссылочными позициями, и повторное описание одних и тех же элементов будет опущено. [0089] Next, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In describing exemplary embodiments of the present invention, well-known functions or structures will not be described in detail since they might unnecessarily complicate the understanding of the present invention. Like components in the drawings are designated by the same reference numerals, and repeated description of the same elements will be omitted.
[0090] Далее, изображение может означать картинку, конфигурирующую видео, или может означать само видео. Например, “кодирование или декодирование, или оба из них, изображения” может означать “кодирование или декодирование, или оба из них, движущейся картинки” и может означать “кодирование или декодирование, или оба из них, одного изображения среди изображений движущейся картинки”. [0090] Further, the image may refer to a picture configuring the video, or may refer to the video itself. For example, “encoding or decoding, or both, of a picture” may mean “encoding or decoding, or both, of a moving picture” and may mean “encoding or decoding, or both of them, one image among the pictures of a moving picture.”
[0091] Далее, термины “движущаяся картинка” и “видео” могут использоваться как имеющие одно и то же значение и могут заменять друг друга.[0091] Further, the terms “moving picture” and “video” may be used to have the same meaning and may be used interchangeably.
[0092] Далее, целевое изображение может быть целевым изображением кодирования, которое является целью кодирования, и/или целевым изображением декодирования, которое является целью декодирования. Также, целевое изображение может быть входным изображением, введенным в устройство кодирования, и входным изображением, введенным в устройство декодирования. Здесь, целевое изображение может иметь то же самое значение, что и текущее изображение.[0092] Further, the target image may be an encoding target image, which is an encoding target, and/or a decoding target image, which is a decoding target. Also, the target image may be an input image input to the encoding device and an input image input to the decoding device. Here, the target image can have the same value as the current image.
[0093] Далее, термины “изображение”, “картинка”, “кадр” и “экран” могут использоваться как имеющие то же самое значение и заменять друг друга.[0093] Further, the terms “image”, “picture”, “frame” and “screen” can be used to have the same meaning and replace each other.
[0094] Далее, целевой блок может представлять собой целевой блок кодирования, который является целью кодирования, и/или целевой блок декодирования, который является целью декодирования. Также целевой блок может представлять собой текущий блок, который является целью текущего кодирования и/или декодирования. Например, термины “целевой блок” и “текущий блок” могут использоваться как имеющие то же самое значение и заменять друг друга.[0094] Further, the target block may be an encoding target block, which is an encoding target, and/or a decoding target block, which is a decoding target. Also, the target block may be a current block that is the target of the current encoding and/or decoding. For example, the terms “target block” and “current block” can be used to have the same meaning and replace each other.
[0095] Далее, термины “блок” и “единица” могут использоваться как имеющие то же самое значение и заменять друг друга. Или “блок” может представлять конкретную единицу.[0095] Further, the terms “block” and “unit” can be used to have the same meaning and replace each other. Or a “block” may represent a specific unit.
[0096] Далее, термины “область” и “сегмент” могут заменять друг друга.[0096] Further, the terms “region” and “segment” can be used interchangeably.
[0097] Далее, конкретный сигнал может быть сигналом, представляющим конкретный блок. Например, исходный сигнал может быть сигналом, представляющим целевой блок. Сигнал предсказания может быть сигналом, представляющим блок предсказания. Остаточный сигнал может быть сигналом, представляющим остаточный блок.[0097] Further, the specific signal may be a signal representing a specific block. For example, the source signal may be a signal representing a target block. The prediction signal may be a signal representing a prediction block. The residual signal may be a signal representing a residual block.
[0098] В вариантах осуществления, каждое из конкретной информации, данных, флага, индекса, элемента и атрибута и т.д. может иметь значение. Значение информации, данных, флага, индекса, элемента и атрибута, равное “0”, может представлять логическое “ложно” или первое предопределенное значение. Иными словами, значение “0”, “ложно”, логическое “ложно” и первое предопределенное значение могут быть взаимозаменяемыми. Значение информации, данных, флага, индекса, элемента и атрибута, равное “1”, может представлять логическое “истинно” или второе предопределенное значение. Иными словами, значение “1”, “истинно”, логическое “истинно” и второе предопределенное значение могут быть взаимозаменяемыми. [0098] In embodiments, each of specific information, data, flag, index, element and attribute, etc. may matter. An information, data, flag, index, element, and attribute value of “0” may represent a logical “false” or the first predefined value. In other words, the value "0", "false", Boolean "false", and the first predefined value can be used interchangeably. An information, data, flag, index, element, and attribute value of “1” can represent a logical “true” or a second predefined value. In other words, the value "1", "true", logical "true", and the second predefined value can be used interchangeably.
[0099] Когда переменная i или j используется для представления столбца, строки или индекса, значение i может быть целым числом равным или большим, чем 0, или равным или большим, чем 1. То есть, столбец, строка, индекс и т.д. могут отсчитываться от 0 или могут отсчитываться от 1.[0099] When a variable i or j is used to represent a column, row, or index, the value of i may be an integer equal to or greater than 0, or equal to or greater than 1. That is, column, row, index, etc. . can be counted from 0 or can be counted from 1.
[00100] [00100]
[00101] Описание терминов[00101] Description of terms
[00102] Кодер: означает устройство, выполняющее кодирование. То есть, означает устройство кодирования.[00102] Encoder: means a device that performs encoding. That is, it means an encoding device.
[00103] Декодер: означает устройство, выполняющее декодирование. То есть, означает устройство декодирования.[00103] Decoder: means a device that performs decoding. That is, it means a decoding device.
[00104] Блок: представляет собой M×N массив выборки. Здесь, M и N могут означать положительные целые числа, и блок может означать массив выборки двумерной формы. Блок может относиться к единице. Текущий блок может означать целевой блок кодирования, который становится целью при кодировании, или целевой блок декодирования, который становится целью при декодировании. Кроме того, текущий блок может быть по меньшей мере одним из блока кодирования, блока предсказания, остаточного блока и блока преобразования.[00104] Block: is an M×N sample array. Here, M and N can mean positive integers, and block can mean a two-dimensional shaped sampling array. A block can refer to a unit. The current block can mean an encoding target block, which becomes a target when encoding, or a decoding target block, which becomes a target when decoding. In addition, the current block may be at least one of an encoding block, a prediction block, a residual block, and a transform block.
[00105] Выборка: представляет собой базовую единицу, образующую блок. Она может быть выражена как значение от 0 до 2Bd-1 в соответствии с битовой глубиной (Bd). В настоящем изобретении, выборка может использоваться как обозначение пиксела. То есть, выборка, элемент изображения, пиксел могут иметь то же самое значение.[00105] Sample: represents the basic unit that forms a block. It can be expressed as a value from 0 to 2Bd-1 according to the bit depth (Bd). In the present invention, a sample can be used to designate a pixel. That is, a sample, an image element, a pixel can have the same meaning.
[00106] Единица: может относиться к единице кодирования и декодирования. При кодировании и декодировании изображения, единица может представлять собой область, генерируемую разбиением одного изображения. Кроме того, единица может означать подразделенную единицу, когда одно изображение разбивается на подразделенные единицы во время кодирования или декодирования. То есть, изображение может разбиваться на множество единиц. При кодировании и декодировании изображения, предопределенный процесс может выполняться для каждой единицы. Одна единица может разбиваться на под-единицы, которые имеют размеры меньше, чем размер единицы. В зависимости от функций, единица может означать блок, макроблок, единицу дерева кодирования, блок дерева кодирования, единицу кодирования, блок кодирования, единицу предсказания, блок предсказания, остаточную единицу, остаточный блок, единицу преобразования, блок преобразования и т.д. Кроме того, чтобы различать единицу от блока, единица может включать блок компонента яркости, блок компонента цветности, ассоциированный с блоком компонента яркости, и синтаксический элемент каждого блока цветового компонента. Единица может иметь различные размеры и формы, в частности, форма единицы может быть двумерной геометрической фигурой, такой как квадратная форма, прямоугольная форма, трапецеидальная форма, треугольная форма, пятиугольная форма и т.д. Кроме того, информация единицы может включать по меньшей мере одно из типа единицы, указывающего единицу кодирования, единицу предсказания, единицу преобразования и т.д., и размера единицы, глубины единицы, последовательности кодирования и декодирования единицы и т.д.[00106] Unit: May refer to a unit of encoding and decoding. When encoding and decoding an image, a unit may be an area generated by dividing a single image. In addition, a unit can mean a subdivided unit, where one image is divided into subdivided units during encoding or decoding. That is, the image can be divided into many units. When encoding and decoding an image, a predefined process may be performed for each unit. One unit can be divided into sub-units that are smaller than the unit size. Depending on the functions, a unit may mean a block, a macroblock, a coding tree unit, a coding tree block, a coding unit, a coding block, a prediction unit, a prediction block, a residual unit, a residual block, a transform unit, a transform block, etc. In addition, to distinguish a unit from a block, the unit may include a luma component block, a chroma component block associated with the luma component block, and a syntax element of each color component block. The unit may have various sizes and shapes, in particular, the shape of the unit may be a two-dimensional geometric shape such as a square shape, a rectangular shape, a trapezoidal shape, a triangular shape, a pentagonal shape, etc. In addition, the unit information may include at least one of a unit type indicating a coding unit, a prediction unit, a transformation unit, etc., and a unit size, a unit depth, a unit encoding and decoding sequence, etc.
[00107] Единица дерева кодирования: конфигурируется с одним блоком дерева кодирования компонента яркости Y и двумя блоками дерева кодирования, относящимися к компонентам цветности Cb и Cr. Кроме того, это может означать, что включаются блоки и синтаксический элемент каждого блока. Каждая единица дерева кодирования может быть подразделена с использованием по меньшей мере одного из способа разбиения квадродерева, способа разбиения двоичного дерева и способа разбиения троичного дерева, чтобы конфигурировать более низкую единицу, такую как единица кодирования, единица предсказания, единица преобразования и т.д. Это может использоваться как термин для обозначения блока выборки, который становится единицей обработки при кодировании/декодировании изображения в качестве входного изображения. Здесь, квадродерево может означать квартернарное дерево.[00107] Coding tree unit: configured with one coding tree block of the Y luma component and two coding tree blocks related to the Cb and Cr chrominance components. It may also mean that blocks and the syntax element of each block are included. Each coding tree unit may be subdivided using at least one of a quadtree splitting method, a binary tree splitting method, and a ternary tree splitting method to configure a lower unit such as a coding unit, a prediction unit, a transformation unit, etc. This can be used as a term for a sample block that becomes a processing unit when encoding/decoding an image as an input image. Here, quadtree can mean quaternary tree.
[00108] Когда размер блока кодирования находится в пределах предопределенного диапазона, деление возможно с использованием только разбиения квадродерева. Здесь, предопределенный диапазон может быть определен как по меньшей мере одно из максимального размера и минимального размера блока кодирования, в котором разделение возможно с использованием только разбиения квадродерева. Информация, указывающая максимальный/минимальный размер блока кодирования, в котором разрешено разбиение квадродерева, может сигнализироваться битовым потоком, и информация может сигнализироваться в по меньшей мере одной единице последовательности, параметре картинки, группе мозаичных элементов или слайсе (сегменте). Альтернативно, максимальный/минимальный размер блока кодирования может быть фиксированным размером, предварительно определенным в кодере/декодере. Например, когда размер блока кодирования соответствует от 256×256 до 64×64, разделение возможно только с использованием разбиения квадродерева. Альтернативно, когда размер блока кодирования больше, чем размер максимального блока преобразования, разделение возможно только с использованием разбиения квадродерева. Здесь, блок, подлежащий разделению, может быть по меньшей мере одним из блока кодирования и блока преобразования. В этом случае, информация, указывающая разделение кодированного блока (например, split_flag) может представлять собой флаг, указывающий, следует ли или нет выполнять разбиение квадродерева. Когда размер блока кодирования попадает в предопределенный диапазон, разделение возможно только с использованием разбиения двоичного дерева или троичного дерева. В этом случае, приведенное выше описание разбиения квадродерева может применяться к разбиению двоичного дерева или разбиению троичного дерева одинаковым образом. [00108] When the encoding block size is within a predetermined range, division is possible using only quadtree partitioning. Here, a predetermined range may be defined as at least one of a maximum size and a minimum encoding block size in which division is possible using only quadtree partitioning. Information indicating the maximum/minimum size of a coding block in which quadtree partitioning is enabled may be signaled by the bitstream, and the information may be signaled in at least one sequence unit, picture parameter, tile group, or slice. Alternatively, the maximum/minimum encoding block size may be a fixed size predefined in the encoder/decoder. For example, when the encoding block size corresponds to 256×256 to 64×64, division is only possible using quadtree partitioning. Alternatively, when the encoding block size is larger than the maximum transform block size, partitioning is only possible using quadtree partitioning. Here, the block to be divided may be at least one of an encoding block and a transform block. In this case, the information indicating splitting of the coded block (eg, split_flag) may be a flag indicating whether or not to perform quadtree splitting. When the encoding block size falls within a predefined range, partitioning is only possible using binary tree or ternary tree partitioning. In this case, the above description of quadtree partitioning can be applied to binary tree partitioning or ternary tree partitioning in the same way.
[00109] Блок дерева кодирования: может быть использован как термин для обозначения любого одного из Y блока дерева кодирования, Cb блока дерева кодирования и Cr блока дерева кодирования.[00109] Coding tree block: may be used as a term to refer to any one of a Y coding tree block, a Cb coding tree block, and a Cr coding tree block.
[00110] Соседний блок: может означать блок, смежный с текущим блоком. Блок, смежный с текущим блоком, может означать блок, который контактирует с границей текущего блока, или блок, позиционированный в пределах предопределенного расстояния от текущего блока. Соседний блок может означать блок, смежный с вершиной текущего блока. Здесь, блок, смежный с вершиной текущего блока, может означать блок, вертикально смежный с соседним блоком, который является горизонтально смежным с текущим блоком, или блок, горизонтально смежный с соседним блоком, который является вертикально смежным с текущим блоком.[00110] Adjacent block: may mean a block adjacent to the current block. A block adjacent to the current block may mean a block that is in contact with the boundary of the current block, or a block positioned within a predetermined distance from the current block. Adjacent block can mean a block adjacent to the top of the current block. Here, a block adjacent to the top of the current block may mean a block vertically adjacent to an adjacent block that is horizontally adjacent to the current block, or a block horizontally adjacent to an adjacent block that is vertically adjacent to the current block.
[00111] Восстановленный соседний блок: может означать соседний блок, смежный с текущим блоком и который уже был пространственно/по времени кодирован или декодирован. Здесь, восстановленный соседний блок может означать восстановленную соседнюю единицу. Восстановленный пространственный соседний блок может быть блоком в пределах текущей картинки и уже восстановлен посредством кодирования или декодирования или обоих из них. Восстановленный временной соседний блок представляет собой блок в соответствующем положении как у текущего блока текущей картинки в пределах опорного изображения или его соседнего блока.[00111] Recovered neighboring block: may mean a neighboring block adjacent to the current block and which has already been spatially/temporally encoded or decoded. Here, a restored neighbor block may mean a restored neighbor unit. The reconstructed spatial neighbor block may be a block within the current picture and has already been recovered through encoding or decoding or both. The reconstructed temporary neighboring block is a block in the corresponding position as the current block of the current picture within the reference image or its neighboring block.
[00112] Глубина единицы: может означать степень разбиения единицы. В древовидной структуре, наивысший узел (корневой узел) может соответствовать первой единице, которая не разделена. Также, наивысший узел может иметь наименьшее значение глубины. В этом случае, наивысший узел может иметь глубину уровня 0. Узел, имеющий глубину уровня 1, может представлять единицу, генерируемую путем разбиения первой единицы однократно. Узел, имеющий глубину уровня 2, может представлять единицу, генерируемую путем разбиения первой единицы дважды. Узел, имеющий глубину уровня n, может представлять единицу, генерируемую путем разбиения первой единицы n раз. Листовой узел может быть самым низким узлом и узлом, который не может далее разделяться. Глубина листового узла может соответствовать максимальному уровню. Например, предопределенное значение максимального уровня может быть равно 3. Глубина корневого узла может быть самой низкой, а глубина листового узла может быть самой глубокой. Кроме того, когда единица выражена как древовидная структура, уровень, в котором присутствует единица, может означать глубину единицы. [00112] Unit depth: may refer to the degree to which a unit is subdivided. In a tree structure, the highest node (root node) may correspond to the first unit that is not split. Also, the highest node may have the smallest depth value. In this case, the highest node may have a depth of level 0. A node having a depth of level 1 may represent a unit generated by splitting the first unit once. A node having a depth of level 2 can represent a unit generated by splitting the first unit twice. A node having level depth n can represent a unit generated by splitting the first unit n times. A leaf node can be the lowest node and a node that cannot split further. The depth of the leaf node can correspond to the maximum level. For example, the predefined maximum level value could be 3. The root node depth could be the lowest, and the leaf node depth could be the deepest. Additionally, when a unit is expressed as a tree structure, the level at which the unit is present can indicate the depth of the unit.
[00113] Битовый поток: может означать битовый поток, включающий в себя информацию кодирования изображения.[00113] Bitstream: may mean a bitstream including image encoding information.
[00114] Набор параметров: соответствует информации заголовка среди конфигурации в битовом потоке. По меньшей мере один из набора параметров видео, набора параметров последовательности, набора параметров картинки и набора параметров адаптации может быть включен в набор параметров. Кроме того, набор параметров может включать в себя заголовок слайса, заголовок группы мозаичных элементов и информацию заголовка мозаичного элемента. Термин “группа мозаичных элементов” означает группу мозаичных элементов и имеет то же самое значение, что и слайс.[00114] Parameter set: corresponds to the header information among the configuration in the bitstream. At least one of a video parameter set, a sequence parameter set, a picture parameter set, and an adaptation parameter set may be included in the parameter set. In addition, the set of parameters may include a slice header, a tile group header, and tile header information. The term “tile group” means a group of tiles and has the same meaning as a slice.
[00115] Синтаксический анализ: может означать определение значения синтаксического элемента путем выполнения энтропийного декодирования или может означать само энтропийное декодирование. [00115] Parsing: can mean determining the meaning of a syntactic element by performing entropy decoding, or can mean entropy decoding itself.
[00116] Символ: может означать по меньшей мере одно из синтаксического элемента, параметра кодирования и значения коэффициента преобразования целевой единицы кодирования/ декодирования. Кроме того, символ может означать цель энтропийного кодирования или результат энтропийного декодирования.[00116] Symbol: may represent at least one of a syntax element, an encoding parameter, and a conversion factor value of the target encoding/decoding unit. In addition, the symbol can indicate the target of entropy encoding or the result of entropy decoding.
[00117] Режим предсказания: может быть информацией, указывающей режим, кодированный/декодированный с интра-предсказанием, или режим, кодированный/декодированный с интер-предсказанием. [00117] Prediction mode: may be information indicating an intra-prediction encoded/decoded mode or an inter-prediction encoded/decoded mode.
[00118] Единица предсказания: может означать базовую единицу при выполнении предсказания, такого как интер-предсказание, интра-предсказание, интер- (взаимная) компенсация, интра- (внутренняя) компенсация и компенсация движения. Одна единица предсказания может разбиваться во множество разбиений, имеющих меньшие размеры, или может разбиваться на множество более низких единиц предсказания. Множество разбиений может представлять собой базовую единицу при выполнении предсказания или компенсации. Разбиение, которое генерируется путем разделения единицы предсказания, может также представлять собой единицу предсказания.[00118] Prediction unit: may mean a basic unit when performing prediction such as inter-prediction, intra-prediction, inter-(mutual) compensation, intra-(internal) compensation and motion compensation. One prediction unit may be split into multiple splits having smaller dimensions, or may be split into multiple smaller prediction units. A plurality of partitions may represent the basic unit when performing prediction or compensation. A partition that is generated by dividing a prediction unit may also be a prediction unit.
[00119] Разбиение единицы предсказания: может означать форму, полученную путем разбиения единицы предсказания.[00119] Prediction unit split: may refer to a shape obtained by splitting a prediction unit.
[00120] Список опорных картинок может относиться к списку, включающему в себя одну или более опорных картинок, используемых для интер-предсказания или компенсации движения. Имеется несколько типов используемых списков опорных картинок, включая LC (объединенный список), L0 (список 0), L1 (список 1), L2 (список 2), L3 (список 3).[00120] A reference picture list may refer to a list including one or more reference pictures used for inter-prediction or motion compensation. There are several types of reference picture lists used, including LC (List Concatenated), L0 (List 0), L1 (List 1), L2 (List 2), L3 (List 3).
[00121] Указатель интер-предсказания может относиться к направлению интер-предсказания (однонаправленное предсказание, двунаправленное предсказание и т.д.) текущего блока. Альтернативно, он может относиться к числу опорных картинок, используемых для генерации блока предсказания текущего блока. Альтернативно, он может относиться к числу блоков предсказания, используемых во время выполнения интер-предсказания или компенсации движения над текущим блоком.[00121] The inter-prediction indicator may refer to the inter-prediction direction (unidirectional prediction, bidirectional prediction, etc.) of the current block. Alternatively, it may refer to the number of reference pictures used to generate the prediction block of the current block. Alternatively, it may refer to the number of prediction blocks used while performing inter-prediction or motion compensation on the current block.
[00122] Флаг использования списка предсказания указывает, генерируется ли блок предсказания с использованием по меньшей мере одной опорной картинки в конкретном списке опорных картинок. Указатель интер-предсказания может быть выведен с использованием флага использования списка предсказания, и наоборот, флаг использования списка предсказания может быть выведен с использованием указателя интер-предсказания. Например, когда флаг использования списка предсказания имеет первое значение, равное нулю (0), это означает, что опорная картинка в списке опорных картинок не используется для генерации блока предсказания. С другой стороны, когда флаг использования списка предсказания имеет второе значение, равное единице (1), это означает, что список опорных картинок используется для генерирования блока предсказания.[00122] The prediction list use flag indicates whether a prediction block is generated using at least one reference picture in a particular reference picture list. An inter-prediction indicator may be output using a prediction list use flag, and conversely, a prediction list use flag may be output using an inter-prediction indicator. For example, when the prediction list use flag has a first value of zero (0), it means that a reference picture in the reference picture list is not used to generate a prediction block. On the other hand, when the prediction list use flag has a second value of one (1), it means that the reference picture list is used to generate the prediction block.
[00123] Индекс опорной картинки может относиться к индексу, указывающему конкретную опорную картинку в списке опорных картинок.[00123] The reference picture index may refer to an index indicating a specific reference picture in the list of reference pictures.
[00124] Опорная картинка может означать опорную картинку, на которую ссылается конкретный блок для целей интер-предсказания или компенсации движения конкретного блока. Альтернативно, опорная картинка может представлять собой картинку, включающую в себя опорный блок, на который ссылается текущий блок для интер-предсказания или компенсации движения. Далее, термины “опорная картинка” и “опорное изображение” имеют то же самое значение и могут использоваться взаимозаменяемым образом.[00124] A reference picture may refer to a reference picture that is referenced by a particular block for the purposes of inter-prediction or motion compensation of the particular block. Alternatively, the reference picture may be a picture including a reference block referenced by the current block for inter-prediction or motion compensation. Further, the terms “reference picture” and “reference image” have the same meaning and can be used interchangeably.
[00125] Вектор движения может представлять собой двумерный вектор, используемый для интер-предсказания или компенсации движения. Вектор движения может означать смещение между целевым блоком кодирования/декодирования и опорным блоком. Например, (mvX, mvY) может представлять вектор движения. Здесь, mvX может представлять горизонтальный компонент, и mvY может представлять вертикальный компонент.[00125] The motion vector may be a two-dimensional vector used for inter-prediction or motion compensation. The motion vector may indicate an offset between a target encoding/decoding block and a reference block. For example, (mvX, mvY) can represent a motion vector. Here, mvX may represent a horizontal component, and mvY may represent a vertical component.
[00126] Диапазон поиска может представлять собой двумерную область, в которой осуществляется поиск, чтобы извлечь вектор движения во время интер-предсказания. Например, размер диапазона поиска может быть M×N. Здесь, M и N оба являются целыми числами.[00126] The search range may be a two-dimensional region in which a search is performed to extract a motion vector during inter-prediction. For example, the size of the search range may be M×N. Here, M and N are both integers.
[00127] Кандидат вектора движения может относиться к блоку кандидата предсказания или вектору движения блока кандидата предсказания при предсказании вектора движения. Кроме того, кандидат вектора движения может быть включен в список кандидатов вектора движения.[00127] The motion vector candidate may refer to a prediction candidate block or a motion vector of a prediction candidate block when predicting a motion vector. In addition, the motion vector candidate may be included in the motion vector candidate list.
[00128] Список кандидатов вектора движения может означать список, составленный из одного или более кандидатов вектора движения.[00128] A motion vector candidate list may mean a list composed of one or more motion vector candidates.
[00129] Индекс кандидата вектора движения может означать указатель, указывающий кандидата вектора движения в списке кандидатов вектора движения. Альтернативно, он может представлять собой индекс предсказателя вектора движения.[00129] The motion vector candidate index may mean an index indicating the motion vector candidate in the motion vector candidate list. Alternatively, it may be a motion vector predictor index.
[00130] Информация движения может означать информацию, включающую в себя по меньшей мере один из элементов, включая вектор движения, индекс опорной картинки, указатель интер-предсказания, флаг использования списка предсказания, информацию списка опорных картинок, опорную картинку, кандидат вектора движения, индекс кандидата вектора движения, кандидат слияния и индекс слияния.[00130] Motion information may mean information including at least one of a motion vector, a reference picture index, an inter-prediction indicator, a prediction list use flag, reference picture list information, a reference picture, a motion vector candidate, an index motion vector candidate, fusion candidate and fusion index.
[00131] Список кандидатов слияния может означать список, составленный из одного или более кандидатов слияния.[00131] A merge candidate list may refer to a list composed of one or more merge candidates.
[00132] Кандидат слияния может означать пространственный кандидат слияния, временной кандидат слияния, объединенный кандидат слияния, объединенный би-предиктивный кандидат слияния, или нулевой кандидат слияния. Кандидат слияния может включать информацию движения, такую как указатель интер-предсказания, индекс опорной картинки для каждого списка, вектор движения, флаг использования списка предсказания и указатель интер-предсказания.[00132] A merge candidate may mean a spatial merge candidate, a temporal merge candidate, a pooled merge candidate, a pooled bi-predictive merge candidate, or a null merge candidate. The fusion candidate may include motion information such as an inter-prediction indicator, a reference picture index for each list, a motion vector, a prediction list usage flag, and an inter-prediction indicator.
[00133] Индекс слияния может означать указатель, указывающий кандидата слияния в списке кандидатов слияния. Альтернативно, индекс слияния может указывать блок, из которого был выведен кандидат слияния, среди восстановленных блоков пространственно/по времени смежных с текущим блоком. Альтернативно, индекс слияния может указывать по меньшей мере одну часть информации движения кандидата слияния.[00133] A merge index may mean a pointer indicating a merge candidate in a list of merge candidates. Alternatively, the merge index may indicate the block from which the merge candidate was derived among reconstructed blocks spatially/temporally adjacent to the current block. Alternatively, the merger index may indicate at least one piece of merger candidate traffic information.
[00134] Единица преобразования: может означать базовую единицу при выполнении кодирования/декодирования, такого как преобразование, обратное преобразование, квантование, деквантование, кодирование/декодирование коэффициентов преобразования остаточного сигнала. Одна единица преобразования может разбиваться на множество единиц преобразования более низкого уровня, имеющих меньший размер. Здесь, преобразование/обратное преобразование может содержать по меньшей мере одно из первого преобразования/первого обратного преобразования и второго преобразования/второго обратного преобразования.[00134] Transformation unit: may mean a basic unit when performing encoding/decoding, such as transforming, inverse transforming, quantizing, dequantizing, encoding/decoding of residual signal transform coefficients. One conversion unit can be broken down into many lower level conversion units of smaller size. Here, the transform/inverse transform may comprise at least one of a first transform/first inverse transform and a second transform/second inverse transform.
[00135] Масштабирование: может означать процесс умножения квантованного уровня на коэффициент. Коэффициент преобразования может генерироваться путем масштабирования квантованного уровня. Масштабирование может также упоминаться как деквантование.[00135] Scaling: may refer to the process of multiplying the quantized level by a factor. The conversion factor can be generated by scaling the quantized level. Scaling may also be referred to as dequantization.
[00136] Параметр квантования: может означать значение, используемое при генерировании квантованного уровня с использованием коэффициента преобразования при квантовании. Параметр квантования также может означать значение, используемое при генерировании коэффициента преобразования путем масштабирования квантованного уровня при деквантовании. Параметр квантования может представлять собой значение, отображаемое на размер шага квантования.[00136] Quantization parameter: may mean a value used when generating a quantized level using a quantization conversion factor. The quantization parameter can also mean the value used in generating the conversion factor by scaling the quantized level during dequantization. The quantization parameter may be a value mapped to a quantization step size.
[00137] Дельта-параметр квантования: может означать разностное значение между предсказанным параметром квантования и параметром квантования целевой единицы кодирования/ декодирования.[00137] Delta quantization parameter: may mean the difference value between the predicted quantization parameter and the quantization parameter of the target encoding/decoding unit.
[00138] Сканирование: может означать способ упорядочения коэффициентов в пределах единицы, блока или матрицы. Например, переход от двумерной матрицы коэффициентов к одномерной матрице может упоминаться как сканирование, и переход от одномерной матрицы коэффициентов к двумерной матрице может упоминаться как сканирование или обратное сканирование.[00138] Scan: may refer to a method of ordering coefficients within a unit, block, or matrix. For example, the transition from a two-dimensional coefficient matrix to a one-dimensional matrix may be referred to as a scan, and the transition from a one-dimensional coefficient matrix to a two-dimensional matrix may be referred to as a scan or reverse scan.
[00139] Коэффициент преобразования: может означать значение коэффициента, генерируемое после выполнения преобразования в кодере. Он может означать значение коэффициента, генерируемое после выполнения по меньшей мере одного из энтропийного декодирования и деквантования в декодере. Квантованный уровень, полученный путем квантования коэффициента преобразования или остаточного сигнала, или уровень квантованного коэффициента преобразования также может охватываться смысловым значением коэффициента преобразования.[00139] Transform coefficient: may refer to the coefficient value generated after performing the transformation in the encoder. It may mean a coefficient value generated after performing at least one of entropy decoding and dequantization in a decoder. The quantized level obtained by quantizing the transform coefficient or residual signal, or the quantized transform coefficient level may also be covered by the semantic value of the transform coefficient.
[00140] Квантованный уровень: может означать значение, генерируемое квантованием коэффициента преобразования или остаточного сигнала в кодере. Альтернативно, квантованный уровень может означать значение, которое является целью деквантования для выполнения деквантования в декодере. Аналогичным образом, уровень квантованного коэффициента преобразования, который является результатом преобразования и квантования, также может охватываться смысловым значением квантованного уровня.[00140] Quantized level: may mean the value generated by quantizing the transform coefficient or residual signal in the encoder. Alternatively, the quantized level may mean a value that is a dequantization target for performing dequantization at the decoder. Likewise, the quantized transform coefficient level, which is the result of the transform and quantization, can also be captured by the semantic value of the quantized level.
[00141] Ненулевой коэффициент преобразования: может означать коэффициент преобразования, имеющий значение иное, чем нуль, или уровень коэффициента преобразования или квантованный уровень, имеющий значение иное, чем нуль.[00141] Non-zero transform coefficient: may mean a transform coefficient having a value other than zero, or a transform coefficient level or quantized level having a value other than zero.
[00142] Матрица квантования: может означать матрицу, используемую в процессе квантования или процессе деквантования, выполняемом для улучшения субъективного или объективного качества изображения. Матрица квантования также может упоминаться как список масштабирования.[00142] Quantization matrix: may refer to a matrix used in a quantization process or a dequantization process performed to improve the subjective or objective quality of an image. The quantization matrix can also be referred to as a scaling list.
[00143] Коэффициент матрицы квантования: может означать каждый элемент в матрице квантования. Коэффициент матрицы квантования также может упоминаться как коэффициент матрицы.[00143] Quantization matrix coefficient: may refer to each element in the quantization matrix. The quantization matrix coefficient may also be referred to as the matrix coefficient.
[00144] Матрица по умолчанию: может означать предопределенную матрицу квантования, заранее определенную в кодере или декодере.[00144] Default matrix: may mean a predefined quantization matrix predefined in the encoder or decoder.
[00145] Матрица не по умолчанию: может означать матрицу квантования, которая не определена заранее в кодере или декодере, а сигнализируется пользователем.[00145] Non-default matrix: may mean a quantization matrix that is not predefined in the encoder or decoder, but is signaled by the user.
[00146] Статистическое значение: статистическое значение для по меньшей мере одного из переменной, параметра кодирования, постоянного значения и т.д., которые имеют вычисляемое конкретное значение, может быть одним или более из среднего значения, суммарного значения, взвешенного среднего значения, взвешенного суммарного значения, минимального значения, максимального значения, наиболее частого значения, медианного значения, интерполированного значения соответствующего конкретного значения.[00146] Statistical value: the statistical value for at least one of a variable, encoding parameter, constant value, etc. that has a particular value calculated, may be one or more of an average value, a total value, a weighted average value, a weighted value total value, minimum value, maximum value, most frequent value, median value, interpolated value of the corresponding specific value.
[00147] Фиг. 1 представляет собой блок-схему, показывающую конфигурацию устройства кодирования в соответствии с вариантом осуществления, в котором применимо настоящее изобретение.[00147] FIG. 1 is a block diagram showing the configuration of an encoding device in accordance with an embodiment to which the present invention is applicable.
[00148] Устройство 100 кодирования может быть кодером, устройством кодирования видео или устройством кодирования изображения. Видео может включать по меньшей мере одно изображение. Устройство 100 кодирования может последовательно кодировать по меньшей мере одно изображение.[00148] The encoding device 100 may be an encoder, a video encoding device, or an image encoding device. The video may include at least one image. The encoding device 100 may sequentially encode at least one image.
[00149] Со ссылкой на фиг. 1, устройство 100 кодирования может включать в себя модуль 111 предсказания движения, модуль 112 компенсации движения, модуль 120 интра-предсказания, переключатель 115, вычитатель 125, модуль 130 преобразования, модуль 140 квантования, модуль 150 энтропийного кодирования, модуль 160 деквантования, модуль 170 обратного преобразования, сумматор 175, модуль 180 фильтрации и буфер 190 опорных картинок.[00149] With reference to FIG. 1, the encoding device 100 may include a motion prediction module 111, a motion compensation module 112, an intra-prediction module 120, a switch 115, a subtractor 125, a transform module 130, a quantization module 140, an entropy encoding module 150, a dequantization module 160, a module 170 an inverse transform, an adder 175, a filtering module 180, and a reference picture buffer 190.
[00150] Устройство 100 кодирования может выполнять кодирование входного изображения с использованием интра-режима или интер-режима или их обоих. Кроме того, устройство 100 кодирования может генерировать битовый поток, включающий в себя кодированную информацию, посредством кодирования входного изображения, и выводить сгенерированный битовый поток. Сгенерированный битовый поток может быть сохранен в считываемом компьютером носителе записи или может передаваться потоком по проводной/беспроводной среде передачи. Когда интра-режим используется в качестве режима предсказания, переключатель 115 может переключаться на интра-режим. Альтернативно, когда интер-режим используется в качестве режима предсказания, переключатель 115 может переключаться на интер-режим. Здесь, интра-режим может означать режим интра-предсказания, и интер-режим может означать режим интер-предсказания. Устройство 100 кодирования может генерировать блок предсказания для входного блока входного изображения. Кроме того, устройство 100 кодирования может кодировать остаточный блок с использованием остатка входного блока и блока предсказания после генерации блока предсказания. Входное изображение может называться текущим изображением, которое представляет собой текущую цель кодирования. Входной блок может называться текущим блоком, который представляет собой текущую цель кодирования, или целевым блоком кодирования.[00150] The encoding device 100 may encode the input image using intra-mode or inter-mode or both. In addition, the encoding device 100 can generate a bitstream including encoded information by encoding an input image, and output the generated bitstream. The generated bit stream may be stored in a computer-readable recording medium or may be streamed over a wired/wireless transmission medium. When the intra mode is used as the prediction mode, the switch 115 may be switched to the intra mode. Alternatively, when inter mode is used as a prediction mode, switch 115 may be switched to inter mode. Here, intra-mode may mean an intra-prediction mode, and inter-mode may mean an inter-prediction mode. The encoding device 100 may generate a prediction block for an input block of an input image. In addition, the encoding device 100 may encode the residual block using the remainder of the input block and the prediction block after generating the prediction block. The input image may be called the current image, which represents the current encoding target. The input block may be called the current block, which represents the current encoding target, or the encoding target block.
[00151] Когда режим предсказания является интра-режимом, модуль 120 интра-предсказания может использовать выборку блока, который уже был кодирован/декодирован и является смежным с текущим блоком, в качестве опорной выборки. Модуль 120 интра-предсказания может выполнять пространственное предсказание для текущего блока с использованием опорной выборки или генерировать выборки предсказания входного блока путем выполнения пространственного предсказания. Здесь, внутреннее (интра) предсказание может означать интра-предсказание,[00151] When the prediction mode is intra-mode, intra-prediction module 120 may use a sample of a block that has already been encoded/decoded and is adjacent to the current block as a reference sample. The intra-prediction module 120 may perform spatial prediction on the current block using a reference sample, or generate prediction samples of the input block by performing spatial prediction. Here, internal (intra) prediction can mean intra-prediction,
[00152] Когда режим предсказания является интер-режимом, модуль 111 предсказания движения может извлекать область, которая наилучшим образом согласуется с входным блоком, из опорного изображения при выполнении предсказания движения и выводить вектор движения с использованием извлеченной области. В этом случае, область поиска может быть использована в качестве упомянутой области. Опорное изображение может быть сохранено в буфере 190 опорных картинок. Здесь, когда кодирование/ декодирование для опорного изображения выполнено, оно может быть сохранено в буфере 190 опорных картинок.[00152] When the prediction mode is inter-mode, the motion prediction unit 111 can extract the region that best matches the input block from the reference image when performing motion prediction, and output a motion vector using the extracted region. In this case, the search area can be used as the mentioned area. The reference picture may be stored in the reference picture buffer 190. Here, when encoding/decoding for a reference picture is completed, it can be stored in the reference picture buffer 190.
[00153] Модуль 112 компенсации движения может генерировать блок предсказания путем выполнения компенсация движения для текущего блока с использованием вектора движения. Здесь, интер-предсказание может означать интер-предсказание или компенсацию движения.[00153] The motion compensation unit 112 can generate a prediction block by performing motion compensation on the current block using a motion vector. Here, inter-prediction may mean inter-prediction or motion compensation.
[00154] Когда значение вектора движения не является целым числом, модуль 111 предсказания движения и модуль 112 компенсации движения могут генерировать блок предсказания путем применения интерполяционного фильтра к частичной области опорной картинки. Чтобы выполнить предсказание между картинками или компенсацию движения над единицей кодирования, может определяться, какой режим из режима пропуска, режима слияния, режима расширенного предсказания вектора движения (AMVP) и режима ссылки на текущую картинку используется для предсказания движения и компенсации движения единицы предсказания, включенной в соответствующую единицу кодирования. Затем, предсказание между картинками или компенсация движения могут выполняться по-разному в зависимости от определенного режима.[00154] When the motion vector value is not an integer, the motion prediction unit 111 and the motion compensation unit 112 can generate a prediction block by applying an interpolation filter to a partial area of the reference picture. To perform inter-picture prediction or motion compensation on a coding unit, it may be determined which mode among the skip mode, merge mode, advanced motion vector prediction (AMVP) mode, and current picture reference mode is used for motion prediction and motion compensation of the prediction unit included in the corresponding coding unit. Then, inter-picture prediction or motion compensation may be performed differently depending on the specific mode.
[00155] Вычитатель 125 может генерировать остаточный блок с использованием разности входного блока и блока предсказания. Остаточный блок может называться остаточным сигналом. Остаточный сигнал может означать разность между исходным сигналом и сигналом предсказания. Кроме того, остаточный сигнал может быть сигналом, генерируемым путем преобразования или квантования или преобразования и квантования разности между исходным сигналом и сигналом предсказания. Остаточный блок может быть остаточным сигналом единицы блока.[00155] Subtractor 125 may generate a residual block using the difference of the input block and the prediction block. The residual block may be called a residual signal. The residual signal may mean the difference between the original signal and the prediction signal. Moreover, the residual signal may be a signal generated by transforming or quantizing, or transforming and quantizing the difference between the original signal and the prediction signal. The residual block may be a residual block unit signal.
[00156] Модуль 130 преобразования может генерировать коэффициент преобразования путем выполнения преобразования остаточного блока и выводить сгенерированный коэффициент преобразования. Здесь, коэффициент преобразования может быть значением коэффициента, генерируемым путем выполнения преобразования остаточного блока. Когда применяется режим пропуска преобразования, модуль 130 преобразования может пропустить преобразование остаточного блока.[00156] The transformation unit 130 can generate a transformation coefficient by performing transformation on a residual block and output the generated transformation coefficient. Here, the transformation coefficient may be a coefficient value generated by performing transformation of the residual block. When the skip conversion mode is applied, the conversion unit 130 may skip the conversion of the residual block.
[00157] Квантованный уровень может генерироваться путем применения квантования к коэффициенту преобразования или к остаточному сигналу. Далее, квантованный уровень может также называться коэффициентом преобразования в вариантах осуществления.[00157] The quantized level can be generated by applying quantization to the transform coefficient or to the residual signal. Further, the quantized level may also be referred to as a conversion coefficient in embodiments.
[00158] Модуль 140 квантования может генерировать квантованный уровень путем квантования коэффициента преобразования или остаточного сигнала в соответствии с параметром и выводить сгенерированный квантованный уровень. Здесь, модуль 140 квантования может квантовать коэффициент преобразования с использованием матрицы квантования.[00158] The quantization unit 140 can generate a quantized level by quantizing a transform coefficient or a residual signal according to a parameter, and output the generated quantized level. Here, the quantization unit 140 may quantize the transform coefficient using a quantization matrix.
[00159] Модуль 150 энтропийного кодирования может генерировать битовый поток путем выполнения энтропийного кодирования в соответствии с распределением вероятности по значениям, вычисленным модулем 140 квантования, или по значениям параметра кодирования, вычисленным при выполнении кодирования, и выводить сгенерированный битовый поток. Модуль 150 энтропийного кодирования может выполнять энтропийное кодирование информации выборки изображения и информации для декодирования изображения. Например, информация для декодирования изображения может включать синтаксический элемент. [00159] The entropy encoding unit 150 can generate a bit stream by performing entropy encoding according to a probability distribution on the values calculated by the quantization unit 140 or on the encoding parameter values calculated when performing encoding, and output the generated bit stream. The entropy encoding unit 150 can perform entropy encoding of image sampling information and image decoding information. For example, the image decoding information may include a syntax element.
[00160] Когда применяется энтропийное кодирование, символы представляются таким образом, что меньшее число битов назначается символу, имеющему высокую вероятность генерации, и большее число битов назначается символу, имеющему низкую вероятность генерации, и, таким образом, размер битового потока для символов, подлежащих кодированию, может уменьшаться. Модуль 150 энтропийного кодирования может использовать способ кодирования для энтропийного кодирования, такой как экспоненциальное кодирование Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и т.д. Например, модуль 150 энтропийного кодирования может выполнять энтропийное кодирование с использованием таблицы кодирования/кода переменной длины (VLC). Кроме того, модуль 150 энтропийного кодирования может выводить способ бинаризации целевого символа и модель вероятности целевого символа/бина и выполнять арифметическое кодирование с использованием выведенного способа бинаризации и контекстной модели.[00160] When entropy encoding is used, symbols are represented such that fewer bits are assigned to a symbol having a high probability of being generated and a larger number of bits are assigned to a symbol having a low probability of being generated, and thus the size of the bit stream for the symbols to be encoded , may decrease. The entropy coding unit 150 may use a coding method for entropy coding such as exponential Golomb coding, context adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), etc. For example, entropy encoding module 150 may perform entropy encoding using a codebook/variable length code (VLC). In addition, the entropy encoding module 150 can output the binarization method of the target symbol and the probability model of the target symbol/bin, and perform arithmetic encoding using the derived binarization method and context model.
[00161] Чтобы кодировать уровень коэффициента преобразования (квантованный уровень), модуль 150 энтропийного кодирования может преобразовать коэффициент в форме двумерного блока в форму одномерного вектора с использованием способа сканирования коэффициентов преобразования.[00161] To encode the transform coefficient level (quantized level), the entropy encoding module 150 can transform the coefficient in the form of a two-dimensional block into a one-dimensional vector form using a transform coefficient scanning method.
[00162] Параметр кодирования может включать информацию (флаг, индекс, и т.д.), такую как синтаксический элемент, который кодируется в кодере и сигнализируется в декодер, и информацию, выведенную при выполнении кодирования или декодирования. Параметр кодирования может означать информацию, требуемую при кодировании или декодировании изображения. Например, по меньшей мере одно значение или форма комбинации из размера единицы/блока, глубины единицы/блока, информации разбиения единицы/блока, формы единицы/блока, структуры разбиения единицы/блока, следует ли разбивать в форме квадродерева, следует ли разбивать в форме двоичного дерева, направления разбиения формы двоичного дерева (горизонтальное направление или вертикальное направление), формы разбиения в форме двоичного дерева (симметричное разбиение или асимметричное разбиение), разбита ли текущая единица кодирования путем разбиения троичного дерева, направления (горизонтальное или вертикальное направление) разбиения троичного дерева, типа (симметричный или асимметричный тип) разбиения троичного дерева, разбита ли текущая единица кодирования путем разбиения дерева множества типов, направления (горизонтальное или вертикальное направление) разбиения дерева множества типов, типа (симметричный или асимметричный тип) разбиения дерева множества типов и структуры дерева (двоичное дерево или троичное дерево) разбиения дерева множества типов, режима предсказания (интра-предсказание или интер-предсказание), режима/направления интра-предсказания яркости, режима/направления интра-предсказания цветности, информации интра-разбиения, информации интер-разбиения, флага разбиения блока кодирования, флага разбиения блока предсказания, флага разбиения блока преобразования, способа фильтрации опорной выборки, отвода фильтра опорной выборки, коэффициента фильтра опорной выборки, способа фильтрации блока предсказания, отвода фильтра блока предсказания, коэффициента фильтра блока предсказания, способа фильтрации границы блока предсказания, отвода фильтра границы блока предсказания, коэффициента фильтра границы блока предсказания, режима интра-предсказания, режима интер-предсказания, информации движения, вектора движения, разности векторов движения, индекса опорной картинки, угла интер-предсказания, указателя интер-предсказания, флага использования списка предсказания, списка опорных картинок, опорной картинки, индекса предсказателя вектора движения, кандидата предсказателя вектора движения, списка кандидатов вектора движения, следует ли использовать режим слияния, индекса слияния, кандидата слияния, списка кандидатов слияния, следует ли использовать режим пропуска, типа фильтра интерполяции, отвода фильтра интерполяции, коэффициента фильтра интерполяции, размера вектора движения, точности представления вектора движения, типа преобразования, размера преобразования, информации, используется ли первичное (первое) преобразование, информации, используется ли вторичное преобразование, индекса первичного преобразования, индекса вторичного преобразования, информации, представлен ли остаточный сигнал, шаблона кодированного блока, флага кодированного блока (CBF), параметра квантования, остатка параметра квантования, матрицы квантования, следует ли применять внутриконтурный фильтр, коэффициента внутриконтурного фильтра, отвода внутриконтурного фильтра, формы внутриконтурного фильтра, следует ли применять фильтр устранения блочности, коэффициента фильтра устранения блочности, отвода фильтра устранения блочности, силы фильтра устранения блочности, формы фильтра устранения блочности, следует ли применять адаптивное смещение выборки, значения адаптивного смещения выборки, категории адаптивного смещения выборки, типа адаптивного смещения выборки, следует ли применять адаптивный контурный фильтр, коэффициента адаптивного контурного фильтра, отвода адаптивного контурного фильтра, формы адаптивного контурного фильтра, способа бинаризации/обратной бинаризации, способа определения контекстной модели, способа обновления контекстной модели, следует ли выполнять регулярный режим, следует ли выполнять режим обхода, бина контекста, бина обхода, флага значимого коэффициента, флага последнего значимого коэффициента, кодированного флага для единицы группы коэффициентов, положения последнего значимого коэффициента, флага для того, является ли значение коэффициента большим, чем 1, флага для того, является ли значение коэффициента большим, чем 2, флага для того, является ли значение коэффициента большим, чем 3, информации об остаточном значении коэффициента, информации знака, восстановленной выборки яркости, восстановленной выборки цветности, остаточной выборки яркости, остаточной выборки цветности, коэффициента преобразования яркости, коэффициента преобразования цветности, квантованного уровня яркости, квантованного уровня цветности, способа сканирования уровня коэффициента преобразования, размера области поиска вектора движения на стороне декодера, формы области поиска вектора движения на стороне декодера, числа раз поиска вектора движения на стороне декодера, информации о размере CTU, информации о минимальном размере блока, информации о максимальном размере блока, информации о максимальной глубине блока, информации о минимальной глубине блока, последовательности отображения/вывода изображения, информации идентификации слайса, типа слайса, информации разбиения слайса, информации идентификации мозаичного элемента, типа мозаичного элемента, информации мозаичного разбиения, информации идентификации группы мозаичных элементов, типа группы мозаичных элементов, информации разбиения группы мозаичных элементов, типа картинки, битовой глубины входной выборки, битовой глубины восстановленной выборки, битовой глубины остаточной выборки, битовой глубины коэффициента преобразования, битовой глубины квантованного уровня и информации о сигнале яркости или информации о сигнале цветности могут быть включены в параметр кодирования.[00162] The encoding parameter may include information (flag, index, etc.) such as a syntax element that is encoded in the encoder and signaled to the decoder, and information output when encoding or decoding is performed. An encoding parameter may refer to information required when encoding or decoding an image. For example, at least one value or form of a combination of unit/block size, unit/block depth, unit/block partitioning information, unit/block shape, unit/block partition structure, whether to partition in the form of a quadtree, whether to partition in the form binary tree, the direction of partitioning of the binary tree form (horizontal direction or vertical direction), the partitioning shape of the binary tree form (symmetric partitioning or asymmetric partitioning), whether the current coding unit is partitioned by partitioning the ternary tree, the direction (horizontal or vertical direction) of partitioning the ternary tree , the type (symmetric or asymmetric type) of the ternary tree partition, whether the current encoding unit is partitioned by a multi-type tree partition, the direction (horizontal or vertical direction) of the multi-type tree partition, the type (symmetric or asymmetric type) of the multi-type tree partition, and the structure of the tree ( binary tree or ternary tree) tree partitions of multiple types, prediction mode (intra-prediction or inter-prediction), luma intra-prediction mode/direction, chrominance intra-prediction mode/direction, intra-partition information, inter-partition information, flag encoding block split flag, prediction block split flag, transform block split flag, reference sample filtering method, reference sample filter tap, reference sample filter coefficient, prediction block filtering method, prediction block filter tap, prediction block filter coefficient, prediction block boundary filtering method, prediction block boundary filter tap, prediction block boundary filter coefficient, intra-prediction mode, inter-prediction mode, motion information, motion vector, motion vector difference, reference picture index, inter-prediction angle, inter-prediction pointer, prediction list use flag , reference picture list, reference picture, motion vector predictor index, motion vector predictor candidate, motion vector candidate list, whether to use merge mode, merge index, merge candidate, merge candidate list, whether to use skip mode, interpolation filter type, tap interpolation filter, interpolation filter coefficient, motion vector size, motion vector representation precision, transformation type, transformation size, information whether the primary (first) transformation is used, information whether the secondary transformation is used, primary transformation index, secondary transformation index, information, represented whether residual signal, coded block pattern, coded block flag (CBF), quantization parameter, residual quantization parameter, quantization matrix, whether to apply an in-loop filter, in-loop filter coefficient, in-loop filter tap, in-loop filter shape, whether to apply a deblocking filter, deblocking filter coefficient, deblocking filter tap, deblocking filter strength, deblocking filter shape, whether to apply adaptive sample offset, adaptive sample offset value, adaptive sample offset category, adaptive sample offset type, whether to apply adaptive loop filter, coefficient adaptive loop filter, adaptive loop filter tap, adaptive loop filter shape, binarization/inverse binarization method, context model determination method, context model update method, whether to perform regular mode, whether to perform bypass mode, context bin, bypass bin, significant flag coefficient, the last significant coefficient flag, the coded flag for the unit of the coefficient group, the position of the last significant coefficient, the flag for whether the coefficient value is greater than 1, the flag for whether the coefficient value is greater than 2, the flag for whether whether the coefficient value is greater than 3, residual coefficient value information, sign information, reconstructed luminance sample, reconstructed chroma sample, residual luminance sample, residual chrominance sample, luminance conversion coefficient, chrominance conversion coefficient, quantized luminance level, quantized chrominance level, method conversion coefficient level scanning, decoder side motion vector search area size, decoder side motion vector search area shape, decoder side motion vector search number of times, CTU size information, minimum block size information, maximum block size information, information maximum block depth information, minimum block depth information, image display/output sequence, slice identification information, slice type, slice partition information, tile identification information, tile type, tile partition information, tile group identification information, tile group type elements, tile group partitioning information, picture type, input sample bit depth, reconstructed sample bit depth, residual sample bit depth, conversion coefficient bit depth, quantized level bit depth and luma signal information or chrominance signal information may be included in the parameter coding.
[00163] Здесь, сигнализация флага или индекса может означать, что соответствующий флаг или индекс энтропийно закодирован и включен в битовый поток кодером, и может означать, что соответствующий флаг или индекс энтропийно декодируется из битового потока декодером.[00163] Here, signaling a flag or index may mean that the corresponding flag or index is entropy encoded and included in the bit stream by the encoder, and may mean that the corresponding flag or index is entropy decoded from the bit stream by the decoder.
[00164] Когда устройство 100 кодирования выполняет кодирование посредством интер-предсказания, кодированное текущее изображение может быть использовано как опорное изображение для другого изображения, которое обрабатывается после этого. Соответственно, устройство 100 кодирования может восстанавливать или декодировать закодированное текущее изображение, или сохранять восстановленное или декодированное изображение как опорное изображение в буфере 190 опорных картинок.[00164] When the encoding device 100 performs inter-prediction encoding, the encoded current image can be used as a reference image for another image that is processed thereafter. Accordingly, the encoding apparatus 100 may recover or decode the encoded current picture, or store the recovered or decoded image as a reference picture in the reference picture buffer 190.
[00165] Квантованный уровень может деквантоваться в модуле 160 деквантования, или может обратно преобразовываться в модуле 170 обратного преобразования. Деквантованный и/или обратно преобразованный коэффициент может суммироваться с блоком предсказания посредством сумматора 175. Путем суммирования деквантованного и/или обратно преобразованного коэффициента с блоком предсказания может генерироваться восстановленный блок. Здесь, деквантованный и/или обратно преобразованный коэффициент может означать коэффициент, над которым выполнено по меньшей мере одно из деквантования и обратного преобразования, и может означать восстановленный остаточный блок.[00165] The quantized level may be dequantized in dequantization module 160, or may be dequantized in dequantization module 170. The dequantized and/or inversely transformed coefficient may be added to the prediction block via adder 175. By adding the dequantized and/or inversely transformed coefficient to the prediction block, a reconstructed block may be generated. Here, a dequantized and/or de-converted coefficient may mean a coefficient on which at least one of dequantization and de-conversion has been performed, and may denote a reconstructed residual block.
[00166] Восстановленный блок может проходить через модуль 180 фильтрации. Модуль 180 фильтрации может применять по меньшей мере одно из фильтра устранения блочности, адаптивного смещения выборки (SAO) и адаптивного контурного фильтра (ALF) к восстановленной выборке, восстановленному блоку или восстановленному изображению. Модуль 180 фильтрации может упоминаться как контурный фильтр.[00166] The recovered block may pass through filter module 180. Filtering module 180 may apply at least one of a deblocking filter, an adaptive sample offset (SAO), and an adaptive loop filter (ALF) to the reconstructed sample, the reconstructed block, or the reconstructed image. Filtration module 180 may be referred to as a loop filter.
[00167] Фильтр устранения блочности может устранять блочное искажение, генерируемое на границах между блоками. Для определения того, следует ли применять фильтр устранения блочности, может определяться, следует ли применять фильтр устранения блочности к текущему блоку, на основе выборок, включенных в различные строки или столбцы, которые включены в блок. Когда фильтр устранения блочности применяется к блоку, другой фильтр может быть применен в соответствии с требуемой силой (уровнем) фильтрации устранения блочности.[00167] A deblocking filter may remove block artifact generated at boundaries between blocks. To determine whether the deblocking filter should be applied, it may be determined whether the deblocking filter should be applied to the current block based on the samples included in the various rows or columns that are included in the block. When a deblocking filter is applied to a block, another filter may be applied according to the desired strength (level) of deblocking filtering.
[00168] Для того чтобы скомпенсировать ошибку кодирования, надлежащее значение смещения может быть добавлено к значению выборки с использованием адаптивного смещения выборки. Адаптивное смещение выборки может корректировать смещение изображения с устраненной блочностью относительно исходного изображения на единицу выборки. Может использоваться способ разбиения выборок изображения на предопределенное количество областей, определения области, к которой применяется смещение, и применения смещения к определенной области, или способ применения смещения с учетом краевой информации по каждой выборке.[00168] In order to compensate for encoding error, an appropriate offset value can be added to the sample value using an adaptive sample offset. Adaptive sampling offset can adjust the offset of the deblocked image relative to the original image by a sampling unit. A method may be used of dividing the image samples into a predetermined number of regions, determining the region to which the offset is applied and applying the offset to the defined region, or a method of applying the offset taking into account edge information on each sample.
[00169] Адаптивный контурный фильтр может выполнять фильтрацию на основе результата сравнения отфильтрованного восстановленного изображения и исходного изображения. Выборки, включенные в изображение, могут разбиваться на предопределенные группы, может определяться фильтр для применения к каждой группе, и может выполняться дифференциальная фильтрация для каждой группы. Информация о том, следует ли применять ALF, может сигнализироваться посредством единиц кодирования (CU), и форма и коэффициент ALF, подлежащего применению к каждому блоку, могут варьироваться. [00169] The adaptive edge filter may perform filtering based on a comparison result between the filtered reconstructed image and the original image. The samples included in the image can be divided into predefined groups, a filter can be defined to apply to each group, and differential filtering can be performed on each group. Information about whether ALF should be applied may be signaled by coding units (CUs), and the shape and ratio of the ALF to be applied to each block may vary.
[00170] Восстановленный блок или восстановленное изображение, после прохождения через модуль 180 фильтрации, может сохраняться в буфере 190 опорных картинок. Восстановленный блок, обработанный модулем 180 фильтрации, может быть частью опорного изображения. То есть, опорное изображение представляет собой восстановленное изображение, составленное из восстановленных блоков, обработанных модулем 180 фильтрации. Сохраненное опорное изображение может быть использовано позже в интер-предсказании или компенсации движения.[00170] The reconstructed block or reconstructed image, after passing through the filtering module 180, may be stored in the reference picture buffer 190. The reconstructed block processed by filtering module 180 may be part of a reference image. That is, the reference image is a reconstructed image composed of reconstructed blocks processed by the filtering unit 180. The stored reference image can be used later in inter-prediction or motion compensation.
[00171] Фиг. 2 представляет собой блок-схему, показывающую конфигурацию устройства декодирования в соответствии с вариантом осуществления, в котором применимо настоящее изобретение.[00171] FIG. 2 is a block diagram showing the configuration of a decoding apparatus according to an embodiment to which the present invention is applicable.
[00172] Устройство 200 декодирования может представлять собой декодер, устройство декодирования видео или устройство декодирования изображения.[00172] The decoding device 200 may be a decoder, a video decoding device, or an image decoding device.
[00173] Со ссылкой на фиг. 2, устройство 200 декодирования может включать в себя модуль 210 энтропийного декодирования, модуль 220 деквантования, модуль 230 обратного преобразования, модуль 240 интра-предсказания, модуль 250 компенсации движения, сумматор 225, модуль 260 фильтрации и буфер 270 опорных картинок.[00173] With reference to FIG. 2, the decoding apparatus 200 may include an entropy decoding unit 210, a dequantization unit 220, an inverse transform unit 230, an intra-prediction unit 240, a motion compensation unit 250, an adder 225, a filtering unit 260, and a reference picture buffer 270.
[00174] Устройство 200 декодирования может принимать битовый поток, выведенный из устройства 100 кодирования. Устройство 200 декодирования может принимать битовый поток, сохраненный в считываемом компьютером носителе записи, или может принимать битовый поток, передаваемый путем потоковой передачи посредством проводной/беспроводной среды передачи. Устройство 200 декодирования может декодировать битовый поток с использованием интра-режима или интер-режима. Кроме того, устройство 200 декодирования может генерировать восстановленное изображение, генерируемое путем декодирования, или декодированное изображение и выводить восстановленное изображение или декодированное изображение.[00174] The decoding device 200 may receive a bit stream output from the encoding device 100. The decoding apparatus 200 may receive a bit stream stored in a computer-readable recording medium, or may receive a bit stream transmitted by streaming via a wired/wireless transmission medium. The decoding apparatus 200 may decode the bit stream using intra mode or inter mode. In addition, the decoding apparatus 200 can generate a reconstructed image generated by decoding or a decoded image and output the reconstructed image or decoded image.
[00175] Когда режим предсказания, используемый при декодировании, является интра-режимом, переключатель может быть переключен на интра-режим. Альтернативно, когда режим предсказания, используемый при декодировании, является интер-режимом, переключатель может быть переключен на интер-режим.[00175] When the prediction mode used in decoding is intra mode, the switch may be switched to intra mode. Alternatively, when the prediction mode used in decoding is inter-mode, the switch may be switched to inter-mode.
[00176] Устройство 200 декодирования может получать восстановленный остаточный блок путем декодирования входного битового потока и генерировать блок предсказания. Когда восстановленный остаточный блок и блок предсказания получены, устройство 200 декодирования может генерировать восстановленный блок, который становится целью декодирования, путем суммирования восстановленного остаточного блока с блоком предсказания. Целевой блок декодирования может называться текущим блоком.[00176] The decoding apparatus 200 can obtain the reconstructed residual block by decoding the input bit stream and generate a prediction block. When the reconstructed residual block and the prediction block are received, the decoding apparatus 200 can generate a reconstructed block that becomes a decoding target by summing the reconstructed residual block with the prediction block. The decoding target block may be called the current block.
[00177] Модуль 210 энтропийного декодирования может генерировать символы путем энтропийного декодирования битового потока в соответствии с распределением вероятности. Сгенерированные символы могут включать в себя символ формы квантованного уровня. Здесь, способ энтропийного декодирования может быть процессом, обратным способу энтропийного кодирования, описанному выше.[00177] The entropy decoding unit 210 may generate symbols by entropy decoding a bitstream according to a probability distribution. The generated symbols may include a quantized level shape symbol. Here, the entropy decoding method may be a reverse process to the entropy encoding method described above.
[00178] Для того чтобы декодировать уровень коэффициента преобразования (квантованный уровень), модуль 210 энтропийного декодирования может преобразовать коэффициент в форме одномерного вектора в форму двумерного блока с использованием способа сканирования коэффициента преобразования.[00178] In order to decode the transform coefficient level (quantized level), the entropy decoding unit 210 can transform the coefficient in the form of a one-dimensional vector into the form of a two-dimensional block using a transform coefficient scanning method.
[00179] Квантованный уровень может быть деквантован в модуле 220 деквантования или обратно преобразован в модуле 230 обратного преобразования. Квантованный уровень может быть результатом деквантования и/или обратного преобразования и может генерироваться как восстановленный остаточный блок. Здесь, модуль 220 деквантования может применять матрицу квантования к квантованному уровню.[00179] The quantized level may be dequantized in dequantization module 220 or inverted in dequantization module 230. The quantized level may be the result of dequantization and/or deconversion and may be generated as a reconstructed residual block. Here, dequantization module 220 may apply a quantization matrix to the quantized level.
[00180] Когда используется интра-режим, модуль 240 интра-предсказания может генерировать блок предсказания путем выполнения, для текущего блока, пространственного предсказания, которое использует значение выборки блока, смежного с целевым блоком декодирования, и который уже был декодирован.[00180] When the intra mode is used, the intra prediction module 240 can generate a prediction block by performing, for the current block, a spatial prediction that uses the sample value of a block adjacent to the decoding target block and that has already been decoded.
[00181] Когда используется интер-режим, модуль 250 компенсации движения может генерировать блок предсказания путем выполнения, для текущего блока, компенсации движения, которая использует вектор движения и опорное изображение, сохраненное в буфере 270 опорных картинок.[00181] When inter-mode is used, motion compensation module 250 can generate a prediction block by performing, for the current block, motion compensation that uses a motion vector and a reference picture stored in the reference picture buffer 270.
[00182] Сумматор 225 может генерировать восстановленный блок путем суммирования восстановленного остаточного блока с блоком предсказания. Модуль 260 фильтрации может применять по меньшей мере одно из фильтра устранения блочности, адаптивного смещения выборки и адаптивного контурного фильтра к восстановленному блоку или восстановленному изображению. Модуль 260 фильтрации может выводить восстановленное изображение. Восстановленный блок или восстановленное изображение может сохраняться в буфере 270 опорных картинок и использоваться при выполнении интер-предсказания. Восстановленный блок, обработанный модулем 260 фильтрации, может быть частью опорного изображения. То есть, опорное изображение представляет собой восстановленное изображение, составленное из восстановленных блоков, обработанных модулем 260 фильтрации. Сохраненное опорное изображение может быть использовано позже при интер-предсказании или компенсации движения.[00182] Adder 225 may generate a reconstructed block by adding the reconstructed residual block to the prediction block. Filtering module 260 may apply at least one of a deblocking filter, an adaptive sample offset, and an adaptive contour filter to the reconstructed block or the reconstructed image. The filtering module 260 may output the reconstructed image. The reconstructed block or reconstructed image may be stored in reference picture buffer 270 and used when performing inter-prediction. The reconstructed block processed by filtering module 260 may be part of a reference image. That is, the reference image is a reconstructed image composed of reconstructed blocks processed by the filtering module 260. The saved reference image can be used later for inter-prediction or motion compensation.
[00183] Фиг. 3 представляет собой вид, схематично показывающий структуру разбиения изображения при кодировании и декодировании изображения. Фиг. 3 схематично показывает пример разбиения одной единицы во множество более низких единиц.[00183] FIG. 3 is a view schematically showing an image division structure in image encoding and decoding. Fig. 3 schematically shows an example of breaking one unit into many lower units.
[00184] Для того чтобы эффективно разбивать изображение, при кодировании и декодировании, может быть использована единица кодирования (CU). Единица кодирования может быть использована как базовая единица при кодировании/декодировании изображения. Кроме того, единица кодирования может быть использована в качестве единицы для различения режима интра-предсказания и режима интер-предсказания при кодировании/декодировании изображения. Единица кодирования может быть базовой единицей, используемой для предсказания, преобразования, квантования, обратного преобразования, деквантования или процесса кодирования/декодирования коэффициента преобразования. [00184] In order to efficiently partition an image during encoding and decoding, a coding unit (CU) may be used. The coding unit can be used as a basic unit when encoding/decoding an image. In addition, the encoding unit can be used as a unit for distinguishing between an intra-prediction mode and an inter-prediction mode when encoding/decoding an image. The coding unit may be a basic unit used for prediction, transform, quantization, inverse transform, dequantization, or a transform coefficient encoding/decoding process.
[00185] Со ссылкой на фиг. 3, изображение 300 последовательно разбивается на наибольшую единицу кодирования (LCU), и единица LCU определяется как структура разбиения. Здесь, LCU может быть использована в том же смысле, что и единица дерева кодирования (CTU). Разбиение единицы может означать разбиение блока, ассоциированного с единицей. В информацию разбиения блока может быть включена информация о глубине единицы. Информация глубины может представлять число раз и/или степень, в которой разбивается единица. Одна единица может разбиваться на множество единиц более низкого уровня, иерархически ассоциированных с информацией глубины на основе древовидной структуры. Иными словами, некоторая единица и единица более низкого уровня, генерируемая путем разбиения данной единицы, могут соответствовать узлу и дочернему узлу данного узла, соответственно. Каждая разделенная более низкая единица может иметь информацию глубины. Информация глубины может представлять собой информацию, представляющую размер CU, и может быть сохранена в каждой CU. Глубина единицы представляет число раз и/или степеней разбиения единицы. Поэтому информация разбиения единицы более низкого уровня может содержать информацию о размере единицы более низкого уровня.[00185] With reference to FIG. 3, the image 300 is sequentially divided into a largest coding unit (LCU), and the LCU is defined as a division structure. Here, LCU can be used in the same sense as a coding tree unit (CTU). Splitting a unit may mean splitting the block associated with the unit. Unit depth information may be included in the block splitting information. The depth information may represent the number of times and/or the degree to which a unit is split. One unit may be broken down into multiple lower level units hierarchically associated with depth information based on a tree structure. In other words, a certain unit and a lower level unit generated by splitting a given unit can correspond to a node and a child node of a given node, respectively. Each divided lower unit may have depth information. The depth information may be information representing the size of a CU and may be stored in each CU. The depth of a unit represents the number of times and/or degrees of division of a unit. Therefore, the partitioning information of a lower-level unit may contain information about the size of the lower-level unit.
[00186] Структура разбиения может означать распределение единицы кодирования (CU) в пределах LCU 310. Такое распределение может быть определено в соответствии с тем, следует ли разбивать одну CU на множество (положительное целое число, равное или большее, чем 2, включая 2, 4, 8, 16 и т.д.) CU. Горизонтальный размер и вертикальный размер CU, генерируемой путем разбиения, может соответственно быть половиной горизонтального размера и вертикального размера CU перед разбиением или может соответственно иметь размеры меньше, чем горизонтальный размер и вертикальный размер перед разбиением, в соответствии с числом раз разбиения. CU может рекурсивно разбиваться во множество CU. Путем рекурсивного разбиения, по меньшей мере одно из высоты и ширины CU после разбиения может уменьшаться по сравнению с по меньшей мере одним из высоты и ширины CU перед разбиением. Разбиение CU может рекурсивно выполняться до предопределенной глубины или предопределенного размера. Например, глубина LCU может быть равна 0, а глубина наименьшей единицы кодирования (SCU) может быть предопределенной максимальной глубиной. Здесь, LCU может представлять собой единицу кодирования, имеющую максимальный размер единицы кодирования, и SCU может представлять собой единицу кодирования, имеющую минимальный размер единицы кодирования, как описано выше. Разбиение начинается от LCU 310, глубина CU возрастает на 1, по мере того как горизонтальный размер и/или вертикальный размер CU уменьшается путем разбиения. Например, для каждой глубины, CU, которая не разделена, может иметь размер 2N×2N. Также, в случае CU, которая разделена, CU с размером 2N×2N может разбиваться на четыре CU с размером N×N. Размер N может уменьшаться наполовину, когда глубина возрастает на 1.[00186] A partitioning structure may refer to the allocation of a coding unit (CU) within the LCU 310. Such allocation may be determined according to whether one CU should be partitioned into a plurality (a positive integer equal to or greater than 2, including 2, 4, 8, 16, etc.) CU. The horizontal size and vertical size of the CU generated by partitioning may respectively be half the horizontal size and vertical size of the CU before partitioning, or may suitably have dimensions smaller than the horizontal size and vertical size before partitioning, according to the number of times of partitioning. A CU can be recursively split into multiple CUs. By recursively partitioning, at least one of the height and width of the CU after the partition can be reduced compared to at least one of the height and width of the CU before the partition. CU partitioning can be performed recursively to a predefined depth or predefined size. For example, the LCU depth may be 0, and the smallest coding unit (SCU) depth may be a predefined maximum depth. Here, the LCU may be a coding unit having a maximum coding unit size, and the SCU may be a coding unit having a minimum coding unit size, as described above. Partitioning starts from LCU 310, the CU depth increases by 1 as the horizontal size and/or vertical size of the CU is reduced by partitioning. For example, for each depth, a CU that is not partitioned may have a size of 2N×2N. Also, in the case of a CU that is partitioned, a 2N×2N size CU may be split into four N×N size CUs. The size N can be reduced by half when the depth increases by 1.
[00187] Кроме того, информация о том, следует ли разбивать CU, может быть представлена с использованием информации разбиения CU. Информация разбиения может представлять собой 1-битовую информацию. Все CU, за исключением SCU, могут включать информацию разбиения. Например, когда значение информации разбиения равно первому значению, CU не может разбиваться, когда значение информации разбиения равно второму значению, CU может разбиваться.[00187] In addition, information about whether the CU should be split may be provided using the CU split information. The partition information may be 1-bit information. All CUs except SCU may include partitioning information. For example, when the value of the partition information is equal to the first value, the CU cannot be partitioned; when the value of the partition information is equal to the second value, the CU can be partitioned.
[00188] Со ссылкой на фиг. 3, LCU, имеющая глубину 0, может представлять собой 64×64 блок. 0 может быть минимальной глубиной. SCU, имеющая глубину 3, может представлять собой 8×8 блок. 3 может быть максимальной глубиной. CU в виде 32×32 блока и 16×16 блока могут быть соответственно представлены как глубина 1 и глубина 2.[00188] With reference to FIG. 3, an LCU having a depth of 0 may be a 64x64 block. 0 may be the minimum depth. An SCU having a depth of 3 may be an 8x8 block. 3 may be the maximum depth. CUs in the form of 32x32 blocks and 16x16 blocks can be represented as depth 1 and depth 2, respectively.
[00189] Например, когда одна единица кодирования разбивается на четыре единицы кодирования, горизонтальный размер и вертикальный размер четырех разделенных единиц кодирования могут быть равны половинному размеру горизонтального и вертикального размера CU перед разбиением. В одном варианте осуществления, когда единица кодирования, имеющая размер 32×32, разбивается на четыре единицы кодирования, каждая из четырех разделенных единиц кодирования может иметь размер 16×16. Когда одна единица кодирования разбивается на четыре единицы кодирования, можно сказать, что единица кодирования может разбиваться в форму квадродерева.[00189] For example, when one coding unit is divided into four coding units, the horizontal size and vertical size of the four divided coding units may be equal to half the size of the horizontal and vertical size of the CU before the division. In one embodiment, when a coding unit having a size of 32×32 is divided into four coding units, each of the four divided coding units may have a size of 16×16. When one coding unit is split into four coding units, it can be said that the coding unit can be split into a quadtree shape.
[00190] Например, когда одна единица кодирования разбита на две под-единицы кодирования, горизонтальный или вертикальный размер (ширина или высота) каждой из двух под-единиц кодирования может быть половиной горизонтального или вертикального размера исходной единицы кодирования. Например, когда единица кодирования, имеющая размер 32×32, вертикально разбита на две под-единицы кодирования, каждая из двух под-единиц кодирования может иметь размер 16×32. Например, когда единица кодирования, имеющая размер 8×32, горизонтально разбита на две под-единицы кодирования, каждая из двух под-единиц кодирования может иметь размер 8×16. Когда одна единица кодирования разбита на две под-единицы кодирования, можно сказать, что единица кодирования двоично разбита или разбита посредством структуры разбиения двоичного дерева.[00190] For example, when one encoding unit is split into two sub-encoding units, the horizontal or vertical size (width or height) of each of the two sub-encoding units may be half the horizontal or vertical size of the original encoding unit. For example, when a coding unit having a size of 32×32 is vertically divided into two sub-coding units, each of the two sub-coding units may have a size of 16×32. For example, when a coding unit having a size of 8x32 is horizontally divided into two sub-coding units, each of the two sub-coding units may have a size of 8x16. When one coding unit is split into two sub-coding units, the coding unit can be said to be binary split or split through a binary tree split structure.
[00191] Например, когда одна единица кодирования разбита на три под-единицы кодирования, горизонтальный или вертикальный размер единицы кодирования может разбиваться в отношении 1:2:1, тем самым формируя три под-единицы кодирования, горизонтальный или вертикальный размеры которых находятся в отношении 1:2:1. Например, когда единица кодирования, имеющая размер 16×32, горизонтально разбита на три под-единицы кодирования, три под-единицы кодирования могут иметь размеры 16×8, 16×16 и 16×8, соответственно, в порядке от самой верхней до самой нижней под-единицы кодирования. Например, когда единица кодирования, имеющая размер 32×32 вертикально разделяется на три под-единицы кодирования, три под-единицы кодирования могут иметь размеры 8×32, 16×32 и 8×32, соответственно, в порядке от левой до правой под-единицы кодирования. Когда одна единица кодирования разбита на три под-единицы кодирования, можно сказать, что единица кодирования троично разбита или разбита посредством структуры разбиения троичного дерева.[00191] For example, when one encoding unit is divided into three sub-encoding units, the horizontal or vertical size of the encoding unit may be divided in the ratio 1:2:1, thereby forming three sub-encoding units whose horizontal or vertical dimensions are in the ratio 1:2:1. For example, when a coding unit having a size of 16×32 is horizontally divided into three sub-coding units, the three sub-coding units may have sizes of 16×8, 16×16 and 16×8, respectively, in order from the highest to the highest lower sub-unit coding. For example, when a coding unit having a size of 32×32 is vertically divided into three sub-coding units, the three sub-coding units may have sizes of 8×32, 16×32 and 8×32, respectively, in order from left to right sub-units. coding units. When one coding unit is split into three sub-coding units, the coding unit can be said to be ternary split or split through a ternary tree split structure.
[00192] На фиг. 3, единица дерева кодирования (CTU) 320 является примером CTU, к которой применяются структура разбиения квадродерева, структура разбиения двоичного дерева и структура разбиения троичного дерева.[00192] In FIG. 3, a coding tree unit (CTU) 320 is an example of a CTU to which a quadtree partitioning structure, a binary tree partitioning structure, and a ternary tree partitioning structure are applied.
[00193] Как описано выше, для того чтобы разбить CTU, может применяться по меньшей мере одна из структуры разбиения квадродерева, структуры разбиения двоичного дерева и структуры разбиения троичного дерева. Различные структуры древовидного разбиения могут последовательно применяться к CTU, в соответствии с предопределенным порядком приоритета. Например, структура разбиения квадродерева может преимущественным образом применяться к CTU. Единица кодирования, которая больше не может быть разбита с использованием структуры разбиения квадродерева, может соответствовать листовому узлу квадродерева. Единица кодирования, соответствующая листовому узлу квадродерева, может служить в качестве корневого узла структуры разбиения двоичного и/или троичного дерева. То есть, единица кодирования, соответствующая листовому узлу квадродерева, может быть далее разбита согласно структуре разбиения двоичного дерева или структуре разбиения троичного дерева или может больше не разбиваться. Поэтому, путем запрещения блоку кодирования, который является результатом разбиения двоичного дерева или разбиения троичного дерева единицы кодирования, соответствующей листовому узлу квадродерева, подвергаться дальнейшему разбиению квадродерева, может эффективно выполняться разбиение блока и/или сигнализация информации разбиения.[00193] As described above, in order to split the CTU, at least one of a quadtree splitting structure, a binary tree splitting structure, and a ternary tree splitting structure can be applied. Different tree partitioning structures can be applied sequentially to CTUs, according to a predefined order of priority. For example, a quadtree partitioning structure may advantageously apply to a CTU. A coding unit that can no longer be split using the quadtree splitting structure may correspond to a quadtree leaf node. The encoding unit corresponding to a leaf node of the quadtree may serve as the root node of the binary and/or ternary tree partition structure. That is, the encoding unit corresponding to a quadtree leaf node may be further partitioned according to a binary tree partitioning structure or a ternary tree partitioning structure, or may not be partitioned any more. Therefore, by prohibiting a coding block that results from binary tree splitting or ternary tree splitting of a coding unit corresponding to a quadtree leaf node from undergoing further quadtree splitting, block splitting and/or signaling of splitting information can be effectively performed.
[00194] Тот факт, что единица кодирования, соответствующая узлу квадродерева, является разделенной, может сигнализироваться с использованием информации квадро-разбиения. Информация квадро-разбиения, имеющая первое значение (например, “1”), может указывать, что текущая единица кодирования разбита согласно структуре разбиения квадродерева. Информация квадро-разбиения, имеющая второе значение (например, “0”), может указывать, что текущая единица кодирования не разбита согласно структуре разбиения квадродерева. Информация квадро-разбиения может представлять собой флаг, имеющий предопределенную длину (например, один бит).[00194] The fact that a coding unit corresponding to a quadtree node is partitioned may be signaled using quad-partition information. The quad-split information having a first value (eg, “1”) may indicate that the current encoding unit is split according to a quad-tree split structure. Quad-split information having a second value (eg, “0”) may indicate that the current encoding unit is not split according to a quad-tree split structure. The quad partition information may be a flag having a predetermined length (eg, one bit).
[00195] Может не иметься приоритета между разбиением двоичного дерева и разбиением троичного дерева. То есть, единица кодирования, соответствующая листовому узлу квадродерева, может далее подвергаться произвольному разбиению из разбиения двоичного дерева и разбиения троичного дерева. Кроме того, единица кодирования, сгенерированная посредством разбиения двоичного дерева или разбиения троичного дерева, может подвергаться дальнейшему разбиению двоичного дерева или дальнейшему разбиению троичного дерева или может не разбиваться далее.[00195] There may be no priority between binary tree splitting and ternary tree splitting. That is, the encoding unit corresponding to a leaf node of the quadtree may further be subject to arbitrary partitioning from a binary tree partition and a ternary tree partition. In addition, the encoding unit generated by binary tree splitting or ternary tree splitting may be subject to further binary tree splitting or further ternary tree splitting, or may not be further split.
[00196] Древовидная структура, в которой не имеется приоритета среди разбиения двоичного дерева и разбиения троичного дерева, упоминается как структура дерева множества типов. Единица кодирования, соответствующая листовому узлу квадродерева, может служить в качестве корневого узла дерева множества типов. То, следует ли разбивать единицу кодирования, которая соответствует узлу дерева множества типов, может сигнализироваться с использованием по меньшей мере одной из информации указания разбиения дерева множества типов, информации направления разбиения и информации дерева разбиения. Для разбиения единицы кодирования, соответствующей узлу дерева множества типов, информация указания разбиения дерева множества типов, направление разбиения и информация дерева разбиения могут последовательно сигнализироваться.[00196] A tree structure in which there is no priority among binary tree partitioning and ternary tree partitioning is referred to as a multi-type tree structure. The encoding unit corresponding to a leaf node of a quadtree can serve as the root node of a tree of multiple types. Whether or not to split an encoding unit that corresponds to a node of a multi-type tree may be signaled using at least one of multi-type tree splitting indication information, splitting direction information, and splitting tree information. To partition an encoding unit corresponding to a node of a multi-type tree, the multi-type tree partitioning indication information, the partitioning direction, and the partition tree information may be signaled sequentially.
[00197] Информация указания разбиения дерева множества типов, имеющая первое значение (например, “1”), может указывать, что текущая единица кодирования должна подвергаться разбиению дерева множества типов. Информация указания разбиения дерева множества типов, имеющая второе значение (например, “0”), может указывать, что текущая единица кодирования не должна подвергаться разбиению дерева множества типов.[00197] The multi-type tree splitting indication information having a first value (eg, “1”) may indicate that the current encoding unit should undergo multi-type tree splitting. The multitype tree splitting indication information having a second value (eg, “0”) may indicate that the current encoding unit should not undergo multitype tree splitting.
[00198] Когда единица кодирования, соответствующая узлу дерева множества типов, дополнительно разбивается согласно структуре разбиения дерева множества типов, единица кодирования может включать информацию направления разбиения. Информация направления разбиения может указывать, в каком направлении следует разбивать текущую единицу кодирования для разбиения дерева множества типов. Информация направления разбиения, имеющая первое значение (например, “1”), может указывать, что текущая единица кодирования должна разбиваться по вертикали. Информация направления разбиения, имеющая второе значение (например, “0”), может указывать, что текущая единица кодирования должна разбиваться по горизонтали.[00198] When an encoding unit corresponding to a node of a multi-type tree is further partitioned according to a partitioning structure of the multi-type tree, the encoding unit may include partitioning direction information. The split direction information may indicate in which direction the current encoding unit should be split to split a tree of multiple types. The split direction information having a first value (eg, “1”) may indicate that the current coding unit should be split vertically. The split direction information having a second value (eg, “0”) may indicate that the current coding unit should be split horizontally.
[00199] Когда единица кодирования, соответствующая узлу дерева множества типов, дополнительно разбивается согласно структуре разбиения дерева множества типов, текущая единица кодирования может включать информацию дерева разбиения. Информация дерева разбиения может указывать структуру дерева разбиения, которая должна использоваться для разбиения узла дерева множества типов. Информация дерева разбиения, имеющая первое значение (например, “1”), может указывать, что текущая единица кодирования должна разбиваться согласно структуре разбиения двоичного дерева. Информация дерева разбиения, имеющая второе значение (например, “0”), может указывать, что текущая единица кодирования должна разбиваться согласно структуре разбиения троичного дерева.[00199] When an encoding unit corresponding to a multi-type tree node is further partitioned according to a multi-type tree partitioning structure, the current encoding unit may include partition tree information. The partitioning tree information may indicate a partitioning tree structure that should be used to partition a tree node of the plurality of types. The split tree information having a first value (eg, “1”) may indicate that the current encoding unit should be split according to the binary tree split structure. The split tree information having a second value (eg, “0”) may indicate that the current coding unit should be split according to a ternary tree split structure.
[00200] Информация указания разбиения, информация дерева разбиения и информация направления разбиения могут, каждая, представлять собой флаг, имеющий предопределенную длину (например, один бит).[00200] The partition indication information, the partition tree information, and the partition direction information may each be a flag having a predetermined length (eg, one bit).
[00201] По меньшей мере любая одна из информации указания разбиения квадродерева, информации указания разбиения дерева множества типов, информации направления разбиения и информации дерева разбиения может энтропийно кодироваться/декодироваться. Для энтропийного кодирования/декодирования этих типов информации, может использоваться информация о соседней единице кодирования, смежной с текущей единицей кодирования. Например, существует высокая вероятность того, что тип разбиения (разбита или неразбита, дерево разбиения и/или направление разбиения) левой соседней единицы кодирования и/или верхней соседней единицы кодирования текущей единицы кодирования подобен таковому для текущей единицы кодирования. Поэтому, контекстная информация для энтропийного кодирования/декодирования информации о текущей единице кодирования может быть выведена из информации о соседних единицах кодирования. Информация о соседних единицах кодирования может включать по меньшей мере любое одно из информации квадро-разбиения, информации указания разбиения дерева множества типов, информации направления разбиения и информации дерева разбиения.[00201] At least any one of the quad-tree partition indication information, the multi-type tree partition indication information, the partition direction information, and the partition tree information may be entropy encoded/decoded. For entropy encoding/decoding of these types of information, information about a neighboring coding unit adjacent to the current coding unit can be used. For example, there is a high probability that the split type (split or unsplit, split tree and/or split direction) of the left adjacent coding unit and/or top neighboring coding unit of the current coding unit is similar to that of the current coding unit. Therefore, context information for entropy encoding/decoding information about the current encoding unit can be inferred from information about neighboring encoding units. The neighbor encoding unit information may include at least any one of quad-partitioning information, multi-type tree partitioning indication information, partitioning direction information, and partitioning tree information.
[00202] В качестве другого примера, из разбиения двоичного дерева и разбиения троичного дерева, предпочтительно может выполняться разбиение двоичного дерева. То есть, текущая единица кодирования может главным образом подвергаться разбиению двоичного дерева, и затем единица кодирования, соответствующая листовому узлу двоичного дерева, может быть установлена в качестве корневого узла для разбиения троичного дерева. В этом случае, ни разбиение квадродерева, ни разбиение двоичного дерева может не выполняться над единицей кодирования, соответствующей узлу троичного дерева.[00202] As another example, from binary tree splitting and ternary tree splitting, binary tree splitting may preferably be performed. That is, the current encoding unit may be mainly subjected to binary tree splitting, and then the encoding unit corresponding to a leaf node of the binary tree may be set as a root node for ternary tree splitting. In this case, neither the quadtree split nor the binary tree split may be performed on the coding unit corresponding to the ternary tree node.
[00203] Единица кодирования, которая не может разбиваться согласно структуре разбиения квадродерева, структуре разбиения двоичного дерева и/или структуре разбиения троичного дерева, становится базовой единицей для кодирования, предсказания и/или преобразования. То есть, единица кодирования не может далее разбиваться для предсказания и/или преобразования. Поэтому, информация структуры разбиения и информация разбиения, используемая для разбиения единицы кодирования в единицы предсказания и/или единицы преобразования, не может быть представлена в битовом потоке.[00203] An encoding unit that cannot be partitioned according to a quadtree partition structure, a binary tree partition structure, and/or a ternary tree partition structure becomes a basic unit for encoding, prediction, and/or transformation. That is, the coding unit cannot be further broken down for prediction and/or transformation. Therefore, the partitioning structure information and the partitioning information used to partition the encoding unit into prediction units and/or transformation units cannot be represented in the bit stream.
[00204] Однако, когда размер единицы кодирования (т.е., базовой единицы для разбиения) больше, чем размер максимального блока преобразования, единица кодирования может рекурсивно разбиваться до тех пор, пока размер единицы кодирования не уменьшится, чтобы стать равным или меньшим, чем размер максимального блока преобразования. Например, когда размер единицы кодирования равен 64×64 и когда размер максимального блока преобразования равен 32×32, единица кодирования может разбиваться на четыре 32×32 блока для преобразования. Например, когда размер единицы кодирования равен 32×64 и размер максимального блока преобразования равен 32×32, единица кодирования может разбиваться на два 32×32 блока для преобразования. В этом случае, разбиение единицы кодирования для преобразования не сигнализируется отдельно и может определяться путем сравнения между горизонтальным или вертикальным размером единицы кодирования и горизонтальным или вертикальным размером максимального блока преобразования. Например, когда горизонтальный размер (ширина) единицы кодирования больше, чем горизонтальный размер (ширина) максимального блока преобразования, единица кодирования может быть вертикально разделена пополам. Например, когда вертикальный размер (длина) единицы кодирования больше, чем вертикальный размер (длина) максимального блока преобразования, единица кодирования может быть горизонтально разделена пополам.[00204] However, when the size of the coding unit (i.e., the base unit for partitioning) is larger than the size of the maximum transform block, the coding unit may be recursively divided until the size of the coding unit is reduced to be equal to or less than than the size of the maximum conversion block. For example, when the coding unit size is 64×64 and when the maximum transform block size is 32×32, the coding unit may be divided into four 32×32 transform blocks. For example, when the coding unit size is 32×64 and the maximum transform block size is 32×32, the coding unit may be divided into two 32×32 transform blocks. In this case, the partition of the coding unit for transformation is not signaled separately and can be determined by comparison between the horizontal or vertical size of the coding unit and the horizontal or vertical size of the maximum transformation block. For example, when the horizontal size (width) of a coding unit is larger than the horizontal size (width) of a maximum transform block, the coding unit may be vertically divided in half. For example, when the vertical size (length) of a coding unit is larger than the vertical size (length) of a maximum transform block, the coding unit may be horizontally divided into halves.
[00205] Информация о максимальном и/или минимальном размере единицы кодирования и информация о максимальном и/или минимальном размере блока преобразования может сигнализироваться или определяться на более высоком уровне единицы кодирования. Более высокий уровень может представлять собой, например, уровень последовательности, уровень картинки, уровень слайса, уровень группы мозаичных элементов, уровень мозаичного элемента или т.п. Например, минимальный размер единицы кодирования может быть определен как 4×4. Например, максимальный размер блока преобразования может быть определен как 64×64. Например, минимальный размер блока преобразования может быть определен как 4×4.[00205] The maximum and/or minimum coding unit size information and the maximum and/or minimum transform block size information may be signaled or determined at a higher coding unit level. The higher level may be, for example, a sequence level, a picture level, a slice level, a tile group level, a tile level, or the like. For example, the minimum coding unit size may be defined as 4x4. For example, the maximum transform block size may be defined as 64×64. For example, the minimum transform block size may be defined as 4x4.
[00206] Информация о минимальном размере (минимальном размере квадродерева) единицы кодирования, соответствующей листовому узлу квадродерева, и/или информация о максимальной глубине (максимальной глубине дерева для дерева множества типов) от корневого узла до листового узла дерева множества типов может сигнализироваться или определяться на более высоком уровне единицы кодирования. Например, более высокий уровень может представлять собой уровень последовательности, уровень картинки, уровень слайса, уровень группы мозаичных элементов, уровень мозаичного элемента или т.п. Информация о минимальном размере квадродерева и/или информация о максимальной глубине дерева множества типов может сигнализироваться или определяться для каждого из внутри-картинного слайса и меж-картинного слайса.[00206] Information about the minimum size (minimum quadtree size) of a coding unit corresponding to a leaf node of the quadtree, and/or information about the maximum depth (maximum tree depth for a tree of multiple types) from a root node to a leaf node of a tree of multiple types may be signaled or determined at higher level coding unit. For example, the higher level may be a sequence level, a picture level, a slice level, a tile group level, a tile level, or the like. Minimum quadtree size information and/or maximum tree depth information of multiple types may be signaled or determined for each of the intra-picture slice and inter-picture slice.
[00207] Разностная информация между размером CTU и максимальным размером блока преобразования может сигнализироваться или определяться на более высоком уровне единицы кодирования. Например, более высокий уровень может представлять собой уровень последовательности, уровень картинки, уровень слайса, уровень группы мозаичных элементов, уровень мозаичного элемента или т.п. Информация о максимальном размере единиц кодирования, соответствующих соответственным узлам двоичного дерева (далее упоминается как максимальный размер двоичного дерева), может определяться на основе размера единицы дерева кодирования и разностной информации. Максимальный размер единиц кодирования, соответствующих соответственным узлам троичного дерева (далее упоминается как максимальный размер троичного дерева), может варьироваться в зависимости от типа слайса. Например, для внутри-картинного слайса, максимальный размер троичного дерева может быть 32×32. Например, для меж-картинного слайса, максимальный размер троичного дерева может быть 128×128. Например, минимальный размер единиц кодирования, соответствующих соответственным узлам двоичного дерева (далее упоминается как минимальный размер двоичного дерева), и/или минимальный размер единиц кодирования, соответствующих соответственным узлам троичного дерева (далее упоминается как минимальный размер троичного дерева), может быть установлен в качестве минимального размера блока кодирования.[00207] The difference information between the CTU size and the maximum transform unit size may be signaled or determined at a higher coding unit level. For example, the higher level may be a sequence level, a picture level, a slice level, a tile group level, a tile level, or the like. Information about the maximum size of encoding units corresponding to the corresponding nodes of the binary tree (hereinafter referred to as the maximum size of the binary tree) may be determined based on the unit size of the encoding tree and the delta information. The maximum size of coding units corresponding to the corresponding nodes of the ternary tree (hereinafter referred to as the maximum size of the ternary tree) may vary depending on the type of slice. For example, for an intra-picture slice, the maximum size of the ternary tree can be 32x32. For example, for an inter-picture slice, the maximum size of the ternary tree can be 128x128. For example, the minimum size of encoding units corresponding to the corresponding binary tree nodes (hereinafter referred to as the minimum binary tree size) and/or the minimum size of encoding units corresponding to the corresponding ternary tree nodes (hereinafter referred to as the minimum ternary tree size) may be set as minimum coding block size.
[00208] В качестве другого примера, максимальный размер двоичного дерева и/или максимальный размер троичного дерева может сигнализироваться или определяться на уровне слайса. Альтернативно, минимальный размер двоичного дерева и/или минимальный размер троичного дерева может сигнализироваться или определяться на уровне слайса.[00208] As another example, the maximum binary tree size and/or the maximum ternary tree size may be signaled or determined at the slice level. Alternatively, the minimum binary tree size and/or the minimum ternary tree size may be signaled or determined at the slice level.
[00209] В зависимости от размера и информации глубины вышеописанных различных блоков, информация квадро-разбиения, информация указания разбиения дерева множества типов, информация дерева разбиения и/или информация направления разбиения могут включаться или могут не включаться в битовый поток.[00209] Depending on the size and depth information of the various blocks described above, quad-partitioning information, multiple-type tree partitioning indication information, partitioning tree information, and/or partitioning direction information may or may not be included in the bitstream.
[00210] Например, когда размер единицы кодирования не больше, чем минимальный размер квадродерева, единица кодирования не содержит информацию квадро-разбиения. Таким образом, информация квадро-разбиения может быть выведена из второго значения.[00210] For example, when the size of a coding unit is not larger than the minimum quadtree size, the coding unit does not contain quad-partitioning information. Thus, the quad-partition information can be inferred from the second value.
[00211] Например, когда размеры (горизонтальный и вертикальный размеры) единицы кодирования, соответствующей узлу дерева множества типов, больше, чем максимальные размеры (горизонтальный и вертикальный размеры) двоичного дерева и/или максимальные размеры (горизонтальный и вертикальный размеры) троичного дерева, единица кодирования не может быть двоично разделенной или троично разделенной. Соответственно, информация указания разбиения дерева множества типов может не сигнализироваться, а может выводиться из второго значения.[00211] For example, when the dimensions (horizontal and vertical dimensions) of a coding unit corresponding to a tree node of a plurality of types are larger than the maximum dimensions (horizontal and vertical dimensions) of a binary tree and/or the maximum dimensions (horizontal and vertical dimensions) of a ternary tree, the unit encoding cannot be binary separated or ternary separated. Accordingly, tree splitting indication information of a plurality of types may not be signaled, but may be derived from the second value.
[00212] Альтернативно, когда размеры (горизонтальный и вертикальный размеры) единицы кодирования, соответствующей узлу дерева множества типов, являются теми же самыми, что и максимальные размеры (горизонтальный и вертикальный размеры) двоичного дерева и/или в два раза больше, чем максимальные размеры (горизонтальный и вертикальный размеры) троичного дерева, единица кодирования не может далее двоично разделяться или троично разделяться. Соответственно, информация указания разбиения дерева множества типов может не сигнализироваться, а может выводиться из второго значения. Это объясняется тем, что когда единица кодирования разбивается согласно структуре разбиения двоичного дерева и/или структуре разбиения троичного дерева, генерируется единица кодирования меньшая, чем минимальный размер двоичного дерева и/или минимальный размер троичного дерева.[00212] Alternatively, when the dimensions (horizontal and vertical dimensions) of the encoding unit corresponding to a tree node of the plurality of types are the same as the maximum dimensions (horizontal and vertical dimensions) of the binary tree and/or twice larger than the maximum dimensions (horizontal and vertical dimensions) of a ternary tree, the coding unit cannot be further binary-divided or ternary-divided. Accordingly, tree splitting indication information of a plurality of types may not be signaled, but may be derived from the second value. This is because when a coding unit is split according to a binary tree splitting structure and/or a ternary tree splitting structure, a coding unit smaller than the minimum binary tree size and/or the minimum ternary tree size is generated.
[00213] Альтернативно, разбиение двоичного дерева или разбиение троичного дерева может быть ограничено на основе размера единицы данных виртуального конвейера (далее, размер буфера конвейера). Например, когда единица кодирования разделяется на под-единицы кодирования, которые не соответствуют размеру буфера конвейера, посредством разбиения двоичного дерева или разбиения троичного дерева, соответствующее разбиение двоичного дерева или разбиение троичного дерева может ограничиваться. Размер буфера конвейера может быть размером максимального блока преобразования (например, 64×64). Например, когда размер буфера конвейера составляет 64×64, разделение, приведенное ниже, может ограничиваться.[00213] Alternatively, the binary tree split or ternary tree split may be limited based on the size of the virtual pipeline data unit (hereinafter, pipeline buffer size). For example, when an encoding unit is divided into sub-encoding units that do not correspond to a pipeline buffer size by a binary tree split or a ternary tree split, the corresponding binary tree split or ternary tree split may be constrained. The pipeline buffer size can be the size of the maximum translation block (for example, 64x64). For example, when the pipeline buffer size is 64x64, the division below may be limited.
[00214] - N×M (N и/или M равно 128) Разбиение троичного дерева для единиц кодирования[00214] - N×M (N and/or M is 128) Ternary tree partition for coding units
[00215] - 128×N (N<=64) Разбиение двоичного дерева в горизонтальном направлении для единиц кодирования[00215] - 128×N (N<=64) Horizontal binary tree split for coding units
[00216] - N×128 (N<=64) Разбиение двоичного дерева в вертикальном направлении для единиц кодирования[00216] - N×128 (N<=64) Vertical binary tree partition for coding units
[00217] Альтернативно, когда глубина единицы кодирования, соответствующей узлу дерева множества типов, равна максимальной глубине дерева множества типов, единица кодирования не может далее двоично разбиваться и/или троично разбиваться. Соответственно, информация указания разбиения дерева множества типов может не сигнализироваться, а может выводиться из второго значения.[00217] Alternatively, when the depth of a coding unit corresponding to a multi-type tree node is equal to the maximum depth of the multi-type tree, the coding unit cannot be further binary and/or ternary split. Accordingly, tree splitting indication information of a plurality of types may not be signaled, but may be derived from the second value.
[00218] Альтернативно, только когда по меньшей мере одно из разбиения двоичного дерева в вертикальном направлении, разбиения двоичного дерева в горизонтальном направлении, разбиения троичного дерева в вертикальном направлении и разбиения троичного дерева в горизонтальном направлении возможно для единицы кодирования, соответствующей узлу дерева множества типов, может сигнализироваться информация указания разбиения дерева множества типов. В противном случае, единица кодирования не может двоично разбиваться и/или троично разбиваться. Соответственно, информация указания разбиения дерева множества типов может не сигнализироваться, а может выводиться из второго значения.[00218] Alternatively, only when at least one of vertical binary tree splitting, horizontal binary tree splitting, vertical ternary tree splitting, and horizontal ternary tree splitting is possible for a coding unit corresponding to a tree node of a plurality of types, tree splitting indicating information of a plurality of types may be signaled. Otherwise, the coding unit cannot be binary and/or ternary split. Accordingly, tree splitting indication information of a plurality of types may not be signaled, but may be derived from the second value.
[00219] Альтернативно, только когда для единицы кодирования, соответствующей узлу дерева множества типов, возможны как разбиение двоичного дерева в вертикальном направлении, так и разбиение двоичного дерева в горизонтальном направлении, или как разбиение троичного дерева в вертикальном направлении, так и разбиение троичного дерева в горизонтальном направлении, информация направления разбиения может сигнализироваться. В противном случае, информация направления разбиения может не сигнализироваться, а может выводиться из значения, указывающего возможные направления разбиения.[00219] Alternatively, only when, for a coding unit corresponding to a tree node of multiple types, both a binary tree split in the vertical direction and a binary tree split in the horizontal direction, or both a ternary tree split in the vertical direction and a ternary tree split in the horizontal direction, are possible horizontal direction, splitting direction information may be signaled. Otherwise, the split direction information may not be signaled, but may be inferred from a value indicating possible split directions.
[00220] Альтернативно, только когда для дерева кодирования, соответствующего узлу дерева множества типов, возможны как разбиение двоичного дерева в вертикальном направлении, так и разбиение троичного дерева в вертикальном направлении, или как разбиение двоичного дерева в горизонтальном направлении, так и разбиение троичного дерева в горизонтальном направлении, информация дерева разбиения может сигнализироваться. В противном случае, информация дерева разбиения может не сигнализироваться, а может выводиться из значения, указывающего возможное разбиение древовидной структуры.[00220] Alternatively, only when, for a coding tree corresponding to a tree node of multiple types, both a binary tree split in the vertical direction and a ternary tree split in the vertical direction are possible, or both a binary tree split in the horizontal direction and a ternary tree split in the horizontal direction, partition tree information may be signaled. Otherwise, the split tree information may not be signaled, but may be inferred from a value indicating a possible split of the tree structure.
[00221] Фиг. 4 представляет собой вид, показывающий процесс интра-предсказания.[00221] FIG. 4 is a view showing the intra-prediction process.
[00222] Стрелки от центра наружу на фиг. 4 могут представлять направления предсказания режимов интра-предсказания.[00222] The arrows are from the center outward in FIG. 4 may represent prediction directions of intra-prediction modes.
[00223] Интра-кодирование и/или декодирование может выполняться с использованием опорной выборки соседнего блока текущего блока. Соседний блок может быть восстановленным соседним блоком. Например, интра-кодирование и/или декодирование может выполняться с использованием параметра кодирования или значения опорной выборки, включенной в восстановленный соседний блок.[00223] Intra encoding and/or decoding may be performed using a reference sample of an adjacent block of the current block. The neighbor block may be a reconstructed neighbor block. For example, intra-encoding and/or decoding may be performed using an encoding parameter or a reference sample value included in the reconstructed neighboring block.
[00224] Блок предсказания может означать блок, сгенерированный посредством выполнения интра-предсказания. Блок предсказания может соответствовать по меньшей мере одной из CU, PU и TU. Единица блока предсказания может иметь размер одной из CU, PU и TU. Блок предсказания может быть квадратным блоком, имеющим размер 2×2, 4×4, 16×16, 32×32 или 64×64 и т.д., или может быть прямоугольным блоком, имеющим размер 2×8, 4×8, 2×16, 4×16 и 8×16 и т.д.[00224] A prediction block may mean a block generated by performing intra-prediction. The prediction unit may correspond to at least one of a CU, a PU, and a TU. The prediction block unit may have the size of one of CU, PU and TU. The prediction block may be a square block having a size of 2x2, 4x4, 16x16, 32x32 or 64x64, etc., or may be a rectangular block having a size of 2x8, 4x8, 2x16, 4x16 and 8x16, etc.
[00225] Интра-предсказание может выполняться согласно режиму интра-предсказания для текущего блока. Количество режимов интра-предсказания, которые может иметь текущий блок, может быть фиксированным значением и может быть значением, определяемым по-разному в соответствии с атрибутом блока предсказания. Например, атрибут блока предсказания может содержать размер блока предсказания и форму блока предсказания и т. д.[00225] Intra prediction may be performed according to the intra prediction mode for the current block. The number of intra-prediction modes that the current block can have may be a fixed value and may be a value defined differently according to an attribute of the prediction block. For example, the prediction block attribute may include the size of the prediction block and the shape of the prediction block, etc.
[00226] Количество режимов интра-предсказания может быть зафиксировано равным N независимо от размера блока. Или количество режимов интра-предсказания может быть 3, 5, 9, 17, 34, 35, 36, 65 или 67 и т.д. Альтернативно, количество режимов интра-предсказания может варьироваться в соответствии с размером блока или типом цветового компонента или обоими. Например, количество режимов интра-предсказания может варьироваться в соответствии с тем, является ли цветовой компонент сигналом яркости или сигналом цветности. Например, когда размер блока становится большим, количество режимов интра-предсказания может увеличиваться. Альтернативно, количество режимов интра-предсказания блока компонента яркости может быть больше, чем количество режимов интра-предсказания блока компонента цветности.[00226] The number of intra-prediction modes may be fixed to N regardless of the block size. Or the number of intra-prediction modes can be 3, 5, 9, 17, 34, 35, 36, 65 or 67, etc. Alternatively, the number of intra-prediction modes may vary according to the block size or color component type or both. For example, the number of intra-prediction modes may vary according to whether the color component is a luma signal or a chrominance signal. For example, when the block size becomes large, the number of intra-prediction modes may increase. Alternatively, the number of intra-prediction modes of the luma component block may be greater than the number of intra-prediction modes of the chrominance component block.
[00227] Режим интра-предсказания может быть неугловым режимом или угловым режимом. Неугловой режим может быть режимом DC или планарным режимом, а угловой режим может быть режимом предсказания, имеющим конкретное направление или угол. Режим интра-предсказания может быть выражен по меньшей мере одним из номера режима, значения режима, символа номера режима, угла режима и направления режима. Количество режимов интра-предсказания может быть M, которое больше 1, включая неугловой и угловой режим. Для интра-предсказания текущего блока может быть выполнен этап определения того, могут ли выборки, включенные в восстановленный соседний блок, использоваться в качестве опорных выборок текущего блока. Когда присутствует выборка, которая не может использоваться в качестве опорной выборки текущего блока, значение, полученное путем дублирования или выполнения интерполяции по меньшей мере одного значения выборки среди выборок, включенных в восстановленный соседний блок, или оба могут использоваться для замены неиспользуемым значением выборки для выборки, таким образом, замененное значение выборки используется в качестве опорной выборки текущего блока.[00227] The intra-prediction mode may be a non-angular mode or an angular mode. The non-angular mode may be a DC mode or a planar mode, and the angular mode may be a prediction mode having a specific direction or angle. The intra-prediction mode may be expressed by at least one of a mode number, a mode value, a mode number symbol, a mode angle, and a mode direction. The number of intra-prediction modes can be M, which is greater than 1, including non-angular and angular mode. For intra-prediction of the current block, the step of determining whether samples included in the reconstructed neighboring block can be used as reference samples of the current block can be performed. When there is a sample that cannot be used as the reference sample of the current block, the value obtained by duplicating or interpolating at least one sample value among the samples included in the reconstructed adjacent block, or both, can be used to replace the unused sample value for the sample. thus, the replaced sample value is used as the reference sample of the current block.
[00228] Фиг. 7 представляет собой диаграмму, иллюстрирующую опорные выборки, которые могут использоваться для интра-предсказания.[00228] FIG. 7 is a diagram illustrating reference samples that can be used for intra-prediction.
[00229] Как показано на фиг. 7, по меньшей мере одна из линии 0 опорной выборки и линии 3 опорной выборки может использоваться для интра-предсказания текущего блока. На фиг. 7, выборки сегмента A и сегмента F могут быть дополнены выборками, ближайшими к сегменту B и сегменту E, соответственно, вместо извлечения из восстановленного соседнего блока. Информация индекса, указывающая линию опорной выборки, которая должна использоваться для интра-предсказания текущего блока, может сигнализироваться. Когда верхняя граница текущего блока является границей CTU, может быть доступна только линия 0 опорной выборки. Следовательно, в этом случае информация индекса может не сигнализироваться. Когда используется линия опорной выборки, отличная от линии 0 опорной выборки, фильтрация для блока предсказания, который будет описан далее, может не выполняться.[00229] As shown in FIG. 7, at least one of reference sample line 0 and reference sample line 3 may be used for intra-prediction of the current block. In fig. 7, the samples of segment A and segment F can be padded with samples closest to segment B and segment E, respectively, instead of extracting from the reconstructed neighboring block. Index information indicating the reference sample line that should be used for intra-prediction of the current block may be signaled. When the upper boundary of the current block is the CTU boundary, only line 0 of the reference sample can be accessed. Therefore, in this case, the index information may not be signaled. When a reference sample line other than reference sample line 0 is used, filtering for the prediction block to be described later may not be performed.
[00230] При интра-предсказании, фильтр может применяться по меньшей мере к одной из опорной выборки и выборки предсказания на основе режима интра-предсказания и текущего размера блока.[00230] In intra-prediction, a filter may be applied to at least one of a reference sample and a prediction sample based on the intra-prediction mode and the current block size.
[00231] В случае планарного режима, при генерации блока предсказания текущего блока, в соответствии с положением целевой выборки предсказания в блоке предсказания, значение выборки целевой выборки предсказания может быть сгенерировано с использованием взвешенной суммы опорной выборки верхней и левой стороны для текущей выборки, и опорной выборки правой верхней стороны и левой нижней стороны текущего блока. Кроме того, в случае режима DC, при генерации блока предсказания текущего блока, может использоваться среднее значение опорных выборок верхней и левой стороны текущего блока. Кроме того, в случае углового режима, блок предсказания может быть сгенерирован с использованием опорной выборки верхней стороны, левой стороны, правой верхней стороны и/или левой нижней стороны текущего блока. Чтобы сгенерировать значение выборки предсказания, может выполняться интерполяция единицы действительного числа.[00231] In the case of the planar mode, when generating a prediction block of the current block, according to the position of the prediction target sample in the prediction block, the sample value of the prediction target sample can be generated using the weighted sum of the top and left side reference samples for the current sample, and the reference samples the top right side and bottom left side of the current block. In addition, in the case of DC mode, when generating a prediction block of the current block, the average value of the reference samples of the top and left side of the current block may be used. Moreover, in the case of corner mode, a prediction block may be generated using a reference sample of the top side, left side, right top side, and/or left bottom side of the current block. To generate a prediction sample value, unit interpolation of the real number may be performed.
[00232] В случае интра-предсказания между цветовыми компонентами, блок предсказания для текущего блока второго цветового компонента может быть сгенерирован на основе соответствующего восстановленного блока первого цветового компонента. Например, первый цветовой компонент может быть компонентом яркости, а второй цветовой компонент может быть компонентом цветности. Для интра-предсказания между цветовыми компонентами, параметры линейной модели между первым цветовым компонентом и вторым цветовым компонентом могут быть получены на основе шаблона. Шаблон может включать в себя верхние и/или левые соседние выборки текущего блока и верхние и/или левые соседние выборки восстановленного блока первого цветового компонента, соответствующего ему. Например, параметры линейной модели могут быть выведены с использованием значения выборки первого цветового компонента, имеющего максимальное значение среди выборок в шаблоне, и значения выборки второго цветового компонента, соответствующего ему, и значения выборки первого цветового компонента, имеющего минимальное значение среди выборок в шаблоне, и значения выборки второго цветового компонента, соответствующего ему. Когда параметры линейной модели выведены, соответствующий восстановленный блок может быть применен к линейной модели, чтобы сгенерировать блок предсказания для текущего блока. В соответствии с форматом видео, субдискретизация может выполняться над соседними выборками восстановленного блока первого цветового компонента и соответствующего восстановленного блока. Например, когда одна выборка второго цветового компонента соответствует четырем выборкам первого цветового компонента, четыре выборки первого цветового компонента могут быть субдискретизированы для вычисления одной соответствующей выборки. В этом случае выведение параметров линейной модели и интра-предсказание между цветовыми компонентами может выполняться на основе соответствующих субдискретизированных выборок. Следует ли или нет выполнять интра-предсказание между цветовыми компонентами и/или диапазон шаблона, может сигнализироваться как режим интра-предсказания.[00232] In the case of intra-prediction between color components, a prediction block for the current block of the second color component can be generated based on the corresponding reconstructed block of the first color component. For example, the first color component may be a luma component, and the second color component may be a chrominance component. For intra-prediction between color components, parameters of a linear model between the first color component and the second color component can be obtained based on the template. The template may include top and/or left neighbor samples of the current block and top and/or left neighbor samples of the reconstructed block of the first color component corresponding thereto. For example, the linear model parameters may be derived using the sample value of the first color component having the maximum value among the samples in the template, and the sample value of the second color component corresponding to it, and the sample value of the first color component having the minimum value among the samples in the template, and the sample value of the second color component corresponding to it. Once the parameters of the linear model are inferred, the corresponding reconstructed block can be applied to the linear model to generate a prediction block for the current block. According to the video format, subsampling may be performed on adjacent samples of the reconstructed block of the first color component and the corresponding reconstructed block. For example, when one sample of the second color component corresponds to four samples of the first color component, the four samples of the first color component may be subsampled to compute one corresponding sample. In this case, inference of linear model parameters and intra-prediction between color components can be performed based on the corresponding subsampled samples. Whether or not to perform intra-prediction between color components and/or pattern range may be signaled as an intra-prediction mode.
[00233] Текущий блок может разбиваться на два или четыре подблока в горизонтальном или вертикальном направлении. Разбитые подблоки могут быть последовательно восстановлены. То есть, интра-предсказание может выполняться над подблоком, чтобы сгенерировать подблок предсказания. Кроме того, деквантование и/или обратное преобразование может выполняться над подблоками для генерации остаточных подблоков. Восстановленный подблок может быть сгенерирован путем добавления подблока предсказания к остаточному подблоку. Восстановленный подблок может быть использован в качестве опорной выборки для интра-предсказания под-подблоков. Подблок может быть блоком, содержащим предопределенное количество (например, 16) или более выборок. Соответственно, например, когда текущий блок является блоком 8×4 или 4×8, текущий блок может разбиваться на два подблока. Кроме того, когда текущий блок является блоком 4×4, текущий блок не может разбиваться на подблоки. Когда текущий блок имеет другие размеры, текущий блок может разбиваться на четыре подблока. Информация о том, выполнять ли интра-предсказание на основе подблоков и/или направление разбиения (горизонтальное или вертикальное), может сигнализироваться. Интра-предсказание, основанное на подблоках, может быть ограничено выполнением только тогда, когда используется линия 0 опорной выборки. Когда выполняется интра-предсказание на основе подблока, фильтрация для блока предсказания, которая будет описана позже, может не выполняться.[00233] The current block can be divided into two or four sub-blocks in the horizontal or vertical direction. Broken subblocks can be sequentially restored. That is, intra-prediction may be performed on the sub-block to generate a prediction sub-block. Additionally, dequantization and/or deconversion may be performed on the subblocks to generate residual subblocks. The reconstructed subblock can be generated by adding a prediction subblock to the residual subblock. The reconstructed sub-block can be used as a reference sample for intra-prediction of sub-sub-blocks. A subblock may be a block containing a predetermined number (eg, 16) or more samples. Accordingly, for example, when the current block is an 8×4 or 4×8 block, the current block may be divided into two sub-blocks. In addition, when the current block is a 4x4 block, the current block cannot be divided into subblocks. When the current block has different sizes, the current block can be split into four subblocks. Information about whether to perform intra-prediction based on sub-blocks and/or the direction of partitioning (horizontal or vertical) may be signaled. Intra-prediction based on sub-blocks can be limited to execution only when reference sample line 0 is used. When intra-prediction based on a sub-block is performed, filtering for the prediction block, which will be described later, may not be performed.
[00234] Окончательный блок предсказания может быть сгенерирован путем выполнения фильтрации на блоке предсказания, который является интра-предсказанным. Фильтрация может быть выполнена путем применения предопределенных весов к целевой выборке фильтрации, левой опорной выборке, верхней опорной выборке и/или верхней левой опорной выборке. Вес и/или опорная выборка (диапазон, положение и т.д.), используемые для фильтрации, могут быть определены на основе по меньшей мере одного из размера блока, режима интра-предсказания и положения целевой выборки фильтрации в блоке предсказания. Фильтрация может выполняться только в случае предопределенного режима интра-предсказания (например, DC, планарный, вертикальный, горизонтальный, диагональный и/или смежный диагональный режимы). Смежный диагональный режим может быть режимом, в котором k добавляется к диагональному режиму или вычитается из него. Например, k может быть целым положительным числом 8 или меньше.[00234] The final prediction block can be generated by performing filtering on a prediction block that is intra-predicted. Filtering can be performed by applying predefined weights to the filter target sample, the left reference sample, the top reference sample, and/or the top left reference sample. The weight and/or reference sample (range, position, etc.) used for filtering may be determined based on at least one of block size, intra-prediction mode, and position of the target filter sample in the prediction block. Filtering can only be performed in the case of a predefined intra-prediction mode (eg, DC, planar, vertical, horizontal, diagonal and/or adjacent diagonal modes). An adjacent diagonal mode may be a mode in which k is added to or subtracted from the diagonal mode. For example, k can be a positive integer 8 or less.
[00235] Режим интра-предсказания текущего блока может быть энтропийно закодирован/декодирован посредством предсказания режима интра-предсказания блока, расположенного смежно с текущим блоком. Когда режимы интра-предсказания текущего блока и соседнего блока идентичны, информация о том, что режимы интра-предсказания текущего блока и соседнего блока идентичны, может сигнализироваться с использованием информации предопределенного флага. Кроме того, может сигнализироваться информация указателя режима интра-предсказания, который идентичен режиму интра-предсказания текущего блока среди режимов интра-предсказания множества соседних блоков. Когда режимы интра-предсказания текущего блока и соседнего блока различны, информация режима интра-предсказания текущего блока может быть энтропийно кодирована/декодирована посредством выполнения энтропийного кодирования/декодирования на основе режима интра-предсказания соседнего блока.[00235] The intra-prediction mode of the current block can be entropy encoded/decoded by predicting the intra-prediction mode of a block adjacent to the current block. When the intra-prediction modes of the current block and the neighboring block are identical, information that the intra-prediction modes of the current block and the neighboring block are identical may be signaled using predefined flag information. In addition, intra-prediction mode indicator information that is identical to the intra-prediction mode of the current block among the intra-prediction modes of a plurality of neighboring blocks may be signaled. When the intra-prediction modes of the current block and the neighboring block are different, the intra-prediction mode information of the current block can be entropy encoded/decoded by performing entropy encoding/decoding based on the intra-prediction mode of the neighboring block.
[00236] Фиг. 5 представляет собой диаграмму, иллюстрирующую вариант осуществления процесса интер-предсказания.[00236] FIG. 5 is a diagram illustrating an embodiment of the inter-prediction process.
[00237] На фиг. 5 прямоугольник может представлять картинку. На фиг. 5 стрелка представляет направление предсказания. Картинки могут быть классифицированы на внутренние картинки (I-картинки), картинки с предсказанием (предиктивные) (P-картинки) и картинки с двунаправленным предсказанием (би-предиктивные) (B-картинки) в соответствии с их типом кодирования.[00237] In FIG. 5 a rectangle can represent a picture. In fig. 5, the arrow represents the direction of the prediction. Pictures can be classified into intrinsic pictures (I-pictures), predictive pictures (P-pictures) and bi-predictive pictures (B-pictures) according to their encoding type.
[00238] I-картинка может кодироваться посредством интра-предсказания без необходимости меж-картинного (межкадрового) предсказания. Р-картинка может кодироваться посредством меж-картинного предсказания с использованием опорной картинки, которая присутствует в одном направлении (то есть, в прямом направлении или обратном направлении) относительно текущего блока. B-картинка может кодироваться посредством меж-картинного предсказания с использованием опорных картинок, которые предварительно установлены в двух направлениях (то есть прямом направлении и обратном направлении) относительно текущего блока. Когда используется меж-картинное предсказание, кодер может выполнять интер-предсказание или компенсацию движения, а декодер может выполнять соответствующую компенсацию движения.[00238] The I-picture can be encoded by intra-prediction without the need for inter-picture (inter-frame) prediction. The P-picture may be encoded by inter-picture prediction using a reference picture that is present in one direction (ie, forward direction or backward direction) relative to the current block. The B-picture may be encoded by inter-picture prediction using reference pictures that are preset in two directions (ie, forward direction and backward direction) relative to the current block. When inter-picture prediction is used, the encoder may perform inter-prediction or motion compensation, and the decoder may perform corresponding motion compensation.
[00239] Ниже будет подробно описан вариант осуществления меж-картинного (интер-) предсказания.[00239] An embodiment of inter-picture prediction will be described in detail below.
[00240] Интер-предсказание или компенсация движения могут выполняться с использованием опорной картинки и информации движения.[00240] Inter-prediction or motion compensation may be performed using the reference picture and motion information.
[00241] Информация движения текущего блока может быть выведена во время интер-предсказания каждым из устройства 100 кодирования и устройства 200 декодирования. Информация движения текущего блока может быть выведена с использованием информации движения восстановленного соседнего блока, информации движения совмещенного блока (также называемого col-блоком или совмещенным блоком) и/или блока, смежного с совмещенным блоком. Совмещенный блок может означать блок, который пространственно расположен в том же положении, что и текущий блок, в ранее восстановленной совмещенной картинке (также упоминаемой как col-картинка или совмещенная картинка). Совмещенная картинка может быть одной картинкой из одной или нескольких опорных картинок, включенных в список опорных картинок.[00241] Motion information of the current block can be output during inter-prediction by each of the encoding device 100 and the decoding device 200. The motion information of the current block can be output by using the motion information of a reconstructed adjacent block, the motion information of a combined block (also called a col block or a collocated block), and/or a block adjacent to a collocated block. A aligned block may mean a block that is spatially located at the same position as the current block in a previously reconstructed fused picture (also referred to as a col picture or fused picture). The combined picture may be one picture from one or more reference pictures included in the list of reference pictures.
[00242] Способ выведения информации движения может отличаться в зависимости от режима предсказания текущего блока. Например, режим предсказания, применяемый для интер-предсказания, включает в себя режим AMVP, режим слияния, режим пропуска, режим слияния с разностью векторов движения, режим слияния подблоков, режим треугольного разбиения, режим интер-интра комбинированного предсказания, аффинный режим и т.п. Здесь режим слияния может упоминаться как режим слияния движения.[00242] The method for outputting motion information may differ depending on the prediction mode of the current block. For example, the prediction mode used for inter-prediction includes AMVP mode, fusion mode, skip mode, motion vector difference fusion mode, sub-block fusion mode, triangular partition mode, inter-intra combined prediction mode, affine mode, etc. P. Here, the fusion mode may be referred to as the motion fusion mode.
[00243] Например, когда AMVP используется в качестве режима предсказания, по меньшей мере один из векторов движения восстановленных соседних блоков, векторов движения совмещенных блоков, векторов движения блоков, смежных с совмещенными блоками, и (0, 0) вектор движения могут быть определены в качестве кандидатов вектора движения для текущего блока, и список кандидатов вектора движения генерируется с использованием кандидатов вектора движения. Кандидат вектора движения текущего блока может быть выведен с использованием сгенерированного списка кандидатов вектора движения. Информация движения текущего блока может быть определена на основе выведенного кандидата вектора движения. Векторы движения совмещенных блоков или векторы движения блоков, смежных с совмещенными блоками, могут упоминаться как временные кандидаты вектора движения, а векторы движения восстановленных соседних блоков могут упоминаться как пространственные кандидаты вектора движения.[00243] For example, when AMVP is used as a prediction mode, at least one of motion vectors of reconstructed adjacent blocks, motion vectors of aligned blocks, motion vectors of blocks adjacent to aligned blocks, and a (0, 0) motion vector may be determined in as motion vector candidates for the current block, and a list of motion vector candidates is generated using the motion vector candidates. The motion vector candidate of the current block can be inferred using the generated list of motion vector candidates. The motion information of the current block can be determined based on the derived motion vector candidate. Motion vectors of aligned blocks or motion vectors of blocks adjacent to aligned blocks may be referred to as temporal motion vector candidates, and motion vectors of reconstructed adjacent blocks may be referred to as spatial motion vector candidates.
[00244] Устройство 100 кодирования может вычислять разность векторов движения (MVD) между вектором движения текущего блока и кандидатом вектора движения и может выполнять энтропийное кодирование разности векторов движения (MVD). Кроме того, устройство 100 кодирования может выполнять энтропийное кодирование индекса кандидата вектора движения и генерировать битовый поток. Индекс кандидата вектора движения может указывать оптимального кандидата вектора движения среди кандидатов вектора движения, включенных в список кандидатов вектора движения. Устройство декодирования может выполнять энтропийное декодирование над индексом кандидата вектора движения, включенным в битовый поток, и может выбирать кандидата вектора движения целевого блока декодирования из числа кандидатов вектора движения, включенных в список кандидатов вектора движения, с использованием энтропийно декодированного индекса кандидата вектора движения. Кроме того, устройство 200 декодирования может суммировать энтропийно декодированную MVD и кандидат вектора движения, извлеченный посредством энтропийного декодирования, тем самым выводя вектор движения целевого блока декодирования.[00244] The encoding apparatus 100 may calculate a motion vector difference (MVD) between a motion vector of the current block and a motion vector candidate, and may perform entropy encoding of the motion vector difference (MVD). In addition, the encoding device 100 can perform entropy encoding of the motion vector candidate index and generate a bitstream. The motion vector candidate index may indicate an optimal motion vector candidate among the motion vector candidates included in the motion vector candidate list. The decoding apparatus may perform entropy decoding on a motion vector candidate index included in the bitstream, and may select a motion vector candidate of the decoding target block from among the motion vector candidates included in the motion vector candidate list using the entropy decoded motion vector candidate index. In addition, the decoding apparatus 200 may add the entropy decoded MVD and the motion vector candidate extracted by entropy decoding, thereby outputting the motion vector of the decoding target block.
[00245] Между тем, устройство 100 кодирования может выполнять энтропийное кодирование над информацией разрешения вычисленной MVD. Устройство 200 декодирования может регулировать разрешение энтропийно декодированной MVD с использованием информации разрешения MVD.[00245] Meanwhile, the encoding device 100 can perform entropy encoding on the resolution information of the calculated MVD. The decoding apparatus 200 may adjust the resolution of the entropy-decoded MVD using the MVD resolution information.
[00246] Между тем, устройство 100 кодирования вычисляет разность векторов движения (MVD) между вектором движения и кандидатом вектора движения в текущем блоке на основе аффинной модели и выполняет энтропийное кодирование над MVD. Устройство 200 декодирования выводит вектор движения для каждого подблока путем выведения вектора движения аффинного управления целевого блока декодирования через сумму энтропийно декодированной MVD и кандидата вектора движения аффинного управления.[00246] Meanwhile, the encoding device 100 calculates the motion vector difference (MVD) between the motion vector and the motion vector candidate in the current block based on the affine model and performs entropy encoding on the MVD. The decoding apparatus 200 outputs a motion vector for each sub-block by deriving the affine control motion vector of the decoding target block through the sum of the entropy decoded MVD and the affine control motion vector candidate.
[00247] Битовый поток может включать в себя индекс опорной картинки, указывающий опорную картинку. Индекс опорной картинки может энтропийно кодироваться устройством 100 кодирования и затем сигнализироваться как битовый поток в устройство 200 декодирования. Устройство 200 декодирования может генерировать блок предсказания из целевого блока декодирования на основе выведенного вектора движения и информации индекса опорной картинки.[00247] The bitstream may include a reference picture index indicating the reference picture. The reference picture index may be entropy encoded by encoder 100 and then signaled as a bitstream to decoder 200. The decoding apparatus 200 may generate a prediction block from a target decoding block based on the derived motion vector and reference picture index information.
[00248] Другим примером способа выведения текущей информации движения может быть режим слияния. Режим слияния может означать способ слияния движения множества блоков. Режим слияния может означать режим выведения информации движения текущего блока из информации движения соседних блоков. Когда применяется режим слияния, список кандидатов слияния может генерироваться с использованием информации движения восстановленных соседних блоков и/или информации движения совмещенных блоков. Информация движения может включать в себя по меньшей мере одно из вектора движения, индекса опорной картинки и указателя интер-предсказания. Указатель предсказания может указывать однонаправленное предсказание (предсказание L0 или предсказание L1) или двунаправленное предсказание (предсказание L0 и предсказание L1).[00248] Another example of a method for outputting current motion information may be a merge mode. Merge mode may refer to a method of merging the movement of multiple blocks. The merging mode may mean a mode of deriving motion information of the current block from motion information of neighboring blocks. When the merging mode is applied, a merging candidate list may be generated using motion information of reconstructed neighboring blocks and/or motion information of merged blocks. The motion information may include at least one of a motion vector, a reference picture index, and an inter-prediction indicator. The prediction indicator may indicate unidirectional prediction (L0 prediction or L1 prediction) or bidirectional prediction (L0 prediction and L1 prediction).
[00249] Список кандидатов слияния может быть списком сохраненной информации движения. Информация движения, включенная в список кандидатов слияния, может быть по меньшей мере одной из информации движения (кандидата пространственного слияния) соседнего блока, смежного с текущим блоком, информации движения (кандидата временного слияния) совмещенного блока текущего блока в опорной картинке, новой информации движения, сгенерированной комбинацией информации движения, выходящей из списка кандидатов слияния, информации движения (кандидата слияния на основе истории) блока, который кодирован/декодирован перед текущим блоком, и нулевого кандидата слияния.[00249] The merge candidate list may be a list of stored motion information. The motion information included in the fusion candidate list may be at least one of the motion information (spatial fusion candidate) of a neighboring block adjacent to the current block, the motion information (temporal fusion candidate) of the merged block of the current block in the reference picture, new motion information, generated by a combination of the motion information output from the merge candidate list, the motion information (history-based merge candidate) of the block that is encoded/decoded before the current block, and the null merge candidate.
[00250] Устройство 100 кодирования может генерировать битовый поток путем выполнения энтропийного кодирования по меньшей мере на одном из флага слияния и индекса слияния и может сигнализировать битовый поток устройству 200 декодирования. Флаг слияния может быть информацией, указывающей, следует ли выполнять режим слияния для каждого блока, и индекс слияния может быть информацией, указывающей, какой соседний блок среди соседних блоков текущего блока является целевым блоком слияния. Например, соседние блоки текущего блока могут включать в себя левый соседний блок с левой стороны текущего блока, верхний соседний блок, расположенный над текущим блоком, и временной соседний блок, смежный по времени с текущим блоком.[00250] The encoding apparatus 100 may generate a bitstream by performing entropy encoding on at least one of a merge flag and a merge index, and may signal the bitstream to the decoding apparatus 200. The merge flag may be information indicating whether to perform a merge mode for each block, and the merge index may be information indicating which neighboring block among neighboring blocks of the current block is a merge target block. For example, the neighbor blocks of the current block may include a left neighbor block on the left side of the current block, a top neighbor block located above the current block, and a temporary neighbor block temporally adjacent to the current block.
[00251] Между тем, устройство 100 кодирования выполняет энтропийное кодирование над информацией коррекции для коррекции вектора движения среди информации движения кандидата слияния и сигнализирует об этом в устройство 200 декодирования. Устройство 200 декодирования может корректировать вектор движения кандидата слияния, выбранный индексом слияния, на основе информации коррекции. Здесь информация коррекции может включать в себя по меньшей мере одну из информации о том, выполнять ли коррекцию или нет, информации направления коррекции и информации размера коррекции. Как описано выше, режим предсказания, который корректирует вектор движения кандидата слияния на основе сигнализированной информации коррекции, может упоминаться как режим слияния, имеющий разность векторов движения.[00251] Meanwhile, the encoding device 100 performs entropy encoding on the correction information for correcting the motion vector among the motion information of the fusion candidate and signals it to the decoding device 200. The decoding apparatus 200 may correct the motion vector of the fusion candidate selected by the fusion index based on the correction information. Here, the correction information may include at least one of information about whether to perform correction or not, correction direction information, and correction size information. As described above, a prediction mode that corrects the motion vector of a fusion candidate based on the signaled correction information may be referred to as a fusion mode having a motion vector difference.
[00252] Режим пропуска может быть режимом, в котором информация движения соседнего блока применяется к текущему блоку как есть. Когда применяется режим пропуска, устройство 100 кодирования может выполнять энтропийное кодирование информации о том, что информация движения конкретного блока должна быть использована в качестве информации движения текущего блока для генерации битового потока, и может сигнализировать битовый поток к устройству 200 декодирования. Устройство 100 кодирования может не сигнализировать синтаксический элемент касательно по меньшей мере любого одного из информации о разности векторов движения, флага блока кодирования и уровня коэффициентов преобразования в устройство 200 декодирования.[00252] The skip mode may be a mode in which the motion information of a neighboring block is applied to the current block as is. When the skip mode is applied, the encoding device 100 can perform entropy encoding of information that the motion information of a particular block should be used as the motion information of the current block to generate a bit stream, and can signal the bit stream to the decoding device 200. The encoding device 100 may not signal a syntax element regarding at least any one of the motion vector difference information, the encoding block flag, and the level of transform coefficients to the decoding device 200.
[00253] Режим слияния подблоков может означать режим, который выводит информацию движения в единицах подблоков блока кодирования (CU). Когда применяется режим слияния подблоков, список кандидатов слияния подблока может быть сгенерирован с использованием информации движения (кандидат временного слияния на основе подблока) подблока, совмещенного с текущим подблоком в опорном изображении, и/или кандидата слияния вектора движения точки аффинного управления.[00253] A subblock merging mode may mean a mode that outputs motion information in units of coding unit (CU) subblocks. When the sub-block merging mode is applied, a sub-block merging candidate list can be generated using the motion information (sub-block-based temporary merging candidate) of the sub-block aligned with the current sub-block in the reference image and/or the affine control point motion vector merging candidate.
[00254] Режим треугольного разбиения может означать режим, который выводит информацию движения путем разбиения текущего блока на диагональные направления, выводит каждую выборку предсказания с использованием каждой выведенной информации движения и извлекает выборку предсказания текущего блока путем взвешивания каждой из выведенных выборок предсказания.[00254] The triangular partitioning mode may mean a mode that outputs motion information by dividing the current block into diagonal directions, outputs each prediction sample using each output motion information, and extracts the prediction sample of the current block by weighting each of the output prediction samples.
[00255] Режим объединенного интер-интра предсказания может означать режим, который выводит выборку предсказания текущего блока путем взвешивания выборки предсказания, сгенерированной с помощью интер-предсказания, и выборки предсказания, сгенерированной с помощью интра-предсказания.[00255] A combined inter-intra prediction mode may mean a mode that outputs a prediction sample of the current block by weighting the prediction sample generated by inter-prediction and the prediction sample generated by intra-prediction.
[00256] Устройство 200 декодирования может самостоятельно корректировать выведенную информацию движения. Устройство 200 декодирования может осуществлять поиск в заданной области на основе опорного блока, указанного выведенной информацией движения, и выводить информацию движения, имеющую минимальную SAD, как скорректированную информацию движения.[00256] The decoding device 200 can independently correct the output motion information. The decoding apparatus 200 can search a specified area based on the reference block indicated by the output motion information, and output motion information having a minimum SAD as corrected motion information.
[00257] Устройство 200 декодирования может компенсировать выборку предсказания, выведенную посредством интер-предсказания, с использованием оптического потока.[00257] The decoding apparatus 200 may compensate the prediction sample output by inter-prediction using optical flow.
[00258] Фиг. 6 представляет собой диаграмму, иллюстрирующую процесс преобразования и квантования.[00258] FIG. 6 is a diagram illustrating the conversion and quantization process.
[00259] Как показано на фиг. 6, процесс преобразования и/или квантования выполняется над остаточным сигналом, чтобы сгенерировать сигнал квантованного уровня. Остаточный сигнал представляет собой разницу между исходным блоком и блоком предсказания (то есть, блоком интра-предсказания или блоком интер-предсказания). Блок предсказания представляет собой блок, сгенерированный посредством интра-предсказания или интер-предсказания. Преобразование может быть первичным преобразованием, вторичным преобразованием или и тем, и другим. Первичное преобразование остаточного сигнала приводит к коэффициентам преобразования, а вторичное преобразование коэффициентов преобразования приводит к вторичным коэффициентам преобразования.[00259] As shown in FIG. 6, a conversion and/or quantization process is performed on the residual signal to generate a quantized level signal. The residual signal represents the difference between the original block and the prediction block (ie, intra-prediction block or inter-prediction block). A prediction block is a block generated by intra-prediction or inter-prediction. The transformation may be a primary transformation, a secondary transformation, or both. Primary transformation of the residual signal results in transformation coefficients, and secondary transformation of the transformation coefficients results in secondary transformation coefficients.
[00260] По меньшей мере одна схема, выбранная из различных схем преобразования, которые предварительно определены, используется для выполнения первичного преобразования. Например, примеры предопределенных схем преобразования включают дискретное косинусное преобразование (DCT), дискретное синусное преобразование (DST) и преобразование Карунена-Лоэва (KLT). Коэффициенты преобразования, сгенерированные посредством первичного преобразования, могут подвергаться вторичному преобразованию. Схемы преобразования, используемые для первичного преобразования и/или вторичного преобразования, могут быть определены согласно параметрам кодирования текущего блока и/или соседних блоков текущего блока. Альтернативно может сигнализироваться информация о преобразовании, указывающая схему преобразования. Преобразование на основе DCT может включать в себя, например, DCT-2, DCT-8 и т.п. Преобразование на основе DST может включать, например, DST-7.[00260] At least one scheme selected from various conversion schemes that are predefined is used to perform the primary conversion. For example, examples of predefined transform schemes include discrete cosine transform (DCT), discrete sine transform (DST), and Karhunen-Loeve transform (KLT). Transformation coefficients generated by the primary transformation may be subject to a secondary transformation. The transform schemes used for the primary transform and/or secondary transform may be determined according to the encoding parameters of the current block and/or neighboring blocks of the current block. Alternatively, conversion information indicating the conversion scheme may be signaled. The DCT-based conversion may include, for example, DCT-2, DCT-8, and the like. The DST-based conversion may include, for example, DST-7.
[00261] [00261]
[00262] Сигнал квантованного уровня (коэффициенты квантования) может быть сгенерирован путем выполнения квантования остаточного сигнала или результата выполнения первичного преобразования и/или вторичного преобразования. Сигнал квантованного уровня может сканироваться согласно по меньшей мере одному из диагонального сканирования вверх-вправо, вертикального сканирования и горизонтального сканирования, в зависимости от режима интра-предсказания блока или размера/формы блока. Например, когда коэффициенты сканируются при диагональном сканировании вверх-вправо, коэффициенты в блочной форме преобразуются в форму одномерного вектора. Помимо диагонального сканирования вверх-вправо, горизонтальная развертка горизонтального сканирования двумерной формы блока коэффициентов или вертикальная развертка вертикального сканирования двумерной формы блока коэффициентов может использоваться в зависимости от режима интра-предсказания и/или размера блока преобразования. Отсканированные коэффициенты квантованного уровня могут быть энтропийно закодированы для вставки в битовый поток.[00262] The quantized level signal (quantization coefficients) can be generated by performing quantization on the residual signal or the result of performing the primary transform and/or secondary transform. The quantized level signal may be scanned according to at least one of a diagonal up-right scan, a vertical scan, and a horizontal scan, depending on the block intra-prediction mode or the block size/shape. For example, when coefficients are scanned in a diagonal up-to-right scan, the coefficients in block form are converted to one-dimensional vector form. In addition to the up-right diagonal scan, horizontal scan horizontal scan of the 2D shape of the coefficient block or vertical scan of the vertical scan of the 2D shape of the coefficient block can be used depending on the intra-prediction mode and/or the size of the transform block. The scanned quantized layer coefficients can be entropy encoded for insertion into the bit stream.
[00263] Декодер выполняет энтропийное декодирование битового потока для получения коэффициентов квантованного уровня. Коэффициенты квантованного уровня могут быть скомпонованы в двумерной форме блока посредством обратного сканирования. Для обратного сканирования может использоваться по меньшей мере одно из диагонального сканирования вверх-вправо, вертикального сканирования и горизонтального сканирования.[00263] The decoder performs entropy decoding of the bit stream to obtain quantized level coefficients. The quantized level coefficients can be arranged in a two-dimensional block form by backscanning. The reverse scan may use at least one of a diagonal up-right scan, a vertical scan, and a horizontal scan.
[00264] Коэффициенты квантованного уровня затем могут быть деквантованы, затем могут быть подвергнуты вторичному обратному преобразованию, если необходимо, и, наконец, первично-обратному преобразованию, если необходимо, для генерации восстановленного остаточного сигнала.[00264] The quantized level coefficients can then be dequantized, then subjected to a secondary inverse transform if necessary, and finally a primary-inverse transform if necessary to generate a reconstructed residual signal.
[00265] Обратное отображение в динамическом диапазоне может выполняться для компонента яркости, восстановленного посредством интра-предсказания или интер-предсказания, перед внутриконтурной фильтрацией. Динамический диапазон может разбиваться на 16 равных частей, и функция отображения для каждой части может сигнализироваться. Функция отображения может сигнализироваться на уровне слайса или уровне группы мозаичных элементов. Функция обратного отображения для выполнения обратного отображения может быть выведена на основе функции отображения. Контурная фильтрация, сохранение опорных картинок и компенсация движения выполняются в области обратного отображения, и блок предсказания, сгенерированный посредством интер-предсказания, преобразуется в отображаемую область посредством отображения с использованием функции отображения, а затем используется для генерации восстановленного блока. Однако, поскольку интра-предсказание выполняется в отображаемой области, блок предсказания, сгенерированный посредством интра-предсказания, может использоваться для генерации восстановленного блока без отображения/обратного отображения.[00265] Dynamic range inverse mapping may be performed on the luminance component reconstructed by intra-prediction or inter-prediction before in-loop filtering. The dynamic range can be divided into 16 equal parts, and the display function for each part can be signaled. The mapping function can be signaled at the slice level or the tile group level. The inverse mapping function for performing the inverse mapping can be derived based on the mapping function. Contour filtering, reference picture storage and motion compensation are performed in the inverse mapping region, and the prediction block generated by inter-prediction is converted into the mapping region by mapping using a mapping function, and then used to generate the reconstructed block. However, since intra-prediction is performed on the mapped area, the prediction block generated by intra-prediction can be used to generate a reconstructed block without mapping/demapping.
[00266] Когда текущий блок является остаточным блоком цветового компонента, остаточный блок может быть преобразован в область обратного отображения путем выполнения масштабирования компонента цветности отображенной области. Доступность масштабирования может сигнализироваться на уровне слайса или уровне группы мозаичных элементов. Масштабирование может применяться только тогда, когда доступно отображение для компонента яркости, и разделение компонента яркости и разделение компонента цветности следуют одной и той же древовидной структуре. Масштабирование может выполняться на основе среднего значения выборок блока предсказания яркости, соответствующего блоку цветовой разности. В этом случае, когда текущий блок использует интер-предсказание, блок предсказания яркости может означать отображенный блок предсказания яркости. Значение, необходимое для масштабирования, может быть получено путем обращения к поисковой таблице с использованием индекса фрагмента, которому принадлежит среднее значение выборок блока предсказания яркости. Наконец, путем масштабирования остаточного блока с использованием выведенного значения, остаточный блок может быть переключен в область обратного отображения. Затем восстановление блока компонента цветности, интра-предсказание, интер-предсказание, контурная фильтрация и сохранение опорных картинок могут выполняться в области обратного отображения.[00266] When the current block is a residual block of a chroma component, the residual block can be converted into a reverse display area by performing scaling of the chrominance component of the displayed area. Scaling availability can be signaled at the slice level or the tile group level. Scaling can only be applied when mapping is available for the luma component, and the luma component division and the chrominance component division follow the same tree structure. The scaling may be performed based on the average of the samples of the luminance prediction block corresponding to the color difference block. In this case, when the current block uses inter-prediction, the luminance prediction block may mean the mapped luminance prediction block. The value required for scaling can be obtained by accessing the lookup table using the index of the slice to which the average value of the brightness prediction block samples belongs. Finally, by scaling the residual block using the output value, the residual block can be switched to the reverse mapping region. Then, chrominance component block recovery, intra-prediction, inter-prediction, contour filtering, and reference picture storage can be performed in the demapping region.
[00267] Информация, указывающая, доступно ли отображение/обратное отображение компонента яркости и компонента цветности, может сигнализироваться через набор параметров последовательности.[00267] Information indicating whether luma component and chrominance component mapping/demapping is available may be signaled through a set of sequence parameters.
[00268] Блок предсказания текущего блока может быть сгенерирован на основе вектора блока, указывающего смещение между текущим блоком и опорным блоком в текущем изображении. Таким образом, режим предсказания для генерации блока предсказания со ссылкой на текущую картинку называется режимом внутриблочного копирования (IBC). Режим IBC может применяться к единицам кодирования M×N (M<=64, N<=64). Режим IBC может включать в себя режим пропуска, режим слияния, режим AMVP и т.п. В случае режима пропуска или режима слияния, формируется список кандидатов слияния, и индекс слияния сигнализируется, так что может быть указан один кандидат слияния. Вектор блока указанного кандидата слияния может использоваться как вектор блока текущего блока. Список кандидатов слияния может включать в себя по меньшей мере одно из пространственного кандидата, кандидата на основе истории, кандидата, основанного на среднем двух кандидатов, и кандидата нулевого слияния. В случае режима AMVP может сигнализироваться вектор разностного блока. Кроме того, вектор блока предсказания может быть выведен из левого соседнего блока и верхнего соседнего блока текущего блока. Индекс для соседнего блока, который должен использоваться, может сигнализироваться. Блок предсказания в режиме IBC включается в текущую CTU или левую CTU и ограничивается блоком в уже восстановленной области. Например, значение вектора блока может быть ограничено таким образом, чтобы блок предсказания текущего блока располагался в области из трех блоков 64×64, предшествующих блоку 64×64, которому принадлежит текущий блок, в порядке кодирования/декодирования. Путем ограничения значения вектора блока таким образом, потребление памяти и сложность устройства в соответствии с реализацией режима IBC могут быть уменьшены.[00268] A current block prediction block may be generated based on a block vector indicating an offset between the current block and a reference block in the current image. Thus, the prediction mode for generating a prediction block with reference to the current picture is called intra-block copy (IBC) mode. The IBC mode can be applied to M×N coding units (M<=64, N<=64). The IBC mode may include a skip mode, a merge mode, an AMVP mode, and the like. In the case of skip mode or merge mode, a list of merge candidates is generated and the merge index is signaled so that one merge candidate can be specified. The block vector of the specified merge candidate can be used as the block vector of the current block. The list of merge candidates may include at least one of a spatial candidate, a history-based candidate, a candidate based on the average of two candidates, and a null merge candidate. In the case of AMVP mode, a difference block vector may be signaled. In addition, the prediction block vector can be derived from the left neighbor block and the top neighbor block of the current block. The index for the adjacent block to be used may be signaled. A prediction block in IBC mode is included in the current CTU or left CTU and is limited to a block in the already reconstructed region. For example, the value of the block vector may be constrained such that the prediction block of the current block is located in a region of three 64x64 blocks preceding the 64x64 block to which the current block belongs, in encoding/decoding order. By limiting the block vector value in this way, memory consumption and device complexity in accordance with the IBC mode implementation can be reduced.
[00269][00269]
[00270] Далее способ кодирования/декодирования изображения в соответствии с настоящим изобретением будет описан на основе приведенного выше описания.[00270] Next, an image encoding/decoding method according to the present invention will be described based on the above description.
[00271] В настоящем изобретении будет описан способ генерирования списка кандидатов для выполнения предсказания движения. В следующем варианте осуществления, список кандидатов может означать список появления адаптивного вектора движения (AMVOL). В качестве другого примера, в следующем варианте осуществления, список кандидатов может означать список предсказателей вектора движения на основе истории (HMVP). Кодер или декодер может выполнять предсказание движения более точно и эффективно путем генерирования и использования списка кандидатов в соответствии с настоящим изобретением, тем самым повышая эффективность кодирования.[00271] The present invention will describe a method for generating a candidate list for performing motion prediction. In a further embodiment, the candidate list may be an adaptive motion vector appearance list (AMVOL). As another example, in the following embodiment, the candidate list may be a history-based motion vector predictor (HMVP) list. An encoder or decoder can perform motion prediction more accurately and efficiently by generating and using a candidate list in accordance with the present invention, thereby improving coding efficiency.
[00272] В соответствии с настоящим изобретением, при выполнении предсказания движения кодер или декодер может выполнять предсказание движения с использованием информации движения, полученной в предопределенной секции или области.[00272] In accordance with the present invention, when performing motion prediction, an encoder or decoder may perform motion prediction using motion information obtained in a predetermined section or region.
[00273] Информация движения может храниться и использоваться в блоке, имеющем более высокий уровень, чем блок, в котором выполняется предсказание информации движения. Пример единицы, в которой выполняется предсказание движения, включает в себя CU, PU, блок, макроблок и т.п. Единица, имеющая более высокий уровень, чем единица, в которой выполняется предсказание информации движения, может включать все единицы большие, чем единица, в которой выполняется предсказание информации движения. Например, единица, имеющая более высокий уровень здесь, может включать в себя по меньшей мере одно из блока, CTU, бруска (кирпичика), мозаичного элемента, слайса, субкартинки, картинки, кадра и группы картинок (GOP), состоящих из одной или более CU.[00273] The motion information may be stored and used in a block having a higher level than the block in which motion information prediction is performed. An example of a unit in which motion prediction is performed includes a CU, a PU, a block, a macroblock, and the like. The unit having a higher level than the unit in which the motion information prediction is performed may include all units larger than the unit in which the motion information prediction is performed. For example, a unit having a higher level here may include at least one of a block, CTU, brick, tile, slice, sub-picture, picture, frame, and group of pictures (GOP) consisting of one or more C.U.
[00274] В следующих вариантах осуществления, более высокая единица, большая, чем единица, в которой выполняется предсказание информации движения, может быть представлена более высокой единицей предсказания (UPU). То есть, в следующих вариантах осуществления, UPU может означать по меньшей мере одно из блока, CTU, кирпичика, мозаичного элемента, слайса, субкартинки, картинки, кадра и группы картинок (GOP), состоящих из одной или нескольких CU.[00274] In the following embodiments, a higher unit larger than the unit in which motion information prediction is performed may be represented by a higher prediction unit (UPU). That is, in the following embodiments, a UPU may mean at least one of a block, a CTU, a brick, a tile, a slice, a sub-picture, a picture, a frame, and a group of pictures (GOP) consisting of one or more CUs.
[00275] Фиг. 8 представляет собой диаграмму, иллюстрирующую более высокую верхнюю единицу предсказания (UPU), используемую в некоторых вариантах осуществления настоящего изобретения.[00275] FIG. 8 is a diagram illustrating a higher upper prediction unit (UPU) used in some embodiments of the present invention.
[00276] В настоящем описании, UPU может означать набор единиц, в которых выполняется предсказание движения, и структуру, имеющую один или более списков кандидатов. Далее, блок, принадлежащий конкретной UPU, может быть выражен как блок, имеющий более низкий уровень, чем соответствующая UPU, или блок, включенный в UPU. Список кандидатов для конкретной UPU может быть построен с использованием информации движения, сгенерированной из блоков, имеющих более низкий уровень, чем UPU. Список кандидатов может быть сконфигурирован для хранения всей или части информации движения, сгенерированной из блоков, имеющих более низкий уровень, чем UPU. Размеры или единицы различных UPU могут быть одинаковыми или могут быть установлены по-разному.[00276] As used herein, a UPU may refer to a set of units in which motion prediction is performed and a structure having one or more candidate lists. Further, a block belonging to a particular UPU can be expressed as a block having a lower level than the corresponding UPU, or a block included in the UPU. A candidate list for a particular UPU can be constructed using motion information generated from blocks having a lower level than the UPU. The candidate list may be configured to store all or part of the motion information generated from blocks having a lower level than the UPU. The sizes or units of different UPUs may be the same or may be installed differently.
[00277] Со ссылкой на фиг. 8 описывается UPU, которая может использоваться в некоторых вариантах осуществления настоящего изобретения. Картинка на фиг. 8 включает в себя множество блоков кодирования.[00277] With reference to FIG. 8 describes a UPU that may be used in some embodiments of the present invention. Picture in Fig. 8 includes a plurality of encoding blocks.
[00278] Фиг. 8(a) иллюстрирует случай, когда множество картинок принадлежит одной UPU. То есть фиг. 8(a) иллюстрирует случай, когда UPU является единицей GOP. В этом случае UPU может иметь список кандидатов, сгенерированный с использованием информации движения, сгенерированной из картинок, включенных в UPU.[00278] FIG. 8(a) illustrates the case where many pictures belong to one UPU. That is, fig. 8(a) illustrates the case where the UPU is a GOP unit. In this case, the UPU may have a candidate list generated using motion information generated from pictures included in the UPU.
[00279] Фиг. 8(b) иллюстрирует случай, когда одна картинка принадлежит одной UPU. В этом случае, UPU может иметь список кандидатов, сгенерированный с использованием информации движения, сгенерированной в каждом изображении.[00279] FIG. 8(b) illustrates the case where one picture belongs to one UPU. In this case, the UPU may have a candidate list generated using the motion information generated in each image.
[00280] Фиг. 8(c)-8(e) иллюстрируют случаи, в которых одна картинка включает в себя множество UPU. То есть, фиг. 8(c)-8(e) иллюстрируют случаи, в которых UPU является единицей, имеющей более низкий уровень, чем картинка. Например, UPU можно установить, выполняя четвертное разбиение картинки по горизонтали (фиг. 8(c)) или выполняя четвертное разбиение картинки по вертикали. В качестве другого примера, UPU может быть установлена путем выполнения n-разбиения картинки.[00280] FIG. 8(c)-8(e) illustrate cases in which one picture includes multiple UPUs. That is, fig. 8(c)-8(e) illustrate cases in which the UPU is a unit having a lower level than the picture. For example, the UPU can be set by performing horizontal quarter-splitting of a picture (FIG. 8(c)) or performing vertical quarter-splitting of a picture. As another example, the UPU can be established by performing n-splitting of the picture.
[00281] Между тем, фиг. 8(d) может быть примером, в котором UPU состоит из блоков CTU, образующих одну строку. То есть, UPU может быть установлена в единице строки CTU. Здесь, UPU может иметь список кандидатов, сгенерированный с использованием информации движения, сгенерированной в каждой строке CTU.[00281] Meanwhile, FIG. 8(d) may be an example in which the UPU consists of CTUs forming a single row. That is, the UPU can be installed in the CTU line unit. Here, the UPU may have a candidate list generated using the traffic information generated in each CTU line.
[00282] Хотя это не показано на фиг. 8, UPU может быть установлена в единице CTU и может быть установлена в единице слайса, кирпичика и множества CU.[00282] Although not shown in FIG. 8, UPU can be installed in a CTU and can be installed in a slice, brick and multiple CUs.
[00283] Далее, информация движения, включенная в список кандидатов, может включать в себя по меньшей мере одно из информации, необходимой для предсказания движения, такой как вектор движения, номер опорной картинки (индекс, идентификатор и т.д.), список опорных картинок, направление предсказания движения и т.п.[00283] Further, the motion information included in the candidate list may include at least one of information necessary for motion prediction, such as a motion vector, a reference picture number (index, identifier, etc.), a reference list pictures, motion prediction direction, etc.
[00284] Единица, в которой хранится информация движения, сгенерированная в блоках, включенных в UPU, может называться списком кандидатов. Информация движения, хранящаяся в списке кандидатов, может использоваться, когда кодер или декодер работает в режиме интер-предсказания или режиме IBC. Список кандидатов может включать в себя дополнительную информацию, которая может использоваться для использования списка кандидатов в дополнение к информации движения. Дополнительная информация, которая может быть включена в список кандидатов, может включать в себя, например, информацию частоты появления информации движения, информацию положения, где появляется информация движения, и т.п.[00284] The unit in which motion information generated in blocks included in the UPU is stored may be called a candidate list. The motion information stored in the candidate list can be used when the encoder or decoder is operating in inter-prediction mode or IBC mode. The candidate list may include additional information that can be used to use the candidate list in addition to the traffic information. Additional information that may be included in the candidate list may include, for example, information about the frequency of occurrence of motion information, information about a position where motion information appears, and the like.
[00285] Фиг. 9 представляет собой схему, иллюстрирующую структуру кодера в соответствии с вариантом осуществления настоящего изобретения.[00285] FIG. 9 is a diagram illustrating the structure of an encoder in accordance with an embodiment of the present invention.
[00286] Согласно фиг. 9, информация движения, сгенерированная в результате интер-предсказания, может быть добавлена в список кандидатов в соответствии с настоящим изобретением. В качестве другого примера, хотя он и не показан на фиг. 9, информация движения, сгенерированная в результате предсказания IBC, может быть добавлена в список кандидатов в соответствии с настоящим изобретением. Затем список кандидатов может использоваться для интер-предсказания или IBC, тем самым повышая эффективность кодирования.[00286] Referring to FIG. 9, motion information generated as a result of inter-prediction can be added to a candidate list in accordance with the present invention. As another example, although not shown in FIG. 9, motion information generated as a result of IBC prediction can be added to a candidate list in accordance with the present invention. The candidate list can then be used for inter-prediction or IBC, thereby improving coding efficiency.
[00287] Фиг. 10 представляет собой схему, иллюстрирующую структуру декодера в соответствии с вариантом осуществления настоящего изобретения.[00287] FIG. 10 is a diagram illustrating a structure of a decoder according to an embodiment of the present invention.
[00288] Согласно фиг. 10, информация движения, восстановленная посредством интер-предсказания, может быть добавлена в список кандидатов в соответствии с настоящим изобретением. В качестве другого примера, хотя он и не показан на фиг. 10, информация движения, восстановленная посредством предсказания IBC, может быть добавлена в список кандидатов в соответствии с настоящим изобретением. Затем список кандидатов может быть снова использован в интер-предсказании или IBC для восстановления информации движения для текущего блока.[00288] Referring to FIG. 10, motion information recovered by inter-prediction can be added to a candidate list in accordance with the present invention. As another example, although not shown in FIG. 10, motion information recovered by IBC prediction can be added to a candidate list in accordance with the present invention. The candidate list can then be used again in inter-prediction or IBC to recover motion information for the current block.
[00289] Фиг. 11 представляет собой блок-схему последовательности операций, иллюстрирующую способ кодирования/ декодирования в соответствии с вариантом осуществления настоящего изобретения.[00289] FIG. 11 is a flowchart illustrating an encoding/decoding method in accordance with an embodiment of the present invention.
[00290] Фиг. 11(а) показывает способ кодирования кодера, в котором применяется настоящее изобретение. Общее предсказание информации движения кодера может ссылаться на способ предсказания информации движения, выполняемый кодером согласно предшествующему уровню техники. Предсказание информации движения в списке кандидатов может означать предсказание информации движения с использованием списка кандидатов в соответствии с настоящим изобретением. Этап предсказания движения означает этап предсказания движения текущего блока, и результат предсказания информации движения может быть использован в этом процессе. Выбор оптимального предсказания может означать выбор предсказания, наиболее оптимального для кодирования, из результатов предсказания информации движения, выведенных из общего предсказания информации движения, и результатов предсказания информации движения, выведенных из предсказания информации движения с использованием списка кандидатов. Кодирование информации движения может означать этап способа кодирования согласно результату выбора оптимального предсказания, дополнительной информации, относящейся к нему, и информации, относящейся к информации движения. Добавление информации движения из списка кандидатов может включать в себя добавление ранее сгенерированной информации движения в список кандидатов. Информация движения, добавленная при добавлении информации движения из списка кандидатов, может использоваться позже в интер-предсказании кодера.[00290] FIG. 11(a) shows a coding method of an encoder to which the present invention is applied. General encoder motion information prediction may refer to a motion information prediction method performed by an encoder according to the prior art. Predicting motion information in a candidate list may mean predicting motion information using a candidate list in accordance with the present invention. The motion prediction step means the motion prediction step of the current block, and the result of motion information prediction can be used in this process. Selecting the optimal prediction may mean selecting the prediction most optimal for encoding from the motion information prediction results derived from the general motion information prediction and the motion information prediction results derived from the motion information prediction using the candidate list. Encoding the motion information may mean a step of an encoding method according to a selection result of the optimal prediction, additional information related thereto, and information related to the motion information. Adding motion information from the candidate list may include adding previously generated motion information to the candidate list. The motion information added by adding motion information from the candidate list can be used later in the encoder's inter-prediction.
[00291] Фиг. 11(b) показывает способ декодирования декодера, в котором применяется настоящее изобретение. Декодирование информации движения может быть этапом декодирования сигнала, закодированного кодером. Декодированный сигнал может включать способ декодирования для декодирования текущего блока, дополнительную информацию о способе декодирования и информацию, относящуюся к информации движения. Общее предсказание информации движения может ссылаться на способ предсказания информации движения, выполняемый в обычном декодере. Предсказание информации движения списка кандидатов может означать предсказание информации движения с использованием списка кандидатов в соответствии с настоящим изобретением. Имеется множество результатов общего предсказания информации движения и предсказания информации движения списка кандидатов. Декодер может определить, является ли оптимальное предсказание предсказанием информации движения с использованием списка кандидатов, тем самым выбирая способ предсказания информации движения, который будет использоваться для декодирования, среди способа предсказания информации движения списка кандидатов и общего способа предсказания информации движения. Способ предсказания информации движения может быть определен посредством информации, сигнализированной кодером. Компенсация движения может означать этап декодирования информации движения действительного блока и может означать этап декодирования информации движения текущего блока с использованием декодированного сигнала и результата предсказания информации движения. Добавление информации движения списка кандидатов может быть этапом добавления окончательно декодированной информации движения в список кандидатов. Информация движения, добавленная при добавлении информации движения списка кандидатов, может использоваться позже в интер-предсказании декодера.[00291] FIG. 11(b) shows a decoding method of a decoder to which the present invention is applied. Decoding the motion information may be a step of decoding the signal encoded by the encoder. The decoded signal may include a decoding method for decoding the current block, additional information about the decoding method, and information related to motion information. General motion information prediction may refer to a motion information prediction method performed in a general decoder. Predicting motion information of a candidate list may mean predicting motion information using the candidate list in accordance with the present invention. There are many results of general motion information prediction and candidate list motion information prediction. The decoder can determine whether the optimal prediction is motion information prediction using the candidate list, thereby selecting a motion information prediction method to be used for decoding among the candidate list motion information prediction method and the general motion information prediction method. A method for predicting motion information can be determined by information signaled by the encoder. Motion compensation may mean a step of decoding motion information of an actual block, and may mean a step of decoding motion information of a current block using the decoded signal and a prediction result of the motion information. Adding the candidate list motion information may be a step of adding the finally decoded motion information to the candidate list. The motion information added by adding candidate list motion information can be used later in the inter-prediction of the decoder.
[00292] Фиг. 12 представляет собой диаграмму, иллюстрирующую структуры кодера и декодера в соответствии с другим вариантом осуществления настоящего изобретения.[00292] FIG. 12 is a diagram illustrating structures of an encoder and decoder in accordance with another embodiment of the present invention.
[00293] На фиг. 12(а) показана конфигурация кодера, в котором применяется настоящее изобретение. Модуль общего предсказания информации движения может означать модуль предсказания информации движения, выполняемый кодером. Модуль предсказания информации движения списка кандидатов может относиться к конфигурации для выполнения предсказания информации движения с использованием информации движения, сохраненной в списке кандидатов в соответствии с настоящим изобретением. Имеется множество результатов предсказания информации движения модуля общего предсказания информации движения и модуля предсказания информации движения списка кандидатов. Модуль предсказания движения относится к конфигурации для предсказания движения текущего блока, и в этом процессе может использоваться результат предсказания информации движения. Модуль выбора оптимального предсказания может быть сконфигурирован для выбора предсказания, оптимального для кодирования текущего блока, среди результатов предсказания информации движения, выведенных из общего предсказания информации движения, и результатов предсказания информации движения, выведенных из предсказания информации движения списка кандидатов. Модуль кодирования информации движения может быть сконфигурирован для кодирования способа кодирования согласно результату выбора модуля выбора оптимального предсказания, дополнительной информации, связанной с ним, и информации, относящейся к информации движения. Модуль добавления списка кандидатов может быть сконфигурирован для добавления ранее сгенерированной информации движения в список кандидатов. Информация движения, добавленная модулем добавления списка кандидатов, может использоваться позже в интер-предсказании или IBC кодером.[00293] In FIG. 12(a) shows the configuration of an encoder to which the present invention is applied. The general motion information prediction unit may mean a motion information prediction unit performed by the encoder. The candidate list motion information prediction unit may relate to a configuration for performing motion information prediction using motion information stored in the candidate list according to the present invention. There are a plurality of motion information prediction results of the general motion information prediction module and the candidate list motion information prediction module. The motion prediction unit refers to a configuration for predicting the motion of a current block, and the result of motion information prediction can be used in this process. The optimal prediction selecting unit may be configured to select a prediction optimal for encoding the current block among the motion information prediction results derived from the general motion information prediction and the motion information prediction results derived from the motion information prediction of the candidate list. The motion information encoding unit may be configured to encode an encoding method according to a selection result of the optimal prediction selection unit, additional information related thereto, and information related to the motion information. The candidate list adding module may be configured to add previously generated motion information to the candidate list. The motion information added by the candidate list adding module can be used later in inter-prediction or by the IBC encoder.
[00294] Фиг. 11(b) представляет собой диаграмму, показывающую устройство интер-предсказания декодера, в котором применяется настоящее изобретение. Модуль декодирования информации движения может быть сконфигурирован для декодирования сигнала, закодированного кодером. Декодированный сигнал может включать способ декодирования для декодирования текущего блока, дополнительную информацию о способе декодирования и информацию, относящуюся к информации движения. Модуль общего предсказания информации движения может относиться к конфигурации, которая выполняет способ предсказания информации движения, выполняемый обычным декодером. Модуль предсказания информации движения списка кандидатов может относиться к конфигурации для выполнения предсказания информации движения с использованием информации движения, сохраненной в списке кандидатов. Имеется множество результатов общего предсказания информации движения и предсказания информации движения списка кандидатов. Компенсатор движения может декодировать информацию движения текущего блока с использованием сигнала, декодированного модулем декодирования информации движения, и результата предсказания информации движения. Модуль добавления списка кандидатов может быть сконфигурирован для добавления окончательно декодированной информации движения в список кандидатов. Информация движения, добавленная модулем добавления списка кандидатов, может использоваться позже в интер-предсказании или IBC декодера.[00294] FIG. 11(b) is a diagram showing a decoder inter-prediction apparatus to which the present invention is applied. The motion information decoding module may be configured to decode a signal encoded by the encoder. The decoded signal may include a decoding method for decoding the current block, additional information about the decoding method, and information related to motion information. The general motion information prediction unit may refer to a configuration that executes a motion information prediction method performed by a conventional decoder. The candidate list motion information prediction unit may relate to a configuration for performing motion information prediction using motion information stored in the candidate list. There are many results of general motion information prediction and candidate list motion information prediction. The motion compensator can decode the motion information of the current block using the signal decoded by the motion information decoding unit and the motion information prediction result. The candidate list adding module may be configured to add the finally decoded motion information to the candidate list. The motion information added by the candidate list adding module can be used later in the inter-prediction or IBC of the decoder.
[00295] Когда новая информация движения или кандидат сохраняется в списке кандидатов, та же самая информация движения или кандидат может не храниться в списке кандидатов. Кодер или декодер может определить, включена ли информация движения, перекрывающаяся с новой информацией движения, в текущий список кандидатов. Кодер или декодер могут выполнять разные операции в соответствии с тем, перекрываются ли они.[00295] When new motion information or a candidate is stored in the candidate list, the same motion information or candidate may not be stored in the candidate list. The encoder or decoder may determine whether motion information overlapping with the new motion information is included in the current candidate list. An encoder or decoder can perform different operations according to whether they overlap.
[00296] Здесь критерий для определения той же самой информации движения может быть связан с тем, одинакова ли вся информация, включенная в информацию движения, и являются ли некоторые части из нее одинаковыми. Например, учитывая, что информация движения состоит из вектора движения и номера опорной картинки, когда только вектор движения сравнивается, и векторы движения являются теми же самыми, кодер или декодер может определить, что информация движения, подлежащая добавлению, является той же самой, что и информация движения, включенная в список кандидатов. Кроме того, кодер или декодер может определить, что информация движения, подлежащая добавлению, является той же самой, что и информация движения, включенная в список кандидатов, только тогда, когда как вектор движения, так и номер опорной картинки являются теми же самыми.[00296] Here, the criterion for determining the same motion information may be related to whether all the information included in the motion information is the same and whether some parts thereof are the same. For example, given that motion information consists of a motion vector and a reference picture number, when only the motion vector is compared and the motion vectors are the same, the encoder or decoder may determine that the motion information to be added is the same as traffic information included in the candidate list. In addition, the encoder or decoder can determine that the motion information to be added is the same as the motion information included in the candidate list only when both the motion vector and the reference picture number are the same.
[00297] Информация движения из списка кандидатов в соответствии с настоящим изобретением может определять потенциал предсказания информации движения, а также сохранять и обновлять информацию, представляющую то же самое. Здесь, кандидаты из списка кандидатов могут быть упорядочены в соответствии с потенциалом предсказания информации движения. Далее будет описан способ определения потенциала предсказания списка кандидатов.[00297] The motion information from the candidate list in accordance with the present invention can determine the prediction potential of the motion information, and store and update information representing the same. Here, the candidates from the candidate list can be ordered according to the motion information prediction potential. Next, a method for determining the prediction potential of a candidate list will be described.
[00298] Размер списка кандидатов в соответствии с настоящим изобретением может быть ограничен. Здесь, размер списка кандидатов может означать максимальную информацию движения или количество кандидатов, которые могут храниться в списке кандидатов. Когда количество частей информации движения, сохраненной в списке кандидатов, достигает максимального значения, кодер или декодер может добавлять (сохранять) или пропускать сохранение новой информации движения в списке кандидатов согласно следующему примеру.[00298] The size of the candidate list in accordance with the present invention may be limited. Here, the size of the candidate list may mean the maximum traffic information or the number of candidates that can be stored in the candidate list. When the number of pieces of motion information stored in the candidate list reaches the maximum value, the encoder or decoder may add (store) or skip storing new motion information in the candidate list according to the following example.
[00299] Размер списка кандидатов может быть ограничен предварительно установленным значением в кодере или декодере. Например, предварительно установленное значение может быть значением от 1 до 6. В качестве другого примера, размер списка кандидатов может быть ограничен значением, сигнализируемым из кодера в декодер. Информация о значениях для ограничения размера списка кандидатов может сигнализироваться на более высоком уровне битового потока, таком как набор параметров последовательности, набор параметров картинки, заголовок слайса, заголовок мозаичного элемента и заголовок группы мозаичных элементов.[00299] The size of the candidate list may be limited to a preset value in the encoder or decoder. For example, the preset value may be a value from 1 to 6. As another example, the size of the candidate list may be limited by a value signaled from the encoder to the decoder. Information about values for limiting the size of the candidate list may be signaled at a higher bitstream level, such as a sequence parameter set, a picture parameter set, a slice header, a tile header, and a tile group header.
[00300] Например, когда количество частей информации движения, сохраненных в списке кандидатов, достигает максимального значения, вновь выведенная информация движения может быть опущена без сохранения в списке кандидатов.[00300] For example, when the number of pieces of motion information stored in the candidate list reaches a maximum value, the newly outputted motion information may be omitted without being stored in the candidate list.
[00301] В качестве другого примера, когда количество частей информации движения, сохраненных в списке кандидатов, достигает максимального значения, потенциал предсказания вновь выведенной информации движения сравнивается с потенциалом предсказания информации движения, сохраненной в существующем списке кандидатов, так что информация движения с высоким потенциалом предсказания добавляется в список кандидатов, а информация движения с самым низким потенциалом предсказания может быть удалена из списка кандидатов. Здесь, когда потенциал предсказания вновь выведенной информации движения ниже, чем потенциал предсказания информации движения, сохраненной в существующем списке кандидатов, вновь выведенная информация движения может быть опущена без сохранения в списке кандидатов.[00301] As another example, when the number of pieces of motion information stored in the candidate list reaches a maximum value, the prediction potential of the newly outputted motion information is compared with the prediction potential of motion information stored in the existing candidate list, so that motion information with high prediction potential is added to the candidate list, and the motion information with the lowest prediction potential can be removed from the candidate list. Here, when the prediction potential of the newly outputted motion information is lower than the prediction potential of the motion information stored in the existing candidate list, the newly outputted motion information may be omitted without being stored in the candidate list.
[00302] В качестве другого примера, когда количество частей информации движения, сохраненной в списке кандидатов, достигает максимального значения, информация движения, сохраненная первой среди информации движения, сохраненной в списке кандидатов, удаляется, и вновь выведенная информация движения может быть добавлена к списку кандидатов. То есть, вновь сгенерированная информация движения может быть добавлена в список кандидатов по правилу “первым пришел - первым обслужен” (FIFO).[00302] As another example, when the number of pieces of motion information stored in the candidate list reaches the maximum value, the motion information stored first among the motion information stored in the candidate list is deleted, and the newly outputted motion information can be added to the candidate list . That is, the newly generated motion information can be added to the candidate list using a first-in, first-out (FIFO) rule.
[00303] То есть, когда количество частей информации движения, сохраненной в списке кандидатов, достигает максимального значения, информация движения, указанная индексом 0 списка кандидатов, может быть удалена, а вновь выведенная информация движения может быть добавлена в список кандидатов. Здесь, индекс информации движения, включенной в список кандидатов, может быть уменьшен на единицу. Вновь добавляемая информация движения может быть добавлена в список кандидатов и указывается наибольшим индексом среди информации движения, включенной в список кандидатов.[00303] That is, when the number of pieces of motion information stored in the candidate list reaches the maximum value, the motion information indicated by index 0 of the candidate list can be deleted, and the newly outputted motion information can be added to the candidate list. Here, the index of motion information included in the candidate list may be reduced by one. Newly added motion information may be added to the candidate list and is indicated by the largest index among the motion information included in the candidate list.
[00304] Процесс добавления информации движения в список кандидатов может быть опущен.[00304] The process of adding motion information to the candidate list may be omitted.
[00305] Например, когда та же самая информация движения уже сохранена в списке кандидатов, вновь выведенная информация движения может не добавляться в список кандидатов. В качестве другого примера, когда сходная информация движения уже сохранена в списке кандидатов, вновь выведенная информация движения может не добавляться в список кандидатов. В качестве другого примера, когда количество частей информации движения, хранящихся в списке кандидатов, уже достигло максимума, вновь выведенная информация движения может не добавляться в список кандидатов. В качестве другого примера, когда потенциал предсказания информации движения, подлежащей сохранению, является низким, вновь выведенная информация движения может не добавляться в список кандидатов.[00305] For example, when the same motion information is already stored in the candidate list, the newly outputted motion information may not be added to the candidate list. As another example, when similar motion information is already stored in the candidate list, the newly outputted motion information may not be added to the candidate list. As another example, when the number of pieces of motion information stored in the candidate list has already reached the maximum, the newly outputted motion information may not be added to the candidate list. As another example, when the prediction potential of motion information to be stored is low, newly derived motion information may not be added to the candidate list.
[00306] В качестве другого примера, когда информация движения, которая должна быть вновь добавлена, уже сохранена в списке кандидатов, предварительно сохраненная перекрывающаяся информация движения может быть удалена из списка кандидатов, а вновь выведенная информация движения может быть добавлена в список кандидатов. Здесь, индексы информации движения из списка кандидатов, имеющие значение индекса больше, чем удаленная информация движения, могут быть уменьшены на единицу. Вновь добавленная информация движения может быть добавлена в список кандидатов и указывается наибольшим индексом среди информации движения, включенной в список кандидатов.[00306] As another example, when the motion information to be newly added is already stored in the candidate list, the previously stored overlapping motion information can be removed from the candidate list, and the newly outputted motion information can be added to the candidate list. Here, the motion information indexes of the candidate list having an index value greater than the deleted motion information may be reduced by one. The newly added motion information may be added to the candidate list and is indicated by the largest index among the motion information included in the candidate list.
[00307] Здесь, то, что информация движения сходна, может означать случай, когда разность положения опорной области, указанной информацией движения, равна или меньше, чем предопределенное пороговое значение. Вектор движения может быть выражен как комбинация (dx, dy) смещения dx по оси x и смещения dy по оси y. dx представляет, насколько далеко опорная область отделена от положения текущего блока по оси x, а dy представляет, насколько далеко опорная область отделена от положения текущего блока по оси y. Например, MV1 выражен как (2, 3), MV2 выражен как (3, 3), MV3 выражен как (10, 5), и предопределенное пороговое значение может быть 3 по оси x и 3 по оси y. Здесь, поскольку MV1 и MV2 имеют разность 1 по оси x и 0 по оси y, все из которых меньше или равны пороговому значению, MV1 и MV2 могут быть определены как имеющие информацию движения сходную друг с другом. Между тем, поскольку MV1 и MV3 имеют разность 8 по оси x и 2 по оси y, что превышает пороговое значение по оси x, определяется, что MV1 и MV3 не являются сходной информацией движения.[00307] Here, that the motion information is similar may mean a case where the position difference of the reference area indicated by the motion information is equal to or less than a predetermined threshold value. The motion vector can be expressed as a combination of (dx, dy) the x-axis displacement dx and the y-axis displacement dy. dx represents how far the reference region is separated from the current block's x-axis position, and dy represents how far the reference region is separated from the current block's y-axis position. For example, MV1 is expressed as (2, 3), MV2 is expressed as (3, 3), MV3 is expressed as (10, 5), and the predefined threshold value can be 3 on the x-axis and 3 on the y-axis. Here, since MV1 and MV2 have a difference of 1 in the x-axis and 0 in the y-axis, all of which are less than or equal to the threshold value, MV1 and MV2 can be determined to have motion information similar to each other. Meanwhile, since MV1 and MV3 have a difference of 8 in the x-axis and 2 in the y-axis, which exceeds the threshold in the x-axis, it is determined that MV1 and MV3 are not similar motion information.
[00308] Процесс сравнения разности между пороговым значением и парой информации движения и процесс сравнения разности между парой информации движения и разницей между другой парой информации движения может упоминаться как сравнение сходства информации движения. Здесь, сравнение сходства может выполняться для всей информации, которая содержится в информации движения, и сравнение сходства может выполняться только для некоторой информации из информации движения. Например, когда информация движения состоит из информации, которая показывает вектор движения и опорную картинку, сравнение сходства может быть выполнено только для вектора движения, и сравнение сходства может быть выполнено путем сравнения всей информации, показывающей вектор движения, и опорной картинки.[00308] The process of comparing the difference between a threshold value and a motion information pair and the process of comparing the difference between a motion information pair and the difference between another motion information pair may be referred to as motion information similarity comparison. Here, similarity comparison may be performed on all information that is contained in the motion information, and similarity comparison may be performed on only some information from the motion information. For example, when the motion information consists of information that shows a motion vector and a reference picture, a similarity comparison can be performed only on the motion vector, and a similarity comparison can be performed by comparing all the information showing a motion vector and the reference picture.
[00309] Информация движения, сохраненная в списке кандидатов, может использоваться в качестве кандидата для предсказания информации движения. То есть, информация движения может использоваться в качестве кандидата для всех способов предсказания информации движения, которые предсказывают текущую информацию движения со ссылкой на другую информацию движения. Например, информация движения, сохраненная в списке кандидатов, может использоваться в качестве одного из кандидатов информации движения, когда кодер или декодер работает в режиме слияния, и кодер или декодер работает в режиме AMVP или режиме IBC.[00309] The motion information stored in the candidate list can be used as a candidate for motion information prediction. That is, the motion information can be used as a candidate for all motion information prediction methods that predict current motion information with reference to other motion information. For example, motion information stored in the candidate list can be used as one of the motion information candidates when the encoder or decoder operates in the merging mode, and the encoder or decoder operates in the AMVP mode or the IBC mode.
[00310] При использовании информации движения, сохраненной в списке кандидатов, в качестве кандидата предсказания информации движения, информация движения, используемая в качестве кандидата, может быть определена как кандидат списка кандидатов в соответствии с настоящим изобретением.[00310] When using the motion information stored in the candidate list as a motion information prediction candidate, the motion information used as the candidate can be determined as a candidate of the candidate list according to the present invention.
[00311] Кандидат, используемый для обычного предсказания информации движения, и кандидат в списке кандидатов могут использоваться одновременно, и предсказание информации движения может выполняться с использованием только кандидатов из списка кандидатов.[00311] The candidate used for conventional motion information prediction and the candidate in the candidate list can be used simultaneously, and motion information prediction can be performed using only the candidates in the candidate list.
[00312] Например, когда кандидат из списка кандидатов используется вместе с обычным кандидатом предсказания информации движения, могут генерироваться кандидаты в списке кандидатов, исключая информацию движения из списка кандидатов, имеющие более высокий приоритет, чем кандидат из списка кандидатов, или имеющие ту же информацию движения, что и ранее сгенерированный кандидат. Здесь приоритет может означать приоритет кандидатов информации движения, на которых ссылаются в интер-предсказании или IBC. Поскольку приоритет кандидата информации движения выше, кодер может выполнять сигнализацию, назначая меньшее количество битов кандидату.[00312] For example, when a candidate list candidate is used together with a regular motion information prediction candidate, candidates in the candidate list may be generated excluding motion information from the candidate list having a higher priority than the candidate from the candidate list or having the same motion information , the same as the previously generated candidate. Here, priority may mean the priority of motion information candidates referred to in inter-prediction or IBC. Since the priority of the motion information candidate is higher, the encoder can perform signaling by assigning fewer bits to the candidate.
[00313] Кроме того, при конфигурировании AMVP или списка кандидатов слияния, когда размер кандидата AMVP или списка кандидатов слияния ограничен, AMVP или список кандидатов слияния может быть сконфигурирован согласно приоритету. Например, начиная с кандидата с более высоким приоритетом, он может добавляться в AMVP или список кандидатов слияния. Когда информация движения кандидата сохраняется в списке кандидатов до максимального размера AMVP или списка кандидатов слияния, кандидат с низким приоритетом не добавляется в список кандидатов и не может использоваться для предсказания информации движения.[00313] In addition, when configuring the AMVP or merge candidate list, when the size of the AMVP or merge candidate list is limited, the AMVP or merge candidate list can be configured according to priority. For example, starting with a candidate with a higher priority, it can be added to the AMVP or merge candidate list. When candidate motion information is stored in the candidate list up to the maximum size of the AMVP or merge candidate list, the low priority candidate is not added to the candidate list and cannot be used to predict motion information.
[00314] Кроме того, когда AMVP или список кандидатов слияния сконфигурирован с использованием информации движения с высоким приоритетом, кодер или декодер может сигнализировать информацию, указывающую конкретного кандидата.[00314] In addition, when the AMVP or merge candidate list is configured using high priority traffic information, the encoder or decoder may signal information indicating a particular candidate.
[00315] Фиг. 13 представляет собой диаграмму, иллюстрирующую список кандидатов в соответствии с вариантом осуществления настоящего изобретения.[00315] FIG. 13 is a diagram illustrating a list of candidates in accordance with an embodiment of the present invention.
[00316] Фиг. 13 иллюстрирует случай, когда вариант осуществления настоящего изобретения применяется к режиму слияния и режиму AMVP.[00316] FIG. 13 illustrates a case where an embodiment of the present invention is applied to a merge mode and an AMVP mode.
[00317] В списке кандидатов слияния приоритет может быть установлен в порядке пространственного кандидата, временного кандидата, кандидата смешанного списка и кандидата нулевого вектора. Пространственные кандидаты могут иметь приоритет в порядке A1, B1, B0, A0 и B2. Временной кандидат может иметь приоритет в порядке H и C, и по меньшей мере один из двух кандидатов может быть добавлен в список кандидатов слияния. Кандидат смешанного списка для двунаправленного предсказания может генерироваться путем объединения пространственного кандидата и временного кандидата, добавленных в список кандидатов. Кандидат нулевого вектора может генерировать кандидата, имеющего вектор движения в качестве нулевого вектора, указывающего, что движение отсутствует.[00317] In the merge candidate list, the priority may be set in the order of spatial candidate, temporal candidate, mixed list candidate, and zero vector candidate. Spatial candidates can have priority in the order A1, B1, B0, A0 and B2. The temporary candidate may have priority in the order of H and C, and at least one of the two candidates may be added to the merge candidate list. A mixed list candidate for bidirectional prediction can be generated by combining a spatial candidate and a temporal candidate added to the candidate list. The null vector candidate may generate a candidate having a motion vector as the null vector indicating that there is no motion.
[00318] Соответственно, кандидат слияния может иметь приоритет в порядке A1, B1, B0, A0, B2, H или C, кандидат смешанного списка и кандидат нулевого вектора, и кандидаты, доступные в порядке высокого приоритета, могут быть добавлены к списку кандидатов слияния. При этом, когда кандидаты добавляются до максимального размера списка кандидатов, больше кандидатов нельзя добавить в список кандидатов.[00318] Accordingly, a merge candidate may have priority in the order A1, B1, B0, A0, B2, H or C, a mixed list candidate and a zero vector candidate, and candidates available in high priority order may be added to the merge candidate list . However, when candidates are added to the maximum size of the candidate list, no more candidates can be added to the candidate list.
[00319] Здесь, кандидаты из списка кандидатов в соответствии с настоящим изобретением могут быть добавлены в список кандидатов слияния. Кандидаты, добавленные в список кандидатов слияния, могут располагаться в любых положениях, например, впереди, сзади, посредине и т.д. кандидатов, не использующих список кандидатов в соответствии с настоящим изобретением, и множество кандидатов могут быть добавлены посредством различных приоритетов. Фиг. 13 иллюстрирует ситуацию, когда кандидаты из двух списков кандидатов добавляются в список кандидатов слияния после пространственного кандидата и временного кандидата. Кандидаты в список кандидатов могут быть добавлены в различных положениях, например, перед пространственными кандидатами, между пространственными кандидатами, перед временными кандидатами, позади временных кандидатов, а также могут быть добавлены в двух или более положениях. Здесь, кандидаты из одного или нескольких списков кандидатов могут быть добавлены в список кандидатов слияния.[00319] Here, candidates from the candidate list in accordance with the present invention can be added to the merge candidate list. Candidates added to the merge candidate list can be located in any position, such as front, back, middle, etc. candidates not using the candidate list according to the present invention, and multiple candidates can be added through different priorities. Fig. 13 illustrates a situation where candidates from two candidate lists are added to the merge candidate list after the spatial candidate and the temporal candidate. Candidates in the candidate list may be added in various positions, for example, in front of spatial candidates, between spatial candidates, in front of temporary candidates, behind temporary candidates, and may also be added in two or more positions. Here, candidates from one or more candidate lists can be added to the merge candidate list.
[00320] Список кандидатов может быть сконфигурирован путем применения различных способов, описанных в данном документе, с использованием информации движения всех блоков, закодированных перед текущим блоком. Кроме того, посредством субдискретизации информации движения блоков в картинке (например, выбора информации движения блоков, включая M-ую информацию движения или положение M-го пиксела) или посредством субдискретизации положения пиксела в картинке с регулярными интервалами и выбора информации движения блока, включающего в себя соответствующее положение пиксела, различные способы, описанные в данном документе, применяются с использованием выбранной информации движения, тем самым конфигурируя список кандидатов.[00320] The candidate list can be configured by applying various methods described herein using the motion information of all blocks encoded before the current block. In addition, by subsampling the motion information of blocks in the picture (for example, selecting the motion information of the blocks including the M-th motion information or the position of the M-th pixel), or by subsampling the position of the pixel in the picture at regular intervals and selecting the motion information of the block including corresponding pixel position, various methods described herein are applied using the selected motion information, thereby configuring the candidate list.
[00321] Здесь информация движения первого кодированного блока в одной картинке упоминается как первая информация движения, а информация движения M-го кодированного блока упоминается как M-ая информация движения. M может быть положительным целым числом больше нуля.[00321] Here, the motion information of the first coded block in one picture is referred to as the first motion information, and the motion information of the M-th coded block is referred to as the M-th motion information. M can be a positive integer greater than zero.
[00322] Некоторая или вся информация движения, включенная в список кандидатов, сконфигурированный, как описано выше, может быть выбрана в качестве кандидатов списка кандидатов согласно различным включенным здесь способам, а затем добавлена в список кандидатов слияния. Альтернативно, список кандидатов для предсказания информации движения может быть сконфигурирован с использованием только кандидатов списка кандидатов в соответствии с настоящим изобретением, и может сигнализироваться индекс (указатель), указывающий кандидата, необходимого для декодирования соответствующего блока.[00322] Some or all of the traffic information included in the candidate list configured as described above may be selected as candidate list candidates according to various methods included herein and then added to the merge candidate list. Alternatively, the candidate list for motion information prediction may be configured using only the candidates of the candidate list in accordance with the present invention, and an index indicating the candidate needed to decode the corresponding block may be signaled.
[00323] Чтобы кодировать блоки, включенные в K-ую строку CTU, подлежащую текущему кодированию, информация движения блоков, смежных с нижней границей K-1-ой строки CTU, может использоваться в качестве кандидатов в режиме слияния и AMVP. Для этого информацию движения и информацию положения соответствующих блоков необходимо сохранить в буфере (далее называемом построчным буфером) (K - любое целое число больше 1).[00323] To encode blocks included in the K-th CTU line to be currently encoded, movement information of blocks adjacent to the lower boundary of the K-1th CTU line can be used as candidates in merge mode and AMVP. To do this, the motion information and the position information of the corresponding blocks must be stored in a buffer (hereinafter called a row buffer) (K is any integer greater than 1).
[00324] Например, используя кандидатов из списка кандидатов в соответствии с настоящим изобретением, а не соответствующую информацию движения (информацию о соседнем блоке, расположенном на границе строки CTU), кодер или декодер не будет использовать построчный буфер. Другими словами, при использовании информации движения, включенной в K-1-ую строку CTU, среди блоков, включенных в K-ую строку CTU, в качестве кандидата слияния или AMVP, соответствующая информация движения не используется, и используется список кандидатов из списка кандидатов в соответствии с настоящим изобретением.[00324] For example, by using candidates from the candidate list in accordance with the present invention, rather than the corresponding motion information (information about a neighboring block located on a CTU line boundary), the encoder or decoder will not use a line buffer. In other words, when using the motion information included in the K-1st CTU line among the blocks included in the K-th CTU line as a merge candidate or AMVP, the corresponding motion information is not used, and the candidate list from the candidate list is used in accordance with the present invention.
[00325] Например, кандидаты из списка кандидатов могут хранить только информацию движения блоков, смежных с нижней границей K-1-ой строки CTU. Кроме того, может быть сохранена только некоторая часть из информации движения блоков, смежных с нижней границей K-1-ой строки CTU. Например, в список кандидатов может быть включена только информация движения блока, включающая в себя положение N-го пиксела слева от картинки. Здесь, N - целое число, равное 4 или более, и может быть 4, 8, 16, 32, 64 или 128.[00325] For example, candidates from the candidate list may only store movement information of blocks adjacent to the lower boundary of the K-1st CTU row. In addition, only some of the movement information of blocks adjacent to the lower boundary of the K-1st row of the CTU may be stored. For example, only block motion information including the position of the Nth pixel to the left of the picture may be included in the candidate list. Here, N is an integer equal to 4 or more, and can be 4, 8, 16, 32, 64 or 128.
[00326] В режиме AMVP, приоритет может быть задан в порядке пространственного кандидата, временного кандидата и кандидата нулевого вектора. Один кандидат может быть выбран в области A и области B как пространственный кандидат. Область A может означать кандидатов A0 и A1 и имеет приоритет в порядке A0, A1, масштабированный A0 и масштабированный A1, и среди них может быть выбран по меньшей мере один кандидат. В данном случае масштабируемый кандидат относится к кандидату, генерируемому путем коррекции вектора движения, когда опорная картинка пространственного вектора движения отличается от опорной картинки блока, в текущее время искомой. Область B может означать кандидата B0, B1 или B2, и может быть выбран по меньшей мере один кандидат из B0, B1, B2, масштабированного B0, масштабированного B1 и масштабированного B2. Временной кандидат может иметь порядок приоритета H и C, и по меньшей мере один из двух может быть добавлен в список кандидатов AMVP. Кандидат нулевого вектора может генерировать кандидата, имеющего вектор движения как нулевой вектор, указывающий, что движение отсутствует.[00326] In AMVP mode, priority can be set in the order of spatial candidate, temporal candidate, and zero vector candidate. One candidate can be selected in region A and region B as a spatial candidate. Region A may mean candidates A0 and A1 and has priority in the order of A0, A1, scaled A0 and scaled A1, and at least one candidate can be selected among them. Here, the scaled candidate refers to a candidate generated by motion vector correction when the spatial motion vector reference picture is different from the block reference picture currently searched. Region B may indicate candidate B0, B1, or B2, and at least one candidate of B0, B1, B2, scaled B0, scaled B1, and scaled B2 may be selected. The temporary candidate may have priority order H and C, and at least one of the two may be added to the AMVP candidate list. The null vector candidate may generate a candidate having a motion vector as a null vector indicating that there is no motion.
[00327] Следовательно, кандидат может иметь приоритет кандидата A области, кандидата B, H или C области, кандидата нулевого вектора, и доступные кандидаты могут быть добавлены в список кандидатов AMVP в порядке высокого приоритета. Здесь, когда кандидаты добавлены до максимального размера списка кандидатов AMVP, больше кандидатов не может добавляться в список кандидатов.[00327] Therefore, a candidate may have the priority of region candidate A, region candidate B, H or C, vector zero candidate, and the available candidates may be added to the AMVP candidate list in order of high priority. Here, once candidates are added up to the maximum AMVP candidate list size, no more candidates can be added to the candidate list.
[00328] Здесь, кандидаты списка кандидатов в соответствии с настоящим изобретением могут быть добавлены в список кандидатов AMVP. Кандидаты списка кандидатов в соответствии с настоящим изобретением, добавленные в список кандидатов AMVP, могут располагаться в любых положениях, например перед, после, посредине и т.д. кандидата, который не использует список кандидатов в соответствии с настоящим изобретением, и множество кандидатов могут добавляться в список кандидатов AMVP как приоритеты, отличные друг от друга. Фиг. 13 иллюстрирует ситуацию, в которой кандидаты двух списков кандидатов добавляются в список кандидатов AMVP после пространственного кандидата и временного кандидата. Кандидаты в списке кандидатов могут добавляться в различных положениях, например, перед пространственными кандидатами, между пространственными кандидатами, перед временными кандидатами, за временными кандидатами и т.д. или могут быть добавлены в двух или более положениях. Кроме того, кандидаты в одном или более списках кандидатов могут добавляться в список кандидатов AMVP.[00328] Here, candidates of the candidate list in accordance with the present invention can be added to the AMVP candidate list. The candidates of the candidate list according to the present invention added to the AMVP candidate list may be located in any positions, such as before, after, in the middle, etc. a candidate that does not use the candidate list in accordance with the present invention, and a plurality of candidates may be added to the AMVP candidate list as priorities different from each other. Fig. 13 illustrates a situation in which candidates of two candidate lists are added to the AMVP candidate list after the spatial candidate and the temporal candidate. Candidates in the candidate list may be added in various positions, for example, before spatial candidates, between spatial candidates, before temporal candidates, after temporal candidates, etc. or may be added in two or more positions. In addition, candidates in one or more candidate lists may be added to the AMVP candidate list.
[00329] В качестве другого примера, кандидаты списка кандидатов в соответствии с настоящим изобретением могут добавляться в список кандидатов для предсказания IBC. Кандидаты списка кандидатов, добавляемые в список кандидатов IBC в соответствии с настоящим изобретением, могут располагаться в любых положениях, например перед, после, посредине и т.д. кандидатов, которые не используют список кандидатов в соответствии с настоящим изобретением, и множество кандидатов имеют разные приоритеты и могут быть добавлены в список кандидатов IBC. Кроме того, кандидаты одного или более списков кандидатов могут добавляться в список кандидатов IBC.[00329] As another example, candidates of the candidate list in accordance with the present invention may be added to the candidate list for IBC prediction. The candidate list candidates added to the IBC candidate list in accordance with the present invention may be located in any position, such as before, after, in the middle, etc. candidates who do not use the candidate list in accordance with the present invention, and multiple candidates have different priorities and can be added to the IBC candidate list. In addition, candidates from one or more candidate lists may be added to the IBC candidate list.
[00330] Фиг. 14 представляет собой диаграмму, иллюстрирующую способ добавления информации движения в список кандидатов в соответствии с одним вариантом осуществления настоящего изобретения.[00330] FIG. 14 is a diagram illustrating a method for adding motion information to a candidate list in accordance with one embodiment of the present invention.
[00331] Фиг. 14 показывает процесс, в котором информация движения, сгенерированная как предсказание, добавляется в список кандидатов. На фиг. 14, (a), (b), (c), (d), (e), (f), (g), (h) и (i) означают временной порядок процесса кодирования/ декодирования, кодирование/декодирование происходит в направлении стрелки между этапами. Каждая прямоугольная область может означать единицу кодирования или единицу предсказания и может означать единицу, в которой выполняется предсказание, так что генерируется информация движения. Серый блок кодирования может относиться к текущему блоку, в котором кодирование/декодирование выполняется в текущий момент времени, на каждом чертеже. На фиг. 14, вся область означает UPU, и UPU может состоять из набора блоков кодирования. Список кандидатов для каждого этапа показан вверху, и каждый столбец списка кандидатов может означать сохраненную информацию движения. Здесь число, показанное в списке кандидатов, может указывать значение индекса списка кандидатов. Окрашенная информация среди информации движения, сохраненной в списке кандидатов, может означать вновь добавленную информацию движения на соответствующем этапе. Заглавные буквы, записанные в блоке кодирования и списке кандидатов, могут означать информацию движения соответствующего блока кодирования, и разные буквы могут означать разную информацию движения. Размытая информация движения относится к предварительно восстановленной информации движения, и информация движения, отображаемая темным цветом, может означать вновь сгенерированную информацию движения в текущем блоке кодирования.[00331] FIG. 14 shows a process in which motion information generated as a prediction is added to a candidate list. In fig. 14, (a), (b), (c), (d), (e), (f), (g), (h) and (i) mean the time order of the encoding/decoding process, encoding/decoding occurs in direction of the arrow between steps. Each rectangular area may indicate a coding unit or a prediction unit, and may indicate a unit in which prediction is performed so that motion information is generated. The gray encoding block may refer to the current block in which encoding/decoding is being performed at the current time in each drawing. In fig. 14, the entire area means a UPU, and the UPU may be composed of a set of coding units. The candidate list for each stage is shown at the top, and each column of the candidate list can mean stored motion information. Here, the number shown in the candidate list may indicate the index value of the candidate list. Colored information among the motion information stored in the candidate list may indicate newly added motion information at a corresponding stage. Capital letters written in the encoding block and the candidate list may indicate motion information of the corresponding encoding block, and different letters may indicate different motion information. The blurred motion information refers to the previously reconstructed motion information, and the motion information displayed in dark color may indicate newly generated motion information in the current encoding block.
[00332] На фиг. 14, этап (а) показывает процесс, в котором декодируется первый кодированный блок среди блоков кодирования, включенных в UPU. Поскольку предварительно созданная информация движения еще не создана, в списке кандидатов нет сохраненной информации движения. На этапе (b) информация движения А, восстановленная на этапе (a), добавляется в список кандидатов. Следовательно, в предсказании информации движения текущего блока кодирования можно ссылаться на информацию движения А, сохраненную в списке кандидатов.[00332] In FIG. 14, step (a) shows a process in which the first coded block among the coding blocks included in the UPU is decoded. Since the pre-created motion information has not yet been created, there is no stored motion information in the candidate list. In step (b), the motion information A recovered in step (a) is added to the candidate list. Therefore, in predicting the motion information of the current encoding block, it is possible to refer to the motion information A stored in the candidate list.
[00333] Затем, по мере перехода к следующим этапам, информация движения, восстановленная на предыдущем этапе, может добавляться в список кандидатов по очереди. Здесь информация движения, перекрывающаяся с информацией движения, уже присутствующей в списке кандидатов, не может быть снова добавлена в список кандидатов. Например, информация движения, сгенерированная на этапе (d), уже включена в список кандидатов как A и, таким образом, не добавляется. Поэтому на этапе (e) вновь добавленная информация движения может не существовать в списке кандидатов. Аналогично, информация движения, сгенерированная на этапе (e), уже включена в список кандидатов как C и, таким образом, не добавляется. Поэтому вновь добавленная информация движения в списке кандидатов может не существовать на этапе (f).[00333] Then, as the next steps progress, the motion information recovered in the previous step can be added to the candidate list one by one. Here, motion information overlapping with motion information already present in the candidate list cannot be added to the candidate list again. For example, the motion information generated in step (d) is already included in the candidate list as A and thus is not added. Therefore, in step (e), the newly added motion information may not exist in the candidate list. Similarly, the motion information generated in step (e) is already included in the candidate list as C and thus is not added. Therefore, the newly added motion information in the candidate list may not exist in step (f).
[00334] В качестве другого примера, даже если информация движения уже существует в списке кандидатов, такая как информация движения, сгенерированная на этапах (d) и (e), информация движения может быть последовательно добавлена в список кандидатов. В этом случае список кандидатов на этапе (e) может быть A, B, C, A и C последовательно, начиная с индекса 0.[00334] As another example, even if the motion information already exists in the candidate list, such as the motion information generated in steps (d) and (e), the motion information can be sequentially added to the candidate list. In this case, the list of candidates in step (e) could be A, B, C, A and C sequentially, starting at index 0.
[00335] Фиг. 15 представляет собой другую диаграмму, иллюстрирующую способ, в котором информация движения добавляется в список кандидатов в соответствии с настоящим изобретением.[00335] FIG. 15 is another diagram illustrating a method in which motion information is added to a candidate list in accordance with the present invention.
[00336] Фиг. 15 показывает другой пример, в котором информация движения добавляется в список кандидатов. Согласно фиг. 15, информация движения может генерироваться таким же образом, как на фиг. 14, и информация движения может быть добавлена в список кандидатов одновременно. Однако фиг. 15 иллюстрирует способ добавления информации движения в список кандидатов способом, отличным от способа согласно фиг. 14.[00336] FIG. 15 shows another example in which motion information is added to the candidate list. According to FIG. 15, motion information can be generated in the same manner as in FIG. 14, and motion information can be added to the candidate list at the same time. However, FIG. 15 illustrates a method of adding motion information to a candidate list in a manner different from the method of FIG. 14.
[00337] На фиг. 14 информация движения добавляется к последнему положению индекса списка кандидатов, но в примере на фиг. 15 вновь выведенная информация движения может быть добавлена к положению индекса 0 списка кандидатов. Кроме того, информация движения, сохраненная в списке кандидатов, существующая в положении индекса 0, может изменять порядок в списке кандидатов, добавляя единицу к индексу, когда добавляется новая информация движения. Другими словами, изменяя порядок списка кандидатов, можно изменить порядок или приоритет обращения к списку кандидатов в предсказании движения.[00337] In FIG. 14, motion information is added to the last index position of the candidate list, but in the example of FIG. 15, the newly output motion information can be added to the index position 0 of the candidate list. In addition, motion information stored in the candidate list existing at index position 0 may change the order in the candidate list by adding one to the index when new motion information is added. In other words, by changing the order of the candidate list, one can change the order or priority of accessing the candidate list in motion prediction.
[00338] Фиг. 16 представляет собой другую диаграмму, иллюстрирующую способ добавления информации движения в список кандидатов в соответствии с одним вариантом осуществления настоящего изобретения.[00338] FIG. 16 is another diagram illustrating a method for adding motion information to a candidate list in accordance with one embodiment of the present invention.
[00339] Фиг. 16 иллюстрирует способ реконфигурирования порядка информации движения в списке кандидатов, когда та же информация движения, что и вновь введенная информация движения, существует среди ранее введенной информации движения в способе согласно фиг. 15. Информация движения А, сгенерированная на этапе (d), является той же информацией движения, что и информация движения, добавленная в список кандидатов на этапе (b). Следовательно, на фиг. 16, на этапе (e) информация движения А не может добавляться в список кандидатов. На этапе (е) на фиг. 16, порядок в списке кандидатов информации движения А может быть изменен на индекс 0. Альтернативно, существующая информация движения А может быть удалена, и информация движения А может быть вновь добавлена в положении индекса 0. Индекс другой ранее введенной информации движения получается путем добавления единицы, и порядок и индекс между кандидатами могут быть изменены.[00339] FIG. 16 illustrates a method for reconfiguring the order of motion information in a candidate list when the same motion information as the newly inputted motion information exists among the previously input motion information in the method according to FIG. 15. The motion information A generated in step (d) is the same motion information as the motion information added to the candidate list in step (b). Therefore, in FIG. 16, in step (e), traffic information A cannot be added to the candidate list. In step (e) in FIG. 16, the order in the candidate list of motion information A may be changed to index 0. Alternatively, existing motion information A may be deleted, and motion information A may be newly added at index position 0. The index of other previously entered motion information is obtained by adding one, and the order and index between candidates can be changed.
[00340] Это может быть способом изменения приоритета с новой введенной информацией, когда та же самая информация движения вновь возникает с учетом приоритета в соответствии с порядком, в котором вводится информация движения. При этом на этапе (f) может быть подтверждено, что, когда порядок (индекс) информации движения в списке кандидатов является более поздним, чем перекрывающаяся информация движения (когда индекс больше), порядок не изменяется. То есть, в примере на фиг. 16, когда возникает перекрывающаяся информация движения С, когда порядок C изменяется на индекс 0, индекс A, который ниже, чем у C, становится +1, тогда как индекс B, который выше, чем у C, может не изменяться.[00340] This may be a method of changing the priority with new input information when the same motion information reappears taking into account the priority according to the order in which the motion information is input. Meanwhile, in step (f), it can be confirmed that when the order (index) of motion information in the candidate list is later than the overlapping motion information (when the index is larger), the order is not changed. That is, in the example in FIG. 16, when overlapping motion information C occurs, when the order of C changes to index 0, the index of A, which is lower than that of C, becomes +1, while the index of B, which is higher than that of C, may not change.
[00341] Между тем, по меньшей мере один из указателя (флага, индекса), указывающего, следует ли использовать список кандидатов в соответствии с настоящим изобретением, типа применяемой UPU, размера UPU может сигнализироваться посредством по меньшей мере одного из набора параметров, такого как набор параметров последовательности или набор параметров картинки, или заголовка слайса.[00341] Meanwhile, at least one of an indicator (flag, index) indicating whether to use the candidate list in accordance with the present invention, the type of UPU used, the size of the UPU may be signaled by at least one of a set of parameters such as a set of parameters for a sequence or a set of parameters for a picture or slice title.
[00342] Фиг. 17-20 представляют собой диаграммы, иллюстрирующие структуру синтаксиса в соответствии с некоторыми вариантами осуществления настоящего изобретения.[00342] FIG. 17-20 are diagrams illustrating syntax structure in accordance with some embodiments of the present invention.
[00343] В последующем описании, представленный синтаксис является одним примером, и объем настоящего изобретения не ограничивается следующим выражением синтаксиса. Синтаксис, имеющий то же значение или функцию, что и синтаксис для списка кандидатов в соответствии с настоящим изобретением, может быть включен в объем настоящего изобретения.[00343] In the following description, the presented syntax is one example, and the scope of the present invention is not limited to the following syntax expression. Syntax having the same meaning or function as the syntax for a candidate list in accordance with the present invention may be included within the scope of the present invention.
[00344] Фиг. 17 показывает пример, в котором сигнализация включения списка кандидатов включена в синтаксис набора параметров последовательности (SPS). Фиг. 18 иллюстрирует пример, в котором сигнализация включения списка кандидатов включена в синтаксис набора параметров картинки (PPS).[00344] FIG. 17 shows an example in which candidate list enable signaling is included in the sequence parameter set (SPS) syntax. Fig. 18 illustrates an example in which candidate list enable signaling is included in picture parameter set (PPS) syntax.
[00345] Сигнал включения списка кандидатов может означать сигнал, указывающий, используется ли список кандидатов в соответствии с настоящим изобретением при кодировании/ декодировании. В таблицах на фиг. 17 и 18, amvol_enable_flag может быть сигналом включения списка кандидатов, указывающим, используется ли список кандидатов при кодировании/декодировании. Когда amvol_enable_flag имеет значение “истинно”, кодирование и декодирование могут выполняться с использованием списка кандидатов.[00345] The candidate list enable signal may mean a signal indicating whether the candidate list in accordance with the present invention is used in encoding/decoding. In the tables in Fig. 17 and 18, amvol_enable_flag may be a candidate list enable signal indicating whether the candidate list is used in encoding/decoding. When amvol_enable_flag is true, encoding and decoding can be performed using the candidate list.
[00346] upu_type_idx может быть сигналом, сигнализируемым, когда кодирование и декодирование выполняются с использованием списка кандидатов. upu_type_idx представляет собой сигнал, определяющий тип UPU, и может быть сигналом, определяющим единицу, к которой применяется UPU. Здесь, единица, к которой применяется UPU, может быть по меньшей мере одним из блока, CTU, кирпичика, мозаичного элемента, слайса, субкартинки, картинки, кадра и группы картинок (GOP), состоящей из одной или нескольких CU, и UPU может иметь область, которая совпадает с областью определенной единицы.[00346] upu_type_idx may be a signal signaled when encoding and decoding are performed using the candidate list. upu_type_idx is a signal identifying the type of the UPU, and may be a signal identifying the unit to which the UPU applies. Here, the unit to which the UPU is applied may be at least one of a block, a CTU, a brick, a tile, a slice, a sub-picture, a picture, a frame, and a Group of Pictures (GOP) consisting of one or more CUs, and the UPU may have an area that coincides with the area of a specific unit.
[00347] В данном случае кодирование может выполняться путем назначения единицы, к которой применяется UPU, и присвоения ей конкретного значения. UPU_TYPE_COSTOM может быть синтаксисом, указывающим, что единица UPU не является предопределенной единицей среди единиц, к которым применима UPU. Когда единицей, к которой применяется UPU, является UPU_TYPE_COSTOM, может выполняться дополнительная сигнализация для установки диапазона UPU. Например, сигналы upu_width и upu_height на фиг. 17 и 18 могут быть синтаксисом для сигнализации размера, к которому применяется UPU, по ширине и высоте.[00347] In this case, encoding can be performed by assigning a unit to which the UPU applies and assigning a specific value to it. UPU_TYPE_COSTOM may be syntax indicating that the UPU unit is not a predefined unit among the units to which the UPU applies. When the unit to which the UPU applies is UPU_TYPE_COSTOM, additional signaling may be performed to set the range of the UPU. For example, the upu_width and upu_height signals in FIG. 17 and 18 could be syntax for signaling the size to which the UPU is applied, in terms of width and height.
[00348] upu_type_idx может быть опущен, когда UPU формирует список кандидатов с фиксированным размером или тип UPU может быть выведен из другого сигнала. Когда UPU применяется только в единице или размере, указанном заранее, сигнализация синтаксиса для установки UPU_TYPE_COSTOM и диапазона UPU может быть опущена.[00348] upu_type_idx may be omitted when the UPU generates a fixed-size candidate list or the UPU type may be inferred from another signal. When a UPU is applied only in a unit or size specified in advance, the syntax signaling for setting UPU_TYPE_COSTOM and the UPU range can be omitted.
[00349] Фиг. 19 иллюстрирует случай, в котором сигнализация включения списка кандидатов включена в синтаксис заголовка слайса. amvol_enable_flag может быть сигналом, указывающим, используется ли список кандидатов в соответствии с настоящим изобретением для кодирования/декодирования. Когда amvol_enable_flag имеет значение “истинно”, кодирование и декодирование могут выполняться с использованием списка кандидатов в соответствии с настоящим изобретением.[00349] FIG. 19 illustrates a case in which candidate list enable signaling is included in the slice header syntax. amvol_enable_flag may be a signal indicating whether the candidate list in accordance with the present invention is used for encoding/decoding. When amvol_enable_flag is true, encoding and decoding can be performed using the candidate list in accordance with the present invention.
[00350] Upu_type_idx может быть сигналом, который может передаваться и приниматься при выполнении кодирования и декодирования с использованием списка кандидатов. upu_type_idx представляет собой сигнал, определяющий тип UPU, и может быть сигналом, определяющим единицу, к которой применяется UPU. Здесь единица, к которой применяется UPU, может быть по меньшей мере одним из блока, CTU, кирпичика, плитки, слайса, субкартинки, картинки, кадра и группы картинок (GOP), состоящих из одной или более CU, и UPU может иметь область, которая совпадает с областью определенной единицы.[00350] Upu_type_idx may be a signal that may be transmitted and received when performing encoding and decoding using the candidate list. upu_type_idx is a signal identifying the type of the UPU, and may be a signal identifying the unit to which the UPU applies. Here, the unit to which the UPU is applied may be at least one of a block, a CTU, a brick, a tile, a slice, a sub-picture, a picture, a frame, and a Group of Pictures (GOP) consisting of one or more CUs, and the UPU may have an area which coincides with the area of a certain unit.
[00351] В данном случае кодирование может выполняться путем назначения единицы, к которой применяется UPU, и присвоения ей конкретного значения. UPU_TYPE_COSTOM может быть синтаксисом, указывающим, что единица UPU не является предопределенной единицей среди единиц, к которым применима UPU. Когда единицей, к которой применяется UPU, является UPU_TYPE_COSTOM, может выполняться дополнительная сигнализация для установки диапазона UPU. Например, сигналы upu_width и upu_height на фиг. 17 и 18 могут быть синтаксисом для сигнализации размера, к которому применяется UPU, по ширине и высоте.[00351] In this case, encoding can be accomplished by assigning a unit to which the UPU applies and assigning a specific value to it. UPU_TYPE_COSTOM may be syntax indicating that the UPU unit is not a predefined unit among the units to which the UPU applies. When the unit to which the UPU applies is UPU_TYPE_COSTOM, additional signaling may be performed to set the range of the UPU. For example, the upu_width and upu_height signals in FIG. 17 and 18 could be syntax for signaling the size to which the UPU is applied, in terms of width and height.
[00352] upu_type_idx может быть опущен, когда UPU формирует список кандидатов с фиксированным размером или тип UPU может быть выведен из другого сигнала. Когда UPU применяется только в единице или размере, указанных заранее, сигнализация синтаксиса для установки UPU_TYPE_COSTOM и диапазона UPU может быть опущена.[00352] upu_type_idx may be omitted when the UPU generates a fixed-size candidate list or the UPU type may be inferred from another signal. When a UPU is applied only in a unit or size specified in advance, the syntax signaling for setting UPU_TYPE_COSTOM and the UPU range may be omitted.
[00353] Здесь вся сигнализация относительно списка кандидатов может быть опущена, когда тип слайса является конкретным типом. Например, вся сигнализация, относящаяся к списку кандидатов, может быть опущена, когда типом текущего слайса является I-слайс. Поскольку список кандидатов представляет собой способ кодирования и декодирования, используемый для предсказания движения, сигнализация может быть опущена в случае I-слайса, которая не выполняет предсказание движения.[00353] Here, all signaling regarding the candidate list can be omitted when the slice type is a concrete type. For example, all signaling related to the candidate list may be omitted when the current slice type is I-slice. Since the candidate list is an encoding and decoding method used for motion prediction, signaling can be omitted in the case of an I-slice that does not perform motion prediction.
[00354] Фиг. 20 показывает пример, когда индекс списка кандидатов включен в синтаксис единицы кодирования. Сигнал индекса списка кандидатов в соответствии с настоящим изобретением может быть синтаксисом, указывающим, какая информация движения-кандидат из кандидатов списка кандидатов используется для предсказания информации движения, когда используется предсказание информации движения с использованием списка кандидатов.[00354] FIG. 20 shows an example where the candidate list index is included in the encoding unit syntax. The candidate list index signal according to the present invention may be a syntax indicating which candidate motion information from the candidate list candidates is used to predict motion information when motion information prediction using the candidate list is used.
[00355] В качестве примера, сигнал индекса списка кандидатов может использоваться в сочетании с режимом слияния, режимом AMVP, режимом IBC и т.д. и может использоваться вместе с другими сигналами без какой-либо отдельной сигнализации. Альтернативно, сигнализация может быть опущена с использованием ранее назначенной информации движения кандидата. В качестве другого примера, сигнал индекса списка кандидатов может быть опущен, когда текущий блок кодирования не находится в режиме интер-предсказания.[00355] As an example, the candidate list index signal can be used in combination with a merge mode, an AMVP mode, an IBC mode, etc. and can be used in conjunction with other signals without any separate signaling. Alternatively, the signaling may be omitted using the candidate's previously assigned motion information. As another example, the candidate list index signal may be omitted when the current coding block is not in inter-prediction mode.
[00356] На фиг. 20, cu_inter_pred_mode может быть сигналом, указывающим, каким способом кодирования кодируется/декодируется текущий блок, когда текущая CU находится в режиме интер-предсказания. Когда cu_inter_pred_mode указывает способ кодирования/декодирования с использованием списка кандидатов в соответствии с настоящим изобретением, может сигнализироваться сигнал индекса списка кандидатов. В качестве другого примера, сигнализация cu_inter_pred_mode может быть опущена, и способ кодирования/декодирования текущего блока кодирования может быть выбран предопределенным способом. Способ кодирования/ декодирования текущего блока кодирования выбирается предопределенным способом, и когда предопределенный способ кодирования/декодирования является способом кодирования/ декодирования с использованием списка кандидатов в соответствии с настоящим изобретением, может сигнализироваться сигнал индекса списка кандидатов.[00356] In FIG. 20, cu_inter_pred_mode may be a signal indicating which encoding method the current block is encoded/decoded when the current CU is in inter-prediction mode. When cu_inter_pred_mode indicates an encoding/decoding method using a candidate list according to the present invention, a candidate list index signal may be signaled. As another example, the cu_inter_pred_mode signaling may be omitted and the encoding/decoding method of the current encoding block may be selected in a predetermined manner. The encoding/decoding method of the current encoding block is selected in a predetermined manner, and when the predetermined encoding/decoding method is a candidate list encoding/decoding method according to the present invention, a candidate list index signal may be signaled.
[00357] В качестве примера, MODE_AMVOL может быть синтаксисом, указывающим способ кодирования/декодирования с использованием списка кандидатов в соответствии с настоящим изобретением. amvol_idx может указывать индекс списка кандидатов. Посредством сигнализированного amvol_idx можно определить, какая информация движения среди информации движения, сохраненной в списке кандидатов, используется в качестве кандидата для предсказания движения.[00357] As an example, MODE_AMVOL may be a syntax indicating an encoding/decoding method using a candidate list in accordance with the present invention. amvol_idx can indicate the candidate list index. By the signaled amvol_idx, it is possible to determine which motion information among the motion information stored in the candidate list is used as a candidate for motion prediction.
[00358] [00358]
[00359] Далее будет описан способ аппроксимации информации движения, включенной в список кандидатов в соответствии с настоящим изобретением.[00359] Next, a method for approximating motion information included in a candidate list according to the present invention will be described.
[00360] Информация движения, сохраняемая в списке кандидатов в соответствии с настоящим изобретением, может быть сходной друг с другом. Когда сходная информация движения существует в большом количестве списков кандидатов, может возникнуть проблема, связанная с тем, что характеристики информации движения, которая является кандидатом, смещены, так что эффективность предсказания информации движения снижается. Здесь, вышеупомянутая проблема может быть решена путем преобразования и использования сходных кандидатов в одной аппроксимированной информации движения.[00360] The motion information stored in the candidate list according to the present invention may be similar to each other. When similar motion information exists in a large number of candidate lists, a problem may arise that the characteristics of the motion information that is a candidate are shifted so that the prediction performance of the motion information is reduced. Here, the above problem can be solved by transforming and using similar candidates in one approximated motion information.
[00361] Момент времени, когда генерируется аппроксимированная информация движения, является одним из момента времени, когда информация движения сохраняется в списке кандидатов в соответствии с настоящим изобретением, момента времени, когда кандидат списка кандидатов генерируется из списка кандидатов, и момента времени, когда информация движения, сохраняемая в списке кандидатов для каждого периода, аппроксимируется.[00361] The time point when the approximate motion information is generated is one of the time point when the motion information is stored in the candidate list according to the present invention, the time point when the candidate list candidate is generated from the candidate list, and the time point when the motion information , stored in the list of candidates for each period, is approximated.
[00362] Фиг. 21 и 22 представляют собой диаграммы, иллюстрирующие блок-схемы последовательностей операций кодера и декодера, которые аппроксимируют информацию движения в соответствии с некоторыми вариантами осуществления настоящего изобретения.[00362] FIG. 21 and 22 are diagrams illustrating flowcharts of an encoder and decoder that approximate motion information in accordance with some embodiments of the present invention.
[00363] Фиг. 21 и 22 иллюстрируют блок-схемы последовательностей операций кодера/декодера, использующего способ аппроксимации информации движения списка кандидатов в соответствии с настоящим изобретением. Фиг. 21 иллюстрирует случай, когда информация движения списка кандидатов аппроксимируется во время добавления информации движения в список кандидатов, а фиг. 22 иллюстрирует случай, когда информация движения списка кандидатов аппроксимируется во время генерации кандидатов списка кандидатов.[00363] FIG. 21 and 22 illustrate flowcharts of an encoder/decoder using a candidate list motion information approximation method in accordance with the present invention. Fig. 21 illustrates a case where motion information of a candidate list is approximated at the time of adding motion information to the candidate list, and FIG. 22 illustrates a case where candidate list motion information is approximated during candidate list candidate generation.
[00364] Фиг. 21 и 22 могут быть примерами, в которых этап аппроксимации информации движения добавляется к блок-схеме последовательностей операций на фиг. 11. Кодер или декодер может аппроксимировать информацию движения во время добавления информации движения в список кандидатов. Информация движения, аппроксимированная на этапе аппроксимации информации движения, может быть вновь добавлена в список кандидатов на этапе добавления информации движения списка кандидатов.[00364] FIG. 21 and 22 may be examples in which a motion information approximation step is added to the flowchart of FIG. 11. The encoder or decoder may approximate the motion information while adding the motion information to the candidate list. The motion information approximated in the motion information approximation step may be added again to the candidate list in the candidate list motion information adding step.
[00365] На фиг. 22, когда кодер или декодер генерирует кандидата списка кандидатов из информации движения в списке кандидатов, кодер или декодер может аппроксимировать информацию движения кандидата списка кандидатов. Этап предсказания информации движения списка кандидатов может выполняться посредством кандидатов списка кандидатов, имеющих аппроксимированную информацию движения. Кроме того, поскольку каждый этап на фиг. 21 и 22 может быть таким же, как каждый этап на фиг. 11, его описание будет опущено.[00365] In FIG. 22, when an encoder or decoder generates a candidate list candidate from motion information in the candidate list, the encoder or decoder can approximate the motion information of a candidate list candidate. The candidate list motion information prediction step may be performed by candidates of the candidate list having approximated motion information. Moreover, since each step in FIG. 21 and 22 may be the same as each step in FIG. 11, its description will be omitted.
[00366] Фиг. 23 и 24 представляют собой диаграммы, иллюстрирующие структуру кодера и декодера для аппроксимации информации движения в соответствии с некоторыми вариантами осуществления настоящего изобретения.[00366] FIG. 23 and 24 are diagrams illustrating the structure of an encoder and decoder for approximating motion information in accordance with some embodiments of the present invention.
[00367] Фиг. 23 и 24 показывают примеры схем устройств под-декодеров, использующих способ аппроксимации информации движения списка кандидатов. Фиг. 23 иллюстрирует случай, когда информация движения списка кандидатов аппроксимируется во время добавления информации движения в список кандидатов, и фиг. 24 иллюстрирует случай, когда информация движения списка кандидатов аппроксимируется во время генерации кандидата списка кандидатов.[00367] FIG. 23 and 24 show example circuits of sub-decoder devices using a candidate list motion information approximation method. Fig. 23 illustrates a case where motion information of the candidate list is approximated at the time of adding motion information to the candidate list, and FIG. 24 illustrates a case where candidate list motion information is approximated during candidate list candidate generation.
[00368] Фиг. 23 и 24 иллюстрируют примеры, в которых модуль аппроксимации информации движения списка кандидатов добавлен к схеме устройства на фиг. 12. Модуль аппроксимации информации движения списка кандидатов может аппроксимировать информацию движения, когда информация движения добавляется в список кандидатов. Информация движения, аппроксимированная модулем аппроксимации информации движения списка кандидатов, может быть вновь добавлена в список кандидатов модулем добавления информации движения в список кандидатов.[00368] FIG. 23 and 24 illustrate examples in which a candidate list motion information approximation unit is added to the apparatus circuit of FIG. 12. The candidate list motion information approximation unit can approximate motion information when motion information is added to the candidate list. The motion information approximated by the candidate list motion information approximation unit may be added again to the candidate list by the candidate list motion information appending unit.
[00369] Модуль аппроксимации информации движения списка кандидатов согласно фиг. 24 может аппроксимировать информацию движения кандидатов в списке кандидатов при генерировании кандидата списка кандидатов из информации движения в списке кандидатов. Модуль предсказания информации движения списка кандидатов может выполнять предсказание информации движения с использованием кандидатов списка кандидатов, имеющих аппроксимированную информацию движения. Кроме того, поскольку каждый компонент на фиг. 23 и 24 могут быть такими же, как каждый компонент на фиг. 12, его описание будет опущено.[00369] The candidate list motion information approximation module according to FIG. 24 can approximate movement information of candidates in the candidate list when generating a candidate list candidate from the movement information in the candidate list. The candidate list motion information prediction unit may perform motion information prediction using the candidate list candidates having approximated motion information. Moreover, since each component in FIG. 23 and 24 may be the same as each component in FIG. 12, its description will be omitted.
[00370] Далее будет описан способ аппроксимации информации движения кодером или декодером в соответствии с некоторыми вариантами осуществления настоящего изобретения.[00370] Next, a method for approximating motion information by an encoder or decoder in accordance with some embodiments of the present invention will be described.
[00371] В качестве примера, информация движения может быть аппроксимирована с использованием среднего значения информации движения. Кодер или декодер может аппроксимировать информацию движения, соответствующую определенному диапазону сходства, путем получения среднего значения информации движения, соответствующей определенному диапазону сходства. Здесь, по меньшей мере одно из среднего арифметического, среднего взвешенного и медианы может использоваться в качестве способа вычисления среднего. Кроме того, среднее значение информации движения может быть вычислено в пределах диапазона, определенного независимо от сходства.[00371] As an example, the motion information can be approximated using the average value of the motion information. An encoder or decoder may approximate motion information corresponding to a certain range of similarity by obtaining an average value of motion information corresponding to a certain range of similarity. Here, at least one of the arithmetic average, the weighted average, and the median may be used as a method for calculating the average. In addition, the average value of the motion information can be calculated within a range determined regardless of the similarity.
[00372] В качестве другого примера, информация движения может быть аппроксимирована посредством репрезентативного выбора по частоте появления информации движения. После получения такого же количества частей информации движения в пределах предопределенного диапазона, кодер или декодер может аппроксимировать ту же самую информацию движения в пределах предопределенного диапазона путем определения наибольшего количества частей информации движения в качестве репрезентативной информации движения. Например, когда предопределенным диапазоном является CTU, кодер или декодер может сравнивать всю информацию движения, сгенерированную в одной CTU, и определять информацию движения с наибольшим количеством появлений в качестве репрезентативной информации движения текущей CTU. Репрезентативная информация движения может использоваться как аппроксимированная информация движения.[00372] As another example, motion information can be approximated by representative selection on the frequency of occurrence of motion information. After obtaining the same number of pieces of motion information within a predetermined range, the encoder or decoder can approximate the same motion information within the predetermined range by defining the largest number of pieces of motion information as representative motion information. For example, when the predetermined range is a CTU, the encoder or decoder may compare all the motion information generated in one CTU and determine the motion information with the most occurrences as representative motion information of the current CTU. The representative motion information can be used as approximate motion information.
[00373] Кроме того, вышеописанное определение репрезентативной информации движения может быть выполнено с использованием сходной информации движения вместо той же самой информации движения. В этом случае, сходная информация движения может означать информацию движения, имеющую различие в пределах конкретного порогового значения относительно опорной информации движения. Кодер или декодер может подтвердить количество появлений путем обработки сходной информации движения как той же самой информации движения, описанной выше, и определять репрезентативную информацию движения на ее основе.[00373] In addition, the above-described determination of motion representative information can be performed using similar motion information instead of the same motion information. In this case, similar motion information may mean motion information having a difference within a particular threshold value with respect to the reference motion information. The encoder or decoder can confirm the number of occurrences by treating similar motion information as the same motion information described above, and determine representative motion information based thereon.
[00374] В качестве другого примера, информация движения может быть аппроксимирована с учетом участка области, из которой выводится информация движения. Участок области, из которого выводится информация движения, может быть различным для каждой части информации движения. Кодер или декодер может аппроксимировать информацию движения с учетом участка области, из которой выводится информация движения. Например, информация движения выводится из большой области, кодер или декодер может вычислять среднее взвешенное значение путем придания более высокого веса, или аппроксимировать информацию движения путем выбора информации движения, выведенной из наибольшей области, в качестве репрезентативной информации движения. В этом случае, когда информация движения, полученная из областей, отличающихся друг от друга, имеет одинаковое движение по отношению друг к другу, области могут суммироваться и учитываться.[00374] As another example, motion information may be approximated taking into account a portion of the region from which motion information is derived. The portion of the area from which motion information is output may be different for each piece of motion information. The encoder or decoder may approximate the motion information based on a portion of the region from which the motion information is output. For example, motion information is output from a large area, the encoder or decoder may calculate a weighted average by giving a higher weight, or approximate the motion information by selecting motion information output from the largest area as representative motion information. In this case, when motion information obtained from regions different from each other has the same motion with respect to each other, the regions can be summed and taken into account.
[00375] В качестве другого примера, информация движения может быть аппроксимирована с учетом потенциала предсказания информации движения. Кодер или декодер может сравнивать части информации о потенциале предсказания с информацией движения, которая должна быть добавлена в список кандидатов, чтобы выбрать информацию движения, имеющую высокий потенциал предсказания, в качестве репрезентативной информации движения, или вычислять репрезентативную информацию движения с использованием среднего взвешенного значения в соответствии с потенциалом предсказания. Здесь, кодер или декодер может установить диапазон для сравнения потенциала предсказания или аппроксимировать информацию движения путем сравнения потенциала предсказания только между сходными частями информации движения.[00375] As another example, motion information may be approximated taking into account the prediction potential of motion information. The encoder or decoder may compare pieces of prediction potential information with motion information to be added to the candidate list to select motion information having high prediction potential as motion representative information, or calculate motion representative information using a weighted average according to with predictive potential. Here, the encoder or decoder may set a range for comparing the prediction potential or approximate the motion information by comparing the prediction potential only between similar pieces of motion information.
[00376] Здесь, потенциал предсказания информации движения может быть информацией, указывающей, насколько высока точность предсказания информации движения или эффективность кодирования, когда используется предсказание информации движения с использованием списка кандидатов в соответствии с настоящим изобретением. Способ определения потенциала предсказания информации движения будет описан ниже.[00376] Here, the motion information prediction potential may be information indicating how high the motion information prediction accuracy or coding efficiency is when motion information prediction using the candidate list is used in accordance with the present invention. A method for determining motion information prediction potential will be described below.
[00377] В качестве другого примера, информация движения может быть аппроксимирована путем установки разрешения информации движения в конкретной пиксельной единице. Вектор движения, который должен быть добавлен в список кандидатов, может быть аппроксимирован до конкретной пиксельной единицы. Например, конкретный пиксел может быть одной из целочисленной пиксельной единицы, 1/2-пиксельной единицы, 1/4-пиксельной единицы и четырех-пиксельной единицы. Например, когда разрешение вектора движения, добавляемого в список кандидатов, аппроксимируется до 1/16-пиксельной единицы и целочисленной пиксельной единицы, значение вектора движения может быть аппроксимировано до ближайшего целочисленного значения. В качестве другого примера, при аппроксимации до 1/2-пиксельной единицы, значение вектора движения может быть аппроксимировано до ближайшего значения 1/2 единицы. Например, когда значение вектора движения равно (2,6; 3,7), при аппроксимации до ближайшего значения 1/2 единицы, значение вектора движения может аппроксимироваться до (2,5; 3,5).[00377] As another example, motion information can be approximated by setting the resolution of the motion information to a specific pixel unit. The motion vector to be added to the candidate list can be approximated to a specific pixel unit. For example, a particular pixel may be one of an integer pixel unit, a 1/2-pixel unit, a 1/4-pixel unit, and a four-pixel unit. For example, when the resolution of a motion vector added to the candidate list is approximated to 1/16-pixel unit and integer pixel unit, the value of the motion vector can be approximated to the nearest integer value. As another example, when approximating to a 1/2-pixel unit, the motion vector value may be approximated to the nearest 1/2-unit value. For example, when the motion vector value is (2.6; 3.7), when approximating to the nearest 1/2 unit value, the motion vector value can be approximated to (2.5; 3.5).
[00378] Аппроксимация информации движения может выполняться с использованием вышеописанных вариантов осуществления по отдельности. Кроме того, аппроксимация информации движения может выполняться посредством по меньшей мере одной комбинации вышеописанных вариантов осуществления.[00378] Approximation of motion information can be performed using the above-described embodiments separately. In addition, approximation of motion information can be performed by at least one combination of the above-described embodiments.
[00379][00379]
[00380] Далее будет описан способ выполнения предсказания с использованием потенциала предсказания информации движения списка кандидатов в соответствии с настоящим изобретением.[00380] Next, a method for performing prediction using the candidate list motion information prediction potential according to the present invention will be described.
[00381] Информация движения, сохраненная в списке кандидатов в соответствии с настоящим изобретением, может включать в себя дополнительную информацию для более эффективного использования списка кандидатов в дополнение к информации для предсказания движения. Потенциал предсказания информации движения, включенной в список кандидатов, может быть определен с использованием некоторой или всей информации движения и дополнительной информации, включенной в список кандидатов.[00381] The motion information stored in the candidate list in accordance with the present invention may include additional information for more efficient use of the candidate list in addition to the motion prediction information. The prediction potential of motion information included in the candidate list may be determined using some or all of the motion information and additional information included in the candidate list.
[00382] В настоящем описании, потенциал предсказания может быть информацией, указывающей, насколько высока точность предсказания или эффективность кодирования информации движения при использовании для предсказания информации движения с использованием списка кандидатов. Следовательно, можно повысить эффективность кодирования, выбирая сначала информацию движения, имеющую высокий потенциал предсказания, и генерируя кандидатов для списка кандидатов.[00382] In the present description, the prediction potential may be information indicating how high the prediction accuracy or encoding efficiency of motion information is when used to predict motion information using a candidate list. Therefore, it is possible to improve encoding efficiency by first selecting motion information having high prediction potential and generating candidates for the candidate list.
[00383] Способ определения потенциала предсказания информации движения в соответствии с настоящим изобретением может включать в себя способ вычисления глобального потенциала информации движения, принадлежащей списку кандидатов в UPU, и способ вычисления локального потенциала для блока (единицы), подлежащей кодированию в текущее время.[00383] A method for determining a motion information prediction potential according to the present invention may include a method for calculating a global potential of motion information belonging to a UPU candidate list and a method for calculating a local potential for a block (unit) to be encoded at the current time.
[00384] Способ вычисления глобального потенциала может быть способом оценки того, насколько перспективна каждая часть информации движения, включенной в список кандидатов, для всей UPU. Способ вычисления локального потенциала может быть способом оценки того, насколько перспективна каждая часть информации движения, включенной в список кандидатов, для предсказания информации движения конкретного блока.[00384] The method for calculating the global potential may be a method for estimating how promising each piece of motion information included in the candidate list is for the entire UPU. The method for calculating the local potential may be a method for assessing how promising each piece of motion information included in the candidate list is for predicting the motion information of a particular block.
[00385] фиг. 25 и 26 представляют собой диаграммы, иллюстрирующие способ вычисления потенциала списка кандидатов в соответствии с некоторыми вариантами осуществления настоящего изобретения.[00385] FIG. 25 and 26 are diagrams illustrating a method for calculating candidate list potential in accordance with some embodiments of the present invention.
[00386] Фиг. 25 и 26 показывают блок-схемы последовательностей операций кодера и декодера, которые вычисляют потенциал предсказания информации движения. Фиг. 25 иллюстрирует случай, когда потенциал предсказания информации движения вычисляется во время добавления информации движения в список кандидатов, и фиг. 26 иллюстрирует случай, когда потенциал предсказания информации движения, включаемой в список кандидатов, вычисляется во время генерации кандидата списка кандидатов.[00386] FIG. 25 and 26 show flowcharts of an encoder and a decoder that calculate motion information prediction potential. Fig. 25 illustrates a case where the motion information prediction potential is calculated at the time of adding motion information to the candidate list, and FIG. 26 illustrates a case where the prediction potential of motion information included in the candidate list is calculated during candidate generation of the candidate list.
[00387] Фиг. 25 и 26 могут быть примерами, в которых этап вычисления потенциала предсказания добавляется к блок-схеме последовательностей операций на фиг. 11. Например, вычисление потенциала предсказания списка кандидатов согласно фиг. 25 может выполняться описанным выше способом вычисления глобального потенциала. Информация движения, добавленная в список кандидатов, может включать в себя информацию о потенциале предсказания. Когда та же самая информация движения существует в существующем списке кандидатов, информация о потенциале предсказания может быть обновлена.[00387] FIG. 25 and 26 may be examples in which a prediction potential calculation step is added to the flowchart of FIG. 11. For example, calculating the candidate list prediction potential according to FIG. 25 can be performed by the method described above for calculating the global potential. The motion information added to the candidate list may include prediction potential information. When the same motion information exists in the existing candidate list, the prediction potential information can be updated.
[00388] Например, этап вычисления потенциала предсказания на фиг. 26 может выполняться с использованием описанного выше способа вычисления локального потенциала.[00388] For example, the prediction potential calculation step in FIG. 26 can be performed using the local potential calculation method described above.
[00389] Этапы предсказания информации движения списка кандидатов на фиг. 25 и 26 могут выполняться с учетом выведенной информации о потенциале предсказания. Кроме того, поскольку каждый этап на фиг. 25 и 26 может быть таким же, как каждый этап на фиг. 11, его описание будет опущено.[00389] Steps for predicting candidate list motion information in FIG. 25 and 26 may be performed in consideration of the output prediction potential information. Moreover, since each step in FIG. 25 and 26 may be the same as each step in FIG. 11, its description will be omitted.
[00390] Фиг. 27 и 28 представляют собой диаграммы, иллюстрирующие структуру кодера и декодера для вычисления потенциала предсказания списка кандидатов в соответствии с некоторыми вариантами осуществления настоящего изобретения.[00390] FIG. 27 and 28 are diagrams illustrating the structure of an encoder and decoder for computing candidate list prediction potential in accordance with some embodiments of the present invention.
[00391] Фиг. 27 и 28 показывают примеры схем устройств кодера и декодера, которые вычисляют потенциал предсказания информации движения. Фиг. 27 иллюстрирует случай, когда потенциал информации движения вычисляется во время добавления информации движения в список кандидатов, и фиг. 28 иллюстрирует случай, когда потенциал информации движения списка кандидатов вычисляется во время генерации кандидатов списка кандидатов.[00391] FIG. 27 and 28 show example circuits of encoder and decoder devices that calculate motion information prediction potential. Fig. 27 illustrates a case where the motion information potential is calculated at the time of adding motion information to the candidate list, and FIG. 28 illustrates a case where the candidate list motion information potential is calculated during candidate list candidate generation.
[00392] Фиг. 27 и 28 показывают примеры, в которых вычислитель потенциала предсказания добавлен к схеме устройства на фиг. 12. Например, вычислитель потенциала предсказания согласно фиг. 27 вычисляет потенциал информации движения, которая должна быть добавлена в список кандидатов, и может вычислять потенциал предсказания с использованием способа вычисления глобального потенциала, описанного выше. Информация движения, добавленная в список кандидатов, может включать в себя информацию о потенциале предсказания. Когда та же самая информация движения существует в существующем списке кандидатов, потенциальная информация может быть обновлена.[00392] FIG. 27 and 28 show examples in which a prediction potential calculator is added to the device circuit of FIG. 12. For example, the prediction potential calculator according to FIG. 27 calculates the potential of motion information to be added to the candidate list, and can calculate the prediction potential using the global potential calculation method described above. The motion information added to the candidate list may include prediction potential information. When the same traffic information exists in an existing candidate list, the candidate information can be updated.
[00393] Между тем, вычислитель потенциала предсказания согласно фиг. 28 вычисляет потенциал предсказания при генерации кандидата списка кандидатов, и потенциал предсказания может быть вычислен с помощью способа вычисления локального потенциала предсказания, описанного выше.[00393] Meanwhile, the prediction potential calculator according to FIG. 28 calculates the prediction potential when generating a candidate list candidate, and the prediction potential can be calculated using the local prediction potential calculation method described above.
[00394] Модули предсказания информации движения списка кандидатов согласно фиг. 27 и 28 могут предсказывать информацию движения с учетом выведенной информации о потенциале предсказания. Кроме того, поскольку каждый компонент на фиг. 27 и фиг. 28 может быть таким же, как каждый компонент на фиг. 12, его описание опущено.[00394] The candidate list motion information prediction modules of FIG. 27 and 28 can predict motion information taking into account the output prediction potential information. Moreover, since each component in FIG. 27 and fig. 28 may be the same as each component in FIG. 12, its description omitted.
[00395] Фиг. 29 представляет собой диаграмму, иллюстрирующую генерацию смешанного список кандидатов в соответствии с вариантом осуществления настоящего изобретения.[00395] FIG. 29 is a diagram illustrating the generation of a mixed candidate list in accordance with an embodiment of the present invention.
[00396] Фиг. 29 показывает пример схемы устройства кодера и декодера для вычисления потенциала предсказания информации движения с использованием способа вычисления глобального потенциала и вычисления локального потенциала. Схема устройства на фиг. 29, может быть получена путем замены вычислителя потенциала предсказания согласно фиг. 27 вычислителем глобального потенциала и замены вычислителя потенциала предсказания согласно фиг. 28 вычислителем локального потенциала. Согласно фиг. 29, кандидаты списка кандидатов могут быть сгенерированы с учетом как глобального потенциала, так и локального потенциала, которые могут использоваться в модуле предсказания информации движения списка кандидатов.[00396] FIG. 29 shows an example circuit of an encoder and decoder apparatus for calculating a motion information prediction potential using a global potential calculation method and a local potential calculation method. Device diagram in Fig. 29 can be obtained by replacing the prediction potential calculator according to FIG. 27 with a global potential calculator and replacing the prediction potential calculator according to FIG. 28 local potential calculator. According to FIG. 29, candidate list candidates can be generated taking into account both the global potential and the local potential, which can be used in the candidate list motion information prediction unit.
[00397] Далее будет описан способ вычисления потенциала предсказания информации движения в соответствии с некоторыми вариантами осуществления настоящего изобретения.[00397] Next, a method for calculating motion information prediction potential in accordance with some embodiments of the present invention will be described.
[00398] В качестве примера, потенциал предсказания может быть вычислен с учетом частоты появления информации движения. Потенциал предсказания информации движения может вычисляться путем проверки, насколько много информации движения в списке кандидатов уже сгенерировано. Когда частота появления той же самой информации движения или сходной информации движения, с которой можно обращаться как с той же самой информацией движения, высока, кодер или декодер может определить, что потенциал предсказания соответствующей информации движения является высоким. Здесь, частота появления может быть измерена с использованием количества появлений той же самой информации движения, области, имеющей ту же самую информацию движения, и т.п. Здесь, частота появления может быть измерена путем ограничения области, где измеряется частота появления. Например, частота появления до настоящего времени может быть измерена для всей области UPU, или частота появления может быть измерена только в пределах предопределенного диапазона или конкретной области на основе единицы, которая кодируется в текущее время. Частота появления, измеренная таким образом, может быть использована для вычисления потенциала предсказания информации движения.[00398] As an example, the prediction potential can be calculated taking into account the frequency of occurrence of motion information. The motion information prediction potential can be calculated by checking how much motion information in the candidate list has already been generated. When the frequency of occurrence of the same motion information or similar motion information that can be treated as the same motion information is high, the encoder or decoder may determine that the prediction potential of the corresponding motion information is high. Here, the frequency of occurrence can be measured using the number of occurrences of the same motion information, an area having the same motion information, and the like. Here, the occurrence frequency can be measured by limiting the area where the occurrence frequency is measured. For example, the occurrence rate to date may be measured for the entire UPU region, or the occurrence rate may be measured only within a predefined range or specific region based on the unit that is being encoded at the current time. The frequency of occurrence measured in this way can be used to calculate the prediction potential of motion information.
[00399] В качестве другого примера, потенциал предсказания может быть вычислен с учетом точности интер-предсказания. Поскольку каждая часть информации движения, принадлежащей списку кандидатов, представляет собой информацию движения, используемую для восстановления другого блока, кодер или декодер может знать эффективность кодирования блока, восстановленного с использованием соответствующей информации движения.[00399] As another example, the prediction potential may be calculated taking into account inter-prediction accuracy. Since each piece of motion information belonging to the candidate list is motion information used to reconstruct another block, the encoder or decoder can know the coding efficiency of a block reconstructed using the corresponding motion information.
[00400] Эффективность кодирования информации движения может быть определена на основе распределения энергии или среднего значения остаточного сигнала. Энергия остаточного сигнала может означать разницу в значении яркости или разницу в пиксельном значении между текущим блоком и блоком предсказания, сгенерированным посредством интер-предсказания. Среднее значение энергии остаточного сигнала может означать среднее значение разности между значением яркости или пиксельным значением, сгенерированным в каждом пиксельном положении текущего блока и блока предсказания. Распределение энергии остаточного сигнала может быть значением, вычисленным через положение энергии остаточного сигнала для каждого пиксельного положения в дифференциальном блоке и величину энергии. Например, распределение энергии остаточного сигнала может быть значением момента остаточных сигналов, имеющих энергию предопределенной величины или более. Здесь, значение момента остаточных сигналов может означать центральное положение распределения значений яркости, которое вычисляется посредством положений соответствующих остаточных сигналов и значений яркости соответствующих остаточных сигналов.[00400] The efficiency of encoding motion information can be determined based on the energy distribution or the average value of the residual signal. The residual signal energy may indicate a difference in brightness value or a difference in pixel value between the current block and the prediction block generated by inter-prediction. The average residual signal energy value may mean the average value of the difference between a luminance value or a pixel value generated at each pixel position of the current block and the prediction block. The residual signal energy distribution may be a value calculated through the residual signal energy position for each pixel position in the differential block and the energy amount. For example, the residual signal energy distribution may be the torque value of residual signals having an energy of a predetermined amount or more. Here, the moment value of the residual signals may denote the central position of the distribution of luminance values, which is calculated by the positions of the corresponding residual signals and the luminance values of the corresponding residual signals.
[00401] По энергии остаточного сигнала может быть вычислено распределение и среднее значение и т.п. в преобразованном по частоте дифференциальном блоке. Например, значение DC может использоваться как среднее значение в частотной области, и распределение энергии остаточных сигналов может быть определено через отношение энергии для каждой частотной области. Здесь, чтобы кодер и декодер работали одинаково, может использоваться квантованный дифференциальный блок или преобразованный по частоте разностный блок. Кроме того, при использовании квантованного дифференциального блока или преобразованного по частоте дифференциального блока, может использоваться параметр квантования или значение шага квантования. Например, при сравнении распределения энергии или среднего значения остаточного сигнала двух блоков с использованием различных параметров квантования друг от друга, распределение энергии или среднее значение дифференциального сигнала может быть скорректировано посредством разности параметра квантования.[00401] From the energy of the residual signal, a distribution and an average value and the like can be calculated. in a frequency-converted differential block. For example, the DC value can be used as an average in the frequency domain, and the energy distribution of the residual signals can be determined through the energy ratio for each frequency domain. Here, to make the encoder and decoder work identically, a quantized differential block or a frequency-converted difference block can be used. In addition, when using a quantized differential block or a frequency-converted differential block, a quantization parameter or quantization step value may be used. For example, when comparing the energy distribution or average value of the residual signal of two blocks using different quantization parameters from each other, the energy distribution or average value of the differential signal can be corrected by the difference of the quantization parameter.
[00402] Например, после того, как энергия дифференциального сигнала, имеющего больший параметр квантования, масштабируется n раз, можно вычислить распределение энергии или среднее значение дифференциального сигнала, чтобы сравнить энергию остаточных сигналов между двумя блоками. Кроме того, поскольку высокочастотная составляющая предпочтительно уменьшается во время квантования, при сравнении энергии остаточного сигнала в частотной области, вычисление может выполняться путем присвоения отдельного веса низкочастотной составляющей и высокочастотной составляющей.[00402] For example, after the energy of a differential signal having a larger quantization parameter is scaled n times, the energy distribution or average of the differential signal can be calculated to compare the energy of the residual signals between the two blocks. In addition, since the high-frequency component is preferably reduced during quantization, when comparing the energy of the residual signal in the frequency domain, the calculation can be performed by assigning separate weights to the low-frequency component and the high-frequency component.
[00403] Здесь, когда значение средней энергии остаточного сигнала высокое, определяется, что потенциал предсказания низкий. Потенциал предсказания может быть определен с помощью способа сравнения распределения энергии остаточного сигнала путем изменения его приоритета в соответствии с положением распределения энергии остаточного сигнала и способа сравнения распределения энергии остаточного сигнала в соответствии с частотной областью, такой как высокочастотная область и низкочастотная область.[00403] Here, when the average energy value of the residual signal is high, it is determined that the prediction potential is low. The prediction potential can be determined by a method of comparing the energy distribution of a residual signal by changing its priority according to the position of the residual signal energy distribution, and a method of comparing the energy distribution of the residual signal according to a frequency region such as a high-frequency region and a low-frequency region.
[00404] То есть, когда эффективность кодирования высока при использовании соответствующей информации движения, сравнивая эффективность кодирования восстановленных блоков с использованием каждой части информации движения, кодер или декодер может определить, что соответствующая информация движения имеет высокий потенциал предсказания.[00404] That is, when the encoding efficiency is high when using the corresponding motion information, by comparing the encoding efficiency of the reconstructed blocks using each piece of motion information, the encoder or decoder can determine that the corresponding motion information has a high prediction potential.
[00405] В качестве другого примера, потенциал предсказания может быть вычислен с учетом расстояния между положением текущего блока и положением области, в которой появилась информация движения. Информация движения, выведенная из определенной области, с большей вероятностью будет сходна с конкретной областью, которая во времени и пространстве смежна с текущим блоком. С учетом такой характеристики, потенциал предсказания может быть определен в соответствии с пространственным и временным расстоянием между положением генерации каждой части информации движения, включенной в список кандидатов, и положением текущего блока.[00405] As another example, the prediction potential can be calculated taking into account the distance between the position of the current block and the position of the region in which motion information has appeared. Motion information inferred from a specific region is more likely to be similar to a specific region that is temporally and spatially adjacent to the current block. Considering such a characteristic, the prediction potential can be determined according to the spatial and temporal distance between the generation position of each piece of motion information included in the candidate list and the position of the current block.
[00406] Здесь, в случае той же самой информации движения, включенной в список кандидатов, кодер или декодер может сократить операции, необходимые для вычисления расстояния, посредством использования аппроксимированной информации положения или способа обновления самого последнего положения. В качестве примера способа вычисления аппроксимированной информации положения, когда информация движения генерируется в единицах блоков кодирования, может использоваться способ упрощения вычисления расстояния с учетом только информации положения CTU, включающей в себя соответствующий блок кодирования.[00406] Here, in the case of the same motion information included in the candidate list, the encoder or decoder can reduce the operations required to calculate the distance by using approximated position information or a method for updating the most recent position. As an example of a method for calculating approximate position information when motion information is generated in units of encoding blocks, a method for simplifying distance calculation taking into account only the position information of a CTU including a corresponding encoding block may be used.
[00407] Когда список кандидатов в соответствии с настоящим изобретением используется в сочетании с режимом слияния, режимом AMVP, режимом IBC или т.п., потенциал предсказания может быть определен, исключая способ определения смежной области, который учитывается существующим способом предсказания информации движения. [00407] When the candidate list according to the present invention is used in combination with a fusion mode, an AMVP mode, an IBC mode or the like, the prediction potential can be determined excluding the adjacent region determination method, which is taken into account by the existing motion information prediction method.
[00408] Вычисление потенциала предсказания информации движения может выполняться с использованием описанных выше вариантов осуществления по отдельности. Кроме того, вычисление потенциала предсказания информации движения может выполняться посредством по меньшей мере одной комбинации описанных выше вариантов осуществления. Когда вышеописанные варианты осуществления объединяются для вычисления потенциала предсказания, потенциал предсказания может быть вычислен путем взвешивания каждого значения результата определения и последующего применения важности каждого результата определения по-разному.[00408] Calculation of motion information prediction potential can be performed using the above-described embodiments separately. In addition, calculation of the motion information prediction potential can be performed by at least one combination of the above-described embodiments. When the above-described embodiments are combined to calculate the prediction potential, the prediction potential can be calculated by weighing each determination result value and then applying the importance of each determination result differently.
[00409] [00409]
[00410] Далее будет описан способ генерирования списка виртуальных кандидатов в соответствии с вариантом осуществления настоящего изобретения.[00410] Next, a method for generating a virtual candidate list in accordance with an embodiment of the present invention will be described.
[00411] Кандидаты списка кандидатов в соответствии с настоящим изобретением могут быть сгенерированы с помощью информации движения, ранее сохраненной в списке кандидатов. Например, кандидаты списка кандидатов могут быть сгенерированы с использованием всей или некоторой части информации движения, ранее сохраненной в списке кандидатов. Далее, кандидат, имеющий информацию движения, которая выведена из информации движения, ранее сохраненной в списке кандидатов, но не идентичной информации движения, ранее сохраненной в списке кандидатов, определяется как виртуальный кандидат. В соответствии с вариантом осуществления настоящего изобретения, виртуальный кандидат может быть добавлен в список кандидатов.[00411] Candidate list candidates in accordance with the present invention can be generated using motion information previously stored in the candidate list. For example, candidate list candidates may be generated using all or some of the motion information previously stored in the candidate list. Further, a candidate having motion information that is derived from the motion information previously stored in the candidate list, but not identical to the motion information previously stored in the candidate list, is defined as a virtual candidate. According to an embodiment of the present invention, a virtual candidate may be added to a candidate list.
[00412] Далее будет описан способ генерирования виртуального кандидата.[00412] Next, a method for generating a virtual candidate will be described.
[00413] Например, виртуальный кандидат может означать кандидата из смешанного списка кандидатов. Например, может иметься случай, когда предсказание выполняется с использованием множества частей информации движения. В частности, предсказание с использованием двух частей информации движения может называться двунаправленным предсказанием.[00413] For example, a virtual candidate may refer to a candidate from a mixed list of candidates. For example, there may be a case where the prediction is performed using multiple pieces of motion information. In particular, prediction using two pieces of motion information may be called bidirectional prediction.
[00414] Информация движения, используемая для интер-предсказания с использованием множества частей информации движения, может быть сконфигурирована как набор из множества частей информации движения. Кандидаты в списке кандидатов, имеющем набор из множества частей информации движения в качестве информации движения, могут быть сгенерированы из информации движения, сохраненной в различных списках кандидатов для каждой части информации движения, составляющей набор. Когда информация движения, сохраненная в списке кандидатов, представляет собой набор из множества частей информации движения, кандидаты смешанного списка кандидатов могут быть сгенерированы с использованием некоторой или всей информации движения.[00414] The motion information used for inter-prediction using multiple pieces of motion information may be configured as a set of multiple pieces of motion information. Candidates in a candidate list having a set of multiple pieces of motion information as motion information can be generated from motion information stored in different candidate lists for each piece of motion information constituting the set. When the motion information stored in the candidate list is a set of multiple pieces of motion information, candidates of the mixed candidate list can be generated using some or all of the motion information.
[00415] Фиг. 30 представляет собой диаграмму, иллюстрирующую генерацию смешанного список кандидатов в соответствии с вариантом осуществления настоящего изобретения.[00415] FIG. 30 is a diagram illustrating the generation of a mixed candidate list in accordance with an embodiment of the present invention.
[00416] Фиг. 30 показывает пример, в котором генерируется информация движения смешанного списка кандидатов. Пример на фиг. 30 показывает случай, когда информация движения смешанного списка кандидатов имеет информацию движения для списков L0 и L1 опорных картинок, и каждая часть информации движения состоит из вектора движения и номера опорной картинки (индекс, идентификатор, номер и т.д.). В примере на фиг. 30, смешанный список кандидатов имеет два набора информации движения A и B, и каждый набор информации движения включает в себя информацию движения из списка L0 опорных картинок и информацию движения из L1.[00416] FIG. 30 shows an example in which motion information of a mixed candidate list is generated. Example in Fig. 30 shows a case where the motion information of the mixed candidate list has motion information for reference picture lists L0 and L1, and each piece of motion information consists of a motion vector and a reference picture number (index, identifier, number, etc.). In the example in FIG. 30, the mixed candidate list has two sets of motion information A and B, and each set of motion information includes motion information from the reference picture list L0 and motion information from L1.
[00417] Здесь, C1 и C2 могут означать информацию движения смешанного списка кандидатов, сгенерированную из наборов информации движения A и B. Здесь, C1 может генерироваться из информации движения А из L0 и информации движения В из L1, а C2 может генерироваться из информации движения В из L0 и информации движения А из L1.[00417] Here, C1 and C2 may mean mixed candidate list motion information generated from motion information sets A and B. Here, C1 may be generated from motion information A from L0 and motion information B from L1, and C2 may be generated from motion information B from L0 and motion information A from L1.
[00418] В качестве другого примера, кандидаты нового списка кандидатов могут быть сгенерированы посредством среднего или среднего взвешенного значения некоторой или всей информации движения, ранее сохраненной в списке кандидатов. Виртуальные кандидаты, полученные этим способом, могут быть определены как средний кандидат.[00418] As another example, candidates of a new candidate list may be generated by an average or weighted average of some or all of the motion information previously stored in the candidate list. The virtual candidates obtained in this way can be defined as the average candidate.
[00419] Например, средний кандидат может быть выведен из двух или более частей информации движения, выведенной предопределенным способом, может использоваться информация движения вне списка кандидатов, не сохраненная в информации движения списка кандидатов, предопределенная информация движения и т.п. в процессе выведения информации движения. В процессе генерации среднего кандидата может использоваться среднее значение всей информации движения и может использоваться среднее значение некоторой информации движения. Например, когда информация движения состоит из вектора движения и номера опорной картинки, среднее значение вектора движения и номера опорной картинки может быть вычислено для генерации среднего кандидата, и среднее одного из вектора движения и номера опорной картинки вычисляется для генерации среднего кандидата.[00419] For example, the middle candidate may be derived from two or more pieces of motion information output in a predetermined manner, motion information outside the candidate list not stored in the candidate list motion information, predetermined motion information, and the like may be used. in the process of deducing motion information. The average candidate generation process may use the average of all motion information and may use the average of some motion information. For example, when the motion information consists of a motion vector and a reference picture number, the average of the motion vector and the reference picture number can be calculated to generate an average candidate, and the average of one of the motion vector and the reference picture number is calculated to generate an average candidate.
[00420] Кодер или декодер может добавить выведенного среднего кандидата в список кандидатов. Например, когда добавляется средний кандидат, наибольшее значение индекса может назначаться в списке кандидатов. Здесь могут быть различные способы конфигурирования веса. Например, вес может быть задан согласно потенциалу предсказания.[00420] The encoder or decoder may add the derived average candidate to the candidate list. For example, when a middle candidate is added, the largest index value may be assigned to the candidate list. There may be different ways to configure the weight. For example, the weight may be set according to the prediction potential.
[00421] Генерация виртуального кандидата может быть выполнена путем использования вышеописанных вариантов осуществления отдельно. Кроме того, генерация виртуальных кандидатов может выполняться посредством комбинации по меньшей мере одного из вышеописанных вариантов осуществления.[00421] Generation of a virtual candidate can be performed by using the above-described embodiments separately. In addition, generation of virtual candidates may be performed by a combination of at least one of the above-described embodiments.
[00422] [00422]
[00423] Далее будет описан способ инициализации информация движения списка кандидатов в соответствии с настоящим изобретением.[00423] Next, a method for initializing movement information of a candidate list in accordance with the present invention will be described.
[00424] Список кандидатов в соответствии с настоящим изобретением может быть сгенерирован в единице UPU, описанной выше. Здесь UPU может быть одним из блока, CTU, кирпичика, мозаичного элемента, слайса, субкартинки, картинки, кадра и группы картинок (GOP), состоящих из одной или более CU. В единице UPU, список кандидатов вновь создается, используется и инициализируется. Далее будет описана инициализация списка кандидатов в соответствии с некоторыми вариантами осуществления настоящего изобретения.[00424] A list of candidates in accordance with the present invention may be generated in the UPU described above. Here, the UPU may be one of a block, CTU, brick, tile, slice, sub-picture, picture, frame and group of pictures (GOP) consisting of one or more CUs. In the UPU, the candidate list is again created, used and initialized. Next, initialization of a candidate list in accordance with some embodiments of the present invention will be described.
[00425] Например, список кандидатов в соответствии с настоящим изобретением может заново создаваться и использоваться для каждой UPU. То есть список кандидатов может инициализироваться для каждой UPU. Список кандидатов может не иметь кандидатов движения, сохраненных сразу после инициализации. Список кандидатов может генерироваться для каждой UPU, и между списками кандидатов каждой UPU может не быть корреляции. Например, список кандидатов может инициализироваться для каждой CTU.[00425] For example, a candidate list in accordance with the present invention may be newly created and used for each UPU. That is, a candidate list may be initialized for each UPU. The candidate list may not have motion candidates saved immediately after initialization. A candidate list may be generated for each UPU, and there may be no correlation between each UPU's candidate lists. For example, a candidate list may be initialized for each CTU.
[00426] В соответствии со способом инициализации, можно предотвратить появление неоднородной информации движения в качестве кандидата и заново выполнить кодирование от начальной точки UPU без предыдущей информации предсказания.[00426] According to the initialization method, it is possible to prevent heterogeneous motion information from appearing as a candidate and re-perform encoding from the starting point of the UPU without the previous prediction information.
[00427] В качестве другого примера, список кандидатов текущей UPU может инициализироваться с использованием информации движения UPU, которая уже закодирована, или списка кандидатов UPU. Здесь, может указываться UPU, на которую следует ссылаться, и список кандидатов текущей UPU может инициализироваться с использованием информации движения или списка кандидатов соответствующей UPU.[00427] As another example, the current UPU candidate list may be initialized using UPU motion information that is already encoded, or the UPU candidate list. Here, a UPU to be referenced may be specified, and the candidate list of the current UPU may be initialized using the traffic information or candidate list of the corresponding UPU.
[00428] Здесь, указание UPU, на которую следует ссылаться, может выполняться с помощью способа, позволяющего кодеру и декодеру ссылаться на одну и ту же UPU посредством сигнализируемого сигнала, и способа пропуска передачи/приема дополнительного сигнала путем выбора UPU предопределенным способом. [00428] Here, indicating the UPU to be referenced may be performed by a method of allowing the encoder and decoder to refer to the same UPU by a signaled signal, and a method of skipping transmission/reception of an additional signal by selecting the UPU in a predetermined manner.
[00429] Инициализация текущего списка кандидатов может быть выполнена путем копирования всего или части списка кандидатов UPU, на которую он ссылается. Альтернативно, текущий список кандидатов может инициализироваться с учетом потенциала предсказания или приоритета информации движения, которая выводится или копируется.[00429] Initialization of the current candidate list can be accomplished by copying all or part of the UPU candidate list to which it refers. Alternatively, the current candidate list may be initialized based on the prediction potential or priority of motion information that is output or copied.
[00430] Фиг. 31 и 32 представляют собой диаграммы, иллюстрирующие способ инициализации списка кандидатов в соответствии с некоторыми вариантами осуществления настоящего изобретения.[00430] FIG. 31 and 32 are diagrams illustrating a method for initializing a candidate list in accordance with some embodiments of the present invention.
[00431] Фиг. 31 показывает пример инициализации списка кандидатов текущей UPU с использованием списка кандидатов восстановленной UPU, когда UPU является единицей картинки. Согласно фиг. 31, информация движения A’, В’ и С’ добавляется в список кандидатов, прежде чем восстановить первую информацию движения текущей картинки, которая копируется из списка кандидатов опорной картинки, которая представляет собой восстановленную UPU.[00431] FIG. 31 shows an example of initializing the candidate list of the current UPU using the candidate list of the restored UPU when the UPU is a picture unit. According to FIG. 31, motion information A', B' and C' are added to the candidate list before recovering the first motion information of the current picture, which is copied from the candidate list of the reference picture, which is the reconstructed UPU.
[00432] Фиг. 31 показывает случай копирования части списка кандидатов восстановленной UPU. На фиг. 31, индекс списка кандидатов указывает потенциал предсказания или приоритет кандидата списка кандидатов, что указывает, что чем меньше число, тем выше потенциал предсказания или выше приоритет. Согласно фиг. 31, текущий кадр может быть восстановлен путем конфигурирования приоритета скопированной информации движения. Здесь приоритет ранее скопированной информации движения A’, B’ и C’ может устанавливаться так, чтобы иметь более высокий приоритет, чем для вновь добавленной информации движения A и B.[00432] FIG. 31 shows the case of copying part of the candidate list of the restored UPU. In fig. 31, the candidate list index indicates the prediction potential or priority of a candidate list candidate, which indicates that the smaller the number, the higher the prediction potential or the higher the priority. According to FIG. 31, the current frame can be restored by configuring the priority of the copied motion information. Here, the priority of the previously copied motion information A', B' and C' can be set to have a higher priority than the newly added motion information A and B.
[00433] Фиг. 32 показывает пример копирования информации движения для инициализации списка кандидатов как в направлении L0, так и в направлении L1. Как показано на фиг. 31, восстановленная UPU может использоваться для инициализации списка кандидатов, и UPU может устанавливаться в единице картинки. Согласно фиг. 32, текущий список кандидатов может инициализироваться путем копирования информации движения из списков кандидатов картинок, используемых для опоры в направлении L0 и направлении L1. Например, три информации движения A’, B’ и C’ могут быть скопированы из списка L0, и две информации движения A’’, B’’ могут быть скопированы из списка L1. Как описано выше, при копировании информации движения, используемой для инициализации списка кандидатов из UPU, отличных друг от друга, количество частей информации движения, на которые ссылаются из каждой восстановленной UPU, может устанавливаться по-разному.[00433] FIG. 32 shows an example of copying motion information to initialize a candidate list in both the L0 direction and the L1 direction. As shown in FIG. 31, the recovered UPU can be used to initialize the candidate list, and the UPU can be installed in the picture unit. According to FIG. 32, the current candidate list may be initialized by copying motion information from the candidate lists of pictures used for support in the L0 direction and the L1 direction. For example, three motion information A', B' and C' can be copied from list L0, and two motion information A'', B'' can be copied from list L1. As described above, when copying motion information used to initialize a list of candidates from UPUs different from each other, the number of pieces of motion information referenced from each recovered UPU can be set differently.
[00434] Информация о том, выполняется ли инициализация списка кандидатов, информация картинки, на которую ссылаются для инициализации, количество частей информации движения, на которые ссылаются для инициализации, и т.д. может сигнализироваться на более высоком уровне битового потока, таком как набор параметров последовательности, набор параметров картинки, заголовок слайса и т.п.[00434] Information about whether initialization of the candidate list is performed, picture information referenced for initialization, number of pieces of motion information referenced for initialization, etc. may be signaled at a higher bitstream level, such as a sequence parameter set, a picture parameter set, a slice header, etc.
[00435][00435]
[00436] Далее будет описан способ масштабирования информации движения списка кандидатов в соответствии с настоящим изобретением.[00436] Next, a method for scaling candidate list motion information in accordance with the present invention will be described.
[00437] При выполнении интер-предсказания, предсказание может выполняться над текущей картинкой с использованием смежной по времени опорной картинки. Текущая картинка и опорная картинка могут существовать в разных положениях на временной оси. Когда выполняется интер-предсказание, информация движения может быть выведена с учетом движения объекта или фона в картинке из-за разности во времени между текущей картинкой и опорной картинкой.[00437] When performing inter-prediction, prediction may be performed on the current picture using a temporally adjacent reference picture. The current picture and the reference picture can exist in different positions on the time axis. When inter-prediction is performed, motion information can be output taking into account the motion of an object or background in a picture due to the time difference between the current picture and the reference picture.
[00438] Здесь, опорная картинка, на которую ссылается текущий блок, и опорная картинка, на которую ссылается блок-кандидат, могут отличаться друг от друга. Следовательно, при выведении информации движения с использованием блока-кандидата, необходимо скорректировать информацию движения текущего блока с учетом временного расстояния между картинками, к которым принадлежат ссылающийся блок и блок, на который ссылаются.[00438] Here, the reference picture referenced by the current block and the reference picture referenced by the candidate block may be different from each other. Therefore, when deriving motion information using a candidate block, it is necessary to adjust the motion information of the current block taking into account the temporal distance between the pictures to which the referencing block and the referenced block belong.
[00439] Путем сравнения временного расстояния между картинкой, которой принадлежит текущий блок, и картинкой, на которую ссылается текущий блок, и временного расстояния между картинкой, которой принадлежит блок-кандидат, и картинкой, на которую ссылается блок-кандидат, способ корректировки информации движения блока-кандидата для большего сходства с информацией движения текущего блока, называется масштабированием информации движения. Масштабирование информации движения может использоваться в методе интер-предсказания с использованием кандидатов, таком как режим AMVP, режим слияния и т.п.[00439] By comparing the temporal distance between the picture to which the current block belongs and the picture referred to by the current block, and the temporal distance between the picture to which the candidate block belongs and the picture referred to by the candidate block, a method for correcting motion information candidate block to be more similar to the motion information of the current block is called motion information scaling. Motion information scaling can be used in a candidate inter-prediction method such as AMVP mode, fusion mode, and the like.
[00440] фиг. 33 представляет собой диаграмму, иллюстрирующую масштабирование информации движения.[00440] FIG. 33 is a diagram illustrating scaling of motion information.
[00441] фиг. 33 показывает пример масштабирования информации движения. t может означать положение на временной оси текущей картинки, и t-n может означать положение на временной оси опорной картинки блока-кандидата. t-m может означать положение на временной оси опорной картинки текущего блока. Когда положение на временной оси каждой картинки изменяется, может определяться движение изображения в картинке. A может означать текущий блок, и B может означать блок-кандидат. A’ может означать положение в опорной картинке текущего блока, имеющего то же самое пространственное положение, что и текущий блок A. B' может означать положение в опорной картинке блока-кандидата, имеющего то же самое пространственное положение, что и блок-кандидат В.[00441] FIG. 33 shows an example of scaling motion information. t may denote a position on the time axis of the current picture, and t-n may denote a position on the time axis of the reference picture of a candidate block. t-m can mean the position on the time axis of the reference picture of the current block. When the position on the time axis of each picture changes, the movement of the image within the picture can be determined. A can mean the current block, and B can mean a candidate block. A' may denote a position in the reference picture of a current block having the same spatial position as the current block A. B' may denote a position in the reference picture of a candidate block having the same spatial position as candidate block B.
[00442] Так как блок-кандидат В выполняет интер-предсказание из опорной картинки блока-кандидата, можно вывести положение блока D как результат интер-предсказания, и выразить это положение как вектор движения MV1. При выведении вектора движения текущего блока A из блока-кандидата B, временное расстояние между текущей картинкой и опорной картинкой блока A (например, t-(t-m)=m) и временное расстояние между текущей картинкой и опорной картинкой блока B (например, t-(t-n)=n) отличаются друг от друга, можно применить масштабирование информации движения.[00442] Since candidate block B performs inter-prediction from the reference picture of the candidate block, it is possible to derive the position of block D as a result of inter-prediction, and express this position as motion vector MV1. When deriving the motion vector of the current block A from the candidate block B, the time distance between the current picture and the reference picture of block A (for example, t-(t-m)=m) and the time distance between the current picture and the reference picture of block B (for example, t- (t-n)=n) are different from each other, motion information scaling can be applied.
[00443] Например, на фиг. 33, используя вектор движения MV1 блока B, временное расстояние m между текущей картинкой и опорной картинкой блока A и временное расстояние n между текущей картинкой и опорной картинкой блока B, можно вывести вектор движения (MV1*m/n) текущего блока A. Поскольку вектор движения (MV1*m/n), к которому применяется масштабирование информации движения, сходен с вектором движения MV0 текущего блока больше, чем MV1, эффективность предсказания информации движения может быть увеличена.[00443] For example, in FIG. 33, using the motion vector MV1 of block B, the temporal distance m between the current picture and the reference picture of block A, and the temporal distance n between the current picture and the reference picture of block B, the motion vector (MV1*m/n) of the current block A can be derived. Since the vector motion (MV1*m/n) to which the motion information scaling is applied is similar to the motion vector MV0 of the current block more than MV1, the motion information prediction efficiency can be increased.
[00444] Масштабирование информации движения может быть способом масштабирования информации движения с использованием временного расстояния между картинками, предполагая, что движущийся объект в каждой картинке видео имеет линейное движение.[00444] Motion information scaling may be a method of scaling motion information using the temporal distance between pictures, assuming that the moving object in each picture of the video has linear motion.
[00445] Поскольку текущий блок А выполняет интер-предсказание из опорной картинки текущего блока, положение блока С может быть выведено, и это положение может быть выражено как вектор движения MV0. При этом, так как картинки, на которые ссылаются блоки А и В, отличаются друг от друга, область, подходящая для предсказания текущего блока в каждой опорной картинке, может отличаться друг от друга. Следовательно, между MV0 и MV1 появляется разность размеров.[00445] Since the current block A performs inter-prediction from the reference picture of the current block, the position of block C can be output, and this position can be expressed as a motion vector MV0. However, since the pictures referenced by blocks A and B are different from each other, the region suitable for predicting the current block in each reference picture may be different from each other. Therefore, a size difference appears between MV0 and MV1.
[00446] Здесь, масштабирование информации движения может применяться с использованием расстояния между текущей картинкой и опорной картинкой блока-кандидата на временной оси и расстояния между текущей картинкой и опорной картинкой текущего блока на временной оси. Скорректированная информация движения более вероятно будет сходна с информацией движения текущего блока, чем нескорректированная информация движения. Можно повысить эффективность кодирования с использованием для предсказания более сходной информации движения.[00446] Here, motion information scaling may be applied using the distance between the current picture and the reference picture of the candidate block on the time axis and the distance between the current picture and the reference picture of the current block on the time axis. The corrected motion information is more likely to be similar to the motion information of the current block than the uncorrected motion information. It is possible to improve coding efficiency by using more similar motion information for prediction.
[00447] То есть, когда масштабирование вектора движения применяется к MV1 на фиг. 33, может быть выведен вектор движения, модифицированный близко к MV0. Кодер или декодер может повысить эффективность кодирования с использованием масштабированного вектора движения.[00447] That is, when motion vector scaling is applied to MV1 in FIG. 33, a motion vector modified close to MV0 can be output. An encoder or decoder can improve coding efficiency using a scaled motion vector.
[00448] Поскольку кандидаты списка кандидатов в соответствии с настоящим изобретением могут также иметь опорные картинки, отличные от текущего блока, необходимо выполнить масштабирование информации движения с учетом временного интервала между текущим блоком и опорной картинкой и временного интервала между кандидатами списка кандидатов и опорной картинкой кандидата. Например, когда кандидаты списка кандидатов используют информацию движения соседних по времени блоков, может потребоваться вышеописанное масштабирование информации движения. Поэтому информация для масштабирования информации движения может храниться как дополнительная информация в информации движения, сохраненной в списке кандидатов.[00448] Since the candidates of the candidate list in accordance with the present invention may also have reference pictures other than the current block, it is necessary to perform scaling of the motion information taking into account the time interval between the current block and the reference picture and the time interval between the candidates of the candidate list and the candidate reference picture. For example, when candidate list candidates use motion information of temporally adjacent blocks, the motion information scaling described above may be required. Therefore, information for scaling the motion information can be stored as additional information in the motion information stored in the candidate list.
[00449] Например, информация для масштабирования информации движения может включать в себя по меньшей мере одно из номера POC опорной картинки, номера POC картинки, в которой появляется информация движения, и информации временного расстояния между картинкой, в которой появляется информация движения, и опорной картинкой.[00449] For example, the information for scaling motion information may include at least one of a POC number of a reference picture, a POC number of a picture in which motion information appears, and time distance information between a picture in which motion information appears and the reference picture .
[00450] Когда UPU является единицей, включающей в себя множество картинок, такой как GOP, информация движения, сохраненная в кандидате, может относиться к опорным картинкам, отличным друг от друга. Когда информация движения предсказывается с использованием информации движения, сохраненной в списке кандидатов, опорная картинка информации движения, включенная в список кандидатов, на который ссылаются, и опорная картинка текущего блока могут отличаться друг от друга. Кроме того, когда UPU включает в себя множество картинок, картинки, в которых может появляться информация движения, сохраненная в списке кандидатов, могут отличаться друг от друга.[00450] When the UPU is a unit including a plurality of pictures, such as a GOP, the motion information stored in the candidate may relate to reference pictures different from each other. When motion information is predicted using motion information stored in the candidate list, the motion information reference picture included in the referenced candidate list and the reference picture of the current block may be different from each other. In addition, when the UPU includes a plurality of pictures, the pictures in which motion information stored in the candidate list may appear may be different from each other.
[00451] Например, информация движения A, ссылающаяся на POC 2 в картинке POC1, может храниться в списке кандидатов, и информация движения B, ссылающаяся на POC 4 в картинке POC 3, может храниться в списке кандидатов. В этом случае картинка, в которой появляется информация движения A, сохраненная в списке кандидатов, может быть POC 1, и картинка, в которой появляется информация движения B, сохраненная в AMVOL, может быть POC 3. Картинка, на которую ссылается информация движения A, может быть POC 2 и картинка, на которую ссылается информация движения B, может быть POC 4.[00451] For example, traffic information A referring to POC 2 in picture POC1 may be stored in a candidate list, and motion information B referring to POC 4 in picture POC 3 may be stored in a candidate list. In this case, the picture in which motion information A stored in the candidate list appears may be POC 1, and the picture in which motion information B stored in AMVOL appears may be POC 3. The picture referenced by motion information A is may be POC 2 and the picture referenced by motion information B may be POC 4.
[00452] В случае UPU, включающей в себя множество картинок, картинка, в которой появляется информация движения, сохраненная в списке кандидатов, и опорная картинка могут отличаться друг от друга. Кроме того, картинка, в которой появляется информация движения, сохраненная в списке кандидатов, и текущая картинка, включающая в себя текущий блок, могут также отличаться друг от друга, и опорная картинка информации движения, сохраненной в списке кандидатов, и опорная картинка текущего блока также могут отличаться друг от друга. Здесь, когда информация движения текущего блока предсказывается через информацию движения списка кандидатов, можно повысить эффективность кодирования посредством вышеописанного масштабирования информации движения.[00452] In the case of a UPU including a plurality of pictures, the picture in which motion information stored in the candidate list appears and the reference picture may be different from each other. In addition, the picture in which the motion information stored in the candidate list appears and the current picture including the current block may also be different from each other, and the reference picture of the motion information stored in the candidate list and the reference picture of the current block also may differ from each other. Here, when the motion information of the current block is predicted through the motion information of the candidate list, it is possible to improve the encoding efficiency by scaling the motion information as described above.
[00453] Фиг. 34 представляет собой диаграмму для объяснения масштабирования информации движения в соответствии с вариантом осуществления настоящего изобретения.[00453] FIG. 34 is a diagram for explaining the scaling of motion information according to an embodiment of the present invention.
[00454] Например, когда UPU является единицей картинки, масштабирование может выполняться, как показано на фиг. 34. В примере на фиг. 34, UPU A может хранить информацию движения, сгенерированную в картинке POC 8, в списке кандидатов, и UPU B может хранить информацию движения, сгенерированную в картинке POC 4, в списке кандидатов. Картинка POC 8 может выполнять предсказание движения, ссылаясь на картинку POC 1, и картинка POC 4 может выполнять предсказание движения, ссылаясь на картинку POC 8. Когда картинка POC 4 является текущей картинкой, которая должна кодироваться в текущее время, POC 8 представляет собой картинку, которая уже была восстановлена, список кандидатов UPU B может инициализироваться путем обращения к списку кандидатов, используемый в UPU A.[00454] For example, when the UPU is a picture unit, scaling may be performed as shown in FIG. 34. In the example of FIG. 34, UPU A may store motion information generated in the POC picture 8 in a candidate list, and UPU B may store motion information generated in the POC picture 4 in a candidate list. Picture POC 8 can perform motion prediction by referring to picture POC 1, and picture POC 4 may perform motion prediction by referring to picture POC 8. When picture POC 4 is the current picture to be encoded at the current time, POC 8 is the picture which has already been restored, the candidate list of UPU B can be initialized by accessing the candidate list used in UPU A.
[00455] Однако информация движения, сохраненная в списке кандидатов UPU A, является информацией движения, сгенерированной со ссылкой на картинку POC 8, и, таким образом, отличается по временному расстоянию между картинками в случае, когда картинка POC 4 ссылается на картинку POC 8. Между тем, поскольку картинка, которая должна кодироваться со ссылкой на информацию движения, сохраненную в списке кандидатов UPU B, является POC 4, а картинка, на которую ссылается картинка POC 4, является POC 8, информация движения списка кандидатов UPU A используется как есть, так что в случае инициализации списка кандидатов UPU B эффективность предсказания информации движения снижается. Здесь, когда информация движения UPU A корректируется посредством масштабирования информации движения, и масштабированная информация движения используется для инициализации списка кандидатов UPU B, эффективность кодирования может быть улучшена.[00455] However, the motion information stored in the candidate list of UPU A is motion information generated with reference to picture POC 8, and thus differs in the time distance between pictures in the case where picture POC 4 refers to picture POC 8. Meanwhile, since the picture to be encoded with reference to the motion information stored in the candidate list of UPU B is POC 4, and the picture referenced by the picture of POC 4 is POC 8, the motion information of the candidate list of UPU A is used as is, so that in the case of initializing the UPU B candidate list, the motion information prediction performance is reduced. Here, when the motion information of UPU A is adjusted by scaling the motion information, and the scaled motion information is used to initialize the candidate list of UPU B, the coding efficiency can be improved.
[00456][00456]
[00457] Далее будет описан способ совместного использования списка кандидатов в соответствии с настоящим изобретением.[00457] Next, a method for sharing a candidate list in accordance with the present invention will be described.
[00458] При выполнении кодирования и декодирования, информация списка кандидатов может варьироваться в соответствии с моментом времени, когда ссылаются на каждый блок кодирования, выполняющий интер-предсказание. Поскольку информация движения списка кандидатов может добавляться, удаляться или изменяться, информация или конфигурация, включенная в список кандидатов, может варьироваться в соответствии с моментом времени, когда выполняется интер-предсказание. То есть, когда момент времени, в который каждая область, выполняющая интер-предсказание, обращается к списку кандидатов, варьируется, опорная информация может изменяться. Поскольку список кандидатов в соответствии с настоящим изобретением может обновляться в результате выполнения интер-предсказания, интер-предсказание должно выполняться последовательно.[00458] When performing encoding and decoding, the candidate list information may vary according to the time point at which each encoding block performing inter-prediction is referenced. Since candidate list movement information may be added, deleted, or changed, information or configuration included in the candidate list may vary according to the point in time when inter-prediction is performed. That is, when the time at which each inter-prediction region accesses the candidate list varies, the reference information may change. Since the candidate list according to the present invention can be updated as a result of performing inter-prediction, inter-prediction must be performed sequentially.
[00459] В нижеследующем описании область, состоящая из одного или нескольких блоков кодирования, может быть определена как общая (совместно используемая) область. Когда выполняется интер-предсказание, блоки кодирования, включенные в общую область, могут совместно использовать список кандидатов, сконфигурированный в определенное время ранее, чем момент времени кодирования или декодирования всех блоков кодирования, включенных в общую область. Здесь, общая область может быть сконфигурирована посредством по меньшей мере одной единицы или набора единиц CTU, CU и PU.[00459] In the following description, an area consisting of one or more coding blocks may be defined as a common (shared) area. When inter-prediction is performed, encoding blocks included in the common area may share a candidate list configured at a certain time earlier than the encoding or decoding time of all encoding blocks included in the common area. Here, the common area may be configured by at least one unit or a set of CTUs, CUs and PUs.
[00460] Соответственно, интер-кодирование может выполняться независимо или параллельно для каждого блока кодирования в соответствующей общей области. Когда интер-предсказание выполняется посредством обращения к списку кандидатов независимо или параллельно в общей области, каждый блок кодирования, включенный в общую область и выполняющий интер-предсказание, может обращаться к списку кандидатов, который ранее сконфигурирован. Здесь предварительно сконфигурированный список кандидатов может означать список кандидатов, сконфигурированный до начала кодирования или декодирования.[00460] Accordingly, inter-coding may be performed independently or in parallel for each encoding block in the corresponding common area. When inter-prediction is performed by accessing the candidate list independently or in parallel in the common area, each encoding unit included in the common area and performing inter-prediction may access the candidate list that was previously configured. Here, a preconfigured candidate list may mean a candidate list configured before encoding or decoding begins.
[00461] Здесь, блоки кодирования в общей области могут совместно использовать предварительно сконфигурированный список кандидатов или могут совместно использовать кандидатов из списка кандидатов, сгенерированных с использованием списка кандидатов. Кандидат из списка кандидатов, подходящий для каждого блока кодирования, может быть отдельно сгенерирован путем обращения к предварительно сконфигурированному списку кандидатов во время интер-предсказания блоков кодирования, включенных в общую область. То есть, когда применяется настоящий способ, предварительно сконфигурированный список кандидатов, к которому обращаются блоки кодирования, включенные в общую область, может совместно использоваться, и кандидаты из списка кандидатов могут генерироваться независимо. Альтернативно, блоки кодирования, включенные в общую область, могут совместно использовать не только предварительно сконфигурированный список кандидатов, но также кандидатов списков кандидатов, выведенных из общего списка кандидатов.[00461] Here, encoding blocks in a common area may share a preconfigured candidate list or may share candidates from a candidate list generated using the candidate list. A candidate list candidate suitable for each encoding block can be separately generated by accessing the preconfigured candidate list during inter-prediction of encoding blocks included in the common area. That is, when the present method is applied, a preconfigured candidate list accessed by coding blocks included in the common area can be shared, and candidates from the candidate list can be generated independently. Alternatively, coding blocks included in the common area may share not only a preconfigured candidate list, but also candidates of candidate lists derived from the common candidate list.
[00462] После того, как предсказание выполнено в блоках кодирования, включенных в соответствующую общую область, список кандидатов может обновляться независимо или параллельно с использованием информации движения или информации предсказания, сгенерированной в каждом из блоков кодирования. При этом список кандидатов может обновляться в предопределенном порядке после того, как все предсказания во всех блоках кодирования, включенных в общую область, завершены. Соответственно, кодер и декодер могут генерировать один и тот же список кандидатов при кодировании/декодировании текущего блока.[00462] After prediction is performed in encoding blocks included in the corresponding common area, the candidate list can be updated independently or in parallel using motion information or prediction information generated in each of the encoding blocks. In this case, the list of candidates can be updated in a predetermined order after all predictions in all coding blocks included in the common area are completed. Accordingly, the encoder and decoder can generate the same list of candidates when encoding/decoding the current block.
[00463] Например, когда текущий блок кодируется/ декодируется в режиме треугольного разбиения, текущий блок может разбиваться на две треугольные области. Здесь информация о направлении разбиения для разбиения текущего блока на две треугольные области может быть кодирована/декодирована. Чтобы кодировать/декодировать каждую из двух областей, разделенных на треугольные области, информация движения для кодирования/ декодирования каждой области может быть выбрана из списка кандидатов. Здесь две треугольные области, полученные посредством выполнения треугольного разбиения, могут совместно использовать список кандидатов блоков перед разделением.[00463] For example, when the current block is encoded/decoded in the triangular partitioning mode, the current block may be divided into two triangular areas. Here, partitioning direction information for dividing the current block into two triangular areas can be encoded/decoded. To encode/decode each of two regions divided into triangular regions, motion information for encoding/decoding each region can be selected from a list of candidates. Here, two triangular regions obtained by performing triangular partitioning can share a block candidate list before partitioning.
[00464] Когда текущий блок кодируется/декодируется в режиме треугольного разбиения, первая информация движения и вторая информация движения могут быть определены в общем списке кандидатов через первый индекс и второй индекс для текущего блока. Кодер или декодер может вывести первый блок предсказания для текущего блока, используя первую информацию движения, и второй блок предсказания для текущего блока, используя вторую информацию движения.[00464] When the current block is encoded/decoded in the triangular partition mode, the first motion information and the second motion information can be determined in the general candidate list through the first index and the second index for the current block. The encoder or decoder may output a first prediction block for the current block using the first motion information, and a second prediction block for the current block using the second motion information.
[00465] Кодер или декодер может сгенерировать окончательный блок предсказания для текущего блока путем взвешивания первого блока предсказания и второго блока предсказания. Здесь, взвешенная сумма блоков предсказания может быть получена путем взвешивания первой области по отношению к первому блоку предсказания и взвешивания второй области по отношению ко второму блоку предсказания.[00465] An encoder or decoder may generate a final prediction block for the current block by weighing the first prediction block and the second prediction block. Here, the weighted sum of the prediction blocks can be obtained by weighting the first region with respect to the first prediction block and weighting the second region with respect to the second prediction block.
[00466][00466]
[00467] Фиг. 35-39 представляют собой диаграммы, иллюстрирующие способ обновления и совместного использования списка кандидатов в соответствии с некоторыми вариантами осуществления настоящего изобретения.[00467] FIG. 35-39 are diagrams illustrating a method for updating and sharing a candidate list in accordance with some embodiments of the present invention.
[00468] Фиг. 35 показывает пример, в котором список кандидатов обновляется с течением времени, и пример списка кандидатов, к которому обращается единица кодирования. Фиг. 35 иллюстрирует случай, когда кодируется/декодируется блок кодирования 0, а затем кодируется/декодируется блок кодирования 1. Блок кодирования, показанный серым, означает блок кодирования, который в текущее время кодируется/декодируется. Блок кодирования 0 может кодироваться/декодироваться со ссылкой на список кандидатов, сформированный до момента времени, в который кодируется/декодируется блок кодирования 0.[00468] FIG. 35 shows an example in which the candidate list is updated over time and an example of the candidate list accessed by a coding unit. Fig. 35 illustrates a case where encoding block 0 is encoded/decoded, and then encoding block 1 is encoded/decoded. The encoding block shown in gray indicates the encoding block that is currently being encoded/decoded. Encoding block 0 may be encoded/decoded with reference to a candidate list generated prior to the time at which encoding block 0 is encoded/decoded.
[00469] После этого список кандидатов может обновляться посредством информации движения закодированного/декодированного блока кодирования 0. К обновленному списку кандидатов можно обращаться при кодировании/декодировании блока кодирования 1, который является следующим блоком кодирования. Информация движения восстановленного блока кодирования 1 может использоваться для повторного обновления списка кандидатов. Затем к обновленному списку кандидатов можно вновь обращаться в следующем блоке кодирования. Поэтому, чтобы кодировать/ декодировать блок кодирования 1, сначала необходимо кодировать/декодировать блок кодирования 0.[00469] Thereafter, the candidate list can be updated with the movement information of encoded/decoded encoding block 0. The updated candidate list can be accessed when encoding/decoding encoding block 1, which is the next encoding block. The motion information of the recovered coding block 1 can be used to re-update the candidate list. The updated list of candidates can then be accessed again in the next coding block. Therefore, in order to encode/decode encoding block 1, encoding block 0 must first be encoded/decoded.
[00470] Фиг. 36 иллюстрирует случай, в котором список кандидатов обновляется с течением времени, и способ обращения к списку кандидатов в каждом блоке, когда блок кодирования 0 и блок кодирования 1 составляют одну общую область. Поскольку блок кодирования 0 и блок кодирования 1 включены в одну общую область, кодер или декодер может выполнять предсказание с использованием общего списка кандидатов для блока кодирования 0 и блока кодирования 1. Соответственно, в отличие от примера на фиг. 35, кодер или декодер может выполнять интер-предсказание на блоке кодирования 0 и блоке кодирования 1 независимо или параллельно.[00470] FIG. 36 illustrates a case in which the candidate list is updated over time, and a method for accessing the candidate list in each block when encoding block 0 and encoding block 1 constitute one common area. Since encoding block 0 and encoding block 1 are included in one common area, an encoder or decoder can perform prediction using a common candidate list for encoding block 0 and encoding block 1. Accordingly, unlike the example in FIG. 35, the encoder or decoder may perform inter-prediction on encoding block 0 and encoding block 1 independently or in parallel.
[00471] Фиг. 36 показывает состояние, в котором предсказание выполняется параллельно с использованием того же списка кандидатов, который ранее был восстановлен в то же самое время. В отличие от примера на фиг. 35, поскольку ранее восстановленный список кандидатов является общим, блок кодирования 1 может обращаться к списку кандидатов в момент времени, требуемый для кодирования/декодирования, даже если блок кодирования 0 не кодируется/декодируется.[00471] FIG. 36 shows a state in which prediction is performed in parallel using the same candidate list that was previously reconstructed at the same time. Unlike the example in FIG. 35, since the previously reconstructed candidate list is shared, encoding block 1 can access the candidate list at the time required for encoding/decoding even if encoding block 0 is not encoding/decoding.
[00472] В примере на фиг. 36, поскольку как блок кодирования 0, так и блок кодирования 1 кодируются/декодируются, показано, что информация движения “E”, сгенерированная из блока кодирования 0, и информация движения “F”, сгенерированная из блока кодирования 1, отражаются (обновляются) в списке кандидатов. Здесь, список кандидатов может быть обновлен в момент времени, когда кодирование/декодирование общей области завершено. Фиг. 36 иллюстрирует случай, в котором размер списка кандидатов равен 5, и показывает пример, в котором одна информация движения A из списка кандидатов удалена в соответствии с обновлением информации движения.[00472] In the example of FIG. 36, since both encoding block 0 and encoding block 1 are encoded/decoded, it is shown that motion information “E” generated from encoding block 0 and motion information “F” generated from encoding block 1 are reflected (updated) in list of candidates. Here, the candidate list may be updated at a time when encoding/decoding of the common area is completed. Fig. 36 illustrates a case in which the size of the candidate list is 5, and shows an example in which one motion information A from the candidate list is deleted in accordance with updating the motion information.
[00473] Фиг. 37 показывает пример обновления списка кандидатов и кодирования/декодирования блоков кодирования 0 и 1 с использованием обновленного списка кандидатов с течением времени. Кандидат из списка кандидатов, подходящий для текущего блока кодирования, может быть сгенерирован из обновленного последнего списка кандидатов, и блок кодирования может кодироваться/декодироваться со ссылкой на кандидата из сгенерированного списка кандидатов. Информация движения вновь закодированного/декодированного блока кодирования используется для обновления списка кандидатов.[00473] FIG. 37 shows an example of updating the candidate list and encoding/decoding encoding blocks 0 and 1 using the updated candidate list over time. A candidate from the candidate list suitable for the current encoding block may be generated from the updated latest candidate list, and the encoding block may be encoded/decoded with reference to the candidate from the generated candidate list. The motion information of the newly encoded/decoded encoding block is used to update the candidate list.
[00474] В примере на фиг. 37, блок кодирования 0 может быть закодирован/декодирован раньше, чем блок кодирования 1. Соответственно, кандидаты для списков кандидатов, соответствующих блоку кодирования 0, могут быть сгенерированы с использованием обновленного списка кандидатов, прежде чем блок кодирования 0 будет кодирован/декодирован, и блок кодирования 0 может быть закодирован/декодирован на основе списка кандидатов. Информация движения, закодированная/декодированная в блоке кодирования 0, может использоваться для обновления списка кандидатов, и список кандидатов для блока кодирования 1 может быть сгенерирован с использованием обновленного списка кандидатов. Блок кодирования 1 может кодироваться/декодироваться с использованием кандидата из списка кандидатов, сгенерированного для блока кодирования 1. То есть, согласно фиг. 37, блоки кодирования 0 и 1 могут быть последовательно кодированы/декодированы.[00474] In the example of FIG. 37, encoding block 0 may be encoded/decoded earlier than encoding block 1. Accordingly, candidates for candidate lists corresponding to encoding block 0 can be generated using the updated candidate list before encoding block 0 is encoded/decoded, and the block encoding 0 can be encoded/decoded based on the candidate list. The motion information encoded/decoded in encoding block 0 can be used to update the candidate list, and the candidate list for encoding block 1 can be generated using the updated candidate list. The encoding block 1 may be encoded/decoded using a candidate from the candidate list generated for the encoding block 1. That is, according to FIG. 37, encoding blocks 0 and 1 can be encoded/decoded sequentially.
[00475] Фиг. 38 иллюстрирует пример обновления общего списка кандидатов с течением времени и кодирования/декодирования блока кодирования в каждой общей области с использованием обновленного общего списка кандидатов. В этом примере, общая область может состоять из блока кодирования 0 и блока кодирования 1. Блок кодирования 0 и блок кодирования 1 могут генерировать кандидатов, используя список кандидатов, обновленный перед кодированием/декодированием двух блоков кодирования в общей области. Соответственно, кодер или декодер может выполнять предсказание независимо или параллельно относительно блока кодирования 0 и блока кодирования 1.[00475] FIG. 38 illustrates an example of updating the common candidate list over time and encoding/decoding a coding block in each common region using the updated common candidate list. In this example, the common area may consist of encoding block 0 and encoding block 1. Encoding block 0 and encoding block 1 can generate candidates using the candidate list updated before encoding/decoding the two encoding blocks in the common area. Accordingly, the encoder or decoder may perform prediction independently or in parallel with respect to coding block 0 and coding block 1.
[00476] В отличие от примера на фиг. 37, поскольку на фиг. 38 используется общий список кандидатов, даже если блок кодирования 0 не кодируется/декодируется первым, блок кодирования 1 может кодироваться/декодироваться вместе с блоком кодирования 0. То есть, согласно примеру на фиг. 38, блок кодирования 0 и блок кодирования 1 могут кодироваться/ декодироваться параллельно в одно и то же время.[00476] Unlike the example in FIG. 37, since in FIG. 38, a common candidate list is used, even if encoding block 0 is not encoded/decoded first, encoding block 1 can be encoded/decoded together with encoding block 0. That is, according to the example in FIG. 38, encoding block 0 and encoding block 1 can be encoded/decoded in parallel at the same time.
[00477] Согласно фиг. 38(a), блок кодирования 0 и блок кодирования 1 используют общий список кандидатов, но могут кодироваться/декодироваться с использованием кандидатов из разных списков кандидатов. Со ссылкой на фиг. 38(b), блок кодирования 0 и блок кодирования 1 могут генерировать кандидатов из общего списка кандидатов с использованием общего списка кандидатов и могут кодироваться/декодироваться с использованием сгенерированного одного и того же кандидата.[00477] Referring to FIG. 38(a), encoding block 0 and encoding block 1 use a common candidate list, but may be encoded/decoded using candidates from different candidate lists. With reference to FIG. 38(b), encoding block 0 and encoding block 1 can generate candidates from the common candidate list using the common candidate list, and can be encoded/decoded using the same candidate generated.
[00478] Каждая область, в которой кодирование/ декодирование выполняется независимо или параллельно, может состоять из множества блоков, и предсказание может выполняться для каждого блока. Здесь, предсказание может выполняться путем генерирования соответствующих списков кандидатов в каждой области.[00478] Each region in which encoding/decoding is performed independently or in parallel may consist of a plurality of blocks, and prediction may be performed on each block. Here, prediction can be performed by generating corresponding lists of candidates in each area.
[00479] Например, когда мозаичные элементы А и мозаичные элементы B, составляющие одну картинку, кодируются/декодируются параллельно, каждая область может кодироваться/декодироваться с использованием списков кандидатов, отличных друг от друга. Например, кодер или декодер может хранить информацию движения, сгенерированную в блоке, принадлежащем мозаичному элементу A, в списке кандидатов мозаичного элемента A. Кроме того, кодер или декодер может хранить информацию движения, сгенерированную в блоке, принадлежащем мозаичному элементу B, в списке кандидатов мозаичного элемента В.[00479] For example, when tiles A and tiles B constituting one picture are encoded/decoded in parallel, each region may be encoded/decoded using candidate lists different from each other. For example, an encoder or decoder may store motion information generated in a block belonging to tile A in a candidate list of tile A. Additionally, the encoder or decoder may store motion information generated in a block belonging to tile B in a candidate list of tile A. element B.
[00480] Список кандидатов, вновь сгенерированный каждой областью для независимого или параллельного кодирования/ декодирования, можно инициализировать или ему следовать путем обращения или копирования списка кандидатов, который предварительно сконфигурирован. После инициализации, список кандидатов каждой области может обновляться только информацией в каждой области. Соответственно, каждая область может кодироваться/декодироваться независимо друг от друга. Затем такой список кандидатов определяется как под-список кандидатов.[00480] The candidate list newly generated by each region for independent or parallel encoding/decoding can be initialized or followed by accessing or copying the candidate list that is preconfigured. Once initialized, each region's candidate list can only be updated with information in each region. Accordingly, each region can be encoded/decoded independently of each other. This list of candidates is then defined as a sub-list of candidates.
[00481] Фиг. 39 показывает пример, в котором один или несколько мозаичных элементов, составленных из одного или нескольких блоков кодирования, кодируются/декодируются параллельно. Кодер или декодер может следовать восстановленному общему списку кандидатов для каждого мозаичного элемента в качестве начального значения списка кандидатов каждого мозаичного элемента. Под-списки кандидатов, отличающиеся друг от друга, могут быть сгенерированы для каждого мозаичного элемента на основе ранее унаследованного списка кандидатов.[00481] FIG. 39 shows an example in which one or more tiles composed of one or more encoding blocks are encoded/decoded in parallel. The encoder or decoder may follow the reconstructed common candidate list for each tile as the initial value of each tile's candidate list. Sub-candidate lists that differ from each other can be generated for each tile based on the previously inherited candidate list.
[00482] Здесь, по меньшей мере одна из информации (флаг, индекс, указатель и т.д.), указывающей, нужно ли следовать восстановленному общему списку кандидатов, в качестве начального значения списка кандидатов каждого мозаичного элемента, информации картинки, на которую ссылаются для инициализации, информации мозаичного элемента, на которую ссылаются для инициализации, и информации о количестве частей информации движения, на которую ссылаются для инициализации, может сигнализироваться посредством по меньшей мере одного из набора параметров последовательности, набора параметров картинки и заголовка слайса.[00482] Here, at least one of the information (flag, index, pointer, etc.) indicating whether to follow the reconstructed common candidate list as the initial value of the candidate list of each tile, the referenced picture information for initialization, tile information referenced for initialization, and information about the number of pieces of motion information referenced for initialization may be signaled by at least one of a sequence parameter set, a picture parameter set, and a slice header.
[00483] Согласно фиг. 39, кодер или декодер может сгенерировать соответствующие под-списки кандидатов для мозаичного элемента 0 и мозаичного элемента 1, следуя восстановленному общему списку кандидатов. Первый блок кодирования, включенный в мозаичный элемент 0, может быть закодирован/декодирован с использованием унаследованного списка кандидатов. Здесь, список кандидатов мозаичного элемента 0 может быть обновлен с использованием выведенной информации движения E. После завершения кодирования/декодирования первого блока кодирования, информация движения E первого блока может быть добавлена в под-список кандидатов.[00483] Referring to FIG. 39, the encoder or decoder may generate corresponding candidate sub-lists for tile 0 and tile 1 following the reconstructed overall candidate list. The first encoding block included in tile 0 may be encoded/decoded using the legacy candidate list. Here, the candidate list of tile 0 can be updated using the output motion information E. After the encoding/decoding of the first encoding block is completed, the motion information E of the first block can be added to the sub-candidate list.
[00484] Затем второй блок кодирования мозаичного элемента 0 может быть закодирован/декодирован со ссылкой на обновленный под-список кандидатов, включающий в себя информацию движения E. Кодер или декодер может выводить информацию движения F блока и выполнять предсказание для блока на основе информации движения F. Здесь, под-список кандидатов мозаичного элемента 0 может быть обновлен снова с использованием выведенной информации движения F.[00484] Then, the second tile 0 encoding block may be encoded/decoded with reference to the updated candidate sub-list including the motion information E. The encoder or decoder may output the motion information F of the block and perform prediction for the block based on the motion information F Here, the candidate sub-list of tile 0 can be updated again using the derived motion information F.
[00485] Фиг. 39 иллюстрирует случай, в котором размер списка кандидатов равен 5, и показывает пример, в котором одна часть предварительно сохраненной информации движения A удаляется, и информация движения F движения в список кандидатов согласно обновлению информации движения. Здесь информация движения, удаленная из под-списка кандидатов, может быть информацией движения, имеющей самый низкий или самый высокий индекс, или информацией движения, имеющей самый низкий потенциал предсказания.[00485] FIG. 39 illustrates a case in which the size of the candidate list is 5, and shows an example in which one piece of previously stored motion information A is deleted, and motion information F is added to the candidate list according to the update of the motion information. Here, the motion information removed from the candidate sub-list may be motion information having the lowest or highest index, or motion information having the lowest prediction potential.
[00486] Кодер или декодер кодирует/декодирует первый блок кодирования с помощью унаследованного списка кандидатов мозаичного элемента 1 и может обновлять список кандидатов мозаичного элемента 1 с помощью информации движения G, полученной из первого блока кодирования, который кодируется/декодируется. Соответственно, под-список кандидатов, обновленный после завершения кодирования/декодирования первого блока кодирования, дополнительно включает в себя информацию движения G первого блока. Даже при следовании общему списку кандидатов после того, как предсказание для каждого мозаичного элемента выполнено, под-списки кандидатов мозаичного элемента 0 и мозаичного элемента 1 могут включать в себя информацию движения, отличную друг от друга.[00486] The encoder or decoder encodes/decodes the first encoding block using the inherited tile 1 candidate list and can update the tile 1 candidate list with motion information G obtained from the first encoding block that is encoded/decoded. Accordingly, the candidate sub-list updated after completion of encoding/decoding of the first encoding block further includes motion information G of the first block. Even when following the overall candidate list after the prediction for each tile is performed, the sub-candidate lists of tile 0 and tile 1 may include motion information different from each other.
[00487] Затем второй блок кодирования мозаичного элемента 1 может быть закодирован/декодирован со ссылкой на обновленный под-список кандидатов, включающий в себя информацию движения G. Здесь под-список кандидатов мозаичного элемента 1 может быть обновлен снова с использованием выведенной информации движения G.[00487] Then, the second encoding block of tile 1 can be encoded/decoded with reference to the updated candidate sub-list including motion information G. Here, the candidate sub-list of tile 1 can be updated again using the outputted motion information G.
[00488] Поскольку информация движения G уже добавлена в под-список кандидатов мозаичного элемента 1 посредством ранее кодированной/декодированной информации движения, добавление избыточной информации движения G может быть опущено. Как описано выше, под-список кандидатов каждого мозаичного элемента, следующий общему списку кандидатов, может формироваться в отличающейся форме, когда каждый блок кодирования кодируется/ декодируется. Поскольку перекрестная ссылка между разными мозаичными элементами не требуется, каждый мозаичный элемент может кодироваться/декодироваться независимо или параллельно.[00488] Since G motion information is already added to the tile 1 candidate sub-list by previously encoded/decoded motion information, adding redundant G motion information can be omitted. As described above, a sub-candidate list of each tile following the overall candidate list may be generated in a different form when each encoding block is encoded/decoded. Since cross-referencing between different tiles is not required, each tile can be encoded/decoded independently or in parallel.
[00489][00489]
[00490] Далее будет описан способ повышения эффективности предсказания списка кандидатов, описанный выше, посредством конфигурации UPU.[00490] Next, a method for improving the candidate list prediction efficiency described above by configuring the UPU will be described.
[00491] Используя список кандидатов в соответствии с настоящим изобретением, информация движения, сгенерированная в предыдущем блоке, может быть сохранена для накопления и последующего управления. Информация движения, накопленная в списке кандидатов, улучшает эффективность кодирования таким образом, чтобы обращаться к информации движения области, к которой невозможно обращаться посредством существующего способа предсказания.[00491] Using the candidate list in accordance with the present invention, motion information generated in the previous block can be stored for accumulation and subsequent management. The motion information accumulated in the candidate list improves the encoding efficiency so as to address motion information of an area that cannot be accessed by the existing prediction method.
[00492] Однако информация движения, сгенерированная в слишком удаленном положении, имеет проблему, заключающуюся в том, что эффективность предсказания может снижаться в предсказании текущего блока. Подробнее, когда размер списка кандидатов ограничен, ситуация, в которой только информация движения, сгенерированная в слишком удаленном положении, сохраняется в списке кандидатов, может вызвать снижение эффективности кодирования. Здесь, надлежащая конфигурация UPU может решить или смягчить эту проблему.[00492] However, motion information generated at a position that is too distant has a problem that the prediction efficiency may be reduced in predicting the current block. In more detail, when the size of the candidate list is limited, a situation in which only motion information generated at a position too distant is stored in the candidate list may cause a decrease in encoding efficiency. Here, proper UPU configuration can solve or mitigate this problem.
[00493] Фиг. 40 представляет собой диаграмму, иллюстрирующую список кандидатов, состоящий из одной UPU, и список кандидатов, состоящий из множества UPU, в соответствии с вариантом осуществления настоящего изобретения.[00493] FIG. 40 is a diagram illustrating a candidate list consisting of a single UPU and a candidate list consisting of multiple UPUs, in accordance with an embodiment of the present invention.
[00494] Фиг. 40(a) показывает пример структуры списка кандидатов, состоящей из одной UPU. Фиг. 40 показывает пример, в котором UPU распределяется на основе картинки, и размер списка кандидатов ограничен восемью. Порядок кодирования соответствует слева направо, и большое количество разбиений блоков происходит на правом конце картинки, и информация движения крайних правых восьми блоков кодирования сохраняется в списке кандидатов. Здесь текущий блок присутствует на левом конце, так что текущий блок находится слишком далеко от блока кодирования, на который ссылается информация движения, сохраненная в списке кандидатов, что снижает эффективность кодирования.[00494] FIG. 40(a) shows an example of a candidate list structure consisting of one UPU. Fig. 40 shows an example in which the UPU is allocated based on the picture and the size of the candidate list is limited to eight. The encoding order is from left to right, and a large number of block divisions occur at the right end of the picture, and the motion information of the rightmost eight encoding blocks is stored in the candidate list. Here, the current block is present at the left end, so that the current block is too far from the encoding block referenced by the motion information stored in the candidate list, which reduces the encoding efficiency.
[00495] Фиг. 40(b) иллюстрирует пример конфигурации UPU, к которой применяется вариант осуществления в соответствии с настоящим изобретением. Кодер или декодер может разделить картинку по вертикали, так что картинка включает n UPU. Здесь, поскольку каждая UPU имеет отдельный список кандидатов, текущий блок может быть закодирован/декодирован со ссылкой на список кандидатов UPU 0. Согласно конфигурации UPU, даже когда строка блоков кодирования изменяется, расстояние между текущим блоком и блоком кодирования, на который ссылается информация движения, может быть ближе, чем таковое на фиг. 40(а). Точно так же, когда будущий блок кодируется, ссылаются на список кандидатов UPU n, тем самым предотвращая случай обращения к области кодирования, которая находится слишком далеко.[00495] FIG. 40(b) illustrates an example of a UPU configuration to which an embodiment in accordance with the present invention is applied. The encoder or decoder can split the picture vertically so that the picture includes n UPUs. Here, since each UPU has a separate candidate list, the current block can be encoded/decoded with reference to the candidate list of UPU 0. According to the configuration of the UPU, even when the row of encoding blocks changes, the distance between the current block and the encoding block referenced by the motion information is may be closer than that in FIG. 40(a). Similarly, when a future block is encoded, the candidate list of UPU n is referenced, thereby preventing the case of accessing an encoding region that is too far away.
[00496] То есть, кодер или декодер могут использовать разные списки кандидатов в соответствии с UPU, которой принадлежит местоположение текущего блока. Соответственно, кодер или декодер могут предотвратить снижение эффективности кодирования. Здесь список кандидатов, принадлежащий каждой UPU, может ссылаться на ранее сгенерированный список кандидатов, принадлежащий UPU, отличающимся друг от друга. Например, список кандидатов UPU n может быть сгенерирован со ссылкой на по меньшей мере одну из UPU от UPU 0 до UPU n-1.[00496] That is, the encoder or decoder may use different candidate lists according to the UPU that owns the location of the current block. Accordingly, the encoder or decoder can prevent deterioration in encoding efficiency. Here, the candidate list belonging to each UPU may reference a previously generated candidate list belonging to UPUs different from each other. For example, a candidate list of UPU n may be generated with reference to at least one of the UPUs UPU 0 to UPU n-1.
[00497][00497]
[00498] Фиг. 41 представляет собой блок-схему последовательности операций, иллюстрирующую способ декодирования в соответствии с вариантом осуществления настоящего изобретения.[00498] FIG. 41 is a flowchart illustrating a decoding method according to an embodiment of the present invention.
[00499] Со ссылкой на фиг. 41, способ декодирования в соответствии с настоящим изобретением может включать выведение первого списка кандидатов с использованием информации движения соседнего блока (S4110), выведение второго списка кандидатов с использованием предварительно восстановленной информации движения (S4120), выведение третьего списка кандидатов с использованием первого списка кандидатов и второго списка кандидатов (S4130) и генерацию блока предсказания с использованием третьего списка кандидатов (S4140).[00499] With reference to FIG. 41, the decoding method according to the present invention may include deriving a first candidate list using the motion information of an adjacent block (S4110), deriving a second candidate list using the previously reconstructed motion information (S4120), deriving a third candidate list using the first candidate list and the second the candidate list (S4130); and generating a prediction block using the third candidate list (S4140).
[00500] Здесь, ранее восстановленная информация движения может быть информацией движения декодированного блока кодирования непосредственно перед декодированием текущего блока.[00500] Here, the previously recovered motion information may be the motion information of a decoded encoding block just before decoding the current block.
[00501] Фиг. 42 представляет собой блок-схему последовательности операций, иллюстрирующую способ кодирования в соответствии с вариантом осуществления настоящего изобретения.[00501] FIG. 42 is a flowchart illustrating an encoding method in accordance with an embodiment of the present invention.
[00502] Со ссылкой на фиг. 42, способ кодирования в соответствии с настоящим изобретением может включать определение информации движения текущего блока (S4210), выведение первого списка кандидатов с использованием информации движения соседнего блока (S4220) и выведение второго списка кандидатов с использованием закодированной информации движения (S4230) и выведение третьего списка кандидатов с использованием первого списка кандидатов и второго списка кандидатов (S4240).[00502] With reference to FIG. 42, the encoding method according to the present invention may include determining motion information of the current block (S4210), outputting a first candidate list using motion information of an adjacent block (S4220), and outputting a second candidate list using the encoded motion information (S4230), and outputting a third list. candidates using the first candidate list and the second candidate list (S4240).
[00503] По меньшей мере один или комбинация по меньшей мере одного из вышеописанных вариантов осуществления могут использоваться для выполнения способа кодирования/декодирования, показанного на фиг. 41 и 42. Например, первый список кандидатов может означать существующий список кандидатов, а второй список кандидатов может означать список кандидатов в соответствии с настоящим изобретением. То есть, первый список кандидатов может быть по меньшей мере одним из списков кандидатов, используемых в режиме AMVP, режиме слияния и режиме IBC.[00503] At least one or a combination of at least one of the above-described embodiments may be used to perform the encoding/decoding method shown in FIG. 41 and 42. For example, the first candidate list may refer to an existing candidate list, and the second candidate list may refer to a candidate list in accordance with the present invention. That is, the first candidate list may be at least one of the candidate lists used in the AMVP mode, the merge mode, and the IBC mode.
[00504] Здесь, предварительно кодированная информация движения может быть информацией движения блока кодирования, закодированного непосредственно перед кодированием текущего блока.[00504] Here, the pre-coded motion information may be the motion information of an encoding block encoded immediately before encoding the current block.
[00505] Далее будет описан способ кодирования/декодирования изображения с использованием списка режимов адаптивного внутри- (интра-) картинного предсказания.[00505] Next, a method for encoding/decoding an image using a list of adaptive intra-picture prediction modes will be described.
[00506] При сжатии изображения, требуются шесть или более битов данных для представления 32 или более режимов внутри- картинного предсказания. Для представления 64 или более режимов интра-предсказания требуется семь или более битов данных. Способ кодирования/декодирования изображения использует наиболее вероятный режим (MPM) для уменьшения количества битов, представляющих режимы интра-предсказания.[00506] In image compression, six or more bits of data are required to represent 32 or more in-picture prediction modes. Seven or more data bits are required to represent 64 or more intra-prediction modes. The image encoding/decoding method uses the most probable mode (MPM) to reduce the number of bits representing intra-prediction modes.
[00507] Фиг. 43 и 44 представляют собой диаграммы, иллюстрирующие кандидатов MPM.[00507] FIG. 43 and 44 are diagrams illustrating MPM candidates.
[00508] Фиг. 43 представляет собой диаграмму, иллюстрирующую пример кандидата, который может использоваться как текущий блок и MPM, при этом затененные серым блоки, соответствующие C1-C17, являются областями, в которых существует соседний блок, и могут использоваться как MPM. В технологии сжатия изображения, кодер конфигурирует кандидата MPM и список MPM путем выведения режима интра-предсказания из соседних блоков текущего блока, и когда тот же режим предсказания, что и режим интра-предсказания, определенный в текущем блоке, присутствует в списке MPM, можно уменьшить количество битов представления в режиме интра-предсказания путем передачи индекса кандидата MPM вместо режима интра-предсказания текущего блока.[00508] FIG. 43 is a diagram illustrating an example of a candidate that can be used as a current block and an MPM, wherein the gray shaded blocks corresponding to C1 to C17 are areas in which a neighboring block exists and can be used as an MPM. In image compression technology, the encoder configures the MPM candidate and the MPM list by deriving the intra-prediction mode from neighboring blocks of the current block, and when the same prediction mode as the intra-prediction mode defined in the current block is present in the MPM list, it can be reduced number of intra-prediction mode representation bits by passing the MPM candidate index instead of the current block's intra-prediction mode.
[00509] Фиг. 43 показывает пример кандидата, который может использоваться в MPM, все или часть кандидатов от C1 до C17 могут использоваться в MPM согласно способу сжатия изображения и согласно режиму предсказания соседнего блока, в список MPM может быть добавлен по меньшей мере один из DC режима предсказания, планарного режима предсказания и направленного режима интра-предсказания. Кроме того, направленный режим, полученный путем добавления или вычитания смещения к/от направленному(го) режиму(а) интра-предсказания соседнего блока, может быть добавлен в список MPM.[00509] FIG. 43 shows an example of a candidate that can be used in the MPM, all or part of the candidates C1 to C17 can be used in the MPM according to the image compression method and according to the neighbor block prediction mode, at least one of the DC prediction mode, planar can be added to the MPM list prediction mode and directed intra-prediction mode. In addition, a directional mode obtained by adding or subtracting an offset to/from the intra-prediction directional mode(s) of a neighboring block may be added to the MPM list.
[00510] Кроме того, как показано в примере на фиг. 44, можно сконфигурировать список MPM путем выведения режима интра-предсказания из блока соседней области вместо смежной области текущего блока.[00510] Additionally, as shown in the example of FIG. 44, the MPM list can be configured by deriving the intra-prediction mode from a block of an adjacent region instead of an adjacent region of the current block.
[00511] Фиг. 45 представляет собой диаграмму, иллюстрирующую пример выбора режима интра-предсказания, и фиг. 46 представляет собой диаграмму, иллюстрирующую случай, когда режим интра-предсказания текущего блока не включен в список MPM.[00511] FIG. 45 is a diagram illustrating an example of intra-prediction mode selection, and FIG. 46 is a diagram illustrating a case where the intra-prediction mode of the current block is not included in the MPM list.
[00512] Фиг. 45 представляет собой диаграмму, представляющую пример режима интра-предсказания текущего блока и соседнего блока в процессе кодирования/декодирования изображения, при этом затененные серым блоки представляют собой области, включенные в соседний блок, и числа для каждой области означают значение режима интра-предсказания соседней области, включающей соответствующую область. Когда соседние блоки текущего блока, как показано на фиг. 45, не включают в себя тот же режим предсказания, что и текущий блок, и когда режим интра-предсказания текущего блока не включен в список MPM, сконфигурированный, как показано на фиг. 46, MPM для текущего блока не выбирается, но режим предсказания текущего блока может непосредственно сигнализироваться и передаваться.[00512] FIG. 45 is a diagram showing an example of the intra-prediction mode of the current block and the neighboring block in the image encoding/decoding process, wherein the gray shaded blocks represent regions included in the neighboring block, and the numbers for each region indicate the intra-prediction mode value of the neighboring region , including the corresponding area. When neighboring blocks of the current block, as shown in FIG. 45 do not include the same prediction mode as the current block, and when the intra-prediction mode of the current block is not included in the MPM list configured as shown in FIG. 46, the MPM for the current block is not selected, but the prediction mode of the current block can be directly signaled and transmitted.
[00513] В качестве примера, когда MPM не выбран, в качестве способа сжатия и передачи режима предсказания текущего блока, имеется способ его передачи путем классификации режима предсказания текущего блока на выбранный режим и невыбранный режим (оставшийся режим). Для оставшегося режима интра-предсказания, за исключением номеров режимов интра-предсказания, возникающих для кандидата MPM во всех возможных режимах интра-предсказания, выбранный режим сжимает и передает флаг выбранного режима и номер режима интра-предсказания 1/N, когда режим интра-предсказания кратен N (N - целое число, большее или равное 2), и сжимает и передает невыбранный режим вместе с флагом выбранного режима, если он не кратен N. Между тем, в случае использования невыбранного режима, кодер может выполнять передачу путем кодирования режима интра-предсказания (кодирования оставшегося интра-режима), который не включен в MPM, с использованием такого способа, как усеченное двоичное кодирование.[00513] As an example, when MPM is not selected as a method for compressing and transmitting the prediction mode of the current block, there is a method for transmitting it by classifying the prediction mode of the current block into a selected mode and a non-selected mode (remaining mode). For the remaining intra-prediction mode, excluding the intra-prediction mode numbers occurring for the MPM candidate in all possible intra-prediction modes, the selected mode compresses and transmits the selected mode flag and the intra-prediction mode number 1/N when the intra-prediction mode is a multiple of N (N is an integer greater than or equal to 2), and compresses and transmits the unselected mode along with the selected mode flag if it is not a multiple of N. Meanwhile, in the case of using the unselected mode, the encoder can perform transmission by encoding the intra-mode prediction (encoding the remaining intra-mode) that is not included in the MPM, using a method such as truncated binary encoding.
[00514] Кроме того, когда MPM не выбран, требуются log N битов представления при представлении N режимов предсказания (N - целое число, равное 2 или более) для представления режима интра-предсказания текущего блока. Кроме того, существует проблема, заключающаяся в том, что генерируется больше битов, чем индекс MPM, даже если используется способ выбранного режима.[00514] In addition, when the MPM is not selected, log N representation bits are required when representing N prediction modes (N is an integer equal to 2 or more) to represent the intra-prediction mode of the current block. In addition, there is a problem that more bits are generated than the MPM index even if the selected mode method is used.
[00515] В соответствии с настоящим изобретением, можно увеличить избирательность MPM с использованием списка режимов интра-предсказания. В соответствии с некоторыми вариантами осуществления настоящего изобретения, предлагается способ сигнализации индекса адаптивно сконфигурированного списка режимов интра-предсказания, когда MPM не выбран, и способ применения списка режимов интра-предсказания к выбранному режиму и невыбранному режиму для сокращения бита представления режима предсказания. Поскольку к списку режимов интра-предсказания в соответствии с настоящим изобретением всегда может обращаться кодер и декодер изображения без дополнительной сигнализации, список режимов интра-предсказания может использоваться в качестве опорной информации в процессах кодирования/ декодирования, отличных от описанного выше MPM, выбранного режима и невыбранного режима.[00515] In accordance with the present invention, it is possible to increase the MPM selectivity using a list of intra-prediction modes. According to some embodiments of the present invention, a method is provided for signaling an index of an adaptively configured intra-prediction mode list when an MPM is not selected, and a method for applying the intra-prediction mode list to the selected mode and the unselected mode to shorten the prediction mode representation bit. Since the list of intra-prediction modes in accordance with the present invention can always be accessed by the image encoder and decoder without additional signaling, the list of intra-prediction modes can be used as reference information in encoding/decoding processes other than the above-described MPM, selected mode and unselected mode.
[00516] [00516]
[00517] Далее будет описан способ конфигурирования списка режимов интра-предсказания в соответствии с настоящим изобретением.[00517] Next, a method for configuring a list of intra-prediction modes in accordance with the present invention will be described.
[00518] После выполнения интра-предсказания путем применения различных режимов интра-предсказания, кодер определяет режим предсказания, имеющий наивысшую степень сжатия среди них, как оптимальный режим предсказания, и декодер изображения выполняет предсказание и восстановление с использованием режима интра-предсказания, определенного кодером. Поскольку кодер и декодер изображения выполняют предсказание и восстановление с использованием того же самого режима предсказания, декодер изображения также должен иметь возможность выводить список режимов интра-предсказания, выведенный из кодера. Поскольку декодер выполняет то же самое предсказание посредством режима интра-предсказания, определенного кодером, когда правила для конфигурирования списка режимов интра-предсказания кодера и декодера одинаковы, кодер и декодер могут конфигурировать список режимов интра-предсказания тем же путем без дополнительной сигнализации. Список режимов интра-предсказания, сконфигурированный в кодере и декодере, может использоваться при выводе режима предсказания.[00518] After performing intra-prediction by applying various intra-prediction modes, the encoder determines the prediction mode having the highest compression ratio among them as the optimal prediction mode, and the image decoder performs prediction and reconstruction using the intra-prediction mode determined by the encoder. Since the image encoder and decoder perform prediction and reconstruction using the same prediction mode, the image decoder must also be able to output the intra-prediction mode list output from the encoder. Since the decoder performs the same prediction through the intra-prediction mode determined by the encoder, when the rules for configuring the intra-prediction mode list of the encoder and the decoder are the same, the encoder and the decoder can configure the intra-prediction mode list in the same way without additional signaling. A list of intra-prediction modes configured in the encoder and decoder can be used when deriving the prediction mode.
[00519] Фиг. 47 представляет собой диаграмму, иллюстрирующую способ конфигурирования списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[00519] FIG. 47 is a diagram illustrating a method for configuring an intra-prediction mode list in accordance with an embodiment of the present invention.
[00520] Фиг. 47 показывает пример процесса конфигурирования списка режимов интра-предсказания в кодере и декодере. Согласно фиг. 47, список режимов интра-предсказания может быть сконфигурирован на основе частоты появления режима интра-предсказания. На фиг. 47, каждый из квадратов, составляющих 16 блоков, представляет блок кодирования единицы, выводящий каждый режим предсказания, затенения серым представляют текущий блок, и значения в затенениях означают средние значения, обновленные в списке счета, отсчитывающем частоту появления каждого режима интра-предсказания (интра-режима).[00520] FIG. 47 shows an example of a process for configuring a list of intra-prediction modes in an encoder and decoder. According to FIG. 47, the list of intra-prediction modes can be configured based on the frequency of occurrence of the intra-prediction mode. In fig. 47, each of the squares constituting 16 blocks represents a unit encoding block outputting each prediction mode, the shadings in gray represent the current block, and the values in the shadings mean the average values updated in the count list counting the frequency of occurrence of each intra-prediction mode (intra-prediction mode). mode).
[00521] Индекс в списке счета означает число режимов интра-предсказания. Здесь число режимов интра-предсказания может означать значение, представляющее режим интра-предсказания. То есть, на фиг. 47, число в каждой единице предсказания представляет значение, указывающее режим интра-предсказания, и пунктирная стрелка представляет временной поток. То есть, интра-предсказание может выполняться над текущим блоком в порядке от (a) до (i) на фиг. 47.[00521] The index in the count list indicates the number of intra-prediction modes. Here, the number of intra-prediction modes may mean a value representing the intra-prediction mode. That is, in FIG. 47, the number in each prediction unit represents a value indicating the intra-prediction mode, and the dotted arrow represents the time flow. That is, intra prediction may be performed on the current block in the order (a) to (i) in FIG. 47.
[00522] Поскольку значение режима интра-предсказания, определенного на фиг. 47(a), равно пяти, значение 5 режима интра-предсказания списка счета увеличивается на один. Затем, поскольку значение режима интра-предсказания, определенного на фиг. 47(b), равно четырем, значение 4 режима интра-предсказания списка счета обновляется. Аналогично, значение режима интра-предсказания в списке счета может быть увеличено согласно режиму интра-предсказания, определенному на фиг. 47(c)-(i), соответственно. Список режима интра-предсказания, используемый для сигнализации режима предсказания в интра-предсказании, может быть отдельно сконфигурирован со ссылкой на сконфигурированный список счета или может быть реализован таким образом, чтобы непосредственно обращаться к списку счета.[00522] Since the value of the intra-prediction mode defined in FIG. 47(a) is equal to five, the score list intra-prediction mode value 5 is increased by one. Then, since the value of the intra-prediction mode defined in FIG. 47(b) is equal to four, the score list intra-prediction mode value 4 is updated. Likewise, the value of the intra-prediction mode in the count list can be increased according to the intra-prediction mode defined in FIG. 47(c)-(i), respectively. The intra-prediction mode list used to signal the prediction mode in intra-prediction may be separately configured with reference to a configured count list or may be implemented to directly reference the count list.
[00523] Фиг. 47 иллюстрирует пример процесса выведения списка режимов интра-предсказания, и кодер или декодер может конфигурировать список режимов интра-предсказания путем вычисления затрат в способе, отличном от счета. Кроме того, способ выведения списка режимов интра-предсказания может быть реализован иначе. Например, затраты могут быть определены с использованием остаточного сигнала для каждого режима интра-предсказания. В качестве другого примера, список режимов интра-предсказания может быть сконфигурирован путем комбинирования частоты появления и результата затрат режима интра-предсказания.[00523] FIG. 47 illustrates an example of an intra-prediction mode list output process, and an encoder or decoder may configure the intra-prediction mode list by calculating costs in a method other than counting. In addition, the method for listing the intra-prediction modes may be implemented differently. For example, costs can be determined using the residual signal for each intra-prediction mode. As another example, a list of intra-prediction modes may be configured by combining the frequency of occurrence and the cost result of the intra-prediction mode.
[00524] Фиг. 48 представляет собой другую диаграмму, иллюстрирующую способ конфигурирования списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения. [00524] FIG. 48 is another diagram illustrating a method for configuring an intra-prediction mode list in accordance with an embodiment of the present invention.
[00525] Фиг. 48 иллюстрирует пример конфигурации списка режимов интра-предсказания согласно определенному режиму интра-предсказания. В примере на фиг. 48, поскольку соседние блоки, смежные сверху и слева от каждого блока, и соответствующие блоки отличаются друг от друга в режиме предсказания, MPM не может использоваться. Соответственно, согласно способу в предшествующем уровне техники, кодер должен сигнализировать все режимы предсказания, и когда используются 35 режимов, 5 битов должны быть выделены каждому режиму предсказания для представления 32 режимов, которые не включены в список MPM. Следовательно, чтобы кодировать/декодировать область на фиг. 48, для каждых 5 битов в 16 блоках должно сигнализироваться всего 80 битов.[00525] FIG. 48 illustrates an example of configuring an intra-prediction mode list according to a specific intra-prediction mode. In the example in FIG. 48, since adjacent blocks adjacent to the top and left of each block and the corresponding blocks are different from each other in the prediction mode, MPM cannot be used. Accordingly, according to the method in the prior art, the encoder must signal all prediction modes, and when 35 modes are used, 5 bits must be allocated to each prediction mode to represent 32 modes that are not included in the MPM list. Therefore, to encode/decode the region in FIG. 48, for every 5 bits in 16 blocks, a total of 80 bits must be signaled.
[00526] Между тем, в соответствии с настоящим изобретением, кодер или декодер может конфигурировать список режимов интра-предсказания предопределенной длины. Когда режим интра-предсказания для текущего блока присутствует в списке режимов интра-предсказания, кодер или декодер может уменьшить количество битов, требуемых сигнализацией индекса в списке режимов интра-предсказания для режима интра-предсказания.[00526] Meanwhile, in accordance with the present invention, an encoder or decoder can configure a list of intra-prediction modes of a predetermined length. When the intra-prediction mode for the current block is present in the intra-prediction mode list, the encoder or decoder may reduce the number of bits required by index signaling in the intra-prediction mode list for the intra-prediction mode.
[00527] Фиг. 48 показывает пример конфигурирования списка режимов интра-предсказания, имеющего длину 4, на основе счета, который является частотой появления режима предсказания. После обновления счета для каждого режима предсказания, кодер или декодер назначает индекс списка режимов интра-предсказания от значения 0 в порядке от наивысшего счета (в порядке значений 4, 3 и 5 режима интра-предсказания), тем самым конфигурируя список режимов интра-предсказания. Кроме того, кодер или декодер может генерировать список режимов интра-предсказания путем добавления или вычитания предопределенного веса к/от счету(а) для некоторых режимов предсказания.[00527] FIG. 48 shows an example of configuring an intra-prediction mode list having a length of 4 based on a count, which is the occurrence frequency of the prediction mode. After updating the score for each prediction mode, the encoder or decoder assigns an intra-prediction mode list index from value 0 in order from the highest score (in order of intra-prediction mode values 4, 3, and 5), thereby configuring the intra-prediction mode list. In addition, the encoder or decoder may generate a list of intra-prediction modes by adding or subtracting a predetermined weight to/from the count(s) for some prediction modes.
[00528] В примере на фиг. 48, когда сигнализируется только индекс для списка режима интра-предсказания, поскольку сигнализируется индекс списка длины 4, кодер или декодер может сигнализировать режим интра-предсказания, используя 2 бита на блок, и сигнализировать режим интра-предсказания, используя 32 бита для 16 блоков. То есть, используя список режимов интра-предсказания согласно настоящему изобретению, можно повысить эффективность кодирования изображения за счет значительного сокращения битов представления режима предсказания.[00528] In the example of FIG. 48, when only the index for an intra-prediction mode list is signaled, since the index of a list of length 4 is signaled, the encoder or decoder can signal the intra-prediction mode using 2 bits per block, and signal the intra-prediction mode using 32 bits for 16 blocks. That is, by using the intra-prediction mode list according to the present invention, it is possible to improve the image encoding efficiency by greatly reducing the prediction mode representation bits.
[00529] Фиг. 49 представляет собой диаграмму, иллюстрирующую способ конфигурирования основанного на счете списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[00529] FIG. 49 is a diagram illustrating a method for configuring a score-based intra-prediction mode list in accordance with an embodiment of the present invention.
[00530] Когда значения счета одинаковы для всех режимов интра-предсказания, кодер или декодер последовательно конфигурирует режим интра-предсказания до тех пор, пока список режимов интра-предсказания не будет заполнен, или использует режим предсказания, аналогичный режиму предсказания соседнего блока, для конфигурирования режима интра-предсказания.[00530] When the count values are the same for all intra-prediction modes, the encoder or decoder sequentially configures the intra-prediction mode until the list of intra-prediction modes is full, or uses a prediction mode similar to the neighboring block's prediction mode to configure intra-prediction mode.
[00531] Фиг. 49 показывает пример способа конфигурирования списка режимов интра-предсказания, когда тот же самый счет возникает в основанном на счете списке режимов интра-предсказания. Со ссылкой на фиг. 49, счет для значений 2, 3, 4, 5 и 6 режима интра-предсказания может иметь наивысшее значение из трех идентичным образом. В этом случае, как показано слева на фиг. 49, кодер или декодер последовательно выполняет сканирование от 0, так что режимы предсказания, сгенерированные с тем же самым счетом, могут добавляться в список интра-предсказания до тех пор, пока все списки режимов интра-предсказания не будут заполнены.[00531] FIG. 49 shows an example of a method for configuring an intra-prediction mode list when the same score appears in a score-based intra-prediction mode list. With reference to FIG. 49, the score for values 2, 3, 4, 5 and 6 of the intra-prediction mode may have the highest value of the three in an identical manner. In this case, as shown on the left in FIG. 49, the encoder or decoder scans sequentially from 0 so that prediction modes generated with the same count can be added to the intra-prediction list until all intra-prediction mode lists are filled.
[00532] Альтернативно, как показано справа на фиг. 49, кодер или декодер предпочтительно добавляет режимы предсказания левого и верхнего соседних блоков текущего блока к режиму предсказания, имеющему то же самое значение счета, тем самым конфигурируя список режимов интра-предсказания. Даже если счет не имеет наивысшего значения, кодер или декодер может применить приоритет к режимам предсказания левого и верхнего соседних блоков по отношению к режиму предсказания, имеющему тот же счет.[00532] Alternatively, as shown on the right in FIG. 49, the encoder or decoder preferably adds the prediction modes of the left and top adjacent blocks of the current block to the prediction mode having the same count value, thereby configuring the intra-prediction mode list. Even if the score does not have the highest value, the encoder or decoder can apply priority to the prediction modes of the left and top adjacent blocks with respect to the prediction mode having the same score.
[00533] Фиг. 50 представляет собой диаграмму, иллюстрирующую способ конфигурирования основанного на затратах списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[00533] FIG. 50 is a diagram illustrating a method for configuring a cost-based intra-prediction mode list in accordance with an embodiment of the present invention.
[00534] В качестве другого примера, даже если счет одинаков, кодер или декодер могут конфигурировать режим интра-предсказания, используя предопределенное условие. Например, предопределенное условие может быть частотой появления режима предсказания смежных или соседних блоков текущего блока. Список режимов интра-предсказания может быть сконфигурирован посредством предпочтительного использования режима предсказания, имеющего наиболее оптимальные затраты, путем вычисления затрат для каждого режима предсказания.[00534] As another example, even if the count is the same, the encoder or decoder may configure the intra-prediction mode using a predefined condition. For example, the predetermined condition may be the frequency of occurrence of the prediction mode of adjacent or neighboring blocks of the current block. The list of intra-prediction modes can be configured by preferentially using the prediction mode having the most optimal cost by calculating the cost for each prediction mode.
[00535] Измерение затрат может вычисляться с использованием частоты появления каждого режима предсказания, остаточного сигнала, сгенерированного для каждого режима предсказания, и т.п. для режима интра-предсказания, выбранного в качестве оптимального режима предсказания. Кроме того, затраты может вычисляться путем применения веса к режиму интра-предсказания, определенного в соседнем блоке, смежном с текущим блоком, или применения веса к направлению, аналогично режиму интра-предсказания, возникающему в соседнем блоке, смежном с текущим блоком.[00535] The cost measure may be calculated using the frequency of occurrence of each prediction mode, the residual signal generated for each prediction mode, and the like. for the intra-prediction mode selected as the optimal prediction mode. Additionally, the cost may be calculated by applying a weight to the intra-prediction mode defined in a neighboring block adjacent to the current block, or applying a weight to a direction similar to the intra-prediction mode occurring in a neighboring block adjacent to the current block.
[00536] Фиг. 50 показывает пример способа конфигурирования списка режимов интра-предсказания на основе затрат. Затененная часть фиг. 50 означает текущий блок, и каждое число может означать режим интра-предсказания. На фиг. 50, режим интра-предсказания, возникающий в каждом блоке, может быть сохранен в списке режимов истории. Со ссылкой на фиг. 50, список затрат может конфигурироваться с использованием абсолютного значения разности между режимами предсказания списка режимов истории как затрат, на основе среднего режимов предсказания блоков, смежных с верхним и левым от текущего блока, как опорного значения. Здесь, кодер или декодер могут конфигурировать список режимов интра-предсказания путем преимущественного добавления режима предсказания, имеющего низкие затраты[00536] FIG. 50 shows an example of a method for configuring a cost-based intra-prediction mode list. The shaded part of Fig. 50 means the current block, and each number can mean intra-prediction mode. In fig. 50, the intra-prediction mode occurring in each block can be stored in the history mode list. With reference to FIG. 50, the cost list may be configured using the absolute value of the difference between the prediction modes of the history mode list as a cost, based on the average of the prediction modes of blocks adjacent to the top and left of the current block as a reference value. Here, the encoder or decoder may configure a list of intra-prediction modes by preferentially adding a prediction mode having low cost
[00537] При конфигурировании списка режимов интра-предсказания, когда вновь добавленный режим интра-предсказания существует в существующем списке режимов интра-предсказания, индекс соответствующего режима интра-предсказания может быть назначен низким. Значение индекса может использоваться в качестве идентификатора для выбора одного из режимов интра-предсказания, включенных в список режимов интра-предсказания. Здесь кодер или декодер могут повысить эффективность сигнализации, поскольку меньшее количество битов, сигнализируемых декодеру, назначается по мере уменьшения значения индекса.[00537] When configuring an intra-prediction mode list, when a newly added intra-prediction mode exists in an existing intra-prediction mode list, the index of the corresponding intra-prediction mode can be set to low. The index value can be used as an identifier to select one of the intra-prediction modes included in the list of intra-prediction modes. Here, the encoder or decoder can improve signaling efficiency since fewer bits signaled to the decoder are assigned as the index value decreases.
[00538] Фиг. 51 и 52 представляют собой диаграммы, иллюстрирующие способ изменения индекса списка режимов интра-предсказания в соответствии с некоторыми вариантами осуществления настоящего изобретения.[00538] FIG. 51 and 52 are diagrams illustrating a method for changing an intra-prediction mode list index in accordance with some embodiments of the present invention.
[00539] Поскольку режим интра-предсказания текущего блока более вероятно будет сходным с режимом интра-предсказания следующего блока, чем режим интра-предсказания ранее закодированных блоков, при добавлении режима интра-предсказания текущего блока к списку режимов интра-предсказания, может назначаться самое низкое значение “0” индекса.[00539] Because the intra-prediction mode of the current block is more likely to be similar to the intra-prediction mode of the next block than the intra-prediction mode of previously encoded blocks, when adding the current block's intra-prediction mode to the list of intra-prediction modes, the lowest one may be assigned index value “0”.
[00540] Фиг. 51 показывает пример способа применения самого низкого индекса к режиму интра-предсказания, когда добавленный режим интра-предсказания существует в существующем списке режимов интра-предсказания. Согласно фиг. 51, когда значения режима интра-предсказания 0, 22, 3, 11 и 7 присутствуют в списке режимов интра-предсказания, и добавленный режим интра-предсказания равен 3, кодер или декодер может изменить значение индекса режима интра-предсказания 3, который уже присутствует в списке режимов интра-предсказания, в нуль.[00540] FIG. 51 shows an example of a method of applying the lowest index to an intra-prediction mode when the added intra-prediction mode exists in an existing list of intra-prediction modes. According to FIG. 51, when intra-prediction mode values 0, 22, 3, 11 and 7 are present in the intra-prediction mode list, and the added intra-prediction mode is 3, the encoder or decoder may change the value of intra-prediction mode index 3 which is already present in the list of intra-prediction modes, to zero.
[00541] Фиг. 52 показывает пример способа уменьшения индекса для режима интра-предсказания, когда добавленный режим интра-предсказания существует в существующем списке режимов интра-предсказания. Когда имеются значения режима интра-предсказания 0, 22, 3, 11 и 7 в списке режимов интра-предсказания и добавленный режим интра-предсказания равен трем, кодер или декодер может изменить индекс режима 3 интра-предсказания, уже присутствующего в списке режимов интра-предсказания, с третьего на второй. Альтернативно, при конфигурировании списка режимов интра-предсказания, когда вновь добавленный режим интра-предсказания существует в существующем списке режимов интра-предсказания, кодер или декодер может назначить предопределенный индекс соответствующему режиму интра-предсказания.[00541] FIG. 52 shows an example of a method for reducing an index for an intra-prediction mode when the added intra-prediction mode exists in an existing list of intra-prediction modes. When there are intra prediction mode values 0, 22, 3, 11 and 7 in the intra prediction mode list and the added intra prediction mode is three, the encoder or decoder can change the index of intra prediction mode 3 already present in the intra prediction mode list. predictions, from third to second. Alternatively, when configuring a list of intra-prediction modes, when a newly added intra-prediction mode exists in an existing list of intra-prediction modes, the encoder or decoder may assign a predefined index to the corresponding intra-prediction mode.
[00542] Фиг. 53 и 54 представляют собой диаграммы, иллюстрирующие область, конфигурирующую список режимов интра-предсказания, в соответствии с некоторыми вариантами осуществления настоящего изобретения.[00542] FIG. 53 and 54 are diagrams illustrating an area configuring an intra-prediction mode list in accordance with some embodiments of the present invention.
[00543] Список режимов интра-предсказания может быть сконфигурирован с использованием конкретной единицы кодирования/декодирования, такой как блок, CTU, кирпичик, мозаичный элемент, слайс, субкартинка, картинка, кадр и группа картинок (GOP), составленных из одной или более CU. Поскольку смежные блоки имеют более высокую вероятность генерирования того же самого режима предсказания, кодер или декодер может конфигурировать список режимов интра-предсказания в таких единицах, как CTU или слайс. Когда недостаточно кандидатов для интра-предсказания, список режимов интра-предсказания конфигурируется в единицах картинки, тем самым выводя более точные предсказания. Кроме того, поскольку изображение имеет высокое сходство между картинками, кодер или декодер могут повысить эффективность кодирования путем конфигурирования списка режимов интра-предсказания для каждой GOP. Кроме того, поскольку смежные блоки имеют относительно высокую вероятность генерирования того же самого режима предсказания, кодер или декодер может формировать список режимов интра-предсказания для каждой предопределенной области в картинке.[00543] A list of intra-prediction modes may be configured using a specific encoding/decoding unit, such as block, CTU, brick, tile, slice, sub-picture, picture, frame, and group of pictures (GOP), composed of one or more CUs . Because adjacent blocks have a higher probability of generating the same prediction mode, the encoder or decoder may configure a list of intra-prediction modes in units such as CTU or slice. When there are not enough candidates for intra-prediction, a list of intra-prediction modes is configured in picture units, thereby outputting more accurate predictions. In addition, since a picture has high similarity between pictures, the encoder or decoder can improve coding efficiency by configuring a list of intra-prediction modes for each GOP. In addition, since adjacent blocks have a relatively high probability of generating the same prediction mode, the encoder or decoder can generate a list of intra-prediction modes for each predefined region in the picture.
[00544] Здесь предопределенная область может быть ограничена соседней областью текущего блока, как показано на фиг. 53, или может быть сформирована путем назначения области посредством выполнения N-разбиения на экране (N - целое число, равное 1 или более), как показано на фиг. 54. Список режимов интра-предсказания в соответствии с настоящим изобретением генерируется и используется не только для блока, CTU, кирпичика, мозаичного элемента, слайса, субкартинки, картинки, кадра, единицы группы картинок (GOP), состоящих из одной или более CU, но также различных единиц, которые можно использовать в области сжатия видео, включая метод сжатия неподвижного изображения. Кроме того, список режимов интра-предсказания может конфигурироваться для всех режимов предсказания или может конфигурироваться как отдельный список только для режима предсказания, имеющего высокую вероятность выбора.[00544] Here, the predefined area may be limited to an adjacent area of the current block, as shown in FIG. 53, or can be formed by designating an area by performing N-partitioning on the screen (N is an integer equal to 1 or more), as shown in FIG. 54. A list of intra-prediction modes in accordance with the present invention is generated and used not only for a block, CTU, brick, tile, slice, sub-picture, picture, frame, group of picture unit (GOP) unit consisting of one or more CUs, but also the various units that can be used in the field of video compression, including the still image compression method. In addition, the list of intra-prediction modes may be configured for all prediction modes or may be configured as a separate list only for a prediction mode having a high probability of selection.
[00545] Фиг. 55 представляет собой еще одну диаграмму, иллюстрирующую способ конфигурирования списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения. [00545] FIG. 55 is another diagram illustrating a method for configuring an intra-prediction mode list in accordance with an embodiment of the present invention.
[00546] Фиг. 55 показывает другой пример способа, в котором кодер или декодер изображения конфигурирует список режимов интра-предсказания. В примере на фиг. 55, когда список режимов интра-предсказания заполнен, список режимов интра-предсказания может конфигурироваться по правилу “первым пришел - первым обслужен” (FIFO), которое заменяет первый добавленный компонент новым значением. Когда список режимов интра-предсказания заполнен, порядок замены может быть изменен с учетом направления интра-предсказания соседнего блока.[00546] FIG. 55 shows another example of a method in which an image encoder or decoder configures a list of intra-prediction modes. In the example in FIG. 55, when the intra-prediction mode list is full, the intra-prediction mode list may be configured with a first-in, first-out (FIFO) rule that replaces the first added component with a new value. When the list of intra-prediction modes is full, the replacement order can be changed taking into account the intra-prediction direction of the adjacent block.
[00547] В нижеследующем описании будет описан список режимов интра-предсказания, в котором порядок замены следует правилу “первым пришел - первым обслужен” (FIFO). На фиг. 55, каждый из квадратов, составляющих 16 блоков, может означать единичный блок для выведения режима предсказания, и затенение серым может означать текущий блок. Числа в каждой единице предсказания указывают режим интра-предсказания, а пунктирные стрелки указывают порядок интра-предсказания. То есть интра-предсказание может выполняться в порядке от (a) до (f) на фиг. 55.[00547] In the following description, a list of intra-prediction modes in which the replacement order follows the first-in-first-out (FIFO) rule will be described. In fig. 55, each of the squares constituting 16 blocks may indicate a unit block for outputting a prediction mode, and shading in gray may indicate the current block. The numbers in each prediction unit indicate the intra-prediction mode, and the dotted arrows indicate the intra-prediction order. That is, intra-prediction may be performed in the order of (a) to (f) in FIG. 55.
[00548] Поскольку значение режима интра-предсказания, определенное на фиг. 55(a) равно пяти, режим номер пять может быть добавлен в список режимов интра-предсказания. Затем, поскольку значение режима интра-предсказания, определенного на фиг. 55(b), равно четырем, режим номер 4 может быть последовательно добавлен в список режимов интра-предсказания. Аналогично, режимы интра-предсказания, соответственно определенные на фиг. 55(c)-55(f), могут быть последовательно добавлены в список режимов интра-предсказания. Когда режим интра-предсказания, добавленный в процессе добавления каждого режима интра-предсказания в список режимов интра-предсказания, существует в списке режимов интра-предсказания, перекрывающийся режим интра-предсказания не может быть добавлен в список режимов интра-предсказания.[00548] Since the intra prediction mode value defined in FIG. 55(a) is five, mode number five can be added to the list of intra-prediction modes. Then, since the value of the intra-prediction mode defined in FIG. 55(b) is equal to four, mode number 4 can be successively added to the list of intra-prediction modes. Likewise, the intra-prediction modes respectively defined in FIG. 55(c)-55(f) can be successively added to the list of intra-prediction modes. When the intra-prediction mode added in the process of adding each intra-prediction mode to the intra-prediction mode list exists in the intra-prediction mode list, the overlapping intra-prediction mode cannot be added to the intra-prediction mode list.
[00549] Кроме того, как показано на фиг. 55(f), когда списки режимов интра-предсказания заполнены, каждый компонент может быть последовательно заменен новым режимом интра-предсказания в порядке первого добавления среди компонентов списка режимов интра-предсказания. На фиг. 55, размер списка режимов интра-предсказания равен четырем, но размер списка режимов интра-предсказания может быть установлен по-разному. В качестве другого примера, когда список режимов интра-предсказания заполнен, добавляемый режим интра-предсказания может добавляться в предопределенное положение в списке режимов интра-предсказания.[00549] Additionally, as shown in FIG. 55(f), when the intra-prediction mode lists are full, each component may be successively replaced by a new intra-prediction mode in the order of first addition among the components of the intra-prediction mode list. In fig. 55, the size of the intra-prediction mode list is four, but the size of the intra-prediction mode list can be set in different ways. As another example, when the list of intra-prediction modes is full, the added intra-prediction mode may be added to a predetermined position in the list of intra-prediction modes.
[00550] Индекс списка режимов интра-предсказания может использоваться как идентификатор, указывающий один из режимов интра-предсказания, включенных в список режимов интра-предсказания. Здесь, кодер или декодер могут повысить эффективность сигнализации путем назначения меньшего количества битов, сигнализируемых декодеру, когда значение индекса меньше.[00550] The intra-prediction mode list index may be used as an identifier indicating one of the intra-prediction modes included in the intra-prediction mode list. Here, the encoder or decoder can improve signaling efficiency by assigning fewer bits to be signaled to the decoder when the index value is smaller.
[00551] Когда режим интра-предсказания текущего блока более вероятно сходен с режимом интра-предсказания следующего блока, чем режим интра-предсказания ранее кодированных блоков, когда режим интра-предсказания добавляется в список режимов интра-предсказания, кодер или декодер может назначить самый низкий индекс добавленному режиму интра-предсказания. Например, на фиг. 55(b), кодер или декодер изменяет значение режима интра-предсказания, равное пяти, которое имеет значение существующего индекса № 0, на значение индекса № 1, и значение режима интра-предсказания, равное 4 в текущем блоке кодирования может быть присвоено значению индекса № 0.[00551] When the intra-prediction mode of the current block is more likely to be similar to the intra-prediction mode of the next block than the intra-prediction mode of previously encoded blocks, when the intra-prediction mode is added to the list of intra-prediction modes, the encoder or decoder may assign the lowest index to the added intra-prediction mode. For example, in FIG. 55(b), the encoder or decoder changes the intra-prediction mode value of five, which is the value of the existing index No. 0, to the index value of No. 1, and the intra-prediction mode value of 4 in the current encoding block can be assigned to the index value No. 0.
[00552] Фиг. 56-58 представляют собой диаграммы, иллюстрирующие способ распределения индекса режима интра-предсказания в соответствии с некоторыми вариантами осуществления настоящего изобретения.[00552] FIG. 56-58 are diagrams illustrating a method for allocating an intra-prediction mode index in accordance with some embodiments of the present invention.
[00553] Фиг. 56 показывает пример способа назначения самого низкого значения индекса добавленному режиму интра-предсказания. Самое низкое значение индекса 0 может быть назначено последнему добавленному режиму интра-предсказания, и более низкие значения индекса могут быть назначены каждому режиму интра-предсказания в порядке позже добавленных режимов интра-предсказания для оставшихся номеров режимов интра-предсказания.[00553] FIG. 56 shows an example of a method for assigning the lowest index value to an added intra-prediction mode. The lowest index value of 0 may be assigned to the last added intra-prediction mode, and lower index values may be assigned to each intra-prediction mode in the order of later added intra-prediction modes for the remaining intra-prediction mode numbers.
[00554] В качестве другого примера, кодер или декодер может последовательно суммировать выведенный режим интра-предсказания, переупорядочивать значения индексов и назначать значение “0”, начиная с последнего добавленного режима интра-предсказания. Например, на фиг. 55(f), список режимов интра-предсказания может быть сконфигурирован так, чтобы значения режимов интра-предсказания были в порядке 4, 3, 6 и 8, и здесь значения индекса находятся в порядке 3, 2, 1 и 0, в котором режиму 4 интра-предсказания может быть назначено значение индекса 3, режиму 3 интра-предсказания - значение индекса 2, режиму 6 интра-предсказания - значение индекса 1 и режиму 8 интра-предсказания - значение индекса 0, соответственно.[00554] As another example, an encoder or decoder may sequentially sum the output intra-prediction mode, reorder the index values, and assign a value of “0” starting with the last added intra-prediction mode. For example, in FIG. 55(f), the list of intra-prediction modes can be configured such that the values of the intra-prediction modes are in the order of 4, 3, 6 and 8, and here the index values are in the order of 3, 2, 1 and 0, in which the mode Intra-prediction mode 4 may be assigned an index value of 3, intra-prediction mode 3 to an index value of 2, intra-prediction mode 6 to an index value of 1, and intra-prediction mode 8 to an index value of 0, respectively.
[00555] Фиг. 57 показывает пример способа назначения самого низкого значения индекса недавно добавленному режиму. Самое низкое значение индекса, равное нулю, может быть назначено последнему добавленному режиму интра-предсказания, и более низкие значения индекса могут быть назначены в порядке позже добавленных режимов интра-предсказания для оставшихся режимов интра-предсказания.[00555] FIG. 57 shows an example of a method for assigning the lowest index value to a newly added mode. The lowest index value of zero may be assigned to the most recently added intra-prediction mode, and lower index values may be assigned in the order of the most recently added intra-prediction modes for the remaining intra-prediction modes.
[00556] Когда добавленный режим интра-предсказания уже существует в списке режимов интра-предсказания, режиму интра-предсказания может быть присвоен “ноль”, который является самым низким значением индекса. Фиг. 58 иллюстрирует пример способа назначения самого низкого значения индекса в списке режимов интра-предсказания режиму интра-предсказания, когда режим интра-предсказания уже существует в списке режимов интра-предсказания. Со ссылкой на фиг. 58(d), в процессе добавления значения 4 режима интра-предсказания, поскольку режим 4 интра-предсказания уже существует в режиме интра-предсказания, кодер или декодер может присвоить ноль, что является самым низким значением индекса для значения 4 режима интра-предсказания.[00556] When the added intra-prediction mode already exists in the list of intra-prediction modes, the intra-prediction mode may be assigned “zero”, which is the lowest index value. Fig. 58 illustrates an example of a method for assigning the lowest index value in the intra-prediction mode list to an intra-prediction mode when the intra-prediction mode already exists in the intra-prediction mode list. With reference to FIG. 58(d), in the process of adding the intra-prediction mode value 4, since the intra-prediction mode 4 already exists in the intra-prediction mode, the encoder or decoder may assign zero, which is the lowest index value for the intra-prediction mode value 4.
[00557][00557]
[00558] Далее будет описан способ конфигурирования множества списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[00558] Next, a method for configuring a plurality of intra-prediction mode lists according to an embodiment of the present invention will be described.
[00559] В определенной области может иметься множество списков режимов интра-предсказания. В частности, когда множество списков режимов предсказания с внутренним кодированием сконфигурировано для каждого направления или каждой области режима предсказания, выгодно учитывать направленность режима предсказания, характеристики пикселов определенной области и т.п., вместо конфигурирования одного списка режимов интра-предсказания для всех режимов предсказания и всех областей.[00559] There may be multiple lists of intra-prediction modes in a certain area. In particular, when multiple intra-prediction mode lists are configured for each direction or each prediction mode region, it is advantageous to take into account the directionality of the prediction mode, the pixel characteristics of a certain region, etc., rather than configuring one intra-prediction mode list for all prediction modes and all areas.
[00560] Фиг. 59 представляет собой диаграмму, иллюстрирующую способ конфигурирования множества списка режимов интра-предсказания, в соответствии с вариантом осуществления настоящего изобретения.[00560] FIG. 59 is a diagram illustrating a method for configuring a plurality of intra-prediction mode lists in accordance with an embodiment of the present invention.
[00561] Фиг. 59 показывает пример способа конфигурирования одного списка режимов интра-предсказания и способа конфигурирования множества списков режимов интра-предсказания для каждой области. Фиг. 59(a) иллюстрирует пример конфигурирования одного списка режимов интра-предсказания, имеющего длину 2. Фиг. 59(b) иллюстрирует пример конфигурирования списка режимов интра-предсказания, имеющего длину 2, для левой области (первая область) и правой области (вторая область) относительно центра блока.[00561] FIG. 59 shows an example of a method for configuring one intra-prediction mode list and a method for configuring multiple intra-prediction mode lists for each region. Fig. 59(a) illustrates an example of configuring one intra-prediction mode list having a length of 2. FIG. 59(b) illustrates an example of configuring an intra-prediction mode list having a length of 2 for a left region (first region) and a right region (second region) relative to the block center.
[00562] На фиг. 59(a), поскольку один список режимов интра-предсказания конфигурируется без различия между левой и правой областями, характеристика генерации сходных режимов интра-предсказания для каждой области может не учитываться. Между тем, на фиг. 59(b), список режимов интра-предсказания может быть индивидуально сконфигурирован с учетом положения и ориентации для каждой области относительно центра. При конфигурировании множества списков интра-предсказания для каждой области могут быть приняты во внимание характеристики генерации режима интра-предсказания для каждой области, тем самым повышая эффективность кодирования.[00562] In FIG. 59(a), since one list of intra-prediction modes is configured without distinguishing between left and right regions, the characteristic of generating similar intra-prediction modes for each region may not be taken into account. Meanwhile, in FIG. 59(b), the list of intra-prediction modes can be individually configured based on the position and orientation for each region relative to the center. When configuring multiple intra-prediction lists for each region, the intra-prediction mode generation characteristics of each region can be taken into account, thereby improving coding efficiency.
[00563] В примере на фиг. 59, блок разделен на левую и правую области, но вариант осуществления согласно фиг. 59 является только примером, в котором предопределенная область может быть разбита на N произвольных областей (N - целое число, равное 1 или более), чтобы сформировать N списков интра-предсказания. Здесь предопределенная область может быть ограничена периферийной областью текущего блока или может означать область, полученную путем выполнения N-разбиения на экране (N - целое число, равное 1 или более) на слайсы, картинки и т.п. вместо блоков. Кроме того, кодер или декодер может использовать режим интра-предсказания частичной области для конфигурирования режима интра-предсказания другой частичной области.[00563] In the example of FIG. 59, the block is divided into left and right areas, but the embodiment of FIG. 59 is only an example in which a predefined area can be divided into N arbitrary areas (N is an integer equal to 1 or more) to generate N intra-prediction lists. Here, the predefined area may be limited to the peripheral area of the current block or may mean an area obtained by performing N-partitioning on the screen (N is an integer equal to 1 or more) into slices, pictures, and the like. instead of blocks. In addition, the encoder or decoder may use the intra-prediction mode of a partial region to configure the intra-prediction mode of another partial region.
[00564] Фиг. 60 представляет собой диаграмму для описания способа конфигурирования множества списков режимов интра-предсказания с учетом направленности режима предсказания в соответствии с вариантом осуществления настоящего изобретения.[00564] FIG. 60 is a diagram for describing a method for configuring a plurality of intra-prediction mode lists in consideration of prediction mode directionality in accordance with an embodiment of the present invention.
[00565] Фиг. 60 показывает пример способа конфигурирования одного списка режимов интра-предсказания и способа конфигурирования множества списков интра-предсказания для каждого направления. Фиг. 60(a) иллюстрирует пример конфигурирования одного списка режимов интра-предсказания, имеющего длину два, и фиг. 60(b) иллюстрирует пример способа конфигурирования списка режимов интра-предсказания, имеющего длину два для горизонтального направления и вертикального направления, на основе направленности режима предсказания.[00565] FIG. 60 shows an example of a method for configuring one intra-prediction mode list and a method for configuring multiple intra-prediction lists for each direction. Fig. 60(a) illustrates an example of configuring one intra-prediction mode list having length two, and FIG. 60(b) illustrates an example of a method for configuring an intra-prediction mode list having a length of two for a horizontal direction and a vertical direction based on the directionality of the prediction mode.
[00566] Поскольку режимы предсказания, имеющие аналогичную направленность в интра-предсказании, имеют характеристики, которые появляются смежным образом, кодер или декодер формирует список режимов интра-предсказания для каждого направления и затем выполняет поиск режима предсказания текущего блока в списке интра-предсказания, сходного направлению соседнего блока, с учетом направления режима предсказания соседнего блока текущего блока. При выборе списка режимов интра-предсказания с учетом направленности, возможность найти тот же самый режим интра-предсказания может быть увеличена. Соответственно, конфигурация списка режимов предсказания для каждого направления, как показано на фиг. 60, может повысить эффективность кодирования.[00566] Because prediction modes having a similar direction in intra-prediction have characteristics that appear in a contiguous manner, the encoder or decoder generates a list of intra-prediction modes for each direction and then searches for the prediction mode of the current block in the list of intra-prediction similar the direction of the neighboring block, taking into account the direction of the prediction mode of the neighboring block of the current block. By selecting a list of intra-prediction modes based on directionality, the ability to find the same intra-prediction mode can be increased. Accordingly, the configuration of the prediction mode list for each direction as shown in FIG. 60, can improve coding efficiency.
[00567] В примере на фиг. 60, направление предсказания классифицируется на горизонтальное и вертикальное направления, но вариант осуществления на фиг. 60 является только примером, в котором направление может быть классифицировано различными путями, так что могут быть сконфигурированы N или более (N - целое число от 1 или более) списков интра-предсказания.[00567] In the example of FIG. 60, the prediction direction is classified into horizontal and vertical directions, but the embodiment of FIG. 60 is only an example in which the direction can be classified in various ways, so that N or more (N is an integer of 1 or more) intra-prediction lists can be configured.
[00568] Фиг. 61 иллюстрирует способ различения направления при конфигурировании N или более списков интра-предсказания. Фиг. 61(a) иллюстрирует пример способа различения двух направлений, и фиг. 61(b) иллюстрирует пример способа различения четырех направлений.[00568] FIG. 61 illustrates a method for discriminating direction when configuring N or more intra-prediction lists. Fig. 61(a) illustrates an example of a method for distinguishing two directions, and FIG. 61(b) illustrates an example of a method for distinguishing four directions.
[00569] Фиг. 62 представляет собой схему, иллюстрирующую структуру кодера и декодера, которая дополняет список режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[00569] FIG. 62 is a diagram illustrating an encoder and decoder structure that complements a list of intra-prediction modes in accordance with an embodiment of the present invention.
[00570] Схема устройства на фиг. 62 может иметь генератор списка режимов интра-предсказания, добавленный к схемам устройств на фиг. 1 и 2. Генератор списка режимов интра-предсказания может конфигурировать список режимов интра-предсказания, чтобы уменьшить количество битов сигнализации режима интра-предсказания, используемых для интра-предсказания. Кроме того, кодер или декодер может использовать способ использования компонента списка режимов интра-предсказания в качестве кандидата MPM без сигнализации индекса списка режимов интра-предсказания.[00570] The device diagram of FIG. 62 may have an intra-prediction mode list generator added to the device diagrams of FIG. 1 and 2. The intra-prediction mode list generator may configure the intra-prediction mode list to reduce the number of intra-prediction mode signaling bits used for intra-prediction. In addition, the encoder or decoder may employ a method of using an intra-prediction mode list component as an MPM candidate without signaling the intra-prediction mode list index.
[00571] Фиг. 63 представляет собой диаграмму, иллюстрирующую способ дополнения списка режимов интра-предсказания в соответствии с одним вариантом осуществления настоящего изобретения.[00571] FIG. 63 is a diagram illustrating a method for expanding a list of intra-prediction modes in accordance with one embodiment of the present invention.
[00572] Фиг. 63 показывает пример способа конфигурирования списка режимов интра-предсказания в кодере и декодере. Фиг. 63(a) показывает блок-схему последовательности операций, в которой кодер конфигурирует список режимов интра-предсказания. Когда режим интра-предсказания текущего блока определяется в кодере, кодер может добавить определенный режим интра-предсказания в список режимов интра-предсказания. Здесь, когда список режимов интра-предсказания заполнен, режим интра-предсказания может быть добавлен согласно правилу “первым пришел - первым обслужен” (FIFO), которое заменяет первый добавленный компонент новым значением.[00572] FIG. 63 shows an example of a method for configuring a list of intra-prediction modes in an encoder and decoder. Fig. 63(a) shows a flowchart in which the encoder configures a list of intra-prediction modes. When the intra-prediction mode of the current block is determined in the encoder, the encoder may add the specific intra-prediction mode to the list of intra-prediction modes. Here, when the list of intra-prediction modes is full, the intra-prediction mode can be added according to the first-in-first-out (FIFO) rule, which replaces the first added component with a new value.
[00573] Когда список режимов интра-предсказания заполнен, порядок замены может быть частично изменен, как показано на фиг. 64 с учетом режима интра-предсказания соседнего блока. Со ссылкой на фиг. 64(h), в процессе добавления значения 4 режима интра-предсказания, значение 6 режима интра-предсказания индекса № 0 должно быть заменено на 4 в порядке FIFO. Однако, поскольку значения режимов интра-предсказания смежных левого и верхнего блоков текущего блока равны 5 и 7, соответственно, кодер или декодер заменяет режим интра-предсказания 34, имеющий наибольшее отличие от среднего значения 6 значений 5 и 7 режима интра-предсказания в списке режимов интра-предсказания, на значение 4 режима интра-предсказания, тем самым конфигурируя список режимов интра-предсказания, отражающий тенденцию режима предсказания периферийной области текущего блока. Фиг. 64 иллюстрирует пример способа изменения порядка подстановки, в котором критерии для изменения порядка подстановки могут определяться не только средним значением режимов интра-предсказания соседних блоков, но также средним значением соседних блоков несмежных текущих блоков, как показано на фиг. 64. Кроме того, режим интра-предсказания соседнего блока может использоваться как опора для изменения порядка замены. Кроме того, по меньшей мере одно из статистических значений, такое как взвешенная сумма, средневзвешенное значение, медианное значение, минимальное значение, максимальное значение и т.д., в дополнение к среднему значению, может использоваться для определения критериев для изменения порядка подстановки.[00573] When the list of intra-prediction modes is full, the replacement order can be partially changed, as shown in FIG. 64 taking into account the intra-prediction mode of the neighboring block. With reference to FIG. 64(h), in the process of adding intra-prediction mode value 4, intra-prediction mode value 6 of index No. 0 must be replaced by 4 in FIFO order. However, since the intra-prediction mode values of the adjacent left and top blocks of the current block are 5 and 7, respectively, the encoder or decoder replaces the intra-prediction mode 34 having the largest difference from the average value 6 of intra-prediction mode values 5 and 7 in the mode list intra-prediction mode to intra-prediction mode value 4, thereby configuring an intra-prediction mode list reflecting the prediction mode trend of the peripheral region of the current block. Fig. 64 illustrates an example of a substitution order changing method in which the criteria for changing the substitution order may be determined not only by the average value of the intra-prediction modes of neighboring blocks, but also by the average value of neighboring blocks of non-adjacent current blocks, as shown in FIG. 64. In addition, the intra-neighbor block prediction mode can be used as a support for changing the replacement order. In addition, at least one of the statistical values, such as a weighted sum, a weighted average, a median, a minimum value, a maximum value, etc., in addition to the average value, can be used to determine criteria for changing the substitution order.
[00574] Фиг. 63(b) показывает блок-схему последовательности операций, в которой декодер конфигурирует список режимов интра-предсказания. Декодер может декодировать режим предсказания, сигнализированный из кодера, и добавлять его в качестве компонента списка режимов интра-предсказания. Когда список режимов интра-предсказания заполнен, режим интра-предсказания может быть добавлен в соответствии с правилом “первым пришел - первым обслужен” (FIFO), которое заменяет первый добавленный компонент новым значением, как в кодере.[00574] FIG. 63(b) shows a flowchart in which the decoder configures a list of intra-prediction modes. The decoder may decode the prediction mode signaled from the encoder and add it as a component of the intra-prediction mode list. When the list of intra-prediction modes is full, an intra-prediction mode can be added according to a first-in, first-out (FIFO) rule, which replaces the first component added with a new value, as in an encoder.
[00575] Когда список режимов интра-предсказания заполнен, порядок подстановки может быть частично изменен с учетом режима интра-предсказания соседнего блока.[00575] When the list of intra-prediction modes is full, the substitution order may be partially changed taking into account the intra-prediction mode of an adjacent block.
[00576] Фиг. 65 представляет собой диаграмму, иллюстрирующую способ применения списка режимов интра-предсказания к MPM в соответствии с вариантом осуществления настоящего изобретения.[00576] FIG. 65 is a diagram illustrating a method of applying an intra-prediction mode list to an MPM in accordance with an embodiment of the present invention.
[00577] Фиг. 65 показывает пример способа обращения к списку режимов интра-предсказания при конфигурировании списка MPM в кодере и декодере. Фиг. 65(a) показывает пример способа выведения всех или некоторых компонентов MPM из списка режимов интра-предсказания. При использовании схемы 3 MPM для конфигурирования списка MPM с использованием трех MPM, кодер или декодер может вывести режим интра-предсказания из верхнего и левого смежных блоков.[00577] FIG. 65 shows an example of a method for accessing the intra-prediction mode list when configuring the MPM list in an encoder and decoder. Fig. 65(a) shows an example of a method for deducing all or some MPM components from a list of intra-prediction modes. When using a 3 MPM scheme to configure an MPM list using three MPMs, the encoder or decoder can derive the intra-prediction mode from the top and left adjacent blocks.
[00578] Здесь, когда режимы интра-предсказания двух соседних блоков одинаковы, компонент списка MPM конфигурируется через режим интра-предсказания соседнего блока, и один или два компонента из оставшихся двух компонентов могут быть определены с использованием компонентов в списке режимов интра-предсказания. Кроме того, даже когда режимы интра-предсказания двух смежных блоков различны, другой режим интра-предсказания может быть определен с использованием компонентов списка режимов интра-предсказания. Аналогичным образом, даже при конфигурировании списка MPM, составляющего шесть MPM, частичные кандидаты списка MPM могут быть определены через список кандидатов режима интра-предсказания.[00578] Here, when the intra-prediction modes of two adjacent blocks are the same, the MPM list component is configured through the intra-prediction mode of the adjacent block, and one or two components of the remaining two components can be determined using the components in the intra-prediction mode list. In addition, even when the intra-prediction modes of two adjacent blocks are different, another intra-prediction mode can be determined using the components of the intra-prediction mode list. Likewise, even when an MPM list of six MPMs is configured, partial MPM list candidates can be determined through the intra-prediction mode candidate list.
[00579] Кроме того, как показано на фиг. 65(b), когда режим интра-предсказания не может быть выведен из соседнего блока текущего блока, список MPM может быть сконфигурирован с использованием компонентов списка режимов интра-предсказания. Хотя вышеприведенное описание описывает, что некоторые условия конфигурации MPM применимы к варианту осуществления настоящего изобретения, этот метод не означает, что настоящее изобретение ограничено только 3 MPM и 6 MPM. Чтобы сконфигурировать различные типы списков MPM, можно использовать список режимов интра-предсказания в соответствии с настоящим изобретением.[00579] Additionally, as shown in FIG. 65(b), when the intra-prediction mode cannot be derived from an adjacent block of the current block, the MPM list can be configured using the components of the intra-prediction mode list. Although the above description describes that some MPM configuration conditions are applicable to the embodiment of the present invention, this method does not mean that the present invention is limited to only 3 MPM and 6 MPM. To configure different types of MPM lists, an intra-prediction mode list can be used in accordance with the present invention.
[00580] Фиг. 66 представляет собой диаграмму, иллюстрирующую способ применения списка режимов интра-предсказания к режиму не-MPM в соответствии с вариантом осуществления настоящего изобретения.[00580] FIG. 66 is a diagram illustrating a method of applying a list of intra-prediction modes to a non-MPM mode in accordance with an embodiment of the present invention.
[00581] Фиг. 66 показывает пример способа обращения к списку интра-предсказания в кодере в случае не-MPM. Кодер может проверить, включен ли текущий режим интра-предсказания в список MPM. Когда текущий режим интра-предсказания включен в список MPM, кодер кодирует флаг MPM и индекс MPM и передает их декодеру, и процесс кодирования для режима интра-предсказания может быть завершен.[00581] FIG. 66 shows an example of a method for accessing an intra-prediction list in an encoder in the case of a non-MPM. The encoder can check whether the current intra-prediction mode is included in the MPM list. When the current intra-prediction mode is included in the MPM list, the encoder encodes the MPM flag and the MPM index and transmits them to the decoder, and the encoding process for the intra-prediction mode can be completed.
[00582] Когда кодер работает в режиме не-MPM, флаг MPM может быть закодирован в 0 и сигнализирован в декодер. Когда текущий режим интра-предсказания отсутствует в списке MPM, кодер может определить, существует ли текущий режим интра-предсказания в списке режимов интра-предсказания, и может сигнализировать идентификатор (или флаг, индекс и т.д.), указывающий, следует ли обращаться к списку режимов интра-предсказания.[00582] When the encoder is operating in non-MPM mode, the MPM flag may be encoded to 0 and signaled to the decoder. When the current intra-prediction mode is not in the MPM list, the encoder may determine whether the current intra-prediction mode exists in the list of intra-prediction modes, and may signal an identifier (or flag, index, etc.) indicating whether to access to the list of intra-prediction modes.
[00583] Когда текущий режим интра-предсказания находится в списке режимов интра-предсказания, кодер может кодировать идентификатор, указывающий, следует ли обращаться к списку режимов интра-предсказания, в первое значение (например, “1”), и кодировать индекс списка режима интра-предсказания, который соответствует текущему режиму интра-предсказания, чтобы сигнализировать это декодеру.[00583] When the current intra-prediction mode is in the intra-prediction mode list, the encoder may encode an identifier indicating whether to access the intra-prediction mode list to a first value (for example, “1”), and encode the index of the mode list intra-prediction that corresponds to the current intra-prediction mode to signal it to the decoder.
[00584] Когда текущий режим интра-предсказания не находится в списке режимов интра-предсказания, кодер может кодировать идентификатор, указывающий, следует ли обращаться к списку режимов интра-предсказания, во второе значение (например, “0”), чтобы сигнализировать это декодеру, и кодировать текущий режим интра-предсказания, чтобы сигнализировать его декодеру.[00584] When the current intra-prediction mode is not in the intra-prediction mode list, the encoder may encode an identifier indicating whether to access the intra-prediction mode list into a second value (eg, “0”) to signal it to the decoder , and encode the current intra-prediction mode to signal it to the decoder.
[00585] На фиг. 66, поскольку определяется, следует ли выбирать список режимов интра-предсказания для режима, не выбранного в MPM, при работе в режиме не-MPM, ситуация, в которой режим интра-предсказания, присутствующий в списке MPM, является режимом предсказания текущего блока, не возникает. Поэтому, в случае режима не-MPM в соответствии с настоящим изобретением, список режимов интра-предсказания может быть сконфигурирован с использованием режима, исключающего компоненты MPM.[00585] In FIG. 66, since it is determined whether to select the intra-prediction mode list for a mode not selected in the MPM when operating in the non-MPM mode, the situation in which the intra-prediction mode present in the MPM list is the prediction mode of the current block is not arises. Therefore, in the case of a non-MPM mode according to the present invention, the list of intra-prediction modes can be configured using a mode excluding MPM components.
[00586] В режиме кодирования не-MPM, кодирование режима может выполняться для остальных режимов, за исключением кандидата MPM. Например, в случае, когда 67 режимов используются в режиме интра-предсказания и используется 3 MPM, когда кодер или декодер работает в режиме не-MPM, кодирование может выполняться для 64 режимов, за исключением трех режимов, составляющих MPM, из 67 режимов интра-предсказания. В соответствии с настоящим изобретением, когда кодер или декодер имеет N режимов предсказания, используя n1 (n1 - натуральное число) кандидатов MPM и используя режим предсказания, выведенный из n2 (n2 - натуральное число) списков режимов интра-предсказания, кодер может выполнять кодирование CABAC в N-n1-n2 режимах.[00586] In a non-MPM encoding mode, mode encoding may be performed for the remaining modes except the MPM candidate. For example, in the case where 67 modes are used in the intra-prediction mode and 3 MPM is used, when the encoder or decoder operates in the non-MPM mode, encoding can be performed for the 64 modes excluding the three modes constituting the MPM from the 67 intra-prediction modes. predictions. According to the present invention, when an encoder or decoder has N prediction modes, using n1 (n1 is a natural number) MPM candidates and using a prediction mode derived from n2 (n2 is a natural number) intra-prediction mode lists, the encoder can perform CABAC encoding in N-n1-n2 modes.
[00587] В режиме не-MPM, кодер может использовать список режимов интра-предсказания даже в способе выбранного режима. Выбранный режим представляет собой способ, используемый в режиме не-MPM, и способ кодирования, который различает n (n - натуральное число) выбранных режимов и N-n невыбранных режимов, чтобы распределять меньше битов выбранному режиму, для N режимов (N - натуральное число), которые могут появляться в режиме не-MPM,[00587] In non-MPM mode, the encoder may use a list of intra-prediction modes even in the selected mode's mode. The selected mode is a method used in non-MPM mode, and an encoding method that distinguishes n (n is a natural number) selected modes and N-n unselected modes, in order to allocate fewer bits to the selected mode, for N modes (N is a natural number), which may appear in non-MPM mode,
[00588] При использовании списка режимов интра-предсказания, компонент списка режимов интра-предсказания может быть добавлен к способу выбранного режима. Здесь, поскольку частота выбора выбранного режима может быть увеличена без дополнительной передачи флага выбора списка режима интра-предсказания, эффективность кодирования может быть увеличена. Альтернативно, кодер или декодер может конфигурировать список режимов интра-предсказания в режимах, которые не являются кратными a, так что компонент списка режимов интра-предсказания не перекрывается с выбранным режимом, тем самым минимизируя появление оставшихся режимов.[00588] When using an intra-prediction mode list, an intra-prediction mode list component may be added to the method of the selected mode. Here, since the selection frequency of the selected mode can be increased without additionally transmitting the intra-prediction mode list selection flag, the encoding efficiency can be increased. Alternatively, the encoder or decoder may configure the intra-prediction mode list in modes that are not multiples of a such that the intra-prediction mode list component does not overlap with the selected mode, thereby minimizing the occurrence of remaining modes.
[00589] Фиг. 67 представляет собой диаграмму, иллюстрирующую способ применения списка режимов интра-предсказания к режиму не-MPM декодером в соответствии с вариантом осуществления настоящего изобретения.[00589] FIG. 67 is a diagram illustrating a method of applying an intra-prediction mode list to a non-MPM mode by a decoder according to an embodiment of the present invention.
[00590] Фиг. 67 показывает пример способа обращения к списку интра-предсказания декодером в случае режима не-MPM. Декодер может принимать и декодировать флаг MPM для идентификации, применять ли MPM, переданный из кодера. Когда флаг MPM равен 1, индекс MPM может декодироваться для восстановления режима интра-предсказания из списка MPM и для завершения процесса восстановления режима интра-предсказания.[00590] FIG. 67 shows an example of a method for accessing an intra-prediction list by a decoder in the case of a non-MPM mode. The decoder may receive and decode the MPM flag to identify whether to apply the MPM sent from the encoder. When the MPM flag is 1, the MPM index can be decoded to restore the intra-prediction mode from the MPM list and complete the intra-prediction mode restoration process.
[00591] В случае режима не-MPM, в котором флаг MPM равен 0, в соответствии с настоящим изобретением, декодер может декодировать флаг обращения к списку режимов интра-предсказания. Когда флаг обращения к списку режимов интра-предсказания равен 1, декодер может декодировать индекс списка режимов интра-предсказания, восстановить режим интра-предсказания через индекс списка режимов интра-предсказания и завершить процесс восстановления режима интра-предсказания.[00591] In the case of a non-MPM mode in which the MPM flag is 0, in accordance with the present invention, the decoder can decode the intra-prediction mode list access flag. When the intra-prediction mode list access flag is 1, the decoder can decode the intra-prediction mode list index, restore the intra-prediction mode through the intra-prediction mode list index, and complete the intra-prediction mode restoration process.
[00592] Когда флаг обращения к списку режимов интра-предсказания равен 0, текущий режим интра-предсказания может быть декодирован через CABAC. Здесь операции декодера могут заменяться друг на друга в случаях, когда флаг MPM равен 1 и 0. Кроме того, операции декодера могут заменяться друг на друга в случаях, когда флаг обращения к списку режимов интра-предсказания равен 1 и 0.[00592] When the intra-prediction mode list access flag is 0, the current intra-prediction mode can be decoded via CABAC. Here, the decoder operations can be replaced with each other in cases where the MPM flag is equal to 1 and 0. In addition, the decoder operations can be replaced with each other in cases where the intra-prediction mode list access flag is equal to 1 and 0.
[00593] На фиг. 67, поскольку список режимов интра-предсказания выбран для режима, не выбранного в MPM, при задействовании режима не-MPM, отсутствует случай, когда режим интра-предсказания, присутствующий в списке MPM, тот же самый, что и режим предсказания текущего блока. Поэтому, в случае режима не-MPM в соответствии с настоящим изобретением, список режимов интра-предсказания может конфигурироваться с использованием режима, за исключением компонентов MPM.[00593] In FIG. 67, since the intra-prediction mode list is selected for a mode not selected in the MPM, when the non-MPM mode is enabled, there is no case where the intra-prediction mode present in the MPM list is the same as the prediction mode of the current block. Therefore, in the case of a non-MPM mode according to the present invention, a list of intra-prediction modes can be configured using a mode excluding MPM components.
[00594] Декодирование режима для не-MPM должно выполняться таким же образом, как в случае кодера. Поэтому, способ конфигурирования списка режимов интра-предсказания и выбранного режима декодера, который связан с выбранным режимом и невыбранным режимом, может выполняться тем же способом, что и в вышеописанном кодере. К списку режимов интра-предсказания также можно обращаться и использовать его в режимах интра-предсказания иных, чем MPM, выбранный режим и невыбранный режим.[00594] Mode decoding for non-MPMs must be performed in the same manner as for an encoder. Therefore, the method of configuring the intra-prediction mode list and the selected decoder mode that is associated with the selected mode and the non-selected mode can be performed in the same manner as in the above-described encoder. The list of intra-prediction modes can also be accessed and used in intra-prediction modes other than MPM, selected mode, and unselected mode.
[00595] Фиг. 68 представляет собой диаграмму, иллюстрирующую способ кодирования/декодирования изображения с использованием списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[00595] FIG. 68 is a diagram illustrating an image encoding/decoding method using an intra-prediction mode list according to an embodiment of the present invention.
[00596] Чтобы сконфигурировать список режимов интра-предсказания, кодер или декодер может вычислить затраты для каждого режима предсказания. Фиг. 68(a) иллюстрирует блок-схему последовательности операций способа конфигурирования списка режимов интра-предсказания кодером, и фиг. 68(b) иллюстрирует блок-схему последовательности операций способа конфигурирования списка режимов интра-предсказания декодером. Как показано на фиг. 68(a), когда режим интра-предсказания определен, кодер может обновить затраты для соответствующего режима интра-предсказания. Здесь, затраты могут быть значением, выведенным с использованием частоты появления или остаточного сигнала каждого режима интра-предсказания. Затраты могут быть сконфигурированы в форме списка или т.п. и может использоваться в качестве информации для конфигурирования списка режимов интра-предсказания.[00596] To configure a list of intra-prediction modes, the encoder or decoder may calculate costs for each prediction mode. Fig. 68(a) illustrates a flowchart of a method for configuring an intra-prediction mode list by an encoder, and FIG. 68(b) illustrates a flowchart of a method for configuring an intra-prediction mode list by a decoder. As shown in FIG. 68(a), when an intra-prediction mode is determined, the encoder may update the costs for the corresponding intra-prediction mode. Here, the cost may be a value derived using the occurrence frequency or residual signal of each intra-prediction mode. Costs can be configured in the form of a list or the like. and can be used as information for configuring a list of intra-prediction modes.
[00597] В соответствии с настоящим изобретением, когда список режимов интра-предсказания сконфигурирован на основе затрат каждого режима предсказания, и тот же режим интра-предсказания, что и режим предсказания текущего блока, находится в списке режимов интра-предсказания, кодер может не сигнализировать непосредственно режим интра-предсказания, а сигнализировать индекс списка режимов интра-предсказания. Декодер конфигурирует список режимов интра-предсказания таким же образом, как и кодер, на основе информации, сигнализированной от кодера, и использует список режимов интра-предсказания в качестве опорной информации для восстановления режима предсказания, как показано на фиг. 68(b). Список режимов интра-предсказания может использоваться в качестве опорной информации в различных способах предсказания, связанных с сигнализацией режима интра-предсказания.[00597] According to the present invention, when the intra-prediction mode list is configured based on the cost of each prediction mode, and the same intra-prediction mode as the current block's prediction mode is in the intra-prediction mode list, the encoder may not signal directly the intra-prediction mode, and signal the index of the list of intra-prediction modes. The decoder configures the intra-prediction mode list in the same manner as the encoder based on the information signaled from the encoder, and uses the intra-prediction mode list as reference information for reconstructing the prediction mode, as shown in FIG. 68(b). The list of intra-prediction modes can be used as reference information in various prediction methods associated with intra-prediction mode signaling.
[00598] Фиг. 69 представляет собой вид, иллюстрирующий способ конфигурирования списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[00598] FIG. 69 is a view illustrating a method for configuring an intra-prediction mode list according to an embodiment of the present invention.
[00599] В способе конфигурирования списка режимов интра-предсказания на основе затрат каждого режима интра-предсказания, пример способа вычисления затрат проиллюстрирован на фиг. 69. Затраты могут быть вычислены с использованием по меньшей мере одного из счета, соответствующего частоте появления, или остаточного сигнала после предсказания. Фиг. 69(a) иллюстрирует способ конфигурирования списка режимов интра-предсказания на основе счета, который является частотой появления каждого режима предсказания, и фиг. 69(b) иллюстрирует способ вычисления как счета, так и остаточного сигнала и конфигурирования списка режимов интра-предсказания на основе среднего остаточных сигналов для каждого режима предсказания.[00599] In the method for configuring a list of intra-prediction modes based on the costs of each intra-prediction mode, an example of the cost calculation method is illustrated in FIG. 69. Costs may be calculated using at least one of a frequency-of-occurrence count or a residual signal after prediction. Fig. 69(a) illustrates a method for configuring a list of intra-prediction modes based on a count that is the occurrence frequency of each prediction mode, and FIG. 69(b) illustrates a method for calculating both a count and a residual signal and configuring a list of intra-prediction modes based on the average of the residual signals for each prediction mode.
[00600] Поскольку режим предсказания, который часто встречается при интра-предсказании, с большей вероятностью будет использоваться повторно, список режимов интра-предсказания может быть сконфигурирован путем предоставления приоритета режиму предсказания, имеющему высокий счет, согласно фиг. 69(а).[00600] Since a prediction mode that frequently occurs in intra-prediction is more likely to be reused, the list of intra-prediction modes can be configured by giving priority to a prediction mode having a high score, according to FIG. 69(a).
[00601] Между тем, поскольку во время выполнения интра-предсказания генерируется менее точный остаточный сигнал, выполняется более точное предсказание, список режимов интра-предсказания может быть сконфигурирован путем предоставления приоритета режиму предсказания, имеющему низкое среднее значение остаточных сигналов, согласно фиг. 69(b).[00601] Meanwhile, since a less accurate residual signal is generated during intra-prediction execution, more accurate prediction is performed, the list of intra-prediction modes can be configured by giving priority to a prediction mode having a low average value of the residual signals, according to FIG. 69(b).
[00602] Затраты, используемые в способе конфигурирования списка режимов интра-предсказания, может быть вычислена согласно всем критериям, которые могут конфигурировать список режимов интра-предсказания, таких как способ проверки частоты появления каждого режима предсказания для соседних областей текущего блока.[00602] The cost used in the method for configuring the list of intra-prediction modes can be calculated according to all the criteria that can configure the list of intra-prediction modes, such as the method of checking the frequency of occurrence of each prediction mode for neighboring regions of the current block.
[00603] Фиг. 70 и 71 представляют собой диаграммы, иллюстрирующие способ кодирования/декодирования в соответствии с некоторыми вариантами осуществления настоящего изобретения.[00603] FIG. 70 and 71 are diagrams illustrating an encoding/decoding method in accordance with some embodiments of the present invention.
[00604] Список режимов интра-предсказания может не конфигурироваться отдельно, как в приведенном выше примере, но также может конфигурироваться способом прямого обращения к затратам, вычисленным для каждого режима предсказания. В этом случае, блок-схема последовательности операций такова, как показано на фиг. 70. В соответствии с другим вариантом осуществления настоящего изобретения, как показано на фиг. 71, список режимов интра-предсказания может конфигурироваться без измерения затрат. В этом случае, список режимов интра-предсказания может адаптивно конфигурироваться с использованием режима интра-предсказания соседнего блока, смежного с текущим блоком.[00604] The list of intra-prediction modes may not be configured separately, as in the example above, but may also be configured in a manner that directly refers to the costs calculated for each prediction mode. In this case, the flowchart is as shown in FIG. 70. According to another embodiment of the present invention, as shown in FIG. 71, a list of intra-prediction modes can be configured without cost measurement. In this case, the list of intra-prediction modes may be adaptively configured using the intra-prediction mode of a neighboring block adjacent to the current block.
[00605] Фиг. 72 представляет собой диаграмму, иллюстрирующую способ инициализации списка интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[00605] FIG. 72 is a diagram illustrating a method for initializing an intra-prediction list in accordance with an embodiment of the present invention.
[00606] Список режимов интра-предсказания не может формироваться, пока не будет выполнено внутри-картинное предсказание. Соответственно, кодер или декодер может присвоить начальное значение списку режимов интра-предсказания. Фиг. 72 показывает пример инициализированного списка режимов интра-предсказания. Кодер или декодер может предпочтительно назначать низкий индекс режиму, который используется в большинстве случаев статистически для списка режимов интра-предсказания.[00606] The list of intra-prediction modes cannot be generated until the intra-picture prediction has been performed. Accordingly, the encoder or decoder may assign an initial value to the list of intra-prediction modes. Fig. 72 shows an example of an initialized intra-prediction mode list. An encoder or decoder may preferentially assign a low index to a mode that is used in most cases statistically for a list of intra-prediction modes.
[00607] На фиг. 72, PLANAR_IDX означает номер планарного режима для интра-предсказания, DC_IDX означает номер режима DC для DC-предсказания, и VER_IDX является номером режима для направленного интра-предсказания в вертикальном направлении, а HOR_IDX означает номер режима для направленного интра-предсказания в горизонтальном направлении. Статистически, когда PLANAR_IDX, DC_IDX, VER_IDX и HOR_IDX встречаются часто, в примере на фиг. 72, кодер или декодер может назначать индексы от 0 до 3 для PLANAR_IDX, DC_IDX, VER_IDX и HOR_IDX. Затем кодер или декодер может последовательно добавлять режимы, путем суммирования и вычитания значений смещения к/от направленным(ых) режимам(ов) VER_IDX и HOR_IDX, в список режимов интра-предсказания. В примере на фиг. 72, смещение 1 и смещение 2 соответствуют значениям смещения, и, по мере увеличения индекса в списке, значение смещения может увеличиваться.[00607] In FIG. 72, PLANAR_IDX means a planar mode number for intra-prediction, DC_IDX means a DC mode number for DC-prediction, and VER_IDX is a mode number for directional intra-prediction in the vertical direction, and HOR_IDX means a mode number for directional intra-prediction in the horizontal direction. Statistically, when PLANAR_IDX, DC_IDX, VER_IDX and HOR_IDX occur frequently, in the example of FIG. 72, an encoder or decoder may assign indices from 0 to 3 to PLANAR_IDX, DC_IDX, VER_IDX, and HOR_IDX. The encoder or decoder may then sequentially add modes, by adding and subtracting the offset values to/from the directional mode(s) VER_IDX and HOR_IDX, to the list of intra-prediction modes. In the example in FIG. 72, offset 1 and offset 2 correspond to offset values, and as the index in the list increases, the offset value can increase.
[00608] То есть на фиг. 72, смещение 2 > смещение 1. Таким образом, кодер или декодер может инициализировать список режимов интра-предсказания, используя режим интра-предсказания, статистически имеющий высокую частоту появления. Режим направленного предсказания, имеющий малое отличие от режима интра-предсказания, имеющего высокую частоту появления, может быть установлен как начальное значение, при этом возможность обращения к списку режимов интра-предсказания может быть увеличена.[00608] That is, in FIG. 72, offset 2 > offset 1. Thus, an encoder or decoder may initialize a list of intra-prediction modes using an intra-prediction mode that statistically has a high frequency of occurrence. A directional prediction mode having little difference from an intra-prediction mode having a high occurrence frequency can be set as an initial value, and the ability to access the list of intra-prediction modes can be increased.
[00609] Кроме того, в качестве примера, смещение 2 может быть определено путем добавления или вычитания заранее определенного значения к/от значению(я) смещения 1. В примере на фиг. 72, VER_IDX и HOR_IDX установлены как направленные режимы добавления или вычитания смещения. Однако это является значением, определенным произвольно для удобства описания, и это значение может варьироваться в зависимости от ситуации кодирования/декодирования. Кроме того, в качестве способа определения направленного режима, установленного в качестве значения инициализации, может применяться способ использования первого номера режима направленного интра-предсказания, определенного как режим предсказания.[00609] Additionally, as an example, offset 2 may be determined by adding or subtracting a predetermined value to/from offset value(s) 1. In the example of FIG. 72, VER_IDX and HOR_IDX are set as directional modes for adding or subtracting offset. However, this is a value arbitrarily defined for convenience of description, and this value may vary depending on the encoding/decoding situation. In addition, as a method for determining the directional mode set as the initialization value, a method of using the first directional intra prediction mode number specified as the prediction mode can be used.
[00610] Таблица 1 ниже представляет собой таблицу, показывающую биты представления, которые могут указывать режим интра-предсказания при интра-предсказании.[00610] Table 1 below is a table showing representation bits that may indicate an intra-prediction mode in intra-prediction.
[00611] [Таблица 1][00611] [Table 1]
[00612][00612]
(35 режимов)Embodiment 1
(35 modes)
(67 режимов)Embodiment 2
(67 modes)
[00613] В соответствии с таблицей 1, 1 бит может быть выделен для флага MPM, и 2 бита могут быть выделены для представления трех режимов MPM. В качестве битов представления для режима не-MPM, пять битов могут использоваться при распределении 32 режимов, и шесть битов могут использоваться при распределении 64 режимов.[00613] According to Table 1, 1 bit may be allocated for the MPM flag, and 2 bits may be allocated to represent the three MPM modes. As representation bits for a non-MPM mode, five bits can be used in a 32-mode allocation, and six bits can be used in a 64-mode allocation.
[00614] Таблица 2 ниже представляет собой таблицу, показывающую пример бита представления режима интра-предсказания в соответствии с настоящим изобретением.[00614] Table 2 below is a table showing an example of an intra-prediction mode representation bit in accordance with the present invention.
[00615] [Таблица 2][00615] [Table 2]
[00616] [00616]
(35 режимов)Embodiment 1
(35 modes)
(67 режимов)Embodiment 2
(67 modes)
[00617] В варианте осуществления 1, использующем 35 режимов, длина списка режимов интра-предсказания может быть установлена равной четырем, и в варианте осуществления 2, использующем 67 режимов, длина списка режимов интра-предсказания может быть установлена равной восьми.[00617] In Embodiment 1 using 35 modes, the length of the intra-prediction mode list can be set to four, and in Embodiment 2 using 67 modes, the length of the intra-prediction mode list can be set to eight.
[00618] Для удобства описания ниже, список режимов интра-предсказания определяется как список интра-режимов, флаг, указывающий, выбран ли список режимов интра-предсказания, - как флаг списка интра-режимов, и режим списка режимов интра-предсказания - как режимы списка интра-режимов.[00618] For convenience of description below, the intra-prediction mode list is defined as the intra-mode list, the flag indicating whether the intra-prediction mode list is selected as the intra-mode list flag, and the intra-prediction mode list mode as the modes list of intra-modes.
[00619] В Варианте осуществления 1, 1 бит может быть выделен флагу списка интра-режимов, и 2 бита могут быть выделены для представления четырех режимов, включенных в список режимов интра-предсказания. Пять битов могут быть выделены как биты для представления оставшихся режимов интра-предсказания, не включенных в список режимов интра-предсказания. В примере 1 таблицы 1, 5 битов постоянно выделены для режима, в котором не выбран MPM. Однако когда используется список режимов интра-предсказания, режим интра-предсказания может быть закодирован с использованием 3 битов, включая флаг, тем самым повышая эффективность кодирования.[00619] In Embodiment 1, 1 bit may be allocated to the intra-mode list flag, and 2 bits may be allocated to represent the four modes included in the intra-prediction mode list. Five bits may be allocated as bits to represent the remaining intra-prediction modes not included in the list of intra-prediction modes. In Example 1 of Table 1, 5 bits are permanently allocated for the mode in which MPM is not selected. However, when the intra-prediction mode list is used, the intra-prediction mode can be encoded using 3 bits including the flag, thereby improving encoding efficiency.
[00620] Аналогично, в варианте осуществления 2, 1 бит может быть выделен для флага списка интра-режимов, и 3 бита могут быть выделены для представления 8 режимов, включенных в список режимов интра-предсказания. Шесть битов могут быть выделены как биты для представления оставшихся режимов интра-предсказания, не включенных в список режимов интра-предсказания. В примере 2 таблицы 1, 6 битов постоянно выделены для режима, в котором не выбран MPM. Однако когда используется список режимов интра-предсказания, режиму интра-предсказания может быть выделено 4 бита, включая флаг, тем самым повышая эффективность кодирования.[00620] Similarly, in Embodiment 2, 1 bit may be allocated for the intra-mode list flag, and 3 bits may be allocated to represent the 8 modes included in the intra-prediction mode list. Six bits may be allocated as bits to represent the remaining intra-prediction modes not included in the list of intra-prediction modes. In Example 2 of Table 1, 6 bits are permanently allocated for the mode in which MPM is not selected. However, when the intra-prediction mode list is used, 4 bits including the flag can be allocated to the intra-prediction mode, thereby improving coding efficiency.
[00621] В таблице 3 показан пример битов представления режима интра-предсказания, в котором количество режимов предсказания MPM сокращено, и размер списка режимов предсказания с внутренним кодированием увеличен по сравнению с таблицей 2. Например, размер списка MPM и размер списка режимов интра-предсказания в кодере и декодере, к которому добавлен список режимов интра-предсказания, может быть установлен по-разному.[00621] Table 3 shows an example of intra-prediction mode representation bits in which the number of MPM prediction modes is reduced and the size of the intra-prediction mode list is increased compared with Table 2. For example, the size of the MPM list and the size of the intra-prediction mode list in an encoder and decoder, to which a list of intra-prediction modes is added, can be set differently.
[00622] [Таблица 3][00622] [Table 3]
[00623][00623]
(35 режимов)Embodiment 1
(35 modes)
(67 режимов)Embodiment 2
(67 modes)
[00624] Таблица 4 ниже является таблицей, показывающей биты представления режима интра-предсказания, которые могут использоваться при использовании множества списков режимов интра-предсказания.[00624] Table 4 below is a table showing intra-prediction mode representation bits that can be used when using a plurality of intra-prediction mode lists.
[00625] [Таблица 4][00625] [Table 4]
[00626][00626]
(35 режимов)Embodiment 1
(35 modes)
(67 режимов)Embodiment 2
(67 modes)
[00627] В первом варианте осуществления, список режимов интра-предсказания может иметь всего четыре списка для каждого направления, каждая длина равна четырем, и множество списков режимов интра-предсказания может кодировать всего 16 режимов. В этом случае, кодер или декодер может выбрать один список из множества списков режимов интра-предсказания на основе направления MPM или соседнего блока и установить флаг списка внутреннего режима в 1.[00627] In the first embodiment, the intra-prediction mode list may have a total of four lists for each direction, each length is four, and the plurality of intra-prediction mode lists may encode a total of 16 modes. In this case, the encoder or decoder may select one list from a plurality of intra-prediction mode lists based on the direction of the MPM or adjacent block and set the intra-mode list flag to 1.
[00628] Аналогично, в варианте осуществления 2, список режимов интра-предсказания может иметь всего четыре списка для каждого направления, каждая длина равна восьми, а список режимов интра-предсказания может указывать всего 32 режима. Аналогично, кодер или декодер может выбрать один список из множества списков интра-предсказания на основе направления MPM или соседнего блока и установить флаг списка интра-режимов как 1.[00628] Similarly, in Embodiment 2, the intra-prediction mode list may have a total of four lists for each direction, each length being eight, and the intra-prediction mode list may indicate a total of 32 modes. Likewise, the encoder or decoder may select one list from a plurality of intra-prediction lists based on the MPM direction or adjacent block and set the intra-mode list flag to 1.
[00629] Таблица 5 показывает метод кодирования режима интра-предсказания, включая выбранный режим и невыбранный режим.[00629] Table 5 shows the encoding method of the intra-prediction mode, including the selected mode and the non-selected mode.
[00630][Таблица 5][00630][Table 5]
[00631][00631]
[00632] Таблица 5 показывает метод кодирования режима интра-предсказания, включая выбранный режим и невыбранный режим. В способе кодирования, показанном в таблице 5, выбранные режимы могут быть реализованы с использованием списка режимов интра-предсказания для повышения избирательности. Кроме того, бит представления может быть сокращен применением способа, использующего список режимов интра-предсказания, к невыбранным режимам или применением только невыбранных режимов к режиму интра-предсказания, не включенному в список режимов интра-предсказания.[00632] Table 5 shows the encoding method of the intra-prediction mode, including the selected mode and the non-selected mode. In the encoding method shown in Table 5, selected modes can be implemented using a list of intra-prediction modes to improve selectivity. In addition, the representation bit may be shortened by applying a method using the list of intra-prediction modes to unselected modes, or applying only the unselected modes to an intra-prediction mode not included in the list of intra-prediction modes.
[00633] Фиг. 73 представляет собой диаграмму, иллюстрирующую синтаксис списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.[00633] FIG. 73 is a diagram illustrating the syntax of an intra-prediction mode list according to an embodiment of the present invention.
[00634] Фиг. 73 показывает пример конфигурации синтаксиса, включая информацию списка режимов интра-предсказания. Декодер в соответствии с настоящим изобретением может сигнализировать Intra_mode_list_flag, выбран ли список режимов интра-предсказания для режимов, не включенных в MPM. Когда Intra_mode_list_flag равен 1, декодер может восстановить режим интра-предсказания путем сигнализации Intra_mode_list_index, который является индексом в списке режимов интра-предсказания.[00634] FIG. 73 shows an example of a syntax configuration including intra-prediction mode list information. A decoder in accordance with the present invention may signal Intra_mode_list_flag whether the intra-prediction mode list is selected for modes not included in the MPM. When Intra_mode_list_flag is equal to 1, the decoder can recover the intra-prediction mode by signaling Intra_mode_list_index, which is the index in the intra-prediction mode list.
[00635][00635]
[00636] Вышеупомянутые варианты осуществления могут выполняться одним и тем же способом в кодере и декодере.[00636] The above embodiments may be performed in the same manner in an encoder and a decoder.
[00637] По меньшей мере один или комбинация вышеупомянутых вариантов осуществления могут использоваться для кодирования/декодирования видео.[00637] At least one or a combination of the above embodiments may be used for video encoding/decoding.
[00638] Последовательность применения к вышеуказанному варианту осуществления может быть разной для кодера и декодера, или последовательность, применяемая к вышеуказанному варианту осуществления, может быть одинаковой в кодере и декодере.[00638] The sequence applied to the above embodiment may be different for the encoder and decoder, or the sequence applied to the above embodiment may be the same in the encoder and decoder.
[00639] Вышеупомянутый вариант осуществления может выполняться для каждого сигнала яркости и сигнала цветности, или указанный выше вариант осуществления может идентично выполняться для сигналов яркости и цветности.[00639] The above embodiment may be performed for each luma signal and chrominance signal, or the above embodiment may be identically performed for luma and chrominance signals.
[00640] Форма блока, к которой применяются вышеупомянутые варианты осуществления настоящего изобретения, может быть квадратной или неквадратной формой.[00640] The block shape to which the above embodiments of the present invention are applied may be a square shape or a non-square shape.
[00641] Вышеупомянутый вариант осуществления настоящего изобретения может применяться в зависимости от размера по меньшей мере одного из блока кодирования, блока предсказания, блока преобразования, блока, текущего блока, единицы кодирования, единицы предсказания, единицы преобразования, единицы и текущей единицы. Здесь размер может быть определен как минимальный размер или максимальный размер, или и то, и другое, чтобы применять вышеупомянутые варианты осуществления, или может быть определен как фиксированный размер, к которому применяется вышеупомянутый вариант осуществления. Кроме того, в вышеупомянутых вариантах осуществления, первый вариант осуществления может применяться к первому размеру, и второй вариант осуществления может применяться ко второму размеру. Другими словами, вышеуказанные варианты осуществления могут применяться в комбинации в зависимости от размера. Кроме того, вышеупомянутые варианты осуществления могут применяться, когда размер равен или больше минимального размера и равен или меньше максимального размера. Другими словами, вышеупомянутые варианты осуществления могут применяться, когда размер блока входит в определенный диапазон.[00641] The above embodiment of the present invention can be applied depending on the size of at least one of a coding block, a prediction block, a transform block, a block, a current block, a coding unit, a prediction unit, a transform unit, a unit, and a current unit. Here, the size may be defined as a minimum size or a maximum size or both to apply the above embodiments, or may be defined as a fixed size to which the above embodiment is applied. Moreover, in the above embodiments, the first embodiment may be applied to the first size, and the second embodiment may be applied to the second size. In other words, the above embodiments can be used in combination depending on the size. Moreover, the above embodiments may be applied when the size is equal to or greater than the minimum size and equal to or less than the maximum size. In other words, the above embodiments can be applied when the block size falls within a certain range.
[00642] Например, описанные выше варианты осуществления могут применяться, когда размер текущего блока составляет 8×8 или больше. Например, вышеупомянутые варианты осуществления могут применяться, когда размер текущего блока составляет 4×4 или больше. Например, описанные выше варианты осуществления могут применяться, когда размер текущего блока составляет 16×16 или больше. Например, вышеупомянутые варианты осуществления могут применяться, когда размер текущего блока равен или больше 16×16 и равен или меньше 64×64.[00642] For example, the embodiments described above may be applied when the current block size is 8×8 or larger. For example, the above embodiments may be applied when the current block size is 4×4 or larger. For example, the above-described embodiments may be applied when the current block size is 16×16 or larger. For example, the above embodiments may be applied when the current block size is equal to or greater than 16×16 and equal to or less than 64×64.
[00643] Вышеупомянутые варианты осуществления настоящего изобретения могут применяться в зависимости от временного уровня. Чтобы идентифицировать временной уровень, к которому могут применяться вышеупомянутые варианты осуществления, может сигнализироваться соответствующий идентификатор, и вышеупомянутые варианты осуществления могут применяться к указанному временному уровню, идентифицированному соответствующим идентификатором. Здесь, идентификатор может быть определен как самый низкий уровень или самый высокий уровень, или оба, к которым может применяться вышеупомянутый вариант осуществления, или может быть определен для указания конкретного уровня, к которому применяется этот вариант осуществления. Кроме того, может быть определен фиксированный временной уровень, к которому применяется вариант осуществления.[00643] The above-mentioned embodiments of the present invention can be applied depending on the time level. To identify the time layer to which the above embodiments may be applied, a corresponding identifier may be signaled, and the above embodiments may be applied to the specified time layer identified by the corresponding identifier. Here, the identifier may be defined as the lowest level or the highest level, or both, to which the above embodiment may apply, or may be defined to indicate a specific level to which this embodiment applies. In addition, a fixed time level to which the embodiment applies can be defined.
[00644] Например, описанные выше варианты осуществления могут применяться, когда временной уровень текущего изображения является самым низким уровнем. Например, вышеупомянутые варианты осуществления могут применяться, когда идентификатор временного уровня текущего изображения равен 1. Например, вышеупомянутые варианты осуществления могут применяться, когда временной уровень текущего изображения является наивысшим уровнем.[00644] For example, the embodiments described above may be applied when the time level of the current image is the lowest level. For example, the above embodiments may be applied when the temporal layer ID of the current image is 1. For example, the above embodiments may be applied when the temporal layer of the current image is the highest level.
[00645] Тип слайса или тип группы мозаичных элементов, к которым применяются вышеприведенные варианты осуществления настоящего изобретения, может быть определен, и вышеупомянутые варианты осуществления могут применяться в зависимости от соответствующего типа слайса или типа группы мозаичных элементов.[00645] The slice type or tile group type to which the above embodiments of the present invention are applied can be determined, and the above embodiments can be applied depending on the corresponding slice type or tile group type.
[00646] В вышеописанных вариантах осуществления, способы описаны на основе блок-схем последовательности операций с последовательностью этапов или модулей, но настоящее изобретение не ограничивается порядком этапов, и, скорее, некоторые этапы могут выполняться одновременно или в другом порядке с другими этапами. Кроме того, специалисту в данной области техники должно быть понятно, что этапы в блок-схемах последовательностей операций не исключают друг друга и что другие этапы могут быть добавлены к блок-схемам последовательностей операций, или некоторые из этапов могут быть удалены из блок-схем последовательностей операций, не влияя на объем настоящего изобретения.[00646] In the above-described embodiments, the methods are described on the basis of flowcharts with a sequence of steps or modules, but the present invention is not limited to the order of the steps, and rather, some steps may be performed simultaneously or in a different order with other steps. In addition, one skilled in the art will appreciate that the steps in the flowcharts are not mutually exclusive and that other steps may be added to the flowcharts or some of the steps may be deleted from the flowcharts operations without affecting the scope of the present invention.
[00647] Варианты осуществления включают различные аспекты примеров. Все возможные комбинации для различных аспектов могут быть не описаны, но специалисты в данной области техники смогут распознать различные комбинации. Соответственно, настоящее изобретение может включать все замены, модификации и изменения в пределах объема формулы изобретения.[00647] Embodiments include various aspects of the examples. All possible combinations for the various aspects may not be described, but those skilled in the art will recognize the various combinations. Accordingly, the present invention may include all substitutions, modifications and changes within the scope of the claims.
[00648] Варианты осуществления настоящего изобретения могут быть реализованы в форме программных инструкций, которые исполняются различными компьютерными компонентами и записываются на считываемый компьютером носитель записи. Считываемый компьютером носитель записи может включать в себя отдельно или в комбинации программные инструкции, файлы данных, структуры данных и т.д. Программные инструкции, записанные на считываемом компьютером носителе записи, могут быть специально разработаны и сконструированы для настоящего изобретения или хорошо известны специалисту в области компьютерных программных технологий. Примеры считываемого компьютером носителя записи включают в себя магнитные носители записи, такие как жесткие диски, гибкие диски и магнитные ленты; оптические носители данных, такие как CD-ROM или DVD-ROM; магнитооптические носители, такие как флоптические диски; и аппаратные устройства, такие как постоянная память (ROM), память с произвольным доступом (RAM), флэш-память и т.д., которые конкретно структурированы для хранения и реализации программной инструкции. Примеры программных инструкций включают в себя не только механический код языка, форматируемый компилятором, но высокоуровневый код языка, который может быть реализован компьютером с использованием интерпретатора. Аппаратные устройства могут быть сконфигурированы для работы с одним или несколькими программными модулями или, наоборот, для выполнения процессов в соответствии с настоящим изобретением.[00648] Embodiments of the present invention may be implemented in the form of program instructions that are executed by various computer components and recorded on a computer-readable recording medium. The computer-readable recording medium may include, individually or in combination, program instructions, data files, data structures, etc. Program instructions recorded on a computer-readable recording medium may be specifically designed and constructed for the present invention or well known to one skilled in the art of computer software technology. Examples of computer-readable recording media include magnetic recording media such as hard disks, floppy disks and magnetic tapes; optical storage media such as CD-ROM or DVD-ROM; magneto-optical media such as floptic disks; and hardware devices such as read-only memory (ROM), random access memory (RAM), flash memory, etc., which are specifically structured to store and implement a software instruction. Examples of program instructions include not only mechanical language code formatted by a compiler, but high-level language code that can be implemented by a computer using an interpreter. Hardware devices may be configured to operate one or more software modules or, alternatively, to perform processes in accordance with the present invention.
[00649] Хотя настоящее изобретение было описано в терминах специфических объектов, таких как детальные элементы, а также ограниченные варианты осуществления и чертежи, они предоставлены только для облегчения более общего понимания изобретения, и настоящее изобретение не ограничивается приведенными выше вариантами осуществления. Специалистам в области техники, к которой относится настоящее изобретение, будет понятно, что на основе приведенного выше описания могут быть сделаны различные модификации и изменения.[00649] Although the present invention has been described in terms of specific objects, such as detailed elements, as well as limited embodiments and drawings, they are provided only to facilitate a more general understanding of the invention, and the present invention is not limited to the above embodiments. Those skilled in the art to which the present invention relates will appreciate that various modifications and changes may be made based on the above description.
[00650] Поэтому сущность настоящего изобретения не должна ограничиваться описанными выше вариантами осуществления, и весь объем прилагаемой формулы изобретения и ее эквивалентов будет находиться в пределах объема и сущности изобретения.[00650] Therefore, the spirit of the present invention should not be limited to the embodiments described above, and the entire scope of the appended claims and their equivalents will be within the scope and spirit of the invention.
Промышленная применимостьIndustrial applicability
[00651] Настоящее изобретение может быть использовано для кодирования или декодирования изображения.[00651] The present invention can be used to encode or decode an image.
1. Способ декодирования изображения, причем способ содержит:1. A method for decoding an image, the method comprising:
выведение первого списка кандидатов текущего блока с использованием информации движения соседнего блока текущего блока, чтобы вывести первый список кандидатов для текущего блока;outputting a first candidate list of the current block using the motion information of a neighboring block of the current block to output a first candidate list for the current block;
выведение второго списка кандидатов для текущего блока с использованием ранее восстановленной информации движения;deriving a second list of candidates for the current block using the previously recovered motion information;
выведение третьего списка кандидатов с использованием первого списка кандидатов и второго списка кандидатов; иoutputting a third list of candidates using the first list of candidates and the second list of candidates; And
генерирование блока предсказания для текущего блока с использованием третьего списка кандидатов. generating a prediction block for the current block using the third candidate list.
2. Способ по п. 1, причем соседний блок включает в себя по меньшей мере одно из пространственно соседнего блока и соседнего по времени блока.2. The method of claim 1, wherein the adjacent block includes at least one of a spatially adjacent block and a temporally adjacent block.
3. Способ по п. 1, причем выведение второго списка кандидатов включает в себя: 3. The method according to claim 1, wherein producing a second list of candidates includes:
добавление ранее восстановленной информации движения во второй список кандидатов,adding previously recovered motion information to the second list of candidates,
причем ранее восстановленная информация движения представляет собой информацию движения блока кодирования, декодированного непосредственно перед декодированием текущего блока.wherein the previously recovered motion information is motion information of a coding block decoded immediately before decoding the current block.
4. Способ по п. 3, дополнительно содержащий:4. The method according to claim 3, additionally containing:
инициализацию второго списка кандидатов,initializing the second list of candidates,
причем второй список кандидатов инициализируется на основе границы строки единицы дерева кодирования (CTU).wherein the second candidate list is initialized based on a coding tree unit (CTU) line boundary.
5. Способ по п. 3, дополнительно содержащий:5. The method according to claim 3, additionally containing:
когда число частей информации движения, включенной во второй список кандидатов, является предопределенным значением, удаление информации движения, включенной во второй список кандидатов первой среди частей информации движения, включенной во второй список кандидатов.when the number of pieces of motion information included in the second candidate list is a predetermined value, removing the motion information included in the second candidate list from the first among the pieces of motion information included in the second candidate list.
6. Способ по п. 5, причем ранее восстановленная информация движения добавляется в следующем порядке информации движения, включенной во второй список кандидатов последней.6. The method of claim 5, wherein the previously recovered motion information is added in the following order of motion information included in the second candidate list last.
7. Способ по п. 3, дополнительно содержащий:7. The method according to claim 3, additionally containing:
когда та же самая информация движения, что и ранее восстановленная информация движения, уже включена во второй список кандидатов, удаление той же самой информации движения из второго списка кандидатов.when the same motion information as the previously recovered motion information is already included in the second candidate list, removing the same motion information from the second candidate list.
8. Способ по п. 7, причем ранее восстановленная информация движения добавляется в следующем порядке информации движения, включенной во второй список кандидатов последней.8. The method of claim 7, wherein the previously recovered motion information is added in the following order of motion information included in the second candidate list last.
9. Способ по п. 3, причем максимальное число частей информации движения, которая может быть включена во второй список кандидатов, является предопределенным.9. The method according to claim 3, wherein the maximum number of pieces of motion information that can be included in the second candidate list is predetermined.
10. Способ по п. 1, дополнительно содержащий:10. The method according to claim 1, additionally containing:
выведение средней информации движения путем вычисления среднего значения множества частей информации движения, включенной в третий список кандидатов; иderiving average motion information by calculating an average value of a plurality of pieces of motion information included in the third candidate list; And
добавление средней информации движения в третий список кандидатов.adding average motion information to the third list of candidates.
11. Способ по п. 1, дополнительно содержащий:11. The method according to claim 1, additionally containing:
разделение текущего блока на первую область и вторую область,dividing the current block into the first area and the second area,
причем генерирование блока предсказания для текущего блока включает в себя генерирование блоков предсказания для первой области и второй области с использованием третьего списка кандидатов.wherein generating a prediction block for the current block includes generating prediction blocks for the first region and the second region using the third candidate list.
12. Способ по п. 1, причем третий список кандидатов используется для генерирования блока предсказания внутриблочного копирования (IBC) для текущего блока.12. The method of claim 1, wherein the third candidate list is used to generate an intra-block copy (IBC) prediction block for the current block.
13. Способ кодирования изображения, причем способ содержит:13. A method for encoding an image, the method comprising:
определение информации движения текущего блока;determining motion information of the current block;
выведение первого списка кандидатов для текущего блока с использованием информации движения соседнего блока текущего блока;outputting a first list of candidates for the current block using motion information of an adjacent block of the current block;
выведение второго списка кандидатов для текущего блока с использованием ранее кодированной информации движения; иoutputting a second list of candidates for the current block using the previously encoded motion information; And
выведение третьего списка кандидатов с использованием первого списка кандидатов и второго списка кандидатов.outputting a third list of candidates using the first list of candidates and the second list of candidates.
14. Способ по п. 13, причем выведение второго списка кандидатов включает в себя: 14. The method according to claim 13, wherein producing a second list of candidates includes:
добавление ранее кодированной информации движения во второй список кандидатов,adding previously encoded motion information to the second candidate list,
причем ранее кодированная информация движения представляет собой информацию движения блока кодирования, кодированного непосредственно перед кодированием текущего блока.wherein the previously encoded motion information is the motion information of an encoding block encoded immediately before encoding the current block.
15. Способ по п. 14, дополнительно содержащий:15. The method according to claim 14, additionally containing:
инициализацию второго списка кандидатов,initializing the second list of candidates,
причем второй список кандидатов инициализируется на основе границы строки единицы дерева кодирования (CTU).wherein the second candidate list is initialized based on a coding tree unit (CTU) line boundary.
16. Способ по п. 14, дополнительно содержащий:16. The method according to claim 14, additionally containing:
когда число частей информации движения, включенной во второй список кандидатов, является предопределенным значением, удаление информации движения, включенной во второй список кандидатов первой среди частей информации движения, включенной во второй список кандидатов.when the number of pieces of motion information included in the second candidate list is a predetermined value, removing the motion information included in the second candidate list from the first among the pieces of motion information included in the second candidate list.
17. Способ по п. 14, дополнительно содержащий:17. The method according to claim 14, additionally containing:
когда та же самая информация движения, что и ранее кодированная информация движения, уже включена во второй список кандидатов, удаление той же самой информации движения из второго списка кандидатов.when the same motion information as the previously encoded motion information is already included in the second candidate list, removing the same motion information from the second candidate list.
18. Способ по п. 14, причем число частей информации движения, которая может быть включена во второй список кандидатов, является предопределенным.18. The method of claim 14, wherein the number of pieces of motion information that can be included in the second candidate list is predetermined.
19. Считываемый компьютером носитель записи, хранящий битовый поток, который принимается устройством декодирования изображения и используется для восстановления текущего блока, включенного в текущую картинку, 19. A computer-readable recording medium storing a bit stream that is received by a picture decoding apparatus and used to reconstruct the current block included in the current picture,
причем битовый поток включает в себя информацию о предсказании текущего блока;wherein the bit stream includes prediction information of the current block;
информация о предсказании используется, чтобы вывести первый список кандидатов для текущего блока с использованием информации движения соседнего блока текущего блока; the prediction information is used to output a first candidate list for the current block using motion information of a neighboring block of the current block;
информация о предсказании используется, чтобы вывести второй список кандидатов для текущего блока с использованием ранее восстановленной информации движения; иthe prediction information is used to derive a second candidate list for the current block using the previously recovered motion information; And
первый список кандидатов и второй список кандидатов используются, чтобы вывести третий список кандидатов, используемый для генерации блока предсказания для текущего блока.the first candidate list and the second candidate list are used to output a third candidate list used to generate a prediction block for the current block.
1. Способ декодирования изображения, причем способ содержит:1. A method for decoding an image, the method comprising:
выведение первого списка кандидатов текущего блока с использованием информации движения соседнего блока текущего блока;outputting a first list of candidates of the current block using motion information of an adjacent block of the current block;
выведение второго списка кандидатов для текущего блока с использованием ранее восстановленной информации движения;deriving a second list of candidates for the current block using the previously recovered motion information;
выведение третьего списка кандидатов с использованием первого списка кандидатов и второго списка кандидатов; иoutputting a third list of candidates using the first list of candidates and the second list of candidates; And
генерирование блока предсказания для текущего блока с использованием третьего списка кандидатов, при этомgenerating a prediction block for the current block using the third list of candidates, while
когда во втором списке кандидатов имеется кандидат, который равен ранее восстановленной информации движения, этот кандидат удаляется из второго списка кандидатов, а ранее восстановленная информация движения добавляется к последнему положению индекса второго списка кандидатов.when there is a candidate in the second candidate list that is equal to the previously recovered motion information, that candidate is removed from the second candidate list, and the previously recovered motion information is added to the last index position of the second candidate list.
2. Способ по пункту 1, в котором соседний блок включает в себя пространственно соседний блок и соседний по времени блок.2. The method of claim 1, wherein the adjacent block includes a spatially adjacent block and a temporally adjacent block.
3. Способ по пункту 1, в котором выведение второго списка кандидатов включает в себя:3. The method according to paragraph 1, in which the output of the second list of candidates includes:
добавление ранее восстановленной информации движения во второй список кандидатов,adding previously recovered motion information to the second list of candidates,
причем ранее восстановленная информация движения представляет собой информацию движения блока кодирования, декодированного непосредственно перед декодированием текущего блока.wherein the previously recovered motion information is motion information of a coding block decoded immediately before decoding the current block.
4. Способ по пункту 3, дополнительно содержащий:4. The method according to paragraph 3, additionally containing:
инициализацию второго списка кандидатов,initializing the second list of candidates,
причем второй список кандидатов инициализируется на основе границы строки единицы дерева кодирования (CTU).wherein the second candidate list is initialized based on a coding tree unit (CTU) line boundary.
5. Способ по пункту 3, дополнительно содержащий:5. The method according to paragraph 3, additionally containing:
когда число частей информации движения, включенных во второй список кандидатов, является предопределенным значением, удаление информации движения, включенной во второй список кандидатов первой среди частей информации движения, включенных во второй список кандидатов.when the number of motion information pieces included in the second candidate list is a predetermined value, removing the motion information included in the second candidate list first among the motion information pieces included in the second candidate list.
6. Способ по пункту 3, в котором максимальное число частей информации движения, которое может быть включено во второй список кандидатов, является предопределенным.6. The method of claim 3, wherein the maximum number of pieces of motion information that can be included in the second candidate list is predetermined.
7. Способ по пункту 1, дополнительно содержащий:7. The method according to paragraph 1, additionally containing:
выведение средней информации движения путем вычисления среднего значения множества частей информации движения, включенных в третий список кандидатов; иderiving average motion information by calculating an average value of a plurality of pieces of motion information included in the third candidate list; And
добавление средней информации движения в третий список кандидатов.adding average motion information to the third list of candidates.
8. Способ по пункту 1, в котором8. The method according to paragraph 1, in which
первый блок предсказания и второй блок предсказания генерируются с использованием третьего списка кандидатов,the first prediction block and the second prediction block are generated using the third candidate list,
блок предсказания для текущего блока генерируется на основе первого блока предсказания и второго блока предсказания,the prediction block for the current block is generated based on the first prediction block and the second prediction block,
первая частичная область блока предсказания для текущего блока генерируется на основе первого блока предсказания, иa first partial prediction block region for the current block is generated based on the first prediction block, and
вторая частичная область блока предсказания для текущего блока генерируется на основе второго блока предсказания.a second partial prediction block region for the current block is generated based on the second prediction block.
9. Способ по пункту 1, в котором третий список кандидатов используется для генерирования блока предсказания внутриблочного копирования (IBC) для текущего блока.9. The method of claim 1, wherein the third candidate list is used to generate an intra-block copy (IBC) prediction block for the current block.
10. Способ кодирования изображения, причем способ содержит:10. A method for encoding an image, the method comprising:
определение информации движения текущего блока;determining motion information of the current block;
выведение первого списка кандидатов для текущего блока с использованием информации движения соседнего блока относительно текущего блока;outputting a first list of candidates for the current block using motion information of the adjacent block relative to the current block;
выведение второго списка кандидатов для текущего блока с использованием ранее кодированной информации движения; иoutputting a second list of candidates for the current block using the previously encoded motion information; And
выведение третьего списка кандидатов с использованием первого списка кандидатов и второго списка кандидатов, при этомoutputting a third list of candidates using the first list of candidates and the second list of candidates, wherein
когда во втором списке кандидатов имеется кандидат, который равен ранее восстановленной информации движения, этот кандидат удаляется из второго списка кандидатов, а ранее восстановленная информация движения добавляется к последнему положению индекса второго списка кандидатов.when there is a candidate in the second candidate list that is equal to the previously recovered motion information, that candidate is removed from the second candidate list, and the previously recovered motion information is added to the last index position of the second candidate list.
11. Способ по пункту 10, в котором выведение второго списка кандидатов включает в себя:11. The method according to paragraph 10, in which the output of the second list of candidates includes:
добавление ранее кодированной информации движения во второй список кандидатов,adding previously encoded motion information to the second candidate list,
причем ранее кодированная информация движения представляет собой информацию движения блока кодирования, кодированного непосредственно перед кодированием текущего блока.wherein the previously encoded motion information is the motion information of an encoding block encoded immediately before encoding the current block.
12. Способ по пункту 11, дополнительно содержащий:12. The method according to paragraph 11, additionally containing:
инициализацию второго списка кандидатов,initializing the second list of candidates,
причем второй список кандидатов инициализируется на основе границы строки единицы дерева кодирования (CTU).wherein the second candidate list is initialized based on a coding tree unit (CTU) line boundary.
13. Считываемый компьютером носитель, хранящий битовый поток, включающий в себя исполняемый компьютером код, причем исполняемый компьютером код, при исполнении процессором устройства декодирования видео, побуждает процессор к выполнению этапов, содержащих:13. A computer-readable medium storing a bitstream including computer-executable code, wherein the computer-executable code, when executed by a processor of a video decoding device, causes the processor to perform steps comprising:
декодирование информации о предсказании в исполняемом компьютером коде;decoding prediction information in computer-executable code;
выведение первого списка кандидатов текущего блока с использованием информации движения соседнего блока текущего блока;outputting a first list of candidates of the current block using motion information of an adjacent block of the current block;
выведение второго списка кандидатов для текущего блока с использованием ранее восстановленной информации движения;deriving a second list of candidates for the current block using the previously recovered motion information;
выведение третьего списка кандидатов с использованием первого списка кандидатов и второго списка кандидатов; иoutputting a third list of candidates using the first list of candidates and the second list of candidates; And
генерирование блока предсказания для текущего блока с использованием третьего списка кандидатов, при этомgenerating a prediction block for the current block using the third list of candidates, while
информация о предсказании используется для выведения первого списка кандидатов и второго списка кандидатов, иthe prediction information is used to derive the first candidate list and the second candidate list, and
когда во втором списке кандидатов имеется кандидат, который равен ранее восстановленной информации движения, этот кандидат удаляется из второго списка кандидатов, а ранее восстановленная информация движения добавляется к последнему положению индекса второго списка кандидатов.when there is a candidate in the second candidate list that is equal to the previously recovered motion information, that candidate is removed from the second candidate list, and the previously recovered motion information is added to the last index position of the second candidate list.
Claims (67)
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0082120 | 2018-07-16 | ||
KR10-2018-0082119 | 2018-07-16 | ||
KR10-2018-0091364 | 2018-08-06 | ||
KR10-2018-0112866 | 2018-09-20 | ||
KR10-2018-0114286 | 2018-09-21 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2021103607A Division RU2769959C1 (en) | 2018-07-16 | 2019-07-16 | Method and apparatus for encoding/decoding image and recording medium on which bit stream is stored |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2024111886A Division RU2834681C1 (en) | 2018-07-16 | 2024-05-02 | Method and apparatus for encoding/decoding image and recording medium on which bit stream is stored |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2023111088A RU2023111088A (en) | 2023-05-15 |
RU2818968C2 true RU2818968C2 (en) | 2024-05-08 |
Family
ID=
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2547240C1 (en) * | 2011-03-21 | 2015-04-10 | Квэлкомм Инкорпорейтед | Double predicting integration mode based on single predicting neighbours in video encoding |
RU2632155C1 (en) * | 2011-11-08 | 2017-10-02 | Электроникс Энд Телекоммьюникейшнз Рисерч Инститьют | Method and device for sharing list of candidates |
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2547240C1 (en) * | 2011-03-21 | 2015-04-10 | Квэлкомм Инкорпорейтед | Double predicting integration mode based on single predicting neighbours in video encoding |
RU2632155C1 (en) * | 2011-11-08 | 2017-10-02 | Электроникс Энд Телекоммьюникейшнз Рисерч Инститьют | Method and device for sharing list of candidates |
Non-Patent Citations (1)
Title |
---|
LI ZHANG et al, CE4-related: History-based Motion Vector Prediction, Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG11, JVET- K0104-v4, 11th Meeting, Ljubljana, 10-18 July 2018. * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11936853B2 (en) | Image encoding/decoding method and apparatus and recording medium for storing bitstream | |
CN112088533B (en) | Image encoding/decoding method and apparatus, and recording medium storing bit stream | |
CN111164978B (en) | Method and apparatus for encoding/decoding image and recording medium for storing bit stream | |
RU2769959C1 (en) | Method and apparatus for encoding/decoding image and recording medium on which bit stream is stored | |
CN118214855A (en) | Method and apparatus for asymmetric subblock-based image encoding/decoding | |
US20240080450A1 (en) | Image encoding/decoding method and device, and recording medium storing bitstream | |
CN116489387A (en) | Image encoding/decoding method and device | |
CN112369021A (en) | Image encoding/decoding method and apparatus for throughput enhancement and recording medium storing bitstream | |
CN118488209A (en) | Image encoding/decoding method and method for transmitting bit stream | |
CN119011825A (en) | Method and apparatus for deriving intra prediction modes | |
CN112673629A (en) | Video encoding/decoding method and apparatus and recording medium for storing bit stream | |
CN113196758B (en) | Image encoding/decoding method and device and recording medium storing bit stream | |
CN113228639A (en) | Image encoding/decoding method and apparatus, and recording medium storing bit stream | |
US11671603B2 (en) | Image encoding/decoding method and apparatus, and recording medium storing bitstream | |
CN114731409A (en) | Image encoding/decoding method and apparatus, and recording medium storing bit stream | |
CN112740694A (en) | Method and apparatus for encoding/decoding images and recording medium for storing bitstreams | |
CN112740671A (en) | Image encoding/decoding method and apparatus, and recording medium storing bitstream | |
KR20200119744A (en) | Method and apparatus for signaling signals related prediction mode in intra prediction | |
CN112740693A (en) | Image encoding/decoding method, apparatus, and recording medium with stored bitstream | |
CN118158435A (en) | Method of decoding image, method of encoding image, and method of transmitting bit stream generated by method of encoding image | |
RU2818968C2 (en) | Method and apparatus for encoding/decoding image and recording medium on which bit stream is stored | |
RU2834681C1 (en) | Method and apparatus for encoding/decoding image and recording medium on which bit stream is stored | |
RU2795811C2 (en) | Method and device for image encoding/decoding and record medium which stores bitstream | |
RU2806878C2 (en) | Method and device for image encoding/decoding and record medium which stores bitstream | |
RU2824753C1 (en) | Method and apparatus for encoding/decoding image and recording medium storing bit stream |