RU2812248C2 - Image encoding method based on transformation and device for its implementation - Google Patents

Image encoding method based on transformation and device for its implementation Download PDF

Info

Publication number
RU2812248C2
RU2812248C2 RU2023117461A RU2023117461A RU2812248C2 RU 2812248 C2 RU2812248 C2 RU 2812248C2 RU 2023117461 A RU2023117461 A RU 2023117461A RU 2023117461 A RU2023117461 A RU 2023117461A RU 2812248 C2 RU2812248 C2 RU 2812248C2
Authority
RU
Russia
Prior art keywords
current block
lfnst
transform
region
block
Prior art date
Application number
RU2023117461A
Other languages
Russian (ru)
Other versions
RU2023117461A (en
Inventor
Моонмо КОО
Сеунгхван КИМ
Дзаехиун ЛИМ
Original Assignee
ЭлДжи ЭЛЕКТРОНИКС ИНК.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ЭлДжи ЭЛЕКТРОНИКС ИНК. filed Critical ЭлДжи ЭЛЕКТРОНИКС ИНК.
Publication of RU2023117461A publication Critical patent/RU2023117461A/en
Application granted granted Critical
Publication of RU2812248C2 publication Critical patent/RU2812248C2/en

Links

Images

Abstract

FIELD: image encoding.
SUBSTANCE: invention is related in particular to image encoding based on transformation. Image decoding comprises the stages of: deducing the position of the last significant coefficient in the current block and the transformation coefficients for the current block based on residual information; determining whether the index of the sub-block including the last significant coefficient is 0, and whether the position of the last significant coefficient in the sub-block is greater than 0; determining whether a significant coefficient exists in a second region excluding the first region at the upper left end of the current block; and parsing the index LFNST from the bitstream, wherein based on the fact that the width and height of the current block is greater than or equal to 4 and the width or height of the current block is less than 8, the first region is region 4×4 from the top left of the current block, and based on the fact that a significant coefficient is present in the second region, other than region 4×4 from the top left, no analysis is performed on the LFNST index, but based on the fact that the width and height of the current block is greater than 8, 16 transformation coefficients are derived, and the 16 transformation coefficients are arranged in the area 4×4 is on the top left of the current block, and the second area is different from this area 4×4, filled with zeros.
EFFECT: increasing the encoding efficiency.
15 cl, 18 dwg, 13 tbl

Description

Область ТЕХНИКИ TECHNICAL AREA

[1] Настоящий документ относится к методу кодирования изображения и, в частности, к способу и устройству для кодирования изображения на основе преобразования в системе кодирования изображения.[1] This document relates to an image encoding method and, in particular, to a method and apparatus for encoding an image based on a transform in an image encoding system.

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИBACKGROUND ART

[2] В последнее время потребность в изображениях/видео высокого разрешения и высокого качества, таких как изображения/видео сверхвысокой четкости (UHD) 4K или 8K или выше, возросла в различных областях. Так как данные изображения/видео имеют высокое разрешение и высокое качество, передаваемое количество информации или количество битов увеличивается по сравнению с данными обычного изображения. Поэтому, когда данные изображения передаются с использованием носителей, таких как обычная проводная/беспроводная широкополосная линия, или данные изображения/видео сохраняются с использованием существующего носителя хранения, затраты на их передачу и затраты на хранение увеличиваются.[2] Recently, the demand for high-resolution and high-quality images/videos, such as ultra-high-definition (UHD) 4K or 8K or higher images/videos, has increased in various fields. Since image/video data is high resolution and high quality, the amount of information or number of bits transmitted is increased compared to normal image data. Therefore, when image data is transmitted using media such as a conventional wired/wireless broadband line, or image/video data is stored using an existing storage medium, transmission costs and storage costs increase.

[3] К тому же, в настоящее время возрастают интерес и потребность в иммерсивных медиа, таких как контент или голограммы виртуальной реальности (VR) и искусственной реальности (AR) или тому подобное, возрастает трансляция изображения/видео, имеющих характеристики, отличные от характеристик реального изображения, таких как игровые изображения.[3] In addition, currently there is an increasing interest and need for immersive media, such as content or holograms of virtual reality (VR) and artificial reality (AR) or the like, and the broadcast of images/videos having characteristics different from those of real images such as game images.

[4] Соответственно, существует необходимость в высокоэффективной технологии сжатия изображения/видео для эффективного сжатия, передачи или хранения и воспроизведения информации изображений/видео высокого разрешения и высокого качества, имеющих различные характеристики, как описано выше.[4] Accordingly, there is a need for a high-performance image/video compression technology for efficiently compressing, transmitting or storing and reproducing high-resolution and high-quality image/video information having various characteristics as described above.

Краткое описание сущности изобретения Brief description of the invention

[5] Технический аспект настоящего раскрытия заключается в обеспечении способа и устройства для повышения эффективности кодирования изображения.[5] A technical aspect of the present disclosure is to provide a method and apparatus for improving image encoding efficiency.

[6] Другой технический аспект настоящего раскрытия заключается в обеспечении способа и устройства для повышения эффективности кодирования индекса преобразования.[6] Another technical aspect of the present disclosure is to provide a method and apparatus for improving the efficiency of transform index encoding.

[7] Еще один технический аспект настоящего раскрытия заключается в обеспечении способа и устройства кодирования изображения с использованием LFNST.[7] Another technical aspect of the present disclosure is to provide an image encoding method and apparatus using LFNST.

[8] Еще один технический аспект настоящего раскрытия заключается в обеспечении способа и устройства кодирования изображения для обнуления (установки в нуль), выполняемого, когда применяется LFNST.[8] Another technical aspect of the present disclosure is to provide a method and apparatus for encoding an image for nulling performed when LFNST is applied.

[9] В соответствии с вариантом осуществления настоящего раскрытия, обеспечен способ декодирования изображения, выполняемый устройством декодирования. Способ может включать в себя: выведение позиции последнего значимого коэффициента в текущем блоке и коэффициентов преобразования для текущего блока на основе остаточной информации; определение, является ли индекс подблока, включающего в себя последний значимый коэффициент, равным 0, и позиция последнего значимого коэффициента в подблоке больше, чем 0; определение указания, существует ли значимый коэффициент во второй области иной, чем первая область сверху-слева текущего блока; получение, посредством анализа (разбора), индекса LFNST из битового потока, когда определено, что позиция последнего значимого коэффициента в подблоке, имеющем индекс 0, больше, чем 0, и значимый коэффициент не существует во второй области; и выведение модифицированных коэффициентов преобразования путем применения матрицы LFNST, выведенной на основе индекса LFNST, к коэффициентам преобразования в первой области.[9] According to an embodiment of the present disclosure, an image decoding method performed by a decoding apparatus is provided. The method may include: deriving the position of the last significant coefficient in the current block and transformation coefficients for the current block based on the residual information; determining whether the index of the sub-block including the last significant coefficient is 0, and the position of the last significant coefficient in the sub-block is greater than 0; determining an indication whether a significant coefficient exists in a second region other than the first region from the top-left of the current block; obtaining, by parsing, an index LFNST from the bitstream when it is determined that the position of the last significant coefficient in the subblock having index 0 is greater than 0 and the significant coefficient does not exist in the second region; and deriving the modified transform coefficients by applying the LFNST matrix derived based on the LFNST index to the transform coefficients in the first region.

[10] Способ дополнительно содержит установку первой флаговой информации, указывающей, является ли позиция последнего значимого коэффициента большей, чем 0, в подблоке, имеющем индекс 0, в 1, и когда позиция последнего значимого коэффициента в подблоке, имеющем индекс 0, больше, чем 0, изменение первой флаговой информации в 0 и получение, посредством анализа, индекса LFNST.[10] The method further comprises setting first flag information indicating whether the position of the last significant coefficient is greater than 0 in the sub-block having index 0 to 1, and when the position of the last significant coefficient in the sub-block having index 0 is greater than 0, changing the first flag information to 0 and obtaining, through analysis, the LFNST index.

[11] Способ дополнительно содержит установку второй флаговой информации, указывающей, существует ли значимый коэффициент во второй области за исключением первой области, в 1, и когда не имеется значимого коэффициента во второй области, сохранение второй флаговой информации как 1 и получение, посредством анализа, индекса LFNST.[11] The method further comprises setting second flag information indicating whether there is a significant coefficient in the second region excluding the first region to 1, and when there is no significant coefficient in the second region, storing the second flag information as 1 and obtaining, by analysis, LFNST index.

[12] Вторая флаговая информация выводится как 0, когда индекс подблока, включающего в себя последний значимый коэффициент в текущем блоке, больше, чем 0, и ширина и высота текущего блока равны 4 или более, и разбор в отношении индекса LFNST не выполняется, когда вторая флаговая информация равна 0.[12] The second flag information is output as 0 when the index of the sub-block including the last significant coefficient in the current block is greater than 0, and the width and height of the current block are 4 or more, and parsing with respect to the LFNST index is not performed when the second flag information is 0.

[13] Вторая флаговая информация выводится как 0, когда размер текущего блока составляет 4×4 или 8×8 и позиция последнего значимого коэффициента больше или равна 8, и разбор в отношении индекса LFNST не выполняется, когда вторая флаговая информация равна 0.[13] The second flag information is output as 0 when the current block size is 4x4 or 8x8 and the position of the last significant coefficient is greater than or equal to 8, and parsing with respect to the LFNST index is not performed when the second flag information is 0.

[14] В соответствии с другим вариантом осуществления настоящего раскрытия, обеспечен способ кодирования изображения, выполняемый устройством кодирования. Способ может включать в себя: выведение коэффициентов преобразования для текущего блока на основе первичного преобразования для остаточных выборок; выведение модифицированных коэффициентов преобразования для текущего блока на основе коэффициентов преобразования первой области сверху-слева текущего блока и предопределенной матрицы LFNST; обнуление второй области текущего блока, в которой не существуют модифицированные коэффициенты преобразования; формирование информации изображения таким образом, что индекс LFNST, указывающий матрицу LFNST, передается, когда индекс подблока, включающего в себя последний значимый коэффициент в текущем блоке, равен 0, позиция последнего значимого коэффициента в подблоке больше, чем 0, и значимый коэффициент не существует во второй области, и вывод информации изображения, включающей в себя остаточную информацию, выведенную посредством квантования модифицированных коэффициентов преобразования и индекса LFNST.[14] According to another embodiment of the present disclosure, an image encoding method performed by an encoding apparatus is provided. The method may include: deriving transform coefficients for the current block based on the primary transform for the residual samples; deriving modified transform coefficients for the current block based on the transform coefficients of the first region from the top left of the current block and the predefined matrix LFNST; zeroing the second region of the current block in which no modified conversion coefficients exist; generating image information such that an index LFNST indicating the matrix LFNST is transmitted when the index of a sub-block including the last significant coefficient in the current block is 0, the position of the last significant coefficient in the sub-block is greater than 0, and the significant coefficient does not exist in a second region, and outputting image information including residual information output by quantizing the modified transform coefficients and the LFNST index.

[15] В соответствии с еще одним другим вариантом осуществления настоящего раскрытия, может быть обеспечен цифровой носитель хранения, который хранит данные изображения, включающие в себя закодированную информацию изображения и битовый поток, генерируемый в соответствии со способом кодирования изображения, выполняемым устройством кодирования. [15] According to yet another embodiment of the present disclosure, a digital storage medium that stores image data including encoded image information and a bit stream generated in accordance with an image encoding method performed by an encoding apparatus may be provided.

[16] В соответствии с другим вариантом осуществления настоящего раскрытия, может быть обеспечен цифровой носитель хранения, который хранит данные изображения, включающие в себя закодированную информацию изображения и битовый поток, чтобы побуждать устройство декодирования выполнять способ декодирования изображения.[16] According to another embodiment of the present disclosure, a digital storage medium may be provided that stores image data including encoded image information and a bit stream to cause a decoding device to perform an image decoding method.

[17] В соответствии с настоящим раскрытием, можно повысить общую эффективность сжатия изображения/видео.[17] According to the present disclosure, the overall efficiency of image/video compression can be improved.

[18] В соответствии с настоящим раскрытием, можно повысить эффективность кодирования индекса преобразования.[18] According to the present disclosure, it is possible to improve the efficiency of transform index encoding.

[19] Технический аспект настоящего раскрытия может обеспечить способ и устройство кодирования изображения с использованием LFNST.[19] A technical aspect of the present disclosure may provide an image encoding method and apparatus using LFNST.

[20] Технический аспект настоящего раскрытия может обеспечить способ и устройство кодирования изображения для обнуления, когда применяется LFNST.[20] A technical aspect of the present disclosure may provide a method and apparatus for encoding an image for nulling when LFNST is applied.

[21] Результаты, которые могут быть получены с помощью конкретных примеров настоящего раскрытия, не ограничены результатами, перечисленными выше. Например, могут достигаться различные технические результаты, которые специалист в данной области техники сможет понять или получить на основе настоящего раскрытия. Соответственно, конкретные результаты настоящего раскрытия не ограничены теми, которые явно описаны в настоящем раскрытии и могут включать в себя различные результаты, которые можно понять или получить с помощью технических признаков настоящего раскрытия.[21] The results that can be obtained from the specific examples of this disclosure are not limited to the results listed above. For example, various technical results may be achieved that one skilled in the art will be able to understand or obtain based on the present disclosure. Accordingly, the specific results of the present disclosure are not limited to those expressly described in the present disclosure and may include various results that can be understood or obtained by the technical features of the present disclosure.

Краткое описание чертежей Brief description of drawings

[22] Фиг. 1 является диаграммой, схематично иллюстрирующей конфигурацию устройства кодирования видео/изображения, в котором могут применяться варианты осуществления настоящего раскрытия.[22] FIG. 1 is a diagram schematically illustrating the configuration of a video/image encoding apparatus to which embodiments of the present disclosure may be applied.

[23] Фиг. 2 является диаграммой, схематично иллюстрирующей конфигурацию устройства декодирования видео/изображения, в котором могут применяться варианты осуществления настоящего документа.[23] FIG. 2 is a diagram schematically illustrating the configuration of a video/image decoding apparatus to which embodiments of the present document may be applied.

[24] Фиг. 3 схематично иллюстрирует схему множественного преобразования в соответствии с вариантом осуществления настоящего документа.[24] FIG. 3 schematically illustrates a multiple conversion circuit in accordance with an embodiment of the present document.

[25] Фиг. 4 схематично показывает интра-направленные режимы 65 направлений предсказания.[25] FIG. 4 schematically shows the intra-directional modes of 65 prediction directions.

[26] Фиг. 5 является диаграммой для пояснения RST в соответствии с вариантом осуществления настоящего документа.[26] FIG. 5 is a diagram for explaining RST according to an embodiment of the present document.

[27] Фиг. 6 является диаграммой, иллюстрирующей последовательность компоновки выходных данных прямого первичного преобразования в одномерный вектор в соответствии с примером.[27] FIG. 6 is a diagram illustrating a layout sequence of direct primary transform output data into a one-dimensional vector according to an example.

[28] Фиг. 7 является диаграммой, иллюстрирующей последовательность компоновки выходных данных прямого вторичного преобразования в двумерный вектор в соответствии с примером.[28] FIG. 7 is a diagram illustrating a layout sequence of the output of the direct secondary transform into a two-dimensional vector according to an example.

[29] Фиг. 8 является диаграммой, иллюстрирующей широкоугольные режимы интра-предсказания в соответствии с вариантом осуществления настоящего документа.[29] FIG. 8 is a diagram illustrating wide-angle intra-prediction modes in accordance with an embodiment of the present document.

[30] Фиг. 9 является диаграммой, иллюстрирующей форму блока, к которой применяется LFNST.[30] FIG. 9 is a diagram illustrating a block shape to which LFNST is applied.

[31] Фиг. 10 является диаграммой, иллюстрирующей компоновку выходных данных прямого LFNST в соответствии с примером.[31] FIG. 10 is a diagram illustrating the layout of forward LFNST output according to an example.

[32] Фиг. 11 является диаграммой, иллюстрирующей, что число выходных данных для прямого LFNST ограничено до максимум 16 в соответствии с примером.[32] FIG. 11 is a diagram illustrating that the number of outputs for forward LFNST is limited to a maximum of 16 according to the example.

[33] Фиг. 12 является диаграммой, иллюстрирующей обнуление в блоке, к которому применяется 4×4 LFNST в соответствии с примером.[33] FIG. 12 is a diagram illustrating nulling in a block to which a 4x4 LFNST is applied according to an example.

[34] Фиг. 13 является диаграммой, иллюстрирующей обнуление в блоке, к которому применяется 8×8 LFNST в соответствии с примером.[34] FIG. 13 is a diagram illustrating nulling in a block to which 8x8 LFNST is applied according to an example.

[35] Фиг. 14 является диаграммой, иллюстрирующей обнуление в блоке, к которому применяется 8×8 LFNST в соответствии с другим примером.[35] FIG. 14 is a diagram illustrating nulling in a block to which 8x8 LFNST is applied according to another example.

[36] Фиг. 15 является блок-схемой последовательности операций для пояснения способа декодирования изображения в соответствии с примером.[36] FIG. 15 is a flowchart for explaining an image decoding method according to an example.

[37] Фиг. 16 является блок-схемой последовательности операций для пояснения способа кодирования изображения в соответствии с примером.[37] FIG. 16 is a flowchart for explaining an image encoding method according to an example.

[38] Фиг. 17 схематично иллюстрирует пример системы кодирования видео/изображения, к которой применимо настоящее раскрытие.[38] FIG. 17 schematically illustrates an example of a video/image coding system to which the present disclosure is applicable.

[39] Фиг. 18 иллюстрирует структуру системы потоковой передачи контента, к которой применимо настоящее раскрытие.[39] FIG. 18 illustrates the structure of a content streaming system to which the present disclosure applies.

Описание примерных вариантов осуществления Description of Exemplary Embodiments

[40] Хотя настоящий документ допускает различные модификации и включает различные варианты осуществления, его конкретные варианты осуществления, показанные на чертежах в качестве примера, будут далее описаны детально. Однако это не подразумевает ограничения настоящего раскрытия конкретными вариантами осуществления, описанными здесь. Термины, используемые здесь, предназначены только для описания конкретных вариантов осуществления, но не предназначены для ограничения технической идеи настоящего раскрытия. Формы единственного числа включают в себя формы множественного числа, если только контекст явно не указывает иное. Термины, такие как "включать в себя" и "иметь", предназначены указывать, что признаки, числа, этапы, операции, элементы, компоненты или их комбинации, используемые в следующем описании, существуют, и, таким образом, не должны пониматься так, что возможность существования или добавления одного или более других признаков, чисел, этапов, операций, элементов, компонентов или их комбинация заранее исключается.[40] Although the present document is subject to various modifications and includes various embodiments, specific embodiments thereof, shown in the drawings by way of example, will now be described in detail. However, this is not intended to limit the present disclosure to the specific embodiments described herein. The terms used herein are intended to describe specific embodiments only and are not intended to limit the technical intent of the present disclosure. Singular forms include plural forms unless the context clearly indicates otherwise. Terms such as "include" and "have" are intended to indicate that the features, numbers, steps, operations, elements, components, or combinations thereof used in the following description exist, and thus are not to be construed as such. that the possibility of the existence or addition of one or more other features, numbers, steps, operations, elements, components or a combination thereof is precluded.

[41] Между тем, каждый компонент на чертежах, описанный в настоящем документе, иллюстрируется независимо для удобства описания касательно различных характеристических функций, и это не означает, что каждый компонент реализуется как отдельные аппаратные средства или отдельное программное обеспечение. Например, два или более из этих компонентов могут комбинироваться для образования одного компонента, или один компонент может делиться на множество компонентов. Варианты осуществления, в которых компоненты комбинируются и/или разделяются, будут включены в объем патентных прав настоящего раскрытия, если они не отклоняются от сущности настоящего раскрытия.[41] Meanwhile, each component in the drawings described herein is illustrated independently for convenience of description regarding various characteristic functions, and it is not meant that each component is implemented as separate hardware or separate software. For example, two or more of these components may be combined to form one component, or one component may be divided into multiple components. Embodiments in which components are combined and/or separated will be included within the scope of the patent rights of this disclosure if they do not depart from the spirit of this disclosure.

[42] Далее, предпочтительные варианты осуществления настоящего раскрытия будут пояснены более подробно со ссылкой на прилагаемые чертежи. К тому же, одинаковые ссылочные позиции используются для одинаковых компонентов на чертежах, и повторные описания одинаковых компонентов будут опущены.[42] Next, preferred embodiments of the present disclosure will be explained in more detail with reference to the accompanying drawings. In addition, like reference numerals are used for like components in the drawings, and repeated descriptions of like components will be omitted.

[43] Настоящий документ относится к кодированию видео/изображения. Например, способ/пример, раскрытый в настоящем документе, может относиться к стандарту VVC (многоцелевого кодирования видео) (ITU-T Rec. H266), стандарту кодирования видео/изображения следующего поколения после VVC или другим стандартам, относящимся к кодированию видео (например, стандарт HEVC (высокоэффективного кодирования видео) (ITU-T Rec. H.265), стандарт EVC (существенного кодирования видео) стандарт AVS2 и т.д.).[43] This document relates to video/image coding. For example, the method/example disclosed herein may relate to the VVC (Video Coding) standard (ITU-T Rec. H266), the next generation video/image coding standard after VVC, or other standards related to video coding (e.g. HEVC (High Efficiency Video Coding) standard (ITU-T Rec. H.265), EVC (Essential Video Coding) standard AVS2 standard, etc.).

[44] В настоящем документе, могут быть обеспечены различные варианты осуществления, относящиеся к кодированию видео/изображения, и варианты осуществления могут также комбинироваться друг с другом, если не специфицировано иное.[44] Herein, various embodiments related to video/image encoding may be provided, and the embodiments may also be combined with each other unless otherwise specified.

[45] В настоящем документе, видео может относиться к последовательности изображений по времени. Картинка обычно относится к единице, представляющей одно изображение в конкретной временной области, и вырезка/мозаичный элемент представляет собой единицу, составляющую часть картинки. Вырезка/мозаичный элемент может включать в себя одну или более единиц дерева кодирования (CTU). Одна картинка может состоять из одной или более вырезок/мозаичных элементов. Одна картинка может состоять из одной или более групп мозаичных элементов. Одна группа мозаичных элементов может включать в себя один или более мозаичных элементов.[45] As used herein, video may refer to a sequence of images over time. A picture usually refers to a unit representing one image in a specific time domain, and a cutout/tile is a unit that makes up a part of the picture. The clipping/tile may include one or more coding tree units (CTUs). One picture may consist of one or more cutouts/mosaic elements. One picture can consist of one or more groups of mosaic elements. One tile group may include one or more tiles.

[46] Пиксел или пел может означать наименьшую единицу, составляющую одну картинку (или изображение). Также, ‘дискретный отсчет’ (‘выборка’) может использоваться как термин, соответствующий пикселу. Выборка может, в общем, представлять пиксел или значение пиксела и может представлять только пиксел/значение пиксела компонента яркости или только пиксел/значение пиксела компонента цветности. Альтернативно, выборка может относиться к значению пиксела в пространственной области, или когда это значение пиксела преобразуется в частотную область, она может относиться к коэффициенту преобразования в частотной области.[46] Pixel or pel can mean the smallest unit that makes up one picture (or image). Also, 'sample' can be used as a term corresponding to a pixel. A sample may generally represent a pixel or a pixel value, and may represent only a luma component pixel/pixel value or only a chrominance component pixel/pixel value. Alternatively, the sample may refer to a pixel value in the spatial domain, or when that pixel value is converted to the frequency domain, it may refer to a frequency domain conversion factor.

[47] Единица может представлять базовую единицу обработки изображения. Единица может включать в себя по меньшей мере одно из конкретной области картинки и информации, относящейся к области. Одна единица может включать в себя один блок яркости и два блока цветности (например, cb, cr). Единица и такой термин как блок, область или тому подобное могут использоваться взаимозаменяемо соответственно обстоятельствам. В общем случае, блок M×N может включать в себя набор (или массив) выборок (или массивов выборок) или коэффициентов преобразования, состоящих из M столбцов и N строк.[47] The unit may represent a basic image processing unit. The unit may include at least one of a specific picture area and information related to the area. One unit may include one luma block and two chrominance blocks (eg, cb, cr). A unit and a term such as a block, area or the like may be used interchangeably as appropriate. In general, an M×N block may include a set (or array) of samples (or arrays of samples) or transform coefficients consisting of M columns and N rows.

[48] В этом документе, символы "/" или "," должны интерпретироваться как указывающие "и/или". Например, выражение "A/B" может означать "A и/или B". Дополнительно, "A, B" может означать "A и/или B". Кроме того, "А/В/С" может означать "по меньшей мере одно из А, В и/или С". Также, "А/В/С" может означать "по меньшей мере одно из А, В и/или С". [48] In this document, the characters "/" or "," are to be interpreted as indicating "and/or". For example, the expression "A/B" could mean "A and/or B". Additionally, "A, B" may mean "A and/or B". Additionally, "A/B/C" may mean "at least one of A, B, and/or C." Also, "A/B/C" may mean "at least one of A, B and/or C".

[49] Кроме того, в настоящем документе, термин "или" должен интерпретироваться как указывающий "и/или". Например, выражение "A или B" может включать 1) только A, 2) только B и/или 3) как A, так и B. Другими словами, термин "или" в настоящем документе должен интерпретироваться как указывающий "дополнительно или альтернативно". [49] Additionally, as used herein, the term “or” should be interpreted to indicate “and/or.” For example, the expression "A or B" may include 1) A only, 2) B only, and/or 3) both A and B. In other words, the term "or" as used herein is to be interpreted as indicating "in addition or alternatively" .

[50] В настоящем раскрытии, "по меньшей мере одно из A и B" может означать "только A", "только B" или "как A, так и B". Также, в настоящем раскрытии, выражение "по меньшей мере одно из A или B" или "по меньшей мере одно из A и/или B" может интерпретироваться как "по меньшей мере одно из A и B".[50] In the present disclosure, “at least one of A and B” may mean “A only,” “B only,” or “both A and B.” Also, in the present disclosure, the expression “at least one of A or B” or “at least one of A and/or B” can be interpreted as “at least one of A and B”.

[51] Кроме того, в настоящем раскрытии, по меньшей мере одно из A, B и C" может означать "только A", "только B", "только C" или "любая комбинация A, B и C". Также, "по меньшей мере одно из A, B или C" или "по меньшей мере одно из A, B и/или C" может означать "по меньшей мере одно из A, B и C".[51] Moreover, in the present disclosure, at least one of "A, B and C" may mean "A only", "B only", "C only" or "any combination of A, B and C". Also, "at least one of A, B or C" or "at least one of A, B and/or C" may mean "at least one of A, B and C".

[52] Кроме того, круглые скобки, используемые в настоящем раскрытии, могут означать "например". Конкретно, когда указано "предсказание (интра-предсказание)", это может означать, что "интра-предсказание" предлагается как пример "предсказания". Другими словами, "предсказание" в настоящем раскрытии не ограничено "интра-предсказанием", и "интра-предсказание" может предлагаться в качестве примера "предсказания". Также, когда указано "предсказание (т.е., интра-предсказание)", это также означает, что "интра-предсказание" предлагается как пример "предсказания".[52] Additionally, parentheses used in this disclosure may mean "for example." Specifically, when "prediction (intra-prediction)" is specified, it may mean that "intra-prediction" is proposed as an example of "prediction". In other words, “prediction” in the present disclosure is not limited to “intra-prediction”, and “intra-prediction” may be offered as an example of “prediction”. Also, when "prediction (ie, intra-prediction)" is specified, it also means that "intra-prediction" is proposed as an example of "prediction".

[53] Технические признаки, отдельно описанные на одном чертеже в настоящем раскрытии, могут быть реализованы по отдельности или вместе.[53] The technical features separately described in a single drawing in the present disclosure may be implemented individually or together.

[54] Фиг. 1 является диаграммой, схематично иллюстрирующей конфигурацию устройства кодирования видео/изображения, к которой могут применяться варианты осуществления настоящего документа. Далее, устройство кодирования видео, может включать в себя устройство кодирования изображения. [54] FIG. 1 is a diagram schematically illustrating the configuration of a video/image encoding apparatus to which embodiments of the present document may be applied. Further, the video encoding device may include an image encoding device.

[55] Со ссылкой на фиг. 1, устройство 100 кодирования включает в себя модуль 110 разбиения изображения, предсказатель 120, процессор 130 остатка и энтропийный кодер 140, сумматор 150, фильтр 160 и память 170. Предсказатель 120 может включать в себя интер-предсказатель 121 и интра-предсказатель 122. Процессор 130 остатка может включать в себя преобразователь 132, квантователь 133, деквантователь 134 и обратный преобразователь 135. Процессор 130 остатка может дополнительно включать в себя вычитатель 131. Сумматор 150 может называться реконструктором или генератором восстановленного блока. Модуль 110 разбиения изображения, предсказатель 120, процессор 130 остатка, энтропийный кодер 140, сумматор 150 и фильтр 160 могут быть сконфигурированы по меньшей мере одним аппаратным компонентом (например, чипсетом кодера или процессором) в соответствии с вариантом осуществления. К тому же, память 170 может включать в себя буфер декодированной картинки (DPB) или может быть сконфигурирована цифровым носителем хранения. Компонент аппаратных средств может дополнительно включать в себя память 170 как внутренний/внешний компонент.[55] With reference to FIG. 1, the encoding device 100 includes an image partitioning unit 110, a predictor 120, a remainder processor 130, and an entropy encoder 140, an adder 150, a filter 160, and a memory 170. The predictor 120 may include an inter-predictor 121 and an intra-predictor 122. The processor The remainder 130 may include a converter 132, a quantizer 133, a dequantizer 134, and an inverse converter 135. The remainder processor 130 may further include a subtractor 131. The adder 150 may be referred to as a reconstructor or reconstructed block generator. The image partitioning unit 110, predictor 120, residual processor 130, entropy encoder 140, adder 150, and filter 160 may be configured by at least one hardware component (eg, an encoder chipset or processor) in accordance with an embodiment. In addition, memory 170 may include a decoded picture buffer (DPB) or may be configured with a digital storage medium. The hardware component may further include memory 170 as an internal/external component.

[56] Модуль 110 разбиения изображения может разбивать входное изображение (или картинку или кадр), введенное в устройство 200 кодирования, в одну или единиц обработки. Например, единица обработки может называться единицей кодирования (CU). В этом случае, единица кодирования может рекурсивно разбиваться в соответствии со структурой квадродерева/двоичного дерева/троичного дерева (QTBTTT) из единицы дерева кодирования (CTU) или наибольшей единицы кодирования (LCU). Например, одна единица кодирования может разбиваться на множество единиц кодирования большей глубины на основе структуры квадродерева, структуры двоичного дерева и/или троичного дерева. В этом случае, например, структура квадродерева может применяться первой, и структура двоичного дерева и/или структура троичного дерева может применяться позже. Альтернативно, структура двоичного дерева может применяться первой. Процедура кодирования в соответствии с настоящим раскрытием может выполняться на основе конечной единицы кодирования, которая больше не разбивается. В этом случае, наибольшая единица кодирования может использоваться как конечная единица кодирования на основе эффективности кодирования в соответствии с характеристиками изображения, или если необходимо, единица кодирования может рекурсивно разбиваться на единицы кодирования большей глубины, и единица кодирования, имеющая оптимальный размер, может использоваться как конечная единица кодирования. Здесь, процедура кодирования может включать в себя процедуру предсказания, преобразования и восстановления, которые будут описаны далее. В качестве примера, процессор может дополнительно включать в себя единицу предсказания (PU) или единицу преобразования (TU). В этом случае, единица предсказания и единица преобразования могут разделяться или разбиваться из вышеупомянутой конечной единицы кодирования. Единица предсказания может представлять собой единицу предсказания выборки, и единица преобразования может представлять собой единицу для выведения коэффициента преобразования и/или единицу для выведения остаточного сигнала из коэффициента преобразования.[56] The image splitting unit 110 can split an input image (or picture or frame) input to the encoding device 200 into one or processing units. For example, a processing unit may be called a coding unit (CU). In this case, the coding unit may be recursively partitioned according to a quadtree/binary tree/ternary tree (QTBTTT) structure from a coding tree unit (CTU) or a largest coding unit (LCU). For example, one encoding unit may be partitioned into multiple encoding units of greater depth based on a quadtree structure, a binary tree structure, and/or a ternary tree structure. In this case, for example, the quadtree structure may be applied first, and the binary tree structure and/or ternary tree structure may be applied later. Alternatively, the binary tree structure may be applied first. The encoding procedure in accordance with the present disclosure may be performed based on a final encoding unit that is no longer split. In this case, the largest coding unit can be used as the final coding unit based on the coding efficiency according to the characteristics of the image, or if necessary, the coding unit can be recursively divided into coding units of greater depth, and the coding unit having the optimal size can be used as the final coding unit. Here, the encoding procedure may include a prediction, transformation and reconstruction procedure, which will be described later. As an example, the processor may further include a prediction unit (PU) or a transformation unit (TU). In this case, the prediction unit and the transformation unit may be separated or split from the above-mentioned final encoding unit. The prediction unit may be a sample prediction unit, and the transformation unit may be a unit for deriving a transform coefficient and/or a unit for deriving a residual signal from the transform coefficient.

[57] Единица может использоваться взаимозаменяемо с такими терминами, как блок или область в некоторых случаях. В общем случае, блок M×N может представлять набор выборок или коэффициентов преобразования, состоящих из M столбцов и N строк. Выборка может, в общем, представлять пиксел или значение пиксела, может представлять только пиксел/значение пиксела компонента яркости или представлять только пиксел/значение пиксела компонента цветности. Выборка может использоваться как термин, соответствующий одной картинке (или изображению) для пиксела или пела.[57] Unit may be used interchangeably with terms such as block or area in some cases. In general, an M×N block can represent a set of samples or transform coefficients consisting of M columns and N rows. The sample may generally represent a pixel or pixel value, may represent only a luma component pixel/pixel value, or may represent only a chrominance component pixel/pixel value. Sampling can be used as a term corresponding to a single picture (or image) for a pixel or pel.

[58] В устройстве 100 кодирования, сигнал предсказания (предсказанный блок, массив выборок предсказания), выведенный из интер-предсказателя 121 или интра-предсказателя 122, вычитается из входного сигнала изображения (исходного блока, исходного массива выборок), чтобы сгенерировать остаточный сигнал (остаточный блок, остаточный массив выборок), и сгенерированный остаточный сигнал передается на преобразователь 132. В этом случае, как показано, модуль для вычитания сигнала предсказания (предсказанного блока, массива выборок предсказания) из входного сигнала изображения (исходного блока, исходного массива выборок) в устройстве 100 кодирования может называться вычитателем 131. Предсказатель может выполнять предсказание на блоке, подлежащем обработке (далее называемом текущим блоком), и генерировать предсказанный блок, включающий в себя выборки предсказания для текущего блока. Предсказатель может определять, применяется ли интра-предсказание или интер-предсказание на текущем блоке или на основе CU. Как описано далее в описании каждого режима предсказания, предсказатель может генерировать различную информацию, относящуюся к предсказанию, такую как информация режима предсказания, и передавать сгенерированную информацию на энтропийный кодер 140. Информация о предсказании может кодироваться в энтропийном кодере 140 и выводиться в форме битового потока.[58] In the encoding apparatus 100, a prediction signal (predicted block, prediction sample array) output from the inter-predictor 121 or intra-predictor 122 is subtracted from the input image signal (original block, original sample array) to generate a residual signal ( residual block, residual sample array), and the generated residual signal is transmitted to converter 132. In this case, as shown, a module for subtracting a prediction signal (predicted block, prediction sample array) from an input image signal (original block, original sample array) into encoder 100 may be referred to as a subtractor 131. The predictor may perform prediction on a block to be processed (hereinafter referred to as a current block) and generate a predicted block including prediction samples for the current block. The predictor can determine whether intra-prediction or inter-prediction is applied on the current block or on a CU basis. As described later in the description of each prediction mode, the predictor can generate various prediction-related information, such as prediction mode information, and transmit the generated information to the entropy encoder 140. The prediction information can be encoded in the entropy encoder 140 and output in the form of a bit stream.

[59] Интра-предсказатель 122 может предсказывать текущий блок путем ссылки на выборки в текущей картинке. Указанные выборки могут быть расположены по соседству с текущим блоком или могут быть разнесены в соответствии с режимом предсказания. В интра-предсказании, режимы предсказания могут включать в себя множество ненаправленных режимов и множество направленных режимов. Ненаправленный режим может включать в себя, например, режим DC и планарный режим. Направленный режим может включать в себя, например, 33 направленных режима предсказания или 65 направленных режимов предсказания в соответствии со степенью детализации направления предсказания. Однако это только пример, больше или меньше направленных режимов предсказания могут использоваться в зависимости от настройки. Интра-предсказатель 122 может определять режим предсказания, применяемый к текущему блоку, путем использования режима предсказания, применяемого к соседнему блоку.[59] Intra predictor 122 may predict the current block by reference to samples in the current picture. These samples may be located adjacent to the current block or may be spaced apart according to the prediction mode. In intra-prediction, prediction modes may include a plurality of undirected modes and a plurality of directed modes. The omnidirectional mode may include, for example, a DC mode and a planar mode. The directional mode may include, for example, 33 directional prediction modes or 65 directional prediction modes according to the granularity of the prediction direction. However, this is just an example, more or less directional prediction modes may be used depending on the setting. Intra predictor 122 may determine the prediction mode applied to the current block by using the prediction mode applied to the adjacent block.

[60] Интер-предсказатель 121 может выводить предсказанный блок для текущего блока на основе опорного блока (опорного массива выборок), специфицированного вектором движения на опорной картинке. Здесь, чтобы уменьшить количество информации движения, передаваемой в режиме интер-предсказания, информация движения может предсказываться в единицах блоков, подблоков или выборках на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорной картинки. Информация движения может дополнительно включать в себя информацию направления интер-предсказания (L0-предсказание, L1-предсказание, Bi-предсказание и т.д.). В случае интер-предсказания, соседний блок может включать в себя пространственный соседний блок, представленный в текущей картинке, и временной соседний блок, представленный в опорной картинке. Опорная картинка, включающая в себя опорный блок, и опорная картинка, включающая в себя временной соседний блок, могут быть одинаковыми или разными. Временной соседний блок может называться совместно расположенным (совмещенным) опорным блоком, co-located CU (colCU) и т.п., и опорная картинка, включающая в себя временной соседний блок, может называться совмещенной картинкой (colPic). Например, интер-предсказатель 121 может конфигурировать список кандидатов информации движения на основе соседних блоков и генерировать информацию, указывающую, какой кандидат используется, чтобы вывести вектор движения и/или индекс опорной картинки текущего блока. Интер-предсказание может выполняться на основе различных режимов предсказания. Например, в случае режима пропуска и режима объединения, интер-предсказатель 221 может использовать информацию движения соседнего блока как информацию движения текущего блока. В режиме пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. В случае режима предсказания вектора движения (MVP), вектор движения соседнего блока может использоваться как предсказатель вектора движения, и вектор движения текущего блока может указываться путем сигнализации разности векторов движения.[60] The inter-predictor 121 may output a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector in the reference picture. Here, in order to reduce the amount of motion information transmitted in the inter-prediction mode, motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between a neighboring block and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter-prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter-prediction, the neighbor block may include a spatial neighbor block represented in the current picture and a temporal neighbor block represented in the reference picture. The reference picture including the reference block and the reference picture including the temporary adjacent block may be the same or different. A temporary neighbor block may be called a co-located reference block, a co-located CU (colCU), etc., and a reference picture including a temporary neighboring block may be called a co-located picture (colPic). For example, inter-predictor 121 may configure a list of motion information candidates based on neighboring blocks and generate information indicating which candidate is used to output the motion vector and/or reference picture index of the current block. Inter-prediction can be performed based on various prediction modes. For example, in the case of the skip mode and the merge mode, the inter-predictor 221 may use the motion information of a neighboring block as the motion information of the current block. In the skip mode, unlike the combine mode, the residual signal may not be transmitted. In the case of a motion vector prediction (MVP) mode, the motion vector of an adjacent block can be used as a motion vector predictor, and the motion vector of the current block can be indicated by signaling a motion vector difference.

[61] Предсказатель 120 может генерировать сигнал предсказания на основе различных способов предсказания, описанных ниже. Например, предсказатель может не только применять интра-предсказание или интер-предсказание, чтобы предсказать один блок, но также одновременно применять как интра-предсказание, так и интер-предсказание. Это может называться комбинированным интер- и интра-предсказанием (CIIP). К тому же, предсказатель может быть основан на режиме предсказания внутри-блочного копирования (IBC) или режиме палитры для предсказания блока. Режим предсказания IBC или режим палитры могут использоваться для кодирования контента изображения/видео игры или тому подобного, например, кодирования экранного контента (SCC). IBC в основном выполняет предсказание в текущей картинке, но может выполняться аналогично интер-предсказанию тем, что опорный блок выводится в текущей картинке. То есть, IBC может использовать по меньшей мере один из методов интер-предсказания, описанных в настоящем раскрытии. Режим палитры может рассматриваться как пример интра-кодирования или интра-предсказания. Когда применяется режим палитры, значение выборки в пределах картинки может сигнализироваться на основе информации о таблице палитры и индексе палитры.[61] Predictor 120 may generate a prediction signal based on various prediction methods described below. For example, a predictor may not only apply intra-prediction or inter-prediction to predict one block, but also simultaneously apply both intra-prediction and inter-prediction. This may be called combined inter- and intra-prediction (CIIP). In addition, the predictor may be based on intra-block copy (IBC) prediction mode or palette mode for block prediction. The IBC prediction mode or palette mode can be used for encoding image/video game content or the like, such as screen content encoding (SCC). IBC primarily performs prediction in the current picture, but can be performed similarly to inter-prediction in that the reference block is output in the current picture. That is, the IBC may use at least one of the inter-prediction methods described in the present disclosure. Palette mode can be considered an example of intra-encoding or intra-prediction. When palette mode is applied, a sample value within a picture can be signaled based on information about the palette table and palette index.

[62] Сигнал предсказания, сгенерированный предсказателем (включающим в себя интер-предсказатель 121 и/или интра-предсказатель 122), может использоваться, чтобы генерировать восстановленный сигнал или чтобы генерировать остаточный сигнал. Преобразователь 132 может генерировать коэффициенты преобразования путем применения метода преобразования к остаточному сигналу. Например, метод преобразования может включать в себя по меньшей мере одно из дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования Карунена-Лоэва (KLT), преобразования на основе графа (GBT) или условно-нелинейного преобразования (CNT). Здесь, GBT означает преобразование, полученное из графа, когда информация отношения между пикселами представлена графом. CNT относится к преобразованию, сгенерированному на основе сигнала предсказания, сгенерированного с использованием всех ранее восстановленных пикселов. К тому же, процесс преобразования может применяться к квадратным блокам пикселов, имеющим одинаковый размер, или может применяться к блокам, имеющим переменный размер, а не квадратным.[62] The prediction signal generated by the predictor (including inter-predictor 121 and/or intra-predictor 122) may be used to generate a reconstructed signal or to generate a residual signal. Converter 132 may generate transform coefficients by applying a transform method to the residual signal. For example, the transform method may include at least one of a discrete cosine transform (DCT), a discrete sine transform (DST), a Karhunen-Loeve transform (KLT), a graph-based transform (GBT), or a conditional nonlinear transform (CNT). . Here, GBT means the transformation obtained from a graph when the relation information between pixels is represented by the graph. CNT refers to the transform generated based on the prediction signal generated using all the previously reconstructed pixels. In addition, the transformation process can be applied to square blocks of pixels that are the same size, or can be applied to blocks that are variable in size rather than square.

[63] Квантователь 133 может квантовать коэффициенты преобразования и передавать их на энтропийный кодер 140, и энтропийный кодер 140 может кодировать квантованный сигнал (информацию о квантованных коэффициентах преобразования) и выводить битовый поток. Информация о квантованных коэффициентах преобразования может называться информацией остатка. Квантователь 133 может переупорядочивать квантованные коэффициенты преобразования типа блока в форму одномерного вектора на основе порядка сканирования коэффициентов и генерировать информацию о квантованных коэффициентах преобразования на основе квантованных коэффициентов преобразования в форме одномерного вектора. Информация о коэффициентах преобразования может генерироваться. Энтропийный кодер 140 может выполнять различные способы кодирования, такие как, например, экспоненциальное кодирование Голомба, контекстно-адаптивное кодирование с переменной длиной (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и тому подобное. Энтропийный кодер 140 может кодировать информацию, необходимую для восстановления видео/изображения, отличную от квантованных коэффициентов преобразования (например, значения синтаксических элементов и т.д.), вместе или отдельно. Закодированная информация (например, закодированная информация видео/изображения) может передаваться или сохраняться в единицах NAL (уровень сетевой абстракции) в форме битового потока. Информация видео/изображения может дополнительно включать в себя информацию о различных наборах параметров, таких как набор параметров адаптации (APS), набор параметров картинки (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). К тому же, информация видео/изображения может дополнительно включать в себя общую информацию ограничения. В настоящем документе, информация и/или синтаксические элементы, передаваемые/сигнализируемые от устройства кодирования на устройство декодирования, могут быть включены в информацию видео/картинки. Информация видео/изображения может кодироваться посредством вышеописанной процедуры кодирования и включаться в битовый поток. Битовый поток может передаваться по сети или может сохраняться в цифровом носителе хранения. Сеть может включать в себя сеть вещания и/или сеть связи, и цифровой носитель хранения может включать в себя различные носители хранения, такие как USB, SD, CD, DVD, Blu-ray, HDD, SSD и тому подобное. Передатчик (не показан), передающий сигнал, выведенный из энтропийного кодера 140, и/или модуль хранения (не показан), хранящий сигнал, могут быть включены как внутренний/внешний элемент устройства 100 кодирования, и альтернативно, передатчик может быть включен в энтропийный кодер 140.[63] The quantizer 133 may quantize the transform coefficients and transmit them to the entropy encoder 140, and the entropy encoder 140 may encode the quantized signal (information about the quantized transform coefficients) and output a bit stream. Information about the quantized transform coefficients may be called remainder information. Quantizer 133 may reorder the quantized block type transform coefficients into one-dimensional vector form based on the scanning order of the coefficients, and generate information about the quantized transform coefficients based on the quantized transform coefficients in one-dimensional vector form. Information about conversion coefficients can be generated. Entropy encoder 140 may perform various encoding techniques, such as, for example, exponential Golomb coding, context adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), and the like. Entropy encoder 140 may encode information needed for video/image reconstruction other than quantized transform coefficients (eg, syntax element values, etc.) together or separately. Encoded information (eg, encoded video/image information) may be transmitted or stored in NAL (Network Abstraction Layer) units in the form of a bit stream. The video/image information may further include information about various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video/image information may further include general restriction information. Herein, information and/or syntax elements transmitted/signaled from an encoding device to a decoding device may be included in video/picture information. The video/image information may be encoded by the above-described encoding procedure and included in the bit stream. The bitstream may be transmitted over a network or may be stored in a digital storage medium. The network may include a broadcast network and/or a communications network, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD and the like. A transmitter (not shown) transmitting the signal output from the entropy encoder 140 and/or a storage module (not shown) storing the signal may be included as an internal/external element of the encoding device 100, and alternatively, the transmitter may be included in the entropy encoder 140.

[64] Квантованные коэффициенты преобразования, выведенные из квантователя 133, могут использоваться, чтобы генерировать сигнал предсказания. Например, остаточный сигнал (остаточный блок или остаточные выборки) может восстанавливаться путем применения деквантования и обратного преобразования к квантованным коэффициентам преобразования деквантователем 134 и обратным преобразователем 135. Сумматор 150 добавляет восстановленный остаточный сигнал к сигналу предсказания, выведенному из интер-предсказателя 121 или интра-предсказателя 122, чтобы сгенерировать восстановленный сигнал (восстановленную картинку, восстановленный блок, восстановленный массив выборок). Если отсутствует остаток для блока, подлежащего обработке, например, в случае, где применяется режим пропуска, предсказанный блок может использоваться как восстановленный блок. Сумматор 150 может называться реконструктором или генератором восстановленного блока. Сгенерированный восстановленный сигнал может использоваться для интра-предсказания следующего блока, подлежащего обработке, в текущей картинке и может использоваться для интер-предсказания следующей картинки посредством фильтрации, как описано ниже.[64] The quantized transform coefficients output from quantizer 133 can be used to generate a prediction signal. For example, a residual signal (residual block or residual samples) may be recovered by applying dequantization and inverse transform to the quantized transform coefficients by dequantizer 134 and inverse transformer 135. Adder 150 adds the reconstructed residual signal to the prediction signal output from inter-predictor 121 or intra-predictor 122 to generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array). If there is no remainder for a block to be processed, for example in a case where a skip mode is applied, the predicted block can be used as a reconstructed block. The adder 150 may be referred to as a reconstructor or reconstructed block generator. The generated reconstructed signal can be used to intra-predict the next block to be processed in the current picture, and can be used to inter-predict the next picture by filtering, as described below.

[65] Между тем, отображение яркости с масштабированием цветности (LMCS) может применяться во время кодирования и/или восстановления картинки.[65] Meanwhile, luminance chroma scaling (LMCS) mapping can be applied during picture encoding and/or reconstruction.

[66] Фильтр 160 может улучшать субъективное/объективное качество изображения путем применения фильтрации к восстановленному сигналу. Например, фильтр 160 может генерировать модифицированную восстановленную картинку путем применения различных способов фильтрации к восстановленной картинке и сохранять модифицированную восстановленную картинку в памяти 170, конкретно, DPB памяти 170. Различные способы фильтрации могут включать в себя, например, фильтрацию устранения блочности, адаптивное смещение выборки, адаптивный контурный фильтр, двунаправленный фильтр и тому подобное. Фильтр 160 может генерировать различную информацию, относящуюся к фильтрации, и передавать сгенерированную информацию на энтропийный кодер 140, как описано далее в описании каждого способа фильтрации. Информация, относящаяся к фильтрации, может кодироваться энтропийным кодером 140 и выводиться в форме битового потока.[66] Filter 160 may improve subjective/objective image quality by applying filtering to the reconstructed signal. For example, filter 160 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture and store the modified reconstructed picture in memory 170, specifically DPB memory 170. Various filtering methods may include, for example, deblocking filtering, adaptive sampling offset, adaptive loop filter, bidirectional filter and the like. The filter 160 may generate various filtering-related information and transmit the generated information to the entropy encoder 140, as described later in the description of each filtering method. Filtering-related information may be encoded by entropy encoder 140 and output in the form of a bit stream.

[67] Модифицированная восстановленная картинка, передаваемая в память 170, может использоваться как опорная картинка в интер-предсказателе 121. Когда интер-предсказание применяется посредством устройства кодирования, можно избежать рассогласования предсказания между устройством 100 кодирования и устройством декодирования, и эффективность кодирования может улучшаться.[67] The modified reconstructed picture supplied to the memory 170 can be used as a reference picture in the inter-predictor 121. When inter-prediction is applied by the encoding device, prediction mismatch between the encoding device 100 and the decoding device can be avoided, and encoding efficiency can be improved.

[68] DPB памяти 170 DPB может хранить модифицированную восстановленную картинку для использования в качестве опорной картинки в интер-предсказателе 121. Память 170 может хранить информацию движения блока, из которой выводится (или кодируется) информация движения в текущей картинке, и/или информацию движения блоков в картинке, которые уже были восстановлены. Сохраненная информация движения может передаваться на интер-предсказатель 121 и использоваться как информация движения пространственного соседнего блока или информация движения временного соседнего блока. Память 170 может хранить восстановленные выборки восстановленных блоков в текущей картинке и может переносить восстановленные выборки на интра-предсказатель 122.[68] The DPB of the DPB memory 170 may store a modified reconstructed picture for use as a reference picture in the inter-predictor 121. The memory 170 may store block motion information from which motion information in the current picture is derived (or encoded) and/or motion information blocks in the picture that have already been restored. The stored motion information may be transmitted to the inter-predictor 121 and used as spatial neighbor motion information or temporal neighbor motion information. Memory 170 may store reconstructed samples of reconstructed blocks in the current picture and may transfer the reconstructed samples to intra-predictor 122.

[69] Фиг. 2 является схематичной диаграммой, иллюстрирующей конфигурацию устройства декодирования видео/изображения, к которой может применяться вариант(ы) осуществления настоящего раскрытия.[69] FIG. 2 is a schematic diagram illustrating the configuration of a video/image decoding apparatus to which embodiment(s) of the present disclosure may be applied.

[70] Со ссылкой на фиг. 2, устройство 200 декодирования может включать в себя энтропийный декодер 210, процессор 220 остатка, предсказатель 230, сумматор 240, фильтр 250, память 260. Предсказатель 230 может включать в себя интер-предсказатель 231 и интра-предсказатель 232. Процессор 220 остатка может включать в себя деквантователь 221 и обратный преобразователь 221. Энтропийный декодер 210, процессор 220 остатка, предсказатель 230, сумматор 240 и фильтр 250 могут быть сконфигурированы компонентом аппаратных средств (например, чипсетом декодера или процессором) в соответствии с вариантом осуществления. К тому же, память 260 может включать в себя буфер декодированной картинки (DPB) или может быть сконфигурирована цифровым носителем хранения. Компонент аппаратных средств может дополнительно включать в себя память 260 как внутренний/внешний компонент.[70] With reference to FIG. 2, decoding apparatus 200 may include an entropy decoder 210, a residual processor 220, a predictor 230, an adder 240, a filter 250, a memory 260. The predictor 230 may include an inter-predictor 231 and an intra-predictor 232. The residual processor 220 may include including a dequantizer 221 and an inverse converter 221. The entropy decoder 210, residual processor 220, predictor 230, adder 240, and filter 250 may be configured by a hardware component (eg, a decoder chipset or processor) in accordance with an embodiment. In addition, memory 260 may include a decoded picture buffer (DPB) or may be configured with a digital storage medium. The hardware component may further include memory 260 as an internal/external component.

[71] Когда битовый поток, включающий в себя информацию видео/изображения, вводится, устройство 200 декодирования может восстанавливать изображение, соответствующее процессу, в котором информация видео/изображения обрабатывается в устройстве кодирования согласно фиг. 1. Например, устройство 200 декодирования может выводить единицы/блоки на основе информации, относящейся к разбиению блока, полученной из битового потока. Устройство 200 декодирования может выполнять декодирование с использованием процессора, применяемого к устройству кодирования. Таким образом, процессор декодирования может представлять собой, например, единицу кодирования, и единица кодирования может разбиваться в соответствии со структурой квадродерева, структурой двоичного дерева и/или структурой троичного дерева из единицы дерева кодирования или наибольшей единицы кодирования. Одна или более единиц преобразования могут выводиться из единицы кодирования. Восстановленный сигнал изображения, декодированный и выведенный посредством устройства 300 декодирования, может воспроизводиться посредством устройства воспроизведения.[71] When a bitstream including video/image information is input, the decoding apparatus 200 can reconstruct an image corresponding to the process in which the video/image information is processed in the encoding apparatus according to FIG. 1. For example, the decoding apparatus 200 may output units/blocks based on block division related information obtained from the bitstream. The decoding apparatus 200 may perform decoding using a processor applied to the encoding apparatus. Thus, the decoding processor may be, for example, an encoding unit, and the encoding unit may be partitioned according to a quadtree structure, a binary tree structure, and/or a ternary tree structure from the encoding tree unit or the largest encoding unit. One or more transformation units may be derived from a coding unit. The reconstructed image signal decoded and output by the decoding device 300 can be reproduced by the playback device.

[72] Устройство 200 декодирования может принимать сигнал, выведенный из устройства кодирования согласно фиг. 1 в форме битового потока, и принятый сигнал может декодироваться посредством энтропийного декодера 210. Например, энтропийный декодер 210 может выполнять анализ битового потока, чтобы вывести информацию (например, информацию видео/изображения), необходимую для восстановления изображения (или восстановления картинки). Информация видео/изображения может дополнительно включать в себя информацию о различных наборах параметров, таких как набор параметров адаптации (APS), набор параметров картинки (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). К тому же, информация видео/изображения может дополнительно включать в себя общую информацию ограничения. Устройство декодирования может дополнительно декодировать картинку на основе информации о наборе параметров и/или общей информации ограничения. Сигнализированная/принятая информация и/или синтаксические элементы, описанные далее в настоящем раскрытии, могут быть декодированы для декодирования процедуры декодирования и получены из битового потока. Например, энтропийный декодер 210 кодирует информацию в битовом потоке на основе способа кодирования, такого как экспоненциальное кодирование Голомба, CAVLC или CABAC, и выводит синтаксические элементы, требуемые для восстановления изображения, и квантованные значения коэффициентов преобразования для остатка. Более конкретно, способ энтропийного декодирования CABAC может принимать бин (bin), соответствующий каждому синтаксическому элементу в битовом потоке, определять контекстную модель с использованием информации синтаксического элемента цели декодирования, информации декодирования целевого блока декодирования или информации символа/бина, декодированного на предыдущей стадии, и выполнять арифметическое декодирование на бине путем предсказания вероятности появления бина в соответствии с определенной контекстной моделью, и генерировать символ соответственно значению каждого синтаксического элемента. В этом случае, способ энтропийного декодирования CABAC может обновлять контекстную модель с использованием информации декодированного символа/бина для контекстной модели следующего символа/бина после определения контекстной модели. Информация, относящаяся к предсказанию, среди информации, декодированной энтропийным декодером 210, может предоставляться на предсказатель (интер-предсказатель 232 и интра-предсказатель 231), и остаточное значение, на котором энтропийное декодирование было выполнено в энтропийном декодере 210, то есть, квантованные коэффициенты преобразования и связанная информация параметров, может вводиться в процессор 220 остатка. Процессор 220 остатка может выводить остаточный сигнал (остаточный блок, остаточные выборки, остаточный массив выборок). К тому же, информация о фильтрации среди информации, декодированной энтропийным декодером 210, может предоставляться на фильтр 250. Между тем, приемник (не показан) для приема сигнала, выведенного из устройства кодирования, может быть дополнительно сконфигурирован как внутренний/внешний элемент устройства 200 декодирования, или приемник может быть компонентом энтропийного декодера 210. Между тем, устройство декодирования в соответствии с настоящим документом может называться устройством декодирования видео/изображения/картинки, и устройство декодирования может классифицироваться на декодер информации (декодер информации видео/изображения/картинки) и декодер выборки (декодер выборки видео/изображения/картинки). Декодер информации может включать в себя энтропийный декодер 210, и декодер выборки может включать в себя по меньшей мере одно из деквантователя 221, обратного преобразователя 222, сумматора 240, фильтра 250, памяти 260, интер-предсказателя 232 и интра-предсказателя 231.[72] The decoding device 200 may receive a signal output from the encoding device according to FIG. 1 in the form of a bit stream, and the received signal may be decoded by an entropy decoder 210. For example, the entropy decoder 210 may perform analysis of the bit stream to output information (eg, video/image information) necessary for image reconstruction (or picture reconstruction). The video/image information may further include information about various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video/image information may further include general restriction information. The decoding apparatus may further decode the picture based on the parameter set information and/or general constraint information. The signaled/received information and/or syntax elements described later in the present disclosure may be decoded to decode a decoding procedure and obtained from the bitstream. For example, entropy decoder 210 encodes information in a bit stream based on an encoding method such as exponential Golomb coding, CAVLC, or CABAC, and outputs syntax elements required for image reconstruction and quantized values of transform coefficients for the remainder. More specifically, the CABAC entropy decoding method may receive a bin corresponding to each syntax element in a bitstream, determine a context model using syntax element information of a decoding target, decoding information of a decoding target block, or symbol/bin information decoded in a previous stage, and perform arithmetic decoding on a bin by predicting the probability of occurrence of the bin according to a certain context model, and generating a symbol according to the meaning of each syntactic element. In this case, the CABAC entropy decoding method can update the context model using the decoded symbol/bin information for the context model of the next symbol/bin after determining the context model. The prediction-related information, among the information decoded by the entropy decoder 210, may be provided to the predictor (inter-predictor 232 and intra-predictor 231), and the residual value on which entropy decoding was performed in the entropy decoder 210, that is, quantized coefficients conversions and associated parameter information may be input to residual processor 220. Residual processor 220 may output a residual signal (residual block, residual samples, residual sample array). In addition, filtering information among the information decoded by the entropy decoder 210 may be provided to the filter 250. Meanwhile, a receiver (not shown) for receiving a signal output from the encoding device may be further configured as an internal/external element of the decoding device 200 , or the receiver may be a component of the entropy decoder 210. Meanwhile, the decoding device according to this document may be called a video/image/picture decoding device, and the decoding device may be classified into an information decoder (video/image/picture information decoder) and a sampling decoder (video/image/picture sampling decoder). The information decoder may include an entropy decoder 210, and the sample decoder may include at least one of a dequantizer 221, an inverse converter 222, an adder 240, a filter 250, a memory 260, an inter-predictor 232, and an intra-predictor 231.

[73] Деквантователь 221 может деквантовать квантованные коэффициенты преобразования и выводить коэффициенты преобразования. Деквантователь 221 может переупорядочивать квантованные коэффициенты преобразования в форме двумерного блока. В этом случае, переупорядочивание может выполняться на основе порядка сканирования коэффициентов, выполняемого в устройстве кодирования. Деквантователь 221 может выполнять деквантование на квантованных коэффициентах преобразования с использованием параметра квантования (например, информации размера шага квантования) и получать коэффициенты преобразования.[73] The dequantizer 221 may dequantize the quantized transform coefficients and output the transform coefficients. The dequantizer 221 may reorder the quantized transform coefficients in the form of a two-dimensional block. In this case, reordering may be performed based on the order of coefficient scanning performed in the encoder. The dequantizer 221 may perform dequantization on the quantized transform coefficients using a quantization parameter (eg, quantization step size information) and obtain the transform coefficients.

[74] Обратный преобразователь 222 обратно преобразует коэффициенты преобразования, чтобы получить остаточный сигнал (остаточный блок, остаточный массив выборок).[74] The inverse converter 222 inversely converts the transform coefficients to obtain a residual signal (residual block, residual sample array).

[75] Предсказатель может выполнять предсказание на текущем блоке и генерировать предсказанный блок, включающий в себя выборки предсказания для текущего блока. Предсказатель может определять, применяется ли интра-предсказание или интер-предсказание к текущему блоку, на основе информации о предсказании, выведенной из энтропийного декодера 210, и может определять конкретный режим интра/интер-предсказания.[75] The predictor may perform prediction on the current block and generate a predicted block including prediction samples for the current block. The predictor can determine whether intra-prediction or inter-prediction is applied to the current block based on the prediction information output from the entropy decoder 210, and can determine a particular intra/inter-prediction mode.

[76] Предсказатель 220 может генерировать сигнал предсказания на основе различных способов предсказания, описанных ниже. Например, предсказатель может не только применять интра-предсказание или интер-предсказание, чтобы предсказывать один блок, но также одновременно применять интра-предсказание и интер-предсказание. Это может называться комбинированным интер- и интра-предсказанием (CIIP). К тому же, предсказатель может быть основан на режиме предсказания внутри-блочного копирования (IBC) или режиме палитры для предсказания блока. Режим предсказания IBC или режим палитры могут использоваться для кодирования контента изображения/видео игры или тому подобного, например, кодирования экранного контента (SCC). IBC в основном выполняет предсказание в текущей картинке, но может выполняться аналогично интер-предсказанию тем, что опорный блок выводится в текущей картинке. То есть, IBC может использовать по меньшей мере один из методов интер-предсказания, описанных в настоящем документе. Режим палитры может рассматриваться как пример интра-кодирования или интра-предсказания. Когда режим палитры применяется, значение выборки в пределах картинки может сигнализироваться на основе информации о таблице палитры и индексе палитры. [76] Predictor 220 may generate a prediction signal based on various prediction methods described below. For example, a predictor may not only apply intra-prediction or inter-prediction to predict one block, but also simultaneously apply intra-prediction and inter-prediction. This may be called combined inter- and intra-prediction (CIIP). In addition, the predictor may be based on intra-block copy (IBC) prediction mode or palette mode for block prediction. The IBC prediction mode or palette mode can be used for encoding image/video game content or the like, such as screen content encoding (SCC). IBC primarily performs prediction in the current picture, but can be performed similarly to inter-prediction in that the reference block is output in the current picture. That is, the IBC may use at least one of the inter-prediction methods described herein. Palette mode can be considered an example of intra-encoding or intra-prediction. When a palette mode is applied, a sample value within a picture can be signaled based on information about the palette table and palette index.

[77] Интра-предсказатель 231 может предсказывать текущий блок путем ссылки на выборки в текущей картинке. Указанные выборки могут быть расположены по соседству с текущим блоком или могут быть разнесены в соответствии с режимом предсказания. В интра-предсказании, режимы предсказания могут включать в себя множество ненаправленных режимов и множество направленных режимов. Интра-предсказатель 231 может определять режим предсказания, применяемый к текущему блоку, с использованием режима предсказания, применяемого к соседнему блоку.[77] Intra predictor 231 may predict the current block by reference to samples in the current picture. These samples may be located adjacent to the current block or may be spaced apart according to the prediction mode. In intra-prediction, prediction modes may include a plurality of undirected modes and a plurality of directed modes. Intra predictor 231 may determine the prediction mode applied to the current block using the prediction mode applied to the adjacent block.

[78] Интер-предсказатель 232 может выводить предсказанный блок для текущего блока на основе опорного блока (опорного массива выборок), специфицированного вектором движения на опорной картинке. В этом случае, чтобы уменьшить количество информации движения, передаваемой в режиме интер-предсказания, информация движения может предсказываться в единицах блоков, подблоков или выборках на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорной картинки. Информация движения может дополнительно включать в себя информацию направления интер-предсказания (L0-предсказание, L1-предсказание, Bi-предсказание и т.д.). В случае интер-предсказания, соседний блок может включать в себя пространственный соседний блок, представленный в текущей картинке, и временной соседний блок, представленный в опорной картинке. Например, интер-предсказатель 232 может конструировать список кандидатов информации движения на основе соседних блоков и выводить вектор движения текущего блока и/или индекс опорной картинки на основе принятой информации выбора кандидата. Интер-предсказание может выполняться на основе различных режимов предсказания, и информация о предсказании может включать в себя информацию, указывающую режим интер-предсказания для текущего блока.[78] Inter-predictor 232 may output a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector in the reference picture. In this case, in order to reduce the amount of motion information transmitted in the inter-prediction mode, motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between a neighboring block and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter-prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter-prediction, the neighbor block may include a spatial neighbor block represented in the current picture and a temporal neighbor block represented in the reference picture. For example, inter-predictor 232 may construct a motion information candidate list based on neighboring blocks and output the current block's motion vector and/or reference picture index based on the received candidate selection information. Inter-prediction may be performed based on various prediction modes, and the prediction information may include information indicating an inter-prediction mode for the current block.

[79] Сумматор 240 может генерировать восстановленный сигнал (восстановленную картинку, восстановленный блок, восстановленный массив выборок) путем добавления полученного остаточного сигнала к сигналу предсказания (предсказанному блоку, предсказанному массиву выборок), выведенному из предсказателя (включающего в себя интер-предсказатель 232 и/или интра-предсказатель 231). Если отсутствует остаток для блока, подлежащего обработке, например, когда применяется режим пропуска, предсказанный блок может использоваться как восстановленный блок.[79] The adder 240 may generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the resulting residual signal to the prediction signal (predicted block, predicted sample array) output from the predictor (including inter-predictor 232 and/or or intra-predictor 231). If there is no remainder for a block to be processed, for example when a skip mode is applied, the predicted block can be used as a reconstructed block.

[80] Сумматор 240 может называться реконструктором или генератором восстановленного блока. Сгенерированный восстановленный сигнал может использоваться для интра-предсказания следующего блока, подлежащего обработке в текущей картинке, может выводиться посредством фильтрации, как описано ниже, или может использоваться для интер-предсказания следующей картинки.[80] The adder 240 may be referred to as a reconstructor or reconstructed block generator. The generated reconstructed signal may be used to intra-predict the next block to be processed in the current picture, may be output by filtering as described below, or may be used to inter-predict the next picture.

[81] Между тем, отображение яркости с масштабированием цветности (LMCS) может применяться в процессе декодирования картинки.[81] Meanwhile, luminance chroma scaling (LMCS) display can be applied in the picture decoding process.

[82] Фильтр 250 может улучшать субъективное/объективное качество изображения путем применения фильтрации к восстановленному сигналу. Например, фильтр 250 может генерировать модифицированную восстановленную картинку путем применения различных способов фильтрации к восстановленной картинке и сохранять модифицированную восстановленную картинку в памяти 260, конкретно, DPB памяти 260. Различные способы фильтрации могут включать в себя, например, фильтрацию устранения блочности, адаптивное смещение выборки, адаптивный контурный фильтр, двунаправленный фильтр и тому подобное.[82] Filter 250 may improve subjective/objective image quality by applying filtering to the reconstructed signal. For example, filter 250 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture and store the modified reconstructed picture in memory 260, specifically DPB memory 260. Various filtering methods may include, for example, deblocking filtering, adaptive sampling offset, adaptive loop filter, bidirectional filter and the like.

[83] (Модифицированная) восстановленная картинка, хранящаяся в DPB памяти 260, может использоваться как опорная картинка в интер-предсказателе 232. Память 260 может хранить информацию движения блока, из которого выводится (или декодируется) информация движения в текущей картинке, и/или информацию движения блоков в картинке, которые уже были восстановлены. Сохраненная информация движения может передаваться на интер-предсказатель 160 для использования в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Память 260 может хранить восстановленные выборки восстановленных блоков в текущей картинке и переносить восстановленные выборки на интра-предсказатель 231.[83] The (modified) reconstructed picture stored in DPB memory 260 may be used as a reference picture in inter-predictor 232. Memory 260 may store motion information of a block from which motion information in the current picture is derived (or decoded), and/or information about the movement of blocks in the picture that have already been restored. The stored motion information may be transmitted to the inter-predictor 160 for use as spatial neighbor motion information or temporal neighbor motion information. Memory 260 may store reconstructed samples of reconstructed blocks in the current picture and transfer the reconstructed samples to intra-predictor 231.

[84] В настоящем документе, варианты осуществления, описанные для фильтра 160, интер-предсказателя 121 и интра-предсказателя 122 устройства 100 кодирования, могут быть теми же самыми или соответственно применяться, чтобы соответствовать фильтру 250, интер-предсказателю 232 и интра-предсказателю 231 устройства 200 декодирования. [84] Herein, the embodiments described for filter 160, inter-predictor 121 and intra-predictor 122 of encoder 100 may be the same or respectively applied to correspond to filter 250, inter-predictor 232 and intra-predictor 231 decoding devices 200.

[85] Как описано выше, в выполнении кодирования видео, предсказание выполняется, чтобы повысить эффективность сжатия. Предсказанный блок, включающий в себя выборки предсказания для текущего блока, то есть, целевой блок кодирования, может генерироваться путем предсказания. В этом случае, предсказанный блок включает в себя выборки предсказания в пространственной области (или области пикселов). Предсказанный блок выводится одинаково в устройстве кодирования и устройстве декодирования. Устройство кодирования может повысить эффективность кодирования путем сигнализации, на устройство декодирования, информации об остатке (информации остатка) между исходным блоком и предсказанным блоком, а не исходное значение выборки самого исходного блока. Устройство декодирования может выводить остаточный блок, включающий в себя остаточные выборки, на основе информации остатка и может генерировать восстановленный блок, включающий в себя восстановленные выборки, путем суммирования остаточного блока и предсказанного блока и может генерировать восстановленную картинку, включающую в себя восстановленные блоки.[85] As described above, in performing video encoding, prediction is performed to improve compression efficiency. A predicted block including prediction samples for the current block, that is, a target encoding block, can be generated by prediction. In this case, the predicted block includes prediction samples in a spatial domain (or pixel domain). The predicted block is output equally in the encoding device and the decoding device. The encoding apparatus can improve encoding efficiency by signaling, to the decoding apparatus, residual information (residue information) between the original block and the predicted block, rather than the original sample value of the original block itself. The decoding apparatus can output a residual block including residual samples based on the residual information, and can generate a reconstructed block including the reconstructed samples by summing the residual block and the predicted block, and can generate a reconstructed picture including the reconstructed blocks.

[86] Информация остатка может генерироваться посредством процедуры преобразования и квантования. Например, устройство кодирования может выводить остаточный блок между исходным блоком и предсказанным блоком, может выводить коэффициенты преобразования путем выполнения процедуры преобразования на остаточных выборках (остаточном массиве выборок), включенных в остаточный блок, может выводить квантованные коэффициенты преобразования путем выполнения процедуры квантования на коэффициентах преобразования и может сигнализировать информацию остатка на устройство декодирования (посредством битового потока). В этом случае, информация остатка может включать в себя информацию, такую как информация значения, информация местоположения, схема преобразования, ядро преобразования и параметр квантования квантованных коэффициентов преобразования. Устройство декодирования может выполнять процесс деквантования/обратного преобразования на основе информации остатка и выводить остаточные выборки (или остаточный блок). Устройство декодирования может генерировать восстановленную картинку на основе предсказанного блока и остаточного блока. Устройство кодирования может выводить остаточный блок путем деквантования/обратного преобразования квантованных коэффициентов преобразования для ссылки для интер-предсказания последующей картинки и может генерировать восстановленную картинку.[86] Residual information may be generated through a transformation and quantization procedure. For example, the encoding device may output a residual block between an original block and a predicted block, may output transform coefficients by performing a transform procedure on the residual samples (residual array of samples) included in the residual block, may output quantized transform coefficients by performing a quantization procedure on the transform coefficients, and can signal remainder information to a decoding device (via a bitstream). In this case, the remainder information may include information such as value information, location information, a transform circuit, a transform kernel, and a quantization parameter of the quantized transform coefficients. The decoding apparatus may perform a dequantization/deconversion process based on the residual information and output residual samples (or a residual block). The decoding apparatus can generate a reconstructed picture based on the predicted block and the residual block. The encoding apparatus may output a residual block by dequantizing/deconverting the quantized transform coefficients for the inter-prediction reference of a subsequent picture, and may generate a reconstructed picture.

[87] Фиг. 3 схематично иллюстрирует метод множественного преобразования в соответствии с вариантом осуществления настоящего раскрытия.[87] FIG. 3 schematically illustrates a multiple transform method in accordance with an embodiment of the present disclosure.

[88] Со ссылкой на фиг. 3, преобразователь может соответствовать преобразователю в устройстве кодирования согласно фиг. 1, и обратный преобразователь может соответствовать обратному преобразователю в устройстве кодирования согласно фиг. 1 или обратному преобразователю в устройстве декодирования согласно фиг. 2.[88] With reference to FIG. 3, the converter may correspond to a converter in the encoding device according to FIG. 1, and the inverse converter may correspond to the inverse converter in the encoding device according to FIG. 1 or an inverse converter in the decoding device according to FIG. 2.

[89] Преобразователь может выводить коэффициенты (первичного) преобразования путем выполнения первичного преобразования на основе остаточных выборок (массива остаточных выборок) в остаточном блоке (S310). Это первичное преобразование может упоминаться как основное (базовое) преобразование. Здесь, первичное преобразование может быть основано на выборе множественного преобразования (MTS), и когда множественное преобразование применяется как первичное преобразование, оно может упоминаться как множественное основное преобразование.[89] The converter can output the (primary) conversion coefficients by performing a primary conversion based on the residual samples (residual sample array) in the residual block (S310). This primary transformation may be referred to as the main (base) transformation. Here, the primary transform may be based on the multiple transform selection (MTS), and when the multiple transform is applied as the primary transform, it may be referred to as the multiple primary transform.

[90] Множественное основное преобразование может представлять способ преобразования, дополнительно использующий дискретное косинусное преобразование (DCT) типа 2 и дискретное синусное преобразование (DST) типа 7, DCT типа 8 и/или DST типа 1. То есть, множественное основное преобразование может представлять способ преобразования для преобразования остаточного сигнала (или остаточного блока) пространственной области в коэффициенты преобразования (или коэффициенты первичного преобразования) частотной области на основе множества ядер преобразования, выбранных из DCT типа 2, DST типа 7, DCT типа 8 и DST типа 1. Здесь, коэффициенты первичного преобразования могут называться коэффициентами временного преобразования с точки зрения преобразователя.[90] The multiple base transform may represent a transform method further using discrete cosine transform (DCT) type 2 and discrete sine transform (DST) type 7, DCT type 8 and/or DST type 1. That is, the multiple base transform may represent a method transform to transform the spatial domain residual signal (or residual block) into frequency domain transform coefficients (or primary transform coefficients) based on a plurality of transform kernels selected from DCT type 2, DST type 7, DCT type 8 and DST type 1. Here, the coefficients The primary conversion may be referred to as the temporary conversion coefficients from the converter's point of view.

[91] Иными словами, когда применяется обычный способ преобразования, коэффициенты преобразования могут генерироваться путем применения преобразования из пространственной области в частотную область для остаточного сигнала (или остаточного блока) на основе DCT типа 2. В отличие от этого, когда применяется множественное основное преобразование, коэффициенты преобразования (или коэффициенты первичного преобразования) могут генерироваться путем применения преобразования из пространственной области в частотную область для остаточного сигнала (или остаточного блока) на основе DCT типа 2, DST типа 7, DCT типа 8 и/или DST типа 1. Здесь, DCT типа 2, DST типа 7, DCT типа 8 и DST типа 1 могут называться типом преобразования, ядром преобразования или основой (базой) преобразования. Эти типы преобразования DCT/DST могут определяться на основе базисных функций.[91] In other words, when a conventional transform method is applied, transform coefficients can be generated by applying a spatial domain to frequency domain transform to a residual signal (or residual block) based on DCT type 2. In contrast, when a multiple fundamental transform is applied, transform coefficients (or primary transform coefficients) can be generated by applying a spatial domain to frequency domain transform to the residual signal (or residual block) based on DCT type 2, DST type 7, DCT type 8 and/or DST type 1. Here, DCT Type 2, DST Type 7, DCT Type 8, and DST Type 1 may be called a transformation type, transformation core, or transformation basis. These DCT/DST transformation types can be determined based on basis functions.

[92] Когда выполняется множественное основное преобразование, ядро вертикального преобразования и ядро горизонтального преобразования для целевого блока может быть выбрано из ядер преобразования, вертикальное преобразование может выполняться на целевом блоке на основе ядра вертикального преобразования, и горизонтальное преобразование может выполняться на целевом блоке на основе ядра горизонтального преобразования. Здесь, горизонтальное преобразование может указывать преобразование на горизонтальных компонентах целевого блока, и вертикальное преобразование может указывать преобразование на вертикальных компонентах целевого блока. Ядро вертикального преобразования/ядро горизонтального преобразования может адаптивно определяться на основе режима предсказания и/или индекса преобразования для целевого блока (CU или подблока), включающего в себя остаточный блок.[92] When multiple core transformation is performed, a vertical transformation kernel and a horizontal transformation kernel for the target block can be selected from the transformation kernels, a vertical transformation can be performed on the target block based on the vertical transformation kernel, and a horizontal transformation can be performed on the target block based on the kernel horizontal transformation. Here, a horizontal transform may indicate a transform on the horizontal components of the target block, and a vertical transform may indicate a transform on the vertical components of the target block. The vertical transform kernel/horizontal transform kernel may be adaptively determined based on the prediction mode and/or transform index for the target block (CU or subblock) including the residual block.

[93] Кроме того, в соответствии с примером, если первичное преобразование выполняется путем применения MTS, отношение отображения для ядер преобразования может быть установлено путем установки специальных базисных функций в предопределенные значения и комбинирования базисных функций для применения в вертикальном преобразовании или горизонтальном преобразовании. Например, когда ядро горизонтального преобразования выражено как trTypeHor и ядро преобразования вертикального направления выражено как trTypeVer, значение 0 для trTypeHor или trTypeVer может быть установлено в DCT2, значение 1 для trTypeHor или trTypeVer может быть установлено в DST7, и значение 2 для trTypeHor или trTypeVer может быть установлено в DCT8.[93] In addition, according to the example, if the primary transformation is performed by applying MTS, the mapping relation for the transformation kernels can be set by setting special basis functions to predefined values and combining the basis functions for use in the vertical transformation or horizontal transformation. For example, when the horizontal transformation kernel is expressed as trTypeHor and the vertical direction transformation kernel is expressed as trTypeVer, the value 0 for trTypeHor or trTypeVer can be set to DCT2, the value 1 for trTypeHor or trTypeVer can be set to DST7, and the value 2 for trTypeHor or trTypeVer can be installed in DCT8.

[94] В этом случае, информация индекса MTS может кодироваться и сигнализироваться на устройство декодирования, чтобы указывать любой один из множества наборов ядер преобразования. Например, индекс MTS 0 может указывать, что значения как trTypeHor, так и trTypeVer равны 0, индекс MTS 1 может указывать, что значения как trTypeHor, так и trTypeVer равны 1, индекс MTS 2 может указывать, что значение trTypeHor равно 2 и значение trTypeVer равно 1, индекс MTS 3 может указывать, что значение trTypeHor равно 1 и значение trTypeVer равно 2, и индекс MTS 4 может указывать, что значения как trTypeHor, так и trTypeVer равны 2.[94] In this case, the MTS index information may be encoded and signaled to the decoder to indicate any one of a plurality of sets of transform cores. For example, MTS index 0 may indicate that both trTypeHor and trTypeVer are 0, MTS 1 may indicate that both trTypeHor and trTypeVer are 1, MTS index 2 may indicate that trTypeHor is 2 and trTypeVer is 1, MTS index 3 may indicate that trTypeHor is 1 and trTypeVer is 2, and MTS index 4 may indicate that both trTypeHor and trTypeVer are 2.

[95] В одном примере, наборы ядер преобразования в соответствии с информацией индекса MTS показаны в следующей таблице.[95] In one example, sets of transformation kernels according to MTS index information are shown in the following table.

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

[97] Преобразователь может выводить модифицированные коэффициенты (вторичного) преобразования путем выполнения вторичного преобразования на основе коэффициентов (первичного) преобразования (S320). Первичное преобразование является преобразованием из пространственной области в частотную область, и вторичное преобразование относится к преобразованию в более сжатое представление с использованием корреляции, существующей между коэффициентами (первичного) преобразования. Вторичное преобразование моет включать в себя неразделимое преобразование. В этом случае, вторичное преобразование может называться неразделимым вторичным преобразованием (NSST) или зависимым от режима неразделимым вторичным преобразованием (MDNSST). Неразделимое вторичное преобразование может представлять преобразование, которое генерирует модифицированные коэффициенты преобразования (или коэффициенты вторичного преобразования) для остаточного сигнала путем вторичного преобразования, на основе матрицы неразделимого преобразования, коэффициентов (первичного) преобразования, выведенных посредством первичного преобразования. При этом вертикальное преобразование и горизонтальное преобразование не могут применяться отдельно (или горизонтальное и вертикальное преобразования не могут применяться независимо) к коэффициентам (первичного) преобразования, но преобразования могут применяться одновременно на основе матрицы неразделимого преобразования. Иными словами, неразделимое вторичное преобразование может представлять способ преобразования, в котором вертикальные и горизонтальные компоненты коэффициентов (первичного) преобразования не разделяются, и например, двумерные сигналы (коэффициенты преобразования) переупорядочиваются в одномерный сигнал с некоторым определенным направлением (например, направление "сначала по строке" или направление "сначала по столбцу"), и затем модифицированные коэффициенты преобразования (или коэффициенты вторичного преобразования) генерируются на основе матрицы неразделимого преобразования. Например, в соответствии с порядком сначала по строке, блоки M×N располагаются в линию в порядке первой строки, второй строки, … и N-ой строки. В соответствии с порядком сначала по столбцу, блоки M×N располагаются в линию в порядке первого столбца, второго столбца, … и N-го столбца. Неразделимое вторичное преобразование может применяться к верхней-левой области блока, сконфигурированного с коэффициентами (первичного) преобразования (далее, может упоминаться как блок коэффициентов преобразования). Например, если ширина (W) и высота (H) блока коэффициентов преобразования равны или больше, что чем 8, 8×8 неразделимое вторичное преобразование 8×8 может применяться к верхней-левой области 8×8 блока коэффициентов преобразования. Кроме того, если ширина (W) и высота (H) блока коэффициентов преобразования равны или больше, чем 4, и ширина (W) или высота (H) блока коэффициентов преобразования меньше, чем 8, то неразделимое вторичное преобразование 4×4 может применяться к верхней-левой области min(8,W) × min(8,H) блока коэффициентов преобразования. Однако вариант осуществления не ограничен этим, и например, даже если одно из условий, что ширина (W) или высота (H) блока коэффициентов преобразования равна или больше, чем 4, удовлетворяется, то неразделимое вторичное преобразование 4×4 может применяться к верхней-левой области min(8,W) × min(8,H) блока коэффициентов преобразования.[97] The converter can output modified (secondary) conversion coefficients by performing secondary conversion based on the (primary) conversion coefficients (S320). The primary transform is a conversion from the spatial domain to the frequency domain, and the secondary transform refers to the conversion to a more compressed representation using the correlation existing between the (primary) transform coefficients. A secondary transformation may include an inseparable transformation. In this case, the secondary transform may be called a non-separable secondary transform (NSST) or a mode-dependent non-separable secondary transform (MDNSST). The inseparable secondary transform may be a transform that generates modified transform coefficients (or secondary transform coefficients) for the residual signal by a secondary transform, based on the inseparable transform matrix of the (primary) transform coefficients derived by the primary transform. However, vertical transformation and horizontal transformation cannot be applied separately (or horizontal and vertical transformations cannot be applied independently) to the (primary) transformation coefficients, but transformations can be applied simultaneously based on the inseparable transformation matrix. In other words, an inseparable secondary transform may represent a transform method in which the vertical and horizontal components of the (primary) transform coefficients are not separated, and, for example, the two-dimensional signals (transform coefficients) are reordered into a one-dimensional signal with some specific direction (for example, a row-first direction " or column-first direction"), and then modified transform coefficients (or secondary transform coefficients) are generated based on the inseparable transform matrix. For example, according to row first order, M×N blocks are arranged in a line in the order of first row, second row, ... and Nth row. According to column first order, M×N blocks are arranged in a line in the order of first column, second column, ... and Nth column. An inseparable secondary transform may be applied to the top-left region of a block configured with (primary) transform coefficients (hereinafter may be referred to as a transform coefficient block). For example, if the width (W) and height (H) of the transform coefficient block are equal to or greater than 8, an 8×8 inseparable secondary 8×8 transform can be applied to the top-left 8×8 region of the transform coefficient block. Additionally, if the width (W) and height (H) of the transform coefficient block are equal to or greater than 4, and the width (W) or height (H) of the transform coefficient block is less than 8, then an inseparable 4x4 secondary transform can be applied to the top-left region min(8,W) × min(8,H) of the transform coefficient block. However, the embodiment is not limited to this, and for example, even if one of the conditions that the width (W) or height (H) of the transform coefficient block is equal to or greater than 4 is satisfied, then an inseparable 4×4 secondary transform can be applied to the upper- left area min(8,W) × min(8,H) of the block of transformation coefficients.

[98] Конкретно, например, если используется входной блок 4×4, то неразделимое вторичное преобразование может выполняться следующим образом.[98] Specifically, for example, if a 4x4 input block is used, then the non-separable secondary transform can be performed as follows.

[99] Входной блок X 4×4 может быть представлен следующим образом.[99] The X 4x4 input block can be represented as follows.

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

[101] Если X представлен в форме вектора, то вектор может быть представлен, как указано ниже.[101] If X is represented in vector form, then the vector can be presented as below.

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

[103] В Уравнении 2, вектор является одномерным вектором, полученным переупорядочением двумерного блока X в Уравнении 1 в соответствии с порядком сначала по строке.[103] In Equation 2, the vector is the one-dimensional vector obtained by reordering the two-dimensional block X in Equation 1 according to row-first order.

[104] В этом случае, вторичное неразделимое преобразование может вычисляться, как указано ниже.[104] In this case, the secondary inseparable transform can be calculated as follows.

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

[106] В этом уравнении, представляет вектор коэффициентов преобразования, и T представляет матрицу 16×16 (неразделимого) преобразования.[106] In this equation, represents a vector of transform coefficients, and T represents a 16x16 (non-separable) transform matrix.

[107] Посредством приведенного выше Уравнения 3, можно вывести вектор 16×1 коэффициентов преобразования , и может быть переупорядочен в блок 4×4 с помощью порядка сканирования (горизонтальное, вертикальное, диагональное и т.п.). Однако вышеописанное вычисление является примером, и может использоваться преобразование гиперкуба Гивенса (HyGT) или тому подобное для вычисления неразделимого вторичного преобразования или для уменьшения вычислительной сложности неразделимого вторичного преобразования.[107] Through the above Equation 3, a 16×1 vector of transform coefficients can be derived , And can be rearranged into a 4x4 block using scan order (horizontal, vertical, diagonal, etc.). However, the above calculation is an example, and a Givens hypercube transform (HyGT) or the like may be used to calculate the inseparable secondary transform or to reduce the computational complexity of the inseparable secondary transform.

[108] Между тем, в неразделимом вторичном преобразовании, ядро преобразования (база преобразования, тип преобразования) может выбираться как зависимое от режима. В этом случае, режим может включать в себя режим интра-предсказания и/или режим интер-предсказания.[108] Meanwhile, in the non-separable secondary transformation, the transformation kernel (transformation base, transformation type) can be selected as mode-dependent. In this case, the mode may include an intra-prediction mode and/or an inter-prediction mode.

[109] Как описано выше, неразделимое вторичное преобразование может выполняться на основе преобразования 8×8 или преобразования 4×4, определенного на основе ширины (W) и высоты (H) блока коэффициентов преобразования. Преобразование 8×8 относится к преобразованию, которое применимо к области 8×8, включенной в блок коэффициентов преобразования, когда как W, так и H равны или больше, чем 8, и область 8×8 может быть верхней-левой областью 8×8 в блоке коэффициентов преобразования. Аналогично, преобразование 4×4 относится к преобразованию, которое применимо к области 4×4, включенной в блок коэффициентов преобразования, когда как W, так и H равны или больше, чем 4, и область 4×4 может быть верхней-левой областью 4×4 в блоке коэффициентов преобразования. Например, матрица 8×8 ядра преобразования может быть матрицей 64×64/16×64, и матрица 4×4 ядра преобразования может быть матрицей 16×16/8×16.[109] As described above, the non-separable secondary transform may be performed based on an 8×8 transform or a 4×4 transform determined based on the width (W) and height (H) of the transform coefficient block. An 8×8 transform refers to a transform that is applicable to an 8×8 region included in a block of transform coefficients when both W and H are equal to or greater than 8, and the 8×8 region may be a top-left 8×8 region in the block of conversion coefficients. Likewise, a 4x4 transform refers to a transform that is applicable to a 4x4 region included in a block of transform coefficients when both W and H are equal to or greater than 4, and the 4x4 region may be a top-left region of 4 ×4 in the conversion coefficient block. For example, an 8×8 matrix of a transform kernel may be a 64×64/16×64 matrix, and a 4×4 matrix of a transform kernel may be a 16×16/8×16 matrix.

[110] Здесь, чтобы выбрать зависимое от режима ядро преобразования, два неразделимых ядра вторичного преобразования на каждый набор преобразований для неразделимого вторичного преобразования могут быть сконфигурированы как для преобразования 8×8, так и преобразования 4×4, и может иметься четыре набора преобразований. То есть, четыре набора преобразований могут быть сконфигурированы для преобразования 8×8, и четыре набора преобразований могут быть сконфигурированы для преобразования 4×4. В этом случае, каждый из четырех наборов преобразований для преобразования 8×8 может включать в себя два ядра преобразования 8×8, и каждый из четырех наборов преобразований для преобразования 4×4 может включать в себя два ядра преобразования 4×4.[110] Here, to select a mode-dependent transform kernel, two inseparable secondary transform kernels per transform set for the inseparable secondary transform can be configured for both 8×8 transform and 4×4 transform, and there may be four transform sets. That is, four transform sets can be configured for an 8x8 transform, and four transform sets can be configured for a 4x4 transform. In this case, each of the four transform sets for the 8×8 transform may include two 8×8 transform kernels, and each of the four transform sets for the 4×4 transform may include two 4×4 transform kernels.

[111] Однако, поскольку размер преобразования, то есть, размер области, к которой применяется преобразование, может иметь, например, размер иной, чем 8×8 или 4×4, число наборов может составлять n, и число ядер преобразования в каждом наборе может составлять k.[111] However, since the transformation size, that is, the size of the region to which the transformation is applied, may be of a size other than 8×8 or 4×4, for example, the number of sets may be n, and the number of transformation cores in each set may be k.

[112] Набор преобразований может упоминаться как набор NSST или набор LFNST. Конкретный набор среди наборов преобразований может быть выбран, например, на основе режима интра-предсказания текущего блока (CU или подблока). Низкочастотное неразделимое преобразование (LFNST) может быть примером сокращенного неразделимого преобразования, которое будет описано далее, и представляет неразделимое преобразование для низкочастотного компонента.[112] The transform set may be referred to as the NSST set or the LFNST set. A particular set among the transformation sets may be selected, for example, based on the intra-prediction mode of the current block (CU or subblock). The Low Frequency Nonseparable Transform (LFNST) may be an example of a shortened nonseparable transform that will be described later, and represents the nonseparable transform for the low frequency component.

[113] Для ссылки, например, режим интра-предсказания может включать в себя два ненаправленных (или неугловых) режима интра-предсказания и 65 направленных (или угловых) режимов интра-предсказания. Ненаправленные режимы интра-предсказания могут включать в себя планарный режим интра-предсказания № 0 и DC режим интра-предсказания № 1, и направленные режимы интра-предсказания могут включать в себя 65 режимов интра-предсказания № 2 до 66. Однако это является примером, и этот документ может применяться, даже если число режимов интра-предсказания отличается. Между тем, в некоторых случаях, режим интра-предсказания № 67 может быть дополнительно использован, и режим интра-предсказания № 67 может представлять режим линейной модели (LM).[113] For reference, for example, an intra-prediction mode may include two non-directional (or non-angular) intra-prediction modes and 65 directional (or angular) intra-prediction modes. Non-directional intra-prediction modes may include planar intra-prediction mode No. 0 and DC intra-prediction mode No. 1, and directional intra-prediction modes may include 65 intra-prediction modes No. 2 to 66. However, this is an example and this document can be applied even if the number of intra-prediction modes differs. Meanwhile, in some cases, the intra-prediction mode No. 67 can be further used, and the intra-prediction mode No. 67 can represent the linear model (LM) mode.

[114] Фиг. 4 показывает в качестве примера интра-направленные режимы 65 направлений предсказания.[114] FIG. 4 shows as an example the intra-directional modes of 65 prediction directions.

[115] Со ссылкой на фиг. 4, на основе режима интра-предсказания 34, имеющего диагональное влево-вверх направление предсказания, режимы интра-предсказания могут быть разделены на режимы интра-предсказания, имеющие горизонтальную направленность, и режимы интра-предсказания, имеющие вертикальную направленность. На фиг. 4, H и V обозначают горизонтальную направленность и вертикальную направленность, соответственно, и числа от -32 до 32 указывают смещения в единицах 1/32 в дискретной позиции сетки. Эти числа могут представлять смещение для значения индекса режима. Режимы интра-предсказания от 2 до 33 имеют горизонтальную направленность, и режимы интра-предсказания от 34 до 66 имеют вертикальную направленность. Строго говоря, режим интра-предсказания 34 может рассматриваться как ни горизонтальный, ни вертикальный, но может классифицироваться как принадлежащий горизонтальной направленности при определении набора преобразований вторичного преобразования. Это объясняется тем, что входные данные транспонируются, чтобы использоваться для режима вертикального направления симметрично на основе режима 34 интра-предсказания, и режим выравнивания входных данных для горизонтального режима используется для режима 34 интра-предсказания. Транспонирование входных данных означает, что строки и столбцы двумерного блока M×N данных переключаются в N×M данные. Режим 18 интра-предсказания и режим 50 интра-предсказания могут представлять горизонтальный режим интра-предсказания и вертикальный режим интра-предсказания, соответственно, и режим 2 интра-предсказания может упоминаться как диагональный вправо-вверх режим интра-предсказания, так как режим 2 интра-предсказания имеет левый опорный пиксел и выполняет предсказание в направлении вправо-вверх. Аналогичным образом, режим 34 интра-предсказания может упоминаться как диагональный вправо-вниз режим интра-предсказания, и режим 66 интра-предсказания может упоминаться как диагональный влево-вниз режим интра-предсказания.[115] With reference to FIG. 4, based on the intra-prediction mode 34 having a left-up diagonal prediction direction, the intra-prediction modes can be divided into intra-prediction modes having a horizontal direction and intra-prediction modes having a vertical direction. In fig. 4, H and V denote horizontal directivity and vertical directivity, respectively, and the numbers -32 to 32 indicate offsets in units of 1/32 at a discrete grid position. These numbers can represent an offset for the mode index value. Intra-prediction modes 2 to 33 have a horizontal focus, and intra-prediction modes 34 to 66 have a vertical focus. Strictly speaking, the intra-prediction mode 34 may be considered to be neither horizontal nor vertical, but may be classified as being of horizontal orientation when defining the secondary transform transform set. This is because the input data is transposed to be used for the vertical direction mode symmetrically based on the intra-prediction mode 34, and the input data alignment mode for the horizontal mode is used for the intra-prediction mode 34. Transposing the input data means that the rows and columns of a two-dimensional block of M×N data are switched into N×M data. The intra-prediction mode 18 and the intra-prediction mode 50 may represent the horizontal intra-prediction mode and the vertical intra-prediction mode, respectively, and the intra-prediction mode 2 may be referred to as the diagonal right-up intra-prediction mode since the intra-prediction mode 2 -prediction has a left reference pixel and performs prediction in a right-up direction. Likewise, intra-prediction mode 34 may be referred to as a right-down diagonal intra-prediction mode, and intra-prediction mode 66 may be referred to as a left-down diagonal intra-prediction mode.

[116] В соответствии с примером, четыре набора преобразований в соответствии с режимом интра-предсказания могут отображаться, например, как показано в следующей таблице.[116] According to the example, four sets of transformations in accordance with the intra-prediction mode can be displayed, for example, as shown in the following table.

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

[118] Как показано в Таблице 2, любо один из четырех наборов преобразований, то есть, lfnstTrSetIdx, может быть отображен на любой из четырех индексов, то есть, от 0 до 3, в соответствии с режимом интра-предсказания.[118] As shown in Table 2, any one of the four sets of transformations, that is, lfnstTrSetIdx, can be mapped to any of the four indices, that is, from 0 to 3, in accordance with the intra-prediction mode.

[119] Когда определено, что конкретный набор используется для неразделимого преобразования, одно из k ядер преобразования в конкретном наборе может быть выбрано с помощью индекса неразделимого вторичного преобразования. Устройство кодирования может выводить индекс неразделимого вторичного преобразования, указывающий конкретное ядро преобразования, на основе проверки по критерию "скорость-искажение" (RD) и может сигнализировать индекс неразделимого вторичного преобразования на устройство декодирования. Устройство декодирования может выбрать одно из k ядер преобразования в конкретном наборе на основе индекса неразделимого вторичного преобразования. Например, значение 0 индекса LFNST может относиться к первому ядру неразделимого вторичного преобразования, значение 1 индекса LFNST может относиться к второму ядру неразделимого вторичного преобразования, и значение 2 индекса LFNST может относиться к третьему ядру неразделимого вторичного преобразования. Альтернативно, значение 0 индекса LFNST может указывать, что первое неразделимое вторичное преобразование не применяется к целевому блоку, и значения от 1 до 3 индекса LFNST могут указывать три ядра преобразования.[119] When it is determined that a particular set is used for an inseparable transformation, one of the k transformation kernels in the particular set can be selected using the inseparable secondary transformation index. The encoding device may output a non-separable secondary transform index indicating a particular transform kernel based on a rate-distortion (RD) test, and may signal the non-separable secondary transform index to the decoding device. The decoder may select one of the k transform kernels in a particular set based on the inseparable secondary transform index. For example, LFNST index value 0 may refer to a first non-separable secondary transform kernel, LFNST index value 1 may refer to a second non-separable secondary transform kernel, and LFNST index value 2 may refer to a third non-separable secondary transform kernel. Alternatively, a LFNST index value of 0 may indicate that the first non-separable secondary transform is not applied to the target block, and LFNST index values of 1 to 3 may indicate three transform cores.

[120] Преобразователь может выполнять неразделимое вторичное преобразование на основе выбранного ядра преобразования и может получать модифицированные коэффициенты (вторичного) преобразования. Как описано выше, модифицированные коэффициенты преобразования могут быть выведены как коэффициенты преобразования, квантованные с помощью квантователя, и могут кодироваться и сигнализироваться на устройство декодирования и передаваться на деквантователь/обратный преобразователь в устройстве кодирования.[120] The converter may perform an inseparable secondary transform based on the selected transform kernel and may obtain modified (secondary) transform coefficients. As described above, the modified transform coefficients can be output as transform coefficients quantized by a quantizer, and can be encoded and signaled to a decoding device and transmitted to a dequantizer/inverse converter in the encoding device.

[121] Между тем, как описано выше, если вторичное преобразование опущено, коэффициенты (первичного) преобразования, которые являются выходом первичного (разделимого) преобразования, могут быть выведены как коэффициенты преобразования, квантованные с помощью квантователя, как описано выше, и могут кодироваться и сигнализироваться на устройство декодирования и передаваться на деквантователь/обратный преобразователь в устройстве кодирования.[121] Meanwhile, as described above, if the secondary transform is omitted, the (primary) transform coefficients that are the output of the primary (separable) transform can be output as transform coefficients quantized by a quantizer as described above, and can be encoded and signaled to the decoder and transmitted to the dequantizer/inverter in the encoder.

[122] Обратный преобразователь может выполнять ряд процедур в обратном порядке по отношению к тому, как они выполнялись в вышеописанном преобразователе. Обратный преобразователь может принимать (деквантованные) коэффициенты преобразования и выводить коэффициенты (первичного) преобразования путем выполнения вторичного (обратного) преобразования (S350) и может получать остаточный блок (остаточные выборки) путем выполнения первичного (обратного) преобразования на коэффициентах (первичного) преобразования (S360). В этой связи, коэффициенты первичного преобразования могут называться модифицированными коэффициентами преобразования с точки зрения обратного преобразователя. Как описано выше, устройство кодирования и устройство декодирования могут генерировать восстановленный блок на основе остаточного блока и предсказанного блока и могут генерировать восстановленную картинку на основе восстановленного блока.[122] The inverse converter can perform a number of procedures in the reverse order of how they were performed in the above-described converter. The inverse converter can receive (dequantized) transform coefficients and output (primary) transform coefficients by performing a secondary (inverse) transform (S350) and can obtain a residual block (residual samples) by performing a primary (inverse) transform on the (primary) transform coefficients (S360 ). In this regard, the primary conversion coefficients may be called modified conversion coefficients from the point of view of the inverse converter. As described above, the encoding device and the decoding device can generate a reconstructed block based on the residual block and the predicted block, and can generate a reconstructed picture based on the reconstructed block.

[123] Устройство декодирования может, кроме того, включать в себя определитель применения вторичного обратного преобразования (или элемент для определения, следует ли применять вторичное обратное преобразование) и определитель вторичного обратного преобразования (или элемент для определения вторичного обратного преобразования). Определитель применения вторичного обратного преобразования может определять, следует ли применять вторичное обратное преобразование. Например, вторичное обратное преобразование может представлять собой NSST, RST или LFNST, и определитель применения вторичного обратного преобразования может определять, следует ли применять вторичное обратное преобразование на основе флага вторичного преобразования, полученного путем анализа битового потока. В другом примере, определитель применения вторичного обратного преобразования может определять, следует ли применять вторичное обратное преобразование, на основе коэффициента преобразования остаточного блока.[123] The decoding apparatus may further include a secondary inverse transform application determiner (or an element for determining whether the secondary inverse transform should be applied) and a secondary inverse transform determination (or an element for determining whether the secondary inverse transform is applied). The secondary inverse transform application determiner may determine whether the secondary inverse transform should be applied. For example, the secondary inverse transform may be NSST, RST, or LFNST, and the secondary inverse transform application determiner may determine whether to apply the secondary inverse transform based on the secondary transform flag obtained by analyzing the bitstream. In another example, the secondary inverse transform application determiner may determine whether to apply the secondary inverse transform based on the transform coefficient of the residual block.

[124] Определитель вторичного обратного преобразования может определять вторичное обратное преобразование. В этом случае, определитель вторичного обратного преобразования может определять вторичное обратный преобразование, применяемое к текущему блоку, на основе набора преобразований LFNST (NSST или RST), специфицированного в соответствии с режимом интра-предсказания. В варианте осуществления, способ определения вторичного преобразования может определяться в зависимости от способа определения первичного преобразования. Различные комбинации первичных преобразований и вторичных преобразований могут определяться в соответствии с режимом интра-предсказания. Кроме того, в примере, определитель вторичного обратного преобразования может определять область, к которой применяется вторичное обратный преобразование, на основе размера текущего блока.[124] The secondary inverse transform determinant may determine the secondary inverse transform. In this case, the secondary inverse transform determiner may determine the secondary inverse transform applied to the current block based on the LFNST transform set (NSST or RST) specified in accordance with the intra-prediction mode. In an embodiment, the method for determining the secondary transformation may be determined depending on the method for determining the primary transformation. Various combinations of primary transforms and secondary transforms may be determined in accordance with the intra-prediction mode. Additionally, in the example, the secondary inverse transform determiner may determine the region to which the secondary inverse transform is applied based on the size of the current block.

[125] Между тем, как описано выше, если вторичное (обратное) преобразование опущено, (деквантованные) коэффициенты преобразования могут приниматься, первичное (разделимое) обратное преобразование может выполняться, и может быть получен остаточный блок (остаточные выборки). Как описано выше, устройство кодирования и устройство декодирования могут генерировать восстановленный блок на основе остаточного блока и предсказанного блока и могут генерировать восстановленную картинку на основе восстановленного блока.[125] Meanwhile, as described above, if the secondary (inverse) transform is omitted, the (dequantized) transform coefficients can be received, the primary (separable) inverse transform can be performed, and the residual block (residual samples) can be obtained. As described above, the encoding device and the decoding device can generate a reconstructed block based on the residual block and the predicted block, and can generate a reconstructed picture based on the reconstructed block.

[126] Между тем, в настоящем раскрытии, сокращенное вторичное преобразование (RST), в котором размер матрицы (ядра) преобразования уменьшен, может применяться в концепции NSST, чтобы уменьшить объем вычислений и памяти, требуемый для неразделимого вторичного преобразование.[126] Meanwhile, in the present disclosure, reduced secondary transform (RST), in which the size of the transformation matrix (kernel) is reduced, can be applied in the NSST concept to reduce the amount of computation and memory required for the non-separable secondary transform.

[127] Между тем, ядро преобразования, матрица преобразования и коэффициент, образующий матрицу ядра преобразования, то есть, коэффициент ядра или коэффициент матрицы, описанные в настоящем раскрытии, могут быть выражены в 8 битах. Это может быть условием для реализации в устройстве декодирования и устройстве кодирования и может уменьшить объем памяти, требуемой для хранения ядра преобразования со снижением производительности, которое может рационально допускаться, по сравнению с существующими случаями 9 битов или 10 битов. Дополнительно, выражение матрицы ядра в 8 битах может позволить использовать небольшой умножитель и может быть более подходящим для инструкций архитектуры одного потока инструкций и множества потоков данных (SIMD), используемых для оптимальной реализации программного обеспечения.[127] Meanwhile, the transformation kernel, the transformation matrix, and the coefficient forming the transformation kernel matrix, that is, the kernel coefficient or the matrix coefficient described in the present disclosure, can be expressed in 8 bits. This may be a requirement for implementation in the decoding apparatus and the encoding apparatus, and may reduce the amount of memory required to store the conversion kernel, with a performance penalty that may be rationally tolerated, compared to the existing 9-bit or 10-bit cases. Additionally, expressing the kernel matrix in 8 bits may allow the use of a small multiplier and may be more suitable for Single Instruction Multiple Data (SIMD) architecture instructions used for optimal software implementation.

[128] В настоящей спецификации, термин “RST” может означать преобразование, которое выполняется на остаточных выборках для целевого блока на основе матрицы преобразования, размер которой уменьшен в соответствии с коэффициентом уменьшения. В случае выполнения сокращенного преобразования, объем вычислений, требуемых для преобразования, может быть уменьшен, вследствие сокращения в размере матрицы преобразования. То есть, RST может использоваться для решения проблемы вычислительной сложности, проявляющейся при неразделимом преобразовании или преобразовании блока большого размера.[128] In this specification, the term “RST” may mean a transform that is performed on the residual samples for a target block based on a transform matrix that is reduced in size according to a reduction factor. In the case of performing a reduced transformation, the amount of computation required for the transformation can be reduced due to the reduction in the size of the transformation matrix. That is, RST can be used to solve the problem of computational complexity encountered in non-separable transformation or large block size transformation.

[129] RST может определяться различными терминами, такими как сокращенное преобразование, сокращенное вторичное преобразование, преобразование сокращения, упрощенное преобразование, простое преобразование и тому подобное, и наименование RST не ограничивается перечисленными примерами. Альтернативно, поскольку RST в основном выполняется в низкочастотной области, включающей ненулевой коэффициент в блоке преобразования, оно может упоминаться как низкочастотное неразделимое преобразование (LFNST). Индекс преобразования может упоминаться как индекс LFNST.[129] RST may be defined by various terms such as shorthand transform, shortened secondary transform, shorthand transform, simplified transform, simple transform, and the like, and the name RST is not limited to these examples. Alternatively, since RST is primarily performed in the low-frequency region involving a non-zero coefficient in the transform block, it may be referred to as low-frequency non-separable transform (LFNST). The transformation index may be referred to as the LFNST index.

[130] Между тем, когда вторичное обратное преобразование выполняется на основе RST, обратный преобразователь 135 устройства 100 кодирования и обратный преобразователь 222 устройства 200 декодирования могут включать в себя обратный сокращенный вторичный преобразователь, который выводит модифицированные коэффициенты преобразования на основе обратного RST коэффициентов преобразования, и обратный первичный преобразователь, который выводит остаточные выборки для целевого блока на основе обратного первичного преобразования модифицированных коэффициентов преобразования. Обратное первичное преобразование относится к обратному преобразованию первичного преобразования, применяемого к остатку. В настоящем раскрытии, выведение коэффициента преобразования на основе преобразования может относиться к выведению коэффициента преобразования путем применения преобразования.[130] Meanwhile, when the secondary inverse transform is performed based on the RST, the inverse transformer 135 of the encoding device 100 and the inverse transformer 222 of the decoding device 200 may include an inverse shortened secondary transformer that outputs modified transform coefficients based on the inverse RST transform coefficients, and an inverse primary converter that outputs residual samples for the target block based on the inverse primary transform of the modified transform coefficients. The inverse of the primary transformation refers to the inverse of the primary transformation applied to the remainder. In the present disclosure, deriving a transformation coefficient based on a transformation may refer to deriving a transformation coefficient by applying a transformation.

[131] Фиг. 5 является диаграммой, иллюстрирующей RST в соответствии с вариантом осуществления настоящего раскрытия.[131] FIG. 5 is a diagram illustrating an RST in accordance with an embodiment of the present disclosure.

[132] В настоящем раскрытии, "целевой блок" может относиться к текущему блоку, подлежащему кодированию, остаточному блоку или блоку преобразования.[132] In the present disclosure, a "target block" may refer to a current block to be encoded, a residual block, or a transform block.

[133] В RST в соответствии с примером, N-мерный вектор может быть отображен на R-мерный вектор, расположенный в другом пространстве, так что матрица сокращенного преобразования может определяться, где R меньше, чем N. N может означать квадрат длины стороны блока, к которому применяется преобразование, или общее число коэффициентов преобразования, соответствующих блоку, к которому применяется преобразование, и сокращенный коэффициент может означать значение R/N. Сокращенный фактор (коэффициент) может упоминаться как сокращенный коэффициент, коэффициент сокращения, упрощенный коэффициент, простой коэффициент или определяться различными другими терминами. Между тем, R может упоминаться как сокращенный коэффициент, но в зависимости от обстоятельств, сокращенный коэффициент может означать R. Кроме того, в зависимости от обстоятельств, сокращенный коэффициент может означать значение N/R.[133] In RST, according to the example, an N-dimensional vector can be mapped to an R-dimensional vector located in another space, so that the reduced transformation matrix can be defined where R is less than N. N can mean the square of the side length of the block , to which the transformation is applied, or the total number of transformation coefficients corresponding to the block to which the transformation is applied, and the shortened coefficient may indicate the value R/N. A shortened factor (ratio) may be referred to as a shortened factor, a shortened factor, a simplified factor, a simple factor, or defined by various other terms. Meanwhile, R may be referred to as a short ratio, but depending on the circumstances, the short ratio may mean R. Moreover, depending on the circumstances, the short ratio may mean N/R value.

[134] В примере, сокращенный фактор или сокращенный коэффициент может сигнализироваться посредством битового потока, но пример не ограничен этим. Например, предопределенное значение для сокращенного фактора или сокращенного коэффициента может быть сохранено в каждом из устройства 100 кодирования и устройства 200 декодирования, и в этом случае, сокращенный фактор или сокращенный коэффициент может не сигнализироваться отдельно.[134] In an example, a shortened factor or shortened coefficient may be signaled by a bit stream, but the example is not limited to this. For example, a predetermined value for a shortened factor or shortened coefficient may be stored in each of the encoding device 100 and decoding device 200, in which case, the shortened factor or shortened coefficient may not be signaled separately.

[135] Размер матрицы сокращенного преобразования в соответствии с примером может быть R×N меньше, чем N×N, размер матрицы обычного преобразования, и может быть определен как в Уравнении 4 ниже.[135] The size of the reduced transform matrix according to the example may be R×N smaller than the N×N size of the normal transform matrix, and may be determined as in Equation 4 below.

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

[137] Матрица T в блоке сокращенного преобразования, показанном на фиг. 5(a) может означать матрицу TR×N Уравнения 4. Как показано на фиг. 5(a), когда матрица TR×N сокращенного преобразования умножается на остаточные выборки для целевого блока, могут быть выведены коэффициенты преобразования для целевого блока.[137] The matrix T in the reduced transform block shown in FIG. 5(a) may mean the T R×N matrix of Equation 4. As shown in FIG. 5(a), when the reduced transform matrix T R×N is multiplied by the residual samples for the target block, the transform coefficients for the target block can be output.

[138] В примере, если размер блока, к которому применяется преобразование, составляет 8×8 и R=16 (т.е. R/N=16/64=1/4), то RST в соответствии с фиг. 5(a) может быть выражено как матричная операция, как показано в Уравнение 5 ниже. В этом случае, память и вычисление умножения могут быть сокращены до примерно 1/4 посредством сокращенного коэффициента.[138] In the example, if the block size to which the transformation is applied is 8×8 and R=16 (ie, R/N=16/64=1/4), then RST according to FIG. 5(a) can be expressed as a matrix operation as shown in Equation 5 below. In this case, the memory and multiplication calculation can be reduced to about 1/4 by means of a shortening factor.

[139] В настоящем раскрытии, матричная операция может пониматься как операция умножения вектор-столбца на матрицу, расположенную слева от вектор-столбца, чтобы получить вектор-столбец.[139] In the present disclosure, a matrix operation can be understood as the operation of multiplying a column vector by a matrix located to the left of the column vector to obtain a column vector.

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

[141] В Уравнении 5, r1 до r64 могут представлять остаточные выборки для целевого блока и могут быть конкретно коэффициентами преобразования, сгенерированными путем применения первичного преобразования. В результате вычисления Уравнения 5, могут быть выведены коэффициенты преобразования ci для целевого блока, и процесс выведения ci может быть таким, как в Уравнении 6.[141] In Equation 5, r 1 to r 64 may represent residual samples for the target block and may specifically be transform coefficients generated by applying the primary transform. As a result of computing Equation 5, the conversion coefficients ci for the target block can be derived, and the process of deriving ci can be as in Equation 6.

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

[143] В результате вычисления Уравнения 6, могут быть выведены коэффициенты преобразования c1 до cR для целевого блока. То есть, когда R=16, могут быть выведены коэффициенты преобразования c1 до c16 для целевого блока. Если, вместо RST, применяется регулярное преобразование, и матрица преобразования размером 64×64 (N×N) умножается на остаточные выборки размером 64×1 (N×1), то только 16 (R) коэффициентов преобразования выводятся для целевого блока, поскольку применялось RST, хотя 64 (N) коэффициентов преобразования выведены для целевого блока. Поскольку общее число коэффициентов преобразования для целевого блока сокращается от N до R, объем данных, передаваемых устройством 100 кодирования на устройство 200 декодирования, уменьшается, так что эффективность передачи между устройством 100 кодирования и устройством 200 декодирования может быть повышена.[143] As a result of calculating Equation 6, the conversion coefficients from 1 to c R for the target block can be derived. That is, when R=16, the conversion coefficients from 1 to c 16 for the target block can be derived. If, instead of an RST, a regular transform is applied and a 64x64 (NxN) transformation matrix is multiplied by the 64x1 (Nx1) residual samples, then only 16 (R) transform coefficients are output for the target block as applied RST, although 64(N) transform coefficients are derived for the target block. Since the total number of transform coefficients for the target block is reduced from N to R, the amount of data transmitted by the encoding device 100 to the decoding device 200 is reduced, so that the transmission efficiency between the encoding device 100 and the decoding device 200 can be improved.

[144] При рассмотрении с точки зрения размера матрицы преобразования, размер матрицы регулярного преобразования составляет 64×64 (N×N), но размер матрицы сокращенного преобразования уменьшается до 16×64 (R×N), поэтому использование памяти в случае выполнения RST может быть сокращено в отношении R/N по сравнению со случаем выполнения регулярного преобразования. Кроме того, по сравнению с числом вычислений умножения N×N в случае использования матрицы регулярного преобразования, использование матрицы сокращенного преобразования может уменьшить число вычислений умножения в отношении R/N (R×N).[144] When considered in terms of the size of the transformation matrix, the size of the regular transformation matrix is 64×64 (N×N), but the size of the reduced transformation matrix is reduced to 16×64 (R×N), so the memory usage in case of performing RST may be reduced in R/N ratio compared to the case of performing a regular conversion. In addition, compared with the number of N×N multiplication calculations in the case of using a regular transformation matrix, using a reduced transformation matrix can reduce the number of multiplication calculations in the ratio R/N (R×N).

[145] В примере, преобразователь 132 устройства 100 кодирования может выводить коэффициенты преобразования для целевого блока путем выполнения первичного преобразования и основанного на RST вторичного преобразования на остаточных выборках для целевого блока. Эти коэффициенты преобразования могут передаваться на обратный преобразователь устройства 200 декодирования, и обратный преобразователь 222 устройства 200 декодирования может выводить модифицированные коэффициенты преобразования на основе обратного сокращенного вторичного преобразования (RST) для коэффициентов преобразования и может выводить остаточные выборки для целевого блока на основе обратного первичного преобразования для модифицированных коэффициентов преобразования.[145] In an example, transformer 132 of encoder 100 may output transform coefficients for a target block by performing a primary transform and an RST-based secondary transform on the residual samples for the target block. These transform coefficients may be transmitted to the inverse transformer of the decoding apparatus 200, and the inverse transformer 222 of the decoding apparatus 200 may output modified transform coefficients based on the inverse reduced secondary transform (RST) for the transform coefficients, and may output residual samples for the target block based on the inverse primary transform for modified conversion factors.

[146] Размер матрицы TR×N обратного RST в соответствии с примером на N×R меньше, чем размер N×N матрицы регулярного обратного преобразования, и имеет отношение транспозиции с матрицей TR×N сокращенного преобразования, показанной в уравнении 4.[146] The size of the inverse RST matrix T R×N according to the example is N×R smaller than the N×N size of the regular inverse transform matrix, and has a transposition relationship with the reduced transform matrix T R×N shown in Equation 4.

[147] Матрица Tt в блоке сокращенного обратного преобразования, показанном на фиг. 5(b), может означать матрицу TR×N Т обратного RST (надстрочный индекс T означает транспозицию). Когда матрица TR×N Т обратного RST умножается на коэффициенты преобразования для целевого блока, как показано на фиг. 5(b), могут быть выведены модифицированные коэффициенты преобразования для целевого блока или остаточные выборки для текущего блока. Матрица TR×N Т обратного RST может быть выражена как (TR×N Т)NxR.[147] The matrix T t in the reduced inverse transform block shown in FIG. 5(b) may denote the matrix T R×N T of the inverse RST (the superscript T denotes transposition). When the inverse RST matrix T R×N T is multiplied by the transform coefficients for the target block, as shown in FIG. 5(b), modified transform coefficients for the target block or residual samples for the current block can be output. The inverse RST matrix T R×N T can be expressed as (T R×N T ) NxR .

[148] Более конкретно, когда обратное RST применяется как вторичное обратное преобразование, модифицированные коэффициенты преобразования для целевого блока могут быть выведены, когда матрица TR×N Т обратного RST умножается на коэффициенты преобразования для целевого блока. Между тем, обратное RST может применяться как обратное первичное преобразование, и в этом случае, могут быть выведены остаточные выборки для целевого блока, когда матрица TR×N Т обратного RST умножается на коэффициенты преобразования для целевого блока.[148] More specifically, when the inverse RST is applied as a secondary inverse transform, modified transform coefficients for the target block can be output when the inverse RST matrix T R×N T is multiplied by the transform coefficients for the target block. Meanwhile, the inverse RST can be applied as an inverse primary transform, in which case, residual samples for the target block can be output when the inverse RST matrix T R×N T is multiplied by the transform coefficients for the target block.

[149] В примере, если размер блока, к которому применяется обратное преобразование, составляет 8×8 и R=16 (т.е., R/N=16/64= 1/4), то RST в соответствии с фиг. 5(b) может быть выражено как матричная операция, как показано в Уравнение 7 ниже.[149] In the example, if the block size to which the inverse transform is applied is 8×8 and R=16 (ie, R/N=16/64=1/4), then RST according to FIG. 5(b) can be expressed as a matrix operation as shown in Equation 7 below.

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

[151] В Уравнении 7, c1 до c16 могут представлять коэффициенты преобразования для целевого блока. В результате вычисления Уравнения 7, могут быть выведены ri, представляющие модифицированные коэффициенты преобразования для целевого блока или остаточные выборки для целевого блока, и процесс выведения ri может быть таким, как в Уравнении 8.[151] In Equation 7, 1 to 16 may represent conversion coefficients for the target block. As a result of computing Equation 7, r i representing modified transform coefficients for the target block or residual samples for the target block can be output, and the derivation process for r i can be as in Equation 8.

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

[153] В результате вычисления Уравнения 8, могут быть выведены r1 до rN, представляющие модифицированные коэффициенты преобразования для целевого блока или остаточные выборки для целевого блока. При рассмотрении с точки зрения размера матрицы обратного преобразования, размер матрицы регулярного обратного преобразования составляет 64×64 (N×N), но размер матрицы сокращенного обратного преобразования уменьшается до 64×16 (R×N), так что использование памяти в случае выполнения обратного RST может быть уменьшено в отношении R/N по сравнению со случаем выполнения регулярного обратного преобразования. Дополнительно, по сравнению с числом вычислений умножения N×N в случае использования матрицы регулярного обратного преобразования, использование матрицы сокращенного обратного преобразования может уменьшить число вычислений умножения в отношении R/N (N×R).[153] As a result of computing Equation 8, r 1 to r N representing the modified transform coefficients for the target block or the residual samples for the target block can be output. When considered in terms of the size of the inverse transform matrix, the size of the regular inverse transform matrix is 64×64 (N×N), but the size of the reduced inverse transform matrix is reduced to 64×16 (R×N), so that the memory usage in case of performing the inverse The RST can be reduced in the R/N ratio compared to the case of performing a regular inverse transform. Additionally, compared with the number of N×N multiplication calculations in the case of using a regular inverse transform matrix, using a reduced inverse transform matrix can reduce the number of multiplication calculations in the ratio R/N (N×R).

[154] Конфигурация набора преобразований, показанная в Таблице 2, может применяться к 8×8 RST. То есть, 8×8 RST могут применяться в соответствии с набором преобразований в Таблице 2. Поскольку один набор преобразований включает в себя два или три преобразования (ядра) в соответствии с режимом интра-предсказания, он может быть сконфигурирован для выбора одного из до четырех преобразований, включая случай, когда вторичное преобразование не применяется. В преобразовании, где вторичное преобразование не применяется, это может рассматриваться как применение единичной матрицы. Предполагая, что индексы 0, 1, 2 и 3 соответственно назначены четырем преобразованиям (например, индекс 0 может быть выделен для случая, когда применяется единичная матрица, то есть, случая, когда вторичное преобразование не применяется), индекс преобразование или индекс lfnst в качестве синтаксического элемента может сигнализироваться для каждого блока коэффициентов преобразования, тем самым указывая применяемое преобразование. То есть, для верхнего-левого блока 8×8, с помощью индекса преобразования, можно указать 8×8 RST в конфигурации RST или указать 8×8 lfnst, когда применяется LFNST. 8×8 lfnst и 8×8 RST относятся к преобразованиям, применимым к области 8×8, включенной в блок коэффициентов преобразования, когда W и H целевого блока, подлежащего преобразованию, равны или больше, чем 8, и область 8×8 может быть верхней-левой областью 8×8 в блоке коэффициентов преобразования. Аналогично, 4×4 lfnst и 4×4 RST относятся к преобразованиям, применимым к области 4×4, включенной в блок коэффициентов преобразования, когда W и H целевого блока равны или больше, чем 4, и область 4×4 может быть верхней-левой областью 4×4 в блоке коэффициентов преобразования.[154] The transform set configuration shown in Table 2 can be applied to 8x8 RST. That is, 8x8 RST can be applied according to the transform set in Table 2. Since one transform set includes two or three transforms (kernels) according to the intra-prediction mode, it can be configured to select one of up to four transformations, including the case where a secondary transformation is not applied. In a transformation where a secondary transformation is not applied, this can be considered as applying the identity matrix. Assuming that indexes 0, 1, 2 and 3 are respectively assigned to the four transforms (for example, index 0 could be allocated for the case where the identity matrix is applied, that is, the case where the secondary transform is not applied), the index transform or index lfnst as syntax element may be signaled for each block of transform coefficients, thereby indicating the transform applied. That is, for a top-left 8x8 block, using the transform index, you can specify 8x8 RST in the RST configuration or specify 8x8 lfnst when LFNST is applied. 8×8 lfnst and 8×8 RST refer to transformations applicable to an 8×8 area included in a transform coefficient block when the W and H of the target block to be transformed are equal to or greater than 8, and the 8×8 area can be top-left 8x8 region in the transform coefficient block. Similarly, 4x4 lfnst and 4x4 RST refer to transformations applicable to a 4x4 region included in a block of transform coefficients when the W and H of the target block are equal to or greater than 4, and the 4x4 region may be top- left 4x4 region in the transform coefficient block.

[155] В соответствии с вариантом осуществления настоящего раскрытия, для преобразования в процессе кодирования, только 48 частей данных могут быть выбраны, и матрица максимум 16×48 ядра преобразования может применяться к ним, вместо применения матрицы 16×64 ядра преобразования к 64 частям данных, образующих область 8×8. Здесь, "максимум" означает, что m имеет максимальное значение 16 в матрице m×48 ядра преобразования для генерации m коэффициентов. То есть, когда RST выполняется путем применения матрицы m×48 ядра преобразования (m≤16) к области 8×8, вводятся 48 частей данных, и генерируются m коэффициентов. Когда m равно 16, вводятся 48 частей данных, и генерируются 16 коэффициентов. То есть, предполагая, что 48 частей данных формируют вектор 48×1, матрица 16×48 и вектор 48×1 последовательно умножаются, тем самым генерируя вектор 16×1. Здесь, 48 частей данных, формирующих область 8×8, могут надлежащим образом располагаться, формируя при этом вектор 48×1. Например, вектор 48×1 может быть сформирован на основе 48 частей данных, образующих область, исключая нижнюю-правую область 4×4 среди областей 8×8. Здесь, когда матричная операция выполняется путем применения матрицы максимум 16×48 ядра преобразования, генерируются 16 модифицированных коэффициентов преобразования, и 16 модифицированных коэффициентов преобразования могут быть упорядочены в верхней-левой области 4×4 в соответствии с порядком сканирования, и верхняя-правая область 4×4 и нижняя-левая область 4×4 могут быть заполнены нулями.[155] According to an embodiment of the present disclosure, for transformation in the encoding process, only 48 pieces of data can be selected, and a maximum 16x48 matrix of transformation kernels can be applied to them, instead of applying a 16x64 matrix of transformation kernels to 64 pieces of data , forming an 8x8 area. Here, "maximum" means that m has a maximum value of 16 in the m×48 matrix of the transformation kernel for generating m coefficients. That is, when RST is performed by applying an m×48 matrix of transformation kernels (m≤16) to an 8×8 region, 48 pieces of data are input and m coefficients are generated. When m is 16, 48 pieces of data are input and 16 coefficients are generated. That is, assuming that 48 pieces of data form a 48x1 vector, the 16x48 matrix and the 48x1 vector are sequentially multiplied, thereby generating a 16x1 vector. Here, 48 pieces of data forming an 8x8 area can be properly arranged to form a 48x1 vector. For example, a 48×1 vector may be formed based on the 48 pieces of data forming a region excluding the bottom-right 4×4 region among the 8×8 regions. Here, when the matrix operation is performed by applying a maximum 16×48 matrix of transformation kernels, 16 modified transformation coefficients are generated, and the 16 modified transformation coefficients can be arranged in the upper-left region of 4×4 according to the scanning order, and the upper-right region of 4 The ×4 and bottom-left 4x4 area can be filled with zeros.

[156] Для обратного преобразования в процессе декодирования, может использоваться транспонированная матрица вышеописанной матрицы ядра преобразования. То есть, когда обратное RST или LFNST выполняется в процессе обратного преобразования устройством декодирования, входные данные коэффициентов, к которым применяется обратное RST, конфигурируются в одномерный вектор в соответствии с предопределенным порядком расположения, и вектор модифицированных коэффициентов, полученный умножением одномерного вектора и соответствующей матрицы обратного RST слева от одномерного вектора, может быть упорядочен в двумерный блок в соответствии с предопределенным порядком расположения.[156] For inverse transformation in the decoding process, a transposed matrix of the above-described transformation kernel matrix can be used. That is, when the inverse RST or LFNST is performed in the inverse transform process by the decoding device, the input coefficient data to which the inverse RST is applied is configured into a one-dimensional vector according to a predetermined arrangement order, and a vector of modified coefficients obtained by multiplying the one-dimensional vector and the corresponding inverse matrix The RST to the left of the one-dimensional vector can be arranged into a two-dimensional block according to a predefined arrangement order.

[157] В итоге, в процессе преобразования, когда RST или LFNST применяется к области 8×8, матричная операция 48 применяется к коэффициентам преобразования в верхней-левой, верхней-правой и нижней-левой областях области 8×8, исключая нижнюю-правую область среди коэффициентов преобразования в области 8×8 и матрицы 16×48 ядра преобразования. Для матричной операции, 48 коэффициентов преобразования вводятся в одномерном массиве. Когда выполняется матричная операция, выводятся 16 модифицированных коэффициентов преобразования, и модифицированные коэффициенты преобразования могут быть упорядочены в верхней-левой области в области 8×8.[157] Finally, in the transformation process, when RST or LFNST is applied to the 8×8 area, the matrix operation 48 is applied to the transform coefficients in the upper-left, upper-right and lower-left regions of the 8×8 area excluding the lower-right area among the transform coefficients in an 8x8 region and a 16x48 matrix of transform kernels. For matrix operation, 48 transformation coefficients are entered in a one-dimensional array. When the matrix operation is performed, 16 modified transform coefficients are output, and the modified transform coefficients can be arranged in the top-left region in the 8×8 region.

[158] Напротив, в процессе обратного преобразования, когда обратное RST или LFNST применяется к области 8×8, 16 коэффициентов преобразования, соответствующих верхней-левой области в области 8×8 среди коэффициентов преобразования в области 8×8, могут вводиться в одномерном массиве в соответствии с порядком сканирования и могут подвергаться матричной операции с матрицей 48×16 ядра преобразования. То есть, матричная операция может быть выражена как (матрица 48×16)*(вектор 16×1 коэффициентов преобразования)=(вектор 48×1 модифицированных коэффициентов преобразования). Здесь, вектор n×1 может интерпретироваться, чтобы иметь то же самое значение, что и матрица n×1, и может, таким образом, выражаться как вектор-столбец n×1. Кроме того, * означает матричное умножение. Когда выполняется матричная операция, могут быть выведены 48 модифицированных коэффициентов преобразования, и 48 модифицированных коэффициентов преобразования могут быть упорядочены в верхней-левой, верхней-правой и нижней-левой областях в области 8×8, исключая нижнюю-правую область.[158] In contrast, in the inverse transform process, when the inverse RST or LFNST is applied to the 8×8 region, 16 transform coefficients corresponding to the top-left region in the 8×8 region among the transform coefficients in the 8×8 region can be input in a one-dimensional array according to the scanning order and can undergo matrix operation with a 48x16 matrix transformation kernel. That is, the matrix operation can be expressed as (48×16 matrix)*(16×1 vector of transform coefficients)=(48×1 vector of modified transform coefficients). Here, an n×1 vector can be interpreted to have the same value as an n×1 matrix, and can thus be expressed as an n×1 column vector. Also, * means matrix multiplication. When the matrix operation is performed, 48 modified transform coefficients can be output, and the 48 modified transform coefficients can be arranged in the top-left, top-right, and bottom-left regions in the 8×8 area excluding the bottom-right region.

[159] Когда вторичное обратное преобразование основано на RST, обратный преобразователь 135 устройства 100 кодирования и обратный преобразователь 222 устройства 200 декодирования может включать в себя обратный сокращенный вторичный преобразователь для выведения модифицированных коэффициентов преобразования на основе обратного RST на коэффициентах преобразования и обратный первичный преобразователь для выведения остаточных выборок для целевого блока на основе обратного первичного преобразования на модифицированных коэффициентах преобразования. Обратное первичное преобразование относится к обратному преобразованию первичного преобразования, применяемого к остатку. В настоящем раскрытии, выведение коэффициента преобразования на основе преобразования может относиться к выведению коэффициента преобразования путем применения преобразования.[159] When the secondary inverse transform is based on RST, the inverse transformer 135 of the encoding device 100 and the inverse transformer 222 of the decoding device 200 may include an inverse shortened secondary transformer for deriving modified transform coefficients based on the inverse RST on the transform coefficients and an inverse primary transformer for deriving residual samples for the target block based on the inverse primary transform on the modified transform coefficients. The inverse of the primary transformation refers to the inverse of the primary transformation applied to the remainder. In the present disclosure, deriving a transformation coefficient based on a transformation may refer to deriving a transformation coefficient by applying a transformation.

[160] Вышеописанное неразделимое преобразование, LFNST, будет описано детально следующим образом. LFNST может включать в себя прямое преобразование устройством кодирования и обратное преобразование устройством декодирования.[160] The above-described non-separable transformation, LFNST, will be described in detail as follows. The LFNST may include a forward transform by an encoding device and a reverse transform by a decoding device.

[161] Устройство кодирования принимает результат (или часть результата), выведенный после применения первичного (ядра) преобразования в качестве входа, и применяет прямое вторичное преобразование (вторичное преобразование).[161] The encoder takes the result (or part of the result) output after applying the primary (kernel) transform as input, and applies the forward secondary transform (secondary transform).

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

[163] В Уравнении 9, x и y являются входами и выходами вторичного преобразования, соответственно, и G является матрицей, представляющей вторичное преобразование, и базисные векторы преобразования образованы вектор-столбцами. В случае обратного LFNST, когда размерность матрицы преобразования G выражается как [число строк × число столбцов], в случае прямого LFNST, транспозиция матрицы G становится размерностью GT.[163] In Equation 9, x and y are the inputs and outputs of the secondary transform, respectively, and G is a matrix representing the secondary transform, and the transform basis vectors are formed by column vectors. In the case of inverse LFNST, where the dimension of the transformation matrix G is expressed as [number of rows × number of columns], in the case of forward LFNST, the transposition of the matrix G becomes the dimension G T .

[164] Для обратного LFNST, размерами матрицы G являются [48×16], [48×8], [16×16], [16×8], и матрица [48×8] и матрица [16×8] являются частичными матрицами, полученными дискретизацией 8 базисных векторов преобразования слева от матрицы [48×16] и матрицы [16×16], соответственно.[164] For the inverse LFNST, the dimensions of matrix G are [48×16], [48×8], [16×16], [16×8], and matrix [48×8] and matrix [16×8] are partial matrices obtained by discretizing the 8 basis transformation vectors to the left of the [48×16] matrix and the [16×16] matrix, respectively.

[165] С другой стороны, для прямого LFNST, размерностями матрицы GT являются [16×48], [8×48], [16×16], [8×16], и матрица [8×48] и матрица [8×16] являются частичными матрицами, полученным дискретизацией 8 базисных векторов преобразования сверху матрицы [16×48] и матрицы [16×16], соответственно.[165] On the other hand, for direct LFNST, the dimensions of matrix G T are [16×48], [8×48], [16×16], [8×16], and matrix [8×48] and matrix [ 8×16] are partial matrices obtained by discretizing the 8 basis vectors of the transformation on top of the [16×48] matrix and the [16×16] matrix, respectively.

[166] Поэтому, в случае прямого LFNST, вектор [48×1] или вектор [16×1] возможен как вход x, и вектор [16×1] или вектор [8×1] возможен как выход y. В кодировании и декодировании видео, выход прямого первичного преобразования является двумерными (2D) данными, поэтому для создания вектора [48×1] или вектора [16×1] в качестве входа x, одномерный вектор должен быть сформирован путем надлежащего упорядочивания 2D данных, которые являются выходом прямого преобразования.[166] Therefore, in the case of direct LFNST, the [48×1] vector or the [16×1] vector is possible as the x input, and the [16×1] vector or the [8×1] vector is possible as the y output. In video encoding and decoding, the output of the direct primary transform is two-dimensional (2D) data, so to create a [48×1] vector or a [16×1] vector as the x input, a 1D vector must be formed by properly arranging the 2D data that are the output of direct conversion.

[167] Фиг. 6 является диаграммой, иллюстрирующей a последовательность компоновки выходных данных прямого первичного преобразования в одномерный вектор в соответствии с примером. Левые диаграммы (a) и (b) на фиг. 6 показывают последовательность для построения вектора [48×1], и правые диаграммы (a) и (b) на фиг. 6 показывают последовательность для построения вектора [16×1]. В случае LFNST, одномерный вектор x может быть получен путем последовательной компоновки 2D данных в том же порядке, что и в (a) и (b) на фиг. 6.[167] FIG. 6 is a diagram illustrating a layout sequence of direct primary transform output data into a one-dimensional vector according to an example. Left diagrams (a) and (b) in Fig. 6 shows the sequence for constructing the [48×1] vector, and the right diagrams (a) and (b) in FIG. 6 shows the sequence for constructing the [16×1] vector. In the case of LFNST, a 1D vector x can be obtained by sequentially arranging the 2D data in the same order as in (a) and (b) in FIG. 6.

[168] Направление компоновки выходных данных прямого первичного преобразования может определяться в соответствии с режимом интра-предсказания текущего блока. Например, когда режим интра-предсказания текущего блока находится в горизонтальном направлении относительно диагонального направления, выходные данные прямого первичного преобразования могут быть скомпонованы в порядке (a) согласно фиг. 6, и когда режим интра-предсказания текущего блока находится в вертикальном направлении относительно диагонального направления, выходных данных прямого первичного преобразования могут быть скомпонованы в порядке (b) на фиг. 6.[168] The layout direction of the forward primary transform output data may be determined in accordance with the intra-prediction mode of the current block. For example, when the intra prediction mode of the current block is in the horizontal direction with respect to the diagonal direction, the forward primary transform output data can be arranged in order (a) according to FIG. 6, and when the intra prediction mode of the current block is in the vertical direction with respect to the diagonal direction, the forward primary transform output data can be arranged in the order (b) of FIG. 6.

[169] В соответствии с примером, порядок компоновки, отличающийся от порядков компоновки (a) и (b) на фиг. 6, может применяться, и чтобы получить тот же результат (вектор y), что и получаемый при применении порядков компоновки (a) и (b) на фиг. 6, вектор-столбцы матрицы G могут быть переупорядочены в соответствии с порядком компоновки. То есть, можно переупорядочить вектор-столбцы G так, что каждый элемент, составляющий вектор x, всегда умножается на тот же самый базисный вектор преобразования.[169] According to the example, an arrangement order different from the arrangement orders (a) and (b) in FIG. 6 can be applied to obtain the same result (vector y) as that obtained by applying arrangement orders (a) and (b) in FIG. 6, the column vectors of matrix G can be rearranged according to the layout order. That is, you can rearrange the column vectors of G so that each element composing the vector x is always multiplied by the same basis vector of the transformation.

[170] Поскольку выход y, полученный с помощью Уравнения 9, является одномерным вектором, когда требуются двумерные данные в качестве входных данных в процессе использования результата прямого вторичное преобразования в качестве входа, например, в процессе выполнения квантования или кодирования остатка, выходной вектор y в Уравнении 9 должен быть надлежащим образом снова скомпонован как 2D данные.[170] Since the output y obtained by Equation 9 is a one-dimensional vector, when two-dimensional data is required as input in the process of using the result of direct secondary transformation as input, for example, in the process of performing quantization or remainder encoding, the output vector y in Equation 9 must be properly reassembled as 2D data.

[171] Фиг. 7 является диаграммой, иллюстрирующей последовательность компоновки выходных данных прямого вторичного преобразования в двумерный вектор в соответствии с примером.[171] FIG. 7 is a diagram illustrating a layout sequence of the output of the direct secondary transform into a two-dimensional vector according to an example.

[172] В случае LFNST, выходные значения могут быть скомпонованы в 2D блок в соответствии с предопределенным порядком сканирования. (a) на фиг. 7 показывает, что когда выходом y является вектор [16×1], выходные значения скомпонованы в 16 позициях 2D блока в соответствии с порядком диагонального сканирования. (b) на фиг. 7 показывает, что когда выходом y является вектор [8×1], выходные значения скомпонованы в 8 позициях 2D блока в соответствии с порядком диагонального сканирования, и остальные 8 позиций заполнены нулями. X в (b) на фиг. 7 указывает, что эта позиция заполнена нулем.[172] In the case of LFNST, the output values can be arranged into a 2D block according to a predefined scan order. (a) in FIG. 7 shows that when the output y is a [16×1] vector, the output values are arranged in 16 positions of the 2D block according to the diagonal scan order. (b) in FIG. 7 shows that when the output y is an [8×1] vector, the output values are arranged in 8 positions of the 2D block according to the diagonal scan order, and the remaining 8 positions are filled with zeros. X in (b) in Fig. 7 indicates that this position is filled with zero.

[173] В соответствии с другим примером, поскольку порядок, в котором обрабатывается выходной вектор y при выполнении квантования или кодирования остатка, может быть предварительно установлен, выходной вектор y может не компоноваться в 2D блок, как показано на фиг. 7. Однако, в случае кодирования остатка, кодирование данных может выполняться в единицах 2D блока (например, 4×4), таких как CG (группа коэффициентов), и в этом случае, данные компонуются в соответствии с конкретным порядком, как в порядке диагонального сканирования на фиг. 7.[173] According to another example, since the order in which the output vector y is processed when performing quantization or remainder encoding may be preset, the output vector y may not be arranged into a 2D block as shown in FIG. 7. However, in the case of remainder encoding, the encoding of the data may be done in 2D block units (e.g. 4x4) such as CG (coefficient group), in which case, the data is arranged according to a specific order, such as diagonal order scanning in Fig. 7.

[174] Между тем, устройство декодирования может конфигурировать одномерный входной вектор y путем компоновки двумерных данных, выводимых с помощью процесса деквантования или тому подобного в соответствии с предварительно установленным порядком сканирования для обратного преобразования. Входной вектор y может выводиться как выходной вектор x посредством следующего уравнения.[174] Meanwhile, the decoding apparatus can configure the one-dimensional input vector y by arranging two-dimensional data output by a dequantization process or the like according to a predetermined scanning order for inverse transformation. The input vector y can be output as the output vector x through the following equation.

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

x=Gyx=Gy

[176] В случае обратного LFNST, выходной вектор x может выводиться путем умножения входного вектора y, который представляет собой вектор [16×1] или вектор [8×1], на матрицу G. Для обратного LFNST, выходной вектор x может представлять собой либо вектор [48×1], либо вектор [16×1].[176] In the case of an inverse LFNST, the output vector x may be output by multiplying the input vector y, which is a [16×1] vector or an [8×1] vector, by a matrix G. For an inverse LFNST, the output vector x may be either a [48×1] vector or a [16×1] vector.

[177] Выходной вектор x скомпонован в двумерный блок в соответствии с порядком, показанным на фиг. 6, и скомпонован как двумерные данные, и эти двумерные данные становятся входными данными (или частью входных данных) обратного первичного преобразования.[177] The output vector x is arranged into a two-dimensional block in accordance with the order shown in FIG. 6, and is arranged as two-dimensional data, and this two-dimensional data becomes the input data (or part of the input data) of the inverse primary transform.

[178] Соответственно, обратное вторичное преобразование представляет собой в целом процесс, противоположный процессу прямого вторичного преобразования, и в случае обратного преобразования, в отличие от прямого направления, сначала применяется обратное вторичное преобразование, а затем применяется обратное первичное преобразование.[178] Accordingly, the inverse secondary transformation is generally the opposite process of the direct secondary transformation, and in the case of the inverse transformation, unlike the forward direction, the inverse secondary transformation is first applied and then the inverse primary transformation is applied.

[179] В обратном LFNST, одна из 8 матриц [48×16] и 8 матриц [16×16] может быть выбрана как матрица G преобразования. Следует ли применять матрицу [48×16] или матрицу [16×16], зависит от размера и формы блока.[179] In the inverse LFNST, one of 8 matrices [48×16] and 8 matrices [16×16] can be selected as the transformation matrix G. Whether to use a [48x16] matrix or a [16x16] matrix depends on the size and shape of the block.

[180] Кроме того, 8 матриц могут быть выведены из четырех наборов преобразований, как показано в Таблице 2 выше, и каждый набор преобразований может состоять из двух матриц. То, какой набор преобразований использовать среди 4 наборов преобразований, определяется в соответствии с режимом интра-предсказания, и более конкретно, набор преобразований определяется на основе значения режима интра-предсказания, расширенного с учетом широкоугольного интра-предсказания (WAIP). То, какую матрицу выбрать из двух матриц, составляющих выбранный набор преобразований, выводится с помощью сигнализации индекса. Более конкретно, 0, 1 и 2 возможны в качестве передаваемого значения индекса, 0 может указывать, что LFNST не применяется, и 1 и 2 могут указывать любую одну из двух матриц преобразования, составляющих набор преобразований, выбранный на основе значения режима интра-предсказания.[180] In addition, 8 matrices can be derived from four sets of transformations, as shown in Table 2 above, and each set of transformations can consist of two matrices. Which transform set to use among the 4 transform sets is determined according to the intra-prediction mode, and more specifically, the transform set is determined based on the value of the wide-angle intra-prediction (WAIP) extended intra-prediction mode. Which matrix to choose from the two matrices that make up the selected set of transformations is inferred using index signaling. More specifically, 0, 1, and 2 are possible as the passed index value, 0 may indicate that LFNST is not applied, and 1 and 2 may indicate any one of the two transformation matrices constituting the transformation set selected based on the intra-prediction mode value.

[181] Фиг. 8 является диаграммой, иллюстрирующей широкоугольные режимы интра-предсказания в соответствии с вариантом осуществления настоящего документа.[181] FIG. 8 is a diagram illustrating wide-angle intra-prediction modes in accordance with an embodiment of the present document.

[182] Обычное значение режима интра-предсказания может иметь значения от 0 до 66 и от 81 до 83, а значение режима интра-предсказания, расширенное вследствие WAIP, может иметь значение от -14 до 83, как показано. Значения от 81 до 83 указывают режим CCLM (линейная модель перекрестного компонента), и значения от -14 до -1 и значения от 67 до 80 указывают режим интра-предсказания, расширенный вследствие применения WAIP.[182] A normal intra-prediction mode value may have values from 0 to 66 and 81 to 83, and an intra-prediction mode value expanded due to WAIP may have a value from -14 to 83, as shown. Values from 81 to 83 indicate the CCLM mode (Cross Component Linear Model), and values from -14 to -1 and values from 67 to 80 indicate the intra-prediction mode extended due to the application of WAIP.

[183] Когда ширина текущего блока предсказания больше, чем высота, верхние опорные пикселы обычно ближе к позициям внутри предсказываемого блока. Поэтому, было бы более точным предсказывать в нижнем-левом направлении, чем в верхнем-правом направлении. Напротив, когда высота блока больше, чем ширина, левые опорные пикселы обычно ближе к позициям внутри предсказываемого блока. Поэтому, может быть более точным предсказывать в верхнем-правом направлении, чем в нижнем-левом направлении. Поэтому, может быть предпочтительным применить повторное отображение, т.е. модификацию индекса режима, на индекс широкоугольного режима интра-предсказания.[183] When the width of the current prediction block is greater than the height, the top reference pixels are typically closer to positions within the prediction block. Therefore, it would be more accurate to predict in the lower-left direction than in the upper-right direction. In contrast, when a block's height is greater than its width, the left reference pixels tend to be closer to positions within the predicted block. Therefore, it may be more accurate to predict in the top-right direction than in the bottom-left direction. Therefore, it may be preferable to apply remapping, i.e. modification of the mode index to the wide-angle intra-prediction mode index.

[184] Когда применяется широкоугольное интра-предсказание, информация о существующем интра-предсказании может сигнализироваться, и после того как информация проанализирована, информация может повторно отображаться на индекс широкоугольного режим интра-предсказания. Поэтому, общее число режимов интра-предсказания для конкретного блока (например, неквадратного блока конкретного размера) может не изменяться, и общее число режимов интра-предсказания равно 67, и кодирование режима интра-предсказания для конкретного блока может не изменяться.[184] When wide-angle intra-prediction is applied, information about the existing intra-prediction can be signaled, and after the information is analyzed, the information can be re-mapped to the index of the wide-angle intra-prediction mode. Therefore, the total number of intra-prediction modes for a particular block (eg, a non-square block of a particular size) may not change, and the total number of intra-prediction modes is 67, and the encoding of the intra-prediction mode for a specific block may not change.

[185] Таблица 3 ниже показывает процесс выведения модифицированного интра-режима путем повторного отображения режима интра-предсказания на широкоугольный режим интра-предсказания.[185] Table 3 below shows the process of deriving the modified intra-mode by re-mapping the intra-prediction mode to the wide-angle intra-prediction mode.

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

[187] В Таблице 3, расширенное значение режима интра-предсказания окончательно сохраняется в переменной predModeIntra, и ISP_NO_SPLIT указывает, что блок CU не делится на подразделения посредством метода интра-подразделений (ISP), принятого в настоящее время в стандарте VVC, и значения 0, 1 и 2 переменной cIdx указывают случай компонентов яркости, Cb и Cr, соответственно. Функция Log2, показанная в Таблице 3, возвращает значение log с основанием 2, и функция Abs возвращает абсолютное значение.[187] In Table 3, the extended intra prediction mode value is finally stored in the predModeIntra variable, and ISP_NO_SPLIT indicates that the CU is not divided into subdivisions by the intra subdivision (ISP) method currently adopted in the VVC standard, and the value is 0 1 and 2 of the cIdx variable indicate the case of the brightness components, Cb and Cr, respectively. The Log2 function, shown in Table 3, returns the log value in base 2, and the Abs function returns the absolute value.

[188] Переменная predModeIntra, указывающая режим интра-предсказания, и высота и ширина блока преобразования и т.д. используются как входные значения процесса отображения широкоугольного режима интра-предсказания, и выходным значением является модифицированный режим интра-предсказания predModeIntra. Высота и ширина блока преобразования или блока кодирования могут быть высотой и шириной текущего блока для повторного отображения режима интра-предсказания. При этом, переменная whRatio, отражающая отношение ширины к ширине может быть установлена в Abs(Log2(nW/nH)).[188] The predModeIntra variable indicating the intra prediction mode, and the height and width of the transform block, etc. are used as input values of the wide-angle intra-prediction mode display process, and the output value is the modified intra-prediction mode predModeIntra. The height and width of the transform block or encoding block may be the height and width of the current block to re-display the intra-prediction mode. In this case, the whRatio variable, reflecting the ratio of width to width, can be set to Abs(Log2(nW/nH)).

[189] Для неквадратного блока, режим интра-предсказания может быть разделен на два случая и модифицирован.[189] For a non-square block, the intra-prediction mode can be divided into two cases and modified.

[190] Во-первых, если все условия (1)~(3) удовлетворены, (1) ширина текущего блока больше, чем высота, (2) режим интра-предсказания перед модифицированием равен или больше, чем 2, (3) режим интра-предсказания меньше, чем значение, выведенное из (8+2 * whRatio), когда переменная whRatio больше, чем 1, и меньше, чем 8, когда переменная whRatio меньше или равна 1 [predModeIntra меньше, чем (whRatio > 1)?(8+2* whRatio): 8], режим интра-предсказания установлен в значение 65 больше, чем режим интра-предсказания [predModeIntra установлено равным (predModeIntra+65)].[190] First, if all conditions (1)~(3) are satisfied, (1) the width of the current block is greater than the height, (2) the intra-prediction mode before modification is equal to or greater than 2, (3) the mode intra prediction is less than the value derived from (8+2 * whRatio) when the variable whRatio is greater than 1, and less than 8 when the variable whRatio is less than or equal to 1 [predModeIntra less than (whRatio > 1)? (8+2* whRatio): 8], intra prediction mode set to 65 greater than intra prediction mode [predModeIntra set to (predModeIntra+65)].

[191] Если в отличие от вышеизложенного, то есть, следующие условия (1)~(3) удовлетворены, (1) высота текущего блока больше, чем ширина, (2) режим интра-предсказания перед модифицированием меньше или равен 66, (3) режим интра-предсказания больше, чем значение, выведенное из (60 − 2 * whRatio), когда переменная whRatio больше, чем 1, и больше, чем 60, когда переменная whRatio меньше или равна 1 [predModeIntra больше, чем (whRatio > 1)?(60 − 2 * whRatio):60], режим интра-предсказания установлен в значение 67 меньше, чем режим интра-предсказания [predModeIntra установлено равным (predModeIntra − 67)].[191] If, contrary to the above, that is, the following conditions (1)~(3) are satisfied, (1) the height of the current block is greater than the width, (2) the intra-prediction mode before modification is less than or equal to 66, (3 ) intra prediction mode is greater than the value derived from (60 − 2 * whRatio) when whRatio is greater than 1, and greater than 60 when whRatio is less than or equal to 1 [predModeIntra is greater than (whRatio > 1 )?(60 − 2 * whRatio):60], the intra-prediction mode is set to 67 less than the intra-prediction mode [predModeIntra is set to (predModeIntra − 67)].

[192] Таблица 2 выше показывает, как набор преобразований выбирается на основе значения режима интра-предсказания, расширенного посредством WAIP в LFNST. Как показано на фиг. 8, режимы 14 до 33 и режимы 35 до 80 симметричны относительно направления предсказания вокруг режима 34. Например, режим 14 и режим 54 симметричны относительно направления, соответствующего режиму 34. Поэтому, тот же самый набор преобразований применяется к режимам, расположенным во взаимно симметричных направлениях, и эта симметрия также отражается в Таблице 2.[192] Table 2 above shows how a set of transforms is selected based on the intra-prediction mode value extended by WAIP in LFNST. As shown in FIG. 8, modes 14 to 33 and modes 35 to 80 are symmetrical with respect to the prediction direction around mode 34. For example, mode 14 and mode 54 are symmetrical with respect to the direction corresponding to mode 34. Therefore, the same set of transformations applies to modes located in mutually symmetrical directions , and this symmetry is also reflected in Table 2.

[193] Между тем, предполагается, что входные данные прямого LFNST для режима 54 симметричны с входными данными прямого LFNST для режима 14. Например, для режима 14 и режима 54, двумерные данные переупорядочиваются в одномерные данные в соответствии с порядком компоновки, показанным в (a) на фиг. 6 и (b) на фиг. 6, соответственно. Кроме того, можно видеть, что шаблоны в порядке, показанном в (a) на фиг. 6 и (b) на фиг. 6, симметричны относительно направления (диагонального направления), указанного режимом 34.[193] Meanwhile, it is assumed that the forward LFNST input data for mode 54 is symmetrical with the forward LFNST input data for mode 14. For example, for mode 14 and mode 54, two-dimensional data is reordered into one-dimensional data according to the arrangement order shown in ( a) in fig. 6 and (b) in FIG. 6, respectively. Moreover, it can be seen that the patterns are in the order shown in (a) in FIG. 6 and (b) in FIG. 6 are symmetrical with respect to the direction (diagonal direction) indicated by mode 34.

[194] Между тем, как описано выше, то, какая матрица преобразования из матрицы [48×16] и матрицы [16 ×16] применяется к LFNST, определяется размером и формой целевого блока преобразования.[194] Meanwhile, as described above, which transformation matrix from the [48×16] matrix and the [16×16] matrix is applied to the LFNST is determined by the size and shape of the transformation target block.

[195] Фиг. 9 является диаграммой, иллюстрирующей форму блока, к которой применяется LFNST. (a) на фиг. 9 показывает блоки 4×4, (b) показывает блоки 4×8 и 8×4, (c) показывает блоки 4×N или блоки N×4, в которых N равно 16 или более, (d) показывает блоки 8×8, (e) показывает блоки M×N, где M≥8, N≥8 и N>8 или M>8.[195] FIG. 9 is a diagram illustrating a block shape to which LFNST is applied. (a) in FIG. 9 shows 4x4 blocks, (b) shows 4x8 and 8x4 blocks, (c) shows 4xN blocks or Nx4 blocks in which N is 16 or more, (d) shows 8x8 blocks , (e) shows M×N blocks where M≥8, N≥8 and N>8 or M>8.

[196] На фиг. 9, блоки с жирными границами указывают области, к которым применяется LFNST. Для блоков согласно фиг. 9(a) и (b), LFNST применяется к верхней-левой области 4×4, и для блока согласно фиг. 9(c), LFNST применяется индивидуально к двум верхним-левым областям 4×4, которые расположены смежно. В (a), (b) и (c) на фиг. 9, поскольку LFNST применяется в единицах областей 4×4, это LFNST будет далее упоминаться как "4×4 LFNST". В качестве соответствующих матриц преобразования, матрица [16×16] или матрица [16×8] может применяться на основе размерности матрицы для G в Уравнениях 9 и 10.[196] In FIG. 9, the blocks with thick borders indicate the regions to which LFNST is applied. For blocks according to Fig. 9(a) and (b), LFNST is applied to the top-left 4x4 region, and for the block according to FIG. 9(c), LFNST is applied individually to two top-left 4x4 regions that are adjacent. In (a), (b) and (c) in FIG. 9, since the LFNST is applied in units of 4x4 areas, this LFNST will be hereinafter referred to as "4x4 LFNST". As the corresponding transformation matrices, the [16×16] matrix or the [16×8] matrix can be applied based on the matrix dimension for G in Equations 9 and 10.

[197] Более конкретно, матрица [16×8] применяется к блоку 4×4 (TU 4×4 или CU 4×4) согласно фиг. 9(a) и матрица [16×16] применяется к блокам в (b) и (c) на фиг. 9. Это предназначено для регулирования вычислительной сложности для наихудшего случая до 8 умножений на выборку.[197] More specifically, the [16×8] matrix is applied to a 4×4 unit (TU 4×4 or CU 4×4) according to FIG. 9(a) and the [16×16] matrix is applied to the blocks in (b) and (c) in FIG. 9. This is intended to regulate the worst case computational complexity to 8 multiplications per sample.

[198] В отношении (d) и (e) на фиг. 9, LFNST применяется к верхней-левой области 8×8, и это LFNST далее упоминается как "8×8 LFNST". В качестве соответствующей матрицы преобразования, может применяться матрица [48×16] или матрица [48×8]. В случае прямого LFNST, поскольку вектор [48×1] (вектор x в Уравнении 9) вводится в качестве входных данных, значения всех выборок верхней-левой области 8×8 не используются в качестве входных значений прямого LFNST. То есть, как можно видеть в левой компоновке на фиг. 6(a) или левой компоновке на фиг. 6(b), вектор [48×1] может быть сформирован на основе выборок, принадлежащих остальным 3 блокам 4×4, оставляя нижний правый блок 4×4 как он есть.[198] With respect to (d) and (e) in FIG. 9, LFNST is applied to the top-left 8×8 region, and this LFNST is hereinafter referred to as “8×8 LFNST”. The corresponding transformation matrix can be a [48×16] matrix or a [48×8] matrix. In the case of forward LFNST, since the [48×1] vector (vector x in Equation 9) is input as input, the values of all samples of the top-left 8×8 region are not used as input values of forward LFNST. That is, as can be seen in the left layout in FIG. 6(a) or the left layout in FIG. 6(b), the [48×1] vector can be generated based on the samples belonging to the remaining 3 4×4 blocks, leaving the bottom right 4×4 block as it is.

[199] Матрица [48×8] может применяться к блоку 8×8 (TU 8×8 или CU 8×8) на фиг. 9(d), и матрица [48×16] может применяться к блоку 8×8 на фиг. 9(e). Это также предназначено для регулирования вычислительной сложности для наихудшего случая до 8 умножений на выборку.[199] The [48×8] matrix may be applied to an 8×8 unit (TU 8×8 or CU 8×8) in FIG. 9(d), and the [48×16] matrix can be applied to the 8×8 block in FIG. 9(e). This is also intended to regulate the worst case computational complexity to 8 multiplications per sample.

[200] В зависимости от формы блока, когда применяется соответствующее прямое LFNST (4×4 LFNST или 8×8 LFNST), генерируется 8 или 16 выходных данных (вектор y в Уравнении 9, вектор [8×1] или [16×1]). В прямом LFNST, число выходных данных равно или меньше, чем число входных данных, вследствие характеристик матрицы GT.[200] Depending on the block shape, when the corresponding forward LFNST (4×4 LFNST or 8×8 LFNST) is applied, 8 or 16 outputs are generated (the y vector in Equation 9, the [8×1] vector or [16×1 ]). In direct LFNST, the number of outputs is equal to or less than the number of inputs due to the characteristics of the matrix G T .

[201] Фиг. 10 является диаграммой, иллюстрирующей компоновку выходных данных прямого LFNST в соответствии с примером, и показывает блок, в котором выходные данные прямого LFNST скомпонованы в соответствии с формой блока.[201] FIG. 10 is a diagram illustrating an arrangement of forward LFNST output data according to an example, and shows a block in which forward LFNST output data is arranged according to a block shape.

[202] Затененная область верхнего-левого блока, показанного на фиг. 10, соответствует области, где расположены выходные данные прямого LFNST, позиции, маркированные 0, указывают выборки, заполненные значениями 0, и остальная область представляет области, не измененные прямым LFNST. В области, не измененной посредством LFNST, выходные данные прямого первичного преобразования остаются неизменными.[202] The shaded area of the top-left block shown in FIG. 10 corresponds to the region where the forward LFNST output data is located, the positions marked 0 indicate samples filled with 0 values, and the remaining region represents the regions not modified by forward LFNST. In a region not modified by LFNST, the forward primary transform output remains unchanged.

[203] Как описано выше, поскольку размерность примененной матрицы преобразования варьируется в соответствии с формой блока, число выходных данных также варьируется. Как показано на фиг. 10, выходные данные прямого LFNST могут не полностью заполнять верхний-левый блок 4×4. В случае (a) и (d) на фиг. 10, матрица [16×8] и матрица [48×8] применяются к блоку, указанному жирной линией, или частичной области внутри блока, соответственно, и вектор [8×1] генерируется в качестве выхода прямого LFNST. То есть, в соответствии с порядком сканирования, показанным в (b) на фиг. 7, только 8 выходных данных может быть заполнено, как показано в (a) и (d) на фиг. 10, и 0 может быть заполнен в остальных 8 позициях. В случае применяемого блока LFNST согласно фиг. 9(d), как показано на фиг. 10(d), два блока 4×4 сверху-справа и снизу-слева от верхнего-левого блока 4×4 также заполнены значениями 0.[203] As described above, since the dimension of the applied transformation matrix varies according to the block shape, the number of output data also varies. As shown in FIG. 10, the forward LFNST output may not completely fill the top-left 4x4 block. In case (a) and (d) in FIG. 10, the [16×8] matrix and the [48×8] matrix are applied to the block indicated by the thick line or the partial region within the block, respectively, and the [8×1] vector is generated as the output of the forward LFNST. That is, according to the scanning order shown in (b) of FIG. 7, only 8 output data can be filled, as shown in (a) and (d) in FIG. 10, and 0 can be filled in the remaining 8 positions. In the case of the applied LFNST block according to FIG. 9(d), as shown in FIG. 10(d), the two 4x4 blocks at the top-right and bottom-left of the top-left 4x4 block are also filled with 0 values.

[204] Как описано выше, в основном, путем сигнализации индекса LFNST, специфицируется, следует ли применять LFNST, и матрица преобразования, подлежащая применению. Как показано на фиг. 10, когда применяется LFNST, поскольку число выходных данных прямого LFNST может быть равно или меньше, чем число входных данных, область, заполненная нулевыми значениями, возникает следующим образом.[204] As described above, basically, by signaling the LFNST index, whether LFNST is to be applied and the transformation matrix to be applied is specified. As shown in FIG. 10, when LFNST is applied, since the number of output data of forward LFNST may be equal to or less than the number of input data, a region filled with zero values occurs as follows.

[205] 1) Как показано в (a) на фиг. 10, выборки из 8-ой и последующих позиций в порядке сканирования в верхнем-левом блоке 4×4, то есть, выборки от 9-ой до 16-ой.[205] 1) As shown in (a) in FIG. 10, samples from the 8th and subsequent positions in the scanning order in the top-left 4x4 block, that is, samples from the 9th to the 16th.

[206] 2) Как показано в (d) и (e) на фиг. 10, когда применяется матрица [16×48] или матрица [8×48], два блока 4×4, смежные с верхним-левым блоком 4×4, или второй и третий блоки 4×4 в порядке сканирования.[206] 2) As shown in (d) and (e) in FIG. 10, when a [16×48] matrix or an [8×48] matrix is used, two 4×4 blocks adjacent to the top-left 4×4 block, or the second and third 4×4 blocks in scanning order.

[207] Поэтому, если ненулевые данные существуют при проверке областей 1) и 2), то ясно, что LFNST не применяется, так что сигнализация соответствующего индекса LFNST может опускаться.[207] Therefore, if non-zero data exists when checking areas 1) and 2), then it is clear that LFNST is not applied, so the corresponding LFNST index signaling can be omitted.

[208] В соответствии с примером, например, в случае LFNST, принятого в стандарте VVC, поскольку сигнализация индекса LFNST выполняется после кодирования остатка, устройство кодирования может знать, имеются ли ненулевые данные (значимые коэффициенты) для всех позиций в блоке TU или CU посредством кодирования остатка. Соответственно, устройство кодирования может определять, следует ли выполнять сигнализацию индекса LFNST, на основе существования ненулевых данных, и устройство декодирования может определять, анализируется ли индекс LFNST. Когда ненулевые данные не существуют в области, указанной выше в 1) и 2), сигнализация индекса LFNST выполняется.[208] According to an example, for example, in the case of LFNST adopted in the VVC standard, since LFNST index signaling is performed after encoding the remainder, the encoder can know whether there are non-zero data (significant coefficients) for all positions in the TU or CU by coding the remainder. Accordingly, the encoding apparatus may determine whether to perform LFNST index signaling based on the existence of non-zero data, and the decoding apparatus may determine whether the LFNST index is analyzed. When non-zero data does not exist in the area specified in 1) and 2 above), LFNST index signaling is performed.

[209] Поскольку усеченный унарный код применяется как способ бинаризации для индекса LFNST, индекс LFNST состоит из вплоть до двух бинов, и 0, 10 и 11 назначаются в качестве двоичных кодов для возможных значений 0, 1 и 2 индекса LFNST, соответственно. В случае LFNST, принятого в настоящее время для VVC, основанное на контексте CABAC кодирование применяется к первому бину (регулярное кодирование), и кодирование с обходом применяется к второму бину. Общее число контекстов для первого бина равно 2, когда (DCT-2, DCT-2) применяется как пара первичного преобразования для горизонтального и вертикального направлений, и компонент яркости и компонент цветности кодируются по типу двойственного дерева, один контекст выделяется, а другой контекст применяется к остальным случаям. Кодирование индекса LFNST показано в таблице следующим образом.[209] Since a truncated unary code is used as a binarization method for the LFNST index, the LFNST index consists of up to two bins, and 0, 10, and 11 are assigned as binary codes for possible values 0, 1, and 2 of the LFNST index, respectively. In the case of LFNST currently adopted for VVC, context-based CABAC coding is applied to the first bin (regular coding) and bypass coding is applied to the second bin. The total number of contexts for the first bin is 2 when (DCT-2, DCT-2) is applied as a primary transform pair for the horizontal and vertical directions, and the luma component and the chrominance component are dual tree encoded, one context is extracted and the other context is applied to other cases. The LFNST index coding is shown in the table as follows.

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

[211] Между тем, для принятого LFNST, могут применяться следующие способы упрощения.[211] Meanwhile, for the adopted LFNST, the following simplification methods can be applied.

[212] (i) В соответствии с примером, число выходных данных для прямого LFNST может быть ограничено до максимум 16.[212] (i) According to the example, the number of outputs for direct LFNST can be limited to a maximum of 16.

[213] В случае (c) на фиг. 9, 4×4 LFNST может применяться к двум областям 4×4, смежным сверху-слева, соответственно, и в этом случае, могут генерироваться максимум 32 LFNST выходных данных. Когда число выходных данных для прямого LFNST ограничено до максимум 16, в случае блоков 4×N/N×4 (N≥16) (TU или CU), 4×4 LFNST применяется только к одной области 4×4 сверху-слева, LFNST может применяться только один раз ко всем блокам на фиг. 9. С помощью этого, реализация кодирования изображения может быть упрощена.[213] In case (c) of FIG. 9, 4x4 LFNST can be applied to two 4x4 regions adjacent top-left, respectively, and in this case, a maximum of 32 LFNST output data can be generated. When the number of output data for direct LFNST is limited to a maximum of 16, in case of 4xN/Nx4 (N≥16) blocks (TU or CU), 4x4 LFNST is applied to only one 4x4 area from top-left, LFNST can only be applied once to all blocks in FIG. 9. With this, the implementation of image encoding can be simplified.

[214] Фиг. 11 показывает, что число выходных данных для прямого LFNST ограничено до максимум 16 в соответствии с примером. Как показано на фиг. 11, когда LFNST применяется к самой верхней-левой области 4×4 в блоке 4×N или блоке N×4, в котором N равно 16 или более, выходными данными прямого LFNST становятся 16 частей.[214] FIG. 11 shows that the number of outputs for direct LFNST is limited to a maximum of 16 according to the example. As shown in FIG. 11, when LFNST is applied to the top-left 4x4 region in a 4xN block or an Nx4 block in which N is 16 or more, the output of the forward LFNST becomes 16 pieces.

[215] (ii) В соответствии с примером, обнуление может дополнительно применяться к области, для которой не применяется LFNST. В настоящем документе, обнуление может означать заполнение значений всех позиций, принадлежащих конкретной области, значением 0. То есть, обнуление может применяться к области, которая не изменяется вследствие LFNST и сохраняет результат прямого первичного преобразования. Как описано выше, поскольку LFNST делится на 4×4 LFNST и 8×8 LFNST, обнуление может делиться на два типа ((ii)-(A) и (ii)-(B)) следующим образом.[215] (ii) According to the example, nulling may additionally be applied to an area for which LFNST does not apply. As used herein, nulling may mean filling the values of all positions belonging to a particular region with the value 0. That is, nulling may be applied to a region that is not changed by LFNST and retains the result of the direct primary transformation. As described above, since the LFNST is divided into 4x4 LFNST and 8x8 LFNST, the nulling can be divided into two types ((ii)-(A) and (ii)-(B)) as follows.

[216] (ii)-(A) Когда применяется 4×4 LFNST, область, к которой 4×4 LFNST не применяется, может быть обнулена. Фиг. 12 является диаграммой, иллюстрирующей обнуление в блоке, к которому применяется 4×4 LFNST в соответствии с примером.[216] (ii)-(A) When 4x4 LFNST is applied, the area to which 4x4 LFNST is not applied may be set to zero. Fig. 12 is a diagram illustrating nulling in a block to which a 4x4 LFNST is applied according to an example.

[217] Как показано на фиг. 12, в отношении блока, к которому применяется 4×4 LFNST, то есть, для всех блоков в (a), (b) и (c) на фиг. 10, вся область, к которой LFNST не применяется, может быть заполнена нулями.[217] As shown in FIG. 12, with respect to the block to which the 4x4 LFNST is applied, that is, for all blocks in (a), (b) and (c) in FIG. 10, the entire area to which LFNST does not apply may be filled with zeros.

[218] С другой стороны, (d) на фиг. 12 показывает, что когда максимальное значение числа выходных данных прямого LFNST ограничено до 16, как показано на фиг. 11, обнуление выполняется на остальных блоках, к которым 4×4 LFNST не применяется.[218] On the other hand, (d) in FIG. 12 shows that when the maximum value of the number of forward LFNST output data is limited to 16, as shown in FIG. 11, zeroing is performed on the remaining blocks to which the 4x4 LFNST does not apply.

[219] ii)-(B) Когда применяется 8×8 LFNST, область, к которой 8×8 LFNST не применяется, может быть обнулена. Фиг. 13 является диаграммой, иллюстрирующей обнуление в блоке, к которому применяется 8×8 LFNST в соответствии с примером.[219] ii)-(B) When 8x8 LFNST is applied, the area to which 8x8 LFNST is not applied can be set to zero. Fig. 13 is a diagram illustrating nulling in a block to which 8x8 LFNST is applied according to an example.

[220] Как показано на фиг. 13, в отношении блока, к которому применяется 8×8 LFNST, то есть, для всех блоков в (d) и (e) на фиг. 10, вся область, к которой LFNST не применяется, может быть заполнена нулями.[220] As shown in FIG. 13, with respect to the block to which the 8x8 LFNST is applied, that is, for all blocks in (d) and (e) in FIG. 10, the entire area to which LFNST does not apply may be filled with zeros.

[221] iii) Вследствие обнуления, представленного в (ii) выше, область, заполненная нулями, может быть не той же самой, когда LFNST применяется. Соответственно, можно проверить, существуют ли ненулевые данные, в соответствии с обнулением, предложенным в (ii), в более широкой области, чем в случае LFNST согласно фиг. 10.[221] iii) Due to the nulling presented in (ii) above, the area filled with zeros may not be the same when LFNST is applied. Accordingly, it is possible to check whether non-zero data exists, in accordance with the nulling proposed in (ii), in a wider region than in the case of LFNST according to FIG. 10.

[222] Например, когда применяется (ii)-(B), после проверки, существуют ли ненулевые данные, где область заполняется нулевыми значениями в (d) и (e) на фиг. 10 в дополнение к области, заполненной 0 дополнительно на фиг. 13, сигнализация для индекса LFNST может выполняться, только если ненулевые данные не существуют.[222] For example, when (ii)-(B) is applied, after checking whether non-zero data exists, where the region is filled with zero values in (d) and (e) in FIG. 10 in addition to the area filled with 0 additionally in FIG. 13, signaling for the LFNST index can only be performed if non-zero data does not exist.

[223] Разумеется, даже если применяется обнуление, предложенное в (ii), можно проверить, существуют ли ненулевые данные, таким же путем, как существующая сигнализация индекса LFNST. То есть, после проверки, существуют ли ненулевые данные в блоке, заполненном нулями, на фиг. 10, может применяться сигнализация индекса LFNST. В этом случае, только устройство кодирования выполняет обнуление, а устройство декодирования не предполагает обнуления, то есть, проверяя, существуют ли ненулевые данные только в области, явно маркированной как 0 на фиг. 10, может выполнять анализ индекса LFNST.[223] Of course, even if the nulling proposed in (ii) is applied, it is possible to check whether non-zero data exists in the same way as the existing LFNST index signaling. That is, after checking whether non-zero data exists in the block filled with zeros in FIG. 10, LFNST index signaling may be applied. In this case, only the encoding device performs zeroing and the decoding device does not assume zeroing, that is, by checking whether non-zero data exists only in the region explicitly marked as 0 in FIG. 10, can perform LFNST index analysis.

[224] Альтернативно, в соответствии с другим примером, обнуление может выполняться, как показано на фиг. 14. Фиг. 14 является диаграммой, иллюстрирующей обнуление в блоке, к которому применяется 8×8 LFNST в соответствии с другим примером.[224] Alternatively, according to another example, zeroing may be performed as shown in FIG. 14. Fig. 14 is a diagram illustrating nulling in a block to which 8x8 LFNST is applied according to another example.

[225] Как показано на фиг. 12 and 13, обнуление может применяться ко всем областям иным, чем область, к которой применяется LFNST, или обнуление может применяться только к частичной области, как показано на фиг. 14. Обнуление применяется только к областям иным, чем верхняя-левая область 8×8 на фиг. 14, обнуление может не применяться к нижнему-правому блоку 4×4 в пределах верхней-левой области 8×8.[225] As shown in FIG. 12 and 13, nulling may be applied to all regions other than the region to which LFNST is applied, or nulling may be applied to only a partial region, as shown in FIG. 14. Nulling only applies to areas other than the top-left 8x8 area in FIG. 14, nulling may not be applied to the bottom-right 4x4 block within the top-left 8x8 region.

[226] Могут быть получены различные варианты осуществления, в которых применяются комбинации способов упрощения ((i), (ii)-(A), (ii)-(B), (iii)) для LFNST. Разумеется, комбинации вышеописанных способов упрощения не ограничены следующими вариантами осуществления, и любая комбинация может применяться к LFNST.[226] Various embodiments can be obtained that employ combinations of simplification methods ((i), (ii)-(A), (ii)-(B), (iii)) for LFNST. Of course, combinations of the above simplification methods are not limited to the following embodiments, and any combination may be applied to LFNST.

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

[228] - Ограничить число выходных данных для прямого LFNST до максимум 16 → (i)[228] - Limit the number of outputs for direct LFNST to a maximum of 16 → (i)

[229] - Когда применяется 4×4 LFNST, все области, к которым 4×4 LFNST не применяется, обнуляются → (ii)-(A)[229] - When 4x4 LFNST is applied, all areas to which 4x4 LFNST is not applied are reset to zero → (ii)-(A)

[230] - Когда применяется 8×8 LFNST, все области, к которым 8×8 LFNST не применяется, обнуляются → (ii)-(B)[230] - When 8x8 LFNST is applied, all areas to which 8x8 LFNST is not applied are reset to zero → (ii)-(B)

[231] - После проверки, существуют ли ненулевые данные, также существующие области, заполненные нулевыми значениями, и области, заполненные нулями вследствие дополнительных обнулений ((ii)-(A), (ii)-(B)), индекс LFNST сигнализируется, только когда ненулевые данные не существуют → (iii)[231] - After checking whether there are non-zero data, existing areas filled with zero values, and areas filled with zeros due to additional zeros ((ii)-(A), (ii)-(B)), the LFNST index is signaled, only when non-zero data does not exist → (iii)

[232] В случае варианта осуществления, когда LFNST применяется, область, в которой могут существовать ненулевые выходные данные, ограничена в пределах верхней-левой области 4×4. Более конкретно, в случае фиг. 12(a) и фиг. 13(a), 8-ая позиция в порядке сканирования является последней позицией, где могут существовать ненулевые данные. В случае фиг. 12(b) и (c) и фиг. 13(b), 16-ая позиция в порядке сканирования (т.е., позиция верхнего-правого края верхнего-левого блока 4×4) является последней позицией, где могут существовать данные иные, чем 0.[232] In the case of an embodiment where LFNST is applied, the region in which non-zero output data can exist is limited within the top-left 4x4 region. More specifically, in the case of FIG. 12(a) and FIG. 13(a), the 8th position in the scan order is the last position where non-zero data can exist. In the case of FIG. 12(b) and (c) and FIG. 13(b), the 16th position in the scan order (i.e., the position of the top-right edge of the top-left 4x4 block) is the last position where data other than 0 can exist.

[233] Поэтому, когда применяется LFNST, после проверки, существуют ли ненулевые данные в позиции, где процесс кодирования остатка не разрешен (в позиции за пределами последней позиции), может быть определено, сигнализируется ли индекс LFNST.[233] Therefore, when LFNST is applied, after checking whether non-zero data exists at a position where the remainder encoding process is not allowed (at a position beyond the last position), it can be determined whether the LFNST index is signaled.

[234] В случае способа обнуления, предложенного в (ii), поскольку число данных, в конечном счете сгенерированных, когда применяются как первичное преобразование, так и LFNST, объем вычислений, требуемых для выполнения всего процесса преобразования, может быть сокращен. То есть, когда применяется LFNST, поскольку обнуление применяется к выходным данным прямого первичного преобразования, существующим в области, в которой не применяется LFNST, нет необходимости генерировать данные для области, которая становится обнуленной, во время выполнения прямого первичного преобразования. Соответственно, можно сократить объем вычислений, требуемых для генерации соответствующих данных. Дополнительные результаты способа обнуления, предложенного в (ii), формулируются следующим образом.[234] In the case of the nulling method proposed in (ii), since the number of data ultimately generated when both the primary transform and LFNST are applied, the amount of computation required to perform the entire transform process can be reduced. That is, when LFNST is applied, since nulling is applied to forward primary transform output data existing in a region in which LFNST is not applied, there is no need to generate data for the region that becomes nullable while performing forward primary transform. Accordingly, the amount of computation required to generate the corresponding data can be reduced. Additional results of the nulling method proposed in (ii) are formulated as follows.

[235] Во-первых, как описано выше, объем вычислений требуемых для выполнения всего процесса преобразования, сокращается.[235] First, as described above, the amount of computation required to perform the entire conversion process is reduced.

[236] В частности, когда применяется (ii)-(B), объем вычислений для наихудшего случая сокращается, так что процесс преобразования может быть упрощен. Иными словами, в общем, большой объем вычислений требуется для выполнения крупно-размерного первичного преобразования. Путем применения (ii)-(B), число данных, выводимых в качестве результата выполнения прямого LFNST, может быть сокращено до 16 или менее. Кроме того, по мере того как размер всего блока (TU или CU) увеличивается, эффект сокращения величины операции преобразования дополнительно увеличивается.[236] In particular, when (ii)-(B) is applied, the amount of worst-case computation is reduced so that the conversion process can be simplified. In other words, in general, a large amount of computation is required to perform a large-scale primary transformation. By applying (ii)-(B), the number of data output as a result of executing direct LFNST can be reduced to 16 or less. In addition, as the size of the entire block (TU or CU) increases, the effect of reducing the size of the conversion operation further increases.

[237] Во-вторых, объем вычислений, требуемых для всего процесса преобразования, может быть сокращен, тем самым снижая энергопотребление, требуемое для выполнения преобразования.[237] Secondly, the amount of computation required for the entire conversion process can be reduced, thereby reducing the power consumption required to perform the conversion.

[238] В-третьих, снижается время ожидания, связанное с процессом преобразования.[238] Third, the wait time associated with the conversion process is reduced.

[239] Вторичное преобразования, такое как LFNST, добавляет объем вычислений к существующему первичному преобразованию, тем самым увеличивая общее время задержки, связанное с выполнением преобразования. В частности, в случае интра-предсказания, поскольку восстановленные данные соседних блоков используются в процессе предсказания, во время кодирования, увеличение времени ожидания вследствие вторичного преобразования приводит к увеличению времени ожидания до восстановления. Это может привести к увеличению общего времени ожидания кодирования с интра-предсказанием.[239] A secondary transform, such as LFNST, adds computational overhead to the existing primary transform, thereby increasing the overall latency associated with performing the transform. In particular, in the case of intra-prediction, since the reconstructed data of neighboring blocks is used in the prediction process during encoding, the increase in latency due to the secondary transformation results in an increase in the latency before reconstruction. This may result in an increase in the overall intra-prediction encoding latency.

[240] Однако, если применяется обнуление, предложенное в (ii), время задержки выполнения первичного преобразования может быть заметно сокращено, когда применяется LFNST, время задержки для всего преобразования сохраняется или сокращается, так что устройство кодирования может быть реализовано проще.[240] However, if the nulling proposed in (ii) is applied, the delay time for performing the primary transformation can be noticeably reduced; when LFNST is applied, the delay time for the entire transformation is maintained or shortened, so that the encoding device can be implemented more simply.

[241] Далее, процесс декодирования изображения, в котором отражен данный вариант осуществления, показан в таблице.[241] Next, an image decoding process in which this embodiment is reflected is shown in the table.

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

[243] Таблица 5 показывает, что sps_log2_max_luma_transform_size_minus5, которое является синтаксической информацией о размере блока преобразования, сигнализируется через синтаксис набора параметров последовательности. В соответствии с семантикой, sps_log2_max_luma_transform_size_minus5 представляет значение, полученное вычитанием 5 после взятия логарифма по основанию 2 для максимального размера преобразования.[243] Table 5 shows that sps_log2_max_luma_transform_size_minus5, which is syntax information about the size of the transform block, is signaled through the sequence parameter set syntax. By semantics, sps_log2_max_luma_transform_size_minus5 represents the value obtained by subtracting 5 after taking the base 2 logarithm of the maximum transform size.

[244] Минимальный размер (MinTbSizeY) блока преобразования, в котором может выполняться преобразование, установлен в 4 (MinTbSizeY=1 << MinTbLog2SizeY), и максимальный размер блока преобразования, в котором может выполняться преобразование, может быть выведен как степень 2 значения, полученного сложением 5 с sps_log2_max_luma_transform_size_minus5(MaxTbLog2SizeY=sps_log2_max_luma_transform_size_minus5+5, MaxTbSizeY=1 << MaxTbLog2SizeY).[244] The minimum size (MinTbSizeY) of a translation block on which a transformation can be performed is set to 4 (MinTbSizeY=1 << MinTbLog2SizeY), and the maximum size of a translation block on which a transformation can be performed can be derived as a power of 2 of the value obtained adding 5 with sps_log2_max_luma_transform_size_minus5(MaxTbLog2SizeY=sps_log2_max_luma_transform_size_minus5+5, MaxTbSizeY=1 << MaxTbLog2SizeY).

[245] Поскольку sps_log2_max_luma_transform_size_minus5 состоит из 1 бита и имеет значение 0 или 1, ширина и высота максимального блока преобразования могут быть установлены в 32 или 64 на основе sps_log2_max_luma_transform_size_minus5 Таблицы 5.[245] Since sps_log2_max_luma_transform_size_minus5 consists of 1 bit and has a value of 0 or 1, the width and height of the maximum transform block can be set to 32 or 64 based on sps_log2_max_luma_transform_size_minus5 Table 5.

[246] Между тем, в соответствии с другим вариантом осуществления, может сигнализироваться флаговая информация sps_max_luma_transform_size_64_flag для размера максимального блока преобразования. Когда sps_max_luma_transform_size_64_flag равно 1, максимальный размер блока преобразования равен 64, и когда sps_max_luma_transform_size_64_flag равно 0, максимальный размер блока преобразования равен 32.[246] Meanwhile, according to another embodiment, flag information sps_max_luma_transform_size_64_flag for the maximum transform block size may be signaled. When sps_max_luma_transform_size_64_flag is 1, the maximum transform block size is 64, and when sps_max_luma_transform_size_64_flag is 0, the maximum transform block size is 32.

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

[248] Таблица 6 показывает синтаксические элементы lfnst_idx[x0][y0], сигнализируемые на уровне единицы кодирования. lfnst_idx[x0][y0] может указывать любую одну из двух матриц ядра преобразования, включенных в набор преобразований. Если lfnst_idx равно 0, это может указывать, что неразделимое вторичное преобразование, то есть, LFNST не применяется.[248] Table 6 shows the syntax elements lfnst_idx[x0][y0] signaled at the coding unit level. lfnst_idx[x0][y0] can specify any one of the two transformation kernel matrices included in the transformation set. If lfnst_idx is 0, this may indicate that the non-separable secondary transform, that is, LFNST is not applied.

[249] Для того чтобы lfnst_idx анализировалось устройством декодирования, должно удовлетворяться несколько условий. Во-первых, переменная LfnstDcOnly и переменная LfnstZeroOutSigCoeffFlag первоначально установлены в 1. После разбора синтаксиса для дерева преобразования (transform_tree(x0, y0, cbWidth, cbHeight, treeType)), когда переменная LfnstDcOnly, установленная в 1, изменяется на 0, и значение переменной LfnstZeroOutSigCoeffFlag сохраняется на 1, lfnst_idx может анализироваться [if(LfnstDcOnly == 0 && LfnstZeroOutSigCoeffFlag == 1)]. Переменная LfnstDcOnly и переменная LfnstZeroOutSigCoeffFlag могут быть выведены посредством синтаксической информации кодирования остатка.[249] In order for lfnst_idx to be parsed by the decoder, several conditions must be satisfied. First, the LfnstDcOnly variable and the LfnstZeroOutSigCoeffFlag variable are initially set to 1. After parsing the syntax for the transformation tree (transform_tree(x0, y0, cbWidth, cbHeight, treeType)), when the LfnstDcOnly variable set to 1 is changed to 0, and the value of the variable LfnstZeroOutSigCoeffFlag is kept at 1, lfnst_idx can be parsed [if(LfnstDcOnly == 0 && LfnstZeroOutSigCoeffFlag == 1)]. The LfnstDcOnly variable and the LfnstZeroOutSigCoeffFlag variable can be derived by means of the remainder encoding syntax information.

[250] Между тем, максимальный размер блока кодирования, в котором может кодироваться lfnst_idx[x0][y0], ограничен до максимального размера преобразования (Max(cbWidth, cbHeight) <= MaxTbSizeY).[250] Meanwhile, the maximum encoding block size in which lfnst_idx[x0][y0] can be encoded is limited to the maximum transform size (Max(cbWidth, cbHeight) <= MaxTbSizeY).

[251] Кроме того, поскольку ширина (cbWidth) блока кодирования и высота (cbHeight) блока кодирования указывают ширина блока кодирования и высоту блока кодирования для компонента яркости, соответственно, в случае компонента цветности, LFNST может применяться к каждому блоку, имеющему меньший размер в соответствии с цветовым форматом изображения (например, 4:2:0).[251] In addition, since the coding block width (cbWidth) and coding block height (cbHeight) indicate the coding block width and coding block height for the luma component, respectively, in the case of the chrominance component, LFNST can be applied to each block having a smaller size in according to the color format of the image (for example, 4:2:0).

[252] Конкретно, как показано в Таблице 6, если типом дерева целевого блока является двойственное дерево цветности, LFNST может применяться к блоку цветности, имеющему размер, деленный на SubWidthC и SubHeight, указывающий переменную для формата цветности в размере блока кодирования яркости [lfnstWidth=(treeType == DUAL_TREE_CHROMA) ? cbWidth/SubWidthC : cbWidth, lfnstHeight=(treeType == DUAL_TREE_CHROMA) ? cbHeight/SubHeightC : cbHeight].[252] Specifically, as shown in Table 6, if the tree type of the target block is a dual chroma tree, LFNST may be applied to a chroma block having a size divided by SubWidthC and SubHeight indicating a variable for the chroma format in the size of the luma coding block [lfnstWidth= (treeType == DUAL_TREE_CHROMA) ? cbWidth/SubWidthC : cbWidth, lfnstHeight=(treeType == DUAL_TREE_CHROMA) ? cbHeight/SubHeightC : cbHeight].

[253] Если форматом цветности является 4:2:0, SubWidthC и SubHeight становятся равными 2, так что LFNST может применяться к блоку цветности, имеющему ширину и высоту, полученную путем деления ширины и высоты блока яркости на 2. Поэтому, поскольку LFNST может применяться, когда размер блока яркости равен или меньше, чем блок 64×64, LFNST может применяться, когда размер блока цветности равен или меньше, чем блок 32×32, когда форматом цветности является 4:2:0.[253] If the chroma format is 4:2:0, SubWidthC and SubHeight become 2, so that LFNST can be applied to a chroma block having a width and height obtained by dividing the width and height of the lumina block by 2. Therefore, since LFNST can be applied when the luma block size is equal to or less than a 64x64 block, LFNST can be applied when the chrominance block size is equal to or less than a 32x32 block when the chroma format is 4:2:0.

[254] Между тем, в настоящем документе, когда горизонтальная и вертикальная длины блока A равны Wa и Ha, соответственно, и когда горизонтальная и вертикальная длины блока B равны Wb и Hb, соответственно, блок A меньше, чем блок B, означает, что Wa равно или меньше, чем Wb, Ha равно или меньше, чем Hb, и Wa и Wb не равны или Ha и Hb не равны. Также, то, что блок A меньше или равен блоку B, указывает, что Wa равно или меньше, чем Wb, и Ha равно или меньше, чем Hb.[254] Meanwhile, herein, when the horizontal and vertical lengths of block A are Wa and Ha, respectively, and when the horizontal and vertical lengths of block B are Wb and Hb, respectively, block A is smaller than block B means that Wa is equal to or less than Wb, Ha is equal to or less than Hb, and Wa and Wb are not equal or Ha and Hb are not equal. Also, that block A is less than or equal to block B indicates that Wa is equal to or less than Wb, and Ha is equal to or less than Hb.

[255] В итоге, когда размер целевого блока равен или меньше, чем предварительно установленный максимальный размер, LFNST может применяться, этот максимальный размер может применяться к размеру блока яркости, и соответственно, может выводиться максимальный размер блока цветности, к которому может применяться LFNST.[255] Finally, when the target block size is equal to or less than the preset maximum size, LFNST may be applied, this maximum size may be applied to the luma block size, and accordingly, the maximum chroma block size to which LFNST may be applied may be output.

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

[257] Таблица 7 показывает transform_skip_flag, указывающий, следует ли пропускать преобразование в отношении блока преобразования, и tu_mts_idx[x0][y0], которое является информацией индекса ядра преобразования для первичного преобразования.[257] Table 7 shows transform_skip_flag indicating whether the transformation should be skipped with respect to the transform block, and tu_mts_idx[x0][y0], which is the transformation kernel index information for the primary transform.

[258] Как показано в Таблице 7, для того чтобы сигнализировать tu_mts_idx[x0][y0], может быть случай, где режим предсказания текущего блока является интер-режимом или когда флаговая информация sps_explicit_mts_inter_enabled_flag, которая явно указывает, может ли MTS применяться к остаточным данным, генерируемым интер-предсказанием, равна 1 [(CuPredMode[x0][y0] == MODE_INTER && sps_explicit_mts_inter_enabled_flag)], или случай, где режим предсказания текущего блока является интра-режимом, или когда флаговая информация sps_explicit_mts_intra_enabled_flag, которая явно указывает, может ли MTS применяться к остаточным данным, генерируемым интер-предсказанием, равна 1 [(CuPredMode[x0][y0]== MODE_INTRA && sps_explicit_mts_intra_enabled_flag)].[258] As shown in Table 7, in order to signal tu_mts_idx[x0][y0], there may be a case where the prediction mode of the current block is inter-mode or when the flag information sps_explicit_mts_inter_enabled_flag, which explicitly indicates whether MTS can be applied to residuals data generated by inter-prediction is 1 [(CuPredMode[x0][y0] == MODE_INTER && sps_explicit_mts_inter_enabled_flag)], or the case where the prediction mode of the current block is intra mode, or when the flag information sps_explicit_mts_intra_enabled_flag, which explicitly indicates, can Whether MTS is applied to the residual data generated by inter-prediction is 1 [(CuPredMode[x0][y0]== MODE_INTRA && sps_explicit_mts_intra_enabled_flag)].

[259] Дополнительно, когда условие, в котором transform_skip_flag не равно 0, удовлетворено, tu_mts_idx[x0][y0] может анализироваться.[259] Additionally, when the condition in which transform_skip_flag is not equal to 0 is satisfied, tu_mts_idx[x0][y0] can be parsed.

[260] Между тем, в соответствии с другим примером, tu_mts_idx[x0][y0] может сигнализироваться на уровне единицы кодирования Таблицы 6, а не на уровне единицы преобразования.[260] Meanwhile, according to another example, tu_mts_idx[x0][y0] may be signaled at the coding unit level of Table 6 rather than at the transform unit level.

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

[262] [262]

[263] Таблица 8 показывает синтаксис кодирования остатка, и показан процесс, в котором выводятся переменная LfnstDcOnly и переменная LfnstZeroOutSigCoeffFlag Таблицы 6.[263] Table 8 shows the remainder encoding syntax, and shows the process by which the LfnstDcOnly variable and the LfnstZeroOutSigCoeffFlag variable of Table 6 are derived.

[264] На основе размера блока преобразования, могут выводиться переменная log2SbW и переменная log2SbH, указывающие высоту и ширину подблока; numSbCoeff, представляющее число коэффициентов, которые могут существовать в подблоке, может быть установлено на основе переменной log2SbW и переменной log2SbH [numSbCoeff=1 << (log2SbW+log2SbH)].[264] Based on the size of the transform block, a variable log2SbW and a variable log2SbH indicating the height and width of the subblock may be output; numSbCoeff, representing the number of coefficients that can exist in a sub-block, can be set based on the log2SbW variable and the log2SbH variable [numSbCoeff=1 << (log2SbW+log2SbH)].

[265] Переменная lastScanPos, указывающая позицию последнего значимого коэффициента в подблоке, первоначально установлена в numSbCoeff, переменная lastSubBlock, указывающая подблок, в котором существует последний ненулевой коэффициент, первоначально установлена в "(1 << (log2TbWidth+log2TbHeight − (log2SbW+log2SbH ))) - 1".[265] The variable lastScanPos indicating the position of the last significant coefficient in the subblock is initially set to numSbCoeff, the variable lastSubBlock indicating the subblock in which the last non-zero coefficient exists is initially set to "(1 << (log2TbWidth+log2TbHeight − (log2SbW+log2SbH) )) - 1".

[266] При сканировании диагонально в подблоке, соответствующем lastSubBlock [lastScanPos− −], проверяется, существует ли последний ненулевой значимый коэффициент в соответствующей позиции.[266] When scanning diagonally in the subblock corresponding to lastSubBlock [lastScanPos− −], it is checked whether there is a last non-zero significant coefficient at the corresponding position.

[267] Когда никакой значимый коэффициент не найден до тех пор, пока переменная lastScanPos не станет 0 в подблоке, указанном посредством lastSubBlock, переменная lastScanPos вновь устанавливается в numSbCoeff, и переменная lastSubBlock также изменяется на следующий подблок в направлении сканирования.[267] When no significant coefficient is found until the lastScanPos variable becomes 0 in the subblock indicated by lastSubBlock, the lastScanPos variable is again set to numSbCoeff, and the lastSubBlock variable is also changed to the next subblock in the scan direction.

[268] То есть, так как переменная lastScanPos и переменная lastSubBlock обновляются в соответствии с направлением сканирования, идентифицируется позиция, где существует последний ненулевой коэффициент.[268] That is, since the lastScanPos variable and the lastSubBlock variable are updated according to the scanning direction, the position where the last non-zero coefficient exists is identified.

[269] Переменная LfnstDcOnly указывает, существует ли ненулевой коэффициент в позиции, которая не является DC компонентом для по меньшей мере одного блока преобразования в одной единице кодирования; когда ненулевой коэффициент существует в позиции, которые не являются DC компонентом для по меньшей мере одного блока преобразование в одной единице кодирования, он становится 0, и когда ненулевые коэффициенты не существуют в позициях иных, чем DC компоненты, для всех блоков преобразования в одной единице кодирования, он становится 1. В настоящем документе, DC компонент относится к (0,0) или верхней-левой позиции относительно 2D компонента.[269] The variable LfnstDcOnly indicates whether a non-zero coefficient exists at a position that is not a DC component for at least one transform block in one coding unit; when a non-zero coefficient exists at positions that are not DC components for at least one transform block in one coding unit, it becomes 0, and when non-zero coefficients do not exist at positions other than DC components, for all transform blocks in one coding unit , it becomes 1. In this document, the DC component refers to the (0,0) or top-left position relative to the 2D component.

[270] Различные блоки преобразования могут существовать в одной единице кодирования. Например, в случае компонента цветности, могут существовать блоки преобразования для Cb и Cr, и в случае типа одиночного дерева, могут существовать блоки преобразования для яркости, Cb и Cr. В соответствии с примером, когда ненулевой коэффициент иной, чем позиция DC компонента, найден в одном блоке преобразования среди блоков преобразования, составляющих текущий блок кодирования, значение переменной LnfstDcOnly может быть установлено в 0.[270] Different transform blocks may exist within a single coding unit. For example, in the case of a chroma component, there may be transform blocks for Cb and Cr, and in the case of a single tree type, there may be transform blocks for luma, Cb and Cr. According to an example, when a non-zero coefficient other than the DC component position is found in one transform block among the transform blocks constituting the current encoding block, the value of the LnfstDcOnly variable may be set to 0.

[271] Между тем, поскольку кодирование остатка не выполняется на соответствующем блоке преобразования, если ненулевой коэффициент не существует в блоке преобразования, значение переменной LfnstDcOnly не изменяется соответствующим блоком преобразования. Поэтому, когда ненулевой коэффициент не существует в позиции, которая не является DC компонентом в блоке преобразования, значение переменной LfnstDcOnly не изменяется, и сохраняется предыдущее значение. Например, если единица кодирования кодируется как тип одиночного дерева, и значение переменной LfnstDcOnly изменяется в 0 вследствие блока преобразования яркости, даже если ненулевой коэффициент существует только в DC компоненте в блоке преобразования Cb/Cr, или ненулевой коэффициент не существует в блоке преобразования Cb/Cr, значение переменной LfnstDcOnly сохраняет значение 0. Значение переменной LfnstDcOnly первоначально инициализируется в 1, и если никакой компонент в текущей единице кодирования не может обновить значение переменной LfnstDcOnly в 0, она сохраняет значение 1 как есть, и когда значение переменной LfnstDcOnly обновляется в 0 в любом одном из блоков преобразования, составляющих соответствующую единицу кодирования, оно в итоге остается 0.[271] Meanwhile, since remainder encoding is not performed on the corresponding transform block, if a non-zero coefficient does not exist in the transform block, the value of the LfnstDcOnly variable is not changed by the corresponding transform block. Therefore, when a non-zero coefficient does not exist at a position that is not a DC component in a transform block, the value of the LfnstDcOnly variable is not changed and the previous value is retained. For example, if a coding unit is encoded as a single tree type and the value of the variable LfnstDcOnly is changed to 0 due to a luma transform block, even if a non-zero coefficient exists only in the DC component in the Cb/Cr transform block, or a non-zero coefficient does not exist in the Cb/Cr transform block , the value of the LfnstDcOnly variable keeps the value 0. The value of the LfnstDcOnly variable is initially initialized to 1, and if no component in the current encoding unit can update the value of the LfnstDcOnly variable to 0, it keeps the value of 1 as is, and when the value of the LfnstDcOnly variable is updated to 0 at any one of the transformation blocks that make up the corresponding coding unit, it ultimately remains 0.

[272] Как показано в Таблице 8, когда индекс подблока, в котором существует последний ненулевой коэффициент, равен 0 [lastSubBlock == 0] и позиция последнего ненулевого коэффициента в подблоке больше, чем 0, [lastScanPos > 0], переменная LfnstDcOnly может быть выведена как 0. Переменная LfnstDcOnly может выводиться как 0, только когда ширина и высота блока преобразования равны 4 или более [log2TbWidth >= 2 && log2TbHeight >= 2], и пропуск преобразования не применяется [!transform_skip_flag[ x0 ][ y0 ]].[272] As shown in Table 8, when the index of the sub-block in which the last non-zero coefficient exists is 0 [lastSubBlock == 0] and the position of the last non-zero coefficient in the sub-block is greater than 0, [lastScanPos > 0], the variable LfnstDcOnly can be output as 0. The LfnstDcOnly variable can only be output as 0 when the transform block width and height are 4 or more [log2TbWidth >= 2 && log2TbHeight >= 2] and transform skipping is not applied [!transform_skip_flag[ x0 ][ y0 ]].

[273] В предположении, что применяется LFNST, переменная LfnstZeroOutSigCoeffFlag, которая может указывать, было ли выполнено обнуление надлежащим образом, устанавливается в 0 в случае, когда индекс подложка, в котором существует последний ненулевой коэффициент больше 0, и ширина и высота блока преобразования обе больше или равны 4 [( lastSubBlock > 0 && log2TbWidth >= 2 && log2TbHeight >= 2 )], или в случае, когда последняя позиция ненулевого коэффициента в подблоке, в котором существует последний ненулевой коэффициент, больше, чем 7, и размер блока преобразования равен 4×4 или 8×8 [(lastScanPos >7 && (log2TbWidth == 2||log2TbHeight == 3) && log2TbWidth == log2TbHeight)].[273] Assuming that LFNST is applied, the variable LfnstZeroOutSigCoeffFlag, which can indicate whether zeroing was performed properly, is set to 0 in the case where the substrate index in which the last non-zero coefficient exists is greater than 0, and the width and height of the transform block are both greater than or equal to 4 [( lastSubBlock > 0 && log2TbWidth >= 2 && log2TbHeight >= 2 )], or in the case where the last position of a non-zero coefficient in the subblock in which the last non-zero coefficient exists is greater than 7, and the size of the transform block equals 4x4 or 8x8 [(lastScanPos >7 && (log2TbWidth == 2||log2TbHeight == 3) && log2TbWidth == log2TbHeight)].

[274] То есть, первое условие для переменной LfnstZeroOutSigCoeffFlag является условием, в котором ненулевой коэффициент выводится в области иной, чем верхняя-левая область, к которой может применяться LFNST в блоке преобразования (то есть, когда выводится значимый коэффициент в подблоках иных, чем верхний-левый подблок (4×4)). Когда первое условие удовлетворяется, флаговая переменная lfnstZeroOutSigCoeffFlag для обнуления LFNST устанавливается в 0. Удовлетворение первого условия указывает, что обнуление не выполняется, предполагая, что LFNST применяется.[274] That is, the first condition for the variable LfnstZeroOutSigCoeffFlag is the condition in which a non-zero coefficient is output in a region other than the top-left region to which LFNST can be applied in a transform block (that is, when a significant coefficient is output in subblocks other than top-left subblock (4×4)). When the first condition is satisfied, the LFNST zeroing flag variable lfnstZeroOutSigCoeffFlag is set to 0. Satisfaction of the first condition indicates that zeroing is not performed, assuming LFNST is applied.

[275] Второе условие для переменной LfnstZeroOutSigCoeffFlag предназначено для блока 4×4 и блока 8×8. Когда LFNST применяется к блоку 4×4 и блоку 8×8, поскольку последней позицией, где ненулевой коэффициент может существовать, является 8-ая позиция, как показано в (a) и (d) на фиг. 10, если ненулевой коэффициент существует вне 7-ой позиции, если начинать с 0, флаговая переменная lfnstZeroOutSigCoeffFlag устанавливается в 0. Удовлетворение второго условия также указывает, что обнуление не выполняется, когда предполагается, что применяется LFNST .[275] The second condition for the LfnstZeroOutSigCoeffFlag variable is for a 4x4 block and an 8x8 block. When LFNST is applied to a 4x4 block and an 8x8 block, since the last position where a non-zero coefficient can exist is the 8th position, as shown in (a) and (d) in FIG. 10, if a non-zero coefficient exists beyond the 7th position, if starting from 0, the flag variable lfnstZeroOutSigCoeffFlag is set to 0. Satisfying the second condition also indicates that zeroing is not performed when LFNST is assumed to be applied.

[276] Когда флаговая переменная lfnstZeroOutSigCoeffFlag установлена в 0, как показано в Таблица 6, lfnst_idx, сигнализируемый на уровне единицы кодирования, не сигнализируется. То есть, когда флаговая переменная lfnstZeroOutSigCoeffFlag установлена в 0, устройство декодирования не анализирует lfnst_idx.[276] When the flag variable lfnstZeroOutSigCoeffFlag is set to 0, as shown in Table 6, lfnst_idx signaled at the coding unit level is not signaled. That is, when the flag variable lfnstZeroOutSigCoeffFlag is set to 0, the decoder does not parse lfnst_idx.

[277] Таким образом, на уровне единицы кодирования, переменная LfnstDcOnly и переменная LfnstZeroOutSigCoeffFlag установлены в 1, соответственно, и затем заново выводятся посредством процесса, показанного в Таблице 8 на уровне кодирования остатка. Только когда переменная LfnstDcOnly, выводимая на уровне кодирования остатка, равна 0 и переменная LfnstZeroOutSigCoeffFlag равна 1 [if(LfnstDcOnly == 0 && LfnstZeroOutSigCoeffFlag == 1), lfnst_idx может сигнализироваться.[277] Thus, at the encoding unit level, the LfnstDcOnly variable and the LfnstZeroOutSigCoeffFlag variable are set to 1, respectively, and are then re-derived through the process shown in Table 8 at the remainder encoding level. Only when the variable LfnstDcOnly, output at the remainder encoding level, is 0 and the variable LfnstZeroOutSigCoeffFlag is 1 [if(LfnstDcOnly == 0 && LfnstZeroOutSigCoeffFlag == 1), lfnst_idx can be signaled.

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

[279][279]

[280] [Таблица 10][280] [Table 10]

[281][281]

[282] Таблицы 9 и 10 показывают, что процессы интра-предсказания и интер-предсказания выполняются на основе переменной MaxTbSizeY для размера блока преобразования, выведенного из Таблицы 5.[282] Tables 9 and 10 show that the intra-prediction and inter-prediction processes are performed based on the MaxTbSizeY variable for the transform block size derived from Table 5.

[283] Максимальная ширина (maxTbWidth) и максимальная высота (maxTbHeight) блока преобразования выводятся либо из переменной MaxTbSizeY, либо MaxTbSizeY/SubWidthC, которая отражает цветовой формат в соответствии с цветовым индексом cIdx для яркости или цветности [maxTbWidth=(cIdx == 0) ? MaxTbSizeY : MaxTbSizeY/SubWidthC, maxTbHeight=(cIdx == 0 ) ? MaxTbSizeY : MaxTbSizeY/SubHeightC].[283] The maximum width (maxTbWidth) and maximum height (maxTbHeight) of the transform block are derived from either the MaxTbSizeY or MaxTbSizeY/SubWidthC variable, which reflects the color format according to the cIdx color index for luma or chrominance [maxTbWidth=(cIdx == 0) ? MaxTbSizeY : MaxTbSizeY/SubWidthC, maxTbHeight=(cIdx == 0 ) ? MaxTbSizeY : MaxTbSizeY/SubHeightC].

[284] Высота и ширина блока преобразования для интер-предсказания и интра-предсказания установлены на основе переменной maxTbWidth и переменной maxTbHeight, выведенных таким образом [newTbW=(nTbW > maxTbWidth) ? (nTbW/2) : nTbW, newTbH=(nTbH > maxTbHeight) ? (nTbH/2) : nTbH], последующий процесс предсказания может выполняться на основе установленного значения.[284] The height and width of the transform block for inter-prediction and intra-prediction are set based on the maxTbWidth variable and the maxTbHeight variable derived thus [newTbW=(nTbW > maxTbWidth) ? (nTbW/2) : nTbW, newTbH=(nTbH > maxTbHeight) ? (nTbH/2) : nTbH], the subsequent prediction process can be performed based on the set value.

[285][Таблица 11][285][Table 11]

[286][286]

[287][287]

[288] Таблица 11 показывает общий процесс преобразования, выполняемый устройством декодирования.[288] Table 11 shows the general conversion process performed by the decoding device.

[289] Со ссылкой на Таблицу 11, переменная nonZeroSize, указывающая размер или число ненулевых переменных, на которых выполняется матричная операция, чтобы применить LFNST, установлена в 8 или 16. Когда ширина и высота блока преобразования равны 4 или 8, то есть, длина выходных данных прямого LFNST или входных данных обратного LFNST блока 4×4 и блока 8×8, как показано на фиг. 10, равна 8. Для всех других блоков, длина выходных данных прямого LFNST или входных данных обратного LFNST равна 16 [nonZeroSize=((nTbW== 4 && nTbH== 4 ) | | (nTbW== 8 && nTbH== 8)) ? 8 : 16]. То есть, когда применяется прямое LFNST, максимальное число выходных данных ограничено до 16.[289] With reference to Table 11, the nonZeroSize variable indicating the size or number of non-zero variables on which the matrix operation is performed to apply LFNST is set to 8 or 16. When the width and height of the transform block are 4 or 8, that is, the length output data of the forward LFNST or input data of the reverse LFNST of a 4x4 block and an 8x8 block, as shown in FIG. 10 is equal to 8. For all other blocks, the length of the forward LFNST output or reverse LFNST input is 16 [nonZeroSize=((nTbW== 4 && nTbH== 4 ) | | (nTbW== 8 && nTbH== 8) ) ? 8:16]. That is, when direct LFNST is applied, the maximum number of outputs is limited to 16.

[290] Входные данные этого обратного LFNST могут быть двумерно скомпонованы в соответствии с диагональным сканированием [xC=DiagScanOrder[2][2][x][0], yC=DiagScanOrder[2][2][x][1]]. Вышеописанная часть показывает процесс декодирования для (i) способа упрощения LFNST.[290] The input data of this inverse LFNST can be arranged two-dimensionally according to the diagonal scan [xC=DiagScanOrder[2][2][x][0], yC=DiagScanOrder[2][2][x][1]] . The above part shows the decoding process for (i) the LFNST simplification method.

[291] Поскольку число входных данных обратного LFNST для блока преобразования ограничено до максимум 16, LFNST может применяться к самой верхней-левой области 4×4 в блоке 4×N или блоке N×4, где N равно 16 или более, как показано на фиг. 11, и в результате, как показано в (d) на фиг. 12, обнуление может выполняться на остальных блоках, к которым не применяется 4×4 LFNST.[291] Since the number of inverse LFNST inputs to a transform block is limited to a maximum of 16, LFNST can be applied to the top-left 4x4 region in a 4xN block or an Nx4 block where N is 16 or more, as shown in fig. 11, and as a result, as shown in (d) of FIG. 12, zeroing can be performed on the remaining blocks to which the 4x4 LFNST does not apply.

[292] С другой стороны, когда режим интра-предсказания больше или равен 81, то есть, когда CCLM применяется во время интра-предсказания блока цветности, режим интра-предсказания (predModeIntra) для выведения набора преобразований может быть установлен как интра-режим (IntraPredModeY[xTbY+nTbW/2][yTbY+nTbH/2]) соответствующего блока яркости.[292] On the other hand, when the intra-prediction mode is greater than or equal to 81, that is, when CCLM is applied during intra-prediction of a chroma block, the intra-prediction mode (predModeIntra) for transform set output may be set to intra-mode ( IntraPredModeY[xTbY+nTbW/2][yTbY+nTbH/2]) of the corresponding brightness block.

[293] При этом переменная implicitMtsEnabled, указывающая, выполняется ли MTS неявно, может устанавливаться в 1, при удовлетворении условиям, что флаговая информация sps_mts_enabled_flag, сигнализируемая на уровне параметра последовательности, равна 1, sps_explicit_mts_intra_enabled_flag равна 0, режим интра-предсказания применяется к текущему блоку, lfnst_idx равно 0 и intra_mip_flag равно 1.[293] However, the variable implicitMtsEnabled indicating whether MTS is implicitly executed may be set to 1 if the conditions are satisfied that the flag information sps_mts_enabled_flag signaled at the sequence parameter level is 1, sps_explicit_mts_intra_enabled_flag is 0, intra prediction mode is applied to the current block , lfnst_idx is 0 and intra_mip_flag is 1.

[294] Кроме того, переменные nonZeroW и nonZeroH, указывающие ширину и высоту верхнего-левого блока, в котором могут существовать ненулевые коэффициенты преобразования, вводимые в обратное первичное преобразование, выводятся как 4, когда индекс LFNST не равен 0, и ширина или высота блока преобразования выводится 4, иначе выводится как 8 [nonZeroW=(nTbW == 4 | | nTbH == 4) ? 4 : 8, nonZeroH=(nTbW == 4 | | nTbH == 4) ? 4 : 8]. То есть, в блоке преобразования, обнуление выполняется в областях иных, чем область 4×4 и область 8×8, в которой применяется LFNST. Эта часть показывает процесс декодирования для (ii) способа упрощения LFNST.[294] In addition, the variables nonZeroW and nonZeroH, indicating the width and height of the top-left block in which non-zero transform coefficients introduced into the inverse primary transform may exist, are output as 4 when the LFNST index is not 0 and the width or height of the block transformation outputs 4, otherwise outputs as 8 [nonZeroW=(nTbW == 4 | | nTbH == 4) ? 4 : 8, nonZeroH=(nTbW == 4 | | nTbH == 4) ? 4:8]. That is, in the transform block, nulling is performed in areas other than the 4x4 area and the 8x8 area in which LFNST is applied. This part shows the decoding process for (ii) LFNST simplification method.

[295] [Таблица 12][295] [Table 12]

[296] Таблица 12 показывает набор преобразований для LFNST и LFNST набор преобразований выводится на основе входного значения для выведения матрицы ядра преобразования и режима интра-предсказания.[296] Table 12 shows the set of transformations for LFNST and LFNST the set of transformations is derived based on the input value for deriving the transformation kernel matrix and intra-prediction mode.

[297] Как показано в Таблице 12, матрица ядра преобразования (lowFreqTransMatrix) может выводиться с использованием переменной nTrS, указывающей выходной размер преобразования для выведения матрицы ядра преобразования, информации режима интра-предсказания (predModeIntra) для выбора набора преобразований LFNST и индекса LFNST, сигнализируемого из единицы кодирования в качестве входных значений.[297] As shown in Table 12, a transform kernel matrix (lowFreqTransMatrix) may be output using a variable nTrS indicating the output transform size for outputting the transform kernel matrix, intra prediction mode information (predModeIntra) for selecting the LFNST transform set, and a LFNST index signaled from the coding unit as input values.

[298] Имеется четыре набора преобразований LFNST, таких как 0, 1, 2 и 3, и один и тот же набор преобразований может применяться к режимам, расположенным во взаимно симметричных направлениях на основе симметрии режима интра-предсказания. Когда режим интра-предсказания является ненаправленным планарным режимом или DC режимом (0 <= predModeIntra <= 1), то набором преобразований является 0, в случае широкоугольного режима интра-предсказания (predModeIntra < 0, 56 <= predModeIntra <= 80), набором преобразований является 1.[298] There are four sets of LFNST transformations, such as 0, 1, 2 and 3, and the same set of transformations can be applied to modes located in mutually symmetric directions based on intra-prediction mode symmetry. When the intra-prediction mode is omnidirectional planar mode or DC mode (0 <= predModeIntra <= 1), then the transformation set is 0, in the case of the wide-angle intra-prediction mode (predModeIntra < 0.56 <= predModeIntra <= 80), the set transformations is 1.

[299] С другой стороны, как описано выше, когда CCLM применяется к блоку цветности, режим интра-предсказания (predModeIntra) блока цветности для выведения набора преобразований может быть установлен в интра-режим соответствующего блока яркости (IntraPredModeY[xTbY+nTbW/2][yTbY+nTbH/2]), вместо 81 до 83, указывающих CCLM или планарный режим.[299] On the other hand, as described above, when CCLM is applied to a chroma block, the intra-prediction mode (predModeIntra) of the chroma block for outputting the transform set can be set to the intra-mode of the corresponding luma block (IntraPredModeY[xTbY+nTbW/2] [yTbY+nTbH/2]), instead of 81 to 83 indicating CCLM or planar mode.

[300] Соответственно, 81 до 83 опущены в режиме интра-предсказания (predModeIntra) для выбора набора преобразований согласно Таблице 12.[300] Accordingly, 81 to 83 are omitted in the intra-prediction mode (predModeIntra) to select a set of transformations according to Table 12.

[301] Таблица 13 ниже показывает ctxInc, распределенный индексу бина синтаксического элемента tu_mts_idx, описанного выше (назначение ctxInc синтаксическим элементам с контекстно-кодированными бинами).[301] Table 13 below shows the ctxInc allocated to the bin index of the tu_mts_idx syntax element described above (assigning ctxInc to syntax elements with context-encoded bins).

[302] [Таблица 13][302] [Table 13]

[303] Как показано в Таблице 13, ctxInc первого бина (binIdx=0) tu_mts_idx равен 0, ctxInc второго бина (binIdx=1) равен 1, ctxInc третьего бина (binIdx=2) равен 2, и четвертый ctxInc бина (binIdx=3) равен 3.[303] As shown in Table 13, the ctxInc of the first bin (binIdx=0) tu_mts_idx is 0, the ctxInc of the second bin (binIdx=1) is 1, the ctxInc of the third bin (binIdx=2) is 2, and the fourth bin (binIdx= 3) is equal to 3.

[304] В обычном случае, любой один ctxInc выбирается из множества ctxInc в соответствии с предопределенным условием и распределяется первому бину, как описано выше; путем распределения одного фиксированного ctxInc первому бину без соблюдения конкретного условия, эффективность кодирования может быть повышена.[304] In the normal case, any one ctxInc is selected from the set of ctxIncs according to a predetermined condition and allocated to the first bin as described above; By allocating one fixed ctxInc to the first bin without satisfying a specific condition, the coding efficiency can be improved.

[305] Следующие чертежи обеспечены для описания конкретных примеров настоящего раскрытия. Поскольку конкретные обозначения устройств или обозначения конкретных сигналов/сообщений/полей, проиллюстрированных на чертежах, предоставлены для иллюстрации, технические признаки настоящего раскрытия не ограничены конкретными обозначениями, использованными в следующих чертежах.[305] The following drawings are provided to describe specific examples of the present disclosure. While specific device symbols or symbols of particular signals/messages/fields illustrated in the drawings are provided for illustration purposes, the technical features of the present disclosure are not limited to the specific symbols used in the following drawings.

[306] Фиг. 15 является блок-схемой последовательности операций, иллюстрирующей работу устройства декодирования видео в соответствии с вариантом осуществления настоящего раскрытия.[306] FIG. 15 is a flowchart illustrating operation of a video decoding apparatus according to an embodiment of the present disclosure.

[307] Каждая операция, показанная на фиг. 15, может выполняться устройством декодирования 200, показанным на фиг. 2. Конкретно, S1510 - S1550 могут выполняться энтропийным декодером 210, показанным на фиг. 2, S1520 может выполняться деквантователем 221, показанным на фиг. 2, S1560 и S1570 могут выполняться обратным преобразователем 222, показанным на фиг. 2, и S1580 может выполняться сумматором 240, показанным на фиг. 2. Операции в соответствии с S1510 - S1580 основаны на некоторых из вышеописанных подробностей, поясненных со ссылками на фиг. 3 - фиг. 14. Поэтому, описание конкретных подробностей, перекрывающимися с теми, которые были пояснены выше со ссылкой на фиг. 2 - фиг. 14, будет опущено или будет приведено кратко.[307] Each operation shown in FIG. 15 may be performed by the decoding device 200 shown in FIG. 2. Specifically, S1510 to S1550 may be performed by the entropy decoder 210 shown in FIG. 2, S1520 may be performed by the dequantizer 221 shown in FIG. 2, S1560 and S1570 may be performed by the inverse converter 222 shown in FIG. 2, and S1580 may be performed by the adder 240 shown in FIG. 2. The operations in accordance with S1510 to S1580 are based on some of the above-described details explained with reference to FIGS. 3 - fig. 14. Therefore, a description of specific details overlapping those explained above with reference to FIG. 2 - fig. 14 will be omitted or given briefly.

[308] Устройство декодирования 200 в соответствии с вариантом осуществления принимает битовый поток, включающий в себя остаточную информацию, и может выводить остаточную информацию о текущем блоке, то есть блоке преобразования, подлежащем преобразованию, например, квантованные коэффициенты преобразования, из битового потока (S1510).[308] The decoding apparatus 200 according to the embodiment receives a bit stream including residual information, and can output residual information about the current block, that is, a transform block to be converted, such as quantized transform coefficients, from the bit stream (S1510) .

[309] Более конкретно, устройство 200 декодирования может декодировать информацию о квантованных коэффициентах преобразования для целевого блока из битового потока и может выводить квантованные коэффициенты преобразования для текущего блока на основе информация о квантованных коэффициентах преобразования для текущего блока. Информация о квантованных коэффициентах преобразования для целевого блока может быть включена в набор параметров последовательности (SPS) или заголовок вырезки и может включать в себя по меньшей мере одно из информации о том, применяется ли сокращенное преобразование (RST), информацию о коэффициенте упрощения, информацию о минимальном размере преобразования, в котором применяется сокращенное преобразование, информацию о максимальном размере преобразования, в котором применяется сокращенное преобразование, размер сокращенного обратного преобразования и информацию об индексе преобразования, указывающем любую одну из матриц ядра преобразования, включенных в набор преобразований.[309] More specifically, the decoding apparatus 200 can decode quantized transform coefficient information for a target block from the bit stream, and can output quantized transform coefficients for a current block based on the quantized transform coefficient information for the current block. Information about the quantized transform coefficients for the target block may be included in a sequence parameter set (SPS) or slice header and may include at least one of information about whether a reduced transform (RST) is applied, information about a simplification factor, information about a minimum transform size to which the reduced transform is applied, information about a maximum transform size to which the reduced transform is applied, a size of the reduced inverse transform, and information about a transform index indicating any one of the transform kernel matrices included in the set of transforms.

[310] Устройство 200 декодирования может выводить позицию последнего значимого коэффициента в текущем блоке и коэффициенты преобразования для текущего блока на основе остаточной информации (S1520). Устройство 200 декодирования может выполнять деквантование квантованных коэффициентов преобразования текущего блока для выведения коэффициентов преобразования.[310] The decoding apparatus 200 may output the position of the last significant coefficient in the current block and transform coefficients for the current block based on the residual information (S1520). The decoding apparatus 200 may dequantize the quantized transform coefficients of the current block to output transform coefficients.

[311] Выведенные коэффициенты преобразования могут быть двумерно скомпонованы в текущем блоке, и устройство декодирования может выводить ненулевые данные, т.е. информацию о ненулевых значимых коэффициентах в текущем блоке, посредством кодирования остатка. То есть, устройство декодирования может определять информацию о последней позиции ненулевого значимого коэффициента в текущем блоке.[311] The output transform coefficients may be arranged two-dimensionally in the current block, and the decoding apparatus may output non-zero data, i.e. information about non-zero significant coefficients in the current block, by encoding the remainder. That is, the decoding apparatus may determine information about the last position of a non-zero significant coefficient in the current block.

[312] Коэффициенты преобразования, выведенные на основе остаточной информации в S1520, могут быть деквантованными коэффициентами преобразования, как описано выше, или могут быть квантованными коэффициентами преобразования. То есть, коэффициент преобразования может быть любыми данными, способными определять, является ли он или нет ненулевыми данными в текущем блоке, и позицию значимого коэффициента независимо от того, является ли коэффициент преобразования квантованным или нет.[312] The transform coefficients derived from the residual information in S1520 may be dequantized transform coefficients as described above, or may be quantized transform coefficients. That is, the transform coefficient can be any data capable of determining whether or not it is non-zero data in the current block, and the position of the significant coefficient regardless of whether the transform coefficient is quantized or not.

[313] Устройство декодирования может определять, является ли индекс подблока, включающего последний значимый коэффициент, 0, и позицией последнего значимого коэффициента в подблоке является 0 или более (S1530). Устройство декодирования может определять, существует ли значимый коэффициент в области иной, чем DC область (область, в которой расположен DC компонент) по меньшей мере одного блока преобразования среди блоков преобразования, составляющих блок кодирования.[313] The decoding apparatus can determine whether the index of a sub-block including the last significant coefficient is 0, and the position of the last significant coefficient in the sub-block is 0 or more (S1530). The decoding apparatus may determine whether a significant coefficient exists in a region other than a DC region (a region in which a DC component is located) of at least one transform block among the transform blocks constituting the encoding block.

[314] В настоящем документе, в соответствии с примером, DC область может означать только позицию относительно DC коэффициента преобразования, то есть, только верхнюю-левую позицию блока преобразования.[314] Herein, according to the example, the DC region may mean only a position relative to the DC transform coefficient, that is, only the top-left position of the transform block.

[315] В соответствии с определением, первая переменная или первая флаговая информация, указывающая, существует ли значимый коэффициент в области иной, чем DC область текущего блока, может быть выведена, и первая переменная или первая флаговая информация может быть выведена в процессе кодирования остатка. Первая флаговая информация может быть выведена как 0, когда индекс подблока, включающего в себя последний значимый коэффициент в текущем блоке, равен 0, и позиция последнего значимого коэффициента в подблоке больше, чем 0, и если первая флаговая информация равна 0, индекс LFNST может анализироваться.[315] According to the definition, a first variable or first flag information indicating whether a significant coefficient exists in an area other than the DC area of the current block may be output, and the first variable or first flag information may be output in a remainder encoding process. The first flag information can be output as 0 when the index of the sub-block including the last significant coefficient in the current block is 0, and the position of the last significant coefficient in the sub-block is greater than 0, and if the first flag information is 0, the LFNST index can be analyzed .

[316] Первая флаговая информация может быть первоначально установлена в 1 и может оставаться 1 или может изменяться в 0 в зависимости от того, существует ли значимый коэффициент в области иной, чем DC область. То есть, первая флаговая информация, указывающая, является ли позиция последнего значимого коэффициента в подблоке, имеющем индекс 0, большей, чем 0, первоначально установлена в 1; когда позиция последнего значимого коэффициента в подблоке, имеющем индекс 0, равна 0 или более, первая флаговая информация изменяется в 0. Когда первая флаговая информация изменена в 0, индекс LFNST может анализироваться.[316] The first flag information may be initially set to 1 and may remain 1 or may be changed to 0 depending on whether a significant coefficient exists in a region other than the DC region. That is, the first flag information indicating whether the position of the last significant coefficient in the subblock having index 0 is greater than 0 is initially set to 1; when the position of the last significant coefficient in the subblock having index 0 is 0 or more, the first flag information is changed to 0. When the first flag information is changed to 0, the index LFNST can be analyzed.

[317] В соответствии с примером, переменная log2SbW и переменная log2SbH, указывающие высоту и ширину подблока, могут быть выведены на основе размера блока преобразования, и numSbCoeff, представляющее число коэффициентов, которые могут существовать в подблоке, может быть установлено на основе переменной log2SbW и переменной log2SbH [numSbCoeff=1 << (log2SbW+log2SbH)].[317] According to the example, the variable log2SbW and the variable log2SbH indicating the height and width of the sub-block can be derived based on the size of the transform block, and numSbCoeff representing the number of coefficients that can exist in the sub-block can be set based on the variable log2SbW and variable log2SbH [numSbCoeff=1 << (log2SbW+log2SbH)].

[318] Переменная lastScanPos, указывающая позицию последнего значимого коэффициента в подблоке, первоначально установлена в numSbCoeff, и переменная lastSubBlock, указывающая подблок, в котором существует последний ненулевой коэффициент первоначально установлена в " (1 << (log2TbWidth+log2TbHeight − (log2SbW+log2SbH))) - установлено в 1".[318] The lastScanPos variable indicating the position of the last significant coefficient in a sub-block is initially set to numSbCoeff, and the lastSubBlock variable indicating the sub-block in which the last non-zero coefficient exists is initially set to " (1 << (log2TbWidth+log2TbHeight − (log2SbW+log2SbH) )) - set to 1".

[319] При сканировании в диагональном направлении в подблоке, соответствующем [lastSubBlock[lastScanPos− −], проверяется, существует ли последний значимый коэффициент иной, чем 0, в соответствующей позиции.[319] When scanning in the diagonal direction in the subblock corresponding to [lastSubBlock[lastScanPos− −], it is checked whether there is a last significant coefficient other than 0 at the corresponding position.

[320] Если значимый коэффициент не найден до тех пор, пока переменная lastScanPos не станет 0 в подблоке, указанном посредством lastSubBlock, переменная lastScanPos устанавливается снова в numSbCoeff, и переменная lastSubBlock также изменяется на следующий подблок в направлении сканирования [lastSubBlock− −].[320] If a significant coefficient is not found until the variable lastScanPos becomes 0 in the subblock specified by lastSubBlock, the variable lastScanPos is set back to numSbCoeff and the variable lastSubBlock is also changed to the next subblock in the scan direction [lastSubBlock−−].

[321] То есть, когда переменная lastScanPos и переменная lastSubBlock обновляются в соответствии с направлением сканирования, идентифицируется позиция, где существует последний ненулевой коэффициент.[321] That is, when the lastScanPos variable and the lastSubBlock variable are updated according to the scanning direction, the position where the last non-zero coefficient exists is identified.

[322] Переменная LfnstDcOnly указывает, существует ли ненулевой коэффициент в позиции, которая не является DC компонентом, для по меньшей мере одного блока преобразования в одной единице кодирования, когда ненулевой коэффициент существует в позиции, которая не является DC компонентом для по меньшей мере одного блока преобразования в одной единице кодирования, оно становится 0, а когда ненулевые коэффициенты не существуют в позициях иных, чем DC компоненты для всех блоков преобразования в одной единице кодирования, она становится 1.[322] The variable LfnstDcOnly indicates whether a non-zero coefficient exists at a position that is not a DC component for at least one transform block in one coding unit, when a non-zero coefficient exists at a position that is not a DC component for at least one block transformation in one coding unit, it becomes 0, and when non-zero coefficients do not exist at positions other than the DC components for all transform blocks in one coding unit, it becomes 1.

[323] Как показано в Таблица 8, когда индекс подблока, в котором существует последний ненулевой коэффициент, равен 0 [lastSubBlock== 0] и позиция последнего ненулевого коэффициента в подблоке больше, чем 0, [lastScanPos > 0], переменная LfnstDcOnly может выводиться как 0. Переменная LfnstDcOnly может выводиться как 0, только когда ширина и высота блока преобразования равны 4 или более [log2TbWidth >= 2 && log2TbHeight >= 2] и не применяется пропуск преобразования [!transform_skip_flag[x0][y0]].[323] As shown in Table 8, when the index of the sub-block in which the last non-zero coefficient exists is 0 [lastSubBlock== 0] and the position of the last non-zero coefficient in the sub-block is greater than 0, [lastScanPos > 0], the variable LfnstDcOnly may be output as 0. The LfnstDcOnly variable can be output as 0 only when the transform block width and height are 4 or more [log2TbWidth >= 2 && log2TbHeight >= 2] and transform skipping [!transform_skip_flag[x0][y0]] is not applied.

[324] В соответствии с примером, устройство декодирования может определять, существует ли значимый коэффициент во второй области иной, чем первая область, в верхнем-левом текущем блоке (S1540).[324] According to an example, the decoding apparatus may determine whether there is a significant coefficient in a second region other than the first region in the upper-left current block (S1540).

[325] Устройство декодирования может установить вторую переменную или вторую флаговую информацию, указывающую, существует ли значимый коэффициент во второй области за исключением первой области, в 1, и когда не имеется значимого коэффициента во второй области, вторая флаговая информация может быть оставлена как 1, и индекс LFNST может анализироваться.[325] The decoding apparatus may set a second variable or second flag information indicating whether there is a significant coefficient in the second region excluding the first region to 1, and when there is no significant coefficient in the second region, the second flag information may be left as 1. and the LFNST index can be analyzed.

[326] Вторая флаговая информация может представлять собой переменную LfnstZeroOutSigCoeffFlag, которая может указывать, что обнуление выполняется, когда применяется LFNST. Вторая флаговая информация первоначально установлена в 1, и когда значимый коэффициент существует во второй области, вторая флаговая информация может быть изменена в 0.[326] The second flag information may be a variable LfnstZeroOutSigCoeffFlag, which may indicate that zeroing is performed when LFNST is applied. The second flag information is initially set to 1, and when a significant coefficient exists in the second region, the second flag information may be changed to 0.

[327] Переменная LfnstZeroOutSigCoeffFlag может выводиться как 0, когда индекс подблока, в котором существует последний ненулевой коэффициент, больше, чем 0, и ширина и высота блока преобразования больше, чем 4 [(lastSubBlock > 0 && log2TbWidth >= 2 && log2TbHeight >= 2)], или когда последняя позиция ненулевого коэффициента в подблоке, в котором существует последний ненулевой коэффициент, больше, чем 7, и размер блока преобразования равен 4×4 или 8×8 [(lastScanPos > 7 && (log2TbWidth == 2 | | log2TbHeight == 3) && log2TbWidth == log2TbHeight)].[327] The variable LfnstZeroOutSigCoeffFlag may be output as 0 when the index of the subblock in which the last non-zero coefficient exists is greater than 0 and the width and height of the conversion block is greater than 4 [(lastSubBlock > 0 && log2TbWidth >= 2 && log2TbHeight >= 2)], or when the last non-zero coefficient position in the sub-block in which the last non-zero coefficient exists is greater than 7 and the transform block size is 4x4 or 8x8 [(lastScanPos > 7 && (log2TbWidth == 2 | | log2TbHeight == 3) && log2TbWidth == log2TbHeight)].

[328] То есть, в блоке преобразования, когда ненулевые коэффициенты выводятся из областей иных, чем верхняя-левая область, где могут существовать коэффициенты преобразования LFNST, или для блоков 4×4 и блоков 8×8, когда ненулевой коэффициент существует вне 8-ой позиции в порядке сканирования, переменная LfnstZeroOutSigCoeffFlag установлена в 0. В этом случае, индекс LFNST не анализируется.[328] That is, in a transform block, when non-zero coefficients are derived from regions other than the top-left region where LFNST transform coefficients may exist, or for 4x4 blocks and 8x8 blocks, when a non-zero coefficient exists outside the 8- 0th position in the scan order, the LfnstZeroOutSigCoeffFlag variable is set to 0. In this case, the LFNST index is not analyzed.

[329] Первая область может быть выведена на основе размера текущего блока.[329] The first region may be inferred based on the size of the current block.

[330] Например, когда размер текущего блока равен 4×4 или 8×8, первая область может быть сверху-слева текущего блока до позиции восьмой выборки в направлении сканирования.[330] For example, when the size of the current block is 4x4 or 8x8, the first region may be from the top-left of the current block to the eighth sample position in the scan direction.

[331] Когда размер текущего блока равен 4×4 или 8×8, поскольку 8 данных выводятся посредством прямого LFNST, 8 коэффициентов преобразования, принятых устройством декодирования, могут быть скомпонованы от положения сверху-слева текущего блока до позиции 8-ой выборки в направлении сканирования, как на фиг. 12(a) и фиг. 13(a).[331] When the size of the current block is 4×4 or 8×8, since 8 data are output by forward LFNST, 8 transform coefficients received by the decoding device can be arranged from the top-left position of the current block to the 8th sample position in the direction scanning, as in Fig. 12(a) and FIG. 13(a).

[332] Также, когда размер текущего блока не равен 4×4 или 8×8, первая область может быть областью 4×4 сверху-слева текущего блока. Если размер текущего блока не равен 4×4 или 8×8, поскольку 16 данных выводятся посредством прямого LFNST, 16 коэффициентов преобразования, принятых устройством декодирования, могут быть скомпонованы в верхней-левой области 4×4 текущего блока, как показано на фиг. 12(b)-(d) и фиг. 13(b).[332] Also, when the size of the current block is not 4×4 or 8×8, the first area may be a 4×4 area at the top-left of the current block. If the size of the current block is not 4×4 or 8×8, since 16 data is output by forward LFNST, 16 transform coefficients received by the decoding apparatus can be arranged in the upper-left 4×4 area of the current block, as shown in FIG. 12(b)-(d) and FIG. 13(b).

[333] Между тем, коэффициенты преобразования, которые могут компоноваться в первой области, могут быть скомпонованы вдоль направления диагонального сканирования, как показано на фиг. 7.[333] Meanwhile, the transformation coefficients that can be arranged in the first region can be arranged along the diagonal scanning direction, as shown in FIG. 7.

[334] Также, в соответствии с примером, максимальное число коэффициентов преобразования, которые могут существовать в блоке, к которому применяется LFNST, может составлять 16.[334] Also, according to the example, the maximum number of transform coefficients that can exist in a block to which LFNST is applied can be 16.

[335] Устройство декодирования может получать, посредством анализа, индекс LFNST из битового потока, когда определено, что позиция последнего значимого коэффициента в подблоке, имеющем индекс 0, равна или больше, чем 0, и значимый коэффициент не существует во второй области (S1550).[335] The decoding apparatus may obtain, by analysis, the index LFNST from the bit stream when it is determined that the position of the last significant coefficient in the subblock having index 0 is equal to or greater than 0, and the significant coefficient does not exist in the second region (S1550) .

[336] Иными словами, когда первая флаговая информация указывает, что значимый коэффициент существует в области иной, чем DC область, и вторая флаговая информация указывает, что не имеется значимого коэффициента во второй области, устройство декодирования может получать, посредством анализа, индекс LFNST из битового потока.[336] In other words, when the first flag information indicates that a significant coefficient exists in a region other than the DC region, and the second flag information indicates that there is no significant coefficient in the second region, the decoding device can obtain, by analysis, the index LFNST from bit stream.

[337] То есть, когда первая флаговая информация, которая была установлена в 1, изменяется в 0, и вторая флаговая информация сохраняется как 1, индекс LFNST может анализироваться. Иными словами, имеется значимый коэффициент в подблоке, включающем в себя DC область, то есть, верхний-левый блок 4×4, в дополнение к DC области, и когда значимый коэффициент не существует, при проверке значимого коэффициента вплоть до второй области текущего блока, индекс LFNST для LFNST может анализироваться.[337] That is, when the first flag information, which was set to 1, is changed to 0, and the second flag information is stored as 1, the index LFNST can be analyzed. In other words, there is a significant coefficient in the sub-block including the DC region, that is, the top-left 4x4 block, in addition to the DC region, and when the significant coefficient does not exist, when testing the significant coefficient up to the second region of the current block, the LFNST index for LFNST can be analyzed.

[338] В итоге, на уровне единицы кодирования, первая флаговая информация LfnstDcOnly и вторая флаговая информация LfnstZeroOutSigCoeffFlag устанавливаются в 1, соответственно, и затем заново выводятся в процессе, показанном в Таблице 8, на уровне кодирования остатка. Только когда переменная LfnstDcOnly, выведенная на уровне кодирования остатка, равна 0, и переменная LfnstZeroOutSigCoeffFlag равна 1 [if(LfnstDcOnly== 0 && LfnstZeroOutSigCoeffFlag== 1), lfnst_idx может сигнализироваться на уровне единицы кодирования.[338] Finally, at the encoding unit level, the first flag information LfnstDcOnly and the second flag information LfnstZeroOutSigCoeffFlag are set to 1, respectively, and then re-output in the process shown in Table 8 at the remainder encoding level. Only when the variable LfnstDcOnly output at the remainder encoding level is 0 and the variable LfnstZeroOutSigCoeffFlag is equal to 1 [if(LfnstDcOnly== 0 && LfnstZeroOutSigCoeffFlag== 1), lfnst_idx can be signaled at the encoding unit level.

[339] Как описано выше, когда прямое LFNST выполняется устройством кодирования, обнуление, в котором остальные области текущего блока, за исключением области, в которой могут существовать коэффициенты преобразования LFNST, может выполняться как 0.[339] As described above, when forward LFNST is performed by the encoder, zeroing in which the remaining areas of the current block, except for the area in which LFNST transform coefficients may exist, may be performed as 0.

[341] Поэтому, когда значимый коэффициент существует во второй области, ясно, что LFNST не применяется, поэтому индекс LFNST не сигнализируется, и устройство декодирования не анализирует индекс LFNST.[341] Therefore, when a significant coefficient exists in the second region, it is clear that LFNST is not applied, so the LFNST index is not signaled, and the decoding apparatus does not analyze the LFNST index.

[342] Информация индекса LFNST принимается как синтаксическая информация, и синтаксическая информация принимается как бинаризованная строка бина, включающая 0 и 1.[342] The LFNST index information is received as syntax information, and the syntax information is received as a binarized bin string including 0 and 1.

[342] Синтаксический элемент индекса LFNST в соответствии с этим вариантом осуществления может указывать, применяется ли обратное LFNST или обратное неразделимое преобразование, и любую одну из матриц ядра преобразования, включенных в набор преобразований, и набор преобразований включает в себя две матрицы ядра преобразования. В этом случае, синтаксический элемент индекса преобразование может иметь три значения.[342] The index syntax element LFNST according to this embodiment may indicate whether an inverse LFNST or an inverse non-separable transform is applied, and any one of the transform kernel matrices included in the transform set, and the transform set includes two transform kernel matrices. In this case, the transform index syntax element can have three meanings.

[343] То есть, в соответствии с вариантом осуществления, значение синтаксического элемента для индекса LFNST может быть 0, указывая случай, в котором обратное LFNST не применяется к целевому блоку, 1, указывая первую матрицу ядра преобразования из матриц ядра преобразования, и 2, указывая вторую матрицу ядра преобразования из матриц ядра преобразования.[343] That is, according to an embodiment, the value of the syntax element for the LFNST index may be 0, indicating a case in which the reverse LFNST is not applied to the target block, 1, indicating the first transformation kernel matrix of the transformation kernel matrices, and 2, indicating a second transformation kernel matrix of the transformation kernel matrices.

[344] Когда индекс LFNST проанализирован, устройство декодирования может применять матрицу LFNST к коэффициентам преобразования первой области для выведения модифицированных коэффициентов преобразования (S1560).[344] When the LFNST index is analyzed, the decoding apparatus may apply the LFNST matrix to the transform coefficients of the first region to output modified transform coefficients (S1560).

[345] Обратный преобразователь 232 устройства 200 декодирования может определять набор преобразований на основе отношения отображения в соответствии с режимом интра-предсказания, применимым к текущему блоку, и может выполнять обратное LFNST, то есть, обратное неразделимое преобразование на основе набора преобразований и значений синтаксических элементов для индекса LFNST.[345] The inverse transformer 232 of the decoding device 200 can determine a set of transforms based on the mapping relationship in accordance with the intra-prediction mode applicable to the current block, and can perform an inverse LFNST, that is, an inverse non-separable transform, based on the set of transforms and the values of syntax elements for the LFNST index.

[346] Как описано выше, множество наборов преобразований может определяться в соответствии с режимом интра-предсказания блока преобразования, подлежащего преобразованию, и обратное LFNST может выполняться на основе любой одной из матриц ядра преобразования, то есть, матриц LFNST, включенных в набор преобразований, указанных индексом LFNST. Матрица, применяемая к обратному LFNST, может именоваться матрицей обратного LFNST или матрицей LFNST, и наименование этой матрицы не существенно, при условии, что она имеет отношение транспонирования с матрицей, используемой для прямого LFNST.[346] As described above, a plurality of transformation sets may be determined in accordance with the intra-prediction mode of a transformation block to be transformed, and the inverse LFNST may be performed based on any one of the transformation kernel matrices, that is, the LFNST matrices included in the transformation set, indicated by the LFNST index. The matrix applied to the inverse LFNST may be referred to as the inverse LFNST matrix or LFNST matrix, and the name of the matrix is not significant, provided that it has a transpose relationship with the matrix used for the forward LFNST.

[347] В одном примере, матрица обратного LFNST может быть неквадратной матрицей, в которой число столбцов меньше, чем число строк.[347] In one example, the inverse LFNST matrix may be a non-square matrix in which the number of columns is less than the number of rows.

[348] Между тем, предопределенное число модифицированных коэффициентов преобразования может быть выведено на основе размера текущего блока. Например, когда высота и ширина текущего блока равны 8 или более, 48 модифицированных коэффициентов преобразования выводятся, как показано слева на фиг. 6. И когда ширина и высота текущего блока не равны или больше, чем 8, то есть, когда ширина и высота текущего блока больше или равны 4 и ширина или высота текущего блока меньше, чем 8, 16 модифицированных коэффициентов преобразования могут быть выведены, как показано справа на фиг. 6.[348] Meanwhile, a predetermined number of modified transform coefficients can be derived based on the size of the current block. For example, when the height and width of the current block are 8 or more, 48 modified transform coefficients are output as shown on the left in FIG. 6. And when the width and height of the current block is not equal to or greater than 8, that is, when the width and height of the current block is greater than or equal to 4 and the width or height of the current block is less than 8, 16 modified conversion coefficients can be output as shown on the right in Fig. 6.

[349] Как показано на фиг. 6, 48 модифицированных коэффициентов преобразования могут быть скомпонованы в верхней-левой, верхней-правой и нижней-левой областях 4×4 верхней-левой области 8×8 текущего блока, и 16 модифицированных коэффициентов преобразования могут быть скомпонованы в верхней-левой области 4×4 текущего блока.[349] As shown in FIG. 6, 48 modified transform coefficients can be arranged in the upper-left, upper-right and lower-left 4×4 areas of the upper-left 8×8 area of the current block, and 16 modified transform coefficients can be arranged in the upper-left 4× area 4 current blocks.

[350] 48 модифицированных коэффициентов преобразования и 16 модифицированных коэффициентов преобразования могут быть скомпонованы в вертикальном или горизонтальном направлении в соответствии с режимом интра-предсказания текущего блока. Например, в случае режима интра-предсказания в горизонтальном направлении (режимы 2-34 на фиг. 8) на основе диагонального направления (режим 34 на фиг. 8), модифицированные коэффициенты преобразования могут быть скомпонованы в горизонтальном направлении, то есть, в направлении сначала по строке, как показано на фиг. 6(a). В случае режима интра-предсказания в вертикальном направлении (режимы от 35 до 66 на фиг. 8) на основе диагонального направления, модифицированные коэффициенты преобразования могут быть скомпонованы в вертикальном направлении, то есть, в направлении сначала по столбцу, как показано на фиг. 6(b).[350] 48 modified transform coefficients and 16 modified transform coefficients can be arranged in the vertical or horizontal direction according to the intra-prediction mode of the current block. For example, in the case of an intra-prediction mode in the horizontal direction (modes 2-34 in FIG. 8) based on the diagonal direction (mode 34 in FIG. 8), the modified transform coefficients can be arranged in the horizontal direction, that is, in the first direction along the line, as shown in Fig. 6(a). In the case of the vertical direction intra-prediction mode (modes 35 to 66 in FIG. 8) based on the diagonal direction, the modified transform coefficients can be arranged in the vertical direction, that is, in the column first direction, as shown in FIG. 6(b).

[351] В одном варианте осуществления, S1560 может включать в себя декодирование индекса преобразования, определение, соответствует ли он условиям применения обратного RST, на основе индекса преобразования, то есть индекса LFNST, выбор матрицы ядра преобразования и применение обратного LFNST к коэффициентам преобразования на основе выбранной матрицы ядра преобразования и/или коэффициента упрощения, когда условия для применения обратного LFNST удовлетворяются. В этом случае, размер матрицы обратного преобразования с упрощением может определяться на основе коэффициента упрощения.[351] In one embodiment, S1560 may include decoding the transform index, determining whether it qualifies for applying the inverse RST based on the transform index, i.e., the LFNST index, selecting a transform kernel matrix, and applying the inverse LFNST to the transform coefficients based on the selected transformation kernel matrix and/or simplification factor when the conditions for applying the inverse LFNST are satisfied. In this case, the size of the inverse transformation matrix with simplification can be determined based on the simplification factor.

[352] Со ссылкой на S1560, может быть подтверждено, что остаточные выборки для целевого блока выведены на основе обратного LFNST коэффициента преобразования для целевого блока. Касательно размера матрицы обратного преобразования, размер матрицы обычного обратного преобразования составляет N×N, в то время как размер матрицы обратного LFNST сокращен до N×R, делая возможным сокращение занятости памяти в отношении R/N при выполнении обратного LFNST по сравнению с тем, когда выполняется обычное преобразование. Кроме того, по сравнению с числом операций умножения, N×N, при использовании матрицы обычного преобразования, можно сократить число операций умножения в отношении R/N (до N×R), когда используется матрица обратного LFNST. Кроме того, поскольку только R коэффициентов преобразования требуется декодировать, когда применяется обратное LFNST, общее число коэффициентов преобразования для целевого блока может быть сокращено от N до R, по сравнению с тем, когда применяется обычное обратное преобразование, в котором необходимо декодировать N коэффициентов преобразования, следовательно, повышается эффективность декодирования. То есть, в соответствии с S1560, эффективность (обратного) преобразования и эффективность декодирования устройства 200 декодирования могут быть повышены с помощью обратного LFNST.[352] With reference to S1560, it can be confirmed that the residual samples for the target block are derived based on the inverse transform coefficient LFNST for the target block. Regarding the size of the inverse transform matrix, the size of the normal inverse transform matrix is N×N, while the size of the inverse LFNST matrix is reduced to N×R, making it possible to reduce the memory occupancy in the R/N ratio when performing inverse LFNST compared to when normal conversion is performed. In addition, compared with the number of multiplication operations, N×N, when using a conventional transformation matrix, the number of multiplication operations in the ratio R/N can be reduced (to N×R) when an inverse matrix LFNST is used. In addition, since only R transform coefficients need to be decoded when inverse LFNST is applied, the total number of transform coefficients for the target block can be reduced from N to R, compared to when conventional inverse transform is applied in which N transform coefficients need to be decoded. therefore, decoding efficiency is improved. That is, according to S1560, the (inverse) conversion efficiency and decoding efficiency of the decoding device 200 can be improved by using the inverse LFNST.

[353] Устройство 200 декодирования в соответствии с вариантом осуществления может выводить остаточные выборки для целевого блока на основе обратного первичного преобразования для модифицированных коэффициентов преобразования (S1570).[353] The decoding apparatus 200 according to an embodiment can output residual samples for a target block based on the inverse primary transform for the modified transform coefficients (S1570).

[354] С другой стороны, когда LFNST не применяется, только основанная на MTS процедура обратного преобразования может применяться в процедуре обратного преобразования следующим образом. То есть, устройство декодирования может определять, применяется ли LFNST к текущему блоку, как в вышеописанном варианте осуществления, и когда LFNST не применяется, устройство декодирования может выводить остаточные выборки из коэффициентов преобразования посредством первичного обратного преобразования.[354] On the other hand, when LFNST is not applied, only the MTS-based inverse transform procedure can be applied in the inverse transform procedure as follows. That is, the decoding device can determine whether LFNST is applied to the current block, as in the above-described embodiment, and when LFNST is not applied, the decoding device can output residual samples from the transform coefficients through the primary inverse transform.

[355] Устройство декодирования может определять, что LFNST не применяется, когда значимые коэффициенты существуют во второй области иной, чем первая верхняя-левая область текущего блока, и может выводить остаточные выборки из коэффициентов преобразования посредством первичного обратного преобразования.[355] The decoding apparatus may determine that LFNST is not applied when significant coefficients exist in a second region other than the first top-left region of the current block, and may derive residual samples from the transform coefficients through a primary inverse transform.

[356] Процедура первичного обратного преобразования может упоминаться как процедура обратного первичного преобразования или процедура обратного MTS преобразования. Такая основанная на MTS процедура первичного обратного преобразования может также быть опущена в некоторых случаях.[356] The inverse primary transform procedure may be referred to as the inverse primary transform procedure or the inverse MTS transform procedure. Such an MTS-based initial inversion procedure may also be omitted in some cases.

[357] Кроме того, упрощенное обратное преобразование может применяться для обратного первичного преобразования, или может использоваться обычное разделимое преобразование.[357] Additionally, a simplified inverse transform can be used to inverse the primary transform, or a regular separable transform can be used.

[358] Устройство 200 декодирования в соответствии с вариантом осуществления может генерировать восстановленные выборки на основе остаточных выборок текущего блока и выборок предсказания текущего блока (S1580).[358] The decoding apparatus 200 according to an embodiment can generate reconstructed samples based on the residual samples of the current block and the prediction samples of the current block (S1580).

[359] Следующие чертежи обеспечены для описания конкретных примеров настоящего раскрытия. Поскольку конкретные обозначения устройств или обозначения конкретных сигналов/сообщений/полей, показанных на чертежах, обеспечены для иллюстрации, технические признаки настоящего раскрытия не ограничены конкретными обозначениями, используемыми в следующих чертежах.[359] The following drawings are provided to describe specific examples of the present disclosure. While specific device designations or designations of particular signals/messages/fields shown in the drawings are provided for illustration purposes, the technical features of the present disclosure are not limited to the specific designations used in the following drawings.

[360] Фиг. 16 является блок-схемой последовательности операций, иллюстрирующей работу устройства кодирования видео в соответствии с вариантом осуществления настоящего раскрытия.[360] FIG. 16 is a flowchart illustrating the operation of a video encoding apparatus in accordance with an embodiment of the present disclosure.

[361] Каждая операция, показанная на фиг. 16, может выполняться устройством 100 кодирования, показанным на фиг. 1. Конкретно, S1610 может выполняться предсказателем 120, показанным на фиг. 1, S1620 может выполняться вычитателем 131, показанным на фиг. 1, S1630-S1650 могут выполняться преобразователем 132, показанным на фиг. 1, и S1660 и S1670 могут выполняться квантователем 133 и энтропийным кодером 240, показанным на фиг. 1. Операции в соответствии с S1610-S1670 основаны на некотором из содержания, описанного на фиг. 3 - фиг. 14. Поэтому, описание конкретных подробностей, перекрывающимися с теми, которые были пояснены выше со ссылкой на фиг. 3 - фиг. 14, будет опущено или будет приведено кратко.[361] Each operation shown in FIG. 16 may be performed by the encoding device 100 shown in FIG. 1. Specifically, S1610 may be performed by the predictor 120 shown in FIG. 1, S1620 may be performed by the subtractor 131 shown in FIG. 1, S1630-S1650 may be performed by the converter 132 shown in FIG. 1, both S1660 and S1670 may be performed by the quantizer 133 and entropy encoder 240 shown in FIG. 1. Operations according to S1610-S1670 are based on some of the contents described in FIG. 3 - fig. 14. Therefore, a description of specific details overlapping those explained above with reference to FIG. 3 - fig. 14 will be omitted or given briefly.

[362] Устройство 100 кодирования в соответствии с вариантом осуществления может выводить выборки предсказания на основе режима интра-предсказания, применимого к текущему блоку (S1610).[362] The encoding device 100 according to an embodiment can output prediction samples based on the intra-prediction mode applicable to the current block (S1610).

[363] Устройство 100 кодирования в соответствии с вариантом осуществления может выводить остаточные выборки для текущего блока на основе выборок предсказания (S1620).[363] The encoding device 100 according to an embodiment can output residual samples for the current block based on the prediction samples (S1620).

[364] Устройство 100 кодирования в соответствии с вариантом осуществления может выводить коэффициенты преобразования для целевого блока на основе первичного преобразования для остаточных выборок (S1630).[364] The encoder 100 according to an embodiment can output transform coefficients for a target block based on the primary transform for residual samples (S1630).

[365] Первичное преобразование может выполняться посредством множества ядер преобразования и в этом случае, ядро преобразования может быть выбрано на основе режима интра-предсказания.[365] The primary transformation may be performed by a plurality of transformation kernels, and in this case, the transformation kernel may be selected based on the intra-prediction mode.

[366] Устройство 100 кодирования может определять, следует ли выполнять вторичное преобразование или неразделимое преобразование, конкретно, LFNST, на коэффициентах преобразования для текущего блока.[366] Encoder 100 can determine whether to perform a secondary transform or an inseparable transform, specifically LFNST, on the transform coefficients for the current block.

[367] Когда определено выполнять LFNST, устройство 100 кодирования может выводить модифицированные коэффициенты преобразования для текущего блока на основе коэффициентов преобразования первой области сверху-слева текущего блока и предопределенной матрицы LFNST (S1640).[367] When it is determined to perform LFNST, the encoder 100 may output modified transform coefficients for the current block based on the transform coefficients of the first top-left region of the current block and the predetermined LFNST matrix (S1640).

[368] Устройство 100 кодирования может определять набор преобразований на основе отношения отображения в соответствии с режимом интра-предсказания, применяемым к текущему блоку, и может выполнять LFNST, то есть, неразделимое преобразование на основе одной из двух матриц LFNST, включенных в набор преобразований.[368] The encoding apparatus 100 may determine a transform set based on a mapping relationship in accordance with the intra-prediction mode applied to the current block, and may perform an LFNST, that is, a non-separable transform, based on one of the two LFNST matrices included in the transform set.

[369] Как описано выше, множество наборов преобразований может определяться в соответствии с режимом интра-предсказания блока преобразования, подлежащего преобразованию. Матрица, применяемая к LFNST, имеет отношение транспонирования с матрицей, используемой для обратного LFNST.[369] As described above, a plurality of transform sets may be determined in accordance with the intra-prediction mode of a transform block to be transformed. The matrix applied to LFNST has a transpose relationship with the matrix used to reverse LFNST.

[370] В одном примере, матрица LFNST может быть неквадратной матрицей, в которой число строк меньше, чем число столбцов.[370] In one example, the matrix LFNST may be a non-square matrix in which the number of rows is less than the number of columns.

[371] Первая область может быть выведена на основе размера текущего блока. Например, когда высота и ширина текущего блока больше или равна 8, первая область является областью 4×4 сверху-слева, сверху-справа и снизу-слева области 8×8 сверху-слева текущего блока, как показано слева на фиг. 6. Когда высота и ширина текущего блока не равны или больше, чем 8, первая область может быть областью 4×4 сверху-слева текущего блока, как показано справа на фиг. 6.[371] The first region may be inferred based on the size of the current block. For example, when the height and width of the current block are greater than or equal to 8, the first region is a 4x4 region of the top-left, top-right, and bottom-left of the 8x8 region of the top-left of the current block, as shown on the left in FIG. 6. When the height and width of the current block are not equal to or greater than 8, the first region may be a 4x4 region at the top-left of the current block, as shown on the right in FIG. 6.

[372] Коэффициенты преобразования первой области могут считываться в вертикальном или горизонтальном направлении в соответствии с режимом интра-предсказания текущего блока и компоноваться одномерно для операции умножения на матрицу LFNST.[372] The transform coefficients of the first region may be read in the vertical or horizontal direction in accordance with the intra-prediction mode of the current block and arranged one-dimensionally for a multiplication operation by the matrix LFNST.

[373] 48 модифицированных коэффициентов преобразования или 16 модифицированных коэффициентов преобразования первой области могут считываться в вертикальном или горизонтальном направлении в соответствии с режимом интра-предсказания текущего блока и компоноваться в одной размерности. Например, в случае режима интра-предсказания в горизонтальном направлении (режимы от 2 до 34 на фиг. 8) на основе диагонального направления (режим 34 на фиг. 8), коэффициенты преобразования могут быть скомпонованы в горизонтальном направлении, то есть, в направлении сначала по строке, как показано на фиг. 6(a). В случае режима интра-предсказания в вертикальном направлении (режимы от 35 до 66 на фиг. 8) на основе диагонального направления, коэффициенты преобразования могут быть скомпонованы в вертикальном направлении, то есть, в направлении сначала по столбцу, как показано на фиг. 6(b).[373] The 48 modified transform coefficients or 16 modified transform coefficients of the first region can be read in the vertical or horizontal direction according to the intra-prediction mode of the current block and arranged in one dimension. For example, in the case of an intra-prediction mode in the horizontal direction (modes 2 to 34 in FIG. 8) based on the diagonal direction (mode 34 in FIG. 8), the transformation coefficients can be arranged in the horizontal direction, that is, in the first direction along the line, as shown in Fig. 6(a). In the case of the vertical direction intra-prediction mode (modes 35 to 66 in FIG. 8) based on the diagonal direction, the transformation coefficients can be arranged in the vertical direction, that is, in the column first direction, as shown in FIG. 6(b).

[374] В одном примере, LFNST может выполняться на основе упрощенной матрицы преобразования или матрицы ядра преобразования, и упрощенная матрица преобразование может быть неквадратной матрицей, в которой число строк меньше, чем число столбцов.[374] In one example, LFNST may be performed based on a simplified transformation matrix or a transformation kernel matrix, and the simplified transformation matrix may be a non-square matrix in which the number of rows is less than the number of columns.

[375] В одном варианте осуществления, S1640 может включать в себя определение, удовлетворяются ли условия для применения LFNST, генерацию и кодирование индекса LFNST на основе определения, выбор матрицы ядра преобразования и применение LFNST к остаточным выборкам на основе выбранной матрицы ядра преобразования и/или коэффициента упрощения, когда условия для применения LFNST удовлетворяются. В этом случае, размер упрощенной матрицы преобразования может определяться на основе коэффициента упрощения.[375] In one embodiment, S1640 may include determining whether conditions for applying LFNST are satisfied, generating and encoding an LFNST index based on the determination, selecting a transformation kernel matrix, and applying LFNST to the residual samples based on the selected transformation kernel matrix and/or simplification factor when the conditions for applying LFNST are satisfied. In this case, the size of the simplified transformation matrix may be determined based on the simplification factor.

[376] Со ссылкой на S1640, может быть подтверждено, что коэффициенты преобразования для целевого блока выводятся на основе LFNST для остаточных выборок. Касательно размера матрицы ядра преобразования, размер обычной матрицы ядра преобразования составляет N×N, в то время как размер упрощенной матрицы преобразования сокращен до R×N, тем самым позволяя сократить занятость памяти в отношении R/N при выполнении RST по сравнению с выполнением обычного преобразования. Кроме того, по сравнению с числом операций умножения, N×N, при использовании обычной матрицы ядра преобразования, можно сократить число операций умножения в отношении R/N (до R×N), когда используется упрощенная матрица ядра преобразования. Кроме того, поскольку выводится только R коэффициентов преобразования, когда применяется RST, общее число коэффициентов преобразования для целевого блока может быть сокращено с N до R, по сравнению с тем, когда применяется обычное преобразование, в котором выводятся N коэффициентов преобразования, тем самым сокращая объем данных, передаваемых устройством 100 кодирования на устройство 200 декодирования. То есть, в соответствии с S1640, эффективность преобразования и эффективность кодирования устройства 100 кодирования могут быть повышены посредством LFNST.[376] With reference to S1640, it can be confirmed that the transformation coefficients for the target block are derived based on the LFNST for the residual samples. Regarding the size of the transformation kernel matrix, the size of the conventional transformation kernel matrix is N×N, while the size of the simplified transformation matrix is reduced to R×N, thereby reducing the memory occupancy in terms of R/N when performing RST compared to performing a conventional transformation . In addition, compared to the number of multiplication operations, N×N, when using a conventional transformation kernel matrix, it is possible to reduce the number of multiplication operations in the ratio R/N (to R×N) when a simplified transformation kernel matrix is used. In addition, since only R transform coefficients are output when RST is applied, the total number of transform coefficients for the target block can be reduced from N to R, compared with when conventional transform is applied in which N transform coefficients are output, thereby reducing the volume data transmitted by the encoding device 100 to the decoding device 200. That is, according to S1640, the conversion efficiency and encoding efficiency of the encoder 100 can be improved by LFNST.

[377] Между тем, в соответствии с примером, устройство кодирования может обнулять вторую область текущего блока, в которой не существуют модифицированные коэффициенты преобразования (S1650).[377] Meanwhile, according to the example, the encoding device may reset the second area of the current block in which modified transform coefficients do not exist (S1650).

[378] Как показано на фиг. 12 и 13, все оставшиеся области текущего блока, в которых не существуют модифицированные коэффициенты преобразования, могут обрабатываться как нули. Вследствие обнуления, объем вычислений, требуемых для выполнения всего процесса преобразования, сокращается, и объем вычислений, требуемых для всего процесса преобразования, сокращается, тем самым снижая энергопотребление, требуемое для выполнения преобразования. Кроме того, эффективность кодирования изображения может быть повышена за счет снижения времени ожидания, связанного с процессом преобразования.[378] As shown in FIG. 12 and 13, all remaining regions of the current block in which modified transform coefficients do not exist may be treated as zeros. Due to zeroing, the amount of computation required to perform the entire conversion process is reduced, and the amount of computation required for the entire conversion process is reduced, thereby reducing the power consumption required to perform the conversion. In addition, the efficiency of image encoding can be improved by reducing the latency associated with the conversion process.

[379] С другой стороны, когда LFNST не применяется, только основанная на MTS процедура первичного преобразования может применяться в процедуре преобразования, как описано выше. То есть, устройство кодирования может определять, применяется ли LFNST к текущему блоку, как в вышеописанном варианте осуществления, и когда LFNST не применяется, устройство кодирования может выводить коэффициенты преобразования из остаточных выборок посредством первичного преобразования.[379] On the other hand, when LFNST is not applied, only the MTS-based primary conversion procedure can be applied in the conversion procedure as described above. That is, the encoder can determine whether LFNST is applied to the current block, as in the above-described embodiment, and when LFNST is not applied, the encoder can derive transform coefficients from the residual samples through a primary transform.

[380] Эта процедура первичного преобразования может упоминаться как процедура первичного преобразования или процедура MTS преобразования. Такая основанная на MTS процедура первичного преобразования может также опускаться в некоторых случаях.[380] This primary transformation procedure may be referred to as a primary transformation procedure or an MTS transformation procedure. Such an MTS-based primary conversion procedure may also be omitted in some cases.

[381] Устройство кодирования в соответствии с примером может конфигурировать информацию изображения таким образом, что индекс LFNST, указывающий матрицу LFNST, анализируется, когда индекс подблока, включающего в себя последний значимый коэффициент в текущем блоке, равен 0, позиция последнего значимого коэффициента в подблоке равна 0 или более и не имеется значимого коэффициента во второй области (S1660).[381] The encoding apparatus according to the example may configure image information such that an index LFNST indicating a matrix LFNST is analyzed when the index of a sub-block including the last significant coefficient in the current block is 0, the position of the last significant coefficient in the sub-block is 0 or more and there is no significant coefficient in the second region (S1660).

[382] То есть, устройство кодирования в соответствии с примером может конфигурировать информацию изображения так, что индекс LFNST, указывающий матрицу LFNST, анализируется, когда значимый коэффициент существует в области, исключая DC область текущего блока, и вышеописанное обнуление выполняется.[382] That is, the encoding device according to the example can configure the image information such that the index LFNST indicating the matrix LFNST is analyzed when a significant coefficient exists in the region excluding the DC region of the current block, and the above-described nulling is performed.

[383] Устройство кодирования может конфигурировать информацию изображения таким образом, что информация изображения, показанная в Таблицах 6 и 8, может анализироваться устройством декодирования.[383] The encoding apparatus may configure image information such that the image information shown in Tables 6 and 8 can be analyzed by the decoding apparatus.

[384] В соответствии с примером, когда индекс подблока, включающего в себя последний значимый коэффициент в текущем блоке, равен 0, и позиция последнего значимого коэффициента в подблоке больше, чем 0, определяется, что значимый коэффициент существует в области иной, чем DC область, и информация изображения может быть сконфигурирована так, что индекс LFNST передается или сигнализируется. В настоящем документе, первой позицией в порядке сканирования может быть 0.[384] According to an example, when the index of a sub-block including the last significant coefficient in the current block is 0, and the position of the last significant coefficient in the sub-block is greater than 0, it is determined that the significant coefficient exists in a region other than the DC region , and the image information may be configured such that the LFNST index is transmitted or signaled. In this document, the first position in the scanning order may be 0.

[385] Кроме того, в соответствии с примером, когда индекс подблока, включающего в себя последний значимый коэффициент в текущем блоке, больше, чем 0, и ширина и высота текущего блока равны 4 или более, определяется, что это ясно указывает, что LFNST не применяется, и информация изображения может быть сконфигурирована так, что индекс LFNST не сигнализируется.[385] In addition, according to the example, when the index of a sub-block including the last significant coefficient in the current block is greater than 0, and the width and height of the current block are 4 or more, it is determined that this clearly indicates that LFNST is not applied, and the image information can be configured such that the LFNST index is not signaled.

[386] Кроме того, в соответствии с примером, когда размер текущего блока составляет 4×4 или 8×8, и началом позиции в порядке сканирования является 0, позиция последнего значимого коэффициента больше, чем 7, устройство кодирования может определять, что это ясно указывает, что LFNST не применяется, и конфигурировать информацию изображения так, что индекс LFNST не сигнализируется.[386] In addition, according to the example, when the size of the current block is 4×4 or 8×8, and the start of the position in the scan order is 0, the position of the last significant coefficient is greater than 7, the encoding device may determine that it is clear indicates that LFNST is not applied, and configure the image information such that the LFNST index is not signaled.

[387] То есть, устройство кодирования может конфигурировать информацию изображения так, что индекс LFNST может анализироваться в соответствии со значением выведенной переменной после того, как переменная LfnstDcOnly, соответствующая первой флаговой информации, и переменная LfnstZeroOutSigCoeffFlag, соответствующая второй флаговой информации, выведены в устройстве декодирования.[387] That is, the encoding device can configure the image information so that the index LFNST can be analyzed according to the value of the output variable after the variable LfnstDcOnly corresponding to the first flag information and the variable LfnstZeroOutSigCoeffFlag corresponding to the second flag information are output in the decoding device .

[388] Например, устройство кодирования устанавливает первую флаговую информацию, указывающую является ли позиция последнего значимого коэффициента большей, чем 0, в подблоке, имеющем индекс 0, в 1, когда позиция последнего значимого коэффициента в подблоке, имеющем индекс 0, больше, чем 0, первая флаговая информация изменяется в 0. В этом случае, индекс LFNST может быть закодирован.[388] For example, the encoder sets the first flag information indicating whether the position of the last significant coefficient is greater than 0 in the sub-block having index 0 to 1 when the position of the last significant coefficient in the sub-block having index 0 is greater than 0 , the first flag information is changed to 0. In this case, the index LFNST can be encoded.

[389] Кроме того, устройство кодирования устанавливает вторую флаговую информацию, указывающую, существует ли значимый коэффициент во второй области за исключением первой области, в 1, когда значимый коэффициент не существует во второй области, вторая флаговая информация может быть оставлена как 1. В этом случае, индекс LFNST может быть закодирован.[389] In addition, the encoding device sets second flag information indicating whether a significant coefficient exists in the second region except for the first region to 1, when a significant coefficient does not exist in the second region, the second flag information may be left as 1. In this case, the LFNST index may be encoded.

[390] С другой стороны, когда индекс подблока, включающего в себя последний значимый коэффициент в текущем блоке, больше, чем 0, и ширина и высота текущего блока равны 4 или более, устройство кодирования может изменить вторую флаговую информацию в 0, или когда размер текущего блока составляет 4×4 или 8×8, и позицией последнего значимого коэффициента является 8 или более, устройство кодирования может изменить вторую флаговую информацию в 0. В этом случае, поскольку информация изображения сконфигурирована таким образом, что индекс LFNST не анализируется, индекс LFNST не кодируется.[390] On the other hand, when the index of a sub-block including the last significant coefficient in the current block is greater than 0, and the width and height of the current block are 4 or more, the encoding device may change the second flag information to 0, or when the size of the current block is 4×4 or 8×8, and the position of the last significant coefficient is 8 or more, the encoding device may change the second flag information to 0. In this case, since the image information is configured such that the LFNST index is not analyzed, the LFNST index not encoded.

[391] Устройство 100 кодирования в соответствии с вариантом осуществления может выводить квантованные коэффициенты преобразования путем выполнения квантования на основе модифицированных коэффициентов преобразования для целевого блока и может кодировать и выводить информацию изображения, включающую в себя информацию о квантованных коэффициентах преобразования и индекс LFNST (S1670).[391] The encoding apparatus 100 according to the embodiment can output quantized transform coefficients by performing quantization based on the modified transform coefficients for the target block, and can encode and output image information including quantized transform coefficient information and the LFNST index (S1670).

[392] То есть, устройство кодирования может генерировать остаточную информацию, включающую в себя информацию о квантованных коэффициентах преобразования. Остаточная информация может включать в себя вышеописанную связанную с преобразованием информацию/синтаксический элемент. Устройство кодирования может кодировать информацию изображения/видео, включая остаточную информацию, и выводить закодированную информацию изображения/видео в форме битового потока.[392] That is, the encoding device may generate residual information including information about quantized transform coefficients. The residual information may include the above-described transformation-related information/syntactic element. The encoding apparatus may encode image/video information including residual information, and output the encoded image/video information in the form of a bit stream.

[393] Более конкретно, устройство 100 кодирования может генерировать информацию о квантованных коэффициентах преобразования и кодировать информацию о сгенерированных квантованных коэффициентах преобразования.[393] More specifically, the encoding device 100 can generate information about quantized transform coefficients and encode information about the generated quantized transform coefficients.

[394] В одном примере, информация о квантованных коэффициентах преобразования может включать в себя по меньшей мере одно из информации о том, применяется ли LFNST, информации о коэффициенте упрощения, информации о минимальном размере преобразования, для которого применяется LFNST, и информации о максимальном размере преобразования, для которого применяется LFNST.[394] In one example, the information about the quantized transform coefficients may include at least one of information about whether LFNST is applied, information about a simplification factor, information about the minimum size of the transform for which LFNST is applied, and information about the maximum size transformation for which LFNST is applied.

[395] Также, устройство 100 кодирования может кодировать информацию о размере максимального применяемого блока преобразования, например, синтаксическую информацию о размере блока преобразования, такую как sps_log2_max_luma_transform_size_minus5, или флаговую информацию, такую как sps_max_luma_transform_size_64_flag, на уровне набора параметров последовательности.[395] Also, encoder 100 may encode information about the size of the maximum applicable transform block, for example, syntax information about the size of the transform block, such as sps_log2_max_luma_transform_size_minus5, or flag information, such as sps_max_luma_transform_size_64_flag, at the sequence parameter set level.

[396] В настоящем раскрытии, по меньшей мере одно из квантования/деквантования и/или преобразования/обратного преобразования может быть опущено. Когда квантование/деквантование опущено, квантованный коэффициент преобразования может упоминаться как коэффициент преобразования. Когда преобразование/обратное преобразование опущено, коэффициент преобразования может упоминаться как коэффициент или остаточный коэффициент или все еще может упоминаться как коэффициент преобразования в целях непротиворечивости выражения.[396] In the present disclosure, at least one of quantization/dequantization and/or transform/inverse transform may be omitted. When quantization/dequantization is omitted, the quantized transform coefficient may be referred to as the transform coefficient. When the transform/inverse transform is omitted, the conversion factor may be referred to as the coefficient or residual coefficient, or may still be referred to as the conversion factor for purposes of expression consistency.

[397] Кроме того, в настоящем раскрытии, квантованный коэффициент преобразования и коэффициент преобразования могут упоминаться как коэффициент преобразования и масштабированный коэффициент преобразования, соответственно. В этом случае, остаточная информация может включать в себя информацию о коэффициенте(ах) преобразования, и информация о коэффициенте(ах) преобразования может сигнализироваться посредством синтаксиса кодирования остатка. Коэффициенты преобразования могут быть выведены на основе остаточной информации (или информации о коэффициенте(ах) преобразования), и масштабированные коэффициенты преобразования могут быть выведены посредством обратного преобразования (масштабирования) коэффициентов преобразования. Остаточные выборки могут быть выведены на основе обратного преобразования (преобразования) масштабированных коэффициентов преобразования. Эти детали также могут быть применены/выражены в других частях настоящего раскрытия.[397] Moreover, in the present disclosure, the quantized transform coefficient and the transform coefficient may be referred to as the transform coefficient and the scaled transform coefficient, respectively. In this case, the residual information may include information about the transform coefficient(s), and the information about the transform coefficient(s) may be signaled by a residual encoding syntax. Transform coefficients can be derived based on the residual information (or information about the transform coefficient(s)), and scaled transform coefficients can be derived by inversely transforming (scaling) the transform coefficients. Residual samples can be inferred based on the inverse transform (transform) of the scaled transform coefficients. These details may also be applied/expressed in other parts of this disclosure.

[398] В вышеописанных вариантах осуществления, способы поясняются на основе блок-схем последовательностей операций, с помощью последовательности этапов или блоков, но настоящее раскрытие не ограничено этим порядком этапов или блоков, и определенный этап может выполняться в порядке ином, чем описано выше, или одновременно с другим этапом. Дополнительно, специалисту в данной области техники должно быть понятно, что этапы, показанные в блок-схеме последовательности операций выше, не являются исключительными, что дополнительные этапы могут быть включены или что один или несколько этапов в блок-схеме последовательности операций могут быть удалены без влияния на объем настоящего раскрытия.[398] In the above-described embodiments, the methods are explained on the basis of flowcharts, using a sequence of steps or blocks, but the present disclosure is not limited to this order of steps or blocks, and a particular step may be performed in an order other than described above, or simultaneously with another stage. Additionally, one skilled in the art will appreciate that the steps shown in the flowchart above are not exclusive, that additional steps may be included, or that one or more steps in the flowchart may be deleted without affecting to the scope of this disclosure.

[399] Вышеописанные способы в соответствии с настоящим раскрытием могут быть реализованы в форме программного обеспечения, и устройство кодирования и/или устройство декодирования в соответствии с настоящим раскрытием могут быть включены в устройство для обработки изображения, такое как телевизор, компьютер, смартфон, телевизионную приставку, дисплейное устройство и т.д.[399] The above-described methods according to the present disclosure may be implemented in the form of software, and the encoding device and/or decoding device according to the present disclosure may be included in an image processing device such as a television, computer, smartphone, set-top box , display device, etc.

[400] Когда варианты осуществления настоящего раскрытия реализованы в программном обеспечении, вышеописанные способы могут быть реализованы как модули (процессы, функции и т.д.) для выполнения вышеописанных функций. Модули могут храниться в памяти и могут исполняться процессором. Память может быть внутренней или внешней по отношению к процессору и может быть соединена с процессором различными хорошо известными средствами. Процессор может включать в себя специализированную интегральную схему (ASIC), другие чипсеты, логическую схему и/или устройство обработки данных. Память может включать в себя постоянную память (ROM), память с произвольным доступом (RAM), флэш-память, карту памяти, носитель хранения и/или другое устройство хранения. То есть, варианты осуществления, описанные в настоящем раскрытии, могут реализовываться и выполняться на процессоре, микропроцессоре, контроллере или чипе. Например, функциональные блоки, показанные на каждом чертеже, могут реализовываться и выполняться на компьютере, процессоре, микропроцессоре, контроллере или чипе. [400] When embodiments of the present disclosure are implemented in software, the above-described methods may be implemented as modules (processes, functions, etc.) to perform the above-described functions. Modules can be stored in memory and can be executed by the processor. The memory may be internal or external to the processor and may be coupled to the processor by various well known means. The processor may include an application specific integrated circuit (ASIC), other chipsets, logic circuitry, and/or data processing apparatus. The memory may include read only memory (ROM), random access memory (RAM), flash memory, memory card, storage medium, and/or other storage device. That is, the embodiments described in the present disclosure may be implemented and executed on a processor, microprocessor, controller, or chip. For example, the functional blocks shown in each drawing may be implemented and executed on a computer, processor, microprocessor, controller, or chip.

[401] Кроме того, устройство декодирования и устройство кодирования, к которым применяется настоящее раскрытие, могут быть включены в приемопередатчик мультимедийного вещания, мобильный терминал связи, устройство домашнего кинотеатра, устройство цифрового кинотеатра, камеру наблюдения, устройство для разговора по видео, устройство связи в реальном времени, такой как видеосвязь, мобильное устройство стриминга, носитель хранения, камеру-регистратор, устройство обеспечения услуги видео по требованию (VoD), устройство доставки видео непосредственно от провайдера контента (OTT), устройство обеспечения услуги Интернет-стриминга, устройство трехмерного (3D) видео, устройство видео-телеконференции и медицинское видео-устройство, и могут использоваться для обработки сигнала видео и сигнала данных. Например, видео-устройство OTT может включать в себя игровую консоль, blue-ray плеер, телевизор с Интернет-доступом, систему домашнего кинотеатра, смартфон, планшетный PC, цифровой рекордер видео (DVR) и тому подобное.[401] In addition, the decoding device and encoding device to which the present disclosure applies may be included in a multimedia broadcast transceiver, mobile communication terminal, home theater device, digital cinema device, surveillance camera, video talking device, communication device in such as video communication, mobile streaming device, storage medium, camera recorder, video on demand (VoD) device, over-the-top (OTT) video delivery device, internet streaming device, three-dimensional (3D) device ) video, video teleconferencing device and medical video device, and can be used to process video signal and data signal. For example, an OTT video device may include a gaming console, blue-ray player, Internet-enabled television, home theater system, smartphone, tablet PC, digital video recorder (DVR), and the like.

[402] Кроме того, способ обработки, к которому применяется настоящее раскрытие, может выполняться в форме программы, исполняемой компьютером, и может храниться в считываемом компьютером носителе записи. Мультимедийные данные, имеющие структуру данных в соответствии с настоящим раскрытием, могут также храниться в считываемых компьютером носителях записи. Считываемый компьютером носитель записи включает в себя все типы устройств хранения и распределенных устройств хранения, в которых хранятся считываемые компьютером данные. Считываемые компьютером носители записи могут включать в себя, например, Blu-ray диск (BD), универсальную последовательную шину (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, магнитную ленту, флоппи-диск и устройство оптического хранения данных. Дополнительно, считываемый компьютером носитель записи включает в себя носители, реализуемые в форме несущей волны (например, передача через Интернет). Кроме того, битовый поток, сгенерированный способом кодирования, может храниться в считываемом компьютером носителе записи или может передаваться по сетям проводной или беспроводной связи. Дополнительно, варианты осуществления настоящего раскрытия могут быть реализованы как компьютерный программный продукт посредством программных кодов, и программные коды могут исполняться на компьютере посредством вариантов осуществления настоящего раскрытия. Программные коды могут храниться на считываемом компьютером носителе.[402] Moreover, the processing method to which the present disclosure applies may be in the form of a computer-executable program and may be stored in a computer-readable recording medium. Multimedia data having a data structure in accordance with the present disclosure may also be stored in computer-readable recording media. The computer-readable recording medium includes all types of storage devices and distributed storage devices in which computer-readable data is stored. Computer-readable recording media may include, for example, Blu-ray disc (BD), universal serial bus (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical storage device data. Additionally, the computer-readable recording medium includes media implemented in the form of a carrier wave (eg, transmission over the Internet). In addition, the bit stream generated by the encoding method may be stored in a computer-readable recording medium or transmitted over wired or wireless communication networks. Additionally, embodiments of the present disclosure may be implemented as a computer program product through program codes, and the program codes may be executed on a computer by embodiments of the present disclosure. Program codes may be stored on a computer-readable medium.

[403] Фиг. 17 схематично иллюстрирует пример системы кодирования видео/изображения, в которой применимо настоящее раскрытие.[403] FIG. 17 schematically illustrates an example of a video/image coding system to which the present disclosure is applicable.

[404] Со ссылкой на фиг. 17, система кодирования видео/изображения может включать в себя первое устройство (устройство-источник) и второе устройство (устройство приема). Устройство-источник может доставлять закодированную информацию или данные видео/изображения в форме файла или потоковой передачи (стриминга) на устройство приема через цифровой носитель хранения или сеть.[404] With reference to FIG. 17, the video/image encoding system may include a first device (a source device) and a second device (a receiving device). The source device may deliver encoded information or video/image data in the form of a file or streaming (streaming) to the receiving device via a digital storage medium or network.

[405] Устройство-источник может включать в себя источник видео, устройство кодирования и передатчик. Устройство приема может включать в себя приемник, устройство декодирования и устройство рендеринга (визуализации). Устройство кодирования может называться устройством кодирования видео/изображения, и устройство декодирования может называться устройством декодирования видео/изображения. Передатчик может быть включен в устройство кодирования. Приемник может быть включен в устройство декодирования. Устройство визуализации может включать в себя дисплей, и дисплей может быть сконфигурирован как отдельное устройство или внешний компонент.[405] The source device may include a video source, an encoder, and a transmitter. The receiving device may include a receiver, a decoding device, and a rendering device. The encoding device may be called a video/image encoding device, and the decoding device may be called a video/image decoding device. The transmitter may be included in the encoder. The receiver may be included in a decoding device. The imaging device may include a display, and the display may be configured as a separate device or an external component.

[406] Источник видео может получать видео/изображение через процесс захвата, синтеза или генерации видео/изображения. Источник видео может включать в себя устройство захвата видео/изображения и/или устройство генерации видео/изображения. Устройство захвата видео/изображения может включать в себя, например, одну или более камер, архивы видео/изображений, включающие в себя ранее захваченные видео/изображения, и тому подобное. Устройство генерации видео/изображения может включать в себя, например, компьютер, планшет и смартфон и может (электронным способом) генерировать видео/изображения. Например, виртуальное видео/изображение может генерироваться через компьютер или тому подобное. В этом случае, процесс захвата видео/изображения может быть заменен на процесс генерации связанных данных.[406] The video source may obtain video/image through a video/image capture, synthesis, or generation process. The video source may include a video/image capturing device and/or a video/image generation device. The video/image capturing device may include, for example, one or more cameras, video/image archives including previously captured video/images, and the like. The video/image generating device may include, for example, a computer, tablet and smartphone and may (electronically) generate video/images. For example, the virtual video/image may be generated through a computer or the like. In this case, the video/image capture process can be replaced by the associated data generation process.

[407] Устройство кодирования может кодировать введенное видео/изображение. Устройство кодирования может выполнять последовательность процедур, таких как предсказание, преобразование и квантование для эффективности сжатия и кодирования. Закодированные данные (закодированная информация видео/изображения) могут выводиться в форме битового потока.[407] The encoding device can encode the input video/image. The encoder may perform a series of procedures such as prediction, transform, and quantization for compression and encoding efficiency. The encoded data (encoded video/image information) may be output in the form of a bitstream.

[408] Передатчик может передавать закодированную информацию или данные видео/изображения, выведенные в форме битового потока, на приемник устройства приема через цифровой носитель хранения или сеть в форме файла или потоковой передачи. Цифровой носитель хранения может включать в себя различные носители хранения, такие как USB, SD, CD, DVD, Blu-ray, HDD, SSD и тому подобное. Передатчик может включать в себя элемент для генерации медиа-файла посредством предопределенного формата файла и может включать в себя элемент для передачи через сеть вещания/связи. Приемник может принимать/извлекать битовый поток и передавать принятый/извлеченный битовый поток на устройство декодирования.[408] A transmitter may transmit encoded information or video/image data output in the form of a bit stream to a receiver of a receiving device via a digital storage medium or network in the form of a file or stream. The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD and the like. The transmitter may include an element for generating a media file through a predefined file format and may include an element for transmission over a broadcast/communications network. The receiver may receive/extract the bit stream and transmit the received/extracted bit stream to a decoding device.

[409] Устройство декодирования может декодировать видео/изображение путем выполнения последовательности процедур, таких как деквантование, обратное преобразование и предсказание, соответствующих операции устройства кодирования.[409] A decoding apparatus may decode a video/image by performing a series of procedures such as dequantization, deconversion, and prediction corresponding to the operation of the encoding apparatus.

[410] Устройство визуализации может визуализировать декодированное видео/изображение. Визуализированное видео/ изображение может воспроизводиться посредством дисплея.[410] The renderer may render the decoded video/image. The rendered video/image can be played back via the display.

[411] Фиг. 18 показывает пример системы стриминга контента, в которой применимо настоящее раскрытие.[411] FIG. 18 shows an example of a content streaming system to which the present disclosure is applicable.

[412] Система стриминга контента, в которой применяется настоящее раскрытие, может в широком смысле включать в себя сервер кодирования, стриминговый сервер, веб-сервер, медиа-хранилище, пользовательское оборудование и устройство мультимедийного ввода.[412] A content streaming system to which the present disclosure applies may broadly include an encoding server, a streaming server, a web server, a media storage device, a user equipment, and a media input device.

[413] Сервер кодирования функционирует для сжатия цифровых данных контента, введенного из устройств мультимедийного ввода, таких как смартфон, камера, камера-регистратор и т.д., в цифровые данные, чтобы сгенерировать битовый поток и передать его на стриминговый сервер. В качестве другого примера, когда устройство мультимедийного ввода, такое как смартфон, камера, камера-регистратор и т.д., непосредственно генерирует битовый поток, сервер кодирования может опускаться. Битовый поток может генерироваться способом кодирования или способом генерации битового потока, в котором применяется настоящее раскрытие, и стриминговый сервер может временно хранить битовый поток в процессе передачи или приема битового потока.[413] The encoding server functions to compress digital data of content input from multimedia input devices such as a smartphone, camera, dash cam, etc. into digital data to generate a bit stream and transmit it to the streaming server. As another example, when a multimedia input device such as a smartphone, camera, dashcam, etc. directly generates a bitstream, the encoding server may be omitted. The bitstream may be generated by an encoding method or a bitstream generation method to which the present disclosure is applied, and the streaming server may temporarily store the bitstream during the process of transmitting or receiving the bitstream.

[414] Стриминговый сервер передает мультимедийные данные на пользовательское оборудование на основе запроса пользователя через веб-сервер, который функционирует как инструмент, который информирует пользователя об услуге. Когда пользователь запрашивает желаемую услугу, веб-сервер переносит запрос на стриминговый сервер, и стриминговый сервер передает мультимедийные данные пользователю. В этом отношении, система стриминга контента может включать в себя отдельный сервер управления, и в этом случае, сервер управления функционирует, чтобы управлять командами/откликами между соответствующими оборудованиями в системе стриминга контента.[414] The streaming server transmits media data to the user equipment based on the user's request through a web server, which functions as a tool that informs the user about the service. When a user requests a desired service, the web server forwards the request to the streaming server, and the streaming server transmits the media data to the user. In this regard, the content streaming system may include a separate control server, in which case, the control server functions to manage commands/responses between associated equipment in the content streaming system.

[415] Стриминговый сервер может принимать контент из медиа-хранилища и/или сервера кодирования. Например, когда контент принимается от сервера кодирования, контент может приниматься в реальном времени. В этом случае, чтобы обеспечить плавную стриминговую услугу, стриминговый сервер может хранить битовый поток в течение предопределенного периода времени.[415] The streaming server may receive content from a media storage and/or encoding server. For example, when content is received from an encoding server, the content may be received in real time. In this case, to provide a smooth streaming service, the streaming server may store the bitstream for a predetermined period of time.

[416] Например, пользовательское оборудование может включать в себя мобильный телефон, смартфон, ноутбук, терминал цифрового вещания, персональный цифровой помощник (PDA), портативный мультимедийный плеер (PMP), навигатор, тонкий PC, планшетный PC, ультрабук, носимое устройство (например, терминал типа часов (умные часы), терминал типа очков (умные очки), наголовный дисплей (HMD)), цифровой телевизор, настольный компьютер, цифровой указатель и тому подобное. Каждый сервер в системе стриминга контента может работать как распределенный сервер, и в этом случае, данные, принятые от каждого сервера, могут обрабатываться распределенным образом.[416] For example, user equipment may include a mobile phone, smartphone, laptop, digital broadcast terminal, personal digital assistant (PDA), portable media player (PMP), navigation device, slim PC, tablet PC, ultrabook, wearable device (eg , watch type terminal (smart watch), glasses type terminal (smart glasses), head mounted display (HMD)), digital TV, desktop computer, digital pointer and the like. Each server in a content streaming system can operate as a distributed server, in which case, data received from each server can be processed in a distributed manner.

[417] Пункты формулы изобретения, раскрытые в настоящем документе, могут комбинироваться различным образом. Например, технические признаки пунктов формулы изобретения на способ в настоящем раскрытии могут комбинироваться для реализации или выполнения в устройстве, и технические признаки пунктов формулы изобретения на устройство могут комбинироваться для реализации или выполнения в способе. Кроме того, технические признаки пунктов формулы на способ и пунктов формулы изобретения на устройство могут комбинироваться для реализации или выполнения в устройстве, и технические признаки пунктов формулы на способ и пунктов формулы изобретения на устройство могут комбинироваться для реализации или выполнения в способе.[417] The claims disclosed herein may be combined in various ways. For example, the technical features of the method claims in the present disclosure may be combined to be implemented or performed in a device, and the technical features of the device claims may be combined to be implemented or performed in a method. In addition, the technical features of the method claims and the device claims can be combined for implementation or execution in the device, and the technical features of the method claims and the device claims can be combined for implementation or execution in the method.

Положение 1. Способ декодирования изображения, выполняемый устройством декодирования, причем способ содержит:Clause 1. A method for decoding an image performed by a decoding device, the method comprising:

получение остаточной информации из битового потока;obtaining residual information from the bit stream;

выведение позиции последнего значимого коэффициента в текущем блоке и коэффициентов преобразования для текущего блока на основе остаточной информации;deriving the position of the last significant coefficient in the current block and the conversion coefficients for the current block based on the residual information;

определение того, является ли индекс подблока, включающего в себя последний значимый коэффициент, равным 0 и позиция последнего значимого коэффициента в подблоке больше 0;determining whether the index of the sub-block including the last significant coefficient is 0 and the position of the last significant coefficient in the sub-block is greater than 0;

определение того, существует ли значимый коэффициент во второй области иной, чем первая область сверху-слева текущего блока;determining whether a significant coefficient exists in a second region other than the first region from the top left of the current block;

получение, посредством анализа, индекса LFNST из битового потока, когда определено, что позиция последнего значимого коэффициента в подблоке, имеющем индекс 0, больше 0 и значимый коэффициент не существует во второй области; obtaining, by analysis, an index LFNST from the bitstream when it is determined that the position of the last significant coefficient in the subblock having index 0 is greater than 0 and the significant coefficient does not exist in the second region;

выведение модифицированных коэффициентов преобразования путем применения матрицы LFNST, выведенной на основе индекса LFNST, к коэффициентам преобразования в первой области;deriving the modified transformation coefficients by applying the LFNST matrix derived based on the LFNST index to the transformation coefficients in the first region;

выведение остаточных выборок для текущего блока на основе обратного первичного преобразования для модифицированных коэффициентов преобразования; иderiving residual samples for the current block based on the inverse primary transform for the modified transform coefficients; And

генерирование восстановленной картинки на основе остаточных выборок для текущего блока.generating a reconstructed image based on residual samples for the current block.

Положение 2. Способ декодирования изображения согласно Положению 1, дополнительно содержащий установку первой флаговой информации, указывающей, является ли позиция последнего значимого коэффициента большей 0, в подблоке, имеющем индекс 0, в 1, при этом, когда позиция последнего значимого коэффициента в подблоке, имеющем индекс 0, больше 0, изменяют первую флаговую информацию в 0 и получают, посредством анализа, индекс LFNST.Position 2. An image decoding method according to Position 1, further comprising setting the first flag information indicating whether the position of the last significant coefficient is greater than 0 in a subblock having an index of 0 to 1, wherein when the position of the last significant coefficient in a subblock having index 0 greater than 0, change the first flag information to 0 and obtain, through analysis, the index LFNST.

Положение 3. Способ декодирования изображения согласно Положению 1, дополнительно содержащий установку второй флаговой информации, указывающей, существует ли значимый коэффициент во второй области за исключением первой области, в 1, при этом, когда не имеется значимого коэффициента во второй области, сохраняют вторую флаговую информацию как 1 и получают, посредством анализа, индекс LFNST.Statement 3. An image decoding method according to Position 1, further comprising setting second flag information indicating whether there is a significant coefficient in the second region excluding the first region to 1, wherein when there is no significant coefficient in the second region, storing the second flag information as 1 and obtain, through analysis, the LFNST index.

Положение 4. Способ декодирования изображения согласно Положению 3, в котором вторая флаговая информация выводится как 0, когда индекс подблока, включающего в себя последний значимый коэффициент в текущем блоке, больше 0 и ширина и высота текущего блока равны 4 или более, при этом анализа в отношении индекса LFNST не выполняют, когда вторая флаговая информация равна 0.Position 4: An image decoding method according to Position 3, in which the second flag information is output as 0 when the index of a sub-block including the last significant coefficient in the current block is greater than 0 and the width and height of the current block are 4 or more, while analyzing in regarding the index, LFNST is not performed when the second flag information is 0.

Положение 5. Способ декодирования изображения согласно Положению 3, в котором вторая флаговая информация выводится как 0, когда размер текущего блока составляет 4×4 или 8×8 и позиция последнего значимого коэффициента больше или равна 8, при этом анализ в отношении индекса LFNST не выполняют, когда вторая флаговая информация равна 0.Position 5: A picture decoding method according to Position 3 in which the second flag information is output as 0 when the current block size is 4×4 or 8×8 and the position of the last significant coefficient is greater than or equal to 8, and no analysis is performed regarding the LFNST index , when the second flag information is 0.

Положение 6. Способ декодирования изображения согласно Положению 1, в котором первая область выводится на основе размера текущего блока,Position 6: A picture decoding method according to Position 1 in which the first region is output based on the size of the current block,

при этом, когда размер текущего блока составляет 4×4 или 8×8, первая область представляет собой от положения сверху-слева текущего блока до позиции 8-ого дискретного отсчета в направлении сканирования, иwherein, when the size of the current block is 4×4 or 8×8, the first area represents from the top-left position of the current block to the position of the 8th sample in the scanning direction, and

причем, когда размер текущего блока не составляет 4×4 или 8×8, первая область представляет собой область 4×4 сверху-слева текущего блока.wherein, when the size of the current block is not 4x4 or 8x8, the first region is a 4x4 region at the top-left of the current block.

Положение 7. Способ декодирования изображения согласно Положению 1, в котором заранее определенное число модифицированных коэффициентов преобразования выводится на основе размера текущего блока,Provision 7: A picture decoding method according to Proposition 1 in which a predetermined number of modified transform coefficients is derived based on the size of the current block,

при этом, когда высота и ширина текущего блока больше или равны 8, выводятся 48 модифицированных коэффициентов преобразования, иhowever, when the height and width of the current block are greater than or equal to 8, 48 modified conversion coefficients are output, and

причем, когда ширина и высота текущего блока равны 4 или более и ширина или высота текущего блока меньше 8, выводятся 16 модифицированных коэффициентов преобразования.wherein, when the width and height of the current block are 4 or more and the width or height of the current block is less than 8, 16 modified conversion coefficients are output.

Положение 8. Способ декодирования изображения согласно Положению 4, в котором 48 модифицированных коэффициентов преобразования компонуются в верхней-левой, верхней-правой и нижней-левой областях 4×4 в верхней-левой области 8×8 текущего блока, при этом 16 модифицированных коэффициентов преобразования компонуются в верхней-левой области 4×4 текущего блока.Position 8: An image decoding method according to Position 4, in which 48 modified transform coefficients are arranged in the upper-left, upper-right and lower-left 4×4 areas in the upper-left 8×8 area of the current block, wherein 16 modified transform coefficients are arranged in the top-left 4x4 area of the current block.

Положение 9. Способ кодирования изображения, выполняемый устройством кодирования изображения, причем способ содержит:Clause 9: An image encoding method performed by an image encoding device, the method comprising:

выведение дискретных отсчетов предсказания для текущего блока;outputting discrete prediction samples for the current block;

выведение остаточных дискретных отсчетов для текущего блока на основе дискретных отсчетов предсказания;deriving residual samples for the current block based on the prediction samples;

выведение коэффициентов преобразования для текущего блока на основе первичного преобразования для остаточных дискретных отсчетов;deriving transformation coefficients for the current block based on the primary transformation for residual discrete samples;

выведение модифицированных коэффициентов преобразования для текущего блока на основе коэффициентов преобразования первой области сверху-слева текущего блока и заранее определенной матрицы LFNST;deriving modified transform coefficients for the current block based on the transform coefficients of the first top-left region of the current block and a predetermined matrix LFNST;

обнуление второй области текущего блока, в которой модифицированные коэффициенты преобразования не существуют; zeroing the second region of the current block in which the modified transform coefficients do not exist;

формирование информации изображения таким образом, что индекс LFNST, указывающий матрицу LFNST, передается, когда индекс подблока, включающего в себя последний значимый коэффициент в текущем блоке, равен 0, позиция последнего значимого коэффициента в подблоке больше 0 и значимый коэффициент не существует во второй области, иgenerating image information such that an index LFNST indicating the matrix LFNST is transmitted when the index of a sub-block including the last significant coefficient in the current block is 0, the position of the last significant coefficient in the sub-block is greater than 0, and the significant coefficient does not exist in the second area, And

вывод информации изображения, включающей в себя остаточную информацию, выведенную посредством квантования модифицированных коэффициентов преобразования, и индекс LFNST.outputting image information including residual information output by quantizing the modified transform coefficients and an index LFNST.

Положение 10. Способ кодирования изображения согласно Положению 9, а котором формирование информации изображения содержит:Regulation 10. An image encoding method according to Regulation 9, in which the generation of image information contains:

установку первой флаговой информации, указывающей, является ли позиция последнего значимого коэффициента в подблоке, имеющем индекс 0, большей 0, в 1;setting first flag information indicating whether the position of the last significant coefficient in the subblock having index 0 greater than 0 is 1;

изменение первой флаговой информации в 0, когда позиция последнего значимого коэффициента в подблоке, имеющем индекс 0, больше 0; иchanging the first flag information to 0 when the position of the last significant coefficient in the subblock having index 0 is greater than 0; And

кодирование индекса LFNST.LFNST index encoding.

Положение 11. Способ кодирования изображения согласно Положению 9, в котором формирование информации изображения содержит:Regulation 11. An image encoding method according to Regulation 9, in which the generation of image information contains:

установку второй флаговой информации, указывающей, существует ли значимый коэффициент во второй области за исключением первой области, в 1;setting second flag information indicating whether a significant coefficient exists in the second region excluding the first region to 1;

сохранение второй флаговой информации как 1, когда не имеется значимого коэффициента во второй области; и storing the second flag information as 1 when there is no significant coefficient in the second region; And

кодирование индекса LFNST.LFNST index encoding.

Положение 12. Способ кодирования изображения согласно Положению 11, в котором вторая флаговая информация изменяется в 0, когда индекс подблока, включающего в себя последний значимый коэффициент в текущем блоке, больше 0 и ширина и высота текущего блока равны 4 или более, причем информация изображения сконфигурирована таким образом, что индекс LFNST не передается, когда вторая флаговая информация равна 0.Statement 12: An image encoding method according to Position 11, in which the second flag information is changed to 0 when the index of a sub-block including the last significant coefficient in the current block is greater than 0 and the width and height of the current block are 4 or more, and the image information is configured such that the LFNST index is not transmitted when the second flag information is 0.

Положение 13. Способ кодирования изображения согласно Положению 11, в котором вторая флаговая информация выводится как 0, когда размер текущего блока составляет 4×4 или 8×8 и позиция последнего значимого коэффициента больше или равна 8, причем информация изображения сконфигурирована таким образом, что индекс LFNST не передается, когда вторая флаговая информация равна 0.Statement 13: An image encoding method according to Position 11, in which the second flag information is output as 0 when the current block size is 4×4 or 8×8 and the position of the last significant coefficient is greater than or equal to 8, wherein the image information is configured such that the index LFNST is not transmitted when the second flag information is 0.

Положение 14. Способ кодирования изображения согласно Положению 9, в котором первая область выводится на основе размера текущего блока,Regulation 14: An image encoding method according to Regulation 9 in which the first region is output based on the size of the current block,

при этом, когда высота и ширина текущего блока больше или равны 8, первая область представляет собой верхнюю-левую, верхнюю-правую и нижнюю-левую области 4×4 в пределах верхней-левой области 8×8 текущего блока, и wherein, when the height and width of the current block are greater than or equal to 8, the first region is the top-left, top-right and bottom-left 4x4 regions within the top-left 8x8 region of the current block, and

причем, когда ширина и высота текущего блока равны 4 или более и ширина или высота текущего блока меньше 8, первая область представляет собой верхнюю-левую область 4×4 текущего блока.wherein, when the width and height of the current block are 4 or more and the width or height of the current block is less than 8, the first area is a top-left 4x4 area of the current block.

Положение 15. Машиночитаемый цифровой носитель данных, который хранит информацию указания, чтобы вызывать выполнение способа декодирования изображения, причем способ декодирования изображения содержит:Clause 15: A computer-readable digital storage medium that stores indication information to cause execution of an image decoding method, wherein the image decoding method comprises:

получение остаточной информации из битового потока;obtaining residual information from the bit stream;

выведение позиции последнего значимого коэффициента в текущем блоке и коэффициентов преобразования для текущего блока на основе остаточной информации;deriving the position of the last significant coefficient in the current block and the conversion coefficients for the current block based on the residual information;

определение, является ли индекс подблока, включающего в себя последний значимый коэффициент, равным 0 и позиция последнего значимого коэффициента в подблоке больше 0;determining whether the index of the sub-block including the last significant coefficient is 0 and the position of the last significant coefficient in the sub-block is greater than 0;

определение, существует ли значимый коэффициент во второй области иной, чем первая область сверху-слева текущего блока;determining whether there is a significant coefficient in a second region other than the first region from the top left of the current block;

получение, посредством анализа, индекса LFNST из битового потока, когда определено, что позиция последнего значимого коэффициента в подблоке, имеющем индекс 0, больше 0 и значимый коэффициент не существует во второй области; obtaining, by analysis, an index LFNST from the bitstream when it is determined that the position of the last significant coefficient in the subblock having index 0 is greater than 0 and the significant coefficient does not exist in the second region;

выведение модифицированных коэффициентов преобразования путем применения матрицы LFNST, выведенной на основе индекса LFNST, к коэффициентам преобразования в первой области;deriving the modified transformation coefficients by applying the LFNST matrix derived based on the LFNST index to the transformation coefficients in the first region;

выведение остаточных дискретных отсчетов для текущего блока на основе обратного первичного преобразования для модифицированных коэффициентов преобразования; иderiving residual discrete samples for the current block based on the inverse primary transformation for the modified transformation coefficients; And

генерирование восстановленной картинки на основе остаточных дискретных отсчетов для текущего блока.generating a reconstructed image based on residual discrete samples for the current block.

Claims (59)

1. Способ декодирования изображения, выполняемый устройством декодирования, причем способ содержит:1. A method for decoding an image performed by a decoding device, the method comprising: получение остаточной информации из битового потока;obtaining residual information from the bit stream; выведение коэффициентов преобразования для текущего блока на основе остаточной информации;deriving conversion coefficients for the current block based on residual information; выведение модифицированных коэффициентов преобразования на основе низкочастотного неразделимого преобразования (LFNST) для коэффициентов преобразования;deriving modified transform coefficients based on low-frequency non-separable transform (LFNST) for transform coefficients; выведение остаточных дискретных отсчетов для текущего блока на основе обратного первичного преобразования для модифицированных коэффициентов преобразования; иderiving residual discrete samples for the current block based on the inverse primary transformation for the modified transformation coefficients; And генерирование восстановленного кадра на основе остаточных дискретных отсчетов для текущего блока,generating a reconstructed frame based on residual samples for the current block, при этом упомянутое выведение коэффициентов преобразования содержит этапы, на которых:wherein said derivation of conversion coefficients comprises the steps of: определяют, присутствует ли последний значимый коэффициент в (0, 0) текущего блока;determining whether the last significant coefficient is present in (0, 0) of the current block; определяют, присутствует ли значимый коэффициент во второй области, иной чем первая область сверху слева текущего блока,determining whether a significant coefficient is present in a second region other than the first region from the top left of the current block, при этом LFNST выполняют на основе получения, посредством анализа, индекса LFNST,wherein LFNST is performed based on obtaining, through analysis, the LFNST index, при этом на основе того, что ширина и высота текущего блока больше или равна 4 и ширина или высота текущего блока меньше 8, первой областью является область 4×4 сверху слева текущего блока, а на основе того, что значимый коэффициент присутствует во второй области, иной чем область 4×4 сверху слева, анализ в отношении индекса LFNST не выполняют,wherein, based on the fact that the width and height of the current block is greater than or equal to 4 and the width or height of the current block is less than 8, the first region is a 4x4 region at the top left of the current block, and based on the fact that a significant coefficient is present in the second region, other than the 4x4 area on the top left, no analysis is performed with respect to the LFNST index, при этом на основе того, что ширина и высота текущего блока больше 8, осуществляют выведение 16 коэффициентов преобразования, иwherein, based on the fact that the width and height of the current block are greater than 8, 16 conversion coefficients are derived, and при этом 16 коэффициентов преобразования компонуются в области 4×4 сверху слева текущего блока, а вторая область, иная чем эта область 4×4, заполняется нулями.wherein the 16 transform coefficients are arranged in a 4x4 region at the top left of the current block, and a second region other than this 4x4 region is filled with zeros. 2. Способ декодирования изображения по п.1, дополнительно содержащий установку первой флаговой информации, относящейся к тому, присутствует ли последний значимый коэффициент в (0, 0) текущего блока, в 1, при этом на основе того, что последний значимый коэффициент не присутствует в (0, 0) текущего блока, изменяют первую флаговую информацию в 0 и получают посредством анализа индекс LFNST.2. The image decoding method of claim 1, further comprising setting the first flag information relating to whether the last significant coefficient is present in (0, 0) of the current block to 1, based on the fact that the last significant coefficient is not present at (0, 0) of the current block, change the first flag information to 0 and obtain the index LFNST by analysis. 3. Способ декодирования изображения по п.1, дополнительно содержащий установку второй флаговой информации, относящейся к тому, присутствует ли значимый коэффициент во второй области, в 1, причем, когда нет значимого коэффициента во второй области, сохраняют вторую флаговую информацию как 1 и получают посредством анализа индекс LFNST.3. The image decoding method of claim 1, further comprising setting second flag information relating to whether a significant coefficient is present in the second region to 1, wherein when there is no significant coefficient in the second region, storing the second flag information as 1 and obtaining by analyzing the LFNST index. 4. Способ декодирования изображения по п.3, в котором вторая флаговая информация выводится как 0 на основе того, что индекс подблока, включающего в себя последний значимый коэффициент в текущем блоке, больше 0 и ширина и высота текущего блока больше или равна 4, причем анализ в отношении индекса LFNST не выполняют на основе того, что вторая флаговая информация равна 0.4. The image decoding method according to claim 3, wherein the second flag information is output as 0 based on the fact that the index of a sub-block including the last significant coefficient in the current block is greater than 0 and the width and height of the current block is greater than or equal to 4, wherein analysis regarding the LFNST index is not performed based on the second flag information being 0. 5. Способ декодирования изображения по п.3, в котором вторая флаговая информация выводится как 0 на основе того, что размер текущего блока составляет 4×4 или 8×8 и позиция последнего значимого коэффициента больше или равна 8, причем анализ в отношении индекса LFNST не выполняют на основе того, что вторая флаговая информация равна 0.5. The image decoding method of claim 3, wherein the second flag information is output as 0 based on the current block size being 4×4 or 8×8 and the position of the last significant coefficient being greater than or equal to 8, wherein the analysis is with respect to the LFNST index is not performed based on the fact that the second flag information is 0. 6. Способ декодирования изображения по п.1, в котором первая область выводится на основе размера текущего блока,6. The image decoding method according to claim 1, wherein the first region is output based on the size of the current block, при этом на основе того, что размер текущего блока составляет 4×4 или 8×8, первая область представляет собой от положения сверху слева текущего блока до позиции 8-го дискретного отсчета в направлении сканирования, иwherein, based on the size of the current block being 4×4 or 8×8, the first area is from the top left position of the current block to the position of the 8th sample in the scanning direction, and причем на основе того, что размер текущего блока не составляет 4×4 или 8×8, первая область представляет собой область 4×4 сверху слева текущего блока.wherein, based on the fact that the size of the current block is not 4x4 or 8x8, the first area is a 4x4 area from the top left of the current block. 7. Способ декодирования изображения по п.1, в котором заранее определенное число модифицированных коэффициентов преобразования выводится на основе размера текущего блока,7. The image decoding method according to claim 1, wherein a predetermined number of modified transform coefficients is output based on the size of the current block, при этом на основе того, что высота и ширина текущего блока больше или равна 8, выводятся 48 модифицированных коэффициентов преобразования, иwhereby, based on the fact that the height and width of the current block is greater than or equal to 8, 48 modified conversion coefficients are output, and причем на основе того, что ширина и высота текущего блока больше или равна 4 и ширина или высота текущего блока меньше 8, выводятся 16 модифицированных коэффициентов преобразования.wherein, based on the fact that the width and height of the current block is greater than or equal to 4 and the width or height of the current block is less than 8, 16 modified conversion coefficients are output. 8. Способ декодирования изображения по п.7, в котором 48 модифицированных коэффициентов преобразования компонуются в верхней левой, верхней правой и нижней левой областях 4×4 в верхней левой области 8×8 текущего блока, причем 16 модифицированных коэффициентов преобразования компонуются в верхней левой области 4×4 текущего блока.8. The image decoding method according to claim 7, wherein 48 modified transform coefficients are arranged in the upper left, upper right and lower left 4×4 regions in the upper left 8×8 region of the current block, and 16 modified transform coefficients are arranged in the upper left region 4x4 of the current block. 9. Способ кодирования изображения, выполняемый устройством кодирования изображения, причем способ содержит:9. An image encoding method performed by an image encoding device, the method comprising: выведение дискретных отсчетов предсказания для текущего блока;outputting discrete prediction samples for the current block; выведение остаточных дискретных отсчетов для текущего блока на основе дискретных отсчетов предсказания;deriving residual samples for the current block based on the prediction samples; выведение коэффициентов преобразования для текущего блока на основе первичного преобразования для остаточных дискретных отсчетов;deriving transformation coefficients for the current block based on the primary transformation for residual discrete samples; выведение модифицированных коэффициентов преобразования для текущего блока на основе низкочастотного неразделимого преобразования (LFNST) для коэффициентов преобразования первой области сверху слева текущего блока;deriving modified transform coefficients for the current block based on the low frequency non-separable transform (LFNST) for the transform coefficients of the first region from the top left of the current block; формирование информации изображения таким образом, что индекс LFNST, относящийся к LFNST, передается на основе того, что последний значимый коэффициент не присутствует в (0, 0) текущего блока и значимый коэффициент не присутствует во второй области текущего блока; иgenerating image information such that an index LFNST related to LFNST is transmitted based on the fact that the last significant coefficient is not present in (0, 0) of the current block and the significant coefficient is not present in the second region of the current block; And вывод информации изображения, включающей в себя остаточную информацию, относящуюся к модифицированным коэффициентам преобразования, и индекс LFNST,outputting image information including residual information related to modified transform coefficients and an LFNST index, при этом на основе того, что ширина и высота текущего блока больше или равна 4 и ширина или высота текущего блока меньше 8, первой областью является область 4×4 сверху слева текущего блока, а на основе того, что значимый коэффициент присутствует во второй области, иной чем область 4×4 сверху слева, индекс LFNST не кодируют,wherein, based on the fact that the width and height of the current block is greater than or equal to 4 and the width or height of the current block is less than 8, the first region is a 4x4 region at the top left of the current block, and based on the fact that a significant coefficient is present in the second region, other than the 4x4 area on the top left, the LFNST index is not coded, при этом на основе того, что ширина и высота текущего блока больше 8, осуществляют выведение 16 модифицированных коэффициентов преобразования, иwherein, based on the fact that the width and height of the current block are greater than 8, 16 modified conversion coefficients are derived, and при этом 16 модифицированных коэффициентов преобразования компонуются в области 4×4 сверху слева текущего блока, а вторая область, иная чем эта область 4×4, заполняется нулями.wherein the 16 modified transform coefficients are arranged in a 4x4 region at the top left of the current block, and a second region other than this 4x4 region is filled with zeros. 10. Способ кодирования изображения по п.9, в котором формирование информации изображения содержит:10. The image encoding method according to claim 9, wherein generating image information comprises: установку первой флаговой информации, относящейся к тому, присутствует ли последний значимый коэффициент в (0, 0) текущего блока, в 1;setting the first flag information relating to whether the last significant coefficient is present in (0, 0) of the current block to 1; изменение первой флаговой информации в 0 на основе того, что последний значимый коэффициент не присутствует в (0, 0) текущего блока; changing the first flag information to 0 based on the fact that the last significant coefficient is not present in (0, 0) of the current block; кодирование индекса LFNST.LFNST index encoding. 11. Способ кодирования изображения по п.9, в котором формирование информации изображения содержит:11. The image encoding method according to claim 9, wherein generating image information comprises: установку второй флаговой информации, относящейся к тому, присутствует ли значимый коэффициент во второй области, в 1;setting second flag information related to whether a significant coefficient is present in the second region to 1; сохранение второй флаговой информации как 1, когда нет значимого коэффициента во второй области; и storing the second flag information as 1 when there is no significant coefficient in the second region; And кодирование индекса LFNST.LFNST index encoding. 12. Способ кодирования изображения по п.11, в котором вторая флаговая информация изменяется в 0 на основе того, что индекс подблока, включающего в себя последний значимый коэффициент в текущем блоке, больше 0 и ширина и высота текущего блока больше или равна 4, причем информация изображения сконфигурирована таким образом, что индекс LFNST не передается на основе того, что вторая флаговая информация равна 0.12. The image encoding method according to claim 11, wherein the second flag information is changed to 0 based on the fact that the index of a sub-block including the last significant coefficient in the current block is greater than 0 and the width and height of the current block is greater than or equal to 4, wherein The image information is configured such that the LFNST index is not transmitted based on the second flag information being 0. 13. Способ кодирования изображения по п.11, в котором вторая флаговая информация изменяется как 0 на основе того, что размер текущего блока составляет 4×4 или 8×8 и позиция последнего значимого коэффициента больше или равна 8, причем информация изображения сконфигурирована таким образом, что индекс LFNST не передается на основе того, что вторая флаговая информация равна 0.13. The image encoding method of claim 11, wherein the second flag information is changed to 0 based on the current block size being 4×4 or 8×8 and the position of the last significant coefficient being greater than or equal to 8, the image information being so configured that the LFNST index is not transmitted based on the second flag information being 0. 14. Способ кодирования изображения по п.9, в котором первая область выводится на основе размера текущего блока,14. The image encoding method as set forth in claim 9, wherein the first region is output based on the size of the current block, при этом на основе того, что высота и ширина текущего блока больше или равна 8, первая область представляет собой верхнюю левую, верхнюю правую и нижнюю левую области 4×4 в пределах верхней левой области 8×8 текущего блока, и wherein, based on the height and width of the current block being greater than or equal to 8, the first region is the upper left, upper right and lower left 4x4 regions within the upper left 8x8 region of the current block, and причем на основе того, что ширина и высота текущего блока больше или равна 4 и ширина или высота текущего блока меньше 8, первая область представляет собой верхнюю левую область 4×4 текущего блока.wherein based on the fact that the width and height of the current block is greater than or equal to 4 and the width or height of the current block is less than 8, the first region is the upper left 4x4 region of the current block. 15. Способ передачи данных для изображения, содержащий этапы, на которых:15. A method for transmitting data for an image, comprising the steps of: получают битовый поток для изображения, причем битовый поток генерируется на основеobtain a bitstream for the image, wherein the bitstream is generated based on выведения дискретных отсчетов предсказания для текущего блока,outputting discrete prediction samples for the current block, выведения остаточных дискретных отсчетов для текущего блока на основе дискретных отсчетов предсказания,deriving residual samples for the current block based on the prediction samples, выведения коэффициентов преобразования для текущего блока на основе первичного преобразования для остаточных дискретных отсчетов,deriving transformation coefficients for the current block based on the primary transformation for residual discrete samples, выведения модифицированных коэффициентов преобразования для текущего блока на основе низкочастотного неразделимого преобразования (LFNST) для коэффициентов преобразования первой области сверху слева текущего блока,deriving modified transform coefficients for the current block based on the low frequency non-separable transform (LFNST) for the transform coefficients of the first region from the top left of the current block, формирования информации изображения таким образом, что индекс LFNST, относящийся к LFNST, передается на основе того, что последний значимый коэффициент не присутствует в (0, 0) текущего блока и значимый коэффициент не присутствует во второй области текущего блока, иgenerating image information such that an index LFNST related to LFNST is transmitted based on the fact that the last significant coefficient is not present in (0, 0) of the current block and the significant coefficient is not present in the second region of the current block, and вывода информации изображения, включающей в себя остаточную информацию, относящуюся к модифицированным коэффициентам преобразования, и индекс LFNST, чтобы сгенерировать битовый поток; иoutputting image information including residual information related to modified transform coefficients and an index LFNST to generate a bit stream; And передают данные, содержащие битовый поток,transmit data containing a bit stream, при этом на основе того, что ширина и высота текущего блока больше или равна 4 и ширина или высота текущего блока меньше 8, первой областью является область 4×4 сверху слева текущего блока, а на основе того, что значимый коэффициент присутствует во второй области, иной чем область 4×4 сверху слева, индекс LFNST не кодируют,wherein, based on the fact that the width and height of the current block is greater than or equal to 4 and the width or height of the current block is less than 8, the first region is a 4x4 region from the top left of the current block, and based on the fact that a significant coefficient is present in the second region, other than the 4x4 area on the top left, the LFNST index is not coded, при этом на основе того, что ширина и высота текущего блока больше 8, осуществляют выведение 16 модифицированных коэффициентов преобразования, иwherein, based on the fact that the width and height of the current block are greater than 8, 16 modified conversion coefficients are derived, and при этом 16 модифицированных коэффициентов преобразования компонуются в области 4×4 сверху слева текущего блока, а вторая область, иная чем эта область 4×4, заполняется нулями. wherein the 16 modified transform coefficients are arranged in a 4x4 region at the top left of the current block, and a second region other than this 4x4 region is filled with zeros.
RU2023117461A 2019-07-12 2020-07-10 Image encoding method based on transformation and device for its implementation RU2812248C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62/873,820 2019-07-12
US62/873,897 2019-07-13

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
RU2022103282A Division RU2799629C1 (en) 2019-07-12 2020-07-10 Image encoding method based on transformation and device for its implementation

Publications (2)

Publication Number Publication Date
RU2023117461A RU2023117461A (en) 2023-07-07
RU2812248C2 true RU2812248C2 (en) 2024-01-25

Family

ID=

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2008105046A (en) * 2005-08-12 2009-08-20 Майкрософт Корпорейшн (Us) EFFICIENT CODING AND DECODING OF TRANSFORMATION BLOCKS
WO2017057953A1 (en) * 2015-09-30 2017-04-06 엘지전자 주식회사 Method and device for coding residual signal in video coding system
RU2667715C1 (en) * 2012-04-13 2018-09-24 Кэнон Кабусики Кайся Method, device and system for coding and decoding conversion units of coded video data
US10306229B2 (en) * 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2008105046A (en) * 2005-08-12 2009-08-20 Майкрософт Корпорейшн (Us) EFFICIENT CODING AND DECODING OF TRANSFORMATION BLOCKS
RU2667715C1 (en) * 2012-04-13 2018-09-24 Кэнон Кабусики Кайся Method, device and system for coding and decoding conversion units of coded video data
US10306229B2 (en) * 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
WO2017057953A1 (en) * 2015-09-30 2017-04-06 엘지전자 주식회사 Method and device for coding residual signal in video coding system

Similar Documents

Publication Publication Date Title
KR102602614B1 (en) Image coding method based on Transformation and apparatus
JP7461473B2 (en) Video encoding method and device based on conversion
JP7408856B2 (en) Video coding method and device based on conversion
CN114982239A (en) Image coding method and device based on transformation
AU2023208134A1 (en) Transform in intra prediction-based image coding
US12041247B2 (en) Method and apparatus for deriving rice parameter in video/image coding system
AU2020297214B2 (en) Coding of information about transform kernel set
KR20220024500A (en) Transformation-based video coding method and apparatus
CN114930846A (en) Image coding method and device based on transformation
KR20210133300A (en) Transformation-based video coding method and apparatus
AU2020375518B2 (en) Image coding method based on transform, and device therefor
KR102482781B1 (en) Image coding method and device based on transformation
KR20220097513A (en) Transformation-based video coding method and apparatus
RU2812248C2 (en) Image encoding method based on transformation and device for its implementation
KR20220024499A (en) Transformation-based video coding method and apparatus
KR20220061182A (en) Video coding method and apparatus based on transformation
CN114762343A (en) Image coding method and device based on transformation
RU2799629C1 (en) Image encoding method based on transformation and device for its implementation
RU2811986C2 (en) Image encoding method based on transformation and device for its implementation
RU2803184C1 (en) Image encoding method based on transformation and device for its implementation
RU2803457C2 (en) Image encoding method based on transformation and device for its implementation
RU2806283C2 (en) Image encoding method based on transformation and device for its implementation
RU2815810C2 (en) Encoding information on set of transformation kernels
JP7414977B2 (en) Video coding method and device based on conversion
JP7458489B2 (en) Image coding method and device based on transformation