BR122023023402A2 - IMAGE CODING METHOD BASED ON A TRANSFORM, AND APPARATUS THEREOF - Google Patents
IMAGE CODING METHOD BASED ON A TRANSFORM, AND APPARATUS THEREOF Download PDFInfo
- Publication number
- BR122023023402A2 BR122023023402A2 BR122023023402-2A BR122023023402A BR122023023402A2 BR 122023023402 A2 BR122023023402 A2 BR 122023023402A2 BR 122023023402 A BR122023023402 A BR 122023023402A BR 122023023402 A2 BR122023023402 A2 BR 122023023402A2
- Authority
- BR
- Brazil
- Prior art keywords
- transform
- block
- region
- current block
- information
- Prior art date
Links
- 238000000034 method Methods 0.000 title abstract description 111
- 230000011664 signaling Effects 0.000 claims description 24
- 230000002441 reversible effect Effects 0.000 claims description 5
- 238000009795 derivation Methods 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 description 118
- 239000013598 vector Substances 0.000 description 80
- 230000033001 locomotion Effects 0.000 description 38
- 230000008569 process Effects 0.000 description 37
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 32
- 239000000523 sample Substances 0.000 description 30
- 241000023320 Luma <angiosperm> Species 0.000 description 27
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 23
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 17
- 238000001914 filtration Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 13
- 238000013139 quantization Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000005192 partition Methods 0.000 description 7
- 230000002123 temporal effect Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 239000013074 reference sample Substances 0.000 description 2
- 230000002730 additional effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change 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
- 238000002156 mixing Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000010454 slate Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Abstract
Um método de decodificação de imagem de acordo com o presente documento compreendendo uma etapa de aplicação de uma transformada primária inversa junto a um coeficiente de transformada de forma a derivar amostras residuais para um bloco atual, sendo que: a transformada primária inversa é desempenhada com base em um índice MTS recebido a partir de um fluxo de bits; o índice MTS é analisado sintaticamente com base em um coeficiente efetivo não existente em uma segunda área que exclui a primeira área de topo à esquerda do bloco atual; e a primeira área consiste em uma área 16x16 de topo à esquerda do bloco atual.An image decoding method according to the present document comprising a step of applying an inverse primary transform together with a transform coefficient in order to derive residual samples for a current block, wherein: the inverse primary transform is performed based on in an MTS index received from a bit stream; the MTS index is parsed based on a non-existing effective coefficient in a second area that excludes the first left-top area of the current block; and the first area consists of a top 16x16 area to the left of the current block.
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 semelhantes, 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 transformada.[006] Another technical aspect of the present disclosure is to provide a method and apparatus for increasing efficiency in coding a transform index.
[007] 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 usando uma MTS.[007] Yet another technical aspect of the present disclosure is to provide an image coding method and an image coding apparatus using an MTS.
[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 sinalização de um índice de MTS.[008] Yet another technical aspect of the present disclosure is to provide an image coding method and an image coding apparatus for signaling an MTS index.
[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 amostras residuais para o bloco atual aplicando uma transformada primária inversa aos coeficientes de transformada, em que a transformada primária inversa é realizada com base em um índice de MTS recebido do fluxo de bits, em que o índice de MTS é analisado com base em um coeficiente significante não estar em uma segunda região diferente de uma primeira região de topo à esquerda do bloco atual e em que a primeira região é uma região 16 x 16 de topo à esquerda do bloco atual.[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 residual samples for the current block by applying an inverse primary transform to the transform coefficients, wherein the inverse primary transform is performed based on an MTS index received from the bit stream, wherein the MTS index is analyzed based on a significant coefficient not being in a second region other than a first top region to the left of the current block and that the first region is a 16 x 16 top region to the left of the current block.
[010] O índice de MTS é analisado com base nas informações do sinalizador indicando se o coeficiente significante existe na segunda região e em que a informação do sinalizador é derivada determinando se o coeficiente significante existe na segunda região por uma unidade de um sub-bloco de escaneamento do coeficiente significante.[010] The MTS index is analyzed based on the flag information indicating whether the significant coefficient exists in the second region and in which the flag information is derived by determining whether the significant coefficient exists in the second region by one unit of a sub-block of scanning the significant coefficient.
[011] Quando um valor de um sinalizador indicando se o coeficiente significante existe no sub-bloco de escaneamento é 1 e o coeficiente significante existente no sub-bloco de escaneamento está posicionado na segunda região, a informação do sinalizador indica que o coeficiente significante existe na segunda região.[011] When a value of a flag indicating whether the significant coefficient exists in the scanning sub-block is 1 and the significant coefficient existing in the scanning sub-block is positioned in the second region, the flag information indicates that the significant coefficient exists in the second region.
[012] Quando um valor de um sinalizador indicando se o coeficiente significante existe no sub-bloco de escaneamento é 1 e o sub-bloco de escaneamento está posicionado na segunda região, a informação do sinalizador indica que o coeficiente significante existe na segunda região.[012] When a value of a flag indicating whether the significant coefficient exists in the scanning sub-block is 1 and the scanning sub-block is positioned in the second region, the flag information indicates that the significant coefficient exists in the second region.
[013] A informação do sinalizador é inicialmente definida como 1, e quando o coeficiente significante é posicionado na segunda região, a informação do sinalizador é alterada para 0.[013] The flag information is initially set to 1, and when the significant coefficient is positioned in the second region, the flag information is changed to 0.
[014] O sub-bloco de escaneamento é um bloco de 4 x 4, e o sub-bloco de escaneamento é escaneado de acordo com uma direção de escaneamento diagonal inversa a partir da posição do último coeficiente significante no bloco atual.[014] The scanning sub-block is a 4 x 4 block, and the scanning sub-block is scanned according to an inverse diagonal scanning direction from the position of the last significant coefficient in the current block.
[015] De acordo com uma outra 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 coeficientes de transformada para o bloco atual aplicando uma MTS às amostras residuais; zerar uma segunda região diferente de uma primeira região de topo à esquerda do bloco atual; derivar informações residuais com base no coeficiente de transformada da primeira região; e construção de informação de imagem para analisar um índice de MTS indicando que um núcleo de transformada de MTS com base em um coeficiente significante existe na segunda região; em que a primeira região é uma região 16 x 16 de topo à esquerda do bloco atual.[015] According to another embodiment of the present disclosure, an image coding method performed by a coding apparatus is provided. The method may include deriving transform coefficients for the current block by applying an MTS to the residual samples; zeroing a second region different from a first top region to the left of the current block; derive residual information based on the transform coefficient of the first region; and constructing image information to analyze an MTS index indicating that an MTS transform kernel based on a significant coefficient exists in the second region; where the first region is a top 16 x 16 region to the left of the current block.
[016] De acordo com ainda uma 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.[016] 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 a coding device.
[017] De acordo com ainda uma 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.[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 to cause a decoding apparatus to perform the decoding method of image.
[018] De acordo com a presente divulgação, é possível aumentar a eficiência geral de compressão de imagem/vídeo.[018] According to the present disclosure, it is possible to increase the overall efficiency of image/video compression.
[019] De acordo com a presente divulgação, é possível aumentar a eficiência na codificação de um índice de MTS.[019] According to the present disclosure, it is possible to increase efficiency in coding an MTS index.
[020] De acordo com a presente divulgação, é possível aumentar a eficiência de um método de codificação de imagem usando uma MTS.[020] According to the present disclosure, it is possible to increase the efficiency of an image coding method using an MTS.
[021] 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.[021] 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.
[022] A Figura 1 ilustra esquematicamente um exemplo de um sistema de codificação de vídeo/imagem ao qual a presente divulgação é aplicável.[022] Figure 1 schematically illustrates an example of a video/image coding system to which the present disclosure is applicable.
[023] A Figura 2 é um diagrama que ilustra esquematicamente uma configuração de um aparelho de codificação de vídeo/imagem ao qual a presente divulgação é aplicável.[023] Figure 2 is a diagram that schematically illustrates a configuration of a video/image coding apparatus to which the present disclosure is applicable.
[024] A Figura 3 é um diagrama que ilustra esquematicamente uma configuração de um aparelho de decodificação de vídeo/imagem ao qual a presente divulgação é aplicável.[024] Figure 3 is a diagram that schematically illustrates a configuration of a video/image decoding apparatus to which the present disclosure is applicable.
[025] A Figura 4 é ilustra esquematicamente um esquema de transformada múltipla de acordo com uma modalidade do presente documento.[025] Figure 4 schematically illustrates a multiple transform scheme according to an embodiment of the present document.
[026] A Figura 5 mostra exemplificativamente modos intradirecionais de 65 direções de predição.[026] Figure 5 exemplifies intradirectional modes of 65 prediction directions.
[027] A Figura 6 é um diagrama para explicar a RST de acordo com uma modalidade do presente.[027] Figure 6 is a diagram to explain RST according to one embodiment of the present.
[028] A Figura 7 é 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.[028] Figure 7 is a diagram illustrating an output data arrangement sequence of a direct primary transform into a one-dimensional vector according to an example.
[029] A Figura 8 é 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.[029] Figure 8 is a diagram illustrating an output data arrangement sequence of a direct secondary transform in a two-dimensional block according to an example.
[030] A Figura 9 é um diagrama que ilustra modos de intra predição de grande angular de acordo com uma modalidade do presente documento.[030] Figure 9 is a diagram illustrating wide-angle intra prediction modes according to an embodiment of the present document.
[031] A Figura 10 é um diagrama que ilustra um formato de bloco ao qual a LFNST é aplicada.[031] Figure 10 is a diagram illustrating a block format to which LFNST is applied.
[032] A Figura 11 é um diagrama que ilustra um arranjo de dados de saída de uma LFNST direta de acordo com um exemplo.[032] Figure 11 is a diagram illustrating an output data arrangement of a direct LFNST according to an example.
[033] A Figura 12 é um diagrama que ilustra que o número de dados de saída para uma LFNST direta é limitado a um máximo de 16 de acordo com um exemplo.[033] Figure 12 is a diagram illustrating that the number of output data for a direct LFNST is limited to a maximum of 16 according to an example.
[034] A Figura 13 é um diagrama que ilustra zero-out em um bloco ao qual a LFNST 4 x 4 é aplicada de acordo com um exemplo.[034] Figure 13 is a diagram illustrating zero-out in a block to which LFNST 4 x 4 is applied according to an example.
[035] A Figura 14 é um diagrama que ilustra zero-out em um bloco ao qual a LFNST 8 x 8 é aplicada de acordo com um exemplo.[035] Figure 14 is a diagram illustrating zero-out in a block to which LFNST 8 x 8 is applied according to an example.
[036] A Figura 15 ilustra um escaneamento de um bloco de transformada de 32 x 32 de acordo com uma modalidade da presente divulgação.[036] Figure 15 illustrates a scan of a 32 x 32 transform block according to an embodiment of the present disclosure.
[037] A Figura 16 é um fluxograma para explicar um método de decodificação de imagem de acordo com um exemplo.[037] Figure 16 is a flowchart for explaining an image decoding method according to an example.
[038] A Figura 17 é um fluxograma para explicar um método de codificação de imagem de acordo com um exemplo.[038] Figure 17 is a flowchart for explaining an image coding method according to an example.
[039] A Figura 18 ilustra a estrutura de um sistema de streaming de conteúdo ao qual a presente divulgação é aplicada.[039] Figure 18 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, as modalidades específicas da mesma foram mostradas nos desenhos a título de exemplo e serão agora descritas em detalhes. No entanto, isso não se destina a limitar a presente divulgação às modalidades específicas reveladas no presente documento. A terminologia usada no presente documento tem a finalidade de descrever apenas modalidades específicas e não se destina a limitar a ideia técnica da presente divulgação. As formas no singular podem incluir as formas no plural, exceto onde o contexto indicar claramente em contrário. Os termos como "incluir" e "ter" se destinam a indicar que existem características, números, etapas, operações, elementos, componentes ou combinações dos mesmos usados na descrição a seguir e, portanto, não deve ser entendido que a possibilidade de existência ou adição de uma ou mais características, números, etapas, operações, elementos, componentes ou combinações diferentes dos mesmos não é excluída previamente.[040] Although the present disclosure may be susceptible to various modifications and includes various embodiments, specific embodiments thereof 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 to describe only specific embodiments and is not intended to limit the technical idea of the present disclosure. Singular forms may include plural forms, except where 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 it should not be understood that the possibility of existence or addition of one or more different characteristics, numbers, steps, operations, elements, components or combinations thereof is not excluded in advance.
[041] Entretanto, cada componente nos desenhos descritos no presente documento é ilustrado independentemente para conveniência de 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 componente único, 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] However, each component in the drawings described herein is illustrated independently for convenience of description regarding characteristic functions different from each other and, however, 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] Mais adiante neste documento, as modalidades preferenciais da presente divulgação serão explicadas em mais detalhes enquanto se referem 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] Later in this document, preferred embodiments of the present disclosure will be explained in more detail while 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 se refere à codificação de vídeo/imagem. Por exemplo, o método/exemplo revelado neste documento pode se referir 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 outros padrões relacionados à codificação de vídeo (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 refer to a VVC (Versatile Video Coding) standard (ITU-T Rec. H.266), a next-generation video/image coding standard after VVC, or others standards related to video coding (e.g. HEVC (High Efficiency Video Coding) standard (ITU-T Rec. H.265), EVC (Essential Video Coding) standard, AVS2 standard, etc.).
[044] Neste documento, uma variedade de modalidades relacionadas à codificação de vídeo/imagem pode ser fornecida e, exceto onde especificado em contrário, as modalidades podem ser combinadas entre si e executadas.[044] In this document, a variety of modalities related to video/image coding may be provided and, except where otherwise specified, the modalities may be combined with each other and executed.
[045] Neste documento, um vídeo pode significar um conjunto de uma série de imagens ao longo do tempo. Geralmente uma imagem 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 imagem. A fatia/bloco pode incluir uma ou mais unidades de árvore de codificação (CTUs). Uma imagem pode ser constituída por uma ou mais fatias/ladrilhos. Uma imagem 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 an image 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 image. The slice/block may include one or more coding tree units (CTUs). An image can be made up of one or more slices/tiles. An image 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 a menor unidade que constitui uma imagem (ou imagem). Também, ‘amostra’ pode ser usada como um termo correspondente a um pixel. Uma amostra pode, em geral, representar um pixel ou um valor de um pixel, e pode representar apenas um pixel/valor de pixel de um componente luma ou apenas um pixel/valor de pixel de um componente croma. Alternativamente, a amostra pode se referir a um valor de pixel no domínio espacial, ou quando esse valor de pixel é convertido no domínio de frequência, pode se referir a um coeficiente de transformada no domínio de frequência.[046] A pixel or a pel can mean the smallest unit that constitutes an image (or image). Also, ‘sample’ can be used as a term corresponding to a pixel. A swatch may, in general, 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. Alternatively, the sample may refer to a pixel value in the spatial domain, or when that pixel value is converted to the frequency domain, it may refer to a transform coefficient in the frequency domain.
[047] Uma unidade pode representar a unidade básica de processamento de imagens. A unidade pode incluir pelo menos uma dentre uma região específica e informações relacionadas à região. Uma unidade pode incluir um bloco luma e dois blocos croma (por exemplo, cb, cr). A unidade e um termo como um bloco, uma área, ou semelhantes podem ser usados no lugar uns dos outros 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 que consistem em M colunas e N linhas.[047] A unit may represent the basic image processing unit. The unit can include at least one of a 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 may be used in place of each other according to 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, o termo “/” “e“, deve ser interpretado para indicar “e/ou”. Por exemplo, a expressão “A/B” pode significar “A e/ou B”. Ademais, “A, B” pode significar “A e/ou B”. Ademais, “A/B/C” pode significar “pelo menos um dentre A, B e/ou C”. Também, “A/B/C” pode significar “pelo menos um dentre A, B e/ou C”.[048] In this document, the term “/” “and“, must 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”. Also, “A/B/C” can mean “at least one of A, B and/or C”.
[049] Ademais, 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) tanto A como B. Em outras palavras, o termo “ou” neste documento deve ser interpretado para indicar “adicional 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 “additional or alternatively".
[050] Na presente divulgação, "pelo menos um dentre A e B" pode significar “apenas A”, “apenas B” ou “tanto A quanto B”. Além disso, na presente divulgação, a expressão “pelo menos um dentre A ou B” ou “pelo menos um dentre A e/ou B” pode ser interpretado como “pelo menos um dentre 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 dentre 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 dentre A, B ou C” ou “pelo menos um dentre A, B e/ou C” pode significar “pelo menos um dentre 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”. Ou seja, “predição” na presente divulgação não se limita à “intrapredição”, e “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”. That is, “prediction” in the present disclosure is not limited to “intraprediction”, and “intraprediction” 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] As características técnicas descritas individualmente em uma figura na presente divulgação podem ser implementadas individualmente ou podem ser implementadas simultaneamente.[053] The technical features described individually in a figure in the present disclosure can be implemented individually or can be implemented simultaneously.
[054] A Figura 1 ilustra esquematicamente um exemplo de um sistema de codificação de vídeo/imagem ao qual a presente divulgação é aplicável.[054] Figure 1 schematically illustrates an example of a video/image coding system to which the present disclosure is applicable.
[055] Com referência à Figura 1, 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 sob a forma de um arquivo ou streaming ao dispositivo de recepção por meio de um meio de armazenamento digital ou rede.[055] Referring to Figure 1, 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.
[056] 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 um aparelho de codificação de vídeo/imagem, e o aparelho de decodificação pode ser chamado de um aparelho de decodificação de vídeo/imagem. O transmissor pode estar incluído no aparelho de codificação. O receptor pode estar 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.[056] 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 canvas, and the canvas can be configured as a separate device or an external component.
[057] A fonte de vídeo pode obter um vídeo/imagem através de um processo para capturar, sintetizar ou gerar 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 anteriormente capturados, ou semelhantes. O dispositivo de geração de vídeo/imagem pode incluir, por exemplo, um computador, um tablet e um smartphone, e pode gerar (eletronicamente) vídeo/imagem. Por exemplo, um vídeo/imagem virtual pode ser gerado através de um computador ou semelhantes. Nesse caso, o processo de captura de vídeo/imagem pode ser substituído por um processo de geração de dados relacionados.[057] The video source can obtain a video/image through a process to capture, synthesize or generate 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 video/image. For example, a virtual video/image can 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.
[058] O aparelho de codificação pode codificar um vídeo/imagem de entrada. O aparelho de codificação pode executar uma série de procedimentos como predição, transformada e quantização para eficiência de compactação e codificação. Os dados codificados (informações de vídeo/imagem codificadas) podem ser emitidos sob a forma de um fluxo de bits.[058] The encoding apparatus can 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.
[059] O transmissor pode transmitir as informações ou dados de vídeo/imagem codificados sob a forma de um fluxo de bits ao receptor do dispositivo de recepção através de um meio de armazenamento digital ou uma rede sob a forma de um arquivo ou streaming. O meio de armazenamento digital pode incluir vários meios de armazenamento como USB, SD, CD, DVD, Blu-ray, HDD, SSD, e semelhantes. 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 difusão/comunicação. O receptor pode receber/extrair o fluxo de bits e transmitir o fluxo de bits recebido/extraído ao aparelho de decodificação.[059] The transmitter may transmit the encoded video/image information or data 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. The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, and the like. The transmitter may include an element for generating a media file via a predetermined file format and may include an element for transmission over a broadcast/communication network. The receiver can receive/extract the bit stream and transmit the received/extracted bit stream to the decoding apparatus.
[060] O aparelho de decodificação pode decodificar um vídeo/imagem realizando uma série de procedimentos como desquantização, transformada inversa, predição, e semelhantes correspondentes à operação do aparelho de codificação.[060] The decoding apparatus can 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 coding apparatus.
[061] O renderizador pode renderizar o vídeo/imagem decodificado. O vídeo/imagem renderizado pode ser exibido através da tela.[061] The renderer can render the decoded video/image. The rendered video/image can be displayed across the screen.
[062] A Figura 2 é um diagrama que ilustra esquematicamente uma configuração de um aparelho de codificação de vídeo/imagem ao qual a presente divulgação é aplicável. Mais adiante neste documento, o que é denominado como o aparelho de codificação de vídeo pode incluir um aparelho de codificação de imagem.[062] Figure 2 is a diagram that schematically illustrates a configuration of a video/image coding apparatus to which the present disclosure is applicable. Later in this document, what is referred to as the video coding apparatus may include an image coding apparatus.
[063] Com referência à Figura 2, o aparelho de codificação 200 pode incluir um particionador de imagem 210, um preditor 220, um processador residual 230, um codificador de entropia 240, um somador 250, um filtro 260 e uma memória 270. O preditor 220 pode incluir um interpreditor 221 e um intrapreditor 222 O processador residual 230 pode incluir um transformador 232, um quantizador 233, um desquantizador 234, um transformador inverso 235. O processador residual 230 pode incluir adicionalmente um subtrator 231. O somador 250 pode ser chamado de um reconstrutor ou gerador de bloco reconstruído. O particionador de imagem 210, o preditor 220, o processador residual 230, o codificador de entropia 240, o somador 250 e o filtro 260 que foram descritos acima, podem ser constituídos por um ou mais componentes de hardware (por exemplo, chipsets codificadores ou processadores) de acordo com uma modalidade. Além disso, a memória 270 pode incluir um buffer de imagem decodificado (DPB), e pode ser constituída por um meio de armazenamento digital. O componente de hardware pode incluir adicionalmente a memória 270 como um componente interno/externo.[063] Referring to Figure 2, the coding apparatus 200 may include an image partitioner 210, a predictor 220, a residual processor 230, an entropy encoder 240, an adder 250, a filter 260, and a memory 270. predictor 220 may include an interpredictor 221 and an intrapredictor 222. The residual processor 230 may include a transformer 232, a quantizer 233, a dequantizer 234, an inverse transformer 235. The residual processor 230 may additionally include a subtractor 231. The adder 250 may be called a rebuilder or rebuilt block generator. The image partitioner 210, predictor 220, residual processor 230, entropy encoder 240, adder 250, and filter 260 that have been described above may be comprised of one or more hardware components (e.g., encoder chipsets or processors) according to an embodiment. Furthermore, memory 270 may include a decoded picture buffer (DPB), and may be comprised of a digital storage medium. The hardware component may additionally include memory 270 as an internal/external component.
[064] O particionador de imagem 210 pode particionar uma imagem de entrada (ou uma imagem ou um quadro) inserida no aparelho de codificação 200 em uma ou mais unidades de processamento. Como um exemplo, a unidade de processamento pode ser chamada de uma unidade de codificação (CU). Nesse 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 Quad-tree (QTBTTT). Por exemplo, uma unidade de codificação pode ser dividida em uma pluralidade de unidades de codificação de uma profundidade maior com base na estrutura de árvore quaternária, uma estrutura de árvore binária e/ou a estrutura ternária. Nesse caso, por exemplo, a estrutura de árvore quaternária pode ser aplicada primeiro e a estrutura de árvore binária e/ou estrutura ternária pode ser aplicada posteriormente. Alternativamente, a estrutura de árvore binária pode ser aplicada primeiro. O procedimento de codificação de acordo com o presente divulgação pode ser realizado com base na unidade de codificação final que não é adicionalmente particionada. Nesse caso, a unidade de codificação máxima pode ser usada diretamente como uma 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 particionada 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 adicionalmente uma unidade de predição (PU) ou uma unidade de transformada (TU). Nesse caso, a unidade de predição e a unidade de transformada podem ser divididas ou particionadas a partir 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.[064] Image partitioner 210 may partition an input image (or an image or a frame) inserted into the encoding apparatus 200 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 Quad-tree binary tree ternary tree (QTBTTT) structure. For example, a coding unit can be divided into a plurality of coding units of greater depth based on the quaternary tree structure, a 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 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 not additionally partitioned. In this case, the maximum coding unit can be directly used as a final coding unit based on the coding efficiency according to the image characteristic. Alternatively, the coding unit can be recursively partitioned 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 additionally 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.
[065] A unidade e um termo como um bloco, uma área, ou semelhantes podem ser usados no lugar uns dos outros 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 que consistem em M colunas e N linhas. A amostra pode, em geral, representar um pixel ou um valor de um pixel, e pode representar apenas um pixel/valor de pixel de um componente luma ou apenas um pixel/valor de pixel de um componente croma. A amostra pode ser usada como um termo correspondente a um pixel ou a um pel de uma imagem (ou imagem).[065] 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, in general, 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 pel of an image (or image).
[066] O subtrator 231 subtrai um sinal de predição (bloco previsto, matriz de amostra de predição) de saída do preditor 220 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 232. O preditor 220 pode realizar predição em um bloco alvo de processamento (doravante, referido como 'bloco atual') e pode gerar um bloco predito incluindo amostras de predição para o bloco atual. O preditor 220 pode determinar se a intra predição ou inter predição é aplicada em um bloco atual ou base CU. Conforme discutido mais adiante 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 240. As informações sobre a predição podem ser codificadas no codificador de entropia 240 e saída na forma de um fluxo de bits.[066] Subtractor 231 subtracts an output prediction signal (predicted block, prediction sample matrix) of predictor 220 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 232. The predictor 220 may perform prediction on a target processing block (hereinafter referred to as 'current block') and may generate a predicted block including samples of prediction for the current block. The predictor 220 can determine whether the intra prediction or inter prediction is applied on a current block or CU basis. As discussed further in the description of each prediction mode, the predictor may generate various information related to the prediction, such as prediction mode information, and transmit the generated information to the entropy encoder 240. The prediction information may be encoded in the entropy encoder 240 and output in the form of a bit stream.
[067] O intrapreditor 222 pode prever o bloco atual referindo-se a amostras na imagem atual. As referidas amostras podem estar situadas nas proximidades ou distantes 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 plano. 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 detalhes da direção de predição. Entretanto, esse é meramente um exemplo, e mais ou menos modos de predição direcionais podem ser usados dependendo de uma configuração. O intrapreditor 222 pode determinar o modo de predição aplicado ao bloco atual usando o modo de predição aplicado ao bloco vizinho.[067] The intrapredictor 222 can predict the current block by referring to samples in the current image. Said samples can be located close to 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 flat 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 merely an example, and more or less directional prediction modes can be used depending on a configuration. The intrapredictor 222 may determine the prediction mode applied to the current block using the prediction mode applied to the neighboring block.
[068] O interpreditor 221 pode derivar um bloco previsto 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 imagem de referência. Nesse momento, para reduzir a quantidade de informações de movimento transmitidas no modo de interpredição, as informações de movimento podem ser previstas em um bloco, sub- bloco, ou base de amostra com base em na correlação de informações de movimento entre o bloco vizinho e o bloco atual. As informações de movimento podem incluir um vetor de movimento e um índice de imagem de referência. As informações de movimento podem incluir adicionalmente as informações de direção de inter prediçã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 imagem atual e um bloco vizinho temporal existente na imagem de referência. A imagem de referência incluindo o bloco de referência e a imagem de referência incluindo o bloco vizinho temporal podem ser iguais ou diferentes uns dos outros. O bloco vizinho temporal pode ser chamado de um bloco de referência colocalizado, uma CU colocalizada (colCU), e semelhantes, e a imagem de referência incluindo o bloco vizinho temporal pode ser chamada de uma imagem colocalizada (colPic). Por exemplo, o interpreditor 221 pode configurar uma lista de candidatos de informações de movimento em blocos vizinhos e gerar informações indicando qual candidato é usado para derivar um vetor de movimento e/ou um índice de imagem de referência do bloco atual. A inter prediçã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 221 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 não pode ser transmitido. No caso da predição de informações 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.[068] The interpredictor 221 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 image. At this time, to reduce the amount of motion information transmitted in interprediction mode, motion information can be predicted on 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 image index. The motion information may additionally 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 image and a temporal neighboring block existing in the reference image. The reference image including the reference block and the reference image including the temporal neighboring block may be the same or different from each other. The temporal neighbor block can be called a co-located reference block, a co-located CU (colCU), and the like, and the reference image including the temporal neighbor block can be called a co-located image (colPic). For example, the interpredictor 221 may configure a candidate list of motion information in neighboring blocks and generate information indicating which candidate is used to derive a motion vector and/or a reference image index of the current block. Inter prediction can be performed based on various prediction modes. For example, in the case of a jump mode and a merge mode, the interpredictor 221 may use movement information from the neighboring block as movement information from the current block. In skip mode, unlike blending mode, the residual signal cannot be transmitted. In the case of motion information prediction (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 a motion vector difference.
[069] O preditor 220 pode gerar um sinal de predição com base em vários métodos de predição. Por exemplo, o preditor pode aplicar intrapredição ou interpredição para prever um bloco e, bem como aplicar intrapredição e interpredição ao mesmo tempo. Essa pode ser chamada de inter e intrapredição combinada (CIIP). Ademais, o preditor pode ser baseado em um modo de predição de cópia intrabloco (IBC) ou 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 semelhantes, como codificação de conteúdo de tela (SCC). Embora a IBC basicamente realize a predição em um bloco atual, a mesma pode ser realizada de modo semelhante à interpredição pelo fato de que deriva um bloco de referência em um bloco atual. Ou seja, o IBC pode usar pelo menos uma das técnicas de interpredição descritas na presente divulgação.[069] The predictor 220 can generate a prediction signal based on various prediction methods. For example, the predictor can apply intraprediction or interprediction to predict a block, as well as apply intraprediction and interprediction at the same time. This 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). Although IBC basically performs prediction on a current block, it can be performed in a similar way to interprediction in that it derives a reference block on a current block. That is, the IBC may use at least one of the interprediction techniques described in the present disclosure.
[070] O sinal de predição gerado através o interpreditor 221 e/ou o intrapreditor 222 pode ser usado para gerar um sinal reconstruído ou para gerar um sinal residual. O transformador 232 pode gerar coeficientes de transformada pela aplicação de uma técnica de transformada ao sinal residual. Por exemplo, a técnica de transformada pode incluir pelo menos uma dentre 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 GBT significa transformada obtida a partir de um gráfico quando as informações de relação entre os pixels são representadas pelo gráfico. A CNT se refere à transformada obtida com base em um sinal de predição gerado usando todos os pixels anteriormente reconstruídos. Além disso, o processo de transformada pode ser aplicado a blocos de pixels quadrados com o mesmo tamanho ou pode ser aplicado a blocos com tamanho variável em vez do quadrado.[070] The prediction signal generated through the interpredictor 221 and/or the intrapredictor 222 can be used to generate a reconstructed signal or to generate a residual signal. Transformer 232 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, GBT means transform obtained from a graph when the relationship information between pixels is represented by the graph. CNT refers to the transform obtained based on a prediction signal generated using all previously reconstructed pixels. Furthermore, the transform process can be applied to blocks of square pixels with the same size or can be applied to blocks with variable size instead of square.
[071] O quantizador 233 pode quantizar os coeficientes de transformada e transmitir os mesmos ao codificador de entropia 240 , e o codificador de entropia 240 pode codificar o sinal quantizado (informações sobre os coeficientes de transformada quantizados) e emitir o sinal codificado em um fluxo de bits. As informações sobre os coeficientes de transformada quantizados podem ser chamadas de informações residuais. O quantizador 233 pode rearranjar os coeficientes de transformada quantizados tipo bloco em uma forma de vetor unidimensional com base em uma ordem de escaneamento de coeficiente e gerar informações sobre os coeficientes de transformada quantizados com base nos coeficientes de transformada quantizada da forma de vetor unidimensional. O codificador de entropia 240 pode realizar vários métodos de codificação 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 240 pode codificar as informações necessárias para a reconstrução de vídeo/imagem em vez de coeficientes de transformada quantizados (por exemplo, valores de elementos de sintaxe, etc.) em conjunto 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) sob a forma de um fluxo de bits. As informações de vídeo/imagem podem incluir adicionalmente 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 imagem (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 adicionalmente informações de restrição gerais. Na presente divulgação, informações e/ou elementos de sintaxe que são transmitidas/sinalizadas ao aparelho de decodificação do aparelho de codificação podem estar incluídas em informações de vídeo/imagem. As informações de vídeo/imagem podem ser codificadas através do procedimento de codificação descrito acima e incluídas 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 difusão, uma rede de comunicação, e/ou semelhantes, e o meio de armazenamento digital pode incluir vários meios de armazenamento como USB, SD, CD, DVD, Blu-ray, HDD, SSD, e semelhantes. Um transmissor (não mostrado) que transmite um sinal emitido do codificador de entropia 240 e/ou um armazenamento (não mostrado) que armazena o mesmo pode ser configurado como um elemento interno/externo do aparelho de codificação 200, ou o transmissor pode estar incluído no codificador de entropia 240.[071] The quantizer 233 can quantize the transform coefficients and transmit them to the entropy encoder 240, and the entropy encoder 240 can encode the quantized signal (information about the quantized transform coefficients) and output the encoded signal in a stream of bits. Information about quantized transform coefficients can be called residual information. The quantizer 233 can rearrange the block-like quantized transform coefficients into a one-dimensional vector form based on a coefficient scanning order and generate information about the quantized transform coefficients based on the quantized transform coefficients of the one-dimensional vector form. The entropy encoder 240 can perform various encoding methods, such as exponential Golomb, context-adaptive variable-length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), and the like. The entropy encoder 240 may encode information necessary for video/image reconstruction instead of 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 additionally include information about various parameter sets such as an adaptation parameter set (APS), an image parameter set (PPS), a sequence parameter set (SPS), a (VPS) or similar. Furthermore, the video/image information may additionally include general restriction information. In the present disclosure, information and/or syntax elements that are transmitted/signaled to the decoding apparatus of the encoding apparatus may be included in video/image information. Video/image information can be encoded using the encoding procedure described above and included in 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 broadcast 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 the like. A transmitter (not shown) that transmits a signal emitted from the entropy encoder 240 and/or a store (not shown) that stores the same may be configured as an internal/external element of the coding apparatus 200, or the transmitter may be included in entropy encoder 240.
[072] Os coeficientes de transformada quantizada emitidos do quantizador 233 podem ser usados para gerar um sinal de predição. Por exemplo, aplicando-se desquantização e transformada inversa aos coeficientes de transformada quantizada através do desquantizador 234 e do transformador inverso 235, o sinal residual (bloco residual ou amostras residuais) pode ser reconstruído. O somador 155 soma o sinal residual reconstruído a um sinal a predição emitido do interpreditor 221 ou do intrapreditor 222, de modo que um sinal reconstruído (imagem reconstruída, bloco reconstruído, matriz de amostra reconstruída) possa ser gerado. Quando não houver resíduo para um bloco de destino de processamento como em um caso em que o modo de salto é aplicado, o bloco previsto pode ser usado como um bloco reconstruído. O somador 250 pode ser chamado de um reconstrutor ou um gerador de bloco reconstruído. O sinal reconstruído gerado pode ser usado para intrapredição de um próximo bloco de destino de processamento no bloco atual, e conforme descrito posteriormente, pode ser usado para interpredição de uma próxima imagem através de filtragem.[072] The quantized transform coefficients output from the quantizer 233 can be used to generate a prediction signal. For example, by applying dequantization and inverse transform to the quantized transform coefficients through the dequantizer 234 and the inverse transformer 235, the residual signal (residual block or residual samples) can be reconstructed. Adder 155 adds the reconstructed residual signal to a prediction signal output from interpredictor 221 or intrapredictor 222, so that a reconstructed signal (reconstructed image, reconstructed block, reconstructed sample matrix) can be generated. When there is no residue for a processing target block such as in a case where skip mode is applied, the predicted block can be used as a reconstructed block. The 250 adder can be called a rebuilder or a rebuilt block generator. The generated reconstructed signal can be used for intraprediction of a next processing target block in the current block, and as described later, it can be used for interprediction of a next image through filtering.
[073] Entretanto, no processo de codificação e/ou reconstrução de imagem, o mapeamento de luma com escala de croma (LMCS) pode ser aplicado.[073] However, in the image coding and/or reconstruction process, chroma scale luma mapping (LMCS) can be applied.
[074] O filtro 260 pode aprimorar a qualidade de vídeo subjetiva/objetiva pela aplicação de filtragem ao sinal reconstruído. Por exemplo, o filtro 260 pode gerar uma imagem reconstruída modificada pela aplicação de vários métodos de filtragem à imagem reconstruída e pode armazenar a imagem reconstruída modificada na memória 270, especificamente, no DPB da memória 270. Os vários métodos de filtragem podem incluir, por exemplo, filtragem de desbloqueio, um deslocamento adaptável à amostra, um filtro de loop adaptável, um filtro bilateral ou semelhantes. Conforme discutido posteriormente na descrição de cada método de filtragem, o filtro 260 pode gerar várias informações relacionadas à filtragem e transmitir as informações geradas ao codificador de entropia 240. As informações na filtragem podem ser codificadas no codificador de entropia 240 e emitidas sob a forma de um fluxo de bits.[074] Filter 260 can improve subjective/objective video quality by applying filtering to the reconstructed signal. For example, filter 260 may generate a modified reconstructed image by applying various filtering methods to the reconstructed image and may store the modified reconstructed image in memory 270, specifically, in the DPB of memory 270. The various filtering methods may include, e.g. example, deblocking filtering, a sample-adaptive shift, an adaptive loop filter, a two-sided filter, or the like. As discussed later in the description of each filtering method, the filter 260 may generate various filtering-related information and transmit the generated information to the entropy encoder 240. The information in the filtering may be encoded in the entropy encoder 240 and output in the form of a stream of bits.
[075] A imagem reconstruída modificada que foi transmitida para a memória 270 pode ser usada como uma imagem de referência no inter preditor 221. 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 inter predição é aplicada e também pode melhorar a eficiência da codificação.[075] The modified reconstructed image that has been transmitted to memory 270 can be used as a reference image in interpredictor 221. Through this, the encoding apparatus can avoid prediction incompatibility in the encoding apparatus 100 and a decoding apparatus when inter prediction is applied and can also improve coding efficiency.
[076] O DPB de memória 270 pode armazenar a imagem reconstruída modificada para usar a mesma como uma imagem de referência no interpreditor 221. A memória 270 pode armazenar informações de movimento de um bloco na imagem atual, a partir da qual as informações de movimento foram derivadas (ou codificadas) e/ou informações de movimento de blocos em uma imagem já reconstruída. As informações de movimento armazenadas podem ser transmitidas ao interpreditor 221 que serão usadas como informações de movimento de um bloco vizinho ou informações de movimento de um bloco vizinho temporal. A memória 270 pode armazenar as amostras reconstruídas de blocos reconstruídos na imagem atual e transmitir as mesmas ao intrapreditor 222.[076] Memory DPB 270 may store the modified reconstructed image for use as a reference image in interpredictor 221. Memory 270 may store motion information of a block in the current image, from which motion information were derived (or encoded) and/or block motion information in an already reconstructed image. The stored motion information can be transmitted to the interpredictor 221 which will be used as motion information of a neighboring block or motion information of a temporal neighboring block. Memory 270 may store the reconstructed samples of reconstructed blocks in the current image and transmit the same to the intrapredictor 222.
[077] A Figura 3 é um diagrama que ilustra esquematicamente uma configuração de um aparelho de decodificação de vídeo/imagem ao qual a presente divulgação é aplicável.[077] Figure 3 is a diagram that schematically illustrates a configuration of a video/image decoding apparatus to which the present disclosure is applicable.
[078] Com referência à Figura 3, o aparelho de decodificação de vídeo 300 pode incluir um decodificador de entropia 310, um processador residual 320, um preditor 330, um somador 340, um filtro 350 e uma memória 360. O preditor 330 pode incluir um interpreditor 331 e um intrapreditor 332. O processador residual 320 pode incluir um desquantizador 321 e um transformador inverso 321. O decodificador de entropia 310, o processador residual 320, o preditor 330, o somador 340 e o filtro 350, que foram descritos acima, podem ser constituídos por um ou mais componentes de hardware (por exemplo, chipsets decodificadores ou processadores) de acordo com uma modalidade. Além disso, a memória 360 pode incluir um buffer de imagem decodificado (DPB), e pode ser constituída por um meio de armazenamento digital. O componente de hardware pode incluir adicionalmente a memória 360 como um componente interno/externo.[078] Referring to Figure 3, video decoding apparatus 300 may include an entropy decoder 310, a residual processor 320, a predictor 330, an adder 340, a filter 350, and a memory 360. The predictor 330 may include an interpredictor 331 and an intrapredictor 332. The residual processor 320 may include a dequantizer 321 and an inverse transformer 321. The entropy decoder 310, the residual processor 320, the predictor 330, the adder 340, and the filter 350, which were described above , may be constituted by one or more hardware components (for example, decoder chipsets or processors) according to one embodiment. Furthermore, the memory 360 may include a decoded picture buffer (DPB), and may consist of a digital storage medium. The hardware component may additionally include memory 360 as an internal/external component.
[079] Quando um fluxo de bits incluindo informações de vídeo/imagem é inserido, o aparelho de decodificação 300 pode reconstruir uma imagem correspondente a um processo por meio do qual as informações de vídeo/imagem foram processadas no aparelho de codificação da Figura 2. Por exemplo, o aparelho de decodificação 300 pode derivar unidades/blocos com base nas informações referentes à partição de bloco obtidas do fluxo de bits. O aparelho de decodificação 300 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 quaternária, a estrutura de árvore binária e/ou a estrutura de árvore ternária de uma unidade de árvore de codificação ou uma unidade de codificação maior. Uma ou mais unidades de transformada podem ser derivadas da unidade de codificação. E, o sinal de imagem reconstruída decodificado e emitido através do aparelho de decodificação 300 pode ser reproduzido através de um reprodutor.[079] When a bit stream including video/image information is input, the decoding apparatus 300 can reconstruct an image corresponding to a process by which the video/image information was processed in the encoding apparatus of Figure 2. For example, decoding apparatus 300 may derive units/blocks based on block partition information obtained from the bit stream. The decoding apparatus 300 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 quaternary tree structure, the binary tree structure, and/or the ternary tree structure of a data tree unit. 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 300 can be reproduced through a player.
[080] O aparelho de decodificação 300 pode receber um sinal emitido do aparelho de codificação da Figura 2 sob a forma de um fluxo de bits, e o sinal recebido pode ser decodificado através do decodificador de entropia 310. Por exemplo, o decodificador de entropia 310 pode analisar o fluxo de bits para derivar informações (por exemplo, informações de vídeo/imagem) necessárias para a reconstrução de imagem (ou reconstrução de imagem). As informações de vídeo/imagem podem incluir adicionalmente 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 imagem (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 adicionalmente informações de restrição gerais. O aparelho de decodificação pode decodificar uma imagem adicionalmente com base nas informações no conjunto de parâmetros e/ou nas informações de restrição gerais. Na presente divulgação, as informações sinalizadas/recebidas e/ou elementos de sintaxe, que serão descritos posteriormente, podem ser decodificados através o procedimento de decodificação e obtidos do fluxo de bits. Por exemplo, o decodificador de entropia 310 pode decodificar informações no fluxo de bits com base em um método de codificação como codificação de 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 referente a um residual. Mais especificamente, um método de decodificação de entropia 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 de destino de decodificação e informações de decodificação de blocos de destino vizinhos e de decodificação ou informações de símbolo/bin decodificado em uma etapa anterior, prever a probabilidade de geração de bin de acordo com o modelo de contexto determinado e executar 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. As informações sobre predição entre as informações decodificadas no decodificador de entropia 310 podem ser fornecidas ao preditor (interpreditor 332 e intrapreditor 331), e valores residuais, isto é, coeficientes de transformada quantizada, em que a decodificação de entropia foi realizada no decodificador de entropia 310 e informações de parâmetro associadas podem ser inseridas no processador residual 320. O processador residual 320 pode derivar a sinal residual (bloco residual, amostras residuais, matriz de amostra residual). Além disso, as informações sobre filtragem entre as informações decodificadas no decodificador de entropia 310 podem ser fornecidas ao filtro 350. Entretanto, um receptor (não mostrado) que recebe um sinal emitido do aparelho de codificação pode constituir adicionalmente o aparelho de decodificação 300 como um elemento interno/externo, e o receptor pode ser um componente do decodificador de entropia 310. Entretanto, o aparelho de decodificação de acordo com a presente divulgação pode ser chamado de um aparelho de codificação de vídeo/imagem/imagem, e o aparelho de decodificação pode ser classificado em um decodificador de informações (decodificador de informações de vídeo/imagem/imagem) e um decodificador de amostra (decodificador de amostra de vídeo/imagem/imagem). O decodificador de informações pode incluir o decodificador de entropia 310, e o decodificador de amostra pode incluir pelo menos um dentre o desquantizador 321, o transformador inverso 322, o somador 340, o filtro 350, a memória 360, o interpreditor 332 e o intrapreditor 331.[080] The decoding apparatus 300 can receive a signal emitted from the encoding apparatus of Figure 2 in the form of a bit stream, and the received signal can be decoded through the entropy decoder 310. For example, the entropy decoder 310 may analyze the bit stream to derive information (e.g., video/image information) necessary for image reconstruction (or image reconstruction). The video/image information may additionally include information about various parameter sets such as an adaptation parameter set (APS), an image parameter set (PPS), a sequence parameter set (SPS), a (VPS) or similar. Furthermore, the video/image information may additionally include general restriction information. The decoding apparatus may further decode an image based on information in the parameter set and/or general constraint information. In the present disclosure, the 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 310 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 referring to a residual. More specifically, a CABAC entropy decoding method can 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 decoding or symbol/bin information decoded in a previous step, predicting the bin generation probability according to the given context model, and performing arithmetic bin decoding 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. Prediction information between the information decoded in the entropy decoder 310 may be provided to the predictor (interpredictor 332 and intrapredictor 331), and residual values, i.e., quantized transform coefficients, where entropy decoding was performed in the entropy decoder 310 and associated parameter information may be input into the residual processor 320. The residual processor 320 may derive the residual signal (residual block, residual samples, residual sample matrix). Furthermore, filtering information between the information decoded in the entropy decoder 310 may be provided to the filter 350. However, a receiver (not shown) that receives a signal emitted from the encoding apparatus may additionally constitute the decoding apparatus 300 as a internal/external element, and the receiver may be a component of the entropy decoder 310. However, the decoding apparatus in accordance with the present disclosure may be called a video/image/image coding apparatus, and the decoding apparatus can be classified into an information decoder (video/image/image information decoder) and a sample decoder (video/image/image sample decoder). The information decoder may include the entropy decoder 310, and the sample decoder may include at least one of the dequantizer 321, the inverse transformer 322, the adder 340, the filter 350, the memory 360, the interpredictor 332, and the intrapredictor. 331.
[081] O desquantizador 321 pode emitir coeficientes de transformada desquantizando os coeficientes de transformada quantizada. O desquantizador 321 pode rearranjar os coeficientes de transformada quantizada sob a forma de um bloco bidimensional. Nesse caso, o rearranjo pode ser executado com base em uma ordem de escaneamento de coeficiente que foi realizada no aparelho de codificação. O desquantizador 321 pode realizar a desquantização nos coeficientes de transformada quantizada usando parâmetro de quantização (exemplo, informações de tamanho de etapa de quantização), e obter coeficientes de transformada.[081] The dequantizer 321 can output transform coefficients by dequantizing the quantized transform coefficients. The dequantizer 321 can rearrange the quantized transform coefficients in the form of a two-dimensional block. In this case, the rearrangement can be performed based on a coefficient scanning order that was performed on the coding apparatus. The dequantizer 321 can perform dequantization on the quantized transform coefficients using quantization parameter (example, quantization step size information), and obtain transform coefficients.
[082] O desquantizador 322 obtém um sinal residual (bloco residual, matriz de amostra residual) por transformada inversa de coeficientes de transformada.[082] The dequantizer 322 obtains a residual signal (residual block, residual sample matrix) by inverse transform of transform coefficients.
[083] O preditor pode realizar a predição no bloco atual e gerar um bloco previsto 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 nas informações na predição emitida do decodificador de entropia 310, e especificamente pode determinar um modo de intra/interpredição.[083] The predictor can perform the 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 from entropy decoder 310, and specifically may determine an intra-/inter-prediction mode.
[084] O preditor pode gerar um sinal de predição com base em vários métodos de predição. Por exemplo, o preditor pode aplicar intrapredição ou interpredição para prever um bloco e, bem como aplicar intrapredição e interpredição ao mesmo tempo. Isto pode ser chamado de inter e intrapredição combinada (CIIP). Além disso, o preditor pode realizar uma cópia de bloco (IBC) para predição em um bloco. A cópia intrabloco pode ser usada para codificação de imagem/vídeo de conteúdo de um jogo ou semelhantes, como codificação de conteúdo de tela (SCC). Embora a IBC basicamente realize a predição em um bloco atual, a mesma pode ser realizada de modo semelhante à interpredição pelo fato de que deriva um bloco de referência em um bloco atual. Ou seja, o IBC pode usar pelo menos uma das técnicas de interpredição descritas na presente divulgação.[084] The predictor can generate a prediction signal based on various prediction methods. For example, the predictor can apply intraprediction or interprediction to predict a block, as well as apply intraprediction and interprediction at the same time. This can be called combined inter- and intra-prediction (CIIP). Furthermore, the predictor can perform a block copy (IBC) for prediction on a block. Intrablock copy can be used for image/video encoding of game content or the like, such as screen content coding (SCC). Although IBC basically performs prediction on a current block, it can be performed in a similar way to interprediction in that it derives a reference block on a current block. That is, the IBC may use at least one of the interprediction techniques described in the present disclosure.
[085] O intrapreditor 331 pode prever o bloco atual referindo-se às amostras na imagem atual. As referidas amostras podem estar situadas nas proximidades ou distantes do bloco atual de acordo com o modo de predição. Na intra predição, os modos de predição podem incluir uma pluralidade de modos não direcionais e uma pluralidade de modos direcionais. O intrapreditor 331 pode determinar o modo de predição aplicado ao bloco atual usando o modo de predição aplicado ao bloco vizinho.[085] The intrapredictor 331 can predict the current block by referring to the samples in the current image. Said samples can be located close to or far from the current block according to the prediction mode. In intra prediction, the prediction modes may include a plurality of non-directional modes and a plurality of directional modes. The intrapredictor 331 may determine the prediction mode applied to the current block using the prediction mode applied to the neighboring block.
[086] O interpreditor 332 pode derivar um bloco previsto 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 imagem de referência. Nesse momento, para reduzir a quantidade de informações de movimento transmitidas no modo de interpredição, 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. As informações de movimento podem incluir um vetor de movimento e um índice de imagem de referência. As informações de movimento podem incluir adicionalmente as informações de direção de inter prediçã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 imagem atual e um bloco vizinho temporal existente na imagem de referência. Por exemplo, o interpreditor 332 pode configurar uma lista de candidatos de informações de movimento com base nos blocos vizinhos, e derivar um vetor de movimento e/ou um índice de imagem de referência do bloco atual com base nas informações de seleção de candidato recebidas. A interpredição pode ser realizada com base em vários modos de predição, e as informações sobre a predição podem incluir informações indicando um modo de interpredição para o bloco atual.[086] Interpredictor 332 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 image. At this time, to reduce the amount of motion information transmitted in interprediction mode, motion information can be predicted in a block, sub-block or sample base based on the correlation of motion information between the neighboring block and the block current. The motion information may include a motion vector and a reference image index. The motion information may additionally 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 image and a temporal neighboring block existing in the reference image. For example, the interpredictor 332 may configure a candidate list of motion information based on neighboring blocks, and derive a motion vector and/or a reference image index of the current block based on the received candidate selection information. Interprediction may be performed based on various prediction modes, and information about the prediction may include information indicating an interprediction mode for the current block.
[087] O somador 340 pode gerar um sinal reconstruído (imagem reconstruída, bloco reconstruído, matriz de amostra reconstruída) pela soma do sinal residual obtido ao sinal de predição (bloco previsto, matriz de amostras de predição) emitido o preditor 330. Quando não houver resíduo para um bloco de destino de processamento como em um caso em que o modo de salto é aplicado, o bloco previsto pode ser usado como um bloco reconstruído.[087] The adder 340 can generate a reconstructed signal (reconstructed image, reconstructed block, reconstructed sample matrix) by adding the residual signal obtained to the prediction signal (predicted block, prediction sample matrix) emitted by the predictor 330. When not If there is residue for a processing target block as in a case where skip mode is applied, the predicted block can be used as a reconstructed block.
[088] O somador 340 pode ser chamado de um reconstrutor ou um gerador de bloco reconstruído. O sinal reconstruído gerado pode ser usado para intrapredição de um próximo bloco de destino de processamento no bloco atual, e conforme descrito posteriormente, pode ser emitido através de filtragem ou ser usado para interpredição de uma próxima imagem.[088] Adder 340 can be called a reconstructor or a 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 image.
[089] Entretanto, no processo de decodificação de imagem, o mapeamento de luma com escala de croma (LMCS) pode ser aplicado.[089] However, in the image decoding process, chroma scaled luma mapping (LMCS) can be applied.
[090] O filtro 350 pode aprimorar a qualidade de vídeo subjetiva/objetiva pela aplicação de filtragem ao sinal reconstruído. Por exemplo, o filtro 350 pode gerar uma imagem reconstruída modificada pela aplicação de vários métodos de filtragem à imagem reconstruída e pode transmitir a imagem reconstruída modificada na memória 360, especificamente, no DPB da memória 360. Os vários métodos de filtragem podem incluir, por exemplo, filtragem de desbloqueio, um deslocamento adaptável à amostra, um filtro de loop adaptável, um filtro bilateral ou semelhantes.[090] Filter 350 can improve subjective/objective video quality by applying filtering to the reconstructed signal. For example, filter 350 may generate a modified reconstructed image by applying various filtering methods to the reconstructed image and may transmit the modified reconstructed image into memory 360, specifically, into the DPB of memory 360. The various filtering methods may include, e.g. example, deblocking filtering, a sample-adaptive shift, an adaptive loop filter, a two-sided filter, or the like.
[091] A imagem reconstruída (modificada) que foi armazenada no DPB da memória 360 pode ser usada como uma imagem de referência no interpreditor 332. A memória 360 pode armazenar informações de movimento de um bloco na imagem atual, a partir da qual as informações de movimento foram derivadas (ou decodificadas) e/ou informações de movimento de blocos em uma imagem já reconstruída. As informações de movimento armazenadas podem ser transmitidas ao interpreditor 260 que serão usadas como informações de movimento de um bloco vizinho ou informações de movimento de um bloco vizinho temporal. A memória 360 pode armazenar as amostras reconstruídas de blocos reconstruídos na imagem atual e transmitir as mesmas ao intrapreditor 331.[091] The reconstructed (modified) image that was stored in the DPB of memory 360 can be used as a reference image in interpredictor 332. Memory 360 can store motion information of a block in the current image, from which information motion information was derived (or decoded) and/or block motion information in an already reconstructed image. The stored motion information can be transmitted to interpredictor 260 which will be used as motion information of a neighboring block or motion information of a temporal neighboring block. The memory 360 may store the reconstructed samples of reconstructed blocks in the current image and transmit the same to the intrapredictor 331.
[092] Neste relatório descritivo, os exemplos descritos no preditor 330, no desquantizador 321, no transformador inverso 322 e no filtro 350 do aparelho de decodificação 300 podem ser aplicados de forma semelhante ou correspondente ao preditor 220, ao desquantizador 234, ao transformador inverso 235 e ao filtro 260 do aparelho de codificação 200, respectivamente.[092] In this specification, the examples described in the predictor 330, the dequantizer 321, the inverse transformer 322 and the filter 350 of the decoding apparatus 300 can be applied in a similar or corresponding way to the predictor 220, the dequantizer 234, the inverse transformer 235 and filter 260 of coding apparatus 200, respectively.
[093] Conforme descrito acima, a predição é realizada para aumentar a eficiência de compactação para realizar a codificação de vídeo. Através disso, um bloco previsto incluindo amostras de predição para um bloco atual, que é um bloco de destino de codificação, pode ser gerado. Aqui, o bloco previsto inclui amostras de predição em um domínio espacial (ou domínio de pixel). O bloco previsto pode ser identicamente derivado 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 as informações residuais (informações residuais) entre o bloco original e o bloco previsto. O aparelho de decodificação pode derivar um bloco residual incluindo amostras residuais com base nas informações residuais, gerar um bloco reconstruído incluindo amostras reconstruídas pela soma do bloco residual ao bloco de predição, e gerar uma imagem reconstruída incluindo blocos reconstruídos.[093] As described above, prediction is performed to increase compression efficiency to perform 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 spatial domain (or pixel domain). The predicted block can be identically derived 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 summing the residual block to the prediction block, and generate a reconstructed image including reconstructed blocks.
[094] As informações residuais podem ser geradas 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 previsto, 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 quantizada realizando um processo de quantização nos coeficientes de transformada, de modo que possam sinalizar as informações residuais associadas 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, núcleo de transformada, um parâmetro de quantização ou semelhantes dos coeficientes de transformada quantizada. 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 nas informações residuais. O aparelho de decodificação pode gerar um bloco reconstruído com base em um bloco previsto e no bloco residual. O aparelho de codificação pode derivar um bloco residual por desquantização/transformada inversa de coeficientes de transformada quantizada para referência para interpredição de uma próxima imagem, e pode gerar uma imagem reconstruída a partir dessa.[094] 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. carrying out a quantization process on the transform coefficients, so that they can signal the residual information associated with the decoding device (through a stream of bits). Here, the residual information may include value information, position information, a transform technique, transform kernel, a quantization parameter, or the like of 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 coding apparatus may derive a residual block by dequantization/inverse transform of quantized transform coefficients for reference for interprediction of a next image, and may generate a reconstructed image therefrom.
[095] A Figura 4 ilustra esquematicamente uma técnica de transformada múltipla de acordo com uma modalidade da presente divulgação.[095] Figure 4 schematically illustrates a multiple transform technique according to an embodiment of the present disclosure.
[096] Com referência à Figura 4, um transformador pode corresponder ao transformador no aparelho de codificação da Figura 2, e um transformador inverso pode corresponder ao transformador inverso no aparelho de codificação da Figura 2 anterior, ou ao transformador inverso no aparelho de decodificação da Figura 3.[096] With reference to Figure 4, a transformer may correspond to the transformer in the coding apparatus of Figure 2, and an inverse transformer may correspond to the inverse transformer in the coding apparatus of Figure 2 above, or the inverse transformer in the decoding apparatus of Figure 2. Figure 3.
[097] 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.[097] 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.
[098] 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 núcleos 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.[098] 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 cores 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.
[099] 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.[099] 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.
[0100] Quando a transformada de múltiplos núcleos é realizada, um núcleo de transformada vertical e um núcleo de transformada horizontal para um bloco de destino podem ser selecionados entre os núcleos de transformada, uma transformada vertical pode ser realizada no bloco de destino com base no núcleo de transformada vertical, e uma transformada horizontal pode ser realizada no bloco alvo com base no núcleo 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 núcleo 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.[0100] When multi-core transform is performed, a vertical transform core and a horizontal transform core for a target block can be selected from among the transform cores, a vertical transform can be performed on the target block based on the vertical transform core, and a horizontal transform can be performed on the target block based on the horizontal transform core. 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 core/horizontal transform core 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.
[0101] 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 núcleo de transformada horizontal é expresso como trTypeHor e o núcleo 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.[0101] 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.
[0102] 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 núcleo 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 de MTS de 3 pode indicar que o valor trTypeHor é 1 e o valor trTypeVer é 2, e um índice de MTS de 4 pode indicar que ambos os valores trTypeHor e trTypeVer são 2.[0102] 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 core 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 might indicate that the trTypeHor value is 1 and the trTypeVer value is 2, and an MTS index of 4 might indicate that both the trTypeHor and trTypeVer values are 2.
[0103] Em um exemplo, os conjuntos de núcleo de transformada de acordo com as informações do índice de MTS são ilustrados na tabela a seguir. Tabela 1 [0103] In an example, the transform kernel sets according to the MTS index information are illustrated in the following table. Table 1
[0104] 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 de topo à 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 de topo à 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 de topo à 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 de topo à esquerda min(8,W)xmin(8,H) do bloco de coeficiente de transformada.[0104] 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 transforming 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 a left-top 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 a left-top 8 x 8 region of the block transform coefficient. 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 a top-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 top left min(8,W)xmin(8,H) region of the transform coefficient block.
[0105] 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.[0105] Specifically, for example, if a 4 x 4 input block is used, the non-separable secondary transform can be performed as follows.
[0106] O bloco de entrada 4 x 4 X pode ser representado da seguinte forma. [0106] The 4 x 4 X input block can be represented as follows.
[0107] Se o X for representado na forma de um vetor, o vetor X pode ser representado como abaixo. Equação 2 [0107] If X is represented in the form of a vector, vector X can be represented as below. Equation 2
[0108] 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.[0108] 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.
[0109] Neste caso, a transformada não separável secundária pode ser calculada como abaixo. Equação 3 [0109] In this case, the secondary non-separable transform can be calculated as below. Equation 3
[0110] 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).[0110] In this equation, F represents a transform coefficient vector and T represents a 16 x 16 transform matrix (non-separable).
[0111] 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 escaneamento (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.[0111] 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 scanning 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.
[0112] Enquanto isso, na transformada secundária não separável, um núcleo 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 intra predição e/ou o modo de inter predição.[0112] Meanwhile, in the non-separable secondary transform, a transform core (or transform core, transform type) can be selected to be mode dependent. In this case, the mode may include intra prediction mode and/or inter prediction mode.
[0113] 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 de topo à 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 de topo à esquerda na transformada bloco de coeficientes. Por exemplo, uma matriz de núcleo de transformada 8 x 8 pode ser uma matriz de núcleo de transformada 64 x 64/16 x 64 e uma matriz de núcleo de transformada 4 x 4 pode ser uma matriz de 16 x 16/8 x 16.[0113] 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 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 top-left 4 x 4 region 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.
[0114] Aqui, para selecionar um núcleo de transformada dependente do modo, dois núcleos 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.[0114] Here, to select a mode-dependent transform core, two transform non-separable secondary transform cores 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.
[0115] 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.[0115] 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.
[0116] 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 intra prediçã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.[0116] 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 intra prediction 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.
[0117] Para referência, por exemplo, o modo de intra predição pode incluir dois modos de intra predição não direcionais (ou não angular) e 65 modos de intra predição direcionais (ou angulares). Os modos de intra predição não direcionais podem incluir um modo de intra predição planar de N° 0 e um modo de intra predição DC de N° 1, e os modos de intra predição direcionais podem incluir 65 modos de intra prediçã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 intra predição é diferente. Enquanto isso, em alguns casos, o modo de intra predição N° 67 pode ser usado adicionalmente e o modo de intra predição N° 67 pode representar um modo de modelo linear (LM).[0117] For reference, for example, the intra prediction mode may include two non-directional (or non-angular) intra prediction modes and 65 directional (or angular) intra prediction modes. The non-directional intra prediction modes may include a planar intra prediction mode of No. 0 and a DC intra prediction mode of No. 1, and the directional intra prediction modes may include 65 intra prediction modes of No. 2 to 66. However, this is an example, and this document can be applied even when the number of intra prediction modes is different. Meanwhile, in some cases, intra prediction mode No. 67 can be used additionally, and intra prediction mode No. 67 can represent a linear model (LM) mode.
[0118] A Figura 5 mostra exemplificativamente modos intradirecionais de 65 direções de predição.[0118] Figure 5 exemplarily shows intradirectional modes of 65 prediction directions.
[0119] Com referência à Figura 5, com base no modo de intra predição 34 com uma direção de predição diagonal esquerda para cima, os modos de intra predição podem ser divididos em modos de intra predição com direcionalidade horizontal e modos de intra predição com direcionalidade vertical. Na Figura 5, 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 intra predição 2 a 33 têm a direcionalidade horizontal e os modos de intra predição 34 a 66 têm a direcionalidade vertical. Estritamente falando, o modo de intra prediçã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 intra predição 34, e um método de alinhamento de dados de entrada para um modo horizontal é usado para o modo de intra prediçã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 intra predição 18 e o modo de intra predição 50 podem representar um modo de intra predição horizontal e um modo de intra predição vertical, respectivamente, e o modo de intra predição 2 pode ser denominado como um modo de intra predição diagonal ascendente direita porque o modo de intra prediçã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 intra predição 34 pode ser denominado como um modo de intra predição diagonal descendente direita e o modo de intra predição 66 pode ser denominado como um modo de intra predição diagonal descendente esquerdo.[0119] Referring to Figure 5, based on the intra prediction mode 34 with a left-up diagonal prediction direction, the intra prediction modes can be divided into intra prediction modes with horizontal directionality and intra prediction modes with horizontal directionality. vertical. In Figure 5, 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. Intra prediction modes 2 to 33 have horizontal directionality and intra prediction modes 34 to 66 have vertical directionality. Strictly speaking, the intra prediction 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 intra prediction mode 34, and an input data alignment method for a horizontal mode is used for the intra prediction mode 34 Transposing input data means that rows and columns of two-dimensional M x N block data are switched into N x M data. The intra prediction mode 18 and the intra prediction mode 50 may represent a horizontal intra prediction mode and a horizontal intra prediction mode. vertical intra prediction mode, respectively, and intra prediction mode 2 can be termed as a right-up diagonal intra prediction mode because intra prediction mode 2 has a reference pixel and performs prediction in the right upward direction. Likewise, the intra prediction mode 34 can be termed as a right descending diagonal intra prediction mode and the intra prediction mode 66 can be termed as a left descending diagonal intra prediction mode.
[0120] De acordo com um exemplo, os quatro conjuntos de transformada de acordo com o modo de intra predição podem ser mapeados, por exemplo, conforme mostrado na tabela a seguir. Tabela 2 [0120] According to an example, the four transform sets according to the intra prediction mode can be mapped, for example, as shown in the following table. Table 2
[0121] 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 intra predição.[0121] 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 intra prediction mode.
[0122] Quando é determinado que um conjunto específico é usado para a transformada não separável, um dos núcleos 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 núcleo 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 núcleos 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 núcleo de transformada secundária não separável, o valor de índice de LFNST 1 pode se referir a um segundo núcleo de transformada secundária não separável e o valor de índice de LFNST 2 pode se referir a um terceiro núcleo de transformada secundária não separável. 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 núcleos de transformada.[0122] When it is determined that a specific set is used for the non-separable transform, one of the k transform cores in the specific set may be selected by means of a secondary non-separable transform index. An encoding apparatus may derive a non-separable secondary transform index indicating a specific transform core 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 cores 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 non-separable secondary transform kernel. 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 cores.
[0123] O transformador pode realizar a transformada secundária não separável com base nos núcleos 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.[0123] The transformer can perform the non-separable secondary transform based on the selected transform cores 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.
[0124] 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.[0124] 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.
[0125] 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ário) 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 previsto e podem gerar a imagem reconstruída com base no bloco reconstruído.[0125] 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 image based on the reconstructed block.
[0126] 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.[0126] 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.
[0127] 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 intra prediçã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 intra prediçã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.[0127] 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 intra prediction 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 intra prediction 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.
[0128] 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 imagem reconstruída com base no bloco reconstruído.[0128] 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 may generate the reconstructed block based on the residual block and the predicted block, and may generate the reconstructed image based on the reconstructed block.
[0129] Enquanto isso, na presente divulgação, uma transformada secundária reduzida (RST) na qual o tamanho de uma matriz de transformada (núcleo) é 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.[0129] 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.
[0130] Enquanto isso, o núcleo de transformada, a matriz de transformada e o coeficiente que constitui a matriz de núcleo de transformada, isto é, o coeficiente de núcleo 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 núcleo 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 núcleo 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.[0130] 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 core with a performance degradation that can be reasonably accommodated compared to the existing 9-bit or 10-bit . Additionally, expressing the core 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.
[0131] 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.[0131] 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.
[0132] 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.[0132] 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.
[0133] Enquanto isso, quando a transformada inversa secundária é realizada com base em RST, o transformador inverso 235 do aparelho de codificação 200 e o transformador inverso 322 do aparelho de decodificação 300 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.[0133] Meanwhile, when the secondary inverse transform is performed based on RST, the inverse transformer 235 of the coding apparatus 200 and the inverse transformer 322 of the decoding apparatus 300 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.
[0134] A Figura 6 é um diagrama que ilustra uma RST de acordo com uma modalidade da presente divulgação.[0134] Figure 6 is a diagram illustrating an RST in accordance with an embodiment of the present disclosure.
[0135] 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.[0135] In the present disclosure, a “target block” may refer to a current block to be encoded, a residual block, or a transform block.
[0136] 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.[0136] 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.
[0137] 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 200 e aparelho de decodificação 300 e, neste caso, o fator reduzido ou o coeficiente reduzido podem não ser sinalizados separadamente.[0137] 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 200 and decoding apparatus 300, and in this case the reduced factor or the reduced coefficient may not be signaled separately.
[0138] 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 [0138] 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
[0139] 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.[0139] 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 block target, the transform coefficients for the target block can be derived.
[0140] Em um exemplo, se o tamanho do bloco ao qual a transformada é aplicada for 8 x 8 e R = 16 (isto é, 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.[0140] 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 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.
[0141] 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 [0141] 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
[0142] 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 [0142] 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
[0143] 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 200 para o aparelho de decodificação 300 diminui, de modo que a eficiência de transmissão entre o aparelho de codificação 200 e o aparelho de decodificação 300 pode ser melhorado.[0143] 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 200 to the decoding apparatus 300 decreases, so that the transmission efficiency between the encoding apparatus 200 and the decoding apparatus encoding 200 and decoding apparatus 300 may be improved.
[0144] 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).[0144] 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).
[0145] Em um exemplo, o transformador 132 do aparelho de codificação 200 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 300 e o transformador inverso 322 do aparelho de decodificação 300 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.[0145] In one example, transformer 132 of coding apparatus 200 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 300 and the inverse transformer 322 of the decoding apparatus 300 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.
[0146] 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.[0146] 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.
[0147] A matriz Ttno Bloco de transformada Inv Reduzido 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.[0147] The Tt matrix in the 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.
[0148] 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.[0148] 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.
[0149] Em um exemplo, se o tamanho do bloco ao qual a transformada inversa é aplicada for 8 x 8 e R = 16 (isto é, 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 [0149] 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
[0150] Na Equação 7, c1 a c16 podem representar os coeficientes de transformada para o bloco alvo. Como resultado do cálculo da Equação 7, ri 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 [0150] In Equation 7, c1 to c16 can represent the transform coefficients for the target block. As a result of calculating Equation 7, ri representing the modified transform coefficients for the target block or the residual samples for the target block can be derived and the derivation process of ri can be as in Equation 8. Equation 8
[0151] 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).[0151] 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).
[0152] 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 (núcleos) de acordo com um modo de intra prediçã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 uma lfnst 8 x 8 quando a LFNST for aplicada. A 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 de topo à esquerda no bloco de coeficiente de transformada. Da mesma forma, uma 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 de topo à esquerda no bloco de coeficiente de transformada.[0152] 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 intra prediction 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 a left-top 8x8 region in the transform coefficient block. Likewise, 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 left-top 4x4 region in the transform coefficient block.
[0153] 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 núcleo 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 núcleo 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 núcleo de transformada m x 48 para gerar m coeficientes. Ou seja, quando uma RST é realizada aplicando uma matriz de núcleo 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 núcleo 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 de topo à esquerda de acordo com uma ordem de escaneamento, e uma região 4 x 4 superior direita e uma região 4 x 4 inferior esquerda podem ser preenchidas com zeros.[0153] 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. according to a scanning order, and a top right 4 x 4 region and a bottom left 4 x 4 region can be filled with zeros.
[0154] Para uma transformada inversa em um processo de decodificação, a matriz transposta da matriz de núcleo 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.[0154] 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.
[0155] 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 de topo à 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 núcleo 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 de topo à esquerda da região 8 x 8.[0155] 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 top left, top right and bottom left regions of the 8 x regions 8 by deleting 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 top left region of the 8 x 8 region.
[0156] 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 de topo à 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 escaneamento e pode ser submetida a uma operação de matriz com uma matriz de núcleo 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 de topo à esquerda, superior direita e inferior esquerda da região 8 x 8 excluindo uma região inferior direita.[0156] 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 a top region to the left of the 8 x 8 region between the transform coefficients transformed 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 top left, top right and bottom left regions of the 8 x 8 region excluding a bottom right region.
[0157] Quando uma transformada inversa secundária é baseada em uma RST, o transformador inverso 235 do aparelho de codificação 200 e o transformador inverso 322 do aparelho de decodificação 300 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.[0157] When a secondary inverse transform is based on an RST, the inverse transformer 235 of the coding apparatus 200 and the inverse transformer 322 of the decoding apparatus 300 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.
[0158] 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.[0158] 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.
[0159] 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 [0159] 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
[0160] 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.[0160] 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.
[0161] 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.[0161] 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.
[0162] 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.[0162] 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.
[0163] 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.[0163] 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.
[0164] A Figura 7 é 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 7 mostram a sequência para a construção de um vetor [48 x 1] e os diagramas corretos de (a) e (b) da Figura 7 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 7.[0164] Figure 7 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 7 show the sequence for constructing a [48 x 1] vector and the right diagrams of (a) and (b) of Figure 7 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 7.
[0165] A direção de arranjo dos dados de saída da transformada primária direta pode ser determinada de acordo com um modo de intra predição do bloco atual. Por exemplo, quando o modo de intra prediçã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 7, e quando o modo de intra prediçã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 7.[0165] The arrangement direction of the direct primary transform output data can be determined according to an intra prediction mode of the current block. For example, when the intra prediction mode of the current block is in the horizontal direction with respect to the diagonal direction, the output data of the direct primary transform can be arranged in the order of (a) in Figure 7, and when the intra prediction mode of the current block 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 7.
[0166] De acordo com um exemplo, uma ordem de arranjo diferente das ordens de arranjo de (a) e (b) Figura 7 pode ser aplicado, e para derivar o mesmo resultado (vetor y) como quando as ordens de arranjo de (a) e (b) Figura 7 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.[0166] According to an example, an arrangement order different from the arrangement orders of (a) and (b) Figure 7 can be applied, and to derive the same result (y vector) as when the arrangement orders of ( a) and (b) Figure 7 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.
[0167] 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.[0167] 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.
[0168] A Figura 8 é 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.[0168] Figure 8 is a diagram illustrating an output data arrangement sequence of a direct secondary transform in a two-dimensional block according to an example.
[0169] No caso da LFNST, os valores de saída podem ser dispostos em um bloco 2D de acordo com uma ordem de escaneamento predeterminada. (a) da Figura 8 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 escaneamento diagonal. (b) da Figura 8 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 escaneamento diagonal, e as 8 posições restantes são preenchidas com zeros. X em (b) da Figura 7 indica que está preenchido com zero.[0169] In the case of LFNST, the output values can be arranged in a 2D block according to a predetermined scanning order. (a) of Figure 8 shows that when the output y is a vector [16 x 1], the output values are arranged in 16 positions of the 2D block according to a diagonal scanning order. (b) of Figure 8 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 scanning order, and the remaining 8 positions are filled with zeros. X in (b) of Figure 7 indicates that it is zero-filled.
[0170] 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 8. 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 escaneamento diagonal da Figura 8.[0170] 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 8. 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, data is organized according to a specific order as in the diagonal scanning order of Figure 8.
[0171] 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 escaneamento 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 [0171] 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 scanning order for the inverse transform. The input vector y can be output as the output vector x by the following equation. Equation 10
[0172] 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].[0172] 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.
[0173] O vetor de saída x é disposto em um bloco bidimensional de acordo com a ordem mostrada na Figura 7 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.[0173] The output vector x is arranged in a two-dimensional block according to the order shown in Figure 7 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.
[0174] 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.[0174] 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.
[0175] 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.[0175] 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.
[0176] 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 intra predição e, mais especificamente, o conjunto de transformadas é determinado com base no valor do modo de intra predição estendido considerando a intra prediçã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 intra predição.[0176] 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 intra prediction mode and, more specifically, the set of transforms is determined based on the value of the extended intra prediction mode considering the intra prediction of wide angle (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 intra prediction value.
[0177] A Figura 9 é um diagrama que ilustra modos de intra predição de grande angular de acordo com uma modalidade do presente documento.[0177] Figure 9 is a diagram illustrating wide-angle intra prediction modes in accordance with an embodiment of the present document.
[0178] O valor geral do modo de intra predição pode ter valores de 0 a 66 e 81 a 83, e o valor do modo de intra predição estendido devido ao WAIP pode ter um valor de -14 a 83 como mostrado. Valores de 81 a 83 indicam o modo de CCLM (Modelo Linear de Componentes Cruzados), e valores de -14 a -1 e valores de 67 a 80 indicam o modo de intra predição estendido devido à aplicação WAIP.[0178] The general intra prediction mode value can have values from 0 to 66 and 81 to 83, and the extended intra prediction mode value due to WAIP can have a value from -14 to 83 as shown. Values from 81 to 83 indicate the CCLM (Crossed Component Linear Model) mode, and values from -14 to -1 and values from 67 to 80 indicate the extended intra prediction mode due to the WAIP application.
[0179] Quando a largura do bloco atual de predição é maior que a altura, os pixels de referência superiores geralmente estão mais próximos das posições dentro do bloco a ser previsto. Portanto, pode ser mais preciso prever na direção inferior esquerda do que na direção superior direita. Por outro lado, quando a altura do bloco é maior que a largura, os pixels de referência à esquerda geralmente estão próximos das posições dentro do bloco a serem previstas. Portanto, pode ser mais preciso prever na direção superior direita do que na direção inferior esquerda. Portanto, pode ser vantajoso aplicar o remapeamento, isto é, modificação do índice de modo, ao índice do modo de intra predição de grande angular.[0179] When the width of the current prediction block is greater than the height, the upper reference pixels are generally closer to the positions within the block to be predicted. Therefore, it may be more accurate to predict in the lower left direction than in the upper right direction. On the other hand, when the block height is greater than the width, the reference pixels on the left are usually close to the positions within the block to be predicted. Therefore, it may be more accurate to predict in the upper-right direction than in the lower-left direction. Therefore, it may be advantageous to apply remapping, i.e. mode index modification, to the wide-angle intra prediction mode index.
[0180] Quando a intra predição de grande angular é aplicada, as informações sobre a intra predição existente podem ser sinalizadas e, depois que as informações são analisadas, as informações podem ser remapeadas para o índice do modo de intra predição de grande angular. Portanto, o número total dos modos de intra predição para um bloco específico (por exemplo, um bloco não quadrado de um tamanho específico) pode não mudar, isto é, o número total dos modos de intra predição é 67 e o modo de intra predição a codificação para o bloco específico não pode ser alterada.[0180] When wide-angle intra prediction is applied, information about the existing intra prediction can be flagged, and after the information is analyzed, the information can be remapped to the wide-angle intra prediction mode index. Therefore, the total number of intra prediction modes for a specific block (e.g., a non-square block of a specific size) may not change, that is, the total number of intra prediction modes is 67 and the intra prediction mode the encoding for the specific block cannot be changed.
[0181] A Tabela 3 abaixo mostra um processo de derivação de um modo intra modificado, remapeando o modo de intra predição para o modo de intra predição de grande angular. [0181] Table 3 below shows a process of deriving a modified intra-prediction mode by remapping the intra-prediction mode to the wide-angle intra-prediction mode.
[0182] Na Tabela 3, o valor do modo de intra predição estendido é finalmente armazenado na variável predModeIntra, e ISP_NO_SPLIT indica que o bloco de CU não é dividido em subpartições pela técnica de Intra subpartições (ISP) atualmente adotada no padrão VVC, e os Valores de cIdx variáveis de 0, 1 e 2 indicam o caso dos componentes de luma, Cb e Cr, respectivamente. A função Log2 mostrada na Tabela 3 retorna um valor de log com base 2 e a função Abs retorna um valor absoluto.[0182] In Table 3, the value of the extended intra prediction mode is finally stored in the predModeIntra variable, and ISP_NO_SPLIT indicates that the CU block is not divided into subpartitions by the Intra Subpartition (ISP) technique currently adopted in the VVC standard, and Variable cIdx values of 0, 1 and 2 indicate the case of the luma components, Cb and Cr, respectively. The Log2 function shown in Table 3 returns a base-2 log value, and the Abs function returns an absolute value.
[0183] A variável predModeIntra que indica o modo de intra predição e a altura e largura do bloco de transformada, etc., são usados como valores de entrada do processo de mapeamento do modo de intra predição de grande angular, e o valor de saída é o modo de intra predição modificado predModeIntra. A altura e a largura do bloco de transformada ou do bloco de codificação podem ser a altura e a largura do bloco atual para remapeamento do modo de intra predição. Neste momento, a variável whRatio que reflete a relação entre a largura e a largura pode ser definida como Abs(Log2(nW / nH))).[0183] The predModeIntra variable indicating the intra prediction mode and the height and width of the transform block, etc., are used as input values of the wide-angle intra prediction mode mapping process, and the output value is the intra prediction mode modified predModeIntra. The height and width of the transform block or encoding block can be the height and width of the current block for intra prediction mode remapping. At this time, the whRatio variable that reflects the relationship between width and width can be set to Abs(Log2(nW / nH))).
[0184] Para um bloco não quadrado, o modo de intra predição pode ser dividido em dois casos e modificado.[0184] For a non-square block, the intra prediction mode can be divided into two cases and modified.
[0185] Primeiro, se todas as condições (1) ~ (3) forem satisfeitas, (1) a largura do bloco atual é maior que a altura, (2) o modo de intra predição antes de modificar é igual ou maior que 2, (3) o modo de intra predição é menor que o valor derivado de (8 + 2 * whRatio) quando a variável whRatio é maior que 1, e é menor que 8 quando a variável whRatio é menor ou igual a 1 [predModeIntra é menor do que ( whRatio > 1 )? ( 8 + 2 * whRatio ): 8], o modo de intra predição é definido para um valor 65 maior do que o modo de intra predição [predModeIntra é definido igual a ( predModeIntra + 65)].[0185] First, if all conditions (1) ~ (3) are satisfied, (1) the width of the current block is greater than the height, (2) the intra prediction mode before modifying is equal to or greater than 2 , (3) the intra prediction mode is less than the value derived from (8 + 2 * whRatio) when the whRatio variable is greater than 1, and is less than 8 when the whRatio variable is less than or equal to 1 [predModeIntra is less than ( whRatio > 1 )? ( 8 + 2 * whRatio ): 8], the intra prediction mode is set to a value 65 greater than the intra prediction mode [predModeIntra is set equal to ( predModeIntra + 65)].
[0186] Se diferente do acima, isto é, as seguintes condições (1) ~ (3) são satisfeitas, (1) a altura do bloco atual é maior que a largura, (2) o modo de intra predição antes de modificar é menor que ou igual a 66, (3) o modo de intra predição é maior que o valor derivado de ( 60 - 2 * whRatio ) quando a variável whRatio é maior que 1, e é maior que 60 quando a variável whRatio é menor ou igual para 1 [predModeIntra é maior que ( whRatio > 1 )? ( 60 - 2 * whRatio ) : 60], o modo de intra predição é definido para um valor 67 menor que o modo de intra predição [predModeIntra é definido igual a ( predModeIntra - 67)].[0186] If different from the above, that is, the following conditions (1) ~ (3) are satisfied, (1) the height of the current block is greater than the width, (2) the intra prediction mode before modifying is less than or equal to 66, (3) the intra prediction mode is greater than the value derived from ( 60 - 2 * whRatio ) when the variable whRatio is greater than 1, and is greater than 60 when the variable whRatio is less than or equal to 1 [predModeIntra is greater than ( whRatio > 1 )? ( 60 - 2 * whRatio ) : 60], the intra prediction mode is set to a value 67 smaller than the intra prediction mode [predModeIntra is set equal to ( predModeIntra - 67)].
[0187] A Tabela 2 acima mostra como um conjunto de transformada é selecionado com base no valor do modo de intra predição estendido pelo WAIP na LFNST. Como mostrado na Figura 9, os modos 14 a 33 e os modos 35 a 80 são simétricos em relação à direção de predição em torno do modo 34. Por exemplo, o modo 14 e o modo 54 são simétricos em relação à direção correspondente ao modo 34. Portanto, o mesmo conjunto de transformada é aplicada a modos localizados em direções mutuamente simétricas, e essa simetria também é refletida na Tabela 2.[0187] Table 2 above shows how a transform set is selected based on the value of the intra prediction mode extended by the WAIP in the LFNST. As shown in Figure 9, modes 14 to 33 and modes 35 to 80 are symmetric about the prediction direction around mode 34. For example, mode 14 and mode 54 are symmetric about the direction corresponding to mode 34. Therefore, the same set of transform is applied to modes located in mutually symmetric directions, and this symmetry is also reflected in Table 2.
[0188] Enquanto isso, assume-se que os dados de entrada de LFNST diretos para o modo 54 são simétricos com os dados de entrada de LFNST diretos para o modo 14. Por exemplo, para o modo 14 e o modo 54, os dados bidimensionais são rearranjados em dados unidimensionais de acordo com a ordem de disposição mostrada em (a) da Figura 7 e (b) da Figura 7, respectivamente. Além disso, pode-se ver que os padrões na ordem mostrada em (a) da Figura 7 e (b) da Figura 7 são simétricos em relação à direção (direção diagonal) indicada pelo Modo 34.[0188] Meanwhile, it is assumed that the direct LFNST input data for mode 54 is symmetric with the direct LFNST input data for mode 14. For example, for mode 14 and mode 54, the data two-dimensional data are rearranged into one-dimensional data according to the arrangement order shown in (a) of Figure 7 and (b) of Figure 7, respectively. Furthermore, it can be seen that the patterns in the order shown in (a) of Figure 7 and (b) of Figure 7 are symmetric with respect to the direction (diagonal direction) indicated by Mode 34.
[0189] 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.[0189] 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.
[0190] A Figura 10 é um diagrama que ilustra um formato de bloco ao qual a LFNST é aplicada. (a) da Figura 10 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.[0190] Figure 10 is a diagram illustrating a block format to which LFNST is applied. (a) Figure 10 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.
[0191] Na Figura 10, 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 de topo à esquerda e para o bloco da Figura 10 (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 10, 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.[0191] In Figure 10, blocks with thick edges indicate regions in which LFNST is applied. For the blocks of Figures 10 (a) and (b), the LFNST is applied to the top left 4 x 4 region and for the block of Figure 10 (c), the LFNST is applied individually to the two 4 x 4 regions. upper left are arranged continuously. In (a), (b) and (c) of Figure 10, 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.
[0192] Mais especificamente, a matriz [16 x 8] é aplicada ao bloco 4 x 4 (4 x 4 TU ou 4 x 4 CU) da Figura 10 (a) e a matriz [16 x 16] é aplicada aos blocos em (b) e (c) da Figura 10. Isto é para ajustar a complexidade computacional para o pior caso para 8 multiplicações por amostra.[0192] 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 10 (a) and the [16 x 16] matrix is applied to the blocks in (b) and (c) of Figure 10. This is to adjust the computational complexity for the worst case for 8 multiplications per sample.
[0193] Com relação a (d) e (e) da Figura 10, a LFNST é aplicada à região 8 x 8 de topo à 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 de topo à 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 7 (a) ou a ordem da esquerda da Figura 7 (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á.[0193] With respect to (d) and (e) of Figure 10, the LFNST is applied to the top 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 top left 8 x 8 region are not used as output values. direct entry from LFNST. That is, as can be seen from the left order of Figure 7 (a) or the left order of Figure 7 (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.
[0194] 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 10 (d), e a matriz [48 x 16] pode ser aplicada ao bloco 8 x 8 na Figura 10 (e). Isso também serve para ajustar a complexidade computacional para o pior caso para 8 multiplicações por amostra.[0194] 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 10 (d), and the matrix [48 x 16] can be applied to the block 8 x 8 in Figure 10 (e). This also serves to adjust the computational complexity for the worst case for 8 multiplications per sample.
[0195] 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.[0195] 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.
[0196] A Figura 11 é um diagrama que ilustra um arranjo de dados de saída de uma LFNST direta de acordo com um exemplo, e shows um bloco em que dados de saída da LFNST direta são dispostos de acordo com um formato de bloco.[0196] Figure 11 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.
[0197] A área sombreada na parte de topo à esquerda do bloco mostrado na Figura 11 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.[0197] The shaded area at the top left of the block shown in Figure 11 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 which are not changed by direct LFNST. In the area not changed by LFNST, the output data of the direct primary transform remains unchanged.
[0198] 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 11, 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 11, 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 escaneamento mostrada em (b) da Figura 8, apenas 8 dados de saída podem ser preenchidos como mostrado em (a) e (d) da Figura 11 e 0 podem ser preenchidos nas 8 posições restantes. No caso do bloco aplicado à LFNST da Figura 10 (d), como mostrado na Figura 11 (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.[0198] 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 11, direct LFNST output data may not completely fill the top left 4 x 4 block. In the case of (a) and (d) of Figure 11, 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 8, only 8 output data can be filled as shown in (a) and (d) of Figure 11, and 0 can be filled in the remaining 8 positions. In the case of the block applied to the LFNST in Figure 10 (d), as shown in Figure 11 (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.
[0199] 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 11, 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.[0199] 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 11, 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.
[0200] 1) Como mostrado em (a) da Figura 11, amostras da 8a posição e posteriores na ordem de escaneamento no bloco 4 x 4 superior esquerdo, isto é, amostras da 9a à 16a.[0200] 1) As shown in (a) of Figure 11, samples from the 8th position and later in the scanning order in the upper left 4 x 4 block, that is, samples from the 9th to the 16th.
[0201] 2) Conforme mostrado em (d) e (e) da Figura 11, 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 escaneamento.[0201] 2) As shown in (d) and (e) of Figure 11, 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 the scan order.
[0202] 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.[0202] 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.
[0203] 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 (coeficientes significantes) 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.[0203] 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.
[0204] Como um código unário truncado é aplicado como um método de binarização para o índice de LFNST, o índice de LFNST consiste em até dois compartimentos e 0, 10 e 11 são atribuídos como códigos binários para possíveis valores de índice de LFNST de 0, 1 , e 2, respectivamente. De acordo com um exemplo, a codificação CABAC baseada em contexto pode ser aplicada ao primeiro compartimento (codificação regular) e a codificação CABAC baseada em contexto também pode ser aplicada ao segundo compartimento. A codificação do índice de LFNST é mostrada na tabela abaixo. Tabela 4 [0204] As a truncated unary code is applied as a binarization method for the LFNST index, the LFNST index consists of up to two bins and 0, 10 and 11 are assigned as binary codes for possible LFNST index values of 0 , 1 , and 2, respectively. According to an example, context-based CABAC coding can be applied to the first compartment (regular coding) and context-based CABAC coding can also be applied to the second compartment. The LFNST index coding is shown in the table below. Table 4
[0205] Conforme mostrado na Tabela 4, para o primeiro compartimento (binIdx = 0), o contexto 0 pode ser aplicado em uma única árvore e o contexto 1 pode ser aplicado em uma árvore não única. Conforme mostrado na Tabela 4, para o segundo compartimento (binIdx = 1), o contexto 2 pode ser aplicado. Ou seja, dois contextos podem ser alocados para o primeiro compartimento, um contexto pode ser alocado para o segundo compartimento e cada contexto pode ser distinguido por um valor ctxInc (0, 1 e 2).[0205] As shown in Table 4, for the first bin (binIdx = 0), context 0 can be applied to a single tree and context 1 can be applied to a non-single tree. As shown in Table 4, for the second bin (binIdx = 1), context 2 can be applied. That is, two contexts can be allocated to the first compartment, one context can be allocated to the second compartment, and each context can be distinguished by a ctxInc value (0, 1, and 2).
[0206] Aqui, a árvore única indica que o componente de luma e o componente de croma são codificados com a mesma estrutura de codificação. Quando a unidade de codificação é dividida com a mesma estrutura de codificação e o tamanho da unidade de codificação se torna menor ou igual a um tamanho limite específico e, portanto, o componente de luma e o componente de croma são codificados com estruturas de árvore separadas, contexto para o primeiro compartimento pode ser determinado considerando a unidade de codificação como uma árvore dupla. Ou seja, conforme mostrado na Tabela 4, o contexto 1 pode ser alocado.[0206] Here, the single tree indicates that the luma component and the chroma component are encoded with the same encoding structure. When the encoding unit is divided with the same encoding structure and the size of the encoding unit becomes less than or equal to a specific threshold size and therefore the luma component and chroma component are encoded with separate tree structures , context for the first bin can be determined by considering the coding unit as a double tree. That is, as shown in Table 4, context 1 can be allocated.
[0207] Alternativamente, quando o valor de uma variável treeType é alocado como SINGLE_TREE para o primeiro compartimento, o contexto 0 pode ser usado para codificação e, caso contrário, o contexto 1 pode ser usado para codificação.[0207] Alternatively, when the value of a treeType variable is allocated as SINGLE_TREE to the first bin, context 0 can be used for encoding, and otherwise context 1 can be used for encoding.
[0208] Entretanto, para a LFNST adotada, os seguintes métodos de simplificação podem ser aplicados.[0208] However, for the adopted LFNST, the following simplification methods can be applied.
[0209] (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.[0209] (i) According to an example, the number of output data for direct LFNST may be limited to a maximum of 16.
[0210] No caso de (c) da Figura 10, a LFNST 4 x 4 pode ser aplicado a duas regiões 4 x 4 adjacentes à parte de topo à 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 de topo à esquerda, a LFNST pode ser aplicada apenas uma vez a todos os blocos da Figura 10. Com isso, a implementação da codificação de imagem pode ser simplificada.[0210] In the case of (c) of Figure 10, the 4 x 4 LFNST can be applied to two 4 x 4 regions adjacent to the top left part, respectively, and in this case, a maximum of 32 LFNST output data can be generated when the number of output data for direct LFNST is limited to a maximum of 16, in case of 4 x N/N x 4 (N > 16) blocks (TU or CU), 4 x 4 LFNST is applied only to a top left 4 x 4 region, LFNST can be applied only once to all blocks in Figure 10. With this, the implementation of image coding can be simplified.
[0211] A Figura 12 mostra que o número de dados de saída para a LFNST direta é limitado a um máximo de 16 de acordo com um exemplo. Como Figura 12, quando a LFNST é aplicada à região 4 x 4 mais de topo à esquerda em um bloco 4 x N ou N x 4 no qual N é 16 ou mais, os dados de saída da LFNST direta se tornam 16 peças.[0211] Figure 12 shows that the number of output data for direct LFNST is limited to a maximum of 16 according to an example. As Figure 12, when LFNST is applied to the top left 4 x 4 region in a 4 x N or N x 4 block in which N is 16 or more, the direct LFNST output data becomes 16 pieces.
[0212] (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.[0212] (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.
[0213] (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.[0213] (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.
[0214] Como mostrado na Figura 13, 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 11, toda a região à qual a LFNST não é aplicada pode ser preenchida com zeros.[0214] As shown in Figure 13, 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 11, the entire region to which LFNST is not applied can be padded with zeros.
[0215] Por outro lado, (d) da Figura 13 mostra que quando o valor máximo do número de dados de saída da LFNST direto é limitado a 16 como mostrado na Figura 12, o zero-out é realizado nos blocos restantes aos quais a LFNST 4 x 4 não é aplicado.[0215] On the other hand, (d) of Figure 13 shows that when the maximum value of the number of direct LFNST output data is limited to 16 as shown in Figure 12, zero-out is performed in the remaining blocks to which the LFNST 4 x 4 is not applied.
[0216] (ii)-(B) Quando uma LFNST 8 x 8 é aplicada, uma região à qual a LFNST 8 x 8 não é aplicada pode ser zerada. A Figura 14 ilustra o zero-out em um bloco ao qual uma LFNST 8 x 8 é aplicada de acordo com um exemplo.[0216] (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 14 illustrates zero-out in a block to which an 8 x 8 LFNST is applied according to an example.
[0217] Como mostrado na Figura 14, em relação a um bloco ao qual a LFNST 8 x 8 é aplicada, ou seja, para todos os blocos em (d) e (e) da Figura 11, toda a região à qual a LFNST não é aplicada pode ser preenchida com zeros.[0217] As shown in Figure 14, 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 11, the entire region to which the LFNST is not applied can be filled with zeros.
[0218] (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 11.[0218] (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 11.
[0219] 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 14, e então um índice de LFNST pode ser sinalizado somente quando não existirem dados diferentes de zero.[0219] 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 14, and then an LFNST index can be signaled only when there is no non-zero data.
[0220] Certamente, 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 11, 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, isto é, verificando apenas se os dados diferentes de zero existem apenas na área explicitamente marcada como 0 na Figura 11, pode realizar a análise do índice de LFNST.[0220] Of course, even if the zero-out proposed in (ii) is applied, it is possible to verify that 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 11, LFNST index signaling can be applied. In this case, the coding device only performs the zero output and the decoding device does not assume the zero output, that is, checking only whether non-zero data exists only in the area explicitly marked as 0 in Figure 11, it can perform the analysis of the LFNST index.
[0221] 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. Modalidade[0221] 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. Modality
[0222] - Limitar o número de dados de saída para LFNST direta a um máximo de 16 ^ (i)[0222] - Limit the number of output data for direct LFNST to a maximum of 16 ^ (i)
[0223] - 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)[0223] - When LFNST 4 x 4 is applied, all areas in which LFNST 4 x 4 is not applied are zero-out ^ (ii)-(A)
[0224] - Quando a LFNST 8 x 8 é aplicada, todas as áreas nas quais LFNST 8 x 8 não é aplicada são zeradas ^ (ii)-(B)[0224] - When LFNST 8 x 8 is applied, all areas in which LFNST 8 x 8 is not applied are reset to zero ^ (ii)-(B)
[0225] - 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)[0225] - 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)
[0226] No caso da Modalidade, quando a LFNST é aplicada, uma área na qual os dados de saída diferentes de zero podem existir é limitada ao interior da área 4 x 4 de topo à esquerda. Mais detalhadamente, no caso da Figura 13 (a) e Figura 14 (a), a 8a posição na ordem de escaneamento é a última posição onde podem existir dados diferentes de zero. No caso da Figura 13 (b) e (c) e Figura 14 (b), a 16a posição na ordem de escaneamento (ou seja, a posição da borda inferior direita do bloco 4 x 4 superior esquerdo) é a última posição onde podem existir dados diferentes de 0.[0226] In the case of the Embodiment, when LFNST is applied, an area in which non-zero output data can exist is limited to the interior of the top left 4 x 4 area. In more detail, in the case of Figure 13 (a) and Figure 14 (a), the 8th position in the scanning order is the last position where non-zero data can exist. In the case of Figure 13 (b) and (c) and Figure 14 (b), the 16th position in the scanning order (i.e. the position of the lower right edge of the upper left 4 x 4 block) is the last position where they can exist data other than 0.
[0227] 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.[0227] Therefore, when LFNST is applied, after checking whether non-zero data exists in a position where the residual coding process is not allowed (in a position beyond the last position), it can be determined whether the index of LFNST is flagged.
[0228] 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 zero-out proposto em (ii) são resumidos a seguir.[0228] 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.
[0229] Primeiro, como descrito acima, a quantidade de computação necessária para realizar todo o processo de transformada é reduzida.[0229] First, as described above, the amount of computation required to perform the entire transform process is reduced.
[0230] 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.[0230] 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.
[0231] 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.[0231] Second, the amount of computation required for the entire transform process can be reduced, thereby reducing the energy consumption required to perform the transform.
[0232] Terceiro, a latência envolvida no processo de transformada é reduzida.[0232] Third, the latency involved in the transform process is reduced.
[0233] 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 intra prediçã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 intra predição.[0233] 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 intra prediction, 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 the overall latency of intra prediction coding.
[0234] 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.[0234] 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.
[0235] Enquanto isso, na intra prediçã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 intra prediçã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 intra prediçã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.[0235] Meanwhile, in conventional intra prediction, 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, intra prediction is performed on a sub-block by referring to the pixel value reconstructed from a sub-block located adjacent to the left or upper side thereof. 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.
[0236] A seguir, a sinalização de um índice de LFNST e um índice de MTS é descrita.[0236] Next, the signaling of an LFNST index and an MTS index is described.
[0237] Uma tabela de sintaxe de unidade de codificação, uma tabela de sintaxe de unidade de transformada e uma tabela de sintaxe de codificação residual relacionada à sinalização de um índice de LFNST e um índice de MTS de acordo com um exemplo são mostradas abaixo. De acordo com a Tabela 5, o índice de MTS se move de uma sintaxe de nível de unidade de transformada para uma sintaxe de nível de unidade de codificação e é sinalizado após o índice de LFNST ser sinalizado. Além disso, uma restrição de não permitir uma LFNST quando um ISP é aplicado a uma unidade de codificação é removida. Uma vez que a restrição de não permitir a LFNST quando o ISP é aplicado à unidade de codificação é removida, a LFNST pode ser aplicada a todos os blocos de intra predição. Além disso, tanto o índice de MTS quanto o índice de LFNST são sinalizados condicionalmente no final em um nível de unidade de codificação. [0237] A coding unit syntax table, a transform unit syntax table and a residual coding syntax table related to signaling an LFNST index and an MTS index according to an example are shown below. According to Table 5, the MTS index moves from a transform unit-level syntax to a coding unit-level syntax and is signaled after the LFNST index is signaled. Additionally, a restriction of not allowing an LFNST when an ISP is applied to a coding unit is removed. Since the restriction of not allowing LFNST when ISP is applied to the coding unit is removed, LFNST can be applied to all intra prediction blocks. Additionally, both the MTS index and the LFNST index are conditionally signaled at the end at a coding unit level.
[0238] Os significados das principais variáveis mostradas na Tabela são os seguintes.[0238] The meanings of the main variables shown in the Table are as follows.
[0239] 1. cbWidth, cbHeight: a largura e a altura do bloco de codificação atual[0239] 1. cbWidth, cbHeight: the width and height of the current coding block
[0240] 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 de topo à esquerda na qual um coeficiente diferente de zero pode existir.[0240] 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 a left-top region in which a different coefficient of zero can exist.
[0241] 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).[0241] 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).
[0242] 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 imagem, e MODE_INTRA (intra predição) e MODE_INTER (inter predição) são possíveis como um valor de CuPredMode[chType][x0][y0].[0242] 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 image, and MODE_INTRA (intra prediction) and MODE_INTER (inter prediction) are possible as a value of CuPredMode[chType][x0][y0].
[0243] 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.[0243] 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.
[0244] 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 intra prediçã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.[0244] 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 intra prediction (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.
[0245] 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.[0245] 7. cIdx: the value of 0 indicates luma, and the values of 1 and 2 indicate Cb and Cr which are respectively chroma components.
[0246] 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)[0246] 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)
[0247] 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.[0247] 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.
[0248] 10. lastSubBlock: Indica uma posição na ordem de escaneamento 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 DC e, no caso de ser maior que 0, não é um sub-bloco no qual está incluído o componente DC.[0248] 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 it is greater than 0, it is not a sub-block in which the DC component is included.
[0249] 11. lastScanPos: Indica a posição onde o último coeficiente significante está na ordem de escaneamento dentro de um sub-bloco. Se um sub-bloco incluir 16 posições, são possíveis valores de 0 a 15.[0249] 11. lastScanPos: Indicates the position where the last significant coefficient is in the scanning order within a sub-block. If a sub-block includes 16 positions, values from 0 to 15 are possible.
[0250] 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.[0250] 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.
[0251] 13. cu_sbt_flag: Um sinalizador que indica se uma transformada de sub-bloco (SBT) incluída no padrão VVC atual é aplicável. Um valor de sinalizador igual a 0 indica que a SBT não é aplicável e um valor de sinalizador igual a 1 indica que o SBT é aplicado.[0251] 13. cu_sbt_flag: A flag that indicates whether a sub-block transform (SBT) included in the current VVC standard is applicable. A flag value of 0 indicates that SBT is not applicable and a flag value of 1 indicates that SBT is applied.
[0252] 14. sps_explicit_mts_inter_enabled_flag, sps_explicit_mts_intra_enabled_flag: Sinalizadores que indicam se uma MTS explícita é aplicada a uma inter CU e uma intra CU, respectivamente. Um valor de sinalizador igual a 0 indica que a MTS não é aplicável à inter CU ou intra CU, e um valor de sinalizador igual a 1 indica que a MTS é aplicável.[0252] 14. sps_explicit_mts_inter_enabled_flag, sps_explicit_mts_intra_enabled_flag: Flags that indicate whether an explicit MTS is applied to an inter CU and an intra CU, respectively. A flag value of 0 indicates that MTS is not applicable to inter CU or intra CU, and a flag value of 1 indicates that MTS is applicable.
[0253] 15. tu_mts_idx[ x0 ][ y0 ]: Um elemento de sintaxe de índice de MTS a ser analisado. Quando não analisado, este elemento é inferido como um valor de 0. Ou seja, o elemento é definido com um valor padrão de 0, o que indica que o DCT-2 é aplicado horizontalmente e verticalmente.[0253] 15. tu_mts_idx[ x0 ][ y0 ]: An MTS index syntax element to be parsed. When not parsed, this element is inferred as a value of 0. That is, the element is set to a default value of 0, which indicates that DCT-2 is applied horizontally and vertically.
[0254] Conforme mostrado na Tabela 4, uma pluralidade de condições é verificada ao codificar mts_idx[ x0 ][ y0 ], e tu_mts_idx[ x0 ][ y0 ] é sinalizado apenas quando lfnst_idx[ x0 ][ y0 ] é igual a 0.[0254] As shown in Table 4, a plurality of conditions are checked when encoding mts_idx[ x0 ][ y0 ], and tu_mts_idx[ x0 ][ y0 ] is flagged only when lfnst_idx[ x0 ][ y0 ] is equal to 0.
[0255] tu_cbf_luma[ x0 ][ y0 ] é um sinalizador que indica se existe um coeficiente significante para um componente de luma.[0255] tu_cbf_luma[ x0 ][ y0 ] is a flag that indicates whether there is a significant coefficient for a luma component.
[0256] De acordo com a Tabela 5, quando a largura e a altura de uma unidade de codificação para o componente de luma são 32 ou menos, mts_idx[ x0 ][ y0 ] é sinalizado (Max(cbWidth, cbHeight) <= 32), isto é, se a MTS é aplicada é determinada pela largura e altura da unidade de codificação para o componente de luma.[0256] According to Table 5, when the width and height of a coding unit for the luma component are 32 or less, mts_idx[ x0 ][ y0 ] is flagged (Max(cbWidth, cbHeight) <= 32 ), that is, whether MTS is applied is determined by the width and height of the encoding unit for the luma component.
[0257] Além disso, de acordo com a Tabela 5, ele pode ser configurado para sinalizar lfnst_idx[ x0 ][ y0 ] mesmo no modo de ISP (IntraSubPartitionsSplitType ! = ISP_NO_SPLIT), e o mesmo valor de índice de LFNST pode ser aplicado a todos os blocos de partição de ISP.[0257] Additionally, according to Table 5, it can be configured to flag lfnst_idx[ x0 ][ y0 ] even in ISP mode (IntraSubPartitionsSplitType != ISP_NO_SPLIT), and the same LFNST index value can be applied to all ISP partition blocks.
[0258] No entanto, mts_idx[ x0 ][ y0 ] só pode ser sinalizado em um caso diferente do modo de ISP (IntraSubPartitionsSplit[ x0 ][ y0 ] = = ISP_NO_SPLIT).[0258] However, mts_idx[ x0 ][ y0 ] can only be signaled in a case other than ISP mode (IntraSubPartitionsSplit[ x0 ][ y0 ] = = ISP_NO_SPLIT).
[0259] Conforme mostrado na Tabela 7, a verificação do valor de mts_idx[ x0 ][ y0 ] pode ser omitida em um processo de determinação de log2ZoTbWidth e log2ZoTbHeight (onde log2ZoTbWidth e log2ZoTbHeight respectivamente denotam os valores de logaritmo de base 2 da largura e altura de uma região de topo à esquerda restante após a execução do zero-out).[0259] As shown in Table 7, checking the value of mts_idx[ x0 ][ y0 ] may be omitted in a process of determining log2ZoTbWidth and log2ZoTbHeight (where log2ZoTbWidth and log2ZoTbHeight respectively denote the base 2 logarithm values of the width and height of a left-top region remaining after performing zero-out).
[0260] De acordo com um exemplo, uma condição de verificação de sps_mts_enable_flag pode ser adicionada ao determinar log2ZoTbWidth e log2ZoTbHeight na codificação residual.[0260] According to an example, a sps_mts_enable_flag check condition can be added when determining log2ZoTbWidth and log2ZoTbHeight in the residual encoding.
[0261] Uma variável LfnstZeroOutSigCoeffFlag na Tabela 5 é 0 se houver um coeficiente significante em uma posição zero-out quando a LFNST é aplicada, e é 1 caso contrário. A variável LfnstZeroOutSigCoeffFlag pode ser definida de acordo com uma pluralidade de condições mostradas na Tabela 7.[0261] A variable LfnstZeroOutSigCoeffFlag in Table 5 is 0 if there is a significant coefficient at a zero-out position when the LFNST is applied, and is 1 otherwise. The LfnstZeroOutSigCoeffFlag variable can be set according to a plurality of conditions shown in Table 7.
[0262] De acordo com um exemplo, uma variável LfnstDcOnly na Tabela 5 é 1 quando todos os últimos coeficientes significantes para blocos de transformada para os quais um sinalizador de bloco codificado correspondente (CBF, que é 1 quando há pelo menos um coeficiente significante em um bloco correspondente, e é 0 caso contrário) é 1 estão nas posições DC (posições de topo à esquerda) e é 0 caso contrário. Especificamente, a posição do último coeficiente significante é verificada em relação a um bloco de transformada de luma em um luma de árvore dupla, e a posição do último coeficiente significante é verificada em relação a um bloco de transformada para Cb e a um bloco de transformada para Cr em um croma de árvore dupla. Em uma única árvore, a posição do último coeficiente significante pode ser verificada em relação aos blocos de transformada para luma, Cb e Cr.[0262] According to an example, a variable LfnstDcOnly in Table 5 is 1 when all last significant coefficients for transform blocks for which a corresponding coded block flag (CBF, which is 1 when there is at least one significant coefficient in a corresponding block, and is 0 otherwise) is 1 are in DC positions (top left positions) and is 0 otherwise. Specifically, the position of the last significant coefficient is checked relative to a luma transform block in a double-tree luma, and the position of the last significant coefficient is checked relative to a transform block for Cb and a transform block to Cr in a double-tree chroma. In a single tree, the position of the last significant coefficient can be checked against the transform blocks for luma, Cb and Cr.
[0263] Na Tabela 5, MtsZeroOutSigCoeffFlag é inicialmente definido como 1, e esse valor pode ser alterado na codificação residual da Tabela 6. A variável MtsZeroOutSigCoeffFlag é alterada de 1 para 0 quando há um coeficiente significante em uma região a ser preenchida 0s por um zero-out (LastSignificantCoeffX > 15 | | LastSignificantCoeffY > 15 ), caso em que o índice de MTS não é sinalizado conforme mostrado na Tabela 5.[0263] In Table 5, MtsZeroOutSigCoeffFlag is initially set to 1, and this value can be changed in the residual coding of Table 6. The variable MtsZeroOutSigCoeffFlag is changed from 1 to 0 when there is a significant coefficient in a region to be filled 0s by a zero-out (LastSignificantCoeffX > 15 | | LastSignificantCoeffY > 15 ), in which case the MTS index is not flagged as shown in Table 5.
[0264] Conforme mostrado na Tabela 5, quando tu_cbf_luma[ x0 ][ y0 ] é 0, a codificação mts_idx[ x0 ][ y0 ] pode ser omitida. Ou seja, quando o valor de CBF do componente de luma é 0, nenhuma transformada é aplicada e, portanto, o índice de MTS não precisa de sinalização. Portanto, a codificação do índice de MTS pode ser omitida.[0264] As shown in Table 5, 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, no transform is applied and therefore the MTS index does not need signaling. Therefore, the MTS index encoding can be omitted.
[0265] De acordo com um exemplo, o recurso técnico acima pode ser implementado em outra sintaxe condicional. Por exemplo, após a MTS ser realizada, uma variável indicando se existe um coeficiente significante em uma região diferente da região DC do bloco atual pode ser derivada, e quando a variável indica que o coeficiente significante existe na região excluindo a região DC, o índice de MTS pode ser sinalizado. Ou seja, a existência do coeficiente significante 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.[0265] 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.
[0266] 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 significante 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 de MTS seja sinalizado.[0266] 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.
[0267] 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 5, 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.[0267] When tu_cbf_luma[ x0 ][ y0 ] is 0, since the residual encoding syntax is not called at the transform unit level of Table 5, 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.
[0268] 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 7. O índice de cor cIdx de 0 significa um componente de luma.[0268] Meanwhile, the decoding apparatus can determine the color index cIdx from the transform coefficient to derive the variable MtsZeroOutSigCoeffFlag from Table 7. The color index cIdx of 0 means a luma component.
[0269] De acordo com um exemplo, uma vez que a MTS pode ser aplicada apenas ao componente de luma do bloco atual, o aparelho de decodificação pode determinar se o índice de cor é luma ao derivar a variável MtsZeroOutSigCoeffFlag para determinar se o índice de MTS deve ser analisado.[0269] According to an example, since the 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 color index is luma. MTS must be analyzed.
[0270] A variável MtsZeroOutSigCoeffFlag é uma variável que indica se o zero-out é realizado quando a MTS é aplicada. Indica se o coeficiente de transformada existe na região de topo à esquerda onde o último coeficiente significante pode existir devido ao zero-out após a realização da MTS, isto é, na região diferente da região de topo à esquerda 16 X 16. A variável MtsZeroOutSigCoeffFlag é inicialmente definida como 1 no nível da unidade de codificação conforme mostrado na Tabela 3 (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 5 (MtsZeroOutSigCoeffFlag = 0). Quando o valor da variável MtsZeroOutSigCoeffFlag é 0, o índice de MTS não é sinalizado.[0270] 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 top 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 top left region 16 X 16. The variable MtsZeroOutSigCoeffFlag is initially set to 1 at the coding unit level as shown in Table 3 (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 at the level region. residual coding as shown in Table 5 (MtsZeroOutSigCoeffFlag = 0). When the value of the MtsZeroOutSigCoeffFlag variable is 0, the MTS index is not flagged.
[0271] Conforme mostrado na Tabela 7, 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 a MTS é realizado ou não, e mesmo neste caso, o índice de cor (cIdx) é 0, a região não zero-out pode ser definida para a região 16 X 16 de topo à esquerda do bloco atual.[0271] As shown in Table 7, at the residual coding level, a non-zero region in which a non-zero transform coefficient may exist may 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-out region can be set to the top left 16 X 16 region of the current block.
[0272] 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 aplicada ao componente de luma e ao componente de 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.[0272] 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 to analyze the LFNST index.
[0273] Por exemplo, a Tabela 5 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 significante 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 significante 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 aplicada tanto ao componente de luma quanto ao componente de croma do bloco atual, o índice de cor do bloco atual não é determinado.[0273] For example, Table 5 shows a variable LfnstZeroOutSigCoeffFlag that can indicate that zero-out is performed when LFNST is applied. The variable LfnstZeroOutSigCoeffFlag indicates whether there is a significant coefficient in the second region, except in 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 defined 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.
[0274] Conforme mostrado na Tabela 5, o índice MTS é sinalizado para cada unidade de codificação, e mts_idx (índice MTS) é sinalizado somente quando MtsZeroOutSigCoeffFlag for igual a 1.[0274] As shown in Table 5, the MTS index is signaled for each coding unit, and mts_idx (MTS index) is signaled only when MtsZeroOutSigCoeffFlag is equal to 1.
[0275] Além disso, conforme mostrado na Tabela 7, o valor de MtsZeroOutCoeffFlag pode ser determinado de acordo com uma condição específica (if( ( LastSignificantCoeffX > 15 | | LastSignificantCoeffY > 15 ) && cIdx = = 0 )) em um nível de codificação residual.[0275] Furthermore, as shown in Table 7, the value of MtsZeroOutCoeffFlag can be determined according to a specific condition (if( ( LastSignificantCoeffX > 15 | | LastSignificantCoeffY > 15 ) && cIdx = = 0 )) at an encoding level residual.
[0276] O valor de MtsZeroOutSigCoeffFlag é definido como 0 quando a coordenada x (LastSignificantCoeffX) do último coeficiente diferente de zero for maior que 15 e a coordenada y (LastSignificantCoeffY) do último coeficiente diferente de zero for maior que 15. Aqui, as coordenadas x aumentam da esquerda para a direita no bloco de transformada e as coordenadas y aumentam de cima para baixo no bloco de transformada. A posição superior esquerda do bloco de transformada é (0, 0).[0276] The value of MtsZeroOutSigCoeffFlag is set to 0 when the x-coordinate (LastSignificantCoeffX) of the last non-zero coefficient is greater than 15 and the y-coordinate (LastSignificantCoeffY) of the last non-zero coefficient is greater than 15. Here, the coordinates x increases from left to right in the transform block, and y coordinates increase from top to bottom in the transform block. The upper left position of the transform block is (0, 0).
[0277] O valor de MtsZeroOutSigCoeffFlag é inicializado como 1 na Tabela 5, e é mantido como 1 se a condição presente na Tabela 7 não for satisfeita e, portanto, o valor de MtsZeroOutSigCoeffFlag não for definido como 0.[0277] The value of MtsZeroOutSigCoeffFlag is initialized to 1 in Table 5, and is maintained as 1 if the condition present in Table 7 is not satisfied and, therefore, the value of MtsZeroOutSigCoeffFlag is not set to 0.
[0278] Quando uma transformada primária aplicada na direção horizontal é A e uma transformada primária aplicada na direção vertical é B, uma transformada primária pode ser representada por (A, B). No padrão VVC atual, em um caso de (DST-7, DST-7), (DST-7, DCT-8), (DCT-8, DST-7) e (DCT-8, DCT-8) , um coeficiente de transformada é limitado a existir apenas em uma região superior esquerda 16 x 16 do bloco de transformada. Portanto, a condição de (LastSignificantCoeffX > 15 | | LastSignificantCoeffY > 15) na Tabela 7 indica que o último coeficiente diferente de zero está posicionado fora da região superior esquerda 16 x 16. Na Tabela 7, uma variável cIdx denota um componente de cor e um valor variável de cIdx de 0 indica um componente de luma.[0278] When a primary transform applied in the horizontal direction is A and a primary transform applied in the vertical direction is B, a primary transform can be represented by (A, B). In the current VVC standard, in a case of (DST-7, DST-7), (DST-7, DCT-8), (DCT-8, DST-7), and (DCT-8, DCT-8), a transform coefficient is limited to exist only in an upper left 16 x 16 region of the transform block. Therefore, the condition of (LastSignificantCoeffX > 15 | | LastSignificantCoeffY > 15) in Table 7 indicates that the last non-zero coefficient is positioned outside the upper left 16 x 16 region. In Table 7, a variable cIdx denotes a color component and a variable cIdx value of 0 indicates a luma component.
[0279] No padrão VVC atual, o índice MTS (mts_idx) é analisado após análise para codificação residual. Especificamente, a Tabela 5 é uma unidade de codificação que é uma função de análise sintática para uma unidade de codificação, o índice MTS é analisado após uma função de árvore de transformada e uma função de análise de codificação residual na função de árvore de transformada é invocada. Portanto, o índice MTS é analisado após a análise residual (uma função de análise residual ilustrada na Tabela 6 é responsável por analisar a codificação residual) e, como as informações do índice MTS não são conhecidas da perspectiva da decodificação durante a codificação residual, pode não ser impossível para saber qual transformada primária é aplicada. No entanto, quando a MTS é aplicável e o SBT ou ISP é aplicado ou quando a MTS implícita é aplicada, o MTS é aplicado implicitamente e, portanto, é possível saber sobre a transformada primária antes de analisar a codificação residual.[0279] In the current VVC standard, the MTS index (mts_idx) is parsed after parsing for residual coding. Specifically, Table 5 is a coding unit that is a parsing function for a coding unit, the MTS index is parsed after a transform tree function, and a residual coding parsing function in the transform tree function is invoked. Therefore, the MTS index is analyzed after residual analysis (a residual analysis function illustrated in Table 6 is responsible for analyzing the residual coding), and since the MTS index information is not known from the decoding perspective during residual coding, it may not be impossible to know which primary transform is applied. However, when MTS is applicable and SBT or ISP is applied or when implicit MTS is applied, MTS is applied implicitly and therefore it is possible to know about the primary transform before analyzing the residual encoding.
[0280] A condição ilustrada na Tabela 7 precisa ser verificada, porque o padrão VVC atual estabelece uma restrição de saída de apenas 16 coeficientes de transformada quando uma transformada direta é aplicada em DST-7 de 32 comprimentos ou DCT-8 de 32 comprimentos. Por exemplo, quando o valor do índice MTS é maior que 0 e, portanto, indica que uma transformada primária aplicada é uma de (DST-7, DST-7), (DST-7, DCT-8), (DCT-8, DST-7), (DCT-8, DCT-8), um coeficiente de transformada diferente de zero pode existir apenas na região superior esquerda 16 x 16 do bloco de transformada.[0280] The condition illustrated in Table 7 needs to be verified, because the current VVC standard establishes an output restriction of only 16 transform coefficients when a direct transform is applied to 32-length DST-7 or 32-length DCT-8. For example, when the MTS index value is greater than 0 and therefore indicates that an applied primary transform is one of (DST-7, DST-7), (DST-7, DCT-8), (DCT-8 , DST-7), (DCT-8, DCT-8), a non-zero transform coefficient can exist only in the upper left 16 x 16 region of the transform block.
[0281] Assim, quando a posição do último coeficiente de transformada diferente de zero está fora da região superior esquerda 16 x 16, que corresponde a um caso em que o valor do índice MTS é 0, a sinalização do índice MTS pode ser omitida conforme mostrado na Tabela 5. No entanto, mesmo que a posição do último coeficiente de transformada diferente de zero esteja dentro da região superior esquerda 16 x 16, um coeficiente diferente de zero pode existir fora da região superior esquerda 16 x 16. Neste caso, o índice MTS pode ser sinalizado como 0 mesmo que o valor do índice MTS seja 0, que é descrito em detalhes a seguir.[0281] Thus, when the position of the last non-zero transform coefficient is outside the upper left 16 x 16 region, which corresponds to a case where the MTS index value is 0, the MTS index flag may be omitted as per shown in Table 5. However, even if the position of the last nonzero transform coefficient is within the upper left 16 x 16 region, a nonzero coefficient may exist outside the upper left 16 x 16 region. MTS index can be flagged as 0 even if the MTS index value is 0, which is described in detail below.
[0282] Quando a transformada primária é (DCT-2, DCT-2), a posição do último coeficiente diferente de zero existe na região superior esquerda 16 x 16 e um coeficiente de transformada diferente de zero também pode existir fora da região superior esquerda 16 x 16, porque na ordem de escaneamento dentro do bloco de transformada, uma região fora da região superior esquerda 16 x 16, ou seja, uma região diferente da região superior esquerda 16 x 16, pode ser escaneada e, em seguida, a região superior esquerda 16 x 16 pode ser verificada ou a região superior esquerda 16 x 16 pode ser verificada e, em seguida, a região fora da região superior esquerda 16 x 16 pode ser verificada.[0282] When the primary transform is (DCT-2, DCT-2), the position of the last non-zero coefficient exists in the upper left region 16 x 16 and a non-zero transform coefficient can also exist outside the upper left region 16 x 16, because in the scan order within the transform block, a region outside the upper left 16 x 16 region, that is, a region other than the upper left 16 x 16 region, can be scanned, and then the region top left 16 x 16 region can be scanned or the top left 16 x 16 region can be scanned and then the region outside the top left 16 x 16 region can be scanned.
[0283] A Figura 15 ilustra um escaneamento de um bloco de transformada de 32 x 32 de acordo com uma modalidade da presente divulgação, que mostra especificamente que o bloco de transformada de 32 x 32 é dividido em 4 x 4 grupos de coeficientes (CGs) e digitalizado. Na presente divulgação, os CGs divididos para serem escaneados são referidos como “sub-blocos de escaneamento”.[0283] Figure 15 illustrates a scan of a 32 x 32 transform block in accordance with an embodiment of the present disclosure, which specifically shows that the 32 x 32 transform block is divided into 4 x 4 coefficient groups (CGs ) and digitized. In the present disclosure, the CGs divided to be scanned are referred to as “scanning sub-blocks”.
[0284] Um número indicado para cada CG denota uma ordem de escaneamento direta, e os CGs podem ser escaneados pelo aparelho de decodificação de acordo com uma ordem de escaneamento inversa a partir da posição onde existe o último coeficiente de transformada diferente de zero. Na Figura 15, pode-se supor que o último coeficiente de transformada diferente de zero existe em CG 25 e CG 25 existe na região superior esquerda 16 x 16.[0284] A number indicated for each CG denotes a forward scanning order, and the CGs can be scanned by the decoding apparatus according to a reverse scanning order starting from the position where the last non-zero transform coefficient exists. In Figure 15, it can be assumed that the last non-zero transform coefficient exists in CG 25 and CG 25 exists in the upper left 16 x 16 region.
[0285] Conforme mostrado na Figura 15, quando o último coeficiente de transformada diferente de zero existe em CG 25, uma vez que o aparelho de decodificação escaneia os CGs de acordo com a ordem de escaneamento inversa do CG em que o último coeficiente de transformada diferente de zero existe, o aparelho de decodificação escaneia os CGs em uma ordem de 25, 24, 23, ..., 3, 2, 1 com base nos números indicados na Figura 15. Como os CGs 24, 23, 22, 21, 20, 17, 16, 15 e 11 estão posicionados fora da região superior esquerda 16 x 16, é impossível saber se existe um coeficiente diferente de zero apenas na região superior esquerda 16 x 16 apenas verificando se LastSignificantCoeffX e LastSignificantCoeffY correspondem à região superior esquerda 16 x 16, conforme mostrado na Tabela 6.[0285] As shown in Figure 15, when the last non-zero transform coefficient exists in CG 25, since the decoding apparatus scans the CGs according to the reverse scanning order of the CG in which the last transform coefficient non-zero exists, the decoding apparatus scans the CGs in an order of 25, 24, 23, ..., 3, 2, 1 based on the numbers indicated in Figure 15. As the CGs 24, 23, 22, 21 , 20, 17, 16, 15 and 11 are positioned outside the top left 16 x 16 region, it is impossible to know if there is a non-zero coefficient just in the top left 16 x 16 region just by checking whether LastSignificantCoeffX and LastSignificantCoeffY correspond to the top left region 16 x 16, as shown in Table 6.
[0286] Portanto, ao realizar a análise para codificação residual, se verificar se um grupo de coeficientes 4 x 4 correspondente pertence à região superior esquerda 16 x 16 sempre que um coeficiente de transformada diferente de zero é verificado, o valor de MtsZeroOutSigCoeffFlag pode ser definido como 0 apenas no caso em que existe um coeficiente diferente de zero fora da região superior esquerda16 x 16. Nesse caso, uma sintaxe de codificação residual é mostrada na tabela a seguir. Tabela 8 [0286] Therefore, when performing analysis for residual coding, if a corresponding 4 x 4 coefficient group is checked to belong to the upper left 16 x 16 region whenever a non-zero transform coefficient is checked, the value of MtsZeroOutSigCoeffFlag can be set to 0 only in the case where there is a non-zero coefficient outside the upper left 16 x 16 region. In this case, a residual encoding syntax is shown in the following table. Table 8
[0287] Conforme mostrado na Tabela 8, sempre que um coeficiente de transformada diferente de zero é encontrado, se o coeficiente de transformada diferente de zero está posicionado na região 16 x 16 de topo à esquerda (if( ( xC > 15 | | yC > 15 ) && cIdx = = 0 )) pode ser verificado, definindo assim o valor MtsZeroOutSigCoeffFlag para 0. Aqui, esta condição é verificada quando o valor de sig_coeff_flag[ xC ][ yC ], que é a informação do sinalizador que indica se o coeficiente de transformada existe, é 1 ( if( sig_coeff_flag[ xC ][ yC ] )), onde xC e yC denotam respectivamente uma coordenada x e uma coordenada y em unidades de amostra dentro do bloco de transformada. A posição de topo à esquerda do bloco de transformada é (0, 0).[0287] As shown in Table 8, whenever a non-zero transform coefficient is found, if the non-zero transform coefficient is positioned in the left-top 16 x 16 region (if( ( xC > 15 | | yC > 15 ) && cIdx = = 0 )) can be checked by thus setting the MtsZeroOutSigCoeffFlag value to 0. Here, this condition is checked when the value of sig_coeff_flag[ xC ][ yC ], which is the flag information that indicates whether the transform coefficient exists, is 1 ( if( sig_coeff_flag[ xC ][ yC ] )), where xC and yC respectively denote an x-coordinate and a y-coordinate in sample units within the transform block. The top left position of the transform block is (0, 0).
[0288] A Tabela 8 inclui a verificação de condição apresentada na Tabela 7 e uma atualização de MtsZeroOutSigCoeffFlag (if( ( LastSignificantCoeffX > 15 | | LastSignificantCoeffY > 15 ) && cIdx = = 0 ) MtsZeroOutSigCoeffFlag = 0). Se o valor de sig_coeff_flag[ xC ][ yC ] para o último coeficiente de transformada diferente de zero for inferido como 1, a verificação de condição e a atualização de MtsZeroOutSigCoeffFlag podem ser removidas da Tabela 8.[0288] Table 8 includes the condition check presented in Table 7 and an update of MtsZeroOutSigCoeffFlag (if( ( LastSignificantCoeffX > 15 | | LastSignificantCoeffY > 15 ) && cIdx = = 0 ) MtsZeroOutSigCoeffFlag = 0). If the value of sig_coeff_flag[ xC ][ yC ] for the last non-zero transform coefficient is inferred to be 1, the condition check and update of MtsZeroOutSigCoeffFlag can be removed from Table 8.
[0289] Em resumo, ao sinalizar o índice de MTS na Tabela 5 por meio da configuração de sintaxe mostrada na Tabela 8, o índice de MTS é sinalizado apenas quando existe um coeficiente de transformada diferente de zero em uma região 16 x 16 de topo à esquerda de uma transformada de luma bloco independentemente de qual transformada primária é aplicada. Quando o índice de MTS não é sinalizado, o valor do índice de MTS é inferido como 0, ou seja, (DCT-2, DCT-2) é aplicado.[0289] In summary, when signaling the MTS index in Table 5 via the syntax configuration shown in Table 8, the MTS index is only signaled when a non-zero transform coefficient exists in a top 16 x 16 region to the left of a block luma transform regardless of which primary transform is applied. When the MTS index is unsigned, the MTS index value is inferred as 0, that is, (DCT-2, DCT-2) is applied.
[0290] Conforme descrito acima, nos três casos a seguir, uma transformada primária aplicada pode ser conhecida antes que o índice de MTS seja sinalizado.[0290] As described above, in the following three cases, an applied primary transform may be known before the MTS index is signaled.
[0291] 1) Onde a transformada de sub-bloco (SBT) é aplicada[0291] 1) Where the sub-block transform (SBT) is applied
[0292] 2) Onde a intra sub-partição (ISP) é aplicada[0292] 2) Where intra sub-partition (ISP) is applied
[0293] 3) Onde a MTS implícita é aplicada[0293] 3) Where implicit MTS is applied
[0294] No caso (1), visto que o índice de MTS está configurado para ser sinalizado somente quando o valor de cu_sbt_flag indicando se o SBT é aplicado na Tabela 5 é 0, ou seja, já que o índice de MTS é sinalizado somente quando o SBT está não aplicado, o caso de aplicação do SBT é irrelevante para a modificação da Tabela 7.[0294] In case (1), since the MTS index is configured to be signaled only when the value of cu_sbt_flag indicating whether SBT is applied in Table 5 is 0, that is, since the MTS index is signaled only when the SBT is not applied, the case of application of the SBT is irrelevant for the modification of Table 7.
[0295] No caso (2), uma vez que o índice de MTS é sinalizado apenas quando o ISP não é aplicado na Tabela 4 (uma condição se IntraSubPartitionsSplit[ x0 ][ y0 ] = = ISP_NO_SPLIT for verificado ao sinalizar o índice de MTS na Tabela 5), o caso em que o ISP é aplicado também é irrelevante para a modificação da Tabela 8.[0295] In case (2), since the MTS index is signaled only when the ISP is not applied in Table 4 (a condition if IntraSubPartitionsSplit[ x0 ][ y0 ] = = ISP_NO_SPLIT is checked when signaling the MTS index in Table 5), the case in which the ISP is applied is also irrelevant to the modification of Table 8.
[0296] No caso (3), uma vez que o índice de MTS é sinalizado apenas quando uma MTS explícita está habilitada na Tabela 5, o caso em que a MTS implícita é aplicada também é irrelevante para a modificação da Tabela 7. Ou seja, uma vez que o índice de MTS é sinalizado apenas quando o valor de sps_explicit_mts_intra_enabled_flag é 1 em uma MTS (intra MTS) aplicada a um bloco residual gerado pela intra predição e o valor de sps_explicit_mts_inter_enabled_flag é 1 em uma MTS (inter MTS) aplicada a um bloco residual gerado pela inter predição, a modificação da Tabela 8 não afeta o caso em que a MTS implícita é aplicada.[0296] In case (3), since the MTS index is signaled only when an explicit MTS is enabled in Table 5, the case in which the implicit MTS is applied is also irrelevant for the modification of Table 7. That is , since the MTS index is signaled only when the value of sps_explicit_mts_intra_enabled_flag is 1 in an MTS (intra MTS) applied to a residual block generated by the intra prediction and the value of sps_explicit_mts_inter_enabled_flag is 1 in an MTS (inter MTS) applied to a residual block generated by inter prediction, the modification of Table 8 does not affect the case in which the implicit MTS is applied.
[0297] De acordo com um outro exemplo, conforme mostrado na tabela a seguir, pode-se verificar se existe um coeficiente diferente de zero fora da região 16 x 16 de topo à esquerda por uma unidade de um CG. Tabela 9 [0297] According to another example, as shown in the following table, it can be checked whether there is a non-zero coefficient outside the left top 16 x 16 region by one unit of a CG. Table 9
[0298] Na Tabela 9, xS e yS denotam uma posição da coordenada x e uma posição da coordenada y em cada unidade CG dentro do bloco de transformada atual e precisam ser convertidos em coordenadas em unidades de amostra para verificar se o coeficiente de transformada está posicionado fora da região 16 x 16 de topo à esquerda. Ou seja, xS e yS são convertidos em coordenadas em unidades de amostra como em ( xS << log2SbW ) e ( yS << log2SbH ). Aqui, log2SbW e log2SbH respectivamente denotam os valores de logaritmo de base 2 da largura e altura de um CG correspondente, as coordenadas x aumentam da esquerda para a direita no bloco de transformada e as coordenadas y aumentam de cima para baixo. As coordenadas da posição de topo à esquerda do bloco de transformada são (0, 0).[0298] In Table 9, xS and yS denote an x-coordinate position and a y-coordinate position in each CG unit within the current transform block and need to be converted to coordinates in sample units to verify that the transform coefficient is positioned outside the top left 16 x 16 region. That is, xS and yS are converted to coordinates in sample units as in ( xS << log2SbW ) and ( yS << log2SbH ). Here, log2SbW and log2SbH respectively denote the base-2 logarithm values of the width and height of a corresponding CG, the x-coordinates increase from left to right in the transform block and the y-coordinates increase from top to bottom. The coordinates of the top left position of the transform block are (0, 0).
[0299] Conforme mostrado na Tabela 9, no escaneamento por uma unidade de um CG, quando existe um coeficiente de transformada diferente de zero dentro de cada CG (quando o valor de coded_sub_block_flag[ xS ][ yS ] é 1) e o CG é identificado para ser posicionado fora da região 16 x 16 de topo à esquerda do bloco de transformada ( ( xS << log2SbW ) > 15 | | ( yS << log2SbH ) > 15 ) ), o valor de MtsZeroOutSigCoeffFlag é definido como 0.[0299] As shown in Table 9, when scanning a unit of a CG, when there is a non-zero transform coefficient within each CG (when the value of coded_sub_block_flag[ xS ][ yS ] is 1) and the CG is identified to be positioned outside the top left 16 x 16 region of the transform block ( ( xS << log2SbW ) > 15 | | ( yS << log2SbH ) > 15 ) ), the value of MtsZeroOutSigCoeffFlag is set to 0.
[0300] Conforme mostrado na Tabela 5, como o valor da variável MtsZeroOutSigCoeffFlag é inicializado em 1, o valor de MtsZeroOutSigCoeffFlag é mantido em 1, a menos que o valor de MtsZeroOutSigCoeffFlag seja definido como 0. Quando o valor de coded_sub_block_flag[xS][yS] para um CG ao qual pertence o último coeficiente de transformada diferente de zero é inferido como 1, a parte de verificação de condição na Tabela 7 e a atualização de MtsZeroOutSigCoeffFlag (if ( ( LastSignificantCoeffX > 15 | | LastSignificantCoeffY ) > 15 ) && cIdx = = 0 ) MtsZeroOutSigCoeffFlag = 0) pode ser removido da Tabela 9.[0300] As shown in Table 5, because the value of the MtsZeroOutSigCoeffFlag variable is initialized to 1, the value of MtsZeroOutSigCoeffFlag is kept at 1 unless the value of MtsZeroOutSigCoeffFlag is set to 0. When the value of coded_sub_block_flag[xS][ yS] for a CG to which the last non-zero transform coefficient belongs is inferred as 1, the condition checking part in Table 7 and the update of MtsZeroOutSigCoeffFlag (if ( ( LastSignificantCoeffX > 15 | | LastSignificantCoeffY ) > 15 ) && cIdx = = 0 ) MtsZeroOutSigCoeffFlag = 0) can be removed from Table 9.
[0301] Os desenhos a seguir são fornecidos para descrever exemplos específicos da presente divulgação. Uma vez que termos específicos para dispositivos ou termos específicos para sinais/mensagens/campos ilustrados nos desenhos são fornecidos para ilustração, as características técnicas da presente divulgação não estão limitadas aos termos específicos usados nos desenhos a seguir.[0301] The following drawings are provided to describe specific examples of the present disclosure. Since device-specific terms or specific terms for signals/messages/fields illustrated in the drawings are provided for illustration, the technical features of the present disclosure are not limited to the specific terms used in the following drawings.
[0302] A Figura 16 é 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.[0302] Figure 16 is a flowchart illustrating an operation of a video decoding apparatus in accordance with an embodiment of the present disclosure.
[0303] Cada processo divulgado na Figura 16 é baseado em alguns dos detalhes descritos com referência à Figura 4 à Figura 15. Portanto, uma descrição de detalhes específicos sobrepostos aos descritos com referência à Figura 3 à Figura 15 será omitido ou será feito esquematicamente.[0303] Each process disclosed in Figure 16 is based on some of the details described with reference to Figure 4 to Figure 15. Therefore, a description of specific details overlapping with those described with reference to Figure 3 to Figure 15 will be omitted or will be done schematically.
[0304] O aparelho de decodificação 300 de acordo com uma modalidade pode receber um fluxo de bits incluindo informações residuais e pode derivar informações residuais, por exemplo, coeficientes de transformada quantificados, para um bloco atual, isto é, um bloco de transformada a ser transformado, do fluxo duplo (S1610).[0304] The decoding apparatus 300 in accordance with one embodiment may receive a bit stream including residual information and may derive residual information, e.g., quantized transform coefficients, for a current block, i.e., a transform block to be transformed, double flow (S1610).
[0305] Especificamente, o aparelho de decodificação 300 pode decodificar informações sobre coeficientes de transformada quantificados para um bloco atual do fluxo de bits e pode derivar coeficientes de transformada quantificados para um 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 informação sobre se um RST é aplicado, informações sobre um fator reduzido, informações sobre um mínimo tamanho de transformada para aplicar um RST, informações sobre um tamanho de transformada máximo para aplicar um RST, um tamanho de RST inverso e informações sobre um índice de transformada indicando qualquer uma das matrizes de núcleo de transformada incluídas em um conjunto de transformada.[0305] Specifically, the decoding apparatus 300 may decode information about quantized transform coefficients for a current block of the bit stream and may derive quantized transform coefficients for a target block based on information about the quantized transform coefficients for the block. current. 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 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 transformed.
[0306] O aparelho de decodificação 300 pode derivar a posição de um último coeficiente significante no bloco atual e coeficientes de transformada para o bloco atual com base na informação residual (S1620). O aparelho de decodificação 300 pode derivar os coeficientes de transformada desquantizando os coeficientes de transformada quantificados do bloco atual.[0306] The decoding apparatus 300 can derive the position of a last significant coefficient in the current block and transform coefficients for the current block based on the residual information (S1620). The decoding apparatus 300 may derive the transform coefficients by dequantizing the quantized transform coefficients of the current block.
[0307] Os coeficientes de transformada derivados podem ser dispostos bidimensionalmente no bloco atual e o aparelho de decodificação pode derivar informações sobre dados diferentes de zero, isto é, um coeficiente significante diferente de zero, no bloco atual através desta codificação residual. Ou seja, o aparelho de decodificação pode identificar a última informação de posição no coeficiente significante diferente de zero no bloco atual.[0307] The derived transform coefficients can be arranged two-dimensionally in the current block and the decoding apparatus can derive information about non-zero data, that is, a significant non-zero coefficient, in the current block through this residual encoding. That is, the decoding apparatus can identify the last position information in the non-zero significant coefficient in the current block.
[0308] Os coeficientes de transformada derivados com base na informação residual em S1620 podem ser os coeficientes de transformada desquantizados conforme descrito acima ou podem ser os coeficientes de transformada quantificados. Ou seja, os coeficientes de transformada só precisam ser dados para identificar os dados diferentes de zero no bloco atual e a posição do coeficiente significante independentemente da quantização.[0308] The transform coefficients derived based on the residual information in S1620 may be the dequantized transform coefficients as described above or may be the quantized transform coefficients. That is, transform coefficients only need to be given to identify non-zero data in the current block and the position of the significant coefficient independently of quantization.
[0309] O aparelho de decodificação pode derivar coeficientes de transformada modificados aplicando uma LFNST aos coeficientes de transformada ou pode não realizar a LFNST.[0309] The decoding apparatus may derive modified transform coefficients by applying an LFNST to the transform coefficients or may not perform the LFNST.
[0310] O aparelho de decodificação pode derivar amostras residuais realizando a transformada primária inversa dos coeficientes de transformada ou dos coeficientes de transformada modificados. O aparelho de decodificação pode usar DCT-2 geral como um núcleo de transformada ou pode aplicar a MTS anterior para a transformada primária inversa.[0310] The decoding apparatus may derive residual samples by performing the inverse primary transform of the transform coefficients or the modified transform coefficients. The decoding apparatus may use general DCT-2 as a transform core or may apply the previous MTS to the inverse primary transform.
[0311] A MTS pode ser executada implicitamente ou pode ser executada com base na sinalização explícita de um índice de MTS.[0311] MTS may be executed implicitly or may be performed based on explicit signaling of an MTS index.
[0312] O aparelho de decodificação pode verificar condições predeterminadas para analisar o índice de MTS. De acordo com um exemplo, o aparelho de decodificação pode analisar um índice de MTS com base no coeficiente significante não estar presente em uma segunda região diferente de uma primeira região de topo à esquerda do bloco atual (S1630).[0312] The decoding apparatus may check predetermined conditions to analyze the MTS index. According to one example, the decoding apparatus may analyze an MTS index based on the significant coefficient not being present in a second region other than a first left top region of the current block (S1630).
[0313] O índice de MTS pode ser analisado derivando informações de sinalizador indicando se o coeficiente significante existe na segunda região, na qual a informação de sinalizador pode ser derivada determinando se o coeficiente significante existe na segunda região por uma unidade de um sub-bloco de escaneamento de escanear um coeficiente significante.[0313] The MTS index can be analyzed by deriving flag information indicating whether the significant coefficient exists in the second region, which flag information can be derived by determining whether the significant coefficient exists in the second region by one unit of a sub-block of scanning a significant coefficient.
[0314] O aparelho de decodificação pode realizar a transformada primária inversa em coeficientes de transformada na primeira região de topo à esquerda do bloco atual a ser transformado. Ou seja, a segunda região diferente da primeira região de topo à esquerda do bloco atual é zerada e, portanto, não inclui coeficiente de transformada.[0314] The decoding apparatus may perform the inverse primary transform on transform coefficients in the first left top region of the current block to be transformed. That is, the second region different from the first top region to the left of the current block is zeroed and therefore does not include transform coefficient.
[0315] De acordo com um exemplo, quando a MTS é aplicada, a primeira região pode ser uma região 16 x 16 de topo à esquerda do bloco atual, caso em que a segunda região pode ser uma região diferente da região 16 x de topo à esquerda 16 região.[0315] According to an example, when MTS is applied, the first region may be a top 16 x 16 region to the left of the current block, in which case the second region may be a region other than the top 16 x region left 16 region.
[0316] O sub-bloco de escaneamento pode ser um bloco de 4 x 4 e pode ser escaneado de acordo com uma direção de escaneamento diagonal inversa a partir da posição do último coeficiente significante no bloco atual, conforme mostrado na Figura 15.[0316] The scanning sub-block may be a 4 x 4 block and may be scanned according to a reverse diagonal scanning direction from the position of the last significant coefficient in the current block, as shown in Figure 15.
[0317] Para analisar o índice de MTS após determinar se existe um coeficiente significante na região zero, o aparelho de decodificação pode derivar informações de bandeira indicando se existe um coeficiente significante na segunda região e pode analisar o índice de MTS com base nas informações de sinalizador.[0317] To analyze the MTS index after determining whether there is a significant coefficient in the zero region, the decoding apparatus may derive flag information indicating whether there is a significant coefficient in the second region and may analyze the MTS index based on the MTS index information. flare gun.
[0318] A informação do sinalizador pode ser uma variável MtsZeroOutSigCoeffFlag, e se existe um coeficiente significante na segunda região pode ser determinado pela unidade do sub-bloco de escaneamento do coeficiente significante.[0318] The flag information can be a MtsZeroOutSigCoeffFlag variable, and whether there is a significant coefficient in the second region can be determined by the unit of the significant coefficient scanning sub-block.
[0319] Quando um sinalizador indicando se existe um coeficiente significante em um sub-bloco de escaneamento (coded_sub_block_flag ou sb_coded_flag) ilustrado na Tabela 9 é igual a um valor de 1 e um coeficiente significante existente no sub-bloco de escaneamento é posicionado na segunda região ((( xS << log2SbW ) > 15 | | ( yS << log2SbH ) > 15 )), a variável MtsZeroOutSigCoeffFlag pode indicar que o coeficiente significante existe na segunda região.[0319] When a flag indicating whether there is a significant coefficient in a scanning sub-block (coded_sub_block_flag or sb_coded_flag) illustrated in Table 9 is equal to a value of 1 and a significant coefficient existing in the scanning sub-block is positioned in the second region ((( xS << log2SbW ) > 15 | | ( yS << log2SbH ) > 15 )), the variable MtsZeroOutSigCoeffFlag can indicate that the significant coefficient exists in the second region.
[0320] Alternativamente, a variável MtsZeroOutSigCoeffFlag pode ser derivada verificando se o sub-bloco de escaneamento 4 x 4 pertence à primeira região sempre que escanear os coeficientes de transformada como na Tabela 8. Ou seja, quando um sinalizador indicando se existe um coeficiente significante em uma sub- bloco de escaneamento (sig_coeff_flag) for igual a um valor de 1 e um coeficiente significante existente no sub-bloco de escaneamento estiver posicionado na segunda região (if( ( xC > 15 | | yC > 15 )), a variável MtsZeroOutSigCoeffFlag pode indicar que o coeficiente significante existe na segunda região.[0320] Alternatively, the variable MtsZeroOutSigCoeffFlag can be derived by checking whether the 4 x 4 scanning sub-block belongs to the first region whenever scanning the transform coefficients as in Table 8. That is, when a flag indicating whether a significant coefficient exists in a scanning sub-block (sig_coeff_flag) is equal to a value of 1 and a significant coefficient existing in the scanning sub-block is positioned in the second region (if( ( xC > 15 | | yC > 15 )), the variable MtsZeroOutSigCoeffFlag may indicate that the significant coefficient exists in the second region.
[0321] Alternativamente, quando um sinalizador indicando se existe um coeficiente significante em um sub-bloco de escaneamento é igual a um valor de 1 e o sub-bloco de escaneamento está posicionado na segunda região, a variável MtsZeroOutSigCoeffFlag pode indicar que existe um coeficiente significante na segunda região.[0321] Alternatively, when a flag indicating whether there is a significant coefficient in a scan sub-block is equal to a value of 1 and the scan sub-block is positioned in the second region, the variable MtsZeroOutSigCoeffFlag may indicate that there is a coefficient significant in the second region.
[0322] A variável MtsZeroOutSigCoeffFlag pode ser inicialmente definida como 1, pode ser mantida como 1 quando o coeficiente significante não estiver posicionado na segunda região e pode ser alterada para 0 quando o coeficiente significante estiver posicionado na segunda região.[0322] The variable MtsZeroOutSigCoeffFlag can be initially set to 1, can be kept as 1 when the significant coefficient is not positioned in the second region, and can be changed to 0 when the significant coefficient is positioned in the second region.
[0323] Em resumo, o aparelho de decodificação pode analisar o índice de MTS com base na informação do sinalizador indicando que não existe coeficiente significante na segunda região e quando o valor da variável MtsZeroOutSigCoeffFlag, inicialmente definido como 1, é mantido, o índice de MTS pode ser analisado.[0323] In summary, the decoding apparatus can analyze the MTS index based on the flag information indicating that there is no significant coefficient in the second region and when the value of the MtsZeroOutSigCoeffFlag variable, initially set to 1, is maintained, the decoding index MTS can be analyzed.
[0324] O aparelho de decodificação pode derivar amostras residuais para o bloco atual aplicando um núcleo de transformada derivado com base no índice de MTS para transformar coeficientes na primeira região (S1640).[0324] The decoding apparatus may derive residual samples for the current block by applying a transform kernel derived based on the MTS index to transform coefficients in the first region (S1640).
[0325] Subsequentemente, o aparelho de decodificação 300 pode gerar amostras reconstruídas com base nas amostras residuais para o bloco atual e amostras de predicação para o bloco atual.[0325] Subsequently, the decoding apparatus 300 may generate reconstructed samples based on the residual samples for the current block and predication samples for the current block.
[0326] Os desenhos a seguir são fornecidos para descrever exemplos específicos da presente divulgação. Uma vez que termos específicos para dispositivos ou termos específicos para sinais/mensagens/campos ilustrados nos desenhos são fornecidos para ilustração, as características técnicas da presente divulgação não estão limitadas aos termos específicos usados nos desenhos a seguir.[0326] The following drawings are provided to describe specific examples of the present disclosure. Since device-specific terms or specific terms for signals/messages/fields illustrated in the drawings are provided for illustration, the technical features of the present disclosure are not limited to the specific terms used in the following drawings.
[0327] A Figura 17 é 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.[0327] Figure 17 is a flowchart illustrating an operation of a video coding apparatus in accordance with an embodiment of the present disclosure.
[0328] Cada processo divulgado na Figura 16 é baseado em alguns dos detalhes descritos com referência à Figura 4 à Figura 15. Portanto, uma descrição de detalhes específicos sobrepostos aos descritos com referência à Figura 2 e Figura 4 à Figura 15 será omitido ou será feito esquematicamente.[0328] Each process disclosed in Figure 16 is based on some of the details described with reference to Figure 4 to Figure 15. Therefore, a description of specific details overlapping with those described with reference to Figure 2 and Figure 4 to Figure 15 will be omitted or will be done schematically.
[0329] O aparelho de codificação 100 de acordo com uma modalidade pode derivar amostras de predição com base em um modo de intra predição aplicado a um bloco atual (S1710).[0329] The coding apparatus 100 in accordance with one embodiment may derive prediction samples based on an intra prediction mode applied to a current block (S1710).
[0330] O aparelho de codificação 100 de acordo com uma modalidade pode derivar amostras residuais para o bloco atual com base nas amostras de predição (S1720).[0330] The coding apparatus 100 in accordance with one embodiment may derive residual samples for the current block based on the prediction samples (S1720).
[0331] O aparelho de codificação 100 de acordo com uma modalidade pode derivar coeficientes de transformada para o bloco atual aplicando um MIS às amostras residuais (S1730).[0331] The coding apparatus 100 in accordance with one embodiment may derive transform coefficients for the current block by applying an MIS to the residual samples (S1730).
[0332] De acordo com um exemplo, o aparelho de codificação pode aplicar o MTS anterior para a transformada primária ou pode usar DCT-2 geral como um núcleo de transformada.[0332] According to an example, the coding apparatus may apply the previous MTS to the primary transform or may use general DCT-2 as a transform core.
[0333] A MTS pode ser executada implicitamente ou pode ser executada com base na sinalização explícita de um índice de MTS.[0333] MTS may be executed implicitly or may be performed based on explicit signaling of an MTS index.
[0334] O aparelho de codificação pode determinar se deve realizar a MTS para a transformada primária e pode derivar os coeficientes de transformada aplicando DCT-8 ou DST-7 às amostras residuais quando a MTS for determinada para ser realizada.[0334] The coding apparatus can determine whether to perform MTS for the primary transform and can derive transform coefficients by applying DCT-8 or DST-7 to the residual samples when MTS is determined to be performed.
[0335] De acordo com um exemplo, quando a MTS é aplicada para a transformada primária, o aparelho de codificação pode zerar uma segunda região diferente de uma primeira região de topo à esquerda do bloco atual (S1740).[0335] According to one example, when MTS is applied to the primary transform, the coding apparatus may zero out a second region other than a first top region to the left of the current block (S1740).
[0336] De acordo com um exemplo, a primeira região pode ser uma região 16 x 16 de topo à esquerda do bloco atual, caso em que a segunda região pode ser uma região diferente da região 16 x 16 de topo à esquerda.[0336] According to an example, the first region may be a left-top 16 x 16 region of the current block, in which case the second region may be a region other than the left-top 16 x 16 region.
[0337] Devido a este zero-out, é possível reduzir a quantidade de computação necessária para realizar todo o processo de transformada e reduzir a quantidade de operação necessária para todo o processo de transformada, reduzindo assim o consumo de energia necessário para realizar a transformada. Além disso, a latência implicada no processo de transformada pode ser reduzida, aumentando assim a eficiência da codificação da imagem.[0337] Due to this zero-out, it is possible to reduce the amount of computation required to perform the entire transform process and reduce the amount of operation required for the entire transform process, thus reducing the energy consumption required to perform the transform . Furthermore, the latency involved in the transformation process can be reduced, thus increasing the efficiency of image coding.
[0338] O aparelho de codificação pode derivar coeficientes de transformada modificados aplicando ainda uma LFNST aos coeficientes de transformada derivados após a transformada primária.[0338] The coding apparatus may derive modified transform coefficients by further applying an LFNST to the transform coefficients derived after the primary transform.
[0339] O aparelho de codificação pode derivar informações residuais com base nos coeficientes de transformada ou nos coeficientes de transformada modificados para o bloco atual (S1750).[0339] The coding apparatus may derive residual information based on the transform coefficients or modified transform coefficients for the current block (S1750).
[0340] Ou seja, o aparelho de codificação pode gerar a informação residual incluindo informação sobre coeficientes de transformada quantizados. A informação residual pode incluir um elemento de informação/sintaxe relacionado à transformada anterior. O aparelho de codificação pode codificar informação de imagem/vídeo incluindo a informação residual e pode emitir a informação de imagem/vídeo codificada na forma de um fluxo de bits.[0340] That is, the coding apparatus can generate residual information including information about quantized transform coefficients. The residual information may include an information/syntax element related to the previous transform. The encoding apparatus can encode image/video information including residual information and can output the encoded image/video information in the form of a bit stream.
[0341] Especificamente, o aparelho de codificação 200 pode gerar a informação sobre os coeficientes de transformada quantificados e pode codificar a informação gerada sobre os coeficientes de transformada quantificados.[0341] Specifically, the coding apparatus 200 can generate information about the quantized transform coefficients and can encode the information generated about the quantized transform coefficients.
[0342] Além disso, o aparelho de codificação pode configurar informações de imagem para que um índice de MTS indicando um núcleo de transformada do MTS seja analisado com base na existência do coeficiente significante na segunda região (S1760).[0342] Additionally, the encoding apparatus may configure image information so that an MTS index indicating an MTS transform kernel is analyzed based on the existence of the significant coefficient in the second region (S1760).
[0343] Além disso, o aparelho de codificação pode construir informações de imagem para derivar informações de bandeira indicando se existe um coeficiente significante na segunda região por uma unidade de um sub-bloco de escaneamento de escaneamento de um coeficiente significante.[0343] Additionally, the coding apparatus may construct image information to derive flag information indicating whether there is a significant coefficient in the second region per unit of a scan sub-block of a significant coefficient.
[0344] Ou seja, o aparelho de codificação pode construir as informações de imagem de modo que as informações de imagem ilustradas na Tabela 8 ou na Tabela 9 possam ser analisadas em um aparelho de decodificação.[0344] That is, the encoding apparatus can construct the image information so that the image information illustrated in Table 8 or Table 9 can be analyzed in a decoding apparatus.
[0345] De acordo com um exemplo, o sub-bloco de escaneamento pode ser um bloco de 4 x 4 e pode ser escaneado de acordo com uma direção de escaneamento diagonal inversa a partir da posição do último coeficiente significante no bloco atual também no aparelho de decodificação como mostrado na Figura 15.[0345] According to an example, the scanning sub-block may be a 4 x 4 block and may be scanned according to an inverse diagonal scanning direction from the position of the last significant coefficient in the current block also in the apparatus decoding as shown in Figure 15.
[0346] A informação do sinalizador pode ser uma variável MtsZeroOutSigCoeffFlag, e se existe um coeficiente significante na segunda região pode ser determinado pela unidade do sub-bloco de escaneamento do coeficiente significante.[0346] The flag information can be a MtsZeroOutSigCoeffFlag variable, and whether there is a significant coefficient in the second region can be determined by the unit of the significant coefficient scanning sub-block.
[0347] Quando um sinalizador indicando se existe um coeficiente significante em um sub-bloco de escaneamento (coded_sub_block_flag) ilustrado na Tabela 9 é igual a um valor de 1 e um coeficiente significante existente no sub-bloco de escaneamento é posicionado na segunda região (( ( xS << log2SbW ) > 15 | | ( yS << log2SbH ) > 15 )), a variável MtsZeroOutSigCoeffFlag pode indicar que o coeficiente significante existe na segunda região.[0347] When a flag indicating whether there is a significant coefficient in a scanning sub-block (coded_sub_block_flag) illustrated in Table 9 is equal to a value of 1 and a significant coefficient existing in the scanning sub-block is positioned in the second region ( ( ( xS << log2SbW ) > 15 | | ( yS << log2SbH ) > 15 )), the variable MtsZeroOutSigCoeffFlag can indicate that the significant coefficient exists in the second region.
[0348] Alternativamente, a variável MtsZeroOutSigCoeffFlag pode ser derivada verificando se o sub-bloco de escaneamento 4 x 4 pertence à primeira região sempre que escanear os coeficientes de transformada como na Tabela 8. Ou seja, quando um sinalizador indicando se existe um coeficiente significante em um sub- bloco de escaneamento (sig_coeff_flag) é igual a um valor de 1 e um coeficiente significante existente no sub-bloco de escaneamento é posicionado na segunda região (if( ( xC > 15 | | yC > 15 )), a variável MtsZeroOutSigCoeffFlag pode indicar que o coeficiente significante existe na segunda região.[0348] Alternatively, the variable MtsZeroOutSigCoeffFlag can be derived by checking whether the 4 x 4 scanning sub-block belongs to the first region whenever scanning the transform coefficients as in Table 8. That is, when a flag indicating whether a significant coefficient exists in a scanning sub-block (sig_coeff_flag) is equal to a value of 1 and a significant coefficient existing in the scanning sub-block is positioned in the second region (if( ( xC > 15 | | yC > 15 )), the variable MtsZeroOutSigCoeffFlag may indicate that the significant coefficient exists in the second region.
[0349] Alternativamente, quando um sinalizador indicando se existe um coeficiente significante em um sub-bloco de escaneamento é igual a um valor de 1 e o sub-bloco de escaneamento está posicionado na segunda região, a variável MtsZeroOutSigCoeffFlag pode indicar que existe um coeficiente significante na segunda região.[0349] Alternatively, when a flag indicating whether there is a significant coefficient in a scan sub-block is equal to a value of 1 and the scan sub-block is positioned in the second region, the variable MtsZeroOutSigCoeffFlag may indicate that there is a coefficient significant in the second region.
[0350] A variável MtsZeroOutSigCoeffFlag pode ser inicialmente definida como 1, pode ser mantida como 1 quando o coeficiente significante não estiver posicionado na segunda região e pode ser alterada para 0 quando o coeficiente significante estiver posicionado na segunda região.[0350] The variable MtsZeroOutSigCoeffFlag can be initially set to 1, can be kept as 1 when the significant coefficient is not positioned in the second region, and can be changed to 0 when the significant coefficient is positioned in the second region.
[0351] O aparelho de codificação pode codificar informações residuais derivadas com base nos coeficientes de transformada e o índice de MTS com base nas informações de sinalização indicando que não existe coeficiente significante na segunda região e, em seguida, pode emiti-los.[0351] The encoding apparatus may encode residual information derived based on the transform coefficients and the MTS index based on the signaling information indicating that there is no significant coefficient in the second region, and then may output them.
[0352] 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.[0352] 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.
[0353] 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.[0353] 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 coding 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.
[0354] 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.[0354] 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.
[0355] 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.[0355] 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.
[0356] 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.[0356] When embodiments in the present disclosure are incorporated 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.
[0357] 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.[0357] 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.
[0358] 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 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, um 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.[0358] 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.
[0359] A Figura 18 ilustra a estrutura de um sistema de streaming de conteúdo ao qual a presente divulgação é aplicada.[0359] Figure 18 illustrates the structure of a content streaming system to which the present disclosure is applied.
[0360] 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.[0360] 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.
[0361] 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 filmadora e semelhantes, 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.[0361] The encoding server functions to compress the input content of multimedia input devices, such as the smartphone, camera, camcorder, 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.
[0362] 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.[0362] 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.
[0363] 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.[0363] 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.
[0364] 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.[0364] 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.
[0365] 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.[0365] 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 (10)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US62/933,972 | 2019-11-11 | ||
US62/933,951 | 2019-11-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
BR122023023402A2 true BR122023023402A2 (en) | 2024-05-21 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR122021012456A2 (en) | METHOD OF DECODING AN IMAGE PERFORMED BY A DECODERING APPLIANCE, METHOD OF ENCODING AN IMAGE PERFORMED BY AN ENCODING APPLIANCE, DECODING APPLIANCE FOR DECODING AN IMAGE, ENCODING APPARATUS FOR AN IMAGE ENCODING AND DIGITAL STORAGE MEDIA NOT READIBLE BY COMPUTER READIBLE TRANSIENT | |
JP7223208B2 (en) | Transform-based video coding method and apparatus | |
BR122021011813A2 (en) | METHOD OF DECODING IMAGES VIA A DECODING APPARATUS, METHOD OF ENCODING IMAGES VIA AN ENCODING APPARATUS AND NON TRANSIENT COMPUTER-READABLE STORAGE MEDIA | |
ES2981910T3 (en) | Transformation into image coding based on intra-prediction | |
BR122023020352A2 (en) | DECODING/CODING APPARATUS FOR IMAGE DECODING/CODING AND APPARATUS FOR TRANSMITTING DATA TO AN IMAGE | |
ES2982809T3 (en) | Encoding information about the set of transform kernels | |
US20220150513A1 (en) | Transform-based image coding method and apparatus therefor | |
BR112021012505B1 (en) | METHOD OF IMAGE DECODING/ENCODING PERFORMED BY A DECODING/ENCODING APPARATUS AND COMPUTER READABLE NON-TRAINER STORAGE MEDIA | |
AU2024203547A1 (en) | Image coding method based on transform, and device therefor | |
AU2024202143A1 (en) | Transform-based method for coding image, and device therefor | |
AU2024201210A1 (en) | Transform-based image coding method and device therefor | |
JP2023053018A (en) | Video coding method based on transform and apparatus therefor | |
BR122023023402A2 (en) | IMAGE CODING METHOD BASED ON A TRANSFORM, AND APPARATUS THEREOF | |
BR122023022807A2 (en) | TRANSFORM-BASED METHOD FOR CODING IMAGE, AND DEVICE FOR THE SAME | |
JP7414977B2 (en) | Video coding method and device based on conversion | |
BR122024000554A2 (en) | TRANSFORM BASED IMAGE CODING METHOD AND DEVICE FOR THE SAME | |
BR122023022820A2 (en) | IMAGE DECODING APPARATUS, IMAGE CODING APPARATUS AND DATA TRANSMISSION APPARATUS FOR IMAGE INFORMATION | |
BR122024000555A2 (en) | TRANSFORM BASED IMAGE CODING METHOD AND DEVICE FOR THE SAME | |
BR122023022608A2 (en) | DECODING APPARATUS FOR DECODING IMAGES, IMAGE CODING APPARATUS FOR CODING IMAGES AND APPARATUS FOR TRANSMITTING DATA TO AN IMAGE INFORMATION | |
BR122023020425A2 (en) | DECODING/CODING APPARATUS FOR DECODING/ENCODING IMAGES AND APPARATUS FOR TRANSMITTING DATA TO AN IMAGE | |
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 | |
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 | |
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 | |
BR122024006245A2 (en) | IMAGE DECODING/ENCODING METHOD PERFORMED BY A DECODING/ENCODING APPARATUS, NON-TRANSITORY COMPUTER-READABLE STORAGE MEDIUM AND METHOD FOR TRANSMITTING DATA FOR IMAGE INFORMATION | |
BR122024006241A2 (en) | IMAGE DECODING/ENCODING METHOD PERFORMED BY A DECODING/ENCODING APPARATUS, NON-TRANSITORY COMPUTER-READABLE STORAGE MEDIUM AND METHOD FOR TRANSMITTING DATA FOR IMAGE INFORMATION |