BR122023022608A2 - DECODING APPARATUS FOR DECODING IMAGES, IMAGE CODING APPARATUS FOR CODING IMAGES AND APPARATUS FOR TRANSMITTING DATA TO AN IMAGE INFORMATION - Google Patents
DECODING APPARATUS FOR DECODING IMAGES, IMAGE CODING APPARATUS FOR CODING IMAGES AND APPARATUS FOR TRANSMITTING DATA TO AN IMAGE INFORMATION Download PDFInfo
- Publication number
- BR122023022608A2 BR122023022608A2 BR122023022608-9A BR122023022608A BR122023022608A2 BR 122023022608 A2 BR122023022608 A2 BR 122023022608A2 BR 122023022608 A BR122023022608 A BR 122023022608A BR 122023022608 A2 BR122023022608 A2 BR 122023022608A2
- Authority
- BR
- Brazil
- Prior art keywords
- block
- transform
- lfnst
- mode
- intraprediction
- Prior art date
Links
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 claims abstract description 171
- 241000023320 Luma <angiosperm> Species 0.000 claims abstract description 165
- 239000011159 matrix material Substances 0.000 claims description 159
- 238000000034 method Methods 0.000 abstract description 138
- 238000005192 partition Methods 0.000 description 99
- 239000013598 vector Substances 0.000 description 84
- 239000000523 sample Substances 0.000 description 47
- 230000008569 process Effects 0.000 description 40
- 230000033001 locomotion Effects 0.000 description 38
- 230000011664 signaling Effects 0.000 description 28
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 21
- 238000010586 diagram Methods 0.000 description 17
- 238000001914 filtration Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 13
- 238000013139 quantization Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 238000013507 mapping Methods 0.000 description 9
- 239000013074 reference sample Substances 0.000 description 9
- 230000009977 dual effect Effects 0.000 description 8
- 230000002123 temporal effect Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000002441 reversible effect Effects 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 230000002730 additional effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005530 etching Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000010454 slate Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Abstract
Um método para decodificação de imagem, de acordo com o presente documento, pode compreender as etapas de: derivar um modo de intrapredição de um bloco croma como um modo de modelo linear de componentes cruzados (CCLM); atualizar o modo de intrapredição do bloco croma com base em um modo de intrapredição de um bloco luma correspondente ao bloco croma; e determinar um conjunto de LFNST incluindo matrizes de LFNST com base no modo de intrapredição atualizado, em que o modo de intrapredição atualizado é derivado como um modo de intrapredição correspondente a uma posição específica no bloco luma, e a posição específica é definida com base em um formato de cor do bloco croma.A method for image decoding in accordance with the present document may comprise the steps of: deriving an intraprediction mode of a chroma block as a cross-component linear model (CCLM) mode; updating the intraprediction mode of the chroma block based on an intraprediction mode of a luma block corresponding to the chroma block; and determining a set of LFNST including LFNST matrices based on the updated intraprediction mode, wherein the updated intraprediction mode is derived as an intraprediction mode corresponding to a specific position in the luma block, and the specific position is defined based on a chroma block color format.
Description
[001] A presente divulgação refere-se a uma técnica de codificação de imagem e, mais particularmente, a um método e um aparelho para codificar uma imagem com base na transformada em um sistema de codificação de imagem.[001] The present disclosure relates to an image coding technique and, more particularly, to a method and apparatus for coding an image based on the transform in an image coding system.
[002] Atualmente, a demanda por imagens/vídeos de alta resolução e alta qualidade, como 4K, 8K ou mais imagens/vídeos de ultra alta definição (UHD), vem aumentando em vários campos. À medida que os dados de imagem/vídeo se tornam de maior resolução e qualidade, a quantidade de informação transmitida ou a quantidade de bits aumenta em comparação com os dados de imagem convencionais. Portanto, quando os dados de imagem são transmitidos usando um meio como uma linha de banda larga convencional com fio/sem fio ou os dados de imagem/vídeo são armazenados usando um meio de armazenamento existente, o custo de transmissão e o custo de armazenamento são aumentados.[002] Currently, the demand for high-resolution and high-quality images/videos, such as 4K, 8K or more ultra-high definition (UHD) images/videos, is increasing in various fields. As image/video data becomes of higher resolution and quality, the amount of information transmitted or the number of bits increases compared to conventional image data. Therefore, when image data is transmitted using a medium such as a conventional wired/wireless broadband line or image/video data is stored using an existing storage medium, the transmission cost and storage cost are increased.
[003] Além disso, hoje em dia, o interesse e a demanda por mídia imersiva, como realidade virtual (VR), conteúdo de realidade artificial (AR) ou holograma, ou similares, estão aumentando, e a transmissão de imagens/vídeos com características de imagem diferentes daquelas de imagens reais, como uma imagem de jogo está aumentando.[003] Furthermore, nowadays, the interest and demand for immersive media such as virtual reality (VR), artificial reality (AR) content or hologram, or the like, is increasing, and the transmission of images/videos with image characteristics different from those of real images such as a game image is increasing.
[004] Consequentemente, há uma necessidade de uma técnica de compressão de imagem/vídeo altamente eficiente para compactar e transmitir ou armazenar efetivamente e reproduzir informações de imagens/vídeos de alta resolução e alta qualidade com vários recursos, conforme descrito acima.[004] Consequently, there is a need for a highly efficient image/video compression technique to effectively compress and transmit or store and reproduce high-resolution, high-quality image/video information with various features, as described above.
[005] Um aspecto técnico da presente divulgação é fornecer um método e um aparelho para aumentar a eficiência de codificação de imagem.[005] A technical aspect of the present disclosure is to provide a method and apparatus for increasing image coding efficiency.
[006] Um outro aspecto técnico da presente divulgação é fornecer um método e um aparelho para aumentar a eficiência na codificação de um índice de LFNST.[006] Another technical aspect of the present disclosure is to provide a method and apparatus for increasing efficiency in coding an LFNST index.
[007] Ainda um outro aspecto técnico da presente divulgação é fornecer um método e um aparelho para aumentar a eficiência de uma segunda transformada através da codificação de um índice de LFNST.[007] Yet another technical aspect of the present disclosure is to provide a method and apparatus for increasing the efficiency of a second transform by encoding an LFNST index.
[008] Ainda um outro aspecto técnico da presente divulgação é fornecer um método de codificação de imagem e um aparelho de codificação de imagem para derivar um conjunto de transformadas de LFNST usando um modo intra para um bloco luma em um modo de CCLM.[008] Yet another technical aspect of the present disclosure is to provide an image coding method and an image coding apparatus for deriving a set of LFNST transforms using an intra mode for a luma block in a CCLM mode.
[009] De acordo com uma modalidade da presente divulgação, é fornecido um método de decodificação de imagem realizado por um aparelho de decodificação. O método pode incluir: derivar um modo de intrapredição para um bloco croma como um modo de modelo linear de componentes cruzados (CCLM); atualizar o modo de intrapredição para o bloco croma com base em um modo de intrapredição para um bloco luma correspondente ao bloco croma; determinar um conjunto de LFNST incluindo matrizes de LFNST com base no modo de intrapredição atualizado, em que o modo de intrapredição atualizado pode ser derivado como um modo de intrapredição correspondente a uma posição específica no bloco luma, e em que a posição específica pode ser definida com base em um formato de cor do bloco croma.[009] According to an embodiment of the present disclosure, an image decoding method performed by a decoding apparatus is provided. The method may include: deriving an intraprediction mode for a chroma block as a cross-component linear model (CCLM) mode; updating the intraprediction mode for the chroma block based on an intraprediction mode for a luma block corresponding to the chroma block; determine a set of LFNST including LFNST matrices based on the updated intraprediction mode, wherein the updated intraprediction mode can be derived as an intraprediction mode corresponding to a specific position in the luma block, and wherein the specific position can be defined based on a chroma block color format.
[010] A posição específica pode ser uma posição central do bloco luma.[010] The specific position may be a central position of the luma block.
[011] A posição específica pode ser definida como ((xTbY + (nTbW * SubWidthC)/2), (yTbY + (nTbH * SubHeightC)/2)), xTbY e yTbY podem denotar coordenadas superior esquerda do bloco luma, nTbW e nTbH podem denotar uma largura e uma altura do bloco croma, e SubWidthC e SubHeightC podem denotar variáveis correspondentes ao formato de cor.[011] The specific position can be defined as ((xTbY + (nTbW * SubWidthC)/2), (yTbY + (nTbH * SubHeightC)/2)), xTbY and yTbY can denote upper left coordinates of the luma block, nTbW and nTbH can denote a width and a height of the chroma block, and SubWidthC and SubHeightC can denote variables corresponding to the color format.
[012] Quando o formato de cor é 4:2:0, SubWidthC e SubHeightC podem ser 2, e quando o formato de cor é 4:2:2, SubWidthC pode ser 2 e SubHeightC pode ser 1.[012] When the color format is 4:2:0, SubWidthC and SubHeightC can be 2, and when the color format is 4:2:2, SubWidthC can be 2 and SubHeightC can be 1.
[013] Quando o modo de intrapredição correspondente à posição específica é um modo de MIP, o modo de intrapredição atualizado pode ser um modo intraplanar.[013] When the intraprediction mode corresponding to the specific position is a MIP mode, the updated intraprediction mode may be an intraplanar mode.
[014] Quando o modo de intrapredição correspondente à posição específica é um modo de IBC, o modo de intrapredição atualizado pode ser um modo intra DC.[014] When the intraprediction mode corresponding to the specific position is an IBC mode, the updated intraprediction mode may be an intraDC mode.
[015] Quando o modo de intrapredição correspondente à posição específica é um modo de paleta, o modo de intrapredição atualizado pode ser um modo intra DC.[015] When the intraprediction mode corresponding to the specific position is a palette mode, the updated intraprediction mode may be an intraDC mode.
[016] De acordo com uma modalidade da presente divulgação, é fornecido um método de codificação de imagem realizado por um aparelho de codificação. O método pode incluir: derivar um modo de intrapredição para um bloco croma como um modo de modelo linear de componentes cruzados (CCLM); derivar amostras de predição para o bloco croma com base no modo de CCLM; derivar amostras residuais para o bloco croma com base nas amostras de predição; atualizar o modo de intrapredição para o bloco croma com base em um modo de intrapredição para um bloco luma correspondente ao bloco croma determinando um conjunto de LFNST incluindo matrizes de LFNST com base no modo de intrapredição atualizado; e derivar coeficientes de transformada modificados para o bloco croma com base nas amostras residuais e na matriz de LFNST, em que o modo de intrapredição atualizado pode ser derivado como um modo de intrapredição correspondente a uma posição específica no bloco luma, e a posição específica pode ser definida com base em um formato de cor do bloco croma.[016] According to an embodiment of the present disclosure, an image coding method performed by a coding apparatus is provided. The method may include: deriving an intraprediction mode for a chroma block as a cross-component linear model (CCLM) mode; derive prediction samples for the chroma block based on the CCLM mode; derive residual samples for the chroma block based on the prediction samples; updating the intraprediction mode for the chroma block based on an intraprediction mode for a luma block corresponding to the chroma block determining a set of LFNST including LFNST matrices based on the updated intraprediction mode; and deriving modified transform coefficients for the chroma block based on the residual samples and the LFNST matrix, wherein the updated intraprediction mode can be derived as an intraprediction mode corresponding to a specific position in the luma block, and the specific position can be defined based on a chroma block color format.
[017] De acordo com ainda outra modalidade da presente divulgação, pode ser fornecido um meio de armazenamento digital que armazena dados de imagem incluindo informações de imagem codificadas e um fluxo de bits gerado de acordo com um método de codificação de imagem realizado por um aparelho de codificação.[017] According to yet 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 generated in accordance with an image coding method performed by an apparatus coding.
[018] De acordo com ainda outra modalidade da presente divulgação, pode ser fornecido um meio de armazenamento digital que armazena dados de imagem incluindo informações de imagem codificadas e um fluxo de bits para fazer com que um aparelho de decodificação execute o método de decodificação de imagem.[018] According to yet 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 apparatus to perform the method of decoding image.
[019] De acordo com a presente divulgação, é possível aumentar a eficiência geral de compressão de imagem/vídeo.[019] According to the present disclosure, it is possible to increase the overall efficiency of image/video compression.
[020] De acordo com a presente divulgação, é possível aumentar a eficiência na codificação de um índice de LFNST.[020] According to the present disclosure, it is possible to increase efficiency in coding an LFNST index.
[021] De acordo com a presente divulgação, é possível aumentar a eficiência de uma segunda transformada através da codificação de um índice de LFNST.[021] According to the present disclosure, it is possible to increase the efficiency of a second transform by encoding an LFNST index.
[022] De acordo com a presente divulgação, é possível fornecer um método de codificação de imagem e um aparelho de codificação de imagem para derivar um conjunto de transformadas de LFNST usando um modo intra para um bloco luma em um modo de CCLM.[022] According to the present disclosure, it is possible to provide an image coding method and an image coding apparatus for deriving a set of LFNST transforms using an intra mode for a luma block in a CCLM mode.
[023] Os efeitos que podem ser obtidos por meio de exemplos específicos da presente divulgação não se limitam aos efeitos listados acima. Por exemplo, pode haver vários efeitos técnicos que uma pessoa versada na técnica relacionada pode entender ou derivar da presente divulgação. Consequentemente, os efeitos específicos da presente divulgação não estão limitados àqueles explicitamente descritos na presente divulgação e podem incluir vários efeitos que podem ser entendidos ou derivados dos recursos técnicos da presente divulgação.[023] The effects that can be obtained through specific examples of the present disclosure are not limited to the effects listed above. For example, there may be various technical effects that a person skilled in the related art can understand or derive from the present disclosure. Accordingly, the specific effects of the present disclosure are not limited to those explicitly described in the present disclosure and may include various effects that can be understood or derived from the technical features of the present disclosure.
[024] A Figura 1 é um diagrama que descreve esquematicamente uma configuração de um aparelho de codificação de vídeo/imagem ao qual o presente documento pode ser aplicado.[024] Figure 1 is a diagram that schematically describes a configuration of a video/image coding apparatus to which the present document can be applied.
[025] A Figura 2 é um diagrama que descreve esquematicamente uma configuração de um aparelho de decodificação de vídeo/imagem ao qual o presente documento pode ser aplicado.[025] Figure 2 is a diagram that schematically describes a configuration of a video/image decoding apparatus to which the present document can be applied.
[026] A Figura 3 ilustra esquematicamente uma técnica de transformada múltipla de acordo com uma modalidade da presente divulgação.[026] Figure 3 schematically illustrates a multiple transform technique according to an embodiment of the present disclosure.
[027] A Figura 4 mostra exemplificativamente modos intradirecionais de 65 direções de predição.[027] Figure 4 exemplifies intradirectional modes of 65 prediction directions.
[028] A Figura 5 é um diagrama que ilustra uma RST de acordo com uma modalidade da presente divulgação.[028] Figure 5 is a diagram illustrating an RST in accordance with an embodiment of the present disclosure.
[029] A Figura 6 é um diagrama que ilustra uma sequência de arranjo de dados de saída de uma transformada primária direta em um vetor unidimensional de acordo com um exemplo.[029] Figure 6 is a diagram illustrating an output data arrangement sequence of a direct primary transform into a one-dimensional vector according to an example.
[030] A Figura 7 é um diagrama que ilustra uma sequência de arranjo de dados de saída de uma transformada secundária direta em um bloco bidimensional de acordo com um exemplo.[030] Figure 7 is a diagram illustrating an output data arrangement sequence of a direct secondary transform in a two-dimensional block according to an example.
[031] A Figura 8 é um diagrama que ilustra um formato de bloco ao qual a LFNST é aplicada.[031] Figure 8 is a diagram illustrating a block format to which LFNST is applied.
[032] A Figura 9 é um diagrama que ilustra um arranjo de dados de saída de uma LFNST direta de acordo com um exemplo.[032] Figure 9 is a diagram illustrating an output data arrangement of a direct LFNST according to an example.
[033] A Figura 10 ilustra zero-out em um bloco ao qual uma LFNST 4 x 4 é aplicada de acordo com um exemplo.[033] Figure 10 illustrates zero-out in a block to which a 4 x 4 LFNST is applied according to an example.
[034] A Figura 11 ilustra zero-out em um bloco ao qual uma LFNST 8 x 8 é aplicada de acordo com um exemplo.[034] Figure 11 illustrates zero-out in a block to which an 8 x 8 LFNST is applied according to an example.
[035] A Figura 12 ilustra um CCLM aplicável quando derivar um modo de intrapredição para um bloco croma de acordo com uma modalidade.[035] Figure 12 illustrates a CCLM applicable when deriving an intraprediction mode for a chroma block according to an embodiment.
[036] A Figura 13 ilustra um método de decodificação de imagem de acordo com um exemplo.[036] Figure 13 illustrates an image decoding method according to an example.
[037] A Figura14 ilustra um método de codificação de imagem de acordo com um exemplo.[037] Figure 14 illustrates an image coding method according to an example.
[038] A Figura15 ilustra esquematicamente um exemplo de um sistema de codificação de vídeo/imagem ao qual a presente divulgação é aplicável.[038] Figure 15 schematically illustrates an example of a video/image coding system to which the present disclosure is applicable.
[039] A Figura16 ilustra a estrutura de um sistema de streaming de conteúdo ao qual a presente divulgação é aplicada.[039] Figure 16 illustrates the structure of a content streaming system to which the present disclosure is applied.
[040] Embora a presente divulgação possa ser suscetível a várias modificações e inclua várias modalidades, suas modalidades específicas foram mostradas nos desenhos a título de exemplo e agora serão descritas em detalhes. No entanto, isso não se destina a limitar a presente divulgação às modalidades específicas divulgadas neste documento. A terminologia usada neste documento destina-se apenas a descrever modalidades específicas e não se destina a limitar a ideia técnica da presente divulgação. As formas singulares podem incluir as formas plurais, a menos que o contexto indique claramente o contrário. Os termos como “incluir” e “ter” destinam-se a indicar que existem recursos, números, etapas, operações, elementos, componentes ou combinações dos mesmos usados na descrição a seguir e, portanto, não devem ser entendidos como a possibilidade de existência ou adição de um ou mais recursos, números, etapas, operações, elementos, componentes ou combinações diferentes dos mesmos são excluídos antecipadamente.[040] Although the present disclosure may be susceptible to various modifications and includes various embodiments, its specific embodiments have been shown in the drawings by way of example and will now be described in detail. However, this is not intended to limit the present disclosure to the specific embodiments disclosed herein. The terminology used herein is intended only to describe specific embodiments and is not intended to limit the technical idea of the present disclosure. Singular forms may include plural forms unless the context clearly indicates otherwise. Terms such as “include” and “have” are intended to indicate that there are features, numbers, steps, operations, elements, components or combinations thereof used in the following description and, therefore, should not be understood as the possibility of existence or addition of one or more different features, numbers, steps, operations, elements, components or combinations thereof are excluded in advance.
[041] Enquanto isso, cada componente nos desenhos descritos neste documento é ilustrado independentemente para conveniência da descrição quanto às funções características diferentes umas das outras e, no entanto, não significa que cada componente seja realizado por um hardware ou software separado. Por exemplo, quaisquer dois ou mais desses componentes podem ser combinados para formar um único componente e qualquer componente único pode ser dividido em vários componentes. As modalidades nas quais os componentes são combinados e/ou divididos pertencerão ao escopo do direito de patente da presente divulgação, desde que não se afastem da essência da presente divulgação.[041] Meanwhile, each component in the drawings described in this document is illustrated independently for convenience of description as to characteristic functions different from each other and, however, it does not mean that each component is realized by separate hardware or software. For example, any two or more of these components can be combined to form a single component, and any single component can be divided into multiple components. The embodiments in which the components are combined and/or divided will fall within the scope of the patent right of the present disclosure, as long as they do not depart from the essence of the present disclosure.
[042] Em seguida, as modalidades preferidas da presente divulgação serão explicadas em mais detalhes ao fazer referência aos desenhos anexos. Além disso, os mesmos sinais de referência são usados para os mesmos componentes nos desenhos, e descrições repetidas para os mesmos componentes serão omitidas.[042] Next, the preferred embodiments of the present disclosure will be explained in more detail by referring to the attached drawings. Furthermore, the same reference signs are used for the same components in the drawings, and repeated descriptions for the same components will be omitted.
[043] Este documento refere-se à codificação de vídeo/imagem. Por exemplo, o método/exemplo divulgado neste documento pode estar relacionado a um padrão VVC (Codificação de vídeo versátil) (ITU-T Rec. H.266), um padrão de codificação de vídeo/imagem de próxima geração após VVC, ou outra codificação de vídeo relacionada padrões (por exemplo, padrão HEVC (Codificação de Vídeo de Alta Eficiência) (ITU-T Rec. H.265), padrão EVC (codificação de vídeo essencial), padrão AVS2, etc..).[043] This document refers to video/image coding. For example, the method/example disclosed in this document may be related to a VVC (Versatile Video Coding) standard (ITU-T Rec. H.266), a next generation video/image coding standard after VVC, or other related video coding standards (e.g. HEVC (High Efficiency Video Coding) standard (ITU-T Rec. H.265), EVC (Essential Video Coding) standard, AVS2 standard, etc..).
[044] Neste documento, uma variedade de modalidades relacionadas à codificação de vídeo/imagem pode ser fornecida e, a menos que especificado em contrário, as modalidades podem ser combinadas entre si e realizadas.[044] In this document, a variety of modalities related to video/image coding may be provided and, unless otherwise specified, the modalities may be combined with each other and carried out.
[045] Neste documento, um vídeo pode significar um conjunto de uma série de imagens ao longo do tempo. Geralmente uma gravura significa uma unidade que representa uma imagem em um fuso horário específico, e uma fatia/bloco é uma unidade que constitui uma parte da gravura. A fatia/ bloco pode incluir uma ou mais unidades de árvore de codificação (CTUs). Uma gravura pode ser constituída por uma ou mais fatias/ blocos. Uma gravura pode ser constituída por um ou mais grupos de blocos. Um grupo de blocos pode incluir um ou mais blocos.[045] In this document, a video can mean a set of a series of images over time. Generally a picture means a unit that represents an image in a specific time zone, and a slice/block is a unit that constitutes a part of the picture. The slice/block may include one or more coding tree units (CTUs). An engraving can be made up of one or more slices/blocks. An engraving can be made up of one or more groups of blocks. A block group can include one or more blocks.
[046] Um pixel ou um pel pode significar uma unidade menor que constitui uma gravura (ou imagem). Além disso, 'amostra' pode ser usado como um termo correspondente a um pixel. Uma amostra geralmente pode representar um pixel ou um valor de um pixel e pode representar apenas um valor de pixel/pixel de um componente de luma ou apenas um valor de pixel/pixel de um componente de croma. Alternativamente, a amostra pode referir-se a um valor de pixel no domínio espacial, ou quando este valor de pixel é convertido para o domínio de frequência, pode referir- se a um coeficiente de transformada no domínio de frequência.[046] A pixel or a pel can mean a smaller unit that constitutes an engraving (or image). Additionally, 'sample' can be used as a term corresponding to a pixel. A swatch can generally represent a pixel or a value of a pixel, and can represent just a pixel/pixel value of a luma component or just a pixel/pixel value of a chroma component. Alternatively, the sample may refer to a pixel value in the spatial domain, or when this pixel value is converted to the frequency domain, it may refer to a transform coefficient in the frequency domain.
[047] Uma unidade pode representar a unidade básica de processamento de imagem. A unidade pode incluir pelo menos uma região específica e informações relacionadas à região. Uma unidade pode incluir um bloco luma e dois blocos de croma (por exemplo, cb, cr). A unidade e um termo como um bloco, uma área ou semelhante podem ser usados no lugar um do outro de acordo com as circunstâncias. Em um caso geral, um bloco M x N pode incluir um conjunto (ou uma matriz) de amostras (ou matrizes de amostras) ou coeficientes de transformada consistindo em M colunas e N linhas.[047] A unit may represent the basic image processing unit. The unit can include at least one specific region and information related to the region. A unit may include one luma block and two chroma blocks (e.g. cb, cr). The unit and a term such as a block, an area or the like can be used in place of each other according to the circumstances. In a general case, an M x N block may include a set (or a matrix) of samples (or sample matrices) or transform coefficients consisting of M columns and N rows.
[048] Neste documento, os termos “/” e “,” devem ser interpretados para indicar “e/ou”. Por exemplo, a expressão “A/B” pode significar “A e/ou B”. Além disso, “A, B” pode significar “A e/ou B”. Além disso, “A/B/C” pode significar “pelo menos um dentre A, B e/ou C”. Além disso, “A/B/C” pode significar “pelo menos um de A, B e/ou C”.[048] In this document, the terms “/” and “,” should be interpreted to indicate “and/or”. For example, the expression “A/B” can mean “A and/or B”. Furthermore, “A, B” can mean “A and/or B”. Furthermore, “A/B/C” can mean “at least one of A, B and/or C”. Furthermore, “A/B/C” can mean “at least one of A, B and/or C”.
[049] Além disso, no documento, o termo “ou” deve ser interpretado para indicar “e/ou”. Por exemplo, a expressão “A ou B” pode incluir 1) apenas A, 2) apenas B e/ou 3) ambos A e B. Em outras palavras, o termo “ou” neste documento deve ser interpretado para indicar “adicionalmente ou alternativamente”.[049] Furthermore, in the document, the term “or” must 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” in this document should be interpreted to indicate “further or alternatively".
[050] Na presente divulgação, “pelo menos um de A e B” pode significar “apenas A”, “apenas B” ou “ambos A e B”. Além disso, na presente divulgação, a expressão “pelo menos um de A ou B” ou “pelo menos um de A e/ou B” pode ser interpretada como “pelo menos um de A e B”.[050] In the present disclosure, “at least one of A and B” may mean “A only”, “B only” or “both A and B”. Furthermore, in the present disclosure, the expression “at least one of A or B” or “at least one of A and/or B” may be interpreted as “at least one of A and B”.
[051] Além disso, na presente divulgação, “pelo menos um de A, B e C” pode significar “apenas A”, “apenas B”, “apenas C” ou “qualquer combinação de A, B e C”. Além disso, “pelo menos um de A, B ou C” ou “pelo menos um de A, B e/ou C” pode significar “pelo menos um de A, B e C”.[051] Furthermore, 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”. Furthermore, “at least one of A, B or C” or “at least one of A, B and/or C” can mean “at least one of A, B and C”.
[052] Além disso, um parêntese usado na presente divulgação pode significar “por exemplo”. Especificamente, quando indicado como “predição (intrapredição)”, pode significar que “intrapredição” é proposta como um exemplo de “predição”. Em outras palavras, a “predição” da presente divulgação não se limita a “intrapredição”, e a “intrapredição” pode ser proposta como um exemplo de “predição”. Além disso, quando indicado como “predição (ou seja, intrapredição)”, também pode significar que “intrapredição” é proposta como um exemplo de “predição”.[052] Furthermore, a parenthesis used in the present disclosure may mean “for example”. Specifically, when indicated as “prediction (intraprediction)”, it may mean that “intraprediction” is proposed as an example of “prediction”. In other words, the “prediction” of the present disclosure is not limited to “intra-prediction”, and “intra-prediction” may be proposed as an example of “prediction”. Furthermore, when indicated as “prediction (i.e., intraprediction)”, it can also mean that “intraprediction” is proposed as an example of “prediction”.
[053] Recursos técnicos individualmente descritos em uma figura na presente divulgação podem ser individualmente implementados ou podem ser simultaneamente implementados.[053] Technical features individually described in a figure in the present disclosure can be individually implemented or can be simultaneously implemented.
[054] A Figura 1 é um diagrama que ilustra esquematicamente uma configuração de um aparelho de codificação de vídeo/imagem aplicável às modalidades deste documento. Em seguida, o que é denominado como o aparelho de codificação de vídeo pode incluir o aparelho de codificação de imagem.[054] Figure 1 is a diagram that schematically illustrates a configuration of a video/image coding apparatus applicable to the embodiments of this document. Next, what is termed as the video coding apparatus may include the image coding apparatus.
[055] Com referência à Figura 1, o aparelho de codificação 100 pode incluir e ser configurado com uma particionador de imagem 110, um preditor 120, um processador residual 130, um codificador de entropia 140, um somador 150, um filtro 160, e uma memória 170. O preditor 120 pode incluir um interpreditor 121 e um intrapreditor 122. O processador residual 130 pode incluir um transformador 132, um quantizador 133, um desquantizador 134, e um transformador inverso 135. O processador residual 130 ainda pode incluir um subtrator 131. O somador 150 pode ser denominado como um reconstrutor ou gerador de bloco reconstruído. O particionador de imagem 110, o preditor 120, o processador residual 130, o codificador de entropia 140, o somador 150, e o filtro 160, que foram descritos acima, podem ser configurados por um ou mais componentes de hardware (por exemplo, chipsets de codificador ou processadores) de acordo com uma modalidade. Além disso, a memória 170 pode incluir um buffer de gravura decodificado (DPB), e pode ser constituída por um meio de armazenamento digital. O componente de hardware ainda pode incluir a memória 170 como um componente interno/externo.[055] Referring to Figure 1, the coding apparatus 100 may include and be configured with an image partitioner 110, a predictor 120, a residual processor 130, an entropy encoder 140, an adder 150, a filter 160, and a memory 170. The predictor 120 may include an interpredictor 121 and an intrapredictor 122. The residual processor 130 may include a transformer 132, a quantizer 133, a dequantizer 134, and an inverse transformer 135. The residual processor 130 may further include a subtractor 131. The adder 150 may be termed as a reconstructed block reconstructor or generator. The image partitioner 110, the predictor 120, the residual processor 130, the entropy encoder 140, the adder 150, and the filter 160, which were described above, may be configured by one or more hardware components (e.g., chipsets of encoder or processors) according to an embodiment. Furthermore, memory 170 may include a decoded write buffer (DPB), and may be comprised of a digital storage medium. The hardware component may further include memory 170 as an internal/external component.
[056] O particionador de imagem 110 pode particionar uma imagem de entrada (ou uma gravura ou um quadro) de entrada para o aparelho de codificação 100 em uma ou mais unidades de processamento. Como um exemplo, a unidade de processamento pode ser chamada de unidade de codificação (CU). Neste caso, começando com uma unidade de árvore de codificação (CTU) ou a maior unidade de codificação (LCU), a unidade de codificação pode ser particionada recursivamente de acordo com a estrutura de árvore ternária de árvore binária quaternária (QTBTTT). Por exemplo, uma unidade de codificação pode ser dividida em uma pluralidade de unidades de codificação de uma profundidade mais profunda com base na estrutura de árvore quaternária, a estrutura de árvore binária e/ou a estrutura ternária. Neste caso, por exemplo, a estrutura de árvore quaternária pode ser aplicada primeiro e a estrutura de árvore binária e/ou a estrutura ternária podem ser aplicadas posteriormente. Alternativamente, a estrutura de árvore binária pode ser aplicada primeiro. O procedimento de codificação de acordo com a presente divulgação pode ser realizado com base na unidade de codificação final que não é mais particionada. Neste caso, a unidade de codificação máxima pode ser usada diretamente como unidade de codificação final com base na eficiência de codificação de acordo com a característica da imagem. Alternativamente, a unidade de codificação pode ser dividida recursivamente em unidades de codificação de uma profundidade ainda maior conforme necessário, de modo que a unidade de codificação de um tamanho ideal possa ser usada como uma unidade de codificação final. Aqui, o procedimento de codificação pode incluir procedimentos como predição, transformada e reconstrução, que serão descritos posteriormente. Como outro exemplo, a unidade de processamento pode incluir ainda uma unidade de predição (PU) ou uma unidade de transformada (TU). Neste caso, a unidade de predição e a unidade de transformada podem ser divididas ou particionadas da unidade de codificação final descrita acima. A unidade de predição pode ser uma unidade de predição de amostra e a unidade de transformada pode ser uma unidade para derivar um coeficiente de transformada e/ou uma unidade para derivar um sinal residual de um coeficiente de transformada.[056] The image partitioner 110 may partition an input image (or a picture or a frame) input to the coding apparatus 100 into one or more processing units. As an example, the processing unit may be called a coding unit (CU). In this case, starting with a coding tree unit (CTU) or the largest coding unit (LCU), the coding unit can be recursively partitioned according to the quaternary binary tree ternary tree structure (QTBTTT). For example, a coding unit can be divided into a plurality of coding units of a deeper depth based on the quaternary tree structure, the binary tree structure and/or the ternary structure. In this case, for example, the quaternary tree structure can be applied first and the binary tree structure and/or the ternary structure can be applied later. Alternatively, the binary tree structure can be applied first. The coding procedure according to the present disclosure can be performed based on the final coding unit that is no longer partitioned. In this case, the maximum coding unit can be directly used as the final coding unit based on the coding efficiency according to the image characteristic. Alternatively, the coding unit can be recursively divided into coding units of even greater depth as needed, so that the coding unit of an optimal size can be used as a final coding unit. Here, the coding procedure may include procedures such as prediction, transformation and reconstruction, which will be described later. As another example, the processing unit may further include a prediction unit (PU) or a transform unit (TU). In this case, the prediction unit and the transform unit can be divided or partitioned from the final coding unit described above. The prediction unit may be a sample prediction unit and the transform unit may be a unit for deriving a transform coefficient and/or a unit for deriving a residual signal from a transform coefficient.
[057] A unidade e um termo como um bloco, uma área ou semelhante podem ser usados no lugar um do outro de acordo com as circunstâncias. Em um caso geral, um bloco M x N pode representar um conjunto de amostras ou coeficientes de transformada consistindo de M colunas e N linhas. A amostra pode geralmente representar um pixel ou um valor de um pixel e pode representar apenas um valor de pixel/pixel de um componente de luma, ou apenas um valor de pixel/pixel de um componente de croma. A amostra pode ser usada como um termo correspondente a um pixel ou a um pel de uma gravura (ou imagem).[057] The unit and a term such as a block, an area or the like can be used in place of each other according to the circumstances. In a general case, an M x 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 a value of a pixel, and may represent only a pixel/pixel value of a luma component, or only a pixel/pixel value of a chroma component. Sample can be used as a term corresponding to a pixel or a skin of an engraving (or image).
[058] No aparelho de codificação 100, um sinal de predição (bloco predito, matriz de amostra de predição) de saída do interpreditor 121 ou do intrapreditor 122 pode ser subtraído de um sinal de imagem de entrada (bloco original, matriz de amostra original) para gerar um sinal residual (bloco residual, matriz de amostra residual) e o sinal residual gerado é transmitido para o transformador 132. Neste caso, como mostrado, uma unidade de subtração de um sinal de predição (bloco predito, matriz de amostra de predição) do sinal de imagem de entrada (bloco original, matriz de amostra original) no aparelho de codificação 100 pode ser chamado de subtrator 131. O preditor pode realizar predição em um bloco alvo de processamento (doravante, denominado como 'bloco atual') e pode gerar um bloco predito incluindo amostras de predição para o bloco atual. O preditor pode determinar se a intrapredição ou interpredição é aplicada em um bloco atual ou base CU. Conforme discutido posteriormente na descrição de cada modo de predição, o preditor pode gerar várias informações relacionadas à predição, como informações do modo de predição, e transmitir as informações geradas para o codificador de entropia 140. As informações relacionadas à predição podem ser codificadas no codificador de entropia 140, e ser emitido na forma de um fluxo de bits.[058] In coding apparatus 100, a prediction signal (predicted block, prediction sample matrix) output from interpredictor 121 or intrapredictor 122 may be subtracted from an input image signal (original block, original sample matrix ) to generate a residual signal (residual block, residual sample matrix) and the generated residual signal is transmitted to the transformer 132. In this case, as shown, a subtraction unit of a prediction signal (predicted block, sample matrix of prediction) of the input image signal (original block, original sample matrix) in the coding apparatus 100 may be called subtractor 131. The predictor may perform prediction on a processing target block (hereinafter referred to as 'current block') and can generate a predicted block including prediction samples for the current block. The predictor can determine whether intraprediction or interprediction is applied on a current block or CU basis. As discussed later in the description of each prediction mode, the predictor may generate various prediction-related information, such as prediction mode information, and transmit the generated information to the entropy encoder 140. The prediction-related information may be encoded in the encoder of entropy 140, and be output in the form of a stream of bits.
[059] O intrapreditor 122 pode prever o bloco atual referindo-se a amostras na gravura atual. As referidas amostras podem estar localizadas na vizinhança ou afastadas do bloco atual de acordo com o modo de predição. Na intrapredição, os modos de predição podem incluir uma pluralidade de modos não direcionais e uma pluralidade de modos direcionais. Os modos não direcionais podem incluir, por exemplo, um modo DC e um modo planar. O modo direcional pode incluir, por exemplo, 33 modos de predição direcionais ou 65 modos de predição direcionais de acordo com o grau de detalhe da direção de predição. No entanto, este é apenas um exemplo, e modos de predição mais ou menos direcional podem ser usados dependendo de uma configuração. O intrapreditor 122 pode determinar o modo de predição aplicado ao bloco atual usando o modo de predição aplicado ao bloco vizinho.[059] The intrapredictor 122 can predict the current block by referring to samples in the current engraving. Said samples can be located in the neighborhood or far from the current block according to the prediction mode. In intraprediction, the prediction modes may include a plurality of non-directional modes and a plurality of directional modes. Non-directional modes 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 degree of detail of the prediction direction. However, this is just an example, and more or less directional prediction modes can be used depending on a configuration. The intrapredictor 122 may determine the prediction mode applied to the current block using the prediction mode applied to the neighboring block.
[060] O interpreditor 121 pode derivar um bloco predito para o bloco atual com base em um bloco de referência (matriz de amostra de referência) especificado por um vetor de movimento em uma gravura de referência. Neste momento, a fim de reduzir a quantidade de informações de movimento transmitidas no modo de predição entre, as informações de movimento podem ser previstas em um bloco, sub-bloco ou base de amostra com base na correlação de informações de movimento entre o bloco vizinho e o bloco atual. A informação de movimento pode incluir um vetor de movimento e um índice de gravura de referência. As informações de movimento podem incluir ainda informações de direção interpredição (predição L0, predição L1, predição Bi, etc.). No caso de interpredição, o bloco vizinho pode incluir um bloco vizinho espacial existente na gravura atual e um bloco vizinho temporal existente na gravura de referência. A gravura de referência incluindo o bloco de referência e a gravura de referência incluindo o bloco vizinho temporal podem ser iguais ou diferentes uma da outra. O bloco vizinho temporal pode ser chamado de bloco de referência colocado, CU colocada (colCU) e semelhantes, e a gravura de referência incluindo o bloco vizinho temporal pode ser chamada de gravura colocada (colPic). Por exemplo, o interpreditor 121 pode configurar uma lista de candidatos de informações de movimento com base em blocos vizinhos e gerar informações indicando qual candidato é usado para derivar um vetor de movimento e/ou um índice de gravura de referência do bloco atual. A interpredição pode ser realizada com base em vários modos de predição. Por exemplo, no caso de um modo de salto e um modo de mesclagem, o interpreditor 121 pode usar informações de movimento do bloco vizinho como informações de movimento do bloco atual. No modo de salto, ao contrário do modo de mesclagem, o sinal residual pode não ser transmitido. No caso do modo de predição de informação de movimento (predição de vetor de movimento, MVP), o vetor de movimento do bloco vizinho pode ser usado como um preditor de vetor de movimento e o vetor de movimento do bloco atual pode ser indicado pela sinalização de uma diferença de vetor de movimento.[060] The interpredictor 121 may derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector in a reference engraving. At this time, in order to reduce the amount of motion information transmitted in the between prediction mode, motion information can be predicted in a block, sub-block or sample basis based on the correlation of motion information between the neighboring block and the current block. The motion information may include a motion vector and a reference engraving index. The motion information may further include inter-prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of interprediction, the neighboring block may include a spatial neighboring block existing in the current picture and a temporal neighboring block existing in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different from each other. The temporal neighboring block can be called collocated reference block, collocated CU (colCU) and the like, and the reference engraving including the temporal neighboring block can be called collocated engraving (colPic). For example, the interpredictor 121 may configure a candidate list of motion information based on neighboring blocks and generate information indicating which candidate is used to derive a motion vector and/or a reference engraving index of the current block. Interprediction can be performed based on several prediction modes. For example, in the case of a jump mode and a merge mode, the interpredictor 121 may use movement information from the neighboring block as movement information from the current block. In skip mode, unlike blending mode, the residual signal may not be transmitted. In the case of motion information prediction mode (motion vector prediction, MVP), the motion vector of the neighboring block can be used as a motion vector predictor, and the motion vector of the current block can be indicated by signaling of a motion vector difference.
[061] O preditor 120 pode gerar um sinal de predição com base em vários métodos de predição a serem descritos abaixo. Por exemplo, para predição em um bloco, o preditor pode aplicar intrapredição ou interpredição e, também, aplicar intrapredição e interpredição ao mesmo tempo. Esta última pode ser chamada de predição combinada inter e intra (CIIP). Além disso, o preditor pode ser baseado em um modo de predição de cópia intrabloco (IBC) ou em um modo de paleta para realizar a predição em um bloco. O modo de predição IBC ou modo de paleta pode ser usado para codificação de imagem/vídeo de conteúdo de um jogo ou semelhante, como codificação de conteúdo de tela (SCC). A IBC basicamente realiza a predição em uma gravura atual, mas pode ser realizado de forma semelhante à interpredição, pois deriva um bloco de referência em uma gravura atual. Ou seja, a IBC pode usar pelo menos uma das técnicas de interpredição descritas no presente documento. O modo de paleta pode ser considerado como um exemplo de intracodificação ou intrapredição. Quando o modo de paleta é aplicado, um valor de amostra em uma gravura pode ser sinalizado com base nas informações de um índice de paleta e uma tabela de paleta.[061] The predictor 120 may generate a prediction signal based on various prediction methods to be described below. For example, for prediction in a block, the predictor can apply intraprediction or interprediction, and also apply intraprediction and interprediction at the same time. The latter can be called combined inter and intra prediction (CIIP). Furthermore, the predictor can be based on an intra-block copy (IBC) prediction mode or a palette mode to perform prediction on a block. IBC prediction mode or palette mode can be used for image/video coding of game content or the like, such as screen content coding (SCC). IBC basically performs prediction on a current picture, but it can be performed in a similar way to interprediction in that it derives a reference block on a current picture. That is, the IBC may use at least one of the interprediction techniques described in this document. Palette mode can be considered as an example of intracoding or intraprediction. When palette mode is applied, a sample value in an engraving can be flagged based on information from a palette index and a palette table.
[062] O sinal de predição gerado através do preditor (incluindo o interpreditor 121 e/ou o intrapreditor 122) pode ser usado para gerar um sinal reconstruído ou para gerar um sinal residual. O transformador 132 pode gerar coeficientes de transformada aplicando uma técnica de transformada ao sinal residual. Por exemplo, a técnica de transformada pode incluir pelo menos uma de uma transformada discreta de cosseno (DCT), uma transformada discreta de seno (DST), uma transformada de Karhunen- Loève (KLT), uma transformada baseada em gráfico (GBT), ou uma transformada condicionalmente não linear (CNT). Aqui, a transformada de médias GBT obtida de um gráfico quando as informações de relacionamento entre pixels são representadas pelo gráfico. A transformada de médias de CNT obtida com base em um sinal de predição gerado usando todos os pixels previamente reconstruídos. Além disso, o processo de transformada pode ser aplicado a blocos de pixels quadrados do mesmo tamanho ou pode ser aplicado a blocos não quadrados de tamanhos variados.[062] The prediction signal generated through the predictor (including the interpredictor 121 and/or the intrapredictor 122) can be used to generate a reconstructed signal or to generate a residual signal. Transformer 132 can generate transform coefficients by applying a transform technique to the residual signal. For example, the transform technique may include at least one of a discrete cosine transform (DCT), a discrete sine transform (DST), a Karhunen-Loève transform (KLT), a graph-based transform (GBT), or a conditionally nonlinear transform (CNT). Here, the GBT means transform obtained from a graph when the relationship information between pixels is represented by the graph. The CNT mean transform obtained based on a prediction signal generated using all previously reconstructed pixels. Furthermore, the transform process can be applied to square pixel blocks of the same size or can be applied to non-square blocks of varying sizes.
[063] O quantizador 133 pode quantificar os coeficientes de transformada e transmiti-los ao codificador de entropia 140, e o codificador de entropia 140 pode codificar o sinal quantificado (informações sobre os coeficientes de transformada quantificados) e emitir o sinal codificado em um fluxo de bits. A informação sobre os coeficientes de transformada quantizados pode ser denominada como informação residual. O quantizador 133 pode rearranjar os coeficientes de transformada quantizados do tipo bloco em uma forma de vetor unidimensional com base em uma ordem de varredura de coeficiente e gerar informações sobre os coeficientes de transformada quantizados com base nos coeficientes de transformada quantizados da forma de vetor unidimensional. O codificador de entropia 140 pode realizar vários métodos de codificação, tais como, por exemplo, Golomb exponencial, codificação de comprimento variável adaptável ao contexto (CAVLC), codificação aritmética binária adaptável ao contexto (CABAC) e semelhantes. O codificador de entropia 140 pode codificar informações necessárias para reconstrução de vídeo/imagem diferente de coeficientes de transformada quantizados (por exemplo, valores de elementos de sintaxe, etc.) juntos ou separadamente. As informações codificadas (por exemplo, informações de vídeo/imagem codificadas) podem ser transmitidas ou armazenadas em uma base de unidade de uma camada de abstração de rede (NAL) na forma de um fluxo de bits. As informações de vídeo/imagem podem ainda incluir informações sobre vários conjuntos de parâmetros, como um conjunto de parâmetros de adaptação (APS), um conjunto de parâmetros de gravura (PPS), um conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros de vídeo (VPS) ou semelhantes. Além disso, as informações de vídeo/imagem podem incluir ainda informações gerais de restrição. No presente documento, informações e/ou elementos de sintaxe que são transmitidos/sinalizados para o aparelho de decodificação a partir do aparelho de codificação podem ser incorporados em informações de vídeo/imagem. A informação de vídeo/imagem pode ser codificada através do procedimento de codificação acima descrito e ser incorporada no fluxo de bits. O fluxo de bits pode ser transmitido através de uma rede ou armazenado em um meio de armazenamento digital. Aqui, a rede pode incluir uma rede de transmissão, uma rede de comunicação e/ou semelhantes, e o meio de armazenamento digital pode incluir várias mídias de armazenamento, como USB, SD, CD, DVD, Blu-ray, HDD, SSD e semelhantes. Um transmissor (não mostrado) que transmite um sinal de saída do codificador de entropia 140 e/ou um armazenamento (não mostrado) que o armazena pode ser configurado como um elemento interno/externo do aparelho de codificação 100, ou o transmissor pode ser incluído no codificador de entropia 140.[063] The quantizer 133 can quantify the transform coefficients and transmit them to the entropy encoder 140, and the entropy encoder 140 can encode the quantized signal (information about the quantized transform coefficients) and output the encoded signal in a stream of bits. The information about the quantized transform coefficients can be termed as residual information. The quantizer 133 can rearrange the block-type quantized transform coefficients into a one-dimensional vector form based on a coefficient sweep order and generate information about the quantized transform coefficients based on the quantized transform coefficients of the one-dimensional vector form. The entropy encoder 140 can realize various encoding methods, such as, for example, exponential Golomb, context-adaptive variable-length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), and the like. The entropy encoder 140 may encode information necessary for video/image reconstruction other than quantized transform coefficients (e.g., values of syntax elements, etc.) together or separately. The encoded information (e.g., encoded video/image information) may be transmitted or stored on a unit basis of a network abstraction layer (NAL) 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), an engraving parameter set (PPS), a sequence parameter set (SPS), a video parameters (VPS) or similar. Additionally, video/image information may also include general restriction information. In this document, information and/or syntax elements that are transmitted/signaled to the decoding apparatus from the encoding apparatus may be incorporated into video/image information. The video/image information may be encoded via the above-described coding procedure and incorporated into the bit stream. The bit stream can be transmitted over a network or stored on a digital storage medium. Here, the network may include a transmission network, a communication network and/or the like, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD and similar. A transmitter (not shown) that transmits an output signal from the entropy encoder 140 and/or a store (not shown) that stores it may be configured as an internal/external element of the coding apparatus 100, or the transmitter may be included in entropy encoder 140.
[064] Os coeficientes de transformada quantizados de saída do quantizador 133 podem ser usados para gerar um sinal de predição. Por exemplo, aplicando desquantização e transformada inversa a coeficientes de transformada quantificados através do desquantizador 134 e do transformador inverso 135, o sinal residual (bloco residual ou amostras residuais) pode ser reconstruído. O adicionador 155 adiciona o sinal residual reconstruído a uma saída de sinal de predição do interpreditor 121 ou do intrapreditor 122, de modo que um sinal reconstruído (gravura reconstruída, bloco reconstruído, matriz de amostra reconstruída) possa ser gerado. Quando não há resíduo para um bloco alvo de processamento, como no caso em que o modo de salto é aplicado, o bloco predito pode ser usado como um bloco reconstruído. O somador 150 pode ser chamado de reconstrutor ou gerador de bloco reconstruído. O sinal de reconstrução gerado pode ser usado para intrapredição de um próximo bloco alvo de processamento no bloco atual e, conforme descrito mais adiante, pode ser usado para interpredição de uma próxima gravura por meio de filtragem.[064] The quantized transform coefficients output from the quantizer 133 can be used to generate a prediction signal. For example, by applying dequantization and inverse transform to transform coefficients quantized through dequantizer 134 and inverse transformer 135, the residual signal (residual block or residual samples) can be reconstructed. Adder 155 adds the reconstructed residual signal to a prediction signal output of interpredictor 121 or intrapredictor 122 so that a reconstructed signal (reconstructed etching, reconstructed block, reconstructed sample matrix) can be generated. When there is no residue for a processing target block, as in the case where skip mode is applied, the predicted block can be used as a reconstructed block. The adder 150 may be called a rebuilder or a reconstructed block generator. The generated reconstruction signal can be used for intra-prediction of a next processing target block in the current block and, as described later, can be used for inter-prediction of a next write through filtering.
[065] Enquanto isso, no processo de codificação e/ou reconstrução da gravura, o mapeamento de luma com escala de croma (LMCS) pode ser aplicado.[065] Meanwhile, in the process of encoding and/or reconstructing the engraving, chroma scale luma mapping (LMCS) can be applied.
[066] O filtro 160 pode melhorar a qualidade de vídeo subjetiva/objetiva aplicando a filtragem ao sinal reconstruído. Por exemplo, o filtro 160 pode gerar uma gravura reconstruída modificada aplicando vários métodos de filtragem à gravura reconstruída e pode armazenar a gravura reconstruída modificada na memória 170, especificamente no DPB da memória 170. Os vários métodos de filtragem podem incluir, por exemplo, filtragem de desbloqueio, desvio adaptativo de amostra, um filtro de circuito adaptativo, um filtro bilateral ou semelhante. Conforme discutido mais adiante na descrição de cada método de filtragem, o filtro 160 pode gerar várias informações relacionadas à filtragem e transmitir as informações geradas para o codificador de entropia 140. As informações sobre a filtragem podem ser codificadas no codificador de entropia 140 e emitidas na forma de fluxo de bits.[066] Filter 160 can improve subjective/objective video 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 may store the modified reconstructed picture in memory 170, specifically in the DPB of memory 170. The various filtering methods may include, for example, filtering deblocking, adaptive sample shift, an adaptive loop filter, a two-sided filter or the like. As discussed further in the description of each filtering method, filter 160 may generate various filtering-related information and transmit the generated information to entropy encoder 140. Filtering information may be encoded in entropy encoder 140 and output at bit stream form.
[067] A gravura reconstruída modificada que foi transmitida para a memória 170 pode ser usada como uma gravura de referência no interpreditor 121. Através disso, o aparelho de codificação pode evitar incompatibilidade de predição no aparelho de codificação 100 e um aparelho de decodificação quando a interpredição é aplicada e também pode melhorar a eficiência da codificação.[067] The modified reconstructed picture that has been transmitted to the memory 170 can be used as a reference picture in the interpredictor 121. Through this, the coding apparatus can avoid prediction incompatibility in the coding apparatus 100 and a decoding apparatus when the interprediction is applied and can also improve coding efficiency.
[068] A memória 170 DPB pode armazenar a gravura reconstruída modificada para usá-la como uma gravura de referência no interpreditor 121. A memória 170 pode armazenar informações de movimento de um bloco na gravura atual, a partir da qual a informação de movimento foi derivada (ou codificado) e/ou informação de movimento de blocos em uma gravura já reconstruída. A informação de movimento armazenada pode ser transmitida ao interpreditor 121 para ser utilizada como informação de movimento de um bloco vizinho ou informação de movimento de um bloco vizinho temporal. A memória 170 pode armazenar amostras reconstruídas de blocos reconstruídos na gravura atual e transmiti-las ao intrapreditor 122.[068] DPB memory 170 may store the modified reconstructed picture for use as a reference picture in interpredictor 121. Memory 170 may store motion information of a block in the current picture from which the motion information was derived (or encoded) and/or block movement information in an already reconstructed engraving. The stored motion information may be transmitted to interpredictor 121 for use as motion information of a neighboring block or motion information of a temporal neighboring block. Memory 170 may store reconstructed samples of reconstructed blocks in the current engraving and transmit them to intrapredictor 122.
[069] A Figura 2 é um diagrama que ilustra esquematicamente uma configuração de um aparelho de decodificação de vídeo/imagem aplicável às modalidades deste documento.[069] Figure 2 is a diagram that schematically illustrates a configuration of a video/image decoding apparatus applicable to embodiments of this document.
[070] Com referência à Figura 2, o aparelho de decodificação 200 pode incluir e ser configurado com um decodificador de entropia 210, um processador residual 220, um preditor 230, um somador 240, um filtro 250 e uma memória 260. O preditor 230 pode incluir um interpreditor 232 e um intrapreditor 231. O processador residual 220 pode incluir um desquantizador 221 e um transformador inverso 221. O decodificador de entropia 210, o processador residual 220, o preditor 230, o somador 240, e o filtro 250, que foram descritos acima, podem ser configurados por um ou mais componentes de hardware (por exemplo, chipsets de decodificador ou processadores) de acordo com uma modalidade. Além disso, a memória 260 pode incluir um buffer de gravura decodificado (DPB), e pode ser constituída por um meio de armazenamento digital. O componente de hardware ainda pode incluir a memória 260 como um componente interno/externo.[070] Referring to Figure 2, the decoding apparatus 200 may include and be configured with an entropy decoder 210, a residual processor 220, a predictor 230, an adder 240, a filter 250, and a memory 260. The predictor 230 may include an interpredictor 232 and an intrapredictor 231. The residual processor 220 may include a dequantizer 221 and an inverse transformer 221. The entropy decoder 210, the residual processor 220, the predictor 230, the adder 240, and the filter 250, which have been described above, may be configured by one or more hardware components (e.g., decoder chipsets or processors) according to one embodiment. Furthermore, memory 260 may include a decoded write buffer (DPB), and may be comprised of a digital storage medium. The hardware component may further include memory 260 as an internal/external component.
[071] Quando um fluxo de bits incluindo informações de vídeo/imagem é inserido, o aparelho de decodificação 200 pode reconstruir uma imagem correspondente a um processo pelo qual as informações de vídeo/imagem foram processadas no aparelho de codificação da Figura 1. Por exemplo, o aparelho de decodificação 200 pode derivar unidades/blocos com base na informação relativa à partição de bloco obtida do fluxo de bits. O aparelho de decodificação 200 pode realizar a decodificação usando uma unidade de processamento aplicada no aparelho de codificação. Portanto, a unidade de processamento de decodificação pode ser, por exemplo, uma unidade de codificação, que pode ser particionada ao longo da estrutura de árvore quádrupla, a estrutura de árvore binária e/ou a estrutura de árvore ternária de uma unidade de árvore de codificação ou um maior unidade de codificação. Uma ou mais unidades de transformada podem ser derivadas da unidade de codificação. E, o sinal de imagem reconstruído decodificado e emitido através do aparelho de decodificação 200 pode ser reproduzido através de um reprodutor.[071] When a bit stream including video/image information is input, the decoding apparatus 200 may reconstruct an image corresponding to a process by which the video/image information was processed in the encoding apparatus of Figure 1. For example , the decoding apparatus 200 may derive units/blocks based on the block partition information obtained from the bit stream. The decoding apparatus 200 may perform decoding using a processing unit applied to the encoding apparatus. Therefore, the decoding processing unit may be, for example, an encoding unit, which may be partitioned along the quadruple tree structure, the binary tree structure, and/or the ternary tree structure of a encoding or a larger encoding unit. One or more transform units may be derived from the coding unit. And, the reconstructed image signal decoded and output through the decoding apparatus 200 can be reproduced through a player.
[072] O aparelho de decodificação 200 pode receber um sinal de saída do aparelho de codificação da Figura 1 na forma de um fluxo de bits e o sinal recebido pode ser decodificado através do decodificador de entropia 210. Por exemplo, o decodificador de entropia 210 pode analisar o fluxo de bits para derivar informações (por exemplo, informações de vídeo/imagem) necessárias para reconstrução de imagem (ou reconstrução de gravura). As informações de vídeo/imagem podem ainda incluir informações sobre vários conjuntos de parâmetros, como um conjunto de parâmetros de adaptação (APS), um conjunto de parâmetros de gravura (PPS), um conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros de vídeo (VPS) ou semelhantes. Além disso, as informações de vídeo/imagem podem incluir ainda informações gerais de restrição. O aparelho de decodificação pode decodificar uma gravura adicionalmente com base nas informações do conjunto de parâmetros e/ou nas informações gerais de restrição. Na presente divulgação, informações sinalizadas/recebidas e/ou elementos de sintaxe, que serão descritos posteriormente, podem ser decodificados através do procedimento de decodificação e obtidos a partir do fluxo de bits. Por exemplo, o decodificador de entropia 210 pode decodificar informações no fluxo de bits com base em um método de codificação, como codificação Golomb exponencial, CAVLC, CABAC ou semelhantes, e pode emitir um valor de um elemento de sintaxe necessário para reconstrução de imagem e valores quantizados de um coeficiente de transformada em relação a um resíduo. Mais especificamente, um método de decodificação de entropia de CABAC pode receber um bin correspondente a cada elemento de sintaxe em um fluxo de bits, determinar um modelo de contexto usando informações de elemento de sintaxe alvo de decodificação e informações de decodificação de blocos alvo vizinhos e de decodificação, ou informações de símbolo/bin decodificado em um etapa anterior, prever a probabilidade de geração de bin de acordo com o modelo de contexto determinado e realizar a decodificação aritmética do bin para gerar um símbolo correspondente a cada valor de elemento de sintaxe. Aqui, o método de decodificação de entropia CABAC pode atualizar o modelo de contexto usando informações de um símbolo/bin decodificado para um modelo de contexto do próximo símbolo/bin após a determinação do modelo de contexto. A informação relacionada à predição entre as informações decodificadas no decodificador de entropia 210 pode ser fornecida ao preditor (interpreditor 232 e intrapreditor 231), e valores residuais, isto é, coeficientes de transformada quantificados, nos quais a decodificação de entropia foi realizada no decodificador de entropia 210, e informações de parâmetros associadas podem ser introduzidas no processador residual 220. O processador residual 220 pode derivar um sinal residual (bloco residual, amostras residuais, matriz de amostras residuais). Além disso, as informações sobre filtragem entre informações decodificadas no decodificador de entropia 210 podem ser fornecidas ao filtro 250. Enquanto isso, um receptor (não mostrado) que recebe um sinal de saída do aparelho de codificação pode constituir ainda o aparelho de decodificação 200 como um elemento interno/externo, e o receptor pode ser um componente do decodificador de entropia 210. Enquanto isso, o aparelho de decodificação de acordo com o presente documento pode ser chamado de aparelho de codificação de vídeo/imagem/gravura, e o aparelho de decodificação pode ser classificado em um decodificador de informação (decodificador de informações de vídeo/imagem/gravura) e um decodificador de amostra (decodificador de amostra de vídeo/imagem/gravura). O decodificador de informação pode incluir o decodificador de entropia 210 e o decodificador de amostra pode incluir pelo menos um dentre o desquantizador 221, o transformador inverso 222, o somador 240, o filtro 250, a memória 260, o interpreditor 232 e o intrapreditor 231.[072] The decoding apparatus 200 may receive an output signal from the encoding apparatus of Figure 1 in the form of a bit stream and the received signal may be decoded via the entropy decoder 210. For example, the entropy decoder 210 can analyze the bit stream to derive information (e.g., video/image information) necessary for image reconstruction (or engraving reconstruction). The video/image information may further include information about various parameter sets, such as an adaptation parameter set (APS), an engraving parameter set (PPS), a sequence parameter set (SPS), a video parameters (VPS) or similar. Additionally, video/image information may also include general restriction information. The decoding apparatus may further decode a picture based on parameter set information and/or general constraint information. In the present disclosure, signaled/received information and/or syntax elements, which will be described later, can be decoded through the decoding procedure and obtained from the bit stream. For example, the entropy decoder 210 may decode information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC, CABAC, or the like, and may output a value of a syntax element necessary for image reconstruction and quantized values of a transform coefficient with respect to a residue. More specifically, a CABAC entropy decoding method may receive a bin corresponding to each syntax element in a bitstream, determine a context model using decoding target syntax element information and decoding information from neighboring target blocks, and of decoding, or symbol/bin information decoded in a previous step, predict the bin generation probability according to the given context model and perform arithmetic decoding of the bin to generate a symbol corresponding to each syntax element value. Here, the CABAC entropy decoding method can update the context model using information from a decoded symbol/bin to a context model of the next symbol/bin after determining the context model. The prediction-related information between the information decoded in the entropy decoder 210 may be provided to the predictor (interpredictor 232 and intrapredictor 231), and residual values, i.e., quantified transform coefficients, on which entropy decoding was performed in the decoder entropy 210, and associated parameter information may be input to the residual processor 220. The residual processor 220 may derive a residual signal (residual block, residual samples, residual sample array). Furthermore, information about filtering between information decoded in the entropy decoder 210 may be provided to the filter 250. Meanwhile, a receiver (not shown) that receives an output signal from the encoding apparatus may further constitute the decoding apparatus 200 as an internal/external element, and the receiver may be a component of the entropy decoder 210. Meanwhile, the decoding apparatus according to the present document may be called a video/image/recording coding apparatus, and the decoding apparatus Decoding can be classified into an information decoder (video/picture/picture information decoder) and a sample decoder (video/picture/picture sample decoder). The information decoder may include the entropy decoder 210 and the sample decoder may include at least one of the dequantizer 221, the inverse transformer 222, the adder 240, the filter 250, the memory 260, the interpredictor 232 and the intrapredictor 231 .
[073] O desquantizador 221 pode emitir coeficientes de transformada desquantizando os coeficientes de transformada quantificados. O desquantizador 221 pode rearranjar os coeficientes de transformada quantificados na forma de um bloco bidimensional. Neste caso, o rearranjo pode realizar o rearranjo com base em uma ordem de varredura de coeficiente que foi realizada no aparelho de codificação. O desquantizador 221 pode realizar a desquantização nos coeficientes de transformada quantizados usando o parâmetro de quantização (por exemplo, informações de tamanho da etapa de quantização) e obter coeficientes de transformada.[073] The dequantizer 221 can output transform coefficients by dequantizing the quantized transform coefficients. The dequantizer 221 can rearrange the quantized transform coefficients into the form of a two-dimensional block. In this case, the rearrangement may perform the rearrangement based on a coefficient sweep order that was performed in the coding apparatus. The dequantizer 221 may perform dequantization on the quantized transform coefficients using the quantization parameter (e.g., quantization step size information) and obtain transform coefficients.
[074] O desquantizador 222 obtém um sinal residual (bloco residual, matriz de amostra residual) por coeficientes de transformada de transformada inversa.[074] The dequantizer 222 obtains a residual signal (residual block, residual sample matrix) by inverse transform transform coefficients.
[075] O preditor pode realizar predição no bloco atual, e gerar um bloco predito incluindo amostras de predição para o bloco atual. O preditor pode determinar se a intrapredição ou interpredição é aplicada ao bloco atual com base na informação na saída de predição do decodificador de entropia 210 e especificamente pode determinar um modo de intra/interpredição.[075] The predictor can perform prediction on the current block, and generate a predicted block including prediction samples for the current block. The predictor may determine whether intra-prediction or inter-prediction is applied to the current block based on information in the prediction output of the entropy decoder 210 and specifically may determine an intra-/inter-prediction mode.
[076] O preditor 220 pode gerar um sinal de predição com base em vários métodos de predição a serem descritos abaixo. Por exemplo, para predição em um bloco, o preditor pode aplicar intrapredição ou interpredição e, também, aplicar intrapredição e interpredição ao mesmo tempo. Esta última pode ser chamada de predição combinada inter e intra (CIIP). Além disso, o preditor pode ser baseado em um modo de predição de cópia intrabloco (IBC) ou em um modo de paleta para realizar a predição em um bloco. O modo de predição de IBC ou modo de paleta pode ser usado para codificação de imagem/vídeo de conteúdo de um jogo ou semelhante, como codificação de conteúdo de tela (SCC). A IBC basicamente realiza a predição em uma gravura atual, mas pode ser realizada de forma semelhante à interpredição, pois deriva um bloco de referência em uma gravura atual. Ou seja, o IBC pode usar pelo menos uma das técnicas de interpredição descritas no presente documento. O modo de paleta pode ser considerado como um exemplo de intracodificação ou intrapredição. Quando o modo de paleta é aplicado, as informações em uma tabela de paletas e um índice de paletas podem ser incluídas nas informações de vídeo/imagem e sinalizadas.[076] The predictor 220 may generate a prediction signal based on various prediction methods to be described below. For example, for prediction in a block, the predictor can apply intraprediction or interprediction, and also apply intraprediction and interprediction at the same time. The latter can be called combined inter and intra prediction (CIIP). Furthermore, the predictor can be based on an intra-block copy (IBC) prediction mode or a palette mode to perform prediction on a block. IBC prediction mode or palette mode can be used for image/video coding of game content or the like, such as screen content coding (SCC). IBC basically performs prediction on a current picture, but it can be performed in a similar way to interprediction in that it derives a reference block on a current picture. That is, the IBC can use at least one of the interprediction techniques described in this document. Palette mode can be considered as an example of intracoding or intraprediction. When palette mode is applied, information in a palette table and a palette index can be included in the video/image information and flagged.
[077] O intrapreditor 231 pode prever o bloco atual referindo-se às amostras na gravura atual. As referidas amostras podem estar localizadas na vizinhança ou afastadas do bloco atual de acordo com o modo de predição. Na intrapredição, os modos de predição podem incluir uma pluralidade de modos não direcionais e uma pluralidade de modos direcionais. O intrapreditor 231 pode determinar o modo de predição aplicado ao bloco atual usando o modo de predição aplicado ao bloco vizinho.[077] The intrapredictor 231 can predict the current block by referring to the samples in the current engraving. Said samples can be located in the neighborhood or far from the current block according to the prediction mode. In intraprediction, the prediction modes may include a plurality of non-directional modes and a plurality of directional modes. The intrapredictor 231 may determine the prediction mode applied to the current block using the prediction mode applied to the neighboring block.
[078] O interpreditor 232 pode derivar um bloco predito para o bloco atual com base em um bloco de referência (matriz de amostra de referência) especificado por um vetor de movimento em uma gravura de referência. Neste momento, a fim de reduzir a quantidade de informações de movimento transmitidas no modo de predição entre, as informações de movimento podem ser previstas em um bloco, sub-bloco ou base de amostra com base na correlação de informações de movimento entre o bloco vizinho e o bloco atual. A informação de movimento pode incluir um vetor de movimento e um índice de gravura de referência. As informações de movimento podem incluir ainda informações de direção interpredição (predição L0, predição L1, predição Bi, etc.). No caso de interpredição, o bloco vizinho pode incluir um bloco vizinho espacial existente na gravura atual e um bloco vizinho temporal existente na gravura de referência. Por exemplo, o interpreditor 232 pode configurar uma lista de candidatos de informações de movimento com base em blocos vizinhos e derivar um vetor de movimento e/ou um índice de gravura de referência do bloco atual com base nas informações de seleção de candidatos recebidas. A interpredição pode ser realizada com base em vários modos de predição e as informações sobre predição podem incluir informações que indicam um modo de interpredição para o bloco atual.[078] The interpredictor 232 may derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector in a reference engraving. At this time, in order to reduce the amount of motion information transmitted in the between prediction mode, motion information can be predicted in a block, sub-block or sample basis based on the correlation of motion information between the neighboring block and the current block. The motion information may include a motion vector and a reference engraving index. The motion information may further include inter-prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of interprediction, the neighboring block may include a spatial neighboring block existing in the current picture and a temporal neighboring block existing in the reference picture. For example, the interpredictor 232 may configure a candidate list of motion information based on neighboring blocks and derive a motion vector and/or a reference engraving index of the current block based on the received candidate selection information. Interprediction may be performed based on various prediction modes, and the prediction information may include information that indicates an interprediction mode for the current block.
[079] O somador 240 adiciona o sinal residual obtido a um sinal de predição (bloco predito, matriz de amostra prevista) de saída do preditor (interpreditor 232 e/ou intrapreditor 231), de modo que um sinal reconstruído (gravura reconstruída, bloco reconstruído, matriz de amostra reconstruída) pode ser gerada. Quando não há resíduo para um bloco alvo de processamento, como no caso em que o modo de salto é aplicado, o bloco predito pode ser usado como um bloco reconstruído.[079] The adder 240 adds the obtained residual signal to a prediction signal (predicted block, predicted sample matrix) output from the predictor (interpredictor 232 and/or intrapredictor 231), so that a reconstructed signal (reconstructed recording, block reconstructed, reconstructed sample matrix) can be generated. When there is no residue for a processing target block, as in the case where skip mode is applied, the predicted block can be used as a reconstructed block.
[080] O somador 240 pode ser chamado de reconstrutor ou gerador de bloco reconstruído. O sinal reconstruído gerado pode ser usado para intrapredição de um próximo bloco alvo de processamento no bloco atual e, conforme descrito mais adiante, pode ser emitido através de filtragem ou ser usado para interpredição de uma próxima gravura.[080] The adder 240 can be called a reconstructor or reconstructed block generator. The generated reconstructed signal can be used to intra-predict a next processing target block in the current block and, as described later, can be output through filtering or be used to inter-predict a next write.
[081] Enquanto isso, no processo de decodificação de gravura, o mapeamento de luma com escala de croma (LMCS) pode ser aplicado.[081] Meanwhile, in the engraving decoding process, chroma scaled luma mapping (LMCS) can be applied.
[082] O filtro 250 pode melhorar a qualidade de vídeo subjetiva/objetiva aplicando a filtragem ao sinal reconstruído. Por exemplo, o filtro 250 pode gerar uma gravura reconstruída modificada aplicando vários métodos de filtragem à gravura reconstruída e pode transmitir a gravura reconstruída modificada na memória 260, especificamente no DPB da memória 260. Os vários métodos de filtragem podem incluir, por exemplo, filtragem de desbloqueio, desvio adaptativo de amostra, um filtro de circuito adaptativo, um filtro bilateral ou semelhante.[082] Filter 250 can improve subjective/objective video 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 may transmit the modified reconstructed picture to memory 260, specifically to the DPB of memory 260. The various filtering methods may include, for example, filtering deblocking, adaptive sample shift, an adaptive loop filter, a two-sided filter or the like.
[083] A gravura reconstruída (modificada) que foi armazenada no DPB da memória 260 pode ser usada como uma gravura de referência no interpreditor 232. A memória 260 pode armazenar informações de movimento de um bloco na gravura atual, da qual informação de movimento foi derivada (ou decodificada) e/ou informação de movimento de blocos em uma gravura já reconstruída. A informação de movimento armazenada pode ser transmitida ao interpreditor 160 para ser utilizada como informação de movimento de um bloco vizinho ou informação de movimento de um bloco vizinho temporal. A memória 260 pode armazenar amostras reconstruídas de blocos reconstruídos na gravura atual e transmiti-las ao intrapreditor 231.[083] The reconstructed (modified) picture that was stored in the DPB of memory 260 can be used as a reference picture in interpredictor 232. Memory 260 can store motion information of a block in the current picture, from which motion information was derived (or decoded) and/or block movement information in an already reconstructed engraving. The stored motion information may be transmitted to interpredictor 160 for use as motion information of a neighboring block or motion information of a temporal neighboring block. Memory 260 may store reconstructed samples of reconstructed blocks in the current engraving and transmit them to intrapredictor 231.
[084] No presente documento, as modalidades descritas no filtro 160, o interpreditor 121 e o intrapreditor 122 do aparelho de codificação 100 podem ser aplicados de forma semelhante ou correspondente ao filtro 250, o interpreditor 232 e o intrapreditor 231 do aparelho de decodificação 200.[084] In this document, the embodiments described in the filter 160, the interpredictor 121 and the intrapredictor 122 of the coding apparatus 100 can be applied in a similar or corresponding way to the filter 250, the interpredictor 232 and the intrapredictor 231 of the decoding apparatus 200 .
[085] Conforme descrito acima, a predição é realizada para aumentar a eficiência da compressão na execução da codificação de vídeo. Através disso, um bloco predito incluindo amostras de predição para um bloco atual, que é um bloco alvo de codificação, pode ser gerado. Aqui, o bloco predito inclui amostras de predição em um domínio de espaço (ou domínio de pixel). O bloco predito pode ser derivado indentamente no aparelho de codificação e no aparelho de decodificação, e o aparelho de codificação pode aumentar a eficiência de codificação de imagem sinalizando para o aparelho de decodificação não o valor da amostra original de um bloco original em si, mas a informação residual (informação residual) entre o bloco original e o bloco predito. O aparelho de decodificação pode derivar um bloco residual incluindo amostras residuais com base na informação residual, gerar um bloco reconstruído incluindo amostras reconstruídas adicionando o bloco residual ao bloco predito e gerar uma gravura reconstruída incluindo blocos reconstruídos.[085] As described above, prediction is performed to increase compression efficiency when performing video coding. Through this, a predicted block including prediction samples for a current block, which is an encoding target block, can be generated. Here, the predicted block includes prediction samples in a space domain (or pixel domain). The predicted block can be derived indentively in the encoding apparatus and the decoding apparatus, and the encoding apparatus can increase the image coding efficiency by signaling to the decoding apparatus not the original sample value of an original block itself, but the residual information (residual information) between the original block and the predicted block. The decoding apparatus may derive a residual block including residual samples based on the residual information, generate a reconstructed block including reconstructed samples by adding the residual block to the predicted block, and generate a reconstructed picture including reconstructed blocks.
[086] A informação residual pode ser gerada através de procedimentos de transformada e quantização. Por exemplo, o aparelho de codificação pode derivar um bloco residual entre o bloco original e o bloco predito, derivar coeficientes de transformada realizando um procedimento de transformada em amostras residuais (matriz de amostra residual) incluídas no bloco residual e derivar coeficientes de transformada quantificados realizando um procedimento de quantificação dos coeficientes de transformada, para que possa sinalizar a informação residual associada ao aparelho de decodificação (através de um fluxo de bits). Aqui, as informações residuais podem incluir informações de valor, informações de posição, uma técnica de transformada, kernel de transformada, um parâmetro de quantização ou semelhante dos coeficientes de transformada quantizados. O aparelho de decodificação pode realizar um procedimento de quantização/desquantização e derivar as amostras residuais (ou bloco de amostra residual), com base na informação residual. O aparelho de decodificação pode gerar um bloco reconstruído com base em um bloco predito e no bloco residual. O aparelho de codificação pode derivar um bloco residual por desquantização/transformada inversa de coeficientes de transformada quantificados para referência para interpredição de uma próxima gravura e pode gerar uma gravura reconstruída com base nisso.[086] Residual information can be generated through transform and quantization procedures. For example, the coding apparatus may derive a residual block between the original block and the predicted block, derive transform coefficients by performing a transform procedure on residual samples (residual sample matrix) included in the residual block, and derive quantized transform coefficients by performing a procedure for quantifying the transform coefficients, so that it can signal the residual information associated with the decoding device (through a bit stream). Here, the residual information may include value information, position information, a transform technique, transform kernel, a quantization parameter, or the like of the quantized transform coefficients. The decoding apparatus may perform a quantization/dequantization procedure and derive the residual samples (or residual sample block) based on the residual information. The decoding apparatus may generate a reconstructed block based on a predicted block and the residual block. The encoding apparatus may derive a residual block by dequantization/inverse transform of quantized transform coefficients for reference for interprediction of a next picture and may generate a reconstructed picture based thereon.
[087] A Figura 3 ilustra esquematicamente uma técnica de transformada múltipla de acordo com uma modalidade da presente divulgação.[087] Figure 3 schematically illustrates a multiple transform technique according to an embodiment of the present disclosure.
[088] Com referência à Figura 3, um transformador pode corresponder ao transformador no aparelho de codificação da Figura 1, e um transformador inverso pode corresponder ao transformador inverso no aparelho de codificação da Figura 1 anterior, ou ao transformador inverso no aparelho de decodificação da Figura 2.[088] With reference to Figure 3, a transformer may correspond to the transformer in the coding apparatus of Figure 1, and an inverse transformer may correspond to the inverse transformer in the coding apparatus of Figure 1 above, or to the inverse transformer in the decoding apparatus of Figure 1. Figure 2.
[089] O transformador pode derivar coeficientes de transformada (primária) realizando uma transformada primária com base em amostras residuais (matriz de amostra residual) em um bloco residual (S410). Essa transformada primária pode ser chamada de transformada de núcleo. Aqui, a transformada primária pode ser baseada na seleção de múltiplas transformadas (MTS) e quando uma transformada múltipla é aplicada como a transformada primária, ela pode ser denominada como uma transformada de múltiplos núcleos.[089] The transformer can derive transform (primary) coefficients by performing a primary transform based on residual samples (residual sample matrix) in a residual block (S410). This primary transform can be called the kernel transform. Here, the primary transform can be based on multiple transform selection (MTS) and when a multiple transform is applied as the primary transform, it can be termed as a multi-core transform.
[090] A transformada de múltiplos núcleos pode representar um método de transformada adicional usando a transformada discreta de cosseno (DCT) tipo 2 e a transformada discreta de seno (DST) tipo 7, DCT tipo 8 e/ou DST tipo 1. Ou seja, a transformada de múltiplos núcleos A transformada pode representar um método de transformada para transformar um sinal residual (ou bloco residual) de um domínio de espaço em coeficientes de transformada (ou coeficientes de transformada primários) de um domínio de frequência com base em uma pluralidade de kernels de transformada selecionados entre a DCT tipo 2, a DST tipo 7, a DCT tipo 8 e a DST tipo 1. Aqui, os coeficientes de transformada primária podem ser chamados de coeficientes de transformada temporários do ponto de vista do transformador.[090] The multi-core transform can represent an additional transform method using the discrete cosine transform (DCT) type 2 and the discrete sine transform (DST) type 7, DCT type 8 and/or DST type 1. That is , the multi-core transform The transform can represent a transform method for transforming a residual signal (or residual block) of a space domain into transform coefficients (or primary transform coefficients) of a frequency domain based on a plurality of transform kernels selected from DCT type 2, DST type 7, DCT type 8 and DST type 1. Here, the primary transform coefficients can be called temporary transform coefficients from the transformer's point of view.
[091] Em outras palavras, quando o método de transformada convencional é aplicado, os coeficientes de transformada podem ser gerados aplicando a transformada de um domínio de espaço para um domínio de frequência para um sinal residual (ou bloco residual) baseado na DCT tipo 2. Ao contrário disso, quando a transformada de múltiplos núcleos é aplicada, os coeficientes de transformada (ou coeficientes de transformada primária) podem ser gerados aplicando a transformada de um domínio de espaço a um domínio de frequência para um sinal residual (ou bloco residual) com base na DCT tipo 2, na DST tipo 7, na DCT tipo 8 e/ou DST tipo 1. Aqui, a DCT tipo 2, a DST tipo 7, a DCT tipo 8 e a DST tipo 1 podem ser chamadas de tipo de transformada, núcleo de transformada ou núcleo de transformada. Esses tipos de transformada DCT/DST podem ser definidos com base em funções básicas.[091] In other words, when the conventional transform method is applied, the transform coefficients can be generated by applying the transform from a space domain to a frequency domain to a residual signal (or residual block) based on DCT type 2 Contrary to this, when the multi-core transform is applied, the transform coefficients (or primary transform coefficients) can be generated by applying the transform from a space domain to a frequency domain for a residual signal (or residual block). based on DCT type 2, DCT type 7, DCT type 8 and/or DCT type 1. Here, DCT type 2, DST type 7, DCT type 8 and DST type 1 can be called the type of transform, transform core or transform core. These types of DCT/DST transforms can be defined based on basic functions.
[092] Quando a transformada de múltiplos núcleos é realizada, um kernel de transformada vertical e um kernel de transformada horizontal para um bloco de destino podem ser selecionados entre os kernels de transformada, uma transformada vertical pode ser realizada no bloco de destino com base no kernel de transformada vertical, e uma transformada horizontal pode ser realizada no bloco alvo com base no kernel de transformada horizontal. Aqui, a transformada horizontal pode indicar uma transformada nos componentes horizontais do bloco alvo e a transformada vertical pode indicar uma transformada nos componentes verticais do bloco alvo. O kernel de transformada vertical/núcleo de transformada horizontal pode ser determinado de forma adaptativa com base em um modo de predição e/ou um índice de transformada para o bloco alvo (CU ou sub-bloco) incluindo um bloco residual.[092] When multi-core transform is performed, a vertical transform kernel and a horizontal transform kernel for a target block can be selected from among the transform kernels, a vertical transform can be performed on the target block based on the vertical transform kernel, and a horizontal transform can be performed on the target block based on the horizontal transform kernel. Here, the horizontal transform may indicate a transform in the horizontal components of the target block and the vertical transform may indicate a transform in the vertical components of the target block. The vertical transform kernel/horizontal transform kernel may be adaptively determined based on a prediction mode and/or a transform index for the target block (CU or sub-block) including a residual block.
[093] Além disso, de acordo com um exemplo, se a transformada primária for realizada aplicando a MTS, uma relação de mapeamento para núcleos de transformada pode ser definida definindo funções de base específicas para valores predeterminados e combinando funções de base a serem aplicadas na transformada vertical ou a transformada horizontal. Por exemplo, quando o kernel de transformada horizontal é expresso como trTypeHor e o kernel de transformada de direção vertical é expresso como trTypeVer, um valor de trTypeHor ou trTypeVer de 0 pode ser definido como DCT2, um valor de trTypeHor ou trTypeVer de 1 pode ser definido como DST7 e um valor trTypeHor ou trTypeVer de 2 pode ser definido como DCT8.[093] Furthermore, according to an example, if the primary transform is performed by applying the MTS, a mapping relationship for transform cores can be defined by setting specific basis functions to predetermined values and combining basis functions to be applied in the vertical transform or horizontal transform. For example, when the horizontal transform kernel is expressed as trTypeHor and the vertical direction transform kernel is expressed as trTypeVer, a trTypeHor or trTypeVer value of 0 can be set to DCT2, a trTypeHor or trTypeVer value of 1 can be set to DST7 and a trTypeHor or trTypeVer value of 2 can be set to DCT8.
[094] Neste caso, as informações de índice de MTS podem ser codificadas e sinalizadas para o aparelho de decodificação para indicar qualquer um de uma pluralidade de conjuntos de kernel de transformada. Por exemplo, um índice de MTS de 0 pode indicar que os valores trTypeHor e trTypeVer são 0, um índice de MTS de 1 pode indicar que os valores trTypeHor e trTypeVer são 1, um índice de MTS de 2 pode indicar que o valor trTypeHor é 2 e o valor trTypeVer. for 1, um índice MTS de 3 pode indicar que o valor trTypeHor é 1 e o valor trTypeVer é 2, e um índice MTS de 4 pode indicar que ambos os valores trTypeHor e trTypeVer são 2.[094] In this case, the MTS index information may be encoded and signaled to the decoding apparatus to indicate any one of a plurality of transform kernel sets. For example, an MTS index of 0 might indicate that the trTypeHor and trTypeVer values are 0, an MTS index of 1 might indicate that the trTypeHor and trTypeVer values are 1, an MTS index of 2 might indicate that the trTypeHor value is 2 and the value trTypeVer. is 1, an MTS index of 3 may indicate that the trTypeHor value is 1 and the trTypeVer value is 2, and an MTS index of 4 may indicate that both the trTypeHor and trTypeVer values are 2.
[095] Em um exemplo, os conjuntos de kernel de transformada de acordo com as informações do índice MTS são ilustrados na tabela a seguir. Tabela 1 [095] In an example, the transform kernel sets according to the MTS index information are illustrated in the following table. Table 1
[096] O transformador pode derivar coeficientes de transformada modificados (secundários) realizando a transformada secundária com base nos coeficientes de transformada (primários) (S420). A transformada primária é uma transformada de um domínio espacial para um domínio de frequência, e a transformada secundária refere- se à transformada em uma expressão mais compressiva usando uma correlação existente entre os coeficientes de transformada (primários). A transformada secundária pode incluir uma transformada não separável. Nesse caso, a transformada secundária pode ser chamada de transformada secundária não separável (NSST) ou transformada secundária não separável dependente do modo (MDNSST). A transformada secundária não separável pode representar uma transformada que gera coeficientes de transformada modificados (ou coeficientes de transformada secundária) para um sinal residual por transformada secundária, com base em uma matriz de transformada não separável, coeficientes de transformada (primários) derivados através da transformada primária. Neste momento, a transformada vertical e a transformada horizontal não podem ser aplicadas separadamente (ou as transformadas horizontal e vertical podem não ser aplicadas independentemente) aos coeficientes de transformada (primários), mas as transformadas podem ser aplicadas de uma só vez com base no não separável matriz de transformada. Em outras palavras, a transformada secundária não separável pode representar um método de transformada no qual não é aplicado separadamente na direção vertical e na direção horizontal para os coeficientes de transformada (primários) e, por exemplo, sinais bidimensionais (coeficientes de transformada) são rearranjados para um sinal unidimensional através de uma certa direção determinada (por exemplo, direção da primeira linha ou direção da primeira coluna), e então os coeficientes de transformada modificados (ou coeficientes de transformada secundários) são gerados com base na matriz de transformada não separável. Por exemplo, de acordo com uma ordem de primeira linha, os blocos M x N são dispostos em uma linha na ordem de uma primeira linha, uma segunda linha, ... e uma enésima linha. De acordo com uma ordem de primeira coluna, os blocos M x N são dispostos em uma linha na ordem de uma primeira coluna, uma segunda coluna, . e uma enésima coluna. A transformada secundária não separável pode ser aplicada a uma região superior esquerda de um bloco configurado com coeficientes de transformada (primários) (daqui em diante, pode ser denominado como um bloco de coeficiente de transformada). Por exemplo, se a largura (W) e a altura (H) do bloco de coeficiente de transformada forem todas iguais ou maiores que 8, uma transformada secundária não separável 8 x 8 pode ser aplicada a uma região 8 x 8 superior esquerda do coeficiente de transformada bloquear. Além disso, se a largura (W) e a altura (H) do bloco de coeficiente de transformada forem todas iguais ou maiores que 4, e a largura (W) ou a altura (H) do bloco de coeficiente de transformada for menor que 8, então uma transformada secundária não separável 4 x 4 pode ser aplicada a uma região superior esquerda min(8,W) x min(8,H) do bloco de coeficiente de transformada. No entanto, a modalidade não está limitada a isso e, por exemplo, mesmo que apenas a condição de que a largura (W) ou altura (H) do bloco de coeficiente de transformada seja igual ou maior que 4 seja satisfeita, a transformada secundária não separável 4 x 4 pode ser aplicada à região superior esquerda min(8,W)xmin(8,H) do bloco de coeficiente de transformada.[096] The transformer can derive modified (secondary) transform coefficients by performing the secondary transform based on the (primary) transform coefficients (S420). The primary transform is a transform from a spatial domain to a frequency domain, and the secondary transform refers to the transform into a more compressive expression using an existing correlation between the (primary) transform coefficients. The secondary transform may include a non-separable transform. In this case, the secondary transform can be called the non-separable secondary transform (NSST) or the mode-dependent non-separable secondary transform (MDNSST). The non-separable secondary transform may represent a transform that generates modified transform coefficients (or secondary transform coefficients) for a residual signal by secondary transform, based on a non-separable transform matrix, (primary) transform coefficients derived through the transform primary. At this time, the vertical transform and the horizontal transform cannot be applied separately (or the horizontal and vertical transforms may not be applied independently) to the transform (primary) coefficients, but the transforms can be applied at once based on no separable transformed matrix. In other words, the non-separable secondary transform can represent a transform method in which the vertical direction and the horizontal direction are not applied separately to the (primary) transform coefficients and, for example, two-dimensional signals (transform coefficients) are rearranged for a one-dimensional signal through a certain determined direction (e.g., first row direction or first column direction), and then the modified transform coefficients (or secondary transform coefficients) are generated based on the non-separable transform matrix. For example, according to a first row order, the M x N blocks are arranged in a row in the order of a first row, a second row, ... and an nth row. According to a first column order, the M x N blocks are arranged in a row in the order of a first column, a second column, . and an nth column. The non-separable secondary transform can be applied to an upper left region of a block configured with (primary) transform coefficients (hereafter it can be referred to as a transform coefficient block). For example, if the width (W) and height (H) of the transform coefficient block are all equal to or greater than 8, an 8 x 8 non-separable secondary transform can be applied to an upper-left 8 x 8 region of the coefficient of transform block. Furthermore, if the width (W) and height (H) of the transform coefficient block are all equal to or greater than 4, and the width (W) or height (H) of the transform coefficient block is less than 8, then a 4 x 4 non-separable secondary transform can be applied to an upper left min(8,W) x min(8,H) region of the transform coefficient block. However, the embodiment is not limited to this and, for example, even if only the condition that the width (W) or height (H) of the transform coefficient block is equal to or greater than 4 is satisfied, the secondary transform non-separable 4 x 4 can be applied to the upper left min(8,W)xmin(8,H) region of the transform coefficient block.
[097] Especificamente, por exemplo, se um bloco de entrada 4 x 4 for usado, a transformada secundária não separável pode ser realizada da seguinte maneira.[097] Specifically, for example, if a 4 x 4 input block is used, the non-separable secondary transform can be performed as follows.
[098] O bloco de entrada 4 x 4 X pode ser representado da seguinte forma. Equação 1 [098] The 4 x 4 X input block can be represented as follows. Equation 1
[099] Se o X for representado na forma de um vetor, o vetor A’ pode ser representado como abaixo. Equação 2 [099] If X is represented in the form of a vector, vector A' can be represented as below. Equation 2
[0100] Em Equação 2, o vetor X um vetor unidimensional obtido pelo rearranjo do bloco bidimensional X da Equação 1 de acordo com a ordem de primeira linha.[0100] In Equation 2, the vector X is a one-dimensional vector obtained by rearranging the two-dimensional block X of Equation 1 according to first-line order.
[0101] Neste caso, a transformada não separável secundária pode ser calculada como abaixo. Equação 3 [0101] In this case, the secondary non-separable transform can be calculated as below. Equation 3
[0102] Nesta equação, F representa um vetor de coeficiente de transformada e T representa uma matriz de transformada 16 x 16 (não separável).[0102] In this equation, F represents a transform coefficient vector and T represents a 16 x 16 transform matrix (non-separable).
[0103] Através da Equação 3 anterior, um vetor de coeficiente de transformada 16 x 1 F pode ser derivado, e o F pode ser derivado e pode ser reorganizado em um bloco 4 x 4 através de uma ordem de varredura (horizontal, vertical, diagonal e semelhantes). No entanto, o cálculo descrito acima é um exemplo, e a transformada hypercube-Givens (HyGT) ou semelhante pode ser usada para o cálculo da transformada secundária não separável a fim de reduzir a complexidade computacional da transformada secundária não separável.[0103] Through Equation 3 above, a 16 x 1 transform coefficient vector F can be derived, and the F can be derived and can be rearranged into a 4 x 4 block through a sweep order (horizontal, vertical, diagonal and the like). However, the calculation described above is an example, and the hypercube-Givens transform (HyGT) or similar can be used for the calculation of the non-separable secondary transform in order to reduce the computational complexity of the non-separable secondary transform.
[0104] Enquanto isso, na transformada secundária não separável, um kernel de transformada (ou núcleo de transformada, tipo de transformada) pode ser selecionado para ser dependente do modo. Neste caso, o modo pode incluir o modo de intrapredição e/ou o modo de interpredição.[0104] Meanwhile, in the non-separable secondary transform, a transform kernel (or transform kernel, transform type) can be selected to be mode dependent. In this case, the mode may include the intraprediction mode and/or the interprediction mode.
[0105] Conforme descrito acima, a transformada secundária não separável pode ser realizada com base em uma transformada 8 x 8 ou uma transformada 4 x 4 determinada com base na largura (W) e na altura (H) do bloco de coeficiente de transformada. A transformada 8 x 8 refere-se a uma transformada que é aplicável a uma região 8 x 8 incluída no bloco de coeficiente de transformada quando W e H são iguais ou maiores que 8, e a região 8 x 8 pode ser uma região 8 x 8 superior esquerda no bloco de coeficiente de transformada. Da mesma forma, a transformada 4 x 4 refere-se a uma transformada que é aplicável a uma região 4 x 4 incluída no bloco de coeficiente de transformada quando W e H são iguais ou maiores que 4, e a região 4 x 4 pode ser uma região 4 x 4 superior esquerda na transformada bloco de coeficientes. Por exemplo, uma matriz de kernel de transformada 8 x 8 pode ser uma matriz de kernel de transformada 64 x 64/16 x 64 e uma matriz de kernel de transformada 4 x 4 pode ser uma matriz de 16 x 16/8 x 16.[0105] As described above, the non-separable secondary transform can be performed based on an 8 x 8 transform or a 4 x 4 transform determined based on the width (W) and height (H) of the transform coefficient block. The 8 x 8 transform refers to a transform that is applicable to an 8 x 8 region included in the transform coefficient block when W and H are equal to or greater than 8, and the 8 x 8 region can be an 8 x region 8 top left in the transform coefficient block. Similarly, the 4 x 4 transform refers to a transform that is applicable to a 4 x 4 region included in the transform coefficient block when W and H are equal to or greater than 4, and the 4 x 4 region can be a 4 x 4 region top left in the transformed coefficient block. For example, an 8 x 8 transform kernel matrix can be a 64 x 64/16 x 64 transform kernel matrix, and a 4 x 4 transform kernel matrix can be a 16 x 16/8 x 16 matrix.
[0106] Aqui, para selecionar um kernel de transformada dependente do modo, dois kernels de transformada secundária não separáveis por transformada definido para uma transformada secundária não separável podem ser configurados para a transformada 8 x 8 e a transformada 4 x 4, e não pode ser quatro conjuntos de transformada. Ou seja, quatro conjuntos de transformada podem ser configurados para a transformada 8 x 8 e quatro conjuntos de transformada podem ser configurados para a transformada 4 x 4. Neste caso, cada um dos quatro conjuntos de transformada para a transformada 8 x 8 pode incluir dois núcleos de transformada 8 x 8 e cada um dos quatro conjuntos de transformada para a transformada 4 x 4 pode incluir dois núcleos de transformada 4 x 4.[0106] Here, to select a mode-dependent transform kernel, two transform-non-separable secondary transform kernels defined for a non-separable secondary transform can be configured for the 8 x 8 transform and the 4 x 4 transform, and cannot be four transform sets. That is, four transform sets can be configured for the 8 x 8 transform and four transform sets can be configured for the 4 x 4 transform. In this case, each of the four transform sets for the 8 x 8 transform can include two 8 x 8 transform cores and each of the four transform sets for the 4 x 4 transform may include two 4 x 4 transform cores.
[0107] Entretanto, como o tamanho da transformada, isto é, o tamanho de uma região à qual a transformada é aplicada, pode ser, por exemplo, um tamanho diferente de 8 x 8 ou 4 x 4, o número de conjuntos pode seja n, e o número de núcleos de transformada em cada conjunto pode ser k.[0107] However, as the size of the transform, that is, the size of a region to which the transform is applied, may be, for example, a size other than 8 x 8 or 4 x 4, the number of sets may be n, and the number of transform kernels in each set can be k.
[0108] O conjunto de transformada pode ser denominado como um conjunto de NSST ou um conjunto de LFNST. Um conjunto específico entre os conjuntos de transformada pode ser selecionado, por exemplo, com base no modo de intrapredição do bloco atual (CU ou sub-bloco). Uma transformada não separável de baixa frequência (LFNST) pode ser um exemplo de uma transformada não separável reduzida, que será descrita posteriormente e representa uma transformada não separável para um componente de baixa frequência.[0108] The transform set can be referred to as an NSST set or an LFNST set. A specific set among the transform sets can be selected, for example, based on the intraprediction mode of the current block (CU or sub-block). A low-frequency non-separable transform (LFNST) can be an example of a reduced non-separable transform, which will be described later and represents a non-separable transform for a low-frequency component.
[0109] Para referência, por exemplo, o modo de intrapredição pode incluir dois modos de intrapredição não direcionais (ou não angular) e 65 modos de intrapredição direcionais (ou angulares). Os modos de intrapredição não direcionais podem incluir um modo de intrapredição planar de N° 0 e um modo de intrapredição DC de N° 1, e os modos de intrapredição direcionais podem incluir 65 modos de intrapredição de N° 2 a 66. No entanto, este é um exemplo, e este documento pode ser aplicado mesmo quando o número de modos de intrapredição é diferente. Enquanto isso, em alguns casos, o modo de intrapredição N° 67 pode ser usado adicionalmente e o modo de intrapredição N° 67 pode representar um modo de modelo linear (LM).[0109] For reference, for example, the intraprediction mode may include two non-directional (or non-angular) intraprediction modes and 65 directional (or angular) intraprediction modes. The non-directional intraprediction modes may include a planar intraprediction mode of No. 0 and a DC intraprediction mode of No. 1, and the directional intraprediction modes may include 65 intraprediction modes of No. 2 to 66. However, this is an example, and this document can be applied even when the number of intraprediction modes is different. Meanwhile, in some cases, intraprediction mode No. 67 can be used additionally, and intraprediction mode No. 67 can represent a linear model (LM) mode.
[0110] A Figura 4 mostra exemplificativamente modos intradirecionais de 65 direções de predição.[0110] Figure 4 exemplarily shows intradirectional modes of 65 prediction directions.
[0111] Com referência à Figura 4, com base no modo de intrapredição 34 com uma direção de predição diagonal esquerda para cima, os modos de intrapredição podem ser divididos em modos de intrapredição com direcionalidade horizontal e modos de intrapredição com direcionalidade vertical. Na Figura 4, H e V denotam direcionalidade horizontal e direcionalidade vertical, respectivamente, e os números - 32 a 32 indicam deslocamentos em 1/32 unidades em uma posição da grade de amostra. Esses numerais podem representar um deslocamento para um valor de índice de modo. Os modos de intrapredição 2 a 33 têm a direcionalidade horizontal e os modos de intrapredição 34 a 66 têm a direcionalidade vertical. Estritamente falando, o modo de intrapredição 34 pode ser considerado como nem horizontal nem vertical, mas pode ser classificado como pertencente à direcionalidade horizontal na determinação de um conjunto de transformada de uma transformada secundária. Isso ocorre porque os dados de entrada são transpostos para serem usados para um modo de direção vertical simétrico com base no modo de intrapredição 34, e um método de alinhamento de dados de entrada para um modo horizontal é usado para o modo de intrapredição 34. Transpor dados de entrada significa que linhas e colunas de dados de bloco M x N bidimensionais são comutadas em dados N x M. O modo de intrapredição 18 e o modo de intrapredição 50 podem representar um modo de intrapredição horizontal e um modo de intrapredição vertical, respectivamente, e o modo de intrapredição 2 pode ser denominado como um modo de intrapredição diagonal ascendente direita porque o modo de intrapredição 2 tem um pixel de referência e realiza a predição na direção certa para cima. Da mesma forma, o modo de intrapredição 34 pode ser denominado como um modo de intrapredição diagonal descendente direita e o modo de intrapredição 66 pode ser denominado como um modo de intrapredição diagonal descendente esquerdo.[0111] Referring to Figure 4, based on the intraprediction mode 34 with a left-up diagonal prediction direction, the intraprediction modes can be divided into intraprediction modes with horizontal directionality and intraprediction modes with vertical directionality. In Figure 4, H and V denote horizontal directionality and vertical directionality, respectively, and the numbers - 32 to 32 indicate displacements by 1/32 units in a sample grid position. These numerals can represent an offset to a mode index value. Intraprediction modes 2 to 33 have horizontal directionality and intraprediction modes 34 to 66 have vertical directionality. Strictly speaking, the intraprediction mode 34 can be considered as neither horizontal nor vertical, but can be classified as belonging to horizontal directionality in determining a transform set of a secondary transform. This is because the input data is transposed to be used for a symmetric vertical direction mode based on the intraprediction mode 34, and a method of aligning input data for a horizontal mode is used for the intraprediction mode 34. Transpose input data means that rows and columns of two-dimensional M x N block data are switched into N x M data. The intraprediction mode 18 and the intraprediction mode 50 may represent a horizontal intraprediction mode and a vertical intraprediction mode, respectively , and intraprediction mode 2 can be termed as a right-up diagonal intraprediction mode because intraprediction mode 2 has a reference pixel and performs prediction in the right upward direction. Likewise, the intraprediction mode 34 can be termed as a right descending diagonal intraprediction mode and the intraprediction mode 66 can be termed as a left descending diagonal intraprediction mode.
[0112] De acordo com um exemplo, os quatro conjuntos de transformada de acordo com o modo de intrapredição podem ser mapeados, por exemplo, conforme mostrado na tabela a seguir. Tabela 2 [0112] According to an example, the four transform sets according to the intraprediction mode can be mapped, for example, as shown in the following table. Table 2
[0113] Conforme mostrado na Tabela 2, qualquer um dos quatro conjuntos de transformadas, isto é, lfnstTrSetIdx, pode ser mapeado para qualquer um dos quatro índices, isto é, de 0 a 3, de acordo com o modo de intrapredição.[0113] As shown in Table 2, any of the four sets of transforms, that is, lfnstTrSetIdx, can be mapped to any of the four indices, that is, from 0 to 3, according to the intraprediction mode.
[0114] Quando é determinado que um conjunto específico é usado para a transformada não separável, um dos kernels de transformada k no conjunto específico pode ser selecionado por meio de um índice de transformada secundária não separável. Um aparelho de codificação pode derivar um índice de transformada secundária não separável indicando um kernel de transformada específico com base em uma verificação de distorção de taxa (RD) e pode sinalizar o índice de transformada secundária não separável para um aparelho de decodificação. O aparelho de decodificação pode selecionar um dos kernels de transformada k no conjunto específico com base no índice de transformada secundária não separável. Por exemplo, o valor de índice de LFNST 0 pode se referir a um primeiro kernel de transformada secundária não separável, o valor de índice de LFNST 1 pode se referir a um segundo kernel de transformada secundária não separável e o valor de índice de LFNST 2 pode se referir a uma terceira transformada secundária não separável núcleo. Alternativamente, o valor de índice de LFNST 0 pode indicar que a primeira transformada secundária não separável não é aplicada ao bloco de destino, e os valores de índice de LFNST 1 a 3 podem indicar os três kernels de transformada.[0114] When it is determined that a specific set is used for the non-separable transform, one of the k transform kernels in the specific set may be selected via a secondary non-separable transform index. An encoding apparatus may derive a non-separable secondary transform index indicating a specific transform kernel based on a rate distortion (RD) check and may signal the non-separable secondary transform index to a decoding apparatus. The decoding apparatus may select one of the k transform kernels in the specific set based on the non-separable secondary transform index. For example, the index value of LFNST 0 may refer to a first non-separable secondary transform kernel, the index value of LFNST 1 may refer to a second non-separable secondary transform kernel, and the index value of LFNST 2 may refer to a third core non-separable secondary transform. Alternatively, the LFNST index value 0 may indicate that the first non-separable secondary transform is not applied to the target block, and the LFNST index values 1 to 3 may indicate the three transform kernels.
[0115] O transformador pode realizar a transformada secundária não separável com base nos kernels de transformada selecionados e pode obter coeficientes de transformada modificados (secundários). Conforme descrito acima, os coeficientes de transformada modificados podem ser derivados como coeficientes de transformada quantificados através do quantizador e podem ser codificados e sinalizados para o aparelho de decodificação e transferidos para o desquantizador/transformador inverso no aparelho de codificação.[0115] The transformer can perform the non-separable secondary transform based on the selected transform kernels and can obtain modified (secondary) transform coefficients. As described above, the modified transform coefficients can be derived as quantized transform coefficients via the quantizer and can be encoded and signaled to the decoding apparatus and transferred to the dequantizer/inverse transformer in the encoding apparatus.
[0116] Enquanto isso, conforme descrito acima, se a transformada secundária for omitida, os coeficientes de transformada (primários), que são uma saída da transformada primária (separável), podem ser derivados como coeficientes de transformada quantificados através do quantizador conforme descrito acima, e podem ser codificado e sinalizado para o aparelho de decodificação e transferido para o desquantizador/transformador inverso no aparelho de codificação.[0116] Meanwhile, as described above, if the secondary transform is omitted, the (primary) transform coefficients, which are an output of the primary (separable) transform, can be derived as quantized transform coefficients through the quantizer as described above , and can be encoded and signaled to the decoding apparatus and transferred to the dequantizer/inverse transformer in the encoding apparatus.
[0117] O transformador inverso pode realizar uma série de procedimentos na ordem inversa daquela em que foram realizados no transformador acima descrito. O transformador inverso pode receber coeficientes de transformador (desquantizados) e derivar coeficientes de transformada (primários) realizando uma transformada secundária (inversa) (S450), e pode obter um bloco residual (amostras residuais) realizando uma transformada primária (inversa) no coeficientes de transformada (primários) (S460). Neste contexto, os coeficientes de transformada primária podem ser chamados de coeficientes de transformada modificados do ponto de vista do transformador inverso. Conforme descrito acima, o aparelho de codificação e o aparelho de decodificação podem gerar o bloco reconstruído com base no bloco residual e no bloco predito e podem gerar a gravura reconstruída com base no bloco reconstruído.[0117] The inverse transformer can perform a series of procedures in the reverse order to that in which they were performed in the transformer described above. The inverse transformer can receive transformer coefficients (dequantized) and derive transform coefficients (primary) by performing a secondary (inverse) transform (S450), and can obtain a residual block (residual samples) by performing a primary (inverse) transform on the transformer coefficients. transformed (primaries) (S460). In this context, the primary transform coefficients can be called modified transform coefficients from the point of view of the inverse transformer. As described above, the encoding apparatus and the decoding apparatus can generate the reconstructed block based on the residual block and the predicted block and can generate the reconstructed engraving based on the reconstructed block.
[0118] O aparelho de decodificação pode incluir ainda um determinante de aplicação de transformada inversa secundária (ou um elemento para determinar se deve aplicar uma transformada inversa secundária) e um determinante de transformada inversa secundária (ou um elemento para determinar uma transformada inversa secundária). O determinante de aplicação de transformada inversa secundária pode determinar se deve aplicar uma transformada inversa secundária. Por exemplo, a transformada inversa secundária pode ser uma NSST, uma RST ou uma LFNST e o determinante de aplicação de transformada inversa secundária pode determinar se deve aplicar a transformada inversa secundária com base em um sinalizador de transformada secundária obtido analisando o fluxo de bits. Em outro exemplo, o determinante de aplicação de transformada inversa secundária pode determinar se deve aplicar a transformada inversa secundária com base em um coeficiente de transformada de um bloco residual.[0118] The decoding apparatus may further include a secondary inverse transform determinant (or an element for determining whether to apply a secondary inverse transform) and a secondary inverse transform determinant (or an element for determining a secondary inverse transform). . The secondary inverse transform application determinant can determine whether to apply a secondary inverse transform. For example, the secondary inverse transform may be an NSST, an RST, or an LFNST, and the secondary inverse transform apply determinant may determine whether to apply the secondary inverse transform based on a secondary transform flag obtained by analyzing the bit stream. In another example, the secondary inverse transform application determinant may determine whether to apply the secondary inverse transform based on a transform coefficient of a residual block.
[0119] O determinante de transformada inversa secundária pode determinar uma transformada inversa secundária. Neste caso, o determinante de transformada inversa secundária pode determinar a transformada inversa secundária aplicada ao bloco atual com base em um conjunto de transformada de LFNST (NSST ou RST) especificado de acordo com um modo de intrapredição. Em uma modalidade, um método de determinação de transformada secundária pode ser determinado dependendo de um método de determinação de transformada primária. Várias combinações de transformadas primárias e transformadas secundárias podem ser determinadas de acordo com o modo de intrapredição. Além disso, em um exemplo, o determinante de transformada inversa secundária pode determinar uma região à qual uma transformada inversa secundária é aplicada com base no tamanho do bloco atual.[0119] The secondary inverse transform determinant can determine a secondary inverse transform. In this case, the secondary inverse transform determinant can determine the secondary inverse transform applied to the current block based on a set of LFNST transform (NSST or RST) specified according to an intraprediction mode. In one embodiment, a secondary transform determination method may be determined depending on a primary transform determination method. Various combinations of primary transforms and secondary transforms can be determined according to the intraprediction mode. Furthermore, in one example, the secondary inverse transform determinant may determine a region to which a secondary inverse transform is applied based on the current block size.
[0120] Enquanto isso, como descrito acima, se a transformada secundária (inversa) for omitida, os coeficientes de transformada (desquantizados) podem ser recebidos, a transformada inversa primária (separável) pode ser realizada e o bloco residual (amostras residuais) pode ser obtido. Conforme descrito acima, o aparelho de codificação e o aparelho de decodificação podem gerar o bloco reconstruído com base no bloco residual e no bloco predito e podem gerar a gravura reconstruída com base no bloco reconstruído.[0120] 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 apparatus and the decoding apparatus can generate the reconstructed block based on the residual block and the predicted block and can generate the reconstructed engraving based on the reconstructed block.
[0121] Enquanto isso, na presente divulgação, uma transformada secundária reduzida (RST) na qual o tamanho de uma matriz de transformada (kernel) é reduzido pode ser aplicada no conceito de NSST para reduzir a quantidade de computação e memória necessária para a transformada secundária não separável.[0121] Meanwhile, in the present disclosure, a reduced secondary transform (RST) in which the size of a transform matrix (kernel) is reduced can be applied in the NSST concept to reduce the amount of computation and memory required for the transform non-separable secondary.
[0122] Enquanto isso, o kernel de transformada, a matriz de transformada e o coeficiente que constitui a matriz de kernel de transformada, isto é, o coeficiente de kernel ou o coeficiente de matriz, descritos na presente divulgação, podem ser expressos em 8 bits. Isso pode ser uma condição para implementação no aparelho de decodificação e no aparelho de codificação e pode reduzir a quantidade de memória necessária para armazenar o kernel de transformada com uma degradação de desempenho que pode ser razoavelmente acomodada em comparação com os 9 bits ou 10 bits existentes. Além disso, a expressão da matriz do kernel em 8 bits pode permitir que um pequeno multiplicador seja usado e pode ser mais adequado para instruções de dados múltiplos de instrução única (SIMD) usadas para implementação de software ideal.[0122] Meanwhile, the transform kernel, the transform matrix and the coefficient constituting the transform 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 condition for implementation in both the decoding apparatus and the encoding apparatus and may reduce the amount of memory required to store the transform kernel with a performance degradation that can be reasonably accommodated compared to the existing 9-bit or 10-bit . Additionally, expressing the kernel matrix in 8 bits can allow a small multiplier to be used and may be more suitable for single instruction multiple data (SIMD) instructions used for optimal software implementation.
[0123] No presente relatório descritivo, o termo “RST” pode significar uma transformada que é realizada em amostras residuais para um bloco alvo com base em uma matriz de transformada cujo tamanho é reduzido de acordo com um fator reduzido. No caso de realizar a transformada reduzida, a quantidade de computação necessária para a transformada pode ser reduzida devido a uma redução no tamanho da matriz de transformada. Ou seja, a RST pode ser usado para resolver o problema de complexidade computacional que ocorre na transformada não separável ou na transformada de um bloco de grande porte.[0123] In the present specification, the term “RST” may mean a transform that is performed on residual samples for a target block based on a transform matrix whose size is reduced according to a reduced factor. In the case of performing the reduced transform, the amount of computation required for the transform can be reduced due to a reduction in the size of the transform matrix. In other words, RST can be used to solve the problem of computational complexity that occurs in the non-separable transform or in the transform of a large block.
[0124] RST pode ser denominada como vários termos, tais como transformada reduzida, transformada secundária reduzida, transformada de redução, transformada simplificada, transformada simples e semelhantes, e o nome que RST pode ser denominado como não está limitado aos listados exemplos. Alternativamente, uma vez que a RST é realizada principalmente em uma região de baixa frequência incluindo um coeficiente diferente de zero em um bloco de transformada, ela pode ser denominada como uma Transformada Não Separável de Baixa Frequência (LFNST). O índice de transformada pode ser denominado como um índice de LFNST.[0124] RST may be termed as various terms, such as reduced transform, reduced secondary transform, reduction transform, simplified transform, simple transform and the like, and the name that RST may be termed as is not limited to the listed examples. Alternatively, since RST is mainly performed in a low-frequency region by including a non-zero coefficient in a transform block, it can be termed as a Low-Frequency Non-Separable Transform (LFNST). The transform index can be termed as an LFNST index.
[0125] Enquanto isso, quando a transformada inversa secundária é realizada com base em RST, o transformador inverso 135 do aparelho de codificação 100 e o transformador inverso 222 do aparelho de decodificação 200 podem incluir um transformador secundário inverso reduzido que deriva coeficientes de transformada modificados com base na RST inverso dos coeficientes de transformada e um transformador primário inverso que deriva amostras residuais para o bloco alvo com base na transformada primária inversa dos coeficientes de transformada modificados. A transformada primária inversa refere-se à transformada inversa da transformada primária aplicada ao resíduo. Na presente divulgação, derivar um coeficiente de transformada com base em uma transformada pode referir-se a derivar um coeficiente de transformada aplicando a transformada.[0125] Meanwhile, when the secondary inverse transform is performed based on RST, the inverse transformer 135 of the coding apparatus 100 and the inverse transformer 222 of the decoding apparatus 200 may include a reduced secondary inverse transformer that derives modified transform coefficients. based on the inverse RST of the transform coefficients and an inverse primary transformer that derives residual samples for the target block based on the inverse primary transform of the modified transform coefficients. The inverse primary transform refers to the inverse transform of the primary transform applied to the residue. In the present disclosure, deriving a transform coefficient based on a transform may refer to deriving a transform coefficient by applying the transform.
[0126] A Figura 5 é um diagrama que ilustra uma RST de acordo com uma modalidade da presente divulgação.[0126] Figure 5 is a diagram illustrating an RST in accordance with an embodiment of the present disclosure.
[0127] Na presente divulgação, um “bloco alvo” pode referir-se a um bloco atual a ser codificado, um bloco residual, ou um bloco de transformada.[0127] In the present disclosure, a “target block” may refer to a current block to be encoded, a residual block, or a transform block.
[0128] Na RST de acordo com um exemplo, um vetor N-dimensional pode ser mapeado para um vetor R-dimensional localizado em outro espaço, de modo que a matriz de transformada reduzida possa ser determinada, onde R é menor que N. N pode significar o quadrado do comprimento de um lado de um bloco ao qual a transformada é aplicada, ou o número total de coeficientes de transformada correspondentes a um bloco ao qual a transformada é aplicada, e o fator reduzido pode significar um valor R/N. O fator reduzido pode ser denominado como um fator reduzido, fator de redução, fator simplificado, fator simples ou outros vários termos. Enquanto isso, R pode ser denominado como um coeficiente reduzido, mas de acordo com as circunstâncias, o fator reduzido pode significar R. Além disso, de acordo com as circunstâncias, o fator reduzido pode significar o valor N/R.[0128] In RST according to an example, an N-dimensional vector can be mapped to an R-dimensional vector located in another space, so that the reduced transform matrix can be determined, where R is less than N. may mean the square of the length of a side of a block to which the transform is applied, or the total number of transform coefficients corresponding to a block to which the transform is applied, and the reduced factor may mean an R/N value. The reduced factor can be termed as a reduced factor, reduction factor, simplified factor, simple factor or other various terms. Meanwhile, R can be termed as a reduced coefficient, but according to the circumstances, the reduced factor can mean R. Also, according to the circumstances, the reduced factor can mean the N/R value.
[0129] Em um exemplo, o fator reduzido ou o coeficiente reduzido podem ser sinalizados através de um fluxo de bits, mas o exemplo não se limita a isso. Por exemplo, um valor predefinido para o fator reduzido ou o coeficiente reduzido pode ser armazenado em cada aparelho de codificação 100 e aparelho de decodificação 200 e, neste caso, o fator reduzido ou o coeficiente reduzido podem não ser sinalizados separadamente.[0129] In an example, the reduced factor or reduced coefficient may be signaled via a bit stream, but the example is not limited to this. For example, a predefined value for the reduced factor or the reduced coefficient may be stored in each encoding apparatus 100 and decoding apparatus 200, and in this case the reduced factor or the reduced coefficient may not be signaled separately.
[0130] O tamanho da matriz de transformada reduzida de acordo com um exemplo pode ser R x N menor que N x N, o tamanho de uma matriz de transformada convencional e pode ser definido como na Equação 4 abaixo. Equação 4 [0130] The size of the reduced transform matrix according to an example may be R x N less than N x N, the size of a conventional transform matrix and may be defined as in Equation 4 below. Equation 4
[0131] A matriz T no bloco de Transformada Reduzida mostrado na Figura 5(a) pode significar a matriz TRxN da Equação 4. Conforme mostrado na Figura 5(a), quando a matriz de transformada reduzida TRxN é multiplicada por amostras residuais para o bloco alvo, os coeficientes de transformada para o bloco alvo podem ser derivados.[0131] The matrix T in the Reduced Transform block shown in Figure 5(a) may mean the TRxN matrix of Equation 4. As shown in Figure 5(a), when the reduced transform matrix TRxN is multiplied by residual samples for the target block, the transform coefficients for the target block can be derived.
[0132] Em um exemplo, se o tamanho do bloco ao qual a transformada é aplicada for 8 x 8 e R = 16 (ou seja, R/N = 16/64 = 1/4), então o RST de acordo com a Figura 5(a) pode ser expresso como uma operação de matriz conforme mostrado na Equação 5 abaixo. Neste caso, o cálculo de memória e multiplicação pode ser reduzido para aproximadamente 1/4 pelo fator reduzido.[0132] In an example, if the size of the block to which the transform is applied is 8 x 8 and R = 16 (i.e. R/N = 16/64 = 1/4), then the RST according to the Figure 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 approximately 1/4 by the reduced factor.
[0133] Na presente divulgação, uma operação de matriz pode ser entendida como uma operação de multiplicação de um vetor coluna por uma matriz, disposta à esquerda do vetor coluna, para obter um vetor coluna. Equação 5 [0133] In the present disclosure, a matrix operation can be understood as an operation of multiplying a column vector by a matrix, arranged to the left of the column vector, to obtain a column vector. Equation 5
[0134] Na Equação 5, r1 a r64 podem representar amostras residuais para o bloco alvo e podem ser especificamente coeficientes de transformada gerados pela aplicação de uma transformada primária. Como resultado do cálculo da Equação 5, os coeficientes de transformada ci para o bloco alvo podem ser derivados e um processo de derivação de ci pode ser como na Equação 6. Equação 6 [0134] In Equation 5, r1 to r64 may represent residual samples for the target block and may specifically be transform coefficients generated by applying a primary transform. As a result of calculating Equation 5, the ci transform coefficients for the target block can be derived and a ci derivation process can be as in Equation 6. Equation 6
[0135] Como resultado do cálculo da Equação 6, os coeficientes de transformada c1 a cR para o bloco alvo podem ser derivados. Ou seja, quando R = 16, os coeficientes de transformada c1 a c16 para o bloco alvo podem ser derivados. Se, em vez de RST, uma transformada regular for aplicada e uma matriz de transformada de tamanho 64 x 64 (N x N) for multiplicada para amostras residuais de tamanho 64 x 1 (N x 1), apenas 16 (R) coeficientes de transformada serão derivados para o bloco de destino porque RST foi aplicado, embora 64 (N) coeficientes de transformada sejam derivados para o bloco alvo. Uma vez que o número total de coeficientes de transformada para o bloco alvo é reduzido de N para R, a quantidade de dados transmitidos pelo aparelho de codificação 100 para o aparelho de decodificação 200 diminui, de modo que a eficiência de transmissão entre o aparelho de codificação 100 e o aparelho de decodificação 200 pode ser melhorado.[0135] As a result of calculating Equation 6, the transform coefficients c1 to cR for the target block can be derived. That is, when R = 16, the transform coefficients c1 to c16 for the target block can be derived. If, instead of RST, a regular transform is applied and a transform matrix of size 64 x 64 (N x N) is multiplied to residual samples of size 64 x 1 (N x 1), only 16 (R) coefficients of transform will be derived for the target block because RST was applied, although 64 (N) transform coefficients will be derived for the target block. Once the total number of transform coefficients for the target block is reduced from N to R, the amount of data transmitted by the encoding apparatus 100 to the decoding apparatus 200 decreases, so that the transmission efficiency between the encoding apparatus 100 and the decoding apparatus encoding 100 and decoding apparatus 200 may be improved.
[0136] Quando considerado do ponto de vista do tamanho da matriz de transformada, o tamanho da matriz de transformada regular é 64 x 64 (N x N), mas o tamanho da matriz de transformada reduzida é reduzido para 16 x 64 (R x N), então o uso de memória no caso de realizar a RST pode ser reduzida por uma razão R/N quando comparado com o caso de realizar a transformada regular. Além disso, quando comparado ao número de cálculos de multiplicação N x N no caso de utilização da matriz transformada regular, o uso da matriz transformada reduzida pode reduzir o número de cálculos de multiplicação pela razão R/N (R x N).[0136] When considered from the point of view of the transform matrix size, the size of the regular transform matrix is 64 x 64 (N x N), but the size of the reduced transform matrix is reduced to 16 x 64 (R x N), then the memory usage in the case of performing the RST can be reduced by an R/N ratio when compared to the case of performing the regular transform. Furthermore, when compared to the number of N x N multiplication calculations in the case of using the regular transformed matrix, the use of the reduced transformed matrix can reduce the number of multiplication calculations by the ratio R/N (R x N).
[0137] Em um exemplo, o transformador 132 do aparelho de codificação 100 pode derivar coeficientes de transformada para o bloco alvo realizando a transformada primária e a transformada secundária baseada em RST em amostras residuais para o bloco alvo. Estes coeficientes de transformada podem ser transferidos para o transformador inverso do aparelho de decodificação 200 e o transformador inverso 222 do aparelho de decodificação 200 pode derivar os coeficientes de transformada modificados com base na transformada secundária inversa reduzida (RST) para os coeficientes de transformada e podem derivar amostras residuais para o bloco alvo com base na transformada primária inversa para os coeficientes de transformada modificados.[0137] In one example, transformer 132 of coding apparatus 100 may derive transform coefficients for the target block by performing the primary transform and the RST-based secondary transform on residual samples for the target block. These transform coefficients may be transferred to the inverse transformer of the decoding apparatus 200 and the inverse transformer 222 of the decoding apparatus 200 may derive the modified transform coefficients based on the reduced inverse secondary transform (RST) for the transform coefficients and may derive residual samples for the target block based on the inverse primary transform for the modified transform coefficients.
[0138] O tamanho da matriz de RST inversa TRxN de acordo com um exemplo é N x R menor que o tamanho N x N da matriz de transformada inversa regular e está em uma relação de transposição com a matriz de transformada reduzida TRxN mostrada na Equação 4.[0138] The size of the TRxN inverse RST matrix according to an example is N x R smaller than the N x N size of the regular inverse transform matrix and is in a transpose relationship with the TRxN reduced transform matrix shown in Eq. 4.
[0139] A matriz Tt no Inv Reduzido. Bloco de transformada mostrado na Figura 5(b) pode significar a matriz de RST inversa TRxNT (o T sobrescrito significa transposição). Quando a matriz de RST inversa TRxNTé multiplicada pelos coeficientes de transformada para o bloco alvo como mostrado na Figura 5(b), os coeficientes de transformada modificados para o bloco alvo ou as amostras residuais para o bloco atual podem ser derivados. A matriz de RST inversa TRxNT pode ser expressa como (TRxNT)NxR.[0139] The Tt matrix in Reduced Inv. Transform block shown in Figure 5(b) can mean the inverse RST matrix TRxNT (the superscript T means transpose). When the inverse RST matrix TRxNT is multiplied by the transform coefficients for the target block as shown in Figure 5(b), the modified transform coefficients for the target block or the residual samples for the current block can be derived. The inverse RST matrix TRxNT can be expressed as (TRxNT)NxR.
[0140] Mais especificamente, quando a RST inversa é aplicada como a transformada inversa secundária, os coeficientes de transformada modificados para o bloco alvo podem ser derivados quando a matriz de RST inversa TRxNT multiplicada pelos coeficientes de transformada para o bloco alvo. Enquanto isso, a RST inversa pode ser aplicada como a transformada primária inversa e, neste caso, as amostras residuais para o bloco alvo podem ser derivadas quando a matriz de RST inversa TRxNTé multiplicada pelos coeficientes de transformada para o bloco alvo.[0140] More specifically, when the inverse RST is applied as the secondary inverse transform, the modified transform coefficients for the target block can be derived when the inverse RST matrix TRxNT multiplied by the transform coefficients for the target block. Meanwhile, the inverse RST can be applied as the inverse primary transform, and in this case, the residual samples for the target block can be derived when the inverse RST matrix TRxNT is multiplied by the transform coefficients for the target block.
[0141] Em um exemplo, se o tamanho do bloco ao qual a transformada inversa é aplicada for 8 x 8 e R = 16 (ou seja, R/N = 16/64 = 1/4), então a RST de acordo com a Figura 5(b) pode ser expressa como uma operação de matriz conforme mostrado na Equação 7 abaixo. Equação 7 <<DRAW-CODE>[0141] In an example, if the size of the block to which the inverse transform is applied is 8 x 8 and R = 16 (i.e. R/N = 16/64 = 1/4), then the RST according to Figure 5(b) can be expressed as a matrix operation as shown in Equation 7 below. Equation 7 <<DRAW-CODE>
[0142] Na podem representar os coeficientes de representando os coeficientes de transformada modificados para o bloco alvo ou as amostras residuais para o bloco alvo podem ser derivados e o processo de derivação de ri pode ser como na Equação 8. Equação 8 [0142] Na may represent the modified transform coefficients for the target block or the residual samples for the target block may be derived and the ri derivation process may be as in Equation 8. Equation 8
[0143] Como resultado do cálculo da Equação 8, r1 a rN representando os coeficientes de transformada modificados para o bloco alvo ou as amostras residuais para o bloco alvo podem ser derivadas. Quando considerado do ponto de vista do tamanho da matriz de transformada inversa, o tamanho da matriz de transformada inversa regular é 64 x 64 (N x N), mas o tamanho da matriz de transformada inversa reduzida é reduzido para 64 x 16 (R x N), então o uso de memória em um caso de realizar a RST inversa pode ser reduzida por uma razão R/N quando comparado com um caso de realizar a transformada inversa regular. Além disso, quando comparado ao número de cálculos de multiplicação N x N em um caso de uso da matriz de transformada inversa regular, o uso da matriz de transformada inversa reduzida pode reduzir o número de cálculos de multiplicação pela razão R/N (N x R).[0143] As a result of calculating Equation 8, r1 to rN representing the modified transform coefficients for the target block or the residual samples for the target block can be derived. When considered from the point of view of the size of the inverse transform matrix, the size of the regular inverse transform matrix is 64 x 64 (N x N), but the size of the reduced inverse transform matrix is reduced to 64 x 16 (R x N), then the memory usage in a case of performing the inverse RST can be reduced by an R/N ratio when compared to a case of performing the regular inverse transform. Furthermore, when compared to the number of N x N multiplication calculations in a regular inverse transform matrix use case, the use of the reduced inverse transform matrix can reduce the number of multiplication calculations by the ratio R/N (N x R).
[0144] Uma configuração de conjunto de transformada mostrada na Tabela 2 também pode ser aplicada a uma RST 8 x 8. Ou seja, a RST 8 x 8 pode ser aplicada de acordo com um conjunto de transformadas na Tabela 2. Como um conjunto de transformadas inclui duas ou três transformadas (kernels) de acordo com um modo de intrapredição, ele pode ser configurado para selecionar um de até quatro transformadas incluindo aquela em um caso em que nenhuma transformada secundária é aplicada. Em uma transformada em que nenhuma transformada secundária é aplicada, pode-se considerar a aplicação de uma matriz de identidade. Assumindo que os índices 0, 1, 2 e 3 são atribuídos respectivamente às quatro transformadas (por exemplo, o índice 0 pode ser alocado para um caso onde uma matriz identidade é aplicada, isto é, um caso onde nenhuma transformada secundária é aplicada), um índice de transformada ou um índice de LFNST como um elemento de sintaxe pode ser sinalizado para cada bloco de coeficiente de transformada, designando assim uma transformada a ser aplicada. Ou seja, para um bloco 8 x 8 superior esquerdo, através do índice de transformada, é possível designar uma RST 8 x 8 em uma configuração de RST, ou designar um lfnst 8 x 8 quando a LFNST for aplicada. O lfnst 8 x 8 e a RST 8 x 8 referem-se a transformadas aplicáveis a uma região 8 x 8 incluída no bloco de coeficiente de transformada quando W e H do bloco alvo a ser transformado são iguais ou maiores que 8, e a região 8 x 8 pode ser uma região 8 x 8 superior esquerda no bloco de coeficiente de transformada. Da mesma forma, um lfnst 4 x 4 e uma RST 4 x 4 referem-se a transformadas aplicáveis a uma região 4 x 4 incluída no bloco de coeficiente de transformada quando W e H do bloco alvo são iguais ou maiores que 4, e a região 4 x 4 pode ser uma região 4 x 4 superior esquerda no bloco de coeficiente de transformada.[0144] A transform set configuration shown in Table 2 can also be applied to an 8 x 8 RST. That is, the 8 x 8 RST can be applied according to a set of transforms in Table 2. As a set of transform includes two or three transforms (kernels) according to an intraprediction mode, it can be configured to select one of up to four transforms including the one in a case where no secondary transform is applied. In a transform where no secondary transform is applied, one can consider applying an identity matrix. Assuming that the indices 0, 1, 2 and 3 are respectively assigned to the four transforms (for example, the index 0 can be allocated to a case where an identity matrix is applied, i.e., a case where no secondary transform is applied), a transform index or an LFNST index as a syntax element can be signaled for each transform coefficient block, thus designating a transform to be applied. That is, for a top left 8 x 8 block, through the transform index, it is possible to designate an 8 x 8 RST in an RST configuration, or designate an 8 x 8 lfnst when LFNST is applied. lfnst 8 x 8 and RST 8 x 8 refer to transforms applicable to an 8 x 8 region included in the transform coefficient block when W and H of the target block to be transformed are equal to or greater than 8, and the region 8x8 can be an upper left 8x8 region in the transform coefficient block. Similarly, a 4 x 4 lfnst and a 4 x 4 RST refer to transforms applicable to a 4 x 4 region included in the transform coefficient block when W and H of the target block are equal to or greater than 4, and the 4x4 region can be a top left 4x4 region in the transform coefficient block.
[0145] De acordo com uma modalidade da presente divulgação, para uma transformada em um processo de codificação, apenas 48 pedaços de dados podem ser selecionados e uma matriz de kernel de transformada máxima de 16 x 48 pode ser aplicada a ela, em vez de aplicar uma transformada de 16 x 64 matriz do kernel para 64 pedaços de dados formando uma região de 8 x 8. Aqui, “máximo” significa que m tem um valor máximo de 16 em uma matriz de kernel de transformada m x 48 para gerar m coeficientes. Ou seja, quando uma RST é realizada aplicando uma matriz de kernel de transformada m x 48 (m < 16) a uma região 8 x 8, 48 dados são inseridos e os coeficientes m são gerados. Quando m é 16, 48 dados são inseridos e 16 coeficientes são gerados. Ou seja, assumindo que 48 dados formam um vetor 48 x 1, uma matriz 16 x 48 e um vetor 48 x 1 são multiplicados sequencialmente, gerando assim um vetor 16 x 1. Aqui, os 48 pedaços de dados que formam a região 8 x 8 podem ser dispostos adequadamente, formando assim o vetor 48 x 1. Por exemplo, um vetor 48 x 1 pode ser construído com base em 48 pedaços de dados que constituem uma região excluindo a região 4 x 4 inferior direita entre as regiões 8 x 8. Aqui, quando uma operação de matriz é realizada aplicando uma matriz de kernel de transformada máxima de 16 x 48, 16 coeficientes de transformada modificados são gerados e os 16 coeficientes de transformada modificados podem ser dispostos em uma região 4 x 4 superior esquerda de acordo com uma ordem de varredura, e uma região 4 x 4 superior direita e uma região 4 x 4 inferior esquerda podem ser preenchidas com zeros.[0145] According to one embodiment of the present disclosure, for a transform in an encoding process, only 48 pieces of data can be selected and a maximum transform kernel matrix of 16 x 48 can be applied thereto, instead of apply a 16 x 64 transform kernel matrix to 64 pieces of data forming an 8 x 8 region. Here, “maximum” means that m has a maximum value of 16 in an m x 48 transform kernel matrix to generate m coefficients . That is, when an RST is performed by applying an m x 48 transform kernel matrix (m < 16) to an 8 x 8 region, 48 data are entered and m coefficients are generated. When m is 16, 48 data are entered and 16 coefficients are generated. That is, assuming that 48 data pieces form a 48 x 1 vector, a 16 x 48 matrix and a 48 x 1 vector are multiplied sequentially, thus generating a 16 x 1 vector. Here, the 48 pieces of data that form the 8 x region 8 can be arranged accordingly, thus forming the 48 x 1 vector. For example, a 48 x 1 vector can be constructed based on 48 pieces of data that constitute a region excluding the lower right 4 x 4 region between the 8 x 8 regions .Here, when a matrix operation is performed by applying a maximum transform kernel matrix of 16 x 48, 16 modified transform coefficients are generated and the 16 modified transform coefficients can be arranged in a top left 4 x 4 region accordingly. with a scan order, and a top-right 4x4 region and a bottom-left 4x4 region can be padded with zeros.
[0146] Para uma transformada inversa em um processo de decodificação, a matriz transposta da matriz de kernel de transformada anterior pode ser usada. Ou seja, quando uma RST inversa ou LFNST é realizada no processo de transformada inversa realizado pelo aparelho de decodificação, os dados de coeficiente de entrada aos quais a RST inversa é aplicada são configurados em um vetor unidimensional de acordo com uma ordem de disposição predeterminada e um modificado vetor de coeficiente obtido pela multiplicação do vetor unidimensional e uma matriz de RST inversa correspondente à esquerda do vetor unidimensional pode ser disposto em um bloco bidimensional de acordo com uma ordem de disposição predeterminada.[0146] For an inverse transform in a decoding process, the transposed matrix of the previous transform kernel matrix can be used. That is, when an inverse RST or LFNST is performed in the inverse transform process performed by the decoding apparatus, 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 modified coefficient vector obtained by multiplying the one-dimensional vector and a corresponding inverse RST matrix to the left of the one-dimensional vector can be arranged in a two-dimensional block according to a predetermined arrangement order.
[0147] Em resumo, no processo de transformada, quando uma RST ou LFNST é aplicada a uma região 8 x 8, uma operação de matriz de 48 coeficientes de transformada nas regiões superior esquerda, superior direita e inferior esquerda das regiões 8 x 8 excluindo a região inferior direita entre os coeficientes de transformada na região de 8 x 8 e uma matriz de kernel de transformada de 16 x 48. Para a operação de matriz, os 48 coeficientes de transformada são inseridos em uma matriz unidimensional. Quando a operação de matriz é realizada, 16 coeficientes de transformada modificados são derivados e os coeficientes de transformada modificados podem ser dispostos na região superior esquerda da região 8 x 8.[0147] In summary, in the transform process, when an RST or LFNST is applied to an 8 x 8 region, a matrix operation of 48 transform coefficients on the upper left, upper right and lower left regions of the 8 x 8 regions excluding the lower right region between the transform coefficients in the 8 x 8 region and a 16 x 48 transform kernel matrix. For the matrix operation, the 48 transform coefficients are inserted into a one-dimensional matrix. When the matrix operation is performed, 16 modified transform coefficients are derived, and the modified transform coefficients can be arranged in the upper left region of the 8 x 8 region.
[0148] Pelo contrário, no processo de transformada inversa, quando uma RST ou LFNST inversa é aplicada a uma região de 8 x 8, 16 coeficientes de transformada correspondendo a uma região superior esquerda da região de 8 x 8 entre os coeficientes de transformada na região 8 x 8 pode ser inserida em uma matriz unidimensional de acordo com uma ordem de varredura e pode ser submetida a uma operação de matriz com uma matriz de kernel de transformada de 48 x 16. Ou seja, a operação de matriz pode ser expressa como (48 x 16 matriz) * (16 x 1 vetor de coeficiente de transformada) = (48 x 1 vetor de coeficiente de transformada modificado). Aqui, um vetor n x 1 pode ser interpretado como tendo o mesmo significado que uma matriz n x 1 e, portanto, pode ser expresso como um vetor de coluna n x 1. Além disso, *denota multiplicação de matrizes. Quando a operação de matriz é realizada, 48 coeficientes de transformada modificados podem ser derivados e os 48 coeficientes de transformada modificados podem ser dispostos nas regiões superior esquerda, superior direita e inferior esquerda da região 8 x 8 excluindo uma região inferior direita.[0148] On the contrary, in the inverse transform process, when an inverse RST or LFNST is applied to an 8 x 8 region, 16 transform coefficients corresponding to an upper left region of the 8 x 8 region among the transform coefficients in the 8 x 8 region can be inserted into a one-dimensional matrix according to a scan order and can be subjected to a matrix operation with a 48 x 16 transform kernel matrix. That is, the matrix operation can be expressed as (48 x 16 matrix) * (16 x 1 transform coefficient vector) = (48 x 1 modified transform coefficient vector). Here, an n x 1 vector can be interpreted as having the same meaning as an n x 1 matrix and can therefore be expressed as an n x 1 column vector. Furthermore, *denotes matrix multiplication. When the matrix operation is performed, 48 modified transform coefficients can be derived and the 48 modified transform coefficients can be arranged in the upper left, upper right and lower left regions of the 8 x 8 region excluding a lower right region.
[0149] Quando uma transformada inversa secundária é baseada em uma RST, o transformador inverso 135 do aparelho de codificação 100 e o transformador inverso 222 do aparelho de decodificação 200 podem incluir um transformador secundário inverso reduzido para derivar coeficientes de transformada modificados com base em uma RST inversa em coeficientes de transformada e um transformador primário inverso para derivar amostras residuais para o bloco alvo com base em uma transformada primária inversa nos coeficientes de transformada modificados. A transformada primária inversa refere-se à transformada inversa de uma transformada primária aplicada a um resíduo. Na presente divulgação, derivar um coeficiente de transformada com base em uma transformada pode referir-se a derivar o coeficiente de transformada aplicando a transformada.[0149] When a secondary inverse transform is based on an RST, the inverse transformer 135 of the coding apparatus 100 and the inverse transformer 222 of the decoding apparatus 200 may include a stepped-down secondary inverse transformer for deriving modified transform coefficients based on a Inverse RST on transform coefficients and an inverse primary transformer to derive residual samples for the target block based on an inverse primary transform on the modified transform coefficients. The inverse primary transform refers to the inverse transform of a primary transform applied to a residue. In the present disclosure, deriving a transform coefficient based on a transform may refer to deriving the transform coefficient by applying the transform.
[0150] The A transformada não separada descrita acima, a LFNST, será descrita em detalhes a seguir. A LFNST pode incluir uma transformada direta pelo aparelho de codificação e uma transformada inversa pelo aparelho de decodificação.[0150] The non-separated transform described above, the LFNST, will be described in detail below. The LFNST may include a forward transform by the encoding apparatus and an inverse transform by the decoding apparatus.
[0151] O aparelho de codificação recebe um resultado (ou parte de um resultado) derivado após a aplicação de uma transformada primária (núcleo) como entrada e aplica uma transformada secundária direta (transformada secundária). Equação 9 [0151] The coding apparatus receives a result (or part of a result) derived after applying a primary transform (core) as input and applies a direct secondary transform (secondary transform). Equation 9
[0152] Na Equação 9, x e y são entradas e saídas da transformada secundária, respectivamente, e G é uma matriz que representa a transformada secundária, e os vetores da base da transformada são compostos de vetores de coluna. No caso de uma LFNST inversa, quando a dimensão da matriz de transformada G é expressa como [número de linhas x número de colunas], no caso de uma LFNST direta, a transposição da matriz G passa a ser a dimensão de GT.[0152] In Equation 9, x and y are inputs and outputs of the secondary transform, respectively, and G is a matrix representing the secondary transform, and the base vectors of the transform are composed of column vectors. In the case of an inverse LFNST, when the dimension of the transform matrix G is expressed as [number of rows x number of columns], in the case of a direct LFNST, the transpose of the matrix G becomes the dimension of GT.
[0153] Para a LFNST inversa, as dimensões da matriz G são [48 x 16], [48 x 8], [16 x 16], [16 x 8], e a matriz [48 x 8] e a [16] x 8] são matrizes parciais que amostraram 8 vetores de base de transformada da esquerda da matriz [48 x 16] e da matriz [16 x 16], respectivamente.[0153] For the inverse LFNST, the dimensions of the matrix G are [48 x 16], [48 x 8], [16 x 16], [16 x 8], and the matrix [48 x 8] and the [16 ]x8] are partial matrices that sampled 8 transform basis vectors from the left of the [48 x 16] matrix and the [16 x 16] matrix, respectively.
[0154] Por outro lado, para a LFNST direta, as dimensões da matriz GT são [16 x 48], [8 x 48], [16 x 16], [8 x 16], e o [8 x 48] matriz e a matriz [8 x 16] são matrizes parciais obtidas pela amostragem de 8 vetores de base de transformada do topo da matriz [16 x 48] e da matriz [16 x 16], respectivamente.[0154] On the other hand, for direct LFNST, the dimensions of the GT matrix are [16 x 48], [8 x 48], [16 x 16], [8 x 16], and the [8 x 48] matrix and matrix [8 x 16] are partial matrices obtained by sampling 8 transform basis vectors from the top of matrix [16 x 48] and matrix [16 x 16], respectively.
[0155] Portanto, no caso da LFNST direta, um vetor [48 x 1] ou [16 x 1] é possível como uma entrada x, e um vetor [16 x 1] ou um vetor [8 x 1] é possível como uma saída y. Na codificação e decodificação de vídeo, a saída da transformada primária direta são dados bidimensionais (2D), então para construir o vetor [48 x 1] ou o vetor [16 x 1] como a entrada x, um vetor unidimensional deve ser construído organizando adequadamente os dados 2D que são a saída da transformada direta.[0155] Therefore, in the case of direct LFNST, a vector [48 x 1] or [16 x 1] is possible as an input x, and a vector [16 x 1] or a vector [8 x 1] is possible as a y output. In video encoding and decoding, the output of the direct primary transform is two-dimensional (2D) data, so to construct vector [48 x 1] or vector [16 x 1] as the input x, a one-dimensional vector must be constructed by arranging appropriately the 2D data that is the output of the direct transform.
[0156] A Figura 6 é um diagrama que ilustra uma sequência de arranjo de dados de saída de uma transformada primária direta em um vetor unidimensional de acordo com um exemplo. Os diagramas da esquerda de (a) e (b) da Figura 6 mostram a sequência para a construção de um vetor [48 x 1] e os diagramas corretos de (a) e (b) da Figura 6 mostra a sequência para construir um vetor [16 x 1]. No caso da LFNST, um vetor unidimensional x pode ser obtido organizando sequencialmente os dados 2D na mesma ordem que em (a) e (b) da Figura 6.[0156] Figure 6 is a diagram illustrating an output data arrangement sequence of a direct primary transform into a one-dimensional vector according to an example. The left diagrams of (a) and (b) of Figure 6 show the sequence for constructing a [48 x 1] vector and the right diagrams of (a) and (b) of Figure 6 show the sequence for constructing a vector [16 x 1]. In the case of LFNST, a one-dimensional vector x can be obtained by sequentially arranging the 2D data in the same order as in (a) and (b) of Figure 6.
[0157] A direção de arranjo dos dados de saída da transformada primária direta pode ser determinada de acordo com um modo de intrapredição do bloco atual. Por exemplo, quando o modo de intrapredição do bloco atual está na direção horizontal em relação à direção diagonal, os dados de saída da transformada primária direta podem ser dispostos na ordem de (a) da Figura 6, e quando o modo de intrapredição do bloco atual está na direção vertical em relação à direção diagonal, os dados de saída da transformada primária direta podem ser dispostos na ordem de (b) da Figura 6.[0157] The arrangement direction of the direct primary transform output data can be determined according to an intraprediction mode of the current block. For example, when the intraprediction mode of the current block is in the horizontal direction with respect to the diagonal direction, the output data of the direct primary transform can be arranged in the order of (a) in Figure 6, and when the intraprediction mode of the block current is in the vertical direction with respect to the diagonal direction, the output data of the direct primary transform can be arranged in the order of (b) in Figure 6.
[0158] De acordo com um exemplo, uma ordem de arranjo diferente das ordens de arranjo de (a) e (b) Figura 6 pode ser aplicado, e para derivar o mesmo resultado (vetor y) como quando as ordens de arranjo de (a) e (b) Figura 6 for aplicado, os vetores de coluna da matriz G podem ser rearranjados de acordo com a ordem de arranjo. Ou seja, é possível rearranjar os vetores coluna de G de forma que cada elemento que constitui o vetor x seja sempre multiplicado pelo mesmo vetor base da transformada.[0158] According to an example, an arrangement order different from the arrangement orders of (a) and (b) Figure 6 can be applied, and to derive the same result (vector y) as when the arrangement orders of ( a) and (b) Figure 6 is applied, the column vectors of the matrix G can be rearranged according to the arrangement order. In other words, it is possible to rearrange the column vectors of G so that each element that constitutes the vector x is always multiplied by the same base vector of the transform.
[0159] Uma vez que a saída y derivada através da Equação 9 é um vetor unidimensional, quando dados bidimensionais são necessários como dados de entrada no processo de uso do resultado da transformada secundária direta como entrada, por exemplo, no processo de realizar quantização ou codificação residual, o vetor y de saída da Equação 9 deve ser adequadamente organizado como dados 2D novamente.[0159] Since the output y derived through Equation 9 is a one-dimensional vector, when two-dimensional data is required as input data in the process of using the result of the direct secondary transform as input, for example, in the process of performing quantization or residual encoding, the output vector y of Equation 9 must be properly organized as 2D data again.
[0160] A Figura 7 é um diagrama que ilustra uma sequência de arranjo de dados de saída de uma transformada secundária direta em um bloco bidimensional de acordo com um exemplo.[0160] Figure 7 is a diagram illustrating an output data arrangement sequence of a direct secondary transform in a two-dimensional block according to an example.
[0161] No caso da LFNST, os valores de saída podem ser dispostos em um bloco 2D de acordo com uma ordem de varredura predeterminada. (a) da Figura 7 mostra que quando a saída y é um vetor [16 x 1], os valores de saída são dispostos em 16 posições do bloco 2D de acordo com uma ordem de varredura diagonal. (b) da Figura 7 mostra que quando a saída y é um vetor [8 x 1], os valores de saída são dispostos em 8 posições do bloco 2D de acordo com a ordem de varredura diagonal, e as 8 posições restantes são preenchidas com zeros. X em (b) da Figura 7 indica que está preenchido com zero.[0161] In the case of LFNST, the output values can be arranged in a 2D block according to a predetermined scan order. (a) of Figure 7 shows that when the output y is a [16 x 1] vector, the output values are arranged in 16 positions of the 2D block according to a diagonal scan order. (b) of Figure 7 shows that when the output y is a vector [8 x 1], 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) of Figure 7 indicates that it is zero-filled.
[0162] De acordo com outro exemplo, uma vez que a ordem em que o vetor de saída y é processado na execução da quantização ou codificação residual pode ser predefinida, o vetor de saída y não pode ser disposto no bloco 2D como mostrado na Figura 7. No entanto, no caso da codificação residual, a codificação de dados pode ser realizada em unidades de bloco 2D (por exemplo, 4 x 4) como CG (Grupo de Coeficientes), e neste caso, os dados são organizados de acordo com uma ordem específica como em a ordem de varredura diagonal da Figura 7.[0162] According to another example, since the order in which the output vector y is processed in performing quantization or residual coding can be predefined, the output vector y cannot be arranged in the 2D block as shown in Figure 7. However, in case of residual coding, data coding can be performed in 2D block units (e.g. 4 x 4) as CG (Coefficient Group), and in this case, the data is organized according to a specific order as in the diagonal scan order of Figure 7.
[0163] Enquanto isso, o aparelho de decodificação pode configurar o vetor de entrada unidimensional y organizando a saída de dados bidimensionais através de um processo de desquantização ou semelhante de acordo com uma ordem de varredura predefinida para a transformada inversa. O vetor de entrada y pode ser emitido como o vetor de saída x pela seguinte equação. Equação 10 [0163] Meanwhile, the decoding apparatus may configure the one-dimensional input vector y by arranging the two-dimensional data output through a dequantization or similar process according to a predefined scan order for the inverse transform. The input vector y can be output as the output vector x by the following equation. Equation 10
[0164] No caso da LFNST inversa, um vetor de saída x pode ser derivado multiplicando um vetor de entrada y, que é um vetor [16 x 1] ou um vetor [8 x 1], por uma matriz G. Para a LFNST inversa, o vetor de saída x pode ser um vetor [48 x 1] ou um vetor [16 x 1].[0164] In the case of inverse LFNST, an output vector x can be derived by multiplying an input vector y, which is a [16 x 1] vector or an [8 x 1] vector, by a matrix G. For LFNST Inversely, the output vector x can be a [48 x 1] vector or a [16 x 1] vector.
[0165] O vetor de saída x é disposto em um bloco bidimensional de acordo com a ordem mostrada na Figura 6 e é organizado como dados bidimensionais, e esses dados bidimensionais tornam-se dados de entrada (ou uma parte dos dados de entrada) da transformada primária inversa.[0165] The output vector x is arranged in a two-dimensional block according to the order shown in Figure 6 and is organized as two-dimensional data, and this two-dimensional data becomes input data (or a part of the input data) of the inverse primary transform.
[0166] Consequentemente, a transformada secundária inversa é o oposto do processo de transformada secundária direta como um todo, e no caso da transformada inversa, diferentemente da direção direta, a transformada secundária inversa é aplicada primeiro e, em seguida, a primária inversa transformada é aplicada.[0166] Consequently, the inverse secondary transform is the opposite of the direct secondary transform process as a whole, and in the case of the inverse transform, unlike the direct direction, the inverse secondary transform is applied first and then the inverse primary transform is applied.
[0167] Na LFNST inversa, uma das 8 [48 x 16] matrizes e 8 [16 x 16] matrizes podem ser selecionadas como a matriz de transformada G. Se deve aplicar a matriz [48 x 16] ou a [16 x 16]] depende do tamanho e forma do bloco.[0167] In inverse LFNST, one of the 8 [48 x 16] matrices and 8 [16 x 16] matrices can be selected as the transform matrix G. Whether to apply the matrix [48 x 16] or the [16 x 16 ]] depends on the size and shape of the block.
[0168] Além disso, 8 matrizes podem ser derivadas de quatro conjuntos de transformadas conforme mostrado na Tabela 2 acima, e cada conjunto de transformadas pode consistir em duas matrizes. Qual o conjunto de transformadas a ser usado entre os 4 conjuntos de transformadas é determinado de acordo com o modo de intrapredição e, mais especificamente, o conjunto de transformadas é determinado com base no valor do modo de intrapredição estendido considerando a intrapredição de grande angular (WAIP). Qual matriz selecionar entre as duas matrizes que constituem o conjunto de transformada selecionado é derivada por meio de sinalização de índice. Mais especificamente, 0, 1 e 2 são possíveis como o valor de índice transmitido, 0 pode indicar que a LFNST não é aplicada e 1 e 2 podem indicar qualquer uma das duas matrizes de transformada que constituem um conjunto de transformada selecionado com base no modo valor de intrapredição.[0168] Furthermore, 8 matrices can be derived from four sets of transforms as shown in Table 2 above, and each set of transforms can consist of two matrices. Which set of transforms to use among the 4 sets of transforms is determined according to the intraprediction mode, and more specifically, the set of transforms is determined based on the value of the extended intraprediction mode considering the wide-angle intraprediction ( WAIP). Which matrix to select from the two matrices that constitute the selected transform set is derived through index signaling. More specifically, 0, 1 and 2 are possible as the transmitted index value, 0 can indicate that LFNST is not applied, and 1 and 2 can indicate either of the two transform matrices that constitute a transform set selected based on the mode intraprediction value.
[0169] Enquanto isso, como descrito acima, qual matriz de transformada da matriz [48 x 16] e da matriz [16 x 16] é aplicada à LFNST é determinada pelo tamanho e forma do bloco alvo de transformada.[0169] Meanwhile, as described above, which transform matrix of the [48 x 16] matrix and the [16 x 16] matrix is applied to the LFNST is determined by the size and shape of the transform target block.
[0170] A Figura 8 é um diagrama que ilustra um formato de bloco ao qual a LFNST é aplicada. (a) da Figura 8 mostra blocos 4 x 4, (b) mostra blocos 4 x 8 e 8 x 4, (c) mostra blocos 4 x N ou N x 4 em que N é 16 ou mais, (d) mostra blocos 8 x 8, (e) mostra blocos M x N onde M > 8, N > 8, e N > 8 ou M > 8.[0170] Figure 8 is a diagram illustrating a block format to which LFNST is applied. (a) of Figure 8 shows 4 x 4 blocks, (b) shows 4 x 8 and 8 x 4 blocks, (c) shows 4 x N or N x 4 blocks where N is 16 or more, (d) shows 8 x 8, (e) shows M x N blocks where M > 8, N > 8, and N > 8 or M > 8.
[0171] Em Figura 8, blocos com bordas grossas indicam regiões nas quais a LFNST é aplicada. Para os blocos das Figuras 10 (a) e (b), a LFNST é aplicada à região 4 x 4 superior esquerda e para o bloco da Figura 8 (c), a LFNST é aplicada individualmente, as duas regiões 4 x 4 superiores esquerdas são dispostas continuamente. Em (a), (b) e (c) da Figura 8, uma vez que a LFNST é aplicada em unidades de regiões 4 x 4, esta LFNST será doravante denominada “LFNST 4 x 4”. Com base na dimensão da matriz para G, uma matriz [16 x 16] ou [16 x 8] pode ser aplicada.[0171] In Figure 8, blocks with thick edges indicate regions in which LFNST is applied. For the blocks in Figures 10 (a) and (b), the LFNST is applied to the top left 4 x 4 region and for the block in Figure 8 (c), the LFNST is applied individually to the two top left 4 x 4 regions. are arranged continuously. In (a), (b) and (c) of Figure 8, since the LFNST is applied in 4 x 4 region units, this LFNST will be referred to as “LFNST 4 x 4” from now on. Based on the matrix dimension for G, a [16 x 16] or [16 x 8] matrix can be applied.
[0172] Mais especificamente, a matriz [16 x 8] é aplicada ao bloco 4 x 4 (4 x 4 TU ou 4 x 4 CU) da Figura 8 (a) e a matriz [16 x 16] é aplicada aos blocos em (b) e (c) da Figura 8. Isto é para ajustar a complexidade computacional para o pior caso para 8 multiplicações por amostra.[0172] More specifically, the [16 x 8] matrix is applied to the 4 x 4 block (4 x 4 TU or 4 x 4 CU) of Figure 8 (a) and the [16 x 16] matrix is applied to the blocks in (b) and (c) of Figure 8. This is to adjust the computational complexity for the worst case for 8 multiplications per sample.
[0173] Com relação a (d) e (e) da Figura 8, a LFNST é aplicada à região 8 x 8 superior esquerda e esta LFNST é doravante denominada como “LFNST 8 x 8”. Como matriz de transformada correspondente, pode ser aplicada uma matriz [48 x 16] ou uma matriz [48 x 8]. No caso da LFNST direta, uma vez que o vetor [48 x 1] (vetor x na Equação 9) é inserido como dados de entrada, todos os valores de amostra da região 8 x 8 superior esquerda não são usados como valores de entrada da LFNST direto. Ou seja, como pode ser visto na ordem da esquerda da Figura 6 (a) ou a ordem da esquerda da Figura 6 (b), o vetor [48 x 1] pode ser construído com base em amostras pertencentes aos 3 blocos 4 x 4 restantes, deixando o bloco 4 x 4 inferior direito como está.[0173] With respect to (d) and (e) of Figure 8, the LFNST is applied to the upper left 8 x 8 region and this LFNST is hereinafter referred to as “LFNST 8 x 8”. As the corresponding transform matrix, a [48 x 16] matrix or a [48 x 8] matrix can be applied. In the case of direct LFNST, since the vector [48 x 1] (vector x in Equation 9) is entered as input data, all sample values from the upper left 8 x 8 region are not used as input values of the Direct LFNST. That is, as can be seen from the left order of Figure 6 (a) or the left order of Figure 6 (b), the vector [48 x 1] can be constructed based on samples belonging to the 3 blocks 4 x 4 remaining, leaving the bottom right 4 x 4 block as is.
[0174] A matriz [48 x 8] pode ser aplicada a um bloco 8 x 8 (8 x 8 TU ou 8 x 8 CU) na Figura 8 (d), e a matriz [48 x 16] pode ser aplicada ao bloco 8 x 8 na Figura 8(e). Isso também serve para ajustar a complexidade computacional para o pior caso para 8 multiplicações por amostra.[0174] The matrix [48 x 8] can be applied to an 8 x 8 block (8 x 8 TU or 8 x 8 CU) in Figure 8 (d), and the matrix [48 x 16] can be applied to the block 8 x 8 in Figure 8(e). This also serves to adjust the computational complexity for the worst case for 8 multiplications per sample.
[0175] Dependendo da forma do bloco, quando a LFNST direta correspondente (LFNST 4 x 4 ou LFNST 8 x 8) é aplicado, 8 ou 16 dados de saída (vetor y na Equação 9, vetor [8 x 1] ou [16 x 1]) é gerado. Na LFNST direta, o número de dados de saída é igual ou menor que o número de dados de entrada devido às características da matriz GT.[0175] Depending on the shape of the block, when the corresponding direct LFNST (LFNST 4 x 4 or LFNST 8 x 8) is applied, 8 or 16 output data (vector y in Equation 9, vector [8 x 1] or [16 x 1]) is generated. In direct LFNST, the number of output data is equal to or less than the number of input data due to the characteristics of the GT matrix.
[0176] A Figura 9 é um diagrama que ilustra um arranjo de dados de saída de uma LFNST direta de acordo com um exemplo, e mostra um bloco em que dados de saída da LFNST direta são dispostos de acordo com um formato de bloco.[0176] Figure 9 is a diagram illustrating an arrangement of output data from a direct LFNST according to an example, and shows a block in which output data from the direct LFNST is arranged according to a block format.
[0177] A área sombreada na parte superior esquerda do bloco mostrado na Figura 9 corresponde à área onde os dados de saída da LFNST direta estão localizados, as posições marcadas com 0 indicam amostras preenchidas com valores 0, e a área restante representa regiões que não são alteradas pela LFNST direta. Na área não alterada pela LFNST, os dados de saída da transformada primária direta permanecem inalterados.[0177] The shaded area in the upper left part of the block shown in Figure 9 corresponds to the area where the direct LFNST output data is located, positions marked with 0 indicate samples filled with 0 values, and the remaining area represents regions that do not are changed by direct LFNST. In the area not changed by LFNST, the output data of the direct primary transform remains unchanged.
[0178] Como descrito acima, uma vez que a dimensão da matriz de transformada aplicada varia de acordo com a forma do bloco, o número de dados de saída também varia. Como a Figura 9, os dados de saída da LFNST direta podem não preencher completamente o bloco 4 x 4 superior esquerdo. No caso de (a) e (d) da Figura 9 , uma matriz [16 x 8] e uma matriz [48 x 8] são aplicadas ao bloco indicado por uma linha grossa ou uma região parcial dentro do bloco, respectivamente, e um vetor [8 x 1] como saída da LFNST para frente é gerado. Ou seja, de acordo com a ordem de varredura mostrada em (b) da Figura 7, apenas 8 dados de saída podem ser preenchidos como mostrado em (a) e (d) da Figura 9 e 0 podem ser preenchidos nas 8 posições restantes. No caso do bloco aplicado LFNST da Figura 8 (d), como mostrado na Figura 9(d), dois blocos 4 x 4 superiores direitos e inferiores esquerdos adjacentes ao bloco 4 x 4 superior esquerdo também são preenchidos com valores 0.[0178] As described above, since the dimension of the applied transform matrix varies according to the shape of the block, the number of output data also varies. Like Figure 9, direct LFNST output data may not completely fill the upper left 4 x 4 block. In the case of (a) and (d) of Figure 9, a [16 x 8] matrix and a [48 x 8] matrix are applied to the block indicated by a thick line or a partial region within the block, respectively, and a vector [8 x 1] as output of the forward LFNST is generated. That is, according to the scanning order shown in (b) of Figure 7, only 8 output data can be filled as shown in (a) and (d) of Figure 9, and 0 can be filled in the remaining 8 positions. In the case of the LFNST applied block of Figure 8(d), as shown in Figure 9(d), two upper right and lower left 4 x 4 blocks adjacent to the upper left 4 x 4 block are also filled with 0 values.
[0179] Conforme descrito acima, basicamente, ao sinalizar o índice de LFNST, especifica-se se deve ser aplicado a LFNST e a matriz de transformada a ser aplicada. Como mostrado a Figura 9, quando a LFNST é aplicada, uma vez que o número de dados de saída da LFNST direta pode ser igual ou menor que o número de dados de entrada, uma região preenchida com um valor zero ocorre como segue.[0179] As described above, basically, when signaling the LFNST index, it is specified whether to apply the LFNST and the transform matrix to be applied. As shown in Figure 9, when LFNST is applied, since the number of output data of direct LFNST may be equal to or less than the number of input data, a region filled with a zero value occurs as follows.
[0180] 1) Como mostrado em (a) da Figura 9, amostras da 8a posição e posteriores na ordem de varredura no bloco 4 x 4 superior esquerdo, isto é, amostras da 9a à 16a.[0180] 1) As shown in (a) of Figure 9, samples from the 8th position and later in the scan order in the upper left 4 x 4 block, that is, samples from the 9th to the 16th.
[0181] 2) Conforme mostrado em (d) e (e) da Figura 9, quando a matriz [48 x 16] ou a matriz [48 x 8] é aplicada, dois blocos 4 x 4 adjacentes ao bloco 4 x 4 superior esquerdo ou o segundo e terceiro blocos 4 x 4 na ordem de varredura.[0181] 2) As shown in (d) and (e) of Figure 9, when the [48 x 16] matrix or the [48 x 8] matrix is applied, two 4 x 4 blocks adjacent to the upper 4 x 4 block left or the second and third 4 x 4 blocks in scan order.
[0182] Portanto, se existirem dados diferentes de zero verificando as áreas 1) e 2), é certo que a LFNST não é aplicada, de modo que a sinalização do índice de LFNST correspondente pode ser omitida.[0182] Therefore, if there is non-zero data checking areas 1) and 2), it is certain that LFNST is not applied, so the corresponding LFNST index flag can be omitted.
[0183] De acordo com um exemplo, por exemplo, no caso da LFNST adotada no padrão VVC, uma vez que a sinalização do índice de LFNST é realizada após a codificação residual, o aparelho de codificação pode saber se existe o dado diferente de zero (significativo coeficientes) para todas as posições dentro do bloco de TU ou CU através da codificação residual. Consequentemente, o aparelho de codificação pode determinar se deve realizar sinalização no índice de LFNST com base na existência dos dados diferentes de zero e o aparelho de decodificação pode determinar se o índice de LFNST é analisado. Quando os dados diferentes de zero não existem na área designada em 1) e 2) acima, é realizada a sinalização do índice de LFNST.[0183] According to an example, for example, in the case of LFNST adopted in the VVC standard, since the LFNST index signaling is performed after residual coding, the coding apparatus can know whether non-zero data exists (significant coefficients) for all positions within the TU or CU block through residual coding. Accordingly, the encoding apparatus can determine whether to perform signaling on the LFNST index based on the existence of non-zero data and the decoding apparatus can determine whether the LFNST index is parsed. When non-zero data does not exist in the area designated in 1) and 2) above, LFNST index signaling is performed.
[0184] Entretanto, para a LFNST adotada, os seguintes métodos de simplificação podem ser aplicados.[0184] However, for the adopted LFNST, the following simplification methods can be applied.
[0185] (i) De acordo com um exemplo, o número de dados de saída para a LFNST direta pode ser limitado a um máximo de 16.[0185] (i) According to an example, the number of output data for direct LFNST may be limited to a maximum of 16.
[0186] No caso de (c) da Figura 8, a LFNST 4 x 4 pode ser aplicado a duas regiões 4 x 4 adjacentes à parte superior esquerda, respectivamente, e neste caso, um máximo de 32 dados de saída de LFNST podem ser gerados quando o número de dados de saída para LFNST direta é limitado a um máximo de 16, no caso de blocos 4 x N/N x 4 (N > 16) (TU ou CU), a LFNST 4 x 4 é aplicada apenas a uma região 4 x 4 superior esquerda, a LFNST pode ser aplicada apenas uma vez a todos os blocos da Figura 8. Com isso, a implementação da codificação de imagem pode ser simplificada.[0186] In the case of (c) of Figure 8, the 4 x 4 LFNST can be applied to two 4 x 4 regions adjacent to the upper 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 the case of 4 x N/N x 4 (N > 16) blocks (TU or CU), 4 x 4 LFNST is applied only to a 4 x 4 top left region, LFNST can be applied only once to all blocks in Figure 8. With this, the implementation of image coding can be simplified.
[0187] (ii) De acordo com um exemplo, o zero-out pode ser adicionalmente aplicado a uma região à qual a LFNST não é aplicada. Neste documento, o zero-out pode significar o preenchimento de valores de todas as posições pertencentes a uma determinada região com valor 0. Ou seja, o zero-out pode ser aplicado a uma região que não é alterada devido à LFNST e mantém a resultado da transformada primária direta. Conforme descrito acima, uma vez que a LFNST é dividida em LFNST 4 x 4 e LFNST 8 x 8, o zero-out pode ser dividido em dois tipos ((ii)-(A) e (ii)-(B)) como segue.[0187] (ii) According to an example, zero-out can be additionally applied to a region to which LFNST is not applied. In this document, zero-out can mean filling values of all positions belonging to a given region with value 0. That is, zero-out can be applied to a region that is not changed due to LFNST and maintains the result of the direct primary transform. As described above, since the LFNST is divided into LFNST 4 x 4 and LFNST 8 x 8, the zero-out can be divided into two types ((ii)-(A) and (ii)-(B)) as he follows.
[0188] (ii)-( A) Quando a LFNST 4 x 4 é aplicada, uma região à qual a LFNST 4 x 4 não é aplicada pode ser zerada. A Figura 11 é um diagrama que ilustra o zero- out em um bloco ao qual a LFNST 4 x 4 é aplicada de acordo com um exemplo.[0188] (ii)-( A) When LFNST 4 x 4 is applied, a region to which LFNST 4 x 4 is not applied can be reset. Figure 11 is a diagram illustrating zero-out in a block to which LFNST 4 x 4 is applied according to an example.
[0189] Como mostrado na Figura10, em relação a um bloco ao qual a LFNST 4 x 4 é aplicada, isto é, para todos os blocos em (a), (b) e (c) da Figura 9, toda a região à qual a LFNST não é aplicada pode ser preenchida com zeros.[0189] As shown in Figure 10, with respect to a block to which LFNST 4 x 4 is applied, that is, for all blocks in (a), (b) and (c) of Figure 9, the entire region to the which LFNST is not applied can be filled with zeros.
[0190] (d) da Figura10 mostra que o zero-out é realizado em um bloco restante ao qual a LFNST 4 x 4 não é aplicada quando o número máximo de peças de dados de saída da LFNST direta é limitado a 16 de acordo com um exemplo.[0190] (d) of Figure 10 shows that zero-out is performed on a remaining block to which the 4 x 4 LFNST is not applied when the maximum number of direct LFNST output data pieces is limited to 16 in accordance with An example.
[0191] (ii)-(B) Quando uma LFNST 8 x 8 é aplicada, uma região à qual a LFNST 8 x 8 não é aplicado pode ser zerada. A Figura 11 ilustra o zero-out em um bloco ao qual uma LFNST 8 x 8 é aplicada de acordo com um exemplo.[0191] (ii)-(B) When an 8 x 8 LFNST is applied, a region to which the 8 x 8 LFNST is not applied can be reset. Figure 11 illustrates zero-out in a block to which an 8 x 8 LFNST is applied according to an example.
[0192] Como mostrado na Figura 11, em relação a um bloco ao qual a LFNST 8 x 8 é aplicada, isto é, para todos os blocos em (d) e (e) da Figura 9, toda a região à qual a LFNST não é aplicada pode ser preenchida com zeros.[0192] As shown in Figure 11, with respect to a block to which the LFNST 8 x 8 is applied, that is, for all blocks in (d) and (e) of Figure 9, the entire region to which the LFNST is not applied can be filled with zeros.
[0193] (iii) Devido ao zero-out apresentado em (ii) acima, a área preenchida com zeros pode não ser a mesma quando a LFNST for aplicada. Assim, é possível verificar se os dados diferentes de zero existem de acordo com o zero-out proposto em (ii) em uma área mais ampla do que o caso da LFNST da Figura 9.[0193] (iii) Due to the zero-out presented in (ii) above, the area filled with zeros may not be the same when LFNST is applied. Thus, it is possible to verify whether non-zero data exist according to the zero-out proposed in (ii) in a wider area than the LFNST case in Figure 9.
[0194] Por exemplo, quando (ii)-(B) é aplicado, se existem dados diferentes de zero podem ser verificados em até uma região adicionalmente preenchida com 0s na Figura 11 além das regiões preenchidas com zeros na Figura (d) e (e) da Figura 9, e então um índice de LFNST pode ser sinalizado somente quando não existirem dados diferentes de zero.[0194] For example, when (ii)-(B) is applied, whether non-zero data exists can be checked in up to a region additionally filled with 0s in Figure 11 in addition to the regions filled with zeros in Figure (d) and ( e) of Figure 9, and then an LFNST index can be signaled only when there is no non-zero data.
[0195] mesmo que o zero-out proposto em (ii) seja aplicado, é possível verificar se os dados diferentes de zero existem da mesma forma que a sinalização do índice de LFNST existente. Ou seja, após verificar se os dados diferentes de zero existem no bloco preenchido com zeros na Figura 9, a sinalização do índice de LFNST pode ser aplicada. Neste caso, o aparelho de codificação realiza apenas a saída do zero e o aparelho de decodificação não assume a saída do zero, ou seja, verificando apenas se os dados diferentes de zero existem apenas na área explicitamente marcada como 0 na FIG. 9, pode realizar a análise do índice de LFNST.[0195] even if the zero-out 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 zero-filled block in Figure 9, the LFNST index flag can be applied. In this case, the encoding device only performs zero output and the decoding device does not assume zero output, i.e., only checking whether non-zero data exists only in the area explicitly marked as 0 in FIG. 9, can perform LFNST index analysis.
[0196] Várias modalidades nas quais são aplicadas combinações dos métodos de simplificação ((i), (ii)-(A), (ii)-(B), (iii)) para a LFNST podem ser derivadas. Obviamente, as combinações dos métodos de simplificação acima não estão limitadas à modalidade a seguir e qualquer combinação pode ser aplicada à LFNST.[0196] Various embodiments in which combinations of the simplification methods ((i), (ii)-(A), (ii)-(B), (iii)) for the LFNST are applied can be derived. Obviously, combinations of the above simplification methods are not limited to the following embodiment and any combination can be applied to LFNST.
[0197] - Limitar o número de dados de saída para LFNST direta a um máximo de 16 ^ (i)[0197] - Limit the number of output data for direct LFNST to a maximum of 16 ^ (i)
[0198] - Quando a LFNST 4 x 4 é aplicada, todas as áreas nas quais LFNST 4 x 4 não é aplicada são zero-out ^ (ii)-(A)[0198] - When LFNST 4 x 4 is applied, all areas in which LFNST 4 x 4 is not applied are zero-out ^ (ii)-(A)
[0199] - Quando a LFNST 8 x 8 é aplicada, todas as áreas nas quais LFNST 8 x 8 não é aplicada são zeradas ^ (ii)-(B)[0199] - When LFNST 8 x 8 is applied, all areas in which LFNST 8 x 8 is not applied are reset to zero ^ (ii)-(B)
[0200] - Depois de verificar se os dados diferentes de zero existem também a área existente preenchida com valor zero e a área preenchida com zeros devido a zero-outs adicionais ((ii)-(A), (ii)-(B)), o índice de LFNST é sinalizado apenas quando o dado diferente de zero não existe ^ (iii)[0200] - After checking if the non-zero data there is also the existing area filled with zero value and the area filled with zeros due to additional zero-outs ((ii)-(A), (ii)-(B) ), the LFNST index is signaled only when non-zero data does not exist ^ (iii)
[0201] Na modalidade, quando a LFNST é aplicada, uma região na qual podem existir dados de saída diferentes de zero é limitada ao interior de uma região 4 x 4 superior esquerda. Especificamente, em (a) da Figura 10 e (a) da Figura 11, uma oitava posição em uma ordem de varredura é a última posição onde podem existir dados diferentes de zero, e em (b) e (d) da Figura 10 e (b) da Figura 11, uma décima sexta posição na ordem de varredura (ou seja, uma posição inferior direita de um bloco 4 x 4 superior esquerdo) é a última posição onde podem existir dados diferentes de zero.[0201] In the embodiment, when LFNST is applied, a region in which non-zero output data may exist is limited to the interior of an upper left 4 x 4 region. Specifically, in (a) of Figure 10 and (a) of Figure 11, an eighth position in a scan order is the last position where non-zero data can exist, and in (b) and (d) of Figure 10 and (b) from Figure 11, a sixteenth position in the scan order (i.e., a lower right position of a upper left 4 x 4 block) is the last position where non-zero data can exist.
[0202] Portanto, quando a LFNST é aplicada, após verificar se os dados diferentes de zero existem em uma posição onde o processo de codificação residual não é permitido (em uma posição além da última posição), pode-se determinar se o índice de LFNST é sinalizado.[0202] Therefore, when LFNST is applied, after checking whether non-zero data exists in a position where the residual encoding process is not allowed (in a position beyond the last position), it can be determined whether the index of LFNST is flagged.
[0203] No caso do método zero-out proposto em (ii), uma vez que o número de dados finalmente gerados quando a transformada primária e a LFNST são aplicadas, a quantidade de computação necessária para realizar todo o processo de transformada pode ser reduzida. Ou seja, quando a LFNST é aplicada, uma vez que o zero-out é aplicado aos dados de saída da transformada primária direta existentes em uma região na qual a LFNST não é aplicada, não há necessidade de gerar dados para a região que se torna zero-out durante realizando a transformada primária direta. Assim, é possível reduzir a quantidade de computação necessária para gerar os dados correspondentes. Os efeitos adicionais do método de zero-out proposto em (ii) são resumidos a seguir.[0203] In the case of the zero-out method proposed in (ii), since the number of data finally generated when 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 zero-out is applied to direct 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 zero-out during performing the direct primary transform. Thus, it is possible to reduce the amount of computation required to generate the corresponding data. The additional effects of the zero-out method proposed in (ii) are summarized below.
[0204] Primeiro, como descrito acima, a quantidade de computação necessária para realizar todo o processo de transformada é reduzida.[0204] First, as described above, the amount of computation required to perform the entire transform process is reduced.
[0205] Em particular, quando (ii)-(B) é aplicado, a quantidade de cálculo para o pior caso é reduzida, de modo que o processo de transformada pode ser aligeirado. Em outras palavras, em geral, uma grande quantidade de computação é necessária para realizar uma transformada primária de grande porte. Ao aplicar (ii)-(B), o número de dados derivados como resultado da execução da LFNST direta pode ser reduzido para 16 ou menos. Além disso, à medida que o tamanho do bloco inteiro (TU ou CU) aumenta, o efeito de reduzir a quantidade de operação de transformada aumenta ainda mais.[0205] In particular, when (ii)-(B) is applied, the amount of calculation for the worst case is reduced, so that the transformation process can be speeded up. In other words, in general, a large amount of computation is required to perform a large primary transform. By applying (ii)-(B), the number of data derived as a result of performing direct LFNST can be reduced to 16 or less. Furthermore, as the size of the entire block (TU or CU) increases, the effect of reducing the amount of transform operation increases further.
[0206] Em segundo lugar, a quantidade de computação necessária para todo o processo de transformada pode ser reduzida, reduzindo assim o consumo de energia necessário para realizar a transformada.[0206] Second, the amount of computation required for the entire transform process can be reduced, thereby reducing the energy consumption required to perform the transform.
[0207] Terceiro, a latência envolvida no processo de transformada é reduzida.[0207] Third, the latency involved in the transform process is reduced.
[0208] A transformada secundária, como a LFNST, adiciona uma quantidade computacional à transformada primária existente, aumentando assim o tempo de atraso geral envolvido na execução da transformada. Em particular, no caso de intrapredição, uma vez que os dados reconstruídos de blocos vizinhos são usados no processo de predição, durante a codificação, um aumento na latência devido a uma transformada secundária leva a um aumento na latência até a reconstrução. Isso pode levar a um aumento na latência geral da codificação de intrapredição.[0208] The secondary transform, such as the LFNST, adds a computational amount to the existing primary transform, thereby increasing the overall delay time involved in executing the transform. In particular, in the case of intraprediction, since reconstructed data from neighboring blocks are used in the prediction process, during encoding, an increase in latency due to a secondary transform leads to an increase in latency until reconstruction. This can lead to an increase in overall intraprediction coding latency.
[0209] No entanto, se o zero-out sugerido em (ii) for aplicado, o tempo de atraso para realizar a transformada primária pode ser bastante reduzido quando a LFNST é aplicada, o tempo de atraso para a transformada inteira é mantido ou reduzido, de modo que o aparelho de codificação pode ser implementado de forma mais simples.[0209] However, if the zero-out suggested in (ii) is applied, the delay time for performing the primary transform can be greatly reduced. When LFNST is applied, the delay time for the entire transform is maintained or reduced , so that the coding apparatus can be implemented more simply.
[0210] Enquanto isso, na intrapredição convencional, um bloco alvo de codificação é considerado como uma unidade de codificação, e a codificação é realizada sem partição do mesmo. No entanto, a codificação de ISP (Intra Sub- Partições) refere-se à realização da codificação de intrapredição com o bloco alvo de codificação sendo particionado em uma direção horizontal ou vertical. Neste caso, um bloco reconstruído pode ser gerado realizando codificação/decodificação em unidades de blocos particionados, e o bloco reconstruído pode ser usado como um bloco de referência do próximo bloco particionado. De acordo com um exemplo, na codificação de ISP, um bloco de codificação pode ser particionado em dois ou quatro sub-blocos e ser codificado, e na ISP, a intrapredição é realizada em um sub-bloco referindo-se ao valor de pixel reconstruído de um sub-bloco localizado adjacente ao lado esquerdo ou superior do mesmo. Doravante, o termo “codificação” pode ser usado como um conceito incluindo tanto a codificação realizada pelo aparelho de codificação quanto a decodificação realizada pelo aparelho de decodificação.[0210] Meanwhile, in conventional intraprediction, a coding target block is considered as a coding unit, and coding is performed without partitioning it. However, ISP (Intra Sub-Partitions) coding refers to performing intra-prediction coding with the coding target block being partitioned in a horizontal or vertical direction. In this case, a reconstructed block can be generated by performing encoding/decoding on partitioned block units, and the reconstructed block can be used as a reference block of the next partitioned block. According to an example, in ISP coding, a coding block can be partitioned into two or four sub-blocks and encoded, and in ISP, intraprediction is performed on a sub-block by referring to the reconstructed pixel value of a sub-block located adjacent to the left or upper side of it. Hereinafter, the term “encoding” may be used as a concept including both the encoding performed by the encoding apparatus and the decoding performed by the decoding apparatus.
[0211] O ISP particiona um bloco previsto como luma intra em dois ou quatro sub-particionamentos na direção vertical ou horizontal de acordo com o tamanho do bloco. Por exemplo, o tamanho mínimo do bloco ao qual o ISP pode ser aplicado é 4 x 8 ou 8 x 4. Se o tamanho do bloco for maior que 4 x 8 ou 8 x 4, o bloco será particionado em quatro sub-particionamentos.[0211] The ISP partitions a block predicted as intra luma into two or four sub-partitions in the vertical or horizontal direction according to the size of the block. For example, the minimum block size that ISP can be applied to is 4x8 or 8x4. If the block size is greater than 4x8 or 8x4, the block will be partitioned into four sub-partitionings.
[0212] Quando o ISP é aplicado, os sub-blocos são codificados sequencialmente de acordo com o tipo de partição, como, horizontal ou verticalmente, da esquerda para a direita, ou de cima para baixo, e a codificação para o próximo sub- bloco pode ser realizada após a realização de um processo de restauração por meio de transformada inversa e intrapredição para um sub-bloco. Para o sub-bloco mais à esquerda ou mais alto, como em um método de intrapredição convencional, o pixel reconstruído do bloco de codificação que já foi codificado é referido. Além disso, se o sub-bloco anterior não for adjacente a cada lado de um sub-bloco interno que o segue, para derivar pixels de referência adjacentes a um lado correspondente, como no método de intrapredição convencional, o pixel reconstruído de um já bloco de codificação adjacente codificado é referido.[0212] When ISP is applied, the sub-blocks are encoded sequentially according to the partition type, such as, horizontally or vertically, from left to right, or top to bottom, and the encoding for the next sub-block is block can be performed after performing a restoration process through inverse transform and intraprediction for a sub-block. To the leftmost or topmost sub-block, as in a conventional intraprediction method, the reconstructed pixel of the coding block that has already been encoded is referred. Furthermore, if the previous sub-block is not adjacent to each side of an internal sub-block that follows it, to derive reference pixels adjacent to a corresponding side, as in the conventional intraprediction method, the reconstructed pixel of an already block coded adjacent encoding is referred to.
[0213] Em um modo de codificação de ISP, todos os sub-blocos podem ser codificados com o mesmo modo de intrapredição, e um sinalizador indicando se deve usar codificação de ISP e um sinalizador indicando uma direção (horizontal ou vertical) na qual a partição é executada podem ser sinalizados. Aqui, o número de sub-blocos pode ser ajustado para 2 ou 4 dependendo do formato do bloco. Quando o tamanho (largura x altura) de um sub-bloco é menor que 16, a partição nos sub-blocos pode não ser permitida, ou uma restrição pode ser colocada para não aplicar a própria codificação do ISP.[0213] In an ISP encoding mode, all sub-blocks may be encoded with the same intraprediction mode, and a flag indicating whether to use ISP encoding and a flag indicating a direction (horizontal or vertical) in which the partition runs can be flagged. Here, the number of sub-blocks can be adjusted to 2 or 4 depending on the block format. When the size (width x height) of a sub-block is less than 16, partitioning into the sub-blocks may not be allowed, or a restriction may be placed to not apply the ISP's own encoding.
[0214] Enquanto isso, no caso do modo de predição de ISP, uma unidade de codificação é particionada em dois ou quatro blocos de partição, isto é, sub-blocos, e predito, e o mesmo modo de intrapredição é aplicado aos dois ou quatro blocos assim blocos de partição particionados.[0214] Meanwhile, in the case of ISP prediction mode, a coding unit is partitioned into two or four partition blocks, i.e., sub-blocks, and predicted, and the same intra-prediction mode is applied to the two or four blocks so partitioned partition blocks.
[0215] Como descrito acima, tanto uma direção horizontal (se uma unidade de codificação M x N com um comprimento horizontal e um comprimento vertical de M e N, respectivamente, é dividida na direção horizontal, ela é dividida em blocos M x (N/2) quando dividido em dois, e em blocos M x (N/4) quando dividido em quatro) e uma direção vertical (se a unidade de codificação M x N for dividida na direção vertical, ela será dividida em blocos (M/2)xN quando dividida em dois, e divididos em (M/4)xN blocos quando divididos em quatro) são possíveis como direção de partição. Quando particionados na direção horizontal, os blocos de partição são codificados em uma ordem de cima para baixo e, quando particionados na direção vertical, os blocos de partição são codificados em uma ordem da esquerda para a direita. O bloco de partição atualmente codificado pode ser previsto por referência aos valores de pixel reconstruídos do bloco de partição superior (esquerdo) no caso da partição de direção horizontal (vertical).[0215] As described above, both a horizontal direction (if an M x N coding unit with a horizontal length and a vertical length of M and N, respectively, is divided in the horizontal direction, it is divided into M x blocks (N /2) when divided into two, and into M x (N/4) blocks when divided into four) and a vertical direction (if the M x N coding unit is divided in the vertical direction, it will be divided into blocks (M/ 2)xN when divided into two, and divided into (M/4)xN blocks when divided into four) are possible as partition direction. When partitioned in the horizontal direction, the partition blocks are encoded in a top-to-bottom order, and when partitioned in the vertical direction, the partition blocks are encoded in a left-to-right order. The currently encoded partition block can be predicted by reference to the reconstructed pixel values of the top (left) partition block in the case of horizontal (vertical) direction partition.
[0216] A transformada pode ser aplicada ao sinal residual gerado pelo método de predição de ISP em unidades de blocos de partição. A tecnologia de MTS (Seleção de Transformada Múltipla) baseada na combinação DST-7/DCT-8, bem como a DCT- 2 existente, pode ser aplicada à transformada primária (transformada de núcleo ou transformada primária) com base na direção direta e uma LFNST (Transformada Não Separável de Baixa Frequência) pode ser aplicada a um coeficiente de transformada gerado de acordo com a transformada primária para gerar um coeficiente de transformada modificado final.[0216] The transform can be applied to the residual signal generated by the ISP prediction method in partition block units. The MTS (Multiple Transform Selection) technology based on the DST-7/DCT-8 combination, as well as the existing DCT-2, can be applied to the primary transform (core transform or primary transform) based on the forward direction and a LFNST (Low Frequency Non-Separable Transform) can be applied to a transform coefficient generated according to the primary transform to generate a final modified transform coefficient.
[0217] Isto é, LFNST pode também ser aplicada a blocos de partição divididos pela aplicação do modo de predição de ISP, e o mesmo modo de intrapredição é aplicado aos blocos de partição divididos conforme descrito acima. Por conseguinte, ao selecionar o conjunto de LFNST derivado com base no modo de intrapredição, o conjunto de LFNST derivado pode ser aplicado a todos os blocos de partição. Ou seja, o mesmo modo de intrapredição é aplicado a todos os blocos de partição e, portanto, o mesmo conjunto de LFNST pode ser aplicado a todos os blocos de partição.[0217] That is, LFNST can also be applied to partition blocks divided by applying the ISP prediction mode, and the same intraprediction mode is applied to partition blocks divided as described above. Therefore, by selecting the derived LFNST set based on the intraprediction mode, the derived LFNST set can be applied to all partition blocks. That is, the same intraprediction mode is applied to all partition blocks, and therefore the same set of LFNST can be applied to all partition blocks.
[0218] Enquanto isso, de acordo com um exemplo, a LFNST pode ser aplicada apenas para transformar blocos com comprimento horizontal e vertical de 4 ou mais. Portanto, quando o comprimento horizontal ou vertical do bloco de partição particionado de acordo com o método de predição de ISP for menor que 4, a LFNST não será aplicada e o índice de LFNST não será sinalizado. Além disso, quando a LFNST é aplicada a cada bloco de partição, o bloco de partição correspondente pode ser considerado como um bloco de transformada. Obviamente, quando o método de predição de ISP não é aplicado, a LFNST pode ser aplicada ao bloco de codificação.[0218] Meanwhile, according to an example, LFNST can only be applied to transform blocks with horizontal and vertical lengths of 4 or more. Therefore, when the horizontal or vertical length of the partition block partitioned according to the ISP prediction method is less than 4, LFNST will not be applied and the LFNST index will not be flagged. Furthermore, when LFNST is applied to each partition block, the corresponding partition block can be considered as a transform block. Obviously, when the ISP prediction method is not applied, LFNST can be applied to the coding block.
[0219] A aplicação da LFNST a cada bloco de partição é descrita em detalhes a seguir.[0219] The application of LFNST to each partition block is described in detail below.
[0220] De acordo com um exemplo, depois de aplicar a LFNST direta a um bloco de partição individual, e depois de deixar apenas até 16 coeficientes (8 ou 16) na região 4 x 4 superior esquerda de acordo com a ordem de varredura do coeficiente de transformada, zero-out de preencher todas as posições e regiões restantes com um valor de 0 pode ser aplicado.[0220] According to an example, after applying direct LFNST to an individual partition block, and after leaving only up to 16 coefficients (8 or 16) in the upper left 4 x 4 region according to the scan order of the transform coefficient, zero-out filling all remaining positions and regions with a value of 0 can be applied.
[0221] Alternativamente, de acordo com um exemplo, quando o comprimento de um lado do bloco de partição é 4, a LFNST é aplicada apenas à região 4 x 4 superior esquerda, e quando o comprimento de todos os lados do bloco de partição, isto é, a largura e a altura, são 8 ou mais, a LFNST pode ser aplicada aos 48 coeficientes restantes, exceto para uma região 4 x 4 inferior direita em uma região 8 x 8 superior esquerda.[0221] Alternatively, according to an example, when the length of one side of the partition block is 4, LFNST is applied only to the upper left 4 x 4 region, and when the length of all sides of the partition block, that is, the width and height are 8 or more, LFNST can be applied to the remaining 48 coefficients, except for a 4 x 4 lower-right region in an 8 x 8 upper-left region.
[0222] Alternativamente, de acordo com um exemplo, a fim de ajustar a complexidade computacional do pior caso para 8 multiplicações por amostra, quando cada bloco de partição é 4 x 4 ou 8 x 8, apenas 8 coeficientes de transformada podem ser emitidos após a aplicação da LFNST direta. Ou seja, se o bloco de partição for 4 x 4, uma matriz 8 x 16 pode ser aplicada como matriz de transformada, e se o bloco de partição for 8 x 8, uma matriz 8 x 48 pode ser aplicada como matriz de transformada.[0222] Alternatively, according to an example, in order to adjust the worst-case computational complexity for 8 multiplications per sample, when each partition block is 4 x 4 or 8 x 8, only 8 transform coefficients can be output after the application of direct LFNST. That is, if the partition block is 4 x 4, an 8 x 16 matrix can be applied as the transform matrix, and if the partition block is 8 x 8, an 8 x 48 matrix can be applied as the transform matrix.
[0223] Enquanto isso, no padrão VVC atual, a sinalização do índice de LFNST é realizada em unidades de unidades de codificação. Consequentemente, quando o modo de predição de ISP é usado e a LFNST é aplicada a todos os blocos de partição, então o mesmo valor de índice de LFNST pode ser aplicado aos blocos de partição correspondentes. Isto é, quando o valor do índice de LFNST é transmitido uma vez ao nível da unidade de codificação, o índice de LFNST correspondente pode ser aplicado a todos os blocos de partição na unidade de codificação. Conforme descrito acima, o valor do índice de LFNST pode ter valores de 0, 1 e 2, 0 indica um caso em que a LFNST não é aplicada e 1 e 2 indicam duas matrizes de transformada presentes em um conjunto de LFNST quando a LFNST é aplicada.[0223] Meanwhile, in the current VVC standard, LFNST index signaling is performed in units of coding units. Consequently, when ISP prediction mode is used and LFNST is applied to all partition blocks, then the same LFNST index value can be applied to the corresponding partition blocks. That is, when the LFNST index value is transmitted once at the coding unit level, the corresponding LFNST index can be applied to all partition blocks in the coding unit. As described above, the LFNST index value can have values of 0, 1, and 2, 0 indicates a case where LFNST is not applied, and 1 and 2 indicate two transform matrices present in an LFNST set when LFNST is applied. applied.
[0224] Conforme descrito acima, o conjunto de LFNST é determinado pelo modo de intrapredição, e uma vez que todos os blocos de partição na unidade de codificação são previstos no mesmo modo de intrapredição no caso do modo de predição de ISP, os blocos de partição podem se referir a o mesmo conjunto de LFNST.[0224] As described above, the LFNST set is determined by the intra-prediction mode, and since all partition blocks in the coding unit are predicted in the same intra-prediction mode in the case of the ISP prediction mode, the partition blocks partition may refer to the same set of LFNST.
[0225] Como outro exemplo, a sinalização do índice de LFNST ainda é realizada em unidades de unidades de codificação, mas no caso do modo de predição de ISP, sem determinar se deve ou não aplicar a LFNST uniformemente a todos os blocos de partição, se deve aplicar o valor do índice de LFNST sinalizado no nível da unidade de codificação para cada bloco de partição ou para não aplicar LFNST pode ser determinada através de uma condição separada. Aqui, a condição separada pode ser sinalizada na forma de um sinalizador para cada bloco de partição através do fluxo de bits, e quando o valor do sinalizador é 1, o valor do índice de LFNST sinalizado no nível da unidade de codificação pode ser aplicado e quando o valor do sinalizador é 0, a LFNST não pode ser aplicada.[0225] As another example, LFNST index signaling is still performed in units of coding units, but in the case of ISP prediction mode, without determining whether or not to apply LFNST uniformly to all partition blocks, Whether to apply the signaled LFNST index value at the coding unit level for each partition block or not to apply LFNST can be determined through a separate condition. Here, the separate condition can be signaled in the form of a flag for each partition block through the bit stream, and when the value of the flag is 1, the LFNST index value signaled at the coding unit level can be applied and when the flag value is 0, LFNST cannot be applied.
[0226] Em seguida, será descrito um método para manter a complexidade computacional para o pior caso quando LFNST é aplicada ao modo de ISP.[0226] Next, a method for maintaining computational complexity for the worst case when LFNST is applied to ISP mode will be described.
[0227] No caso do modo de ISP, para manter o número de multiplicações por amostra (ou por coeficiente, ou por posição) em um determinado valor ou menos quando LFNST é aplicada, a aplicação de LFNST pode ser restrita. Dependendo do tamanho do bloco de partição, o número de multiplicações por amostra (ou por coeficiente ou por posição) pode ser mantido em 8 ou menos aplicando LFNST como segue.[0227] In the case of ISP mode, to keep the number of multiplications per sample (or per coefficient, or per position) at a certain value or less when LFNST is applied, the application of LFNST can be restricted. Depending on the size of the partition block, the number of multiplications per sample (either per coefficient or per position) can be kept to 8 or less by applying LFNST as follows.
[0228] 1. Quando o comprimento horizontal e o comprimento vertical do bloco de partição são iguais ou superiores a 4, pode ser aplicado o mesmo método que o método de ajuste de complexidade de cálculo para o pior caso para LFNST no padrão VVC atual.[0228] 1. When the horizontal length and vertical length of the partition block are equal to or greater than 4, the same method as the worst-case calculation complexity adjustment method for LFNST in the current VVC standard can be applied.
[0229] Ou seja, quando o bloco de partição é um bloco 4 x 4, em vez de uma matriz 16 x 16, no sentido direto, uma matriz 8 x 16 obtida por amostragem das 8 primeiras linhas de uma matriz 16 x 16 pode ser aplicada, e no sentido inverso, uma matriz 16 x 8 obtida por amostragem das 8 colunas esquerdas de uma matriz 16 x 16 pode ser aplicada. Além disso, quando o bloco de partição é um bloco 8 x 8, na direção para frente, em vez de uma matriz 16 x 48, pode ser aplicada uma matriz 8 x 48 obtida por amostragem das 8 primeiras linhas de uma matriz 16 x 48 e na direção inversa, em vez de uma matriz 48 x 16 matriz, uma matriz 48 x 8 obtida por amostragem das 8 colunas esquerdas de uma matriz 48 x 16 pode ser aplicada.[0229] That is, when the partition block is a 4 x 4 block, instead of a 16 x 16 matrix, in the forward sense, an 8 x 16 matrix obtained by sampling the first 8 rows of a 16 x 16 matrix can be applied, and in the opposite direction, a 16 x 8 matrix obtained by sampling the 8 left columns of a 16 x 16 matrix can be applied. Furthermore, when the partition block is an 8 x 8 block, in the forward direction, instead of a 16 x 48 matrix, an 8 x 48 matrix obtained by sampling the first 8 rows of a 16 x 48 matrix can be applied and in the reverse direction, instead of a 48 x 16 matrix, a 48 x 8 matrix obtained by sampling the left 8 columns of a 48 x 16 matrix can be applied.
[0230] No caso de um bloco 4 x N ou N x 4 (N > 4), quando a transformada direta é realizada, 16 coeficientes gerados após a aplicação de uma matriz 16x16 apenas no bloco 4 x 4 superior esquerdo são dispostos na região 4 x 4 superior esquerda, e as outras regiões podem ser preenchidas com valores 0. Além disso, ao realizar a transformada inversa, 16 coeficientes localizados no bloco 4 x 4 superior esquerdo podem ser dispostos na ordem de varredura para configurar um vetor de entrada e, em seguida, 16 dados de saída podem ser gerados multiplicando a matriz 16 x 16. Os dados de saída gerados podem ser organizados na região 4 x 4 superior esquerda e as regiões restantes, exceto a região 4 x 4 superior esquerda, podem ser preenchidas com zeros.[0230] In the case of a 4 x N or N x 4 block (N > 4), when the direct transform is performed, 16 coefficients generated after applying a 16x16 matrix only in the upper left 4 x 4 block are arranged in the region 4 x 4 upper left, and the other regions can be filled with 0 values. Furthermore, when performing the inverse transform, 16 coefficients located in the upper left 4 x 4 block can be arranged in scan order to configure an input vector and , then 16 output data can be generated by multiplying the 16 x 16 matrix. The generated output data can be arranged in the upper left 4 x 4 region, and the remaining regions except the upper left 4 x 4 region can be filled with zeros.
[0231] No caso de um bloco 8 x N ou N x 8 (N > 8), quando a transformada direta é realizada, 16 coeficientes gerados após a aplicação da matriz 16 x 48 apenas para a região ROI no bloco 8 x 8 superior esquerdo (regiões restantes excluindo o bloco 4 x 4 inferior direito do bloco 8 x 8 superior esquerdo) pode ser organizado na área 4 x 4 superior esquerda e as outras regiões podem ser preenchidas com valores 0. Além disso, ao realizar a transformada inversa, 16 coeficientes localizados no bloco 4 x 4 superior esquerdo podem ser dispostos na ordem de varredura para configurar um vetor de entrada e, em seguida, 48 dados de saída podem ser gerados multiplicando a matriz 48 x 16. Os dados de saída gerados podem ser preenchidos na região ROI e as outras regiões podem ser preenchidas com valores 0.[0231] In the case of an 8 x N or N x 8 (N > 8) block, when the direct transform is performed, 16 coefficients generated after applying the 16 x 48 matrix only to the ROI region in the upper 8 x 8 block left (remaining regions excluding the lower right 4 x 4 block from the upper left 8 x 8 block) can be arranged in the upper left 4 x 4 area and the other regions can be filled with 0 values. Furthermore, when performing the inverse transform, 16 coefficients located in the upper left 4 x 4 block can be arranged in scan order to configure an input vector, and then 48 output data can be generated by multiplying the 48 x 16 matrix. in the ROI region and the other regions can be filled with 0 values.
[0232] Como outro exemplo, a fim de manter o número de multiplicações por amostra (ou por coeficiente, ou por posição) em um determinado valor ou menos, o número de multiplicações por amostra (ou por coeficiente, ou por posição) com base no tamanho da unidade de codificação de ISP em vez do tamanho do bloco de partição ISP pode ser mantido em 8 ou menos. Se houver apenas um bloco entre os blocos de partição de ISP, que satisfaça a condição sob a qual a LFNST é aplicada, o cálculo de complexidade para o pior caso de LFNST pode ser aplicado com base no tamanho da unidade de codificação correspondente, em vez do tamanho do bloco de partição . Por exemplo, quando um bloco de codificação luma para uma determinada unidade de codificação é particionado em 4 blocos de partição de tamanho 4 x 4 e codificado pelo ISP, e quando não existe coeficiente de transformada diferente de zero para dois blocos de partição entre eles, os outros dois blocos de partição podem ser configurado respectivamente para gerar 16 coeficientes de transformada em vez de 8 (com base no codificador).[0232] As another example, in order to keep the number of multiplications per sample (or per coefficient, or per position) at a certain value or less, the number of multiplications per sample (or per coefficient, or per position) based on in ISP coding unit size instead of ISP partition block size can be kept at 8 or less. If there is only one block among the ISP partition blocks, which satisfies the condition under which LFNST is applied, the complexity calculation for the worst-case LFNST can be applied based on the size of the corresponding coding unit, rather than of the partition block size. For example, when a luma coding block for a given coding unit is partitioned into 4 partition blocks of size 4 x 4 and encoded by the ISP, and when there is no non-zero transform coefficient for two partition blocks between them, the other two partition blocks can be configured respectively to generate 16 transform coefficients instead of 8 (based on the encoder).
[0233] A seguir, será descrito um método de sinalização do índice de LFNST no caso do modo de ISP.[0233] Next, a method of signaling the LFNST index in the case of ISP mode will be described.
[0234] Conforme descrito acima, o índice de LFNST pode ter valores de 0, 1 e 2, onde 0 indica que a LFNST não é aplicada e 1 e 2 respectivamente indicam uma das duas matrizes de kernel de LFNST incluídas no conjunto de LFNST selecionado. A LFNST é aplicada com base na matriz do kernel de LFNST selecionada pelo índice de LFNST. Um método de transmissão do índice de LFNST no padrão VVC atual será descrito a seguir.[0234] As described above, the LFNST index can have values of 0, 1 and 2, where 0 indicates that LFNST is not applied and 1 and 2 respectively indicate one of the two LFNST kernel matrices included in the selected LFNST set . LFNST is applied based on the LFNST kernel matrix selected by the LFNST index. A method of transmitting the LFNST index in the current VVC standard will be described below.
[0235] 1. Um índice de LFNST pode ser transmitido uma vez para cada unidade de codificação (CU) e, no caso de uma árvore dupla, índices de LFNST individuais podem ser sinalizados para um bloco luma e um bloco croma, respectivamente.[0235] 1. An LFNST index may be transmitted once for each coding unit (CU), and in the case of a dual tree, individual LFNST indexes may be signaled to a luma block and a chroma block, respectively.
[0236] 2. Quando o índice de LFNST não é sinalizado, o valor do índice de LFNST é inferido como um valor padrão de 0. O caso em que o valor do índice de LFNST é inferido como 0 é o seguinte.[0236] 2. When the LFNST index is unsigned, the LFNST index value is inferred as a default value of 0. The case in which the LFNST index value is inferred as 0 is as follows.
[0237] A. No caso de um modo em que nenhuma transformada é aplicada (por exemplo, salto de transformada, BDPCM, codificação sem perdas, etc.)[0237] A. In the case of a mode in which no transform is applied (e.g. transform jumping, BDPCM, lossless coding, etc.)
[0238] B. Quando a transformada primária não for DCT-2 (DST7 ou DCT8), ou seja, quando a transformada na direção horizontal ou a transformada na direção vertical não for DCT-2.[0238] B. When the primary transform is not DCT-2 (DST7 or DCT8), that is, when the transform in the horizontal direction or the transform in the vertical direction is not DCT-2.
[0239] C. Quando o comprimento horizontal ou o comprimento vertical para o bloco luma da unidade de codificação excede o tamanho da transformada de luma máxima transformável, por exemplo, quando o tamanho da transformada de luma máxima transformável é 64, e quando o tamanho para o bloco luma do bloco de codificação é igual a 128 x 16, a LFNST não pode ser aplicada.[0239] C. When the horizontal length or the vertical length for the luma block of the coding unit exceeds the size of the maximum transformable luma transform, for example, when the size of the maximum transformable luma transform is 64, and when the size for the luma block of the encoding block is equal to 128 x 16, LFNST cannot be applied.
[0240] No caso da árvore dupla, determina-se se o tamanho da transformada de luma máxima é ou não excedido para cada unidade de codificação para o componente de luma e a unidade de codificação para o componente de croma. Ou seja, verifica-se para o bloco luma se o tamanho da transformada máxima transformável luma é excedido, e verifica-se para o bloco croma se o comprimento horizontal/vertical do bloco luma correspondente para o formato de cor e o tamanho da transformada luma transformável máxima excede o tamanho são excedidos. Por exemplo, quando o formato de cor é 4:2:0, o comprimento horizontal/vertical do bloco luma correspondente é o dobro do bloco croma correspondente e o tamanho de transformada do bloco luma correspondente é o dobro do bloco croma correspondente. Como outro exemplo, quando o formato de cor é 4:4:4, o comprimento horizontal/vertical e o tamanho de transformada e do bloco luma correspondente são os mesmos do bloco croma correspondente.[0240] In the case of the dual tree, it is determined whether or not the size of the maximum luma transform is exceeded for each coding unit for the luma component and the coding unit for the chroma component. That is, it checks for the luma block whether the size of the maximum transformable luma transform is exceeded, and it checks for the chroma block whether the horizontal/vertical length of the corresponding luma block for the color format and the size of the luma transform maximum transformable exceeds the size are exceeded. For example, when the color format is 4:2:0, the horizontal/vertical length of the corresponding luma block is twice that of the corresponding chroma block, and the transform size of the corresponding luma block is twice that of the corresponding chroma block. As another example, when the color format is 4:4:4, the horizontal/vertical length and transform size of the corresponding luma block are the same as the corresponding chroma block.
[0241] Uma transformada de 64 comprimentos ou uma transformada de 32 comprimentos pode significar uma transformada aplicada à largura ou altura com um comprimento de 64 ou 32, respectivamente, e “tamanho da transformada” pode significar 64 ou 32 como o comprimento correspondente.[0241] A 64-length transform or a 32-length transform may mean a transform applied to the width or height with a length of 64 or 32, respectively, and “transform size” may mean 64 or 32 as the corresponding length.
[0242] No caso de uma única árvore, após verificar se um comprimento horizontal ou um comprimento vertical de um bloco luma excede o tamanho máximo do bloco de transformada de luma transformável, se exceder, a sinalização do índice de LFNST pode ser omitida.[0242] In the case of a single tree, after checking whether a horizontal length or a vertical length of a luma block exceeds the maximum size of the transformable luma block, if it does, the LFNST index flag may be omitted.
[0243] D. O índice de LFNST pode ser transmitido apenas quando o comprimento horizontal e o comprimento vertical da unidade de codificação são iguais ou superiores a 4.[0243] D. The LFNST index can be transmitted only when the horizontal length and vertical length of the coding unit are equal to or greater than 4.
[0244] No caso de uma árvore dupla, o índice de LFNST pode ser sinalizado apenas quando os comprimentos horizontal e vertical de um componente correspondente (isto é, um componente de luma ou croma) são iguais ou superiores a 4.[0244] In the case of a double tree, the LFNST index can be signaled only when the horizontal and vertical lengths of a corresponding component (i.e., a luma or chroma component) are equal to or greater than 4.
[0245] No caso de uma única árvore, o índice de LFNST pode ser sinalizado quando os comprimentos horizontal e vertical para o componente de luma são iguais ou superiores a 4.[0245] In the case of a single tree, the LFNST index may be signaled when the horizontal and vertical lengths for the luma component are equal to or greater than 4.
[0246] E. Se a posição do último coeficiente diferente de zero não for uma posição DC (posição superior esquerda do bloco), e se a posição do último coeficiente diferente de zero não for uma posição DC, no caso de um bloco luma de um tipo de árvore dupla, o índice de LFNST é transmitido. No caso de um bloco croma do tipo árvore dupla, se qualquer uma das posições do último coeficiente diferente de zero para Cb e a posição do último coeficiente diferente de zero para Cr não for uma posição DC, o índice de LNFST correspondente é transmitido.[0246] E. If the position of the last non-zero coefficient is not a DC position (upper left position of the block), and if the position of the last non-zero coefficient is not a DC position, in the case of a luma block of a double tree type, the LFNST index is transmitted. In the case of a double tree chroma block, if any of the positions of the last non-zero coefficient for Cb and the position of the last non-zero coefficient for Cr is not a DC position, the corresponding LNFST index is transmitted.
[0247] No caso do tipo de árvore simples, se a posição do último coeficiente diferente de zero de qualquer um dos componentes luma, componente de Cb e componente Cr não for a posição DC, o índice de LFNST é transmitido.[0247] In the case of the simple tree type, if the position of the last non-zero coefficient of any of the luma components, Cb component and Cr component is not the DC position, the LFNST index is transmitted.
[0248] Aqui, se um valor de sinalizador de bloco codificado (CBF) indicando se existe ou não um coeficiente de transformada para um bloco de transformada é 0, a posição do último coeficiente diferente de zero para o bloco de transformada correspondente não é verificada para determinar se o índice de LFNST é ou não sinalizado. Ou seja, quando o valor de CBF correspondente for 0, uma vez que nenhuma transformada é aplicada ao bloco correspondente, a posição do último coeficiente diferente de zero pode não ser considerada na verificação da condição de sinalização do índice de LFNST.[0248] Here, if a coded block flag (CBF) value indicating whether or not there is a transform coefficient for a transform block is 0, the position of the last non-zero coefficient for the corresponding transform block is not checked to determine whether or not the LFNST index is signaled. That is, when the corresponding CBF value is 0, since no transform is applied to the corresponding block, the position of the last non-zero coefficient may not be considered when checking the signaling condition of the LFNST index.
[0249] Por exemplo, 1) no caso de um tipo de árvore dupla e um componente de luma, se o valor de CBF correspondente for 0, o índice de LFNST não é sinalizado, 2) no caso de um tipo de árvore dupla e componente de croma, se o valor de CBF para Cb for 0 e o valor de CBF para Cr for 1, apenas a posição do último coeficiente diferente de zero para Cr é verificada e o índice de LFNST correspondente é transmitido, 3) no caso de um único tipo de árvore, a posição do último coeficiente diferente de zero é verificada apenas para componentes com valor de CBF de 1 para cada um de luma, Cb e Cr.[0249] For example, 1) in the case of a double-tree type and a luma component, if the corresponding CBF value is 0, the LFNST index is not signaled, 2) in the case of a double-tree type and chroma component, if the CBF value for Cb is 0 and the CBF value for Cr is 1, only the position of the last non-zero coefficient for Cr is checked and the corresponding LFNST index is transmitted, 3) in the case of a single tree type, the position of the last nonzero coefficient is checked only for components with a CBF value of 1 each of luma, Cb, and Cr.
[0250] F. Quando for confirmado que o coeficiente de transformada existe em uma posição diferente de uma posição onde o coeficiente de transformada de LFNST pode existir, a sinalização do índice de LFNST pode ser omitida. No caso de um bloco de transformada 4 x 4 e um bloco de transformada 8 x 8, os coeficientes de transformada de LFNST podem existir em oito posições da posição DC de acordo com a ordem de varredura do coeficiente de transformada no padrão VVC, e as posições restantes são preenchidas com zeros. Além disso, quando o bloco de transformada 4 x 4 e o bloco de transformada 8 x 8 não são, os coeficientes de transformada de LFNST podem existir em dezesseis posições da posição DC de acordo com a ordem de varredura do coeficiente de transformada no padrão VVC, e as posições restantes são preenchidas com zeros.[0250] F. When it is confirmed that the transform coefficient exists at a position other than a position where the LFNST transform coefficient may exist, the LFNST index flag may be omitted. In the case of a 4 x 4 transform block and an 8 x 8 transform block, the LFNST transform coefficients can exist in eight positions of the DC position according to the sweep order of the transform coefficient in the VVC pattern, and the remaining positions are filled with zeros. Furthermore, when the 4 x 4 transform block and the 8 x 8 transform block are not, the LFNST transform coefficients can exist at sixteen positions of the DC position according to the scan order of the transform coefficient in the VVC pattern. , and the remaining positions are filled with zeros.
[0251] Assim, se os coeficientes de transformada diferente de zero existirem na região que deve ser preenchida com o valor zero após o progresso da codificação residual, a sinalização do índice de LFNST pode ser omitida.[0251] Thus, if non-zero transform coefficients exist in the region that is to be filled with the zero value after residual coding progresses, the LFNST index flag may be omitted.
[0252] Enquanto isso, o modo de ISP também pode ser aplicado apenas ao bloco luma, ou pode ser aplicado tanto ao bloco luma quanto ao bloco croma. Conforme descrito acima, quando a predição de ISP é aplicada, a unidade de codificação correspondente pode ser dividida em dois ou quatro blocos de partição e predição, e uma transformada pode ser aplicada a cada um dos blocos de partição. Portanto, também ao determinar uma condição para sinalizar o índice de LFNST em unidades de unidades de codificação, é necessário levar em consideração o fato de que a LFNST pode ser aplicada aos respectivos blocos de partição. Além disso, quando o modo de predição de ISP é aplicado apenas a um componente específico (por exemplo, um bloco luma), o índice de LFNST deve ser sinalizado considerando o fato de que apenas o componente é dividido em blocos de partição. Os métodos de sinalização de índice de LFNST disponíveis no modo de ISP são resumidos a seguir.[0252] Meanwhile, the ISP mode can also be applied to the luma block only, or it can be applied to both the luma block and the chroma block. As described above, when ISP prediction is applied, the corresponding coding unit can be divided into two or four partition and prediction blocks, and a transform can be applied to each of the partition blocks. Therefore, also when determining a condition for signaling the LFNST index in coding unit units, it is necessary to take into account the fact that LFNST can be applied to the respective partition blocks. Furthermore, when the ISP prediction mode is applied only to a specific component (for example, a luma block), the LFNST index must be flagged considering the fact that only the component is divided into partition blocks. The LFNST index signaling methods available in ISP mode are summarized below.
[0253] 1. Um índice de LFNST pode ser transmitido uma vez para cada unidade de codificação (CU) e, no caso de uma árvore dupla, índices de LFNST individuais podem ser sinalizados para um bloco luma e um bloco croma, respectivamente.[0253] 1. An LFNST index may be transmitted once for each coding unit (CU), and in the case of a dual tree, individual LFNST indexes may be signaled to a luma block and a chroma block, respectively.
[0254] 2. Quando o índice de LFNST não é sinalizado, o valor do índice de LFNST é inferido como um valor padrão de 0. O caso em que o valor do índice de LFNST é inferido como 0 é o seguinte.[0254] 2. When the LFNST index is unsigned, the LFNST index value is inferred as a default value of 0. The case in which the LFNST index value is inferred as 0 is as follows.
[0255] A. No caso de um modo em que nenhuma transformada é aplicada (por exemplo, salto de transformada, BDPCM, codificação sem perdas, etc.)[0255] A. In the case of a mode in which no transform is applied (e.g. transform jumping, BDPCM, lossless coding, etc.)
[0256] B. Quando o comprimento horizontal ou o comprimento vertical para o bloco luma da unidade de codificação excede o tamanho da transformada de luma máxima transformável, por exemplo, quando o tamanho da transformada de luma máxima transformável é 64, e quando o tamanho para o bloco luma do bloco de codificação é igual a 128 x 16, a LFNST não pode ser aplicada.[0256] B. When the horizontal length or the vertical length for the luma block of the coding unit exceeds the size of the maximum transformable luma transform, for example, when the size of the maximum transformable luma transform is 64, and when the size for the luma block of the encoding block is equal to 128 x 16, LFNST cannot be applied.
[0257] Sinalizar ou não o índice de LFNST pode ser determinado com base no tamanho do bloco de partição em vez da unidade de codificação. Ou seja, se o comprimento horizontal ou vertical do bloco de partição para o bloco luma correspondente exceder o tamanho da transformada de luma máxima transformável, a sinalização do índice de LFNST pode ser omitida e o valor do índice de LFNST pode ser inferido como 0.[0257] Whether or not to flag the LFNST index can be determined based on the size of the partition block rather than the coding unit. That is, if the horizontal or vertical length of the partition block for the corresponding luma block exceeds the size of the maximum transformable luma transform, the LFNST index flag can be omitted and the LFNST index value can be inferred to be 0.
[0258] No caso da árvore dupla, é determinado se o tamanho da transformada luma máxima é ou não excedido para cada unidade de codificação ou bloco de partição para o componente de luma e a unidade de codificação ou bloco de partição para o componente croma. Ou seja, se os comprimentos horizontal e vertical da unidade de codificação ou bloco de partição para luma são comparados com o tamanho máximo da transformada luma, respectivamente, e pelo menos um deles é maior que o tamanho máximo da transformada luma, a LFNST não é aplicada, e no caso de uma unidade de codificação ou bloco de partição para croma, o comprimento horizontal/vertical do bloco luma correspondente para o formato de cor e o tamanho da transformada de luma transformável máxima são comparados. Por exemplo, quando o formato de cor é 4:2:0, o comprimento horizontal/vertical do bloco luma correspondente é o dobro do bloco croma correspondente e o tamanho de transformada do bloco luma correspondente é o dobro do bloco croma correspondente. Como outro exemplo, quando o formato de cor é 4:4:4, o comprimento horizontal/vertical e o tamanho de transformada e do bloco luma correspondente são os mesmos do bloco croma correspondente.[0258] In the case of the dual tree, it is determined whether or not the size of the maximum luma transform is exceeded for each coding unit or partition block for the luma component and the coding unit or partition block for the chroma component. That is, if the horizontal and vertical lengths of the coding unit or partition block for luma are compared with the maximum size of the luma transform, respectively, and at least one of them is greater than the maximum size of the luma transform, the LFNST is not applied, and in the case of a coding unit or partition block for chroma, the horizontal/vertical length of the corresponding luma block for the color format and the size of the maximum transformable luma transform are compared. For example, when the color format is 4:2:0, the horizontal/vertical length of the corresponding luma block is twice that of the corresponding chroma block, and the transform size of the corresponding luma block is twice that of the corresponding chroma block. As another example, when the color format is 4:4:4, the horizontal/vertical length and size of the transform and the corresponding luma block are the same as the corresponding chroma block.
[0259] No caso de uma única árvore, após verificar se um comprimento horizontal ou um comprimento vertical para um bloco luma (unidade de codificação ou bloco de partição) excede o tamanho máximo do bloco de transformada de luma transformável, se exceder, a sinalização do índice de LFNST pode ser omitida.[0259] In the case of a single tree, after checking whether a horizontal length or a vertical length for a luma block (coding unit or partition block) exceeds the maximum size of the transformable luma transform block, if it exceeds, the flag of the LFNST index can be omitted.
[0260] C. Se a LFNST incluída no padrão VVC atual for aplicado, o índice de LFNST poderá ser transmitido somente quando o comprimento horizontal e o comprimento vertical do bloco de partição forem iguais ou maiores que 4.[0260] C. If the LFNST included in the current VVC standard is applied, the LFNST index can be transmitted only when the horizontal length and vertical length of the partition block are equal to or greater than 4.
[0261] Se a LFNST para o bloco 2 x M (1 x M) ou M x 2 (M x 1) for aplicado além da LFNST incluído no padrão VVC atual, o índice de LFNST poderá ser transmitido somente quando o tamanho do bloco de partição for igual ou maior que um bloco 2 x M (1 x M) ou M x 2 (M x 1). Aqui, a expressão “o bloco P x Q é igual ou maior que o bloco R x S” significa que P > R e Q > S.[0261] If the LFNST for the 2 x M (1 x M) or M x 2 (M x 1) block is applied in addition to the LFNST included in the current VVC standard, the LFNST index can be transmitted only when the block size partition is equal to or greater than a 2 x M (1 x M) or M x 2 (M x 1) block. Here, the expression “the P x Q block is equal to or greater than the R x S block” means that P > R and Q > S.
[0262] Em resumo, o índice de LFNST pode ser transmitido somente quando o bloco de partição é igual ou maior que o tamanho mínimo ao qual a LFNST é aplicável. No caso de uma árvore dupla, o índice de LFNST pode ser sinalizado somente quando o bloco de partição para o componente de luma ou croma for igual ou maior que o tamanho mínimo ao qual a LFNST é aplicável. No caso de uma única árvore, o índice de LFNST pode ser sinalizado somente quando o bloco de partição para o componente de luma for igual ou maior que o tamanho mínimo ao qual a LFNST é aplicável.[0262] In summary, the LFNST index can be transmitted only when the partition block is equal to or greater than the minimum size to which the LFNST is applicable. In the case of a dual tree, the LFNST index can be signaled only when the partition block for the luma or chroma component is equal to or greater than the minimum size to which the LFNST is applicable. In the case of a single tree, the LFNST index can be signaled only when the partition block for the luma component is equal to or greater than the minimum size to which the LFNST is applicable.
[0263] Neste documento, a expressão “o bloco M x N é maior ou igual ao bloco K x L” significa que M é maior ou igual a K e N é maior ou igual a L. A expressão “o bloco M x N é maior que o bloco K x L” significa que M é maior ou igual a K e N é maior ou igual a L, e que M é maior que K ou N é maior que L. A expressão “o bloco M x N menor ou igual ao bloco K x L” significa que M é menor ou igual a K e N é menor ou igual a L, enquanto a expressão “o bloco M x N é menor que o bloco K x L” significa que M é menor ou igual a K e N é menor ou igual a L, e que M é menor que K ou N é menor que L.[0263] In this document, the expression “the M x N block is greater than or equal to the K x L block” means that M is greater than or equal to K and N is greater than or equal to L. The expression “the M x N block is greater than the block K x L” means that M is greater than or equal to K and N is greater than or equal to L, and that M is greater than K or N is greater than L. The expression “the block M x N smaller or equal to block K x L” means that M is less than or equal to K and N is less than or equal to L, while the expression “block M x N is less than block K x L” means that M is less than or equal to K and N is less than or equal to L, and that M is less than K or N is less than L.
[0264] D. Se a posição do último coeficiente diferente de zero não for uma posição DC (posição superior esquerda do bloco), e se a posição do último coeficiente diferente de zero não for uma posição DC em qualquer um dos todos os blocos de partição No caso de um bloco luma do tipo árvore dupla, o índice de LFNST é transmitido. No caso de um tipo de árvore dupla e um bloco croma, se pelo menos uma das posições do último coeficiente diferente de zero de todos os blocos de partição para Cb (se o modo de ISP não for aplicado ao componente de croma, o número de partição blocos é considerado um) e a posição do último coeficiente diferente de zero de todos os blocos de partição para Cr (se o modo de ISP não for aplicado ao componente croma, o número de blocos de partição é considerado um) não é uma Posição DC, o índice de LNFST correspondente pode ser transmitido.[0264] D. If the position of the last non-zero coefficient is not a DC position (upper left block position), and if the position of the last non-zero coefficient is not a DC position in any of all the blocks of partition In the case of a double-tree luma block, the LFNST index is transmitted. In the case of a dual tree type and a chroma block, if at least one of the positions of the last non-zero coefficient of all partition blocks for Cb (if ISP mode is not applied to the chroma component, the number of partition blocks is considered one) and the position of the last non-zero coefficient of all partition blocks for Cr (if ISP mode is not applied to the chroma component, the number of partition blocks is considered one) is not a Position DC, the corresponding LNFST index can be transmitted.
[0265] No caso do tipo de árvore simples, se a posição do último coeficiente diferente de zero de qualquer um de todos os blocos de partição para o componente de luma, o componente de Cb e o componente Cr não for a posição DC, o índice de LFNST correspondente pode ser transmitido.[0265] In the case of the simple tree type, if the position of the last non-zero coefficient of any of all partition blocks for the luma component, the Cb component and the Cr component is not the DC position, the corresponding LFNST index can be transmitted.
[0266] Aqui, se o valor do sinalizador de bloco codificado (CBF) indicando se existe um coeficiente de transformada para cada bloco de partição for 0, a posição do último coeficiente diferente de zero para o bloco de partição correspondente não é verificada para determinar se o índice de LFNST é ou não sinalizado. Ou seja, quando o valor de CBF correspondente é 0, uma vez que nenhuma transformada é aplicada ao bloco correspondente, a posição do último coeficiente diferente de zero para o bloco de partição correspondente não é considerada na verificação da condição de sinalização do índice de LFNST.[0266] Here, if the value of the coded block flag (CBF) indicating whether there is a transform coefficient for each partition block is 0, the position of the last non-zero coefficient for the corresponding partition block is not checked to determine whether or not the LFNST index is flagged. That is, when the corresponding CBF value is 0, since no transform is applied to the corresponding block, the position of the last non-zero coefficient for the corresponding partition block is not considered when checking the signaling condition of the LFNST index .
[0267] Por exemplo, 1) no caso de um tipo de árvore dupla e um componente de luma, se o valor de CBF correspondente para cada bloco de partição for 0, o bloco de partição é excluído ao determinar se deve ou não sinalizar o índice de LFNST, 2 ) no caso de um tipo de árvore dupla e um componente de croma, se o valor de CBF para Cb for 0 e o valor de CBF para Cr for 1 para cada bloco de partição, apenas a posição do último coeficiente diferente de zero para Cr é verificada para determinar se deve ou não sinalizar o índice de LFNST, 3) no caso do tipo de árvore simples, é possível determinar se deve ou não sinalizar o índice de LFNST verificando a posição do último coeficiente diferente de zero apenas para blocos com valor de CBF de 1 para todos os blocos de partição do componente de luma, do componente de Cb e do componente Cr.[0267] For example, 1) in the case of a dual-tree type and a luma component, if the corresponding CBF value for each partition block is 0, the partition block is excluded when determining whether or not to signal the LFNST index, 2 ) in the case of a dual tree type and a chroma component, if the CBF value for Cb is 0 and the CBF value for Cr is 1 for each partition block, only the position of the last coefficient non-zero for Cr is checked to determine whether or not to flag the LFNST index, 3) in the case of the simple tree type, it is possible to determine whether or not to flag the LFNST index by checking the position of the last non-zero coefficient only for blocks with a CBF value of 1 for all partition blocks of the luma component, the Cb component, and the Cr component.
[0268] No caso do modo de ISP, as informações de imagem também podem ser configuradas para que a posição do último coeficiente diferente de zero não seja verificada, e uma forma de realização da mesma é a seguinte.[0268] In the case of ISP mode, the image information can also be configured so that the position of the last non-zero coefficient is not checked, and one embodiment of the same is as follows.
[0269] i. No caso do modo de ISP, a sinalização do índice de LFNST pode ser permitida sem verificar a posição do último coeficiente diferente de zero tanto para o bloco luma quanto para o bloco croma. Ou seja, mesmo que a posição do último coeficiente diferente de zero para todos os blocos de partição seja a posição DC ou o valor de CBF correspondente seja 0, a sinalização do índice de LFNST pode ser permitida.[0269] i. In the case of ISP mode, LFNST index signaling can be allowed without checking the position of the last non-zero coefficient for both the luma block and the chroma block. That is, even if the position of the last non-zero coefficient for all partition blocks is the DC position or the corresponding CBF value is 0, LFNST index signaling can be allowed.
[0270] ii. No caso do modo de ISP, pode ser omitida a verificação da posição do último coeficiente diferente de zero apenas para o bloco luma, e no caso do bloco croma, a verificação da posição do último coeficiente diferente de zero pode ser realizado da maneira acima descrita. Por exemplo, no caso de um tipo de árvore dupla e um bloco luma, a sinalização do índice de LFNST é permitida sem verificar a posição do último coeficiente diferente de zero, e no caso de um tipo de árvore dupla e um bloco croma, seja ou não é sinalizado um índice de LFNST correspondente pode ser determinado verificando se existe ou não uma posição DC para a posição do último coeficiente diferente de zero da maneira descrita acima.[0270] ii. In the case of ISP mode, checking the position of the last non-zero coefficient can be omitted only for the luma block, and in the case of the chroma block, checking the position of the last non-zero coefficient can be performed in the manner described above . For example, in the case of a double-tree type and a luma block, LFNST index flagging is allowed without checking the position of the last non-zero coefficient, and in the case of a double-tree type and a chroma block, either or is not flagged a corresponding LFNST index can be determined by checking whether or not a DC position exists for the position of the last non-zero coefficient in the manner described above.
[0271] iii. No caso do modo de ISP e do tipo de árvore simples, o método i ou ii pode ser aplicado. Ou seja, no caso do modo de ISP e quando o número i é aplicado ao tipo de árvore simples, é possível omitir a verificação da posição do último coeficiente diferente de zero tanto para o bloco luma quanto para o bloco croma e permitir a sinalização de índice de LFNST. Alternativamente, aplicando a seção ii, para os blocos de partição para o componente de luma, a verificação da posição do último coeficiente diferente de zero é omitida, e para os blocos de partição para o componente croma (se ISP não for aplicado para o componente croma, o número de blocos de partição pode ser considerado como 1), a posição do último coeficiente diferente de zero é verificada da maneira descrita acima, determinando assim se deve ou não sinalizar o índice de LFNST.[0271] iii. In case of ISP mode and simple tree type, method i or ii can be applied. That is, in the case of ISP mode and when the number i is applied to the simple tree type, it is possible to omit checking the position of the last non-zero coefficient for both the luma block and the chroma block and allow signaling of LFNST index. Alternatively, applying section ii, for the partition blocks for the luma component, checking the position of the last non-zero coefficient is omitted, and for the partition blocks for the chroma component (if ISP is not applied for the component chroma, the number of partition blocks can be taken as 1), the position of the last non-zero coefficient is checked in the manner described above, thus determining whether or not to flag the LFNST index.
[0272] E. Quando for confirmado que o coeficiente de transformada existe em uma posição diferente de uma posição onde o coeficiente de transformada de LFNST pode existir mesmo para um bloco de partição entre todos os blocos de partição, a sinalização do índice de LFNST pode ser omitida.[0272] E. When it is confirmed that the transform coefficient exists at a position other than a position where the LFNST transform coefficient can exist even for a partition block among all partition blocks, signaling of the LFNST index can be omitted.
[0273] Por exemplo, no caso de um bloco de partição 4 x 4 e um bloco de partição 8 x 8, os coeficientes de transformada de LFNST podem existir em oito posições da posição DC de acordo com a ordem de varredura do coeficiente de transformada no padrão VVC, e as posições restantes são preenchidas com zeros. Além disso, se for igual ou maior que 4 x 4 e não for um bloco de partição 4 x 4 nem um bloco de partição 8 x 8, os coeficientes de transformada de LFNST podem existir em 16 posições da posição DC de acordo com a ordem de varredura do coeficiente de transformada no padrão VVC, e todos as posições restantes são preenchidas com zeros.[0273] For example, in the case of a 4 x 4 partition block and an 8 x 8 partition block, the LFNST transform coefficients may exist in eight positions of the DC position according to the scan order of the transform coefficient in the VVC pattern, and the remaining positions are filled with zeros. Furthermore, if it is equal to or greater than 4x4 and is neither a 4x4 partition block nor an 8x8 partition block, the LFNST transform coefficients can exist in 16 positions of the DC position according to the order of the transform coefficient in the VVC pattern, and all remaining positions are filled with zeros.
[0274] Assim, se os coeficientes de transformada diferente de zero existirem na região que deve ser preenchida com o valor zero após o progresso da codificação residual, a sinalização do índice de LFNST pode ser omitida.[0274] Thus, if non-zero transform coefficients exist in the region that is to be filled with the zero value after residual coding progresses, the LFNST index flag may be omitted.
[0275] Enquanto isso, no caso do modo de ISP, a condição de comprimento é visualizada independentemente para a direção horizontal e a direção vertical, e DST- 7 é aplicada em vez de DCT-2 sem sinalização para o índice de MTS. É determinado se o comprimento horizontal ou vertical é maior ou igual a 4 e menor ou igual a 16, e um kernel de transformada primária é determinado de acordo com o resultado da determinação. Assim, no caso do modo de ISP, quando a LFNST pode ser aplicada, é possível a seguinte configuração de combinação de transformada.[0275] Meanwhile, in the case of ISP mode, the length condition is displayed independently for the horizontal direction and the vertical direction, and DST-7 is applied instead of DCT-2 without signaling for the MTS index. It is determined whether the horizontal or vertical length is greater than or equal to 4 and less than or equal to 16, and a primary transform kernel is determined according to the determination result. Therefore, in the case of ISP mode, when LFNST can be applied, the following transform combination configuration is possible.
[0276] 1. Quando o índice de LFNST é 0 (incluindo o caso em que o índice de LFNST é inferido como 0), a condição de decisão de transformada primária no momento do ISP incluído no padrão VVC atual pode ser seguida. Em outras palavras, pode-se verificar se a condição de comprimento (ser igual ou maior que 4 ou igual ou menor que 16) é satisfeita independentemente para as direções horizontal e vertical, respectivamente, e se for satisfeita, DST- 7 pode ser aplicada em vez de DCT-2 para transformada primária, enquanto, se não for satisfeita, DCT-2 pode ser aplicada.[0276] 1. When the LFNST index is 0 (including the case where the LFNST index is inferred to be 0), the primary transform decision condition at the time of the ISP included in the current VVC standard can be followed. In other words, one can check whether the length condition (being equal to or greater than 4 or equal to or less than 16) is satisfied independently for the horizontal and vertical directions, respectively, and if it is satisfied, DST-7 can be applied instead of DCT-2 for primary transform, while if not satisfied, DCT-2 can be applied.
[0277] 2. Para um caso em que o índice de LFNST é maior que 0, as duas configurações a seguir podem ser possíveis como uma transformada primária.[0277] 2. For a case where the LFNST index is greater than 0, the following two configurations may be possible as a primary transform.
[0278] A. DCT-2 pode ser aplicada nas direções horizontal e vertical.[0278] A. DCT-2 can be applied in horizontal and vertical directions.
[0279] B. A condição de decisão de transformada primária no momento do ISP incluído no padrão VVC atual pode ser seguida. Em outras palavras, pode-se verificar se a condição de comprimento (sendo igual ou maior que 4 ou igual ou menor que 16) é satisfeita independentemente para as direções horizontal e vertical, respectivamente, e se for satisfeita, DST- 7 pode ser aplicada em vez de DCT-2, enquanto, se não for satisfeito, DCT-2 pode ser aplicada.[0279] B. The primary transform decision condition at the time of the ISP included in the current VVC standard can be followed. In other words, one can check whether the length condition (being equal to or greater than 4 or equal to or less than 16) is satisfied independently for the horizontal and vertical directions respectively, and if it is satisfied, DST-7 can be applied instead of DCT-2, while if not satisfied, DCT-2 can be applied.
[0280] No modo de ISP, as informações de imagem podem ser configuradas de forma que o índice de LFNST seja transmitido para cada bloco de partição em vez de para cada unidade de codificação. Neste caso, no método de sinalização de índice de LFNST descrito acima, pode-se considerar que apenas um bloco de partição existe em uma unidade na qual o índice de LFNST é transmitido e pode ser determinado se deve ou não sinalizar o índice de LFNST.[0280] In ISP mode, the image information can be configured so that the LFNST index is transmitted for each partition block instead of for each coding unit. In this case, in the LFNST index signaling method described above, it can be considered that only one partition block exists on a drive on which the LFNST index is transmitted, and it can be determined whether or not to signal the LFNST index.
[0281] Enquanto isso, a ordem de sinalização do índice de LFNST e do índice MTS será descrita abaixo.[0281] Meanwhile, the signaling order of the LFNST index and the MTS index will be described below.
[0282] De acordo com um exemplo, o índice de LFNST sinalizado na codificação residual pode ser codificado após a posição de codificação para a última posição do coeficiente diferente de zero, e o índice de MTS pode ser codificado imediatamente após o índice de LFNST. No caso desta configuração, o índice de LFNST pode ser sinalizado para cada unidade de transformada. Alternativamente, mesmo se não sinalizado na codificação residual, o índice de LFNST pode ser codificado após a codificação para a última posição significativa do coeficiente, e o índice de MTS pode ser codificado após o índice de LFNST.[0282] According to an example, the LFNST index signaled in the residual encoding may be encoded after the encoding position for the last non-zero coefficient position, and the MTS index may be encoded immediately after the LFNST index. In the case of this configuration, the LFNST index can be signaled for each transform unit. Alternatively, even if unsigned in residual coding, the LFNST index can be coded after coding to the last significant coefficient position, and the MTS index can be coded after the LFNST index.
[0283] A sintaxe da codificação residual de acordo com um exemplo é a seguinte. Tabela 3 [0283] The syntax of residual encoding according to an example is as follows. Table 3
[0284] Os significados das principais variáveis mostradas na Tabela 3 são os seguintes.[0284] The meanings of the main variables shown in Table 3 are as follows.
[0285] 1. cbWidth, cbHeight: a largura e a altura do bloco de codificação atual[0285] 1. cbWidth, cbHeight: the width and height of the current coding block
[0286] 2. log2TbWidth, log2TbHeight: o valor de log de base-2 para a largura e altura do bloco de transformada atual, pode ser reduzido, refletindo o zero-out, para uma região superior esquerda na qual um coeficiente diferente de zero pode existir.[0286] 2. log2TbWidth, log2TbHeight: The base-2 log value for the width and height of the current transform block may be reduced, reflecting zero-out, to an upper-left region in which a non-zero coefficient may exist.
[0287] 3. sps_lfnst_enabled_flag: um sinalizador indicando se a LFNST está habilitada ou não, se o valor do sinalizador for 0, indica que a LFNST não está habilitada, e se o valor do sinalizador for 1, indica que a LFNST está habilitada. É definido no conjunto de parâmetros de sequência (SPS).[0287] 3. sps_lfnst_enabled_flag: a flag indicating whether LFNST is enabled or not, if the flag value is 0, it indicates that LFNST is not enabled, and if the flag value is 1, it indicates that LFNST is enabled. It is defined in the Sequence Parameter Set (SPS).
[0288] 4. CuPredMode[chType][x0][y0]: um modo de predição correspondente à variável chType e à posição (x0, y0), chType pode ter valores de 0 e 1, em que 0 indica um componente de luma e 1 indica um componente de croma. A posição (x0, y0) indica uma posição na gravura, e MODE_INTRA (intrapredição) e MODE_INTER (interpredição) são possíveis como um valor de CuPredMode[chType][x0][y0].[0288] 4. CuPredMode[chType][x0][y0]: a prediction mode corresponding to the variable chType and position (x0, y0), chType can have values of 0 and 1, where 0 indicates a luma component and 1 indicates a chroma component. The position (x0, y0) indicates a position in the engraving, and MODE_INTRA (intraprediction) and MODE_INTER (interprediction) are possible as a value of CuPredMode[chType][x0][y0].
[0289] 5. IntraSubPartitionsSplit[x0][y0]: o conteúdo da posição (x0, y0) é o mesmo do n° 4. Indica qual partição ISP na posição (x0, y0) é aplicada, ISP_NO_SPLIT indica que a unidade de codificação correspondente à posição (x0, y0) não seja dividida em blocos de partição.[0289] 5. IntraSubPartitionsSplit[x0][y0]: the contents of position (x0, y0) are the same as No. 4. Indicates which ISP partition at position (x0, y0) is applied, ISP_NO_SPLIT indicates which unit of coding corresponding to position (x0, y0) is not divided into partition blocks.
[0290] 6. intra_mip_flag[x0][y0]: o conteúdo da posição (x0, y0) é o mesmo do n° 4 acima. O intra_mip_flag é um sinalizador que indica se um modo de predição de intrapredição baseado em matriz (MIP) é aplicado ou não. Se o valor do sinalizador for 0, indica que o MIP não está habilitado e, se o valor do sinalizador for 1, indica que o MIP está habilitado.[0290] 6. intra_mip_flag[x0][y0]: the content of position (x0, y0) is the same as No. 4 above. The intra_mip_flag is a flag that indicates whether a matrix-based intraprediction (MIP) prediction mode is applied or not. If the flag value is 0, it indicates that MIP is not enabled, and if the flag value is 1, it indicates that MIP is enabled.
[0291] 7. cIdx: o valor de 0 indica luma, e os valores de 1 e 2 indicam Cb e Cr que são respectivamente componentes de croma.[0291] 7. cIdx: the value of 0 indicates luma, and the values of 1 and 2 indicate Cb and Cr which are respectively chroma components.
[0292] 8. treeType: indica árvore única e árvore dupla, etc. (SINGLE_TREE: árvore única, DUAL_TREE_LUMA: árvore dupla para componente de luma, DUAL_TREE_CHROMA: árvore dupla para componente de croma)[0292] 8. treeType: indicates single tree and double tree, etc. (SINGLE_TREE: single tree, DUAL_TREE_LUMA: double tree for luma component, DUAL_TREE_CHROMA: double tree for chroma component)
[0293] 9. tu_cbf_cb[x0][y0]: o conteúdo da posição (x0, y0) é o mesmo do n° 4. Indica o sinalizador de bloco codificado (CBF) para o componente de Cb. Se seu valor for 0, significa que nenhum coeficiente diferente de zero está presente na unidade de transformada correspondente para o componente de Cb, e se seu valor for 1, indica que coeficientes diferentes de zero estão presentes na unidade de transformada correspondente para o componente de Cb.[0293] 9. tu_cbf_cb[x0][y0]: the content of position (x0, y0) is the same as no. 4. Indicates the coded block flag (CBF) for the Cb component. If its value is 0, it means that no non-zero coefficients are present in the corresponding transform unit for the Cb component, and if its value is 1, it indicates that non-zero coefficients are present in the corresponding transform unit for the Cb component. CB.
[0294] 10. lastSubBlock: Indica uma posição na ordem de varredura de um sub-bloco (Grupo de Coeficientes (CG)) no qual está localizado o último coeficiente diferente de zero. 0 indica um sub-bloco no qual está incluído o componente de DC e, no caso de ser maior que 0, não é um sub-bloco no qual está incluído o componente de DC.[0294] 10. lastSubBlock: Indicates a position in the scanning order of a sub-block (Coefficient Group (CG)) in which the last non-zero coefficient is located. 0 indicates a sub-block in which the DC component is included and, if greater than 0, it is not a sub-block in which the DC component is included.
[0295] 11. lastScanPos: Indica a posição onde o último coeficiente significativo está na ordem de varredura dentro de um sub-bloco. Se um sub-bloco incluir 16 posições, são possíveis valores de 0 a 15.[0295] 11. lastScanPos: Indicates the position where the last significant coefficient is in the scan order within a sub-block. If a sub-block includes 16 positions, values from 0 to 15 are possible.
[0296] 12. lfnst_idx[x0][y0]: Elemento de sintaxe de índice de LFNST a ser analisado. Se não for analisado, é inferido como um valor de 0. Ou seja, o valor padrão é definido como 0, indicando que a LFNST não é aplicada.[0296] 12. lfnst_idx[x0][y0]: LFNST index syntax element to be parsed. If not parsed, it is inferred as a value of 0. That is, the default value is set to 0, indicating that LFNST is not applied.
[0297] 13. LastSignificantCoeffX, LastSignificantCoeffY: Indicam as coordenadas x e y onde se encontra o último coeficiente significativo no bloco de transformada. A coordenada x começa em 0 e aumenta da esquerda para a direita, e a coordenada y começa em 0 e aumenta de cima para baixo. Se os valores de ambas as variáveis forem 0, significa que o último coeficiente significativo está localizado em DC.[0297] 13. LastSignificantCoeffX, LastSignificantCoeffY: Indicate the x and y coordinates where the last significant coefficient is found in the transform block. The x coordinate starts at 0 and increases from left to right, and the y coordinate starts at 0 and increases from top to bottom. If the values of both variables are 0, it means that the last significant coefficient is located in DC.
[0298] 14. cu_sbt_flag: Um sinalizador que indica se a transformada de sub- bloco (SBT) incluída no padrão VVC atual está habilitada. Se o valor do sinalizador for 0, indica que a SBT não está habilitada, e se o valor do sinalizador for 1, indica que a SBT está habilitada.[0298] 14. cu_sbt_flag: A flag that indicates whether the subblock transform (SBT) included in the current VVC pattern is enabled. If the flag value is 0, it indicates that SBT is not enabled, and if the flag value is 1, it indicates that SBT is enabled.
[0299] 15.sps_explicit_mts_inter_enabled_flag, sps_explicit_mts_intra_enabled_flag: Sinalizadores que indicam se a MTS explícita é aplicado ou não a inter CU e intra CU, respectivamente. Se um valor de sinalizador correspondente for 0, isso indica que a MTS não está habilitada para uma CU inter ou intra e se o valor de sinalizador correspondente for 1, indica que a MTS está habilitada.[0299] 15.sps_explicit_mts_inter_enabled_flag, sps_explicit_mts_intra_enabled_flag: Flags that indicate whether or not explicit MTS is applied to inter CU and intra CU, respectively. If a corresponding flag value is 0, it indicates that MTS is not enabled for an inter or intra CU, and if the corresponding flag value is 1, it indicates that MTS is enabled.
[0300] 16. tu_mts_idx[x0][y0]: Elemento de sintaxe de índice de MTS a ser analisado. Se não for analisado, é inferido como um valor de 0. Ou seja, o valor padrão é definido como 0, indicando que a DCT-2 está habilitada para as direções horizontal e vertical.[0300] 16. tu_mts_idx[x0][y0]: MTS index syntax element to be parsed. If not analyzed, it is inferred as a value of 0. That is, the default value is set to 0, indicating that the DCT-2 is enabled for both horizontal and vertical directions.
[0301] Conforme mostrado na Tabela 3, no caso de uma única árvore, é possível determinar se deve ou não sinalizar o índice de LFNST usando apenas a última condição de posição do coeficiente significativo para luma. Ou seja, se a posição do último coeficiente significativo não for DC e o último coeficiente significativo existir no sub-bloco superior esquerdo (CG), por exemplo, um bloco 4 x 4, então o índice de LFNST é sinalizado. Neste caso, no caso do bloco de transformada 4 x 4 e do bloco de transformada 8 x 8, o índice de LFNST é sinalizado apenas quando o último coeficiente significativo existe nas posições 0 a 7 no sub-bloco superior esquerdo.[0301] As shown in Table 3, in the case of a single tree, it is possible to determine whether or not to signal the LFNST index using only the last significant coefficient position condition for luma. That is, if the position of the last significant coefficient is not DC and the last significant coefficient exists in the upper left sub-block (CG), for example, a 4 x 4 block, then the LFNST index is flagged. In this case, in the case of the 4 x 4 transform block and the 8 x 8 transform block, the LFNST index is flagged only when the last significant coefficient exists in positions 0 to 7 in the upper left sub-block.
[0302] No caso da árvore dupla, o índice de LFNST é sinalizado independentemente de cada um de luma e croma, e no caso de croma, o índice de LFNST pode ser sinalizado aplicando a última condição de posição do coeficiente significativo apenas ao componente de Cb. A condição correspondente não pode ser verificada para o componente de Cr, e se o valor de CBF para Cb for 0, o índice de LFNST pode ser sinalizado aplicando a última condição de posição do coeficiente significativo ao componente de Cr.[0302] In the case of dual tree, the LFNST index is signaled independently of each of luma and chroma, and in the case of chroma, the LFNST index may be signaled by applying the last significant coefficient position condition only to the component of CB. The corresponding condition cannot be checked for the Cr component, and if the CBF value for Cb is 0, the LFNST index can be flagged by applying the last significant coefficient position condition to the Cr component.
[0303] ‘Min(log2TbWidth, log2TbHeight) >= 2’ de Tabela 8 pode ser expresso como “Min(tbWidth, tbHeight) >= 4”, e ‘Min(log2TbWidth, log2TbHeight) >= 4’ pode ser expresso como “Min(tbWidth, tbHeight) >= 16”.[0303] 'Min(log2TbWidth, log2TbHeight) >= 2' of Table 8 can be expressed as “Min(tbWidth, tbHeight) >= 4”, and 'Min(log2TbWidth, log2TbHeight) >= 4' can be expressed as “ Min(tbWidth, tbHeight) >= 16”.
[0304] Na Tabela 3, log2ZoTbWidth e log2ZoTbHeight significam valores de log cuja largura e altura base são 2 (base-2) para a região superior esquerda onde o último coeficiente significativo pode existir por zero-out, respectivamente.[0304] In Table 3, log2ZoTbWidth and log2ZoTbHeight mean log values whose base width and height are 2 (base-2) for the upper left region where the last significant coefficient can exist by zero-out, respectively.
[0305] Como mostrado na Tabela 3, os valores log2ZoTbWidth e log2ZoTbHeight podem ser atualizados em dois locais. O primeiro é antes do índice de MTS ou valor do índice de LFNST ser analisado, e o segundo é depois que o índice de MTS é analisado.[0305] As shown in Table 3, the log2ZoTbWidth and log2ZoTbHeight values can be updated in two places. The first is before the MTS index or LFNST index value is analyzed, and the second is after the MTS index is analyzed.
[0306] A primeira atualização é antes que o valor do índice de MTS (tu_mts_idx[x0][y0]) seja analisado, então log2ZoTbWidth e log2ZoTbHeight podem ser definidos independentemente do valor do índice de MTS.[0306] The first update is before the MTS index value (tu_mts_idx[x0][y0]) is parsed, so log2ZoTbWidth and log2ZoTbHeight can be set independently of the MTS index value.
[0307] Depois que o índice de MTS é analisado, log2ZoTbWidth e log2ZoTbHeigh são definidos para um índice de MTS maior que 0 (combinação DST- 7/DCT-8). Quando a DST-7/DCT-8 é aplicada independentemente em cada uma das direções horizontal e vertical na transformada primária, pode haver até 16 coeficientes significativos por linha ou coluna em cada direção. Ou seja, após a aplicação de DST- 7/DCT-8 com um comprimento de 32 ou superior, até 16 coeficientes de transformada podem ser derivados para cada linha ou coluna da esquerda ou do topo. Assim, em um bloco 2D, quando a DST-7/DCT-8 é aplicada tanto na direção horizontal quanto na direção vertical, coeficientes significativos podem existir em uma região superior esquerda de apenas 16 x 16. [386] Além disso, quando a DCT-2 é independentemente aplicada em cada uma das direções horizontal e vertical na transformada primária atual, pode haver até 32 coeficientes significativos por linha ou coluna em cada direção. Ou seja, ao aplicar DCT-2 com um comprimento de 64 ou superior, até 32 coeficientes de transformada podem ser derivados para cada linha ou coluna da esquerda ou da parte superior. Assim, em um bloco 2D, quando a DCT-2 é aplicada tanto na direção horizontal quanto na direção vertical, coeficientes significativos podem existir em uma região 32 x 32superior esquerda.[0307] After the MTS index is analyzed, log2ZoTbWidth and log2ZoTbHeigh are set to an MTS index greater than 0 (DST-7/DCT-8 combination). When DST-7/DCT-8 is applied independently in each of the horizontal and vertical directions in the primary transform, there can be up to 16 significant coefficients per row or column in each direction. That is, after applying DST-7/DCT-8 with a length of 32 or greater, up to 16 transform coefficients can be derived for each left or top row or column. Thus, in a 2D block, when DST-7/DCT-8 is applied in both the horizontal and vertical directions, significant coefficients can exist in an upper left region of only 16 x 16. [386] Furthermore, when the DCT-2 is independently applied in each of the horizontal and vertical directions in the current primary transform, there can be up to 32 significant coefficients per row or column in each direction. That is, when applying DCT-2 with a length of 64 or greater, up to 32 transform coefficients can be derived for each left or top row or column. Thus, in a 2D block, when DCT-2 is applied in both the horizontal and vertical directions, significant coefficients may exist in a 32 x 32 top left region.
[0308] Além disso, quando a DST-7/DCT-8 é aplicada em um lado e a DCT-2 é aplicada no outro lado nas direções horizontal e vertical, 16 coeficientes significativos podem existir na direção anterior e 32 coeficientes significativos pode existir na última direção. Por exemplo, no caso de um bloco de transformada 64 x 8, se a DCT-2 for aplicada na direção horizontal e a DST-7 for aplicada na direção vertical (pode ocorrer em uma situação em que a MTS implícita é aplicada), um coeficiente significativo pode existem em até uma região 32 x 8 superior esquerda.[0308] Furthermore, when DST-7/DCT-8 is applied on one side and DCT-2 is applied on the other side in the horizontal and vertical directions, 16 significant coefficients may exist in the former direction and 32 significant coefficients may exist in the last direction. For example, in the case of a 64 x 8 transform block, if DCT-2 is applied in the horizontal direction and DST-7 is applied in the vertical direction (may occur in a situation where implicit MTS is applied), a Significant coefficient may exist in up to a 32 x 8 upper left region.
[0309] Se, como mostrado na Tabela 8, log2ZoTbWidth e log2ZoTbHeight são atualizados em dois locais, ou seja, antes da análise do índice MTS, os intervalos de last_sig_coeff_x_prefix e last_sig_coeff_y_prefix podem ser determinados por log2ZoTbWidth e log2ZoTbHeight conforme mostrado na tabela abaixo. Tabela 4 [0309] If, as shown in Table 8, log2ZoTbWidth and log2ZoTbHeight are updated in two places, that is, before analyzing the MTS index, the ranges of last_sig_coeff_x_prefix and last_sig_coeff_y_prefix can be determined by log2ZoTbWidth and log2ZoTbHeight as shown in the table below. Table 4
[0310] Além disso, neste caso, os valores máximos de last_sig_coeff_x_prefix e last_sig_coeff_y_prefix podem ser definidos refletindo os valores log2ZoTbWidth e log2ZoTbHeight no processo de binarização para last_sig_coeff_x_prefix e last_sig_coeff_y_prefix. Tabela 5 [0310] Furthermore, in this case, the maximum values of last_sig_coeff_x_prefix and last_sig_coeff_y_prefix can be set by reflecting the log2ZoTbWidth and log2ZoTbHeight values in the binarization process for last_sig_coeff_x_prefix and last_sig_coeff_y_prefix. Table 5
[0311] De acordo com um exemplo, em um caso onde o modo de ISP e a LFNST são aplicados, quando a sinalização da Tabela 3 é aplicada, o texto de especificação pode ser configurado conforme mostrado na Tabela 6. Comparado com a Tabela 3, a condição de sinalização do índice de LFNST somente em um caso excluindo o modo de ISP (IntraSubPartitionsSplit[x0][y0] = = ISP_NO_SPLIT na Tabela 3) é excluído.[0311] According to an example, in a case where ISP mode and LFNST are applied, when the signaling of Table 3 is applied, the specification text can be configured as shown in Table 6. Compared with Table 3 , the LFNST index signaling condition only in a case excluding ISP mode (IntraSubPartitionsSplit[x0][y0] = = ISP_NO_SPLIT in Table 3) is deleted.
[0312] Em uma única árvore, quando um índice de LFNST transmitido para um componente de luma (cIdx = 0) é reutilizado para um componente croma, um índice de LFNST transmitido para um primeiro bloco de partição de ISP no qual existe um coeficiente significativo pode ser aplicado a um bloco de transformada de croma. Alternativamente, mesmo em uma única árvore, um índice de LFNST pode ser sinalizado para um componente de croma separadamente daquele para um componente de luma. Uma descrição das variáveis na Tabela 6 é a mesma da Tabela 3. Tabela 6 [0312] In a single tree, when an LFNST index passed to a luma component (cIdx = 0) is reused for a chroma component, an LFNST index passed to a first ISP partition block in which there is a significant coefficient can be applied to a chroma transform block. Alternatively, even in a single tree, an LFNST index can be flagged for a chroma component separately from that for a luma component. A description of the variables in Table 6 is the same as in Table 3. Table 6
[0313] De acordo com um exemplo, o índice de LFNST e/ou o índice de MTS pode ser sinalizado em um nível de unidade de codificação. Como descrito acima, o índice de LFNST pode ter três valores de 0, 1, e 2, onde 0 indica que a LFNST não é aplicada, e 1 e 2 respectivamente indicam um primeiro candidato e um segundo candidato de dois candidatos de kernel de LFNST incluídos em um conjunto de LFNST selecionado. O índice de LFNST é codificado através de binarização unária truncada e os valores de 0, 1 e 2 podem ser codificados como cadeias bin de 0, 10 e 11, respectivamente.[0313] According to an example, the LFNST index and/or the MTS index may be signaled at a coding unit level. As described above, the LFNST index can have three values of 0, 1, and 2, where 0 indicates that LFNST is not applied, and 1 and 2 respectively indicate a first candidate and a second candidate out of two LFNST kernel candidates. included in a selected LFNST set. The LFNST index is encoded using truncated unary binarization and the values of 0, 1, and 2 can be encoded as bin strings of 0, 10, and 11, respectively.
[0314] De acordo com um exemplo, a LFNST pode ser aplicada apenas quando DCT-2 é aplicada tanto na direção horizontal quanto na direção vertical na transformada primária. Portanto, se o índice de MTS for sinalizado após sinalizar o índice de LFNST, o índice de MTS pode ser sinalizado apenas quando o índice de LFNST é 0, e transformada primária pode ser realizada aplicando DCT-2 na direção horizontal e na direção vertical sem sinalização do índice de MTS quando o índice de LFNST não é 0.[0314] According to an example, LFNST can be applied only when DCT-2 is applied in both the horizontal and vertical directions in the primary transform. Therefore, if the MTS index is signaled after signaling the LFNST index, the MTS index can be signaled only when the LFNST index is 0, and primary transform can be performed by applying DCT-2 in the horizontal direction and in the vertical direction without MTS index signaling when LFNST index is not 0.
[0315] O índice de MTS pode ter valores de 0, 1, 2, 3, e 4, onde 0, 1, 2, 3, e 4 pode indicar que DCT-2/DCT-2, DST-7/DST-7, DCT-8/DST-7, DST-7/DCT-8, DCT- 8/DCT-8 são aplicadas nas direções horizontal e vertical, respectivamente. Além disso, o índice MTS pode ser codificado por meio de binarização unitária truncada e os valores de 0, 1, 2, 3 e 4 podem ser codificados como sequências bin de 0, 10, 110, 1110 e 1111, respectivamente.[0315] The MTS index may have values of 0, 1, 2, 3, and 4, where 0, 1, 2, 3, and 4 may indicate that DCT-2/DCT-2, DST-7/DST- 7, DCT-8/DST-7, DST-7/DCT-8, DCT-8/DCT-8 are applied in the horizontal and vertical directions, respectively. Furthermore, the MTS index can be encoded using truncated unitary binarization, and the values of 0, 1, 2, 3, and 4 can be encoded as bin sequences of 0, 10, 110, 1110, and 1111, respectively.
[0316] A sinalização do índice de LFNST em um nível de unidade de codificação pode ser indicada conforme mostrado na tabela a seguir. O índice de LFNST pode ser sinalizado na última parte de uma tabela de sintaxe de unidade de codificação. Tabela 7 [0316] LFNST index signaling at a coding unit level may be indicated as shown in the following table. The LFNST index can be flagged in the last part of a coding unit syntax table. Table 7
[0317] Uma variável LfnstDcOnly e uma variável LfnstZeroOutSigCoeffFlag na Tabela 7 podem ser definidas conforme mostrado abaixo na Tabela 10.[0317] A variable LfnstDcOnly and a variable LfnstZeroOutSigCoeffFlag in Table 7 can be defined as shown below in Table 10.
[0318] A variável LfnstDcOnly é igual a 1 quando todos os últimos coeficientes significativos estão localizados em posições de DC (posições superior esquerda) para blocos de transformada com um sinalizador de bloco codificado (CBF, igual a 0 se houver pelo menos um coeficiente significativo em um bloco correspondente, e é igual a 0 caso contrário) de 1, e é igual a 0 caso contrário. Especificamente, em um caso de luma de árvore dupla, a posição do último coeficiente significativo é verificada em relação a um bloco de transformada de luma e, em um caso de croma de árvore dupla, a posição do último coeficiente significativo é verificada em relação a um bloco de transformada para Cb e um bloco de transformada para Cr. No caso de uma única árvore, a posição do último coeficiente significativo pode ser verificada em relação ao bloco de transformada para luma, Cb e Cr.[0318] The variable LfnstDcOnly equals 1 when all last significant coefficients are located in DC positions (top left positions) for transform blocks with a coded block flag (CBF, equal to 0 if there is at least one significant coefficient in a corresponding block, and equals 0 otherwise) of 1, and equals 0 otherwise. Specifically, in a double-tree luma case, the position of the last significant coefficient is checked with respect to a luma transform block, and in a double-tree chroma case, the position of the last significant coefficient is checked with respect to a transform block for Cb and a transform block for Cr. In the case of a single tree, the position of the last significant coefficient can be checked against the transform block for luma, Cb and Cr.
[0319] A variável LfnstZeroOutSigCoeffFlag é igual a 0 se houver um coeficiente significativo em uma posição de zero-out quando a LFNST é aplicada, e é igual a 1 caso contrário.[0319] The variable LfnstZeroOutSigCoeffFlag is equal to 0 if there is a significant coefficient at a zero-out position when LFNST is applied, and is equal to 1 otherwise.
[0320] lfnst_idx[x0][y0] incluído na Tabela 7 e tabelas subsequentes indica um índice de LFNST para uma unidade de codificação correspondente e tu_mts_idx[x0][y0] indica um índice de MTS para a unidade de codificação correspondente.[0320] lfnst_idx[x0][y0] included in Table 7 and subsequent tables indicates an LFNST index for a corresponding coding unit and tu_mts_idx[x0][y0] indicates an MTS index for the corresponding coding unit.
[0321] De acordo com um exemplo, para codificar o índice de MTS consecutivamente após o índice de LFNST no nível da unidade de codificação, uma tabela de sintaxe da unidade de codificação pode ser configurada conforme mostrado na Tabela 8. Tabela 8 [0321] According to an example, to encode the MTS index consecutively after the LFNST index at the coding unit level, a coding unit syntax table can be configured as shown in Table 8. Table 8
[0322] Comparando a Tabela 8 com a Tabela 7, uma condição para verificar se o valor de tu_mts_idx[x0][y0] é 0 (ou seja, verificar se DCT-2 é aplicada na direção horizontal e na direção vertical) em uma condição para sinalização lfnst_idx[x0][y0] é alterado para uma condição para verificar se o valor de transform_skip_flag[x0][y0] é 0 (!transform_skip_flag[x0][y0]). transform_skip_flag[x0][y0] indica se a unidade de codificação está codificada no modo de salto de transformada no qual uma transformada é ignorada e o sinalizador é sinalizado antes do índice de MTS e do índice de LFNST. Ou seja, como lfnst_idx[x0][y0] é sinalizado antes que o valor de tu_mtx_idx[x0][y0] seja sinalizado, apenas a condição para o valor de transform_skip_flag[x0][y0] pode ser verificada. [393] Como mostrado na Tabela 8, uma pluralidade de condições é verificada ao codificar tu_mts_idx[x0][y0], e tu_mts_idx[x0][y0] é sinalizado somente quando o valor de lfnst_idx[x0][y0] é 0 como descrito acima.[0322] Comparing Table 8 with Table 7, a condition to check whether the value of tu_mts_idx[x0][y0] is 0 (i.e., check whether DCT-2 is applied in the horizontal direction and in the vertical direction) in a condition for flagging lfnst_idx[x0][y0] is changed to a condition for checking whether the value of transform_skip_flag[x0][y0] is 0 (!transform_skip_flag[x0][y0]). transform_skip_flag[x0][y0] indicates whether the coding unit is coded in transform skip mode in which a transform is skipped and the flag is flagged before the MTS index and the LFNST index. That is, because lfnst_idx[x0][y0] is flagged before the value of tu_mtx_idx[x0][y0] is flagged, only the condition for the value of transform_skip_flag[x0][y0] can be checked. [393] As shown in Table 8, a plurality of conditions are checked when encoding tu_mts_idx[x0][y0], and tu_mts_idx[x0][y0] is flagged only when the value of lfnst_idx[x0][y0] is 0 as described above.
[0323] tu_cbf_luma[x0][y0] é um sinalizador que indica se existe um coeficiente significativo para um componente de luma, e cbWidth e cbHeight indicam a largura e altura da unidade de codificação para o componente de luma, respectivamente.[0323] tu_cbf_luma[x0][y0] is a flag that indicates whether there is a significant coefficient for a luma component, and cbWidth and cbHeight indicate the width and height of the coding unit for the luma component, respectively.
[0324] Na Tabela 8, ( IntraSubPartitionsSplit[ x0 ][ y0 ] = = ISP_NO_SPLIT ) indica que o modo de ISP não é aplicado e ( !cu_sbt_flag ) indica que nenhuma SBT é aplicada.[0324] In Table 8, ( IntraSubPartitionsSplit[ x0 ][ y0 ] = = ISP_NO_SPLIT ) indicates that ISP mode is not applied and ( !cu_sbt_flag ) indicates that no SBT is applied.
[0325] De acordo com Tabela 8, quando a largura e a altura da unidade de codificação para o componente luma são 32 ou menos, tu_mts_idx[x0][y0] é sinalizado, isto é, se uma MTS é aplicada é determinada pela largura e altura da unidade de codificação para o componente de luma.[0325] According to Table 8, when the width and height of the coding unit for the luma component are 32 or less, tu_mts_idx[x0][y0] is flagged, that is, whether an MTS is applied is determined by the width and height of the encoding unit for the luma component.
[0326] De acordo com um outro exemplo, quando o bloco de transformada (TU) ocorre (por exemplo, quando um tamanho máximo de transformada é definido como 32, uma unidade de codificação de 64 x 64 é dividida em quatro blocos de transformada de 32 x 32 e codificada), o índice de MTS pode ser sinalizado com base no tamanho de cada bloco de transformada. Por exemplo, quando a largura e a altura de um bloco de transformada são 32 ou menos, o mesmo valor de índice de MTS pode ser aplicado a todos os blocos de transformada em uma unidade de codificação, aplicando assim a mesma transformada primária. Além disso, quando o bloco de transformada ocorre lado a lado, o valor de tu_cbf_luma[x0][y0] na Tabela 14 pode ser um valor de CBF para um bloco de transformada superior esquerdo ou pode ser definido como 1 quando um valor de CBF para mesmo um bloco de transformada de todos os blocos de transformada é 1.[0326] According to another example, when the transform block (TU) occurs (e.g., when a maximum transform size is set to 32, a 64 x 64 coding unit is divided into four transform blocks of 32 x 32 and encoded), the MTS index can be signaled based on the size of each transform block. For example, when the width and height of a transform block are 32 or less, the same MTS index value can be applied to all transform blocks in a coding unit, thereby applying the same primary transform. Additionally, when the transform block occurs side by side, the value of tu_cbf_luma[x0][y0] in Table 14 can be a CBF value for a top-left transform block or can be set to 1 when a CBF value for even one transform block out of all transform blocks is 1.
[0327] De acordo com um exemplo, quando o modo de ISP é aplicado ao bloco atual, a LFNST pode ser aplicada, caso este em que a Tabela 8 pode ser alterada como mostrado na Tabela 9. Tabela 9 [394] Como mostrado na Tabela 9, mesmo no modo de ISP, (IntraSubPartitionsSplitType ! = ISP_NO_SPLIT) lfnst_idx[ x0 ][ y0 ] pode ser configurado para ser sinalizado e o mesmo valor de índice de LFNST pode ser aplicado a todos os blocos de partição de ISP.[0327] According to an example, when the ISP mode is applied to the current block, LFNST may be applied, in which case Table 8 may be changed as shown in Table 9. Table 9 [394] As shown in Table 9, even in ISP mode, (IntraSubPartitionsSplitType != ISP_NO_SPLIT) lfnst_idx[ x0 ][ y0 ] can be configured to be flagged and the same LFNST index value can be applied to all blocks of ISP partition.
[0328] Além disso, como mostrado na Tabela 9, uma vez que tu_mts_idx[x0][y0] pode ser sinalizado apenas em um modo excluindo o modo de ISP, uma parte de codificação de índice de MTS é a mesma da Tabela 8[0328] Furthermore, as shown in Table 9, since tu_mts_idx[x0][y0] can be signaled only in one mode excluding ISP mode, an index encoding part of MTS is the same as in Table 8
[0329] Como mostrado na Tabela 8 e Tabela 9, quando o índice de MTS é sinalizado imediatamente após o índice de LFNST, as informações sobre a transformada primária não podem ser conhecidas ao realizar a codificação residual. Ou seja, o índice de MTS é sinalizado após a codificação residual. Consequentemente, em uma parte de codificação residual, uma parte na qual uma zeragem é realizada deixando apenas 16 coeficientes para DST-7 ou DCT-8 com um comprimento de 32 pode ser alterada conforme mostrado abaixo na Tabela 10. Tabela 10 [0329] As shown in Table 8 and Table 9, when the MTS index is signaled immediately after the LFNST index, information about the primary transform cannot be known when performing residual coding. That is, the MTS index is flagged after residual encoding. Consequently, in a residual coding part, a part in which a zeroing is performed leaving only 16 coefficients for DST-7 or DCT-8 with a length of 32 can be changed as shown below in Table 10. Table 10
[0330] Como mostrado na Tabela 10, em um processo de determinação de log2ZoTbWidth e log2ZoTbHeight (onde log2ZoTbWidth e log2ZoTbHeight respectivamente denotam os valores de log de base 2 da largura e altura de uma região superior esquerda remanescente após a zeragem ser executada) , a verificação do valor de tu_mts_idx[ x0 ][ y0 ] pode ser omitida.[0330] As shown in Table 10, in a process of determining log2ZoTbWidth and log2ZoTbHeight (where log2ZoTbWidth and log2ZoTbHeight respectively denote the base 2 log values of the width and height of an upper left region remaining after zeroing is performed), the checking the value of tu_mts_idx[ x0 ][ y0 ] can be omitted.
[0331] A binarização de last_sig_coeff_x_prefix e last_sig_coeff_y_prefix na Tabela 16 pode ser determinada com base em log2ZoTbWidth e log2ZoTbHeight conforme mostrado na Tabela 5.[0331] The binarization of last_sig_coeff_x_prefix and last_sig_coeff_y_prefix in Table 16 can be determined based on log2ZoTbWidth and log2ZoTbHeight as shown in Table 5.
[0332] Além disso, como mostrado na Tabela 10, uma condição de verificação de sps_mts_enable_flag pode ser adicionada ao determinar log2ZoTbWidth e log2ZoTbHeight na codificação residual.[0332] Additionally, as shown in Table 10, a sps_mts_enable_flag check condition can be added when determining log2ZoTbWidth and log2ZoTbHeight in the residual encoding.
[0333] Enquanto isso, de acordo com outro exemplo, a tabela de sintaxe de unidade de codificação, a tabela de sintaxe de unidade de transformada e a tabela de sintaxe de codificação residual são as seguintes. De acordo com a Tabela 11, o índice de MTS se move do nível da unidade de transformada para a sintaxe do nível da unidade de codificação e é sinalizado após a sinalização do índice de LFNST. Além disso, a restrição que não permite LFNST quando o ISP é aplicado à unidade de codificação foi removida. Quando o ISP é aplicado à unidade de codificação, a restrição que não permite a LFNST é removida, para que a LFNST possa ser aplicado a todos os blocos de intrapredição. Além disso, tanto o índice de MTS quanto o índice de LFNST são sinalizados condicionalmente na última parte do nível da unidade de codificação. Tabela 11 [0333] Meanwhile, according to another example, the coding unit syntax table, the transform unit syntax table and the residual coding syntax table are as follows. According to Table 11, the MTS index moves from the transform unit level to the coding unit level syntax and is flagged after the LFNST index flag. Additionally, the restriction that disallows LFNST when ISP is applied to the encoding unit has been removed. When ISP is applied to the coding unit, the restriction that disallows LFNST is removed, so that LFNST can be applied to all intraprediction blocks. Furthermore, both the MTS index and the LFNST index are conditionally signaled at the last part of the coding unit level. Table 11
[0334] Na Tabela 11, MtsZeroOutSigCoeffFlag é inicialmente definido como 1, e esse valor pode ser alterado na codificação residual na Tabela 13. O valor de uma variável MtsZeroOutSigCoeffFlag é alterado de 1 para 0 quando existe um coeficiente significativo em uma região ( LastSignificantCoeffX > 15 | | LastSignificantCoeffY > 15 ) para ser preenchido com 0s por um zero-out, caso em que o índice MTS não é sinalizado conforme mostrado na Tabela 11.[0334] In Table 11, MtsZeroOutSigCoeffFlag is initially set to 1, and this value can be changed in residual coding in Table 13. The value of a MtsZeroOutSigCoeffFlag variable is changed from 1 to 0 when a significant coefficient exists in a region ( LastSignificantCoeffX > 15 | | LastSignificantCoeffY > 15 ) to be padded with 0s by a zero-out, in which case the MTS index is not signaled as shown in Table 11.
[0335] Enquanto isso, como mostrado na Tabela 11, quando tu_cbf_luma[ x0 ][ y0 ] é 0, a codificação mts_idx[ x0 ][ y0 ] pode ser omitida. Ou seja, quando o valor CBF do componente luma é 0, uma vez que a transformada não é aplicada, não há necessidade de sinalizar o índice MTS, e assim a codificação do índice MTS pode ser omitida.[0335] Meanwhile, as shown in Table 11, when tu_cbf_luma[ x0 ][ y0 ] is 0, the encoding mts_idx[ x0 ][ y0 ] can be omitted. That is, when the CBF value of the luma component is 0, since the transform is not applied, there is no need to flag the MTS index, and thus the encoding of the MTS index can be omitted.
[0336] De acordo com um exemplo, o recurso técnico acima pode ser implementado em outra sintaxe condicional. Por exemplo, após o MTS ser realizado, uma variável indicando se existe um coeficiente significativo em uma região diferente da região DC do bloco atual pode ser derivada, e quando a variável indica que o coeficiente significativo existe na região excluindo a região DC , o índice de MTS pode ser sinalizado. Ou seja, a existência do coeficiente significativo na região diferente da região DC do bloco atual indica que o valor de tu_cbf_luma[ x0][y0] é 1, e neste caso, o índice de MTS pode ser sinalizado.[0336] According to an example, the above technical feature can be implemented in another conditional syntax. For example, after the MTS is performed, a variable indicating whether a significant coefficient exists in a region other than the DC region of the current block can be derived, and when the variable indicates that the significant coefficient exists in the region excluding the DC region, the index from MTS can be flagged. In other words, the existence of the significant coefficient in the region other than the DC region of the current block indicates that the value of tu_cbf_luma[ x0][y0] is 1, and in this case, the MTS index can be signaled.
[0337] A variável pode ser expressa como MtsDcOnly, e após a variável MtsDcOnly ser inicialmente definida como 1 no nível da unidade de codificação, o valor é alterado para 0 quando é determinado que o coeficiente significativo está presente na região, exceto para a região DC do bloco atual no nível de codificação residual. Quando a variável MtsDcOnly for 0, as informações da imagem podem ser configuradas de forma que o índice MTS seja sinalizado.[0337] The variable may be expressed as MtsDcOnly, and after the variable MtsDcOnly is initially set to 1 at the coding unit level, the value is changed to 0 when it is determined that the significant coefficient is present in the region, except for the region DC of the current block at the residual coding level. When the MtsDcOnly variable is 0, the image information can be configured so that the MTS index is flagged.
[0338] Quando tu_cbf_luma[ x0 ][ y0 ] é 0, uma vez que a sintaxe de codificação residual não é chamada no nível da unidade de transformada da Tabela 12, o valor inicial de 1 da variável MtsDcOnly é mantido. Neste caso, como a variável MtsDcOnly não é alterada para 0, as informações da imagem podem ser configuradas para que o índice de MTS não seja sinalizado. Ou seja, o índice de MTS não é analisado e sinalizado.[0338] When tu_cbf_luma[ x0 ][ y0 ] is 0, since the residual encoding syntax is not called at the transform unit level of Table 12, the initial value of 1 of the MtsDcOnly variable is maintained. In this case, because the MtsDcOnly variable is not changed to 0, the image information can be configured so that the MTS index is not flagged. In other words, the MTS index is not analyzed and flagged.
[0339] Enquanto isso, o aparelho de decodificação pode determinar o índice de cor cIdx do coeficiente de transformada para derivar a variável MtsZeroOutSigCoeffFlag da Tabela 13. O índice de cor cIdx de 0 significa um componente de luma.[0339] Meanwhile, the decoding apparatus can determine the color index cIdx from the transform coefficient to derive the variable MtsZeroOutSigCoeffFlag from Table 13. The color index cIdx of 0 means a luma component.
[0340] De acordo com um exemplo, como o MTS pode ser aplicado apenas ao componente luma do bloco atual, o aparelho de decodificação pode determinar se o índice de cores é luma ao derivar a variável MtsZeroOutSigCoeffFlag para determinar se o índice de MTS deve ser analisado.[0340] According to an example, because MTS can be applied only to the luma component of the current block, the decoding apparatus can determine whether the color index is luma by deriving the variable MtsZeroOutSigCoeffFlag to determine whether the MTS index should be analyzed.
[0341] A variável MtsZeroOutSigCoeffFlag é uma variável que indica se o zero-out é realizado quando o MTS é aplicado. Indica se o coeficiente de transformada existe na região superior esquerda onde o último coeficiente significativo pode existir devido ao zero-out após a realização do MTS, ou seja, na região diferente da região superior esquerda 16 X 16. A variável MtsZeroOutSigCoeffFlag é inicialmente definida como 1 no nível da unidade de codificação conforme mostrado na Tabela 11 (MtsZeroOutSigCoeffFlag = 1), e quando o coeficiente de transformada existe na região diferente da região 16 X 16, seu valor pode ser alterado de 1 para 0 na região nível de codificação residual conforme mostrado na Tabela 13 (MtsZeroOutSigCoeffFlag = 0). Quando o valor da variável MtsZeroOutSigCoeffFlag é 0, o índice de MTS não é sinalizado.[0341] The variable MtsZeroOutSigCoeffFlag is a variable that indicates whether zero-out is performed when MTS is applied. Indicates whether the transform coefficient exists in the upper left region where the last significant coefficient may exist due to zero-out after performing the MTS, that is, in the region other than the upper left 16 X 16 region. The variable MtsZeroOutSigCoeffFlag is initially defined as 1 at the coding unit level as shown in Table 11 (MtsZeroOutSigCoeffFlag = 1), and when the transform coefficient exists in the region other than the 16 X 16 region, its value can be changed from 1 to 0 in the residual coding level region as per shown in Table 13 (MtsZeroOutSigCoeffFlag = 0). When the value of the MtsZeroOutSigCoeffFlag variable is 0, the MTS index is not flagged.
[0342] Como mostrado na Tabela 13, no nível de codificação residual, uma região não-zero na qual pode existir um coeficiente de transformada diferente de zero pode ser definida dependendo se o zero-out que acompanha o MTS é realizado ou não, e mesmo neste caso, o índice de cor (cIdx) é 0, a região não zero pode ser definida para a região 16 X 16 superior esquerda do bloco atual.[0342] As shown in Table 13, at the residual coding level, a non-zero region in which a non-zero transform coefficient may exist can be defined depending on whether the zero-out accompanying the MTS is realized or not, and Even in this case, the color index (cIdx) is 0, the non-zero region can be set to the top left 16 X 16 region of the current block.
[0343] Assim, ao derivar a variável que determina se o índice de MTS é analisado, determina-se se o componente de cor é luma ou croma. No entanto, como a LFNST pode ser aplicado ao componente luma e ao componente croma do bloco atual, o componente de cor não é determinado ao derivar uma variável para determinar se o índice de LFNST deve ser analisado.[0343] Thus, when deriving the variable that determines whether the MTS index is analyzed, it is determined whether the color component is luma or chroma. However, because LFNST can be applied to both the luma component and the chroma component of the current block, the color component is not determined when deriving a variable to determine whether the LFNST index should be analyzed.
[0344] Por exemplo, a Tabela 11 mostra uma variável LfnstZeroOutSigCoeffFlag que pode indicar que o zero-out é executado quando a LFNST é aplicada. A variável LfnstZeroOutSigCoeffFlag indica se existe um coeficiente significativo na segunda região, exceto na primeira região no canto superior esquerdo do bloco atual. Este valor é inicialmente definido como 1, e quando o coeficiente significativo está presente na segunda região, o valor pode ser alterado para 0. O índice de LFNST pode ser analisado somente quando o valor da variável inicialmente definida LfnstZeroOutSigCoeffFlag é mantido em 1. Quando determinar e derivar se o valor da variável LfnstZeroOutSigCoeffFlag é 1, uma vez que a LFNST pode ser aplicado tanto ao componente luma quanto ao componente croma do bloco atual, o índice de cor do bloco atual não é determinado.[0344] For example, Table 11 shows a variable LfnstZeroOutSigCoeffFlag that can indicate that zero-out is performed when LFNST is applied. The LfnstZeroOutSigCoeffFlag variable indicates whether there is a significant coefficient in the second region except the first region in the upper left corner of the current block. This value is initially set to 1, and when the significant coefficient is present in the second region, the value can be changed to 0. The LFNST index can be analyzed only when the value of the initially set variable LfnstZeroOutSigCoeffFlag is kept at 1. When determining and derive whether the value of the LfnstZeroOutSigCoeffFlag variable is 1. Since LFNST can be applied to both the luma component and the chroma component of the current block, the color index of the current block is not determined.
[0345] A Figura12 ilustra um CCLM aplicável quando derivar um modo de intrapredição para um bloco croma de acordo com uma modalidade.[0345] Figure 12 illustrates a CCLM applicable when deriving an intraprediction mode for a chroma block according to an embodiment.
[0346] Neste relatório descritivo, um “modelo de amostra de referência” pode se referir a um conjunto de amostras de referência vizinhas de um bloco croma atual para prever o bloco croma atual. Um modelo de amostra de referência pode ser predefinido e as informações sobre o modelo de amostra de referência podem ser sinalizadas do aparelho de codificação 100 para o aparelho de decodificação 200.[0346] In this specification, a “reference sample model” may refer to a set of neighboring reference samples of a current chroma block to predict the current chroma block. A reference sample template may be predefined and information about the reference sample template may be signaled from the encoding apparatus 100 to the decoding apparatus 200.
[0347] Com referência à Figura 12, um conjunto de amostras sombreadas em uma única linha adjacente a um bloco de 4 x 4, que é um bloco croma atual, refere-se a um modelo de amostra de referência. O modelo de amostra de referência é configurado em uma única linha de amostras de referência, enquanto uma região de amostra de referência em uma região de luma correspondente ao modelo de amostra de referência é configurada em duas linhas, conforme mostrado na Figura12.[0347] Referring to Figure 12, a set of shaded samples in a single row adjacent to a 4 x 4 block, which is a current chroma block, refers to a reference sample template. The reference sample template is configured in a single row of reference samples, while a reference sample region in a luma region corresponding to the reference sample template is configured in two rows, as shown in Figure 12.
[0348] Em uma modalidade, quando a intracodificação de uma imagem de croma é realizada em um Modelo de Teste de Exploração Conjunta (JEM) usado na Equipe de Exploração de Vídeo Conjunta (JVET), um modelo linear de componentes cruzados (CCLM) pode ser usado. O CCLM é um método para prever um valor de pixel de uma imagem de croma a partir de um valor de pixel de uma imagem de luma reconstruída e é baseado em uma alta correlação entre uma imagem de luma e uma imagem de croma.[0348] In one embodiment, when intracoding a chroma image is performed in a Joint Exploration Test Model (JEM) used in the Joint Video Exploration Team (JVET), a cross-component linear model (CCLM) can to be used. CCLM is a method for predicting a pixel value of a chroma image from a pixel value of a reconstructed luma image and is based on a high correlation between a luma image and a chroma image.
[0349] A predição de CCLM de imagens de croma Cb e Cr pode ser realizada com base na seguinte equação. Equação 11 [0349] CCLM prediction of Cb and Cr chroma images can be performed based on the following equation. Equation 11
[0350] Aqui, Predc (i, j) denota uma imagem de croma Cb ou Cr a ser prevista, RecL’(i, j) denota uma imagem de luminância reconstruída ajustada para um tamanho de bloco croma e (i, j) denota as coordenadas de um pixel. Em um formato de cor 4:2:0, como o tamanho de uma imagem de luminância é o dobro de uma imagem de croma, RecL' com o tamanho do bloco croma precisa ser gerado por amostragem reduzida e, portanto, a imagem de croma Predc (i,j) , pixels da imagem de luminância a serem usados para a imagem de croma predc (i, j) podem ser empregados considerando tanto RecL(2i, 2j) quanto pixels vizinhos. RecL'(i,j) pode ser denominado como uma amostra de luma com amostragem reduzida.[0350] Here, Predc (i, j) denotes a Cb or Cr chroma image to be predicted, RecL'(i, j) denotes a reconstructed luminance image adjusted to a chroma block size, and (i, j) denotes the coordinates of a pixel. In a 4:2:0 color format, because the size of a luminance image is twice that of a chroma image, RecL' with the size of the chroma block needs to be generated by downsampling, and therefore the chroma image Predc (i,j) , pixels of the luminance image to be used for the chroma image predc (i, j) can be employed considering both RecL(2i, 2j) and neighboring pixels. RecL'(i,j) can be termed as a downsampled luma sample.
[0351] Por exemplo, RecL’(i,j) pode ser derivado usando seis pixels vizinhos como mostrado na seguinte equação. Equação 12 [0351] For example, RecL'(i,j) can be derived using six neighboring pixels as shown in the following equation. Equation 12
[0352] α e β denotam uma correlação cruzada e uma diferença média entre um modelo vizinho do bloco croma Cb ou Cr e um modelo vizinho do bloco de luminância na região sombreada na Figura 12. Por exemplo, α e β são representados pela Equação 13. Equação 13 [0352] α and β denote a cross-correlation and mean difference between a neighboring model of the Cb or Cr chroma block and a neighboring model of the luminance block in the shaded region in Figure 12. For example, α and β are represented by Equation 13 Equation 13
[0353] L(n) denota amostras de referência vizinhas e/ou amostras vizinhas esquerdas de um bloco croma correspondente a uma imagem croma atual, C(n) denota amostras de referência vizinhas e/ou amostras vizinhas esquerdas do bloco croma atual para o qual a codificação é atualmente aplicado e (i, j) denota uma posição de pixel. Além disso, L(n) pode denotar amostras vizinhas superiores com amostragem reduzida e/ou amostras vizinhas esquerdas do bloco luma atual. N pode denotar o número total de valores de pares de pixels (luminância e croma) usados para cálculo de um parâmetro de CCLM e pode indicar um valor que é duas vezes menor valor da largura e da altura do bloco croma atual.[0353] L(n) denotes neighboring reference samples and/or left neighboring samples of a chroma block corresponding to a current chroma image, C(n) denotes neighboring reference samples and/or left neighboring samples of the current chroma block for the which encoding is currently applied and (i, j) denotes a pixel position. Additionally, L(n) can denote downsampled upper neighbor samples and/or left neighbor samples of the current luma block. N can denote the total number of pixel pair values (luminance and chroma) used for calculating a CCLM parameter and can indicate a value that is twice the value of the width and height of the current chroma block.
[0354] As gravuras podem ser divididas em uma sequência de unidades de árvore de codificação (CTUs). Uma CTU pode corresponder a um bloco de árvore de codificação (CTB). Alternativamente, a CTU pode incluir um bloco de árvore de codificação de amostras de luma e um bloco de árvore de codificação de amostras de croma correspondentes. Um tipo de árvore pode ser classificado como uma única árvore (SINGLE_TREE) ou uma árvore dupla (DUAL_TREE) de acordo com se um bloco luma e um bloco croma correspondente têm uma estrutura de partição individual. Uma única árvore pode indicar que o bloco croma tem a mesma estrutura de partição que o bloco luma, e uma árvore dupla pode indicar que o bloco de componente de croma tem uma estrutura de partição diferente daquela do bloco luma.[0354] Engravings can be divided into a sequence of coding tree units (CTUs). A CTU can correspond to a coding tree block (CTB). Alternatively, the CTU may include a coding tree block of luma samples and a coding tree block of corresponding chroma samples. A tree type can be classified as a single tree (SINGLE_TREE) or a double tree (DUAL_TREE) according to whether a luma block and a corresponding chroma block have an individual partition structure. A single tree may indicate that the chroma block has the same partition structure as the luma block, and a double tree may indicate that the chroma component block has a different partition structure than the luma block.
[0355] Quando um LFNST é aplicado a um bloco de transformada de croma de acordo com um exemplo, é necessário consultar as informações em um bloco de transformada de luma colocado.[0355] When an LFNST is applied to a chroma transform block according to an example, it is necessary to query the information in a placed luma transform block.
[0356] O texto de relatório descritivo existente sobre uma parte relevante é mostrado na tabela a seguir.. Tabela 14 Entradas para este processo são: - uma localização de luma ( xTbY, yTbY ) especificando a amostra superior esquerda do bloco de transformada de luma atual em relação à amostra de luma superior esquerda da gravura atual, - uma variável nTbW especificando a largura do bloco de transformada atual, - uma variável nTbH especificando a altura do bloco de transformada atual, - uma variável cIdx especificando o componente de cor do bloco atual, - uma matriz (nTbW)x(nTbH) d[ x ][ y ] de coeficientes de transformada em escala com x = 0..nTbW - 1, y = 0..nTbH - 1 Quando lfnst_idx não é igual a 0 e tanto nTbW quanto nTbH são maiores ou iguais a 4, aplica-se o seguinte: - Quando predModeIntra é igual a INTRA_LT_CCLM, INTRA_L_CCLM, ou INTRA_T_CCLM, predModeIntra é derivado como a seguir: - Se intra_mip_flag[xTbY + nTbW/2][yTbY + nTbH/2] é igual a 1, predModeIntra é definido igual a INTRA_PLANAR. - Caso contrário, se CuPredMode [0][xTbY + nTbW/2][yTbY + nTbH/2] é igual a MODE_IBC ou MODE_PLT, predModeIntra é definido igual a INTRA_DC. - Caso contrário, predModeIntra é definido igual a IntraPredModeY[xTbY + nTbW/2][yTbY + nTbH/2].[0356] Existing descriptive report text about a relevant part is shown in the following table. Table 14 Inputs to this process are: - a luma location ( xTbY, yTbY ) specifying the top-left sample of the current luma transform block relative to the top-left luma sample of the current engraving, - a variable nTbW specifying the width of the block of current transform, - an nTbH variable specifying the height of the current transform block, - a cIdx variable specifying the color component of the current block, - an (nTbW)x(nTbH) d[ x ][ y ] array of transform coefficients scaled with x = 0..nTbW - 1, y = 0..nTbH - 1 When lfnst_idx is not equal to 0 and both nTbW and nTbH are greater than or equal to 4, the following applies: - When predModeIntra is equal to INTRA_LT_CCLM, INTRA_L_CCLM, or INTRA_T_CCLM, predModeIntra is derived as follows: - If intra_mip_flag[xTbY + nTbW/2][yTbY + nTbH/2] is equal to 1, predModeIntra is set equal to INTRA_PLANAR. - Otherwise, if CuPredMode [0][xTbY + nTbW/2][yTbY + nTbH/2] is equal to MODE_IBC or MODE_PLT, predModeIntra is set equal to INTRA_DC. - Otherwise, predModeIntra is set equal to IntraPredModeY[xTbY + nTbW/2][yTbY + nTbH/2].
[0357] Como mostrado na Tabela 14, quando um modo de intrapredição atual é um modo de CCLM, o valor de uma variável predModeIntra para o bloco de transformada de croma é determinado tomando um valor de modo de intrapredição para o bloco de transformada de luma colocalizado (parte indicado em itálico). O valor do modo de intrapredição (valor predModeIntra) do bloco de transformada luma pode ser usado posteriormente para determinar um conjunto de LFNST.[0357] As shown in Table 14, when a current intraprediction mode is a CCLM mode, the value of a predModeIntra variable for the chroma transform block is determined by taking an intraprediction mode value for the luma transform block co-located (part indicated in italics). The intraprediction mode value (predModeIntra value) from the luma transform block can be used later to determine a set of LFNST.
[0358] Entretanto, as variáveis de entrada nTbW e nTbH como valores de entrada deste processo de transformada denotam a largura e a altura do bloco de transformada atual. Assim, quando o bloco atual é um bloco de transformada de luma, as variáveis nTbW e nTbH podem denotar a largura e altura do bloco de transformada de luma, e quando o bloco atual é um bloco de transformada de croma, as variáveis nTbW e nTbH denotam a largura e a altura do bloco de transformada de croma.[0358] However, the input variables nTbW and nTbH as input values of this transform process denote the width and height of the current transform block. Thus, when the current block is a luma transform block, the variables nTbW and nTbH can denote the width and height of the luma transform block, and when the current block is a chroma transform block, the variables nTbW and nTbH denote the width and height of the chroma transform block.
[0359] Aqui, as variáveis nTbW e nTbH na parte itálica da Tabela 14 denotam a largura e a altura do bloco de transformada de croma que não refletem o formato de cor e, portanto, não indicam com precisão uma posição de referência do bloco de transformada de luma correspondente ao bloco de transformada de croma. Portanto, a parte em itálico da Tabela 14 pode ser modificada conforme mostrado na tabela a seguir. Tabela 15 [0359] Here, the variables nTbW and nTbH in the italicized part of Table 14 denote the width and height of the chroma transform block which do not reflect the color format and therefore do not accurately indicate a reference position of the chroma block. luma transform corresponding to the chroma transform block. Therefore, the italicized part of Table 14 can be modified as shown in the following table. Table 15
[0360] Como mostrado na Tabela 15, nTbW e nTbH são alterados para (nTbW * SubWidthC ) / 2 e ( nTbH * SubHeightC ) / 2, respectivamente. xTbY e yTbY podem denotar uma posição de luma na gravura atual (a amostra superior esquerda do bloco de transformada de luma atual em relação à amostra de luma superior esquerda da gravura atual), e nTbW e nTbH podem denotar a largura e a altura da transformada bloco atualmente codificado (uma variável nTbW especificando a largura do bloco de transformada atual e uma variável nTbH especificando a altura do bloco de transformada atual).[0360] As shown in Table 15, nTbW and nTbH are changed to (nTbW * SubWidthC ) / 2 and ( nTbH * SubHeightC ) / 2, respectively. xTbY and yTbY can denote a luma position in the current picture (the top left sample of the current luma transform block relative to the top left luma sample of the current picture), and nTbW and nTbH can denote the width and height of the transform currently encoded block (a variable nTbW specifying the width of the current transform block and a variable nTbH specifying the height of the current transform block).
[0361] Quando o bloco de transformada codificado atualmente é um bloco de transformada de croma (Cb ou Cr), nTbW e nTbH são a largura e a altura do bloco de transformada de croma, respectivamente. Consequentemente, quando o bloco de transformada codificado atualmente é um bloco de transformada de croma (cIdx > 0), uma posição de referência para um bloco de transformada de luma colocado precisa ser obtida usando a largura e a altura do bloco de transformada de luma ao obter a posição de referência. Na Tabela 15, SubWidthC e SubHeightC são valores definidos de acordo com o formato de cor (por exemplo, 4:2:0, 4:2:2 ou 4:4:4) e, especificamente, uma razão de largura e uma razão de altura entre um componente luma e um componente croma, respectivamente (veja a Tabela 16 abaixo). Assim, em um caso do bloco de transformada de croma, ( nTbW * SubWidthC ) e ( nTbH * SubHeightC ) podem ser a largura e a altura em relação ao bloco de transformada de luma colocado, respectivamente.[0361] When the currently encoded transform block is a chroma transform block (Cb or Cr), nTbW and nTbH are the width and height of the chroma transform block, respectively. Consequently, when the currently encoded transform block is a chroma transform block (cIdx > 0), a reference position for a placed luma transform block needs to be obtained using the width and height of the luma transform block at the same time. obtain the reference position. In Table 15, SubWidthC and SubHeightC are values defined according to the color format (for example, 4:2:0, 4:2:2, or 4:4:4) and specifically a width ratio and a ratio in height between a luma component and a chroma component, respectively (see Table 16 below). So, in a case of the chroma transform block, (nTbW * SubWidthC) and (nTbH * SubHeightC) can be the width and height relative to the placed luma transform block, respectively.
[0362] Consequentemente, xTbY + ( nTbW * SubWidthC ) / 2 e yTbY + ( nTbH * SubHeightC ) / 2 denotam o valor de uma posição central no bloco de transformada de luma colocado com base em uma posição superior esquerda da gravura atual e pode assim, indique precisamente o bloco de transformada de luma colocado. Tabela 16 [0362] Consequently, xTbY + ( nTbW * SubWidthC ) / 2 and yTbY + ( nTbH * SubHeightC ) / 2 denote the value of a central position in the luma transform block placed based on a top left position of the current engraving and can thus, precisely indicate the placed luma transform block. Table 16
[0363] Na Tabela 15, uma variável predModeIntra denota um valor de modo de intrapredição, e o valor da variável predModeIntra igual a INTRA_LT_CCLM, INTRA_L_CCLM ou INTRA_T_CCLM indica que o bloco de transformada atual é um bloco de transformada de croma. De acordo com um exemplo, no padrão VVC atual, INTRA_LT_CCLM, INTRA_L_CCLM e INTRA_T_CCLM correspondem respectivamente a valores de modo de 81, 82 e 83 entre os valores de modo de intrapredição. Portanto, conforme mostrado na Tabela 15, a posição de referência para o bloco de transformada de luma colocado precisa ser obtida usando o valor de xTbY + (nTbW * SubWidthC) / 2 e o valor de yTbY + (nTbH * SubHeightC) / 2.[0363] In Table 15, a predModeIntra variable denotes an intraprediction mode value, and the value of the predModeIntra variable equal to INTRA_LT_CCLM, INTRA_L_CCLM, or INTRA_T_CCLM indicates that the current transform block is a chroma transform block. According to an example, in the current VVC standard, INTRA_LT_CCLM, INTRA_L_CCLM and INTRA_T_CCLM respectively correspond to mode values of 81, 82 and 83 among the intraprediction mode values. Therefore, as shown in Table 15, the reference position for the placed luma transform block needs to be obtained using the value of xTbY + (nTbW * SubWidthC) / 2 and the value of yTbY + (nTbH * SubHeightC) / 2.
[0364] Como mostrado na Tabela 15, o valor da variável predModeIntra é atualizado em vista de uma variável intra_mip_flag[ xTbY + (nTbW * SubWidthC) / 2 ][ yTbY + (nTbH * SubHeightC)/2] e uma variável CuPredMode [0][xTbY+(nTbW*SubWidthC)/2][yTbY+(nTbH*SubHeightC)/2].[0364] As shown in Table 15, the value of the predModeIntra variable is updated in view of a variable intra_mip_flag[ xTbY + (nTbW * SubWidthC) / 2 ][ yTbY + (nTbH * SubHeightC)/2] and a variable CuPredMode [0 ][xTbY+(nTbW*SubWidthC)/2][yTbY+(nTbH*SubHeightC)/2].
[0365] intra_mip_flag é uma variável que indica se o bloco de transformada atual (ou unidade de codificação) é codificado por um método de intrapredição (MIP) com base em matriz e intra_mip_flag[ x ][ y ] é um valor de sinalizador que indica se o MIP é aplicado a uma posição correspondente às coordenadas (x, y) com base no componente luma quando uma posição superior esquerda na gravura atual é definida como (0, 0). As coordenadas x e y aumentam da esquerda para a direita e de cima para baixo, respectivamente, e quando o sinalizador que indica se o MIP é aplicado é 1, o sinalizador indica que o MIP é aplicado. Quando o sinalizador que indica se o MIP é aplicado é 0, o sinalizador indica que o MIP não é aplicado. O MIP pode ser aplicado apenas ao bloco luma.[0365] intra_mip_flag is a variable that indicates whether the current transform block (or coding unit) is encoded by a matrix-based intraprediction (MIP) method, and intra_mip_flag[x][y] is a flag value that indicates Whether MIP is applied to a position corresponding to the (x, y) coordinates based on the luma component when a top left position in the current engraving is set to (0, 0). The x and y coordinates increase from left to right and top to bottom, respectively, and when the flag indicating whether MIP is applied is 1, the flag indicates that MIP is applied. When the flag indicating whether MIP is applied is 0, the flag indicates that MIP is not applied. MIP can only be applied to the luma block.
[0366] De acordo com a parte modificada da Tabela 15, quando o valor de intra_mip_flag[ xTbY + ( nTbW * SubWidthC ) / 2 ][ yTbY + ( nTbH * SubHeightC ) / 2 ] no bloco de transformada de luma colocado é 1, o valor de predModeIntra está definido para um modo planar (INTRA_PLANAR).[0366] According to the modified part of Table 15, when the value of intra_mip_flag[ xTbY + ( nTbW * SubWidthC ) / 2 ][ yTbY + ( nTbH * SubHeightC ) / 2 ] in the placed luma transform block is 1, the predModeIntra value is set to a planar mode (INTRA_PLANAR).
[0367] O valor da variável CuPredMode[ 0 ][ xTbY + ( nTbW * SubWidthC ) / 2 ][ yTbY + ( nTbH * SubHeightC ) / 2 ] denota um valor de modo de predição correspondente a coordenadas ( xTbY + ( nTbW * SubWidthC ) / 2, yTbY + ( nTbH * SubHeightC ) / 2 ) quando a posição superior esquerda da gravura atual para o componente luma é definida (0, 0). O valor do modo de predição pode ter valores MODE_INTRA, MODE_IBC, MODE_PLT e MODE_INTER, que denotam um modo de intrapredição, um modo de predição de cópia de bloco intra (IBC), um modo de codificação de paleta (PLT) e um modo de interpredição, respectivamente. De acordo com a Tabela 15, quando o valor da variável CuPredMode[ 0 ][ xTbY + ( nTbW * SubWidthC ) / 2 ][ yTbY + ( nTbH * SubHeightC ) / 2 ] for MODE_IBC ou MODE_PLT, o valor da variável predModeIntra é definido para um modo DC. Em um caso diferente dos dois casos, o valor da variável predModeIntra é definido como IntraPredModeY[ xTbY + ( nTbW * SubWidthC ) / 2 ][ yTbY + ( nTbH * SubHeightC ) / 2 ] (valor do modo de intrapredição correspondente a um centro posição no bloco de transformada de luma colocado).[0367] The value of the variable CuPredMode[ 0 ][ xTbY + ( nTbW * SubWidthC ) / 2 ][ yTbY + ( nTbH * SubHeightC ) / 2 ] denotes a prediction mode value corresponding to coordinates ( xTbY + ( nTbW * SubWidthC ) / 2, yTbY + ( nTbH * SubHeightC ) / 2 ) when the top left position of the current engraving for the luma component is set (0, 0). The prediction mode value can have values MODE_INTRA, MODE_IBC, MODE_PLT, and MODE_INTER, which denote an intraprediction mode, an intrablock copy (IBC) prediction mode, a palette coding mode (PLT), and a interprediction, respectively. According to Table 15, when the value of variable CuPredMode[ 0 ][ xTbY + ( nTbW * SubWidthC ) / 2 ][ yTbY + ( nTbH * SubHeightC ) / 2 ] is MODE_IBC or MODE_PLT, the value of variable predModeIntra is set to a DC mode. In a case other than the two cases, the value of the variable predModeIntra is defined as IntraPredModeY[ xTbY + ( nTbW * SubWidthC ) / 2 ][ yTbY + ( nTbH * SubHeightC ) / 2 ] (value of the intraprediction mode corresponding to a center position in the placed luma transform block).
[0368] De acordo com um exemplo, o valor da variável predModeIntra pode ser atualizado mais uma vez com base no valor predModeIntra atualizado na Tabela 15, considerando se a intrapredição de grande angular é realizada conforme mostrado na tabela a seguir. Tabela 17 8.4.5.2.6 Processo de mapeamento do modo de intrapredição grande angular Entradas para este processo são: 1. uma variável predModeIntra especificando o modo de intrapredição, 2. uma variável nTbW especificando a largura do bloco de transformada, 3. uma variável nTbH especificando a altura do bloco de transformada, - uma variável cIdx especificando o componente de cor do bloco atual. Saída desse processo é o modo de intrapredição modificado predModeIntra. As variáveis nW e nH são derivadas como a seguir: 4. Se IntraSubPartitionsSplitType for igual a ISP_NO_SPLIT ou cIdx não for igual a 0, aplica-se o seguinte: nW = nTbW(8-111) nH = nTbH(8-112) 5. Caso contrário (IntraSubPartitionsSplitType não é igual a ISP_NO_SPLIT e cIdx é igual a 0), aplica-se o seguinte: nW = nCbW(8-113) nH = nCbH(8-114) A variável whRatio é definida igual a Abs(Log2(nW/nH)). Para blocos não quadrados (nW não é igual a nH), o modo de intrapredição predModeIntra é modificado como a seguir: 6. Se todas as condições a seguir forem verdadeiras, predModeIntra será definido como igual a (predModeIntra + 65). 7. nW é maior que nH 8. predModeIntra é maior ou igual a 2 9. predModeIntra é menor que (whRatio > 1) ? (8 + 2 * whRatio) : 8 10. Caso contrário, se todas as condições a seguir forem verdadeiras, predModeIntra será definido como (predModeIntra - 67). 11. nH é maior que nW 12. predModeIntra é menor ou igual a 66 13. predModeIntra é maior que (whRatio > 1) ? (60 - 2 * whRatio) : 60[0368] According to an example, the value of the predModeIntra variable can be updated once again based on the predModeIntra value updated in Table 15, considering whether wide-angle intraprediction is performed as shown in the following table. Table 17 8.4.5.2.6 Wide Angle Intraprediction Mode Mapping Process Inputs to this process are: 1. a predModeIntra variable specifying the intraprediction mode, 2. an nTbW variable specifying the width of the transform block, 3. an nTbH variable specifying the height of the transform block, - a cIdx variable specifying the color component of the current block. Output of this process is the modified intraprediction mode predModeIntra. The variables nW and nH are derived as follows: 4. If IntraSubPartitionsSplitType equals ISP_NO_SPLIT or cIdx does not equal 0, the following applies: nW = nTbW(8-111) nH = nTbH(8-112) 5 . Otherwise (IntraSubPartitionsSplitType is not equal to ISP_NO_SPLIT and cIdx is equal to 0), the following applies: nW = nCbW(8-113) nH = nCbH(8-114) The variable whRatio is set equal to Abs(Log2 (nW/nH)). For non-square blocks (nW is not equal to nH), the predModeIntra intraprediction mode is modified as follows: 6. If all of the following conditions are true, predModeIntra is set equal to (predModeIntra + 65). 7. nW is greater than nH 8. predModeIntra is greater than or equal to 2 9. predModeIntra is less than (whRatio > 1) ? (8 + 2 * whRatio) : 8 10. Otherwise, if all of the following conditions are true, predModeIntra will be set to (predModeIntra - 67). 11. nH is greater than nW 12. predModeIntra is less than or equal to 66 13. predModeIntra is greater than (whRatio > 1) ? (60 - 2 * whRatio) : 60
[0369] Os valores de entrada de predModeIntra, nTbW e nTbH em um processo de mapeamento mostrado na Tabela 17 são os mesmos que o valor da variável predModeIntra atualizado na Tabela 15 e nTbW e nTbH referenciados na Tabela 15, respectivamente.[0369] The input values of predModeIntra, nTbW, and nTbH in a mapping process shown in Table 17 are the same as the predModeIntra variable value updated in Table 15 and nTbW and nTbH referenced in Table 15, respectively.
[0370] Na Tabela 17, nCbW e nCbH denotam a largura e a altura de um bloco de codificação correspondente ao bloco de transformada, respectivamente, e uma variável IntraSubPartitionsSplitType indica se o modo de ISP é aplicado, em que IntraSubPartitionsSplitType igual a ISP_NO_SPLIT indica que a unidade de codificação é não particionada pelo ISP (ou seja, o modo de ISP não é aplicado). A variável IntraSubPartitionsSplitType diferente de ISP_NO_SPLIT indica que o modo de ISP é aplicado e, portanto, a unidade de codificação é particionada em dois ou quatro blocos de partição. Na Tabela 17, cIdx é um índice que indica um componente de cor. Um valor de cIdx igual a 0 indica um bloco luma e um valor de cIdx diferente de 0 indica um bloco croma. A saída de valor predModeIntra por meio do processo de mapeamento da Tabela 17 é um valor atualizado considerando se um modo de intrapredição de grande angular (WAIP) é aplicado.[0370] In Table 17, nCbW and nCbH denote the width and height of a coding block corresponding to the transform block, respectively, and a variable IntraSubPartitionsSplitType indicates whether ISP mode is applied, where IntraSubPartitionsSplitType equal to ISP_NO_SPLIT indicates that the encoding unit is not ISP-partitioned (that is, ISP mode is not applied). The IntraSubPartitionsSplitType variable other than ISP_NO_SPLIT indicates that ISP mode is applied and therefore the encoding unit is partitioned into two or four partition blocks. In Table 17, cIdx is an index that indicates a color component. A cIdx value of 0 indicates a luma block and a cIdx value other than 0 indicates a chroma block. The predModeIntra value output through the mapping process in Table 17 is an updated value considering whether a wide-angle intraprediction (WAIP) mode is applied.
[0371] Com relação ao valor predModeIntra atualizado pela Tabela 17, um conjunto de LFNST pode ser determinado por meio de uma relação de mapeamento mostrada na tabela a seguir. Tabela 18 [0371] With respect to the predModeIntra value updated by Table 17, a set of LFNST can be determined through a mapping relationship shown in the following table. Table 18
[0372] Na tabela acima, lfnstTrSetIdx denota um índice que indica um conjunto de LFNST e tem um valor de 0 a 3, o que indica que um total de quatro conjuntos de LFNST está configurado. Cada conjunto de LFNST pode incluir dois kernels de transformada, ou seja, kernels de LFNST (os kernels de transformada podem ser 16 x 16 matrizes ou 16 x 48 matrizes com base em uma direção direta dependendo de uma região à qual uma LFNST é aplicada) e um kernel de transformada a ser aplicado entre os dois kernels de transformada pode ser especificado através da sinalização do índice de LFNST. Além disso, é possível especificar se a LFNST deve ser aplicada por meio do índice de LFNST. No padrão VVC atual, o índice de LFNST pode ter valores de 0, 1 e 2, 0 indica que nenhuma LFNST é aplicada e 1 e 2 indicam os dois kernels de transformada, respectivamente.[0372] In the above table, lfnstTrSetIdx denotes an index that indicates an LFNST set and has a value from 0 to 3, which indicates that a total of four LFNST sets are configured. Each LFNST set can include two transform kernels, i.e. LFNST kernels (transform kernels can be 16 x 16 matrices or 16 x 48 matrices based on a forward direction depending on a region to which an LFNST is applied) and a transform kernel to be applied between the two transform kernels can be specified by signaling the LFNST index. Additionally, you can specify whether LFNST should be applied via the LFNST index. In the current VVC standard, the LFNST index can have values of 0, 1 and 2, 0 indicates that no LFNST is applied and 1 and 2 indicate the two transform kernels, respectively.
[0373] Os desenhos a seguir são fornecidos para descrever exemplos específicos da presente divulgação. Uma vez que as designações específicas de dispositivos ou as designações de sinais/mensagens/campos específicos ilustrados nos desenhos são fornecidas para ilustração, as características técnicas da presente divulgação não estão limitadas a designações específicas usadas nos desenhos a seguir.[0373] The following drawings are provided to describe specific examples of the present disclosure. Since specific device designations or specific signal/message/field designations illustrated in the drawings are provided for illustration, the technical features of the present disclosure are not limited to specific designations used in the following drawings.
[0374] A Figura 13 é um fluxograma que ilustra uma operação de um aparelho de decodificação de vídeo de acordo com uma modalidade da presente divulgação.[0374] Figure 13 is a flow chart illustrating an operation of a video decoding apparatus in accordance with an embodiment of the present disclosure.
[0375] Cada processo divulgado na Figura 13 é baseado em alguns dos detalhes descritos com referência à Figura 3 à Figura 12. Portanto, uma descrição de detalhes específicos sobrepostos aos detalhes descritos com referência à Figura 2 à Figura 12 será omitido ou será feito esquematicamente.[0375] Each process disclosed in Figure 13 is based on some of the details described with reference to Figure 3 to Figure 12. Therefore, a description of specific details superimposed on the details described with reference to Figure 2 to Figure 12 will be omitted or will be done schematically .
[0376] O aparelho de decodificação 200 de acordo com uma modalidade pode obter informações de modo de intrapredição e um índice de LFNST de um fluxo de bits (S1310).[0376] The decoding apparatus 200 in accordance with one embodiment may obtain intraprediction mode information and an LFNST index from a bit stream (S1310).
[0377] A informação do modo de intrapredição pode incluir um modo de intrapredição para um bloco vizinho (por exemplo, um bloco vizinho esquerdo e/ou superior) de um bloco atual e um índice de modo mais provável (MPM) indicando um dos candidatos de MPM em um Lista de MPM derivada com base em modos de candidatos adicionais ou informações de modo de intrapredição restantes indicando um dos modos de intrapredição restantes não incluídos nos candidatos de MPM.[0377] Intraprediction mode information may include an intraprediction mode for a neighboring block (e.g., a left and/or top neighboring block) of a current block and a most likely mode index (MPM) indicating one of the candidates of MPM in an MPM List derived based on additional candidate modes or remaining intraprediction mode information indicating one of the remaining intraprediction modes not included in the MPM candidates.
[0378] Além disso, as informações de modo intra podem incluir informações de sinalizador sps_cclm_enabled_flag indicando se um CCLM é aplicado ao bloco atual e informações intra_chroma_pred_mode sobre um modo de intrapredição para um componente de croma.[0378] Additionally, the intra mode information may include sps_cclm_enabled_flag flag information indicating whether a CCLM is applied to the current block and intra_chroma_pred_mode information about an intraprediction mode for a chroma component.
[0379] As informações de índice de LFNST são recebidas como informações de sintaxe e as informações de sintaxe são recebidas como uma sequência bin binarizada incluindo 0 e 1.[0379] LFNST index information is received as syntax information, and syntax information is received as a binarized bin sequence including 0 and 1.
[0380] Um elemento de sintaxe do índice de LFNST de acordo com a presente modalidade pode indicar se uma LFNST inversa ou uma transformada inseparável inversa é aplicada e qualquer uma das matrizes de kernel de transformada incluídas em um conjunto de transformada e quando o conjunto de transformada inclui duas matrizes do kernel de transformada, o elemento de sintaxe do índice de transformada pode ter três valores.[0380] An LFNST index syntax element in accordance with the present embodiment may indicate whether an inverse LFNST or an inverse inseparable transform is applied and any of the transform kernel matrices included in a transform set and when the set of transform includes two transform kernel matrices, the transform index syntax element can have three values.
[0381] Ou seja, de acordo com uma modalidade, os valores do elemento de sintaxe do índice de LFNST podem incluir 0 indicando que nenhuma LFNST inversa é aplicada a um bloco alvo, 1 indicando uma primeira matriz de kernel de transformada entre as matrizes de kernel de transformada e 2 indicando uma segunda matriz de kernel de transformada entre as matrizes de kernel de transformada.[0381] That is, according to one embodiment, the LFNST index syntax element values may include 0 indicating that no inverse LFNST is applied to a target block, 1 indicating a first transform kernel matrix between the LFNST matrices. transform kernel and 2 indicating a second transform kernel matrix between the transform kernel matrices.
[0382] O aparelho de decodificação 200 pode decodificar informações sobre coeficientes de transformada quantificados para o bloco atual do fluxo de bits e pode derivar coeficientes de transformada quantificados para o bloco alvo com base na informação sobre os coeficientes de transformada quantificados para o bloco atual. As informações sobre os coeficientes de transformada quantificados para o bloco alvo podem ser incluídas em um conjunto de parâmetros de sequência (SPS) ou um cabeçalho de fatia e podem incluir pelo menos uma de informações sobre se uma RST é aplicado, informações sobre um fator reduzido, informações sobre um mínimo tamanho de transformada para aplicar uma RST, informações sobre um tamanho máximo de transformada para aplicar uma RST, um tamanho de RST inverso e informações sobre um índice de transformada indicando qualquer uma das matrizes de kernel de transformada incluídas em um conjunto de transformada.[0382] The decoding apparatus 200 may decode information about quantized transform coefficients for the current block of the bit stream and may derive quantized transform coefficients for the target block based on information about the quantized transform coefficients for the current block. Information about the quantized transform coefficients for the target block may be included in a sequence parameter set (SPS) or a slice header and may include at least one of information about whether an RST is applied, information about a reduced factor , information about a minimum transform size to apply an RST, information about a maximum transform size to apply an RST, an inverse RST size, and information about a transform index indicating any of the transform kernel matrices included in a set of transformation.
[0383] O aparelho de decodificação 200 pode derivar coeficientes de transformada desquantizando informações residuais no bloco atual, isto é, os coeficientes de transformada quantizados, e pode organizar os coeficientes de transformada derivados em uma ordem de varredura predeterminada.[0383] The decoding apparatus 200 may derive transform coefficients by dequantizing residual information in the current block, i.e., the quantized transform coefficients, and may arrange the derived transform coefficients in a predetermined scan order.
[0384] Especificamente, os coeficientes de transformada derivados podem ser dispostos em unidades de bloco 4 x 4 de acordo com uma ordem de varredura diagonal reversa, e os coeficientes de transformada em um bloco 4 x 4 também podem ser organizados de acordo com a ordem de varredura diagonal reversa. Ou seja, os coeficientes de transformada desquantizados podem ser dispostos de acordo com uma ordem de varredura reversa aplicada em um codec de vídeo, como em VVC ou HEVC.[0384] Specifically, the derived transform coefficients can be arranged in 4 x 4 block units according to a reverse diagonal scan order, and the transform coefficients in a 4 x 4 block can also be arranged according to the order reverse diagonal scan. That is, the dequantized transform coefficients can be arranged according to a reverse scan order applied in a video codec, such as in VVC or HEVC.
[0385] O coeficiente de transformada derivado com base nas informações residuais pode ser o coeficiente de transformada desquantizado como descrito acima, ou podem ser coeficientes de transformada quantizados. Isto é, os coeficientes de transformada podem ser quaisquer dados para verificar se há dados diferentes de zero no bloco atual independentemente da quantização.[0385] The transform coefficient derived based on the residual information may be the dequantized transform coefficient as described above, or it may be quantized transform coefficients. That is, the transform coefficients can be any data to check for non-zero data in the current block regardless of quantization.
[0386] O aparelho de decodificação pode derivar um modo de intrapredição para um bloco croma como um modo de CCLM com base nas informações de modo de intrapredição (S1320).[0386] The decoding apparatus may derive an intraprediction mode for a chroma block as a CCLM mode based on the intraprediction mode information (S1320).
[0387] Por exemplo, o aparelho de decodificação pode receber informações sobre o modo de intrapredição para o bloco croma atual através do fluxo de bits, e pode derivar o modo de CCLM como o modo de intrapredição para o bloco croma atual com base nas informações de modo de intrapredição.[0387] For example, the decoding apparatus may receive information about the intraprediction mode for the current chroma block through the bit stream, and may derive the CCLM mode as the intraprediction mode for the current chroma block based on the information in intraprediction mode.
[0388] O modo de CCLM pode incluir um modo de CCLM superior esquerdo, um modo de CCLM superior, ou um modo de CCLM esquerdo.[0388] The CCLM mode may include a top left CCLM mode, a top CCLM mode, or a left CCLM mode.
[0389] Como descrito acima, o aparelho de decodificação pode derivar uma amostra residual aplicando uma LFNST, que é uma transformada não separável, ou uma MTS, que é uma transformada separável, e essas transformadas podem ser realizadas respectivamente com base no índice de LFNST indicando um kernel de LFNST, isto é, uma matriz de LFNST, e um índice de MTS indicando um kernel de MTS.[0389] As described above, the decoding apparatus can derive a residual sample by applying an LFNST, which is a non-separable transform, or an MTS, which is a separable transform, and these transforms can be performed respectively based on the LFNST index indicating an LFNST kernel, that is, an LFNST matrix, and an MTS index indicating an MTS kernel.
[0390] Para a LFNST, um conjunto de LFNST precisa ser determinado, e o conjunto de LFNST tem uma relação de mapeamento com um modo de intrapredição para o bloco atual.[0390] For LFNST, a set of LFNST needs to be determined, and the set of LFNST has a mapping relationship with an intraprediction mode for the current block.
[0391] O aparelho de decodificação pode atualizar o modo de intrapredição para o bloco croma com base em um modo de intrapredição para um bloco luma correspondente ao bloco croma para LFNST inversa do bloco croma (S1330).[0391] The decoding apparatus may update the intraprediction mode for the chroma block based on an intraprediction mode for a luma block corresponding to the chroma block for LFNST inverse of the chroma block (S1330).
[0392] De acordo com um exemplo, o modo de intrapredição atualizado pode ser derivado como um modo de intrapredição correspondente a uma posição específica no bloco luma, e a posição específica pode ser definida com base em um formato de cor do bloco croma.[0392] According to an example, the updated intraprediction mode can be derived as an intraprediction mode corresponding to a specific position in the luma block, and the specific position can be defined based on a color format of the chroma block.
[0393] A posição específica pode ser uma posição central do bloco luma e pode ser representada por ((xTbY + (nTbW * SubWidthC)/2), (yTbY + (nTbH * SubHeightC)/2)).[0393] The specific position may be a central position of the luma block and may be represented by ((xTbY + (nTbW * SubWidthC)/2), (yTbY + (nTbH * SubHeightC)/2)).
[0394] Na posição central, xTbY e yTbY denotam coordenadas superior esquerda do bloco luma, isto é, uma posição superior esquerda em uma referência de amostra luma para um bloco de transformada atual, nTbW e nTbH denotam a largura e altura do bloco croma, e SubWidthC e SubHeightC correspondem a variáveis correspondentes ao formato de cor. ((xTbY + (nTbW * SubWidthC)/2), (yTbY + (nTbH * SubHeightC)/2)) denota uma posição central de um bloco de transformada luma, e IntraPredModeY[xTbY + (nTbW * SubWidthC)/2][yTbY + (nTbH * SubHeightC)/2] denota um modo de intrapredição para o bloco luma para a posição.[0394] In the center position, xTbY and yTbY denote top-left coordinates of the luma block, that is, a top-left position in a luma sample reference for a current transform block, nTbW and nTbH denote the width and height of the chroma block, and SubWidthC and SubHeightC correspond to variables corresponding to the color format. ((xTbY + (nTbW * SubWidthC)/2), (yTbY + (nTbH * SubHeightC)/2)) denotes a central position of a luma transform block, and IntraPredModeY[xTbY + (nTbW * SubWidthC)/2][ yTbY + (nTbH * SubHeightC)/2] denotes an intraprediction mode for the luma block for position.
[0395] SubWidthC e SubHeightC podem ser derivados como mostrado na Tabela 16. Isto é, quando o formato de cor é 4:2:0, SubWidthC e SubHeighC são 2, e quando o formato de cor é 4:2:2, SubWidthC é 2 e SubHeightC é 1.[0395] SubWidthC and SubHeightC can be derived as shown in Table 16. That is, when the color format is 4:2:0, SubWidthC and SubHeighC are 2, and when the color format is 4:2:2, SubWidthC is 2 and SubHeightC is 1.
[0396] Como mostrado na Tabela 15, para designar a posição específica do bloco luma correspondente ao bloco croma, independentemente do formato da cor, o formato da cor é refletido em uma variável que indica a posição específica.[0396] As shown in Table 15, to designate the specific position of the luma block corresponding to the chroma block, regardless of the color format, the color format is reflected in a variable that indicates the specific position.
[0397] De acordo com um exemplo, quando o modo de intrapredição para o bloco luma correspondente à posição específica é uma modo de intrapredição baseado em matriz (doravante, “MIP”), o aparelho de decodificação pode definir o modo de intrapredição atualizado para um modo intraplanar.[0397] According to an example, when the intraprediction mode for the luma block corresponding to the specific position is a matrix-based intraprediction mode (hereinafter, “MIP”), the decoding apparatus may set the updated intraprediction mode to an intraplanar mode.
[0398] O modo de MIP pode ser denominado como intrapredição ponderada linear afim (ALWIP) ou intrapredição ponderada por matriz (MWIP). Quando o MIP é aplicado ao bloco atual, as amostras de predição para o bloco atual podem ser derivadas ii) executando um procedimento de multiplicação de matriz-vetor i) usando amostras de referência vizinhas que foram submetidas a um procedimento de cálculo de média e iii) realizando ainda um procedimento horizontal /procedimento de interpolação vertical.[0398] The MIP mode can be referred to as affine linear weighted intraprediction (ALWIP) or matrix weighted intraprediction (MWIP). When MIP is applied to the current block, prediction samples for the current block can be derived by ii) performing a matrix-vector multiplication procedure i) using neighboring reference samples that have been subjected to an averaging procedure and iii ) also performing a horizontal procedure/vertical interpolation procedure.
[0399] Alternativamente, de acordo com um exemplo, quando o modo de intrapredição correspondente à posição específica é um modo de cópia intrabloco (IBC) ou um modo de paleta, o aparelho de decodificação pode definir o modo de intrapredição atualizado para um modo intra DC.[0399] Alternatively, according to an example, when the intraprediction mode corresponding to the specific position is an intrablock copy (IBC) mode or a palette mode, the decoding apparatus may set the updated intraprediction mode to an intraprediction mode. A.D.
[0400] O modo de predição de IBC ou o modo de paleta podem ser usados para codificar uma imagem/vídeo de conteúdo incluindo um jogo, por exemplo, codificação de conteúdo de tela (SCC). A IBC basicamente executa a predição dentro de uma gravura atual, mas pode ser realizado de maneira semelhante à interpredição, pois um bloco de referência é derivado da gravura atual. Ou seja, a IBC pode usar pelo menos uma das técnicas de interpredição descritas na presente divulgação. O modo de paleta pode ser considerado como um exemplo de intracodificação ou intrapredição. Quando o modo de paleta é aplicado, um valor de uma amostra na gravura pode ser sinalizado com base nas informações de uma tabela de paleta e um índice de paleta.[0400] IBC prediction mode or palette mode can be used to encode an image/video content including a game, e.g., screen content coding (SCC). IBC basically performs prediction within a current picture, but it can be performed in a similar way to interprediction in that a reference block is derived from the current picture. That is, the IBC may use at least one of the interprediction techniques described in the present disclosure. Palette mode can be considered as an example of intracoding or intraprediction. When palette mode is applied, a value of a sample in the engraving can be flagged based on information from a palette table and a palette index.
[0401] Em resumo, quando o modo de intrapredição para a posição central é o modo de MIP, o modo de IBC, e o modo de paleta, o modo de intrapredição para o bloco croma pode ser atualizado para um modo específico, como o modo intraplanar ou o modo intra DC.[0401] In summary, when the intraprediction mode for the center position is MIP mode, IBC mode, and palette mode, the intraprediction mode for the chroma block can be updated to a specific mode, such as intraplanar mode or intra DC mode.
[0402] Quando o modo de intrapredição para a posição central não é o modo de MIP, o modo de IBC, e o modo de paleta, o modo de intrapredição para o bloco croma pode ser atualizado para o modo de intrapredição do bloco luma em relação à posição central para refletir uma associação entre o bloco croma e o bloco luma.[0402] When the intraprediction mode for the center position is not the MIP mode, the IBC mode, and the palette mode, the intraprediction mode for the chroma block can be updated to the intraprediction mode of the luma block in relative to the central position to reflect an association between the chroma block and the luma block.
[0403] O aparelho de decodificação pode determinar um conjunto de LFNST incluindo matrizes de LFNST com base no modo de intrapredição atualizado (S1340), e pode derivar coeficientes de transformada para o bloco croma com base em uma matriz de LFNST derivada do conjunto de LFNST (S1350).[0403] The decoding apparatus may determine an LFNST set including LFNST matrices based on the updated intraprediction mode (S1340), and may derive transform coefficients for the chroma block based on an LFNST matrix derived from the LFNST set (S1350).
[0404] Qualquer uma da pluralidade de matrizes de LFNST pode ser selecionada com base no conjunto de LFNST e no índice de LFNST.[0404] Any of the plurality of LFNST arrays may be selected based on the LFNST set and the LFNST index.
[0405] Como mostrado na Tabela 18, o conjunto de transformada de LFNST é derivado de acordo com o modo de intrapredição, e 81 a 83 indicando o modo de CCLM no modo de intrapredição são omitidos, porque o conjunto de transformada de LFNST é derivado usando um valor de modo intra para um bloco luma correspondente no modo de CCLM.[0405] As shown in Table 18, the LFNST transform set is derived according to the intraprediction mode, and 81 to 83 indicating the CCLM mode in the intraprediction mode are omitted, because the LFNST transform set is derived using an intra mode value for a corresponding luma block in CCLM mode.
[0406] De acordo com um exemplo, como mostrado na Tabela 18, qualquer um dos quatro conjuntos de LFNST pode ser determinado de acordo com o modo de intrapredição para o bloco atual, e um conjunto de LFNST a ser aplicado ao bloco croma atual também pode ser determinado.[0406] According to an example, as shown in Table 18, any of the four sets of LFNST can be determined according to the intraprediction mode for the current block, and a set of LFNST to be applied to the current chroma block as well can be determined.
[0407] O aparelho de decodificação pode realizar uma RST inversa, por exemplo, uma LFNST inversa, aplicando a matriz de LFNST aos coeficientes de transformada desquantizados, desse modo derivando coeficientes de transformada modificados para o bloco croma atual.[0407] The decoding apparatus may perform an inverse RST, e.g., an inverse LFNST, by applying the LFNST matrix to the dequantized transform coefficients, thereby deriving modified transform coefficients for the current chroma block.
[0408] O aparelho de decodificação pode derivar amostras residuais dos coeficientes de transformada através de uma transformada inversa primária (S1360). Uma MTS pode ser usada na transformada inversa primária.[0408] The decoding apparatus may derive residual samples of the transform coefficients via a primary inverse transform (S1360). An MTS can be used in the primary inverse transform.
[0409] Além disso, o aparelho de decodificação pode gerar amostras reconstruídas com base em amostras residuais para o bloco atual e amostras de predição para o bloco atual. O bloco atual pode ser o bloco luma atual ou o bloco croma atual.[0409] Furthermore, the decoding apparatus may generate reconstructed samples based on residual samples for the current block and prediction samples for the current block. The current block can be the current luma block or the current chroma block.
[0410] Os desenhos a seguir são fornecidos para descrever exemplos específicos da presente divulgação. Uma vez que as designações específicas de dispositivos ou as designações de sinais/mensagens/campos específicos ilustrados nos desenhos são fornecidas para ilustração, as características técnicas da presente divulgação não estão limitadas a designações específicas usadas nos desenhos a seguir.[0410] The following drawings are provided to describe specific examples of the present disclosure. Since specific device designations or specific signal/message/field designations illustrated in the drawings are provided for illustration, the technical features of the present disclosure are not limited to specific designations used in the following drawings.
[0411] A Figura 14 é um fluxograma que ilustra uma operação de um aparelho de codificação de vídeo de acordo com uma modalidade da presente divulgação.[0411] Figure 14 is a flowchart illustrating an operation of a video coding apparatus in accordance with an embodiment of the present disclosure.
[0412] Cada processo divulgado na Figura 14 é baseado em alguns dos detalhes descritos com referência à Figura 3 à Figura 12. Portanto, uma descrição de detalhes específicos sobrepostos aos detalhes descritos com referência à Figura 1 e Figura 3 à Figura 12 será omitido ou será feito esquematicamente.[0412] Each process disclosed in Figure 14 is based on some of the details described with reference to Figure 3 to Figure 12. Therefore, a description of specific details superimposed on the details described with reference to Figure 1 and Figure 3 to Figure 12 will be omitted or will be done schematically.
[0413] O aparelho de codificação 100 de acordo com uma modalidade pode derivar um modo de intrapredição para um bloco croma como um modo de CCLM (S1410).[0413] The coding apparatus 100 in accordance with one embodiment may derive an intraprediction mode for a chroma block as a CCLM mode (S1410).
[0414] Por exemplo, o aparelho de codificação pode determinar o modo de intrapredição para o bloco croma atual com base em um custo de distorção de taxa (RD) (ou RDO). Aqui, o custo de RD pode ser derivado com base na soma das diferenças absolutas (SAD). O aparelho de codificação pode determinar o modo de CCLM como o modo de intrapredição para o bloco croma atual com base no custo de RD.[0414] For example, the encoding apparatus may determine the intraprediction mode for the current chroma block based on a rate distortion (RD) cost (or RDO). Here, the RD cost can be derived based on the sum of absolute differences (SAD). The coding apparatus may determine the CCLM mode as the intraprediction mode for the current chroma block based on the RD cost.
[0415] O modo de CCLM pode incluir um modo de CCLM superior esquerdo, um modo de CCLM superior, ou um modo de CCLM esquerdo.[0415] The CCLM mode may include a top left CCLM mode, a top CCLM mode, or a left CCLM mode.
[0416] O aparelho de codificação pode codificar informações sobre o modo de intrapredição para o bloco croma atual, e as informações sobre o modo de intrapredição podem ser sinalizadas através de um fluxo de bits. Informações relacionadas à predição sobre o bloco croma atual podem incluir as informações sobre o modo de intrapredição.[0416] The encoding apparatus may encode intraprediction mode information for the current chroma block, and the intraprediction mode information may be signaled via a bit stream. Prediction-related information about the current chroma block may include information about the intraprediction mode.
[0417] O aparelho de codificação pode derivar amostras de predição para o bloco croma com base no modo de CCLM (S1420).[0417] The encoding apparatus may derive prediction samples for the chroma block based on the CCLM mode (S1420).
[0418] De acordo com uma modalidade, o aparelho de codificação pode derivar amostras residuais para o bloco croma com base nas amostras de predição (S1430).[0418] According to one embodiment, the coding apparatus may derive residual samples for the chroma block based on the prediction samples (S1430).
[0419] De acordo com uma modalidade, o aparelho de codificação pode derivar coeficientes de transformada para o bloco croma com base em uma transformada primária nas amostras residuais.[0419] According to one embodiment, the coding apparatus may derive transform coefficients for the chroma block based on a primary transform in the residual samples.
[0420] A transformada primária pode ser realizada através de uma pluralidade de kernels de transformada, caso este em que um kernel de transformada pode ser selecionado com base no modo de intrapredição.[0420] The primary transform can be performed through a plurality of transform kernels, in which case a transform kernel can be selected based on the intraprediction mode.
[0421] O aparelho de codificação pode atualizar o modo de intrapredição para o bloco croma com base em um modo de intrapredição para um bloco luma correspondente ao bloco croma para LFNST do bloco croma (S1440).[0421] The encoding apparatus may update the intraprediction mode for the chroma block based on an intraprediction mode for a luma block corresponding to the chroma block for LFNST of the chroma block (S1440).
[0422] Como mostrado na Tabela 15, o aparelho de codificação pode atualizar o modo de CCLM para o bloco croma com base no modo de intrapredição para o bloco luma correspondente ao bloco croma (-Quando predModeIntra é igual a INTRA_LT_CCLM, INTRA_L_CCLM, ou INTRA_T_CCLM, predModeIntra é derivado como a seguir:).[0422] As shown in Table 15, the encoding apparatus may update the CCLM mode for the chroma block based on the intraprediction mode for the luma block corresponding to the chroma block (-When predModeIntra equals INTRA_LT_CCLM, INTRA_L_CCLM, or INTRA_T_CCLM , predModeIntra is derived as follows :).
[0423] De acordo com um exemplo, o modo de intrapredição atualizado pode ser derivado como um modo de intrapredição correspondente a uma posição específica no bloco luma, e a posição específica pode ser definida com base em um formato de cor do bloco croma.[0423] According to an example, the updated intraprediction mode can be derived as an intraprediction mode corresponding to a specific position in the luma block, and the specific position can be defined based on a color format of the chroma block.
[0424] A posição específica pode ser uma posição central do bloco luma e pode ser representada por ((xTbY + (nTbW * SubWidthC)/2), (yTbY + (nTbH * SubHeightC)/2)).[0424] The specific position may be a central position of the luma block and may be represented by ((xTbY + (nTbW * SubWidthC)/2), (yTbY + (nTbH * SubHeightC)/2)).
[0425] Na posição central, xTbY e yTbY denotam coordenadas superior esquerda do bloco luma, isto é, uma posição superior esquerda em uma referência de amostra luma para um bloco de transformada atual, nTbW e nTbH denotam a largura e altura do bloco croma, e SubWidthC e SubHeightC correspondem a variáveis correspondentes ao formato de cor. ((xTbY + (nTbW * SubWidthC)/2), (yTbY + (nTbH * SubHeightC)/2)) denota uma posição central de um bloco de transformada luma, e IntraPredModeY[xTbY + (nTbW * SubWidthC)/2][yTbY + (nTbH * SubHeightC)/2] denota um modo de intrapredição para o bloco luma para a posição.[0425] In the center position, xTbY and yTbY denote top-left coordinates of the luma block, that is, a top-left position in a luma sample reference for a current transform block, nTbW and nTbH denote the width and height of the chroma block, and SubWidthC and SubHeightC correspond to variables corresponding to the color format. ((xTbY + (nTbW * SubWidthC)/2), (yTbY + (nTbH * SubHeightC)/2)) denotes a central position of a luma transform block, and IntraPredModeY[xTbY + (nTbW * SubWidthC)/2][ yTbY + (nTbH * SubHeightC)/2] denotes an intraprediction mode for the luma block for position.
[0426] SubWidthC e SubHeightC podem ser derivados como mostrado na Tabela 16. Isto é, quando o formato de cor é 4:2:0, SubWidthC e SubHeightC são 2, e quando o formato de cor é 4:2:2, SubWidthC é 2 e SubHeightC é 1.[0426] SubWidthC and SubHeightC can be derived as shown in Table 16. That is, when the color format is 4:2:0, SubWidthC and SubHeightC are 2, and when the color format is 4:2:2, SubWidthC is 2 and SubHeightC is 1.
[0427] Como mostrado na Tabela 15, para designar a posição específica do bloco luma correspondente ao bloco croma, independentemente do formato da cor, o formato da cor é refletido em uma variável que indica a posição específica.[0427] As shown in Table 15, to designate the specific position of the luma block corresponding to the chroma block, regardless of the color format, the color format is reflected in a variable indicating the specific position.
[0428] De acordo com um exemplo, quando o modo de intrapredição para o bloco luma correspondente à posição específica é um modo de intrapredição baseado em matriz (doravante, “MIP”), o aparelho de codificação pode definir o modo de intrapredição atualizado para um modo intraplanar.[0428] According to an example, when the intraprediction mode for the luma block corresponding to the specific position is a matrix-based intraprediction mode (hereinafter, “MIP”), the coding apparatus may set the updated intraprediction mode to an intraplanar mode.
[0429] O modo de MIP pode ser denominado como intrapredição ponderada linear afim (ALWIP) ou intrapredição ponderada por matriz (MWIP). Quando o MIP é aplicado ao bloco atual, as amostras de predição para o bloco atual podem ser derivadas ii) executando um procedimento de multiplicação de matriz-vetor i) usando amostras de referência vizinhas que foram submetidas a um procedimento de cálculo de média e iii) realizando ainda um procedimento horizontal /procedimento de interpolação vertical.[0429] The MIP mode can be referred to as affine linear weighted intraprediction (ALWIP) or matrix weighted intraprediction (MWIP). When MIP is applied to the current block, prediction samples for the current block can be derived by ii) performing a matrix-vector multiplication procedure i) using neighboring reference samples that have been subjected to an averaging procedure and iii ) also performing a horizontal procedure/vertical interpolation procedure.
[0430] Alternativamente, de acordo com um exemplo, quando o modo de intrapredição correspondente à posição específica é um modo de cópia intrabloco (IBC) ou um modo de paleta, o aparelho de codificação pode definir o modo de intrapredição atualizado para um modo intra DC.[0430] Alternatively, according to an example, when the intraprediction mode corresponding to the specific position is an intrablock copy (IBC) mode or a palette mode, the coding apparatus may set the updated intraprediction mode to an intraprediction mode. A.D.
[0431] O modo de predição de IBC ou o modo de paleta podem ser usados para codificar uma imagem/vídeo de conteúdo incluindo um jogo, por exemplo, codificação de conteúdo de tela (SCC). A IBC basicamente executa a predição dentro de uma gravura atual, mas pode ser realizado de maneira semelhante à interpredição, pois um bloco de referência é derivado da gravura atual. Ou seja, a IBC pode usar pelo menos uma das técnicas de interpredição descritas na presente divulgação. O modo de paleta pode ser considerado como um exemplo de intracodificação ou intrapredição. Quando o modo de paleta é aplicado, um valor de uma amostra na gravura pode ser sinalizado com base nas informações de uma tabela de paleta e um índice de paleta.[0431] IBC prediction mode or palette mode can be used to encode an image/video content including a game, e.g., screen content coding (SCC). IBC basically performs prediction within a current picture, but it can be performed in a similar way to interprediction in that a reference block is derived from the current picture. That is, the IBC may use at least one of the interprediction techniques described in the present disclosure. Palette mode can be considered as an example of intracoding or intraprediction. When palette mode is applied, a value of a sample in the engraving can be flagged based on information from a palette table and a palette index.
[0432] Em resumo, quando o modo de intrapredição para a posição central é o modo de MIP, o modo de IBC e o modo de paleta, o modo de intrapredição para o bloco croma pode ser atualizado para um modo específico, como o modo intraplanar ou o modo intra DC.[0432] In summary, when the intraprediction mode for the center position is MIP mode, IBC mode, and palette mode, the intraprediction mode for the chroma block can be updated to a specific mode, such as the intraplanar or intra DC mode.
[0433] Quando o modo de intrapredição para a posição central não é o modo de MIP, o modo de IBC e o modo de paleta, o modo de intrapredição para o bloco croma pode ser atualizado para o modo de intrapredição do bloco luma em relação à posição central para refletir uma associação entre o bloco croma e o bloco luma.[0433] When the intraprediction mode for the center position is not the MIP mode, the IBC mode and the palette mode, the intraprediction mode for the chroma block can be updated to the intraprediction mode of the luma block relative to to the central position to reflect an association between the chroma block and the luma block.
[0434] O aparelho de codificação pode determinar um conjunto de LFNST incluindo matrizes de LFNST com base no modo de intrapredição atualizado (S1450), e pode derivar coeficientes de transformada modificados para o bloco croma com base nas amostras residuais e uma matriz de LFNST (S1460).[0434] The coding apparatus may determine a set of LFNST including LFNST matrices based on the updated intraprediction mode (S1450), and may derive modified transform coefficients for the chroma block based on the residual samples and an LFNST matrix ( S1460).
[0435] O aparelho de codificação pode determinar o conjunto de transformada com base em uma relação de mapeamento de acordo com o modo de intrapredição aplicado ao bloco atual e pode realizar uma LFNST, ou seja, uma transformada não separável, com base em qualquer uma das duas matrizes de LFNST incluída no conjunto de transformada.[0435] The coding apparatus may determine the transform set based on a mapping relation in accordance with the intraprediction mode applied to the current block and may perform an LFNST, i.e., a non-separable transform, based on any of the two LFNST matrices included in the transform set.
[0436] Como descrito acima, uma pluralidade de conjuntos de transformada pode ser determinada de acordo com um modo de intrapredição para um bloco de transformada a ser transformado. Uma matriz aplicada à LFNST é a transposição de uma matriz usada em uma LFNST inversa.[0436] As described above, a plurality of transform sets can be determined according to an intraprediction mode for a transform block to be transformed. A matrix applied to LFNST is the transpose of a matrix used in an inverse LFNST.
[0437] Em um exemplo, a matriz de LFNST pode ser uma matriz não quadrada na qual o número de linhas é menor que o número de colunas.[0437] In an example, the LFNST matrix may be a non-square matrix in which the number of rows is less than the number of columns.
[0438] O aparelho de codificação pode derivar coeficientes de transformada quantificados realizando a quantificação com base nos coeficientes de transformada modificados para o bloco croma atual e pode codificar e emitir informações de imagem incluindo informações sobre os coeficientes de transformada quantificados, informações sobre o modo de intrapredição e um índice de LFNST que indica a matriz de LFNST (S1470).[0438] The encoding apparatus may derive quantized transform coefficients by performing quantitation based on the modified transform coefficients for the current chroma block and may encode and output image information including information about the quantized transform coefficients, information about the mode of intraprediction and an LFNST index that indicates the LFNST matrix (S1470).
[0439] Especificamente, o aparelho de codificação 100 pode gerar a informação sobre os coeficientes de transformada quantificados e pode codificar a informação gerada sobre os coeficientes de transformada quantificados.[0439] Specifically, the coding apparatus 100 can generate information about the quantized transform coefficients and can encode the information generated about the quantized transform coefficients.
[0440] Em um exemplo, as informações sobre os coeficientes de transformada quantizados podem incluir pelo menos uma das informações sobre se a LFNST é aplicada, informações sobre um fator reduzido, informações sobre um tamanho mínimo de transformada para aplicar a LFNST e informações sobre um máximo tamanho de transformada para aplicar a LFNST.[0440] In an example, information about quantized transform coefficients may include at least one of information about whether LFNST is applied, information about a reduced factor, information about a minimum transform size to apply LFNST, and information about a maximum transform size to apply LFNST.
[0441] O aparelho de codificação pode codificar, como as informações sobre o modo intra, sinalizar informações indicando se o CCLM é aplicado ao bloco atual, que é sps_cclm_enabled_flag, e informações sobre um modo de intrapredição para um componente de croma, que é intra_chroma_pred_mode.[0441] The encoding apparatus may encode, such as intra mode information, signal information indicating whether CCLM is applied to the current block, which is sps_cclm_enabled_flag, and information about an intraprediction mode for a chroma component, which is intra_chroma_pred_mode .
[0442] As informações sobre o modo de CCLM, que é intra_chroma_pred_mode, podem indicar o modo de CCLM superior esquerdo, o modo de CCLM superior ou o modo de CCLM esquerdo.[0442] Information about the CCLM mode, which is intra_chroma_pred_mode, may indicate the top left CCLM mode, the top CCLM mode, or the left CCLM mode.
[0443] Na presente divulgação, pelo menos um dentre quantização/desquantização e/ou transformada/transformada inversa pode ser omitido. Quando a quantificação/desquantização é omitida, um coeficiente de transformada quantificado pode ser denominado como um coeficiente de transformada. Quando a transformada/transformada inversa é omitida, o coeficiente de transformada pode ser denominado como um coeficiente ou um coeficiente residual, ou ainda pode ser denominado como um coeficiente de transformada para consistência de expressão.[0443] In the present disclosure, at least one of quantization/dequantization and/or transform/inverse transform may be omitted. When quantization/dequantization is omitted, a quantified transform coefficient can be termed as a transform coefficient. When the transform/inverse transform is omitted, the transform coefficient may be termed as a coefficient or a residual coefficient, or may be termed as a transform coefficient for consistency of expression.
[0444] Além disso, na presente divulgação, um coeficiente de transformada quantificado e um coeficiente de transformada podem ser denominados como um coeficiente de transformada e um coeficiente de transformada escalonado, respectivamente. Neste caso, a informação residual pode incluir informação sobre um(s) coeficiente(s) de transformada e a informação sobre o(s) coeficiente(s) de transformada pode ser sinalizada através de uma sintaxe de codificação residual. Os coeficientes de transformada podem ser derivados com base na informação residual (ou informação sobre o(s) coeficiente(s) de transformada), e os coeficientes de transformada escalonados podem ser derivados através da transformada inversa (escalonamento) dos coeficientes de transformada. Amostras residuais podem ser derivadas com base na transformada inversa (transformada) dos coeficientes de transformada em escala. Esses detalhes também podem ser aplicados/expressos em outras partes da presente divulgação.[0444] Furthermore, in the present disclosure, a quantified transform coefficient and a transform coefficient may be referred to as a transform coefficient and a scaled transform coefficient, respectively. In this case, the residual information may include information about a transform coefficient(s) and the information about the transform coefficient(s) may be signaled using a residual encoding syntax. Transform coefficients can be derived based on 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 derived based on the inverse transform (transform) of the scaled transform coefficients. These details may also be applied/expressed elsewhere in this disclosure.
[0445] Nas modalidades descritas acima, os métodos são explicados com base em fluxogramas por meio de uma série de etapas ou blocos, mas a presente divulgação não se limita à ordem das etapas e uma determinada etapa pode ser realizada em ordem ou etapa diferente da descrita acima, ou concomitantemente com outra etapa. Além disso, pode ser entendido por uma pessoa versada na técnica que as etapas mostradas em um fluxograma não são exclusivas e que outra etapa pode ser incorporada ou uma ou mais etapas do fluxograma podem ser removidas sem afetar o escopo da presente divulgação.[0445] In the embodiments described above, the methods are explained based on flowcharts through a series of steps or blocks, but the present disclosure is not limited to the order of the steps and a given step may be performed in a different order or step than described above, or concomitantly with another step. Furthermore, it may be understood by a person skilled in the art that the steps shown in a flowchart are not exclusive and that another step may be incorporated or one or more steps of the flowchart may be removed without affecting the scope of the present disclosure.
[0446] Os métodos descritos acima de acordo com a presente divulgação podem ser implementados como uma forma de software e um aparelho de codificação e/ou aparelho de decodificação de acordo com a divulgação pode ser incluído em um dispositivo para processamento de imagem, tal como uma TV, um computador, um smartphone, um decodificador, um dispositivo de exibição ou semelhante.[0446] The methods described above in accordance with the present disclosure may be implemented as a form of software and an encoding apparatus and/or decoding apparatus in accordance with the disclosure may be included in a device for image processing, such as a TV, a computer, a smartphone, a set-top box, a display device or the like.
[0447] Quando as modalidades na presente divulgação são incorporadas por software, os métodos descritos acima podem ser incorporados como módulos (processos, funções ou semelhantes) para executar as funções descritas acima. Os módulos podem ser armazenados em uma memória e podem ser executados por um processador. A memória pode estar dentro ou fora do processador e pode ser conectada ao processador de várias maneiras bem conhecidas. O processador pode incluir um circuito integrado específico de aplicativo (ASIC), outro chipset, circuito lógico e/ou um dispositivo de processamento de dados. A memória pode incluir uma memória somente leitura (ROM), uma memória de acesso aleatório (RAM), uma memória flash, um cartão de memória, um meio de armazenamento e/ou outro dispositivo de armazenamento. Ou seja, as modalidades descritas na presente divulgação podem ser incorporadas e executadas em um processador, um microprocessador, um controlador ou um chip. Por exemplo, as unidades de função mostradas em cada desenho podem ser incorporadas e executadas em um computador, um processador, um microprocessador, um controlador ou um chip.[0447] When the embodiments in the present disclosure are embodied by software, the methods described above may be incorporated as modules (processes, functions, or the like) to perform the functions described above. Modules can be stored in memory and can be executed by a processor. Memory can be inside or outside the processor and can be connected to the processor in several well-known ways. The processor may include an application-specific integrated circuit (ASIC), another chipset, logic circuit, and/or a data processing device. The memory may include a read-only memory (ROM), a random access memory (RAM), a flash memory, a memory card, a storage medium and/or other storage device. That is, the embodiments described in the present disclosure can be incorporated and executed on a processor, a microprocessor, a controller, or a chip. For example, the function units shown in each drawing may be incorporated and executed in a computer, a processor, a microprocessor, a controller, or a chip.
[0448] Além disso, o aparelho de decodificação e o aparelho de codificação ao qual a presente divulgação é aplicada podem ser incluídos em um transceptor de transmissão de multimídia, um terminal de comunicação móvel, um dispositivo de vídeo de cinema em casa, um dispositivo de vídeo de cinema digital, uma câmera de vigilância, um dispositivo de bate-papo por vídeo, um dispositivo de comunicação em tempo real, como comunicação de vídeo, um dispositivo móvel de transmissão, um meio de armazenamento, uma câmera de vídeo, um dispositivo de fornecimento de serviço de vídeo sob demanda (VoD), um dispositivo de vídeo over the top (OTT), um dispositivo de Internet dispositivo de fornecimento de serviço de streaming, um dispositivo de vídeo tridimensional (3D), um dispositivo de vídeo de telefonia e um dispositivo de vídeo médico, e pode ser usado para processar um sinal de vídeo ou um sinal de dados. Por exemplo, o dispositivo de vídeo over the top (OTT) pode incluir um console de jogos, um Blu-ray player, uma TV com acesso à Internet, um sistema de home theater, um smartphone, um Tablet PC, um gravador de vídeo digital (DVR) e semelhantes.[0448] Furthermore, the decoding apparatus and the encoding apparatus to which the present disclosure is applied may be included in a multimedia transmission transceiver, a mobile communications terminal, a home theater video device, a digital cinema video camera, a surveillance camera, a video chat device, a real-time communication device such as video communication, a mobile transmission device, a storage medium, a video camera, a video on demand (VoD) service delivery device, an over the top (OTT) video device, an Internet device streaming service delivery device, a three-dimensional (3D) video device, a telephony and a medical video device, and can be used to process a video signal or a data signal. For example, the over the top (OTT) video device may include a game console, a Blu-ray player, an Internet-enabled TV, a home theater system, a smartphone, a Tablet PC, a video recorder digital (DVR) and similar.
[0449] Além disso, o método de processamento ao qual a presente divulgação é aplicada pode ser produzido na forma de um programa executado por um computador e armazenado em uma mídia de gravação legível por computador. Os dados de multimídia com uma estrutura de dados de acordo com a presente divulgação também podem ser armazenados em uma mídia de gravação legível por computador. O meio de gravação legível por computador inclui todos os tipos de dispositivos de armazenamento e dispositivos de armazenamento distribuído nos quais os dados legíveis por computador são armazenados. A mídia de gravação legível por computador pode incluir, por exemplo, um Blu-ray Disc (BD), um barramento serial universal (USB), uma ROM, uma PROM, uma EPROM, uma EEPROM, uma RAM, um CD-ROM, uma fita magnética, um disquete e um dispositivo óptico de armazenamento de dados. Além disso, o meio de gravação legível por computador inclui mídia incorporada na forma de uma onda portadora (por exemplo, transmissão pela Internet). Além disso, um fluxo de bits gerado pelo método de codificação pode ser armazenado em um meio de gravação legível por computador ou transmitido através de uma rede de comunicação com ou sem fio. Adicionalmente, as modalidades da presente divulgação podem ser incorporadas como um produto de programa de computador por códigos de programa e os códigos de programa podem ser executados em um computador pelas modalidades da presente divulgação. Os códigos de programa podem ser armazenados em um suporte legível por computador.[0449] Furthermore, the processing method to which the present disclosure is applied may be produced in the form of a program executed by a computer and stored on a computer-readable recording medium. Multimedia data with a data structure in accordance with the present disclosure may also be stored on a computer-readable recording medium. Computer-readable recording medium includes all types of storage devices and distributed storage devices on which computer-readable data is stored. Computer-readable recording media may include, for example, a Blu-ray Disc (BD), a universal serial bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk and an optical data storage device. Furthermore, the computer-readable recording medium includes embedded media in the form of a carrier wave (e.g., Internet transmission). Furthermore, a bit stream generated by the encoding method may be stored on a computer-readable recording medium or transmitted over a wired or wireless communication network. Additionally, embodiments of the present disclosure may be embodied as a computer program product by program codes and the program codes may be executed on a computer by embodiments of the present disclosure. Program codes can be stored on a computer-readable medium.
[0450] A Figura 15 ilustra esquematicamente um exemplo de um sistema de codificação de vídeo/imagem ao qual a presente divulgação é aplicável.[0450] Figure 15 schematically illustrates an example of a video/image coding system to which the present disclosure is applicable.
[0451] Com referência à Figura 15, o sistema de codificação de vídeo/imagem pode incluir um primeiro dispositivo (dispositivo de origem) e um segundo dispositivo (dispositivo de recepção). O dispositivo de origem pode fornecer informações ou dados de vídeo/imagem codificados na forma de um arquivo ou streaming para o dispositivo de recepção por meio de um meio de armazenamento digital ou rede.[0451] Referring to Figure 15, the video/image coding system may include a first device (source device) and a second device (receiving device). The source device may provide information or encoded video/image data in the form of a file or stream to the receiving device via a digital storage medium or network.
[0452] O dispositivo de origem pode incluir uma fonte de vídeo, um aparelho de codificação e um transmissor. O dispositivo de recepção pode incluir um receptor, um aparelho de decodificação e um renderizador. O aparelho de codificação pode ser chamado de aparelho de codificação de vídeo/imagem, e o aparelho de decodificação pode ser chamado de aparelho de decodificação de vídeo/imagem. O transmissor pode ser incluído no aparelho de codificação. O receptor pode ser incluído no aparelho de decodificação. O renderizador pode incluir uma tela e a tela pode ser configurada como um dispositivo separado ou um componente externo.[0452] The source device may include a video source, an encoding apparatus, and a transmitter. The receiving device may include a receiver, a decoding apparatus, and a renderer. The encoding apparatus may be called a video/image encoding apparatus, and the decoding apparatus may be called a video/image decoding apparatus. The transmitter may be included in the coding apparatus. The receiver may be included in the decoding apparatus. The renderer can include a screen, and the screen can be configured as a separate device or an external component.
[0453] A fonte de vídeo pode obter um vídeo/imagem por meio de um processo de captura, síntese ou geração de um vídeo/imagem. A fonte de vídeo pode incluir um dispositivo de captura de vídeo/imagem e/ou um dispositivo de geração de vídeo/imagem. O dispositivo de captura de vídeo/imagem pode incluir, por exemplo, uma ou mais câmeras, arquivos de vídeo/imagem incluindo vídeo/imagens capturados anteriormente ou semelhantes. O dispositivo de geração de vídeo/imagem pode incluir, por exemplo, um computador, um tablet e um smartphone e pode (eletronicamente) gerar um vídeo/imagem. Por exemplo, um vídeo/imagem virtual pode ser gerado por meio de um computador ou semelhante. Neste caso, o processo de captura de vídeo/imagem pode ser substituído por um processo de geração de dados relacionados.[0453] The video source may obtain a video/image through a process of capturing, synthesizing, or generating a video/image. The video source may include a video/image capture device and/or a video/image generating device. The video/image capture device may include, for example, one or more cameras, video/image files including previously captured video/images, or the like. The video/image generating device may include, for example, a computer, a tablet and a smartphone and may (electronically) generate a video/image. For example, a virtual video/image may be generated using a computer or the like. In this case, the video/image capture process can be replaced by a related data generation process.
[0454] O aparelho de codificação pode codificar um vídeo/imagem de entrada. O aparelho de codificação pode realizar uma série de procedimentos, como predição, transformada e quantização para compressão e eficiência de codificação. Os dados codificados (informações de vídeo/imagem codificadas) podem ser emitidos na forma de um fluxo de bits.[0454] The encoding apparatus may encode an input video/image. The coding apparatus can perform a series of procedures such as prediction, transform, and quantization for compression and coding efficiency. The encoded data (encoded video/image information) can be output in the form of a bit stream.
[0455] O transmissor pode transmitir a informação de vídeo/imagem codificada ou saída de dados na forma de um fluxo de bits para o receptor do dispositivo de recepção através de um meio de armazenamento digital ou uma rede na forma de um arquivo ou fluxo. O meio de armazenamento digital pode incluir vários meios de armazenamento, como USB, SD, CD, DVD, Blu-ray, HDD, SSD e similares. O transmissor pode incluir um elemento para gerar um arquivo de mídia através de um formato de arquivo predeterminado e pode incluir um elemento para transmissão através de uma rede de transmissão/comunicação. O receptor pode receber/extrair o fluxo de bits e transmitir o fluxo de bits recebido/extraído para o aparelho de decodificação.[0455] The transmitter may transmit the encoded video/image information or data output in the form of a bit stream to the receiver of the receiving device via a digital storage medium or a network in the form of a file or stream. Digital storage medium can 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 via a predetermined file format and may include an element for transmission over a transmission/communication network. The receiver can receive/extract the bit stream and transmit the received/extracted bit stream to the decoding apparatus.
[0456] O aparelho de decodificação pode decodificar um vídeo/imagem executando uma série de procedimentos, tais como desquantização, transformada inversa, predição e semelhantes correspondentes à operação do aparelho de codificação.[0456] The decoding apparatus may decode a video/image by performing a series of procedures such as dequantization, inverse transform, prediction and the like corresponding to the operation of the encoding apparatus.
[0457] O renderizador pode renderizar o vídeo/imagem decodificado. O vídeo/imagem renderizado pode ser exibido através da tela.[0457] The renderer can render the decoded video/image. The rendered video/image can be displayed across the screen.
[0458] A Figura 16 ilustra a estrutura de um sistema de streaming de conteúdo ao qual a presente divulgação é aplicada.[0458] Figure 16 illustrates the structure of a content streaming system to which the present disclosure is applied.
[0459] Além disso, o sistema de streaming de conteúdo ao qual a presente divulgação é aplicada pode incluir em grande parte um servidor de codificação, um servidor de streaming, um servidor web, um armazenamento de mídia, um equipamento de usuário e um dispositivo de entrada multimídia.[0459] Furthermore, the content streaming system to which the present disclosure is applied may largely include an encoding server, a streaming server, a web server, a media store, a user equipment, and a device multimedia input.
[0460] O servidor de codificação funciona para compactar em dados digitais o conteúdo de entrada dos dispositivos de entrada multimídia, como o smartphone, a câmera, a camcoder e similares, para gerar um fluxo de bits e transmiti-lo ao servidor de streaming. Como outro exemplo, em um caso em que o dispositivo de entrada multimídia, como o telefone inteligente, a câmera, a câmera de vídeo ou semelhante, gera diretamente um fluxo de bits, o servidor de codificação pode ser omitido. O fluxo de bits pode ser gerado por um método de codificação ou um método de geração de fluxo de bits ao qual a presente divulgação é aplicada. E o servidor de streaming pode armazenar o fluxo de bits temporariamente durante um processo para transmitir ou receber o fluxo de bits.[0460] The encoding server functions to compress the input content of multimedia input devices, such as the smartphone, camera, camcoder and the like, into digital data to generate a bit stream and transmit it to the streaming server. As another example, in a case where the multimedia input device such as smart phone, camera, video camera or the like directly outputs a bit stream, the encoding server may be omitted. The bitstream may be generated by a coding method or a bitstream generation method to which the present disclosure is applied. And the streaming server can store the bitstream temporarily during a process to transmit or receive the bitstream.
[0461] O servidor de streaming transmite dados de multimídia para o equipamento do usuário com base na solicitação de um usuário através do servidor web, que funciona como um instrumento que informa ao usuário qual serviço existe. Quando o usuário solicita um serviço que o usuário deseja, o servidor web transfere a solicitação para o servidor de streaming e o servidor de streaming transmite dados multimídia ao usuário. Nesse sentido, o sistema de streaming de conteúdo pode incluir um servidor de controle separado e, neste caso, o servidor de controle funciona para controlar comandos/respostas entre os respectivos equipamentos no sistema de streaming de conteúdo.[0461] The streaming server transmits multimedia data to the user's equipment based on a user's request through the web server, which functions as an instrument that informs the user which service exists. When the user requests a service that the user wants, the web server transfers the request to the streaming server, and the streaming server transmits multimedia data to the user. In this sense, the content streaming system may include a separate control server, and in this case, the control server functions to control commands/responses between respective equipment in the content streaming system.
[0462] O servidor de streaming pode receber conteúdos do armazenamento de mídia e/ou do servidor de codificação. Por exemplo, caso o conteúdo seja recebido do servidor de codificação, o conteúdo pode ser recebido em tempo real. Nesse caso, o servidor de streaming pode armazenar o fluxo de bits por um período de tempo predeterminado para fornecer o serviço de streaming sem problemas.[0462] The streaming server may receive content from the media store and/or the encoding server. For example, if the content is received from the encoding server, the content can be received in real time. In this case, the streaming server can store the bitstream for a predetermined period of time to provide the streaming service smoothly.
[0463] Por exemplo, o equipamento do usuário pode incluir um telefone celular, um smartphone, um laptop, um terminal de transmissão digital, um assistente digital pessoal (PDA), um reprodutor multimídia portátil (PMP), uma navegação, um PC slate, um tablet PC, um ultrabook, um dispositivo vestível (por exemplo, um terminal tipo relógio (relógio inteligente), um terminal tipo vidro (vidro inteligente), um monitor de cabeça montada (HMD)), uma TV digital, um computador desktop , uma sinalização digital ou semelhante. Cada um dos servidores do sistema de streaming de conteúdo pode ser operado como um servidor distribuído e, neste caso, os dados recebidos por cada servidor podem ser processados de forma distribuída.[0463] For example, user equipment may include a cell phone, a smartphone, a laptop, a digital streaming terminal, a personal digital assistant (PDA), a portable multimedia player (PMP), a navigation, a PC slate , a tablet PC, an ultrabook, a wearable device (e.g., a watch-type terminal (smart watch), a glass-type terminal (smart glass), a head-mounted display (HMD)), a digital TV, a desktop computer , digital signage or similar. Each of the servers of the content streaming system can be operated as a distributed server, and in this case, the data received by each server can be processed in a distributed manner.
[0464] As reivindicações divulgadas neste documento podem ser combinadas de várias maneiras. Por exemplo, os recursos técnicos das reivindicações do método da presente divulgação podem ser combinadas para serem implementadas ou executadas em um aparelho e os recursos técnicos das reivindicações do aparelho podem ser combinadas para serem implementadas ou executadas em um método. Além disso, os recursos técnicos das reivindicações do método e das reivindicações do aparelho podem ser combinadas para serem implementadas ou executadas em um aparelho, e os recursos técnicos das reivindicações do método e reivindicações do aparelho podem ser combinadas para serem implementadas ou executadas em um método.[0464] The claims disclosed herein may be combined in various ways. For example, the technical features of the method claims of the present disclosure may be combined to be implemented or performed in an apparatus and the technical features of the apparatus claims may be combined to be implemented or performed in a method. Furthermore, the technical features of the method claims and apparatus claims may be combined to be implemented or carried out in an apparatus, and the technical features of the method claims and apparatus claims may be combined to be implemented or carried out in a method. .
Claims (9)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US62/927,667 | 2019-10-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
BR122023022608A2 true BR122023022608A2 (en) | 2024-04-24 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR112021002604A2 (en) | Inter prediction method based on motion vector based on history and device of the same | |
BR122021010905A2 (en) | IMAGE DECODING METHOD PERFORMED BY A DECODING APPARATUS, IMAGE ENCODING METHOD PERFORMED BY AN ENCODING APPARATUS, COMPUTER-READABLE NON TRANSIENT STORAGE MEDIA, DECODING APPARATUS FOR IMAGE DECODING AND IMAGE ENCODING APPLIANCE FOR ENCODING | |
JP7223208B2 (en) | Transform-based video coding method and apparatus | |
BR122023020352A2 (en) | DECODING/CODING APPARATUS FOR IMAGE DECODING/CODING AND APPARATUS FOR TRANSMITTING DATA TO AN IMAGE | |
US20230379472A1 (en) | Image coding method based on transform and apparatus therefor | |
BR112021012505B1 (en) | METHOD OF IMAGE DECODING/ENCODING PERFORMED BY A DECODING/ENCODING APPARATUS AND COMPUTER READABLE NON-TRAINER STORAGE MEDIA | |
AU2024201210A1 (en) | Transform-based image coding method and device therefor | |
US11902530B2 (en) | Image coding method based on transform and apparatus therefor | |
BR122023022608A2 (en) | DECODING APPARATUS FOR DECODING IMAGES, IMAGE CODING APPARATUS FOR CODING IMAGES AND APPARATUS FOR TRANSMITTING DATA TO AN IMAGE INFORMATION | |
BR122023022820A2 (en) | IMAGE DECODING APPARATUS, IMAGE CODING APPARATUS AND DATA TRANSMISSION APPARATUS FOR IMAGE INFORMATION | |
BR122024000554A2 (en) | TRANSFORM BASED IMAGE CODING METHOD AND DEVICE FOR THE SAME | |
BR122024000555A2 (en) | TRANSFORM BASED IMAGE CODING METHOD AND DEVICE FOR THE SAME | |
BR122023022807A2 (en) | TRANSFORM-BASED METHOD FOR CODING IMAGE, AND DEVICE FOR THE SAME | |
RU2806283C2 (en) | Image encoding method based on transformation and device for its implementation | |
BR122023023402A2 (en) | IMAGE CODING METHOD BASED ON A TRANSFORM, AND APPARATUS THEREOF | |
BR122023020425A2 (en) | DECODING/CODING APPARATUS FOR DECODING/ENCODING IMAGES AND APPARATUS FOR TRANSMITTING DATA TO AN IMAGE | |
US20240163435A1 (en) | Transform-based image coding method and device for same | |
BR112021010422B1 (en) | IMAGE DECODING METHOD PERFORMED BY A DECODING APPARATUS, IMAGE CODING METHOD PERFORMED BY AN IMAGE CODING APPARATUS, AND NON-TRAINER COMPUTER READABLE STORAGE MEDIUM | |
BR122022006263B1 (en) | IMAGE DECODING METHOD AND APPARATUS, IMAGE CODING METHOD AND APPARATUS, NON-TRAINER COMPUTER READABLE STORAGE MEDIUM, METHOD AND APPARATUS FOR TRANSMITTING DATA TO AN IMAGE | |
BR122022006273B1 (en) | IMAGE DECODING METHOD AND APPARATUS, IMAGE CODING METHOD AND APPARATUS, NON-TRAINER COMPUTER READABLE STORAGE MEDIUM, METHOD AND APPARATUS FOR TRANSMITTING DATA TO AN IMAGE | |
BR112021020764B1 (en) | TRANSFORM FOR MATRIX-BASED INTRAPREDICTION IN IMAGE CODING | |
BR122022005534B1 (en) | METHOD OF IMAGE DECODING/ENCODING PERFORMED BY A DECODING/ENCODING APPARATUS, METHOD OF TRANSMITTING DATA TO AN IMAGE, DECODING/ENCODING APPARATUS FOR IMAGE DECODING/ENCODING, TRANSMISSION APPARATUS FOR TRANSMITTING DATA TO AN IMAGE AND MEDIA COMPUTER READABLE NON-TRANSIENT STORAGE | |
BR112021010422A2 (en) | IMAGE ENCODING METHOD BASED ON SECONDARY TRANSFORMATION AND DEVICE FOR THE SAME | |
BR122023027691A2 (en) | IMAGE DECODING METHOD FOR ENCODING DPB PARAMETERS, AND DEVICE THEREOF | |
BR122023024024A2 (en) | DECODING APPARATUS FOR IMAGE DECODING, CODING APPARATUS FOR IMAGE ENCODING AND APPARATUS FOR TRANSMITTING DATA TO AN IMAGE |