RU2806878C2 - Method and device for image encoding/decoding and record medium which stores bitstream - Google Patents
Method and device for image encoding/decoding and record medium which stores bitstream Download PDFInfo
- Publication number
- RU2806878C2 RU2806878C2 RU2022118003A RU2022118003A RU2806878C2 RU 2806878 C2 RU2806878 C2 RU 2806878C2 RU 2022118003 A RU2022118003 A RU 2022118003A RU 2022118003 A RU2022118003 A RU 2022118003A RU 2806878 C2 RU2806878 C2 RU 2806878C2
- Authority
- RU
- Russia
- Prior art keywords
- motion information
- block
- prediction
- list
- current block
- Prior art date
Links
Abstract
Description
Область техникиField of technology
[0001] Настоящее изобретение относится к способу и устройству для кодирования/декодирования изображения и носителю записи для хранения битового потока. Более конкретно, настоящее изобретение относится к способу и устройству для кодирования/декодирования изображения, которые используют список информации движения, хранящий предварительно восстановленную информацию движения.[0001] The present invention relates to a method and apparatus for encoding/decoding an image and a recording medium for storing a bitstream. More specifically, the present invention relates to a method and apparatus for image encoding/decoding that uses a motion information list storing previously reconstructed motion information.
Предшествующий уровень техники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. As the resolution and quality of image data increases, the data volumes increase compared to conventional image data. Therefore, when image data is transmitted using a medium such as a traditional wired/wireless broadband channel or stored using a known storage medium, transmission and storage costs increase. To solve these problems caused by increasing the resolution and quality of image data, a highly efficient image encoding/decoding method is required for an image having high resolution and quality.
[0003] В качестве метода сжатия изображения, существуют различные методы, такие как метод интер-предсказания для предсказания пиксельных значений, включенных в текущую картинку, из картинки перед или после текущей картинки; метод интра-предсказания для предсказания пиксельных значений, включенных в текущую картинку, с использованием пиксельной информации в текущей картинке; метод преобразования и квантования для сжатия энергии остаточного сигнала и метод энтропийного кодирования для выделения короткого кода значению с высокой частотой появления и длинного кода значению с низкой частотой появления. Такие технологии сжатия изображения могут быть использованы, чтобы эффективно сжимать и передавать или сохранять данные изображения.[0003] As an image compression method, there are various methods, such as an inter-prediction method for predicting pixel values included in the current picture from a picture before or after the current picture; an intra-prediction method for predicting pixel values included in the current picture using pixel information in the current picture; a conversion and quantization method to compress the energy of the residual signal; and an entropy encoding method to allocate a short code to a value with a high frequency of occurrence and a long code to a value with a low frequency of occurrence. Such image compression technologies can be used to efficiently compress and transmit or store image data.
РаскрытиеDisclosure
Техническая задачаTechnical problem
[0004] Задачей настоящего изобретения является обеспечить способ и устройство для кодирования и декодирования изображения и носитель записи, хранящий битовый поток, которые повышают эффективность сжатия с использованием списка информации движения, хранящего предварительно восстановленную информацию движения.[0004] An object of the present invention is to provide a method and apparatus for encoding and decoding an image and a recording medium storing a bitstream that improves compression efficiency using a motion information list storing previously reconstructed motion information.
ТЕХНИЧЕСКОЕ РЕШЕНИЕTECHNICAL SOLUTION
[0005] Способ декодирования изображения в соответствии с вариантом осуществления настоящего изобретения, способ может содержать генерирование списка кандидатов, включающего в себя информацию движения, выведенную из пространственного соседнего блока и временного соседнего блока, смежных с текущим блоком, выведение информации движения текущего блока с использованием списка кандидатов, генерирование блока предсказания текущего блока с использованием выведенной информации движения, обновление выведенной информации движения в списке информации движения, причем генерирование списка кандидатов выполняется таким образом, чтобы включать по меньшей мере одну из информации движения, включенной в обновленный список информации движения в блоке, который декодируется перед текущим блоком.[0005] An image decoding method according to an embodiment of the present invention, the method may comprise generating a candidate list including motion information derived from a spatial neighbor block and a temporal neighbor block adjacent to the current block, deriving motion information of the current block using the list candidates, generating a prediction block of the current block using the output motion information, updating the output motion information in the motion information list, wherein generating the candidate list is performed so as to include at least one of the motion information included in the updated motion information list in the block that decoded before the current block.
[0006] В способе декодирования изображения в соответствии с настоящим изобретением, список информации движения инициализируется, когда декодирование предопределенной области завершено, так что область изменяется. [0006] In the image decoding method according to the present invention, the motion information list is initialized when decoding of the predetermined area is completed, so that the area changes.
[0007] В способе декодирования изображения в соответствии с настоящим изобретением, предопределенная область представляет собой любое одно из блока, составленного из одной или более единиц кодирования (CU), или блока, состоящего из одной или более единиц дерева кодирования (CTU).[0007] In the image decoding method according to the present invention, the predefined area is any one of a block composed of one or more coding units (CUs) or a block composed of one or more coding tree units (CTUs).
[0008] В способе декодирования изображения в соответствии с настоящим изобретением, когда существует множество информаций движения в обновленном списке информации движения в блоке, декодированном перед текущим блоком, генерирование списка кандидатов выполняется таким образом, чтобы включать среднее по меньшей мере двух или более информаций движения из множества информаций движения в список кандидатов.[0008] In the image decoding method according to the present invention, when there is a plurality of motion information in the updated motion information list in a block decoded before the current block, candidate list generation is performed so as to include the average of at least two or more motion information from lots of information about the movement to the list of candidates.
[0009] В способе декодирования изображения в соответствии с настоящим изобретением, когда информация движения обновленного списка информации движения в блоке, декодированном перед текущим блоком, является той же самой, что и информация движения, ранее включенная в список кандидатов, генерирование списка кандидатов выполняется таким образом, чтобы не включать информацию движения списка информации движения в список кандидатов.[0009] In the image decoding method according to the present invention, when the motion information of the updated motion information list in the block decoded before the current block is the same as the motion information previously included in the candidate list, generation of the candidate list is performed in this way to not include the motion information of the motion information list in the candidate list.
[0010] В способе декодирования изображения в соответствии с настоящим изобретением, когда текущий блок представляет собой режим предсказания IBC и список кандидатов представляет собой совместно используемый список слияния, обновление выведенной информации движения в списке информации движения опускается.[0010] In the image decoding method according to the present invention, when the current block is an IBC prediction mode and the candidate list is a shared merge list, updating the output motion information in the motion information list is omitted.
[0011] В способе декодирования изображения в соответствии с настоящим изобретением, список информации движения имеет ограничение предопределенного размера. [0011] In the image decoding method according to the present invention, the motion information list is limited to a predetermined size.
[0012] В способе декодирования изображения в соответствии с настоящим изобретением, когда количество информации движения, сохраненной в списке информации движения, представляет собой предопределенное значение, обновление выведенной информации движения в списке информации движения включает в себя удаление информации движения, сохраненной первой в списке информации движения, и сохранение выведенной информации движения.[0012] In the image decoding method according to the present invention, when the amount of motion information stored in the motion information list is a predetermined value, updating the output motion information in the motion information list includes deleting the motion information stored first in the motion information list , and storing the output motion information.
[0013] Способ кодирования изображение в соответствии с вариантом осуществления настоящего изобретения, причем способ может содержать генерирование списка кандидатов, включающего в себя информацию движения, выведенную из пространственного соседнего блока и временного соседнего блока, смежных с текущим блоком, выведение информации движения текущего блока с использованием списка кандидатов, генерирование блока предсказания текущего блока с использованием выведенной информации движения, обновление выведенной информации движения в списке информации движения, и причем генерирование списка кандидатов выполняется таким образом, чтобы включать по меньшей мере одну из информации движения, включенной в обновленный список информации движения в блоке, который закодирован перед текущим блоком.[0013] An image encoding method according to an embodiment of the present invention, wherein the method may comprise generating a candidate list including motion information derived from a spatial neighbor block and a temporal neighbor block adjacent to the current block, deriving motion information of the current block using a candidate list, generating a prediction block of the current block using the output motion information, updating the output motion information in the motion information list, and wherein generating the candidate list is performed so as to include at least one of the motion information included in the updated motion information list in the block , which is encoded before the current block.
[0014] В способе кодирования изображения в соответствии с настоящим изобретением, список информации движения инициализируется, когда кодирование предопределенной области завершено, так что область изменяется.[0014] In the image encoding method according to the present invention, the motion information list is initialized when encoding of a predetermined area is completed, so that the area changes.
[0015] В способе кодирования изображения в соответствии с настоящим изобретением, предопределенная область представляет собой любое одно из блока, состоящего из одной или более единиц кодирования (CU), или блока, состоящего из одной или более единиц дерева кодирования (CTU).[0015] In the image encoding method according to the present invention, the predefined area is any one of a block consisting of one or more coding units (CU) or a block consisting of one or more coding tree units (CTU).
[0016] В способе кодирования изображения в соответствии с настоящим изобретением, когда существует множество информаций движения в обновленном списке информации движения в блоке, закодированном перед текущим блоком, генерирование списка кандидатов выполняется таким образом, чтобы включать среднее по меньшей мере двух или более информаций движения из множества информаций движения в список кандидатов.[0016] In the image encoding method according to the present invention, when there is a plurality of motion information in the updated motion information list in a block encoded before the current block, generating a candidate list is performed so as to include the average of at least two or more motion information from lots of information about the movement to the list of candidates.
[0017] В способе кодирования изображения в соответствии с настоящим изобретением, когда информация движения обновленного списка информации движения в блоке, закодированном перед текущим блоком, является той же самой, что и информация движения, ранее включенная в список кандидатов, генерирование списка кандидатов выполняется таким образом, чтобы не включать информацию движения списка информации движения в список кандидатов.[0017] In the image encoding method according to the present invention, when the motion information of the updated motion information list in the block encoded before the current block is the same as the motion information previously included in the candidate list, generation of the candidate list is performed in this manner to not include the motion information of the motion information list in the candidate list.
[0018] В способе кодирования изображения в соответствии с настоящим изобретением, когда текущий блок представляет собой режим предсказания IBC и список кандидатов представляет собой совместно используемый список слияния, обновление выведенной информации движения в списке информации движения опускается.[0018] In the image encoding method according to the present invention, when the current block is an IBC prediction mode and the candidate list is a shared merge list, updating the output motion information in the motion information list is omitted.
[0019] В способе кодирования изображения в соответствии с настоящим изобретением, список информации движения имеет ограничение предопределенного размера. [0019] In the image encoding method according to the present invention, the motion information list is limited to a predetermined size.
[0020] В способе кодирования изображения в соответствии с настоящим изобретением, когда количество информации движения, хранящейся в списке информации движения, представляет собой предопределенное значение, обновление выведенной информации движения в списке информации движения включает в себя удаление информации движения, сохраненной первой в списке информации движения, и сохранение выведенной информации движения.[0020] In the image encoding method according to the present invention, when the amount of motion information stored in the motion information list is a predetermined value, updating the output motion information in the motion information list includes deleting the motion information stored first in the motion information list , and storing the output motion information.
[0021] В долговременном считываемом компьютером носителе записи, содержащем битовый поток, декодированный способом декодирования изображения в соответствии с вариантом осуществления настоящего изобретения, способ декодирования изображения может содержать генерирование списка кандидатов, включающего в себя информацию движения, выведенную из пространственного соседнего блока и временного соседнего блока, смежных с текущим блоком, выведение информации движения текущего блока с использованием списка кандидатов, генерирование блока предсказания текущего блока с использованием выведенной информации движения, обновление выведенной информации движения в списке информации движения, и причем генерирование списка кандидатов выполняется таким образом, чтобы включать по меньшей мере одну информацию из информации движения, включенной в обновленный список информации движения в блоке, декодированном перед текущим блоком.[0021] In a non-transitory computer-readable recording medium containing a bit stream decoded by an image decoding method according to an embodiment of the present invention, the image decoding method may comprise generating a candidate list including motion information derived from a spatial neighbor block and a temporal neighbor block adjacent to the current block, outputting motion information of the current block using the candidate list, generating a prediction block of the current block using the output motion information, updating the output motion information in the motion information list, and wherein generating the candidate list is performed so as to include at least one information from the motion information included in the updated list of motion information in the block decoded before the current block.
ПОЛЕЗНЫЕ РЕЗУЛЬТАТЫUSEFUL RESULTS
[0022] Настоящее изобретение может обеспечить способ и устройство для кодирования и декодирования изображения и носитель записи, хранящий битовый поток, которые повышают эффективность сжатия с использованием списка информации движения, хранящего предварительно восстановленную информацию движения.[0022] The present invention can provide a method and apparatus for encoding and decoding an image and a recording medium storing a bitstream that improves compression efficiency using a motion information list storing previously reconstructed motion information.
[0023] В соответствии с настоящим изобретением, когда имеется мало информации движения или информация движения отсутствует в списке информации движения, хранящем предварительно восстановленную информацию движения, информация предсказания может храниться в списке информации движения и использоваться, чтобы более точно выполнять интер-предсказание.[0023] According to the present invention, when there is little motion information or there is no motion information in the motion information list storing the pre-recovered motion information, prediction information can be stored in the motion information list and used to more accurately perform inter-prediction.
[0024] В соответствии с настоящим изобретением, может быть повышена эффективность кодирования и декодирования изображения.[0024] According to the present invention, the efficiency of image encoding and decoding can be improved.
[0025] В соответствии с настоящим изобретением, может быть снижена вычислительная сложность кодера и декодера изображения.[0025] According to the present invention, the computational complexity of an image encoder and decoder can be reduced.
ОПИСАНИЕ ЧЕРТЕЖЕЙDESCRIPTION OF DRAWINGS
[0026] Фиг. 1 представляет собой блок-схему, иллюстрирующую конфигурацию устройства кодирования в соответствии с вариантом осуществления настоящего изобретения.[0026] FIG. 1 is a block diagram illustrating the configuration of an encoding apparatus in accordance with an embodiment of the present invention.
[0027] Фиг. 2 представляет собой блок-схему, иллюстрирующую конфигурацию устройства декодирования в соответствии с вариантом осуществления настоящего изобретения.[0027] FIG. 2 is a block diagram illustrating the configuration of a decoding apparatus in accordance with an embodiment of the present invention.
[0028] Фиг. 3 представляет диаграмму, схематично иллюстрирующую структуру разбиения изображения при кодировании и декодировании изображения.[0028] FIG. 3 is a diagram schematically illustrating an image division structure in image encoding and decoding.
[0029] Фиг. 4 представляет собой диаграмму, иллюстрирующую вариант осуществления процесса интра-предсказания.[0029] FIG. 4 is a diagram illustrating an embodiment of an intra-prediction process.
[0030] Фиг. 5 представляет собой диаграмму, иллюстрирующую вариант осуществления процесса интер-предсказания.[0030] FIG. 5 is a diagram illustrating an embodiment of the inter-prediction process.
[0031] Фиг. 6 представляет собой диаграмму, иллюстрирующую процесс преобразования и квантования.[0031] FIG. 6 is a diagram illustrating the conversion and quantization process.
[0032] Фиг. 7 представляет собой диаграмму, иллюстрирующую опорные выборки, доступные для интра-предсказания.[0032] FIG. 7 is a diagram illustrating reference samples available for intra-prediction.
[0033] Фиг. 8 и 9 представляют собой диаграммы, иллюстрирующие кодер и декодер, использующие список информации движения.[0033] FIG. 8 and 9 are diagrams illustrating an encoder and a decoder using the motion information list.
[0034] Фиг. 10 представляет собой блок-схему последовательности операций, иллюстрирующую способ интер-предсказания с использованием списка информации движения в соответствии с настоящим изобретением.[0034] FIG. 10 is a flowchart illustrating an inter-prediction method using a motion information list according to the present invention.
[0035] Фиг. 11 представляет собой блок-схему последовательности операций, иллюстрирующую способ интер-предсказания с использованием списка информации движения.[0035] FIG. 11 is a flowchart illustrating an inter-prediction method using a motion information list.
[0036] Фиг. 12 представляет собой блок-схему последовательности операций, иллюстрирующую способ интер-предсказания, в котором предсказание списка информации движения выполняется в момент времени инициализации списка информации движения и момент времени добавления информации движения.[0036] FIG. 12 is a flowchart illustrating an inter-prediction method in which motion information list prediction is performed at the motion information list initialization time and the motion information adding time.
[0037] Фиг. 13 и 14 представляют собой диаграммы, иллюстрирующие кодер и декодер, включающие в себя предсказатель списка информации движения.[0037] FIG. 13 and 14 are diagrams illustrating an encoder and a decoder including a motion information list predictor.
[0038] Фиг. 15 представляет собой диаграмму, иллюстрирующую вариант осуществления выполнения сигнализации, включающий в себя указатель, указывающий, следует ли применить список информации движения к синтаксису набора параметров последовательности (SPS). [0038] FIG. 15 is a diagram illustrating an embodiment of signaling including an indicator indicating whether to apply the motion information list to sequence parameter set (SPS) syntax.
[0039] Фиг. 16 представляет собой диаграмму, иллюстрирующую вариант осуществления выполнения сигнализации, включающий в себя указатель, указывающий, следует ли применить список информации движения к синтаксису набора параметров картинки (PPS).[0039] FIG. 16 is a diagram illustrating an embodiment of signaling including an indicator indicating whether to apply the motion information list to picture parameter set (PPS) syntax.
[0040] Фиг. 17 представляет собой диаграмму, иллюстрирующую вариант осуществления выполнения сигнализации, включающий в себя указатель, указывающий, следует ли применить список информации движения к синтаксису заголовка слайса.[0040] FIG. 17 is a diagram illustrating an embodiment of signaling including an indicator indicating whether the motion information list should be applied to the slice header syntax.
[0041] Фиг. 18 представляет собой диаграмму, иллюстрирующую пример предсказания информации движения текущего списка информации движения из области, смежной по времени с текущим блоком.[0041] FIG. 18 is a diagram illustrating an example of motion information prediction of a current motion information list from a region temporally adjacent to the current block.
[0042] Фиг. 19 представляет собой диаграмму, иллюстрирующую пример предсказания информации движения текущего списка информации движения из области, пространственно смежной с текущим блоком кодирования.[0042] FIG. 19 is a diagram illustrating an example of motion information prediction of a current motion information list from a region spatially adjacent to the current encoding block.
[0043] Фиг. 20 представляет собой диаграмму, иллюстрирующую пример способа выполнения предсказания текущего списка информации движения со ссылкой на список информации движения предварительно восстановленной UPU.[0043] FIG. 20 is a diagram illustrating an example of a method for performing prediction of a current motion information list with reference to a motion information list previously recovered by the UPU.
[0044] Фиг. 21 представляет собой диаграмму, иллюстрирующую способ выполнения предсказания списка информации движения из информации движения, хранящейся в текущем списке информации движения.[0044] FIG. 21 is a diagram illustrating a method for performing motion information list prediction from motion information stored in a current motion information list.
[0045] Фиг. 22 представляет собой диаграмму, иллюстрирующую пример процесса выведения информации движения предсказания путем изменения опорной картинки существующей информации движения и соответственной корректировки вектора движения.[0045] FIG. 22 is a diagram illustrating an example of a process for deriving prediction motion information by changing a reference picture of existing motion information and adjusting the motion vector accordingly.
[0046] Фиг. 23 представляет собой диаграмму, иллюстрирующую способ предсказания списка информации движения, который не перекрывается с кандидатом способа предсказания движения.[0046] FIG. 23 is a diagram illustrating a motion information list prediction method that does not overlap with a motion prediction method candidate.
[0047] Фиг. 24 представляет собой диаграмму, иллюстрирующую вариант осуществления настройки положения, которое является опорным для предсказания списка информации движения в единице CTU, когда положение временного кандидата способа предсказания движения является тем же самым, что и положения C и H на фиг. 23.[0047] FIG. 24 is a diagram illustrating an embodiment of setting a position that is a reference for predicting a motion information list in a CTU when the position of a temporary motion prediction method candidate is the same as positions C and H in FIG. 23.
[0048] Фиг. 25 и 26 представляют собой диаграммы, иллюстрирующие вариант осуществления способа использования предсказанной информации движения и общей информации движения по отдельности.[0048] FIG. 25 and 26 are diagrams illustrating an embodiment of a method of using predicted motion information and general motion information separately.
[0049] Фиг. 27 представляет собой блок-схему последовательности операций, иллюстрирующую способ декодирования изображения в соответствии с вариантом осуществления настоящего изобретения.[0049] FIG. 27 is a flowchart illustrating an image decoding method according to an embodiment of the present invention.
режим ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯIMPLEMENTATION mode of the INVENTION
[0050] Множество модификаций может быть выполнено в настоящем изобретении, и имеются различные варианты осуществления настоящего изобретения, примеры которых будут представлены далее и подробно описаны со ссылками на чертежи. Однако настоящее изобретение не ограничено ими, хотя примерные варианты осуществления могут быть истолкованы как включающие все модификации, эквиваленты или замены в техническом принципе и техническом объеме настоящего изобретения. Сходные ссылочные позиции относятся к одинаковым или сходным функциям в различных аспектах. На чертежах, формы и размеры элементов могут быть преувеличены для ясности. В последующем подробном описании настоящего изобретения ссылки даются на приложенные чертежи, которые показывают, для иллюстрации, конкретные варианты осуществления, в которых может быть реализовано настоящее изобретение. Эти варианты осуществления описаны достаточно детально, чтобы позволить специалистам в данной области реализовать настоящее раскрытие. Многочисленные варианты осуществления настоящего раскрытия, хотя и различные, не обязательно являются взаимно исключающими. Например, конкретные признаки, структуры и характеристики, описанные здесь в связи с одним вариантом осуществления, могут быть реализованы в других вариантах осуществления без отклонения от сущности и объема настоящего раскрытия. Кроме того, должно быть понятно, что местоположение или компоновка отдельных элементов в каждом раскрытом варианте осуществления может модифицироваться без отклонения от сущности и объема настоящего раскрытия. Поэтому последующее подробное описание не следует понимать в ограничивающем смысле, и объем настоящего раскрытия определяется только приложенными пунктами формулы изобретения, интерпретируемыми надлежащим образом, вместе с полным диапазоном эквивалентов того, что заявляется в пунктах формулы изобретения. [0050] 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. 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 other embodiments 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.
[0051] Используемые в спецификации термины ‘первый’, ‘второй’ и т.д. могут использоваться для описания различных компонентов, но компоненты не должны подразумеваться ограниченными этими терминами. Эти термины используются только для различения одного компонента от других компонентов. Например, ‘первый’ компонент может именоваться ‘вторым’ компонентом без отклонения от объема настоящего изобретения, и ‘второй’ компонент может также аналогичным образом именоваться ‘первым’ компонентом. Термин ‘и/или’ включает в себя комбинацию множества элементов или любой один из множества членов.[0051] The terms 'first', 'second', etc. used in the specification. 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.
[0052] Следует понимать, что когда элемент просто упоминается как ‘соединенный с’ или ‘связанный с’ другим элементом, не будучи ‘непосредственно соединенным с’ или ‘непосредственно связанным с’ другим элементом в настоящем описании, он может быть ‘непосредственно соединенным с’ или ‘непосредственно связанным с’ другим элементом или быть соединенным или связанным с другим элементом, имея другой элемент, промежуточный между ними. Напротив, следует понимать, что когда элемент упоминается как “непосредственно связанный” или “непосредственно соединенный” с другим элементом, то не имеется промежуточных элементов.[0052] It should be understood that when an element is merely 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' 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.
[0053] Кроме того, составные части, показанные в вариантах осуществления настоящего изобретения, показаны независимо, чтобы представлять характерные функции, отличающиеся друг от друга. Таким образом, это не означает, что каждая составная часть содержится в составном блоке отдельного аппаратного средства или программного обеспечения. Иными словами, каждая составная часть включает в себя каждую из пронумерованных составных частей, для удобства. Таким образом, по меньшей мере две составные части каждой составной части могут объединяться, чтобы образовывать одну составную часть, или одна составная часть может быть разделена на множество составных частей, чтобы выполнять каждую функцию. Вариант осуществления, где каждая составная часть объединена, и вариант осуществления, где одна составная часть разделена, также включены в объем настоящего изобретения, если это не приводит к отклонению от сущности настоящего изобретения.[0053] 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.
[0054] Термины, используемые в настоящей спецификации, используются просто для описания конкретных вариантов осуществления и не подразумевают ограничения настоящего изобретения. Выражение, использованное в единственном числе, включает в себя выражение во множественном числе, если только это не имеет явно отличающегося значения в контексте. В настоящей спецификации, следует понимать, что такие термины, как “включающий в себя”, “имеющий” и т.д., предназначены, чтобы указывать наличие признаков, количеств, этапов, действий, элементов, частей или их комбинаций, раскрытых в спецификации, не должны исключать возможность того, один или более других признаков, количеств, этапов, действий, элементов, частей или их комбинаций могут существовать или могут добавляться. Иными словами, когда конкретный элемент упоминается как “включенный”, элементы иные, чем соответствующий элемент, не исключаются, но дополнительные элементы могут быть включены в варианты осуществления настоящего изобретения или объем настоящего изобретения.[0054] The terms used in this specification 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. In this specification, 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.
[0055] Кроме того, некоторые из компонентов могут не являться необходимыми компонентами, выполняющими существенные функции настоящего изобретения, а являются конкретными компонентами, лишь улучшающими его рабочие характеристики. Настоящее изобретение может быть реализовано путем включения в него только необходимых составных частей для реализации сущности настоящего изобретения, исключая компоненты, используемые для улучшения рабочих характеристик. Структура, включающая в себя только необходимые компоненты, исключая конкретные компоненты, используемые только для улучшения рабочих характеристик, также включена в объем настоящего изобретения. [0055] 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.
[0056] Далее, варианты осуществления настоящего изобретения будут описаны подробно со ссылками на приложенные чертежи. При описании примерных вариантов осуществления настоящего изобретения, хорошо известные функции или конструкции не будут подробно описываться, поскольку они могли бы ненужным образом усложнить понимание настоящего изобретения. Одинаковые компоненты на чертежах обозначены теми же самыми ссылочными позициями, и повторное описание одних и тех же элементов будет опущено. [0056] 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.
[0057] Далее, изображение может означать картинку, конфигурирующую видео, или может означать само видео. Например, “кодирование или декодирование, или оба из них, изображения” может означать “кодирование или декодирование, или оба из них, движущейся картинки” и может означать “кодирование или декодирование, или оба из них, одного изображения среди изображений движущейся картинки”. [0057] 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.”
[0058] Далее, термины “движущаяся картинка” и “видео” могут использоваться как имеющие одно и то же значение и могут заменять друг друга.[0058] Further, the terms “moving picture” and “video” may be used to have the same meaning and may be used interchangeably.
[0059] Далее, целевое изображение может быть целевым изображением кодирования, которое является целью кодирования, и/или целевым изображением декодирования, которое является целью декодирования. Также, целевое изображение может быть входным изображением, введенным в устройство кодирования, и входным изображением, введенным в устройство декодирования. Здесь, целевое изображение может иметь то же самое значение, что и текущее изображение.[0059] 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.
[0060] Далее, термины “изображение”, “картинка”, “кадр” и “экран” могут использоваться как имеющие то же самое значение и заменять друг друга.[0060] Further, the terms “image”, “picture”, “frame” and “screen” can be used to have the same meaning and replace each other.
[0061] Далее, целевой блок может представлять собой целевой блок кодирования, который является целью кодирования, и/или целевой блок декодирования, который является целью декодирования. Также целевой блок может представлять собой текущий блок, который является целью текущего кодирования и/или декодирования. Например, термины “целевой блок” и “текущий блок” могут использоваться как имеющие то же самое значение и заменять друг друга.[0061] 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.
[0062] Далее, термины “блок” и “единица” могут использоваться как имеющие то же самое значение и заменять друг друга. Или “блок” может представлять конкретную единицу.[0062] 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.
[0063] Далее, термины “область” и “сегмент” могут заменять друг друга.[0063] Further, the terms “region” and “segment” can be used interchangeably.
[0064] Далее, конкретный сигнал может быть сигналом, представляющим конкретный блок. Например, исходный сигнал может быть сигналом, представляющим целевой блок. Сигнал предсказания может быть сигналом, представляющим блок предсказания. Остаточный сигнал может быть сигналом, представляющим остаточный блок.[0064] 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.
[0065] В вариантах осуществления, каждое из конкретной информации, данных, флага, индекса, элемента и атрибута и т.д. может иметь значение. Значение информации, данных, флага, индекса, элемента и атрибута, равное “0”, может представлять логическое “ложно” или первое предопределенное значение. Иными словами, значение “0”, “ложно”, логическое “ложно” и первое предопределенное значение могут быть взаимозаменяемыми. Значение информации, данных, флага, индекса, элемента и атрибута, равное “1”, может представлять логическое “истинно” или второе предопределенное значение. Иными словами, значение “1”, “истинно”, логическое “истинно” и второе предопределенное значение могут быть взаимозаменяемыми. [0065] 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", Boolean "true", and the second predefined value can be used interchangeably.
[0066] Когда переменная i или j используется для представления столбца, строки или индекса, значение i может быть целым числом равным или большим, чем 0, или равным или большим, чем 1. То есть столбец, строка, индекс и т.д. могут отсчитываться от 0 или могут отсчитываться от 1.[0066] 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.
[0067] [0067]
[0068] Описание терминов[0068] Description of terms
[0069] Кодер: означает устройство, выполняющее кодирование. То есть, означает устройство кодирования.[0069] Encoder: means a device that performs encoding. That is, it means an encoding device.
[0070] Декодер: означает устройство, выполняющее декодирование. То есть, означает устройство декодирования.[0070] Decoder: means a device that performs decoding. That is, it means a decoding device.
[0071] Блок: представляет собой M×N массив выборки. Здесь, M и N могут означать положительные целые числа, и блок может означать массив выборки двумерной формы. Блок может относиться к единице. Текущий блок может означать целевой блок кодирования, который становится целью при кодировании, или целевой блок декодирования, который становится целью при декодировании. Кроме того, текущий блок может быть по меньшей мере одним из блока кодирования, блока предсказания, остаточного блока и блока преобразования.[0071] 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.
[0072] Выборка: представляет собой базовую единицу, образующую блок. Она может быть выражена как значение от 0 до 2Bd-1 в соответствии с битовой глубиной (Bd). В настоящем изобретении, выборка может использоваться как обозначение пиксела. То есть, выборка, элемент изображения, пиксел могут иметь то же самое значение.[0072] Sample: represents the basic unit that forms a block. It can be expressed as a value from 0 to 2 Bd-1 according to the bit depth (Bd). In the present invention, a sample may be used to designate a pixel. That is, a sample, an image element, a pixel can have the same meaning.
[0073] Единица: может относиться к единице кодирования и декодирования. При кодировании и декодировании изображения, единица может представлять собой область, генерируемую разбиением одного изображения. Кроме того, единица может означать подразделенную единицу, когда одно изображение разбивается на подразделенные единицы во время кодирования или декодирования. То есть, изображение может разбиваться на множество единиц. При кодировании и декодировании изображения, предопределенный процесс может выполняться для каждой единицы. Одна единица может разбиваться на под-единицы, которые имеют размеры меньше, чем размер единицы. В зависимости от функций, единица может означать блок, макроблок, единицу дерева кодирования, блок дерева кодирования, единицу кодирования, блок кодирования, единицу предсказания, блок предсказания, остаточную единицу, остаточный блок, единицу преобразования, блок преобразования и т.д. Кроме того, чтобы различать единицу от блока, единица может включать блок компонента яркости, блок компонента цветности, ассоциированный с блоком компонента яркости, и синтаксический элемент каждого блока цветового компонента. Единица может иметь различные размеры и формы, в частности, форма единицы может быть двумерной геометрической фигурой, такой как квадратная форма, прямоугольная форма, трапецеидальная форма, треугольная форма, пятиугольная форма и т.д. Кроме того, информация единицы может включать по меньшей мере одно из типа единицы, указывающего единицу кодирования, единицу предсказания, единицу преобразования и т.д., и размера единицы, глубины единицы, последовательности кодирования и декодирования единицы и т.д.[0073] 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 luminance component block, a chroma component block associated with the luminance component block, and a syntax element of each chroma 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.
[0074] Единица дерева кодирования: конфигурируется с одним блоком дерева кодирования компонента яркости Y и двумя блоками дерева кодирования, относящимися к компонентам цветности Cb и Cr. Кроме того, это может означать, что включаются блоки и синтаксический элемент каждого блока. Каждая единица дерева кодирования может быть подразделена с использованием по меньшей мере одного из способа разбиения квадродерева, способа разбиения двоичного дерева и способа разбиения троичного дерева, чтобы конфигурировать более низкую единицу, такую как единица кодирования, единица предсказания, единица преобразования и т.д. Это может использоваться как термин для обозначения блока выборки, который становится единицей обработки при кодировании/декодировании изображения в качестве входного изображения. Здесь, квадродерево может означать квартернарное дерево.[0074] 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.
[0075] Когда размер блока кодирования находится в пределах предопределенного диапазона, деление возможно с использованием только разбиения квадродерева. Здесь, предопределенный диапазон может быть определен как по меньшей мере одно из максимального размера и минимального размера блока кодирования, в котором разделение возможно с использованием только разбиения квадродерева. Информация, указывающая максимальный/минимальный размер блока кодирования, в котором разрешено разбиение квадродерева, может сигнализироваться битовым потоком, и информация может сигнализироваться по меньшей мере в одной единице последовательности, параметре картинки, группе мозаичных элементов или слайсе (сегменте). Альтернативно, максимальный/минимальный размер блока кодирования может быть фиксированным размером, предварительно определенным в кодере/декодере. Например, когда размер блока кодирования соответствует от 256×256 до 64×64, разделение возможно только с использованием разбиения квадродерева. Альтернативно, когда размер блока кодирования больше, чем размер максимального блока преобразования, разделение возможно только с использованием разбиения квадродерева. Здесь, блок, подлежащий разделению, может быть по меньшей мере одним из блока кодирования и блока преобразования. В этом случае, информация, указывающая разделение кодированного блока (например, split_flag) может представлять собой флаг, указывающий, следует ли или нет выполнять разбиение квадродерева. Когда размер блока кодирования попадает в предопределенный диапазон, разделение возможно только с использованием разбиения двоичного дерева или троичного дерева. В этом случае, приведенное выше описание разбиения квадродерева может применяться к разбиению двоичного дерева или разбиению троичного дерева одинаковым образом. [0075] 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.
[0076] Блок дерева кодирования: может быть использован как термин для обозначения любого одного из Y блока дерева кодирования, Cb блока дерева кодирования и Cr блока дерева кодирования.[0076] 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.
[0077] Соседний блок: может означать блок, смежный с текущим блоком. Блок, смежный с текущим блоком, может означать блок, который контактирует с границей текущего блока, или блок, позиционированный в пределах предопределенного расстояния от текущего блока. Соседний блок может означать блок, смежный с вершиной текущего блока. Здесь, блок, смежный с вершиной текущего блока, может означать блок, вертикально смежный с соседним блоком, который является горизонтально смежным с текущим блоком, или блок, горизонтально смежный с соседним блоком, который является вертикально смежным с текущим блоком.[0077] 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.
[0078] Восстановленный соседний блок: может означать соседний блок, смежный с текущим блоком и который уже был пространственно/по времени кодирован или декодирован. Здесь, восстановленный соседний блок может означать восстановленную соседнюю единицу. Восстановленный пространственный соседний блок может быть блоком в пределах текущей картинки, который уже был восстановлен посредством кодирования или декодирования или обоих из них. Восстановленный временной соседний блок представляет собой блок в соответствующем положении как у текущего блока текущей картинки в пределах опорного изображения или его соседнего блока.[0078] 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 that has already been reconstructed by 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.
[0079] Глубина единицы: может означать степень разбиения единицы. В древовидной структуре, наивысший узел (корневой узел) может соответствовать первой единице, которая не разделена. Также, наивысший узел может иметь наименьшее значение глубины. В этом случае, наивысший узел может иметь глубину уровня 0. Узел, имеющий глубину уровня 1, может представлять единицу, генерируемую путем разбиения первой единицы однократно. Узел, имеющий глубину уровня 2, может представлять единицу, генерируемую путем разбиения первой единицы дважды. Узел, имеющий глубину уровня n, может представлять единицу, генерируемую путем разбиения первой единицы n раз. Листовой узел может быть самым низким узлом и узлом, который не может далее разделяться. Глубина листового узла может соответствовать максимальному уровню. Например, предопределенное значение максимального уровня может быть равно 3. Глубина корневого узла может быть самой низкой, а глубина листового узла может быть самой глубокой. Кроме того, когда единица выражена как древовидная структура, уровень, в котором присутствует единица, может означать глубину единицы. [0079] 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.
[0080] Битовый поток: может означать битовый поток, включающий в себя информацию кодирования изображения.[0080] Bitstream: may mean a bitstream including image encoding information.
[0081] Набор параметров: соответствует информации заголовка среди конфигурации в битовом потоке. По меньшей мере один из набора параметров видео, набора параметров последовательности, набора параметров картинки и набора параметров адаптации может быть включен в набор параметров. Кроме того, набор параметров может включать в себя заголовок слайса, заголовок группы мозаичных элементов и информацию заголовка мозаичного элемента. Термин “группа мозаичных элементов” означает группу мозаичных элементов и имеет то же самое значение, что и слайс.[0081] 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.
[0082] Синтаксический анализ: может означать определение значения синтаксического элемента путем выполнения энтропийного декодирования или может означать само энтропийное декодирование. [0082] Parsing: can mean determining the meaning of a syntactic element by performing entropy decoding, or can mean entropy decoding itself.
[0083] Символ: может означать по меньшей мере одно из синтаксического элемента, параметра кодирования и значения коэффициента преобразования целевой единицы кодирования/ декодирования. Кроме того, символ может означать цель энтропийного кодирования или результат энтропийного декодирования.[0083] 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.
[0084] Режим предсказания: может быть информацией, указывающей режим, кодированный/декодированный с интра-предсказанием, или режим, кодированный/декодированный с интер-предсказанием. [0084] Prediction mode: may be information indicating an intra-prediction encoded/decoded mode or an inter-prediction encoded/decoded mode.
[0085] Единица предсказания: может означать базовую единицу при выполнении предсказания, такого как интер-предсказание, интра-предсказание, интер- (взаимная) компенсация, интра- (внутренняя) компенсация и компенсация движения. Одна единица предсказания может разбиваться во множество разбиений, имеющих меньший размер, или может разбиваться на множество более низких единиц предсказания. Множество разбиений может представлять собой базовую единицу при выполнении предсказания или компенсации. Разбиение, которое генерируется путем разделения единицы предсказания, может также представлять собой единицу предсказания.[0085] 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 a smaller size, 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.
[0086] Разбиение единицы предсказания: может означать форму, полученную путем разбиения единицы предсказания.[0086] Prediction unit split: may mean a shape obtained by splitting a prediction unit.
[0087] Список опорных картинок: может относиться к списку, включающему в себя одну или более опорных картинок, используемых для интер-предсказания или компенсации движения. Имеется несколько типов используемых списков опорных картинок, включая LC (объединенный список), L0 (список 0), L1 (список 1), L2 (список 2), L3 (список 3).[0087] 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).
[0088] Указатель интер-предсказания: может относиться к направлению интер-предсказания (однонаправленное предсказание, двунаправленное предсказание и т.д.) текущего блока. Альтернативно, он может относиться к числу опорных картинок, используемых для генерации блока предсказания текущего блока. Альтернативно, он может относиться к числу блоков предсказания, используемых во время выполнения интер-предсказания или компенсации движения над текущим блоком.[0088] 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.
[0089] Флаг использования списка предсказания: указывает, генерируется ли блок предсказания с использованием по меньшей мере одной опорной картинки в конкретном списке опорных картинок. Указатель интер-предсказания может быть выведен с использованием флага использования списка предсказания, и наоборот, флаг использования списка предсказания может быть выведен с использованием указателя интер-предсказания. Например, когда флаг использования списка предсказания имеет первое значение, равное нулю (0), это означает, что опорная картинка в списке опорных картинок не используется для генерации блока предсказания. С другой стороны, когда флаг использования списка предсказания имеет второе значение, равное единице (1), это означает, что список опорных картинок используется для генерирования блока предсказания.[0089] Prediction List Usage 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.
[0090] Индекс опорной картинки: может относиться к индексу, указывающему конкретную опорную картинку в списке опорных картинок.[0090] Reference picture index: may refer to an index indicating a specific reference picture in a list of reference pictures.
[0091] Опорная картинка: может означать опорную картинку, на которую ссылается конкретный блок для целей интер-предсказания или компенсации движения конкретного блока. Альтернативно, опорная картинка может представлять собой картинку, включающую в себя опорный блок, на который ссылается текущий блок для интер-предсказания или компенсации движения. Далее, термины “опорная картинка” и “опорное изображение” имеют то же самое значение и могут использоваться взаимозаменяемым образом.[0091] 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 a 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.
[0092] Вектор движения: может представлять собой двумерный вектор, используемый для интер-предсказания или компенсации движения. Вектор движения может означать смещение между целевым блоком кодирования/декодирования и опорным блоком. Например, (mvX, mvY) может представлять вектор движения. Здесь, mvX может представлять горизонтальный компонент, и mvY может представлять вертикальный компонент.[0092] 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.
[0093] Диапазон поиска: может представлять собой двумерную область, в которой осуществляется поиск, чтобы извлечь вектор движения во время интер-предсказания. Например, размер диапазона поиска может быть M×N. Здесь, M и N оба являются целыми числами.[0093] 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.
[0094] Кандидат вектора движения: может относиться к блоку кандидата предсказания или вектору движения блока кандидата предсказания при предсказании вектора движения. Кроме того, кандидат вектора движения может быть включен в список кандидатов вектора движения.[0094] 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.
[0095] Список кандидатов вектора движения: может означать список, составленный из одного или более кандидатов вектора движения.[0095] Motion vector candidate list: may mean a list composed of one or more motion vector candidates.
[0096] Индекс кандидата вектора движения: может означать указатель, указывающий кандидата вектора движения в списке кандидатов вектора движения. Альтернативно, он может представлять собой индекс предсказателя вектора движения.[0096] Motion vector candidate index: may mean an index indicating a motion vector candidate in a list of motion vector candidates. Alternatively, it may be a motion vector predictor index.
[0097] Информация движения: может означать информацию, включающую в себя по меньшей мере один из элементов, включая вектор движения, индекс опорной картинки, указатель интер-предсказания, флаг использования списка предсказания, информацию списка опорных картинок, опорную картинку, кандидат вектора движения, индекс кандидата вектора движения, кандидат слияния и индекс слияния.[0097] 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, motion vector candidate index, fusion candidate, and fusion index.
[0098] Список кандидатов слияния: может означать список, составленный из одного или более кандидатов слияния.[0098] Merge candidate list: may mean a list composed of one or more merge candidates.
[0099] Кандидат слияния: может означать пространственный кандидат слияния, временной кандидат слияния, объединенный кандидат слияния, объединенный би-предиктивный кандидат слияния, или нулевой кандидат слияния. Кандидат слияния может включать информацию движения, такую как указатель интер-предсказания, индекс опорной картинки для каждого списка, вектор движения, флаг использования списка предсказания и указатель интер-предсказания.[0099] Merge candidate: may mean a spatial fusion candidate, a temporal fusion candidate, a fused merge candidate, a fused bi-predictive fusion candidate, or a null fusion 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.
[00100] Индекс слияния: может означать указатель, указывающий кандидата слияния в списке кандидатов слияния. Альтернативно, индекс слияния может указывать блок, из которого был выведен кандидат слияния, среди восстановленных блоков пространственно/по времени смежных с текущим блоком. Альтернативно, индекс слияния может указывать по меньшей мере одну часть информации движения кандидата слияния.[00100] Merge index: may mean an index 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.
[00101] Единица преобразования: может означать базовую единицу при выполнении кодирования/декодирования, такого как преобразование, обратное преобразование, квантование, деквантование, кодирование/декодирование коэффициентов преобразования остаточного сигнала. Одна единица преобразования может разбиваться на множество единиц преобразования более низкого уровня, имеющих меньший размер. Здесь, преобразование/обратное преобразование может содержать по меньшей мере одно из первого преобразования/первого обратного преобразования и второго преобразования/второго обратного преобразования.[00101] Transformation unit: may mean a basic unit when performing encoding/decoding, such as transforming, inverse transforming, quantization, dequantization, 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.
[00102] Масштабирование: может означать процесс умножения квантованного уровня на коэффициент. Коэффициент преобразования может генерироваться путем масштабирования квантованного уровня. Масштабирование может также упоминаться как деквантование.[00102] 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.
[00103] Параметр квантования: может означать значение, используемое при генерировании квантованного уровня с использованием коэффициента преобразования при квантовании. Параметр квантования также может означать значение, используемое при генерировании коэффициента преобразования путем масштабирования квантованного уровня при деквантовании. Параметр квантования может представлять собой значение, отображаемое на размер шага квантования.[00103] 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 when generating the conversion factor by scaling the quantized level during dequantization. The quantization parameter may be a value mapped to a quantization step size.
[00104] Дельта-параметр квантования: может означать разностное значение между предсказанным параметром квантования и параметром квантования целевой единицы кодирования/ декодирования.[00104] Delta quantization parameter: may mean the difference value between the predicted quantization parameter and the quantization parameter of the target encoding/decoding unit.
[00105] Сканирование: может означать способ упорядочения коэффициентов в пределах единицы, блока или матрицы. Например, переход от двумерной матрицы коэффициентов к одномерной матрице может упоминаться как сканирование, и переход от одномерной матрицы коэффициентов к двумерной матрице может упоминаться как сканирование или обратное сканирование.[00105] 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.
[00106] Коэффициент преобразования: может означать значение коэффициента, генерируемое после выполнения преобразования в кодере. Он может означать значение коэффициента, генерируемое после выполнения по меньшей мере одного из энтропийного декодирования и деквантования в декодере. Квантованный уровень, полученный путем квантования коэффициента преобразования или остаточного сигнала, или уровень квантованного коэффициента преобразования также может охватываться смысловым значением коэффициента преобразования.[00106] 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.
[00107] Квантованный уровень: может означать значение, генерируемое квантованием коэффициента преобразования или остаточного сигнала в кодере. Альтернативно, квантованный уровень может означать значение, которое является целью деквантования для выполнения деквантования в декодере. Аналогичным образом, уровень квантованного коэффициента преобразования, который является результатом преобразования и квантования, также может охватываться смысловым значением квантованного уровня.[00107] 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.
[00108] Ненулевой коэффициент преобразования: может означать коэффициент преобразования, имеющий значение иное, чем нуль, или уровень коэффициента преобразования или квантованный уровень, имеющий значение иное, чем нуль.[00108] 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.
[00109] Матрица квантования: может означать матрицу, используемую в процессе квантования или процессе деквантования, выполняемом для улучшения субъективного или объективного качества изображения. Матрица квантования также может упоминаться как список масштабирования.[00109] 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.
[00110] Коэффициент матрицы квантования: может означать каждый элемент в матрице квантования. Коэффициент матрицы квантования также может упоминаться как коэффициент матрицы.[00110] 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.
[00111] Матрица по умолчанию: может означать предопределенную матрицу квантования, заранее определенную в кодере или декодере.[00111] Default matrix: may mean a predefined quantization matrix predefined in the encoder or decoder.
[00112] Матрица не по умолчанию: может означать матрицу квантования, которая не определена заранее в кодере или декодере, а сигнализируется пользователем.[00112] Non-default matrix: may mean a quantization matrix that is not predefined in the encoder or decoder, but is signaled by the user.
[00113] Статистическое значение: статистическое значение для по меньшей мере одного из переменной, параметра кодирования, постоянного значения и т.д., которые имеют вычисляемое конкретное значение, может быть одним или более из среднего значения, суммарного значения, взвешенного среднего значения, взвешенного суммарного значения, минимального значения, максимального значения, наиболее частого значения, медианного значения, интерполированного значения соответствующего конкретного значения.[00113] 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.
[00114] Фиг. 1 представляет собой блок-схему, показывающую конфигурацию устройства кодирования в соответствии с вариантом осуществления, в котором применимо настоящее изобретение.[00114] 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.
[00115] Устройство 100 кодирования может быть кодером, устройством кодирования видео или устройством кодирования изображения. Видео может включать по меньшей мере одно изображение. Устройство 100 кодирования может последовательно кодировать по меньшей мере одно изображение.[00115] 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.
[00116] Со ссылкой на фиг. 1, устройство 100 кодирования может включать в себя модуль 111 предсказания движения, модуль 112 компенсации движения, модуль 120 интра-предсказания, переключатель 115, вычитатель 125, модуль 130 преобразования, модуль 140 квантования, модуль 150 энтропийного кодирования, модуль 160 деквантования, модуль 170 обратного преобразования, сумматор 175, модуль 180 фильтрации и буфер 190 опорных картинок.[00116] 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.
[00117] Устройство 100 кодирования может выполнять кодирование входного изображения с использованием интра-режима или интер-режима или их обоих. Кроме того, устройство 100 кодирования может генерировать битовый поток, включающий в себя кодированную информацию, посредством кодирования входного изображения, и выводить сгенерированный битовый поток. Сгенерированный битовый поток может быть сохранен в считываемом компьютером носителе записи или может передаваться потоком по проводной/беспроводной среде передачи. Когда интра-режим используется в качестве режима предсказания, переключатель 115 может переключаться на интра-режим. Альтернативно, когда интер-режим используется в качестве режима предсказания, переключатель 115 может переключаться на интер-режим. Здесь, интра-режим может означать режим интра-предсказания, и интер-режим может означать режим интер-предсказания. Устройство 100 кодирования может генерировать блок предсказания для входного блока входного изображения. Кроме того, устройство 100 кодирования может кодировать остаточный блок с использованием остатка входного блока и блока предсказания после генерации блока предсказания. Входное изображение может называться текущим изображением, которое представляет собой текущую цель кодирования. Входной блок может называться текущим блоком, который представляет собой текущую цель кодирования, или целевым блоком кодирования.[00117] 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 bit stream including encoded information by encoding an input image, and output the generated bit stream. 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.
[00118] Когда режим предсказания является интра-режимом, модуль 120 интра-предсказания может использовать выборку блока, который уже был кодирован/декодирован и является смежным с текущим блоком, в качестве опорной выборки. Модуль 120 интра-предсказания может выполнять пространственное предсказание для текущего блока с использованием опорной выборки или генерировать выборки предсказания входного блока путем выполнения пространственного предсказания. Здесь, внутреннее (интра) предсказание может означать интра-предсказание,[00118] 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,
[00119] Когда режим предсказания является интер-режимом, модуль 111 предсказания движения может извлекать область, которая наилучшим образом согласуется с входным блоком, из опорного изображения при выполнении предсказания движения и выводить вектор движения с использованием извлеченной области. В этом случае, область поиска может быть использована в качестве упомянутой области. Опорное изображение может быть сохранено в буфере 190 опорных картинок. Здесь, когда кодирование/ декодирование для опорного изображения выполнено, оно может быть сохранено в буфере 190 опорных картинок.[00119] 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.
[00120] Модуль 112 компенсации движения может генерировать блок предсказания путем выполнения компенсации движения для текущего блока с использованием вектора движения. Здесь, интер-предсказание может означать интер-предсказание или компенсацию движения.[00120] The motion compensation unit 112 can generate a prediction block by performing motion compensation for the current block using a motion vector. Here, inter-prediction may mean inter-prediction or motion compensation.
[00121] Когда значение вектора движения не является целым числом, модуль 111 предсказания движения и модуль 112 компенсации движения могут генерировать блок предсказания путем применения интерполяционного фильтра к частичной области опорной картинки. Чтобы выполнить предсказание между картинками или компенсацию движения над единицей кодирования, может определяться, какой режим из режима пропуска, режима слияния, режима расширенного предсказания вектора движения (AMVP) и режима ссылки на текущую картинку используется для предсказания движения и компенсации движения единицы предсказания, включенной в соответствующую единицу кодирования. Затем, предсказание между картинками или компенсация движения могут выполняться по-разному в зависимости от определенного режима.[00121] 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.
[00122] Вычитатель 125 может генерировать остаточный блок с использованием разности входного блока и блока предсказания. Остаточный блок может называться остаточным сигналом. Остаточный сигнал может означать разность между исходным сигналом и сигналом предсказания. Кроме того, остаточный сигнал может быть сигналом, генерируемым путем преобразования или квантования или преобразования и квантования разности между исходным сигналом и сигналом предсказания. Остаточный блок может быть остаточным сигналом единицы блока.[00122] 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.
[00123] Модуль 130 преобразования может генерировать коэффициент преобразования путем выполнения преобразования остаточного блока и выводить сгенерированный коэффициент преобразования. Здесь, коэффициент преобразования может быть значением коэффициента, генерируемым путем выполнения преобразования остаточного блока. Когда применяется режим пропуска преобразования, модуль 130 преобразования может пропустить преобразование остаточного блока.[00123] 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.
[00124] Квантованный уровень может генерироваться путем применения квантования к коэффициенту преобразования или к остаточному сигналу. Далее, квантованный уровень может также называться коэффициентом преобразования в вариантах осуществления.[00124] 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 called a conversion coefficient in embodiments.
[00125] Модуль 140 квантования может генерировать квантованный уровень путем квантования коэффициента преобразования или остаточного сигнала в соответствии с параметром и выводить сгенерированный квантованный уровень. Здесь, модуль 140 квантования может квантовать коэффициент преобразования с использованием матрицы квантования.[00125] 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.
[00126] Модуль 150 энтропийного кодирования может генерировать битовый поток путем выполнения энтропийного кодирования в соответствии с распределением вероятности по значениям, вычисленным модулем 140 квантования, или по значениям параметра кодирования, вычисленным при выполнении кодирования, и выводить сгенерированный битовый поток. Модуль 150 энтропийного кодирования может выполнять энтропийное кодирование информации выборки изображения и информации для декодирования изображения. Например, информация для декодирования изображения может включать синтаксический элемент. [00126] 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.
[00127] Когда применяется энтропийное кодирование, символы представляются таким образом, что меньшее число битов назначается символу, имеющему высокую вероятность генерации, и большее число битов назначается символу, имеющему низкую вероятность генерации, и, таким образом, размер битового потока для символов, подлежащих кодированию, может уменьшаться. Модуль 150 энтропийного кодирования может использовать способ кодирования для энтропийного кодирования, такой как экспоненциальное кодирование Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и т.д. Например, модуль 150 энтропийного кодирования может выполнять энтропийное кодирование с использованием таблицы кодирования/кода переменной длины (VLC). Кроме того, модуль 150 энтропийного кодирования может выводить способ бинаризации целевого символа и модель вероятности целевого символа/бина и выполнять арифметическое кодирование с использованием выведенного способа бинаризации и контекстной модели.[00127] 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.
[00128] Чтобы кодировать уровень коэффициента преобразования (квантованный уровень), модуль 150 энтропийного кодирования может преобразовать коэффициент в форме двумерного блока в форму одномерного вектора с использованием способа сканирования коэффициентов преобразования.[00128] 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 the form of a one-dimensional vector using a transform coefficient scanning method.
[00129] Параметр кодирования может включать информацию (флаг, индекс, и т.д.), такую как синтаксический элемент, который кодируется в кодере и сигнализируется в декодер, и информацию, выведенную при выполнении кодирования или декодирования. Параметр кодирования может означать информацию, требуемую при кодировании или декодировании изображения. Например, по меньшей мере одно значение или форма комбинации из размера единицы/блока, глубины единицы/блока, информации разбиения единицы/блока, формы единицы/блока, структуры разбиения единицы/блока, следует ли разбивать в форме квадродерева, следует ли разбивать в форме двоичного дерева, направления разбиения формы двоичного дерева (горизонтальное направление или вертикальное направление), формы разбиения в форме двоичного дерева (симметричное разбиение или асимметричное разбиение), разбита ли текущая единица кодирования путем разбиения троичного дерева, направления (горизонтальное или вертикальное направление) разбиения троичного дерева, типа (симметричный или асимметричный тип) разбиения троичного дерева, разбита ли текущая единица кодирования путем разбиения дерева множества типов, направления (горизонтальное или вертикальное направление) разбиения дерева множества типов, типа (симметричный или асимметричный тип) разбиения дерева множества типов и структуры дерева (двоичное дерево или троичное дерево) разбиения дерева множества типов, режима предсказания (интра-предсказание или интер-предсказание), режима/направления интра-предсказания яркости, режима/направления интра-предсказания цветности, информации интра-разбиения, информации интер-разбиения, флага разбиения блока кодирования, флага разбиения блока предсказания, флага разбиения блока преобразования, способа фильтрации опорной выборки, отвода фильтра опорной выборки, коэффициента фильтра опорной выборки, способа фильтрации блока предсказания, отвода фильтра блока предсказания, коэффициента фильтра блока предсказания, способа фильтрации границы блока предсказания, отвода фильтра границы блока предсказания, коэффициента фильтра границы блока предсказания, режима интра-предсказания, режима интер-предсказания, информации движения, вектора движения, разности векторов движения, индекса опорной картинки, угла интер-предсказания, указателя интер-предсказания, флага использования списка предсказания, списка опорных картинок, опорной картинки, индекса предсказателя вектора движения, кандидата предсказателя вектора движения, списка кандидатов вектора движения, следует ли использовать режим слияния, индекса слияния, кандидата слияния, списка кандидатов слияния, следует ли использовать режим пропуска, типа фильтра интерполяции, отвода фильтра интерполяции, коэффициента фильтра интерполяции, размера вектора движения, точности представления вектора движения, типа преобразования, размера преобразования, информации, используется ли первичное (первое) преобразование, информации, используется ли вторичное преобразование, индекса первичного преобразования, индекса вторичного преобразования, информации, представлен ли остаточный сигнал, шаблона кодированного блока, флага кодированного блока (CBF), параметра квантования, остатка параметра квантования, матрицы квантования, следует ли применять внутриконтурный фильтр, коэффициента внутриконтурного фильтра, отвода внутриконтурного фильтра, формы внутриконтурного фильтра, следует ли применять фильтр устранения блочности, коэффициента фильтра устранения блочности, отвода фильтра устранения блочности, силы фильтра устранения блочности, формы фильтра устранения блочности, следует ли применять адаптивное смещение выборки, значения адаптивного смещения выборки, категории адаптивного смещения выборки, типа адаптивного смещения выборки, следует ли применять адаптивный контурный фильтр, коэффициента адаптивного контурного фильтра, отвода адаптивного контурного фильтра, формы адаптивного контурного фильтра, способа бинаризации/обратной бинаризации, способа определения контекстной модели, способа обновления контекстной модели, следует ли выполнять регулярный режим, следует ли выполнять режим обхода, бина контекста, бина обхода, флага значимого коэффициента, флага последнего значимого коэффициента, кодированного флага для единицы группы коэффициентов, положения последнего значимого коэффициента, флага для того, является ли значение коэффициента большим, чем 1, флага для того, является ли значение коэффициента большим, чем 2, флага для того, является ли значение коэффициента большим, чем 3, информации об остаточном значении коэффициента, информации знака, восстановленной выборки яркости, восстановленной выборки цветности, остаточной выборки яркости, остаточной выборки цветности, коэффициента преобразования яркости, коэффициента преобразования цветности, квантованного уровня яркости, квантованного уровня цветности, способа сканирования уровня коэффициента преобразования, размера области поиска вектора движения на стороне декодера, формы области поиска вектора движения на стороне декодера, числа раз поиска вектора движения на стороне декодера, информации о размере CTU, информации о минимальном размере блока, информации о максимальном размере блока, информации о максимальной глубине блока, информации о минимальной глубине блока, последовательности отображения/вывода изображения, информации идентификации слайса, типа слайса, информации разбиения слайса, информации идентификации мозаичного элемента, типа мозаичного элемента, информации мозаичного разбиения, информации идентификации группы мозаичных элементов, типа группы мозаичных элементов, информации разбиения группы мозаичных элементов, типа картинки, битовой глубины входной выборки, битовой глубины восстановленной выборки, битовой глубины остаточной выборки, битовой глубины коэффициента преобразования, битовой глубины квантованного уровня и информации о сигнале яркости или информации о сигнале цветности могут быть включены в параметр кодирования.[00129] 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 the residual signal, coded block pattern, coded block flag (CBF), quantization parameter, quantization parameter remainder, 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 partition 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.
[00130] Здесь, сигнализация флага или индекса может означать, что соответствующий флаг или индекс энтропийно закодирован и включен в битовый поток кодером, и может означать, что соответствующий флаг или индекс энтропийно декодируется из битового потока декодером.[00130] 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.
[00131] Когда устройство 100 кодирования выполняет кодирование посредством интер-предсказания, кодированное текущее изображение может быть использовано как опорное изображение для другого изображения, которое обрабатывается после этого. Соответственно, устройство 100 кодирования может восстанавливать или декодировать закодированное текущее изображение, или сохранять восстановленное или декодированное изображение как опорное изображение в буфере 190 опорных картинок.[00131] 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 reconstruct or decode the encoded current picture, or store the reconstructed or decoded image as a reference picture in the reference picture buffer 190.
[00132] Квантованный уровень может деквантоваться в модуле 160 деквантования или может обратно преобразовываться в модуле 170 обратного преобразования. Деквантованный и/или обратно преобразованный коэффициент может суммироваться с блоком предсказания посредством сумматора 175. Путем суммирования деквантованного и/или обратно преобразованного коэффициента с блоком предсказания может генерироваться восстановленный блок. Здесь, деквантованный и/или обратно преобразованный коэффициент может означать коэффициент, над которым выполнено по меньшей мере одно из деквантования и обратного преобразования, и может означать восстановленный остаточный блок.[00132] The quantized level may be dequantized in dequantization module 160 or may be inversely converted 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.
[00133] Восстановленный блок может проходить через модуль 180 фильтрации. Модуль 180 фильтрации может применять по меньшей мере одно из фильтра устранения блочности, адаптивного смещения выборки (SAO) и адаптивного контурного фильтра (ALF) к восстановленной выборке, восстановленному блоку или восстановленному изображению. Модуль 180 фильтрации может упоминаться как контурный фильтр.[00133] 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.
[00134] Фильтр устранения блочности может устранять блочное искажение, генерируемое на границах между блоками. Для определения того, следует ли применять фильтр устранения блочности, может определяться, следует ли применять фильтр устранения блочности к текущему блоку, на основе выборок, включенных в различные строки или столбцы, которые включены в блок. Когда фильтр устранения блочности применяется к блоку, другой фильтр может быть применен в соответствии с требуемой силой (уровнем) фильтрации устранения блочности.[00134] 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 required strength (level) of deblocking filtering.
[00135] Для того чтобы скомпенсировать ошибку кодирования, надлежащее значение смещения может быть добавлено к значению выборки с использованием адаптивного смещения выборки. Адаптивное смещение выборки может корректировать смещение изображения с устраненной блочностью относительно исходного изображения на единицу выборки. Может использоваться способ разбиения выборок изображения на предопределенное количество областей, определения области, к которой применяется смещение, и применения смещения к определенной области, или способ применения смещения с учетом краевой информации по каждой выборке.[00135] 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.
[00136] Адаптивный контурный фильтр может выполнять фильтрацию на основе результата сравнения отфильтрованного восстановленного изображения и исходного изображения. Выборки, включенные в изображение, могут разбиваться на предопределенные группы, может определяться фильтр для применения к каждой группе, и может выполняться дифференциальная фильтрация для каждой группы. Информация о том, следует ли применять ALF, может сигнализироваться посредством единиц кодирования (CU), и форма и коэффициент ALF, подлежащего применению к каждому блоку, могут варьироваться. [00136] The adaptive edge filter can 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.
[00137] Восстановленный блок или восстановленное изображение, после прохождения через модуль 180 фильтрации, может сохраняться в буфере 190 опорных картинок. Восстановленный блок, обработанный модулем 180 фильтрации, может быть частью опорного изображения. То есть, опорное изображение представляет собой восстановленное изображение, составленное из восстановленных блоков, обработанных модулем 180 фильтрации. Сохраненное опорное изображение может быть использовано позже в интер-предсказании или компенсации движения.[00137] 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.
[00138] Фиг. 2 представляет собой блок-схему, показывающую конфигурацию устройства декодирования в соответствии с вариантом осуществления, в котором применимо настоящее изобретение.[00138] FIG. 2 is a block diagram showing the configuration of a decoding apparatus according to an embodiment to which the present invention is applicable.
[00139] Устройство 200 декодирования может представлять собой декодер, устройство декодирования видео или устройство декодирования изображения.[00139] The decoding device 200 may be a decoder, a video decoding device, or an image decoding device.
[00140] Со ссылкой на фиг. 2, устройство 200 декодирования может включать в себя модуль 210 энтропийного декодирования, модуль 220 деквантования, модуль 230 обратного преобразования, модуль 240 интра-предсказания, модуль 250 компенсации движения, сумматор 225, модуль 260 фильтрации и буфер 270 опорных картинок.[00140] 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.
[00141] Устройство 200 декодирования может принимать битовый поток, выведенный из устройства 100 кодирования. Устройство 200 декодирования может принимать битовый поток, сохраненный в считываемом компьютером носителе записи, или может принимать битовый поток, передаваемый путем потоковой передачи посредством проводной/беспроводной среды передачи. Устройство 200 декодирования может декодировать битовый поток с использованием интра-режима или интер-режима. Кроме того, устройство 200 декодирования может генерировать восстановленное изображение, генерируемое путем декодирования, или декодированное изображение и выводить восстановленное изображение или декодированное изображение.[00141] 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.
[00142] Когда режим предсказания, используемый при декодировании, является интра-режимом, переключатель может быть переключен на интра-режим. Альтернативно, когда режим предсказания, используемый при декодировании, является интер-режимом, переключатель может быть переключен на интер-режим.[00142] 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.
[00143] Устройство 200 декодирования может получать восстановленный остаточный блок путем декодирования входного битового потока и генерировать блок предсказания. Когда восстановленный остаточный блок и блок предсказания получены, устройство 200 декодирования может генерировать восстановленный блок, который становится целью декодирования, путем суммирования восстановленного остаточного блока с блоком предсказания. Целевой блок декодирования может называться текущим блоком.[00143] 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.
[00144] Модуль 210 энтропийного декодирования может генерировать символы путем энтропийного декодирования битового потока в соответствии с распределением вероятности. Сгенерированные символы могут включать в себя символ формы квантованного уровня. Здесь, способ энтропийного декодирования может быть процессом, обратным способу энтропийного кодирования, описанному выше.[00144] 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.
[00145] Для того чтобы декодировать уровень коэффициента преобразования (квантованный уровень), модуль 210 энтропийного декодирования может преобразовать коэффициент в форме одномерного вектора в форму двумерного блока с использованием способа сканирования коэффициента преобразования.[00145] 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 a two-dimensional block form using a transform coefficient scanning method.
[00146] Квантованный уровень может быть деквантован в модуле 220 деквантования или обратно преобразован в модуле 230 обратного преобразования. Квантованный уровень может быть результатом деквантования и/или обратного преобразования и может генерироваться как восстановленный остаточный блок. Здесь, модуль 220 деквантования может применять матрицу квантования к квантованному уровню.[00146] 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.
[00147] Когда используется интра-режим, модуль 240 интра-предсказания может генерировать блок предсказания путем выполнения, для текущего блока, пространственного предсказания, которое использует значение выборки блока, смежного с целевым блоком декодирования, и который уже был декодирован.[00147] 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.
[00148] Когда используется интер-режим, модуль 250 компенсации движения может генерировать блок предсказания путем выполнения, для текущего блока, компенсации движения, которая использует вектор движения и опорное изображение, сохраненное в буфере 270 опорных картинок.[00148] 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.
[00149] Сумматор 225 может генерировать восстановленный блок путем суммирования восстановленного остаточного блока с блоком предсказания. Модуль 260 фильтрации может применять по меньшей мере одно из фильтра устранения блочности, адаптивного смещения выборки и адаптивного контурного фильтра к восстановленному блоку или восстановленному изображению. Модуль 260 фильтрации может выводить восстановленное изображение. Восстановленный блок или восстановленное изображение может сохраняться в буфере 270 опорных картинок и использоваться при выполнении интер-предсказания. Восстановленный блок, обработанный модулем 260 фильтрации, может быть частью опорного изображения. То есть, опорное изображение представляет собой восстановленное изображение, составленное из восстановленных блоков, обработанных модулем 260 фильтрации. Сохраненное опорное изображение может быть использовано позже при интер-предсказании или компенсации движения.[00149] 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 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.
[00150] Фиг. 3 представляет собой вид, схематично показывающий структуру разбиения изображения при кодировании и декодировании изображения. Фиг. 3 схематично показывает пример разбиения одной единицы во множество более низких единиц.[00150] 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.
[00151] Для того чтобы эффективно разбивать изображение, при кодировании и декодировании, может быть использована единица кодирования (CU). Единица кодирования может быть использована как базовая единица при кодировании/декодировании изображения. Кроме того, единица кодирования может быть использована в качестве единицы для различения режима интра-предсказания и режима интер-предсказания при кодировании/декодировании изображения. Единица кодирования может быть базовой единицей, используемой для предсказания, преобразования, квантования, обратного преобразования, деквантования или процесса кодирования/декодирования коэффициента преобразования. [00151] 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.
[00152] Со ссылкой на фиг. 3, изображение 300 последовательно разбивается на наибольшую единицу кодирования (LCU), и единица LCU определяется как структура разбиения. Здесь, LCU может быть использована в том же смысле, что и единица дерева кодирования (CTU). Разбиение единицы может означать разбиение блока, ассоциированного с единицей. В информацию разбиения блока может быть включена информация о глубине единицы. Информация глубины может представлять число раз и/или степень, в которой разбивается единица. Одна единица может разбиваться на множество единиц более низкого уровня, иерархически ассоциированных с информацией глубины на основе древовидной структуры. Иными словами, некоторая единица и единица более низкого уровня, генерируемая путем разбиения данной единицы, могут соответствовать узлу и дочернему узлу данного узла, соответственно. Каждая разделенная более низкая единица может иметь информацию глубины. Информация глубины может представлять собой информацию, представляющую размер CU, и может быть сохранена в каждой CU. Глубина единицы представляет число раз и/или степеней разбиения единицы. Поэтому информация разбиения единицы более низкого уровня может содержать информацию о размере единицы более низкого уровня.[00152] 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.
[00153] Структура разбиения может означать распределение единицы кодирования (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.[00153] 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.
[00154] Кроме того, информация о том, следует ли разбивать CU, может быть представлена с использованием информации разбиения CU. Информация разбиения может представлять собой 1-битовую информацию. Все CU, за исключением SCU, могут включать информацию разбиения. Например, когда значение информации разбиения равно первому значению, CU может не разбиваться, когда значение информации разбиения равно второму значению, CU может разбиваться. [00154] 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 may not be partitioned; when the value of the partition information is equal to the second value, the CU may be partitioned.
[00155] Со ссылкой на фиг. 3, LCU, имеющая глубину 0, может представлять собой 64×64 блок. 0 может быть минимальной глубиной. SCU, имеющая глубину 3, может представлять собой 8×8 блок. 3 может быть максимальной глубиной. CU в виде 32×32 блока и 16×16 блока могут быть соответственно представлены как глубина 1 и глубина 2. [00155] 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.
[00156] Например, когда одна единица кодирования разбивается на четыре единицы кодирования, горизонтальный размер и вертикальный размер четырех разделенных единиц кодирования могут быть равны половинному размеру горизонтального и вертикального размера CU перед разбиением. В одном варианте осуществления, когда единица кодирования, имеющая размер 32×32, разбивается на четыре единицы кодирования, каждая из четырех разделенных единиц кодирования может иметь размер 16×16. Когда одна единица кодирования разбивается на четыре единицы кодирования, можно сказать, что единица кодирования может разбиваться в форму квадродерева.[00156] For example, when one encoding unit is divided into four encoding units, the horizontal size and vertical size of the four divided encoding units may be equal to half the size of the horizontal and vertical size of the CU before dividing. 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.
[00157] Например, когда одна единица кодирования разбита на две под-единицы кодирования, горизонтальный или вертикальный размер (ширина или высота) каждой из двух под-единиц кодирования может быть половиной горизонтального или вертикального размера исходной единицы кодирования. Например, когда единица кодирования, имеющая размер 32×32, вертикально разбита на две под-единицы кодирования, каждая из двух под-единиц кодирования может иметь размер 16×32. Например, когда единица кодирования, имеющая размер 8×32, горизонтально разбита на две под-единицы кодирования, каждая из двух под-единиц кодирования может иметь размер 8×16. Когда одна единица кодирования разбита на две под-единицы кодирования, можно сказать, что единица кодирования двоично разбита или разбита посредством структуры разбиения двоичного дерева.[00157] 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.
[00158] Например, когда одна единица кодирования разбита на три под-единицы кодирования, горизонтальный или вертикальный размер единицы кодирования может разбиваться в отношении 1:2:1, тем самым формируя три под-единицы кодирования, горизонтальный или вертикальный размеры которых находятся в отношении 1:2:1. Например, когда единица кодирования, имеющая размер 16×32, горизонтально разбита на три под-единицы кодирования, три под-единицы кодирования могут иметь размеры 16×8, 16×16 и 16×8, соответственно, в порядке от самой верхней до самой нижней под-единицы кодирования. Например, когда единица кодирования, имеющая размер 32×32 вертикально разделяется на три под-единицы кодирования, три под-единицы кодирования могут иметь размеры 8×32, 16×32 и 8×32, соответственно, в порядке от левой до правой под-единицы кодирования. Когда одна единица кодирования разбита на три под-единицы кодирования, можно сказать, что единица кодирования троично разбита или разбита посредством структуры разбиения троичного дерева.[00158] 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 dimensions 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.
[00159] На фиг. 3, единица дерева кодирования (CTU) 320 является примером CTU, к которой применяются структура разбиения квадродерева, структура разбиения двоичного дерева и структура разбиения троичного дерева.[00159] 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.
[00160] Как описано выше, для того чтобы разбить CTU, может применяться по меньшей мере одна из структуры разбиения квадродерева, структуры разбиения двоичного дерева и структуры разбиения троичного дерева. Различные структуры древовидного разбиения могут последовательно применяться к CTU, в соответствии с предопределенным порядком приоритета. Например, структура разбиения квадродерева может преимущественным образом применяться к CTU. Единица кодирования, которая больше не может быть разбита с использованием структуры разбиения квадродерева, может соответствовать листовому узлу квадродерева. Единица кодирования, соответствующая листовому узлу квадродерева, может служить в качестве корневого узла структуры разбиения двоичного и/или троичного дерева. То есть, единица кодирования, соответствующая листовому узлу квадродерева, может быть далее разбита согласно структуре разбиения двоичного дерева или структуре разбиения троичного дерева или может больше не разбиваться. Поэтому, путем запрещения блоку кодирования, который является результатом разбиения двоичного дерева или разбиения троичного дерева единицы кодирования, соответствующей листовому узлу квадродерева, подвергаться дальнейшему разбиению квадродерева, может эффективно выполняться разбиение блока и/или сигнализация информации разбиения.[00160] 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.
[00161] Тот факт, что единица кодирования, соответствующая узлу квадродерева, является разделенной, может сигнализироваться с использованием информации квадро-разбиения. Информация квадро-разбиения, имеющая первое значение (например, “1”), может указывать, что текущая единица кодирования разбита согласно структуре разбиения квадродерева. Информация квадро-разбиения, имеющая второе значение (например, “0”), может указывать, что текущая единица кодирования не разбита согласно структуре разбиения квадродерева. Информация квадро-разбиения может представлять собой флаг, имеющий предопределенную длину (например, один бит).[00161] 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).
[00162] Может не иметься приоритета между разбиением двоичного дерева и разбиением троичного дерева. То есть, единица кодирования, соответствующая листовому узлу квадродерева, может далее подвергаться произвольному разбиению из разбиения двоичного дерева и разбиения троичного дерева. Кроме того, единица кодирования, сгенерированная посредством разбиения двоичного дерева или разбиения троичного дерева, может подвергаться дальнейшему разбиению двоичного дерева или дальнейшему разбиению троичного дерева или может не разбиваться далее.[00162] 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.
[00163] Древовидная структура, в которой не имеется приоритета среди разбиения двоичного дерева и разбиения троичного дерева, упоминается как структура дерева множества типов. Единица кодирования, соответствующая листовому узлу квадродерева, может служить в качестве корневого узла дерева множества типов. То, следует ли разбивать единицу кодирования, которая соответствует узлу дерева множества типов, может сигнализироваться с использованием по меньшей мере одной из информации указания разбиения дерева множества типов, информации направления разбиения и информации дерева разбиения. Для разбиения единицы кодирования, соответствующей узлу дерева множества типов, информация указания разбиения дерева множества типов, направление разбиения и информация дерева разбиения могут последовательно сигнализироваться.[00163] 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.
[00164] Информация указания разбиения дерева множества типов, имеющая первое значение (например, “1”), может указывать, что текущая единица кодирования должна подвергаться разбиению дерева множества типов. Информация указания разбиения дерева множества типов, имеющая второе значение (например, “0”), может указывать, что текущая единица кодирования не должна подвергаться разбиению дерева множества типов.[00164] 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.
[00165] Когда единица кодирования, соответствующая узлу дерева множества типов, дополнительно разбивается согласно структуре разбиения дерева множества типов, единица кодирования может включать информацию направления разбиения. Информация направления разбиения может указывать, в каком направлении следует разбивать текущую единицу кодирования для разбиения дерева множества типов. Информация направления разбиения, имеющая первое значение (например, “1”), может указывать, что текущая единица кодирования должна разбиваться по вертикали. Информация направления разбиения, имеющая второе значение (например, “0”), может указывать, что текущая единица кодирования должна разбиваться по горизонтали.[00165] 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.
[00166] Когда единица кодирования, соответствующая узлу дерева множества типов, дополнительно разбивается согласно структуре разбиения дерева множества типов, текущая единица кодирования может включать информацию дерева разбиения. Информация дерева разбиения может указывать структуру дерева разбиения, которая должна использоваться для разбиения узла дерева множества типов. Информация дерева разбиения, имеющая первое значение (например, “1”), может указывать, что текущая единица кодирования должна разбиваться согласно структуре разбиения двоичного дерева. Информация дерева разбиения, имеющая второе значение (например, “0”), может указывать, что текущая единица кодирования должна разбиваться согласно структуре разбиения троичного дерева.[00166] 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 partition tree information may indicate a partition 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.
[00167] Информация указания разбиения, информация дерева разбиения и информация направления разбиения могут, каждая, представлять собой флаг, имеющий предопределенную длину (например, один бит).[00167] 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).
[00168] По меньшей мере любая одна из информации указания разбиения квадродерева, информации указания разбиения дерева множества типов, информации направления разбиения и информации дерева разбиения может энтропийно кодироваться/декодироваться. Для энтропийного кодирования/декодирования этих типов информации, может использоваться информация о соседней единице кодирования, смежной с текущей единицей кодирования. Например, существует высокая вероятность того, что тип разбиения (разбита или неразбита, дерево разбиения и/или направление разбиения) левой соседней единицы кодирования и/или верхней соседней единицы кодирования текущей единицы кодирования подобен таковому для текущей единицы кодирования. Поэтому, контекстная информация для энтропийного кодирования/декодирования информации о текущей единице кодирования может быть выведена из информации о соседних единицах кодирования. Информация о соседних единицах кодирования может включать по меньшей мере любое одно из информации квадро-разбиения, информации указания разбиения дерева множества типов, информации направления разбиения и информации дерева разбиения.[00168] 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 can 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, multiple-type tree partitioning indication information, partitioning direction information, and partitioning tree information.
[00169] В качестве другого примера, из разбиения двоичного дерева и разбиения троичного дерева, предпочтительно может выполняться разбиение двоичного дерева. То есть, текущая единица кодирования может главным образом подвергаться разбиению двоичного дерева, и затем единица кодирования, соответствующая листовому узлу двоичного дерева, может быть установлена в качестве корневого узла для разбиения троичного дерева. В этом случае, ни разбиение квадродерева, ни разбиение двоичного дерева может не выполняться над единицей кодирования, соответствующей узлу троичного дерева.[00169] 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.
[00170] Единица кодирования, которая не может разбиваться согласно структуре разбиения квадродерева, структуре разбиения двоичного дерева и/или структуре разбиения троичного дерева, становится базовой единицей для кодирования, предсказания и/или преобразования. То есть единица кодирования не может далее разбиваться для предсказания и/или преобразования. Поэтому, информация структуры разбиения и информация разбиения, используемая для разбиения единицы кодирования в единицы предсказания и/или единицы преобразования, может не быть представлена в битовом потоке.[00170] 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, partition structure information and partition information used to partition a coding unit into prediction units and/or transformation units may not be represented in the bit stream.
[00171] Однако, когда размер единицы кодирования (т.е., базовой единицы для разбиения) больше, чем размер максимального блока преобразования, единица кодирования может рекурсивно разбиваться до тех пор, пока размер единицы кодирования не уменьшится, чтобы стать равным или меньшим, чем размер максимального блока преобразования. Например, когда размер единицы кодирования равен 64×64 и когда размер максимального блока преобразования равен 32×32, единица кодирования может разбиваться на четыре 32×32 блока для преобразования. Например, когда размер единицы кодирования равен 32×64 и размер максимального блока преобразования равен 32×32, единица кодирования может разбиваться на два 32×32 блока для преобразования. В этом случае, разбиение единицы кодирования для преобразования не сигнализируется отдельно и может определяться путем сравнения между горизонтальным или вертикальным размером единицы кодирования и горизонтальным или вертикальным размером максимального блока преобразования. Например, когда горизонтальный размер (ширина) единицы кодирования больше, чем горизонтальный размер (ширина) максимального блока преобразования, единица кодирования может быть вертикально разделена пополам. Например, когда вертикальный размер (длина) единицы кодирования больше, чем вертикальный размер (длина) максимального блока преобразования, единица кодирования может быть горизонтально разделена пополам.[00171] 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 into halves. 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.
[00172] Информация о максимальном и/или минимальном размере единицы кодирования и информация о максимальном и/или минимальном размере блока преобразования может сигнализироваться или определяться на более высоком уровне единицы кодирования. Более высокий уровень может представлять собой, например, уровень последовательности, уровень картинки, уровень слайса, уровень группы мозаичных элементов, уровень мозаичного элемента или т.п. Например, минимальный размер единицы кодирования может быть определен как 4×4. Например, максимальный размер блока преобразования может быть определен как 64×64. Например, минимальный размер блока преобразования может быть определен как 4×4.[00172] 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.
[00173] Информация о минимальном размере (минимальном размере квадродерева) единицы кодирования, соответствующей листовому узлу квадродерева, и/или информация о максимальной глубине (максимальной глубине дерева для дерева множества типов) от корневого узла до листового узла дерева множества типов может сигнализироваться или определяться на более высоком уровне единицы кодирования. Например, более высокий уровень может представлять собой уровень последовательности, уровень картинки, уровень слайса, уровень группы мозаичных элементов, уровень мозаичного элемента или т.п. Информация о минимальном размере квадродерева и/или информация о максимальной глубине дерева множества типов может сигнализироваться или определяться для каждого из внутри-картинного слайса и меж-картинного слайса.[00173] 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.
[00174] Разностная информация между размером CTU и максимальным размером блока преобразования может сигнализироваться или определяться на более высоком уровне единицы кодирования. Например, более высокий уровень может представлять собой уровень последовательности, уровень картинки, уровень слайса, уровень группы мозаичных элементов, уровень мозаичного элемента или т.п. Информация о максимальном размере единиц кодирования, соответствующих соответственным узлам двоичного дерева (далее упоминается как максимальный размер двоичного дерева), может определяться на основе размера единицы дерева кодирования и разностной информации. Максимальный размер единиц кодирования, соответствующих соответственным узлам троичного дерева (далее упоминается как максимальный размер троичного дерева), может варьироваться в зависимости от типа слайса. Например, для внутри-картинного слайса, максимальный размер троичного дерева может быть 32×32. Например, для меж-картинного слайса, максимальный размер троичного дерева может быть 128×128. Например, минимальный размер единиц кодирования, соответствующих соответственным узлам двоичного дерева (далее упоминается как минимальный размер двоичного дерева), и/или минимальный размер единиц кодирования, соответствующих соответственным узлам троичного дерева (далее упоминается как минимальный размер троичного дерева), может быть установлен в качестве минимального размера блока кодирования.[00174] 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 nodes of a binary tree (hereinafter referred to as the minimum size of a binary tree) and/or the minimum size of encoding units corresponding to the corresponding nodes of a ternary tree (hereinafter referred to as the minimum size of a ternary tree) may be set as minimum coding block size.
[00175] В качестве другого примера, максимальный размер двоичного дерева и/или максимальный размер троичного дерева может сигнализироваться или определяться на уровне слайса. Альтернативно, минимальный размер двоичного дерева и/или минимальный размер троичного дерева может сигнализироваться или определяться на уровне слайса.[00175] 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.
[00176] В зависимости от размера и информации глубины вышеописанных различных блоков, информация квадро-разбиения, информация указания разбиения дерева множества типов, информация дерева разбиения и/или информация направления разбиения могут включаться или могут не включаться в битовый поток.[00176] Depending on the size and depth information of the various blocks described above, quad-partition information, multiple-type tree partition indication information, partition tree information, and/or partition direction information may or may not be included in the bit stream.
[00177] Например, когда размер единицы кодирования не больше, чем минимальный размер квадродерева, единица кодирования не содержит информацию квадро-разбиения. Таким образом, информация квадро-разбиения может быть выведена из второго значения.[00177] For example, when the size of a coding unit is not larger than the minimum quadtree size, the coding unit does not contain quad-partition information. Thus, the quad-partition information can be inferred from the second value.
[00178] Например, когда размеры (горизонтальный и вертикальный размеры) единицы кодирования, соответствующей узлу дерева множества типов, больше, чем максимальные размеры (горизонтальный и вертикальный размеры) двоичного дерева и/или максимальные размеры (горизонтальный и вертикальный размеры) троичного дерева, единица кодирования может не быть двоично разделенной или троично разделенной. Соответственно, информация указания разбиения дерева множества типов может не сигнализироваться, а может выводиться из второго значения.[00178] 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 may not 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.
[00179] Альтернативно, когда размеры (горизонтальный и вертикальный размеры) единицы кодирования, соответствующей узлу дерева множества типов, являются теми же самыми, что и максимальные размеры (горизонтальный и вертикальный размеры) двоичного дерева и/или в два раза больше, чем максимальные размеры (горизонтальный и вертикальный размеры) троичного дерева, единица кодирования не может далее двоично разделяться или троично разделяться. Соответственно, информация указания разбиения дерева множества типов может не сигнализироваться, а может выводиться из второго значения. Это объясняется тем, что когда единица кодирования разбивается согласно структуре разбиения двоичного дерева и/или структуре разбиения троичного дерева, генерируется единица кодирования меньшая, чем минимальный размер двоичного дерева и/или минимальный размер троичного дерева.[00179] 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.
[00180] Альтернативно, разбиение двоичного дерева или разбиение троичного дерева может быть ограничено на основе размера единицы данных виртуального конвейера (далее, размер буфера конвейера). Например, когда единица кодирования разделяется на под-единицы кодирования, которые не соответствуют размеру буфера конвейера, посредством разбиения двоичного дерева или разбиения троичного дерева, соответствующее разбиение двоичного дерева или разбиение троичного дерева может ограничиваться. Размер буфера конвейера может быть размером максимального блока преобразования (например, 64×64). Например, когда размер буфера конвейера составляет 64×64, разделение, приведенное ниже, может ограничиваться.[00180] 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 (eg, 64x64). For example, when the pipeline buffer size is 64x64, the division below may be limited.
[00181] - N×M (N и/или M равно 128) Разбиение троичного дерева для единиц кодирования[00181] - N×M (N and/or M is 128) Ternary tree partition for coding units
[00182] - 128×N (N<=64) Разбиение двоичного дерева в горизонтальном направлении для единиц кодирования[00182] - 128×N (N<=64) Horizontal binary tree split for coding units
[00183] - N×128 (N<=64) Разбиение двоичного дерева в вертикальном направлении для единиц кодирования[00183] - N×128 (N<=64) Vertical binary tree partition for coding units
[00184] Альтернативно, когда глубина единицы кодирования, соответствующей узлу дерева множества типов, равна максимальной глубине дерева множества типов, единица кодирования не может далее двоично разбиваться и/или троично разбиваться. Соответственно, информация указания разбиения дерева множества типов может не сигнализироваться, а может выводиться из второго значения.[00184] 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.
[00185] Альтернативно, только когда по меньшей мере одно из разбиения двоичного дерева в вертикальном направлении, разбиения двоичного дерева в горизонтальном направлении, разбиения троичного дерева в вертикальном направлении и разбиения троичного дерева в горизонтальном направлении возможно для единицы кодирования, соответствующей узлу дерева множества типов, может сигнализироваться информация указания разбиения дерева множества типов. В противном случае, единица кодирования не может двоично разбиваться и/или троично разбиваться. Соответственно, информация указания разбиения дерева множества типов может не сигнализироваться, а может выводиться из второго значения.[00185] 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.
[00186] Альтернативно, только когда для единицы кодирования, соответствующей узлу дерева множества типов, возможны как разбиение двоичного дерева в вертикальном направлении, так и разбиение двоичного дерева в горизонтальном направлении, или как разбиение троичного дерева в вертикальном направлении, так и разбиение троичного дерева в горизонтальном направлении, информация направления разбиения может сигнализироваться. В противном случае, информация направления разбиения может не сигнализироваться, а может выводиться из значения, указывающего возможные направления разбиения.[00186] 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.
[00187] Альтернативно, только когда для дерева кодирования, соответствующего узлу дерева множества типов, возможны как разбиение двоичного дерева в вертикальном направлении, так и разбиение троичного дерева в вертикальном направлении, или как разбиение двоичного дерева в горизонтальном направлении, так и разбиение троичного дерева в горизонтальном направлении, информация дерева разбиения может сигнализироваться. В противном случае, информация дерева разбиения может не сигнализироваться, а может выводиться из значения, указывающего возможное разбиение древовидной структуры.[00187] 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.
[00188] Фиг. 4 представляет собой вид, показывающий процесс интра-предсказания.[00188] FIG. 4 is a view showing the intra-prediction process.
[00189] Стрелки от центра наружу на фиг. 4 могут представлять направления предсказания режимов интра-предсказания.[00189] The arrows are from the center outward in FIG. 4 may represent prediction directions of intra-prediction modes.
[00190] Интра-кодирование и/или декодирование может выполняться с использованием опорной выборки соседнего блока текущего блока. Соседний блок может быть восстановленным соседним блоком. Например, интра-кодирование и/или декодирование может выполняться с использованием параметра кодирования или значения опорной выборки, включенной в восстановленный соседний блок.[00190] 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.
[00191] Блок предсказания может означать блок, сгенерированный посредством выполнения интра-предсказания. Блок предсказания может соответствовать по меньшей мере одной из 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 и т.д.[00191] 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.
[00192] Интра-предсказание может выполняться согласно режиму интра-предсказания для текущего блока. Количество режимов интра-предсказания, которые может иметь текущий блок, может быть фиксированным значением и может быть значением, определяемым по-разному в соответствии с атрибутом блока предсказания. Например, атрибут блока предсказания может содержать размер блока предсказания и форму блока предсказания и т.д.[00192] 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.
[00193] Количество режимов интра-предсказания может быть зафиксировано равным N независимо от размера блока. Или количество режимов интра-предсказания может быть 3, 5, 9, 17, 34, 35, 36, 65 или 67 и т.д. Альтернативно, количество режимов интра-предсказания может варьироваться в соответствии с размером блока или типом цветового компонента или обоими. Например, количество режимов интра-предсказания может варьироваться в соответствии с тем, является ли цветовой компонент сигналом яркости или сигналом цветности. Например, когда размер блока становится большим, количество режимов интра-предсказания может увеличиваться. Альтернативно, количество режимов интра-предсказания блока компонента яркости может быть больше, чем количество режимов интра-предсказания блока компонента цветности.[00193] The number of intra-prediction modes can 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.
[00194] Режим интра-предсказания может быть неугловым режимом или угловым режимом. Неугловой режим может быть режимом DC или планарным режимом, а угловой режим может быть режимом предсказания, имеющим конкретное направление или угол. Режим интра-предсказания может быть выражен по меньшей мере одним из номера режима, значения режима, символа номера режима, угла режима и направления режима. Количество режимов интра-предсказания может быть M, которое больше 1, включая неугловой и угловой режим. Для интра-предсказания текущего блока может быть выполнен этап определения того, могут ли выборки, включенные в восстановленный соседний блок, использоваться в качестве опорных выборок текущего блока. Когда присутствует выборка, которая не может использоваться в качестве опорной выборки текущего блока, значение, полученное путем дублирования или выполнения интерполяции по меньшей мере одного значения выборки среди выборок, включенных в восстановленный соседний блок, или оба могут использоваться для замены неиспользуемым значением выборки для выборки, таким образом, замененное значение выборки используется в качестве опорной выборки текущего блока.[00194] 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.
[00195] Фиг. 7 представляет собой диаграмму, иллюстрирующую опорные выборки, которые могут использоваться для интра-предсказания.[00195] FIG. 7 is a diagram illustrating reference samples that can be used for intra-prediction.
[00196] Как показано на фиг. 7, по меньшей мере одна из линии 0 опорной выборки и линии 3 опорной выборки может использоваться для интра-предсказания текущего блока. На фиг. 7, выборки сегмента A и сегмента F могут быть дополнены выборками, ближайшими к сегменту B и сегменту E, соответственно, вместо извлечения из восстановленного соседнего блока. Информация индекса, указывающая линию опорной выборки, которая должна использоваться для интра-предсказания текущего блока, может сигнализироваться. Когда верхняя граница текущего блока является границей CTU, может быть доступна только линия 0 опорной выборки. Следовательно, в этом случае информация индекса может не сигнализироваться. Когда используется линия опорной выборки, отличная от линии 0 опорной выборки, фильтрация для блока предсказания, который будет описан далее, может не выполняться.[00196] 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.
[00197] При интра-предсказании, фильтр может применяться по меньшей мере к одной из опорной выборки и выборки предсказания на основе режима интра-предсказания и текущего размера блока.[00197] 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.
[00198] В случае планарного режима, при генерации блока предсказания текущего блока, в соответствии с положением целевой выборки предсказания в блоке предсказания, значение выборки целевой выборки предсказания может быть сгенерировано с использованием взвешенной суммы опорной выборки верхней и левой стороны для текущей выборки, и опорной выборки правой верхней стороны и левой нижней стороны текущего блока. Кроме того, в случае режима DC, при генерации блока предсказания текущего блока, может использоваться среднее значение опорных выборок верхней и левой стороны текущего блока. Кроме того, в случае углового режима, блок предсказания может быть сгенерирован с использованием опорной выборки верхней стороны, левой стороны, правой верхней стороны и/или левой нижней стороны текущего блока. Чтобы сгенерировать значение выборки предсказания, может выполняться интерполяция единицы действительного числа.[00198] In the case of 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.
[00199] В случае интра-предсказания между цветовыми компонентами, блок предсказания для текущего блока второго цветового компонента может быть сгенерирован на основе соответствующего восстановленного блока первого цветового компонента. Например, первый цветовой компонент может быть компонентом яркости, а второй цветовой компонент может быть компонентом цветности. Для интра-предсказания между цветовыми компонентами, параметры линейной модели между первым цветовым компонентом и вторым цветовым компонентом могут быть получены на основе шаблона. Шаблон может включать в себя верхние и/или левые соседние выборки текущего блока и верхние и/или левые соседние выборки восстановленного блока первого цветового компонента, соответствующего ему. Например, параметры линейной модели могут быть выведены с использованием значения выборки первого цветового компонента, имеющего максимальное значение среди выборок в шаблоне, и значения выборки второго цветового компонента, соответствующего ему, и значения выборки первого цветового компонента, имеющего минимальное значение среди выборок в шаблоне, и значения выборки второго цветового компонента, соответствующего ему. Когда параметры линейной модели выведены, соответствующий восстановленный блок может быть применен к линейной модели, чтобы сгенерировать блок предсказания для текущего блока. В соответствии с форматом видео, субдискретизация может выполняться над соседними выборками восстановленного блока первого цветового компонента и соответствующего восстановленного блока. Например, когда одна выборка второго цветового компонента соответствует четырем выборкам первого цветового компонента, четыре выборки первого цветового компонента могут быть субдискретизированы для вычисления одной соответствующей выборки. В этом случае выведение параметров линейной модели и интра-предсказание между цветовыми компонентами может выполняться на основе соответствующих субдискретизированных выборок. Следует ли или нет выполнять интра-предсказание между цветовыми компонентами и/или диапазон шаблона, может сигнализироваться как режим интра-предсказания.[00199] 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, linear model parameter inference and intra-prediction between color components can be performed based on the corresponding downsampled samples. Whether or not to perform intra-prediction between color components and/or pattern range may be signaled as an intra-prediction mode.
[00200] Текущий блок может разбиваться на два или четыре подблока в горизонтальном или вертикальном направлении. Разбитые подблоки могут быть последовательно восстановлены. То есть, интра-предсказание может выполняться над подблоком, чтобы сгенерировать подблок предсказания. Кроме того, деквантование и/или обратное преобразование может выполняться над подблоками для генерации остаточных подблоков. Восстановленный подблок может быть сгенерирован путем добавления подблока предсказания к остаточному подблоку. Восстановленный подблок может быть использован в качестве опорной выборки для интра-предсказания под-подблоков. Подблок может быть блоком, содержащим предопределенное количество (например, 16) или более выборок. Соответственно, например, когда текущий блок является блоком 8×4 или 4×8, текущий блок может разбиваться на два подблока. Кроме того, когда текущий блок является блоком 4×4, текущий блок не может разбиваться на подблоки. Когда текущий блок имеет другие размеры, текущий блок может разбиваться на четыре подблока. Информация о том, выполнять ли интра-предсказание на основе подблоков и/или направление разбиения (горизонтальное или вертикальное), может сигнализироваться. Интра-предсказание, основанное на подблоках, может быть ограничено выполнением только тогда, когда используется линия 0 опорной выборки. Когда выполняется интра-предсказание на основе подблока, фильтрация для блока предсказания, которая будет описана позже, может не выполняться.[00200] 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.
[00201] Окончательный блок предсказания может быть сгенерирован путем выполнения фильтрации над блоком предсказания, который является интра-предсказанным. Фильтрация может быть выполнена путем применения предопределенных весов к целевой выборке фильтрации, левой опорной выборке, верхней опорной выборке и/или верхней левой опорной выборке. Вес и/или опорная выборка (диапазон, положение и т.д.), используемые для фильтрации, могут быть определены на основе по меньшей мере одного из размера блока, режима интра-предсказания и положения целевой выборки фильтрации в блоке предсказания. Фильтрация может выполняться только в случае предопределенного режима интра-предсказания (например, DC, планарный, вертикальный, горизонтальный, диагональный и/или смежный диагональный режимы). Смежный диагональный режим может быть режимом, в котором k добавляется к диагональному режиму или вычитается из него. Например, k может быть целым положительным числом 8 или меньше.[00201] 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.
[00202] Режим интра-предсказания текущего блока может быть энтропийно закодирован/декодирован посредством предсказания режима интра-предсказания блока, расположенного смежно с текущим блоком. Когда режимы интра-предсказания текущего блока и соседнего блока идентичны, информация о том, что режимы интра-предсказания текущего блока и соседнего блока идентичны, может сигнализироваться с использованием информации предопределенного флага. Кроме того, может сигнализироваться информация указателя режима интра-предсказания, который идентичен режиму интра-предсказания текущего блока среди режимов интра-предсказания множества соседних блоков. Когда режимы интра-предсказания текущего блока и соседнего блока различны, информация режима интра-предсказания текущего блока может быть энтропийно кодирована/декодирована посредством выполнения энтропийного кодирования/декодирования на основе режима интра-предсказания соседнего блока.[00202] 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.
[00203] Фиг. 5 представляет собой диаграмму, иллюстрирующую вариант осуществления процесса интер-предсказания.[00203] FIG. 5 is a diagram illustrating an embodiment of the inter-prediction process.
[00204] На фиг. 5 прямоугольник может представлять картинку. На фиг. 5 стрелка представляет направление предсказания. Картинки могут быть классифицированы на внутренние картинки (I-картинки), картинки с предсказанием (предиктивные) (P-картинки) и картинки с двунаправленным предсказанием (би-предиктивные) (B-картинки) в соответствии с их типом кодирования.[00204] 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.
[00205] I-картинка может кодироваться посредством интра-предсказания без необходимости меж-картинного (межкадрового) предсказания. Р-картинка может кодироваться посредством меж-картинного предсказания с использованием опорной картинки, которая присутствует в одном направлении (то есть в прямом направлении или обратном направлении) относительно текущего блока. B-картинка может кодироваться посредством меж-картинного предсказания с использованием опорных картинок, которые предварительно установлены в двух направлениях (то есть прямом направлении и обратном направлении) относительно текущего блока. Когда используется меж-картинное предсказание, кодер может выполнять интер-предсказание или компенсацию движения, а декодер может выполнять соответствующую компенсацию движения.[00205] 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.
[00206] Ниже будет подробно описан вариант осуществления меж-картинного (интер-) предсказания.[00206] An embodiment of inter-picture prediction will be described in detail below.
[00207] Интер-предсказание или компенсация движения могут выполняться с использованием опорной картинки и информации движения.[00207] Inter-prediction or motion compensation may be performed using the reference picture and motion information.
[00208] Информация движения текущего блока может быть выведена во время интер-предсказания каждым из устройства 100 кодирования и устройства 200 декодирования. Информация движения текущего блока может быть выведена с использованием информации движения восстановленного соседнего блока, информации движения совмещенного блока (также называемого col-блоком или совмещенным блоком) и/или блока, смежного с совмещенным блоком. Совмещенный блок может означать блок, который пространственно расположен в том же положении, что и текущий блок, в ранее восстановленной совмещенной картинке (также упоминаемой как col-картинка или совмещенная картинка). Совмещенная картинка может быть одной картинкой из одной или более опорных картинок, включенных в список опорных картинок.[00208] Motion information of the current block may 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 reference picture list.
[00209] Способ выведения информации движения может отличаться в зависимости от режима предсказания текущего блока. Например, режим предсказания, применяемый для интер-предсказания, включает в себя режим AMVP, режим слияния, режим пропуска, режим слияния с разностью векторов движения, режим слияния подблоков, режим треугольного разбиения, режим интер-интра комбинированного предсказания, аффинный режим и т.п. Здесь режим слияния может упоминаться как режим слияния движения.[00209] 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.
[00210] Например, когда AMVP используется в качестве режима предсказания, по меньшей мере один из векторов движения восстановленных соседних блоков, векторов движения совмещенных блоков, векторов движения блоков, смежных с совмещенными блоками, и (0, 0) вектор движения могут быть определены в качестве кандидатов вектора движения для текущего блока, и список кандидатов вектора движения генерируется с использованием кандидатов вектора движения. Кандидат вектора движения текущего блока может быть выведен с использованием сгенерированного списка кандидатов вектора движения. Информация движения текущего блока может быть определена на основе выведенного кандидата вектора движения. Векторы движения совмещенных блоков или векторы движения блоков, смежных с совмещенными блоками, могут упоминаться как временные кандидаты вектора движения, а векторы движения восстановленных соседних блоков могут упоминаться как пространственные кандидаты вектора движения.[00210] 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.
[00211] Устройство 100 кодирования может вычислять разность векторов движения (MVD) между вектором движения текущего блока и кандидатом вектора движения и может выполнять энтропийное кодирование разности векторов движения (MVD). Кроме того, устройство 100 кодирования может выполнять энтропийное кодирование индекса кандидата вектора движения и генерировать битовый поток. Индекс кандидата вектора движения может указывать оптимального кандидата вектора движения среди кандидатов вектора движения, включенных в список кандидатов вектора движения. Устройство декодирования может выполнять энтропийное декодирование над индексом кандидата вектора движения, включенным в битовый поток, и может выбирать кандидата вектора движения целевого блока декодирования из числа кандидатов вектора движения, включенных в список кандидатов вектора движения, с использованием энтропийно декодированного индекса кандидата вектора движения. Кроме того, устройство 200 декодирования может суммировать энтропийно декодированную MVD и кандидат вектора движения, извлеченный посредством энтропийного декодирования, тем самым выводя вектор движения целевого блока декодирования.[00211] 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 bit stream. 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.
[00212] Между тем, устройство 100 кодирования может выполнять энтропийное кодирование над информацией разрешения вычисленной MVD. Устройство 200 декодирования может регулировать разрешение энтропийно декодированной MVD с использованием информации разрешения MVD.[00212] 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.
[00213] Между тем, устройство 100 кодирования вычисляет разность векторов движения (MVD) между вектором движения и кандидатом вектора движения в текущем блоке на основе аффинной модели и выполняет энтропийное кодирование над MVD. Устройство 200 декодирования выводит вектор движения для каждого подблока путем выведения вектора движения аффинного управления целевого блока декодирования через сумму энтропийно декодированной MVD и кандидата вектора движения аффинного управления.[00213] 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.
[00214] Битовый поток может включать в себя индекс опорной картинки, указывающий опорную картинку. Индекс опорной картинки может энтропийно кодироваться устройством 100 кодирования и затем сигнализироваться как битовый поток в устройство 200 декодирования. Устройство 200 декодирования может генерировать блок предсказания из целевого блока декодирования на основе выведенного вектора движения и информации индекса опорной картинки.[00214] 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.
[00215] Другим примером способа выведения текущей информации движения может быть режим слияния. Режим слияния может означать способ слияния движения множества блоков. Режим слияния может означать режим выведения информации движения текущего блока из информации движения соседних блоков. Когда применяется режим слияния, список кандидатов слияния может генерироваться с использованием информации движения восстановленных соседних блоков и/или информации движения совмещенных блоков. Информация движения может включать в себя по меньшей мере одно из вектора движения, индекса опорной картинки и указателя интер-предсказания. Указатель предсказания может указывать однонаправленное предсказание (предсказание L0 или предсказание L1) или двунаправленное предсказание (предсказание L0 и предсказание L1).[00215] 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).
[00216] Список кандидатов слияния может быть списком сохраненной информации движения. Информация движения, включенная в список кандидатов слияния, может быть по меньшей мере одной из информации движения (кандидата пространственного слияния) соседнего блока, смежного с текущим блоком, информации движения (кандидата временного слияния) совмещенного блока текущего блока в опорной картинке, новой информации движения, сгенерированной комбинацией информации движения, выходящей из списка кандидатов слияния, информации движения (кандидата слияния на основе истории) блока, который кодирован/декодирован перед текущим блоком, и нулевого кандидата слияния.[00216] 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.
[00217] Устройство 100 кодирования может генерировать битовый поток путем выполнения энтропийного кодирования по меньшей мере над одним из флага слияния и индекса слияния и может сигнализировать битовый поток устройству 200 декодирования. Флаг слияния может быть информацией, указывающей, следует ли выполнять режим слияния для каждого блока, и индекс слияния может быть информацией, указывающей, какой соседний блок среди соседних блоков текущего блока является целевым блоком слияния. Например, соседние блоки текущего блока могут включать в себя левый соседний блок с левой стороны текущего блока, верхний соседний блок, расположенный над текущим блоком, и временной соседний блок, смежный по времени с текущим блоком.[00217] 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 temporal neighbor block temporally adjacent to the current block.
[00218] Между тем, устройство 100 кодирования выполняет энтропийное кодирование над информацией коррекции для коррекции вектора движения среди информации движения кандидата слияния и сигнализирует об этом в устройство 200 декодирования. Устройство 200 декодирования может корректировать вектор движения кандидата слияния, выбранный индексом слияния, на основе информации коррекции. Здесь информация коррекции может включать в себя по меньшей мере одну из информации о том, выполнять ли коррекцию или нет, информации направления коррекции и информации размера коррекции. Как описано выше, режим предсказания, который корректирует вектор движения кандидата слияния на основе сигнализированной информации коррекции, может упоминаться как режим слияния, имеющий разность векторов движения.[00218] 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.
[00219] Режим пропуска может быть режимом, в котором информация движения соседнего блока применяется к текущему блоку как есть. Когда применяется режим пропуска, устройство 100 кодирования может выполнять энтропийное кодирование информации о том, что информация движения конкретного блока должна быть использована в качестве информации движения текущего блока для генерации битового потока, и может сигнализировать битовый поток к устройству 200 декодирования. Устройство 100 кодирования может не сигнализировать синтаксический элемент касательно по меньшей мере любого одного из информации о разности векторов движения, флага блока кодирования и уровня коэффициентов преобразования в устройство 200 декодирования.[00219] 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.
[00220] Режим слияния подблоков может означать режим, который выводит информацию движения в единицах подблоков блока кодирования (CU). Когда применяется режим слияния подблоков, список кандидатов слияния подблока может быть сгенерирован с использованием информации движения (кандидат временного слияния на основе подблока) подблока, совмещенного с текущим подблоком в опорном изображении, и/или кандидата слияния вектора движения точки аффинного управления.[00220] 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.
[00221] Режим треугольного разбиения может означать режим, который выводит информацию движения путем разбиения текущего блока на диагональные направления, выводит каждую выборку предсказания с использованием каждой выведенной информации движения и извлекает выборку предсказания текущего блока путем взвешивания каждой из выведенных выборок предсказания.[00221] 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.
[00222] Режим объединенного интер-интра предсказания может означать режим, который выводит выборку предсказания текущего блока путем взвешивания выборки предсказания, сгенерированной с помощью интер-предсказания, и выборки предсказания, сгенерированной с помощью интра-предсказания.[00222] 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.
[00223] Устройство 200 декодирования может самостоятельно корректировать выведенную информацию движения. Устройство 200 декодирования может осуществлять поиск в заданной области на основе опорного блока, указанного выведенной информацией движения, и выводить информацию движения, имеющую минимальную SAD, как скорректированную информацию движения.[00223] 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.
[00224] Устройство 200 декодирования может компенсировать выборку предсказания, выведенную посредством интер-предсказания, с использованием оптического потока.[00224] The decoding apparatus 200 may compensate the prediction sample output by inter-prediction using optical flow.
[00225] Фиг. 6 представляет собой диаграмму, иллюстрирующую процесс преобразования и квантования.[00225] FIG. 6 is a diagram illustrating the conversion and quantization process.
[00226] Как показано на фиг. 6, процесс преобразования и/или квантования выполняется над остаточным сигналом, чтобы сгенерировать сигнал квантованного уровня. Остаточный сигнал представляет собой разницу между исходным блоком и блоком предсказания (то есть, блоком интра-предсказания или блоком интер-предсказания). Блок предсказания представляет собой блок, сгенерированный посредством интра-предсказания или интер-предсказания. Преобразование может быть первичным преобразованием, вторичным преобразованием или и тем, и другим. Первичное преобразование остаточного сигнала приводит к коэффициентам преобразования, а вторичное преобразование коэффициентов преобразования приводит к вторичным коэффициентам преобразования.[00226] 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 can 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.
[00227] По меньшей мере одна схема, выбранная из различных схем преобразования, которые предварительно определены, используется для выполнения первичного преобразования. Например, примеры предопределенных схем преобразования включают дискретное косинусное преобразование (DCT), дискретное синусное преобразование (DST) и преобразование Карунена-Лоэва (KLT). Коэффициенты преобразования, сгенерированные посредством первичного преобразования, могут подвергаться вторичному преобразованию. Схемы преобразования, используемые для первичного преобразования и/или вторичного преобразования, могут быть определены согласно параметрам кодирования текущего блока и/или соседних блоков текущего блока. Альтернативно может сигнализироваться информация о преобразовании, указывающая схему преобразования. Преобразование на основе DCT может включать в себя, например, DCT-2, DCT-8 и т.п. Преобразование на основе DST может включать, например, DST-7.[00227] 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.
[00228] [00228]
[00229] Сигнал квантованного уровня (коэффициенты квантования) может быть сгенерирован путем выполнения квантования остаточного сигнала или результата выполнения первичного преобразования и/или вторичного преобразования. Сигнал квантованного уровня может сканироваться согласно по меньшей мере одному из диагонального сканирования вверх-вправо, вертикального сканирования и горизонтального сканирования, в зависимости от режима интра-предсказания блока или размера/формы блока. Например, когда коэффициенты сканируются при диагональном сканировании вверх-вправо, коэффициенты в блочной форме преобразуются в форму одномерного вектора. Помимо диагонального сканирования вверх-вправо, горизонтальная развертка горизонтального сканирования двумерной формы блока коэффициентов или вертикальная развертка вертикального сканирования двумерной формы блока коэффициентов может использоваться в зависимости от режима интра-предсказания и/или размера блока преобразования. Отсканированные коэффициенты квантованного уровня могут быть энтропийно закодированы для вставки в битовый поток.[00229] 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.
[00230] Декодер выполняет энтропийное декодирование битового потока для получения коэффициентов квантованного уровня. Коэффициенты квантованного уровня могут быть скомпонованы в двумерной форме блока посредством обратного сканирования. Для обратного сканирования может использоваться по меньшей мере одно из диагонального сканирования вверх-вправо, вертикального сканирования и горизонтального сканирования.[00230] 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.
[00231] Коэффициенты квантованного уровня затем могут быть деквантованы, затем могут быть подвергнуты вторичному обратному преобразованию, если необходимо, и, наконец, первичному обратному преобразованию, если необходимо, для генерации восстановленного остаточного сигнала.[00231] 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.
[00232] Обратное отображение в динамическом диапазоне может выполняться для компонента яркости, восстановленного посредством интра-предсказания или интер-предсказания, перед внутриконтурной фильтрацией. Динамический диапазон может разбиваться на 16 равных частей, и функция отображения для каждой части может сигнализироваться. Функция отображения может сигнализироваться на уровне слайса или уровне группы мозаичных элементов. Функция обратного отображения для выполнения обратного отображения может быть выведена на основе функции отображения. Контурная фильтрация, сохранение опорных картинок и компенсация движения выполняются в области обратного отображения, и блок предсказания, сгенерированный посредством интер-предсказания, преобразуется в отображаемую область посредством отображения с использованием функции отображения, а затем используется для генерации восстановленного блока. Однако, поскольку интра-предсказание выполняется в отображаемой области, блок предсказания, сгенерированный посредством интра-предсказания, может использоваться для генерации восстановленного блока без отображения/обратного отображения.[00232] 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.
[00233] Когда текущий блок является остаточным блоком цветового компонента, остаточный блок может быть преобразован в область обратного отображения путем выполнения масштабирования компонента цветности отображенной области. Доступность масштабирования может сигнализироваться на уровне слайса или уровне группы мозаичных элементов. Масштабирование может применяться только тогда, когда доступно отображение для компонента яркости, и разделение компонента яркости и разделение компонента цветности следуют одной и той же древовидной структуре. Масштабирование может выполняться на основе среднего значения выборок блока предсказания яркости, соответствующего блоку цветовой разности. В этом случае, когда текущий блок использует интер-предсказание, блок предсказания яркости может означать отображенный блок предсказания яркости. Значение, необходимое для масштабирования, может быть получено путем обращения к поисковой таблице с использованием индекса фрагмента, которому принадлежит среднее значение выборок блока предсказания яркости. Наконец, путем масштабирования остаточного блока с использованием выведенного значения, остаточный блок может быть переключен в область обратного отображения. Затем восстановление блока компонента цветности, интра-предсказание, интер-предсказание, контурная фильтрация и сохранение опорных картинок могут выполняться в области обратного отображения.[00233] When the current block is a residual block of a chroma component, the residual block can be converted into a reverse mapping region by performing scaling of the chrominance component of the mapped region. 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.
[00234] Информация, указывающая, доступно ли отображение/обратное отображение компонента яркости и компонента цветности, может сигнализироваться через набор параметров последовательности.[00234] Information indicating whether luma component and chroma component mapping/demapping is available may be signaled through a set of sequence parameters.
[00235] Блок предсказания текущего блока может быть сгенерирован на основе вектора блока, указывающего смещение между текущим блоком и опорным блоком в текущем изображении. Таким образом, режим предсказания для генерации блока предсказания со ссылкой на текущую картинку называется режимом внутриблочного копирования (IBC). Режим IBC может применяться к единицам кодирования M×N (M<=64, N<=64). Режим IBC может включать в себя режим пропуска, режим слияния, режим AMVP и т.п. В случае режима пропуска или режима слияния, формируется список кандидатов слияния, и индекс слияния сигнализируется, так что может быть указан один кандидат слияния. Вектор блока указанного кандидата слияния может использоваться как вектор блока текущего блока. Список кандидатов слияния может включать в себя по меньшей мере одно из пространственного кандидата, кандидата на основе истории, кандидата, основанного на среднем двух кандидатов, и кандидата нулевого слияния. В случае режима AMVP может сигнализироваться вектор разностного блока. Кроме того, вектор блока предсказания может быть выведен из левого соседнего блока и верхнего соседнего блока текущего блока. Индекс для соседнего блока, который должен использоваться, может сигнализироваться. Блок предсказания в режиме IBC включается в текущую CTU или левую CTU и ограничивается блоком в уже восстановленной области. Например, значение вектора блока может быть ограничено таким образом, чтобы блок предсказания текущего блока располагался в области из трех блоков 64×64, предшествующих блоку 64×64, которому принадлежит текущий блок, в порядке кодирования/декодирования. Путем ограничения значения вектора блока таким образом, потребление памяти и сложность устройства в соответствии с реализацией режима IBC могут быть уменьшены.[00235] 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.
[00236] [00236]
[00237] Далее, будет описан способ генерации списка информации движения в соответствии с вариантом осуществления настоящего изобретения.[00237] Next, a method for generating a motion information list according to an embodiment of the present invention will be described.
[00238] Далее, список информации движения может относиться к списку, в котором хранится информация движения, сгенерированная при кодировании или декодировании изображения. [00238] Further, the motion information list may refer to a list in which motion information generated when encoding or decoding an image is stored.
[00239] В соответствии с вариантом осуществления настоящего изобретения, информация движения, сгенерированная в интер-предсказании, может храниться в списке информации движения, и информация движения может генерироваться с использованием списка информации движения в интер-предсказании следующего целевого блока кодирования/декодирования.[00239] According to an embodiment of the present invention, motion information generated in inter-prediction can be stored in a motion information list, and motion information can be generated using the motion information list in inter-prediction of the next target encoding/decoding block.
[00240] Здесь, информация движения может означать по меньшей мере одно из вектора движения, индекса опорной картинки, указателя интер-предсказания, как описано выше, а также флага использования списка предсказания, информации списка опорных картинок, опорной картинки, кандидата вектора движения, индекса кандидата вектора движения, кандидата слияния, индекса слияния и тому подобного.[00240] Here, the motion information may mean at least one of a motion vector, a reference picture index, an inter-prediction indicator as described above, as well as a prediction list use flag, reference picture list information, a reference picture, a motion vector candidate, an index motion vector candidate, merge candidate, merge index and the like.
[00241] Список информации движения может хранить информацию движения, сгенерированную в предопределенной области.[00241] The motion information list may store motion information generated in a predetermined area.
[00242] В качестве примера, список информации движения может инициализироваться удалением информации движения из списка информации движения или генерацией нового списка информации движения, когда кодирование/декодирование завершено в предопределенной области, так что область меняется.[00242] As an example, the motion information list may be initialized by removing motion information from the motion information list or generating a new motion information list when encoding/decoding is completed in a predetermined area so that the area changes.
[00243] То есть, список информации движения может генерироваться на основе предопределенной области (или предопределенной секции, предопределенной единицы). Здесь, предопределенная область, относящаяся к списку информации движения, может быть единицей, большей, чем единица, в которой выполняется интер-предсказание. [00243] That is, a list of motion information may be generated based on a predetermined area (or a predetermined section, a predetermined unit). Here, the predetermined area related to the motion information list may be a unit larger than the unit in which inter-prediction is performed.
[00244] В качестве примера, предопределенная область, относящаяся к списку информации движения, может представлять собой любое одно из блока, состоящего из одной или более CU, CTU, блока, состоящего из одной или более CTU (например, строки CTU), бруска (кирпичика), мозаичного элемента, слайса, картинки, кадра и группы картинок (GOP).[00244] As an example, a predefined area related to the motion information list may be any one of a block consisting of one or more CUs, a CTU, a block consisting of one or more CTUs (eg, a CTU row), a bar ( brick), mosaic element, slice, picture, frame and group of pictures (GOP).
[00245] Предопределенная область, ассоциированная со списком информации движения, может называться верхней единицей предсказания (UPU) или областью инициализации.[00245] The predefined area associated with the motion information list may be called an upper prediction unit (UPU) or initialization area.
[00246] Между тем, список информации движения может называться списком появления адаптивного вектора движения (AMVOL) или списком предсказателя вектора движения на основе истории (списком HMVP) в соответствии с вариантом осуществления.[00246] Meanwhile, the motion information list may be called an adaptive motion vector appearance list (AMVOL) or a history-based motion vector predictor list (HMVP list) according to an embodiment.
[00247] Между тем, список информации движения может использоваться, только когда кодер/декодер работает в режиме интер-предсказания или режиме IBC.[00247] Meanwhile, the motion information list can only be used when the encoder/decoder operates in the inter-prediction mode or IBC mode.
[00248] Фиг. 8 и 9 представляют собой диаграммы, иллюстрирующие кодер и декодер, использующие список информации движения.[00248] FIG. 8 and 9 are diagrams illustrating an encoder and a decoder using the motion information list.
[00249] Со ссылкой на фиг. 8 и 9, кодер и декодер могут повышать эффективность предсказания с использованием информации движения, сохраненной в списке информации движения в процессе интер-предсказания или процессе предсказания IBC.[00249] With reference to FIG. 8 and 9, the encoder and decoder can improve prediction efficiency using motion information stored in the motion information list in the inter-prediction process or the IBC prediction process.
[00250][00250]
[00251] Между тем, список информации движения может инициализироваться или генерироваться, когда начинается кодирование/декодирование новой UPU. Поэтому, когда начинается кодирование/декодирование новой UPU, список информации движения может не иметь информации движения, поскольку интер-предсказание не выполнено в новой UPU. Поскольку список информации движения не имеет информации движения, список информации движения может не использоваться в интер-предсказании. Кроме того, когда количество информации движения, сохраненной в списке информации движения, мало, сложно ожидать эффективного кодирования, поскольку существует мало информации, используемой для интер-предсказания.[00251] Meanwhile, a motion information list may be initialized or generated when encoding/decoding of a new UPU starts. Therefore, when encoding/decoding of a new UPU starts, the motion information list may not have motion information because inter-prediction is not performed in the new UPU. Since the motion information list does not have motion information, the motion information list may not be used in inter-prediction. In addition, when the amount of motion information stored in the motion information list is small, it is difficult to expect efficient encoding since there is little information used for inter-prediction.
[00252] В настоящем изобретении, при выполнении интер-предсказания (или предсказания IBC), когда имеется мало или не имеется информации движения, сохраненной в списке информации движения, предлагается способ дополнительного сохранения предсказанной информации движения в списке информации движения, чтобы генерировать список информации движения. [00252] In the present invention, when performing inter-prediction (or IBC prediction) when there is little or no motion information stored in the motion information list, a method is proposed for further storing predicted motion information in the motion information list to generate a motion information list .
[00253] Посредством вышеописанного способа, можно повысить эффективность кодирования путем более точного выполнения интер-предсказания с использованием списка информации движения.[00253] Through the above method, it is possible to improve encoding efficiency by more accurately performing inter-prediction using the motion information list.
[00254][00254]
[00255] Список информации движения в соответствии с настоящим изобретением может хранить информацию движения, сгенерированную в текущей UPU.[00255] The motion information list in accordance with the present invention can store motion information generated in the current UPU.
[00256] Фиг. 10 представляет собой блок-схему последовательности операций, иллюстрирующую способ интер-предсказания с использованием списка информации движения в соответствии с настоящим изобретением.[00256] FIG. 10 is a flowchart illustrating an inter-prediction method using a motion information list according to the present invention.
[00257] Со ссылкой на фиг. 10, когда начинается кодирование/декодирование новой UPU, этап инициализации списка информации движения является этапом удаления всей информации в списке информации движения или возвращение ее в установленное по умолчанию значение.[00257] With reference to FIG. 10, when encoding/decoding of a new UPU starts, the motion information list initialization step is a step of deleting all the information in the motion information list or returning it to the default value.
[00258] Этап предсказания списка информации движения является этапом предсказания информации движения, подлежащей вводу в список информации движения, и добавления ее в список информации движения.[00258] The motion information list prediction step is a step of predicting motion information to be input into the motion information list and adding it to the motion information list.
[00259] Здесь, этап предсказания списка информации движения может добавлять множество предсказанной информации движения в список информации движения. [00259] Here, the motion information list prediction step may add a plurality of predicted motion information to the motion information list.
[00260] Этап интер-предсказания включает в себя этап предсказания информации движения и является этапом предсказания текущего блока через опорную картинку.[00260] The inter-prediction step includes a motion information prediction step and is a step of predicting a current block through a reference picture.
[00261] Этап добавления информации движения является этапом добавления информации движения, полученной в результате интер-предсказания, в список информации движения. В соответствии с вариантом осуществления, этап добавления информации движения может опускаться или изменяться. Например, когда выполняется режим троичного разбиения, этап добавления информации движения может опускаться. То есть когда блоки, являющиеся результатом разбиения в диагональном направлении, совместно используют один и тот же список информации движения в режиме троичного разбиения, этап добавления информации движения может опускаться.[00261] The motion information adding step is a step of adding motion information obtained as a result of inter-prediction to the motion information list. According to an embodiment, the step of adding motion information may be omitted or changed. For example, when the ternary partitioning mode is executed, the step of adding motion information may be omitted. That is, when blocks resulting from partitioning in the diagonal direction share the same motion information list in the ternary partitioning mode, the step of adding motion information can be omitted.
[00262] Этап интер-предсказания и этап добавления информации движения могут выполняться в единицах блоков и могут выполняться для всех блоков в соответствующей UPU.[00262] The inter-prediction step and the motion information adding step may be performed in units of blocks and may be performed for all blocks in the corresponding UPU.
[00263] После проверки, завершено ли исполнение для всех блоков в UPU, когда исполнение не завершено, процесс переходит к следующему блоку, так что интер-предсказание может выполняться.[00263] After checking whether execution has completed for all blocks in the UPU, when execution is not completed, the process moves to the next block so that inter-prediction can be performed.
[00264] Когда интер-предсказание выполнено над всеми блоками в UPU и список информации движения UPU больше не используется, список информации движения может инициализироваться.[00264] When inter-prediction is performed on all blocks in the UPU and the UPU motion information list is no longer used, the motion information list may be initialized.
[00265] Фиг. 11 представляет собой блок-схему последовательности операций, иллюстрирующую способ интер-предсказания с использованием списка информации движения. Описание каждого этапа, проиллюстрированного в блок-схеме последовательности операций на фиг. 11, может быть тем же самым, что и описание фиг. 10.[00265] FIG. 11 is a flowchart illustrating an inter-prediction method using a motion information list. A description of each step illustrated in the flowchart of FIG. 11 may be the same as the description of FIG. 10.
[00266] Однако, момент времени, в который выполняется этап предсказания списка информации движения согласно фиг. 11, может отличаться от момента времени согласно фиг. 10.[00266] However, the time point at which the motion information list prediction step according to FIG. 11 may differ from the time point according to FIG. 10.
[00267] На фиг. 10, этап предсказания списка информации движения может выполняться после того, как выполнен этап инициализации списка информации движения. То есть этап предсказания списка информации движения может выполняться вместе с этапом инициализации списка информации движения, и, таким образом, этап предсказания списка информации движения может выполняться, когда UPU изменяется.[00267] In FIG. 10, the motion information list prediction step may be performed after the motion information list initialization step is performed. That is, the motion information list prediction step can be executed together with the motion information list initialization step, and thus, the motion information list prediction step can be executed when the UPU is changed.
[00268] На фиг. 11, этап предсказания списка информации движения может выполняться после того, как выполнен этап добавления информации движения. То есть предсказание списка информации движения может выполняться всякий раз, когда информация движения добавляется в список информации движения.[00268] In FIG. 11, the motion information list prediction step may be performed after the motion information adding step is performed. That is, motion information list prediction can be performed whenever motion information is added to the motion information list.
[00269] Фиг. 11 отличается от фиг. 10 тем, что дополнительная информация движения может быть предсказана с использованием информации движения, хранящейся в текущем списке информации движения.[00269] FIG. 11 differs from Fig. 10 in that the additional motion information can be predicted using the motion information stored in the current motion information list.
[00270] Кроме того, в случае фиг. 11, предсказанная информация движения может также непрерывно обновляться или добавляться в список информации движения путем предсказания более эффективных кандидатов, но предсказание списка информации движения выполняется над каждым блоком, так что объем вычислений системы может возрасти.[00270] Moreover, in the case of FIG. 11, the predicted motion information can also be continuously updated or added to the motion information list by predicting more efficient candidates, but prediction of the motion information list is performed on each block, so the computation amount of the system may increase.
[00271] В блок-схемах последовательности операций примеров согласно фиг. 10 и 11, порядок каждого этапа может изменяться. При кодировании/декодировании блока другой UPU в ситуации, где кодирование/декодирование текущей UPU не завершено, каждый этап на фиг. 10 и 11 может применяться или опускаться в различном порядке.[00271] In the example flowcharts of FIGS. 10 and 11, the order of each step may vary. When encoding/decoding a block of another UPU in a situation where encoding/decoding of the current UPU is not completed, each step in FIG. 10 and 11 may be applied or omitted in different orders.
[00272] Когда отсутствует отношение пространственной привязки между блоками на границе UPU, как в случае, когда UPU представляет собой единицу картинки, единицу слайса или единицу мозаичного элемента, порядок кодирования/декодирования не может проходить между UPU, отличающимися друг от друга. В этом случае, когда кодирование/декодирование текущей UPU не закончено, кодирование может выполняться в той же самой UPU даже после перехода к следующему блоку.[00272] When there is no spatial reference relationship between blocks at a UPU boundary, as in the case where the UPU is a picture unit, a slice unit, or a tile unit, the encoding/decoding order cannot pass between UPUs that are different from each other. In this case, when encoding/decoding of the current UPU is not completed, encoding may be performed in the same UPU even after moving to the next block.
[00273] Однако, когда UPU разделена на множество единиц в пределах одной и той же картинки, слайса или мозаичного элемента, случай, в котором следующий блок кодирования/ декодирования принадлежит другой UPU, может возникать, даже когда кодирование/декодирование не закончено в текущей UPU в соответствии с последовательностью кодирования/декодирования. В этом случае, отличающиеся друг от друга UPU могут иметь различные списки информации движения, и информация кодирования текущего блока может храниться в списке информации движения UPU, которой принадлежит текущий блок. В этом случае, список информации движения может также быть предсказан из списка информации движения, сохраненного в другой UPU до настоящего времени.[00273] However, when a UPU is divided into multiple units within the same picture, slice, or tile, a case in which the next encoding/decoding block belongs to another UPU may occur even when encoding/decoding is not completed in the current UPU according to the encoding/decoding sequence. In this case, UPUs different from each other may have different motion information lists, and encoding information of the current block may be stored in the motion information list of the UPU to which the current block belongs. In this case, the motion information list can also be predicted from the motion information list stored in the other UPU to date.
[00274] Между тем, этап предсказания списка информации движения может выполняться как в момент времени инициализации списка информации движения, так и в момент времени добавления информации движения.[00274] Meanwhile, the motion information list prediction step may be performed at both the motion information list initialization time and the motion information adding time.
[00275] Фиг. 12 представляет собой блок-схему последовательности операций, иллюстрирующую способ интер-предсказания, в котором предсказание списка информации движения выполняется в момент времени инициализации списка информации движения и в момент времени добавления информации движения. Описание каждого этапа, проиллюстрированного в блок-схеме последовательности операций на фиг. 12, может быть тем же самым, что и на фиг. 10.[00275] FIG. 12 is a flowchart illustrating an inter-prediction method in which motion information list prediction is performed at a motion information list initialization time and at a motion information adding time. A description of each step illustrated in the flowchart of FIG. 12 may be the same as in FIG. 10.
[00276] Способ интер-предсказания с использованием списка информации движения был описан на фиг. 10-12. Этап интер-предсказания на фиг. 10-12 может заменяться на этап предсказания IBC, и вектор блока, сгенерированный посредством этапа предсказания IBC, может быть включен в список информации движения. В следующем описании имеется в виду, что интер-предсказание включает в себя предсказание IBC.[00276] An inter-prediction method using a motion information list has been described in FIG. 10-12. The inter-prediction stage in FIG. 10-12 may be replaced by the IBC prediction step, and the block vector generated by the IBC prediction step may be included in the motion information list. In the following description, it is meant that inter-prediction includes IBC prediction.
[00277] Между тем, при использовании совместно используемого списка слияния в предсказании IBC, этап добавления информации движения может опускаться.[00277] Meanwhile, when using a shared merge list in IBC prediction, the step of adding motion information may be omitted.
[00278][00278]
[00279] Фиг. 13 и 14 иллюстрируют кодер и декодер, включающие в себя предсказатель списка информации движения.[00279] FIG. 13 and 14 illustrate an encoder and a decoder including a motion information list predictor.
[00280] Со ссылкой на фиг. 13 и 14, модуль интер-предсказания выполняет интер-предсказание над текущим блоком посредством опорной картинки. Здесь, модуль интер-предсказания может выполнять интер-предсказание, обращаясь к списку информации движения.[00280] With reference to FIG. 13 and 14, the inter-prediction module performs inter-prediction on the current block by means of the reference picture. Here, the inter-prediction module may perform inter-prediction by accessing the motion information list.
[00281] Модуль добавления списка информации движения может добавлять информацию движения, сгенерированную в результате интер-предсказания, в список информации движения. [00281] The motion information list adding module may add motion information generated as a result of inter-prediction to the motion information list.
[00282] Модуль инициализации списка информации движения может инициализировать информацию, сохраненную в списке информации движения, в соответствии с изменением UPU или созданием нового списка информации движения.[00282] The motion information list initialization module may initialize information stored in the motion information list in accordance with changing the UPU or creating a new motion information list.
[00283] Модуль предсказания списка информации движения может предсказывать информацию движения и сохранять информацию движения в списке информации движения. Здесь, можно обращаться к различным типам информации в соответствии со способом предсказания списка информации движения, выполняемым модулем предсказания списка информации движения. [00283] The motion information list prediction unit can predict the motion information and store the motion information in the motion information list. Here, various types of information can be accessed according to the motion information list prediction method performed by the motion information list prediction unit.
[00284] Соединение (A) показывает соединение между модулями в случае, если модуль предсказания списка информации движения использует информацию текущего блока, такую как пространственное и временное положение текущего блока; соединение (B) показывает соединение между модулями в случае, если модуль предсказания списка информации движения использует информацию блоков, пространственно и во времени смежных с текущим блоком, или информацию опорной картинки с различными типами информации, к которым может обращаться текущий блок; и соединение (C) показывает соединение между модулями в случае, если модуль предсказания списка информации движения использует информацию, сохраненную в текущем списке информации движения. Поэтому, по меньшей мере одно из соединения (A), (B) и (C) может быть опущено в соответствии со способом предсказания, выполняемым модулем предсказания списка информации движения.[00284] Connection (A) shows the connection between modules in the case that the motion information list prediction module uses information of the current block, such as the spatial and temporal position of the current block; connection (B) shows the connection between modules in the case that the motion information list prediction module uses information of blocks spatially and temporally adjacent to the current block, or reference picture information with various types of information that can be accessed by the current block; and connection (C) shows the connection between the modules in the case that the motion information list prediction module uses information stored in the current motion information list. Therefore, at least one of the connections (A), (B) and (C) may be omitted according to the prediction method performed by the motion information list prediction unit.
[00285] Также, как показано на фиг. 10, модуль предсказания списка информации движения может выполняться, когда список информации движения инициализируется. В этом случае, модуль предсказания списка информации движения может работать путем приема сигнала от модуля инициализации списка информации движения через соединение (D). Как показано на фиг. 11, при работе модуля предсказания списка информации движения независимо от инициализации списка информации движения, соединение (D) может быть опущено.[00285] Also, as shown in FIG. 10, the motion information list prediction unit may be executed when the motion information list is initialized. In this case, the motion information list prediction unit may operate by receiving a signal from the motion information list initialization unit via connection (D). As shown in FIG. 11, when the motion information list prediction unit operates regardless of the initialization of the motion information list, connection (D) may be omitted.
[00286] Между тем, модуль кодирования информации движения на фиг. 13 может кодировать информацию движения, сгенерированную в результате интер-предсказания. Модуль декодирования информации движения, показанный на фиг. 14, декодирует сигнал, закодированный модулем кодирования информации движения согласно фиг. 13, и позволяет выполнять интер-предсказание так же, как и кодер, посредством декодированного сигнала.[00286] Meanwhile, the motion information encoding unit in FIG. 13 can encode motion information generated as a result of inter-prediction. The motion information decoding unit shown in FIG. 14 decodes the signal encoded by the motion information encoding unit according to FIG. 13, and allows inter-prediction to be performed in the same way as an encoder using the decoded signal.
[00287][00287]
[00288] Указатель, указывающий, следует ли применить список информации движения во время интер-предсказания, может передаваться в наборе параметров, таком как набор параметров последовательности или набор параметров картинки, заголовок мозаичного элемента, заголовок слайса и тому подобное.[00288] An indicator indicating whether to apply the motion information list during inter-prediction may be transmitted in a parameter set, such as a sequence parameter set or a picture parameter set, a tile header, a slice header, and the like.
[00289] Фиг. 15 представляет собой диаграмму, иллюстрирующую вариант осуществления, который выполняет сигнализацию, включающую в себя указатель, указывающий, следует ли применить список информации движения к синтаксису набора параметров последовательности (SPS).[00289] FIG. 15 is a diagram illustrating an embodiment that performs signaling including an indicator indicating whether the motion information list should be applied to sequence parameter set (SPS) syntax.
[00290] Фиг. 16 представляет собой диаграмму, иллюстрирующую вариант осуществления, который выполняет сигнализацию, включающую в себя указатель, указывающий, следует ли применить список информации движения к синтаксису набора параметров картинки (PPS).[00290] FIG. 16 is a diagram illustrating an embodiment that performs signaling including an indicator indicating whether the motion information list should be applied to picture parameter set (PPS) syntax.
[00291] Фиг. 17 представляет собой диаграмму, иллюстрирующую вариант осуществления, который выполняет сигнализацию, включающую в себя указатель, указывающий, следует ли применить список информации движения к синтаксису заголовка слайса.[00291] FIG. 17 is a diagram illustrating an embodiment that performs signaling including an indicator indicating whether the motion information list should be applied to the slice header syntax.
[00292] На фиг. 15-17, amvol_enable_flag является информацией, указывающей, разрешено ли интер-предсказание с использованием списка информации движения. Когда amvol_enable_flag имеет значение “истинно”, это указывает, что интер-предсказание с использованием списка информации движения разрешено, а когда имеет значение “ложно”, это указывает, что интер-предсказание с использованием списка информации движения не разрешено.[00292] In FIG. 15-17, amvol_enable_flag is information indicating whether inter-prediction using the motion information list is enabled. When amvol_enable_flag is true, it indicates that inter-prediction using the motion information list is enabled, and when it is false, it indicates that inter-prediction using the motion information list is not enabled.
[00293] Кроме того, amvol_prediction_flag является информацией, указывающей, выполняется ли предсказание списка информации движения. То есть, amvol_prediction_flag может указывать, следует ли выполнить этап предсказания списка информации движения согласно фиг. 10-12. amvol_prediction_flag может сигнализироваться, только когда amvol_enable_flag имеет значение “истинно”.[00293] In addition, amvol_prediction_flag is information indicating whether motion information list prediction is performed. That is, amvol_prediction_flag may indicate whether the motion information list prediction step of FIG. 10-12. amvol_prediction_flag can only be signaled when amvol_enable_flag is true.
[00294] Между тем, когда amvol_enable_flag и amvol_prediction_flag сигнализируются в заголовке слайса, как в примере на фиг. 17, сигнализация выполняется, когда тип слайса не является I-слайсом. Это объясняется тем, что слайс типа I-слайса не выполняет интер-предсказание, так что интер-предсказание с использованием списка информации движения не выполняется. Однако когда IBC выполняется в слайсе типа I-слайса и список информации движения доступен в IBC, amvol_enable_flag может сигнализироваться. Кроме того, когда IBC выполняется над слайсом типа I-слайса и предсказание списка информации движения доступно, amvol_prediction_flag может сигнализироваться.[00294] Meanwhile, when amvol_enable_flag and amvol_prediction_flag are signaled in the slice header, as in the example in FIG. 17, signaling is performed when the slice type is not I-slice. This is because the I-slice type slice does not perform inter-prediction, so inter-prediction using the motion information list is not performed. However, when IBC is executed in a slice of type I-slice and a list of motion information is available in the IBC, amvol_enable_flag may be signaled. In addition, when IBC is performed on a slice of type I-slice and motion information list prediction is available, amvol_prediction_flag may be signaled.
[00295][00295]
[00296] Далее, будет описан способ предсказания списка информации движения в соответствии с настоящим изобретением.[00296] Next, a motion information list prediction method according to the present invention will be described.
[00297] В настоящей спецификации, текущая UPU может означать UPU, которой принадлежит текущий блок, и текущий список информации движения может означать список информации движения текущего блока. [00297] In this specification, the current UPU may refer to the UPU to which the current block belongs, and the current motion information list may refer to the motion information list of the current block.
[00298] Кроме того, предсказание списка информации движения означает предсказание информации движения с целью включения в инициализированный или вновь сгенерированный список информации движения.[00298] In addition, motion information list prediction means predicting motion information for inclusion in an initialized or newly generated motion information list.
[00299] Информация движения текущего списка информации движения может быть предсказана с использованием области, в которой кодирование/декодирование завершено раньше, чем текущая UPU (то есть, предварительно восстановленной области).[00299] The motion information of the current motion information list can be predicted using an area in which encoding/decoding is completed earlier than the current UPU (ie, a pre-recovered area).
[00300] Поскольку информация движения изображения имеет тенденцию, подобную смежной по пространству и по времени области, текущая UPU может иметь информацию движения, аналогичную другим смежным по пространству и по времени областям. Поэтому, путем обращения к информации движения в предварительно восстановленной области, можно предсказать информацию движения списка информации движения текущей UPU.[00300] Since image motion information has a trend similar to that of a spatially and temporally contiguous region, the current UPU may have motion information similar to other spatially and temporally contiguous regions. Therefore, by referring to the motion information in the previously reconstructed area, the motion information of the motion information list of the current UPU can be predicted.
[00301] Например, может существовать способ предсказания информации движения списка информации движения из области, смежной по пространству и времени, для текущего блока и способ предсказания информации движения списка информации движения текущей UPU из списка информации движения предварительно восстановленной UPU.[00301] For example, there may be a method for predicting motion information of a motion information list from a region adjacent in space and time to a current block, and a method for predicting motion information of a motion information list of the current UPU from a motion information list of a previously recovered UPU.
[00302][00302]
[00303] 1. Способ предсказания информации движения списка информации движения из области, смежной по пространству и времени с текущим блоком[00303] 1. A method for predicting motion information of a list of motion information from a region adjacent in space and time to the current block
[00304] [00304]
[00305] Возможно предсказать информацию движения текущего списка информации движения из областей, смежных по пространству и времени и принадлежащих UPU, отличающимся от текущей UPU, включающей в себя текущий блок.[00305] It is possible to predict motion information of the current motion information list from regions contiguous in space and time and belonging to UPUs different from the current UPU including the current block.
[00306] Фиг. 18 является примером предсказания информации движения текущего списка информации движения из области, смежной по времени с текущим блоком.[00306] FIG. 18 is an example of motion information prediction of a current motion information list from a region adjacent in time to the current block.
[00307] На фиг. 18 предполагается, что UPU является единицей картинки. Поэтому, когда картинка изменяется, список информации движения может быть также инициализирован.[00307] In FIG. 18 assumes that the UPU is a picture unit. Therefore, when the picture changes, the motion information list can also be initialized.
[00308] Фиг. 18 иллюстрирует способ предсказания информации движения списка информации движения (AMOVL) из опорной картинки, к которой обращается текущая картинка. Здесь, опорная картинка является предварительно восстановленной картинкой и может содержать информацию движения, используемую, чтобы восстановить картинку.[00308] FIG. 18 illustrates a method for predicting motion information of a motion information list (AMOVL) from a reference picture accessed by the current picture. Here, the reference picture is a previously reconstructed picture and may contain motion information used to restore the picture.
[00309] Со ссылкой на фиг. 18, информация движения может быть предсказана из соответствующего блока (далее упоминается как “временной соседний блок”) опорной картинки, который пространственно идентичен, но по времени отличается от текущего блока кодирования (например, CU, PU, макроблока, CTU и т.д.), подлежащего кодированию/декодированию в текущей картинке, и может добавляться в текущий список информации движения.[00309] With reference to FIG. 18, motion information can be predicted from a corresponding block (hereinafter referred to as a “temporal neighboring block”) of a reference picture that is spatially identical but temporally different from the current encoding block (for example, CU, PU, macroblock, CTU, etc. ) to be encoded/decoded in the current picture, and can be added to the current motion information list.
[00310] Поскольку список информации движения инициализируется в момент времени, когда восстановлен первый блок кодирования текущей картинки, не должно иметься информации, сохраненной в списке информации движения. Однако, в примере на фиг. 18, к которому применяется настоящее изобретение, можно видеть, что информация движения A’, B’ и C’, выведенная из временных соседних блоков опорной картинки, добавляется в список информации движения.[00310] Since the motion information list is initialized at the time when the first encoding block of the current picture is restored, there should be no information stored in the motion information list. However, in the example in FIG. 18, to which the present invention is applied, it can be seen that the motion information A', B' and C' derived from the temporary adjacent blocks of the reference picture are added to the motion information list.
[00311] Фиг. 19 представляет собой диаграмму, иллюстрирующую пример предсказания информации движения текущего списка информации движения из области, пространственно смежной с текущим блоком кодирования.[00311] FIG. 19 is a diagram illustrating an example of motion information prediction of a current motion information list from a region spatially adjacent to the current encoding block.
[00312] На фиг. 19, предполагается, что UPU является единицей слайса. Поэтому, может существовать множество UPU в одной картинке.[00312] In FIG. 19, it is assumed that the UPU is a slice unit. Therefore, there can be many UPUs in one picture.
[00313] Фиг. 19 показывает способ предсказания информации движения списка информации движения (AMOVL) блока, пространственно смежного с текущим блоком кодирования (далее упоминается как “пространственный соседний блок”).[00313] FIG. 19 shows a method for predicting motion information of a motion information list (AMOVL) of a block spatially adjacent to a current encoding block (hereinafter referred to as a “spatial adjacent block”).
[00314] Со ссылкой на фиг. 19, UPU 0 состоит из трех блоков и соответствует предварительно восстановленной области, которая уже была восстановлена.[00314] With reference to FIG. 19, UPU 0 consists of three blocks and corresponds to a pre-recovery area that has already been recovered.
[00315] Поскольку список информации движения инициализируется в момент времени, когда восстановлен первый блок кодирования UPU 1, не должно иметься информации, сохраненной в списке информации движения. Однако, в примере на фиг. 18, к которому применяется настоящее изобретение, информация движения списка информации движения может быть предсказана путем обращения к информации движения области, пространственно смежной с текущим блоком кодирования, из предварительно восстановленной UPU 0. Поэтому, можно видеть, что информация движения A и B добавляется в список информации движения UPU 1.[00315] Since the motion information list is initialized at the time when the first encoding block of the UPU 1 is recovered, there should be no information stored in the motion information list. However, in the example in FIG. 18, to which the present invention is applied, the motion information of the motion information list can be predicted by referring to the motion information of a region spatially adjacent to the current encoding block from the previously reconstructed UPU 0. Therefore, it can be seen that the motion information of A and B are added to the list UPU 1 traffic information.
[00316] Между тем, описание выше было приведено на основе блока кодирования согласно фиг. 18 и 19, но может быть описано на основе единицы дерева кодирования (CTU), единицы кодирования (CU), единицы предсказания (PU), единицы преобразования (TU), макроблока или блока предопределенного размера.[00316] Meanwhile, the description above has been given based on the encoding block according to FIG. 18 and 19, but may be described in terms of a coding tree unit (CTU), a coding unit (CU), a prediction unit (PU), a transform unit (TU), a macroblock, or a predefined block size.
[00317] [00317]
[00318] Блок кодирования может хранить информацию движения в единицах подблоков. Соответственно, разная информация движения может обеспечиваться в единицах подблоков, и к информации движения можно обращаться независимо от типа разбиения блока кодирования.[00318] The encoding block may store motion information in units of subblocks. Accordingly, various motion information may be provided in subblock units, and the motion information may be accessed regardless of the partition type of the encoding block.
[00319] Даже в случае предсказания списка информации движения из области, смежной по пространству и времени, можно обращаться к подблоку смежного по пространству и времени блока кодирования. Здесь, поскольку обращение ко всем подблокам требует большого количества вычислений, предсказание списка информации движения может выполняться посредством обращения к подблоку, имеющем предопределенный диапазон или положение. Репрезентативное значение n подблоков может использоваться вместо минимальной единицы, так что информация движения всех подблоков не сохраняется.[00319] Even in the case of predicting a list of motion information from a region adjacent in space and time, a subblock of a spatially and time adjacent encoding block can be accessed. Here, since accessing all sub-blocks requires a large amount of computation, motion information list prediction can be performed by accessing a sub-block having a predetermined range or position. A representative value of n sub-blocks can be used instead of the minimum unit, so that the motion information of all sub-blocks is not stored.
[00320] В качестве примера, когда размер подблока составляет 4×4, четыре подблока принадлежат области 8×8. Путем выбора репрезентативного значения из четырех подблоков и сохранения только одной информации движения в области 8×8, можно уменьшить использование памяти для хранения информации движения подблока. Здесь, предсказание списка информации движения может обращаться к информации движения, указанной в качестве репрезентативной в области 8×8.[00320] As an example, when the subblock size is 4x4, four subblocks belong to the 8x8 area. By selecting a representative value from four sub-blocks and storing only one motion information in an 8×8 area, it is possible to reduce the memory usage for storing the sub-block motion information. Here, motion information list prediction may refer to motion information specified as representative in the 8x8 area.
[00321] Диапазон для выбора репрезентативного значения подблоков может быть задан в различных размерах, таких как 4×4, 8×8, 16×16 и т.п. Способ выбора репрезентативного значения из подблоков может включать в себя способ использования фиксированного положения в диапазоне выбора репрезентативного значения, способ учета частоты появления, способ использования среднего значения и т.п. Кроме того, репрезентативное значение может определяться с использованием по меньшей мере одного из взвешенной суммы, взвешенного среднего значения, медианного значения, минимального значения и максимального значения, в дополнение к среднему значению.[00321] The range for selecting the representative value of the subblocks can be set in various sizes, such as 4x4, 8x8, 16x16, and the like. A method for selecting a representative value from sub-blocks may include a method for using a fixed position in a selection range of the representative value, a method for considering frequency of occurrence, a method for using an average value, and the like. Moreover, the representative value may be determined using at least one of a weighted sum, a weighted average, a median, a minimum value, and a maximum value, in addition to the average value.
[00322][00322]
[00323] При предсказании списка информации движения из смежной по времени области, поскольку картинка временного соседнего блока отличается от текущей картинки, и опорная картинка временного соседнего блока отличается от опорной картинки текущего блока, временное расстояние, указанное информацией движения, может варьироваться.[00323] When predicting a motion information list from a time adjacent region, since the picture of the temporary neighboring block is different from the current picture, and the reference picture of the temporary neighboring block is different from the reference picture of the current block, the temporal distance indicated by the motion information may vary.
[00324] Например, в случае, где текущей картинкой является POC 4, картинкой временного соседнего блока, к которой обращаются для предсказания списка информации движения, является POC 8, опорной картинкой текущего блока является POC 8, и опорной картинкой временного соседнего блока является POC 1, временное расстояние между текущей картинкой и опорной картинкой текущего блока имеет различие на четыре относительно POC, и временное расстояние между картинкой временного соседнего блока и опорной картинкой временного соседнего блока имеет различие на семь относительно POC. Кроме того, поскольку текущий блок обращается к будущей картинке, а временной соседний блок обращается к прошлой картинке, можно видеть, что временные направления обращения также противоположны друг другу.[00324] For example, in the case where the current picture is POC 4, the temporary neighbor picture accessed to predict the motion information list is POC 8, the current block reference picture is POC 8, and the temporary neighboring block reference picture is POC 1 , the temporal distance between the current picture and the reference picture of the current block has a difference of four with respect to POC, and the temporal distance between the picture of a temporary neighboring block and the reference picture of a temporary neighboring block has a difference of seven with respect to POC. In addition, since the current block accesses the future picture, and the temporal neighboring block accesses the past picture, it can be seen that the temporal directions of the access are also opposite to each other.
[00325] Поэтому, необходимо предсказывать и корректировать изменение в информации движения во временных интервалах. Это называется масштабированием информации движения.[00325] Therefore, it is necessary to predict and correct the change in motion information in time domains. This is called motion information scaling.
[00326] Когда предсказание списка информации движения выполняется из смежной по времени области, масштабирование информации движения может также применяться к информации движения, к которой обращаются для предсказания списка информации движения.[00326] When motion information list prediction is performed from a time-contiguous region, motion information scaling may also be applied to the motion information accessed to predict the motion information list.
[00327] Даже в случае предсказания списка информации движения из временного соседнего блока, можно ожидать повышения эффективности кодирования за счет масштабирования информации движения.[00327] Even in the case of predicting a list of motion information from a temporary adjacent block, an increase in encoding efficiency can be expected by scaling the motion information.
[00328] Однако масштабирование информации движения может требовать большого объема вычислений. Поэтому, при выполнении предсказания списка информации движения, масштабирование информации движения может опускаться, или информация движения, требующая масштабирования информации движения, может не использоваться для предсказания.[00328] However, scaling motion information can be computationally intensive. Therefore, when performing motion information list prediction, scaling of motion information may be omitted, or motion information requiring scaling of motion information may not be used for prediction.
[00329] Когда имеет место незначительное движение временного соседнего блока, масштабирование информации движения может не требоваться.[00329] When there is slight motion of a temporary neighboring block, scaling of the motion information may not be required.
[00330] Альтернативно, масштабирование информации движения может опускаться, когда временной интервал между текущей картинкой и опорной картинкой текущего блока равен временному интервалу между картинкой временного соседнего блока и опорной картинкой временного соседнего блока или меньше, чем предопределенный диапазон.[00330] Alternatively, motion information scaling may be omitted when the time interval between the current picture and the reference picture of the current block is equal to the time interval between the picture of the temporary neighboring block and the reference picture of the temporary neighboring block or less than a predetermined range.
[00331] Как таковая, только информация движения, которая не требует масштабирования информации движения, используется для предсказания, и соответственно можно избежать увеличения объема вычислений из-за масштабирования информации движения.[00331] As such, only motion information that does not require scaling of motion information is used for prediction, and accordingly, increased computation due to scaling of motion information can be avoided.
[00332] Между тем, информации движения, требующей масштабирования информации движения, может назначаться более низкий приоритет, чем информации движения, которая не требует масштабирования информации движения при предсказании.[00332] Meanwhile, motion information that requires motion information scaling may be assigned a lower priority than motion information that does not require motion information scaling in prediction.
[00333][00333]
[00334] 2. Способ предсказания информации движения списка информации движения из списка информации движения предварительно восстановленной UPU[00334] 2. Method for predicting motion information of a motion information list from a motion information list previously recovered by the UPU
[00335][00335]
[00336] Настоящий способ является способом выполнения предсказания списка информации движения текущей UPU с использованием списка информации движения предварительно восстановленной UPU.[00336] The present method is a method for performing motion information list prediction of a current UPU using the motion information list of a previously reconstructed UPU.
[00337] UPU могут иметь списки информации движения, отличающиеся друг от друга, и смежные по пространству и времени UPU могут иметь списки информации движения, сходные друг с другом. Поэтому, текущая UPU может предсказывать информацию движения текущего списка информации движения путем обращения к списку информации движения смежной по пространству и времени UPU, которая предварительно восстановлена.[00337] UPUs may have motion information lists that are different from each other, and spatially and temporally adjacent UPUs may have motion information lists that are similar to each other. Therefore, the current UPU can predict the motion information of the current motion information list by referring to the motion information list of the space-time adjacent UPU that has been previously reconstructed.
[00338][00338]
[00339] Фиг. 20 представляет собой диаграмму, иллюстрирующую пример способа выполнения предсказания текущего списка информации движения с обращением к списку информации движения предварительно восстановленной UPU.[00339] FIG. 20 is a diagram illustrating an example of a method for performing prediction of a current motion information list with reference to a motion information list previously retrieved by the UPU.
[00340] На фиг. 20 показан момент времени, когда первый блок кодирования UPU 1 восстановлен, и список информации движения может быть инициализирован в этот момент времени, так что информация движения, сгенерированная из текущей UPU (UPU 1), не может быть добавлена.[00340] In FIG. 20 shows a point in time when the first encoding block of the UPU 1 is restored, and the motion information list can be initialized at this point in time, so that the motion information generated from the current UPU (UPU 1) cannot be added.
[00341] В примере на фиг. 20, к которому применяется настоящее изобретение, с обращением к списку информации движения предварительно восстановленной UPU 0, предсказание списка информации движения выполняется путем добавления информации движения списка информации движения UPU 0 в список информации движения UPU 1.[00341] In the example of FIG. 20, to which the present invention is applied, by referring to the motion information list previously recovered by UPU 0, prediction of the motion information list is performed by adding the motion information of the UPU 0 motion information list to the UPU 1 motion information list.
[00342] После того, как интер-предсказание первого блока текущей картинки окончено, информация движения первого блока может быть добавлена в список информации движения. Здесь, соответствующая информация движения может быть установлена, чтобы иметь самое низкое значение индекса в списке информации движения. Значения индекса информации движения, существующей в существующем списке информации движения, могут увеличиваться на единицу и таким образом сохраняться. [00342] After inter-prediction of the first block of the current picture is completed, the motion information of the first block can be added to the motion information list. Here, the corresponding motion information can be set to have the lowest index value in the motion information list. The index values of motion information existing in the existing motion information list may be increased by one and thus stored.
[00343] Альтернативно, информация движения первого блока может быть установлена, чтобы иметь предопределенное значение индекса в списке информации движения. Значение индекса информации движения, существующей в существующем списке информации движения, может сохраняться при увеличении на единицу.[00343] Alternatively, the motion information of the first block may be set to have a predetermined index value in the motion information list. The index value of motion information existing in the existing motion information list may be maintained when increased by one.
[00344][00344]
[00345] Между тем, когда вся картинка представляет собой UPU, последний блок предварительно восстановленной картинки кодируется/декодируется, и затем окончательный список информации движения, в котором сохранена информация движения блока, используется для предсказания списка информации движения первого блока текущей картинки.[00345] Meanwhile, when the entire picture is a UPU, the last block of the previously reconstructed picture is encoded/decoded, and then the final motion information list in which the block motion information is stored is used to predict the motion information list of the first block of the current picture.
[00346] То есть, вся или часть информации движения, сохраненной в окончательном списке информации движения UPU предварительно восстановленной картинки, используется, чтобы предсказывать или инициализировать список информации движения текущей UPU, которая является текущей картинкой. Здесь, UPU предварительно восстановленной картинки может называться опорной UPU.[00346] That is, all or part of the motion information stored in the final UPU motion information list of the previously reconstructed picture is used to predict or initialize the motion information list of the current UPU, which is the current picture. Here, the UPU of the previously reconstructed picture may be called a reference UPU.
[00347] Список информации движения может не хранить информацию движения из текущей картинки перед тем, как выполняется интер-предсказание первого блока текущей картинки. Это объясняется тем, что отсутствует информация движения в текущей картинке. Здесь, список информации движения может быть предсказан или инициализирован путем сохранения некоторой или всей информации движения, сохраненной в окончательном списке информации движения опорной UPU, в текущем списке информации движения. Информация движения, сохраненная в текущем списке информации движения через предсказание или инициализацию списка информации движения, может использоваться для интер-предсказания первого блока текущей картинки.[00347] The motion information list may not store motion information from the current picture before inter-prediction of the first block of the current picture is performed. This is because there is no motion information in the current picture. Here, the motion information list can be predicted or initialized by storing some or all of the motion information stored in the final motion information list of the reference UPU in the current motion information list. The motion information stored in the current motion information list through prediction or initialization of the motion information list can be used for inter-prediction of the first block of the current picture.
[00348][00348]
[00349] Когда текущей список информации движения предсказывается из списка информации движения предварительно восстановленной области, можно обращаться к промежуточно сконфигурированному списку информации движения вместо окончательно сконфигурированного списка информации движения, в предварительно восстановленной области. [00349] When the current motion information list is predicted from the motion information list of the pre-recovered area, the intermediately configured motion information list can be accessed instead of the finally configured motion information list in the pre-recovered area.
[00350] Список информации движения может накапливать и сохранять информацию движения, сгенерированную в соответствующей UPU, и может также удалять сохраненную информацию движения. Поэтому, по мере выполнения кодирования/декодирования, сохраненная информация может изменяться. При предсказании или инициализации текущего списка информации движения, в случае, когда местоположение блока кодирования для выполнения предсказания посредством текущего списка информации движения удалено от местоположения генерации информации движения, окончательно сохраненной списком информации движения в предварительно восстановленной области, к которой обращается текущий список информации движения, эффективность предсказания списка информации движения может снижаться.[00350] The motion information list can accumulate and store motion information generated in the corresponding UPU, and can also delete the stored motion information. Therefore, as encoding/decoding is performed, the stored information may change. When predicting or initializing the current motion information list, in the case where the location of the encoding block for performing prediction by the current motion information list is distant from the generation location of the motion information finally stored by the motion information list in the pre-recovered area accessed by the current motion information list, the efficiency motion information list predictions may be reduced.
[00351] Например, когда UPU является единицей картинки, информация движения, окончательно сохраненная в списке информации движения, может быть информацией движения, сгенерированной из блока кодирования снизу справа картинки. Здесь, когда количество информации движения, сохраненной в списке информации движения, ограничено, информация движения, сгенерированная рядом с верхним левым концом, который является начальной частью картинки из окончательно сохраненной информации движения, удаляется из списка информации движения, а информация движения рядом с нижним правым концом, который является конечной частью картинки, может сохраняться в списке информации движения. Поскольку первый блок кодирования текущей UPU соответствует верхней левой области картинки, информация движения, сгенерированная из нижней правой области опорной картинки, имеет низкую корреляцию, при этом эффективность предсказания невысока. При предсказании или инициализации списка информации движения, эффективность кодирования может быть выше при обращении к списку информации движения во время сохранения информации рядом с верхней левой областью, вместо предварительно восстановленного списка информации движения, который окончательно создан, чем при обращении к окончательному списку информации движения.[00351] For example, when the UPU is a picture unit, motion information finally stored in the motion information list may be motion information generated from a coding block at the bottom right of the picture. Here, when the amount of motion information stored in the motion information list is limited, the motion information generated near the upper left end, which is the initial part of the picture from the finally stored motion information, is removed from the motion information list, and the motion information near the lower right end , which is the end part of the picture, can be stored in the motion information list. Since the first encoding block of the current UPU corresponds to the upper left region of the picture, the motion information generated from the lower right region of the reference picture has low correlation, and the prediction efficiency is low. When predicting or initializing a motion information list, encoding efficiency may be higher when accessing the motion information list while storing the information adjacent to the upper left region, instead of a previously reconstructed motion information list that is finally created, than when accessing the final motion information list.
[00352] Однако, использование памяти значительно выше, когда список информации движения сохраняется на всех этапах. Соответственно, после копирования и сохранения предопределенного списка информации движения в конкретный момент времени так, что использование памяти может быть уменьшено, можно отдельно использовать буфер опорного списка информации движения, который может использоваться, чтобы предсказывать или инициализировать список информации движения.[00352] However, memory usage is significantly higher when the motion information list is stored at all stages. Accordingly, after copying and storing a predetermined motion information list at a specific time so that memory usage can be reduced, a motion information reference list buffer can be separately used, which can be used to predict or initialize the motion information list.
[00353] Например, списки информации движения верхней левой и нижней правой областей единицы UPU могут сохраняться в буфере опорного списка информации движения.[00353] For example, motion information lists of the upper left and lower right areas of the UPU may be stored in a motion information reference list buffer.
[00354] [00354]
[00355] Кроме того, когда список информации движения предварительно восстановленной картинки используется для предсказания списка информации движения, текущая картинка отличается от предварительно восстановленной картинки, и опорная картинка текущего блока отличается от опорной картинки, к которой обращается информация движения в списке информации движения предварительно восстановленной картинки. Здесь, поскольку эффективность предсказания может снижаться вследствие разницы временного расстояния между предварительно восстановленной картинкой и опорной картинкой, к которой обращается информация движения, может использоваться коррекция, такая как масштабирование информации движения и тому подобное.[00355] In addition, when the motion information list of the pre-recovered picture is used to predict the motion information list, the current picture is different from the pre-recovered picture, and the reference picture of the current block is different from the reference picture referred to by the motion information in the motion information list of the pre-recovered picture. . Here, since the prediction efficiency may be reduced due to the difference in time distance between the pre-reconstructed picture and the reference picture accessed by the motion information, correction such as motion information scaling and the like can be used.
[00356][00356]
[00357] Кроме того, вышеописанный способ может назначать UPU для обращения. В качестве способа назначения UPU для обращения, существует способ разрешения кодеру и декодеру обращаться к одной и той же UPU путем передачи и приема закодированного сигнала и способ пропуска дополнительной передачи и приема сигнала за счет выбора UPU предопределенным способом.[00357] In addition, the above method may assign a UPU to address. As a method for assigning a UPU to address, there is a method for allowing an encoder and a decoder to access the same UPU by transmitting and receiving an encoded signal, and a method for skipping additional signal transmission and reception by selecting the UPU in a predetermined manner.
[00358] Хотя на фиг. 20 описан способ копирования всего списка информации движения опорной UPU в качестве способа предсказания текущего списка информации движения, может применяться способ копирования только части информации движения из списка информации движения в текущий список информации движения.[00358] Although in FIG. 20 describes a method for copying an entire motion information list of a reference UPU as a method for predicting a current motion information list, a method for copying only part of the motion information from a motion information list to a current motion information list may be applied.
[00359] В качестве примера, только информация движения ниже предопределенного индекса из списка информации движения опорной UPU может добавляться в текущий список информации движения.[00359] As an example, only motion information below a predetermined index from the motion information list of the reference UPU may be added to the current motion information list.
[00360][00360]
[00361] 3. Способ предсказания информации движения текущего списка информации движения из информации движения, ранее включенной в текущий список информации движения[00361] 3. A method for predicting motion information of a current motion information list from motion information previously included in the current motion information list
[00362] [00362]
[00363] Когда количество информации движения, сохраненной в списке информации движения, является недостаточным, недостаточное количество списка информации движения может быть предсказано и добавлено из текущего списка информации движения.[00363] When the amount of motion information stored in the motion information list is insufficient, the insufficient amount of motion information list can be predicted and added from the current motion information list.
[00364] Дополнительное предсказание информации движения текущего списка информации движения из информации движения, ранее включенной в текущий список информации движения, может выполняться по меньшей мере в один из момента времени после добавления информации движения в список информации движения, момента времени, который добавлен, и момента времени, в который информация движения генерируется в блоке кодирования, прежде чем информация движения добавляется в список информации движения.[00364] Additional prediction of the motion information of the current motion information list from the motion information previously included in the current motion information list may be performed at at least one of the times after the motion information is added to the motion information list, the time that is added, and the time the time at which motion information is generated in the encoding block before the motion information is added to the motion information list.
[00365][00365]
[00366] Фиг. 21 представляет собой диаграмму, иллюстрирующую способ выполнения предсказания списка информации движения из информации движения, хранящейся в текущем списке информации движения.[00366] FIG. 21 is a diagram illustrating a method for performing motion information list prediction from motion information stored in a current motion information list.
[00367] Со ссылкой на фиг. 21, можно видеть, что информация движения А, сгенерированная интер-предсказанием первого блока кодирования, добавляется в список информации движения (обновление AMVOL). Это означает состояние, в котором только одна информация движения сохранена в списке информации движения. Поэтому, когда интер-предсказание выполняется посредством списка информации движения, эффективность кодирования может ухудшаться.[00367] With reference to FIG. 21, it can be seen that the motion information A generated by the inter-prediction of the first encoding block is added to the motion information list (AMVOL update). This means a state in which only one motion information is stored in the motion information list. Therefore, when inter-prediction is performed by the motion information list, encoding efficiency may deteriorate.
[00368] На фиг. 21 можно видеть, что предсказание списка информации движения выполняется перед выполнением интер-предсказания следующего блока кодирования (или после обновления списка информации движения). Количество информации движения, хранящейся в списке информации движения, может быть увеличено путем предсказания информации движения A’ и A’’ из информации движения А, сохраненной в текущем списке информации движения, и сохранения ее в списке информации движения. Путем увеличения количества информации движения в текущем списке информации движения, эффективность интер-предсказания с использованием списка информации движения может быть улучшена.[00368] In FIG. 21, it can be seen that prediction of the motion information list is performed before performing inter-prediction of the next encoding block (or after updating the motion information list). The amount of motion information stored in the motion information list can be increased by predicting the motion information A' and A'' from the motion information A stored in the current motion information list and storing it in the motion information list. By increasing the amount of motion information in the current motion information list, the performance of inter-prediction using the motion information list can be improved.
[00369] [00369]
[00370] Далее, информация движения, существующая в текущем списке информации движения, называется существующей информацией движения, и вновь предсказанная информация движения называется предсказанной информацией движения.[00370] Further, motion information existing in the current motion information list is called existing motion information, and the newly predicted motion information is called predicted motion information.
[00371] Следующие способы 1)-3) являются примерами способа выведения предсказанной информации движения с использованием существующей информации движения. [00371] The following methods 1)-3) are examples of a method for deriving predicted motion information using existing motion information.
[00372] [00372]
[00373] 1) Способ преобразования вектора движения существующей информации движения и выведения предсказанной информации движения[00373] 1) A method for transforming a motion vector of existing motion information and outputting predicted motion information
[00374][00374]
[00375] Вектор движения представляет, как движение, пространственное расстояние между блоком, использующим соответствующую информацию движения, и областью, к которой следует обращаться. Поэтому, когда вектор движения преобразуется, область, к которой следует обращаться, изменяется.[00375] A motion vector represents, as motion, the spatial distance between a block using the corresponding motion information and a region to be accessed. Therefore, when the motion vector is transformed, the area to be addressed changes.
[00376] Например, существует способ модифицирования вектора движения существующей информации движения с использованием предопределенного способа. [00376] For example, there is a method for modifying a motion vector of existing motion information using a predetermined method.
[00377] Способ модифицирования вектора движения может быть по меньшей мере одним из добавления смещения, масштабирования и зеркального отражения.[00377] The method for modifying the motion vector may be at least one of adding displacement, scaling, and flipping.
[00378] Добавление смещения является способом модифицирования вектора движения путем добавления предопределенного смещения к вектору движения.[00378] Offset addition is a method of modifying a motion vector by adding a predetermined offset to the motion vector.
[00379] В качестве примера, вектор движения может быть выражен как MV(x, y), имеющий смещение по оси x и смещение по оси y, и путем добавления предопределенного смещения dx, dy к MV(x, y) можно сгенерировать модифицированный вектор движения MV’(x+dx, y+dy). Здесь, dx и dy могут быть целыми, и dx и dy могут быть значениями, отличающимися друг от друга.[00379] As an example, a motion vector can be expressed as MV(x, y) having an x-axis offset and a y-axis offset, and by adding a predetermined offset dx, dy to MV(x, y), the modified vector can be generated movements MV'(x+dx, y+dy). Here, dx and dy can be integers, and dx and dy can be values different from each other.
[00380] Масштабирование является способом модифицирования вектора движения путем умножения предопределенного коэффициента увеличения sx и sy на вектор движения MV(x, y). Может генерироваться MV’(sx*x, sy*y), который представляет собой вектор движения, модифицированный посредством масштабирования. С использованием разных коэффициентов увеличения, могут генерироваться различные модифицированные векторы движения. Здесь, sx и sy могут быть целыми, и sx и sy могут быть значениями, отличающимися друг от друга.[00380] Scaling is a method of modifying a motion vector by multiplying a predetermined magnification factor sx and sy by the motion vector MV(x, y). MV'(sx*x, sy*y) can be generated, which is a motion vector modified by scaling. By using different magnification factors, different modified motion vectors can be generated. Here, sx and sy may be integers, and sx and sy may be values different from each other.
[00381] Зеркальное отражение является способом модифицирования вектора движения путем реверсирования направления при поддержании размера вектора движения. Например, когда зеркальное отражение оси x и оси y применяется к вектору движения MV(x, y), можно сгенерировать MV’(-x, -y), который представляет собой модифицированный вектор движения. Путем определения применяемой оси, можно сгенерировать различные модифицированные векторы движения.[00381] Mirroring is a method of modifying a motion vector by reversing the direction while maintaining the size of the motion vector. For example, when mirroring the x-axis and y-axis is applied to the motion vector MV(x, y), it is possible to generate MV'(-x, -y), which is a modified motion vector. By defining the axis to be used, various modified motion vectors can be generated.
[00382][00382]
[00383] 2) Способ преобразования опорной информации существующей информация движения и выведения предсказанной информации движения[00383] 2) A method for converting reference information of existing motion information and outputting predicted motion information
[00384][00384]
[00385] Опорная информация является информацией об опорной картинке, включающей в себя область, к которой обращаются в интер-предсказании. Путем изменения опорной информации, включенной в информацию движения, опорная картинка изменяется так, что область, к которой обращаются, может изменяться. Даже в случае того же самого вектора движения, когда опорная картинка изменяется, информация пиксела, к которому обращаются, может изменяться, и, таким образом, результат интер-предсказания может изменяться. Здесь, вектор движения корректируется с использованием расстояния на временной оси между текущей картинкой и опорной картинкой существующей информации движения и расстояния на временной оси между текущей картинкой и измененной опорной картинкой, тем самым улучшая точность предсказания информации движения.[00385] The reference information is information about a reference picture including a region that is accessed in inter-prediction. By changing the reference information included in the motion information, the reference picture is changed so that the area being accessed can change. Even in the case of the same motion vector, when the reference picture changes, the information of the pixel being accessed may change, and thus the result of the inter-prediction may change. Here, the motion vector is corrected using the time axis distance between the current picture and the reference picture of the existing motion information and the time axis distance between the current picture and the changed reference picture, thereby improving the prediction accuracy of the motion information.
[00386] Фиг. 22 является примером, иллюстрирующим процесс выведения предсказанной информации движения путем изменения опорной картинки существующей информации движения и корректирования вектора движения соответствующим образом.[00386] FIG. 22 is an example illustrating a process of deriving predicted motion information by changing a reference picture of existing motion information and adjusting the motion vector accordingly.
[00387] Со ссылкой на фиг. 22, текущая картинка расположена в точке t на временной оси, и опорная картинка, к которой может обращаться текущая картинка, расположена в точках t-k, t-m и t+n на временной оси. Текущий список информации движения имеет вектор движения А, обращающийся к L0 опорной картинке 0, которая является опорной картинкой в момент времени t-m с нулевым индексом.[00387] With reference to FIG. 22, the current picture is located at point t on the time axis, and a reference picture that can be accessed by the current picture is located at points t-k, t-m and t+n on the time axis. The current motion information list has motion vector A referring to L0 reference picture 0, which is the reference picture at time t-m with index zero.
[00388] Информация движения А может быть скорректирована с учетом расстояния (картинка счетчика, POC) на временной оси между текущей картинкой и каждой опорной картинкой, предполагая, что движение объекта близко к линейному в пределах короткого промежутка времени.[00388] The motion information A may be adjusted to the distance (counter picture, POC) on the time axis between the current picture and each reference picture, assuming that the object's motion is close to linear within a short period of time.
[00389] Когда опорная информация изменяется на L0 опорную картинку 1, которая является опорной картинкой в момент времени t-k, и L1 опорную картинку 0, которая является опорной картинкой в момент времени t+n, информация движения А может быть скорректирована в A’ и A’’, соответственно, с учетом расстояния на временной оси между картинкой и опорной картинкой. Предсказанная информация движения, выведенная вышеописанным образом, может добавляться в список информации движения.[00389] When the reference information is changed to L0 reference picture 1, which is the reference picture at time t-k, and L1 reference picture 0, which is the reference picture at time t+n, the motion information A can be adjusted in A' and A '', respectively, taking into account the distance on the time axis between the picture and the reference picture. The predicted motion information output as described above may be added to the motion information list.
[00390][00390]
[00391] 3) Способ выведения предсказанной информации движения с использованием множества существующей информации движения[00391] 3) Method for deriving predicted motion information using a plurality of existing motion information
[00392][00392]
[00393] Когда две или более информаций движения присутствуют в списке информации движения, предсказанная информация движения может выводиться путем частичного использования каждой из существующей информации движения или использования среднего из двух или более информаций движения.[00393] When two or more motion information are present in the motion information list, predicted motion information can be output by partially using each of the existing motion information or using the average of two or more motion information.
[00394] Кроме того, по меньшей мере одно из статистических значений, таких как взвешенная сумма, взвешенное среднее значение, медианное значение, минимальное значение, максимальное значение и тому подобное, может использоваться, в дополнение к среднему. [00394] Additionally, at least one of the statistical values, such as a weighted sum, a weighted average, a median, a minimum value, a maximum value, and the like, may be used in addition to the average.
[00395] Между тем, опорная информация любой одной из существующей информации движения может использоваться в качестве опорной информации предсказанной информации движения.[00395] Meanwhile, the reference information of any one of the existing motion information can be used as the reference information of the predicted motion information.
[00396] Альтернативно, может выводиться предсказанная информация движения, имеющая опорную информацию, отличающуюся от опорной информации существующей информации движения.[00396] Alternatively, predicted motion information having reference information different from the reference information of existing motion information may be output.
[00397] В качестве примера, опорная информация может сигнализироваться в верхнем наборе параметров, заголовке слайса или тому подобном, и картинка, указанная первым индексом списка опорных картинок, может использоваться в качестве опорной информации предсказанной информации движения.[00397] As an example, reference information may be signaled in the top parameter set, slice header or the like, and the picture indicated by the first index of the reference picture list may be used as the reference information of the predicted motion information.
[00398][00398]
[00399] 4. Способ предсказания предопределенной информации движения как информации движения текущего списка информации движения[00399] 4. Method for predicting predetermined motion information as motion information of a current motion information list
[00400][00400]
[00401] Данный способ является способом предсказания предопределенной информации движения как информации движения текущего списка информации движения. Конкретно, информация движения, определенная аналогично в кодере и декодере, может добавляться в текущий список информации движения.[00401] This method is a method for predicting predetermined motion information as motion information of a current motion information list. Specifically, motion information determined similarly in the encoder and decoder may be added to the current motion information list.
[00402] Предопределенная информация движения может включать в себя информацию вектора движения, имеющего конкретное значение движения в направлениях x и y, такое как (0, 0), (0, 1), (0, -1), (1, 0), (-1, 0) и тому подобное.[00402] The predefined motion information may include motion vector information having a specific motion value in the x and y directions, such as (0, 0), (0, 1), (0, -1), (1, 0) , (-1, 0) and the like.
[00403] Кроме того, опорная информация предопределенной информации движения может определяться заранее, например, “0”-ая картинка списка L0 опорных картинок или “0”-ая картинка списка L1 опорных картинок.[00403] In addition, reference information of the predetermined motion information may be determined in advance, for example, the “0” picture of the reference picture list L0 or the “0” picture of the reference picture list L1.
[00404] С другой стороны, кодер может генерировать флаг, указывающий, следует или нет использовать предопределенную информацию движения, и доставлять его на декодер.[00404] On the other hand, the encoder may generate a flag indicating whether or not to use the predetermined motion information and deliver it to the decoder.
[00405] Когда существует множество предопределенной информации движения, кодер может генерировать идентификатор (или индекс и т.д.), указывающий, какую информацию движения следует применить, и передавать его на декодер.[00405] When there is a plurality of predetermined motion information, the encoder may generate an identifier (or index, etc.) indicating which motion information should be applied, and transmit it to the decoder.
[00406] Декодер может определять, следует ли применить предопределенную информацию движения и какую информацию движения следует применить, на основе переданной информации.[00406] The decoder can determine whether the predetermined motion information should be applied and what motion information should be applied based on the transmitted information.
[00407][00407]
[00408] Может существовать случай, когда отсутствует предварительно восстановленная область, к которой может обращаться текущая UPU, или случай, когда количество информации движения, которая может предсказываться из предварительно восстановленной области, к которой обращаются, достаточно. В таких случаях, вышеописанные способы 3 и 4 могут использоваться для предсказания списка информации движения. [00408] There may be a case where there is no pre-recovered area that can be accessed by the current UPU, or a case where the amount of motion information that can be predicted from the pre-recovered area that is accessed is sufficient. In such cases, the above-described methods 3 and 4 can be used to predict the motion information list.
[00409][00409]
[00410] 5. Способ исключения кандидатов, перекрытых другими способами предсказания движения [00410] 5. Method for eliminating candidates covered by other motion prediction methods
[00411] [00411]
[00412] Множество способов интер-предсказания могут использоваться в кодировании и декодировании, и информация движения, включенная в список информации движения, может использоваться для предсказания информации движения в различных способах интер-предсказания. Здесь, кандидат предсказания движения, используемый способом интер-предсказания, может перекрываться предсказанной информацией движения списка информации движения.[00412] A variety of inter-prediction methods can be used in encoding and decoding, and motion information included in the motion information list can be used to predict motion information in various inter-prediction methods. Here, the motion prediction candidate used by the inter-prediction method may be overlapped with the predicted motion information of the motion information list.
[00413] В качестве примера, информация движения кандидата временного слияния в режиме слияния и информация движения, предсказанная для списка информации движения, идентичны и, таким образом, перекрываются друг с другом.[00413] As an example, the motion information of a temporary fusion candidate in a fusion mode and the motion information predicted for the motion information list are identical and thus overlap with each other.
[00414] В вышеуказанном случае, при использовании той же самой информации движения для интер-предсказания, эффективность предсказания может ухудшаться. Поэтому, с учетом способа предсказания движения (например, кандидат слияния в режиме слияния, кандидат вектора движения в режиме AMVP и т.д.), используемого для интер-предсказания, информация движения может устанавливаться, чтобы иметь более разнообразную предсказанную информацию без перекрытия.[00414] In the above case, when using the same motion information for inter-prediction, the prediction efficiency may deteriorate. Therefore, given the motion prediction method (eg, fusion candidate in fusion mode, motion vector candidate in AMVP mode, etc.) used for inter-prediction, motion information can be set to have more diverse predicted information without overlap.
[00415][00415]
[00416] Когда кандидаты способа предсказания движения и предсказанная информация движения списка информации движения перекрывают друг друга, можно определить, следует ли использовать предсказанную информацию движения списка информации движения в соответствии с приоритетом.[00416] When motion prediction method candidates and predicted motion information of the motion information list overlap each other, it can be determined whether the predicted motion information of the motion information list should be used according to priority.
[00417] Когда приоритет кандидатов способа предсказания движения является высоким, предсказанная информация движения списка информации движения может не использоваться. То есть, предсказанная информация движения может не включаться в список информации движения.[00417] When the priority of motion prediction method candidates is high, the predicted motion information of the motion information list may not be used. That is, the predicted motion information may not be included in the motion information list.
[00418] Напротив, когда приоритет кандидатов способа предсказания движения является низким, может использоваться предсказанная информация движения списка информации движения. То есть, предсказанная информация движения может включаться в список информации движения. Кандидат способа предсказания движения может не включаться в список информации движения.[00418] In contrast, when the priority of motion prediction method candidates is low, the predicted motion information of the motion information list may be used. That is, the predicted motion information may be included in the motion information list. The motion prediction method candidate may not be included in the motion information list.
[00419] Кроме того, когда приоритет кандидатов способа предсказания движения и приоритет предсказанной информации движения списка информации движения являются одинаковыми, предсказанная информация движения списка информации движения может использоваться или может заменяться на предопределенную информацию движения.[00419] In addition, when the priority of motion prediction method candidates and the priority of predicted motion information of the motion information list are the same, the predicted motion information of the motion information list may be used or may be replaced with predetermined motion information.
[00420][00420]
[00421] Чтобы препятствовать перекрытию предсказанной информации движения списка предсказания движения и кандидата способа предсказания движения, предсказанный список информации движения списка информации движения может быть установлен, чтобы выводиться в предопределенном положении, которое не перекрывается с положением блока кандидата способа предсказания движения в момент времени, когда начинается кодирование/ декодирование.[00421] To prevent the predicted motion information of the motion prediction list and the motion prediction method candidate from overlapping, the predicted motion information list of the motion information list can be set to be output at a predetermined position that does not overlap with the position of the motion prediction method candidate block at the time when Encoding/decoding begins.
[00422] Например, может быть назначена совмещенная единица CTU, и информация движения может выводиться из предопределенного положения в CTU. [00422] For example, a co-located CTU may be assigned, and motion information may be output from a predetermined position in the CTU.
[00423][00423]
[00424] Фиг. 23 представляет собой диаграмму, иллюстрирующую способ предсказания списка информации движения, который не перекрывается с кандидатом способа предсказания движения. На фиг. 23, положения C и H, указанные диагональным шаблоном (диагональный шаблон от верхнего правого конца в нижний левый конец), могут обращаться к положениям временных кандидатов, которые могут использоваться в интер-предсказании текущего блока кодирования. [00424] FIG. 23 is a diagram illustrating a motion information list prediction method that does not overlap with a motion prediction method candidate. In fig. 23, the positions C and H indicated by the diagonal pattern (diagonal pattern from the upper right end to the lower left end) may refer to the positions of temporary candidates, which can be used in inter-prediction of the current encoding block.
[00425] Со ссылкой на фиг. 23, предварительно восстановленная область, используемая для предсказания списка информации движения, может быть установлена в область в положении, отличающемся от положений C и H.[00425] With reference to FIG. 23, the pre-recovered area used for motion information list prediction may be set to an area at a position different from positions C and H.
[00426] Как показано на фиг. 23, информация движения списка информации движения может быть установлена как подлежащая выводу в положениях a, b, c, d и e за исключением положений C и H.[00426] As shown in FIG. 23, the motion information of the motion information list can be set to be output in positions a, b, c, d and e except for positions C and H.
[00427] Кроме того, при добавлении информации движения в список информации движения, та же самая информация движения, что и информация движения положений C или H, не может добавляться в список информации движения.[00427] In addition, when adding motion information to the motion information list, the same motion information as the motion information of positions C or H cannot be added to the motion information list.
[00428] Фиг. 24 представляет собой диаграмму, иллюстрирующую вариант осуществления установки положения, к которому обращаются для предсказания списка информации движения в единицах CTU, когда положения временных кандидатов способа предсказания движения являются теми же самыми, что и положения C и H на фиг. 23. [00428] FIG. 24 is a diagram illustrating an embodiment of setting a position accessed to predict a list of motion information in CTUs when the positions of the motion prediction method temporary candidates are the same as the positions C and H in FIG. 23.
[00429] При конфигурировании опорного положения в единицах CTU таким же образом, что и на фиг. 24, можно упростить структуру предсказания списка информации движения с использованием фиксированного положения при повышении эффективности кодирования путем обращения к области, не предсказанной существующим способом предсказания движения.[00429] When configuring the reference position in CTU units in the same manner as in FIG. 24, it is possible to simplify the motion information list prediction structure using a fixed position while improving encoding efficiency by addressing a region not predicted by the existing motion prediction method.
[00430] На фиг. 24, блок диагонального шаблона (блок диагонального шаблона сверху справа вниз налево) и блок обратного диагонального шаблона (блок диагонального шаблона сверху слева вниз направо) могут означать положения информации движения, к которой обращаются для предсказания текущего списка информации движения в совмещенной CTU. Блок диагонального шаблона означает опорную область, имеющую более высокий приоритет, чем блок обратного диагонального шаблона.[00430] In FIG. 24, a diagonal pattern block (a diagonal pattern block from top right to bottom to left) and a reverse diagonal pattern block (a diagonal pattern block from top left to bottom right) may indicate positions of motion information accessed to predict the current list of motion information in the combined CTU. A diagonal pattern block means a reference region having a higher priority than a reverse diagonal pattern block.
[00431][00431]
[00432] Между тем, когда кандидат предсказания движения, используемый способом интер-предсказания, перекрывается предсказанной информацией движения списка информации движения, перекрытая предсказанная информация движения не может использоваться для интер-предсказания.[00432] Meanwhile, when a motion prediction candidate used by the inter-prediction method is overlapped with predicted motion information of the motion information list, the overlapped predicted motion information cannot be used for inter-prediction.
[00433][00433]
[00434] 6. Способ использования предсказанной информации движения отдельно от общей информации движения[00434] 6. Method of using predicted motion information separately from general motion information
[00435][00435]
[00436] В настоящей спецификации, общая информация движения может означать информацию движения, добавленную в список информации движения в качестве информации движения, сгенерированной интер-предсказанием, и информацию движения, добавленную в список информации движения на этапе добавления информации движения согласно фиг. 10 и 11. Предсказанная информация движения может означать информацию движения, сгенерированную посредством предсказания списка информации движения, как описано выше, и может являться информацией движения, добавленной в список информации движения на этапах предсказания списка информации движения согласно фиг. 10 и 11.[00436] In the present specification, general motion information may mean motion information added to the motion information list as motion information generated by inter-prediction, and motion information added to the motion information list in the motion information adding step of FIG. 10 and 11. The predicted motion information may mean motion information generated by motion information list prediction as described above, and may be motion information added to the motion information list in the motion information list prediction steps of FIG. 10 and 11.
[00437][00437]
[00438] Предсказанная информация движения может иметь более низкую эффективность предсказания информации движения, чем общая информация движения. Поэтому, когда предсказанная информация движения имеет более высокий приоритет, чем общая информация движения, эффективность кодирования может быть снижена. Поэтому предсказанная информация движения может создаваться отдельно от общей информации движения, так что приоритет предсказанной информации движения может снижаться или корректироваться.[00438] The predicted motion information may have a lower prediction efficiency of the motion information than the general motion information. Therefore, when predicted motion information has a higher priority than general motion information, encoding efficiency may be reduced. Therefore, the predicted motion information can be generated separately from the general motion information, so that the priority of the predicted motion information can be reduced or adjusted.
[00439] Кроме того, в случае, если добавляется общая информация движения, когда список информации движения уже имел ограниченное максимальное количество информации движения, предсказанная информация движения может удаляться первой. [00439] In addition, in the case that general motion information is added when the motion information list already had a limited maximum amount of motion information, the predicted motion information may be deleted first.
[00440][00440]
[00441] Фиг. 25 и 26 являются диаграммами, иллюстрирующими вариант осуществления способа отдельного использования предсказанной информации движения и общей информации движения. Информация движения может добавляться в список информации движения на фиг. 25 и 26 по правилу “первым пришел - первым обслужен” (FIFO), и размер списка информации движения ограничен пятью. Здесь, размер списка информации движения также включает в себя размер под-списка движения.[00441] FIG. 25 and 26 are diagrams illustrating an embodiment of a method for separately using predicted motion information and general motion information. The motion information may be added to the motion information list in FIG. 25 and 26 according to the first-in-first-out (FIFO) rule, and the size of the traffic information list is limited to five. Here, the size of the motion information list also includes the size of the sub-motion list.
[00442] Со ссылкой на фиг. 25, может существовать список информации движения (AMVOL), хранящий общую информацию движения, и под-список информации движения (под-AMVOL), хранящий список предсказанной информации движения.[00442] With reference to FIG. 25, there may be a motion information list (AMVOL) storing general motion information, and a sub-motion information list (sub-AMVOL) storing a list of predicted motion information.
[00443] До выполнения интер-предсказания первого блока кодирования, никакая информация не хранится в списке информации движения, а информация движения A’, B’ и C’, предсказанная из опорной картинки, может сохраняться в под-списке информации движения.[00443] Before performing inter-prediction of the first encoding block, no information is stored in the motion information list, and the motion information A', B' and C' predicted from the reference picture may be stored in the motion information sub-list.
[00444] Затем, информация движения может добавляться в список информации движения по мере того как выполняется интер-предсказание каждого блока кодирования.[00444] Then, motion information can be added to the motion information list as inter-prediction of each encoding block is performed.
[00445] Здесь, при достижении максимального размера списка информации движения, информация движения сначала удаляется из под-списка информации движения, в котором хранится предсказанная информация движения, и новая информация движения может добавляться в список информации движения. [00445] Here, when the maximum size of the motion information list is reached, the motion information is first removed from the motion information sub-list in which the predicted motion information is stored, and new motion information can be added to the motion information list.
[00446] Между тем, информация, указывающая, используется ли под-список информации движения, информация размера списка информации движения или информация размера под-списка информации движения, может быть информацией, предварительно установленной в кодере/декодере.[00446] Meanwhile, information indicating whether motion information sub-list, motion information list size information, or motion information sub-list size information is used may be information preset in the encoder/decoder.
[00447] Альтернативно, информация, указывающая, используется ли под-список информации движения, информация размера списка информации движения или информация размера под-списка информации движения, может быть информацией, сигнализируемой от кодера на декодер.[00447] Alternatively, information indicating whether motion information sub-list, motion information list size information, or motion information sub-list size information is used may be information signaled from the encoder to the decoder.
[00448] Здесь, размер списка информации движения может быть ограничен предварительно установленным диапазоном. Например, предварительно установленный диапазон может составлять от 0 до 5.[00448] Here, the size of the motion information list may be limited to a preset range. For example, the preset range could be from 0 to 5.
[00449] Кроме того, размер списка информации движения может быть ограничен информацией, сигнализируемой от кодера на декодер. Информация, указывающая размер списка информации движения, может сигнализироваться на более высоком уровне битового потока, таком как набор параметров последовательности, набор параметров картинки, заголовок слайса, заголовок мозаичного элемента, заголовок группы мозаичных элементов и тому подобное.[00449] In addition, the size of the motion information list may be limited by information signaled from the encoder to the decoder. Information indicating the size of the motion information 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, a tile group header, and the like.
[00450] [00450]
[00451] Фиг. 26 представляет собой диаграмму, иллюстрирующую вариант осуществления, в котором один список информации движения используется без использования под-списка информации движения, в отличие от фиг. 25.[00451] FIG. 26 is a diagram illustrating an embodiment in which one motion information list is used without using a motion information sub-list, unlike FIG. 25.
[00452] В примере на фиг. 26, список информации движения может управляться способом FIFO. То есть, список информации движения использует способ добавления сгенерированной информации движения в последнюю часть списка информации движения и удаления сначала предшествующей информации движения, которая введена первой, при превышении максимального размера списка информации движения.[00452] In the example of FIG. 26, the motion information list may be managed in a FIFO manner. That is, the motion information list uses a method of adding the generated motion information to the last part of the motion information list and first deleting the previous motion information that is entered first when the maximum size of the motion information list is exceeded.
[00453] Другими словами, когда количество информации движения, сохраненной в списке информации движения, достигает максимального значения, информация движения, указанная в последнем индексе списка информации движения, удаляется, и вновь выведенная информация движения добавляется в список информации движения. Здесь, индекс информации движения, включенной в список информации движения, может увеличиваться на единицу. Вновь добавленная информация движения может добавляться в список информации движения таким образом, чтобы указываться индексом 0.[00453] In other words, when the amount of motion information stored in the motion information list reaches the maximum value, the motion information specified in the last index of the motion information list is deleted, and the newly outputted motion information is added to the motion information list. Here, the index of motion information included in the motion information list may increase by one. The newly added motion information may be added to the motion information list so as to be indicated by index 0.
[00454][00454]
[00455] Кроме того, информация движения, сохраненная в списке информации движения, может иметь приоритет тем выше, чем ниже индекс.[00455] In addition, motion information stored in the motion information list may have a higher priority the lower the index.
[00456] Здесь, информация движения, сохраненная предсказанием списка информации движения, может обрабатываться отдельно от общей информации движения списка информации движения, сгенерированной и сохраненной в текущей UPU.[00456] Here, the motion information stored by the motion information list prediction can be processed separately from the general motion information of the motion information list generated and stored in the current UPU.
[00457] Поскольку предсказанная информация движения имеет низкий приоритет, когда вновь добавляется общая информация движения, может назначаться индекс ниже, чем в случае информации движения в списке предсказанной информации движения.[00457] Since predicted motion information has a low priority, when general motion information is added again, an index lower than in the case of motion information in the predicted motion information list may be assigned.
[00458] Кроме того, при достижении максимального размера списка информации движения, предсказанная информация движения может предпочтительно удаляться, и новая информация движения может добавляться в список информации движения.[00458] In addition, when the maximum size of the motion information list is reached, the predicted motion information may be preferably deleted, and new motion information may be added to the motion information list.
[00459][00459]
[00460] При этом, чем ниже индекс, тем выше приоритет, как описано ранее. Напротив, чем выше индекс, тем ниже приоритет.[00460] In this case, the lower the index, the higher the priority, as described earlier. On the contrary, the higher the index, the lower the priority.
[00461] Поэтому, способ FIFO для списка информации движения может также выполняться, как описано далее. То есть, когда количество информации движения, сохраненной в списке информации движения, достигает максимального значения, информация движения, указанная индексом 0 списка информации движения, может удаляться, и вновь выведенная информация движения может быть добавлена в список информации движения. Здесь, индекс информации движения, включенной в список информации движения, может уменьшаться на единицу. Вновь добавленная информация движения может добавляться в список информации движения таким образом, чтобы указываться наибольшим индексом среди информации движения, включенной в список информации движения.[00461] Therefore, the FIFO method for the motion information list can also be performed as described below. That is, when the amount of motion information stored in the motion information list reaches the maximum value, the motion information indicated by index 0 of the motion information list can be deleted, and the newly outputted motion information can be added to the motion information list. Here, the index of motion information included in the motion information list may be decreased by one. The newly added motion information may be added to the motion information list so as to be indicated by the largest index among the motion information included in the motion information list.
[00462] Между тем, когда вновь добавленная информация движения сохраняется в списке информации движения, ранее сохраненная информация движения, которая перекрывается, удаляется из списка информации движения, и вновь выведенная информация движения может быть включена в список информации движения. Здесь, индексы информации движения списка информации движения, имеющие значение индекса больше, чем удаленная информация движения, могут уменьшаться на единицу. Вновь добавленная информация движения может добавляться в список движения таким образом, чтобы указываться наибольшим индексом среди информации движения, включенной в список информации движения.[00462] Meanwhile, when the newly added motion information is stored in the motion information list, the previously stored motion information that is overlapped is deleted from the motion information list, and the newly output motion information can be included in the motion information list. Here, the motion information indexes of the motion information list having an index value greater than the deleted motion information may be decreased by one. The newly added motion information may be added to the motion list so as to be indicated by the largest index among the motion information included in the motion information list.
[00463][00463]
[00464] Информация движения, включенная в список информации движения, может иметь приоритет при использовании для предсказания информации движения. Информация движения может быть неявно выражена в соответствии с порядком, в котором информация движения сохраняется в списке информации движения, приоритет явно устанавливается как кандидаты при выполнении интер-предсказания с использованием списка информации движения, или возможно избирательное использование по приоритету.[00464] Motion information included in the motion information list may have priority when used to predict motion information. The motion information may be implicitly expressed according to the order in which the motion information is stored in the motion information list, the priority is explicitly set as candidates when performing inter-prediction using the motion information list, or it may be selectively used by priority.
[00465] Кроме того, поскольку список информации движения может иметь ограниченный размер, при достижении ограниченного размера, информация движения, сохраненная в списке информации движения, может удаляться и новая информация движения может быть добавлена в соответствии с приоритетом.[00465] In addition, since the motion information list may have a limited size, when the limited size is reached, the motion information stored in the motion information list can be deleted and new motion information can be added according to priority.
[00466][00466]
[00467] Между тем, предсказанная информация движения может иметь эффективность предсказания ниже, чем эффективность предсказания нормальной информации движения. Однако, поскольку это не во всех случаях, приоритет предсказанной информации движения может быть перенастроен.[00467] Meanwhile, the predicted motion information may have a prediction efficiency lower than the prediction efficiency of normal motion information. However, since this is not the case in all cases, the priority of the predicted motion information can be reconfigured.
[00468][00468]
[00469] Для перенастройки приоритета предсказанной информации движения может использоваться дополнительная информация.[00469] Additional information may be used to reconfigure the priority of the predicted motion information.
[00470] Список информации движения может включать в себя дополнительную информацию в дополнение к информации движения. Здесь, дополнительная информация может означать информацию, указывающую эффективность интер-предсказания информации движения, включенной в список информации движения, и может также называться потенциальной информацией предсказания. Например, дополнительная информация может являться информацией, выведенной на основе числа появлений той же самой информации движения в UPU.[00470] The motion information list may include additional information in addition to the motion information. Here, additional information may mean information indicating the inter-prediction efficiency of motion information included in the motion information list, and may also be called potential prediction information. For example, the additional information may be information derived based on the number of occurrences of the same motion information in the UPU.
[00471] Дополнительная информация может представлять относительную изменчивость эффективности кодирования при использовании списка информации движения для интер-предсказания.[00471] Additional information may represent the relative variability of encoding efficiency when using the motion information list for inter-prediction.
[00472] В качестве способа для определения дополнительной информации, может существовать способ определения на основе частоты появления информации движения, способ определения на основе эффективности предсказания с использованием информации движения, способ определения на основе местоположения, где выведена информация движения, и способ определения на основе того, следует ли использовать информацию движения.[00472] As a method for determining additional information, there may be a determining method based on the frequency of occurrence of motion information, a determining method based on the prediction efficiency using motion information, a determining method based on the location where motion information is output, and a determining method based on that whether motion information should be used.
[00473] Способ определения на основе частоты появления информации движения является способом определения дополнительной информации на основе числа раз, когда та же самая информация движения, что и информация движения, сохраненная в списке информации движения, генерируется в UPU.[00473] A frequency-based determination method for motion information is a method for determining additional information based on the number of times the same motion information as the motion information stored in the motion information list is generated in the UPU.
[00474] Способ определения на основе эффективности предсказания с использованием информации движения является способом определения дополнительной информации на основе распределения энергии остаточного сигнала или среднего значения энергии остаточного сигнала в блоке кодирования, в котором используется информация движения, сохраненная в списке информации движения.[00474] A method for determining based on prediction efficiency using motion information is a method for determining additional information based on the distribution of residual signal energy or the average value of residual signal energy in a coding block that uses motion information stored in a motion information list.
[00475] Способ определения на основе местоположения, из которого выведена информация движения, является способом определения дополнительной информации на основе пространственного и временного расстояния между текущим блоком кодирования и блоком кодирования, в котором выведена информация движения, сохраненная в списке информации движения.[00475] A method for determining based on the location from which motion information is derived is a method for determining additional information based on the spatial and temporal distance between the current encoding block and the encoding block in which motion information is output stored in the motion information list.
[00476] В то же время, приоритет предсказанной информации движения может переустанавливаться на основе того, используется ли предсказанная информация движения для интер-предсказания. Причина в том, что соответствующая предсказанная информация движения вероятно будет использоваться в будущем, когда она используется для интер-предсказания.[00476] At the same time, the priority of the predicted motion information can be reset based on whether the predicted motion information is used for inter-prediction. The reason is that the corresponding predicted motion information is likely to be used in the future when it is used for inter-prediction.
[00477] Информация, необходимая для переустановки приоритета предсказанной информации движения, может быть информацией, которая предварительно установлена в кодере/декодере или сигнализируется от кодера на декодер.[00477] The information needed to reprioritize the predicted motion information may be information that is preset in the encoder/decoder or signaled from the encoder to the decoder.
[00478][00478]
[00479] Фиг. 27 представляет собой блок-схему последовательности операций, иллюстрирующую способ декодирования изображения в соответствии с вариантом осуществления настоящего изобретения. [00479] FIG. 27 is a flowchart illustrating an image decoding method according to an embodiment of the present invention.
[00480] Со ссылкой на фиг. 27, устройство декодирования изображения может генерировать список кандидатов, включающий в себя информацию движения, выведенную из пространственного соседнего блока и временного соседнего блока, смежных с текущим блоком (S2710).[00480] With reference to FIG. 27, the image decoding apparatus may generate a candidate list including motion information output from a spatial neighbor block and a temporal neighbor block adjacent to the current block (S2710).
[00481] Здесь, список кандидатов может представлять собой любое одно из списка кандидатов слияния в режиме слияния, списка кандидатов векторов движения в режиме AMVP, списка кандидатов слияния в режиме IBC, списка кандидатов векторов блока в режиме IBC и совместно используемого списка слияния в режиме IBC.[00481] Here, the candidate list may be any one of a merge mode merge candidate list, an AMVP mode motion vector candidate list, an IBC mode merge candidate list, an IBC mode block vector candidate list, and a shared IBC mode merge list .
[00482] Кроме того, устройство декодирования изображения может вывести информацию движения текущего блока с использованием списка кандидатов (S2720).[00482] In addition, the image decoding apparatus may output motion information of the current block using the candidate list (S2720).
[00483] Устройство декодирования изображения может генерировать блок предсказания текущего блока с использованием выведенной информации движения (S2730). Подробно, устройство декодирования изображения может генерировать блок предсказания текущего блока путем выполнения интер-предсказания или предсказания IBC.[00483] The image decoding apparatus may generate a current block prediction block using the output motion information (S2730). In detail, the image decoding apparatus may generate a current block prediction block by performing inter-prediction or IBC prediction.
[00484] Кроме того, устройство декодирования изображения может обновлять выведенную информацию движения в списке информации движения (S2740). Этап S2740 может быть тем же самым, что и этап добавления информации движения на фиг. 10 и 11, описанный выше.[00484] In addition, the image decoding apparatus may update the output motion information in the motion information list (S2740). Step S2740 may be the same as the motion information adding step in FIG. 10 and 11 described above.
[00485] При этом может генерироваться список кандидатов, включающий в себя по меньшей мере одну из информации движения, включенной в список информации движения, обновленный в блоке, декодированном перед текущим блоком. Здесь, список информации движения может представлять собой вышеописанный список AMVOL или HMVP.[00485] Here, a candidate list may be generated including at least one of the motion information included in the motion information list updated in the block decoded before the current block. Here, the motion information list may be the above-described AMVOL or HMVP list.
[00486] Между тем, когда декодирование предопределенной области завершено, так что область в списке информации движения изменяется, устройство декодирования изображения может инициализировать список информации движения. Здесь, предопределенная область может представлять собой любое одно из блока, состоящего из одной или более CU, или блока, состоящего из одной или более CTU. Вышеописанная инициализация может быть той же самой, что и этап инициализации информации движения на фиг. 10 и 11.[00486] Meanwhile, when decoding of the predetermined area is completed, so that the area in the motion information list is changed, the image decoding apparatus may initialize the motion information list. Here, the predefined area may be any one of a block consisting of one or more CUs or a block consisting of one or more CTUs. The above-described initialization may be the same as the motion information initialization step in FIG. 10 and 11.
[00487] Между тем, список информации движения может иметь ограничение предопределенного размера. Здесь, предопределенный размер может составлять шесть.[00487] Meanwhile, the motion information list may be limited to a predetermined size. Here, the predefined size may be six.
[00488] Между тем, когда существует множество информаций движения в списке информации движения, обновленном в блоке, декодированном перед текущим блоком, устройство декодирования изображения может включать среднее по меньшей мере двух или более информаций движения из множества информаций движения в список кандидатов.[00488] Meanwhile, when there is a plurality of motion information in the motion information list updated in the block decoded before the current block, the image decoding apparatus may include the average of at least two or more motion information from the plurality of motion information into the candidate list.
[00489] Между тем, когда информация движения списка информации движения, обновленная в блоке, декодированном перед текущим блоком, является той же самой, что и информация движения, ранее включенная в список кандидатов, устройство декодирования изображения может разрешать не включать информацию движения списка информации движения в список кандидатов.[00489] Meanwhile, when the motion information of the motion information list updated in the block decoded before the current block is the same as the motion information previously included in the candidate list, the image decoding device may resolve not to include the motion information of the motion information list to the list of candidates.
[00490] Кроме того, когда текущей блок является режимом предсказания IBC и список кандидатов представляет собой совместно используемый список слияния, способ обновления выведенной информации движения в списке информации движения может опускаться.[00490] In addition, when the current block is an IBC prediction mode and the candidate list is a shared merge list, a method for updating the output motion information in the motion information list may be omitted.
[00491] Между тем, когда количество информации движения, сохраненной в списке информации движения, является предварительно установленным значением, устройство декодирования изображения может удалять информацию движения, сохраненную первой в списке информации движения, и сохранять информацию движения, выведенную на этапе S2720.[00491] Meanwhile, when the amount of motion information stored in the motion information list is a preset value, the image decoding apparatus can delete the motion information stored first in the motion information list and store the motion information output in step S2720.
[00492] Способ декодирования изображения был описан выше со ссылкой на фиг. 27. Поскольку способ кодирования изображения настоящего изобретения может быть описан аналогично способу декодирования изображения, описанному со ссылкой на фиг. 27, избыточное описание опускается. [00492] The image decoding method has been described above with reference to FIG. 27. Since the image encoding method of the present invention can be described similarly to the image decoding method described with reference to FIG. 27, redundant description is omitted.
[00493] Битовый поток, сгенерированный способом кодирования изображения настоящего изобретения, может временно храниться в считываемом компьютером долговременном носителе записи и может декодироваться вышеописанным способом декодирования изображения.[00493] The bit stream generated by the image encoding method of the present invention can be temporarily stored in a computer-readable non-transitory recording medium and can be decoded by the above-described image decoding method.
[00494][00494]
[00495] Вышеупомянутые варианты осуществления могут выполняться одним и тем же способом в кодере и декодере.[00495] The above embodiments may be performed in the same manner in an encoder and a decoder.
[00496] По меньшей мере один или комбинация вышеупомянутых вариантов осуществления могут использоваться для кодирования/декодирования видео.[00496] At least one or a combination of the above embodiments may be used for video encoding/decoding.
[00497] Последовательность применения к вышеуказанному варианту осуществления может быть разной для кодера и декодера, или последовательность, применяемая к вышеуказанному варианту осуществления, может быть одинаковой в кодере и декодере.[00497] 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.
[00498] Вышеупомянутый вариант осуществления может выполняться для каждого сигнала яркости и сигнала цветности, или указанный выше вариант осуществления может идентично выполняться для сигналов яркости и цветности.[00498] 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.
[00499] Форма блока, к которой применяются вышеупомянутые варианты осуществления настоящего изобретения, может быть квадратной или неквадратной формой.[00499] The block shape to which the above embodiments of the present invention are applied may be a square shape or a non-square shape.
[00500] Вышеупомянутый вариант осуществления настоящего изобретения может применяться в зависимости от размера по меньшей мере одного из блока кодирования, блока предсказания, блока преобразования, блока, текущего блока, единицы кодирования, единицы предсказания, единицы преобразования, единицы и текущей единицы. Здесь, размер может быть определен как минимальный размер или максимальный размер, или и то, и другое, чтобы применять вышеупомянутые варианты осуществления, или может быть определен как фиксированный размер, к которому применяется вышеупомянутый вариант осуществления. Кроме того, в вышеупомянутых вариантах осуществления, первый вариант осуществления может применяться к первому размеру, и второй вариант осуществления может применяться ко второму размеру. Другими словами, вышеуказанные варианты осуществления могут применяться в комбинации в зависимости от размера. Кроме того, вышеупомянутые варианты осуществления могут применяться, когда размер равен или больше минимального размера и равен или меньше максимального размера. Другими словами, вышеупомянутые варианты осуществления могут применяться, когда размер блока входит в определенный диапазон.[00500] 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.
[005001] Например, описанные выше варианты осуществления могут применяться, когда размер текущего блока составляет 8×8 или больше. Например, вышеупомянутые варианты осуществления могут применяться, когда размер текущего блока составляет 4×4 или больше. Например, описанные выше варианты осуществления могут применяться, когда размер текущего блока составляет 16×16 или больше. Например, вышеупомянутые варианты осуществления могут применяться, когда размер текущего блока равен или больше 16×16 и равен или меньше 64×64.[005001] For example, the embodiments described above may be applied when the current block size is 8x8 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.
[00502] Вышеупомянутые варианты осуществления настоящего изобретения могут применяться в зависимости от временного уровня. Чтобы идентифицировать временной уровень, к которому могут применяться вышеупомянутые варианты осуществления, может сигнализироваться соответствующий идентификатор, и вышеупомянутые варианты осуществления могут применяться к указанному временному уровню, идентифицированному соответствующим идентификатором. Здесь, идентификатор может быть определен как самый низкий уровень или самый высокий уровень, или оба, к которым может применяться вышеупомянутый вариант осуществления, или может быть определен для указания конкретного уровня, к которому применяется этот вариант осуществления. Кроме того, может быть определен фиксированный временной уровень, к которому применяется вариант осуществления.[00502] 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.
[00503] Например, описанные выше варианты осуществления могут применяться, когда временной уровень текущего изображения является самым низким уровнем. Например, вышеупомянутые варианты осуществления могут применяться, когда идентификатор временного уровня текущего изображения равен или больше 1. Например, вышеупомянутые варианты осуществления могут применяться, когда временной уровень текущего изображения является наивысшим уровнем.[00503] 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 equal to or greater than 1. For example, the above embodiments may be applied when the temporal layer of the current image is the highest level.
[00504] Тип слайса или тип группы мозаичных элементов, к которым применяются вышеприведенные варианты осуществления настоящего изобретения, может быть определен, и вышеупомянутые варианты осуществления могут применяться в зависимости от соответствующего типа слайса или типа группы мозаичных элементов.[00504] 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.
[00505] В вышеописанных вариантах осуществления, способы описаны на основе блок-схем последовательности операций с последовательностью этапов или модулей, но настоящее изобретение не ограничивается порядком этапов, и, скорее, некоторые этапы могут выполняться одновременно или в другом порядке с другими этапами. Кроме того, специалисту в данной области техники должно быть понятно, что этапы в блок-схемах последовательностей операций не исключают друг друга и что другие этапы могут быть добавлены к блок-схемам последовательностей операций, или некоторые из этапов могут быть удалены из блок-схем последовательностей операций, не влияя на объем настоящего изобретения.[00505] 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.
[00506] Варианты осуществления включают различные аспекты примеров. Все возможные комбинации для различных аспектов могут быть не описаны, но специалисты в данной области техники смогут распознать различные комбинации. Соответственно, настоящее изобретение может включать все замены, модификации и изменения в пределах объема формулы изобретения.[00506] 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.
[00507] Варианты осуществления настоящего изобретения могут быть реализованы в форме программных инструкций, которые исполняются различными компьютерными компонентами и записываются на считываемый компьютером носитель записи. Считываемый компьютером носитель записи может включать в себя отдельно или в комбинации программные инструкции, файлы данных, структуры данных и т.д. Программные инструкции, записанные на считываемом компьютером носителе записи, могут быть специально разработаны и сконструированы для настоящего изобретения или хорошо известны специалисту в области компьютерных программных технологий. Примеры считываемого компьютером носителя записи включают в себя магнитные носители записи, такие как жесткие диски, гибкие диски и магнитные ленты; оптические носители данных, такие как CD-ROM или DVD-ROM; магнитооптические носители, такие как флоптические диски; и аппаратные устройства, такие как постоянная память (ROM), память с произвольным доступом (RAM), флэш-память и т.д., которые конкретно структурированы для хранения и реализации программной инструкции. Примеры программных инструкций включают в себя не только механический код языка, форматируемый компилятором, но высокоуровневый код языка, который может быть реализован компьютером с использованием интерпретатора. Аппаратные устройства могут быть сконфигурированы для работы с одним или более программными модулями или, наоборот, для выполнения процессов в соответствии с настоящим изобретением.[00507] 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.
[00508] Хотя настоящее изобретение было описано в терминах специфических объектов, таких как детальные элементы, а также ограниченные варианты осуществления и чертежи, они предоставлены только для облегчения более общего понимания изобретения, и настоящее изобретение не ограничивается приведенными выше вариантами осуществления. Специалистам в области техники, к которой относится настоящее изобретение, будет понятно, что на основе приведенного выше описания могут быть сделаны различные модификации и изменения.[00508] 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.
[00509] Поэтому сущность настоящего изобретения не должна ограничиваться описанными выше вариантами осуществления, и весь объем прилагаемой формулы изобретения и ее эквивалентов будет находиться в пределах объема и сущности изобретения.[00509] 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
[00510] Настоящее изобретение может быть использовано для кодирования или декодирования изображения.[00510] The present invention can be used to encode or decode an image.
1. Способ декодирования изображения, содержащий:1. A method for decoding an image, containing:
генерирование списка кандидатов, включающего в себя информацию движения, выведенную из пространственного соседнего блока и временного соседнего блока, смежных с текущим блоком;generating a candidate list including motion information derived from a spatial neighbor block and a temporal neighbor block adjacent to the current block;
выведение информации движения текущего блока с использованием списка кандидатов;outputting movement information of the current block using the list of candidates;
генерирование блока предсказания текущего блока с использованием выведенной информации движения; иgenerating a current block prediction block using the output motion information; And
обновление выведенной информации движения в списке информации движения,updating the output motion information in the motion information list,
причем генерирование списка кандидатов выполняется таким образом, чтобы включать по меньшей мере одну из информации движения, включенной в обновленный список информации движения в блоке, декодированном перед текущим блоком.wherein generating the candidate list is performed so as to include at least one of the motion information included in the updated motion information list in the block decoded before the current block.
2. Способ по п. 1, причем список информации движения инициализируется, когда декодирование предопределенной области завершено, так что область изменяется. 2. The method according to claim 1, wherein the motion information list is initialized when decoding of the predetermined area is completed, so that the area changes.
3. Способ по п. 2, причем предопределенная область представляет собой любое одно из блока, состоящего из одной или более единиц (CU) кодирования, или блока, состоящего из одной или более единиц (CTU) дерева кодирования.3. The method of claim 2, wherein the predefined area is any one of a block consisting of one or more coding units (CUs) or a block consisting of one or more coding tree units (CTUs).
4. Способ по п. 1, причем, когда существует множество информаций движения в обновленном списке информации движения в блоке, декодированном перед текущим блоком, генерирование списка кандидатов выполняется таким образом, чтобы включать среднее по меньшей мере двух или более информаций движения из множества информаций движения в список кандидатов.4. The method according to claim 1, wherein when there is a plurality of motion information in the updated motion information list in the block decoded before the current block, generation of the candidate list is performed so as to include the average of at least two or more motion information from the plurality of motion information to the list of candidates.
5. Способ по п. 1, причем, когда информация движения обновленного списка информации движения в блоке, декодированном перед текущим блоком, является той же самой, что и информация движения, ранее включенная в список кандидатов, генерирование списка кандидатов выполняется таким образом, чтобы не включать информацию движения списка информации движения в список кандидатов.5. The method according to claim 1, wherein when the motion information of the updated motion information list in the block decoded before the current block is the same as the motion information previously included in the candidate list, generation of the candidate list is performed so as not include traffic information of the traffic information list in the candidate list.
6. Способ по п. 1, причем, когда текущий блок является режимом предсказания IBC и список кандидатов является совместно используемым списком слияния, обновление выведенной информации движения в списке информации движения опускается.6. The method according to claim 1, wherein when the current block is an IBC prediction mode and the candidate list is a shared merge list, updating the output motion information in the motion information list is omitted.
7. Способ по п. 1, причем список информации движения имеет ограничение предопределенного размера. 7. The method according to claim 1, wherein the motion information list is limited to a predetermined size.
8. Способ по п. 1, причем, когда количество информации движения, хранящейся в списке информации движения, является предопределенным значением, обновление выведенной информации движения в списке информации движения включает в себя удаление информации движения, сохраненной первой в списке информации движения, и сохранение выведенной информации движения.8. The method according to claim 1, wherein when the amount of motion information stored in the motion information list is a predetermined value, updating the output motion information in the motion information list includes deleting the motion information stored first in the motion information list and storing the output traffic information.
9. Способ кодирования изображения, содержащий:9. An image encoding method containing:
генерирование списка кандидатов, включающего в себя информацию движения, выведенную из пространственного соседнего блока и временного соседнего блока, смежных с текущим блоком;generating a candidate list including motion information derived from a spatial neighbor block and a temporal neighbor block adjacent to the current block;
вывод информации движения текущего блока с использованием списка кандидатов;outputting movement information of the current block using a list of candidates;
генерирование блока предсказания текущего блока с использованием выведенной информации движения; иgenerating a current block prediction block using the output motion information; And
обновление выведенной информации движения в списке информации движения,updating the output motion information in the motion information list,
причем генерирование списка кандидатов выполняется таким образом, чтобы включать по меньшей мере одну информацию из информации движения, включенной в обновленный список информации движения в блоке, закодированном перед текущим блоком.wherein generating the candidate list is performed so as to include at least one information from the motion information included in the updated motion information list in the block encoded before the current block.
10. Способ по п. 9, причем список информации движения инициализируется, когда кодирование предопределенной области завершено, так что область изменяется. 10. The method of claim 9, wherein the motion information list is initialized when encoding of the predetermined area is completed, so that the area changes.
11. Способ по п. 10, причем предопределенная область представляет собой любое одно из блока, состоящего из одной или более единиц (CU) кодирования, или блока, состоящего из одной или более единиц (CTU) дерева кодирования.11. The method of claim 10, wherein the predefined area is any one of a block consisting of one or more coding units (CUs) or a block consisting of one or more coding tree units (CTUs).
12. Способ по п. 9, причем, когда существует множество информаций движения в обновленном списке информации движения в блоке, закодированном перед текущим блоком, генерирование списка кандидатов выполняется таким образом, чтобы включать среднее по меньшей мере двух или более информаций движения из множества информаций движения в список кандидатов.12. The method of claim 9, wherein when there is a plurality of motion information in the updated motion information list in a block encoded before the current block, generation of the candidate list is performed so as to include the average of at least two or more motion information from the plurality of motion information to the list of candidates.
13. Способ по п. 9, причем, когда информация движения обновленного списка информации движения в блоке, закодированном перед текущим блоком, является той же самой, что и информация движения, ранее включенная в список кандидатов, генерирование списка кандидатов выполняется таким образом, чтобы не включать информацию движения списка информации движения в список кандидатов.13. The method according to claim 9, wherein when the motion information of the updated motion information list in the block encoded before the current block is the same as the motion information previously included in the candidate list, generation of the candidate list is performed so as not include traffic information of the traffic information list in the candidate list.
14. Способ по п. 9, причем, когда текущий блок является режимом предсказания IBC и список кандидатов является совместно используемым списком слияния, обновление выведенной информации движения в списке информации движения опускается.14. The method according to claim 9, wherein when the current block is an IBC prediction mode and the candidate list is a shared merge list, updating the output motion information in the motion information list is omitted.
15. Способ по п. 9, причем список информации движения имеет ограничение предопределенного размера. 15. The method according to claim 9, wherein the motion information list is limited to a predetermined size.
16. Способ по п. 9, причем, когда количество информации движения, хранящейся в списке информации движения, является предопределенным значением, обновление выведенной информации движения в списке информации движения включает в себя удаление информации движения, сохраненной первой в списке информации движения, и сохранение выведенной информации движения.16. The method according to claim 9, wherein when the amount of motion information stored in the motion information list is a predetermined value, updating the output motion information in the motion information list includes deleting the motion information stored first in the motion information list and storing the output traffic information.
17. Считываемый компьютером долговременный носитель записи, содержащий битовый поток, декодируемый способом декодирования изображения, причем способ декодирования изображения содержит:17. A computer-readable non-transitory recording medium comprising a bit stream decoded by an image decoding method, wherein the image decoding method comprises:
генерирование списка кандидатов, включающего в себя информацию движения, выведенную из пространственного соседнего блока и временного соседнего блока, смежных с текущим блоком;generating a candidate list including motion information derived from a spatial neighbor block and a temporal neighbor block adjacent to the current block;
выведение информации движения текущего блока с использованием списка кандидатов;outputting movement information of the current block using the list of candidates;
генерирование блока предсказания текущего блока с использованием выведенной информации движения; иgenerating a current block prediction block using the output motion information; And
обновление выведенной информации движения в списке информации движения,updating the output motion information in the motion information list,
причем генерирование списка кандидатов выполняется таким образом, чтобы включать по меньшей мере одну информацию из информации движения, включенной в обновленный список информации движения в блоке, декодированном перед текущим блоком.wherein generating the candidate list is performed so as to include at least one information from the motion information included in the updated motion information list in the block decoded before the current block.
Claims (42)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0091365 | 2018-08-06 | ||
KR10-2018-0113484 | 2018-09-21 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2021105676A Division RU2775829C1 (en) | 2018-08-06 | 2019-08-06 | Method and apparatus for encoding/decoding an image and record medium storing a bitstream |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2023122751A Division RU2824753C1 (en) | 2018-08-06 | 2023-09-01 | Method and apparatus for encoding/decoding image and recording medium storing bit stream |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2022118003A RU2022118003A (en) | 2022-08-12 |
RU2806878C2 true RU2806878C2 (en) | 2023-11-08 |
Family
ID=
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150281726A1 (en) * | 2012-11-06 | 2015-10-01 | Nec Corporation | Video encoding method, video encoding device, and video encoding program |
US20160105670A1 (en) * | 2014-10-14 | 2016-04-14 | Qualcomm Incorporated | Amvp and merge candidate list derivation for intra bc and inter prediction unification |
RU2566955C9 (en) * | 2011-11-08 | 2016-11-27 | Самсунг Электроникс Ко., Лтд. | Method and apparatus for motion vector determination in video encoding or decoding |
WO2018012886A1 (en) * | 2016-07-12 | 2018-01-18 | 한국전자통신연구원 | Image encoding/decoding method and recording medium therefor |
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2566955C9 (en) * | 2011-11-08 | 2016-11-27 | Самсунг Электроникс Ко., Лтд. | Method and apparatus for motion vector determination in video encoding or decoding |
US20150281726A1 (en) * | 2012-11-06 | 2015-10-01 | Nec Corporation | Video encoding method, video encoding device, and video encoding program |
US20160105670A1 (en) * | 2014-10-14 | 2016-04-14 | Qualcomm Incorporated | Amvp and merge candidate list derivation for intra bc and inter prediction unification |
WO2018012886A1 (en) * | 2016-07-12 | 2018-01-18 | 한국전자통신연구원 | Image encoding/decoding method and recording medium therefor |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111279695B (en) | Method and apparatus for asymmetric subblock-based image encoding/decoding | |
CN112740697B (en) | Image encoding/decoding method and apparatus, and recording medium storing bit stream | |
KR20190114853A (en) | Method and apparatus for encoding/decoding image, recording medium for stroing bitstream | |
KR20190110960A (en) | Method and apparatus for encoding/decoding image, recording medium for stroing bitstream | |
CN116567220A (en) | Image encoding/decoding apparatus and image data transmitting apparatus | |
CN116366842A (en) | Image encoding/decoding method and apparatus using sample filtering | |
US20240080450A1 (en) | Image encoding/decoding method and device, and recording medium storing bitstream | |
RU2769959C1 (en) | Method and apparatus for encoding/decoding image and recording medium on which bit stream is stored | |
CN114788286A (en) | Image encoding/decoding method and apparatus, and recording medium storing bit stream | |
KR20200034639A (en) | Method and apparatus for encoding/decoding image, recording medium for stroing bitstream | |
KR20200144509A (en) | Method and Apparatus for Inter Prediction Information Encoding and Decoding Thereof | |
CN113196758A (en) | Image encoding/decoding method and apparatus, and recording medium storing bit stream | |
CN113228639A (en) | Image encoding/decoding method and apparatus, and recording medium storing bit stream | |
KR20200078392A (en) | Method and apparatus for encoding/decoding image and recording medium for storing bitstream | |
CN113228645A (en) | Image encoding/decoding method and apparatus, and recording medium storing bit stream | |
KR20200056951A (en) | Encoding/decoding method and apparatus using region based inter/intra prediction | |
KR20200083337A (en) | Method and apparatus for encoding/decoding image, recording medium for stroing bitstream | |
KR20200144480A (en) | Method and apparatus for encoding/decoding image and recording medium for storing bitstream | |
KR20200119744A (en) | Method and apparatus for signaling signals related prediction mode in intra prediction | |
RU2806878C2 (en) | Method and device for image encoding/decoding and record medium which stores bitstream | |
KR20200145758A (en) | Method and apparatus for encoding/decoding image and recording medium for storing bitstream | |
RU2824753C1 (en) | Method and apparatus for encoding/decoding image and recording medium storing bit stream | |
RU2775829C1 (en) | Method and apparatus for encoding/decoding an image and record medium storing a bitstream | |
CN112740669A (en) | Method and apparatus for image encoding/decoding, and recording medium storing bitstream | |
RU2818968C2 (en) | Method and apparatus for encoding/decoding image and recording medium on which bit stream is stored |