BR122023025774A2 - CROSS-COMPONENT ADAPTIVE LOOP FILTERING FOR VIDEO CODING - Google Patents

CROSS-COMPONENT ADAPTIVE LOOP FILTERING FOR VIDEO CODING Download PDF

Info

Publication number
BR122023025774A2
BR122023025774A2 BR122023025774-0A BR122023025774A BR122023025774A2 BR 122023025774 A2 BR122023025774 A2 BR 122023025774A2 BR 122023025774 A BR122023025774 A BR 122023025774A BR 122023025774 A2 BR122023025774 A2 BR 122023025774A2
Authority
BR
Brazil
Prior art keywords
alf
syntax element
enabled
syntax
image
Prior art date
Application number
BR122023025774-0A
Other languages
Portuguese (pt)
Inventor
Anand Meher Kotra
Semih ESENLIK
Elena Alexandrovna Alshina
Han Gao
Biao Wang
Original Assignee
Huawei Technologies Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Publication of BR122023025774A2 publication Critical patent/BR122023025774A2/en

Links

Abstract

Um método em uma codificação de imagem e/ou uma decodificação de imagem é fornecido, no qual entradas de cabeçalho de imagem para CCALF são introduzidas as quais definem os dados de CCALF comuns e todas as fatias podem então herdar essas informações comuns. O overhead de sinalização, em particular, o overhead do cabeçalho de fatia (em termos de número de bits) é reduzido.A method in an image encoding and/or an image decoding is provided, in which image header entries for CCALF are introduced which define the common CCALF data and all slices can then inherit this common information. The signaling overhead, in particular the slice header overhead (in terms of number of bits) is reduced.

Description

CAMPO TÉCNICOTECHNICAL FIELD

[0001] Modalidades do presente pedido (revelação) geralmente se referem ao campo de processamento de imagem e, mais particularmente, a um filtro loop adaptativo de componente cruzado (CC-ALF) como um filtro in-loop ou como um filtro post-loop e sintaxe de alto nível para ALF de Componente Cruzado (CCALF).[0001] Embodiments of the present application (disclosure) generally relate to the field of image processing and, more particularly, to a cross-component adaptive loop filter (CC-ALF) as an in-loop filter or as a post-loop filter and high-level syntax for Cross-Component ALF (CCALF).

FUNDAMENTOSFUNDAMENTALS

[0002] Codificação de imagem (codificação e decodificação) é usada em uma ampla gama de aplicações de imagem digital, por exemplo, broadcast de TV digital, transmissão de vídeo pela Internet e redes móveis, aplicações de conversação em tempo real, como chat de vídeo, videoconferência, DVD e discos Blu-ray, sistemas de aquisição e edição de conteúdo de vídeo, e filmadoras de aplicações de segurança.[0002] Image coding (encoding and decoding) is used in a wide range of digital imaging applications, e.g., digital TV broadcasting, video transmission over the Internet and mobile networks, real-time conversational applications such as video chat video, video conferencing, DVD and Blu-ray discs, video content acquisition and editing systems, and security applications camcorders.

[0003] Desde o desenvolvimento da abordagem de codificação de vídeo híbrido baseada em bloco no padrão H.261 em 1990, novas técnicas e ferramentas de codificação de vídeo foram desenvolvidas e formaram a base para novos padrões de codificação de vídeo. Um dos objetivos da maioria dos padrões de codificação de vídeo era obter uma redução na taxa de bits em comparação com seu antecessor sem sacrificar a qualidade da imagem. Outros padrões de codificação de vídeo incluem vídeo MPEG-1, vídeo MPEG-2, ITU-T H.262/MPEG-2, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), ITU-T H.265, Codificação de Vídeo de Alta Eficiência (HEVC), ITU-T H.266/Codificação de Vídeo Versátil (VVC) e extensões, por exemplo, escalabilidade e/ou extensões tridimensionais (3D), desses padrões.[0003] Since the development of the block-based hybrid video coding approach in the H.261 standard in 1990, new video coding techniques and tools have been developed and have formed the basis for new video coding standards. One of the goals of most video coding standards was to achieve a reduction in bitrate compared to its predecessor without sacrificing image quality. Other video coding standards include MPEG-1 video, MPEG-2 video, ITU-T H.262/MPEG-2, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, Coding Advanced Video Coding (AVC), ITU-T H.265, High Efficiency Video Coding (HEVC), ITU-T H.266/Versatile Video Coding (VVC) and extensions, e.g. scalability and/or three-dimensional extensions (3D), of these patterns.

[0004] Esquemas de codificação de imagem baseados em blocos têm em comum que ao longo das bordas de bloco, artefatos de borda podem aparecer. Esses artefatos são devidos à codificação independente dos blocos de codificação. Esses artefatos de borda geralmente são facilmente visíveis para um usuário. Um objetivo na codificação de imagem baseada em bloco é reduzir os artefatos de borda abaixo de um limiar de visibilidade. Isso é feito executando filtragem loop, como filtro de desblocagem, SAO e filtro loop adaptativo (ALF). A ordem do processo de filtragem é o filtro de desblocagem, depois SAO e depois ALF. Além disso, o filtro loop adaptativo de componente cruzado (CC-ALF) é adicionalmente usado.[0004] Block-based image coding schemes have in common that along block edges, edge artifacts may appear. These artifacts are due to the independent coding of the coding blocks. These edge artifacts are often easily visible to a user. One goal in block-based image coding is to reduce edge artifacts below a visibility threshold. This is done by performing loop filtering such as deblocking filter, SAO, and adaptive loop filter (ALF). The order of the filtering process is unblocking filter, then SAO, then ALF. Furthermore, the cross-component adaptive loop filter (CC-ALF) is additionally used.

[0005] Especialmente para filtro loop adaptativo de componente cruzado (CC-ALF), os valores de amostra de luma são usados para refinar cada componente de croma. O processo precisa ser feito em ambos os componentes Cb e Cr, a filtragem loop adaptativa de componente cruzado pode ser computacionalmente complexa e, portanto, pode adicionar latência de pipeline adicional, especialmente para implementações de hardware.[0005] Especially for cross-component adaptive loop filter (CC-ALF), luma sample values are used to refine each chroma component. The process needs to be done on both Cb and Cr components, cross-component adaptive loop filtering can be computationally complex and therefore can add additional pipeline latency, especially for hardware implementations.

SUMÁRIOSUMMARY

[0006] Em vista dos desafios mencionados acima, a presente revelação visa melhorar a filtragem loop adaptativa de componente cruzado e os elementos de sintaxe para CCALF. A presente revelação pode, entre outros, pertencer ao objetivo de fornecer um aparelho, um codificador, um decodificador e métodos correspondentes que podem realizar filtragem loop adaptativa de componente cruzado com overhead de sinalização reduzido, particularmente, o overhead do cabeçalho de fatia (em termos de número de bits) pode ser reduzido, assim a filtragem pode ser mais eficiente.[0006] In view of the challenges mentioned above, the present disclosure aims to improve cross-component adaptive loop filtering and syntax elements for CCALF. The present disclosure may, among others, pertain to the object of providing an apparatus, an encoder, a decoder and corresponding methods that can perform cross-component adaptive loop filtering with reduced signaling overhead, particularly, the slice header overhead (in terms number of bits) can be reduced, so filtering can be more efficient.

[0007] Exemplos da presente revelação fornecem aparelhos e métodos para codificar e decodificar uma imagem que pode melhorar o desempenho de codificação, melhorando assim a eficiência de codificação de um sinal de vídeo. A revelação é elaborada nos exemplos e reivindicações contidos neste arquivo.[0007] Examples of the present disclosure provide apparatus and methods for encoding and decoding an image that can improve coding performance, thereby improving the coding efficiency of a video signal. The revelation is elaborated on the examples and claims contained in this file.

[0008] Modalidades do presente pedido fornecem aparelhos e métodos para codificação e decodificação de acordo com as reivindicações independentes, assim a complexidade do ALF de Componente Cruzado pode ser reduzida e o desempenho do filtro loop adaptativo de componente cruzado (CC-ALF) como um filtro in-loop ou como filtro post-loop, respectivamente, podem ser melhorados.[0008] Embodiments of the present application provide apparatus and methods for encoding and decoding according to the independent claims, thus the complexity of the Cross-Component ALF can be reduced and the performance of the Cross-Component Adaptive Loop Filter (CC-ALF) as a in-loop filter or as post-loop filter, respectively, can be improved.

[0009] Os objetivos anteriores e outros podem ser alcançados pelo objeto das reivindicações independentes. Formas de implementação adicionais são evidentes nas reivindicações dependentes, na descrição e nas figuras.[0009] The above and other objectives can be achieved by the subject matter of independent claims. Additional forms of implementation are evident in the dependent claims, the description and the figures.

[0010] Modalidades particulares são descritas nas reivindicações independentes anexas, com outras modalidades nas reivindicações dependentes.[0010] Particular embodiments are described in the attached independent claims, with other embodiments in the dependent claims.

[0011] De acordo com um primeiro aspecto, a revelação se refere a um método de codificação implementado por um dispositivo de codificação, compreendendo: realizar um processo de filtragem (como um processo de filtragem de componente cruzado) aplicando um filtro loop adaptativo de componente cruzado (CC-ALF); gerar um fluxo de bits incluindo uma pluralidade de elementos de sintaxe relacionados a CC-ALF (como M elementos de sintaxe relacionados a CC-ALF e M>=1 e M é um número inteiro), em que a pluralidade de elementos de sintaxe relacionados a CC-ALF indica as informações relacionadas a CC- ALF, em que a pluralidade de elementos de sintaxe relacionados a CC-ALF é sinalizada em qualquer um ou mais dentre um nível de conjunto de parâmetros de vídeo (VPS), um nível de conjunto de parâmetros de sequência (SPS), um nível de conjunto de parâmetros de imagem (PPS), um cabeçalho de imagem, um cabeçalho de fatia ou um cabeçalho de tile; ou em que a pluralidade de elementos de sintaxe relacionados a CC-ALF é sinalizada em um nível de conjunto de parâmetros de sequência (SPS) e/ou um cabeçalho de imagem.[0011] According to a first aspect, the disclosure relates to a coding method implemented by a coding device, comprising: performing a filtering process (such as a cross-component filtering process) by applying a component adaptive loop filter crossed (CC-ALF); generate a bitstream including a plurality of CC-ALF-related syntax elements (such as M CC-ALF-related syntax elements and M>=1 and M is an integer), wherein the plurality of related syntax elements CC-ALF indicates CC-ALF related information, wherein the plurality of CC-ALF related syntax elements is signaled at any one or more of a Video Parameter Set (VPS) level, a Video Parameter Set (VPS) level a sequence parameter set (SPS), an image parameter set (PPS) level, an image header, a slice header, or a tile header; or wherein the plurality of syntax elements related to CC-ALF are signaled at a sequence parameter set (SPS) level and/or an image header.

[0012] Este fluxo de bits pode ser reduzido em tamanho enquanto fornece informações relevantes na estrutura do fluxo de bits para os níveis em que este pedido é realmente aplicado ou a que pertence, e permite realizar filtragem loop adaptativa de componente cruzado com overhead de sinalização reduzido, assim a filtragem pode ser mais eficiente, e a melhoria de eficiência de codificação é alcançada.[0012] This bitstream can be reduced in size while providing relevant information on the structure of the bitstream for the levels at which this request is actually applied or belongs, and allows performing cross-component adaptive loop filtering with signaling overhead reduced, thus filtering can be more efficient, and coding efficiency improvement is achieved.

[0013] De acordo com um segundo aspecto, a revelação se refere a um método de decodificação implementado por um dispositivo de decodificação, compreendendo: analisar um ou mais elementos de sintaxe a partir de um fluxo de bits de um sinal de vídeo, em que os elementos de sintaxe indicam informações relacionadas ao Filtro loop Adaptativo de Componente Cruzado (CC-ALF), em que os elementos de sintaxe são obtidos a partir de qualquer um ou mais dentre um nível de conjunto de parâmetros de vídeo (VPS), um nível de conjunto de parâmetros de sequência (SPS), um nível de conjunto de parâmetros de imagem (PPS), um cabeçalho de imagem, um cabeçalho de fatia ou um cabeçalho de tile do fluxo de bits; ou em que os elementos de sintaxe são obtidos a partir de um nível de conjunto de parâmetros de sequência (SPS) e/ou um cabeçalho de imagem; e realizar um processo de filtragem (como um processo de filtragem de componente cruzado) aplicando um CC-ALF com base nos elementos de sintaxe ou com base no valor dos elementos de sintaxe.[0013] According to a second aspect, the disclosure relates to a decoding method implemented by a decoding device, comprising: analyzing one or more syntax elements from a bit stream of a video signal, wherein syntax elements indicate information related to the Cross-Component Adaptive Loop Filter (CC-ALF), where the syntax elements are obtained from any one or more of a video parameter set (VPS) level, a level sequence parameter set (SPS), a picture parameter set (PPS) level, an image header, a slice header, or a bitstream tile header; or wherein the syntax elements are obtained from a string parameter set (SPS) level and/or an image header; and performing a filtering process (such as a cross-component filtering process) by applying a CC-ALF based on the syntax elements or based on the value of the syntax elements.

[0014] Este método pode permitir obter informações relevantes a partir do fluxo de bits durante a decodificação, em que o fluxo de bits é reduzido em tamanho, permitindo uma melhor compressão de dados, e permite realizar filtragem loop adaptativa de componente cruzado com overhead de sinalização reduzido, portanto, a filtragem pode ser mais eficiente, e a melhoria de eficiência de codificação é alcançada.[0014] This method can allow obtaining relevant information from the bitstream during decoding, in which the bitstream is reduced in size, allowing for better data compression, and allows cross-component adaptive loop filtering to be performed with overhead of reduced signaling, therefore filtering can be more efficient, and improved coding efficiency is achieved.

[0015] De acordo com um terceiro aspecto, a invenção se refere a um aparelho para decodificação de dados de vídeo. O aparelho compreende: circuitos de processamento para realizar o método de acordo com o primeiro aspecto da revelação.[0015] According to a third aspect, the invention relates to an apparatus for decoding video data. The apparatus comprises: processing circuitry for carrying out the method in accordance with the first aspect of the disclosure.

[0016] De acordo com um quarto aspecto, a invenção se refere a um aparelho para codificação de dados de vídeo. O aparelho compreende: circuitos de processamento para realizar o método de acordo com o segundo aspecto da revelação.[0016] According to a fourth aspect, the invention relates to an apparatus for encoding video data. The apparatus comprises: processing circuitry for carrying out the method according to the second aspect of the disclosure.

[0017] O método de acordo com o primeiro aspecto da presente revelação pode ser realizado pelo aparelho de acordo com o terceiro aspecto da revelação. Recursos e formas de implementação adicionais do método de acordo com o terceiro aspecto da revelação correspondem aos recursos e formas de implementação do aparelho de acordo com o primeiro aspecto da revelação.[0017] The method according to the first aspect of the present disclosure can be carried out by the apparatus according to the third aspect of the disclosure. Additional features and ways of implementing the method according to the third aspect of the disclosure correspond to the features and ways of implementing the apparatus according to the first aspect of the disclosure.

[0018] O método de acordo com o segundo aspecto da revelação pode ser realizado pelo aparelho de acordo com o quarto aspecto da invenção. Recursos e formas de implementação adicionais do método de acordo com o quarto aspecto da revelação correspondem aos recursos e formas de implementação do aparelho de acordo com o segundo aspecto da revelação.[0018] The method according to the second aspect of the disclosure can be carried out by the apparatus according to the fourth aspect of the invention. Additional features and ways of implementing the method according to the fourth aspect of the disclosure correspond to the features and ways of implementing the apparatus according to the second aspect of the disclosure.

[0019] De acordo com um quinto aspecto, a revelação se refere a um aparelho para decodificar um fluxo de vídeo que inclui um processador e uma memória. A memória está armazenando instruções que fazem com que o processador realize o método de acordo com o primeiro aspecto.[0019] According to a fifth aspect, the disclosure relates to an apparatus for decoding a video stream that includes a processor and a memory. The memory is storing instructions that make the processor perform the method according to the first aspect.

[0020] De acordo com um sexto aspecto, a revelação se refere a um aparelho para codificar um fluxo de vídeo que inclui um processador e uma memória. A memória está armazenando instruções que fazem com que o processador realize o método de acordo com o segundo aspecto.[0020] According to a sixth aspect, the disclosure relates to an apparatus for encoding a video stream that includes a processor and a memory. The memory is storing instructions that make the processor perform the method according to the second aspect.

[0021] De acordo com um sétimo aspecto, é proposto uma mídia de armazenamento legível por computador tendo nela armazenadas instruções que, quando executadas, fazem com que um ou mais processadores sejam configurados para codificar dados de vídeo. As instruções fazem com que um ou mais processadores realizem um método de acordo com o primeiro ou segundo aspecto ou qualquer modalidade possível do primeiro ou segundo aspecto.[0021] According to a seventh aspect, a computer-readable storage medium is proposed having instructions stored thereon that, when executed, cause one or more processors to be configured to encode video data. The instructions cause one or more processors to perform a method in accordance with the first or second aspect or any possible embodiment of the first or second aspect.

[0022] De acordo com um oitavo aspecto, a revelação se refere a um programa de computador compreendendo código de programa para realizar o método de acordo com o primeiro ou segundo aspecto ou qualquer modalidade possível do primeiro ou segundo aspecto quando executado em um computador.[0022] According to an eighth aspect, the disclosure relates to a computer program comprising program code for carrying out the method according to the first or second aspect or any possible embodiment of the first or second aspect when executed on a computer.

[0023] A presente revelação fornece um método de codificação implementado por um dispositivo de codificação, o método compreendendo: aplicar um filtro loop adaptativo de componente cruzado, CC-ALF para refinar um componente de croma; gerar um fluxo de bits incluindo uma pluralidade de elementos de sintaxe relacionados a ALF (elementos de sintaxe relacionados a CC-ALF, usados abaixo), em que a pluralidade de elementos de sintaxe relacionados a CC-ALF indica informações relacionadas a ALF (informações relacionadas a CC- ALF, usadas abaixo); em que a pluralidade de elementos de sintaxe relacionados a CC-ALF é sinalizada em qualquer um ou mais dentre um nível de conjunto de parâmetros de sequência (SPS), um cabeçalho de imagem ou um cabeçalho de fatia; em que a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um primeiro elemento de sintaxe que indica se um filtro loop adaptativo (ALF) compreendendo o filtro loop adaptativo de componente cruzado está habilitado ou não em um nível de sequência e o primeiro elemento de sintaxe é sinalizado no nível de SPS, e um segundo elemento de sintaxe que indica se o filtro loop adaptativo de componente cruzado está habilitado ou não em um nível de sequência e o segundo elemento de sintaxe é sinalizado no nível de SPS.[0023] The present disclosure provides a coding method implemented by a coding device, the method comprising: applying a cross-component adaptive loop filter, CC-ALF to refine a chroma component; generate a bit stream including a plurality of ALF-related syntax elements (CC-ALF-related syntax elements, used below), wherein the plurality of CC-ALF-related syntax elements indicates ALF-related information (related information the CC-ALF, used below); wherein the plurality of syntax elements related to CC-ALF are signaled at any one or more of a sequence parameter set (SPS) level, an image header, or a slice header; wherein the plurality of syntax elements related to CC-ALF comprise a first syntax element that indicates whether or not an adaptive loop filter (ALF) comprising the cross-component adaptive loop filter is enabled or not at a sequence level, and the first element syntax element is signaled at the SPS level, and a second syntax element that indicates whether the cross-component adaptive loop filter is enabled or not at a sequence level, and the second syntax element is signaled at the SPS level.

[0024] Embora seja geralmente especificado aqui que um primeiro e um segundo elemento de sintaxe são sinalizados no nível de SPS, isso não significa que a sinalização de pelo menos o segundo elemento de sintaxe seja incondicional. Em vez disso, esta modalidade também abrange realizações em que o segundo elemento de sintaxe é sinalizado, por exemplo, com base em um valor do primeiro elemento de sintaxe e/ou dependendo de um valor de outro elemento de sintaxe como será adicionalmente descrito abaixo.[0024] Although it is generally specified here that a first and a second syntax element are signaled at the SPS level, this does not mean that the signaling of at least the second syntax element is unconditional. Instead, this embodiment also encompasses embodiments in which the second syntax element is signaled, for example, based on a value of the first syntax element and/or depending on a value of another syntax element as will be further described below.

[0025] O primeiro elemento de sintaxe pode ser chamado de sps_alf_enabled_flag a seguir, enquanto o segundo elemento de sintaxe pode ser chamado de sps_ccalf_enabled_flag. Esta é, no entanto, apenas uma nomenclatura usada aqui. A invenção não está limitada a um nome específico do primeiro ou segundo elemento de sintaxe ou qualquer outro elemento de sintaxe aqui referido.[0025] The first syntax element may be called sps_alf_enabled_flag below, while the second syntax element may be called sps_ccalf_enabled_flag. This is, however, just a nomenclature used here. The invention is not limited to a specific name of the first or second syntax element or any other syntax element referred to herein.

[0026] Pode ser entendido que CC-ALF é um tipo especial de ALF, CC-ALF pode depender se ALF está habilitado ou não, portanto, o primeiro elemento de sintaxe, ou seja, sps_alf_enabled_flag também está relacionado a CC-ALF e, portanto, elementos de sintaxe relacionados a CC-ALF podem ser usados abaixo. Da mesma forma, as informações indicadas pelo primeiro elemento de sintaxe, ou seja, sps_alf_enabled_flag também estão relacionadas a CC-ALF, portanto, informações relacionadas a CC-ALF podem ser usadas abaixo.[0026] It can be understood that CC-ALF is a special type of ALF, CC-ALF may depend on whether ALF is enabled or not, therefore the first syntax element, that is, sps_alf_enabled_flag is also related to CC-ALF, and, therefore, syntax elements related to CC-ALF can be used below. Similarly, the information indicated by the first syntax element i.e. sps_alf_enabled_flag is also related to CC-ALF, so information related to CC-ALF can be used below.

[0027] As informações que podem ser usadas, por exemplo, para todas as imagens em uma sequência podem, assim, ser sinalizadas de forma eficiente no nível de SPS, reduzindo o tamanho do fluxo de bits, reduzindo a quantidade de informações redundantes, e permite realizar filtragem loop adaptativa de componente cruzado com overhead de sinalização reduzido, assim a filtragem pode ser mais eficiente e a melhoria de eficiência de codificação é alcançada.[0027] Information that can be used, for example, for all images in a sequence can thus be efficiently signaled at the SPS level, reducing the size of the bit stream, reducing the amount of redundant information, and allows to perform cross-component adaptive loop filtering with reduced signaling overhead, thus filtering can be more efficient and improved coding efficiency is achieved.

[0028] Em uma modalidade, a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um terceiro elemento de sintaxe quando o segundo elemento de sintaxe indica que CC-ALF está habilitado, em que o terceiro elemento de sintaxe é sinalizado no cabeçalho de imagem e o terceiro elemento de sintaxe indica se CC-ALF é habilitado para uma imagem atual compreendendo uma pluralidade de fatias.[0028] In one embodiment, the plurality of syntax elements related to CC-ALF comprise a third syntax element when the second syntax element indicates that CC-ALF is enabled, wherein the third syntax element is signaled in the header of image and the third syntax element indicates whether CC-ALF is enabled for a current image comprising a plurality of slices.

[0029] Este terceiro elemento de sintaxe também pode ser referido como pic_ccalf_enabled_flag. Com esta modalidade, as informações de CC-ALF relevantes relativas a uma imagem completa podem ser sinalizadas mantendo o tamanho do fluxo de bits pequeno. Em um exemplo, Fatia 1.. Fatia N compartilham as mesmas informações de CCALF, portanto, as informações comuns podem ser herdadas diretamente do cabeçalho de imagem em vez de cada cabeçalho de fatia transmitindo-as de forma redundante.[0029] This third syntax element can also be referred to as pic_ccalf_enabled_flag. With this embodiment, relevant CC-ALF information relative to a complete image can be signaled while keeping the bitstream size small. In an example, Slice 1.. Slice N share the same CCALF information, so common information can be inherited directly from the image header instead of each slice header transmitting it redundantly.

[0030] Em uma modalidade adicional, a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um quarto elemento de sintaxe quando o segundo elemento de sintaxe indica que CC-ALF está habilitado, em que o quarto elemento de sintaxe é sinalizado no cabeçalho de imagem e o quarto elemento de sintaxe indica se CC-ALF para um componente de cor Cb é habilitado para uma imagem atual de uma sequência de vídeo associada ao fluxo de bits.[0030] In a further embodiment, the plurality of syntax elements related to CC-ALF comprise a fourth syntax element when the second syntax element indicates that CC-ALF is enabled, wherein the fourth syntax element is signaled in the header and the fourth syntax element indicates whether CC-ALF for a Cb color component is enabled for a current image of a video sequence associated with the bitstream.

[0031] O quarto elemento de sintaxe pode, por exemplo, ser indicado com pic_cross_component_alf_cb_enabled_flag. No entanto, isso não é obrigatório. O quarto elemento de sintaxe pode sinalizar eficientemente CC-ALF para um componente de cor Cb, mantendo a quantidade de informações redundantes, por exemplo, em um cabeçalho de fatia, pequena.[0031] The fourth syntax element can, for example, be indicated with pic_cross_component_alf_cb_enabled_flag. However, this is not mandatory. The fourth syntax element can efficiently signal CC-ALF for a Cb color component, keeping the amount of redundant information, for example in a slice header, small.

[0032] Pode ser adicionalmente fornecido que, se o quarto elemento de sintaxe tiver um valor de 1, isso indica que CC-ALF para o componente de cor Cb está habilitado para a imagem atual e/ou se o quarto elemento de sintaxe tiver um valor de 0, ele indica que CC-ALF para o componente de cor Cb está desabilitado para a imagem atual.[0032] It may further be provided that if the fourth syntax element has a value of 1, this indicates that CC-ALF for the Cb color component is enabled for the current image and/or if the fourth syntax element has a value of 0, it indicates that CC-ALF for the Cb color component is disabled for the current image.

[0033] Em uma modalidade, a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um quinto elemento de sintaxe quando o quarto elemento de sintaxe indica que CC-ALF para o componente de cor Cb está habilitado para a imagem atual, em que o quinto elemento de sintaxe é sinalizado no cabeçalho de imagem e o quinto elemento de sintaxe indica um conjunto de parâmetros ao qual o componente de cor Cb de todas as fatias na imagem atual se refere. Este elemento de sintaxe pode ser indicado com pic_cross_component_alf_cb_aps_id. Isso, no entanto, é apenas uma nomenclatura e não é interpretado para limitar a presente revelação. Esta modalidade pode permitir conjuntos de parâmetros de sinalização que são fornecidos para todas as fatias de uma imagem já em um nível de imagem, reduzindo assim a quantidade de informações redundantes.[0033] In one embodiment, the plurality of syntax elements related to CC-ALF comprises a fifth syntax element when the fourth syntax element indicates that CC-ALF for the Cb color component is enabled for the current image, wherein the fifth syntax element is flagged in the image header, and the fifth syntax element indicates a set of parameters that the Cb color component of all slices in the current image refers to. This syntax element can be indicated with pic_cross_component_alf_cb_aps_id. This, however, is just a nomenclature and is not construed to limit the present disclosure. This embodiment can allow sets of signaling parameters that are provided for all slices of an image already at an image level, thus reducing the amount of redundant information.

[0034] Pode ser adicionalmente fornecido que a pluralidade de elementos de sintaxe associados a CC-ALF compreende um sétimo elemento de sintaxe quando o segundo elemento de sintaxe indica que CC-ALF está habilitado, em que o sétimo elemento de sintaxe é sinalizado no cabeçalho de imagem e o sétimo elemento de sintaxe especifica se CC-ALF para um componente de cor Cr está habilitado para uma imagem atual de uma sequência de vídeo associada ao fluxo de bits. Este elemento de sintaxe pode, por exemplo, ser indicado com pic_cross_component_alf_cr_enabled_flag sem que isso limite a presente revelação. Com este elemento de sintaxe, a habilitação de CC-ALF para componentes de cor Cr pode ser sinalizada de forma confiável.[0034] It may further be provided that the plurality of syntax elements associated with CC-ALF comprise a seventh syntax element when the second syntax element indicates that CC-ALF is enabled, wherein the seventh syntax element is signaled in the header image and the seventh syntax element specifies whether CC-ALF for a Cr color component is enabled for a current image of a video sequence associated with the bitstream. This syntax element may, for example, be indicated with pic_cross_component_alf_cr_enabled_flag without limiting the present disclosure. With this syntax element, the enabling of CC-ALF for Cr color components can be signaled reliably.

[0035] Pode ser adicionalmente fornecido que, se o sétimo elemento de sintaxe tiver um valor de 1, isso indica que CC-ALF para o componente de cor Cr está habilitado para a imagem atual e/ou se o sétimo elemento de sintaxe tiver um valor de 0, ele indica que CC-ALF para o componente de cor Cr está desabilitado para a imagem atual.[0035] It may further be provided that if the seventh syntax element has a value of 1, this indicates that CC-ALF for the Cr color component is enabled for the current image and/or if the seventh syntax element has a value of 0, it indicates that CC-ALF for the Cr color component is disabled for the current image.

[0036] Em uma modalidade, a pluralidade de elementos de sintaxe associados a CC-ALF compreende um oitavo elemento de sintaxe quando o sétimo elemento de sintaxe indica que CC-ALF para o componente de cor Cr está habilitado para a imagem atual, em que o oitavo elemento de sintaxe é sinalizado no cabeçalho de imagem e o oitavo elemento de sintaxe indica um conjunto de parâmetros que está associado ao componente de cor Cr de todas as fatias na imagem atual. O oitavo elemento de sintaxe pode ser denotado com pic_cross_component_alf_cr_aps_id, embora este seja apenas um exemplo. Este elemento de sintaxe pode fornecer informações sobre parâmetros relevantes a serem usados durante a filtragem.[0036] In one embodiment, the plurality of syntax elements associated with CC-ALF comprises an eighth syntax element when the seventh syntax element indicates that CC-ALF for the Cr color component is enabled for the current image, wherein the eighth syntax element is signaled in the image header and the eighth syntax element indicates a set of parameters that is associated with the Cr color component of all slices in the current image. The eighth syntax element can be denoted with pic_cross_component_alf_cr_aps_id, although this is just an example. This syntax element can provide information about relevant parameters to use during filtering.

[0037] Pode ser adicionalmente fornecido que o quarto elemento de sintaxe, o quinto elemento de sintaxe, o sexto elemento de sintaxe, o sétimo elemento de sintaxe, o oitavo elemento de sintaxe e o nono elemento de sintaxe sejam sinalizados quando o terceiro elemento de sintaxe indicar que CC-ALF está habilitado para a imagem atual de uma sequência de vídeo associada ao fluxo de bits. Se o CC-ALF estiver desabilitado, esses elementos podem ser configurados para um valor padrão e ainda sinalizados no fluxo de bits. Em uma alternativa, se o CC-ALF estiver desabilitado, esses elementos de sintaxe podem não ser sinalizados no fluxo de bits, reduzindo assim seu tamanho, pois as informações que não usadas são excluídas do fluxo de bits.[0037] It may further be provided that the fourth syntax element, the fifth syntax element, the sixth syntax element, the seventh syntax element, the eighth syntax element and the ninth syntax element are signaled when the third syntax element syntax indicate that CC-ALF is enabled for the current image of a video sequence associated with the bitstream. If CC-ALF is disabled, these elements can be set to a default value and still signaled in the bitstream. Alternatively, if CC-ALF is disabled, these syntax elements may not be flagged in the bitstream, thereby reducing its size because unused information is deleted from the bitstream.

[0038] Em uma outra modalidade, a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um décimo elemento de sintaxe quando o segundo elemento de sintaxe indica que CC-ALF está habilitado, em que o décimo elemento de sintaxe é sinalizado em um cabeçalho de fatia e o décimo elemento de sintaxe indica se CCALF para um componente de cor Cb é habilitado para uma fatia atual de uma imagem atual de uma sequência de vídeo associada ao fluxo de bits. Este elemento de sintaxe pode, sem a intenção de limitar a presente revelação, ser referido como slice_cross_component_alf_cb_enabled_flag. Assim, pode ser fornecida uma sinalização eficiente se CC-ALF deve ser habilitado para componentes de cor Cb.[0038] In another embodiment, the plurality of syntax elements related to CC-ALF comprises a tenth syntax element when the second syntax element indicates that CC-ALF is enabled, wherein the tenth syntax element is signaled in a slice header and the tenth syntax element indicates whether CCALF for a Cb color component is enabled for a current slice of a current image of a video sequence associated with the bitstream. This syntax element may, without intending to limit the present disclosure, be referred to as slice_cross_component_alf_cb_enabled_flag. Thus, efficient signaling can be provided whether CC-ALF should be enabled for Cb color components.

[0039] Pode ser adicionalmente fornecido que, se o décimo elemento de sintaxe tiver um valor de 1, isso indica que o CCALF para o componente de cor Cb está habilitado para a fatia atual e/ou do décimo elemento de sintaxe tem um valor de 0, isso indica que CCALF para o componente de cor Cb está desabilitado para a fatia atual.[0039] It may further be provided that if the tenth syntax element has a value of 1, this indicates that CCALF for the Cb color component is enabled for the current slice and/or the tenth syntax element has a value of 0, this indicates that CCALF for the Cb color component is disabled for the current slice.

[0040] Em uma modalidade adicional, a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um décimo primeiro elemento de sintaxe quando o décimo elemento de sintaxe indica que CC-ALF para o componente de cor Cb está habilitado para a fatia atual, em que o décimo elemento de sintaxe é sinalizado em um cabeçalho de fatia e o décimo elemento de sintaxe especifica um conjunto de parâmetros ao qual o componente de cor Cb da fatia atual se refere. Este elemento de sintaxe pode ser indicado com pic_cross_component_alf_cb_aps_id, embora isso não se destine a limitar a presente revelação.[0040] In a further embodiment, the plurality of syntax elements related to CC-ALF comprises an eleventh syntax element when the tenth syntax element indicates that CC-ALF for the Cb color component is enabled for the current slice, wherein the tenth syntax element is flagged in a slice header and the tenth syntax element specifies a set of parameters to which the Cb color component of the current slice refers. This syntax element may be indicated with pic_cross_component_alf_cb_aps_id, although this is not intended to limit the present disclosure.

[0041] Em uma modalidade adicional, a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um décimo segundo elemento de sintaxe quando o segundo elemento de sintaxe indica que CC-ALF está habilitado, em que o décimo segundo elemento de sintaxe é sinalizado em um cabeçalho de fatia e o décimo segundo elemento de sintaxe indica se CCALF para um componente de cor Cr é habilitado para uma fatia atual de uma imagem atual de uma sequência de vídeo associada ao fluxo de bits. O décimo segundo elemento de sintaxe pode, por exemplo, ser indicado com slice_cross_component_alf_cr_enabled_flag.[0041] In a further embodiment, the plurality of syntax elements related to CC-ALF comprises a twelfth syntax element when the second syntax element indicates that CC-ALF is enabled, wherein the twelfth syntax element is signaled in a slice header and the twelfth syntax element indicates whether CCALF for a Cr color component is enabled for a current slice of a current image of a video sequence associated with the bitstream. The twelfth syntax element can, for example, be indicated with slice_cross_component_alf_cr_enabled_flag.

[0042] Em uma modalidade adicional, é fornecido que, se o décimo segundo elemento de sintaxe tiver um valor de 1, isso indica que CCALF para o componente de cor Cr está habilitado para a fatia atual e/ou se o décimo segundo elemento de sintaxe tiver um valor de 0, isso indica que o CCALF para o componente de cor Cr está desabilitado para a fatia atual.[0042] In a further embodiment, it is provided that if the twelfth syntax element has a value of 1, this indicates that CCALF for the Cr color component is enabled for the current slice and/or if the twelfth syntax element syntax has a value of 0, this indicates that CCALF for the Cr color component is disabled for the current slice.

[0043] Também pode ser fornecido que a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um décimo terceiro elemento de sintaxe quando o décimo segundo elemento de sintaxe indica que CC-ALF para o componente de cor Cr está habilitado para a fatia atual, em que o décimo terceiro elemento de sintaxe é sinalizado em um cabeçalho de fatia e o décimo terceiro elemento de sintaxe especifica um conjunto de parâmetros ao qual o componente de cor Cr da fatia atual se refere. O décimo terceiro elemento de sintaxe pode, por exemplo, ser indicado com slice_cross_component_alf_cr_aps_id. Isso pode fornecer informações de forma eficiente sobre o parâmetro a ser usado para a filtragem associada ao componente de cor Cr.[0043] It may also be provided that the plurality of syntax elements related to CC-ALF comprise a thirteenth syntax element when the twelfth syntax element indicates that CC-ALF for the Cr color component is enabled for the current slice , where the thirteenth syntax element is flagged in a slice header and the thirteenth syntax element specifies a set of parameters to which the Cr color component of the current slice refers. The thirteenth syntax element can, for example, be indicated with slice_cross_component_alf_cr_aps_id. This can efficiently provide information about the parameter to be used for filtering associated with the Cr color component.

[0044] Pode ser fornecido que o segundo elemento de sintaxe é sinalizado se o primeiro elemento de sintaxe tiver um primeiro valor, ou o segundo elemento de sintaxe é sinalizado condicionalmente pelo menos com base em um valor do primeiro elemento de sintaxe. Se o ALF não estiver habilitado (o que é sinalizado pelo primeiro elemento de sintaxe), o CC-ALF também não será habilitado. Ao não fornecer o segundo elemento de sintaxe neste caso, o tamanho do fluxo de bits pode ser adicionalmente reduzido.[0044] It may be provided that the second syntax element is signaled if the first syntax element has a first value, or the second syntax element is conditionally signaled at least based on a value of the first syntax element. If ALF is not enabled (which is signaled by the first syntax element), CC-ALF will also not be enabled. By not providing the second syntax element in this case, the size of the bitstream can be further reduced.

[0045] Em uma modalidade, a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um décimo quarto elemento de sintaxe que é sinalizado no nível de SPS, em que o décimo quarto elemento de sintaxe indica o tipo de entrada para o CC-ALF. O décimo quarto elemento de sintaxe pode ser indicado com ChromaArrayType, embora isso não limite a presente revelação.[0045] In one embodiment, the plurality of syntax elements related to CC-ALF comprise a fourteenth syntax element that is signaled at the SPS level, wherein the fourteenth syntax element indicates the type of input to the CC-ALF. ALF. The fourteenth syntax element may be indicated with ChromaArrayType, although this does not limit the present disclosure.

[0046] Mais especificamente, o segundo elemento de sintaxe é sinalizado quando o primeiro elemento de sintaxe tem um primeiro valor e o décimo quarto elemento de sintaxe tem um segundo valor. O segundo valor pode ser qualquer valor diferente de um valor específico que indicaria que CC-ALF não deve ser habilitado.[0046] More specifically, the second syntax element is signaled when the first syntax element has a first value and the fourteenth syntax element has a second value. The second value can be any value other than a specific value that would indicate that CC-ALF should not be enabled.

[0047] Em outra modalidade específica, o segundo elemento de sintaxe é sinalizado quando o primeiro elemento de sintaxe tem um valor que é igual a 1 e o décimo quarto elemento de sintaxe tem um valor que não é igual a 0.[0047] In another specific embodiment, the second syntax element is signaled when the first syntax element has a value that is equal to 1 and the fourteenth syntax element has a value that is not equal to 0.

[0048] Para qualquer uma das modalidades acima, pode ser fornecido que o CC-ALF opere como parte do processo de filtro loop adaptativo e faça uso de valores de amostra de luma para refinar pelo menos um componente de croma.[0048] For any of the above embodiments, it may be provided that the CC-ALF operates as part of the adaptive loop filter process and makes use of luma sample values to refine at least one chroma component.

[0049] A presente revelação fornece adicionalmente um método de decodificação implementado por um dispositivo de decodificação, o método compreendendo: analisar uma pluralidade de elementos de sintaxe relacionados a filtros de loop adaptativo de componente cruzado, CC-ALF, a partir de um fluxo de bits, em que a pluralidade de elementos de sintaxe, em que a pluralidade de elementos de sintaxe relacionados a CC-ALF é obtida a partir de qualquer um ou mais dentre um nível de conjunto de parâmetros de sequência (SPS), um cabeçalho de imagem ou um cabeçalho de fatia; em que a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um primeiro elemento de sintaxe que indica se um filtro loop adaptativo (ALF) compreendendo o filtro loop adaptativo de componente cruzado está habilitado ou não em um nível de sequência e o primeiro elemento de sintaxe é sinalizado no nível de SPS, e um segundo elemento de sintaxe que indica se o filtro loop adaptativo de componente cruzado está habilitado ou não em um nível de sequência e o segundo elemento de sintaxe é sinalizado no nível de SPS; realizar um processo de CC-ALF usando pelo menos um dentre a pluralidade de elementos de sintaxe relacionados a CC-ALF.[0049] The present disclosure further provides a decoding method implemented by a decoding device, the method comprising: analyzing a plurality of syntax elements related to cross-component adaptive loop filters, CC-ALF, from a stream of bits, wherein the plurality of syntax elements, wherein the plurality of syntax elements related to CC-ALF is obtained from any one or more of a sequence parameter set (SPS) level, an image header or a slice header; wherein the plurality of syntax elements related to CC-ALF comprise a first syntax element that indicates whether or not an adaptive loop filter (ALF) comprising the cross-component adaptive loop filter is enabled or not at a sequence level, and the first element syntax element is signaled at the SPS level, and a second syntax element that indicates whether the cross-component adaptive loop filter is enabled or not at a sequence level, and the second syntax element is signaled at the SPS level; perform a CC-ALF process using at least one of the plurality of syntax elements related to CC-ALF.

[0050] Embora seja geralmente especificado aqui que um primeiro e um segundo elemento de sintaxe são fornecidos no nível de SPS, isso não significa que pelo menos o segundo elemento de sintaxe seja fornecido no fluxo de bits de maneira incondicional. Em vez disso, esta modalidade também abrange realizações em que o segundo elemento de sintaxe faz parte do fluxo de bits, por exemplo, com base em um valor do primeiro elemento de sintaxe e/ou dependendo de um valor de outro elemento de sintaxe como será adicionalmente descrito abaixo.[0050] Although it is generally specified here that a first and a second syntax element are provided at the SPS level, this does not mean that at least the second syntax element is provided in the bitstream unconditionally. Instead, this embodiment also encompasses embodiments in which the second syntax element is part of the bit stream, for example, based on a value of the first syntax element and/or depending on a value of another syntax element as will be additionally described below.

[0051] O primeiro elemento de sintaxe pode ser chamado de sps_alf_enabled_flag a seguir, enquanto o segundo elemento de sintaxe pode ser chamado de sps_ccalf_enabled_flag. Esta é, no entanto, apenas uma nomenclatura usada aqui. A invenção não está limitada a um nome específico do primeiro ou segundo elemento de sintaxe ou qualquer outro elemento de sintaxe aqui referido.[0051] The first syntax element may be called sps_alf_enabled_flag below, while the second syntax element may be called sps_ccalf_enabled_flag. This is, however, just a nomenclature used here. The invention is not limited to a specific name of the first or second syntax element or any other syntax element referred to herein.

[0052] As informações que podem ser usadas, por exemplo, para todas as imagens em uma sequência podem, assim, ser fornecidas ao decodificador de forma eficiente no nível de SPS, reduzindo o tamanho do fluxo de bits, reduzindo a quantidade de informações redundantes, e permite executar filtragem loop adaptativa de componente cruzado com overhead de sinalização reduzido, assim a filtragem pode ser mais eficiente e a melhoria de eficiência de codificação é alcançada.[0052] Information that can be used, for example, for all images in a sequence can thus be provided to the decoder efficiently at the SPS level, reducing the size of the bit stream, reducing the amount of redundant information , and allows performing cross-component adaptive loop filtering with reduced signaling overhead, thus filtering can be more efficient and improved coding efficiency is achieved.

[0053] Pode ser fornecido que a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um terceiro elemento de sintaxe quando o segundo elemento de sintaxe é obtido como indicando que CC-ALF está habilitado, em que o terceiro elemento de sintaxe é obtido a partir do cabeçalho de imagem e o terceiro elemento de sintaxe indica se CC-ALF está habilitado para uma imagem atual compreendendo uma pluralidade de fatias. Este terceiro elemento de sintaxe também pode ser referido como pic_ccalf_enabled_flag. Com esta modalidade, as informações de CC-ALF relevantes relativas a uma imagem completa podem ser fornecidas mantendo o tamanho do fluxo de bits pequeno.[0053] It may be provided that the plurality of syntax elements related to CC-ALF comprise a third syntax element when the second syntax element is obtained as indicating that CC-ALF is enabled, wherein the third syntax element is obtained from the image header and the third syntax element indicates whether CC-ALF is enabled for a current image comprising a plurality of slices. This third syntax element can also be referred to as pic_ccalf_enabled_flag. With this embodiment, relevant CC-ALF information relative to a complete image can be provided while keeping the bitstream size small.

[0054] Em uma modalidade adicional, a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um quarto elemento de sintaxe quando o segundo elemento de sintaxe é obtido como indicando que CC-ALF está habilitado, em que o quarto elemento de sintaxe é obtido a partir do cabeçalho de imagem e o quarto elemento de sintaxe indica se CC-ALF está habilitado para um componente de cor Cb para uma imagem atual de uma sequência de vídeo. O quarto elemento de sintaxe pode, por exemplo, ser indicado com pic_cross_component_alf_cb_enabled_flag. No entanto, isso não é obrigatório. O quarto elemento de sintaxe pode fazer com que o decodificador habilite o CC-ALF para um componente de cor Cb, mantendo a quantidade de informações redundantes, por exemplo, em um cabeçalho de fatia, pequena.[0054] In a further embodiment, the plurality of syntax elements related to CC-ALF comprise a fourth syntax element when the second syntax element is obtained as indicating that CC-ALF is enabled, wherein the fourth syntax element is obtained from the image header and the fourth syntax element indicates whether CC-ALF is enabled for a Cb color component for a current image of a video sequence. The fourth syntax element can, for example, be indicated with pic_cross_component_alf_cb_enabled_flag. However, this is not mandatory. The fourth syntax element can cause the decoder to enable CC-ALF for a Cb color component, keeping the amount of redundant information, for example in a slice header, small.

[0055] Em uma modalidade adicional, pode ser fornecido que, se o quarto elemento de sintaxe tiver um valor de 1, isso indica que o CC-ALF para um componente de cor Cb está habilitado para a imagem atual e/ou se o quarto elemento de sintaxe tem um valor de 0, isso indica que o CC-ALF para um componente de cor Cb está desabilitado para a imagem atual.[0055] In a further embodiment, it may be provided that if the fourth syntax element has a value of 1, this indicates that the CC-ALF for a Cb color component is enabled for the current image and/or if the fourth syntax element has a value of 0, this indicates that the CC-ALF for a Cb color component is disabled for the current image.

[0056] Além disso, a pluralidade de elementos de sintaxe relacionados a CC-ALF pode compreender um quinto elemento de sintaxe quando o quarto elemento de sintaxe CC-ALF para o componente de cor Cb é habilitado para a imagem atual, em que o quinto elemento de sintaxe é obtido a partir do cabeçalho de imagem e o quinto elemento de sintaxe indica um conjunto de parâmetros que está associado ao componente de cor Cb de todas as fatias na imagem atual. Este elemento de sintaxe pode ser indicado com pic_cross_component_alf_cb_aps_id. Isso, no entanto, é apenas uma nomenclatura e não é interpretado para limitar a presente revelação. Esta modalidade pode permitir o fornecimento de conjuntos de parâmetros que são fornecidos para todas as fatias de uma imagem já no nível de imagem, reduzindo assim a quantidade de informações redundantes.[0056] Furthermore, the plurality of syntax elements related to CC-ALF may comprise a fifth syntax element when the fourth CC-ALF syntax element for the color component Cb is enabled for the current image, wherein the fifth syntax element is obtained from the image header and the fifth syntax element indicates a set of parameters that is associated with the Cb color component of all slices in the current image. This syntax element can be indicated with pic_cross_component_alf_cb_aps_id. This, however, is only a nomenclature and is not construed to limit the present disclosure. This modality can allow the provision of parameter sets that are provided for all slices of an image already at the image level, thus reducing the amount of redundant information.

[0057] Em uma modalidade adicional, a pluralidade de elementos de sintaxe associados a CC-ALF compreende um sétimo elemento de sintaxe quando o segundo elemento de sintaxe é obtido como indicando que CC-ALF está habilitado, em que o sétimo elemento de sintaxe é obtido a partir do cabeçalho de imagem e do sétimo elemento de sintaxe especifica se CC-ALF está habilitado para um componente de cor Cr para uma imagem atual de uma sequência de vídeo associada ao fluxo de bits. Este elemento de sintaxe pode, por exemplo, ser indicado com pic_cross_component_alf_cr_enabled_flag sem que isso limite a presente revelação. Com este elemento de sintaxe, o decodificador CC-ALF pode determinar com segurança se o CC-ALF está habilitado para componentes de cor Cr.[0057] In a further embodiment, the plurality of syntax elements associated with CC-ALF comprise a seventh syntax element when the second syntax element is obtained as indicating that CC-ALF is enabled, wherein the seventh syntax element is obtained from the image header and the seventh syntax element specifies whether CC-ALF is enabled for a Cr color component for a current image of a video sequence associated with the bitstream. This syntax element may, for example, be indicated with pic_cross_component_alf_cr_enabled_flag without limiting the present disclosure. With this syntax element, the CC-ALF decoder can reliably determine whether CC-ALF is enabled for Cr color components.

[0058] Pode ser fornecido que, se o sétimo elemento de sintaxe tiver um valor de 1, isso indica que CC-ALF para o componente de cor Cr está habilitado para a imagem atual e/ou se o sétimo elemento de sintaxe tiver um valor de 0, isso indica que CC-ALF para o componente de cor Cr está desabilitado para a imagem atual.[0058] It may be provided that if the seventh syntax element has a value of 1, this indicates that CC-ALF for the Cr color component is enabled for the current image and/or if the seventh syntax element has a value of 0, this indicates that CC-ALF for the Cr color component is disabled for the current image.

[0059] Em uma modalidade adicional, a pluralidade de elementos de sintaxe associados a CC-ALF compreende um oitavo elemento de sintaxe quando o sétimo elemento de sintaxe é obtido como indicando que CC-ALF para o componente de cor Cr está habilitado para a imagem atual, em que o oitavo elemento de sintaxe é obtido a partir do cabeçalho de imagem e o oitavo elemento de sintaxe indica um conjunto de parâmetros que está associado ao componente de cor Cr de todas as fatias na imagem atual. O oitavo elemento de sintaxe pode ser denotado com pic_cross_component_alf_cr_aps_id, embora este seja apenas um exemplo. Este elemento de sintaxe pode fornecer informações sobre parâmetros relevantes a serem usados durante a filtragem.[0059] In a further embodiment, the plurality of syntax elements associated with CC-ALF comprises an eighth syntax element when the seventh syntax element is obtained as indicating that CC-ALF for the Cr color component is image enabled. current, where the eighth syntax element is taken from the image header and the eighth syntax element indicates a set of parameters that is associated with the Cr color component of all slices in the current image. The eighth syntax element can be denoted with pic_cross_component_alf_cr_aps_id, although this is just an example. This syntax element can provide information about relevant parameters to use during filtering.

[0060] Pode ser adicionalmente fornecido que o quarto elemento de sintaxe, o quinto elemento de sintaxe, o sexto elemento de sintaxe, o sétimo elemento de sintaxe, o oitavo elemento de sintaxe e o nono elemento de sintaxe são obtidos quando o terceiro elemento de sintaxe é obtido como indicando que CC-ALF está habilitado para a imagem atual de uma sequência de vídeo associada ao fluxo de bits.[0060] It may be further provided that the fourth syntax element, the fifth syntax element, the sixth syntax element, the seventh syntax element, the eighth syntax element and the ninth syntax element are obtained when the third syntax element syntax is taken to indicate that CC-ALF is enabled for the current image of a video sequence associated with the bitstream.

[0061] Em uma modalidade, a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um décimo elemento de sintaxe quando o segundo elemento de sintaxe é obtido como indicando que CC-ALF está habilitado, em que o décimo elemento de sintaxe é obtido a partir de um cabeçalho de fatia e o décimo elemento de sintaxe indica se CCALF para um componente de cor Cb está habilitado para uma fatia atual de uma imagem atual de uma sequência de vídeo associada ao fluxo de bits. Este elemento de sintaxe pode, sem a intenção de limitar a presente revelação, ser referido como slice_cross_component_alf_cb_enabled_flag. Assim, o decodificador pode determinar se CC-ALF deve ser habilitado para que componentes de cor Cb possam ser fornecidos.[0061] In one embodiment, the plurality of syntax elements related to CC-ALF comprises a tenth syntax element when the second syntax element is obtained as indicating that CC-ALF is enabled, wherein the tenth syntax element is obtained from a slice header and the tenth syntax element indicates whether CCALF for a Cb color component is enabled for a current slice of a current image of a video sequence associated with the bitstream. This syntax element may, without intending to limit the present disclosure, be referred to as slice_cross_component_alf_cb_enabled_flag. Thus, the decoder can determine whether CC-ALF should be enabled so that Cb color components can be provided.

[0062] Pode ser adicionalmente fornecido que, se o décimo elemento de sintaxe tiver um valor de 1, isso indica que o CCALF para o componente de cor Cb está habilitado para a fatia atual e/ou se o décimo elemento de sintaxe tiver um valor de 0, isso indica que CCALF para o componente de cor Cb está desabilitado para a fatia atual.[0062] It may further be provided that if the tenth syntax element has a value of 1, this indicates that CCALF for the color component Cb is enabled for the current slice and/or if the tenth syntax element has a value of 0, this indicates that CCALF for the Cb color component is disabled for the current slice.

[0063] Em uma modalidade, a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um décimo primeiro elemento de sintaxe quando o décimo elemento de sintaxe é obtido como indicando que CC-ALF para o componente de cor Cb está habilitado para a fatia atual, em que o décimo elemento de sintaxe é obtido a partir do cabeçalho de fatia e o décimo elemento de sintaxe especifica um conjunto de parâmetros ao qual o componente de cor Cb da fatia atual se refere. Este elemento de sintaxe pode ser indicado com pic_cross_component_alf_cb_aps_id, embora isso não se destine a limitar a presente revelação.[0063] In one embodiment, the plurality of syntax elements related to CC-ALF comprises an eleventh syntax element when the tenth syntax element is obtained as indicating that CC-ALF for the Cb color component is enabled for the slice current, where the tenth syntax element is taken from the slice header and the tenth syntax element specifies a set of parameters that the Cb color component of the current slice refers to. This syntax element may be indicated with pic_cross_component_alf_cb_aps_id, although this is not intended to limit the present disclosure.

[0064] Pode ser fornecido que a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um décimo segundo elemento de sintaxe quando o segundo elemento de sintaxe é obtido como indicando que CC-ALF está habilitado, em que o décimo segundo elemento de sintaxe é obtido a partir do cabeçalho de fatia e o décimo segundo elemento de sintaxe indica se CCALF para um componente de cor Cr está habilitado para uma fatia atual de uma imagem atual de uma sequência de vídeo associada ao fluxo de bits. O décimo segundo elemento de sintaxe pode, por exemplo, ser indicado com slice_cross_component_alf_cr_enabled_flag.[0064] It may be provided that the plurality of syntax elements related to CC-ALF comprise a twelfth syntax element when the second syntax element is obtained as indicating that CC-ALF is enabled, wherein the twelfth syntax element is obtained from the slice header and the twelfth syntax element indicates whether CCALF for a Cr color component is enabled for a current slice of a current image of a video sequence associated with the bitstream. The twelfth syntax element can, for example, be indicated with slice_cross_component_alf_cr_enabled_flag.

[0065] Em uma modalidade mais específica, se o décimo segundo elemento de sintaxe tiver um valor de 1, isso indica que CCALF para o componente de cor Cr está habilitado para a fatia atual e/ou se o décimo segundo elemento de sintaxe tiver um valor de 0, isso indica que CCALF para o componente de cor Cr está desabilitado para a fatia atual.[0065] In a more specific embodiment, if the twelfth syntax element has a value of 1, this indicates that CCALF for the Cr color component is enabled for the current slice and/or if the twelfth syntax element has a value of 0, this indicates that CCALF for the Cr color component is disabled for the current slice.

[0066] Pode ser adicionalmente fornecido que a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um décimo terceiro elemento de sintaxe quando o décimo segundo elemento de sintaxe é obtido como indicando que CC-ALF para o componente de cor Cr está habilitado para a fatia atual, em que o décimo terceiro elemento de sintaxe é obtido a partir de um cabeçalho de fatia e o décimo terceiro elemento de sintaxe especifica um conjunto de parâmetros ao qual o componente de cor Cr da fatia atual se refere. O décimo terceiro elemento de sintaxe pode, por exemplo, ser indicado com slice_cross_component_alf_cr_aps_id. Isso pode fornecer informações de forma eficiente sobre o parâmetro a ser usado para a filtragem associada ao componente de cor Cr.[0066] It may further be provided that the plurality of syntax elements related to CC-ALF comprise a thirteenth syntax element when the twelfth syntax element is obtained as indicating that CC-ALF for the Cr color component is enabled for the current slice, where the thirteenth syntax element is obtained from a slice header and the thirteenth syntax element specifies a set of parameters to which the Cr color component of the current slice refers. The thirteenth syntax element can, for example, be indicated with slice_cross_component_alf_cr_aps_id. This can efficiently provide information about the parameter to be used for filtering associated with the Cr color component.

[0067] Em uma modalidade, o segundo elemento de sintaxe é obtido se o primeiro elemento de sintaxe tiver um primeiro valor, ou o segundo elemento de sintaxe for obtido pelo menos com base em um valor do primeiro elemento de sintaxe.[0067] In one embodiment, the second syntax element is obtained if the first syntax element has a first value, or the second syntax element is obtained at least based on a value of the first syntax element.

[0068] Pode ser adicionalmente fornecido que a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um décimo quarto elemento de sintaxe que é obtido a partir do nível de SPS, em que o décimo quarto elemento de sintaxe indica o tipo de entrada para o CC-ALF. O décimo quarto elemento de sintaxe pode ser indicado com ChromaArrayType, embora isso não limite a presente revelação.[0068] It may further be provided that the plurality of syntax elements related to CC-ALF comprise a fourteenth syntax element that is obtained from the SPS level, wherein the fourteenth syntax element indicates the type of input to the CC-ALF. The fourteenth syntax element may be indicated with ChromaArrayType, although this does not limit the present disclosure.

[0069] Mais especificamente, o segundo elemento de sintaxe pode ser obtido quando o primeiro elemento de sintaxe tem um primeiro valor e o décimo quarto elemento de sintaxe tem um segundo valor. Este segundo valor pode ser qualquer valor diferente de um valor que indica que CC-ALF não deve ser habilitado ou que pode ser usado para indicar isso.[0069] More specifically, the second syntax element can be obtained when the first syntax element has a first value and the fourteenth syntax element has a second value. This second value can be any value other than a value that indicates that CC-ALF should not be enabled or that can be used to indicate so.

[0070] Mais especificamente, pode ser fornecido que o segundo elemento de sintaxe é obtido quando o primeiro elemento de sintaxe tem um valor que é igual a 1 e o décimo quarto elemento de sintaxe tem um valor que é diferente de 0.[0070] More specifically, it can be provided that the second syntax element is obtained when the first syntax element has a value that is equal to 1 and the fourteenth syntax element has a value that is different from 0.

[0071] Para qualquer uma das modalidades acima, pode ser adicionalmente fornecido que o CC-ALF opere como parte do processo de filtro loop adaptativo e faça uso de valores de amostra de luma para refinar pelo menos um componente de croma.[0071] For any of the above embodiments, it may be further provided that the CC-ALF operates as part of the adaptive loop filter process and makes use of luma sample values to refine at least one chroma component.

[0072] A presente revelação se refere adicionalmente a um dispositivo para codificar dados de vídeo, compreendendo: uma memória de dados de vídeo; e um codificador de vídeo, em que o codificador de vídeo é configurado para: aplicar um filtro loop adaptativo de componente cruzado, CC-ALF para refinar um componente de croma; gerar um fluxo de bits incluindo uma pluralidade de elementos de sintaxe relacionados a CC-ALF, em que a pluralidade de elementos de sintaxe relacionados a CC-ALF indica informações relacionadas a CC-ALF; em que a pluralidade de elementos de sintaxe relacionados a CC-ALF é sinalizada em qualquer um ou mais dentre um nível de conjunto de parâmetros de sequência (SPS), um cabeçalho de imagem ou um cabeçalho de fatia; em que a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um primeiro elemento de sintaxe que indica se um filtro loop adaptativo (ALF) compreendendo o filtro loop adaptativo de componente cruzado está habilitado ou não em um nível de sequência e o primeiro elemento de sintaxe é sinalizado no nível de SPS, e um segundo elemento de sintaxe que indica se o filtro loop adaptativo de componente cruzado está habilitado ou não em um nível de sequência e o segundo elemento de sintaxe é sinalizado no nível de SPS. Com isso, as vantagens dos métodos de codificação citados acima são fornecidas aos codificadores para codificação, por exemplo, de vídeos.[0072] The present disclosure further relates to a device for encoding video data, comprising: a video data memory; and a video encoder, wherein the video encoder is configured to: apply a cross-component adaptive loop filter, CC-ALF to refine a chroma component; generating a bitstream including a plurality of CC-ALF-related syntax elements, wherein the plurality of CC-ALF-related syntax elements indicates CC-ALF-related information; wherein the plurality of syntax elements related to CC-ALF are signaled at any one or more of a sequence parameter set (SPS) level, an image header, or a slice header; wherein the plurality of syntax elements related to CC-ALF comprise a first syntax element that indicates whether or not an adaptive loop filter (ALF) comprising the cross-component adaptive loop filter is enabled or not at a sequence level, and the first element syntax element is signaled at the SPS level, and a second syntax element that indicates whether the cross-component adaptive loop filter is enabled or not at a sequence level, and the second syntax element is signaled at the SPS level. With this, the advantages of the coding methods mentioned above are provided to coders for coding, for example, videos.

[0073] A presente revelação também se refere a um dispositivo para decodificação de dados de vídeo, compreendendo: uma memória de dados de vídeo; e um decodificador de vídeo, em que o decodificador de vídeo é configurado para: analisar uma pluralidade de elementos de sintaxe relacionados de filtro loop adaptativo de componente cruzado, CC-ALF, a partir de um fluxo de bits, em que a pluralidade de elementos de sintaxe, em que a pluralidade de elementos de sintaxe relacionados a CC-ALF é obtida a partir de qualquer um ou mais dentre um nível de conjunto de parâmetros de sequência (SPS), um cabeçalho de imagem ou um cabeçalho de fatia; em que a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um primeiro elemento de sintaxe que indica se um filtro loop adaptativo (ALF) compreendendo o filtro loop adaptativo de componente cruzado está habilitado ou não em um nível de sequência e o primeiro elemento de sintaxe é sinalizado no nível de SPS, e um segundo elemento de sintaxe que indica se o filtro loop adaptativo de componente cruzado está habilitado ou não em um nível de sequência e o segundo elemento de sintaxe é sinalizado no nível de SPS; e realizar um processo de CC-ALF usando pelo menos um dentre a pluralidade de elementos de sintaxe relacionados a CC-ALF.[0073] The present disclosure also relates to a device for decoding video data, comprising: a video data memory; and a video decoder, wherein the video decoder is configured to: parse a plurality of cross-component adaptive loop filter, CC-ALF, related syntax elements from a bit stream, wherein the plurality of elements of syntax, wherein the plurality of syntax elements related to CC-ALF are obtained from any one or more of a sequence parameter set (SPS) level, an image header, or a slice header; wherein the plurality of syntax elements related to CC-ALF comprise a first syntax element that indicates whether or not an adaptive loop filter (ALF) comprising the cross-component adaptive loop filter is enabled or not at a sequence level, and the first element syntax element is signaled at the SPS level, and a second syntax element that indicates whether the cross-component adaptive loop filter is enabled or not at a sequence level, and the second syntax element is signaled at the SPS level; and performing a CC-ALF process using at least one of the plurality of syntax elements related to CC-ALF.

[0074] Com isso, as vantagens do tamanho reduzido do fluxo de bits são realizadas ao obter uma decodificação confiável de um vídeo.[0074] Thereby, the advantages of reduced bitstream size are realized when achieving reliable decoding of a video.

[0075] Além disso, é fornecido um codificador para codificar um vídeo, o codificador compreendendo circuitos de processamento para realizar um método de acordo com qualquer uma das modalidades acima. Com isso, as vantagens dos métodos de codificação citados acima são fornecidas aos codificadores para codificação, por exemplo, de vídeos.[0075] Furthermore, an encoder is provided for encoding a video, the encoder comprising processing circuitry for carrying out a method in accordance with any of the above embodiments. With this, the advantages of the coding methods mentioned above are provided to coders for coding, for example, videos.

[0076] Além disso, é fornecido um decodificador para decodificar um fluxo de bits, o decodificador compreendendo circuitos de processamento para realizar um método de acordo com qualquer uma das modalidades acima. Com isso, as vantagens do tamanho reduzido do fluxo de bits são realizadas ao obter uma decodificação confiável de um vídeo.[0076] Furthermore, a decoder for decoding a bit stream is provided, the decoder comprising processing circuitry for carrying out a method in accordance with any of the above embodiments. By doing so, the advantages of reduced bitstream size are realized when achieving reliable decoding of a video.

[0077] Além disso, é fornecida nesta revelação uma mídia de armazenamento legível por computador compreendendo nela instruções executáveis por computador que, quando executadas por um dispositivo de computação, fazem o dispositivo de computação realizar um método de acordo com qualquer uma das modalidades acima.[0077] Furthermore, there is provided in this disclosure a computer-readable storage medium comprising thereon computer-executable instructions which, when executed by a computing device, cause the computing device to perform a method in accordance with any of the above embodiments.

[0078] A presente revelação fornece adicionalmente um fluxo de bits codificado para o sinal de vídeo incluindo uma pluralidade de elementos de sintaxe relacionados a CC-ALF, em que a pluralidade de elementos de sintaxe relacionados a CC-ALF indica informações relacionadas a CC-ALF; em que a pluralidade de elementos de sintaxe relacionados a CC-ALF é sinalizada em qualquer um ou mais dentre um nível de conjunto de parâmetros de sequência (SPS), um cabeçalho de imagem ou um cabeçalho de fatia; em que a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um primeiro elemento de sintaxe que indica se um filtro loop adaptativo (ALF) compreendendo o filtro loop adaptativo de componente cruzado está habilitado ou não em um nível de sequência e o primeiro elemento de sintaxe é sinalizado no nível de SPS, e um segundo elemento de sintaxe que indica se o filtro loop adaptativo de componente cruzado está habilitado ou não em um nível de sequência e o segundo elemento de sintaxe é sinalizado no nível de SPS.[0078] The present disclosure further provides an encoded bitstream for the video signal including a plurality of syntax elements related to CC-ALF, wherein the plurality of syntax elements related to CC-ALF indicates information related to CC-ALF. ALF; wherein the plurality of syntax elements related to CC-ALF are signaled at any one or more of a sequence parameter set (SPS) level, an image header, or a slice header; wherein the plurality of syntax elements related to CC-ALF comprise a first syntax element that indicates whether or not an adaptive loop filter (ALF) comprising the cross-component adaptive loop filter is enabled or not at a sequence level, and the first element syntax element is signaled at the SPS level, and a second syntax element that indicates whether the cross-component adaptive loop filter is enabled or not at a sequence level, and the second syntax element is signaled at the SPS level.

[0079] O fluxo de bits pode ser reduzido em tamanho enquanto fornece informações a serem usadas na decodificação ao aplicar CC-ALF de maneira confiável.[0079] The bit stream can be reduced in size while providing information to be used in decoding when reliably applying CC-ALF.

[0080] Os detalhes de uma ou mais modalidades são apresentados nos desenhos anexos e na descrição abaixo. Outros recursos, objetos e vantagens serão evidentes a partir da descrição, desenhos e reivindicações.[0080] Details of one or more embodiments are presented in the attached drawings and in the description below. Other features, objects and advantages will be apparent from the description, drawings and claims.

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[0081] No seguinte, modalidades da invenção são descritas em mais detalhes com referência às figuras e desenhos anexos, nos quais:[0081] In the following, embodiments of the invention are described in more detail with reference to the accompanying figures and drawings, in which:

[0082] Figura 1A é um diagrama de blocos mostrando um exemplo de um sistema de codificação de vídeo configurado para implementar modalidades da invenção;[0082] Figure 1A is a block diagram showing an example of a video coding system configured to implement embodiments of the invention;

[0083] Figura 1B é um diagrama de blocos mostrando outro exemplo de um sistema de codificação de vídeo configurado para implementar modalidades da invenção;[0083] Figure 1B is a block diagram showing another example of a video coding system configured to implement embodiments of the invention;

[0084] Figura 2 é um diagrama de blocos mostrando um exemplo de um codificador de vídeo configurado para implementar modalidades da invenção;[0084] Figure 2 is a block diagram showing an example of a video encoder configured to implement embodiments of the invention;

[0085] Figura 3 é um diagrama de blocos mostrando uma estrutura de exemplo de um decodificador de vídeo configurado para implementar modalidades da invenção;[0085] Figure 3 is a block diagram showing an example structure of a video decoder configured to implement embodiments of the invention;

[0086] Figura 4 é um diagrama de blocos ilustrando um exemplo de um aparelho de codificação ou um aparelho de decodificação;[0086] Figure 4 is a block diagram illustrating an example of an encoding apparatus or a decoding apparatus;

[0087] Figura 5 é um diagrama de blocos ilustrando outro exemplo de um aparelho de codificação ou um aparelho de decodificação;[0087] Figure 5 is a block diagram illustrating another example of an encoding apparatus or a decoding apparatus;

[0088] Figura 6 inclui Figuras 6a, 6b e 6c, em que (6a) Colocação de CC ALF em relação a outros filtros de loop (6b e 6c) Filtro em forma de diamante;[0088] Figure 6 includes Figures 6a, 6b and 6c, in which (6a) Placement of CC ALF in relation to other loop filters (6b and 6c) Diamond-shaped filter;

[0089] Figura 7 é um diagrama ilustrando todos os cabeçalhos de fatia que devem transmitir os dados de CCALF na técnica anterior;[0089] Figure 7 is a diagram illustrating all slice headers that must transmit CCALF data in the prior art;

[0090] Figura 8 é um diagrama ilustrando um exemplo de elementos de sintaxe melhorados do CC-ALF;[0090] Figure 8 is a diagram illustrating an example of enhanced CC-ALF syntax elements;

[0091] Figura 9A é um diagrama conceitual ilustrando as localizações relativas nominais verticais e horizontais de amostras de luma e croma;[0091] Figure 9A is a conceptual diagram illustrating the relative nominal vertical and horizontal locations of luma and chroma samples;

[0092] Figura 9B é um diagrama esquemático ilustrando um bloco de luma colocalizado e um bloco de croma;[0092] Figure 9B is a schematic diagram illustrating a co-located luma block and a chroma block;

[0093] Figura 10 é um diagrama de blocos mostrando uma estrutura de exemplo de um sistema de abastecimento de conteúdo 3100 que realiza um serviço de entrega de conteúdo;[0093] Figure 10 is a block diagram showing an example structure of a content delivery system 3100 that performs a content delivery service;

[0094] Figura 11 é um diagrama de blocos mostrando uma estrutura de um exemplo de um dispositivo terminal;[0094] Figure 11 is a block diagram showing a structure of an example of a terminal device;

[0095] Figura 12 é um diagrama de blocos mostrando um exemplo de um codificador;[0095] Figure 12 is a block diagram showing an example of an encoder;

[0096] Figura 13 é um diagrama de blocos mostrando um exemplo de um decodificador;[0096] Figure 13 is a block diagram showing an example of a decoder;

[0097] Figura 14 mostra um fluxograma de um método de codificação de um vídeo de acordo com uma modalidade;[0097] Figure 14 shows a flowchart of a method of encoding a video according to an embodiment;

[0098] Figura 15 mostra um fluxograma de um método de decodificação de um vídeo de acordo com uma modalidade.[0098] Figure 15 shows a flowchart of a method of decoding a video according to one embodiment.

[0099] Figura 16 é um diagrama esquemático de uma estrutura de dados 5000, ou seja, um fluxo de bits de vídeo 500.[0099] Figure 16 is a schematic diagram of a data structure 5000, i.e., a video bit stream 500.

[0100] No seguinte, sinais de referência idênticos referem-se a recursos idênticos ou pelo menos funcionalmente equivalentes, se não for explicitamente especificado de outra forma.[0100] In the following, identical reference signals refer to identical or at least functionally equivalent resources, if not explicitly specified otherwise.

DESCRIÇÃO DETALHADA DAS MODALIDADESDETAILED DESCRIPTION OF MODALITIES

[0101] A seguinte definição é para a referência: □ bloco de codificação: Um bloco MxN de amostras para alguns valores de M e N tal que a divisão de um CTB em blocos de codificação é um particionamento. □ bloco de árvore de codificação (CTB): Um bloco NxN de amostras para algum valor de N tal que a divisão de um componente em CTBs seja um particionamento. □ unidade de árvore de codificação (CTU): Um CTB de amostras de luma, dois CTBs correspondentes de amostras de croma de uma imagem que possui três arranjos de amostra ou um CTB de amostras de uma imagem monocromática ou uma imagem codificada usando três planos de cores separados e estruturas de sintaxe usadas para codificar as amostras. □ unidade de codificação (CU): Um bloco de codificação de amostras de luma, dois blocos de codificação correspondentes de amostras de croma de uma imagem que possui três arranjos de amostras, ou um bloco de codificação de amostras de uma imagem monocromática ou uma imagem codificada usando três planos de cores separados e estruturas de sintaxe usadas para codificar as amostras. □ componente: Um arranjo ou amostra única de um dos três arranjos (luma e dois croma) que compõem uma imagem em formato de cor 4:2:0, 4:2:2 ou 4:4:4 ou o arranjo ou uma única amostra do arranjo que compõe uma imagem em formato monocromático.[0101] The following definition is for reference: □ coding block: An MxN block of samples for some values of M and N such that dividing a CTB into coding blocks is a partitioning. □ coding tree block (CTB): An NxN block of samples for some value of N such that dividing a component into CTBs is a partitioning. □ coding tree unit (CTU): One CTB of luma samples, two corresponding CTBs of chroma samples from an image that has three sample arrays, or one CTB of samples from a monochrome image or an image encoded using three planes of Separate colors and syntax structures used to encode the samples. □ coding unit (CU): A coding block of luma samples, two corresponding coding blocks of chroma samples of an image that has three sample arrays, or a coding block of samples of a monochrome image or a encoded using three separate color planes and syntax structures used to encode the samples. □ component: A single arrangement or sample of one of the three arrangements (luma and two chroma) that make up an image in 4:2:0, 4:2:2 or 4:4:4 color format or the arrangement or a single sample of the arrangement that makes up an image in monochrome format.

[0102] Na seguinte descrição, é feita referência às figuras anexas, que fazem parte da revelação e que mostram, a título de ilustração, aspectos específicos das modalidades da invenção ou aspectos específicos em que as modalidades da presente invenção podem ser usadas. Entende-se que as modalidades da invenção podem ser usadas em outros aspectos e compreendem mudanças estruturais ou lógicas não representadas nas figuras. A seguinte descrição detalhada, portanto, não deve ser tomada em um sentido limitante, e o escopo da presente invenção é definido pelas reivindicações anexas.[0102] In the following description, reference is made to the attached figures, which form part of the disclosure and which show, by way of illustration, specific aspects of the embodiments of the invention or specific aspects in which the embodiments of the present invention can be used. It is understood that embodiments of the invention can be used in other aspects and comprise structural or logical changes not represented in the figures. The following detailed description, therefore, should not be taken in a limiting sense, and the scope of the present invention is defined by the appended claims.

[0103] Por exemplo, entende-se que uma revelação em conexão com um método descrito também pode ser verdadeira para um dispositivo ou sistema correspondente configurado para realizar o método e vice-versa. Por exemplo, se uma ou uma pluralidade de etapas de método específicos são descritos, um dispositivo correspondente pode incluir uma ou uma pluralidade de unidades, por exemplo, unidades funcionais, para realizar o descrito ou a pluralidade de etapas de método (por exemplo, uma unidade realizando o ou a pluralidade de etapas, ou uma pluralidade de unidades, cada uma realizando uma ou mais da pluralidade de etapas), mesmo se tais uma ou mais unidades não forem explicitamente descritas ou ilustradas nas imagens. Por outro lado, por exemplo, se um aparelho específico é descrito com base em uma ou uma pluralidade de unidades, por exemplo, unidades funcionais, um método correspondente pode incluir uma etapa para realizar a funcionalidade de uma ou pluralidade de unidades (por exemplo, uma etapa realizando a funcionalidade da uma ou pluralidade de unidades, ou uma pluralidade de etapas, cada uma realizando a funcionalidade de uma ou mais da pluralidade de unidades), mesmo se tal uma ou pluralidade de etapas não forem explicitamente descritas ou ilustradas nas imagens. Além disso, entende-se que os recursos das várias modalidades exemplares e/ou aspectos descritos neste documento podem ser combinados uns com os outros, a menos que especificamente indicado de outra forma.[0103] For example, it is understood that a disclosure in connection with a described method may also be true for a corresponding device or system configured to carry out the method and vice versa. For example, if one or a plurality of specific method steps are described, a corresponding device may include one or a plurality of units, e.g., functional units, for carrying out the described or plurality of method steps (e.g., a unit performing the or plurality of steps, or a plurality of units, each performing one or more of the plurality of steps), even if such one or more units are not explicitly described or illustrated in the images. On the other hand, for example, if a specific apparatus is described based on one or a plurality of units, e.g., functional units, a corresponding method may include a step for realizing the functionality of one or plurality of units (e.g., a step performing the functionality of the one or plurality of units, or a plurality of steps, each performing the functionality of one or more of the plurality of units), even if such one or plurality of steps are not explicitly described or illustrated in the images. Furthermore, it is understood that features of the various exemplary embodiments and/or aspects described herein may be combined with each other unless specifically indicated otherwise.

[0104] A codificação de vídeo normalmente se refere ao processamento de uma sequência de imagens, que formam o vídeo ou a sequência de vídeo. Em vez do termo “imagem” (“picture”), o termo “quadro” ou “imagem” (“image”) pode ser usado como sinônimos no campo da codificação de vídeo. A codificação de vídeo (ou codificação em geral) compreende duas partes: codificação de vídeo e decodificação de vídeo. A codificação de vídeo é realizada no lado de origem, normalmente compreendendo o processamento (por exemplo, por compressão) das imagens de vídeo originais para reduzir a quantidade de dados necessária para representar as imagens de vídeo (para armazenamento e/ou transmissão mais eficiente). A decodificação de vídeo é realizada no lado de destino e normalmente compreende o processamento inverso em comparação com o codificador para reconstruir as imagens de vídeo. As modalidades que se referem à "codificação"de imagens de vídeo (ou imagens em geral) devem ser entendidas como relacionadas à "codificação"ou "decodificação"de imagens de vídeo ou respectivas sequências de vídeo. A combinação da parte de codificação e da parte de decodificação também é conhecida como CODEC (Codificação e Decodificação).[0104] Video coding typically refers to the processing of a sequence of images, which form the video or video sequence. Instead of the term “image” (“picture”), the term “frame” or “image” (“image”) can be used as synonyms in the field of video coding. Video coding (or coding in general) comprises two parts: video encoding and video decoding. Video coding is performed on the source side, typically comprising processing (e.g. by compression) of the original video images to reduce the amount of data required to represent the video images (for more efficient storage and/or transmission) . Video decoding is performed on the target side and typically comprises inverse processing compared to the encoder to reconstruct the video images. Embodiments that refer to "coding" of video images (or images in general) should be understood as relating to "encoding" or "decoding" of video images or respective video sequences. The combination of encoding part and decoding part is also known as CODEC (Encoding and Decoding).

[0105] No caso de codificação de vídeo sem perdas, as imagens de vídeo originais podem ser reconstruídas, ou seja, as imagens de vídeo reconstruídas têm a mesma qualidade das imagens de vídeo originais (assumindo nenhuma perda de transmissão ou outra perda de dados durante armazenamento ou transmissão). No caso de codificação de vídeo com perdas, compressão adicional, por exemplo, por quantização, é realizada, para reduzir a quantidade de dados que representam as imagens de vídeo, que não podem ser completamente reconstruídas no decodificador, ou seja, a qualidade das imagens de vídeo reconstruídas é inferior ou pior comparada à qualidade das imagens de vídeo originais.[0105] In the case of lossless video coding, the original video images can be reconstructed, i.e., the reconstructed video images have the same quality as the original video images (assuming no transmission loss or other data loss during storage or transmission). In the case of lossy video coding, additional compression, for example by quantization, is performed, to reduce the amount of data representing the video images, which cannot be completely reconstructed in the decoder, i.e. the quality of the images reconstructed video images is inferior or worse compared to the quality of the original video images.

[0106] Vários padrões de codificação de vídeo pertencem ao grupo de “codecs de vídeo híbridos com perdas” (ou seja, combinam predição espacial e temporal no domínio de amostra e codificação de transformada 2D para aplicar quantização no domínio de transformada). Cada imagem de uma sequência de vídeo é normalmente particionada em um conjunto de blocos não sobrepostos e a codificação é normalmente realizada em um nível de bloco. Em outras palavras, no codificador, o vídeo é normalmente processado, ou seja, codificado, em um nível de bloco (bloco de vídeo), por exemplo, por usar predição espacial (imagem intra) e/ou predição temporal (imagem inter) para gerar um bloco de predição, subtrair o bloco de predição do bloco atual (bloco atualmente processado / a ser processado) para obter um bloco residual, transformar o bloco residual e quantizar o bloco residual no domínio de transformada para reduzir a quantidade de dados a serem transmitidos (compressão), enquanto no decodificador, o processamento inverso em comparação com o codificador é aplicado ao bloco codificado ou comprimido para reconstruir o bloco atual para representação. Além disso, o codificador duplica o loop de processamento de decodificador de modo que ambos irão gerar predições idênticas (por exemplo, predições intra e inter) e/ou reconstruções para processamento, ou seja, codificação dos blocos subsequentes.[0106] Various video coding standards belong to the group of “lossy hybrid video codecs” (i.e., combine spatial and temporal prediction in the sample domain and 2D transform coding to apply quantization in the transform domain). Each image in a video sequence is typically partitioned into a set of non-overlapping blocks, and encoding is typically performed at a block level. In other words, in the encoder, the video is typically processed, i.e. encoded, at a block level (video block), for example, by using spatial prediction (intra image) and/or temporal prediction (inter image) to generate a prediction block, subtract the prediction block from the current block (block currently processed/to be processed) to obtain a residual block, transform the residual block and quantize the residual block in the transform domain to reduce the amount of data to be transmitted (compression), while in the decoder, inverse processing compared to the encoder is applied to the encoded or compressed block to reconstruct the current block for representation. Furthermore, the encoder duplicates the decoder processing loop so that both will generate identical predictions (e.g., intra- and inter-predictions) and/or reconstructions for processing, i.e., coding of subsequent blocks.

[0107] Nas seguintes modalidades de um sistema de codificação de vídeo 10, um codificador de vídeo 20 e um decodificador de vídeo 30 são descritos com base nas Figuras 1 a 3.[0107] In the following embodiments of a video coding system 10, a video encoder 20 and a video decoder 30 are described based on Figures 1 to 3.

[0108] A Figura 1A é um diagrama de blocos esquemático ilustrando um sistema de codificação de exemplo 10, por exemplo, um sistema de codificação de vídeo 10 (ou sistema de codificação 10 para abreviar) que pode utilizar técnicas do presente pedido. O codificador de vídeo 20 (ou codificador 20 para abreviar) e o decodificador de vídeo 30 (ou decodificador 30 para abreviar) do sistema de codificação de vídeo 10 representam exemplos de dispositivos que podem ser configurados para realizar técnicas de acordo com vários exemplos descritos no presente pedido.[0108] Figure 1A is a schematic block diagram illustrating an example coding system 10, for example, a video coding system 10 (or coding system 10 for short) that may utilize techniques of the present application. The video encoder 20 (or encoder 20 for short) and the video decoder 30 (or decoder 30 for short) of the video coding system 10 represent examples of devices that can be configured to perform techniques in accordance with various examples described in this request.

[0109] Como mostrado na Figura 1A, o sistema de codificação 10 compreende um dispositivo de origem 12 configurado para fornecer dados de imagem codificados 21, por exemplo, para um dispositivo de destino 14 para decodificar os dados de imagem codificados 13.[0109] As shown in Figure 1A, the encoding system 10 comprises a source device 12 configured to provide encoded image data 21, for example, to a destination device 14 for decoding the encoded image data 13.

[0110] O dispositivo de origem 12 pode compreender um codificador 20 e pode, adicionalmente, isto é, opcionalmente, compreender uma fonte de imagem 16, um pré-processador (ou unidade de pré-processamento) 18, por exemplo, um pré-processador de imagem 18, e uma interface de comunicação ou unidade de comunicação 22.[0110] The source device 12 may comprise an encoder 20 and may additionally, i.e. optionally, comprise an image source 16, a preprocessor (or preprocessing unit) 18, e.g. image processor 18, and a communication interface or communication unit 22.

[0111] A fonte de imagem 16 pode compreender ou ser qualquer tipo de dispositivo de captura de imagem, por exemplo, uma câmera para capturar uma imagem do mundo real e/ou qualquer tipo de um dispositivo de geração de imagem, por exemplo, um processador gráfico de computador para gerar uma imagem animada por computador, ou qualquer tipo de outro dispositivo para obter e/ou fornecer uma imagem do mundo real, uma imagem gerada por computador (por exemplo, um conteúdo de tela, uma imagem de realidade virtual (VR)) e/ou qualquer combinação dos mesmos (por exemplo, uma imagem de realidade aumentada (AR)). A fonte de imagem pode ser qualquer tipo de memória ou armazenamento armazenando qualquer uma das imagens acima mencionadas.[0111] The image source 16 may comprise or be any type of image capturing device, e.g., a camera for capturing a real-world image and/or any type of an imaging device, e.g., a computer graphics processor to generate a computer-animated image, or any type of other device to obtain and/or provide a real-world image, a computer-generated image (e.g., a screen content, a virtual reality image ( VR)) and/or any combination thereof (e.g. an augmented reality (AR) image). The image source can be any type of memory or storage storing any of the above-mentioned images.

[0112] Em distinção ao pré-processador 18 e ao processamento realizado pela unidade de pré-processamento 18, a imagem ou dados de imagem 17 também podem ser referidos como imagem bruta ou dados de imagem brutos 17.[0112] In distinction to the preprocessor 18 and the processing performed by the preprocessing unit 18, the image or image data 17 may also be referred to as the raw image or raw image data 17.

[0113] O pré-processador 18 pode ser configurador para receber os dados de imagem (brutos) 17 e para realizar o pré-processamento nos dados de imagem 17 para obter uma imagem pré-processada 19 ou dados de imagem pré- processados 19. Pré-processamento realizado pelo pré-processador 18 pode, por exemplo, compreender recorte, conversão de formato de cor (por exemplo, de RGB para YCbCr), correção de cor, ou eliminação de ruído. Pode ser entendido que a unidade de pré-processamento 18 pode ser componente opcional.[0113] The preprocessor 18 may be configurable to receive the (raw) image data 17 and to perform preprocessing on the image data 17 to obtain a preprocessed image 19 or preprocessed image data 19. Preprocessing performed by preprocessor 18 may, for example, comprise cropping, color format conversion (e.g., from RGB to YCbCr), color correction, or noise elimination. It can be understood that the preprocessing unit 18 can be an optional component.

[0114] O codificador de vídeo 20 pode ser configurado para receber os dados de imagem pré-processados 19 e fornecer dados de imagem codificados 21 (mais detalhes serão descritos abaixo, por exemplo, com base na Figura 2).[0114] The video encoder 20 may be configured to receive the preprocessed image data 19 and provide encoded image data 21 (more details will be described below, for example, based on Figure 2).

[0115] Interface de comunicação 22 do dispositivo de origem 12 pode ser configurada para receber os dados de imagem codificados 21 e para transmitir os dados de imagem codificados 21 (ou qualquer versão processada adicional dos mesmos) através do canal de comunicação 13 para outro dispositivo, por exemplo, o dispositivo de destino 14 ou qualquer outro dispositivo, para armazenamento ou reconstrução direta.[0115] Communication interface 22 of the source device 12 may be configured to receive the encoded image data 21 and to transmit the encoded image data 21 (or any further processed version thereof) over the communication channel 13 to another device , for example, the target device 14 or any other device, for storage or direct reconstruction.

[0116] O dispositivo de destino 14 pode compreender um decodificador 30 (por exemplo, um decodificador de vídeo 30) e pode, adicionalmente, isto é, opcionalmente, compreender uma interface de comunicação ou unidade de comunicação 28, um pós-processador 32 (ou unidade de pós-processamento 32) e um dispositivo de exibição 34.[0116] The target device 14 may comprise a decoder 30 (e.g., a video decoder 30) and may additionally, i.e. optionally, comprise a communication interface or communication unit 28, a post-processor 32 ( or post-processing unit 32) and a display device 34.

[0117] A interface de comunicação 28 do dispositivo de destino 14 pode ser configurada para receber os dados de imagem codificados 21 (ou qualquer versão processada adicional dos mesmos), por exemplo, diretamente a partir do dispositivo de origem 12 ou a partir de qualquer outra fonte, por exemplo, um dispositivo de armazenamento, por exemplo, um dispositivo de armazenamento de dados de imagem codificados, e fornecer os dados de imagem codificados 21 para o decodificador 30.[0117] The communication interface 28 of the destination device 14 may be configured to receive the encoded image data 21 (or any further processed version thereof), for example, directly from the source device 12 or from any another source, e.g., a storage device, e.g., an encoded image data storage device, and providing the encoded image data 21 to the decoder 30.

[0118] A interface de comunicação 22 e a interface de comunicação 28 podem ser configuradas para transmitir ou receber os dados de imagem codificados 21 ou dados codificados 13 através de um enlace de comunicação direto entre o dispositivo de origem 12 e o dispositivo de destino 14, por exemplo, uma conexão direta com ou sem fio, ou através de qualquer tipo de rede, por exemplo, uma rede com fio ou sem fio ou qualquer combinação delas, ou qualquer tipo de rede privada e pública, ou qualquer tipo de combinação das mesmas.[0118] The communication interface 22 and the communication interface 28 may be configured to transmit or receive the encoded image data 21 or encoded data 13 via a direct communication link between the source device 12 and the destination device 14 , for example, a direct wired or wireless connection, or through any type of network, for example, a wired or wireless network or any combination thereof, or any type of private and public network, or any type of combination thereof same.

[0119] A interface de comunicação 22 pode ser, por exemplo, configurada para empacotar os dados de imagem codificados 21 em um formato apropriado, por exemplo, pacotes, e/ou processar os dados de imagem codificados usando qualquer tipo de codificação ou processamento de transmissão para transmissão através de um enlace de comunicação ou rede de comunicação.[0119] Communication interface 22 may be, for example, configured to package the encoded image data 21 into an appropriate format, e.g. packets, and/or process the encoded image data using any type of encoding or processing. transmission for transmission over a communications link or communications network.

[0120] A interface de comunicação 28, formando a contraparte da interface de comunicação 22, pode ser, por exemplo, configurada para receber os dados transmitidos e processar os dados de transmissão usando qualquer tipo de decodificação ou processamento e/ou desempacotamento de transmissão correspondente para obter os dados de imagem codificados 21.[0120] The communication interface 28, forming the counterpart of the communication interface 22, may be, for example, configured to receive the transmitted data and process the transmission data using any type of decoding or processing and/or corresponding transmission unpacking to obtain the encoded image data 21.

[0121] Tanto, ou pelo menos uma de, a interface de comunicação 22 quanto a interface de comunicação 28 podem ser configuradas como interfaces de comunicação unidirecionais, conforme indicado pela seta para o canal de comunicação 13 na Figura 1A apontando a partir do dispositivo de origem 12 para o dispositivo de destino 14, ou como interfaces de comunicação bidirecionais, e podem ser configuradas, por exemplo, para enviar e receber mensagens, por exemplo, para configurar uma conexão, para reconhecer e trocar qualquer outras informações relacionadas ao enlace de comunicação e/ou transmissão de dados, por exemplo, transmissão de dados de imagem codificada.[0121] Both, or at least one of, the communication interface 22 and the communication interface 28 can be configured as unidirectional communication interfaces, as indicated by the arrow for communication channel 13 in Figure 1A pointing from the communication device. source 12 to destination device 14, or as bidirectional communication interfaces, and may be configured, for example, to send and receive messages, for example, to configure a connection, to recognize and exchange any other information related to the communication link and/or data transmission, for example, transmission of encoded image data.

[0122] O decodificador 30 pode ser configurado para receber os dados de imagem codificados 21 e fornecer dados de imagem decodificados 31 ou uma imagem decodificada 31 (mais detalhes serão descritos abaixo, por exemplo, com base na Figura 3 ou Figura 5).[0122] The decoder 30 may be configured to receive the encoded image data 21 and provide decoded image data 31 or a decoded image 31 (more details will be described below, for example, based on Figure 3 or Figure 5).

[0123] O pós-processador 32 do dispositivo de destino 14 pode ser configurado para pós-processar os dados de imagem decodificados 31 (também chamados de dados de imagem reconstruídos), por exemplo, a imagem decodificada 31, para obter dados de imagem pós-processados 33, por exemplo, uma imagem pós-processada 33. O pós-processamento realizado pela unidade de pós-processamento 32 pode compreender, por exemplo, conversão de formato de cor (por exemplo, de YCbCr para RGB), correção de cor, recorte, ou reamostragem, ou qualquer outro processamento, por exemplo, para preparar os dados de imagem decodificados 31 para exibição, por exemplo, pelo dispositivo de exibição 34.[0123] The post-processor 32 of the target device 14 may be configured to post-process the decoded image data 31 (also called reconstructed image data), e.g., the decoded image 31, to obtain post-image data. -processed 33, for example, a post-processed image 33. The post-processing performed by the post-processing unit 32 may comprise, for example, color format conversion (e.g., from YCbCr to RGB), color correction , cropping, or resampling, or any other processing, for example, to prepare the decoded image data 31 for display, for example, by the display device 34.

[0124] O dispositivo de exibição 34 do dispositivo de destino 14 pode ser configurado para receber os dados de imagem pós-processados 33 para exibir a imagem, por exemplo, para um usuário ou visualizador. O dispositivo de exibição 34 pode ser ou compreender qualquer tipo de exibição para representar a imagem reconstruída, por exemplo, uma exibição ou monitor integrado ou externo. As exibições podem, por exemplo, compreender exibições de cristal líquido (LCD), exibições de diodos emissores de luz orgânica (OLED), exibições de plasma, projetores, exibições de microLED, cristal líquido em silício (LCoS), processador de luz digital (DLP) ou qualquer outro tipo de exibição.[0124] The display device 34 of the target device 14 may be configured to receive the post-processed image data 33 to display the image, for example, to a user or viewer. The display device 34 may be or comprise any type of display for representing the reconstructed image, e.g., an integrated or external display or monitor. The displays may, for example, comprise liquid crystal displays (LCD), organic light emitting diode (OLED) displays, plasma displays, projectors, microLED displays, liquid crystal on silicon (LCoS), digital light processor ( DLP) or any other type of display.

[0125] Embora a Figura 1A represente o dispositivo de origem 12 e o dispositivo de destino 14 como dispositivos separados, modalidades de dispositivos também podem compreender ambos ou ambas as funcionalidades, o dispositivo de origem 12 ou funcionalidade correspondente e o dispositivo de destino 14 ou funcionalidade correspondente. Em tais modalidades, o dispositivo de origem 12 ou a funcionalidade correspondente e o dispositivo de destino 14 ou a funcionalidade correspondente podem ser implementados usando o mesmo hardware e/ou software ou por hardware e/ou software separado ou qualquer combinação dos mesmos.[0125] Although Figure 1A depicts the source device 12 and the destination device 14 as separate devices, device embodiments may also comprise both or both functionality, the source device 12 or corresponding functionality and the destination device 14 or corresponding functionality. In such embodiments, the source device 12 or corresponding functionality and the target device 14 or corresponding functionality may be implemented using the same hardware and/or software or by separate hardware and/or software or any combination thereof.

[0126] O dispositivo de origem e/ou o dispositivo de destino podem ainda ser implementados usando hardware e/ou software dedicado. Por exemplo, um ou ambos desses dispositivos podem ser implementados usando hardware especificamente projetado para realizar uma ou mais das funcionalidades mencionadas acima e abaixo. Alternativamente ou adicionalmente, uma ou mais das funcionalidades descritas acima e abaixo podem ser implementadas usando software especificamente projetado que pode ser rodado em hardware de propósito geral, como processadores. Além disso, combinações do acima também são previstas, em que o dispositivo de origem e/ou o dispositivo de destino podem ser implementados usando uma combinação de hardware especificamente dedicado para realizar uma ou mais funcionalidades e software para realizar uma ou mais outras funcionalidades.[0126] The source device and/or target device may further be implemented using dedicated hardware and/or software. For example, one or both of these devices may be implemented using hardware specifically designed to perform one or more of the functionalities mentioned above and below. Alternatively or additionally, one or more of the functionalities described above and below may be implemented using specifically designed software that can run on general purpose hardware, such as processors. Furthermore, combinations of the above are also envisioned, wherein the source device and/or the target device may be implemented using a combination of hardware specifically dedicated to performing one or more functionalities and software to performing one or more other functionalities.

[0127] Como será evidente para a pessoa versada com base na descrição, a existência e divisão (exata) de funcionalidades das diferentes unidades ou funcionalidades dentro do dispositivo de origem 12 e/ou dispositivo de destino 14, como mostrado na Figura 1A, podem variar dependendo do dispositivo e aplicação reais.[0127] As will be apparent to the skilled person based on the description, the existence and (exact) division of functionalities of the different units or functionalities within the source device 12 and/or target device 14, as shown in Figure 1A, may vary depending on the actual device and application.

[0128] O codificador 20 (por exemplo, um codificador de vídeo 20) ou o decodificador 30 (por exemplo, um decodificador de vídeo 30) ou ambos, o codificador 20 e o decodificador 30 podem ser implementados por meio de circuitos de processamento como mostrado na Figura 1B, como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de portas programáveis em campo (FPGAs), lógica discreta, hardware, codificação de vídeo dedicada ou qualquer combinação dos mesmos. O codificador 20 pode ser implementado através dos circuitos de processamento 46 para incorporar os vários módulos, conforme discutido em relação ao codificador 20 da Figura 2 e/ou qualquer outro sistema ou subsistema de codificador descrito neste documento. O decodificador 30 pode ser implementado através dos circuitos de processamento 46 para incorporar os vários módulos, conforme discutido em relação ao decodificador 30 da Figura 3 e/ou qualquer outro sistema ou subsistema de decodificador descrito neste documento. Os circuitos de processamento podem ser configurados para realizar as várias operações, conforme discutido mais tarde. Conforme mostrado na Figura 5, se as técnicas são implementadas parcialmente em software, um dispositivo pode armazenar instruções para o software em uma mídia de armazenamento legível por computador não transitória adequada e pode executar as instruções em hardware usando um ou mais processadores para realizar as técnicas desta revelação. Qualquer de codificador de vídeo 20 e decodificador de vídeo 30 pode ser integrado como parte de um codificador / decodificador combinado (CODEC) em um único dispositivo, por exemplo, como mostrado na Figura 1B.[0128] Encoder 20 (e.g., a video encoder 20) or decoder 30 (e.g., a video decoder 30) or both, encoder 20 and decoder 30 may be implemented through processing circuits such as shown in Figure 1B, such as one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, hardware, dedicated video coding, or any combination of the same. Encoder 20 may be implemented through processing circuitry 46 to incorporate the various modules as discussed in connection with encoder 20 of Figure 2 and/or any other encoder system or subsystem described herein. Decoder 30 may be implemented through processing circuitry 46 to incorporate the various modules as discussed with respect to decoder 30 of Figure 3 and/or any other decoder system or subsystem described herein. The processing circuits can be configured to perform the various operations, as discussed later. As shown in Figure 5, if the techniques are implemented partially in software, a device may store instructions for the software on a suitable non-transitory computer-readable storage medium and may execute the instructions in hardware using one or more processors to perform the techniques. of this revelation. Any of video encoder 20 and video decoder 30 may be integrated as part of a combined encoder/decoder (CODEC) in a single device, for example, as shown in Figure 1B.

[0129] O dispositivo de origem 12 e o dispositivo de destino 14 podem compreender qualquer um de uma ampla gama de dispositivos, incluindo qualquer tipo de dispositivos portáteis ou estacionários, por exemplo, computadores notebooks ou laptops, telefones móveis, smartphones, tablets ou computadores tablets, câmeras, computadores de mesa, decodificadores, televisores, dispositivos de exibição, reprodutores de mídia digital, consoles de videogame, dispositivos de streaming de vídeo (como servidores de serviços de conteúdo ou servidores de entrega de conteúdo), dispositivo receptor de broadcast, dispositivo transmissor de broadcast, ou semelhantes e podem usar nenhum ou qualquer tipo de sistema operacional. Em alguns casos, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio. Assim, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser dispositivos de comunicação sem fio.[0129] The source device 12 and the target device 14 may comprise any of a wide range of devices, including any type of portable or stationary devices, e.g., notebook or laptop computers, mobile phones, smartphones, tablets or computers tablets, cameras, desktop computers, set-top boxes, televisions, display devices, digital media players, video game consoles, video streaming devices (such as content services servers or content delivery servers), broadcast receiving device, broadcast transmitting device, or similar and may use no or any type of operating system. In some cases, the source device 12 and the destination device 14 may be equipped for wireless communication. Thus, the source device 12 and the destination device 14 may be wireless communication devices.

[0130] Em alguns casos, o sistema de codificação de vídeo 10 ilustrado na Figura 1A é apenas um exemplo e as técnicas do presente pedido podem ser aplicadas a definições de codificação de vídeo (por exemplo, codificação de vídeo ou decodificação de vídeo) que não incluem necessariamente qualquer comunicação de dados entre os dispositivos de codificação e de decodificação. Em outros exemplos, os dados são recuperados de uma memória local, transmitidos em fluxo contínuo por uma rede ou semelhantes. Um dispositivo de codificação de vídeo pode codificar e armazenar dados para memória, e/ou um dispositivo de decodificação de vídeo pode recuperar e decodificar dados da memória. Em alguns exemplos, a codificação e decodificação são realizadas por dispositivos que não se comunicam entre si, mas simplesmente codificam dados para a memória e/ou recuperam e decodificam dados a partir da memória.[0130] In some cases, the video coding system 10 illustrated in Figure 1A is only an example and the techniques of the present application can be applied to video coding settings (e.g., video encoding or video decoding) that do not necessarily include any data communication between the encoding and decoding devices. In other examples, data is retrieved from local memory, streamed over a network, or the like. A video encoding device may encode and store data to memory, and/or a video decoding device may retrieve and decode data from memory. In some examples, encoding and decoding are performed by devices that do not communicate with each other, but simply encode data into memory and/or retrieve and decode data from memory.

[0131] Por conveniência de descrição, modalidades da invenção são descritas neste documento, por exemplo, por referência à Codificação de Vídeo de Alta Eficiência (HEVC) ou ao software de referência de Codificação de Vídeo Versátil (VVC), o padrão de codificação de vídeo de próxima geração desenvolvido pela Equipe de Colaboração Conjunta em codificação de vídeo (JCT-VC) do Grupo de Especialistas de Codificação de Vídeo (VCEG) ITU-T e Grupo de Especialistas de Figura em Movimento (MPEG) ISO / IEC. Uma pessoa versada na técnica entenderá que as modalidades da revelação não estão limitadas a HEVC ou VVC.[0131] For convenience of description, embodiments of the invention are described herein, for example, by reference to High Efficiency Video Coding (HEVC) or the Versatile Video Coding (VVC) reference software, the next generation video developed by the Joint Video Coding Collaboration Team (JCT-VC) of the ITU-T Video Coding Specialist Group (VCEG) and ISO/IEC Moving Figure Specialist Group (MPEG). A person skilled in the art will understand that the embodiments of disclosure are not limited to HEVC or VVC.

Codificador e Método de CodificaçãoEncoder and Coding Method

[0132] A Figura 2 mostra um diagrama de blocos esquemático de um codificador de vídeo de exemplo 20 que pode ser configurado para implementar as técnicas da presente revelação. No exemplo da Figura 2, o codificador de vídeo 20 compreende uma entrada 201 (ou interface de entrada 201), uma unidade de cálculo residual 204, uma unidade de processamento de transformada 206, uma unidade de quantização 208, uma unidade de quantização inversa 210 e unidade de processamento de transformada inversa 212, uma unidade de reconstrução 214, uma unidade de filtro loop 220, um buffer de imagem decodificada (DPB) 230, uma unidade de seleção de modo 260, uma unidade de codificação de entropia 270 e uma saída 272 (ou interface de saída 272). A unidade de seleção de modo 260 pode incluir uma unidade de predição intra 244, uma unidade de predição intra 254 e uma unidade de particionamento 262. A unidade de predição intra 244 pode incluir uma unidade de estimativa de movimento e uma unidade de compensação de movimento (não mostrada). Um codificador de vídeo 20, como mostrado na Figura 2, também pode ser referido como um codificador de vídeo híbrido ou um codificador de vídeo de acordo com um codec de vídeo híbrido.[0132] Figure 2 shows a schematic block diagram of an example video encoder 20 that can be configured to implement the techniques of the present disclosure. In the example of Figure 2, the video encoder 20 comprises an input 201 (or input interface 201), a residual calculation unit 204, a transform processing unit 206, a quantization unit 208, an inverse quantization unit 210 and inverse transform processing unit 212, a reconstruction unit 214, a loop filter unit 220, a decoded picture buffer (DPB) 230, a mode selection unit 260, an entropy coding unit 270, and an output 272 (or 272 output interface). The mode selection unit 260 may include an intra prediction unit 244, an intra prediction unit 254, and a partitioning unit 262. The intra prediction unit 244 may include a motion estimation unit and a motion compensation unit. (not shown). A video encoder 20, as shown in Figure 2, may also be referred to as a hybrid video encoder or a video encoder according to a hybrid video codec.

[0133] A unidade de cálculo residual 204, a unidade de processamento de transformada 206, a unidade de quantização 208, e a unidade de seleção de modo 260 podem ser referidas como formando um percurso de sinal direto do codificador 20, enquanto a unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o buffer 216, o filtro loop 220, o buffer de imagem decodificada (DPB) 230, a unidade de predição inter 244 e a unidade de predição intra 254 podem ser referidos como formando um percurso de sinal inverso do codificador de vídeo 20, em que o percurso de sinal inverso do codificador de vídeo 20 corresponde ao percurso de sinal do decodificador (ver o decodificador de vídeo 30 na Figura 3). A unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o filtro loop 220, o buffer de imagem decodificada (DPB) 230, a unidade de predição inter 244 e a unidade de predição intra 254 também são referidos para formar o “decodificador embutido” do codificador de vídeo 20. Imagens e particionamento de imagem (Imagens e blocos)[0133] The residual calculation unit 204, the transform processing unit 206, the quantization unit 208, and the mode selection unit 260 may be referred to as forming a direct signal path of the encoder 20, while the inverse quantization 210, the inverse transform processing unit 212, the reconstruction unit 214, the buffer 216, the loop filter 220, the decoded picture buffer (DPB) 230, the inter prediction unit 244, and the intra prediction unit 254 may be referred to as forming a reverse signal path of the video encoder 20, wherein the reverse signal path of the video encoder 20 corresponds to the signal path of the decoder (see video decoder 30 in Figure 3). The inverse quantization unit 210, the inverse transform processing unit 212, the reconstruction unit 214, the loop filter 220, the decoded picture buffer (DPB) 230, the inter prediction unit 244, and the intra prediction unit 254 are also referred to to form the “built-in decoder” of the video encoder 20. Images and Image Partitioning (Images and Blocks)

[0134] O codificador 20 pode ser configurado para receber, por exemplo, através da entrada 201, uma imagem 17 (ou dados de imagem 17), por exemplo, imagem de uma sequência de imagens formando um vídeo ou sequência de vídeo. A imagem ou dados de imagem recebidos também podem ser uma imagem pré-processada 19 (ou dados de imagem pré-processados 19). Por razões de simplicidade, a seguinte descrição refere-se à imagem 17. A imagem 17 também pode ser referida como imagem atual ou imagem a ser codificada (em particular na codificação de vídeo para distinguir a imagem atual de outras imagens, por exemplo, imagens previamente codificadas e/ou decodificadas da mesma sequência de vídeo, ou seja, a sequência de vídeo que também inclui a imagem atual).[0134] The encoder 20 can be configured to receive, for example, through input 201, an image 17 (or image data 17), for example, an image of a sequence of images forming a video or video sequence. The received image or image data may also be a preprocessed image 19 (or preprocessed image data 19). For simplicity, the following description refers to image 17. Image 17 may also be referred to as the current image or image to be encoded (in particular in video coding to distinguish the current image from other images, e.g. images previously encoded and/or decoded from the same video sequence, i.e. the video sequence that also includes the current image).

[0135] Uma imagem (digital) é ou pode ser considerada como um arranjo ou matriz bidimensional de amostras com valores de intensidade. Uma amostra no arranjo também pode ser referida como pixel (forma abreviada de elemento de imagem) ou pel. O número de amostras em direção horizontal e vertical (ou eixo) do arranjo ou imagem define o tamanho e/ou resolução da imagem. Para a representação da cor, normalmente três componentes de cor são empregados, ou seja, a imagem pode ser representada como ou incluir três arranjos de amostra. No formato ou espaço de cor RBG, uma imagem compreende um arranjo de amostra vermelha, verde e azul correspondente. No entanto, na codificação de vídeo, cada pixel é tipicamente representado em um formato ou espaço de cor de luminância e crominância, por exemplo, YCbCr, que compreende um componente de luminância indicado por Y (às vezes também L é usado no lugar) e dois componentes de crominância indicados por Cb e Cr. O componente de luminância (ou luma para abreviar) Y representa o brilho ou intensidade de nível de cinza (por exemplo, como em uma imagem em escala de cinza), enquanto os dois componentes de crominância (ou croma para abreviar) Cb e Cr representam a cromaticidade ou componentes de informações de cor. Consequentemente, uma imagem no formato YCbCr compreende um arranjo de amostra de luminância de valores de amostra de luminância (Y) e dois arranjos de amostra de crominância de valores de crominância (Cb e Cr). As imagens no formato RGB podem ser convertidas ou transformadas no formato YCbCr e vice-versa, o processo também é conhecido como transformação ou conversão de cores. Se uma imagem for monocromática, a imagem pode compreender apenas um arranjo de amostra de luminância. Consequentemente, uma imagem pode ser, por exemplo, um arranjo de amostra de luma em formato monocromático ou um arranjo de amostra de luma e dois arranjos correspondentes de amostras de croma em formato de cor 4: 2: 0, 4: 2: 2 e 4: 4: 4.[0135] A (digital) image is or can be considered as a two-dimensional array or matrix of samples with intensity values. A sample in the array may also be referred to as a pixel (short for picture element) or pel. The number of samples in the horizontal and vertical direction (or axis) of the array or image defines the size and/or resolution of the image. For color representation, three color components are typically employed, i.e., the image can be represented as or include three sample arrangements. In the RBG format or color space, an image comprises an arrangement of corresponding red, green, and blue samples. However, in video coding, each pixel is typically represented in a luminance and chrominance format or color space, e.g. YCbCr, which comprises a luminance component denoted by Y (sometimes also L is used instead) and two chrominance components indicated by Cb and Cr. The luminance component (or luma for short) Y represents the brightness or gray level intensity (e.g. as in a grayscale image), while the two chrominance components (or chroma for short) Cb and Cr represent the chromaticity or components of color information. Consequently, an image in YCbCr format comprises one luminance sample array of luminance sample values (Y) and two chrominance sample arrays of chrominance values (Cb and Cr). Images in RGB format can be converted or transformed into YCbCr format and vice versa, the process is also known as color transformation or conversion. If an image is monochromatic, the image may comprise only one luminance sample array. Consequently, an image can be, for example, a luma sample array in monochrome format or a luma sample array and two corresponding chroma sample arrays in color format 4:2:0, 4:2:2 and 4:4:4.

[0136] Modalidades do codificador de vídeo 20 podem compreender uma unidade de particionamento de imagem (não representada na Figura 2) configurada para particionar a imagem 17 em uma pluralidade de blocos de imagem 203 (normalmente não sobrepostos). Esses blocos também podem ser referidos como blocos raiz, macroblocos (H.264 / AVC) ou blocos de árvore de codificação (CTB) ou unidades de árvore de codificação (CTU) (H.265 / HEVC e VVC). A unidade de particionamento de imagem pode ser configurada para usar o mesmo tamanho de bloco para todas as imagens de uma sequência de vídeo e a grade correspondente definindo o tamanho do bloco, ou para alterar o tamanho do bloco entre imagens ou subconjuntos ou grupos de imagens, e particionar cada imagem nos blocos correspondentes.[0136] Embodiments of the video encoder 20 may comprise an image partitioning unit (not depicted in Figure 2) configured to partition the image 17 into a plurality of image blocks 203 (normally non-overlapping). These blocks may also be referred to as root blocks, macroblocks (H.264/AVC), or coding tree blocks (CTB) or coding tree units (CTU) (H.265/HEVC and VVC). The image partitioning unit can be configured to use the same block size for all images in a video sequence and the corresponding grid defining the block size, or to change the block size between images or subsets or groups of images , and partition each image into corresponding blocks.

[0137] Em modalidades adicionais, o codificador de vídeo pode ser configurado para receber diretamente um bloco 203 da imagem 17, por exemplo, um, vários ou todos os blocos que formam a imagem 17. O bloco de imagem 203 também pode ser referido como bloco de imagem atual ou bloco de imagem a ser codificado.[0137] In additional embodiments, the video encoder may be configured to directly receive a block 203 of image 17, e.g., one, several, or all of the blocks forming image 17. Image block 203 may also be referred to as current image block or image block to be encoded.

[0138] Como a imagem 17, o bloco de imagem 203, novamente, é ou pode ser considerado como um arranjo ou matriz bidimensional de amostras com valores de intensidade (valores de amostra), embora de menor dimensão do que a imagem 17. Em outras palavras, o bloco 203 pode compreender, por exemplo, um arranjo de amostra (por exemplo, um arranjo luma no caso de uma imagem monocromática 17, ou um arranjo luma ou croma no caso de uma imagem colorida) ou três arranjos de amostra (por exemplo, um arranjo luma e dois croma no caso de uma imagem colorida 17) ou qualquer outro número e/ou tipo de arranjos dependendo do formato de cor aplicado. O número de amostras em direção horizontal e vertical (ou eixo) do bloco 203 define o tamanho de bloco 203. Por conseguinte, um bloco pode, por exemplo, um arranjo MxN (M colunas por N linhas) de amostras, ou um arranjo MxN de coeficientes de transformada.[0138] Like image 17, image block 203, again, is or may be considered as a two-dimensional array or array of samples with intensity values (sample values), albeit of smaller dimension than image 17. In In other words, block 203 may comprise, for example, a sample array (e.g., a luma array in the case of a monochrome image 17, or a luma or chroma array in the case of a color image) or three sample arrays ( for example, one luma and two chroma array in the case of a color image 17) or any other number and/or type of arrays depending on the color format applied. The number of samples in horizontal and vertical direction (or axis) of block 203 defines the size of block 203. Therefore, a block may, for example, be an MxN (M columns by N rows) array of samples, or an MxN array of transform coefficients.

[0139] Modalidades do codificador de vídeo 20, conforme mostrado na Figura 2, podem ser configuradas para codificar a imagem 17 bloco a bloco, por exemplo, a codificação e a predição são realizadas por bloco 203.[0139] Embodiments of the video encoder 20, as shown in Figure 2, can be configured to encode the image 17 block by block, for example, coding and prediction are performed per block 203.

[0140] Modalidades do codificador de vídeo 20, conforme mostrado na Figura 2, podem ser adicionalmente configuradas para particionar e/ou codificar a imagem usando fatias (também chamadas de fatias de vídeo), em que uma imagem pode ser particionada ou codificada usando uma ou mais fatias (normalmente sem sobreposição), e cada fatia pode compreender um ou mais blocos (por exemplo, CTUs) ou um ou mais grupos de blocos (por exemplo, tiles (H.265/HEVC e VVC) ou bricks (VVC)).[0140] Embodiments of the video encoder 20, as shown in Figure 2, may be further configured to partition and/or encode the image using slices (also called video slices), wherein an image may be partitioned or encoded using a or more slices (typically non-overlapping), and each slice may comprise one or more blocks (e.g., CTUs) or one or more groups of blocks (e.g., tiles (H.265/HEVC and VVC) or bricks (VVC) ).

[0141] Modalidades do codificador de vídeo 20, como mostrado na Figura 2, podem ser adicionalmente configuradas para particionar e/ou codificar a imagem usando grupos de fatias/tiles (também referidos como grupos de tiles de vídeo) e/ou tiles (também referidos como tiles de vídeo), em que uma imagem pode ser particionada ou codificada usando um ou mais grupos de fatias/tiles (normalmente não sobrepostos), e cada grupo de fatias/tiles pode compreender, por exemplo, um ou mais blocos (por exemplo, CTUs) ou uma ou mais tiles, em que cada tile, por exemplo, pode ter forma retangular e pode compreender um ou mais blocos (por exemplo, CTUs), por exemplo, blocos completos ou fracionários.[0141] Embodiments of the video encoder 20, as shown in Figure 2, may be further configured to partition and/or encode the image using groups of slices/tiles (also referred to as groups of video tiles) and/or tiles (also referred to as referred to as video tiles), wherein an image may be partitioned or encoded using one or more groups of slices/tiles (typically non-overlapping), and each group of slices/tiles may comprise, for example, one or more blocks (e.g. e.g., CTUs) or one or more tiles, wherein each tile, for example, may be rectangular in shape and may comprise one or more blocks (e.g., CTUs), e.g., full or fractional blocks.

Cálculo ResidualResidual Calculation

[0142] A unidade de cálculo residual 204 pode ser configurada para calcular um bloco residual 205 (também referido como residual 205) com base no bloco de imagem 203 e um bloco de predição 265 (detalhes adicionais sobre o bloco de predição 265 são fornecidos posteriormente), por exemplo, subtraindo valores de amostra do bloco de predição 265 a partir de valores de amostra do bloco de imagem 203, amostra por amostra (pixel por pixel) para obter o bloco residual 205 no domínio de amostra.[0142] The residual calculation unit 204 may be configured to calculate a residual block 205 (also referred to as residual 205) based on the image block 203 and a prediction block 265 (additional details about the prediction block 265 are provided later ), for example, subtracting sample values from the prediction block 265 from sample values from the image block 203, sample by sample (pixel by pixel) to obtain the residual block 205 in the sample domain.

TransformadaTransformed

[0143] A unidade de processamento de transformada 206 pode ser configurada para aplicar uma transformada, por exemplo, uma transformada de cosseno discreta (DCT) ou transformada de seno discreta (DST), nos valores de amostra do bloco residual 205 para obter coeficientes de transformada 207 em um domínio de transformada. Os coeficientes de transformada 207 também podem ser referidos como coeficientes residuais de transformada e representam o bloco residual 205 no domínio de transformada.[0143] The transform processing unit 206 may be configured to apply a transform, e.g., a discrete cosine transform (DCT) or discrete sine transform (DST), to the sample values of the residual block 205 to obtain coefficients of transform 207 into a transform domain. Transform coefficients 207 may also be referred to as transform residual coefficients and represent the residual block 205 in the transform domain.

[0144] A unidade de processamento de transformada 206 pode ser configurada para aplicar aproximações inteiras de DCT / DST, como as transformadas especificadas para H.265 / HEVC. Comparado a uma transforma de DCT ortogonal, tais aproximações inteiras são tipicamente escaladas por um determinado fator. A fim de preservar a norma do bloco residual que é processado pelas transformadas direta e inversa, fatores de escalonamento adicionais são aplicados como parte do processo de transformada. Os fatores de escalonamento são normalmente escolhidos com base em certas restrições, como fatores de escalonamento sendo uma potência de dois para operações de deslocamento, profundidade de bits dos coeficientes de transformada, compensação entre precisão e custos de implementação, etc. Fatores de escalonamento específicos são, por exemplo, especificados para a transformada inversa, por exemplo, pela unidade de processamento de transformada inversa 212 (e a transformada inversa correspondente, por exemplo, pela unidade de processamento de transformada inversa 312 no decodificador de vídeo 30) e fatores de escalonamento correspondentes para a transformada direta, por exemplo, pela unidade de processamento de transformada 206, em um codificador 20 podem ser especificados em conformidade.[0144] The transform processing unit 206 can be configured to apply integer approximations of DCT/DST, such as the transforms specified for H.265/HEVC. Compared to an orthogonal DCT transform, such integer approximations are typically scaled by a certain factor. In order to preserve the norm of the residual block that is processed by the forward and inverse transforms, additional scaling factors are applied as part of the transform process. Scaling factors are typically chosen based on certain constraints, such as scaling factors being a power of two for shift operations, bit depth of transform coefficients, tradeoff between accuracy and implementation costs, etc. Specific scaling factors are, for example, specified for the inverse transform, for example, by the inverse transform processing unit 212 (and the corresponding inverse transform, for example, by the inverse transform processing unit 312 in the video decoder 30). and corresponding scaling factors for the direct transform, for example, by the transform processing unit 206, in an encoder 20 may be specified accordingly.

[0145] As modalidades do codificador de vídeo 20 (respectivamente, unidade de processamento de transformada 206) podem ser configuradas para emitir parâmetros de transformada, por exemplo, um tipo de transformada ou transformadas, por exemplo, diretamente ou codificados ou comprimidos através da unidade de codificação de entropia 270, de modo que, por exemplo, o decodificador de vídeo 30 pode receber e usar os parâmetros de transformada para decodificação.[0145] Embodiments of the video encoder 20 (respectively, transform processing unit 206) may be configured to output transform parameters, e.g., a type of transform or transforms, e.g., directly or encoded or compressed through the unit entropy coding 270, such that, for example, video decoder 30 can receive and use the transform parameters for decoding.

QuantizaçãoQuantization

[0146] A unidade de quantização 208 pode ser configurada para quantizar os coeficientes de transformada 207 para obter coeficientes quantizados 209, por exemplo, aplicando quantização escalar ou quantização vetorial. Os coeficientes quantizados 209 também podem ser referidos como coeficientes de transformada quantizados 209 ou coeficientes residuais quantizados 209.[0146] The quantization unit 208 can be configured to quantize the transform coefficients 207 to obtain quantized coefficients 209, for example, by applying scalar quantization or vector quantization. Quantized coefficients 209 may also be referred to as quantized transform coefficients 209 or quantized residual coefficients 209.

[0147] O processo de quantização pode reduzir a profundidade de bits associada a alguns ou todos os coeficientes de transformada 207. Por exemplo, um coeficiente de transformada de n bits pode ser arredondado para baixo para um coeficiente de transformada de m bits durante a quantização, em que n é maior do que m. O grau de quantização pode ser modificado ajustando um parâmetro de quantização (QP). Por exemplo, para a quantização escalar, escalonamento diferente pode ser aplicado para alcançar uma quantização mais fina ou mais grosseira. Tamanhos de etapa de quantização menores correspondem a quantização mais fina, enquanto tamanhos de etapa de quantização maiores correspondem a quantização mais grosseira. O tamanho de etapa de quantização aplicável pode ser indicado por um parâmetro de quantização (QP). O parâmetro de quantização pode, por exemplo, ser um índice para um conjunto predefinido de tamanhos de etapas de quantização aplicáveis. Por exemplo, pequenos parâmetros de quantização podem corresponder a quantização fina (tamanhos de etapas de quantização pequenos) e parâmetros de quantização grandes podem corresponder a quantização grosseira (tamanhos de etapas de quantização grandes) ou vice-versa. A quantização pode incluir a divisão por um tamanho de etapa de quantização e uma desquantização correspondente e/ou a desquantização inversa, por exemplo, por unidade de quantização inversa 210, pode incluir multiplicação pelo tamanho de etapa de quantização. As modalidades de acordo com alguns padrões, por exemplo, HEVC, podem ser configuradas para usar um parâmetro de quantização para determinar o tamanho de etapa de quantização. Geralmente, o tamanho de etapa de quantização pode ser calculado com base em um parâmetro de quantização usando uma aproximação de ponto fixo de uma equação incluindo divisão. Fatores de escalonamento adicionais podem ser introduzidos para quantização e desquantização para restaurar a norma do bloco residual, que pode ser modificada por causa do escalonamento usado na aproximação de ponto fixo da equação para o tamanho de etapa de quantização e parâmetro de quantização. Em uma implementação de exemplo, o escalonamento da transformada inversa e a desquantização podem ser combinados. Alternativamente, tabelas de quantização personalizadas podem ser usadas e sinalizadas a partir de um codificador para um decodificador, por exemplo, em um fluxo de bits. A quantização é uma operação com perdas, em que a perda aumenta com o aumento dos tamanhos das etapas de quantização.[0147] The quantization process may reduce the bit depth associated with some or all of the transform coefficients 207. For example, an n-bit transform coefficient may be rounded down to an m-bit transform coefficient during quantization , where n is greater than m. The degree of quantization can be modified by adjusting a quantization parameter (QP). For example, for scalar quantization, different scaling can be applied to achieve finer or coarser quantization. Smaller quantization step sizes correspond to finer quantization, while larger quantization step sizes correspond to coarser quantization. The applicable quantization step size can be indicated by a quantization parameter (QP). The quantization parameter may, for example, be an index for a predefined set of applicable quantization step sizes. For example, small quantization parameters may correspond to fine quantization (small quantization step sizes) and large quantization parameters may correspond to coarse quantization (large quantization step sizes) or vice versa. Quantization may include division by a quantization step size and a corresponding dequantization and/or inverse dequantization, e.g., by inverse quantization unit 210, may include multiplication by the quantization step size. Embodiments according to some standards, e.g., HEVC, may be configured to use a quantization parameter to determine the quantization step size. Generally, the quantization step size can be calculated based on a quantization parameter using a fixed-point approximation of an equation including division. Additional scaling factors can be introduced for quantization and dequantization to restore the residual block norm, which can be modified because of the scaling used in the fixed-point approximation of the equation for the quantization step size and quantization parameter. In an example implementation, inverse transform scaling and dequantization can be combined. Alternatively, custom quantization tables can be used and signaled from an encoder to a decoder, for example in a bitstream. Quantization is a lossy operation, where the loss increases with increasing quantization step sizes.

[0148] Modalidades do codificador de vídeo 20 (respectivamente, unidade de quantização 208) podem ser configuradas para emitir parâmetros de quantização (QP), por exemplo, diretamente ou codificados por meio da unidade de codificação de entropia 270, de modo que, por exemplo, o decodificador de vídeo 30 possa receber e aplicar os parâmetros de quantização para decodificação.[0148] Embodiments of the video encoder 20 (respectively, quantization unit 208) may be configured to output quantization parameters (QP), e.g., directly or encoded via the entropy coding unit 270, so that, e.g. For example, video decoder 30 can receive and apply quantization parameters for decoding.

Quantização InversaInverse Quantization

[0149] A unidade de quantização inversa 210 pode ser configurada para aplicar a quantização inversa da unidade de quantização 208 nos coeficientes quantizados para obter coeficientes desquantizados 211, por exemplo, aplicando o inverso do esquema de quantização aplicado pela unidade de quantização 208 com base ou usando o mesmo tamanho de etapa de quantização que a unidade de quantização 208. Os coeficientes desquantizados 211 também podem ser referidos como coeficientes residuais desquantizados 211 e correspondem - embora normalmente não sejam idênticos aos coeficientes de transformada devido à perda por quantização - aos coeficientes de transformada 207.[0149] The inverse quantization unit 210 may be configured to apply the inverse quantization of the quantization unit 208 on the quantized coefficients to obtain dequantized coefficients 211, for example, by applying the inverse of the quantization scheme applied by the quantization unit 208 based on or using the same quantization step size as the quantization unit 208. The dequantized coefficients 211 may also be referred to as dequantized residual coefficients 211 and correspond - although normally not identical to the transform coefficients due to quantization loss - to the transform coefficients 207.

Transformada InversaInverse Transform

[0150] A unidade de processamento de transformada inversa 212 pode ser configurada para aplicar a transformada inversa da transformada aplicada pela unidade de processamento de transformada 206, por exemplo, uma transformada de cosseno discreta inversa (DCT) ou transformada de seno discreta inversa (DST) ou outras transformadas inversas, para obter um bloco residual 213 (ou coeficientes desquantizados correspondentes 213) no domínio de amostra. O bloco residual reconstruído 213 também pode ser referido como bloco de transformada 213.[0150] The inverse transform processing unit 212 may be configured to apply the inverse transform of the transform applied by the transform processing unit 206, e.g., an inverse discrete cosine transform (DCT) or inverse discrete sine transform (DST). ) or other inverse transforms, to obtain a residual block 213 (or corresponding dequantized coefficients 213) in the sample domain. The reconstructed residual block 213 may also be referred to as transform block 213.

ReconstruçãoReconstruction

[0151] A unidade de reconstrução 214 (por exemplo, adicionador ou somador 214) pode ser configurada para adicionar o bloco de transformada 213 (isto é, bloco residual reconstruído 213) ao bloco de predição 265 para obter um bloco reconstruído 215 no domínio de amostra, por exemplo, adicionando - amostra por amostra - os valores de amostra do bloco residual reconstruído 213 e os valores de amostra do bloco de predição 265.[0151] The reconstruction unit 214 (e.g., adder or adder 214) may be configured to add the transform block 213 (i.e., reconstructed residual block 213) to the prediction block 265 to obtain a reconstructed block 215 in the domain of sample, for example, by adding - sample by sample - the sample values from the reconstructed residual block 213 and the sample values from the prediction block 265.

FiltragemFiltering

[0152] A unidade de filtro loop 220 (ou "filtro loop" para abreviar 220), pode ser configurada para filtrar o bloco reconstruído 215 para obter um bloco filtrado 221 ou, em geral, para filtrar amostras reconstruídas para obter valores de amostra filtrados. A unidade de filtro loop é, por exemplo, configurada para suavizar as transições de pixel ou melhorar a qualidade de vídeo. A unidade de filtro loop 220 pode compreender um ou mais filtros de loop, como um filtro de desblocagem, um filtro de deslocamento adaptativo de amostra (SAO) ou um ou mais outros filtros, por exemplo, um filtro loop adaptativo (ALF), um filtro de supressão de ruído (NSF), ou qualquer combinação dos mesmos. Em um exemplo, a unidade de filtro loop 220 pode compreender um filtro de desblocagem, um filtro SAO e um filtro ALF. A ordem do processo de filtragem pode ser o filtro de desblocagem, SAO e ALF. Em outro exemplo, um processo chamado mapeamento de luma com escalonamento de croma (LMCS) (ou seja, o remodelador in-loop adaptativo) é adicionado. Este processo é realizado antes da desblocagem. Em outro exemplo, o processo de filtro de desblocagem também pode ser aplicado a bordas internas de sub-blocos, por exemplo, bordas de sub-blocos afins, bordas de sub-blocos ATMVP, bordas de transformada de sub-bloco (SBT) e bordas subpartição intra (ISP).[0152] The loop filter unit 220 (or "loop filter" for short 220), may be configured to filter the reconstructed block 215 to obtain a filtered block 221 or, in general, to filter reconstructed samples to obtain filtered sample values . The loop filter unit is, for example, configured to smooth pixel transitions or improve video quality. The loop filter unit 220 may comprise one or more loop filters, such as an deblocking filter, an adaptive sample shift (SAO) filter, or one or more other filters, e.g., an adaptive loop filter (ALF), an noise suppression filter (NSF), or any combination thereof. In one example, the loop filter unit 220 may comprise a deblocking filter, an SAO filter, and an ALF filter. The order of the filtering process can be unblocking filter, SAO and ALF. In another example, a process called luma mapping with chroma scaling (LMCS) (i.e., the adaptive in-loop reshaper) is added. This process is carried out before unlocking. In another example, the deblocking filter process can also be applied to internal edges of subblocks, e.g., affine subblock edges, ATMVP subblock edges, subblock transform (SBT) edges, and intra subpartition (ISP) edges.

[0153] Para remover efetivamente os artefatos de blocagem que ocorrem em grandes “blocos”, o VVC usa um filtro de desblocagem de derivação mais longo. Aqui o termo “blocos” é usado de forma muito genérica e pode se referir a um “bloco de transformada (TB), bloco de predição (PB) ou bloco de unidade de codificação (CU)”. O filtro de derivação mais longo é aplicado aos componentes de Luma e Croma. O filtro de derivação mais longo para os componentes de Luma modifica no máximo 7 amostras para cada linha de amostras perpendicular e adjacente à borda e é aplicado para blocos cujo tamanho é >=32 amostras na direção de desblocagem, ou seja, para bordas verticais, a largura de bloco deve ser >=32 amostras e para bordas horizontais, a altura de bloco deve ser >=32 amostras.[0153] To effectively remove blocking artifacts that occur in large “blocks,” VVC uses a longer bypass deblocking filter. Here the term “blocks” is used very generically and can refer to a “transform block (TB), prediction block (PB) or coding unit block (CU)”. The longer bypass filter is applied to the Luma and Chroma components. The longest bypass filter for Luma components modifies a maximum of 7 samples for each line of samples perpendicular and adjacent to the edge and is applied for blocks whose size is >=32 samples in the unblocking direction, i.e. for vertical edges, the block width must be >=32 samples and for horizontal edges, the block height must be >=32 samples.

[0154] O filtro de derivação mais longo de croma é aplicado para blocos de Croma quando ambos os blocos adjacentes a uma determinada borda têm um tamanho >=8 amostras e modifica um máximo de três amostras em cada lado da borda. Portanto, para bordas verticais a largura do bloco de ambos os blocos adjacentes à borda deve ser >=8 amostras e para as bordas horizontais a altura de bloco de ambos os blocos adjacentes à borda deve ser >=8 amostras. Embora a unidade de filtro loop 220 seja mostrada na Figura 2 como sendo um filtro in-loop, em outras configurações, a unidade de filtro loop 220 pode ser implementada como um filtro post-loop. O bloco filtrado 221 também pode ser referido como bloco reconstruído filtrado 221.[0154] The longest chroma drift filter is applied to Chroma blocks when both blocks adjacent to a given edge have a size >=8 samples and modifies a maximum of three samples on each side of the edge. Therefore, for vertical edges the block width of both blocks adjacent to the edge must be >=8 samples and for horizontal edges the block height of both blocks adjacent to the edge must be >=8 samples. Although the loop filter unit 220 is shown in Figure 2 as being an in-loop filter, in other configurations, the loop filter unit 220 may be implemented as a post-loop filter. The filtered block 221 may also be referred to as the filtered rebuilt block 221.

[0155] As modalidades do codificador de vídeo 20 (respectivamente unidade de filtro loop 220) podem ser configuradas para parâmetros de filtro loop de saída (como parâmetros de filtro SAO ou parâmetros de filtro ALF ou parâmetros LMCS), por exemplo, diretamente ou codificados através da unidade de codificação de entropia 270, de modo que, por exemplo, um decodificador 30 pode receber e aplicar os mesmos parâmetros de filtro loop ou respectivos filtros de loop para decodificação.[0155] Embodiments of the video encoder 20 (respectively loop filter unit 220) can be configured to output loop filter parameters (such as SAO filter parameters or ALF filter parameters or LMCS parameters), for example, directly or encoded through the entropy coding unit 270, such that, for example, a decoder 30 can receive and apply the same loop filter parameters or respective loop filters for decoding.

Buffer de imagem decodificadaDecoded Image Buffer

[0156] O buffer de imagem decodificada (DPB) 230 pode ser uma memória que armazena imagens de referência, ou em dados de imagem de referência geral, para codificar dados de vídeo pelo codificador de vídeo 20. O DPB 230 pode ser formado por qualquer um de uma variedade de dispositivos de memória, como memória dinâmica de acesso aleatório (DRAM), incluindo DRAM síncrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM) ou outros tipos de dispositivos de memória. O buffer de imagem decodificada (DPB) 230 pode ser configurado para armazenar um ou mais blocos filtrados 221. O buffer de imagem decodificada 230 pode ser adicionalmente configurado para armazenar outros blocos previamente filtrados, por exemplo, blocos previamente reconstruídos e filtrados 221, da mesma imagem atual ou de diferentes imagens, por exemplo, imagens previamente reconstruídas, e podem fornecer imagens completas previamente reconstruídas, ou seja, imagens decodificadas (e blocos de referência e amostras correspondentes) e/ou uma imagem atual parcialmente reconstruída (e blocos de referência e amostras correspondentes), por exemplo, para predição inter. O buffer de imagem decodificada (DPB) 230 pode também ser configurado para armazenar um ou mais blocos reconstruídos não filtrados 215 ou, em geral, amostras reconstruídas não filtradas, por exemplo, se o bloco reconstruído 215 não for filtrado pela unidade de filtro loop 220 ou qualquer outra versão processada adicional dos blocos reconstruídos ou amostras. Seleção de modo (particionamento e predição)[0156] The decoded picture buffer (DPB) 230 may be a memory that stores reference images, or in general reference picture data, for encoding video data by the video encoder 20. The DPB 230 may be formed by any one of a variety of memory devices, such as dynamic random access memory (DRAM), including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM), or other types of memory devices. The decoded picture buffer (DPB) 230 may be configured to store one or more filtered blocks 221. The decoded picture buffer 230 may be further configured to store other previously filtered blocks, e.g., previously reconstructed and filtered blocks 221, of the same current image or different images, e.g. previously reconstructed images, and can provide complete previously reconstructed images, i.e. decoded images (and corresponding reference blocks and samples) and/or a partially reconstructed current image (and reference blocks and corresponding samples), for example, for inter prediction. The decoded picture buffer (DPB) 230 may also be configured to store one or more unfiltered reconstructed blocks 215 or, in general, unfiltered reconstructed samples, for example, if the reconstructed block 215 is not filtered by the loop filter unit 220 or any other additional processed version of the reconstructed blocks or samples. Mode selection (partitioning and prediction)

[0157] A unidade de seleção de modo 260 compreende unidade de particionamento 262, unidade de predição inter 244 e unidade de predição intra 254, e é configurada para receber ou obter dados de imagem original, por exemplo, um bloco original 203 (bloco atual 203 da imagem atual 17), e dados de imagem reconstruída, por exemplo, amostras reconstruídas filtradas e/ou não filtradas ou blocos da mesma imagem (atual) e/ou de uma ou uma pluralidade de imagens previamente decodificadas, por exemplo, do buffer de imagem decodificada 230 ou outros buffers (por exemplo, buffer de linha, não mostrado). Os dados de imagem reconstruída são usados como dados de imagem de referência para predição, por exemplo, predição inter ou predição intra, para obter um bloco de predição 265 ou preditor 265.[0157] The mode selection unit 260 comprises partitioning unit 262, inter prediction unit 244 and intra prediction unit 254, and is configured to receive or obtain original image data, e.g., an original block 203 (current block 203 of the current image 17), and reconstructed image data, e.g. filtered and/or unfiltered reconstructed samples or blocks of the same (current) image and/or of one or a plurality of previously decoded images, e.g. from the buffer decoded image buffer 230 or other buffers (e.g., line buffer, not shown). The reconstructed image data is used as reference image data for prediction, e.g., inter prediction or intra prediction, to obtain a prediction block 265 or predictor 265.

[0158] Unidade de seleção de modo 260 pode ser configurada para determinar ou selecionar um particionamento para um modo de predição de bloco atual (incluindo nenhum particionamento) e um modo de predição (por exemplo, um modo de predição intra ou inter) e gerar um bloco de predição correspondente 265, que é usado para o cálculo do bloco residual 205 e para a reconstrução do bloco reconstruído 215.[0158] Mode selection unit 260 may be configured to determine or select a partitioning for a current block prediction mode (including no partitioning) and a prediction mode (e.g., an intra or inter prediction mode) and generate a corresponding prediction block 265, which is used for the calculation of the residual block 205 and for the reconstruction of the reconstructed block 215.

[0159] Modalidades da unidade de seleção de modo 260 podem ser configuradas para selecionar o particionamento e o modo de predição (por exemplo, daqueles suportados por ou disponíveis para a unidade de seleção de modo 260), que fornecem a melhor combinação ou em outras palavras o residual mínimo (residual mínimo significa melhor compressão para transmissão ou armazenamento), ou um overhead de sinalização mínima (overhead de sinalização mínima significa melhor compressão para transmissão ou armazenamento), ou que considera ou equilibra ambos. A unidade de seleção de modo 260 pode ser configurada para determinar o modo de particionamento e predição com base na otimização de distorção de taxa (RDO), ou seja, selecionar o modo de predição que fornece uma distorção de taxa mínima. Termos como "melhor", "mínimo", "ótimo"etc., neste contexto, não se referem necessariamente a um "melhor" geral, "mínimo", "ótimo", etc., mas também podem referir-se ao cumprimento de um critério de terminação ou seleção como um valor excedendo ou caindo abaixo de uma fronteira ou outras restrições levando potencialmente a uma "seleção subótima", mas reduzindo a complexidade e o tempo de processamento.[0159] Embodiments of the mode selection unit 260 may be configured to select the partitioning and prediction mode (e.g., from those supported by or available to the mode selection unit 260) that provide the best combination or in other words the minimum residual (minimum residual means best compression for transmission or storage), or a minimum signaling overhead (minimum signaling overhead means best compression for transmission or storage), or which considers or balances both. The mode selection unit 260 may be configured to determine the partitioning and prediction mode based on rate distortion optimization (RDO), i.e., selecting the prediction mode that provides a minimum rate distortion. Terms such as "best", "minimum", "optimal", etc. in this context do not necessarily refer to an overall "best", "minimum", "optimal", etc., but may also refer to the fulfillment of a termination or selection criterion such as a value exceeding or falling below a threshold or other constraints potentially leading to "suboptimal selection" but reducing complexity and processing time.

[0160] Em outras palavras, a unidade de particionamento 262 pode ser configurada para particionar uma imagem a partir de uma sequência de vídeo em uma sequência de unidades de árvore de codificação (CTUs), e a CTU 203 pode ser adicionalmente particionada em partições de bloco menores ou sub- blocos (que formam novamente blocos), por exemplo, iterativamente usando particionamento de quadtree (QT), particionamento binário (BT) ou particionamento de árvore tripla (TT) ou qualquer combinação dos mesmos, e para realizar, por exemplo, a predição para cada uma das partições de bloco ou sub-blocos, em que a seleção de modo compreende a seleção da estrutura de árvore do bloco particionado 203 e os modos de predição são aplicados a cada uma das partições de bloco ou sub-blocos.[0160] In other words, the partitioning unit 262 may be configured to partition an image from a video sequence into a sequence of coding tree units (CTUs), and the CTU 203 may be further partitioned into partitions of smaller blocks or sub-blocks (which again form blocks), for example iteratively using quadtree partitioning (QT), binary partitioning (BT) or triple tree partitioning (TT) or any combination thereof, and to perform e.g. , the prediction for each of the block partitions or sub-blocks, wherein the mode selection comprises selecting the tree structure of the partitioned block 203 and the prediction modes are applied to each of the block partitions or sub-blocks .

[0161] A seguir, o particionamento (por exemplo, por unidade de particionamento 260) e processamento de predição (por unidade de predição inter 244 e unidade de predição intra 254) realizados por um codificador de vídeo de exemplo 20 serão explicados em mais detalhes.[0161] In the following, the partitioning (e.g., per partitioning unit 260) and prediction processing (per inter prediction unit 244 and intra prediction unit 254) performed by an example video encoder 20 will be explained in more detail .

ParticionamentoPartitioning

[0162] A unidade de particionamento 262 pode ser configurada para particionar uma imagem de uma sequência de vídeo em uma sequência de unidades de árvore de codificação (CTUs), e a unidade de particionamento 262 pode particionar (ou dividir) uma unidade de árvore de codificação (CTU) 203 em partições menores, por exemplo blocos menores de tamanho quadrado ou retangular. Para uma imagem que possui três arranjos de amostras, uma CTU consiste em um bloco NxN de amostras de luma junto com dois blocos correspondentes de amostras de croma. O tamanho máximo permitido do bloco de luma em uma CTU é especificado como 128 x 128 na codificação de vídeo versátil em desenvolvimento (VVC), mas pode ser especificado como valor em vez de 128 x 128 no futuro, por exemplo, 256 x 256. As CTUs de uma imagem podem ser agrupadas (“clustered”)/agrupadas (“grouped”) como grupos de fatias/tiles, tiles ou bricks. Um tile cobre uma região retangular de uma imagem e um tile pode ser dividido em um ou mais bricks. Um brick consiste em um número de linhas de CTU dentro de um tile. Um tile que não é particionado em vários bricks pode ser chamado de brick. No entanto, um brick é um verdadeiro subconjunto de um tile e não é referido como um tile. Há dois modos de grupos de tiles suportados no VVC, a saber, o modo de grupo de fatias/tiles de varredura raster e o modo de fatia retangular. No modo de grupo de tiles de varredura raster, um grupo de fatias/tiles contém uma sequência de tiles na varredura raster de tiles de uma imagem. No modo de fatia retangular, uma fatia contém vários bricks de uma imagem que formam coletivamente uma região retangular da imagem. Os bricks dentro de uma fatia retangular estão na ordem de varredura raster de bricks da fatia. Esses blocos menores (que também podem ser chamados de sub-blocos) podem ser particionados em partições ainda menores. Isso também é referido como particionamento de árvore ou particionamento de árvore hierárquica, em que um bloco raiz, por exemplo, no nível de árvore raiz 0 (nível de hierarquia 0, profundidade 0), pode ser particionado recursivamente, por exemplo, particionado em dois ou mais blocos de um próximo nível de árvore inferior, por exemplo, nós no nível de árvore 1 (nível de hierarquia 1, profundidade 1), em que esses blocos podem ser novamente particionados em dois ou mais blocos de um próximo nível inferior, por exemplo, nível de árvore 2 (nível de hierarquia 2, profundidade 2), etc. até que o particionamento seja encerrado, por exemplo, porque um critério de encerramento é atendido, por exemplo, uma profundidade máxima da árvore ou tamanho mínimo do bloco é alcançado. Blocos, que não são adicionalmente particionados, também são chamados de blocos folha ou nós folha da árvore. Uma árvore usando particionamento em duas partições é chamada de uma árvore binária (BT), uma árvore usando particionamento em três partições é chamada de uma árvore ternária (TT), e uma árvore usando particionamento em quatro partições é chamada de quadtree (QT).[0162] The partitioning unit 262 may be configured to partition an image of a video sequence into a sequence of coding tree units (CTUs), and the partitioning unit 262 may partition (or divide) a coding tree unit. coding (CTU) 203 in smaller partitions, for example smaller blocks of square or rectangular size. For an image that has three sample arrays, a CTU consists of an NxN block of luma samples along with two corresponding blocks of chroma samples. The maximum allowable luma block size in a CTU is specified as 128 x 128 in Versatile Video Coding (VVC), but may be specified as a value instead of 128 x 128 in the future, for example, 256 x 256. The CTUs of an image can be clustered as groups of slices/tiles, tiles or bricks. A tile covers a rectangular region of an image and a tile can be divided into one or more bricks. A brick consists of a number of CTU lines within a tile. A tile that is not partitioned into multiple bricks can be called a brick. However, a brick is a true subset of a tile and is not referred to as a tile. There are two tile group modes supported in VVC, namely raster scan tile/slice group mode and rectangular slice mode. In raster scan tile group mode, a slice/tile group contains a sequence of tiles in the tile raster scan of an image. In rectangular slice mode, a slice contains multiple bricks of an image that collectively form a rectangular region of the image. The bricks within a rectangular slice are in the raster scan order of the slice's bricks. These smaller blocks (which can also be called sub-blocks) can be partitioned into even smaller partitions. This is also referred to as tree partitioning or hierarchical tree partitioning, where a root block, for example at root tree level 0 (hierarchy level 0, depth 0), can be recursively partitioned, e.g. partitioned into two or more blocks of a next lower tree level, for example, nodes at tree level 1 (hierarchy level 1, depth 1), where these blocks may be further partitioned into two or more blocks of a next lower level, e.g. example, tree level 2 (hierarchy level 2, depth 2), etc. until partitioning is terminated, for example because a termination criterion is met, for example, a maximum tree depth or minimum block size is reached. Blocks, which are not additionally partitioned, are also called leaf blocks or leaf nodes of the tree. A tree using two-partitioning is called a binary tree (BT), a tree using three-partitioning is called a ternary tree (TT), and a tree using four-partitioning is called a quadtree (QT).

[0163] Por exemplo, uma unidade de árvore de codificação (CTU) pode ser ou compreender um CTB de amostras de luma e dois CTBs correspondentes de amostras de croma de uma imagem que tem três arranjos de amostra ou um CTB de amostras de uma imagem monocromática ou uma imagem que é codificada usando três planos de cores separados e estruturas de sintaxe usadas para codificar as amostras. Correspondentemente, um bloco de árvore de codificação (CTB) pode ser um bloco NxN de amostras para algum valor de N de modo que a divisão de um componente em CTBs seja um particionamento. Uma unidade de codificação (CU) pode ser ou compreender um bloco de codificação de amostras de luma, dois blocos de codificação correspondentes de amostras de croma de uma imagem que tem três arranjos de amostra, ou um bloco de codificação de amostras de uma imagem monocromática ou uma imagem que é codificada usando três planos de cores e estruturas de sintaxe separados usados para codificar as amostras. Correspondentemente, um bloco de codificação (CB) pode ser um bloco MxN de amostras para alguns valores de M e N de modo que a divisão de um CTB em blocos de codificação seja um particionamento.[0163] For example, a coding tree unit (CTU) may be or comprise a CTB of luma samples and two corresponding CTBs of chroma samples of an image that has three sample arrays or a CTB of samples of an image monochrome or an image that is encoded using three separate color planes and syntax structures used to encode the samples. Correspondingly, a coding tree block (CTB) can be an NxN block of samples for some value of N such that dividing a component into CTBs is a partitioning. A coding unit (CU) may be or comprise a coding block of luma samples, two corresponding coding blocks of chroma samples of an image having three sample arrays, or a coding block of samples of a monochrome image. or an image that is encoded using three separate color planes and syntax structures used to encode the samples. Correspondingly, a coding block (CB) can be an MxN block of samples for some values of M and N so that dividing a CTB into coding blocks is a partitioning.

[0164] Em modalidades, por exemplo, de acordo com HEVC, uma unidade de árvore de codificação (CTU) pode ser dividida em CUs usando uma estrutura de quadtree denotada como árvore de codificação. A decisão de codificar uma área de imagem usando predição imagem inter (temporal) ou imagem intra (espacial) é feita no nível de CU de folha. Cada CU de folha pode ser dividida em uma, duas ou quatro PUs de acordo com o tipo de divisão de PU. Dentro de uma PU, o mesmo processo de predição é aplicado e as informações relevantes são transmitidas para o decodificador com base na PU. Depois de obter o bloco residual aplicando o processo de predição com base no tipo de divisão de PU, uma CU pode ser particionada em unidades de transformada (TUs) de acordo com outra estrutura de quadtree semelhante à árvore de codificação para a CU.[0164] In embodiments, for example, according to HEVC, a coding tree unit (CTU) can be divided into CUs using a quadtree structure denoted as coding tree. The decision to encode an image area using inter-image (temporal) or intra-image (spatial) prediction is made at the leaf CU level. Each sheet CU can be divided into one, two or four PUs according to the PU division type. Within a PU, the same prediction process is applied and relevant information is transmitted to the decoder based on the PU. After obtaining the residual block by applying the prediction process based on PU splitting type, a CU can be partitioned into transform units (TUs) according to another quadtree structure similar to the coding tree for the CU.

[0165] Em modalidades, por exemplo, de acordo com o padrão de codificação de vídeo mais recente atualmente em desenvolvimento, que é referido como Codificação de Vídeo Versátil (VVC), uma árvore de múltiplos tipos aninhada de Quad-tree combinada usando estrutura de segmentação de divisões binárias e ternárias, por exemplo, usada para particionar uma unidade de árvore de codificação. Na estrutura de árvore de codificação dentro de uma unidade de árvore de codificação, uma CU pode ter uma forma quadrada ou retangular. Por exemplo, a unidade de árvore de codificação (CTU) é primeiro particionada por uma árvore quaternária. Em seguida, os nós folha da árvore quaternária podem ser particionados por uma estrutura de árvore de múltiplos tipos. Existem quatro tipos de divisão na estrutura de árvore de múltiplos tipos, divisão binária vertical (SPLIT_BT_VER), divisão binária horizontal (SPLIT_BT_HOR), divisão ternária vertical (SPLIT_TT_VER) e divisão ternária horizontal (SPLIT_TT_HOR). Os nós folha de árvore de múltiplos tipos são chamados de unidades de codificação (CUs) e, a menos que a CU seja muito grande para o comprimento máximo de transformada, essa segmentação é usada para predição e processamento de transformada sem qualquer particionamento adicional. Isso significa que, na maioria dos casos, CU, PU e TU têm o mesmo tamanho de bloco na quadtree com estrutura de bloco de codificação de árvore de múltiplos tipos aninhada. A exceção ocorre quando o comprimento máximo de transformada suportado é menor que a largura ou altura do componente de cor do CU.VVC desenvolve um mecanismo de sinalização exclusivo das informações de divisão de partição em quadtree com estrutura de árvore de codificação de árvore de múltiplos tipos aninhada. No mecanismo de sinalização, uma unidade de árvore de codificação (CTU) é tratada como a raiz de uma árvore quaternária e é primeiramente particionada por uma estrutura de árvore quaternária. Cada nó folha de árvore quaternária (quando suficientemente grande para permitir) é então particionado por uma estrutura de árvore de múltiplos tipos. Na estrutura de árvore de múltiplos tipos, uma primeira flag (mtt_split_cu_flag) é sinalizada para indicar se o nó está adicionalmente particionado; quando um nó é adicionalmente particionado, uma segunda flag (mtt_split_cu_vertical_flag) é sinalizada para indicar a direção da divisão e, em seguida, uma terceira flag (mtt_split_cu_binary_flag) é sinalizada para indicar se a divisão é uma divisão binária ou uma divisão ternária. Com base nos valores de mtt_split_cu_vertical_flag e mtt_split_cu_binary_flag, o modo de corte de árvore de múltiplos tipos (MttSplitMode) de uma CU pode ser derivado por um decodificador baseado em uma regra predefinida ou em uma tabela. Deve ser notado que, para um determinado projeto, por exemplo, bloco de Luma 64x64 e projeto de pipelining de Croma 32x32 em decodificadores de hardware VVC, a divisão de TT é proibida quando a largura ou a altura de um bloco de codificação de luma for maior que 64, pois mostrado na Figura 6. A divisão de TT também é proibida quando a largura ou a altura de um bloco de codificação de croma for maior que 32. O projeto de pipeline dividirá uma imagem em unidades de dados de pipeline virtuais (VPDUs) que são definidas como unidades não sobrepostas em uma imagem. Em decodificadores de hardware, VPDUs sucessivas são processadas por vários estágios de pipeline simultaneamente. O tamanho da VPDU é aproximadamente proporcional ao tamanho do buffer na maioria dos estágios do pipeline, portanto, é importante manter o tamanho da VPDU pequeno. Na maioria dos decodificadores de hardware, o tamanho da VPDU pode ser definido para o tamanho máximo do bloco de transformada (TB). No entanto, em VVC, a partição de árvore ternária (TT) e árvore binária (BT) pode levar ao aumento do tamanho das VPDUs.[0165] In embodiments, for example, according to the latest video coding standard currently under development, which is referred to as Versatile Video Coding (VVC), a nested Quad-tree multi-type tree combined using segmentation of binary and ternary divisions, for example, used to partition a coding tree unit. In the coding tree structure within a coding tree unit, a CU can have a square or rectangular shape. For example, the coding tree unit (CTU) is first partitioned by a quaternary tree. Then, the leaf nodes of the quaternary tree can be partitioned by a multi-type tree structure. There are four types of splitting in the multitype tree structure, vertical binary splitting (SPLIT_BT_VER), horizontal binary splitting (SPLIT_BT_HOR), vertical ternary splitting (SPLIT_TT_VER), and horizontal ternary splitting (SPLIT_TT_HOR). Tree leaf nodes of multiple types are called coding units (CUs), and unless the CU is too large for the maximum transform length, this segmentation is used for transform prediction and processing without any additional partitioning. This means that in most cases, CU, PU and TU have the same block size in the quadtree with nested multi-type tree coding block structure. The exception occurs when the maximum supported transform length is less than the width or height of the CU color component. VVC develops a unique signaling mechanism of partition division information in quadtree with multi-type tree coding tree structure nested. In the signaling mechanism, a coding tree unit (CTU) is treated as the root of a quaternary tree and is first partitioned by a quaternary tree structure. Each quaternary tree leaf node (when large enough to allow) is then partitioned by a multi-type tree structure. In the multi-type tree structure, a first flag (mtt_split_cu_flag) is signaled to indicate whether the node is additionally partitioned; When a node is additionally partitioned, a second flag (mtt_split_cu_vertical_flag) is flagged to indicate the direction of the split, and then a third flag (mtt_split_cu_binary_flag) is flagged to indicate whether the split is a binary split or a ternary split. Based on the values of mtt_split_cu_vertical_flag and mtt_split_cu_binary_flag, the multi-type tree splitting mode (MttSplitMode) of a CU can be derived by a decoder based on a predefined rule or a table. It should be noted that for a certain design, e.g. 64x64 Luma block and 32x32 Chroma pipelining design in VVC hardware decoders, TT splitting is prohibited when the width or height of a luma encoding block is greater than 64 as shown in Figure 6. TT splitting is also prohibited when the width or height of a chroma encoding block is greater than 32. The pipeline design will split an image into virtual pipeline data units ( VPDUs) which are defined as non-overlapping units in an image. In hardware decoders, successive VPDUs are processed by multiple pipeline stages simultaneously. The size of the VPDU is roughly proportional to the buffer size in most pipeline stages, so it is important to keep the VPDU size small. In most hardware decoders, the VPDU size can be set to the maximum transform block size (TB). However, in VVC, the partition of ternary tree (TT) and binary tree (BT) can lead to the increase in the size of VPDUs.

[0166] Além disso, deve ser notado que, quando uma porção de um bloco de nó de árvore excede a fronteira inferior ou direita da imagem, o bloco de nó de árvore é forçado a ser dividido até que todas as amostras de cada CU codificada estejam localizadas dentro das fronteiras de imagem.[0166] Additionally, it should be noted that when a portion of a tree node block exceeds the bottom or right boundary of the image, the tree node block is forced to be split until all samples from each encoded CU are located within the image boundaries.

[0167] Como exemplo, a ferramenta SubPartições Intra (ISP) pode dividir blocos preditos intra de luma verticalmente ou horizontalmente em 2 ou 4 subpartições dependendo do tamanho do bloco.[0167] As an example, the Intra SubPartitions (ISP) tool can divide predicted intra luma blocks vertically or horizontally into 2 or 4 subpartitions depending on the size of the block.

[0168] Em um exemplo, a unidade de seleção de modo 260 do codificador de vídeo 20 pode ser configurada para realizar qualquer combinação das técnicas de particionamento descritas neste documento.[0168] In one example, the mode selection unit 260 of the video encoder 20 may be configured to perform any combination of the partitioning techniques described herein.

[0169] Conforme descrito acima, o codificador de vídeo 20 é configurado para determinar ou selecionar o melhor ou um modo de predição ideal a partir de um conjunto de modos de predição (por exemplo, predeterminados). O conjunto de modos de predição pode compreender, por exemplo, modos de predição intra e/ou modos de predição inter.[0169] As described above, video encoder 20 is configured to determine or select the best or an optimal prediction mode from a set of prediction modes (e.g., predetermined). The set of prediction modes may comprise, for example, intra prediction modes and/or inter prediction modes.

Predição IntraIntra Prediction

[0170] O conjunto de modos de predição intra pode compreender 35 modos de predição intra diferentes, por exemplo, modos não direcionais como modo de DC (ou médio) e modo planar, ou modos direcionais, por exemplo, conforme definido em HEVC, ou pode compreender 67 modos de predição intra, por exemplo, modos não direcionais, como modo de DC (ou médio) e modo planar, ou modos direcionais, por exemplo, conforme definido para VVC. Como exemplo, vários modos de predição intra angular convencionais são substituídos de forma adaptativa por modos de predição intra de grande angular para os blocos não quadrados, por exemplo, conforme definido em VVC. Como outro exemplo, para evitar operações de divisão para predição DC, apenas o lado mais longo é usado para calcular a média de blocos não quadrados. E, os resultados da predição intra do modo planar podem ser adicionalmente modificados por um método de combinação de predição intra dependente de posição (PDPC).[0170] The set of intra prediction modes may comprise 35 different intra prediction modes, for example, non-directional modes such as DC (or average) mode and planar mode, or directional modes, for example, as defined in HEVC, or may comprise 67 intra prediction modes, for example, non-directional modes, such as DC (or average) mode and planar mode, or directional modes, for example, as defined for VVC. As an example, several conventional intra-angle prediction modes are adaptively replaced by wide-angle intra prediction modes for the non-square blocks, for example, as defined in VVC. As another example, to avoid division operations for DC prediction, only the longest side is used to calculate the average of non-square blocks. And, the planar mode intra prediction results can be further modified by a position dependent intra prediction combination (PDPC) method.

[0171] A unidade de predição intra 254 é configurada para usar amostras reconstruídas de blocos vizinhos da mesma imagem atual para gerar um bloco de predição intra 265 de acordo com um modo de predição intra do conjunto de modos de predição intra.[0171] The intra prediction unit 254 is configured to use reconstructed samples from neighboring blocks of the same current image to generate an intra prediction block 265 according to an intra prediction mode from the set of intra prediction modes.

[0172] A unidade de predição intra 254 (ou, em geral, a unidade de seleção de modo 260) é adicionalmente configurada para emitir parâmetros de predição intra (ou em informações gerais indicativas do modo de predição intra selecionado para o bloco) para a unidade de codificação de entropia 270 em forma de elementos de sintaxe 266 para inclusão nos dados de imagem codificados 21, de modo que, por exemplo, o decodificador de vídeo 30 possa receber e usar os parâmetros de predição para decodificação.[0172] The intra prediction unit 254 (or, in general, the mode selection unit 260) is further configured to output intra prediction parameters (or general information indicative of the intra prediction mode selected for the block) to the entropy coding unit 270 in the form of syntax elements 266 for inclusion in the encoded image data 21 so that, for example, the video decoder 30 can receive and use the prediction parameters for decoding.

Predição InterInter Prediction

[0173] O conjunto de (ou possíveis) modos de predição inter depende das imagens de referência disponíveis (ou seja, imagens anteriores pelo menos parcialmente decodificadas, por exemplo, armazenadas em DBP 230) e outros parâmetros de predição inter, por exemplo, se a imagem de referência inteira ou apenas uma parte, por exemplo, uma área de janela de busca em torno da área do bloco atual, da imagem de referência é usada para buscar o melhor bloco de referência correspondente, e/ou por exemplo, se a interpolação de pixel é aplicada, por exemplo, interpolação de meio/semi-pel, interpolação de um quarto de pel e/ou interpolação de 1/16 de pel, ou não.[0173] The set of (or possible) inter prediction modes depends on the available reference images (i.e., previous at least partially decoded images, e.g., stored in DBP 230) and other inter prediction parameters, e.g., whether the entire reference image or just a part, for example, a search pane around the current block area, of the reference image is used to search for the best matching reference block, and/or for example, if the pixel interpolation is applied, for example, half/semi-pel interpolation, quarter-pel interpolation and/or 1/16-pel interpolation, or not.

[0174] Adicional aos modos de predição acima, o modo skip, modo direto e/ou outro modo de predição inter podem ser aplicados.[0174] In addition to the above prediction modes, skip mode, direct mode and/or other inter prediction mode can be applied.

[0175] Por exemplo, predição merge estendida, a lista de candidatos merge desse modo é construída incluindo os cinco tipos de candidatos a seguir em ordem: MVP espacial de CUs vizinhas espaciais, MVP temporal de CUs colocalizadas, MVP baseado em histórico de uma tabela FIFO, MVP médio em pares e MVs Zero. E um refinamento de vetor de movimento lateral de decodificador baseado em correspondência bilateral (DMVR) pode ser aplicado para aumentar a precisão dos MVs do modo merge. Modo merge com MVD (MMVD), que vem do modo merge com diferenças de vetor de movimento. Uma flag MMVD é sinalizada logo após o envio de uma flag skip e uma flag merge para especificar se o modo MMVD é usado para uma CU. E um esquema de resolução de vetor de movimento adaptativo (AMVR) no nível de CU pode ser aplicado. O AMVR permite que o MVD da CU seja codificado em diferentes precisões. Dependendo do modo de predição da CU atual, os MVDs da CU atual podem ser selecionados de forma adaptativa. Quando uma CU é codificada no modo merge, o modo combinado de predição inter/intra (CIIP) pode ser aplicado à CU atual. A média ponderada dos sinais de predição inter e intra é realizada para obter a predição CIIP. Predição compensada de movimento afim, o campo de movimento afim do bloco é descrito por informações de movimento de dois pontos de controle (4 parâmetros) ou três vetores de movimento de pontos de controle (6 parâmetros). Predição de vetor de movimento temporal baseada em subbloco (SbTMVP), que é semelhante à predição de vetor de movimento temporal (TMVP) em HEVC, mas prevê os vetores de movimento das sub-CUs dentro da CU atual. O fluxo óptico bidirecional (BDOF), anteriormente conhecido como BIO, é uma versão mais simples que requer muito menos computação, principalmente em termos de número de multiplicações e tamanho do multiplicador. Modo de partição triangular, nesse modo, uma CU é dividida uniformemente em duas partições em forma de triângulo, usando a divisão diagonal ou a divisão antidiagonal. Além disso, o modo de bipredição é estendido além da média simples para permitir a média ponderada dos dois sinais de predição.[0175] For example, extended merge prediction, the merge candidate list is thus constructed by including the following five candidate types in order: spatial MVP from spatial neighboring CUs, temporal MVP from co-located CUs, MVP based on history from a table FIFO, average MVP in pairs and MVs Zero. And a decoder lateral motion vector refinement based on bilateral correspondence (DMVR) can be applied to increase the accuracy of merge mode MVs. Merge mode with MVD (MMVD), which comes from merge mode with motion vector differences. An MMVD flag is signaled immediately after sending a skip flag and a merge flag to specify whether MMVD mode is used for a CU. And an adaptive motion vector resolution (AMVR) scheme at the CU level can be applied. AMVR allows the MVD of the CU to be encoded at different precisions. Depending on the prediction mode of the current CU, the MVDs of the current CU can be selected adaptively. When a CU is coded in merge mode, the combined inter/intra prediction (CIIP) mode can be applied to the current CU. The weighted average of the inter and intra prediction signals is performed to obtain the CIIP prediction. Compensated Affine Motion Prediction,The affine motion field of the block is described by,motion information of two control points (4 parameters) or,three control point motion vectors (6 parameters). Subblock-based temporal motion vector prediction (SbTMVP), which is similar to temporal motion vector prediction (TMVP) in HEVC, but predicts the motion vectors of the sub-CUs within the current CU. Bidirectional optical flow (BDOF), formerly known as BIO, is a simpler version that requires much less computation, particularly in terms of number of multiplications and multiplier size. Triangular partition mode, in this mode, a CU is evenly divided into two triangle-shaped partitions using either diagonal splitting or antidiagonal splitting. Furthermore, the biprediction mode is extended beyond simple averaging to allow weighted averaging of the two prediction signals.

[0176] A unidade de predição inter 244 pode incluir uma unidade de estimativa de movimento (ME) e uma unidade de compensação de movimento (MC) (ambas não mostradas na Figura 2). A unidade de estimativa de movimento pode ser configurada para receber ou obter o bloco de imagem 203 (bloco de imagem atual 203 da imagem atual 17) e uma imagem decodificada 231, ou pelo menos um ou uma pluralidade de blocos previamente reconstruídos, por exemplo, blocos reconstruídos de um ou uma pluralidade de imagens previamente decodificadas 231 outras/diferentes, para estimativa de movimento. Por exemplo, uma sequência de vídeo pode compreender a imagem atual e as imagens previamente decodificadas 231, ou em outras palavras, a imagem atual e as imagens previamente decodificadas 231 podem fazer parte de ou formar uma sequência de imagens formando uma sequência de vídeo.[0176] The inter prediction unit 244 may include a motion estimation (ME) unit and a motion compensation (MC) unit (both not shown in Figure 2). The motion estimation unit may be configured to receive or obtain image block 203 (current image block 203 of current image 17) and a decoded image 231, or at least one or a plurality of previously reconstructed blocks, e.g. reconstructed blocks of one or a plurality of previously decoded 231 other/different images, for motion estimation. For example, a video sequence may comprise the current image and previously decoded images 231, or in other words, the current image and previously decoded images 231 may be part of or form a sequence of images forming a video sequence.

[0177] O codificador 20, por exemplo, pode ser configurado para selecionar um bloco de referência a partir de uma pluralidade de blocos de referência do mesmo ou diferentes imagens da pluralidade de outras imagens e fornecer uma imagem de referência (ou índice de imagem de referência) e/ou um deslocamento (deslocamento espacial) entre a posição (coordenadas x, y) do bloco de referência e a posição do bloco atual como parâmetros de predição inter para a unidade de estimativa de movimento. Este deslocamento também é chamado de vetor de movimento (MV).[0177] Encoder 20, for example, may be configured to select a reference block from a plurality of reference blocks of the same or different images from the plurality of other images and provide a reference image (or image index of reference) and/or an offset (spatial offset) between the position (x, y coordinates) of the reference block and the position of the current block as inter prediction parameters for the motion estimation unit. This displacement is also called motion vector (MV).

[0178] A unidade de compensação de movimento pode ser configurada para obter, por exemplo, receber, um parâmetro de predição inter e realizar predição inter com base em ou usando o parâmetro de predição inter para obter um bloco de predição inter 265. Compensação de movimento, realizada pela unidade de compensação de movimento, pode envolver buscar ou gerar o bloco de predição com base no vetor de movimento / de bloco determinado pela estimativa de movimento, possivelmente realizando interpolações para precisão de subpixel. Filtragem de interpolação pode gerar amostras de pixel adicionais a partir de amostras de pixel conhecidas, aumentando assim potencialmente o número de blocos de predição candidatos que podem ser usados para codificar um bloco de imagem. Ao receber o vetor de movimento para a PU do bloco de imagem atual, a unidade de compensação de movimento pode localizar o bloco de predição para o qual o vetor de movimento aponta em uma das listas de imagens de referência.[0178] The motion compensation unit can be configured to obtain, for example, receive an inter prediction parameter and perform inter prediction based on or using the inter prediction parameter to obtain an inter prediction block 265. Motion compensation Motion, performed by the motion compensation unit, may involve fetching or generating the prediction block based on the motion/block vector determined by motion estimation, possibly performing interpolations for subpixel accuracy. Interpolation filtering can generate additional pixel samples from known pixel samples, thereby potentially increasing the number of candidate prediction blocks that can be used to encode an image block. Upon receiving the motion vector for the PU from the current image block, the motion compensation unit can locate the prediction block to which the motion vector points in one of the reference image lists.

[0179] A unidade de compensação de movimento também pode gerar elementos de sintaxe associados aos blocos e fatias de vídeo para uso pelo decodificador de vídeo 30 na decodificação dos blocos de imagem da fatia de vídeo. Além ou como uma alternativa para fatias e respectivos elementos de sintaxe, grupos de tiles e/ou tiles e respectivos elementos de sintaxe podem ser gerados ou usados.[0179] The motion compensation unit may also generate syntax elements associated with the video blocks and slices for use by the video decoder 30 in decoding the image blocks of the video slice. In addition to or as an alternative to slices and their syntax elements, groups of tiles and/or tiles and their syntax elements can be generated or used.

Codificação de EntropiaEntropy Coding

[0180] A unidade de codificação de entropia 270 é configurada para aplicar, por exemplo, um algoritmo ou esquema de codificação de entropia (por exemplo, um esquema de codificação de comprimento variável (VLC), esquema de VLC adaptativa ao contexto (CAVLC), um esquema de codificação aritmética, uma binarização, um codificação aritmética binária adaptativa ao contexto (CABAC), codificação aritmética binária adaptativa ao contexto baseada em sintaxe (SBAC), codificação de entropia de particionamento de intervalo de probabilidade (PIPE) ou outra metodologia ou técnica de codificação de entropia) ou deslocamento (sem compressão) nos coeficientes quantizados 209, parâmetros de predição inter, parâmetros de predição intra, parâmetros de filtro loop e/ou outros elementos de sintaxe para obter dados de imagem codificados 21 que podem ser emitidos através da saída 272, por exemplo, na forma de um fluxo de bits codificado 21, de modo que, por exemplo, o decodificador de vídeo 30 pode receber e usar os parâmetros de decodificação. O fluxo de bits pode, por exemplo, ter uma forma conforme especificado adicionalmente na Figura 16 abaixo. As modalidades descritas em relação a esta figura são assim consideradas abrangidas também no fluxo de bits 21 aqui descrito. Além disso, qualquer estrutura de um fluxo de bits aqui referido pode ser fornecida como fluxo de bits 21 no sentido desta modalidade. O fluxo de bits codificado 21 pode ser transmitido para o decodificador de vídeo 30 ou armazenado em uma memória para transmissão ou recuperação posterior pelo decodificador de vídeo 30.[0180] The entropy coding unit 270 is configured to apply, for example, an entropy coding algorithm or scheme (e.g., a variable length coding scheme (VLC), context-adaptive VLC scheme (CAVLC) , an arithmetic coding scheme, a binarization, a context-adaptive binary arithmetic coding (CABAC), syntax-based context-adaptive binary arithmetic coding (SBAC), probability interval partitioning entropy coding (PIPE), or other methodology or entropy coding technique) or shift (without compression) in the quantized coefficients 209, inter prediction parameters, intra prediction parameters, loop filter parameters and/or other syntax elements to obtain encoded image data 21 that can be output through of the output 272, for example, in the form of a coded bit stream 21, so that, for example, the video decoder 30 can receive and use the decoding parameters. The bit stream may, for example, have a shape as further specified in Figure 16 below. The embodiments described in relation to this figure are thus considered to also encompass the bit stream 21 described here. Furthermore, any structure of a bit stream referred to herein may be provided as bit stream 21 in the sense of this embodiment. The encoded bit stream 21 may be transmitted to the video decoder 30 or stored in a memory for later transmission or retrieval by the video decoder 30.

[0181] Outras variações estruturais do codificador de vídeo 20 podem ser usadas para codificar o fluxo de vídeo. Por exemplo, um codificador não baseado em transformada 20 pode quantizar o sinal residual diretamente sem a unidade de processamento de transformada 206 para certos blocos ou quadros. Em outra implementação, um codificador 20 pode ter a unidade de quantização 208 e a unidade de quantização inversa 210 combinadas em uma única unidade.[0181] Other structural variations of video encoder 20 may be used to encode the video stream. For example, a non-transform based encoder 20 may quantize the residual signal directly without the transform processing unit 206 for certain blocks or frames. In another implementation, an encoder 20 may have the quantization unit 208 and the inverse quantization unit 210 combined into a single unit.

Decodificador e método de decodificaçãoDecoder and decoding method

[0182] A Figura 3 mostra um exemplo de um decodificador de vídeo 30 que pode ser configurado para implementar as técnicas desta presente revelação. O decodificador de vídeo 30 pode ser configurado para receber dados de imagem codificados 21 (por exemplo, fluxo de bits codificado 21), por exemplo, codificado pelo codificador 20, para obter uma imagem decodificada 331. Os dados de imagem codificados ou fluxo de bits compreendem informações para decodificar os dados de imagem codificados, por exemplo, dados que representam blocos de imagem de uma fatia de vídeo codificada (e/ou grupos de tiles ou tiles) e elementos de sintaxe associados.[0182] Figure 3 shows an example of a video decoder 30 that can be configured to implement the techniques of this present disclosure. Video decoder 30 may be configured to receive encoded image data 21 (e.g., encoded bitstream 21), e.g., encoded by encoder 20, to obtain a decoded image 331. The encoded image data or bitstream comprise information for decoding the encoded image data, for example, data representing image blocks of an encoded video slice (and/or groups of tiles or tiles) and associated syntax elements.

[0183] No exemplo da Figura 3, o decodificador 30 compreende uma unidade de decodificação de entropia 304, uma unidade de quantização inversa 310, uma unidade de processamento de transformada inversa 312, uma unidade de reconstrução 314 (por exemplo, um somador 314), um filtro loop 320, um buffer de imagem decodificada (DBP) 330, uma unidade de aplicação de modo 360, uma unidade de predição inter 344 e uma unidade de predição intra 354. A unidade de predição inter 344 pode ser ou incluir uma unidade de compensação de movimento. O decodificador de vídeo 30 pode, em alguns exemplos, realizar uma passagem de decodificação geralmente recíproca para a passagem de codificação descrita em relação ao codificador de vídeo 100 da Figura 2.[0183] In the example of Figure 3, the decoder 30 comprises an entropy decoding unit 304, an inverse quantization unit 310, an inverse transform processing unit 312, a reconstruction unit 314 (e.g., an adder 314) , a loop filter 320, a decoded picture buffer (DBP) 330, a mode application unit 360, an inter prediction unit 344, and an intra prediction unit 354. The inter prediction unit 344 may be or include a motion compensation. The video decoder 30 may, in some examples, perform a decoding pass generally reciprocal to the encoding pass described with respect to the video encoder 100 of Figure 2.

[0184] Conforme explicado no que diz respeito ao codificador 20, a unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o filtro loop 220, o buffer de imagem decodificada (DPB) 230, a unidade de predição inter 344 e a unidade de predição intra 354 também são referidos como formando o "decodificador embutido" do codificador de vídeo 20. Por conseguinte, a unidade de quantização inversa 310 pode ser idêntica em função à unidade de quantização inversa 110, a unidade de processamento de transformada inversa 312 pode ser idêntica em função à unidade de processamento de transformada inversa 212, a unidade de reconstrução 314 pode ser idêntica em função à unidade de reconstrução 214, o filtro loop 320 pode ser idêntico em função ao filtro loop 220 e o buffer de imagem decodificada 330 pode ser idêntico em função ao buffer de imagem decodificada 230. Portanto, as explicações fornecidas para as respectivas unidades e funções do codificador de vídeo 20 se aplicam correspondentemente às respectivas unidades e funções do decodificador de vídeo 30.[0184] As explained with respect to the encoder 20, the inverse quantization unit 210, the inverse transform processing unit 212, the reconstruction unit 214, the loop filter 220, the decoded picture buffer (DPB) 230, the inter prediction unit 344 and the intra prediction unit 354 are also referred to as forming the "built-in decoder" of the video encoder 20. Therefore, the inverse quantization unit 310 may be identical in function to the inverse quantization unit 110, the inverse transform processing unit 312 may be identical in function to the inverse transform processing unit 212, the reconstruction unit 314 may be identical in function to the reconstruction unit 214, the loop filter 320 may be identical in function to the loop filter 220 and the decoded picture buffer 330 may be identical in function to the decoded picture buffer 230. Therefore, the explanations provided for the respective units and functions of the video encoder 20 apply correspondingly to the respective units and functions of the video decoder 30.

Decodificação de entropiaEntropy decoding

[0185] A unidade de decodificação de entropia 304 pode ser configurada para analisar o fluxo de bits 21 (ou em dados de imagem codificados em geral 21) e realizar, por exemplo, decodificação de entropia para os dados de imagem codificados 21 para obter, por exemplo, coeficientes quantizados 309 e/ou parâmetros de codificação decodificados 366, (não mostrados na Figura 3), por exemplo, qualquer um ou todos os parâmetros de predição inter (por exemplo, índice de imagem de referência e vetor de movimento), parâmetro de predição intra (por exemplo, modo de predição intra ou índice), parâmetros de transformada, parâmetros de quantização, parâmetros de filtro loop e/ou outros elementos de sintaxe. A unidade de decodificação de entropia 304 pode ser configurada para aplicar os algoritmos de decodificação ou esquemas correspondentes aos esquemas de codificação, conforme descrito em relação à unidade de codificação de entropia 270 do codificador 20. A unidade de decodificação de entropia 304 pode ser configurada adicionalmente para fornecer parâmetros de predição inter, parâmetro de predição intra e/ou outros elementos de sintaxe para a unidade de aplicação de modo 360 e outros parâmetros para outras unidades do decodificador 30. O decodificador de vídeo 30 pode receber os elementos de sintaxe no nível de fatia de vídeo e/ou nível de bloco de vídeo. Além ou como uma alternativa às fatias e respectivos elementos de sintaxe, grupos de tiles e/ou tiles e respectivos elementos de sintaxe podem ser recebidos e/ou usados.[0185] The entropy decoding unit 304 may be configured to analyze the bit stream 21 (or generally encoded image data 21) and perform, for example, entropy decoding for the encoded image data 21 to obtain, e.g., quantized coefficients 309 and/or decoded encoding parameters 366, (not shown in Figure 3), e.g., any or all inter prediction parameters (e.g., reference image index and motion vector), intra prediction parameter (e.g. intra prediction mode or index), transform parameters, quantization parameters, loop filter parameters and/or other syntax elements. The entropy decoding unit 304 may be configured to apply decoding algorithms or schemes corresponding to the encoding schemes as described with respect to the entropy coding unit 270 of the encoder 20. The entropy decoding unit 304 may be further configured to provide inter prediction parameters, intra prediction parameter and/or other syntax elements to the mode application unit 360 and other parameters to other units of the decoder 30. The video decoder 30 may receive the syntax elements at the level of video slice and/or video block level. In addition to or as an alternative to slices and their syntax elements, groups of tiles and/or tiles and their syntax elements may be received and/or used.

Quantização InversaInverse Quantization

[0186] A unidade de quantização inversa 310 pode ser configurada para receber parâmetros de quantização (QP) (ou em informações gerais relacionadas à quantização inversa) e coeficientes quantizados a partir dos dados de imagem codificados 21 (por exemplo, por análise e/ou decodificação, por exemplo, por unidade de decodificação de entropia 304) e aplicar, com base nos parâmetros de quantização, uma quantização inversa nos coeficientes quantizados decodificados 309 para obter coeficientes desquantizados 311, que também podem ser referidos como coeficientes de transformada 311. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização determinado pelo codificador de vídeo 20 para cada bloco de vídeo na fatia de vídeo (ou tile ou grupos de tiles) para determinar um grau de quantização e, da mesma forma, um grau de quantização inversa que deve ser aplicado.[0186] The inverse quantization unit 310 may be configured to receive quantization parameters (QP) (or in general information related to inverse quantization) and quantized coefficients from the encoded image data 21 (e.g., by analysis and/or decoding, for example, by entropy decoding unit 304) and applying, based on the quantization parameters, an inverse quantization on the decoded quantized coefficients 309 to obtain dequantized coefficients 311, which may also be referred to as transform coefficients 311. The process Inverse quantization may include using a quantization parameter determined by video encoder 20 for each video block in the video slice (or tile or groups of tiles) to determine a degree of quantization and, likewise, a degree of inverse quantization that must be applied.

Transformada InversaInverse Transform

[0187] A unidade de processamento de transformada inversa 312 pode ser configurada para receber coeficientes desquantizados 311, também referidos como coeficientes de transformada 311, e para aplicar uma transformada aos coeficientes desquantizados 311 a fim de obter blocos residuais reconstruídos 213 no domínio de amostra. Os blocos residuais reconstruídos 213 também podem ser referidos como blocos de transformada 313. A transformada pode ser uma transformada inversa, por exemplo, uma DCT inversa, uma DST inversa, uma transformada inteira inversa, ou um processo de transformada inversa conceitualmente similar. A unidade de processamento de transformada inversa 312 pode ainda ser configurada para receber parâmetros de transformada ou informações correspondentes a partir dos dados de imagem codificados 21 (por exemplo, por análise e/ou decodificação, por exemplo, por unidade de decodificação de entropia 304) para determinar a transformada a ser aplicada aos coeficientes desquantizados 311.[0187] The inverse transform processing unit 312 may be configured to receive dequantized coefficients 311, also referred to as transform coefficients 311, and to apply a transform to the dequantized coefficients 311 in order to obtain reconstructed residual blocks 213 in the sample domain. The reconstructed residual blocks 213 may also be referred to as transform blocks 313. The transform may be an inverse transform, e.g., an inverse DCT, an inverse DST, an inverse integer transform, or a conceptually similar inverse transform process. The inverse transform processing unit 312 may further be configured to receive transform parameters or corresponding information from the encoded image data 21 (e.g., by analysis and/or decoding, e.g., by entropy decoding unit 304). to determine the transform to be applied to the dequantized coefficients 311.

ReconstruçãoReconstruction

[0188] A unidade de reconstrução 314 (por exemplo, adicionador ou somador 314) pode ser configurada para adicionar o bloco residual reconstruído 313, ao bloco de predição 365 para obter um bloco reconstruído 315 no domínio de amostra, por exemplo, adicionando os valores de amostra do bloco residual reconstruído 313 e os valores de amostra do bloco de predição 365.[0188] The reconstruction unit 314 (e.g., adder or adder 314) may be configured to add the reconstructed residual block 313, to the prediction block 365 to obtain a reconstructed block 315 in the sample domain, e.g., by adding the values sample values from the reconstructed residual block 313 and the sample values from the prediction block 365.

FiltragemFiltering

[0189] A unidade de filtro loop 320 (no loop de codificação ou após o loop de codificação) pode ser configurada para filtrar o bloco reconstruído 315 para obter um bloco filtrado 321, por exemplo, para suavizar as transições de pixel ou melhorar a qualidade de vídeo. A unidade de filtro loop 320 pode compreender um ou mais filtros de loop, como um filtro de desblocagem, um filtro de deslocamento adaptativo de amostra (SAO) ou um ou mais outros filtros, por exemplo, um filtro loop adaptativo (ALF), um filtro de supressão de ruído (NSF), ou qualquer combinação dos mesmos. Em um exemplo, a unidade de filtro loop 220 pode compreender um filtro de desblocagem, um filtro SAO e um filtro ALF. A ordem do processo de filtragem pode ser o filtro de desblocagem, SAO e ALF. Em outro exemplo, um processo chamado mapeamento de luma com escalonamento de croma (LMCS) (ou seja, o remodelador in-loop adaptativo) é adicionado. Este processo é realizado antes do desblocagem. Em outro exemplo, o processo de filtro de desblocagem também pode ser aplicado a bordas internas de sub-blocos, por exemplo, bordas de sub-blocos afins, bordas de sub-blocos ATMVP, bordas de transformada de sub-bloco (SBT) e bordas subpartição intra (ISP). Embora a unidade de filtro de circuito 320 seja mostrada na Figura 3 como sendo um filtro in-loop, em outras configurações, a unidade de filtro loop 320 pode ser implementada como um filtro post-loop.[0189] The loop filter unit 320 (in the encoding loop or after the encoding loop) may be configured to filter the reconstructed block 315 to obtain a filtered block 321, for example, to smooth pixel transitions or improve quality of video. The loop filter unit 320 may comprise one or more loop filters, such as an deblocking filter, an adaptive sample offset (SAO) filter, or one or more other filters, e.g., an adaptive loop filter (ALF), an noise suppression filter (NSF), or any combination thereof. In one example, the loop filter unit 220 may comprise a deblocking filter, an SAO filter, and an ALF filter. The order of the filtering process can be unblocking filter, SAO and ALF. In another example, a process called luma mapping with chroma scaling (LMCS) (i.e., the adaptive in-loop reshaper) is added. This process is carried out before unlocking. In another example, the deblocking filter process can also be applied to internal edges of subblocks, e.g., affine subblock edges, ATMVP subblock edges, subblock transform (SBT) edges, and intra subpartition (ISP) edges. Although the loop filter unit 320 is shown in Figure 3 as being an in-loop filter, in other configurations, the loop filter unit 320 may be implemented as a post-loop filter.

[0190] JVET-P0080 e JVET-O0630 propõem um novo filtro in-loop denominado filtro ALF de componente cruzado, também referido aqui como CC- ALF ou CCALF. CC-ALF opera como parte do processo de filtro loop adaptativo e faz uso de valores de amostra de luma para refinar cada componente de croma (ou seja, componente Cr ou Cb, como um primeiro componente de croma é denominado componente Cb e um segundo componente de croma é denominado componente Cr). O CC-ALF opera aplicando um filtro em forma de diamante no componente de Luma para cada amostra de Croma do componente de Croma e, em seguida, o valor filtrado de saída é usado como uma correção para a saída do processo de ALF de Croma.[0190] JVET-P0080 and JVET-O0630 propose a new in-loop filter called cross-component ALF filter, also referred to here as CC-ALF or CCALF. CC-ALF operates as part of the adaptive loop filter process and makes use of luma sample values to refine each chroma component (i.e., Cr or Cb component, as a first chroma component is called a Cb component and a second component of chroma is called the Cr component). CC-ALF operates by applying a diamond-shaped filter to the Luma component for each Chroma sample of the Chroma component, and then the output filtered value is used as a correction to the output of the Chroma ALF process.

[0191] O filtro loop adaptativo de componente cruzado (CC-ALF) pode ser usado como filtro loop e como etapa de pós-processamento, respectivamente.[0191] The cross-component adaptive loop filter (CC-ALF) can be used as a loop filter and as a post-processing step, respectively.

Buffer de imagem decodificadaDecoded Image Buffer

[0192] Os blocos de vídeo decodificados 321 de uma imagem são então armazenados em buffer de imagem decodificada 330, que armazena as imagens decodificadas 331 como imagens de referência para compensação de movimento subsequente para outras imagens e/ou para saída, respectivamente, exibição.[0192] The decoded video blocks 321 of an image are then stored in decoded image buffer 330, which stores the decoded images 331 as reference images for subsequent motion compensation for other images and/or for output, respectively, display.

[0193] O decodificador 30 pode ser configurado para emitir a imagem decodificada 311, por exemplo, através da saída 312, para apresentação ou visualização a um usuário.[0193] Decoder 30 may be configured to output the decoded image 311, for example, via output 312, for presentation or viewing to a user.

PrediçãoPrediction

[0194] A unidade de predição inter 344 pode ser idêntica à unidade de predição inter 244 (em particular à unidade de compensação de movimento) e a unidade de predição intra 354 pode ser idêntica à unidade de predição inter 254 em função, e realiza decisões de divisão ou particionamento e predição com base nos parâmetros de particionamento e/ou predição ou respectivas informações recebidas a partir dos dados de imagem codificados 21 (por exemplo, por análise e/ou decodificação, por exemplo, por unidade de decodificação de entropia 304). Unidade de aplicação de modo 360 pode ser configurada para realizar a predição (predição intra ou inter) por bloco com base em imagens reconstruídas, blocos ou respectivas amostras (filtradas ou não filtradas) para obter o bloco de predição 365.[0194] The inter prediction unit 344 may be identical to the inter prediction unit 244 (in particular the motion compensation unit) and the intra prediction unit 354 may be identical to the inter prediction unit 254 in function, and perform decisions of division or partitioning and prediction based on the partitioning and/or prediction parameters or respective information received from the encoded image data 21 (e.g., by analysis and/or decoding, e.g., by entropy decoding unit 304) . Mode application unit 360 can be configured to perform prediction (intra or inter prediction) per block based on reconstructed images, blocks or respective samples (filtered or unfiltered) to obtain prediction block 365.

[0195] Quando a fatia de vídeo é codificada como uma fatia codificada intra (I), a unidade de predição intra 354 da unidade de aplicação de modo 360 é configurada para gerar o bloco de predição 365 para um bloco de imagem da fatia de vídeo atual com base em um modo de predição intra sinalizado e dados a partir de blocos previamente decodificados da imagem atual. Quando a imagem de vídeo é codificada como uma fatia codificada inter (isto é, B ou P), a unidade de predição inter 344 (por exemplo, unidade de compensação de movimento) da unidade de aplicação de modo 360 é configurada para produzir blocos de predição 365 para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe recebidos a partir da unidade de decodificação de entropia 304. Para predição inter, os blocos de predição podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagens de referência. O decodificador de vídeo 30 pode construir as listas de quadros de referência, Lista 0 e Lista 1, usando técnicas de construção padrão com base em imagens de referência armazenadas no DPB 330. O mesmo ou similar pode ser aplicado para ou por modalidades usando grupos de tiles (por exemplo, grupos de tiles de vídeo) e/ou tiles (por exemplo, tiles de vídeo) em adição ou alternativamente a fatias (por exemplo, fatias de vídeo), por exemplo, um vídeo pode ser codificado usando grupos de tiles I, P ou B e/ou tiles.[0195] When the video slice is encoded as an intra (I) coded slice, the intra prediction unit 354 of the mode application unit 360 is configured to generate the prediction block 365 for an image block of the video slice current based on an intra-signaled prediction mode and data from previously decoded blocks of the current image. When the video image is encoded as an inter coded slice (i.e., B or P), the inter prediction unit 344 (e.g., motion compensation unit) of the mode application unit 360 is configured to produce blocks of prediction 365 for a video block of the current video slice based on the motion vectors and other syntax elements received from the entropy decoding unit 304. For inter prediction, the prediction blocks may be produced from one of the reference images within one of the reference image lists. Video decoder 30 may construct lists of reference frames, List 0 and List 1, using standard construction techniques based on reference images stored in DPB 330. The same or similar may be applied to or across modalities using groups of tiles (e.g. groups of video tiles) and/or tiles (e.g. video tiles) in addition to or alternatively to slices (e.g. video slices), e.g. a video may be encoded using groups of tiles I, P or B and/or tiles.

[0196] A unidade de aplicação de modo 360 pode ser configurada para determinar as informações de predição para um bloco de vídeo da fatia de vídeo atual por analisar os vetores de movimento ou informações relacionadas e outros elementos de sintaxe, e usa as informações de predição para produzir os blocos de predição para o bloco de vídeo atual sendo decodificado. Por exemplo, a unidade de aplicação de modo 360 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, predição intra ou inter) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de predição inter (por exemplo, fatia B, fatia P, ou fatia GPB), informações de construção para uma ou mais das listas de imagens de referência para a fatia, vetores de movimento para cada bloco de vídeo codificado inter da fatia, status de predição inter para cada bloco de vídeo codificado inter da fatia, e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual. O mesmo ou similar pode ser aplicado para ou por modalidades usando grupos de tiles (por exemplo, grupos de tile s de vídeo) e/ou tiles (por exemplo, tiles de vídeo), além ou alternativamente a fatias (por exemplo, fatias de vídeo), por exemplo, um vídeo pode ser codificado usando I, grupos de tiles e/ou tiles P ou B.[0196] The mode application unit 360 may be configured to determine the prediction information for a video block of the current video slice by analyzing the motion vectors or related information and other syntax elements, and uses the prediction information to produce the prediction blocks for the current video block being decoded. For example, the mode application unit 360 uses some of the received syntax elements to determine a prediction mode (e.g., intra or inter prediction) used to encode the video blocks of the video slice, a type of prediction slice. inter (e.g., B-slice, P-slice, or GPB-slice), construction information for one or more of the reference image lists for the slice, motion vectors for each inter-encoded video block of the slice, inter-prediction status for each inter encoded video block of the slice, and other information to decode the video blocks in the current video slice. The same or similar may be applied to or across embodiments using groups of tiles (e.g., groups of video tiles) and/or tiles (e.g., video tiles), in addition to or alternatively to slices (e.g., video slices). video), for example, a video can be encoded using I, tile groups and/or P or B tiles.

[0197] Modalidades do decodificador de vídeo 30, como mostrado na Figura 3, podem ser configuradas para particionar e/ou decodificar a imagem usando fatias (também referidas como fatias de vídeo), em que uma imagem pode ser particionada ou decodificada usando uma ou mais fatias (tipicamente sem sobreposição), e cada fatia pode compreender um ou mais blocos (por exemplo, CTUs) ou um ou mais grupos de blocos (por exemplo, tiles (H.265/HEVC e VVC) ou bricks (VVC)).[0197] Embodiments of the video decoder 30, as shown in Figure 3, may be configured to partition and/or decode the image using slices (also referred to as video slices), wherein an image may be partitioned or decoded using one or more more slices (typically non-overlapping), and each slice may comprise one or more blocks (e.g., CTUs) or one or more groups of blocks (e.g., tiles (H.265/HEVC and VVC) or bricks (VVC)) .

[0198] Modalidades do decodificador de vídeo 30, conforme mostrado na Figura 3, podem ser configuradas para particionar e/ou decodificar a imagem usando grupos de fatias/tiles (também referidos como grupos de tiles de vídeo) e/ou tiles (também referidas como tiles de vídeo), em que uma imagem pode ser particionada ou decodificada usando um ou mais grupos de fatias/tiles (tipicamente não sobrepostos), e cada grupo de fatias/tiles pode compreender, por exemplo, um ou mais blocos (por exemplo, CTUs) ou um ou mais tiles, em que cada tile, por exemplo, pode ser de forma retangular e pode compreender um ou mais blocos (por exemplo, CTUs), por exemplo, blocos completos ou fracionários.[0198] Embodiments of the video decoder 30, as shown in Figure 3, may be configured to partition and/or decode the image using groups of slices/tiles (also referred to as groups of video tiles) and/or tiles (also referred to as such as video tiles), wherein an image may be partitioned or decoded using one or more groups of slices/tiles (typically non-overlapping), and each group of slices/tiles may comprise, for example, one or more blocks (e.g. , CTUs) or one or more tiles, wherein each tile, for example, may be rectangular in shape and may comprise one or more blocks (e.g., CTUs), for example, full or fractional blocks.

[0199] Outras variações do decodificador de vídeo 30 podem ser usadas para decodificar os dados de imagem codificados 21. Por exemplo, o decodificador 30 pode produzir o fluxo de vídeo de saída sem a unidade de filtragem loop 320. Por exemplo, um decodificador não baseado em transformada 30 pode quantizar inversamente o sinal residual diretamente sem a unidade de processamento de transformada inversa 312 para certos blocos ou quadros. Em outra implementação, o decodificador de vídeo 30 pode ter a unidade de quantização inversa 310 e a unidade de processamento de transformada inversa 312 combinadas em uma única unidade.[0199] Other variations of the video decoder 30 may be used to decode the encoded image data 21. For example, the decoder 30 may produce the output video stream without the loop filtering unit 320. For example, a decoder does not transform-based 30 can inverse quantize the residual signal directly without the inverse transform processing unit 312 for certain blocks or frames. In another implementation, the video decoder 30 may have the inverse quantization unit 310 and the inverse transform processing unit 312 combined into a single unit.

[0200] Deve ser entendido que, no codificador 20 e no decodificador 30, um resultado de processamento de uma etapa atual pode ser adicionalmente processado e, em seguida, enviado para o próximo etapa. Por exemplo, após a filtragem de interpolação, derivação de vetor de movimento ou filtragem loop, uma operação adicional, como Corte ou deslocamento, pode ser realizada no resultado de processamento da filtragem de interpolação, derivação de vetor de movimento ou filtragem loop.[0200] It should be understood that, in the encoder 20 and the decoder 30, a processing result of a current step may be further processed and then sent to the next step. For example, after interpolation filtering, motion vector derivation, or loop filtering, an additional operation such as Cut or shift can be performed on the processing result of interpolation filtering, motion vector derivation, or loop filtering.

[0201] Deve ser notado que operações adicionais podem ser aplicadas aos vetores de movimento derivados do bloco atual (incluindo, mas não limitado a vetores de movimento de ponto de controle de modo afim, vetores de movimento de sub-bloco em modos afins, planos, ATMVP, vetores de movimento temporais e assim por diante). Por exemplo, o valor de vetor de movimento é restrito a uma faixa predefinida de acordo com seu bit de representação. Se o bit de representação de vetor de movimento for bitDepth, então a faixa é -2A(bitDepth-1) ~ 2A(bitDepth-1) -1, em que “A” significa exponenciação. Por exemplo, se bitDepth for definido igual a 16, a faixa é -32768 ~ 32767; se bitDepth for definido igual a 18, a faixa é -131072 ~ 131071. Por exemplo, o valor do vetor de movimento derivado (por exemplo, os MVs de quatro sub-blocos 4x4 dentro de um bloco 8x8) é restrito de tal forma que a diferença max entre as partes inteiras dos quatro MVs do sub-bloco 4x4 não é mais do que N pixels, como no máximo 1 pixel. Aqui fornece dois métodos para restringir o vetor de movimento de acordo com bitDepth.[0201] It should be noted that additional operations may be applied to motion vectors derived from the current block (including but not limited to affine mode control point motion vectors, sub-block motion vectors in affine modes, planes , ATMVP, temporal motion vectors, and so on). For example, the motion vector value is restricted to a predefined range according to its representation bit. If the motion vector representation bit is bitDepth, then the range is -2A(bitDepth-1) ~ 2A(bitDepth-1) -1, where “A” stands for exponentiation. For example, if bitDepth is set equal to 16, the range is -32768 ~ 32767; if bitDepth is set equal to 18, the range is -131072 ~ 131071. For example, the value of the derived motion vector (e.g. the MVs of four 4x4 sub-blocks within an 8x8 block) is restricted such that the max difference between the integer parts of the four MVs of the 4x4 sub-block is no more than N pixels, with a maximum of 1 pixel. Here provides two methods to constrain the motion vector according to bitDepth.

[0202] A Figura 4 é um diagrama esquemático de um dispositivo de codificação de vídeo 400 de acordo com uma modalidade da revelação. O dispositivo de codificação de vídeo 400 é adequado para implementar as modalidades reveladas conforme descrito neste documento. Em uma modalidade, o dispositivo de codificação de vídeo 400 pode ser um decodificador, como o decodificador de vídeo 30 da Figura 1A ou um codificador, como o codificador de vídeo 20 da Figura 1A.[0202] Figure 4 is a schematic diagram of a video encoding device 400 in accordance with one embodiment of the disclosure. The video encoding device 400 is suitable for implementing the disclosed embodiments as described herein. In one embodiment, the video encoding device 400 may be a decoder, such as video decoder 30 of Figure 1A, or an encoder, such as video encoder 20 of Figure 1A.

[0203] O dispositivo de codificação de vídeo 400 compreende portas de ingresso 410 (ou portas de entrada 410) e unidades receptoras (Rx) 420 para receber dados; um processador, unidade lógica ou unidade de processamento central (CPU) 430 para processar os dados; unidades transmissoras (Tx) 440 e portas de egresso 450 (ou portas de saída 450) para transmitir os dados; e uma memória 460 para armazenar os dados. O dispositivo de codificação de vídeo 400 também pode compreender componentes ópticos para elétricos (OE) e componentes elétricos para ópticos (EO) acoplados às portas de ingresso 410, as unidades receptoras 420, as unidades transmissoras 440, e as portas de egresso 450 para egresso ou ingresso de sinais ópticos ou elétricos.[0203] Video encoding device 400 comprises ingress ports 410 (or input ports 410) and receiver (Rx) units 420 for receiving data; a processor, logical unit, or central processing unit (CPU) 430 for processing the data; transmitting units (Tx) 440 and egress ports 450 (or output ports 450) for transmitting the data; and a memory 460 for storing the data. The video encoding device 400 may also comprise optical-to-electrical (OE) components and electrical-to-optical (EO) components coupled to the ingress ports 410, the receiver units 420, the transmitter units 440, and the egress ports 450 to egress. or ingress of optical or electrical signals.

[0204] O processador 430 é implementado por hardware e software. O processador 430 pode ser implementado como um ou mais chips de CPU, núcleos (por exemplo, como um processador de múltiplos núcleos), FPGAs, ASICs e DSPs. O processador 430 está em comunicação com as portas de ingresso 410, unidades receptoras 420, unidades transmissoras 440, portas de egresso 450, e memória 460. O processador 430 compreende um módulo de codificação 470. O módulo de codificação 470 implementa as modalidades reveladas descritas acima. Por exemplo, o módulo de codificação 470 implementa, processa, prepara ou fornece as várias operações de codificação. A inclusão do módulo de codificação 470, portanto, fornece uma melhoria substancial para a funcionalidade do dispositivo de codificação de vídeo 400 e efetua uma transformação do dispositivo de codificação de vídeo 400 para um estado diferente. Alternativamente, o módulo de codificação 470 é implementado como instruções armazenadas na memória 460 e executadas pelo processador 430.[0204] Processor 430 is implemented by hardware and software. Processor 430 may be implemented as one or more CPU chips, cores (e.g., as a multi-core processor), FPGAs, ASICs, and DSPs. The processor 430 is in communication with the ingress ports 410, receiving units 420, transmitting units 440, egress ports 450, and memory 460. The processor 430 comprises an encoding module 470. The encoding module 470 implements the disclosed embodiments described. above. For example, the coding module 470 implements, processes, prepares or provides the various coding operations. The inclusion of the encoding module 470 therefore provides a substantial improvement to the functionality of the video encoding device 400 and effects a transformation of the video encoding device 400 to a different state. Alternatively, encoding module 470 is implemented as instructions stored in memory 460 and executed by processor 430.

[0205] A memória 460 pode compreender um ou mais discos, unidades de fita e unidades de estado sólido e pode ser usada como um dispositivo de armazenamento de dados de sobrefluxo, para armazenar programas quando tais programas são selecionados para execução, e para armazenar instruções e dados que são lidos durante a execução do programa. A memória 460 pode ser, por exemplo, volátil e/ou não volátil, e pode ser uma memória somente de leitura (ROM), memória de acesso aleatório (RAM), memória endereçável de conteúdo ternário (TCAM) e/ou memória de acesso aleatório estática (SRAM).[0205] Memory 460 may comprise one or more disks, tape drives, and solid state drives and may be used as an overflow data storage device, to store programs when such programs are selected for execution, and to store instructions and data that is read during program execution. Memory 460 may be, for example, volatile and/or non-volatile, and may be a read-only memory (ROM), random access memory (RAM), ternary content addressable memory (TCAM), and/or access memory static random (SRAM).

[0206] A Figura 5 é um diagrama de blocos simplificado de um aparelho 500 que pode ser usado como um ou ambos o dispositivo de origem 12 e o dispositivo de destino 14 da Figura 1A de acordo com uma modalidade exemplar.[0206] Figure 5 is a simplified block diagram of an apparatus 500 that can be used as either or both the source device 12 and the destination device 14 of Figure 1A in accordance with an exemplary embodiment.

[0207] Um processador 502 no aparelho 500 pode ser uma unidade de processamento central. Alternativamente, o processador 502 pode ser qualquer outro tipo de dispositivo, ou dispositivos múltiplos, capazes de manipular ou processar informações agora existentes ou desenvolvidas no futuro. Embora as implementações reveladas possam ser praticadas com um único processador, como mostrado, por exemplo, o processador 502, vantagens em velocidade e eficiência podem ser alcançadas usando mais de um processador.[0207] A processor 502 in apparatus 500 may be a central processing unit. Alternatively, processor 502 may be any other type of device, or multiple devices, capable of manipulating or processing information now existing or developed in the future. Although the disclosed implementations can be implemented with a single processor, as shown, for example, processor 502, advantages in speed and efficiency can be achieved by using more than one processor.

[0208] Uma memória 504 no aparelho 500 pode ser um dispositivo de memória somente de leitura (ROM) ou um dispositivo de memória de acesso aleatório (RAM) em uma implementação. Qualquer outro tipo adequado de dispositivo de armazenamento pode ser usado como a memória 504. A memória 504 pode incluir código e dados 506 que são acessados pelo processador 502 usando um barramento 512. A memória 504 pode incluir ainda um sistema operacional 508 e programas de aplicativo 510, os programas de aplicativo 510 incluindo pelo menos um programa que permite ao processador 502 realizar os métodos descritos aqui. Por exemplo, os programas de aplicativo 510 podem incluir aplicativos de 1 a N, que incluem ainda um aplicativo de codificação de vídeo que realiza os métodos descritos aqui.[0208] A memory 504 in apparatus 500 may be a read-only memory device (ROM) or a random access memory device (RAM) in one implementation. Any other suitable type of storage device may be used as memory 504. Memory 504 may include code and data 506 that are accessed by processor 502 using a bus 512. Memory 504 may further include an operating system 508 and application programs 510, the application programs 510 including at least one program that allows the processor 502 to perform the methods described herein. For example, application programs 510 may include applications 1 through N, which further include a video encoding application that performs the methods described herein.

[0209] O aparelho 500 também pode incluir um ou mais dispositivos de saída, como um display 518. O display 518 pode ser, em um exemplo, um display sensível ao toque que combina um display com um elemento sensível ao toque que é operável para detectar entradas de toque. O display 518 pode ser acoplado ao processador 502 por meio do barramento 512.[0209] Apparatus 500 may also include one or more output devices, such as a display 518. Display 518 may be, in one example, a touch-sensitive display that combines a display with a touch-sensitive element that is operable to detect touch inputs. Display 518 may be coupled to processor 502 via bus 512.

[0210] Embora representado neste documento como um único barramento, o barramento 512 do aparelho 500 pode ser composto de múltiplos barramentos. Além disso, o armazenamento secundário 514 pode ser diretamente acoplado aos outros componentes do aparelho 500 ou pode ser acessado através de uma rede e pode compreender uma única unidade integrada, como um cartão de memória, ou várias unidades, como múltiplos cartões de memória. O aparelho 500 pode, assim, ser implementado em uma ampla variedade de configurações.[0210] Although represented herein as a single bus, bus 512 of apparatus 500 may be composed of multiple buses. Furthermore, secondary storage 514 may be directly coupled to other components of apparatus 500 or may be accessed via a network and may comprise a single integrated unit, such as a memory card, or multiple units, such as multiple memory cards. The apparatus 500 can thus be implemented in a wide variety of configurations.

Descrição detalhada das modalidades da presente revelaçãoDetailed description of the embodiments of the present disclosure

[0211] Codificação de vídeo pode ser realizada com base no espaço de cor e no formato de cor. Por exemplo, o vídeo colorido desempenha um papel importante em sistemas multimídia, em que vários espaços de cor são usados para representar cores de forma eficiente. Um espaço de cor especifica cores com valores numéricos usando vários componentes. Um espaço de cor popular é o espaço de cor RGB, em que a cor é representada como uma combinação de três valores de componentes de cores primárias (ou seja, vermelho, verde e azul). Para compressão de vídeo colorido, o espaço de cor YCbCr tem sido amplamente usado, conforme descrito em A. Ford e A. Roberts, “Colour space conversions”, University of Westminster, London, Tech. Rep., agosto de 1998.[0211] Video coding can be performed based on color space and color format. For example, color video plays an important role in multimedia systems, where multiple color spaces are used to represent colors efficiently. A color space specifies colors with numerical values using multiple components. A popular color space is the RGB color space, where color is represented as a combination of three primary color component values (i.e., red, green, and blue). For color video compression, the YCbCr color space has been widely used, as described in A. Ford and A. Roberts, “Color space conversions,” University of Westminster, London, Tech. Rep., August 1998.

[0212] YCbCr pode ser facilmente convertido do espaço de cor RGB por meio de uma transformação linear e a redundância entre diferentes componentes, ou seja, a redundância de componentes cruzados, é significativamente reduzida no espaço de cor YCbCr. Uma vantagem do YCbCr é a compatibilidade retroativa com TV em preto e branco, pois o sinal Y transmite informações de luminância. Além disso, a largura de banda de crominância pode ser reduzida pela subamostragem dos componentes Cb e Cr no formato de amostragem de croma 4:2:0 com impacto subjetivo significativamente menor do que a subamostragem no espaço de cor RGB. Devido a essas vantagens, o YCbCr tem sido o principal espaço de cor na compressão de vídeo. Existem também outros espaços de cor, como YCoCg, usados na compressão de vídeo. Nesta revelação, independentemente do espaço de cor real usado, o luma (ou L ou Y) e dois croma (Cb e Cr) são usados para representar os três componentes de cor no esquema de compressão de vídeo.[0212] YCbCr can be easily converted from the RGB color space through a linear transformation and the redundancy between different components, i.e., cross-component redundancy, is significantly reduced in the YCbCr color space. An advantage of YCbCr is backward compatibility with black and white TV, as the Y signal transmits luminance information. Furthermore, chrominance bandwidth can be reduced by subsampling the Cb and Cr components in the 4:2:0 chroma sampling format with significantly less subjective impact than subsampling in the RGB color space. Because of these advantages, YCbCr has been the main color space in video compression. There are also other color spaces such as YCoCg used in video compression. In this disclosure, regardless of the actual color space used, the luma (or L or Y) and two chroma (Cb and Cr) are used to represent the three color components in the video compression scheme.

[0213] Por exemplo, quando a estrutura de amostragem de formato de croma é amostragem 4:2:0, cada um dos dois arranjos croma tem metade da altura e metade da largura do arranjo luma. As localizações relativas nominais verticais e horizontais das amostras de luma e croma nas imagens são mostradas na Figura 9A. A Figura 9B ilustra um exemplo de amostragem 4:2:0. A Figura 9B ilustra um exemplo de um bloco de luma e um bloco de croma colocalizados. Se o formato de vídeo for YUV4:2:0, haverá um bloco de luma de 16x16 e dois blocos de croma de 8x8.[0213] For example, when the chroma format sampling frame is 4:2:0 sampling, each of the two chroma arrays is half the height and half the width of the luma array. The nominal vertical and horizontal relative locations of the luma and chroma samples in the images are shown in Figure 9A. Figure 9B illustrates an example of 4:2:0 sampling. Figure 9B illustrates an example of a co-located luma block and a chroma block. If the video format is YUV4:2:0, there will be one 16x16 luma block and two 8x8 chroma blocks.

[0214] Especificamente, um bloco de codificação ou um bloco de transformada contém um bloco de luma e dois blocos de croma.[0214] Specifically, a coding block or a transform block contains one luma block and two chroma blocks.

[0215] Como mostrado, o bloco de luma contém quatro vezes mais amostras do que o bloco de croma. Especificamente, o bloco de croma contém N número de amostras por N número de amostras, enquanto o bloco de luma contém 2N número de amostras por 2N número de amostras. Portanto, o bloco de luma é quatro vezes a resolução do bloco de croma. Por exemplo, quando o formato YUV4:2:0 é usado, as amostras de luma podem ser reduzidas por um fator de quatro (por exemplo, largura por dois e altura por dois). YUV é um sistema de codificação de cor que emprega um espaço de cor em termos de componentes de luma Y e dois componentes de crominância U e V.[0215] As shown, the luma block contains four times as many samples as the chroma block. Specifically, the chroma block contains N number of samples by N number of samples, while the luma block contains 2N number of samples by 2N number of samples. Therefore, the luma block is four times the resolution of the chroma block. For example, when the YUV4:2:0 format is used, luma samples can be reduced by a factor of four (for example, width by two and height by two). YUV is a color coding system that employs a color space in terms of luma components Y and two chrominance components U and V.

Cabeçalho de imagem:Image header:

[0216] O conceito de cabeçalho de imagem foi recentemente introduzido no padrão VVC (conforme apresentado em JVET-P1006, P0095, P0120, P0239). Consulte a seção 7.3.2.6 no JVET-P2001-VE para a sintaxe do cabeçalho de imagem.[0216] The image header concept has recently been introduced into the VVC standard (as presented in JVET-P1006, P0095, P0120, P0239). See section 7.3.2.6 in JVET-P2001-VE for image header syntax.

[0217] No atual projeto do VVC, um conceito obrigatório de cabeçalho de imagem é proposto para ser transmitido uma vez por imagem como a primeira unidade VCL NAL de uma imagem. O projeto atual do VVC também move alguns dos elementos de sintaxe atualmente presentes no cabeçalho de fatia para esse cabeçalho de imagem. Elementos de sintaxe que funcionalmente só precisam ser transmitidos uma vez por imagem são movidos para o cabeçalho de imagem em vez de serem transmitidos várias vezes para uma determinada imagem, por exemplo, elementos de sintaxe no cabeçalho de fatia são transmitidos uma vez por fatia. Há um benefício observado ao mover elementos de sintaxe a partir do cabeçalho de fatia, pois a computação necessária para o processamento de cabeçalho de fatia pode ser um fator limitante para a taxa de transferência geral.[0217] In the current VVC design, a mandatory image header concept is proposed to be transmitted once per image as the first VCL NAL unit of an image. The current VVC design also moves some of the syntax elements currently present in the slice header to this image header. Syntax elements that functionally only need to be passed once per image are moved to the image header instead of being passed multiple times for a given image, for example, syntax elements in the slice header are passed once per slice. There is a benefit noted when moving syntax elements from the slice header, as the computation required for slice header processing can be a limiting factor for overall throughput.

[0218] Para o filtro loop adaptativo (ALF), os seguintes elementos de sintaxe (elementos de sintaxe relacionados ao ALF) foram introduzidos no cabeçalho de imagem: 7.3.2.6 Sintaxe de RBSP de cabeçalho de imagem [0218] For the adaptive loop filter (ALF), the following syntax elements (ALF-related syntax elements) have been introduced into the image header: 7.3.2.6 Image header RBSP syntax

[0219] Aqui, os elementos de sintaxe são pic_alf_enabled_present_flag, pic_alf_enabled_flag, pic_num_alf_aps_ids_luma, pic_alf_aps_id_luma [i], pic_alf_chroma_idc, pic_alf_aps_id_chroma. Esses elementos de sintaxe são fornecidos no cabeçalho de imagem, em que sua presença depende potencialmente de outros elementos de sintaxe que foram sinalizados anteriormente ou de outra forma. Por exemplo, sps_alf_enabled_flag e ChromaArrayType são outros elementos de sintaxe.[0219] Here, the syntax elements are pic_alf_enabled_present_flag, pic_alf_enabled_flag, pic_num_alf_aps_ids_luma, pic_alf_aps_id_luma[i], pic_alf_chroma_idc, pic_alf_aps_id_chroma. These syntax elements are provided in the image header, where their presence potentially depends on other syntax elements that have been signaled previously or otherwise. For example, sps_alf_enabled_flag and ChromaArrayType are other syntax elements.

[0220] A seguir, qualquer elemento de sintaxe indicado com um descritor em uma tabela e/ou fornecido em letras em negrito é um elemento de sintaxe que é sinalizado ou fornecido na estrutura de sintaxe atual.[0220] In the following, any syntax element indicated with a descriptor in a table and/or provided in bold letters is a syntax element that is signaled or provided in the current syntax structure.

[0221] No cabeçalho de fatia, as seguintes alterações de sintaxe são introduzidas para o ALF 7.3.7.1 Sintaxe de cabeçalho de fatia geral [0221] In the slice header, the following syntax changes are introduced for ALF 7.3.7.1 General slice header syntax

[0222] A semântica das entradas de cabeçalho de imagem ALF e entradas de cabeçalho de fatia são as seguintes:[0222] The semantics of the ALF image header entries and slice header entries are as follows:

[0223] pic_alf_enabled_present_flag igual a 1 especifica que pic_alf_enabled_flag, pic_num_alf_aps_ids_luma, pic_alf_aps_id_luma [i], pic_alf_chroma_idc e pic_alf_aps_id_chroma estão presentes no PH. pic_alf_enabled_present_flag igual a 0 especifica que pic_alf_enabled_flag, pic_num_alf_aps_ids_luma, pic_alf_aps_id_luma [i], pic_alf_chroma_idc e pic_alf_aps_id_chroma não estão presentes no PH. Quando pic_alf_enabled_present_flag não está presente, infere-se que é igual a 0.[0223] pic_alf_enabled_present_flag equal to 1 specifies that pic_alf_enabled_flag, pic_num_alf_aps_ids_luma, pic_alf_aps_id_luma [i], pic_alf_chroma_idc and pic_alf_aps_id_chroma are present in the PH. pic_alf_enabled_present_flag equal to 0 specifies that pic_alf_enabled_flag, pic_num_alf_aps_ids_luma, pic_alf_aps_id_luma[i], pic_alf_chroma_idc, and pic_alf_aps_id_chroma are not present in the PH. When pic_alf_enabled_present_flag is not present, it is inferred to be equal to 0.

[0224] pic_alf_enabled_flag igual a 1 especifica que o filtro loop adaptativo está habilitado para todas as fatias associadas ao PH e pode ser aplicado ao componente de cor Y, Cb ou Cr nas fatias. pic_alf_enabled_flag igual a 0 especifica que o filtro loop adaptativo pode ser desabilitado para um, ou mais, ou todas as fatias associadas ao PH. Quando não está presente, pic_alf_enabled_flag é inferido como igual a 0.[0224] pic_alf_enabled_flag equal to 1 specifies that the adaptive loop filter is enabled for all slices associated with the PH and can be applied to the Y, Cb, or Cr color component in the slices. pic_alf_enabled_flag equal to 0 specifies that the adaptive loop filter can be disabled for one, or more, or all slices associated with the PH. When not present, pic_alf_enabled_flag is inferred to be equal to 0.

[0225] pic_num_alf_aps_ids_luma especifica o número de ALF APSs aos quais as fatias associadas ao PH se referem.[0225] pic_num_alf_aps_ids_luma specifies the number of ALF APSs to which the PH-associated slices refer.

[0226] pic_alf_aps_id_luma [i] especifica o adapter_parameter_set_id do i-ésimoALF APS ao qual o componente de luma das fatias associadas ao PH se refere.[0226] pic_alf_aps_id_luma [i] specifies the adapter_parameter_set_id of the ith ALF APS to which the luma component of the slices associated with the PH refers.

[0227] O valor de alf_luma_filter_signal_flag da unidade APS NAL tendo aps_params_type igual a ALF_APS e adapter_parameter_set_id igual a pic_alf_aps_id_luma [i] deve ser igual a 1.[0227] The value of alf_luma_filter_signal_flag of the APS NAL unit having aps_params_type equal to ALF_APS and adapter_parameter_set_id equal to pic_alf_aps_id_luma [i] must be equal to 1.

[0228] pic_alf_chroma_idc igual a 0 especifica que o filtro loop adaptativo não é aplicado aos componentes de cor Cb e Cr. pic_alf_chroma_idc igual a 1 indica que o filtro loop adaptativo é aplicado ao componente de cor Cb. pic_alf_chroma_idc igual a 2 indica que o filtro loop adaptativo é aplicado ao componente de cor Cr. pic_alf_chroma_idc igual a 3 indica que o filtro loop adaptativo é aplicado aos componentes de cor Cb e Cr. Quando pic_alf_chroma_idc não está presente, infere-se que é igual a 0.[0228] pic_alf_chroma_idc equal to 0 specifies that the adaptive loop filter is not applied to the Cb and Cr color components. pic_alf_chroma_idc equal to 1 indicates that the adaptive loop filter is applied to the Cb color component. pic_alf_chroma_idc equal to 2 indicates that the adaptive loop filter is applied to the Cr color component. pic_alf_chroma_idc equal to 3 indicates that the adaptive loop filter is applied to the Cb and Cr color components. When pic_alf_chroma_idc is not present, it is inferred to be equal to 0.

[0229] pic_alf_aps_id_chroma especifica o adapter_parameter_set_id do ALF APS ao qual o componente de croma das fatias associadas ao PH se refere.[0229] pic_alf_aps_id_chroma specifies the adapter_parameter_set_id of the ALF APS to which the chroma component of the slices associated with the PH refers.

[0230] O valor de alf_chroma_filter_signal_flag da unidade APS NAL tendo aps_params_type igual a ALF_APS e adapter_parameter_set_id igual a pic_alf_aps_id_chroma deve ser igual a 1.[0230] The value of alf_chroma_filter_signal_flag of the APS NAL unit having aps_params_type equal to ALF_APS and adapter_parameter_set_id equal to pic_alf_aps_id_chroma must be equal to 1.

[0231] slice_alf_enabled_flag igual a 1 especifica que o filtro loop adaptativo está habilitado e pode ser aplicado ao componente de cor Y, Cb ou Cr em uma fatia. slice_alf_enabled_flag igual a 0 especifica que o filtro loop adaptativo está desabilitado para todos os componentes de cor em uma fatia. Quando não estiver presente, o valor de slice_alf_enabled_flag é inferido como igual a pic_alf_enabled_flag.[0231] slice_alf_enabled_flag equal to 1 specifies that the adaptive loop filter is enabled and can be applied to the Y, Cb, or Cr color component in a slice. slice_alf_enabled_flag equal to 0 specifies that the adaptive loop filter is disabled for all color components in a slice. When not present, the value of slice_alf_enabled_flag is inferred to be equal to pic_alf_enabled_flag.

[0232] slice_num_alf_aps_ids_luma especifica o número de ALF APSs aos quais a fatia se refere. Quando slice_alf_enabled_flag é igual a 1 e slice_num_alf_aps_ids_luma não está presente, o valor de slice_num_alf_aps_ids_luma é inferido como igual ao valor de pic_num_alf_aps_ids_luma.[0232] slice_num_alf_aps_ids_luma specifies the number of ALF APSs to which the slice refers. When slice_alf_enabled_flag is equal to 1 and slice_num_alf_aps_ids_luma is not present, the value of slice_num_alf_aps_ids_luma is inferred to be equal to the value of pic_num_alf_aps_ids_luma.

[0233] slice_alf_aps_id_luma [i] especifica o adapter_parameter_set_id do i-ésimoALF APS ao qual o componente de luma da fatia se refere. O TemporalId da unidade APS NAL tendo aps_params_type igual a ALF_APS e adapter_parameter_set_id igual a slice_alf_aps_id_luma [i] deve ser menor ou igual ao TemporalId da unidade NAL de fatia codificada. Quando slice_alf_enabled_flag é igual a 1 e slice_alf_aps_id_luma [i] não está presente, o valor de slice_alf_aps_id_luma [i] é inferido como igual ao valor de pic_alf_aps_id_luma [i].[0233] slice_alf_aps_id_luma [i] specifies the adapter_parameter_set_id of the ith ALF APS to which the slice's luma component refers. The TemporalId of the APS NAL unit having aps_params_type equal to ALF_APS and adapter_parameter_set_id equal to slice_alf_aps_id_luma[i] must be less than or equal to the TemporalId of the encoded slice NAL unit. When slice_alf_enabled_flag is equal to 1 and slice_alf_aps_id_luma[i] is not present, the value of slice_alf_aps_id_luma[i] is inferred to be equal to the value of pic_alf_aps_id_luma[i].

[0234] O valor de alf_luma_filter_signal_flag da unidade APS NAL tendo aps_params_type igual a ALF_APS e adapter_parameter_set_id igual a slice_alf_aps_id_luma [i] deve ser igual a 1.[0234] The value of alf_luma_filter_signal_flag of the APS NAL unit having aps_params_type equal to ALF_APS and adapter_parameter_set_id equal to slice_alf_aps_id_luma [i] must be equal to 1.

[0235] slice_alf_chroma_idc igual a 0 especifica que o filtro loop adaptativo não é aplicado aos componentes de cor Cb e Cr. slice_alf_chroma_idc igual a 1 indica que o filtro loop adaptativo é aplicado ao componente de cor Cb. slice_alf_chroma_idc igual a 2 indica que o filtro loop adaptativo é aplicado ao componente de cor Cr. slice_alf_chroma_idc igual a 3 indica que o filtro loop adaptativo é aplicado aos componentes de cor Cb e Cr. Quando slice_alf_chroma_idc não está presente, infere-se que seja igual a pic_alf_chroma_idc.[0235] slice_alf_chroma_idc equal to 0 specifies that the adaptive loop filter is not applied to the Cb and Cr color components. slice_alf_chroma_idc equal to 1 indicates that the adaptive loop filter is applied to the Cb color component. slice_alf_chroma_idc equal to 2 indicates that the adaptive loop filter is applied to the Cr color component. slice_alf_chroma_idc equal to 3 indicates that the adaptive loop filter is applied to the Cb and Cr color components. When slice_alf_chroma_idc is not present, it is inferred to be equal to pic_alf_chroma_idc.

[0236] slice_alf_aps_id_chroma especifica o adapter_parameter_set_id do ALF APS ao qual o componente de croma da fatia se refere. O TemporalId da unidade APS NAL tendo aps_params_type igual a ALF_APS e adapter_parameter_set_id igual a slice_alf_aps_id_chroma deve ser menor ou igual ao TemporalId da unidade NAL de fatia codificada. Quando slice_alf_enabled_flag é igual a 1 e slice_alf_aps_id_chroma não está presente, o valor de slice_alf_aps_id_chroma é inferido como igual ao valor de pic_alf_aps_id_chroma.[0236] slice_alf_aps_id_chroma specifies the adapter_parameter_set_id of the ALF APS to which the slice's chroma component refers. The TemporalId of the APS NAL unit having aps_params_type equal to ALF_APS and adapter_parameter_set_id equal to slice_alf_aps_id_chroma must be less than or equal to the TemporalId of the encoded slice NAL unit. When slice_alf_enabled_flag is equal to 1 and slice_alf_aps_id_chroma is not present, the value of slice_alf_aps_id_chroma is inferred to be equal to the value of pic_alf_aps_id_chroma.

[0237] O valor de alf_chroma_filter_signal_flag da unidade APS NAL tendo aps_params_type igual a ALF_APS e adapter_parameter_set_id igual a slice_alf_aps_id_chroma deve ser igual a 1.[0237] The value of alf_chroma_filter_signal_flag of the APS NAL unit having aps_params_type equal to ALF_APS and adapter_parameter_set_id equal to slice_alf_aps_id_chroma must be equal to 1.

[0238] Conforme descrito acima, quando todas as fatias têm os mesmos dados de filtragem ALF, em vez de transmitir os dados de filtragem ALF separadamente em cada um dos cabeçalhos de fatia, os dados comuns de filtragem ALF em todas as fatias são transmitidos apenas uma vez no cabeçalho de imagem e como um resultado, todas as fatias herdam os dados de filtragem ALF do cabeçalho de imagem. Desta forma, o overhead do cabeçalho de fatia (em termos de número de bits) é reduzido.[0238] As described above, when all slices have the same ALF filtering data, instead of transmitting the ALF filtering data separately in each of the slice headers, the common ALF filtering data in all slices is transmitted only once in the image header and as a result, all slices inherit the ALF filtering data from the image header. In this way, the overhead of the slice header (in terms of number of bits) is reduced.

[0239] A presente revelação reúne todos os elementos de sintaxe comuns de CCALF que são sinalizados em cada cabeçalho de fatia de uma imagem e são definidos no cabeçalho de imagem. A presente revelação tenta estender o mesmo princípio de sinalização de ALF também para o ALF de componente cruzado (CCALF). Atualmente, para o CCALF, cada cabeçalho de fatia deve transmitir as seguintes informações da maneira convencional: 7.3.7.1 Sintaxe de cabeçalho de fatia geral [0239] The present disclosure brings together all of the common syntax elements of CCALF that are signaled in each slice header of an image and are defined in the image header. The present disclosure attempts to extend the same ALF signaling principle also to cross-component ALF (CCALF). Currently, for CCALF, each slice header must convey the following information in the conventional way: 7.3.7.1 General slice header syntax

[0240] Portanto, cada fatia deve transmitir todos os elementos de sintaxe acima, mesmo que as informações sejam as mesmas em todas as fatias de uma determinada imagem.[0240] Therefore, each slice must convey all of the above syntax elements, even if the information is the same in all slices of a given image.

[0241] Portanto, para reduzir o overhead do cabeçalho de fatia, a presente invenção define entradas de cabeçalho de imagem também para CCALF. 1.1 Problema(s) técnico(s) a ser(em) resolvido(s) pela presente revelação[0241] Therefore, to reduce slice header overhead, the present invention defines image header entries for CCALF as well. 1.1 Technical problem(s) to be resolved by this disclosure

[0242] A presente revelação introduz entradas de cabeçalho de imagem para CCALF para reduzir o overhead de fatia. Conforme mostrado na Figura 7, a fatia 1 até a fatia N contém as mesmas informações de filtro CCALF 7001. Portanto, cada cabeçalho de fatia tem que transmitir os mesmos dados resultando em redundância e overhead de sinalização de bit de fatia. Como mostrado na Figura 8, para remover esta redundância nos dados de CCALF, são introduzidas entradas de cabeçalho de imagem 8001 para CCALF que definem os dados de CCALF comuns (também chamados de informações relacionadas a CCALF) e todas as fatias podem então herdar essas informações comuns 8002. Portanto, isso remove a redundância na sinalização e reduz o overhead de análise de cabeçalhos de fatia. 1.2 Modalidades da implementação técnica da presente revelação[0242] The present disclosure introduces image header entries to CCALF to reduce slicing overhead. As shown in Figure 7, slice 1 through slice N contain the same CCALF 7001 filter information. Therefore, each slice header has to transmit the same data resulting in redundancy and slice bit signaling overhead. As shown in Figure 8, to remove this redundancy in the CCALF data, image header entries 8001 are introduced for CCALF that define the common CCALF data (also called CCALF-related information) and all slices can then inherit this information common 8002. Therefore, this removes redundancy in signaling and reduces the overhead of parsing slice headers. 1.2 Embodiments of the technical implementation of the present disclosure

[0243] Note que cada uma das modalidades abaixo reveladas como "alternativas" pode ser fornecida em combinação com qualquer uma das outras modalidades (alternativas) e pode ser implementada especificamente usando qualquer um dos dispositivos descritos acima, como um codificador e/ou um decodificador como referidos nas figuras acima. 1.2.1. Modalidade Alternativa 1[0243] Note that each of the embodiments disclosed below as "alternatives" may be provided in combination with any of the other (alternative) embodiments and may be specifically implemented using any of the devices described above, such as an encoder and/or a decoder as referred to in the figures above. 1.2.1. Alternative Modality 1

[0244] Na primeira etapa, é introduzido um novo elemento de sintaxe do conjunto de parâmetros de sequência (SPS) chamado “segundo elemento de sintaxe” (denotado abaixo, por exemplo, com sps_ccalf_enabled_flag) que controla se o CCALF está habilitado ou não. A sintaxe é mostrada abaixo: o segundo elemento de sintaxe (sps_ccalf_enabled_flag) desacopla a operação ALF e a operação CCALF completamente e, portanto, permite que ALF e CCALF sejam ligados e desligados separadamente no nível de sequência. 7.3.2.3 Sintaxe de RBSP de conjunto de parâmetros de sequência [0244] In the first step, a new sequence parameter set (SPS) syntax element called “second syntax element” (denoted below, for example, with sps_ccalf_enabled_flag) is introduced that controls whether CCALF is enabled or not. The syntax is shown below: The second syntax element (sps_ccalf_enabled_flag) decouples the ALF operation and the CCALF operation completely and therefore allows ALF and CCALF to be turned on and off separately at the sequence level. 7.3.2.3 String Parameter Set RBSP Syntax

[0245] Aqui, sps_alf_enabled_flag é um exemplo de um primeiro elemento de sintaxe que também é fornecido na sintaxe de nível de SPS. O primeiro e o segundo elemento de sintaxe podem ser sinalizados independentemente um do outro, conforme fornecido exemplificativamente na tabela acima. No entanto, como por exemplo fornecido na modalidade alternativa 5 abaixo, o segundo elemento de sintaxe também pode ser sinalizado dependendo, por exemplo, de um valor que o primeiro elemento de sintaxe tenha ou receba.[0245] Here, sps_alf_enabled_flag is an example of a first syntax element that is also provided in the SPS level syntax. The first and second syntax element can be signaled independently of each other, as provided exemplarily in the table above. However, as for example provided in alternative embodiment 5 below, the second syntax element may also be signaled depending, for example, on a value that the first syntax element has or receives.

[0246] As novas entradas de cabeçalho de imagem (marcadas em negrito e itálico) são mostradas abaixo: 7.3.2.6 Sintaxe de RBSP de cabeçalho de imagem [0246] The new image header entries (marked in bold italics) are shown below: 7.3.2.6 Image Header RBSP Syntax

[0247] Aqui, elementos de sintaxe adicionais são introduzidos no cabeçalho de imagem, em que esses elementos de sintaxe adicionais só podem estar presentes se o primeiro e/ou segundo elementos de sintaxe assumirem valores específicos. Isso é indicado com a sintaxe “if”, dependendo do valor do primeiro elemento de sintaxe e/ou do segundo elemento de sintaxe.[0247] Here, additional syntax elements are introduced into the image header, wherein these additional syntax elements can only be present if the first and/or second syntax elements take on specific values. This is indicated with the “if” syntax, depending on the value of the first syntax element and/or the second syntax element.

[0248] Especificamente, no cabeçalho de imagem, um terceiro elemento de sintaxe (indicado aqui com pic_ccalf_enabled_flag) pode ser fornecido dependendo do valor do segundo elemento de sintaxe. Este elemento de sintaxe pode indicar (como explicado abaixo) se o CCALF deve ser habilitado para a imagem atual.[0248] Specifically, in the image header, a third syntax element (indicated here with pic_ccalf_enabled_flag) may be provided depending on the value of the second syntax element. This syntax element can indicate (as explained below) whether CCALF should be enabled for the current image.

[0249] Um quarto elemento de sintaxe (como pic_cross_component_alf_cb_enabled_flag) pode ser adicionalmente fornecido no cabeçalho de imagem dependendo do segundo elemento de sintaxe.[0249] A fourth syntax element (such as pic_cross_component_alf_cb_enabled_flag) may be additionally provided in the image header depending on the second syntax element.

[0250] Dependendo, por exemplo, do valor do segundo elemento de sintaxe e/ou do valor do terceiro elemento de sintaxe e/ou do quarto elemento de sintaxe, pode ser fornecido um quinto elemento de sintaxe, como pic_cross_component_alf_cb_aps_id. Além disso, um sexto elemento de sintaxe, denotado aqui com pic_cross_component_cb_filters_signalled_minus1 , pode ser fornecido no cabeçalho de imagem, potencialmente também dependendo do segundo elemento de sintaxe e/ou do terceiro elemento de sintaxe e/ou do quarto elemento de sintaxe.[0250] Depending, for example, on the value of the second syntax element and/or the value of the third syntax element and/or the fourth syntax element, a fifth syntax element may be provided, such as pic_cross_component_alf_cb_aps_id. Additionally, a sixth syntax element, denoted here with pic_cross_component_cb_filters_signalled_minus1 , may be provided in the image header, potentially also depending on the second syntax element and/or the third syntax element and/or the fourth syntax element.

[0251] Em paralelo a isso, um sétimo elemento de sintaxe, denotado acima com pic_cross_component_alf_cr_enabled_flag, pode ser fornecido, dependendo do segundo elemento de sintaxe e/ou do terceiro elemento de sintaxe.[0251] In parallel to this, a seventh syntax element, denoted above with pic_cross_component_alf_cr_enabled_flag, may be provided, depending on the second syntax element and/or the third syntax element.

[0252] Dependendo, por exemplo, do valor do sétimo elemento de sintaxe, mas potencialmente também dependendo do segundo elemento de sintaxe e/ou do terceiro elemento de sintaxe, um oitavo (como pic_cross_component_alf_cr_aps_id) e/ou um nono elemento de sintaxe (como pic_cross_component_cr_filters_signalled_minus1) podem ser fornecidos.[0252] Depending, for example, on the value of the seventh syntax element, but potentially also depending on the second syntax element and/or the third syntax element, an eighth (such as pic_cross_component_alf_cr_aps_id) and/or a ninth syntax element (such as pic_cross_component_cr_filters_signalled_minus1) can be provided.

[0253] O significado do primeiro ao nono elemento de sintaxe e também o significado do décimo ao décimo quarto elemento de sintaxe especificado abaixo serão explicados posteriormente.[0253] The meaning of the first to ninth syntax element and also the meaning of the tenth to fourteenth syntax element specified below will be explained later.

[0254] A sintaxe de cabeçalho de fatia é a seguinte: 7.3.7.1 Sintaxe de cabeçalho de fatia geral [0254] The slice header syntax is as follows: 7.3.7.1 General slice header syntax

[0255] Conforme fornecido acima, em algumas modalidades, os elementos de sintaxe adicionais fornecidos na sintaxe de cabeçalho de fatia podem ser fornecidos apenas se o primeiro e/ou segundo elemento de sintaxe e/ou um ou mais elementos de sintaxe adicionais fornecidos no cabeçalho de imagem assumirem valores apropriados.[0255] As provided above, in some embodiments, additional syntax elements provided in the slice header syntax may be provided only if the first and/or second syntax element and/or one or more additional syntax elements provided in the header images assume appropriate values.

[0256] Especificamente, como mostrado acima, um décimo elemento de sintaxe, como slice_cross_component_alf_cb_enabled_flag , pode ser fornecido dependendo do valor do segundo elemento de sintaxe e potencialmente também dependendo de um décimo quarto elemento de sintaxe (opcionalmente fornecido no nível de SPS e indicado aqui com ChromaArrayType) não sendo igual a 0. Além disso, pode ser fornecido um décimo primeiro elemento de sintaxe que é indicado acima com slice_cross_component_alf_cb_aps_id , dependendo do valor do segundo elemento de sintaxe e/ou dependendo do valor do décimo elemento de sintaxe.[0256] Specifically, as shown above, a tenth syntax element, such as slice_cross_component_alf_cb_enabled_flag , may be provided depending on the value of the second syntax element and potentially also depending on a fourteenth syntax element (optionally provided at the SPS level and indicated here with ChromaArrayType) not being equal to 0. Additionally, an eleventh syntax element that is indicated above with slice_cross_component_alf_cb_aps_id may be provided, depending on the value of the second syntax element and/or depending on the value of the tenth syntax element.

[0257] Correspondentemente, um décimo segundo elemento de sintaxe, como slice_cross_component_alf_cr_enabled_flag , pode ser fornecido dependendo do valor do segundo elemento de sintaxe e potencialmente também dependendo do décimo quarto elemento de sintaxe não ser igual a 0. Além disso, um décimo terceiro elemento de sintaxe pode ser fornecido, indicado acima com slice_cross_component_alf_cr_aps_id , dependendo do valor do segundo elemento de sintaxe e/ou dependendo do valor do décimo segundo elemento de sintaxe.[0257] Correspondingly, a twelfth syntax element, such as slice_cross_component_alf_cr_enabled_flag , may be provided depending on the value of the second syntax element and potentially also depending on the fourteenth syntax element not being equal to 0. Additionally, a thirteenth syntax element of syntax can be provided, indicated above with slice_cross_component_alf_cr_aps_id , depending on the value of the second syntax element and/or depending on the value of the twelfth syntax element.

[0258] No entanto, também está incluído que os elementos de sintaxe (especificamente o décimo ao décimo terceiro elementos de sintaxe) fornecidos no cabeçalho de fatia podem estar presentes independentemente do valor de outros elementos de sintaxe, como o segundo elemento de sintaxe ou o décimo quarto elemento de sintaxe. Especificamente, pode ser fornecido que os elementos de sintaxe pertencentes a CC-ALF no cabeçalho de fatia (como, por exemplo, o décimo ao décimo terceiro elementos de sintaxe) assumem um valor padrão se o primeiro elemento de sintaxe ou o segundo elemento de sintaxe ou outro elemento de sintaxe indica que CC-ALF não está habilitado.[0258] However, it is also included that the syntax elements (specifically the tenth through thirteenth syntax elements) provided in the slice header may be present independently of the value of other syntax elements, such as the second syntax element or the fourteenth syntax element. Specifically, it may be provided that syntax elements belonging to CC-ALF in the slice header (such as, for example, the tenth through thirteenth syntax elements) take a default value whether the first syntax element or the second syntax element or other syntax element indicates that CC-ALF is not enabled.

[0259] A semântica dos elementos de sintaxe recém-introduzidos é a seguinte:[0259] The semantics of the newly introduced syntax elements are as follows:

[0260] O segundo elemento de sintaxe é indicado aqui com sps_ccalf_enabled_flag. Isso é apenas exemplificativo e não limita a revelação. Nas modalidades, o valor do segundo elemento de sintaxe igual a 0 especifica que o filtro loop adaptativo de componente cruzado está desabilitado para uma sequência de vídeo atual. O valor do segundo elemento de sintaxe igual a 1 especifica que o filtro loop adaptativo de componente cruzado está habilitado para uma sequência de vídeo atual.[0260] The second syntax element is indicated here with sps_ccalf_enabled_flag. This is just an example and does not limit the revelation. In embodiments, the value of the second syntax element equal to 0 specifies that the cross-component adaptive loop filter is disabled for a current video sequence. The second syntax element's value of 1 specifies that the cross-component adaptive loop filter is enabled for a current video sequence.

[0261] pic_ccalf_enabled_present_flag igual a 1 especifica que pic_ccalf_enabled_flag, pic_cross_component_alf_cb_enabled_flag, pic_cross_component_alf_cb_aps_id, pic_cross_component_alf_cb_filter_count_minus1, pic_cross_component_alf_cr_enabled_flag, pic_cross_component_alf_cr_aps_id e pic_cross_component_alf_cr_filter_count_minus1 estão presentes no PH (cabeçalho de imagem). pic_alf_enabled_present_flag igual a 0 especifica que pic_ccalf_enabled_flag, pic_cross_component_alf_cb_enabled_flag, pic_cross_component_alf_cb_aps_id, pic_cross_component_alf_cb_filter_count_minus1, pic_cross_component_alf_cr_enabled_flag, pic_cross_component_alf_cr_aps_id e pic_cross_component_alf_cr_filter_count_minus1 não estão presents no PH. Quando pic_ccalf_enabled_present_flag não está presente, infere-se que é igual a 0.[0261] pic_ccalf_enabled_present_flag equal to 1 specifies that pic_ccalf_enabled_flag, pic_cross_component_alf_cb_enabled_flag, pic_cross_component_alf_cb_aps_id, pic_cross_component_alf_cb_filter_count_minus1, pic_cross_component_alf_cr_enabled_flag, alf_cr_aps_id and pic_cross_component_alf_cr_filter_count_minus1 are present in the PH (image header). pic_alf_enabled_present_flag equal to 0 specifies that pic_ccalf_enabled_flag, pic_cross_component_alf_cb_enabled_flag, pic_cross_component_alf_cb_aps_id, pic_cross_component_alf_cb_filter_count_minus1, pic_cross_component_alf_cr_enabled_flag, s_id and pic_cross_component_alf_cr_filter_count_minus1 are not present in the PH. When pic_ccalf_enabled_present_flag is not present, it is inferred to be equal to 0.

[0262] O valor do terceiro elemento de sintaxe (denotado aqui com pic_ccalf_enabled_flag) igual a 1 especifica que o filtro loop adaptativo de componente cruzado está habilitado para todas as fatias associadas ao PH e pode ser aplicado ao componente de cor Cb ou Cr nas fatias. O valor do terceiro elemento de sintaxe igual a 0 especifica que o filtro loop adaptativo de componente cruzado pode ser desabilitado para uma, ou mais, ou todas as fatias associadas ao PH (cabeçalho de imagem). Quando não estiver presente, o valor do terceiro elemento de sintaxe pode ser inferido igual a 0.[0262] The value of the third syntax element (denoted here with pic_ccalf_enabled_flag) equal to 1 specifies that the cross-component adaptive loop filter is enabled for all slices associated with the PH and can be applied to the Cb or Cr color component in the slices . The value of the third syntax element equal to 0 specifies that the cross-component adaptive loop filter can be disabled for one, or more, or all slices associated with the PH (image header). When not present, the value of the third syntax element can be inferred to be 0.

[0263] Um quarto elemento de sintaxe foi mencionado acima e pode ser denotado aqui com pic_cross_component_alf_cb_enabled_flag . O valor do quarto elemento de sintaxe igual a 0 especifica que o filtro Cb de componente cruzado não é aplicado ao componente de cor Cb de todas as fatias associadas ao PH. Quando o valor do quarto elemento de sintaxe é igual a 1, isso indica que o filtro de Cb de componente cruzado é aplicado ao componente de cor Cb de todas as fatias associadas ao PH. Quando o quarto elemento de sintaxe não está presente, infere-se que é igual a 0.[0263] A fourth syntax element was mentioned above and may be denoted here with pic_cross_component_alf_cb_enabled_flag . The fourth syntax element's value of 0 specifies that the cross-component Cb filter is not applied to the Cb color component of all slices associated with the PH. When the value of the fourth syntax element is equal to 1, it indicates that the cross-component Cb filter is applied to the Cb color component of all slices associated with the PH. When the fourth syntax element is not present, it is inferred to be equal to 0.

[0264] Um quinto elemento de sintaxe pode ser denotado aqui com pic_cross_component_alf_cb_aps_id . O quinto elemento de sintaxe especifica o adapter_parameter_set_id que é o componente de cor Cb de todas as fatias associadas ao PH.[0264] A fifth syntax element may be denoted here with pic_cross_component_alf_cb_aps_id . The fifth syntax element specifies the adapter_parameter_set_id which is the Cb color component of all slices associated with the PH.

[0265] Um sexto elemento de sintaxe pode ser denotado aqui com pic_cross_component_cb_filters_signalled_minus1 . O valor do sexto elemento de sintaxe mais 1 especifica o número de filtros de Cb de componente cruzado de todas as fatias associadas ao PH. O valor do sexto elemento de sintaxe deve estar na faixa de 0 a 3.[0265] A sixth syntax element may be denoted here with pic_cross_component_cb_filters_signalled_minus1 . The value of the sixth syntax element plus 1 specifies the number of cross-component Cb filters of all slices associated with the PH. The value of the sixth syntax element must be in the range 0 to 3.

[0266] Quando o quarto elemento de sintaxe é igual a 1, é um requisito de conformidade de fluxo de bits que o sexto elemento de sintaxe deve ser menor ou igual ao valor de alf_cross_component_cb_filters_signalled_minus1 no ALF APS referido pelo quinto elemento de sintaxe da imagem atual.[0266] When the fourth syntax element is equal to 1, it is a bitstream compliance requirement that the sixth syntax element must be less than or equal to the value of alf_cross_component_cb_filters_signalled_minus1 in the ALF APS referred to by the fifth syntax element of the current image .

[0267] Um sétimo elemento de sintaxe mencionado acima é indicado com pic_cross_component_alf_cr_enabled_flag. O valor do sétimo elemento de sintaxe igual a 0 especifica que o filtro de Cr de componente cruzado não é aplicado ao componente de cor Cr de todas as fatias associadas ao PH. O valor do sétimo elemento de sintaxe igual a 1 indica que o filtro de Cr de componente cruzado é aplicado ao componente de cor Cr de todas as fatias associadas ao PH. Quando o sétimo elemento de sintaxe não está presente, infere-se que é igual a 0.[0267] A seventh syntax element mentioned above is indicated with pic_cross_component_alf_cr_enabled_flag. The value of the seventh syntax element of 0 specifies that the cross-component Cr filter is not applied to the Cr color component of all slices associated with the PH. The value of the seventh syntax element equal to 1 indicates that the cross-component Cr filter is applied to the Cr color component of all slices associated with the PH. When the seventh syntax element is not present, it is inferred to be equal to 0.

[0268] Um oitavo elemento de sintaxe também foi mencionado e exemplarmente denotado com pic_cross_component_alf_cr_aps_id. O valor do elemento de sintaxe oitavo destina-se a especificar o adapter_parameter_set_id que o componente de cor Cr de todas as fatias associadas ao PH.[0268] An eighth syntax element was also mentioned and exemplarily denoted with pic_cross_component_alf_cr_aps_id. The value of the eighth syntax element is intended to specify the adapter_parameter_set_id that the Cr color component of all slices associated with the PH.

[0269] Além disso, é mencionado um nono elemento de sintaxe que pode ser denotado com pic_cross_component_cr_filters_signalled_minus1 . O valor do nono elemento de sintaxe mais 1 especifica o número de filtros de Cr de componente cruzado de todas as fatias associadas ao PH. O valor do nono elemento de sintaxe deve estar na faixa de 0 a 3.[0269] Furthermore, a ninth syntax element is mentioned which can be denoted with pic_cross_component_cr_filters_signalled_minus1 . The value of the ninth syntax element plus 1 specifies the number of cross-component Cr filters of all slices associated with the PH. The value of the ninth syntax element must be in the range 0 to 3.

[0270] Quando o valor do sétimo elemento de sintaxe é igual a 1, é um requisito de conformidade de fluxo de bits que o valor do nono elemento de sintaxe deve ser menor ou igual ao valor de alf_cross_component_cr_filters_signalled_minus1 no ALF APS referido pelo oitavo elemento de sintaxe da imagem atual.[0270] When the value of the seventh syntax element is equal to 1, it is a bitstream compliance requirement that the value of the ninth syntax element must be less than or equal to the value of alf_cross_component_cr_filters_signalled_minus1 in the ALF APS referred to by the eighth syntax element. current image syntax.

[0271] A semântica dos elementos de sintaxe de cabeçalho de fatia CCALF é refinada da seguinte forma:[0271] The semantics of the CCALF slice header syntax elements are refined as follows:

[0272] slice_ccalf_enabled_flag igual a 1 especifica que o filtro loop adaptativo de componente cruzado está habilitado e pode ser aplicado ao componente de cor Cb ou Cr em uma fatia. slice_alf_enabled_flag igual a 0 especifica que o filtro loop adaptativo de componente cruzado está desabilitado para todos os componentes de cor em uma fatia. Quando não está presente, o valor de slice_ccalf_enabled_flag é inferido como igual ao terceiro elemento de sintaxe.[0272] slice_ccalf_enabled_flag equal to 1 specifies that the cross-component adaptive loop filter is enabled and can be applied to the Cb or Cr color component in a slice. slice_alf_enabled_flag equal to 0 specifies that the cross-component adaptive loop filter is disabled for all color components in a slice. When not present, the value of slice_ccalf_enabled_flag is inferred to be equal to the third syntax element.

[0273] O décimo elemento de sintaxe mencionado acima pode ser indicado com slice_cross_component_alf_cb_enabled_flag e pode ser fornecido que o valor do décimo elemento de sintaxe igual a 0 especifica que o filtro Cb de componente cruzado não é aplicado ao componente de cor Cb. O décimo elemento de sintaxe igual a 1 indica que o filtro Cb de componente cruzado é aplicado ao componente de cor Cb. Quando o décimo elemento de sintaxe não está presente, é inferido ser igual ao quarto elemento de sintaxe (como pic_cross_component_alf_cb_enabled_flag).[0273] The tenth syntax element mentioned above can be indicated with slice_cross_component_alf_cb_enabled_flag and it can be provided that the value of the tenth syntax element equal to 0 specifies that the cross-component Cb filter is not applied to the Cb color component. The tenth syntax element of 1 indicates that the cross-component Cb filter is applied to the Cb color component. When the tenth syntax element is not present, it is inferred to be equal to the fourth syntax element (such as pic_cross_component_alf_cb_enabled_flag).

[0274] Um décimo primeiro elemento de sintaxe mencionado acima pode ser referido como slice_cross_component_alf_cb_aps_id. O valor do décimo primeiro elemento de sintaxe especifica o adapter_parameter_set_id ao qual o componente de cor Cb da fatia se refere.[0274] An eleventh syntax element mentioned above may be referred to as slice_cross_component_alf_cb_aps_id. The value of the eleventh syntax element specifies the adapter_parameter_set_id that the slice's Cb color component refers to.

[0275] Quando o décimo elemento de sintaxe tem um valor que é igual a 1, é um requisito de conformidade de fluxo de bits que, para todas as fatias da imagem atual, o ALF APS referido pelo décimo primeiro elemento de sintaxe seja o mesmo.[0275] When the tenth syntax element has a value that is equal to 1, it is a bitstream compliance requirement that, for all slices of the current image, the ALF APS referred to by the eleventh syntax element is the same .

[0276] Quando o décimo elemento de sintaxe é igual a 1 e o décimo primeiro elemento de sintaxe não está presente, o valor do décimo primeiro elemento de sintaxe é inferido como igual ao valor do quinto elemento de sintaxe.[0276] When the tenth syntax element is equal to 1 and the eleventh syntax element is not present, the value of the eleventh syntax element is inferred to be equal to the value of the fifth syntax element.

[0277] slice_cross_component_cb_filters_signalled_minus1 mais 1 especifica o número de filtros de Cb de componente cruzado. O valor de slice_cross_component_cb_filters_signalled_minus1 deve estar na faixa de 0 a 3.[0277] slice_cross_component_cb_filters_signalled_minus1 plus 1 specifies the number of cross-component Cb filters. The value of slice_cross_component_cb_filters_signalled_minus1 must be in the range 0 to 3.

[0278] Quando o décimo elemento de sintaxe for igual a 1, é um requisito de conformidade de fluxo de bits que slice_cross_component_cb_filters_signalled_minus1 deve ser menor ou igual ao valor de alf_cross_component_cb_filters_signalled_minus1 no ALF APS referido pelo décimo primeiro da fatia atual.[0278] When the tenth syntax element is equal to 1, it is a bitstream compliance requirement that slice_cross_component_cb_filters_signalled_minus1 must be less than or equal to the value of alf_cross_component_cb_filters_signalled_minus1 in the ALF APS referred to by the eleventh of the current slice.

[0279] Quando o décimo elemento de sintaxe é igual a 1 e o décimo primeiro não está presente, o valor de slice_cross_component_cb_filters_signalled_minus1 é inferido como igual ao valor de pic_cross_component_cb_filters_signalled_minus1[0279] When the tenth syntax element is equal to 1 and the eleventh is not present, the value of slice_cross_component_cb_filters_signalled_minus1 is inferred to be equal to the value of pic_cross_component_cb_filters_signalled_minus1

[0280] Um décimo segundo elemento de sintaxe mencionado pode ser referido como slice_cross_component_alf_cr_enabled_flag . O valor do décimo segundo elemento de sintaxe igual a 0 especifica que o filtro de Cr de componente cruzado não é aplicado ao componente de cor Cr. O valor do décimo segundo elemento de sintaxe igual a 1 indica que o filtro loop adaptativo de componente cruzado é aplicado ao componente de cor Cr. Quando o décimo segundo elemento de sintaxe não está presente, infere-se que seja igual ao sétimo elemento de sintaxe, como pic_cross_component_alf_cr_enabled_flag .[0280] A twelfth mentioned syntax element may be referred to as slice_cross_component_alf_cr_enabled_flag . The twelfth syntax element value of 0 specifies that the cross-component Cr filter is not applied to the Cr color component. The value of the twelfth syntax element equal to 1 indicates that the cross-component adaptive loop filter is applied to the Cr color component. When the twelfth syntax element is not present, it is inferred to be the same as the seventh syntax element, such as pic_cross_component_alf_cr_enabled_flag .

[0281] Um décimo terceiro elemento de sintaxe foi mencionado e pode ser adicionalmente referido como slice_cross_component_alf_cr_aps_id . O valor do décimo terceiro elemento de sintaxe especifica o adapter_parameter_set_id ao qual o componente de cor Cr da fatia se refere.[0281] A thirteenth syntax element was mentioned and may be further referred to as slice_cross_component_alf_cr_aps_id . The value of the thirteenth syntax element specifies the adapter_parameter_set_id that the slice's Cr color component refers to.

[0282] Quando o valor do décimo segundo elemento de sintaxe é igual a 1, é um requisito de conformidade do fluxo de bits que, para todas as fatias da imagem atual, o ALF APS referido pelo décimo terceiro elemento de sintaxe seja o mesmo.[0282] When the value of the twelfth syntax element is equal to 1, it is a bitstream compliance requirement that, for all slices of the current image, the ALF APS referred to by the thirteenth syntax element is the same.

[0283] Quando o valor do décimo segundo elemento de sintaxe é igual a 1 e o décimo terceiro elemento de sintaxe não está presente, o valor do décimo terceiro elemento de sintaxe é inferido como igual ao valor do oitavo elemento de sintaxe.[0283] When the value of the twelfth syntax element is equal to 1 and the thirteenth syntax element is not present, the value of the thirteenth syntax element is inferred to be equal to the value of the eighth syntax element.

[0284] slice_cross_component_cr_filters_signalled_minus1 mais 1 especifica o número de filtros de Cr de componente cruzado. O valor de slice_cross_component_cr_filters_signalled_minus1 deve estar na faixa de 0 a 3.[0284] slice_cross_component_cr_filters_signalled_minus1 plus 1 specifies the number of cross-component Cr filters. The value of slice_cross_component_cr_filters_signalled_minus1 must be in the range 0 to 3.

[0285] Quando o décimo segundo elemento de sintaxe é igual a 1, é um requisito de conformidade de fluxo de bits que slice_cross_component_cr_filters_signalled_minus1 deve ser menor ou igual ao valor de alf_cross_component_cr_filters_signalled_minus1 no ALF APS referenciado referido pelo décimo terceiro elemento de sintaxe da fatia atual.[0285] When the twelfth syntax element is equal to 1, it is a bitstream compliance requirement that slice_cross_component_cr_filters_signalled_minus1 must be less than or equal to the value of alf_cross_component_cr_filters_signalled_minus1 in the referenced ALF APS referred to by the thirteenth syntax element of the current slice.

[0286] Quando o décimo segundo elemento de sintaxe é igual a 1 e o décimo terceiro elemento de sintaxe não está presente, o valor de slice_cross_component_cr_filters_signalled_minus1 é inferido como igual ao valor de pic_cross_component_cr_filters_signalled_minus1.[0286] When the twelfth syntax element is equal to 1 and the thirteenth syntax element is not present, the value of slice_cross_component_cr_filters_signalled_minus1 is inferred to be equal to the value of pic_cross_component_cr_filters_signalled_minus1.

Modalidade Alternativa 2:Alternative Modality 2:

[0287] Na alternativa 2, o segundo elemento de sintaxe no nível de SPS (como sps_ccalf_enabled_flag) não é mais introduzido, portanto o primeiro elemento de sintaxe (como sps_alf_enabled_flag) também controla a aplicação do filtro ccalf.[0287] In alternative 2, the second syntax element at the SPS level (such as sps_ccalf_enabled_flag) is no longer introduced, therefore the first syntax element (such as sps_alf_enabled_flag) also controls the application of the ccalf filter.

[0288] A sintaxe para a alternativa 2 é a seguinte: 7.3.2.6 Sintaxe de RBSP de cabeçalho de imagem [0288] The syntax for alternative 2 is as follows: 7.3.2.6 Image Header RBSP Syntax

[0289] Nesta segunda modalidade, o segundo elemento de sintaxe, que pode ser sps_ccalf_enabled_flag, pode ser fornecido no nível de SPS. Se CCALF deve ou não ser habilitado pode, nesta modalidade, ser especificado com base em um elemento de sintaxe adicional, como pic_ccalf_enabled_present_flag, que especifica se CCALF que outros elementos de sintaxe pertencentes a CCALF estão presentes e a partir do qual pode ser adicionalmente obtido que, para a imagem atual à qual pic_ccalf_enabled_present_flag pertence, CCALF deve ser habilitado.[0289] In this second embodiment, the second syntax element, which may be sps_ccalf_enabled_flag, may be provided at the SPS level. Whether or not CCALF is to be enabled can, in this embodiment, be specified based on an additional syntax element, such as pic_ccalf_enabled_present_flag, which specifies whether CCALF than other syntax elements belonging to CCALF are present and from which it can be additionally obtained that , for the current image to which pic_ccalf_enabled_present_flag belongs, CCALF must be enabled.

[0290] A sintaxe de cabeçalho de fatia é a seguinte: 7.3.7.1 Sintaxe de cabeçalho de fatia geral [0290] The slice header syntax is as follows: 7.3.7.1 General slice header syntax

[0291] Como visto acima, a presença de elementos de sintaxe no cabeçalho de fatia, como, por exemplo, slice_ccalf_enabled_flag, slice_cross_component_alf_cb_enabled_flag, slice_cross_component_alf_cb_aps_id, slice_cross_component_cb_filters_signalled_minus1, slice_cross_component_alf_cr_enabled_flag, slice_cross_component_alf_cr_aps_id e slice_cross_component_cr_filters_signalled_minus1 , e/ou o décimo ao décimo terceiro elementos de sintaxe já referidos acima podem depender do primeiro elemento de sintaxe fornecido no nível de SPS, como sps_alf_enabled_flag, e um elemento de sintaxe fornecido no cabeçalho de imagem, como pic_ccalf_enabled_present_flag e potencialmente em outro elemento de sintaxe fornecido no cabeçalho de fatia, como slice_ccalf_enabled_flag.[0291] As seen above, the presence of syntax elements in the slice header, such as slice_ccalf_enabled_flag, slice_cross_component_alf_cb_enabled_flag, slice_cross_component_alf_cb_aps_id, slice_cross_component_cb_filters_signalled_minus1, slice_cross_component_alf_cr_enabled_flag, _alf_cr_aps_id and slice_cross_component_cr_filters_signalled_minus1 , and/or the tenth to thirteenth syntax elements already mentioned above may depend on the first syntax element provided at the SPS level, such as sps_alf_enabled_flag, and a syntax element provided in the image header, such as pic_ccalf_enabled_present_flag, and potentially another syntax element provided in the slice header, such as slice_ccalf_enabled_flag.

Modalidade Alternativa 3:Alternative Modality 3:

[0292] A outra alternativa para as entradas de cabeçalho de imagem CCALF é a seguinte: nesta alternativa pic_alf_enabled_present_flag, pic_alf_enabled_flag controla as entradas de cabeçalho de imagem CCALF e de cabeçalho de fatia CCALF, respectivamente. 7.3.2.6 Sintaxe de RBSP de cabeçalho de imagem [0292] The other alternative for the CCALF image header entries is as follows: in this pic_alf_enabled_present_flag alternative, pic_alf_enabled_flag controls the CCALF image header and CCALF slice header entries, respectively. 7.3.2.6 Image Header RBSP Syntax

[0293] A sintaxe de cabeçalho de fatia é a seguinte: 7.3.7.1 Sintaxe de cabeçalho de fatia geral [0293] The slice header syntax is as follows: 7.3.7.1 General slice header syntax

[0294] Pode-se notar que !(0) = 1 ou !(1) = 0.[0294] It can be noted that !(0) = 1 or !(1) = 0.

Modalidade Alternativa 4:Alternative Modality 4:

[0295] Como, no projeto atual do CCALF, há uma restrição de que slice_cross_component_alf_cb_aps_id, slice_cross_component_alf_cr _aps_id deve ser o mesmo em todas as fatias, não faz sentido repetir este elemento de sintaxe no cabeçalho de fatia, mas apenas sinalizar o pic_cross_component_alf_cb_aps_id e pic_cross_component_alf_cr_aps_id no cabeçalho de imagem. Os valores dos elementos de sintaxe slice_cross_component_alf_cb_aps_id e slice_cross_component_alf_cr podem então ser inferidos como sendo os mesmos que pic_cross_component_alf_cb_aps_id e pic_cross_component_alf_cr_aps_id. Assim, a quantidade de informações no fluxo de bits pode ser adicionalmente reduzida.[0295] Since, in the current design of CCALF, there is a restriction that slice_cross_component_alf_cb_aps_id, slice_cross_component_alf_cr _aps_id must be the same in all slices, it makes no sense to repeat this syntax element in the slice header, but just flag the pic_cross_component_alf_cb_aps_id and pic_cross_component_alf_cr_aps_id in the image header. The values of the slice_cross_component_alf_cb_aps_id and slice_cross_component_alf_cr syntax elements can then be inferred to be the same as pic_cross_component_alf_cb_aps_id and pic_cross_component_alf_cr_aps_id. Thus, the amount of information in the bit stream can be further reduced.

[0296] A sintaxe possível é a seguinte: 7.3.2.6 Sintaxe de RBSP de cabeçalho de imagem [0296] The possible syntax is as follows: 7.3.2.6 Image Header RBSP Syntax

[0297] Aqui, os outros elementos de sintaxe que pertencem a CCALF (ou seja, pelo menos os elementos de sintaxe que compreendem um elemento ccalf ou cross_component_alf ou cc_alf são fornecidos dependendo de um valor do segundo elemento de sintaxe sinalizado no nível de SPS, ou seja, nesta modalidade sps_ccalf_enabled_flag.[0297] Here, the other syntax elements that belong to CCALF (i.e., at least the syntax elements that comprise a ccalf or cross_component_alf or cc_alf element are provided depending on a value of the second syntax element signaled at the SPS level, that is, in this modality sps_ccalf_enabled_flag.

[0298] Especificamente, dependendo do valor do segundo elemento de sintaxe, um terceiro elemento de sintaxe, como pic_ccalf_enabled_flag, pode ser fornecido no cabeçalho de imagem, em que esse terceiro elemento de sintaxe pode indicar se o CCALF está habilitado para as fatias da imagem atual.[0298] Specifically, depending on the value of the second syntax element, a third syntax element, such as pic_ccalf_enabled_flag, may be provided in the image header, wherein this third syntax element may indicate whether CCALF is enabled for the image slices current.

[0299] Além disso, um quarto elemento de sintaxe, como pic_cross_component_alf_cb_enabled_flag, e um sétimo elemento de sintaxe, como pic_cross_component_alf_cb_enabled_flag, podem ser fornecidos no cabeçalho de imagem dependendo do valor do segundo elemento de sintaxe.[0299] Additionally, a fourth syntax element, such as pic_cross_component_alf_cb_enabled_flag, and a seventh syntax element, such as pic_cross_component_alf_cb_enabled_flag, may be provided in the image header depending on the value of the second syntax element.

[0300] A sintaxe de cabeçalho de fatia pode ser a seguinte: 7.3.7.1 Sintaxe de cabeçalho de fatia geral [0300] The slice header syntax may be as follows: 7.3.7.1 General slice header syntax

[0301] Também para esta modalidade, pode ser fornecido que os elementos de sintaxe no cabeçalho de fatia que pertencem a CCALF sejam fornecidos dependendo do valor do segundo elemento de sintaxe fornecido no nível de SPS e/ou dependendo de um valor de um ou mais elementos de sintaxe pertencentes a CCALF fornecido no cabeçalho de imagem, como por exemplo pic_ccalf_enabled_present_flag.[0301] Also for this embodiment, it may be provided that the syntax elements in the slice header that belong to CCALF are provided depending on the value of the second syntax element provided at the SPS level and/or depending on a value of one or more syntax elements belonging to CCALF provided in the image header, such as pic_ccalf_enabled_present_flag.

[0302] slice_cross_component_alf_cb_aps_id sempre pode ser inferido como o mesmo valor de pic_cross_component_alf_cb_aps_id.[0302] slice_cross_component_alf_cb_aps_id can always be inferred to be the same value as pic_cross_component_alf_cb_aps_id.

[0303] slice_cross_component_alf_cr_aps_id sempre pode ser inferido como o mesmo valor de pic_cross_component_alf_cr_aps_id.[0303] slice_cross_component_alf_cr_aps_id can always be inferred to be the same value as pic_cross_component_alf_cr_aps_id.

[0304] A outra sintaxe possível é a seguinte: 7.3.2.6 Sintaxe de RBSP de cabeçalho de imagem [0304] The other possible syntax is as follows: 7.3.2.6 Image Header RBSP Syntax

[0305] Na sintaxe de acordo com a tabela acima, a presença de elementos de sintaxe que pertencem ao CCALF depende do valor do primeiro elemento de sintaxe fornecido no nível de SPS, como sps_alf_enabled_flag. O segundo elemento de sintaxe, como sps_ccalf_enabled_flag, pode ou não ser fornecido no nível de SPS nesta modalidade.[0305] In the syntax according to the table above, the presence of syntax elements that belong to CCALF depends on the value of the first syntax element provided at the SPS level, such as sps_alf_enabled_flag. The second syntax element, such as sps_ccalf_enabled_flag, may or may not be provided at the SPS level in this embodiment.

[0306] A sintaxe de cabeçalho de fatia pode ser a seguinte: 7.3.7.1 Sintaxe de cabeçalho de fatia geral [0306] The slice header syntax may be as follows: 7.3.7.1 General slice header syntax

[0307] slice_cross_component_alf_cb_aps_id é sempre inferido como o mesmo que o valor de pic_cross_component_alf_cb_aps_id.[0307] slice_cross_component_alf_cb_aps_id is always inferred to be the same as the value of pic_cross_component_alf_cb_aps_id.

[0308] slice_cross_component_alf_cr_aps_id é sempre inferido como o mesmo que o valor de pic_cross_component_alf_cr_aps_id.[0308] slice_cross_component_alf_cr_aps_id is always inferred to be the same as the value of pic_cross_component_alf_cr_aps_id.

[0309] A outra sintaxe possível é a seguinte: Sintaxe de RBSP de cabeçalho de imagem [0309] The other possible syntax is as follows: Image Header RBSP Syntax

[0310] A sintaxe de cabeçalho de fatia é a seguinte: 7.3.7.1 Sintaxe de cabeçalho de fatia geral [0310] The slice header syntax is as follows: 7.3.7.1 General slice header syntax

[0311] Nesta modalidade, slice_cross_component_alf_cb_aps_id é sempre inferido como sendo o mesmo que o valor de pic_cross_component_alf_cb_aps_id.[0311] In this embodiment, slice_cross_component_alf_cb_aps_id is always inferred to be the same as the value of pic_cross_component_alf_cb_aps_id.

[0312] Nesta modalidade, um décimo segundo elemento de sintaxe, como slice_cross_component_alf_cr_aps_id, é sempre inferido como sendo o mesmo que o valor do oitavo elemento de sintaxe, como pic_cross_component_alf_cr_aps_id).[0312] In this embodiment, a twelfth syntax element, such as slice_cross_component_alf_cr_aps_id, is always inferred to be the same as the value of the eighth syntax element, such as pic_cross_component_alf_cr_aps_id).

[0313] Modalidade Alternativa 5:[0313] Alternative Modality 5:

[0314] A outra sintaxe alternativa é a possível abaixo: Nesta sintaxe, os parâmetros CCALF são sinalizados condicionalmente com base em um valor do segundo elemento de sintaxe, conforme já mencionado acima. Este segundo elemento de sintaxe pode ser fornecido como ou pode incluir uma flag, como sps_ccalf_enabled_flag. Sintaxe de RBSP de conjunto de parâmetros de sequência [0314] The other alternative syntax is the one possible below: In this syntax, CCALF parameters are signaled conditionally based on a value of the second syntax element, as already mentioned above. This second syntax element can be provided as or can include a flag, such as sps_ccalf_enabled_flag. String Parameter Set RBSP Syntax

[0315] Conforme visto na tabela acima, o segundo elemento de sintaxe sps_ccalf_enabled_flag é fornecido dependendo do valor do primeiro elemento de sintaxe sps_alf_enabled_flag e, opcionalmente, dependendo de um décimo quarto elemento de sintaxe, como ChromaArrayType. Especificamente, o segundo elemento de sintaxe pode, em algumas modalidades, ser sinalizado se o décimo quarto elemento de sintaxe assumir um valor diferente de zero. 7.3.2.3 Sintaxe de RBSP de conjunto de parâmetros de sequência [0315] As seen in the table above, the second syntax element sps_ccalf_enabled_flag is provided depending on the value of the first syntax element sps_alf_enabled_flag, and optionally depending on a fourteenth syntax element such as ChromaArrayType. Specifically, the second syntax element may, in some embodiments, be signaled if the fourteenth syntax element takes on a non-zero value. 7.3.2.3 String Parameter Set RBSP Syntax

[0316] Notas: ChromaArrayType != 0, ou seja, não é componente de luma e Cb, Cr componente de croma[0316] Notes: ChromaArrayType != 0, that is, it is not a luma component and Cb, Cr a chroma component

[0317] ChromaArrayType indica a amostragem de croma em relação à amostragem de luma conforme especificado na tabela a seguir. [0317] ChromaArrayType indicates chroma sampling relative to luma sampling as specified in the following table.

[0318] Na amostragem monocromática existe apenas um arranjo de amostra, que é nominalmente considerado o arranjo luma.[0318] In monochromatic sampling there is only one sample arrangement, which is nominally considered the luma arrangement.

[0319] Na amostragem 4:2:0, cada um dos dois arranjos croma tem metade da altura e metade da largura do arranjo luma.[0319] In 4:2:0 sampling, each of the two chroma arrays is half the height and half the width of the luma array.

[0320] Na amostragem 4:2:2, cada um dos dois arranjos croma tem a mesma altura e metade da largura do arranjo luma.[0320] In 4:2:2 sampling, each of the two chroma arrays is the same height and half the width of the luma array.

[0321] Na amostragem 4:4:4, cada um dos dois arranjos croma tem a mesma altura e largura do arranjo luma.[0321] In 4:4:4 sampling, each of the two chroma arrays has the same height and width as the luma array.

[0322] Conforme fornecido na tabela acima, o segundo elemento de sintaxe é fornecido se o primeiro elemento de sintaxe indicar “true”, ou seja, no caso do primeiro elemento de sintaxe ser sps_alf_enabled_flag e indicar que ALF deve ser habilitado. Além disso, o segundo elemento de sintaxe é fornecido se o décimo quarto elemento de sintaxe tiver um valor diferente de 0. 1.1.1.1 Sintaxe de RBSP de conjunto de parâmetros de sequência 7.3.3.2 Sintaxe de informações de restrição geral [0322] As provided in the table above, the second syntax element is provided if the first syntax element indicates “true”, that is, in case the first syntax element is sps_alf_enabled_flag and indicates that ALF should be enabled. Additionally, the second syntax element is provided if the fourteenth syntax element has a value other than 0. 1.1.1.1 String Parameter Set RBSP Syntax 7.3.3.2 General restriction information syntax

[0323] Notas:[0323] Notes:

[0324] !(0) = 1[0324] !(0) = 1

[0325] !(1) = 0 7.3.2.4 Sintaxe de RBSP de conjunto de parâmetros de imagem Sintaxe de RBSP de cabeçalho de imagem [0325] !(1) = 0 7.3.2.4 Image Parameter Set RBSP Syntax Image Header RBSP Syntax

[0326] alf_present_in_ph_flag igual a 1 especifica que os elementos de sintaxe para habilitar o uso de ALF podem estar presentes nos PHs (cabeçalhos de imagem) referentes ao PPS. alf_present_in_ph_flag igual a 0 especifica que os elementos de sintaxe para habilitar o uso de ALF podem estar presentes nos cabeçalhos de fatia referentes ao PPS. 7.3.2.6 Sintaxe de RBSP de cabeçalho de imagem [0326] alf_present_in_ph_flag equal to 1 specifies that syntax elements to enable the use of ALF may be present in the PHs (image headers) referring to the PPS. alf_present_in_ph_flag equal to 0 specifies that syntax elements to enable the use of ALF can be present in the PPS-referred slice headers. 7.3.2.6 Image Header RBSP Syntax

[0327] Conforme fornecido na tabela acima, a presença de outros elementos de sintaxe pertencentes a CCALF no cabeçalho de imagem, como um quarto elemento de sintaxe (como pic_cross_component_alf_cb_enabled_flag) e um sétimo elemento de sintaxe (como, por exemplo, pic_cross_component_alf_cr_enabled_flag), pode depender da presença e/ ou valor do segundo elemento de sintaxe. A presença de um quinto elemento de sintaxe, como pic_cross_component_alf_cb_aps_id pode então depender do segundo elemento de sintaxe e/ou a presença e/ou valor do quarto elemento de sintaxe, enquanto a presença e/ou valor de um oitavo elemento de sintaxe, como pic_cross_component_alf_cr_aps_id, pode depender na presença e/ou valor do segundo elemento de sintaxe e/ou presença e/ou valor do sétimo elemento de sintaxe. 7.3.7.1 Sintaxe de cabeçalho de fatia geral [0327] As provided in the table above, the presence of other syntax elements belonging to CCALF in the image header, such as a fourth syntax element (such as pic_cross_component_alf_cb_enabled_flag) and a seventh syntax element (such as, for example, pic_cross_component_alf_cr_enabled_flag), may depend on the presence and/or value of the second syntax element. The presence of a fifth syntax element such as pic_cross_component_alf_cb_aps_id may then depend on the second syntax element and/or the presence and/or value of the fourth syntax element, while the presence and/or value of an eighth syntax element such as pic_cross_component_alf_cr_aps_id , may depend on the presence and/or value of the second syntax element and/or the presence and/or value of the seventh syntax element. 7.3.7.1 General slice header syntax

[0328] Na tabela acima, outros elementos de sintaxe pertencentes a CCALF podem adicionalmente depender da presença e/ou valor do segundo elemento de sintaxe. Por exemplo, um décimo elemento de sintaxe, como slice_cross_component_alf_cb_enabled_flag, pode ser fornecido dependendo do segundo elemento de sintaxe. Dependendo da presença e/ou valor deste décimo elemento de sintaxe e/ou do segundo elemento de sintaxe, um décimo primeiro elemento de sintaxe, como slice_cross_component_alf_cb_aps_id, pode ser fornecido. Além disso, um décimo segundo elemento de sintaxe, como slice_cross_component_alf_cr_enabled_flag pode ser fornecido no cabeçalho de fatia dependendo do valor do segundo elemento de sintaxe. Dependendo da presença e/ou valor do décimo segundo elemento de sintaxe e/ou dependendo do segundo elemento de sintaxe, um décimo terceiro elemento de sintaxe, como slice_cross_component_alf_cr_aps_id, pode ser fornecido no cabeçalho de fatia.[0328] In the table above, other syntax elements belonging to CCALF may additionally depend on the presence and/or value of the second syntax element. For example, a tenth syntax element, such as slice_cross_component_alf_cb_enabled_flag, may be provided depending on the second syntax element. Depending on the presence and/or value of this tenth syntax element and/or the second syntax element, an eleventh syntax element, such as slice_cross_component_alf_cb_aps_id, may be provided. Additionally, a twelfth syntax element such as slice_cross_component_alf_cr_enabled_flag may be provided in the slice header depending on the value of the second syntax element. Depending on the presence and/or value of the twelfth syntax element and/or depending on the second syntax element, a thirteenth syntax element, such as slice_cross_component_alf_cr_aps_id, may be provided in the slice header.

[0329] Notas:[0329] Notes:

[0330] !(0) = 1[0330] !(0) = 1

[0331] !(1) = 0[0331] !(1) = 0

[0332] if(sps_alf_enabled_flag && !alf_present_in_ph_flag) significa “se sps_alf_enabled_flag for true (e) se alf_present_in_ph_flag for false)” Sintaxe de cabeçalho de fatia Sintaxe de cabeçalho de fatia geral [0332] if(sps_alf_enabled_flag && !alf_present_in_ph_flag) means “if sps_alf_enabled_flag is true (and) if alf_present_in_ph_flag is false)” Slice header syntax General slice header syntax

[0333] Na tabela acima, alguns elementos são mostrados como tachados. Isto significa dizer que, em uma primeira modalidade, esses elementos podem estar presentes. Em uma modalidade alternativa, esses elementos podem ser cancelados, deixando a sintaxe restante do jeito que está. Por exemplo, o elemento ChromaArrayType pode não ser fornecido. Correspondentemente, qualquer dependência deste elemento, incluindo também a presença condicional de outros elementos de sintaxe, pode ser fornecida em uma primeira modalidade. Em uma modalidade alternativa, essa dependência não existe, resultando, por exemplo, na presença de elementos de sintaxe em qualquer caso, enquanto na modalidade alternativa eles estavam presentes apenas se ChromaArrayType tivesse um valor específico.[0333] In the table above, some elements are shown as strikethrough. This means that, in a first embodiment, these elements may be present. In an alternative embodiment, these elements can be canceled, leaving the remaining syntax as is. For example, the ChromaArrayType element may not be provided. Correspondingly, any dependency on this element, including also the conditional presence of other syntax elements, can be provided in a first embodiment. In an alternative embodiment, this dependency does not exist, resulting, for example, in the presence of syntax elements in any case, while in the alternative embodiment they were present only if ChromaArrayType had a specific value.

[0334] Da mesma forma, elementos de sintaxe como slice_cross_component_cr_filters_signalled_minus1 e slice_cross_component_cb_filters_signalled_minus1 podem não ser fornecidos (independentemente de um elemento de sintaxe como ChromaArrayType estar presente).[0334] Likewise, syntax elements such as slice_cross_component_cr_filters_signalled_minus1 and slice_cross_component_cb_filters_signalled_minus1 may not be provided (regardless of whether a syntax element such as ChromaArrayType is present).

[0335] A semântica dos elementos de sintaxe recém-introduzidos é a seguinte:[0335] The semantics of the newly introduced syntax elements are as follows:

[0336] O valor do segundo elemento de sintaxe, como (sps_ccalf_enabled_flag) igual a 0 especifica que o filtro loop adaptativo de componente cruzado está desabilitado. O valor do primeiro elemento de sintaxe igual a 1 especifica que o filtro loop adaptativo de componente cruzado está habilitado. Isso também pode ser fornecido ao contrário, ou seja, se o segundo elemento de sintaxe tiver um valor igual a 1, CCALF pode ser desabilitado enquanto, se o segundo elemento de sintaxe tiver um valor igual a 0, CCALF pode ser habilitado.[0336] The value of the second syntax element, such as (sps_ccalf_enabled_flag) equal to 0 specifies that the cross-component adaptive loop filter is disabled. The first syntax element's value of 1 specifies that the cross-component adaptive loop filter is enabled. This can also be provided in reverse, i.e. if the second syntax element has a value of 1, CCALF can be disabled while if the second syntax element has a value of 0, CCALF can be enabled.

[0337] no_ccalf_constraint_flag igual a 1 especifica que o primeiro elemento de sintaxe (como sps_ccalf_enabled_flag) deve ser igual a 0. no_ccalf_constraint_flag igual a 0 não impõe tal restrição.[0337] no_ccalf_constraint_flag equal to 1 specifies that the first syntax element (such as sps_ccalf_enabled_flag) must be equal to 0. no_ccalf_constraint_flag equal to 0 does not impose such a restriction.

[0338] Nas modalidades, um processo de filtragem é apresentado como abaixo em detalhes.[0338] In embodiments, a filtering process is presented as below in detail.

[0339] Para as modalidades discutidas acima, algumas observações gerais são feitas abaixo em relação ao significado de elementos de sintaxe específicos e as consequências desses elementos de sintaxe assumindo valores específicos. A revelação apresentada abaixo destina-se a ser englobada por qualquer uma das modalidades acima, especificamente as modalidades alternativas 1 a 5.[0339] For the embodiments discussed above, some general observations are made below regarding the meaning of specific syntax elements and the consequences of those syntax elements taking on specific values. The disclosure set forth below is intended to be encompassed by any of the above modalities, specifically alternative modalities 1 to 5.

8.8 Processo de filtro in-loop8.8 In-loop filter process 8.8.1 Geral8.8.1 General

[0340][0340]

[0341] 4. Quando o primeiro elemento de sintaxe (indicado acima como sps_alf_enabled_flag) for igual a 1, aplica-se o seguinte: - Quando o segundo elemento de sintaxe (como sps_ccalf_enabled_flag) é igual a 1, o arranjo de amostra de imagem reconstruído (antes do filtro loop adaptativo) SL'é definido como igual ao arranjo de amostra de imagem reconstruído SL - O processo de filtro loop adaptativo conforme especificado na cláusula 8.8.5.1 é invocado com o arranjo de amostra de imagem reconstruído SL e, quando o décimo quarto elemento de sintaxe (nas tabelas acima, isso é denotado como ChromaArrayType) não é igual a 0, os arranjos SCb e SCr como entradas, e o arranjo de amostra de imagem reconstruído modificada S’L e, quando o décimo quarto elemento de sintaxe não for igual a 0, as arranjos S’Cb e S’Cr após o filtro loop adaptativo como saídas. - O arranjo S’L e, quando o décimo quarto elemento de sintaxe não for igual a 0, os arranjos S’Cb e S’Cr são atribuídos ao arranjo SL e, quando o décimo quarto elemento de sintaxe não for igual a 0, os arranjos SCb e SCr (que representam a imagem decodificada), respectivamente. - Quando o segundo elemento de sintaxe (como sps_ccalf_enabled_flag) é igual a 1, aplica-se o seguinte: - O processo de filtro loop adaptativo de componente cruzado conforme especificado na cláusula xxxx é invocado com o arranjo de amostra de imagem reconstruído SL e, quando o décimo quarto elemento de sintaxe (como ChromaArrayType) não é igual a 0, os arranjos SCb e SCr como entradas, e o arranjo de amostra de imagem reconstruído modificado S’L e, quando o décimo quarto elemento de sintaxe não é igual a 0, os arranjos S’Cb e S’Cr após o filtro loop adaptativo de componente cruzado como saídas. - O arranjo S’L e, quando o décimo quarto elemento de sintaxe não for igual a 0, os arranjos S’Cb e S’Cr são atribuídos ao arranjo SL e, quando o décimo quarto elemento de sintaxe não for igual a 0, os arranjos SCb e SCr (que representam a imagem decodificada), respectivamente.[0341] 4. When the first syntax element (indicated above as sps_alf_enabled_flag) equals 1, the following applies: - When the second syntax element (such as sps_ccalf_enabled_flag) equals 1, the image sample array reconstructed (before adaptive loop filter) SL' is set equal to the SL reconstructed image sample array - The adaptive loop filter process as specified in clause 8.8.5.1 is invoked with the SL reconstructed image sample array, and when the fourteenth syntax element (in the tables above, this is denoted as ChromaArrayType) is not equal to 0, the SCb and SCr arrays as inputs, and the modified reconstructed image sample array S'L, and when the fourteenth element syntax is not equal to 0, the S'Cb and S'Cr arrangements after the adaptive loop filter as outputs. - The S'L array and, when the fourteenth syntax element is not equal to 0, the S'Cb and S'Cr arrays are assigned to the SL array, and when the fourteenth syntax element is not equal to 0, the SCb and SCr arrays (which represent the decoded image), respectively. - When the second syntax element (such as sps_ccalf_enabled_flag) is equal to 1, the following applies: - The cross-component adaptive loop filter process as specified in the xxxx clause is invoked with the SL reconstructed image sample array, and then when the fourteenth syntax element (such as ChromaArrayType) is not equal to 0, the SCb and SCr arrays as inputs, and the modified reconstructed image sample array S'L, and when the fourteenth syntax element is not equal to 0, the S'Cb and S'Cr arrays after the cross-component adaptive loop filter as outputs. - The S'L array and, when the fourteenth syntax element is not equal to 0, the S'Cb and S'Cr arrays are assigned to the SL array, and when the fourteenth syntax element is not equal to 0, the SCb and SCr arrays (which represent the decoded image), respectively.

[0342] Deve ser notado que a presente invenção não se limita às alternativas aqui apresentadas, mas sim a invenção de uma forma muito genérica permite que os dados de CCALF presentes no cabeçalho de fatia sejam sinalizados condicionalmente no cabeçalho de imagem. A principal vantagem de usar dados de CCALF no cabeçalho de imagem é que o overhead do sinal no cabeçalho de fatia é reduzido.[0342] It should be noted that the present invention is not limited to the alternatives presented here, but rather the invention in a very general way allows the CCALF data present in the slice header to be conditionally signaled in the image header. The main advantage of using CCALF data in the image header is that the signal overhead in the slice header is reduced.

[0343] A invenção também abrange o caso em que um determinado elemento de sintaxe CCALF sinalizado no cabeçalho de fatia tem o mesmo valor em todas as fatias (por exemplo, devido a alguns requisitos de conformidade de fluxo de bits), então esse elemento de sintaxe específico não é mais sinalizado no cabeçalho de fatia, mas sim sinalizado apenas uma vez no cabeçalho de imagem associada a todas as fatias.[0343] The invention also covers the case where a particular CCALF syntax element signaled in the slice header has the same value in all slices (e.g., due to some bitstream compliance requirements), then that syntax element Specific syntax is no longer flagged in the slice header, but rather flagged only once in the image header associated with all slices.

[0344] O filtro loop adaptativo de componente cruzado (CC-ALF) pode ser usado como filtro loop e como etapa de pós-processamento, respectivamente.[0344] The cross-component adaptive loop filter (CC-ALF) can be used as a loop filter and as a post-processing step, respectively.

[0345] CC-ALF usa valores de amostra de luma para refinar cada componente de croma. CC_ALF é aplicado nas amostras de luma para derivar um fator de correção para a filtragem de amostra de croma.[0345] CC-ALF uses luma sample values to refine each chroma component. CC_ALF is applied to the luma samples to derive a correction factor for chroma sample filtering.

[0346] JVET-P0080 e JVET-O0630 propõem um novo filtro in-loop chamado filtro ALF de componente cruzado. O CC-ALF opera como parte do processo de filtro loop adaptativo e faz uso de valores de amostra de luma para refinar cada componente de croma (componente Cr ou Cb). A ferramenta é controlada por informações no fluxo de bits, e essas informações incluem (a) coeficientes de filtro para cada componente de croma e (b) uma máscara que controla a aplicação do filtro para blocos de amostras. Os coeficientes de filtro são sinalizados no conjunto de parâmetros de adaptação (APS), enquanto os tamanhos de bloco e a máscara são sinalizados no nível de fatia.[0346] JVET-P0080 and JVET-O0630 propose a new in-loop filter called cross-component ALF filter. CC-ALF operates as part of the adaptive loop filter process and makes use of luma sample values to refine each chroma component (Cr or Cb component). The tool is controlled by information in the bitstream, and this information includes (a) filter coefficients for each chroma component and (b) a mask that controls filter application to sample blocks. Filter coefficients are signaled at the adaptation parameter set (APS), while block sizes and mask are signaled at the slice level.

[0347] Pode ser entendido que Máscara é um bit (0 ou 1). Aqui a máscara indica se o bloco de amostras deve ser filtrado ou não (máscara = 1 significa que está filtrado) e (máscara=0 significa que não está filtrado). Basicamente APS porta os coeficientes para ALF e outras informações.[0347] It can be understood that Mask is a bit (0 or 1). Here the mask indicates whether the sample block should be filtered or not (mask = 1 means it is filtered) and (mask=0 means it is not filtered). Basically APS ports the coefficients to ALF and other information.

[0348] O projeto geral do CC-ALF é mostrado na Figura 6 (a), Figura 6(b) e Figura 6(c). Este projeto geral pode ser aplicado a qualquer uma das modalidades acima que se referem a questões relacionadas a CC-ALF. Especificamente, o que é descrito aqui se destina a ser englobado por cada uma das modalidades alternativas 1 a 5.[0348] The general design of the CC-ALF is shown in Figure 6 (a), Figure 6(b) and Figure 6(c). This general project can be applied to any of the above modalities that refer to issues related to CC-ALF. Specifically, what is described here is intended to be encompassed by each of alternative embodiments 1 to 5.

[0349] A colocação do filtro é conforme mostrado na Figura 6a (veja o lado esquerdo). A forma do filtro é mostrada nas Figura6b e 6c.[0349] Filter placement is as shown in Figure 6a (see left side). The shape of the filter is shown in Figures 6b and 6c.

[0350] O CC-ALF opera aplicando um filtro linear em forma de diamante (Figura 6b e 6c) ao canal de luma para cada componente de croma, que é expresso como, em que (%, y) é localização de componente de croma í sendo refinada (xc,yc) é a localização de luma com base em (%, y) 5,é suporte de filtro em luma para component de croma i Ci(x0,y0) representa os coeficientes de filtro[0350] CC-ALF operates by applying a diamond-shaped linear filter (Figure 6b and 6c) to the luma channel for each chroma component, which is expressed as , where (%, y) is chroma component location í being refined (xc,yc) is luma location based on (%, y) 5, is luma filter support for chroma component i Ci( x0,y0) represents the filter coefficients

[0351] Note que há um primeiro componente de croma (como o componente de cor cb) quando i=1 para o componente de croma i, e há um segundo componente de croma (como o componente de cor cr) quando i=2 para o componente de croma i.[0351] Note that there is a first chroma component (such as the cb color component) when i=1 for the i chroma component, and there is a second chroma component (such as the cr color component) when i=2 for the chroma component i.

[0352] As principais características do CC-ALF incluem: • A localização de luma (xc,yc), em torno da qual a região de suporte está centralizada, é calculada com base no fator de escalonamento espacial entre os planos de luma e croma. Basicamente, o CCALF usa as amostras de Luma para refinar as amostras de Croma. Portanto, o filtro é aplicado nas amostras de Luma e, em seguida, o fator de correção para o Croma é derivado. • Todos os coeficientes de filtro são transmitidos no APS e possuem faixa dinâmica de 8 bits. • Um APS pode ser referenciado no cabeçalho de fatia. • Os coeficientes CC-ALF usados para cada componente de croma de uma fatia também são armazenados em um buffer correspondente a uma subcamada temporal. O reuso desses conjuntos de coeficientes de filtro de subcamada temporal é facilitada usando flags de nível de fatia. Pode ser entendido que as subcamadas temporais são basicamente definidas com base nas informações de referência. • A aplicação dos filtros CC-ALF é controlada em um tamanho de bloco variável e sinalizada por uma flag codificada pelo contexto recebida para cada bloco de amostras. O tamanho de bloco junto com uma flag de habilitação de CC-ALF é recebido no nível de fatia para cada componente de croma. • O preenchimento de fronteira para as fronteiras virtuais horizontais faz uso da repetição. Para as fronteiras restantes, o mesmo tipo de preenchimento é usado para ALF regular.[0352] Key features of CC-ALF include: • The luma location (xc,yc), around which the support region is centered, is calculated based on the spatial scaling factor between the luma and chroma planes . Basically, CCALF uses the Luma samples to refine the Chroma samples. Therefore, the filter is applied to the Luma samples and then the correction factor for Chroma is derived. • All filter coefficients are transmitted in the APS and have a dynamic range of 8 bits. • An APS can be referenced in the slice header. • The CC-ALF coefficients used for each chroma component of a slice are also stored in a buffer corresponding to a temporal sublayer. Reuse of these sets of temporal subshell filter coefficients is facilitated using slice-level flags. It can be understood that temporal sublayers are basically defined based on reference information. • The application of CC-ALF filters is controlled at a variable block size and signaled by a context-encoded flag received for each block of samples. The block size along with a CC-ALF enable flag is received at the slice level for each chroma component. • Boundary padding for horizontal virtual boundaries makes use of repetition. For the remaining borders, the same padding type is used as for regular ALF.

[0353] A Figura 8 é um diagrama de blocos mostrando entradas de cabeçalho de imagem para CCALF que são introduzidas que definem os dados comuns de CCALF e todas as fatias podem então herdar essas informações comuns comparadas com a Figura7.[0353] Figure 8 is a block diagram showing image header entries for CCALF that are introduced that define the common data of CCALF and all slices can then inherit this common information compared to Figure 7.

[0354] A Figura 16 é um diagrama esquemático de uma estrutura de dados 5000, a estrutura de dados 5000 pode representar uma porção de um fluxo de bits 21 gerado por um codificador na Figura 2 e recebido por um decodificador na Figura 3. A estrutura de dados 5000 (isto é, o fluxo de bits de vídeo 5000) pode compreender um VPS 5005; um SPS 5010; um PPS 5015; e pelo menos quatro fatias 5020, 5025, 5030 e 5035. A fatia 5020 pode compreender um cabeçalho 5040 e dados 5045. As fatias 5025, 5030, 5035 são semelhantes à fatia 5020. Os dados 5045 podem compreender pelo menos três blocos 5050, 5055 e 5060, isto é, uma representação codificada de pelo menos três blocos 5050, 5055 e 5060. Embora sejam mostradas quatro fatias 5020-5035, o fluxo de bits de vídeo 5000 compreende qualquer número adequado de fatias. Embora três blocos 5050-5060 sejam mostrados, os dados 5045 compreendem qualquer número adequado de blocos. Além disso, cada fatia restante 5025, 5030, 5035 também compreende blocos. Assim, enquanto o fluxo de bits de vídeo 5000 compreende, isto é, uma representação codificada de vários blocos, o fluxo de bits de vídeo 5000 compreende um SPS 5010 e significativamente menos cabeçalhos de fatia do que blocos. Pode ser entendido que o fluxo de bits incluindo uma pluralidade de elementos de sintaxe relacionados a CC-ALF também pode ser mostrado na Figura16. Conforme mostrado pela sintaxe acima e abaixo, uma pluralidade de elementos de sintaxe relacionados a CC-ALF é claramente especificada. Além disso, o processo para codificar ou decodificar o fluxo de bits é claramente especificado na sintaxe e/ou semântica mencionada acima e abaixo.[0354] Figure 16 is a schematic diagram of a data structure 5000, the data structure 5000 may represent a portion of a bit stream 21 generated by an encoder in Figure 2 and received by a decoder in Figure 3. The structure data stream 5000 (i.e., video bitstream 5000) may comprise a VPS 5005; an SPS 5010; a PPS 5015; and at least four slices 5020, 5025, 5030 and 5035. Slice 5020 may comprise a header 5040 and data 5045. Slices 5025, 5030, 5035 are similar to slice 5020. Data 5045 may comprise at least three blocks 5050, 5055 and 5060, that is, an encoded representation of at least three blocks 5050, 5055 and 5060. Although four slices 5020-5035 are shown, the video bit stream 5000 comprises any suitable number of slices. Although three blocks 5050-5060 are shown, data 5045 comprises any suitable number of blocks. Furthermore, each remaining slice 5025, 5030, 5035 also comprises blocks. Thus, while the video bitstream 5000 comprises, i.e., an encoded representation of multiple blocks, the video bitstream 5000 comprises an SPS 5010 and significantly fewer slice headers than blocks. It can be understood that the bit stream including a plurality of syntax elements related to CC-ALF can also be shown in Figure 16. As shown by the syntax above and below, a plurality of syntax elements related to CC-ALF are clearly specified. Furthermore, the process for encoding or decoding the bit stream is clearly specified in the syntax and/or semantics mentioned above and below.

[0355] O fluxo de bits mostrado aqui pode ser obtido codificando uma sequência de vídeo usando qualquer uma das modalidades descritas acima. Especificamente, este fluxo de bits pode ser obtido ou pode incluir os elementos de sintaxe e especificamente os elementos de sintaxe relacionados a CC-ALF conforme explicado nas modalidades alternativas 1 a 5 acima.[0355] The bit stream shown here can be obtained by encoding a video sequence using any of the modalities described above. Specifically, this bitstream may be obtained from or may include the syntax elements and specifically the syntax elements related to CC-ALF as explained in alternative embodiments 1 to 5 above.

[0356] A Figura 14 mostra um fluxograma de um método 4200 de codificação, por exemplo, de um vídeo. Este método pode, por exemplo, ser implementado usando o codificador de acordo com a Figura 12, mas também qualquer outro codificador e dispositivo de codificação revelado neste documento pode ser usado para realizar este método.[0356] Figure 14 shows a flowchart of a method 4200 of encoding, for example, a video. This method can, for example, be implemented using the encoder according to Figure 12, but also any other encoder and coding device disclosed in this document can be used to realize this method.

[0357] O método 4200 de codificação compreende aplicar 4201 um filtro loop adaptativo de componente cruzado, CC-ALF para refinar um componente de croma e gerar 4202 um fluxo de bits incluindo uma pluralidade de elementos de sintaxe relacionados a CC-ALF, em que a pluralidade de elementos de sintaxe relacionados a CC-ALF indica Informações relacionadas ao CC-ALF. Dentro do fluxo de bits gerado na etapa 4202, a pluralidade de elementos de sintaxe relacionados a CC-ALF é sinalizada em qualquer um ou mais dentre um nível de conjunto de parâmetros de sequência (SPS), um cabeçalho de imagem ou um cabeçalho de fatia. A pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um primeiro elemento de sintaxe que indica se um filtro loop adaptativo (ALF) compreendendo o filtro loop adaptativo de componente cruzado está habilitado ou não em um nível de sequência e o primeiro elemento de sintaxe é sinalizado no nível de SPS, e um segundo elemento de sintaxe que indica se o filtro loop adaptativo de componente cruzado está habilitado ou não em um nível de sequência e o segundo elemento de sintaxe é sinalizado no nível de SPS.[0357] Coding method 4200 comprises applying 4201 a cross-component adaptive loop filter, CC-ALF to refine a chroma component and generating 4202 a bit stream including a plurality of syntax elements related to CC-ALF, wherein the plurality of syntax elements related to CC-ALF indicates Information related to CC-ALF. Within the bitstream generated in step 4202, the plurality of CC-ALF-related syntax elements are signaled at any one or more of a sequence parameter set (SPS) level, an image header, or a slice header. . The plurality of syntax elements related to CC-ALF comprise a first syntax element that indicates whether an adaptive loop filter (ALF) comprising the cross-component adaptive loop filter is enabled or not at a sequence level, and the first syntax element is signaled at the SPS level, and a second syntax element that indicates whether the cross-component adaptive loop filter is enabled or not at a sequence level, and the second syntax element is signaled at the SPS level.

[0358] A Figura 15 mostra um fluxograma de um método 4300 de decodificação de, por exemplo, um vídeo de um fluxo de bits ou semelhantes. Este método 4300 pode, por exemplo, ser implementado usando o decodificador de acordo com a Figura 13. Além disso, qualquer outro decodificador e dispositivo de decodificação revelado neste documento pode ser usado para realizar o método 4300.[0358] Figure 15 shows a flowchart of a method 4300 of decoding, for example, a video from a bitstream or the like. This method 4300 can, for example, be implemented using the decoder according to Figure 13. Furthermore, any other decoder and decoding device disclosed herein can be used to carry out the method 4300.

[0359] O método 4300 compreende analisar 4301 uma pluralidade de elementos de sintaxe relacionados a filtros de loop adaptativo de componente cruzado, CC-ALF, a partir de um fluxo de bits, em que a pluralidade de elementos de sintaxe relacionados a CC-ALF é obtida a partir de qualquer um ou mais dentre um conjunto de parâmetros de sequência (SPS), um cabeçalho de imagem ou um cabeçalho de fatia. A pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um primeiro elemento de sintaxe que indica se um filtro loop adaptativo (ALF) compreendendo o filtro loop adaptativo de componente cruzado está habilitado ou não em um nível de sequência e o primeiro elemento de sintaxe é sinalizado no nível de SPS, e um segundo elemento de sintaxe que indica se o filtro loop adaptativo de componente cruzado está habilitado ou não em um nível de sequência e o segundo elemento de sintaxe é sinalizado no nível de SPS. O método 4300 compreende adicionalmente uma etapa de realizar 4302 um processo de CC-ALF usando pelo menos um dentre a pluralidade de elementos de sintaxe relacionados a CC-ALF.[0359] Method 4300 comprises analyzing 4301 a plurality of syntax elements related to cross-component adaptive loop filters, CC-ALF, from a bit stream, wherein the plurality of syntax elements related to CC-ALF is obtained from any one or more of a sequence parameter set (SPS), an image header, or a slice header. The plurality of syntax elements related to CC-ALF comprise a first syntax element that indicates whether an adaptive loop filter (ALF) comprising the cross-component adaptive loop filter is enabled or not at a sequence level, and the first syntax element is signaled at the SPS level, and a second syntax element that indicates whether the cross-component adaptive loop filter is enabled or not at a sequence level, and the second syntax element is signaled at the SPS level. Method 4300 further comprises a step of performing 4302 a CC-ALF process using at least one of the plurality of syntax elements related to CC-ALF.

[0360] Em uma modalidade, é fornecido um método de codificação implementado por um dispositivo de codificação, o método compreendendo: realizar um processo de filtragem (como um processo de filtragem de componente cruzado) aplicando um filtro loop adaptativo de componente cruzado (CC-ALF); gerar um fluxo de bits incluindo uma pluralidade de CC-ALF elementos de sintaxe relacionados (como M elementos de sintaxe relacionados a CC-ALF e M>=1 e M é um número inteiro), em que a pluralidade de elementos de sintaxe relacionados a CC-ALF indica as informações relacionadas a CC- ALF, em que a pluralidade de elementos de sintaxe relacionados a CC-ALF é sinalizada em qualquer um ou mais dentre um nível de conjunto de parâmetros de vídeo (VPS), um nível de conjunto de parâmetros de sequência (SPS), um nível de conjunto de parâmetros de imagem (PPS), um cabeçalho de imagem, um cabeçalho de fatia ou um cabeçalho de tile; ou em que a pluralidade de elementos de sintaxe relacionados a CC-ALF é sinalizada em um nível de conjunto de parâmetros de sequência (SPS) e/ou um cabeçalho de imagem.[0360] In one embodiment, there is provided a coding method implemented by a coding device, the method comprising: performing a filtering process (such as a cross-component filtering process) by applying a cross-component adaptive loop filter (CC- ALF); generate a bitstream including a plurality of CC-ALF related syntax elements (such as M CC-ALF related syntax elements and M>=1 and M is an integer), wherein the plurality of related syntax elements CC-ALF indicates information related to CC-ALF, wherein the plurality of syntax elements related to CC-ALF are signaled at any one or more of a video parameter set (VPS) level, a video parameter set level sequence parameters (SPS), an image parameter set (PPS) level, an image header, a slice header, or a tile header; or wherein the plurality of syntax elements related to CC-ALF are signaled at a sequence parameter set (SPS) level and/or an image header.

[0361] Com este método, pode ser fornecido um fluxo de bits que é reduzido em tamanho, pois as informações relevantes, por exemplo, para todas as fatias de uma imagem podem ser fornecidas no cabeçalho de imagem apenas uma vez.[0361] With this method, a bit stream can be provided that is reduced in size, as information relevant to, for example, all slices of an image can be provided in the image header only once.

[0362] Em uma modalidade, a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende: um primeiro elemento de sintaxe (por exemplo, um primeiro indicador, como sps_ccalf_enabled_flag ou sps_alf_enabled_flag), em que o primeiro elemento de sintaxe (por exemplo, um primeiro indicador, como sps_ccalf_enabled_flag) é sinalizado em um nível de conjunto de parâmetros de sequência (SPS). Este indicador pode indicar se ALF ou CC-ALF ou ambos podem estar habilitados ou não para toda a sequência.[0362] In one embodiment, the plurality of CC-ALF-related syntax elements comprises: a first syntax element (e.g., a first indicator, such as sps_ccalf_enabled_flag or sps_alf_enabled_flag), wherein the first syntax element (e.g., a first flag, such as sps_ccalf_enabled_flag) is signaled at a sequence parameter set (SPS) level. This indicator can indicate whether ALF or CC-ALF or both can be enabled or not for the entire sequence.

[0363] Em uma modalidade adicional, o primeiro elemento de sintaxe (por exemplo, um primeiro indicador, tal como sps_ccalf_enabled_flag) indica se o filtro loop adaptativo de componente cruzado (CC-ALF) está habilitado ou não em um nível de sequência, ou em que o primeiro elemento de sintaxe (por exemplo, um primeiro indicador, tal como sps_alf_enabled_flag) indica se o filtro loop adaptativo (ALF) compreendendo o filtro loop adaptativo de componente cruzado (CC-ALF) está habilitado ou não em um nível de sequência. Com este primeiro elemento de sintaxe, os modos do filtro loop adaptativo podem ser fornecidos especificamente em nível de sequência para todas as imagens ou partes da sequência.[0363] In a further embodiment, the first syntax element (e.g., a first indicator, such as sps_ccalf_enabled_flag) indicates whether or not the cross-component adaptive loop filter (CC-ALF) is enabled at a sequence level, or wherein the first syntax element (e.g., a first indicator, such as sps_alf_enabled_flag) indicates whether the adaptive loop filter (ALF) comprising the cross-component adaptive loop filter (CC-ALF) is enabled or not at a sequence level . With this first syntax element, adaptive loop filter modes can be provided specifically at the sequence level for all images or parts of the sequence.

[0364] Além disso, pode ser fornecido que o primeiro elemento de sintaxe (como sps_ccalf_enabled_flag ou sps_alf_enabled_flag) seja definido como um primeiro valor (true ou 1) ou o primeiro elemento de sintaxe tenha um primeiro valor (true ou 1). Com este valor, pode ser indicado se ALF e/ou CC- ALF estão/está habilitado usando, preferencialmente, apenas um único valor de bit.[0364] Additionally, it may be provided that the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is set to a first value (true or 1) or the first syntax element has a first value (true or 1). With this value, it can be indicated whether ALF and/or CC-ALF is/is enabled using, preferably, just a single bit value.

[0365] Em uma modalidade, a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende adicionalmente: um segundo elemento de sintaxe (por exemplo, um segundo indicador, como pic_ccalf_enabled_present_flag) se o primeiro elemento de sintaxe (como sps_ccalf_enabled_flag ou sps_alf_enabled_flag) é definido como um primeiro valor (true ou 1) ou o primeiro elemento de sintaxe tem um primeiro valor (true ou 1), em que o segundo elemento de sintaxe (como pic_ccalf_enabled_present_flag) é sinalizado em um cabeçalho de imagem; ou um nono elemento de sintaxe (por exemplo, um nono indicador, como pic_alf_enabled_present_flag) se o primeiro elemento de sintaxe (como sps_ccalf_enabled_flag ou sps_alf_enabled_flag) é definido como um primeiro valor (true ou 1) ou o primeiro elemento de sintaxe tem um primeiro valor (true ou 1), em que o nono elemento de sintaxe (como pic_alf_enabled_present_flag) é sinalizado em um cabeçalho de imagem.[0365] In one embodiment, the plurality of syntax elements related to CC-ALF further comprises: a second syntax element (e.g., a second indicator, such as pic_ccalf_enabled_present_flag) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is set to a first value (true or 1) or the first syntax element has a first value (true or 1), where the second syntax element (such as pic_ccalf_enabled_present_flag) is flagged in an image header; or a ninth syntax element (for example, a ninth indicator, such as pic_alf_enabled_present_flag) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is set to a first value (true or 1) or the first syntax element has a first value (true or 1), where the ninth syntax element (such as pic_alf_enabled_present_flag) is flagged in an image header.

[0366] Que o segundo elemento de sintaxe é fornecido se o primeiro elemento de sintaxe for definido como um primeiro valor (e correspondentemente para o nono elemento de sintaxe) pode ser entendido como significando que o respectivo elemento de sintaxe é fornecido apenas ou pelo menos se o primeiro elemento de sintaxe tiver o primeiro valor e não é fornecido em nenhum outro caso. Esta modalidade pode, no entanto, abranger que o segundo e o nono elemento de sintaxe sejam fornecidos ou presentes independentemente do valor do primeiro elemento de sintaxe. Este significado pode ser aplicado à presença ou não de todos os outros elementos de sintaxe aqui referidos, desde que esses elementos de sintaxe sejam referidos como presentes se outro elemento de sintaxe assumir um valor específico.[0366] That the second syntax element is provided if the first syntax element is set to a first value (and correspondingly for the ninth syntax element) can be understood to mean that the respective syntax element is provided only or at least if the first syntax element has the first value and is not provided in any other case. This embodiment may, however, encompass the second and ninth syntax elements being provided or present independently of the value of the first syntax element. This meaning may be applied to the presence or absence of all other syntax elements referred to herein, provided that those syntax elements are referred to as present if another syntax element takes on a specific value.

[0367] Com o segundo e nono elemento de sintaxe, pode-se especificar se ALF e/ou CC-ALF estão habilitados para as fatias da imagem usando uma quantidade reduzida de bits.[0367] With the second and ninth syntax element, it can be specified whether ALF and/or CC-ALF are enabled for image slices using a reduced amount of bits.

[0368] Em uma modalidade, o segundo elemento de sintaxe (por exemplo, um segundo indicador, tal como pic_ccalf_enabled_present_flag) indica se um terceiro elemento de sintaxe e/ou um quarto conjunto de elementos de sintaxe estão presentes em um cabeçalho de imagem.[0368] In one embodiment, the second syntax element (e.g., a second indicator, such as pic_ccalf_enabled_present_flag) indicates whether a third syntax element and/or a fourth set of syntax elements are present in an image header.

[0369] Pode ser adicionalmente fornecido que a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende adicionalmente: um terceiro elemento de sintaxe (por exemplo, um terceiro indicador, como pic_ccalf_enabled_flag ou pic_alf_enabled_flag) se o segundo elemento de sintaxe (como pic_ccalf_enabled_present_flag) ou o nono elemento de sintaxe (como pic_alf_enabled_present_flag) for definido como um primeiro valor (true ou 1) ou o segundo elemento de sintaxe ou o nono elemento de sintaxe tem um primeiro valor (true ou 1), em que o terceiro elemento de sintaxe (como pic_ccalf_enabled_flag ou pic_alf_enabled_flag) é sinalizado em um cabeçalho de imagem.[0369] It may further be provided that the plurality of CC-ALF-related syntax elements further comprises: a third syntax element (e.g., a third indicator, such as pic_ccalf_enabled_flag or pic_alf_enabled_flag) and the second syntax element (such as pic_ccalf_enabled_present_flag) or the ninth syntax element (such as pic_alf_enabled_present_flag) is set to a first value (true or 1) or the second syntax element or the ninth syntax element has a first value (true or 1), where the third syntax element (like pic_ccalf_enabled_flag or pic_alf_enabled_flag) is flagged in an image header.

[0370] Em uma modalidade adicional, o terceiro elemento de sintaxe (por exemplo, um terceiro indicador, tal como pic_ccalf_enabled_flag) indica se o filtro loop adaptativo de componente cruzado (CCALF) está habilitado para todas as fatias associadas ao cabeçalho de imagem ou não, ou em que o terceiro elemento de sintaxe (por exemplo, um terceiro indicador, tal como pic_alf_enabled_flag) indica se o filtro loop adaptativo compreendendo o filtro loop adaptativo de componente cruzado (CCALF) está habilitado para todas as fatias associadas ao cabeçalho de imagem ou não. As informações sobre a aplicação de ALF ou CC-ALF podem assim ser sinalizadas para todas as fatias de uma imagem usando uma quantidade reduzida de informações.[0370] In a further embodiment, the third syntax element (e.g., a third flag, such as pic_ccalf_enabled_flag) indicates whether the cross-component adaptive loop filter (CCALF) is enabled for all slices associated with the image header or not , or wherein the third syntax element (e.g., a third indicator such as pic_alf_enabled_flag) indicates whether the adaptive loop filter comprising the cross-component adaptive loop filter (CCALF) is enabled for all slices associated with the image header or no. Information about the application of ALF or CC-ALF can thus be signaled to all slices of an image using a reduced amount of information.

[0371] Em uma modalidade adicional, a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende adicionalmente: um quarto conjunto de elementos de sintaxe se o terceiro elemento de sintaxe (por exemplo, um terceiro indicador, como pic_ccalf_enabled_flag ou pic_alf_enabled_flag) for definido como um primeiro valor (true ou 1) ou o terceiro elemento de sintaxe tiver um primeiro valor (true ou 1), em que o quarto conjunto de elementos de sintaxe é sinalizado em um cabeçalho de imagem (por exemplo, em um nível de cabeçalho de imagem) ou o quarto conjunto de elementos de sintaxe é portado por entradas de cabeçalho de imagem.[0371] In a further embodiment, the plurality of syntax elements related to CC-ALF further comprises: a fourth set of syntax elements if the third syntax element (e.g., a third indicator such as pic_ccalf_enabled_flag or pic_alf_enabled_flag) is defined as a first value (true or 1) or the third syntax element has a first value (true or 1), where the fourth set of syntax elements is signaled in an image header (for example, at a header level image) or the fourth set of syntax elements is carried by image header entries.

[0372] Especificamente, em uma modalidade, o quarto conjunto de elementos de sintaxe compreende: [0372] Specifically, in one embodiment, the fourth set of syntax elements comprises:

[0373] Pode adicionalmente ou alternativamente ser fornecido que o quarto conjunto de elementos de sintaxe compreende: [0373] It may additionally or alternatively be provided that the fourth set of syntax elements comprises:

[0374] Além disso, adicionalmente ou alternativamente, o quarto conjunto de elementos de sintaxe compreende: [0374] Furthermore, additionally or alternatively, the fourth set of syntax elements comprises:

[0375] Com as modalidades acima, informações relevantes para os filtros a serem aplicados podem ser fornecidas para todas as fatias já no cabeçalho de imagem, reduzindo potencialmente o tamanho do fluxo de bits.[0375] With the above embodiments, information relevant to the filters to be applied can be provided for all slices already in the image header, potentially reducing the size of the bit stream.

[0376] Em uma modalidade adicional, é fornecido que, para todas as fatias da mesma imagem, as mesmas informações relacionadas a CC-ALF (como aps_ids) são herdadas a partir do cabeçalho de imagem. As informações fornecidas no cabeçalho de imagem não precisam, portanto, ser incluídas nos cabeçalhos de fatia ou semelhantes em adição, reduzindo assim potencialmente a quantidade de informações que é fornecida no fluxo de bits.[0376] In a further embodiment, it is provided that for all slices of the same image, the same CC-ALF related information (such as aps_ids) is inherited from the image header. Information provided in the image header therefore need not be included in slice headers or the like in addition, thus potentially reducing the amount of information that is provided in the bitstream.

[0377] Em uma modalidade, a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende: um primeiro elemento de sintaxe (por exemplo, um primeiro indicador, como sps_ccalf_enabled_flag ou sps_alf_enabled_flag), em que o primeiro elemento de sintaxe (por exemplo, um primeiro indicador, como sps_ccalf_enabled_flag) é sinalizado em um nível de conjunto de parâmetros de sequência (SPS), um segundo elemento de sintaxe (por exemplo, um segundo indicador, como pic_ccalf_enabled_present_flag) se o primeiro elemento de sintaxe (como sps_ccalf_enabled_flag ou sps_alf_enabled_flag) for definido como um primeiro valor (true ou 1) ou tiver um primeiro valor (true ou 1), em que o segundo elemento de sintaxe (como pic_ccalf_enabled_present_flag) é sinalizado em um cabeçalho de imagem.[0377] In one embodiment, the plurality of CC-ALF-related syntax elements comprises: a first syntax element (e.g., a first indicator, such as sps_ccalf_enabled_flag or sps_alf_enabled_flag), wherein the first syntax element (e.g., a first indicator, such as sps_ccalf_enabled_flag) is signaled at a sequence parameter set (SPS) level, a second syntax element (for example, a second indicator, such as pic_ccalf_enabled_present_flag) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is set to a first value (true or 1) or has a first value (true or 1) where the second syntax element (such as pic_ccalf_enabled_present_flag) is flagged in an image header.

[0378] Além disso, a pluralidade de elementos de sintaxe relacionados a CC-ALF pode compreender: um quinto elemento de sintaxe (por exemplo, um quinto indicador, como slice_ccalf_enabled_flag ou slice_alf_enabled_flag) se o primeiro elemento de sintaxe (como sps_ccalf_enabled_flag ou sps_alf_enabled_flag) for definido como um primeiro valor (true ou 1) ou tiver um primeiro valor (true ou 1) e se o segundo elemento de sintaxe (como pic_ccalf_enabled_present_flag ou pic_alf_enabled_present_flag) estiver definido como um segundo valor (false ou 0) ou tiver um segundo valor (false ou 0), em que o quinto elemento de sintaxe (como slice_ccalf_enabled_flag ou slice_alf_enabled_flag) é sinalizado em um cabeçalho de fatia.[0378] Furthermore, the plurality of syntax elements related to CC-ALF may comprise: a fifth syntax element (e.g., a fifth indicator, such as slice_ccalf_enabled_flag or slice_alf_enabled_flag) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is set to a first value (true or 1) or has a first value (true or 1) and if the second syntax element (such as pic_ccalf_enabled_present_flag or pic_alf_enabled_present_flag) is set to a second value (false or 0) or has a second value (false or 0), where the fifth syntax element (such as slice_ccalf_enabled_flag or slice_alf_enabled_flag) is flagged in a slice header.

[0379] Também pode ser fornecido que a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende adicionalmente: um sexto conjunto de elementos de sintaxe se o quinto elemento de sintaxe (por exemplo, um quinto indicador, como slice_ccalf_enabled_flag ou slice_alf_enabled_flag) for definido como um primeiro valor (true ou 1) ou o quinto elemento de sintaxe tiver um primeiro valor (true ou 1), em que o sexto conjunto de elementos de sintaxe é sinalizado em um cabeçalho de fatia ou o sexto conjunto de elementos de sintaxe é portado por entradas de cabeçalho de fatia. Este conjunto de elementos de sintaxe pode, por exemplo, indicar parâmetros a serem usados em ALF ou CC-ALF. Ao fornecer este conjunto potencialmente dependente do valor do quinto elemento de sintaxe, o tamanho do fluxo de bits pode ser adicionalmente reduzido.[0379] It may also be provided that the plurality of syntax elements related to CC-ALF further comprises: a sixth set of syntax elements if the fifth syntax element (e.g., a fifth indicator such as slice_ccalf_enabled_flag or slice_alf_enabled_flag) is defined as a first value (true or 1) or the fifth syntax element has a first value (true or 1), where the sixth set of syntax elements is signaled in a slice header or the sixth set of syntax elements is carried by slice header entries. This set of syntax elements can, for example, indicate parameters to be used in ALF or CC-ALF. By providing this potentially value-dependent set of the fifth syntax element, the size of the bit stream can be further reduced.

[0380] Especificamente, pode ser fornecido que o sexto conjunto de elementos de sintaxe compreende: [0380] Specifically, it can be provided that the sixth set of syntax elements comprises:

[0381] Adicionalmente ou alternativamente, pode ser fornecido que o sexto conjunto de elementos de sintaxe compreenda: [0381] Additionally or alternatively, it may be provided that the sixth set of syntax elements comprises:

[0382] Além disso, pode ser fornecido que o sexto conjunto de elementos de sintaxe compreende: [0382] Furthermore, it can be provided that the sixth set of syntax elements comprises:

[0383] Em uma modalidade adicional, a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende adicionalmente: um sétimo elemento de sintaxe (por exemplo, um sétimo indicador, como pic_cross_component_alf_cb_aps_id) e um oitavo elemento de sintaxe (por exemplo, um oitavo indicador, como pic_cross_component_alf_cr_aps_id) se o primeiro elemento de sintaxe (como sps_ccalf_enabled_flag ou sps_alf_enabled_flag) for definido como um primeiro valor (true ou 1) ou tiver um primeiro valor (true ou 1).[0383] In a further embodiment, the plurality of syntax elements related to CC-ALF further comprises: a seventh syntax element (e.g., a seventh indicator, such as pic_cross_component_alf_cb_aps_id) and an eighth syntax element (e.g., an eighth indicator, such as pic_cross_component_alf_cr_aps_id) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is set to a first value (true or 1) or has a first value (true or 1).

[0384] Em uma modalidade, a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende adicionalmente: um sétimo elemento de sintaxe (por exemplo, um sétimo indicador, como pic_cross_component_alf_cb_aps_id) e um oitavo elemento de sintaxe (por exemplo, um oitavo indicador, como pic_cross_component_alf_cr_aps_id) se o primeiro elemento de sintaxe (como sps_ccalf_enabled_flag ou sps_alf_enabled_flag) for definido como um primeiro valor (true ou 1) ou tiver um primeiro valor (true ou 1) e se um nono elemento de sintaxe (como pic_alf_enabled_present_flag) for definido como um primeiro valor (true ou 1) ou tiver um primeiro valor (true ou 1).[0384] In one embodiment, the plurality of syntax elements related to CC-ALF further comprises: a seventh syntax element (e.g., a seventh indicator, such as pic_cross_component_alf_cb_aps_id) and an eighth syntax element (e.g., an eighth indicator , such as pic_cross_component_alf_cr_aps_id) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is defined as a first value (true or 1) or has a first value (true or 1) and if a ninth syntax element (such as pic_alf_enabled_present_flag) is defined as a first value (true or 1) or has a first value (true or 1).

[0385] Em uma modalidade, a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende adicionalmente: um sétimo elemento de sintaxe (por exemplo, um sétimo indicador, como pic_cross_component_alf_cb_aps_id), um oitavo elemento de sintaxe (por exemplo, um oitavo indicador, tal como pic_cross_component_alf_cr_aps_id) e o segundo elemento de sintaxe (tal como pic_ccalf_enabled_present_flag) se o primeiro elemento de sintaxe (tal como sps_ccalf_enabled_flag ou sps_alf_enabled_flag) é definido como um primeiro valor (true ou 1) ou tem um primeiro valor (true ou 1) e se um nono elemento de sintaxe (como pic_alf_enabled_present_flag) for definido como um primeiro valor (true ou 1) ou tem um primeiro valor (true ou 1).[0385] In one embodiment, the plurality of syntax elements related to CC-ALF further comprises: a seventh syntax element (e.g., a seventh indicator, such as pic_cross_component_alf_cb_aps_id), an eighth syntax element (e.g., an eighth indicator , such as pic_cross_component_alf_cr_aps_id) and the second syntax element (such as pic_ccalf_enabled_present_flag) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is set to a first value (true or 1) or has a first value (true or 1) and whether a ninth syntax element (such as pic_alf_enabled_present_flag) is set to a first value (true or 1) or has a first value (true or 1).

[0386] Também pode ser fornecido que a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende adicionalmente: um sétimo elemento de sintaxe (por exemplo, um sétimo indicador, como pic_cross_component_alf_cb_aps_id), um oitavo elemento de sintaxe (por exemplo, um oitavo indicador, como pic_cross_component_alf_cr_aps_id) e o nono elemento de sintaxe (como pic_alf_enabled_present_flag) se o primeiro elemento de sintaxe (como sps_ccalf_enabled_flag ou sps_alf_enabled_flag) for definido como um primeiro valor (true ou 1) ou tem um primeiro valor (true ou 1).[0386] It may also be provided that the plurality of syntax elements related to CC-ALF further comprises: a seventh syntax element (e.g., a seventh indicator, such as pic_cross_component_alf_cb_aps_id), an eighth syntax element (e.g., an eighth indicator, such as pic_cross_component_alf_cr_aps_id) and the ninth syntax element (such as pic_alf_enabled_present_flag) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is set to a first value (true or 1) or has a first value (true or 1).

[0387] Além disso, em uma modalidade, o CC-ALF é aplicado para realizar o processamento de filtragem em uma ou mais amostras de luma de um componente de luma de um bloco de imagem atual, para refinar uma amostra de croma (como cada amostra de croma) de um componente de croma do bloco de imagem atual.[0387] Additionally, in one embodiment, CC-ALF is applied to perform filter processing on one or more luma samples of a luma component of a current image block, to refine a chroma sample (such as each chroma sample) of a chroma component of the current image block.

[0388] Especificamente, pode ser fornecido que o CC-ALF é configurado para refinar cada componente de croma usando valores de amostra de luma.[0388] Specifically, it may be provided that the CC-ALF is configured to refine each chroma component using luma sample values.

[0389] Em uma modalidade, o CC-ALF opera como parte do processo de filtro loop adaptativo.[0389] In one embodiment, the CC-ALF operates as part of the adaptive loop filter process.

[0390] Também pode ser fornecido que o bloco de imagem compreende um bloco de luma e blocos de croma, em que um primeiro bloco de croma é um primeiro componente de croma (tal como componente Cb) do bloco de imagem e um segundo bloco de croma é um segundo componente de croma (tal como componente Cr) do bloco de imagem.[0390] It can also be provided that the image block comprises a luma block and chroma blocks, wherein a first chroma block is a first chroma component (such as Cb component) of the image block and a second block of Chroma is a second chroma component (such as Cr component) of the image block.

[0391] A presente revelação se refere adicionalmente a um método de codificação implementado por um dispositivo de codificação, compreendendo: determinar se o ALF de Componente Cruzado (CC-ALF) está habilitado ou não; gerar um fluxo de bits incluindo um ou mais elementos de sintaxe (por exemplo, elemento de sintaxe relacionado a CC-ALF, como pic_ccalf_enabled_flag, pic_cross_component_alf_cb_enabled_flag ou pic_cross_component_alf_cr_enabled_flag), em que os um ou mais elementos de sintaxe indicam se o ALF de Componente Cruzado (CC-ALF) está habilitado ou não em um nível de cabeçalho de imagem e informações relacionadas a CC-ALF correspondentes, em que os elementos de sintaxe são sinalizados em um nível de cabeçalho de imagem. Assim, informações relevantes para a decodificação posterior podem ser fornecidas com tamanho reduzido no fluxo de bits.[0391] The present disclosure further relates to a coding method implemented by a coding device, comprising: determining whether the Cross-Component ALF (CC-ALF) is enabled or not; generate a bitstream including one or more syntax elements (e.g., CC-ALF-related syntax element such as pic_ccalf_enabled_flag, pic_cross_component_alf_cb_enabled_flag, or pic_cross_component_alf_cr_enabled_flag), wherein the one or more syntax elements indicate whether the Cross-Component ALF ( CC-ALF) is enabled or not at an image header level and corresponding CC-ALF related information, where syntax elements are flagged at an image header level. Thus, information relevant for subsequent decoding can be provided in a reduced size in the bit stream.

[0392] Também pode ser fornecido que o CC-ALF seja aplicado para realizar o processamento de filtragem em uma ou mais amostras de luma de um componente de luma de um bloco de imagem atual, para refinar uma amostra de croma (como cada amostra de croma) de um componente de croma do bloco de imagem atual.[0392] It may also be provided that CC-ALF is applied to perform filter processing on one or more luma samples of a luma component of a current image block, to refine a chroma sample (such as each chroma) of a chroma component of the current image block.

[0393] Em uma modalidade, o método compreende adicionalmente: realizar processamento de filtragem em um componente de luma de um bloco de imagem atual que pertence a uma imagem usando o filtro CC- ALF, em que uma ou mais amostras de luma do componente de luma do bloco de imagem atual são usadas para refinar pelo menos uma amostra de croma (como cada amostra de croma) de um componente de croma do bloco de imagem atual.[0393] In one embodiment, the method further comprises: performing filtering processing on a luma component of a current image block belonging to an image using the CC-ALF filter, wherein one or more luma samples of the image component luma of the current image block are used to refine at least one chroma sample (as each chroma sample) of a chroma component of the current image block.

[0394] Também pode ser fornecido que o CC-ALF é configurado para refinar cada componente de croma usando valores de amostra de luma.[0394] It may also be provided that the CC-ALF is configured to refine each chroma component using luma sample values.

[0395] Em uma modalidade adicional, o CC-ALF opera como parte do processo de filtro loop adaptativo.[0395] In a further embodiment, the CC-ALF operates as part of the adaptive loop filter process.

[0396] Também pode ser fornecido que o bloco de imagem compreende um bloco de luma e blocos de croma, em que um primeiro bloco de croma é um primeiro componente de croma (tal como componente Cb) do bloco de imagem e um segundo bloco de croma é um segundo componente de croma (tal como componente Cr) do bloco de imagem.[0396] It may also be provided that the image block comprises a luma block and chroma blocks, wherein a first chroma block is a first chroma component (such as Cb component) of the image block and a second block of Chroma is a second chroma component (such as Cr component) of the image block.

[0397] A presente revelação se refere adicionalmente a um método de decodificação implementado por um dispositivo de decodificação, o método compreendendo: analisar um ou mais elementos de sintaxe a partir de um fluxo de bits de um sinal de vídeo, em que os um ou mais elementos de sintaxe indicam informações relacionadas a Filtro loop Adaptativo de Componente Cruzado (CC- ALF), em que os um ou mais elementos de sintaxe são obtidos a partir de qualquer um ou mais dentre um nível de conjunto de parâmetros de vídeo (VPS), um nível de conjunto de parâmetros de sequência (SPS), um nível de conjunto de parâmetros de imagem (PPS), um cabeçalho de imagem, um cabeçalho de fatia ou um cabeçalho de tile do fluxo de bits; ou em que os um ou mais elementos de sintaxe são obtidos a partir de um nível de conjunto de parâmetros de sequência (SPS) e/ou um cabeçalho de imagem; e realizar um processo de filtragem (como um processo de filtragem de componente cruzado) aplicando um CC-ALF com base nos elementos de sintaxe ou com base no valor dos elementos de sintaxe.[0397] The present disclosure further relates to a decoding method implemented by a decoding device, the method comprising: analyzing one or more syntax elements from a bit stream of a video signal, wherein the one or more more syntax elements indicate information related to Cross-Component Adaptive Loop Filter (CC-ALF), where the one or more syntax elements are obtained from any one or more of a video parameter set (VPS) level , a sequence parameter set (SPS) level, an image parameter set (PPS) level, an image header, a slice header, or a bitstream tile header; or wherein the one or more syntax elements are obtained from a sequence parameter set (SPS) level and/or an image header; and performing a filtering process (such as a cross-component filtering process) by applying a CC-ALF based on the syntax elements or based on the value of the syntax elements.

[0398] As informações que podem ser necessárias para determinar o método de filtragem a ser aplicado e como ele deve ser aplicado podem ser fornecidas com isso em um fluxo de bits que tem tamanho reduzido e ainda permite uma decodificação confiável.[0398] Information that may be needed to determine the filtering method to be applied and how it should be applied can be provided therewith in a bit stream that is reduced in size and still allows reliable decoding.

[0399] A presente revelação descreve adicionalmente um método de decodificação implementado por um dispositivo de decodificação, o método compreendendo: analisar uma pluralidade de elementos de sintaxe a partir de um fluxo de bits de um sinal de vídeo, em que os elementos de sintaxe são obtidos a partir de qualquer um ou mais dentre um nível de conjunto de parâmetros de vídeo (VPS), um nível de conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros de imagem (PPS)), um cabeçalho de imagem, um cabeçalho de fatia ou um cabeçalho de tile do fluxo de bits; ou em que os elementos de sintaxe são obtidos a partir de um nível de conjunto de parâmetros de sequência (SPS) e/ou um cabeçalho de imagem; determinar informações relacionadas a Filtro loop Adaptativo de Componente Cruzado (CC-ALF) com base em um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe, em que realizar um processo de filtragem (como um processo de filtragem de componente cruzado) aplicando um CC-ALF com base nas informações relacionadas a CC-ALFs.[0399] The present disclosure further describes a decoding method implemented by a decoding device, the method comprising: analyzing a plurality of syntax elements from a bit stream of a video signal, wherein the syntax elements are obtained from any one or more of a video parameter set (VPS) level, a sequence parameter set (SPS) level, a picture parameter set (PPS) level), an image header, a slice header or a bitstream tile header; or wherein the syntax elements are obtained from a string parameter set (SPS) level and/or an image header; determining Cross-Component Adaptive Loop Filter (CC-ALF) related information based on one or more syntax elements of the plurality of syntax elements, wherein performing a filtering process (such as a cross-component filtering process) by applying a CC-ALF based on information related to CC-ALFs.

[0400] As informações que podem ser necessárias para determinar o método de filtragem a ser aplicado e como ele deve ser aplicado podem ser fornecidas com isso em um fluxo de bits que tem tamanho reduzido e ainda permite uma decodificação confiável.[0400] Information that may be needed to determine the filtering method to be applied and how it should be applied can be provided therewith in a bit stream that is reduced in size and still allows reliable decoding.

[0401] Pode ser fornecido que os um ou mais elementos de sintaxe ou a pluralidade de elementos de sintaxe (como elementos de sintaxe relacionados a CC-ALF) compreendem: um primeiro elemento de sintaxe (por exemplo, um primeiro indicador, como sps_ccalf_enabled_flag ou sps_alf_enabled_flag), em que o primeiro elemento de sintaxe (por exemplo, um primeiro indicador, como sps_ccalf_enabled_flag) é obtido a partir de um nível de conjunto de parâmetros de sequência (SPS).[0401] It may be provided that the one or more syntax elements or the plurality of syntax elements (such as CC-ALF-related syntax elements) comprise: a first syntax element (e.g., a first indicator, such as sps_ccalf_enabled_flag or sps_alf_enabled_flag), where the first syntax element (for example, a first flag such as sps_ccalf_enabled_flag) is taken from a sequence parameter set (SPS) level.

[0402] Especificamente, pode ser adicionalmente fornecido que o primeiro elemento de sintaxe (por exemplo, um primeiro indicador, como sps_ccalf_enabled_flag) indica se o filtro loop adaptativo de componente cruzado (CC-ALF) está habilitado ou não em um nível de sequência, ou em que o primeiro elemento de sintaxe (por exemplo, um primeiro indicador, tal como sps_alf_enabled_flag) indica se o filtro loop adaptativo (ALF) compreendendo o filtro loop adaptativo de componente cruzado (CC-ALF) está habilitado ou não em um nível de sequência.[0402] Specifically, it may be further provided that the first syntax element (e.g., a first indicator, such as sps_ccalf_enabled_flag) indicates whether or not the cross-component adaptive loop filter (CC-ALF) is enabled at a sequence level, or wherein the first syntax element (e.g., a first flag, such as sps_alf_enabled_flag) indicates whether or not the adaptive loop filter (ALF) comprising the cross-component adaptive loop filter (CC-ALF) is enabled or not at a level of sequence.

[0403] Assim, informações sobre qual método de filtro deve ser aplicado podem ser fornecidas com uma quantidade reduzida de informações ao decodificador no fluxo de bits.[0403] Thus, information about which filter method should be applied can be provided with a reduced amount of information to the decoder in the bit stream.

[0404] Em uma modalidade, o primeiro elemento de sintaxe (como sps_ccalf_enabled_flag ou sps_alf_enabled_flag) é derivado como um primeiro valor (true ou 1) ou o primeiro elemento de sintaxe tem um primeiro valor (true ou 1).[0404] In one embodiment, the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is derived as a first value (true or 1) or the first syntax element has a first value (true or 1).

[0405] Também pode ser fornecido que a pluralidade de elementos de sintaxe (como elementos de sintaxe relacionados a CC-ALF) compreende adicionalmente: um segundo elemento de sintaxe (por exemplo, um segundo indicador, como pic_ccalf_enabled_present_flag) se o primeiro elemento de sintaxe (como sps_ccalf_enabled_flag ou sps_alf_enabled_flag) é derivado como um primeiro valor (true ou 1) ou o primeiro elemento de sintaxe tem um primeiro valor (true ou 1), em que o segundo elemento de sintaxe (como pic_ccalf_enabled_present_flag) é obtido a partir de um cabeçalho de imagem; ou um nono elemento de sintaxe (por exemplo, um nono indicador, como pic_alf_enabled_present_flag) se o primeiro elemento de sintaxe (como sps_ccalf_enabled_flag ou sps_alf_enabled_flag) é derivado como um primeiro valor (true ou 1) ou o primeiro elemento de sintaxe tem um primeiro valor (true ou 1), em que o nono elemento de sintaxe (como pic_alf_enabled_present_flag) é obtido a partir de um cabeçalho de imagem.[0405] It may also be provided that the plurality of syntax elements (such as CC-ALF-related syntax elements) further comprises: a second syntax element (e.g., a second indicator, such as pic_ccalf_enabled_present_flag) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is derived as a first value (true or 1) or the first syntax element has a first value (true or 1), where the second syntax element (such as pic_ccalf_enabled_present_flag) is derived from a image header; or a ninth syntax element (for example, a ninth indicator, such as pic_alf_enabled_present_flag) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is derived as a first value (true or 1) or the first syntax element has a first value (true or 1), where the ninth syntax element (such as pic_alf_enabled_present_flag) is taken from an image header.

[0406] Em uma modalidade adicional, o segundo elemento de sintaxe (por exemplo, um segundo indicador, tal como pic_ccalf_enabled_present_flag) indica se um terceiro elemento de sintaxe e/ou um quarto conjunto de elementos de sintaxe estão presentes em um cabeçalho de imagem.[0406] In a further embodiment, the second syntax element (e.g., a second indicator, such as pic_ccalf_enabled_present_flag) indicates whether a third syntax element and/or a fourth set of syntax elements are present in an image header.

[0407] A pluralidade de elementos de sintaxe (como elementos de sintaxe relacionados a CC-ALF) pode compreender ainda: um terceiro elemento de sintaxe (por exemplo, um terceiro indicador, como pic_ccalf_enabled_flag ou pic_alf_enabled_flag) se o segundo elemento de sintaxe (como pic_ccalf_enabled_present_flag) ou o nono elemento de sintaxe (como pic_alf_enabled_present_flag) for derivado como um primeiro valor (true ou 1) ou o segundo elemento de sintaxe ou o nono elemento de sintaxe tem um primeiro valor (true ou 1), em que o terceiro elemento de sintaxe (como pic_ccalf_enabled_flag ou pic_alf_enabled_flag) é obtido a partir de um cabeçalho de imagem.[0407] The plurality of syntax elements (such as CC-ALF-related syntax elements) may further comprise: a third syntax element (e.g., a third indicator, such as pic_ccalf_enabled_flag or pic_alf_enabled_flag) if the second syntax element (such as pic_ccalf_enabled_present_flag) or the ninth syntax element (such as pic_alf_enabled_present_flag) is derived as a first value (true or 1) or the second syntax element or the ninth syntax element has a first value (true or 1), where the third element syntax (such as pic_ccalf_enabled_flag or pic_alf_enabled_flag) is obtained from an image header.

[0408] Especificamente, pode ser fornecido que o terceiro elemento de sintaxe (por exemplo, um terceiro indicador, como pic_ccalf_enabled_flag) indica se o filtro loop adaptativo de componente cruzado (CCALF) está habilitado para todas as fatias associadas ao cabeçalho de imagem ou não, ou em que o terceiro elemento de sintaxe (por exemplo, um terceiro indicador, tal como pic_alf_enabled_flag) indica se o filtro loop adaptativo compreendendo o filtro loop adaptativo de componente cruzado (CCALF) está habilitado para todas as fatias associadas ao cabeçalho de imagem ou não.[0408] Specifically, it may be provided that the third syntax element (e.g., a third indicator such as pic_ccalf_enabled_flag) indicates whether the cross-component adaptive loop filter (CCALF) is enabled for all slices associated with the image header or not , or wherein the third syntax element (e.g., a third indicator such as pic_alf_enabled_flag) indicates whether the adaptive loop filter comprising the cross-component adaptive loop filter (CCALF) is enabled for all slices associated with the image header or no.

[0409] Em uma modalidade, a pluralidade de elementos de sintaxe (como elementos de sintaxe relacionados a CC-ALF) compreende adicionalmente: um quarto conjunto de elementos de sintaxe se o terceiro elemento de sintaxe (por exemplo, um terceiro indicador, como pic_ccalf_enabled_flag ou pic_alf_enabled_flag) for derivado como um primeiro valor (true ou 1) ou o terceiro elemento de sintaxe tiver um primeiro valor (true ou 1), em que o quarto conjunto de elementos de sintaxe é obtido a partir de um cabeçalho de imagem (por exemplo, em um nível de cabeçalho de imagem) ou o quarto conjunto de elementos de sintaxe é portado por entradas de cabeçalho de imagem.[0409] In one embodiment, the plurality of syntax elements (such as CC-ALF-related syntax elements) further comprises: a fourth set of syntax elements and the third syntax element (e.g., a third indicator, such as pic_ccalf_enabled_flag or pic_alf_enabled_flag) is derived as a first value (true or 1) or the third syntax element has a first value (true or 1), where the fourth set of syntax elements is obtained from an image header (e.g. example, at an image header level) or the fourth set of syntax elements is carried by image header entries.

[0410] Este conjunto de elementos de sintaxe só pode ser fornecido se o terceiro elemento de sintaxe tomar ou for derivado como o primeiro valor e não estiver presente de outra forma ou os valores do conjunto de elementos de sintaxe podem ser definidos para um valor padrão, como 0, se o terceiro elemento de sintaxe assume um valor diferente. Em ambos os casos, fornecimento confiável de informações relevantes para a decodificação pode ser assegurado em tamanho reduzido do fluxo de bits.[0410] This set of syntax elements may only be provided if the third syntax element takes or is derived as the first value and is not otherwise present or the values of the set of syntax elements may be set to a default value , as 0, if the third syntax element takes a different value. In both cases, reliable provision of decoding-relevant information can be ensured at reduced bitstream size.

[0411] Especificamente, o quarto conjunto de elementos de sintaxe pode compreender: [0411] Specifically, the fourth set of syntax elements may comprise:

[0412] Alternativamente ou adicionalmente, o quarto conjunto de elementos de sintaxe pode compreender: [0412] Alternatively or additionally, the fourth set of syntax elements may comprise:

[0413] Em uma modalidade adicional, o quarto conjunto de elementos de sintaxe pode compreender: [0413] In a further embodiment, the fourth set of syntax elements may comprise:

[0414] Pode ser fornecido que, para todas as fatias da mesma imagem, as mesmas informações relacionadas a CC-ALF (como, aps_ids) são herdadas a partir do cabeçalho de imagem. Deste modo, a quantidade de informações fornecidas no fluxo de bits para indicar ao decodificador as informações relacionadas a CC-ALF para as fatias de uma imagem pode ser reduzida.[0414] It can be provided that, for all slices of the same image, the same CC-ALF related information (such as, aps_ids) is inherited from the image header. In this way, the amount of information provided in the bitstream to indicate to the decoder CC-ALF related information for slices of an image can be reduced.

[0415] Em uma modalidade, a pluralidade de elementos de sintaxe (como elementos de sintaxe relacionados a CC-ALF) compreende: um primeiro elemento de sintaxe (por exemplo, um primeiro indicador, como sps_ccalf_enabled_flag ou sps_alf_enabled_flag), em que o primeiro elemento de sintaxe (por exemplo, um primeiro indicador, como sps_ccalf_enabled_flag) é obtido a partir de um nível de conjunto de parâmetros de sequência (SPS), um segundo elemento de sintaxe (por exemplo, um segundo indicador, como pic_ccalf_enabled_present_flag) se o primeiro elemento de sintaxe (como sps_ccalf_enabled_flag ou sps_alf_enabled_flag) for derivado como um primeiro valor (true ou 1) ou tiver um primeiro valor (true ou 1), em que o segundo elemento de sintaxe (como pic_ccalf_enabled_present_flag) é obtido a partir de um cabeçalho de imagem.[0415] In one embodiment, the plurality of syntax elements (such as CC-ALF-related syntax elements) comprises: a first syntax element (e.g., a first indicator, such as sps_ccalf_enabled_flag or sps_alf_enabled_flag), wherein the first element syntax element (for example, a first indicator such as sps_ccalf_enabled_flag) is obtained from a string parameter set (SPS) level, a second syntax element (for example a second indicator such as pic_ccalf_enabled_present_flag) if the first element syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is derived as a first value (true or 1) or has a first value (true or 1) where the second syntax element (such as pic_ccalf_enabled_present_flag) is obtained from an image header .

[0416] Em uma modalidade adicional, a pluralidade de elementos de sintaxe (como elementos de sintaxe relacionados a CC-ALF) compreende adicionalmente: um quinto elemento de sintaxe (por exemplo, um quinto indicador, como slice_ccalf_enabled_flag ou slice_alf_enabled_flag) se o primeiro elemento de sintaxe (como sps_ccalf_enabled_flag ou sps_alf_enabled_flag) for derivado como um primeiro valor (true ou 1) ou tiver um primeiro valor (true ou 1) e se o segundo elemento de sintaxe (como pic_ccalf_enabled_present_flag ou pic_alf_enabled_present_flag) for derivado como um segundo valor (false ou 0) ou tiver um segundo valor (false ou 0), em que o quinto elemento de sintaxe (como slice_ccalf_enabled_flag ou slice_alf_enabled_flag) é obtido a partir de um cabeçalho de fatia.[0416] In a further embodiment, the plurality of syntax elements (such as CC-ALF-related syntax elements) further comprises: a fifth syntax element (e.g., a fifth indicator, such as slice_ccalf_enabled_flag or slice_alf_enabled_flag) if the first element syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is derived as a first value (true or 1) or has a first value (true or 1) and the second syntax element (such as pic_ccalf_enabled_present_flag or pic_alf_enabled_present_flag) is derived as a second value (false or 0) or has a second value (false or 0), where the fifth syntax element (such as slice_ccalf_enabled_flag or slice_alf_enabled_flag) is obtained from a slice header.

[0417] Pode ser fornecido que a pluralidade de elementos de sintaxe (como elementos de sintaxe relacionados a CC-ALF) compreende adicionalmente: um sexto conjunto de elementos de sintaxe se o quinto elemento de sintaxe (por exemplo, um quinto indicador, como slice_ccalf_enabled_flag ou slice_alf_enabled_flag) for derivado como um primeiro valor (true ou 1) ou o quinto elemento de sintaxe tiver um primeiro valor (true ou 1), em que o sexto conjunto de elementos de sintaxe é obtido a partir de um cabeçalho de fatia ou o sexto conjunto de elementos de sintaxe é portado por entradas de cabeçalho de fatia.[0417] It may be provided that the plurality of syntax elements (such as CC-ALF-related syntax elements) further comprises: a sixth set of syntax elements and the fifth syntax element (e.g., a fifth indicator, such as slice_ccalf_enabled_flag or slice_alf_enabled_flag) is derived as a first value (true or 1) or the fifth syntax element has a first value (true or 1), where the sixth set of syntax elements is obtained from a slice header or the sixth set of syntax elements are carried by slice header entries.

[0418] Especificamente, pode ser fornecido que o sexto conjunto de elementos de sintaxe compreende: [0418] Specifically, it can be provided that the sixth set of syntax elements comprises:

[0419] Pode, alternativamente ou adicionalmente, ser fornecido que o sexto conjunto de elementos de sintaxe compreende: [0419] It may alternatively or additionally be provided that the sixth set of syntax elements comprises:

[0420] Da mesma forma, pode ser fornecido que o sexto conjunto de elementos de sintaxe compreende: [0420] Likewise, it can be provided that the sixth set of syntax elements comprises:

[0421] Em uma modalidade, a pluralidade de elementos de sintaxe (como elementos de sintaxe relacionados a CC-ALF) compreende adicionalmente: um sétimo elemento de sintaxe (por exemplo, um sétimo indicador, como pic_cross_component_alf_cb_aps_id) e um oitavo elemento de sintaxe (por exemplo, um oitavo indicador, como pic_cross_component_alf_cr_aps_id) se o primeiro elemento de sintaxe (como sps_ccalf_enabled_flag ou sps_alf_enabled_flag) for derivado como um primeiro valor (true ou 1) ou tiver um primeiro valor (true ou 1).[0421] In one embodiment, the plurality of syntax elements (such as CC-ALF-related syntax elements) further comprises: a seventh syntax element (e.g., a seventh indicator, such as pic_cross_component_alf_cb_aps_id) and an eighth syntax element ( for example, an eighth indicator, such as pic_cross_component_alf_cr_aps_id) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is derived as a first value (true or 1) or has a first value (true or 1).

[0422] Também pode ser fornecido que a pluralidade de elementos de sintaxe (como elementos de sintaxe relacionados a CC-ALF) compreende adicionalmente: um sétimo elemento de sintaxe (por exemplo, um sétimo indicador, como pic_cross_component_alf_cb_aps_id) e um oitavo elemento de sintaxe (por exemplo, um oitavo indicador, como pic_cross_component_alf_cr_aps_id) se o primeiro elemento de sintaxe (como sps_ccalf_enabled_flag ou sps_alf_enabled_flag) for derivado como um primeiro valor (true ou 1) ou tiver um primeiro valor (true ou 1) e se um nono elemento de sintaxe (como pic_alf_enabled_present_flag) for derivado como um primeiro valor (true ou 1) ou tiver um primeiro valor (true ou 1).[0422] It may also be provided that the plurality of syntax elements (such as syntax elements related to CC-ALF) further comprises: a seventh syntax element (e.g., a seventh indicator, such as pic_cross_component_alf_cb_aps_id) and an eighth syntax element (for example, an eighth indicator, such as pic_cross_component_alf_cr_aps_id) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is derived as a first value (true or 1) or has a first value (true or 1) and if a ninth element of syntax (such as pic_alf_enabled_present_flag) is derived as a first value (true or 1) or has a first value (true or 1).

[0423] Em uma modalidade adicional, a pluralidade de elementos de sintaxe (como elementos de sintaxe relacionados a CC-ALF) compreende adicionalmente: um sétimo elemento de sintaxe (por exemplo, um sétimo indicador, como pic_cross_component_alf_cb_aps_id), um oitavo elemento de sintaxe (por exemplo, um oitavo indicador, como pic_cross_component_alf_cr_aps_id) e o segundo elemento de sintaxe (como pic_ccalf_enabled_present_flag) se o primeiro elemento de sintaxe (como sps_ccalf_enabled_flag ou sps_alf_enabled_flag) for derivado como um primeiro valor (true ou 1) ou tiver um primeiro valor (true ou 1) e se um nono elemento de sintaxe (como pic_alf_enabled_present_flag) for derivado como um primeiro valor (true ou 1) ou tiver um primeiro valor (true ou 1).[0423] In a further embodiment, the plurality of syntax elements (such as CC-ALF-related syntax elements) further comprises: a seventh syntax element (e.g., a seventh indicator, such as pic_cross_component_alf_cb_aps_id), an eighth syntax element (for example, an eighth indicator, such as pic_cross_component_alf_cr_aps_id) and the second syntax element (such as pic_ccalf_enabled_present_flag) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is derived as a first value (true or 1) or has a first value ( true or 1) and if a ninth syntax element (such as pic_alf_enabled_present_flag) is derived as a first value (true or 1) or has a first value (true or 1).

[0424] Também pode ser fornecido que a pluralidade de elementos de sintaxe (como elementos de sintaxe relacionados a CC-ALF) compreende adicionalmente: um sétimo elemento de sintaxe (por exemplo, um sétimo indicador, como pic_cross_component_alf_cb_aps_id), um oitavo elemento de sintaxe (por exemplo, um oitavo indicador, como pic_cross_component_alf_cr_aps_id) e o nono elemento de sintaxe (como pic_alf_enabled_present_flag) se o primeiro elemento de sintaxe (como sps_ccalf_enabled_flag ou sps_alf_enabled_flag) for derivado como um primeiro valor (true ou 1) ou tiver um primeiro valor (verdadeiro ou 1).[0424] It may also be provided that the plurality of syntax elements (such as syntax elements related to CC-ALF) further comprises: a seventh syntax element (e.g., a seventh indicator, such as pic_cross_component_alf_cb_aps_id), an eighth syntax element (for example, an eighth indicator, such as pic_cross_component_alf_cr_aps_id) and the ninth syntax element (such as pic_alf_enabled_present_flag) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is derived as a first value (true or 1) or has a first value ( true or 1).

[0425] Em uma modalidade, o CC-ALF é aplicado para realizar o processamento de filtragem em uma ou mais amostras de luma de um componente de luma de um bloco de imagem atual, para refinar uma amostra de croma (como cada amostra de croma) de um componente de croma do bloco de imagem atual.[0425] In one embodiment, CC-ALF is applied to perform filter processing on one or more luma samples of a luma component of a current image block, to refine a chroma sample (such as each chroma sample ) of a chroma component of the current image block.

[0426] O CC-ALF pode ser configurado para refinar cada componente de croma usando valores de amostra de luma.[0426] The CC-ALF can be configured to refine each chroma component using luma sample values.

[0427] Também pode ser fornecido que o CC-ALF opere como parte do processo de filtro loop adaptativo.[0427] It may also be provided that the CC-ALF operates as part of the adaptive loop filter process.

[0428] Em uma modalidade, o bloco de imagem compreende um bloco de luma e blocos de croma, em que um primeiro bloco de croma é um primeiro componente de croma (tal como componente Cb) do bloco de imagem e um segundo bloco de croma é um segundo componente de croma (tal como componente Cr) do bloco de imagem.[0428] In one embodiment, the image block comprises a luma block and chroma blocks, wherein a first chroma block is a first chroma component (such as Cb component) of the image block and a second chroma block is is a second chroma component (such as Cr component) of the image block.

[0429] A presente revelação se refere adicionalmente a um método de decodificação implementado por um dispositivo de decodificação, compreendendo: analisar a partir de um fluxo de bits de um sinal de vídeo um ou mais elementos de sintaxe (por exemplo, M elementos de sintaxe relacionados a CC- ALF, M é um número inteiro e M>=1, como pic_ccalf_enabled_flag, pic_cross_component_alf_cb_enabled_flag ou pic_cross_component_alf_cr_enabled_flag), em que os um ou mais elementos de sintaxe indicam se o ALF de Componente Cruzado (CCALF) está habilitado ou não em um nível de cabeçalho de imagem e as informações relacionadas a CCALF correspondentes, em que os um ou mais elementos de sintaxe são obtidos a partir de um nível de cabeçalho de imagem. realizar um processo de filtragem (como um processo de filtragem de componente cruzado) aplicando um CC-ALF em resposta à determinação de que CC-ALF está habilitado.[0429] The present disclosure further relates to a decoding method implemented by a decoding device, comprising: analyzing from a bit stream of a video signal one or more syntax elements (e.g., M syntax elements related to CC-ALF, M is an integer and M>=1, such as pic_ccalf_enabled_flag, pic_cross_component_alf_cb_enabled_flag, or pic_cross_component_alf_cr_enabled_flag), where the one or more syntax elements indicate whether or not Cross Component ALF (CCALF) is enabled on a image header level and corresponding CCALF-related information, wherein the one or more syntax elements are obtained from an image header level. perform a filtering process (such as a cross-component filtering process) by applying a CC-ALF in response to determining that CC-ALF is enabled.

[0430] Este método pode aplicar apropriadamente o CC-ALF durante a decodificação, enquanto permitindo reduzir o tamanho do fluxo de bits[0430] This method can appropriately apply CC-ALF during decoding, while allowing to reduce the size of the bit stream

[0431] Em uma modalidade, o CC-ALF é aplicado para realizar o processamento de filtragem em uma ou mais amostras de luma de um componente de luma de um bloco de imagem atual, para refinar uma amostra de croma (como cada amostra de croma) de um componente de croma do bloco de imagem atual.[0431] In one embodiment, CC-ALF is applied to perform filter processing on one or more luma samples of a luma component of a current image block, to refine a chroma sample (such as each chroma sample ) of a chroma component of the current image block.

[0432] Também pode ser fornecido que o CC-ALF é configurado para refinar cada componente de croma usando valores de amostra de luma.[0432] It may also be provided that the CC-ALF is configured to refine each chroma component using luma sample values.

[0433] Em uma modalidade adicional, o CC-ALF opera como parte do processo de filtro loop adaptativo.[0433] In a further embodiment, the CC-ALF operates as part of the adaptive loop filter process.

[0434] As modalidades podem abranger adicionalmente que o bloco de imagem compreende um bloco de luma e blocos de croma, em que um primeiro bloco de croma é um primeiro componente de croma (tal como componente Cb) do bloco de imagem e um segundo bloco de croma é um segundo componente de croma (tal como componente Cr) do bloco de imagem.[0434] Embodiments may further encompass that the image block comprises a luma block and chroma blocks, wherein a first chroma block is a first chroma component (such as Cb component) of the image block and a second block chroma component is a second chroma component (such as Cr component) of the image block.

[0435] A presente revelação fornece adicionalmente um dispositivo para codificar dados de vídeo, o dispositivo compreendendo: uma memória de dados de vídeo; e um codificador de vídeo, em que o codificador de vídeo é configurado para: realizar um processo de filtragem (como um processo de filtragem de componente cruzado) aplicando um filtro loop adaptativo de componente cruzado (CC-ALF); gerar um fluxo de bits para o sinal de vídeo incluindo uma pluralidade de elementos de sintaxe (como elementos de sintaxe relacionados a CC-ALF), em que a pluralidade de elementos de sintaxe indica as informações relacionadas a CC-ALF, em que a pluralidade de elementos de sintaxe relacionados a CC-ALF é obtida a partir de qualquer um ou mais dentre um nível de conjunto de parâmetros de vídeo (VPS), um nível de conjunto de parâmetros de sequência (SPS), um nível de conjunto de parâmetros de imagem (PPS), um cabeçalho de imagem, um cabeçalho de fatia ou um cabeçalho de tile; ou em que a pluralidade de elementos de sintaxe relacionados a CC-ALF é obtida a partir de um nível de conjunto de parâmetros de sequência (SPS) e/ou um cabeçalho de imagem.[0435] The present disclosure further provides a device for encoding video data, the device comprising: a video data memory; and a video encoder, wherein the video encoder is configured to: perform a filtering process (such as a cross-component filtering process) by applying a cross-component adaptive loop filter (CC-ALF); generate a bitstream for the video signal including a plurality of syntax elements (such as CC-ALF-related syntax elements), wherein the plurality of syntax elements indicates the CC-ALF-related information, wherein the plurality of syntax elements related to CC-ALF is obtained from any one or more of a video parameter set (VPS) level, a sequence parameter set (SPS) level, a image (PPS), an image header, a slice header, or a tile header; or wherein the plurality of syntax elements related to CC-ALF are obtained from a sequence parameter set (SPS) level and/or an image header.

[0436] Este dispositivo pode realizar uma codificação que resulta em um fluxo de bits tendo tamanho reduzido.[0436] This device can perform encoding that results in a bit stream being reduced in size.

[0437] Além disso, é fornecido um dispositivo para decodificação de dados de vídeo, o dispositivo compreendendo: uma memória de dados de vídeo; e um decodificador de vídeo, em que o decodificador de vídeo é configurado para: analisar uma pluralidade de elementos de sintaxe a partir de um fluxo de bits de um sinal de vídeo, em que a pluralidade de elementos de sintaxe é obtida a partir de qualquer um ou mais dentre um nível de conjunto de parâmetros de vídeo (VPS), um nível de conjunto de parâmetros de sequência (SPS), um nível de conjunto de parâmetros de imagem (PPS), um cabeçalho de imagem, um cabeçalho de fatia ou um cabeçalho de tile do fluxo de bits, ou em que a pluralidade de elementos de sintaxe é obtida a partir de um nível de conjunto de parâmetros de sequência (SPS) e/ou um cabeçalho de imagem do fluxo de bits; determinar informações relacionadas a Filtro loop Adaptativo de Componente Cruzado (CC-ALF) com base em um ou mais elementos de sintaxe a partir da pluralidade de elementos de sintaxe; e realizar um processo de filtragem (como um processo de filtragem de componente cruzado) aplicando um CC-ALF com base nas informações relacionadas a CC-ALFs.[0437] Furthermore, a device for decoding video data is provided, the device comprising: a video data memory; and a video decoder, wherein the video decoder is configured to: parse a plurality of syntax elements from a bit stream of a video signal, wherein the plurality of syntax elements is obtained from any one or more of a video parameter set (VPS) level, a sequence parameter set (SPS) level, a picture parameter set (PPS) level, an image header, a slice header, or a tile header of the bitstream, or wherein the plurality of syntax elements are obtained from a sequence parameter set (SPS) level, and/or an image header of the bitstream; determining Cross-Component Adaptive Loop Filter (CC-ALF) related information based on one or more syntax elements from the plurality of syntax elements; and performing a filtering process (such as a cross-component filtering process) by applying a CC-ALF based on information related to CC-ALFs.

[0438] Este decodificador pode ser capaz de realizar uma decodificação confiável enquanto requer um fluxo de bits com tamanho reduzido para obter as informações referentes ao filtro a ser aplicado durante a decodificação.[0438] This decoder may be capable of performing reliable decoding while requiring a reduced size bit stream to obtain information regarding the filter to be applied during decoding.

[0439] A presente revelação fornece adicionalmente um codificador, o codificador compreendendo circuitos de processamento para realizar o método de acordo com qualquer uma das modalidades acima.[0439] The present disclosure further provides an encoder, the encoder comprising processing circuitry for carrying out the method in accordance with any of the above embodiments.

[0440] A presente revelação também se refere a um decodificador, o decodificador compreendendo circuitos de processamento para realizar o método de acordo com qualquer uma das modalidades acima.[0440] The present disclosure also relates to a decoder, the decoder comprising processing circuitry for carrying out the method in accordance with any of the above embodiments.

[0441] Além disso, é fornecido um produto de programa de computador compreendendo um código de programa para realizar o método de acordo com qualquer uma das modalidades acima.[0441] Furthermore, a computer program product comprising program code for carrying out the method according to any of the above embodiments is provided.

[0442] A presente revelação se refere adicionalmente a um decodificador, o decodificador compreendendo: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o decodificador para realizar o método de acordo com qualquer uma das modalidades acima.[0442] The present disclosure further relates to a decoder, the decoder comprising: one or more processors; and a non-transitory computer-readable storage medium coupled to the processors and storing programming for execution by the processors, wherein the programming, when executed by the processors, configures the decoder to perform the method in accordance with any of the above embodiments.

[0443] Além disso, um codificador é fornecido na presente revelação, o codificador compreendendo: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o codificador para realizar o método de acordo com qualquer uma das modalidades acima.[0443] Furthermore, an encoder is provided in the present disclosure, the encoder comprising: one or more processors; and a non-transitory computer-readable storage medium coupled to the processors and storing programming for execution by the processors, wherein the programming, when executed by the processors, configures the encoder to perform the method in accordance with any of the above embodiments.

[0444] Além disso, é fornecido um meio de gravação não transitório que inclui um fluxo de bits codificado decodificado por um dispositivo de decodificação de imagem, o fluxo de bits sendo gerado pela divisão de um quadro de um sinal de vídeo ou de um sinal de imagem em uma pluralidade de blocos e incluindo uma pluralidade de elementos de sintaxe (como elementos de sintaxe relacionados a CC-ALF), em que a pluralidade de elementos de sintaxe indica as informações relacionadas a CC-ALF, em que a pluralidade de elementos de sintaxe (como elementos de sintaxe relacionados a CC-ALF) é obtida a partir de qualquer um ou mais dentre um nível de conjunto de parâmetros de vídeo (VPS), um nível de conjunto de parâmetros de sequência (SPS), um nível de conjunto de parâmetros de imagem (PPS), um cabeçalho de imagem, um cabeçalho de fatia ou um cabeçalho de tile ou em que a pluralidade de elementos de sintaxe (tais como elementos de sintaxe relacionados a CC-ALF) é obtida a partir de pelo menos um nível de conjunto de parâmetros de sequência (SPS) ou um cabeçalho de imagem.[0444] Additionally, a non-transitory recording medium is provided that includes a coded bit stream decoded by an image decoding device, the bit stream being generated by dividing a frame of a video signal or a signal image in a plurality of blocks and including a plurality of syntax elements (such as CC-ALF-related syntax elements), wherein the plurality of syntax elements indicates CC-ALF-related information, wherein the plurality of elements (such as CC-ALF-related syntax elements) is obtained from any one or more of a video parameter set (VPS) level, a sequence parameter set (SPS) level, a image parameter set (PPS), an image header, a slice header or a tile header or wherein the plurality of syntax elements (such as CC-ALF related syntax elements) are obtained from at least least one sequence parameter set (SPS) level or an image header.

[0445] A presente revelação também se refere a um aparelho, o aparelho compreendendo: uma mídia legível por computador não transitória tendo nela instruções armazenadas que, quando executadas por um ou mais processadores, fazem com que um ou mais processadores realizem operações para gerar dados de imagem correspondentes a um fluxo de bits de vídeo, os dados de imagem compreendendo: uma pluralidade de imagens no fluxo de bits de vídeo incluindo uma imagem compreendendo N fatias; e um cabeçalho de imagem associado às N fatias da imagem, em que uma ou mais de ou cada uma das N fatias compreende uma pluralidade de blocos de amostras que são codificadas por entropia, em que as informações de filtragem CC-ALF ou os parâmetros de filtro CC-ALF são herdados pelas N fatias do cabeçalho de imagem ou as N fatias herdam os dados de filtragem ALF a partir do cabeçalho de imagem.[0445] The present disclosure also relates to an apparatus, the apparatus comprising: a non-transitory computer-readable medium having stored instructions thereon that, when executed by one or more processors, cause the one or more processors to perform operations to generate data image data corresponding to a video bitstream, the image data comprising: a plurality of images in the video bitstream including an image comprising N slices; and an image header associated with the N slices of the image, wherein one or more of or each of the N slices comprises a plurality of sample blocks that are entropy encoded, wherein the CC-ALF filtering information or CC-ALF filter are inherited by the N slices from the image header or the N slices inherit the ALF filtering data from the image header.

[0446] De acordo com qualquer uma das modalidades acima, pode ser adicionalmente fornecido que valores slice_cross_component_alf_cr_aps_id e slice_cross_component_alf_cb_aps_id são iguais aos valores pic_cross_component_alf_cb_aps_id e pic_cross_component_alf_cr_aps_id.[0446] According to any of the above embodiments, it may be further provided that slice_cross_component_alf_cr_aps_id and slice_cross_component_alf_cb_aps_id values are equal to pic_cross_component_alf_cb_aps_id and pic_cross_component_alf_cr_aps_id values.

[0447] Em uma modalidade adicional, pic_cross_component_alf_cb_aps_id e pic_cross_component_alf_cr_aps_id são obtidos a partir do cabeçalho de imagem.[0447] In a further embodiment, pic_cross_component_alf_cb_aps_id and pic_cross_component_alf_cr_aps_id are obtained from the image header.

[0448] Também pode ser fornecido que um elemento de sintaxe relacionado a CCALF é obtido apenas uma vez no cabeçalho de imagem associado a todas as N fatias.[0448] It may also be provided that a syntax element related to CCALF is obtained only once in the image header associated with all N slices.

[0449] Em uma modalidade, N é um número inteiro positivo e maior que 1.[0449] In one embodiment, N is a positive integer and greater than 1.

[0450] Em uma modalidade, é fornecido um método para codificação de um fluxo de bits de vídeo implementado por um dispositivo de codificação, o método de codificação compreendendo: gerar um fluxo de bits para o sinal de vídeo incluindo uma pluralidade de elementos de sintaxe (por exemplo, um elemento de sintaxe relacionado a ALF, como sps_alf_enabled_flag e/ou um elemento de sintaxe relacionado a CCALF, como sps_ccalf_enabled_flag), em que a pluralidade de elementos de sintaxe compreende uma flag habilitada de filtro loop adaptativo de componente cruzado (CC-ALF) (como sps_ccalf_enabled_flag) e em que os parâmetros relacionados a CC-ALF são sinalizados condicionalmente pelo menos com base em um valor da flag habilitada de CC-ALF (como sps_ccalf_enabled_flag).[0450] In one embodiment, a method for encoding a video bitstream implemented by an encoding device is provided, the encoding method comprising: generating a bitstream for the video signal including a plurality of syntax elements (e.g., an ALF-related syntax element such as sps_alf_enabled_flag and/or a CCALF-related syntax element such as sps_ccalf_enabled_flag), wherein the plurality of syntax elements comprises a cross-component adaptive loop filter (CC) enabled flag -ALF) (such as sps_ccalf_enabled_flag) and where CC-ALF related parameters are signaled conditionally at least based on a value of the CC-ALF enabled flag (such as sps_ccalf_enabled_flag).

[0451] Isso pode fornecer um fluxo de bits compreendendo informações relevantes para a decodificação, mas tendo tamanho reduzido.[0451] This can provide a bit stream comprising information relevant to decoding but being reduced in size.

[0452] Além disso, um método para decodificação de um fluxo de bits de vídeo implementado por um dispositivo de decodificação é fornecido de acordo com a presente revelação, o método de decodificação compreendendo: obter (S110) uma pluralidade de elementos de sintaxe a partir do fluxo de bits de vídeo; em que a pluralidade de elementos de sintaxe compreende uma flag habilitada de filtro loop adaptativo de componente cruzado (CC-ALF) (tal como sps_ccalf_enabled_flag), e em que parâmetros relacionados a CC-ALF são sinalizados condicionalmente pelo menos com base em um valor da flag habilitada de CCALF (como sps_ccalf_enabled_flag).[0452] Furthermore, a method for decoding a video bit stream implemented by a decoding device is provided in accordance with the present disclosure, the decoding method comprising: obtaining (S110) a plurality of syntax elements from of the video bit stream; wherein the plurality of syntax elements comprises a cross-component adaptive loop filter (CC-ALF) enabled flag (such as sps_ccalf_enabled_flag), and wherein CC-ALF related parameters are conditionally signaled at least based on a value of the CCALF enabled flag (like sps_ccalf_enabled_flag).

[0453] Este método permite realizar uma decodificação confiável mesmo quando o fluxo de bits é reduzido em tamanho.[0453] This method allows you to perform reliable decoding even when the bit stream is reduced in size.

[0454] Em uma modalidade, no caso de uma ou mais condições serem satisfeitas, a flag habilitada de CCALF (como sps_ccalf_enabled_flag) é sinalizada um nível de conjunto de parâmetros de sequência (SPS) do fluxo de bits, em que uma ou mais condições compreendem: quando o valor de uma primeira flag (tal como sps_alf_enabled_flag) que é sinalizada em um nível de conjunto de parâmetros de sequência (SPS) do fluxo de bits é um valor de habilitação (como um primeiro valor, por exemplo, true ou 1), e em que a flag habilitada de CCALF indica se o filtro loop adaptativo de componente cruzado (CCALF) está habilitado ou não em um nível de sequência ou nível de SPS.[0454] In one embodiment, in the event that one or more conditions are satisfied, the CCALF enabled flag (such as sps_ccalf_enabled_flag) is signaled at a sequence parameter set (SPS) level of the bit stream, where one or more conditions comprise: when the value of a first flag (such as sps_alf_enabled_flag) that is signaled at a sequence parameter set (SPS) level of the bitstream is an enable value (such as a first value, for example, true or 1 ), and where the CCALF enabled flag indicates whether or not the cross-component adaptive loop filter (CCALF) is enabled at a sequence level or SPS level.

[0455] Também pode ser fornecido que os elementos de sintaxe compreendem uma terceira flag (como alf_present_in_ph_flag) e a terceira flag é sinalizada como um nível de conjunto de parâmetros de imagem (PPS) do fluxo de bits e em que a terceira flag indica se um ou mais elementos de sintaxe para habilitar uso de ALF está presente nos PHs (cabeçalhos de imagem) referentes ao PPS ou não.[0455] It may also be provided that the syntax elements comprise a third flag (such as alf_present_in_ph_flag) and the third flag is flagged as a bitstream picture parameter set (PPS) level and wherein the third flag indicates whether one or more syntax elements to enable use of ALF is present in the PHs (image headers) referring to the PPS or not.

[0456] Também pode ser fornecido que a terceira flag (alf_present_in_ph_flag) igual a 1 especifica que os elementos de sintaxe para habilitar o uso de ALF podem estar presentes nos PHs (cabeçalhos de imagem) referentes ao PPS. A terceira flag (alf_present_in_ph_flag) igual a 0 especifica que os elementos de sintaxe para habilitar o uso de ALF podem estar presentes nos cabeçalhos de fatia referentes ao PPS.[0456] It may also be provided that the third flag (alf_present_in_ph_flag) equal to 1 specifies that syntax elements to enable the use of ALF may be present in the PHs (image headers) relating to the PPS. The third flag (alf_present_in_ph_flag) equal to 0 specifies that syntax elements to enable the use of ALF can be present in the PPS-related slice headers.

[0457] Em uma modalidade, é fornecido que, se o valor da primeira flag (como sps_alf_enabled_flag) for um valor de habilitação (como um primeiro valor, por exemplo, true ou 1) e o valor da terceira flag (alf_present_in_ph_flag) for um valor de habilitação (como um primeiro valor, por exemplo, true ou 1), e se o valor da flag habilitada de CCALF (como sps_ccalf_enabled_flag) for um valor de habilitação (como um primeiro valor, por exemplo, true ou 1), os parâmetros relacionados a Filtragem loop adaptativa de Componente Cruzado (CCALF) (como os elementos de sintaxe para habilitar uso de CCALF) são sinalizados um nível de picture_header do fluxo de bits.[0457] In one embodiment, it is provided that if the value of the first flag (such as sps_alf_enabled_flag) is an enabling value (such as a first value, e.g., true or 1) and the value of the third flag (alf_present_in_ph_flag) is a enable value (as a first value, for example, true or 1), and if the value of the CCALF enabled flag (such as sps_ccalf_enabled_flag) is an enable value (as a first value, for example, true or 1), the Cross-Component Adaptive Loop Filtering (CCALF) related parameters (such as the syntax elements to enable use of CCALF) are signaled at a bitstream picture_header level.

[0458] Em uma modalidade adicional, é fornecido que, se o valor da primeira flag (como sps_alf_enabled_flag) for um valor de habilitação (como um primeiro valor, por exemplo, true ou 1) e o valor da terceira flag (alf_present_in_ph_flag) for um valor de desabilitação (como um segundo valor, por exemplo, falso ou 0), e se o valor da flag habilitada de CCALF (como sps_ccalf_enabled_flag) for um valor de habilitação (como um primeiro valor, por exemplo, true ou 1), os parâmetros relacionados a Filtragem loop adaptativa de Componente Cruzado (CCALF) (como os elementos de sintaxe para habilitar uso de CCALF) são sinalizados um nível de slice_header do fluxo de bits.[0458] In a further embodiment, it is provided that if the value of the first flag (such as sps_alf_enabled_flag) is an enabling value (such as a first value, e.g., true or 1) and the value of the third flag (alf_present_in_ph_flag) is a disable value (such as a second value, for example, false or 0), and if the value of the CCALF enabled flag (such as sps_ccalf_enabled_flag) is an enable value (such as a first value, for example, true or 1), Cross-Component Adaptive Loop Filtering (CCALF) related parameters (such as syntax elements to enable CCALF use) are signaled at the slice_header level of the bitstream.

[0459] Em uma modalidade adicional, é fornecido que a flag habilitada de CC-ALF (como sps_ccalf_enabled_flag) igual a 0 especifica que o filtro loop adaptativo de componente cruzado está desabilitado; ou a flag habilitada de CC-ALF (como sps_ccalf_enabled_flag) igual a 1 especifica que o filtro loop adaptativo de componente cruzado está habilitado.[0459] In a further embodiment, it is provided that the CC-ALF enabled flag (such as sps_ccalf_enabled_flag) equal to 0 specifies that the cross-component adaptive loop filter is disabled; or the CC-ALF enabled flag (such as sps_ccalf_enabled_flag) equal to 1 specifies that the cross-component adaptive loop filter is enabled.

[0460] Pode ser adicionalmente fornecido que os elementos de sintaxe compreendem: uma segunda flag (como no_ccalf_constraint_flag) igual a 1 especifica que a flag habilitada de CCALF (como sps_ccalf_enabled_flag) é igual a 0; ou a segunda flag (como no_ccalf_constraint_flag) igual a 0 não impõe tal restrição.[0460] It may be further provided that the syntax elements comprise: a second flag (such as no_ccalf_constraint_flag) equal to 1 specifies that the CCALF enabled flag (such as sps_ccalf_enabled_flag) is equal to 0; or the second flag (such as no_ccalf_constraint_flag) equal to 0 does not impose such a restriction.

[0461] Em uma modalidade, o método compreende adicionalmente: realizar um processo de filtragem (tal como um processo de filtro loop adaptativo de componente cruzado) em uma imagem reconstruída (tal como, um arranjo de amostra de croma reconstruído SL, um arranjo de amostra de croma reconstruído SCb e/ou, um arranjo de amostra de croma reconstruído SCr), para obter uma imagem reconstruída filtrada (tal como, um arranjo de amostra de croma reconstruído modificado S’L, um arranjo de amostra de croma reconstruído modificado S’Cb e/ou, um arranjo de amostra de croma reconstruído modificado S’Cr).[0461] In one embodiment, the method further comprises: performing a filtering process (such as a cross-component adaptive loop filter process) on a reconstructed image (such as an SL reconstructed chroma sample array, a reconstructed chroma sample array SCb and/or, a reconstructed chroma sample array SCr), to obtain a filtered reconstructed image (such as, a modified reconstructed chroma sample array S'L, a modified reconstructed chroma sample array S 'Cb and/or, a modified reconstructed chroma sample array S'Cr).

[0462] A presente revelação fornece adicionalmente um fluxo de bits codificado para o sinal de vídeo incluindo uma pluralidade de elementos de sintaxe (por exemplo, um elemento de sintaxe relacionado a ALF, como sps_alf_enabled_flag e/ou um elemento de sintaxe relacionado a CCALF, como sps_ccalf_enabled_flag), em que a pluralidade de elementos de sintaxe compreende uma flag habilitada para filtro loop adaptativo de componente cruzado (CCALF) (como sps_ccalf_enabled_flag) e em que os parâmetros relacionados a CCALF são sinalizados condicionalmente pelo menos com base em um valor da flag habilitada de CCALF (como sps_ccalf_enabled_flag).[0462] The present disclosure further provides an encoded bitstream for the video signal including a plurality of syntax elements (e.g., an ALF-related syntax element such as sps_alf_enabled_flag and/or a CCALF-related syntax element, such as sps_ccalf_enabled_flag), wherein the plurality of syntax elements comprise a cross-component adaptive loop filter (CCALF) enabled flag (such as sps_ccalf_enabled_flag) and wherein CCALF-related parameters are conditionally signaled at least based on a value of the flag enabled from CCALF (like sps_ccalf_enabled_flag).

[0463] O fluxo de bits pode ser reduzido em tamanho enquanto fornece informações a serem usadas na decodificação ao aplicar CC-ALF de maneira confiável.[0463] The bit stream can be reduced in size while providing information to be used in decoding by reliably applying CC-ALF.

[0464] A Figura 12 mostra uma modalidade de um codificador 4000. O codificador 4000 pode ser implementado usando quaisquer circuitos de processamento aqui indicados com 4001 para realizar um método de codificação de um vídeo. Especificamente, os circuitos de processamento 4001 podem ser adaptados para aplicar um filtro loop adaptativo de componente cruzado, CC- ALF para refinar um componente de croma. Os circuitos de processamento podem ser adicionalmente adaptados para gerar um fluxo de bits incluindo uma pluralidade de elementos de sintaxe relacionados a CC-ALF, em que a pluralidade de elementos de sintaxe relacionados a CC-ALF indica informações relacionadas a CC-ALF, em que a pluralidade de elementos de sintaxe relacionados a CC-ALF é sinalizada em qualquer um ou mais dentre um nível de conjunto de parâmetros de sequência (SPS), um cabeçalho de imagem ou um cabeçalho de fatia.[0464] Figure 12 shows an embodiment of an encoder 4000. The encoder 4000 can be implemented using any processing circuits indicated herein with 4001 to perform a method of encoding a video. Specifically, processing circuitry 4001 may be adapted to apply a cross-component adaptive loop filter, CC-ALF to refine a chroma component. The processing circuitry may be further adapted to generate a bit stream including a plurality of CC-ALF related syntax elements, wherein the plurality of CC-ALF related syntax elements indicates CC-ALF related information, wherein the plurality of syntax elements related to CC-ALF are signaled at any one or more of a sequence parameter set (SPS) level, an image header, or a slice header.

[0465] A pluralidade de elementos de sintaxe relacionados a CC-ALF neste contexto compreende um primeiro elemento de sintaxe que indica se um filtro loop adaptativo (ALF) compreendendo o filtro loop adaptativo de componente cruzado está habilitado ou não em um nível de sequência e o primeiro elemento de sintaxe é sinalizado no nível de SPS, e um segundo elemento de sintaxe que indica se o filtro loop adaptativo de componente cruzado está habilitado ou não em um nível de sequência e o segundo elemento de sintaxe é sinalizado no nível de SPS.[0465] The plurality of syntax elements related to CC-ALF in this context comprise a first syntax element that indicates whether or not an adaptive loop filter (ALF) comprising the cross-component adaptive loop filter is enabled at a sequence level and the first syntax element is signaled at the SPS level, and a second syntax element that indicates whether the cross-component adaptive loop filter is enabled or not at a sequence level, and the second syntax element is signaled at the SPS level.

[0466] O codificador pode adicionalmente compreender um receptor 4002 para receber um vídeo a ser codificado e um transmissor 4003 para transmitir um fluxo de bits compreendendo pelo menos a pluralidade de elementos de sintaxe.[0466] The encoder may further comprise a receiver 4002 for receiving a video to be encoded and a transmitter 4003 for transmitting a bit stream comprising at least the plurality of syntax elements.

[0467] A Figura 13 mostra uma modalidade de um decodificador 4100. O decodificador 4100 pode ser implementado usando quaisquer circuitos de processamento 4101 para realizar um método de decodificação de um vídeo. Especificamente, os circuitos de processamento 4101 podem ser adaptados para analisar uma pluralidade de elementos de sintaxe relacionados a filtros de loop adaptativo de componente cruzado, CC-ALF, a partir de um fluxo de bits, em que a pluralidade de elementos de sintaxe relacionados a CC-ALF é obtida a partir de qualquer um ou mais dentre um nível de conjunto de parâmetros de sequência (SPS), um cabeçalho de imagem ou um cabeçalho de fatia.[0467] Figure 13 shows an embodiment of a decoder 4100. The decoder 4100 may be implemented using any processing circuitry 4101 to perform a method of decoding a video. Specifically, processing circuitry 4101 may be adapted to parse a plurality of syntax elements related to cross-component adaptive loop filters, CC-ALF, from a bit stream, wherein the plurality of syntax elements related to CC-ALF is obtained from any one or more of a sequence parameter set (SPS) level, an image header, or a slice header.

[0468] Especificamente, a pluralidade de elementos de sintaxe relacionados a CC-ALF compreende um primeiro elemento de sintaxe que indica se um filtro loop adaptativo (ALF) compreendendo o filtro loop adaptativo de componente cruzado está habilitado ou não em um nível de sequência e o primeiro elemento de sintaxe é sinalizado no nível de SPS, e um segundo elemento de sintaxe que indica se o filtro loop adaptativo de componente cruzado está habilitado ou não em um nível de sequência e o segundo elemento de sintaxe é sinalizado no nível de SPS.[0468] Specifically, the plurality of syntax elements related to CC-ALF comprise a first syntax element that indicates whether or not an adaptive loop filter (ALF) comprising the cross-component adaptive loop filter is enabled at a sequence level and the first syntax element is signaled at the SPS level, and a second syntax element that indicates whether the cross-component adaptive loop filter is enabled or not at a sequence level, and the second syntax element is signaled at the SPS level.

[0469] Os circuitos de processamento podem adicionalmente ser adaptados para realizar um processo de CC-ALF usando pelo menos um dentre a pluralidade de elementos de sintaxe relacionados a CC-ALF.[0469] The processing circuitry may further be adapted to perform a CC-ALF process using at least one of the plurality of syntax elements related to CC-ALF.

[0470] Além disso, o decodificador 4100 pode compreender um receptor 4102 para receber um fluxo de bits. Adicionalmente, o decodificador pode compreender um transmissor 4103 para enviar o vídeo decodificado, por exemplo, para um dispositivo de saída não mostrado aqui.[0470] Additionally, decoder 4100 may comprise a receiver 4102 for receiving a bit stream. Additionally, the decoder may comprise a transmitter 4103 for sending the decoded video, for example, to an output device not shown here.

[0471] A seguir está uma explicação das aplicações do método de codificação, bem como do método de decodificação, conforme mostrado nas modalidades acima mencionadas, e um sistema que os usa.[0471] The following is an explanation of the applications of the encoding method as well as the decoding method as shown in the aforementioned embodiments, and a system that uses them.

[0472] A Figura 10 é um diagrama de blocos mostrando um sistema de abastecimento de conteúdo 3100 para realizar o serviço de distribuição de conteúdo. Este sistema de abastecimento de conteúdo 3100 inclui dispositivo de captura 3102, dispositivo terminal 3106 e opcionalmente inclui exibição 3126. O dispositivo de captura 3102 se comunica com o dispositivo terminal 3106 através do enlace de comunicação 3104. O enlace de comunicação pode incluir o canal de comunicação 13 descrito acima. O enlace de comunicação 3104 inclui, mas não se limita a WIFI, Ethernet, Cabo, sem fio (3G/4G/5G), USB ou qualquer tipo de combinação dos mesmos, ou similares.[0472] Figure 10 is a block diagram showing a content supply system 3100 for performing the content distribution service. This content delivery system 3100 includes capture device 3102, terminal device 3106, and optionally includes display 3126. The capture device 3102 communicates with the terminal device 3106 via communication link 3104. The communication link may include the communication 13 described above. The 3104 communication link includes, but is not limited to, WIFI, Ethernet, Cable, wireless (3G/4G/5G), USB or any type of combination thereof, or similar.

[0473] O dispositivo de captura 3102 gera dados e pode codificar os dados pelo método de codificação como mostrado nas modalidades acima. Alternativamente, o dispositivo de captura 3102 pode distribuir os dados para um servidor de streaming (não mostrado nas Figuras) e o servidor codifica os dados e transmite os dados codificados para o dispositivo terminal 3106. O dispositivo de captura 3102 inclui, mas não se limita a, câmera, smartphone ou Pad, computador ou laptop, sistema de videoconferência, PDA, dispositivo montado em veículo ou uma combinação de qualquer um deles, ou similares. Por exemplo, o dispositivo de captura 3102 pode incluir o dispositivo de origem 12 conforme descrito acima. Quando os dados incluem vídeo, o codificador de vídeo 20 incluído no dispositivo de captura 3102 pode realmente realizar o processamento de codificação de vídeo. Quando os dados incluem áudio (isto é, voz), um codificador de áudio incluído no dispositivo de captura 3102 pode realmente realizar o processamento de codificação de áudio. Para alguns cenários práticos, o dispositivo de captura 3102 distribui os dados de áudio e vídeo codificados multiplexando-os juntos. Para outros cenários práticos, por exemplo no sistema de videoconferência, os dados de áudio codificados e os dados de vídeo codificados não são multiplexados. O dispositivo de captura 3102 distribui os dados de áudio codificados e os dados de vídeo codificados para o dispositivo terminal 3106 separadamente.[0473] The capture device 3102 generates data and can encode the data by the encoding method as shown in the above embodiments. Alternatively, the capture device 3102 may distribute the data to a streaming server (not shown in the Figures) and the server encodes the data and transmits the encoded data to the terminal device 3106. The capture device 3102 includes, but is not limited to, a, camera, smartphone or Pad, computer or laptop, video conferencing system, PDA, vehicle-mounted device or a combination of any of them, or the like. For example, capture device 3102 may include source device 12 as described above. When the data includes video, the video encoder 20 included in the capture device 3102 can actually perform video encoding processing. When the data includes audio (i.e., voice), an audio encoder included in the capture device 3102 may actually perform audio encoding processing. For some practical scenarios, the capture device 3102 distributes the encoded audio and video data by multiplexing them together. For other practical scenarios, for example in video conferencing system, the encoded audio data and encoded video data are not multiplexed. The capture device 3102 distributes the encoded audio data and the encoded video data to the terminal device 3106 separately.

[0474] No sistema de abastecimento de conteúdo 3100, o dispositivo terminal 310 recebe e reproduz os dados codificados. O dispositivo terminal 3106 pode ser um dispositivo com capacidade de recebimento e recuperação de dados, como smartphone ou Pad 3108, computador ou laptop 3110, gravador de vídeo em rede (NVR)/gravador de vídeo digital (DVR) 3112, TV 3114, decodificador (STB) 3116, sistema de videoconferência 3118, sistema de vigilância por vídeo 3120, assistente digital pessoal (PDA) 3122, dispositivo montado em veículo 3124, ou uma combinação de qualquer um deles, ou similar capaz de decodificar os dados codificados acima mencionados. Por exemplo, o dispositivo terminal 3106 pode incluir o dispositivo de destino 14 como descrito acima. Quando os dados codificados incluem vídeo, o decodificador de vídeo 30 incluído no dispositivo terminal é priorizado para realizar a decodificação de vídeo. Quando os dados codificados incluem áudio, um decodificador de áudio incluído no dispositivo terminal é priorizado para realizar o processamento de decodificação de áudio.[0474] In the content supply system 3100, the terminal device 310 receives and reproduces the encoded data. Terminal device 3106 may be a device capable of receiving and retrieving data, such as a smartphone or Pad 3108, computer or laptop 3110, network video recorder (NVR)/digital video recorder (DVR) 3112, TV 3114, set-top box (STB) 3116, video conferencing system 3118, video surveillance system 3120, personal digital assistant (PDA) 3122, vehicle-mounted device 3124, or a combination of any of them, or the like capable of decoding the aforementioned encoded data. For example, terminal device 3106 may include destination device 14 as described above. When the encoded data includes video, the video decoder 30 included in the terminal device is prioritized to perform video decoding. When the encoded data includes audio, an audio decoder included in the terminal device is prioritized to perform audio decoding processing.

[0475] Para um dispositivo terminal com seu display, por exemplo, smartphone ou Pad 3108, computador ou laptop 3110, gravador de vídeo em rede (NVR)/gravador de vídeo digital (DVR) 3112, TV 3114, assistente digital pessoal (PDA) 3122 ou dispositivo montado em veículo 3124, o dispositivo terminal pode alimentar os dados decodificados para o seu display. Para um dispositivo terminal equipado sem display, por exemplo, STB 3116, sistema de videoconferência 3118 ou sistema de vigilância por vídeo 3120, um display externo 3126 é contactado para receber e mostrar os dados decodificados.[0475] To a terminal device with its display, e.g., smartphone or Pad 3108, computer or laptop 3110, network video recorder (NVR)/digital video recorder (DVR) 3112, TV 3114, personal digital assistant (PDA ) 3122 or vehicle-mounted device 3124, the terminal device can feed the decoded data to its display. For a terminal device equipped without a display, e.g., STB 3116, video conferencing system 3118, or video surveillance system 3120, an external display 3126 is contacted to receive and display the decoded data.

[0476] Quando cada dispositivo nesse sistema realiza codificação ou decodificação, o dispositivo de codificação de imagem ou o dispositivo de decodificação de imagem, conforme mostrado nas modalidades acima mencionadas, pode ser usado.[0476] When each device in this system performs encoding or decoding, the image encoding device or the image decoding device as shown in the above-mentioned embodiments may be used.

[0477] A Figura 11 é um diagrama mostrando uma estrutura de um exemplo do dispositivo terminal 3106. Após o dispositivo terminal 3106 receber o fluxo a partir do dispositivo de captura 3102, a unidade de procedimento de protocolo 3202 analisa o protocolo de transmissão do fluxo. O protocolo inclui, mas não se limita a Protocolo de Streaming em Tempo Real (RTSP), Protocolo de Transferência de Hipertexto (HTTP), protocolo de streaming em tempo real de HTTP (HLS), MPEG-DASH, Protocolo de Transporte em Tempo Real (RTP), Protocolo de Mensagens em Tempo Real (RTMP)), ou qualquer tipo de combinação dos mesmos, ou semelhantes.[0477] Figure 11 is a diagram showing a structure of an example terminal device 3106. After the terminal device 3106 receives the stream from the capture device 3102, the protocol procedure unit 3202 analyzes the stream transmission protocol . The protocol includes but is not limited to Real-time Streaming Protocol (RTSP), Hypertext Transfer Protocol (HTTP), HTTP real-time streaming protocol (HLS), MPEG-DASH, Real-time Transport Protocol (RTP), Real-Time Messaging Protocol (RTMP)), or any type of combination thereof, or similar.

[0478] Após a unidade de procedimento de protocolo 3202 processar o fluxo, o arquivo de fluxo é gerado. O arquivo é enviado para uma unidade de demultiplexação 3204. A unidade de demultiplexação 3204 pode separar os dados multiplexados em dados de áudio codificados e dados de vídeo codificados. Conforme descrito acima, para alguns cenários práticos, por exemplo no sistema de videoconferência, os dados de áudio codificados e os dados de vídeo codificados não são multiplexados. Nesta situação, os dados codificados são transmitidos para o decodificador de vídeo 3206 e o decodificador de áudio 3208 sem ser através da unidade de demultiplexação 3204.[0478] After the protocol procedure unit 3202 processes the stream, the stream file is generated. The file is sent to a demultiplexing unit 3204. The demultiplexing unit 3204 can separate the multiplexed data into encoded audio data and encoded video data. As described above, for some practical scenarios, for example in video conferencing system, the encoded audio data and encoded video data are not multiplexed. In this situation, the encoded data is transmitted to the video decoder 3206 and the audio decoder 3208 other than through the demultiplexing unit 3204.

[0479] Através do processamento de demultiplexação, são gerados fluxo elementar de vídeo (ES), ES de áudio e, opcionalmente, legendas. O decodificador de vídeo 3206, que inclui o decodificador de vídeo 30 conforme explicado nas modalidades acima mencionadas, decodifica o ES de vídeo pelo método de decodificação conforme mostrado nas modalidades acima mencionadas para gerar o quadro de vídeo, e alimenta esses dados para a unidade síncrona 3212. O decodificador de áudio 3208 decodifica o ES de áudio para gerar o quadro de áudio, e alimenta esses dados para a unidade síncrona 3212. Alternativamente, o quadro de vídeo pode ser armazenado em um buffer (não mostrado na Figura Y) antes de alimentá-lo para a unidade síncrona 3212. Da mesma forma, o quadro de áudio pode ser armazenado em um buffer (não mostrado na Figura Y) antes de alimentá-lo para a unidade síncrona 3212.[0479] Through demultiplexing processing, elementary video stream (ES), audio ES and, optionally, subtitles are generated. The video decoder 3206, which includes the video decoder 30 as explained in the above-mentioned embodiments, decodes the video ES by the decoding method as shown in the above-mentioned embodiments to generate the video frame, and feeds this data to the synchronous unit 3212. Audio decoder 3208 decodes the audio IO to generate the audio frame, and feeds this data to the synchronous unit 3212. Alternatively, the video frame may be stored in a buffer (not shown in Figure Y) before feeding it to the synchronous unit 3212. Similarly, the audio frame can be stored in a buffer (not shown in Figure Y) before feeding it to the synchronous unit 3212.

[0480] A unidade síncrona 3212 sincroniza o quadro de vídeo e o quadro de áudio, e abastece o vídeo/áudio a um display de vídeo/áudio 3214. Por exemplo, a unidade síncrona 3212 sincroniza a apresentação das informações de vídeo e áudio. As informações podem codificar na sintaxe usando carimbos de tempo relativos à apresentação de dados de áudio e visuais codificados e carimbos de tempo relativos à entrega do próprio fluxo de dados.[0480] The synchronous unit 3212 synchronizes the video frame and the audio frame, and supplies the video/audio to a video/audio display 3214. For example, the synchronous unit 3212 synchronizes the presentation of video and audio information. Information can be encoded in syntax using timestamps relative to the presentation of encoded audio and visual data and timestamps relative to the delivery of the data stream itself.

[0481] Se a legenda estiver incluída no fluxo, o decodificador de legenda 3210 decodifica a legenda, e a sincroniza com o quadro de vídeo e o quadro de áudio, e abastece o vídeo/áudio/legenda a um display de vídeo/áudio/legenda 3216.[0481] If the caption is included in the stream, the caption decoder 3210 decodes the caption, and synchronizes it with the video frame and the audio frame, and supplies the video/audio/caption to a video/audio/display. caption 3216.

[0482] A presente invenção não está limitada ao sistema acima mencionado, e tanto o dispositivo de codificação de imagem quanto o dispositivo de decodificação de imagem nas modalidades acima mencionadas podem ser incorporados em outro sistema, por exemplo, um sistema de carro.[0482] The present invention is not limited to the above-mentioned system, and both the image encoding device and the image decoding device in the above-mentioned embodiments can be incorporated into another system, for example, a car system.

Operadores matemáticosMathematical operators

[0483] Os operadores matemáticos usados neste pedido são semelhantes aos usados na linguagem de programação C. No entanto, os resultados das operações de divisão de inteiro e deslocamento aritmético são definidos com mais precisão, e operações adicionais são definidas, como exponenciação e divisão de valor real. As convenções de numeração e contagem geralmente começam em 0, por exemplo, "o primeiro"é equivalente ao 0-ésimo, "o segundo" é equivalente ao 1°, etc.[0483] The mathematical operators used in this application are similar to those used in the C programming language. However, the results of integer division and arithmetic shift operations are defined more precisely, and additional operations are defined, such as exponentiation and division of real value. Numbering and counting conventions generally start at 0, for example, "the first" is equivalent to the 0th, "the second" is equivalent to the 1st, etc.

Operadores aritméticosArithmetic operators

[0484] Os seguintes operadores aritméticos são definidos da seguinte maneira: + Adição - Subtração (como um operador de dois argumentos) ou negação (como um operador de prefixo unário) * Multiplicação, incluindo multiplicação de matriz xy Exponenciação. Especifica x elevado a y. Em outros contextos, essa notação é usada para sobrescrito, não pretendendo ser interpretado como exponenciação. / Divisão de inteiro com truncamento do resultado em direção a zero. Por exemplo, 7/4 e -7 / -4 são truncados para 1 e -7 / 4 e 7 / -4 são truncados para -1. ÷ Usado para denotar divisão em equações matemáticas em que nenhum truncamento ou arredondamento é pretendido. x/y Usado para denotar divisão em equações matemáticas em que nenhum truncamento ou arredondamento é pretendido. A soma de f (i) com i levando todos os valores inteiros de x até e incluindo y. x%y Módulo. Restante de x dividido por y, definido apenas para inteiros x e y com x > = 0 e y > 0.[0484] The following arithmetic operators are defined as follows: + Addition - Subtraction (as a two-argument operator) or negation (as a unary prefix operator) * Multiplication, including xy matrix multiplication Exponentiation. Specifies x to the power of y. In other contexts, this notation is used for superscript, not intended to be interpreted as exponentiation. / Integer division with truncation of the result towards zero. For example, 7/4 and -7/-4 are truncated to 1, and -7/4 and 7/-4 are truncated to -1. ÷ Used to denote division in mathematical equations in which no truncation or rounding is intended. x/y Used to denote division in mathematical equations in which no truncation or rounding is intended. The sum of f(i) with i taking all integer values from x up to and including y. x%y Module. Remainder of x divided by y, defined only for integers x and y with x >= 0 and y > 0.

Operadores lógicosLogical operators

[0485] Os seguintes operadores lógicos são definidos da seguinte maneira: x && y Booleano lógico "e" de x e y x || y Booleano lógico "ou" de x e y ! Booleano lógico "não" x ? y: z Se x for TRUE ou diferente de 0, avalia o valor de y; de outro modo, avalia o valor de z.[0485] The following logical operators are defined as follows: x && y Logical Boolean "and" of x and y x || y Logical Boolean "or" of x and y ! Logical Boolean "not" x ? y: z If x is TRUE or different from 0, evaluates the value of y; otherwise, it evaluates the value of z.

Operadores relacionaisRelational operators

[0486] Os seguintes operadores relacionais são definidos da seguinte maneira: > Maior que >= Maior ou igual a < Menor que <= Menor ou igual a == Igual a != Diferente de[0486] The following relational operators are defined as follows: > Greater than >= Greater than or equal to < Less than <= Less than or equal to == Equal to != Not equal to

[0487] Quando um operador relacional é aplicado a um elemento ou variável de sintaxe ao qual foi atribuído o valor "na"(não aplicável), o valor "na"é tratado como um valor distinto para o elemento ou variável de sintaxe. O valor "na"não é considerado igual a nenhum outro valor.[0487] When a relational operator is applied to an element or syntax variable that has been assigned the value "na" (not applicable), the value "na" is treated as a distinct value for the element or syntax variable. The value "na" is not considered equal to any other value.

Operadores BitwiseBitwise Operators

[0488] Os seguintes operadores Bitwise são definidos da seguinte maneira: &"e" Bitwise. Ao operar com argumentos inteiros, opera em uma representação de complemento de dois do valor inteiro. Ao operar em um argumento binário que contém menos bits do que outro argumento, o argumento mais curto é estendido pela adição de bits mais significativos iguais a 0. | "ou" Bitwise. Ao operar com argumentos inteiros, opera em uma representação de complemento de dois do valor inteiro. Ao operar em um argumento binário que contém menos bits do que outro argumento, o argumento mais curto é estendido pela adição de bits mais significativos iguais a 0. A"ou exclusivo"Bitwise. Ao operar com argumentos inteiros, opera em uma representação de complemento de dois do valor inteiro. Ao operar em um argumento binário que contém menos bits do que outro argumento, o argumento mais curto é estendido pela adição de bits mais significativos iguais a 0. x >> y Deslocamento aritmético para a direita de uma representação de inteiro de complemento de dois de x por y dígitos binários. Esta função é definida apenas para valores inteiros não negativos de y. Os bits deslocados para os bits mais significativos (MSBs) como resultado do deslocamento para a direita têm um valor igual ao MSB de x antes da operação de deslocamento. x << y Deslocamento aritmético para a esquerda de uma representação de inteiro de complemento de dois de x por y dígitos binários. Esta função é definida apenas para valores inteiros não negativos de y. Os bits deslocados para os bits menos significativos (LSBs) como resultado do deslocamento para a esquerda têm um valor igual a 0.[0488] The following Bitwise operators are defined as follows: &"and" Bitwise. When operating on integer arguments, operates on a two's complement representation of the integer value. When operating on a binary argument that contains fewer bits than another argument, the shorter argument is extended by adding more significant bits equal to 0. | " or " Bitwise. When operating on integer arguments, operates on a two's complement representation of the integer value. When operating on a binary argument that contains fewer bits than another argument, the shorter argument is extended by adding more significant bits equal to 0. A"or exclusive"Bitwise. When operating on integer arguments, operates on a two's complement representation of the integer value. When operating on a binary argument that contains fewer bits than another argument, the shorter argument is extended by adding more significant bits equal to 0. x >> y Arithmetic right shift of a two's complement integer representation of x by y binary digits. This function is only defined for non-negative integer values of y. The bits shifted to the most significant bits (MSBs) as a result of the right shift have a value equal to the MSB of x before the shift operation. x << y Arithmetic left shift of a two's complement integer representation of x by y binary digits. This function is only defined for non-negative integer values of y. Bits shifted to least significant bits (LSBs) as a result of left shifting have a value of 0.

Operadores de atribuiçãoAssignment Operators

[0489] Os seguintes operadores aritméticos são definidos da seguinte maneira: = Operador de atribuição + + Incremento, ou seja, x + + é equivalente a x = x + 1; quando usado em um índice de matriz, avalia o valor da variável antes da operação de incremento. - - Decremento, ou seja, x - - é equivalente a x = x - 1; quando usado em um índice de matriz, avalia o valor da variável antes da operação de decremento. + = Incremento pela quantidade especificada, ou seja, x + = 3 é equivalente a x = x + 3 e x + = (−3) é equivalente a x = x + (−3). - = Decremento pela quantidade especificada, ou seja, x - = 3 é equivalente a x = x – 3, e x - = (−3) é equivalente a x = x - (−3).[0489] The following arithmetic operators are defined as follows: = Assignment operator + + Increment, i.e. x + + is equivalent to x = x + 1; when used in an array index, evaluates the value of the variable before the increment operation. - - Decrement, that is, x - - is equivalent to x = x - 1; when used in an array index, evaluates the value of the variable before the decrement operation. + = Increment by the specified amount, that is, x + = 3 is equivalent to x = x + 3 and x + = (−3) is equivalent to x = x + (−3). - = Decrement by the specified amount, that is, x - = 3 is equivalent to x = x – 3, and x - = (−3) is equivalent to x = x - (−3).

Notação de faixaStrip notation

[0490] A seguinte notação é usada para especificar uma faixa de valores: x = y..z x assume valores inteiros começando de y a z, inclusive, com x, y e z sendo números inteiros e z sendo maior que y.[0490] The following notation is used to specify a range of values: x = y..z x takes integer values starting from y to z, inclusive, with x, y and z being integers and z being greater than y.

Funções matemáticasMathematical functions

[0491] As seguintes funções matemáticas são definidas: Asin (x) a função seno inversa trigonométrica, operando em um argumento x que está na faixa de -1,0 a 1,0, inclusive, com um valor de saída na faixa de -π * 2 a π * 2, inclusive, em unidades de radianos Atan (x) a função tangente inversa trigonométrica, operando em um argumento x, com um valor de saída na faixa de -π - 2 a π - 2, inclusive, em unidades de radianosCeil (x) o menor inteiro maior ou igual a x. Clip1Y (x) = Clip3 (0, (1 << BitDepth Y) - 1, x) Clip1C (x) = Clip3 (0, (1 << BitDepth C) - 1, x) Cos (x) a função trigonométrica cosseno operando em um argumento x em unidades de radianos. Floor (x) o maior inteiro menor ou igual a x. Ln (x) o logaritmo natural de x (o logaritmo de base e, em que e é o logaritmo natural constante de base 2,718 281 828...). Log2 (x) o logaritmo de base 2 de x. Log10 (x) o logaritmo de base 10 de x. Sin (x) a função seno trigonométrica operando em um argumento x em unidades de radianos Tan (x) a função tangente trigonométrica operando em um argumento x em unidades de radianos Ordem de precedência de operação[0491] The following mathematical functions are defined: Asin(x) the trigonometric inverse sine function, operating on an argument x that is in the range -1.0 to 1.0, inclusive, with an output value in the range -π*2 to π*2, inclusive, in units of radians Atan (x) the trigonometric inverse tangent function, operating on one argument x, with an output value in the range -π - 2 to π - 2, inclusive, in units of radians Ceil (x) the smallest integer greater than or equal to x. Clip1Y (x) = Clip3 (0, (1 << BitDepth Y) - 1, x) Clip1C (x) = Clip3 (0, (1 << BitDepth C) - 1, x) Cos(x) the cosine trigonometric function operating on an argument x in units of radians. Floor (x) the largest integer less than or equal to x. Ln (x) the natural logarithm of x (the logarithm of base e, where e is the constant natural logarithm of base 2.718 281 828...). Log2 (x) the base 2 logarithm of x. Log10 (x) the base 10 logarithm of x. Sin(x) the trigonometric sine function operating on an argument x in units of radians Tan(x) the trigonometric tangent function operating on an argument x in units of radians Order of operation precedence

[0492] Quando uma ordem de precedência em uma expressão não é indicada explicitamente pelo uso de parênteses, as seguintes regras se aplicam: - Operações de precedência superior são avaliadas antes de qualquer operação de precedência inferior. - Operações da mesma precedência são avaliadas sequencialmente da esquerda para a direita.[0492] When an order of precedence in an expression is not explicitly indicated by the use of parentheses, the following rules apply: - Higher precedence operations are evaluated before any lower precedence operations. - Operations of the same precedence are evaluated sequentially from left to right.

[0493] A tabela abaixo especifica a precedência de operações a partir da mais alta para a mais baixa; uma posição mais alta na tabela indica uma precedência mais alta.[0493] The table below specifies the precedence of operations from highest to lowest; a higher position in the table indicates higher precedence.

[0494] Para os operadores que também são usados na linguagem de programação C, a ordem de precedência usada neste Relatório Descritivo é a mesma usada na linguagem de programação C. Tabela: precedência de operação da mais alta (no topo da tabela) para a mais baixa (na parte inferior da tabela) [0494] For operators that are also used in the C programming language, the order of precedence used in this Descriptive Report is the same as that used in the C programming language. Table: operation precedence from highest (at the top of the table) to lowest (at the bottom of the table)

Descrição de texto de operações lógicasText description of logical operations

[0495] No texto, uma declaração de operações lógicas que seriam descritas matematicamente da seguinte forma: if (condition 0) statement 0 else if (condition 1) statement 1 ... else / * informative remark on remaining condition * / statement n pode ser descrito da seguinte maneira: ... como segue /... aplica-se o seguinte: - Se a condição 0, declaração 0 - Caso contrário, se a condição 1, declaração 1 - Caso contrário (observação informativa sobre a condição restante), declaração n[0495] In the text, a statement of logical operations that would be described mathematically as follows: if (condition 0) statement 0 else if (condition 1) statement 1 ... else / * informative remark on remaining condition * / statement n can be described as follows: ... as follows /... the following applies: - If condition 0, statement 0 - Otherwise, if condition 1, statement 1 - Otherwise (informative note about the remaining condition ), statement n

[0496] Cada declaração "Se... Caso contrário, se... Caso contrário,..." no texto é introduzida com "... como segue" ou "... o seguinte se aplica" imediatamente seguido por” Se...". A última condição de "Se... Caso contrário, se... Caso contrário,..."é sempre um "Caso contrário,...". As declarações intercaladas "Se... Caso contrário, se... Caso contrário,..." podem ser identificadas por corresponder “... como segue" ou "... o seguinte se aplica" com a terminação "Caso contrário,...".[0496] Each “If… Otherwise, if… Otherwise…” statement in the text is introduced with “… as follows” or “… the following applies” immediately followed by” If...". The last condition of "If... Otherwise, if... Otherwise,..." is always an "Otherwise,...". The interspersed statements "If... If Otherwise, if... Otherwise..." can be identified by matching "... as follows" or "... the following applies" with the ending "Otherwise...".

[0497] No texto, uma declaração de operações lógicas que seriam descritas matematicamente da seguinte forma: if (condition 0a && condition 0b) statement 0 else if (condition 1a | | condition 1b) statement 1 else statement n pode ser descrito da seguinte maneira: ... como segue /... aplica-se o seguinte: - Se todas as seguintes condições forem verdadeiras, declaração 0: - condição 0a - condição 0b - Caso contrário, se uma ou mais das seguintes condições forem verdadeiras, declaração 1: - condição 1a - condição 1b - Caso contrário, declaração n[0497] In the text, a statement of logical operations that would be described mathematically as follows: if (condition 0a && condition 0b) statement 0 else if (condition 1a | | condition 1b) statement 1 else statement n may be described as follows : ... as follows /... the following applies: - If all of the following conditions are true, statement 0: - condition 0a - condition 0b - Otherwise, if one or more of the following conditions are true, statement 1 : - condition 1a - condition 1b - Otherwise statement n

[0498] No texto, uma declaração de operações lógicas que seriam descritas matematicamente da seguinte forma: if (condition 0) statement 0 if (condition 1) statement 1 pode ser descrito da seguinte maneira: Quando a condição 0, declaração 0 Quando a condição 1, declaração 1[0498] In the text, a statement of logical operations that would be described mathematically as follows: if (condition 0) statement 0 if (condition 1) statement 1 can be described as follows: When condition 0, statement 0 When condition 1, statement 1

[0499] Embora as modalidades da invenção tenham sido descritas principalmente com base na codificação de vídeo, deve ser notado que as modalidades do sistema de codificação 10, codificador 20 e decodificador 30 (e correspondentemente o sistema 10) e as outras modalidades descritas neste documento também podem ser configuradas para processamento ou codificação de imagem, isto é, o processamento ou codificação de uma imagem individual independente de qualquer imagem precedente ou consecutiva como na codificação de vídeo. Em geral, apenas as unidades de predição inter 244 (codificador) e 344 (decodificador) podem não estar disponíveis no caso da codificação de processamento de imagem ser limitada a uma única imagem 17. Todas as outras funcionalidades (também referidas como ferramentas ou tecnologias) do codificador de vídeo 20 e decodificador de vídeo 30 podem igualmente ser usadas para processamento de imagens estáticas, por exemplo, cálculo residual 204/304, transformada 206, quantização 208, quantização inversa 210/310, transformada (inversa) 212/312, particionamento 262/362, predição intra 254 / 354 e/ou filtragem loop 220, 320 e codificação de entropia 270 e decodificação de entropia 304.[0499] Although embodiments of the invention have been described primarily on the basis of video coding, it should be noted that embodiments of the encoding system 10, encoder 20, and decoder 30 (and correspondingly the system 10) and the other embodiments described herein they can also be configured for image processing or coding, that is, the processing or coding of an individual image independent of any preceding or consecutive image as in video coding. In general, only inter prediction units 244 (encoder) and 344 (decoder) may not be available in case image processing coding is limited to a single image 17. All other features (also referred to as tools or technologies) of video encoder 20 and video decoder 30 may also be used for still image processing, e.g., residual calculation 204/304, transform 206, quantization 208, inverse quantization 210/310, (inverse) transform 212/312, partitioning 262/362, intra prediction 254 / 354 and/or loop filtering 220, 320 and entropy coding 270 and entropy decoding 304.

[0500] Modalidades, por exemplo, do codificador 20 e do decodificador 30, e funções descritas neste documento, por exemplo, com referência ao codificador 20 e ao decodificador 30, podem ser implementadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas em uma mídia legível por computador ou transmitidas por meio de comunicação como uma ou mais instruções ou código, e executadas por uma unidade de processamento baseada em hardware. O meio legível por computador pode incluir mídia de armazenamento legível por computador, que corresponde a um meio tangível, como mídia de armazenamento de dados ou meio de comunicação, incluindo qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Desta maneira, o meio legível por computador geralmente pode corresponder a (1) mídia de armazenamento legível por computador tangível que é não transitório ou (2) um meio de comunicação, como um sinal ou onda portadora. A mídia de armazenamento de dados pode ser qualquer meio disponível que pode ser acessado por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implementação das técnicas descritas nesta revelação. Um produto de programa de computador pode incluir uma mídia legível por computador.[0500] Embodiments of, for example, encoder 20 and decoder 30, and functions described herein, for example, with reference to encoder 20 and decoder 30, may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, functions can be stored on a computer-readable medium or transmitted via communication as one or more instructions or code, and executed by a hardware-based processing unit. Computer-readable medium may include computer-readable storage media, which corresponds to a tangible medium, such as data storage media or communication medium, including any medium that facilitates the transfer of a computer program from one place to another, for example, according to a communication protocol. In this way, computer-readable medium generally can correspond to (1) tangible computer-readable storage media that is non-transitory or (2) a communication medium, such as a signal or carrier wave. The data storage media may be any available medium that can be accessed by one or more computers or one or more processors to retrieve instructions, code and/or data structures for implementing the techniques described in this disclosure. A computer program product may include computer-readable media.

[0501] A título de exemplo, e não limitação, tal mídia de armazenamento legível por computador pode compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento de disco óptico, armazenamento de disco magnético ou outros dispositivos de armazenamento magnético, memória flash ou qualquer outro meio que pode ser usado para armazenar o código de programa desejado na forma de instruções ou estruturas de dados e que pode ser acessado por um computador. Além disso, qualquer conexão é apropriadamente denominada meio legível por computador. Por exemplo, se as instruções são transmitidas de um site, servidor ou outra fonte remota usando um cabo coaxial, cabo de fibra ótica, par trançado, linha de assinante digital (DSL) ou tecnologias sem fio, como infravermelho, rádio e micro-ondas, então o cabo coaxial, cabo de fibra ótica, par trançado, DSL ou tecnologias sem fio, como infravermelho, rádio e micro-ondas, estão incluídos na definição de meio. Deve ser entendido, no entanto, que a mídia de armazenamento legível por computador e a mídia de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outras mídias transitórias, mas são direcionados para mídias de armazenamento tangíveis não transitórias. Disco (disk) e disco (disc), conforme usados neste documento, incluem disco compacto (CD), disco laser, disco óptico, disco versátil digital (DVD), disquete e disco Blu-ray, em que os discos (disks) geralmente reproduzem dados magneticamente, enquanto os discos (discs) reproduzem dados opticamente com lasers. As combinações dos itens acima também devem ser incluídas no escopo da mídia legível por computador.[0501] By way of example, and not limitation, such computer-readable storage media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Furthermore, any connection is appropriately called a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave , then coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. It should be understood, however, that computer-readable storage media and data storage media do not include connections, carrier waves, signals or other transient media, but are directed to non-transitory tangible storage media. Disk and disc as used herein include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc, where disks are generally reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above must also be included in the scope of computer-readable media.

[0502] As instruções podem ser executadas por um ou mais processadores, como um ou mais processadores de sinal digital (DSPs), microprocessadores de propósito geral, circuitos integrados de aplicação específica (ASICs), arranjos lógicos programáveis em campo (FPGAs) ou outros circuitos lógicos integrados ou discretos equivalentes. Por conseguinte, o termo "processador", conforme usado neste documento, pode se referir a qualquer uma das estruturas anteriores ou qualquer outra estrutura adequada para a implementação das técnicas descritas neste documento. Além disso, em alguns aspectos, a funcionalidade descrita neste documento pode ser fornecida em módulos de hardware e/ou software dedicados configurados para codificação e decodificação, ou incorporados em um codec combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.[0502] Instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or others equivalent integrated or discrete logic circuits. Accordingly, the term "processor" as used herein may refer to any of the foregoing frameworks or any other framework suitable for implementing the techniques described herein. Additionally, in some aspects, the functionality described in this document may be provided in dedicated hardware and/or software modules configured for encoding and decoding, or incorporated into a combined codec. Furthermore, the techniques can be fully implemented in one or more circuits or logic elements.

[0503] As técnicas desta revelação podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um aparelho portátil sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritos nesta revelação para enfatizar os aspectos funcionais dos dispositivos configurados para realizar as técnicas reveladas, mas não necessariamente requerem a realização por diferentes unidades de hardware. Em vez disso, conforme descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec ou fornecidas por uma coleção de unidades de hardware interoperativas, incluindo um ou mais processadores, conforme descrito acima, em conjunto com software e/ou firmware adequados.[0503] The techniques of this disclosure can be implemented in a wide variety of devices or apparatus, including a portable wireless device, an integrated circuit (IC), or a set of ICs (e.g., a chip set). Various components, modules or units are described in this disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require performance by different hardware units. Instead, as described above, multiple units may be combined into a codec hardware unit or provided by a collection of interoperating hardware units, including one or more processors, as described above, in conjunction with suitable software and/or firmware. .

Claims (15)

1. Método de codificação implementado por um dispositivo de codificação, CARACTERIZADO pelo fato de que compreende: gerar um fluxo de bits incluindo uma pluralidade de elementos de sintaxe relacionados a ALF, em que a pluralidade de elementos de sintaxe relacionados a ALF compreende um primeiro elemento de sintaxe que indica se um filtro loop adaptativo (ALF) está habilitado ou não; um segundo elemento de sintaxe é condicionalmente sinalizado em elementos de sintaxe relacionados a ALF quando o primeiro elemento de sintaxe tiver um primeiro valor, em que o segundo elemento de sintaxe que indica se um filtro loop adaptativo de componente cruzado (CC-ALF) está habilitado ou não.1. Encoding method implemented by an encoding device, CHARACTERIZED by the fact that it comprises: generating a bit stream including a plurality of ALF-related syntax elements, wherein the plurality of ALF-related syntax elements comprises a first element syntax that indicates whether an adaptive loop filter (ALF) is enabled or not; a second syntax element is conditionally signaled in ALF-related syntax elements when the first syntax element has a first value, where the second syntax element indicates whether a cross-component adaptive loop filter (CC-ALF) is enabled or not. 2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a pluralidade de elementos de sintaxe de ALF compreende um sétimo elemento de sintaxe quando o segundo elemento de sintaxe indicar que CC-ALF está habilitado, em que o sétimo elemento de sintaxe é sinalizado no cabeçalho de imagem e o sétimo elemento de sintaxe especifica se CC-ALF para um componente de cor Cr está habilitado para uma imagem atual de uma sequência de vídeo associada ao fluxo de bits.2. Method according to claim 1, CHARACTERIZED by the fact that the plurality of ALF syntax elements comprises a seventh syntax element when the second syntax element indicates that CC-ALF is enabled, wherein the seventh syntax element syntax is signaled in the image header and the seventh syntax element specifies whether CC-ALF for a Cr color component is enabled for a current image of a video sequence associated with the bitstream. 3. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que se o sétimo elemento de sintaxe tiver um valor de 1, isso indica que CC-ALF para o componente de cor Cr está habilitado para a imagem atual e/ou se o sétimo elemento de sintaxe tiver um valor de 0, isso indica que CC-ALF para o componente de cor Cr está desabilitado para a imagem atual.3. Method, according to claim 2, CHARACTERIZED by the fact that if the seventh syntax element has a value of 1, this indicates that CC-ALF for the Cr color component is enabled for the current image and/or if If the seventh syntax element has a value of 0, this indicates that CC-ALF for the Cr color component is disabled for the current image. 4. Método, de acordo com a reivindicação 2 ou 3, CARACTERIZADO pelo fato de que a pluralidade de elementos de sintaxe de ALF compreende um oitavo elemento de sintaxe quando o sétimo elemento de sintaxe for obtido como indicando que CC-ALF para o componente de cor Cr está habilitado para a imagem atual, em que o oitavo elemento de sintaxe é obtido a partir do cabeçalho de imagem e o oitavo elemento de sintaxe indica um conjunto de parâmetros que está associado ao componente de cor Cr de todas as fatias na imagem atual.4. Method according to claim 2 or 3, CHARACTERIZED by the fact that the plurality of ALF syntax elements comprises an eighth syntax element when the seventh syntax element is obtained as indicating that CC-ALF for the component of Cr color is enabled for the current image, where the eighth syntax element is obtained from the image header and the eighth syntax element indicates a set of parameters that is associated with the Cr color component of all slices in the current image . 5. Método, de acordo com qualquer uma das reivindicações 1 a 4, CARACTERIZADO pelo fato de que a pluralidade de elementos de sintaxe relacionados a ALF compreende um décimo elemento de sintaxe quando o segundo elemento de sintaxe for obtido como indicando que CC-ALF está habilitado, em que o décimo elemento de sintaxe é obtido a partir de um cabeçalho de fatia e o décimo elemento de sintaxe indica se CC-ALF para um componente de cor Cb está habilitado para uma fatia atual de uma imagem atual de uma sequência de vídeo associada ao fluxo de bits.5. Method according to any one of claims 1 to 4, CHARACTERIZED by the fact that the plurality of syntax elements related to ALF comprises a tenth syntax element when the second syntax element is obtained as indicating that CC-ALF is enabled, where the tenth syntax element is taken from a slice header and the tenth syntax element indicates whether CC-ALF for a Cb color component is enabled for a current slice of a current image of a video sequence associated with the bit stream. 6. Método (4300) de decodificação implementado por um dispositivo de decodificação, CARACTERIZADO pelo fato de que compreende: analisar (4301) uma pluralidade de elementos de sintaxe relacionados a ALF a partir de um fluxo de bits, em que a pluralidade de elementos de sintaxe relacionados a ALF compreende um primeiro elemento de sintaxe que indica se um filtro loop adaptativo (ALF) está habilitado ou não; um segundo elemento de sintaxe é condicionalmente sinalizado em elementos de sintaxe relacionados a ALF quando o primeiro elemento de sintaxe tiver um primeiro valor, em que o segundo elemento de sintaxe que indica se um filtro loop adaptativo de componente cruzado (CC-ALF) está habilitado ou não.6. Decoding method (4300) implemented by a decoding device, CHARACTERIZED by the fact that it comprises: analyzing (4301) a plurality of syntax elements related to ALF from a bit stream, wherein the plurality of syntax elements ALF-related syntax comprises a first syntax element that indicates whether an adaptive loop filter (ALF) is enabled or not; a second syntax element is conditionally signaled in ALF-related syntax elements when the first syntax element has a first value, where the second syntax element indicates whether a cross-component adaptive loop filter (CC-ALF) is enabled or not. 7. Método, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que a pluralidade de elementos de sintaxe de ALF compreende um sétimo elemento de sintaxe quando o segundo elemento de sintaxe indicar que CC-ALF está habilitado, em que o sétimo elemento de sintaxe é sinalizado no cabeçalho de imagem e o sétimo elemento de sintaxe especifica se CC-ALF para um componente de cor Cr está habilitado para uma imagem atual de uma sequência de vídeo associada ao fluxo de bits.7. Method according to claim 6, CHARACTERIZED by the fact that the plurality of ALF syntax elements comprises a seventh syntax element when the second syntax element indicates that CC-ALF is enabled, wherein the seventh syntax element syntax is signaled in the image header and the seventh syntax element specifies whether CC-ALF for a Cr color component is enabled for a current image of a video sequence associated with the bitstream. 8. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que se o sétimo elemento de sintaxe tiver um valor de 1, isso indica que CC-ALF para o componente de cor Cr está habilitado para a imagem atual e/ou se o sétimo elemento de sintaxe tiver um valor de 0, isso indica que CC-ALF para o componente de cor Cr está desabilitado para a imagem atual.8. Method, according to claim 7, CHARACTERIZED by the fact that if the seventh syntax element has a value of 1, this indicates that CC-ALF for the Cr color component is enabled for the current image and/or if If the seventh syntax element has a value of 0, this indicates that CC-ALF for the Cr color component is disabled for the current image. 9. Método, de acordo com a reivindicação 7 ou 8, CARACTERIZADO pelo fato de que a pluralidade de elementos de sintaxe de ALF compreende um oitavo elemento de sintaxe quando o sétimo elemento de sintaxe for obtido como indicando que CC-ALF para o componente de cor Cr está habilitado para a imagem atual, em que o oitavo elemento de sintaxe é obtido a partir do cabeçalho de imagem e o oitavo elemento de sintaxe indica um conjunto de parâmetros que está associado ao componente de cor Cr de todas as fatias na imagem atual.9. Method according to claim 7 or 8, CHARACTERIZED by the fact that the plurality of ALF syntax elements comprises an eighth syntax element when the seventh syntax element is obtained as indicating that CC-ALF for the component of Cr color is enabled for the current image, where the eighth syntax element is obtained from the image header and the eighth syntax element indicates a set of parameters that is associated with the Cr color component of all slices in the current image . 10. Método, de acordo com qualquer uma das reivindicações 6 a 9, CARACTERIZADO pelo fato de que a pluralidade de elementos de sintaxe relacionados a ALF compreende um décimo elemento de sintaxe quando o segundo elemento de sintaxe for obtido como indicando que CC-ALF está habilitado, em que o décimo elemento de sintaxe é obtido a partir de um cabeçalho de fatia e o décimo elemento de sintaxe indica se CC-ALF para um componente de cor Cb está habilitado para uma fatia atual de uma imagem atual de uma sequência de vídeo associada ao fluxo de bits.10. Method according to any one of claims 6 to 9, CHARACTERIZED by the fact that the plurality of syntax elements related to ALF comprises a tenth syntax element when the second syntax element is obtained as indicating that CC-ALF is enabled, where the tenth syntax element is taken from a slice header and the tenth syntax element indicates whether CC-ALF for a Cb color component is enabled for a current slice of a current image of a video sequence associated with the bit stream. 11. Dispositivo para codificação de dados de vídeo, CARACTERIZADO pelo fato de que compreende: uma memória de dados de vídeo; e um codificador de vídeo, em que o codificador de vídeo é configurado para: gerar um fluxo de bits incluindo uma pluralidade de elementos de sintaxe relacionados a ALF, em que a pluralidade de elementos de sintaxe relacionados a ALF compreende um primeiro elemento de sintaxe que indica se um filtro loop adaptativo (ALF) está habilitado ou não; um segundo elemento de sintaxe é condicionalmente sinalizado em elementos de sintaxe relacionados a ALF quando o primeiro elemento de sintaxe tiver um primeiro valor, em que o segundo elemento de sintaxe que indica se um filtro loop adaptativo de componente cruzado (CC-ALF) está habilitado ou não.11. Device for encoding video data, CHARACTERIZED by the fact that it comprises: a video data memory; and a video encoder, wherein the video encoder is configured to: generate a bitstream including a plurality of ALF-related syntax elements, wherein the plurality of ALF-related syntax elements comprises a first syntax element that indicates whether an adaptive loop filter (ALF) is enabled or not; a second syntax element is conditionally signaled in ALF-related syntax elements when the first syntax element has a first value, where the second syntax element indicates whether a cross-component adaptive loop filter (CC-ALF) is enabled or not. 12. Dispositivo para decodificação de dados de vídeo, CARACTERIZADO pelo fato de que compreende: uma memória de dados de vídeo; e um decodificador de vídeo, em que o decodificador de vídeo é configurado para: analisar uma pluralidade de elementos de sintaxe relacionados a ALF a partir de um fluxo de bits, em que a pluralidade de elementos de sintaxe relacionados a ALF compreende um primeiro elemento de sintaxe que indica se um filtro loop adaptativo (ALF) está habilitado ou não; um segundo elemento de sintaxe é condicionalmente sinalizado em elementos de sintaxe relacionados a ALF quando o primeiro elemento de sintaxe tiver um primeiro valor, em que o segundo elemento de sintaxe que indica se um filtro loop adaptativo de componente cruzado (CC-ALF) está habilitado ou não.12. Device for decoding video data, CHARACTERIZED by the fact that it comprises: a video data memory; and a video decoder, wherein the video decoder is configured to: parse a plurality of ALF-related syntax elements from a bit stream, wherein the plurality of ALF-related syntax elements comprises a first syntax that indicates whether an adaptive loop filter (ALF) is enabled or not; a second syntax element is conditionally signaled in ALF-related syntax elements when the first syntax element has a first value, where the second syntax element indicates whether a cross-component adaptive loop filter (CC-ALF) is enabled or not. 13. Mídia de armazenamento legível por computador, CARACTERIZADA pelo fato de que compreende na mesma instruções executáveis por computador que, quando executadas por um dispositivo de computação, fazem com que o dispositivo de computação realize um método conforme definido em qualquer uma das reivindicações 1 a 10.13. Computer-readable storage media, CHARACTERIZED by the fact that it comprises thereon computer-executable instructions that, when executed by a computing device, cause the computing device to perform a method as defined in any one of claims 1 to 10. 14. Mídia de armazenamento não transitória, CARACTERIZADA pelo fato de que compreende um fluxo de bits codificado/decodificado pelo método conforme definido em qualquer uma das reivindicações precedentes.14. Non-transitory storage media, CHARACTERIZED by the fact that it comprises a stream of bits encoded/decoded by the method as defined in any of the preceding claims. 15. Fluxo de bits codificado, CARACTERIZADO pelo fato de que o fluxo de bits compreende: incluir uma pluralidade de elementos de sintaxe relacionados a ALF, em que a pluralidade de elementos de sintaxe relacionados a ALF compreende um primeiro elemento de sintaxe que indica se um filtro loop adaptativo (ALF) está habilitado ou não; um segundo elemento de sintaxe é condicionalmente sinalizado em elementos de sintaxe relacionados a ALF quando o primeiro elemento de sintaxe tiver um primeiro valor, em que o segundo elemento de sintaxe que indica se um filtro loop adaptativo de componente cruzado (CC-ALF) está habilitado ou não.15. Coded bit stream, CHARACTERIZED by the fact that the bit stream comprises: including a plurality of ALF-related syntax elements, wherein the plurality of ALF-related syntax elements comprises a first syntax element that indicates whether a adaptive loop filter (ALF) is enabled or not; a second syntax element is conditionally signaled in ALF-related syntax elements when the first syntax element has a first value, where the second syntax element indicates whether a cross-component adaptive loop filter (CC-ALF) is enabled or not.
BR122023025774-0A 2019-12-23 2020-12-23 CROSS-COMPONENT ADAPTIVE LOOP FILTERING FOR VIDEO CODING BR122023025774A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EPPCT/EP2019/086984 2019-12-23
US62/960,147 2020-01-13

Publications (1)

Publication Number Publication Date
BR122023025774A2 true BR122023025774A2 (en) 2024-05-21

Family

ID=

Similar Documents

Publication Publication Date Title
EP3868101B1 (en) An encoder, a decoder and corresponding methods for performing chroma deblocking for blocks which use joint chroma coding
BR112021009848A2 (en) encoder, decoder and corresponding methods for inter-prediction.
WO2021129690A1 (en) Cross-component adaptive loop filtering for video coding
BR122023024004A2 (en) VIDEO ENCODER, VIDEO DECODER AND CORRESPONDING METHODS
BR112020026818A2 (en) Encoder, Decoder and corresponding Unblocking Filter Limit Resistance Derivation Methods
WO2021155740A1 (en) An encoder, a decoder and corresponding methods about signaling high level syntax
BR112021003999A2 (en) relationship between partition constraint elements
WO2021159962A1 (en) An encoder, a decoder and corresponding methods for subpicture signalling in sequence parameter set
BR112020025145A2 (en) unlock filter for subpartition boundaries caused by intra-subpartition encoding tool
CA3120795A1 (en) An encoder, a decoder and corresponding methods using ibc merge list
BR122023021035A2 (en) MOTION VECTOR COMPRESSION METHOD, NON-TRAINER COMPUTER READABLE STORAGE MEDIA, ENCODER, DECODER AND STORAGE MEDIA
BR122022009445A2 (en) ENCODER, DECODER, AND CORRESPONDING METHODS TO SIMPLIFY IMAGE HEADER SIGNALING
WO2021170132A1 (en) An encoder, a decoder and corresponding methods simplifying signalling slice header syntax elements
BR112021009833A2 (en) encoder, decoder and corresponding methods for inter-prediction.
BR112021003946A2 (en) video encoder, video decoder and corresponding methods
WO2021169859A1 (en) A decoder and corresponding methods to signal picture partitioning information for slices
WO2021141519A2 (en) Method and apparatus of high-level syntax for smoothing intra-prediction techniques
WO2021025597A1 (en) Method and apparatus of sample adaptive offset in-loop filter with application region size constraint
BR112020024331A2 (en) decoder, and corresponding methods that are used for transform process
BR122023025774A2 (en) CROSS-COMPONENT ADAPTIVE LOOP FILTERING FOR VIDEO CODING
BR122023025787A2 (en) CROSS-COMPONENT ADAPTIVE LOOP FILTERING FOR VIDEO CODING
BR122023025769A2 (en) CROSS-COMPONENT ADAPTIVE LOOP FILTERING FOR VIDEO CODING
CN116489389B (en) Encoder, decoder and corresponding methods
BR122023021074A2 (en) UNLOCKING METHOD, DEVICE FOR USE IN AN IMAGE ENCODER AND/OR AN IMAGE DECODER, ENCODER, DECODER, AND NON-TRAINER COMPUTER READABLE MEDIA
WO2021006773A1 (en) Motion field storage optimization for the line buffer