BR112021013611A2 - Método e dispositivo para codificação e decodificação de imagens - Google Patents

Método e dispositivo para codificação e decodificação de imagens Download PDF

Info

Publication number
BR112021013611A2
BR112021013611A2 BR112021013611-8A BR112021013611A BR112021013611A2 BR 112021013611 A2 BR112021013611 A2 BR 112021013611A2 BR 112021013611 A BR112021013611 A BR 112021013611A BR 112021013611 A2 BR112021013611 A2 BR 112021013611A2
Authority
BR
Brazil
Prior art keywords
chroma
luma
block
chroma block
residual
Prior art date
Application number
BR112021013611-8A
Other languages
English (en)
Inventor
Edouard Francois
Fabrice LELEANNEC
Tangi POIRIER
Original Assignee
Interdigital Vc Holdings, Inc.
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
Priority claimed from EP19305236.2A external-priority patent/EP3703366A1/en
Application filed by Interdigital Vc Holdings, Inc. filed Critical Interdigital Vc Holdings, Inc.
Publication of BR112021013611A2 publication Critical patent/BR112021013611A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Color Television Systems (AREA)

Abstract

método e dispositivo para codificação e decodificação de imagens. uma ferramenta dependente de componente cruzado a ser usada para um bloco de chroma de uma imagem é ativada em resposta a um tamanho do referido bloco de chroma e a um tamanho de pelo menos um bloco de luma colocalizado com o bloco de chroma. em seguida, o bloco de chroma é decodificado em resposta à referida ativação da referida ferramenta dependente de componente cruzado. são apresentados métodos de codificação e decodificação, bem como dispositivos de codificação e decodificação.

Description

“MÉTODO E DISPOSITIVO PARA CODIFICAÇÃO E DECODIFICAÇÃO DE IMAGENS” CAMPO DE INVENÇÃO
1. CAMPO TÉCNICO
[001] Pelo menos uma das presentes modalidades geralmente se refere a um método e um dispositivo para codificação e decodificação de imagem e, mais particularmente, a um método e um dispositivo para codificação e decodificação de imagem com partição independente de luma e chroma.
2. TÉCNICA ANTERIOR
[002] Para alcançar alta eficiência de compressão, esquemas de codificação de imagem e vídeo geralmente empregam previsão e transformada para alavancar a redundância espacial e temporal no conteúdo de vídeo. Geralmente, intrapredição ou inter é usada para explorar a correlação intra ou interquadro, então as diferenças entre o bloco de imagem original e o bloco de imagem predito, frequentemente denotadas como erros de predição ou predição residual, são transformadas, quantizadas e codificadas por entropia. Durante a codificação, o bloco da imagem original é geralmente particionado / dividido em sub-blocos, possivelmente usando o particionamento quad-tree. Para reconstruir o vídeo, os dados comprimidos são decodificados por processos inversos correspondentes à predição, transformada, quantização e codificação de entropia.
3. BREVE SUMÁRIO
[003] De acordo com um aspecto geral de pelo menos uma modalidade, um método para decodificar dados de vídeo é apresentado, compreendendo: - ativar uma ferramenta dependente de componente cruzado para ser usada para um bloco de chroma de uma imagem em resposta a um tamanho do referido bloco de chroma e a um tamanho de pelo menos um bloco de luma colocalizado com o bloco de chroma;
- decodificar o referido bloco de chroma em resposta à referida ativação da referida ferramenta dependente de componente cruzado.
[004] De acordo com um aspecto geral de pelo menos uma modalidade, um aparelho para decodificar dados de vídeo é apresentado, compreendendo um ou mais processadores configurados para executar: - ativar uma ferramenta dependente de componente cruzado para ser usada para um bloco de chroma de uma imagem em resposta a um tamanho do referido bloco de chroma e a um tamanho de pelo menos um bloco de luma colocalizado com o bloco de chroma; e - decodificar o referido bloco de chroma em resposta à referida ativação da referida ferramenta dependente de componente cruzado.
[005] De acordo com outro aspecto geral de pelo menos uma modalidade, um fluxo de bits é formatado para incluir o sinal gerado de acordo com os métodos de codificação descritos acima.
[006] De acordo com um aspecto geral de pelo menos uma modalidade, um método para codificar dados de vídeo é apresentado, compreendendo: - ativar uma ferramenta dependente de componente cruzado para ser usada para um bloco de chroma de uma imagem em resposta a um tamanho do referido bloco de chroma e a um tamanho de pelo menos um bloco de luma colocalizado com o bloco de chroma; - codificar o referido bloco de chroma em resposta à referida ativação da referida ferramenta dependente de componente cruzado.
[007] De acordo com um aspecto geral de pelo menos uma modalidade, um aparelho para codificar dados de vídeo é apresentado, compreendendo um ou mais processadores configurados para realizar: - ativar uma ferramenta dependente de componente cruzado para ser usada para um bloco de chroma de uma imagem em resposta a um tamanho do referido bloco de chroma e a um tamanho de pelo menos um bloco de luma colocalizado com o bloco de chroma; e - codificar o referido bloco de chroma em resposta à referida ativação da referida ferramenta dependente de componente cruzado.
[008] De acordo com outro aspecto geral de pelo menos uma modalidade, um fluxo de bits é formatado para incluir o sinal gerado de acordo com os métodos de codificação descritos acima.
[009] De acordo com outro aspecto geral, o método para decodificar ou codificar vídeo ou o aparelho para decodificar ou codificar vídeo compreende ainda determinar a posição na imagem de uma determinada posição de amostra no bloco de chroma, determinar um bloco de luma colocalizado sendo um bloco de luma compreendendo a amostra de luma colocalizada com a posição no bloco de chroma, determinar amostras de luma vizinhas do bloco de luma colocalizado, determinar um valor de luma das amostras de luma vizinhas determinadas, determinar um fator de escala com base no valor de luma determinado, e aplicar uma escala do bloco de chroma residual de acordo com o fator de escala.
[010] Uma ou mais das presentes modalidades também fornecem um meio de armazenamento legível por computador tendo nele instruções armazenadas para codificar ou decodificar dados de vídeo de acordo com pelo menos parte de qualquer um dos métodos descritos acima. Uma ou mais modalidades também fornecem um meio de armazenamento legível por computador tendo armazenado nele um fluxo de bits gerado de acordo com os métodos de codificação descritos acima. Uma ou mais modalidades também fornecem um método e aparelho para transmitir ou receber o fluxo de bits gerado de acordo com os métodos de codificação descritos acima. Uma ou mais modalidades também fornecem um produto de programa de computador, incluindo instruções para executar pelo menos parte de qualquer um dos métodos descritos acima.
4. BREVE RESUMO DOS DESENHOS
[011] A Figura 1 representa uma Unidade de Árvore de Codificação (CTU);
[012] A Figura 2 representa uma unidade de árvore de codificação dividida em unidades de codificação, unidades de previsão e unidades de transformada;
[013] As Figuras 3 e 4 representam uma CTU dividida em Unidades de Codificação usando Quad-Tree Plus Binary-Tree (QTBT);
[014] A Figura 5 ilustra os modos de divisão de uma unidade de codificação, conforme definido pela ferramenta de codificação Quad-Tree mais Binary-Tree
[015] A Figura 6 ilustra modos de divisão adicionais de uma unidade de codificação, por exemplo, modos de divisão binária assimétrica e modos de divisão de árvore tripla;
[016] A Figura 7 representa um fluxograma de um método para ativar ou desativar uma ferramenta de codificação dependente de componente cruzado de acordo com uma modalidade;
[017] As Figuras 8A, 8B, 8C, 8D ilustram o princípio de ativação / desativação de uma ferramenta de codificação dependente de componente cruzado de acordo com a modalidade da Figura 7;
[018] A Figura 9 representa um fluxograma de um método para ativar ou desativar uma ferramenta de codificação dependente de componente cruzado de acordo com uma modalidade;
[019] A Figura 10 ilustra um bloco de chroma e seus blocos de luma colocalizados de acordo com um exemplo;
[020] A Figura 11 ilustra o princípio de ativação / desativação de uma ferramenta de codificação dependente de componente cruzado de acordo com a modalidade da Figura 9;
[021] A Figura 12 representa um fluxograma de um método para ativar ou desativar uma ferramenta de codificação dependente de componente cruzado de acordo com uma modalidade;
[022] As Figuras 13 e 14 ilustram o princípio de ativação / desativação de uma ferramenta de codificação dependente de componente cruzado de acordo com a modalidade da Figura 12;
[023] A Figura 15 representa um fluxograma de um método para ativar ou desativar uma ferramenta de codificação dependente de componente cruzado de acordo com uma modalidade;
[024] A Figura 16 ilustra o princípio de ativação / desativação de uma ferramenta de codificação dependente de componente cruzado de acordo com a modalidade da Figura 15;
[025] A Figura 17 representa um fluxograma de um método para obter um fator de escala ou índice de fator de escala para um bloco de chroma de acordo com uma modalidade;
[026] A Figura 18 representa um bloco de chroma atual e alguns blocos de chroma vizinhos;
[027] As Figuras 19, 20 e 21 ilustram o princípio de ativação / desativação de uma ferramenta de codificação dependente de componente cruzado de acordo com uma modalidade;
[028] A Figura 22 representa um fluxograma de um método para determinar um fator de escala a ser usado na escala residual de chroma de acordo com uma modalidade;
[029] As Figuras 23A, 23B, 23C e 23D representam um bloco de chroma e um bloco de luma colocalizado;
[030] As Figuras 24A e 24B ilustram exemplos de distâncias entre uma amostra de luma vizinhas superior esquerdo e amostras de chroma vizinhas;
[031] A Figura 25 representa um fluxograma de um método para verificar a disponibilidade da amostra de luma com base em suas amostras de chroma colocadas e nas amostras de chroma do bloco atual.
[032] A Figura 26 ilustra um diagrama de blocos de um codificador de vídeo de acordo com uma modalidade;
[033] A Figura 27 ilustra um diagrama de blocos de um decodificador de vídeo de acordo com uma modalidade; e
[034] A Figura 28 ilustra um diagrama de blocos de um exemplo de um sistema no qual vários aspectos e modalidades são implementados.
5. DESCRIÇÃO DETALHADA
[035] Na codificação HEVC, uma imagem é particionada em CTUs de formato quadrado com um tamanho configurável normalmente 64x64, 128x128 ou 256x256. Uma CTU é a raiz de uma partição quad-tree em 4 unidades de codificação quadradas (CU) de tamanho igual, ou seja, metade do tamanho do bloco pai em largura e altura, conforme ilustrado na Figura 1. Uma quad-tree é uma árvore na qual um nó pai pode ser dividido em quatro nós filhos, cada um dos quais pode se tornar um nó pai para outra divisão em quatro nós filhos. No HEVC, um bloco de codificação (CB) é particionado em um ou mais blocos de previsão (PB) e forma a raiz de um particionamento quad-tree em blocos de transformada (TBs). Correspondendo ao Bloco de Codificação, Bloco de Predição e Bloco de Transformada, uma Unidade de Codificação (CU) inclui as Unidades de Previsão (PUs) e o conjunto estruturado em árvore de Unidades de Transformada (TUs), uma PU inclui as informações de previsão (por exemplo, parâmetros de intrapredição ou Inter) para todos os componentes de cor, e uma TU inclui estrutura de sintaxe de codificação residual para cada componente de cor, conforme ilustrado na Figura 2. O modo de codificação Intra ou Inter é atribuído a uma CU. O tamanho de um CB, PB e TB do componente luma se aplica ao CU, PU e TU correspondentes.
[036] Em sistemas de codificação mais recentes, uma CTU é a raiz de um particionamento da árvore de codificação em Unidades de Codificação (CU). Uma árvore de codificação é uma árvore na qual um nó pai (geralmente correspondendo a um bloco) pode ser dividido em nós filhos (por exemplo, em 2, 3 ou 4 nós filhos), cada um dos quais pode se tornar um nó pai para outra divisão em nós filhos. Além do modo de divisão quad-tree, novos modos de divisão (modos de divisão simétrica de árvore binária, modos de divisão de árvore binária assimétrica e modos de divisão de árvore tripla) também são definidos, o que aumenta o número total de modos de possível divisão. A árvore de codificação tem um nó raiz exclusivo, por exemplo, uma CTU. Uma folha da árvore de codificação é um nó final da árvore. Cada nó da árvore de codificação representa um bloco que pode ser dividido em blocos menores também chamados de sub-blocos. Uma vez que o particionamento de um CTU em CUs é determinado, CUs correspondentes às folhas da árvore de codificação são codificados. O particionamento de uma CTU em CUs e os parâmetros de codificação usados para codificar cada CU (correspondendo a uma folha da árvore de codificação) podem ser determinados no lado do codificador por meio de um procedimento de otimização de distorção de taxa.
[037] A Figura 3 representa um particionamento de uma CTU em CUs onde as unidades de codificação podem ser divididas de acordo com os modos de divisão quad-tree e árvore binária simétrica. Este tipo de divisão é conhecido como QTBT (Quad-Tree mais Binary Tree). Os modos de divisão de árvore binária simétrica são definidos para permitir que uma UC seja dividida horizontal ou verticalmente em duas unidades de codificação de tamanho igual. Na Figura 3, as linhas sólidas indicam o particionamento quad-tree e as linhas pontilhadas indicam a divisão binária de uma UC em UCs simétricas. A Figura 4 representa a árvore de codificação associada. Na Figura 4, as linhas sólidas representam a divisão quad-tree e as linhas pontilhadas representam a divisão binária que está espacialmente embutida nas folhas da quad- tree. A Figura 5 representa os 4 modos de divisão usados na Figura 3. O modo NO_SPLIT indica que a UC não está mais dividida. O modo QT_SPLIT indica que a
UC é dividida em 4 quadrantes de acordo com uma quad-tree, os quadrantes sendo separados por duas linhas divididas. O modo HOR indica que a UC é dividida horizontalmente em duas UCs de tamanho igual, separadas por uma linha de divisão. VER indica que a UC é dividida verticalmente em duas UCs de tamanho igual, separadas por uma linha de divisão. As linhas de divisão são representadas por linhas tracejadas na Figura 5.
[038] Com a divisão QTBT, uma CU tem um formato quadrado ou retangular. O tamanho de uma unidade de codificação é uma potência de 2 e normalmente vai de 4 a 128 em ambas as direções (horizontal e vertical). QTBT tem várias diferenças com a divisão de HEVC.
[039] Primeiro, a divisão QTBT de uma CTU é composta por dois estágios. Uma CTU é primeiro dividida em uma forma quad-tree. Cada folha da quad-tree pode então ser dividida de forma binária. Isso é ilustrado à direita da Figura 3, onde as linhas sólidas representam a fase de decomposição de quad-tree e as linhas tracejadas representam a decomposição binária que está espacialmente embutida nas folhas da quad-tree.
[040] Em segundo lugar, a estrutura de partição do bloco de luma e Chroma pode ser separada e decidida de forma independente, principalmente em fatias internas.
[041] Tipos adicionais de particionamento também podem ser usados. Os modos de divisão binary tree assimétrica (ABT) são definidos para permitir que uma UC seja dividida horizontalmente em duas unidades de codificação com os respectivos tamanhos retangulares (w, h/4) e (w, 3h/4) ou verticalmente em duas unidades de codificação com os respectivos tamanhos retangulares (w/4, h) e (3w/4, h)) conforme representado na Figura 6. As duas unidades de codificação são separadas por uma linha de divisão representada por uma linha tracejada na Figura
6.
[042] A Figura 6 também ilustra modos de divisão triple tree de acordo com os quais uma unidade de codificação é dividida em três unidades de codificação nas direções vertical e horizontal. Na direção horizontal, uma UC é dividida em três unidades de codificação de respectivos tamanhos (w, h/4), (w, h/2) e (w, h/4). Na direção vertical, uma UC é dividida em três unidades de codificação de respectivos tamanhos (w/4, h), (w/2, h) e (w/4, h).
[043] A divisão de uma unidade de codificação é decidida do lado do codificador por meio da otimização da distorção de taxa, que consiste em determinar a representação da CTU com custo mínimo de distorção de taxa.
[044] No presente pedido, o termo "bloco" ou "bloco de imagem" pode ser usado para se referir a qualquer um de uma CTU, uma CU, uma PU, uma TU, um CB, um PB e um TB. Além disso, o termo "bloco" ou "bloco de imagem" pode ser usado para se referir a um macrobloco, uma partição e um sub-bloco conforme especificado em H.264 / AVC ou em outros padrões de codificação de vídeo e, mais geralmente, para se referir a uma série de amostras de vários tamanhos.
[045] No presente pedido, os termos "reconstruído" e "decodificado" podem ser usados indistintamente, os termos "pixel" e "amostra" podem ser usados indistintamente, os termos "imagem", "fatia", "bloco", "imagem" e “quadro” podem ser usados indistintamente. Normalmente, mas não necessariamente, o termo "reconstruído" é usado no lado do codificador, enquanto "decodificado" é usado no lado do decodificador.
[046] O uso dessas novas topologias permite melhorar significativamente a eficiência da codificação. Em particular, um ganho significativo é obtido para os componentes de chroma. Esse ganho vem da separação / independência das árvores de codificação (ou partição) Luma e Chroma.
[047] No entanto, essa separação da árvore de codificação Luma e Chroma no nível da CTU apresenta alguns problemas em termos de implementação de hardware. Uma CTU é normalmente de tamanho 128x128 ou 256x256. A separação total das árvores de codificação dos componentes Luma e Chroma implica que esses Luma e Chroma também estão totalmente separados no domínio compactado, portanto, também aparecem de forma separada no fluxo de bits codificado. Isso causa alguns problemas para as implementações do decodificador, onde se gostaria de garantir que um pipeline de decodificação possa ser alcançado em um tamanho máximo de unidade de decodificação que pode ser menor do que o tamanho da CTU. Normalmente, um pipeline de decodificador baseado em 64x64 é desejado para alguma implementação de decodificador. Para fazer isso, um tamanho máximo de bloco de transformada igual a 64x64 foi escolhido no modelo de teste de codificação de vídeo versátil.
[048] Combinar o uso de árvores de codificação separadas de luma / chroma com ferramentas de codificação envolvendo uma interdependência entre o chroma e suas amostras de luma colocalizadas (por exemplo, escala residual de chroma dependente de luma) pode ser problemático. Na verdade, para processar um bloco de chroma, as amostras de luma do bloco de chroma colocalizadas com o bloco de chroma considerado devem ser processadas antes do bloco de chroma. Se o bloco de luma for de tamanho grande, isso pode gerar um grande atraso no pipeline estrutural antes de ser capaz de processar o bloco de chroma.
[049] Pelo menos uma modalidade aplica restrição (ões) no uso combinado de árvores de codificação luma / chroma separadas e ferramentas de codificação envolvendo uma interdependência entre o chroma e suas amostras luma colocalizadas (por exemplo, escala residual de chroma, Modelo Linear de Componente Cruzado conhecido como CCLM) em resposta ao tamanho de pelo menos um bloco codificado por luma colocalizado com o bloco codificado por chroma.
[050] Pelo menos uma modalidade ativa ou desativa a ferramenta de codificação interdependente de componentes (por exemplo, a escala residual de chroma dependente de luma para blocos codificados por chroma) em resposta ao tamanho (ou dimensões horizontais / verticais) do bloco codificado por chroma e dos blocos codificados por luma colocalizado com amostras do bloco codificado de chroma considerado.
[051] Pelo menos uma modalidade fornece uma solução para blocos de chroma no caso em que a escala residual de chroma é desativada devido às restrições mencionadas acima no uso combinado de árvore de codificação luma / chroma separada e escala residual de chroma.
[052] A escala residual de chroma dependente de luma é um exemplo de uma ferramenta de codificação que envolve uma interdependência entre o chroma e suas amostras de luma colocalizadas. A escala residual de chroma dependente de Luma é divulgada em JVET-M0427 de Lu et al, intitulada "CE12: Mapping functions (test CE12-1 and CE12-2)". A escala residual de chroma dependente de Luma compreende o uso de uma tabela de escala ou escala inversa indexada por valores luma. A tabela é explicitamente sinalizada no fluxo ou deduzida de uma tabela codificada no fluxo.
[053] No lado do codificador, o processo funciona da seguinte maneira. Ao codificar um bloco de chroma, um valor luma, representativo do bloco de luma colocalizado, é calculado. Esta é normalmente a média das amostras de luma no bloco de predição de luma (ou reconstruído) colocalizado com o bloco de chroma considerado. A partir do valor luma calculado, um valor de escala é obtido da tabela de escala. O valor de escala é aplicado como um fator multiplicativo ao residual da predição de chroma, antes de aplicar a transformada e então a quantização ao sinal residual de chroma.
[054] No lado do decodificador, o processo funciona da seguinte maneira. Ao decodificar um bloco de chroma, um valor de luma, representativo do bloco de luma colocalizado com o bloco de chroma em consideração, é calculado. Esta é normalmente a média das amostras de luma no bloco de predição de luma (ou reconstruído) colocalizado com o bloco de chroma considerado. A partir do valor luma calculado, um valor de escala inversa é obtido a partir da tabela de escala inversa sinalizado no fluxo ou deduzido dos dados sinalizados no fluxo. O valor da escala inversa é aplicado ao residual da previsão de chroma, após ter aplicado a quantização inversa e a transformada inversa.
[055] JVET-M0427 sugere desativar a escala residual de chroma no caso de uso de árvore de codificação separada luma / chroma. Esta solução gera perda de codificação para os componentes de chroma.
[056] Nas várias modalidades, o particionamento de árvore luma / chroma separado é ativado, ou seja, o particionamento luma e chroma pode ser alcançado independentemente. As modalidades propostas melhoram a eficiência de codificação, especialmente para os componentes chroma.
[057] A seguir, o formato de chroma é considerado 4:2:0, ou seja, as dimensões dos componentes de chroma são metade das dimensões do componente luma. Será apreciado, no entanto, que as presentes modalidades não estão restritas a este formato de chroma específico. Outros formatos de chroma podem ser usados modificando a razão entre as dimensões de luma e as dimensões de chroma.
[058] Para fins de simplificação e legibilidade, nas figuras a seguir, a mesma resolução é representada para os componentes luma e chroma, mesmo que as resoluções reais sejam diferentes, como, por exemplo, no caso do formato de chroma 4:2:0. Nesse caso, uma escala simples deve ser aplicada às imagens de chroma.
[059] As dimensões horizontais / verticais máximas Wmax / Hmax são especificadas para restringir o uso da escala residual de chroma dependente de luma para um determinado bloco de chroma codificado, no caso em que a partição separada de árvore luma / chroma está ativada. A imagem é dividida em áreas retangulares não sobrepostas de tamanho Wmax / Hmax para luma, WmaxC / HmaxC para chroma (normalmente Wmax = Hmax = 32 para luma, ou para chroma WmaxC
= HmaxC = 16), nomeadas abaixo de "áreas retangulares autorizadas" (ARAs). Em modalidades de variantes múltiplas, a ativação da escala residual de chroma dependente de Luma (LDCRS observada a seguir) é condicionada à posição e tamanho do bloco de chroma e dos blocos de luma colocalizados com o bloco de chroma relacionado à grade ARAs.
[060] As várias modalidades referem-se a blocos de luma colocalizados com o bloco de chroma considerado. Os blocos de Luma colocalizados com um bloco de chroma podem ser definidos como: - o bloco de luma contém um pixel colocalizado com uma determinada posição no bloco de chroma, como o o centro do bloco de chroma, por exemplo, definido como posição relativa ((x0 + Wc) / 2, (y0 + Hc) / 2) no bloco de chroma, onde (x0, y0) corresponde à posição relativa na imagem de chroma da amostra superior esquerda do bloco de chroma, e (Wc, Hc) são as dimensões horizontal / vertical do bloco de chroma o a posição superior esquerda no bloco de chroma, definida como a posição relativa (x0, y0) na imagem de chroma o a posição inferior direita no bloco de chroma, definida como a posição relativa (x0 + Wc-1, y0 + Hc-1) na imagem de chroma o a posição superior direita no bloco de chroma, definida como posição relativa (x0 + Wc-1, y0) na imagem de chroma o local inferior esquerdo no bloco de chroma, definido como posição relativa (x0, y0 + Hc-1) na imagem de chroma - os blocos de luma colocalizados com várias posições dadas no bloco de chroma, como as mencionadas acima; por exemplo, os blocos de luma colocalizados com as 4 posições de bloco de chroma superior esquerdo, superior direito, inferior esquerdo, inferior direito são considerados (consulte a Figura 10); ou - os blocos de luma colocalizados com todas as posições das amostras de chroma do bloco de chroma considerado Modalidade 1 - LDCRS desativada no caso em que o bloco de chroma cruza as fronteiras de ARAs
[061] Em pelo menos uma modalidade, se o bloco de chroma considerado não estiver inteiramente contido em uma única ARA de chroma, a LDCRS é desativada. Isso corresponde às seguintes equações: Se ((x0 / WmaxC)! = ((X0 + Wc – 1) / WmaxC)) || ((y0 / HmaxC)! = ((y0 + Hc – 1) / HmaxC)), LDCRS está desativada. onde x || y é um "ou" lógico booleano de x e y e “! =” significa “Diferente de”.
[062] Um diagrama de blocos simplificado do processo é mostrado na Figura
7. A etapa 300 verifica se o bloco de chroma está dentro de uma única ARA de chroma. Se esta condição for verdadeira, LDCRS é ativada (etapa 303). Se esta condição for falsa, LDCRS é desativada (etapa 302).
[063] As Figuras 8A, 8B, 8C, 8D ilustram alguns casos de partição de chroma, com blocos cinza correspondendo a blocos de chroma onde LDCRS está ativada e blocos brancos correspondendo a blocos de chroma onde LDCRS está desativada. Os blocos de chroma são delineados por linhas pretas em negrito. A grade definida por WmaxC e HmaxC é indicada com linhas tracejadas. - Na figura 8A, os 2 blocos de chroma cruzam vários ARAs de chroma; de acordo com a modalidade atual, LDCRS é desativada para ambos os blocos de chroma. - Na figura 8B, 2 blocos de chroma estão dentro de um ARA de chroma; de acordo com a modalidade atual, LDCRS é ativada para ambos os blocos de chroma. - Na figura 8C, 1 bloco de chroma vertical retangular cruza dois ARAs de chroma; de acordo com a modalidade atual, LDCRS está desativada para este bloco de chroma. Todos os outros blocos de chroma estão dentro de um ARA de chroma e, portanto, a LDCRS pode ser ativada para esses blocos de chroma.
- Na figura 8D, um bloco de chroma horizontal cruza dois ARAs de chroma; de acordo com a modalidade atual, LDCRS está desativada para este bloco de chroma. Todos os outros blocos de chroma estão dentro de um ARA de chroma e, portanto, a LDCRS pode ser ativada para esses blocos de chroma. Modalidade 2 - LDCRS desativada no caso em que o bloco de chroma cruza as bordas dos ARAs de chroma ou no caso em que pelo menos um dos blocos de luma colocalizados cruza as bordas de ARA de luma colocalizadas
[064] Em uma modalidade, LDCRS é desativada no caso em que pelo menos uma das seguintes condições for verdadeira:  o bloco de chroma considerado não está inteiramente contido em uma única ARA de chroma  pelo menos um dos blocos de luma colocalizados com o bloco de chroma considerado não está inteiramente contido na ARA de luma colocalizado com a ARA de chroma, ou seja, cruza as bordas de ARA de luma colocalizadas.
[065] Um diagrama de blocos simplificado do processo é mostrado na Figura
9. A etapa 400 verifica se o bloco de chroma está dentro de uma única ARA de chroma. Se esta condição for falsa, LDCRS é desativada (etapa 401). Se esta condição for verdadeira, os blocos de luma colocalizados com o bloco de chroma considerado são identificados (etapa 402). A etapa 403 verifica se todos os blocos de luma colocalizados estão dentro da ARA de luma colocalizados com a ARA de chroma. Se esta condição for falsa, LDCRS é desativada (etapa 404). Se esta condição for verdadeira, a LDCRS é ativada (etapa 405).
[066] A Figura 11 provê dois exemplos da atual modalidade. Na parte superior da figura, o bloco de chroma está contido em uma única ARA de chroma (canto superior esquerdo) e tem 3 blocos de luma colocalizados (blocos de luma coloc 1, 2 e 3, canto superior direito). Dois deles (blocos de luma coloc 1 e 2, em blocos tracejados) estão dentro da ARA de luma colocalizada, enquanto um terceiro (bloco de luma coloc
3) está fora da ARA de luma colocalizada. Como este terceiro bloco de luma está fora da ARA de luma colocalizada, a LDCRS é desativada de acordo com a modalidade atual.
[067] Na parte inferior da figura, o bloco de chroma está contido em uma única ARA de chroma e tem 3 blocos de luma colocalizados (blocos de luma coloc 1, 2 e 3). Os três estão dentro da ARA de luma colocalizada. LDCRS é ativada de acordo com a modalidade atual.
[068] A especificação VVC atual suporta três tipos de divisão: Quad Tree (QT), Binary Tree (BT, Horizontal ou Vertical) e Ternary Tree (TT, Horizontal ou Vertical), conforme ilustrado nas figuras 5 e 6. Em uma variante, as Divisões BT e TT são ativadas a partir de uma determinada dimensão ARA (por exemplo, 32x32 para luma, 16x16 de chroma quando o formato de chroma 4: 2: 0 for considerado). Acima desta dimensão, apenas a divisão QT, ou nenhuma divisão, são ativadas. Portanto, as condições apresentadas nas modalidades 1 e 2 são sistematicamente satisfeitas, exceto para o caso "Sem divisão" de blocos maiores do que as dimensões ARA / chroma ARA de luma (por exemplo, para um bloco de luma 64x64 não dividido em 4 blocos 32x32).
[069] Em pelo menos uma modalidade, as divisões de BT e TT são ativadas apenas para tamanhos de bloco de luma menores ou iguais a 32x32 ou tamanhos de blocos de chroma menores ou iguais a 16x16 (quando o formato de chroma 4: 2: 0 for usado). Acima desse tamanho, apenas a divisão QT (ou nenhuma divisão) é ativada. A restrição diz respeito ao modo LDCRS ou ao modo CCLM. O processo é ilustrado na figura 11C, considerando um ARA de luma de tamanho 32x32 e um ARA de chroma de tamanho 16x16. Na etapa 1300, é verificado se o bloco considerado é um bloco de luma de tamanho maior ou igual a 64x64 ou um bloco de chroma de tamanho maior ou igual a 32x32. Se este teste for verdadeiro, a etapa 1301 desativa a divisão BT e TT, ao mesmo tempo que permite nenhuma divisão e divisão QT. Se este teste for falso, a etapa 1302 não permite divisão, divisão QT, BT e TT.
[070] Em pelo menos uma modalidade, para reduzir a latência de processamento de chroma no caso do modo LDCRS ou CCLM, quando um bloco de luma quadrado maior do que a ARA de luma não for dividido, o bloco de chroma correspondente só pode ser dividido em 4 blocos por QT dividido que pode possivelmente ser dividido ainda mais, ou não pode ser dividido. Por exemplo, considerando um ARA de luma de tamanho 32x32 e um ARA de chroma de tamanho 16x16, quando um bloco de luma quadrado de tamanho 64x64 não é dividido, o bloco de chroma correspondente (de tamanho 32x32 no formato 4: 2: 0) só pode ser dividido em 4 blocos de 16x16 por divisão QT que podem ser divididos posteriormente (linha pontilhada na figura) ou não podem ser divididos como um todo. Os casos que seguem essas restrições são mostrados na Figura 11D.
[071] Em pelo menos uma modalidade, para reduzir a latência de processamento de chroma no caso do modo LDCRS ou CCLM, quando um bloco de luma quadrado maior do que a ARA de luma é dividido em 4 blocos por divisão de QT, o bloco de chroma correspondente só pode ser dividido em 4 blocos por divisão QT que podem ser divididos posteriormente ou não podem ser divididos no todo. Por exemplo, considerando um ARA de luma de tamanho 32x32 e um ARA de chroma de tamanho 16x16, quando um bloco de luma quadrado de tamanho 64x64 é dividido em 4 blocos de 32x32, o bloco de chroma correspondente (de tamanho 32x32 no formato 4:2:0) só pode ser dividido em 4 blocos de 16x16 pela divisão QT que pode ser dividida posteriormente (linha pontilhada na figura) ou não pode ser dividida no todo. Os casos que seguem essas restrições são mostrados na Figura 11E.
[072] Em pelo menos uma modalidade, para reduzir a latência de chroma de processamento no caso do modo LDCRS ou CCLM, quando um bloco de luma quadrado maior do que a ARA de luma é dividido em 2 blocos com divisão BT horizontal, o bloco de chroma correspondente só pode ser dividido em 2 blocos por divisão horizontal BT ou em 4 blocos por divisão QT. Por exemplo, considerando um ARA de luma de tamanho 32x32 e um ARA de chroma de tamanho 16x16, quando um bloco de luma quadrado de tamanho 64x64 é dividido em 2 blocos de 32 linhas e 64 colunas, o bloco de chroma correspondente (de tamanho 32x32 no Formato 4:2:0) só pode ser dividido em 2 blocos de 16 linhas e 32 colunas por divisão horizontal BT ou em 4 blocos 16x16 por divisão QT. Os casos que seguem essas restrições são mostrados na Figura 11F.
[073] Em pelo menos uma modalidade, para reduzir a latência de chroma de processamento no caso do modo LDCRS ou CCLM, quando um bloco de luma quadrado maior do que a ARA de luma não é dividido ou dividido em 4 blocos por QT dividido ou dividido em 2 blocos por QT horizontal dividido, o bloco de chroma correspondente não pode ser dividido em 2 blocos por divisão binária vertical, mas pode ser dividido em 4 blocos por divisão QT, ou 2 blocos por divisão BT horizontal ou não dividido.
[074] Em pelo menos uma modalidade, para reduzir a latência de chroma de processamento no caso do modo LDCRS ou CCLM, quando um bloco de luma quadrado maior do que a ARA de luma é dividido em 2 blocos com divisão BT vertical, o bloco de chroma correspondente só pode ser dividido em 2 blocos por divisão vertical BT. Por exemplo, considerando um ARA de luma de tamanho 32x32 e um ARA de chroma de tamanho 16x16, quando um bloco de luma quadrado de tamanho 64x64 é dividido em 2 blocos de 64 linhas e 32 colunas, o bloco de chroma correspondente só pode ser dividido em 2 blocos de 32 linhas e 16 colunas. Os casos que seguem essas restrições são mostrados na Figura 11G. Exemplo de sintaxe com base na sintaxe VTM5.0 descrita no documento JVET-N1001 (versão 9 - data 25/06/2019 13:45:21)
[075] O texto em fonte pequena abaixo corresponde a um exemplo de sintaxe, correspondendo a um exemplo de implementação das modalidades descritas acima,
com base na sintaxe descrita no documento JVET-N1001 versão 9. A numeração das seções corresponde à numeração usada em JVET-N1001 versão 9. Versão em que a divisão BT / TT é proibida para blocos maiores que VDPU
[076] A descrição da sintaxe abaixo corresponde à modalidade que restringe o particionamento, conforme descrito acima. As alterações na especificação VTM5 v9 são destacadas em cinza.
6.4.2 Processo de divisão binária permitido
[077] As entradas para este processo são: - um modo de divisão binária btSplit, - uma largura de bloco de codificação cbWidth em amostras de luma, - uma altura de bloco de codificação cbHeight em amostras de luma, - uma localização (x0, y0) da amostra de luma superior esquerda do bloco de codificação considerado em relação à amostra de luma superior esquerda da imagem, - uma profundidade de árvore multitipo mttDepth, - uma profundidade máxima de árvore multitipo com deslocamento maxMttDepth, - um tamanho máximo de árvore binária maxBtSize, - um índice de partição partIdx, - um treeType variável especificando se uma única árvore (SINGLE_TREE) ou uma árvore dupla é usada para particionar as CTUs e, quando uma árvore dupla é usada, se os componentes luma (DUAL_TREE_LUMA) ou chroma (DUAL_TREE_CHROMA) são processados atualmente. A saída desse processo é a variável allowBtSplit. Tabela 6-2 - Especificação de parallelTtSplit e cbSize com base em btSplit. btSplit = = SPLIT_BT_VER btSplit = = SPLIT_BT_HOR parallelTtSplit SPLIT_TT_VER SPLIT_TT_HOR cbSize cbWidth cbHeight
[078] As variáveis parallelTtSplit e cbSize são derivadas conforme especificado na Tabela 6-2.
[079] A variável allowBtSplit é derivada da seguinte maneira: - Se uma ou mais das seguintes condições forem verdadeiras, allowBtSplit é definido igual a FALSE: - cbSize é menor ou igual a MinBtSizeY - cbWidth é maior que maxBtSize - cbHeight é maior que maxBtSize - treeType não é igual a SINGLE_TREE e cbWidth é maior que 32 - treeType não é igual a SINGLE_TREE e cbHeight é maior que 32 - mttDepth é maior ou igual a maxMttDepth - treeType é igual a DUAL_TREE_CHROMA e (cbWidth / SubWidthC)* (cbHeight / SubHeightC) é menor ou igual a 16 [Ed. (SL): é “menos que ou” necessário aqui?] - Caso contrário, se todas as condições a seguir forem verdadeiras, allowBtSplit é definido igual a FALSE - Caso contrário, allowBtSplit é definido igual a TRUE.
6.4.3 Processo de divisão ternário permitido
[080] As entradas para este processo são: - um modo de divisão ternário ttSplit, - uma largura de bloco de codificação cbWidth em amostras de luma, - uma altura de bloco de codificação cbHeight em amostras de luma, - uma localização (x0, y0) da amostra de luma superior esquerda do bloco de codificação considerado em relação à amostra de luma superior esquerda da imagem, - uma profundidade de árvore multitipo mttDepth - uma profundidade máxima de árvore multitipo com deslocamento maxMttDepth, - um tamanho máximo de árvore ternária maxTtSize, - um treeType variável especificando se uma única árvore (SINGLE_TREE)
ou uma árvore dupla é usada para particionar as CTUs e, quando uma árvore dupla é usada, se os componentes luma (DUAL_TREE_LUMA) ou chroma (DUAL_TREE_CHROMA) são processados atualmente.
[081] A saída desse processo é a variável allowTtSplit. Tabela 6-3 - Especificação de cbSize com base em ttSplit.
ttSplit = = ttSplit = = SPLIT_TT_VER SPLIT_TT_HOR cbSize cbWidth cbHeight
[082] A variável cbSize é derivada conforme especificado na Tabela 6-3.
[083] A variável allowTtSplit é derivada da seguinte maneira: - Se uma ou mais das seguintes condições forem verdadeiras, allowTtSplit é definido igual a FALSE: - cbSize é menor ou igual a 2 * MinTtSizeY - cbWidth é maior que Min (MaxTbSizeY, maxTtSize) - cbHeight é maior que Min (MaxTbSizeY, maxTtSize) - treeType não é igual a SINGLE_TREE e cbWidth é maior que 32 - treeType não é igual a SINGLE_TREE e cbHeight é maior que 32 - mttDepth é maior ou igual a maxMttDepth - x0 + cbWidth é maior que pic_width_in_luma_samples - y0 + cbHeight é maior que pic_height_in_luma_samples - treeType é igual a DUAL_TREE_CHROMA e (cbWidth / SubWidthC)* (cbHeight / SubHeightC) é menor ou igual a 32 - Caso contrário, allowTtSplit é definido igual a TRUE. Versão em que CCLM é proibido se uma VDPU for dividida em BT ou TT
[084] A descrição de sintaxe abaixo corresponde a uma modalidade em que CCLM (ou CRS) não está ativado para partições que não respeitam as restrições de particionamento descritas acima. Por exemplo, o CCLM é desativado quando o bloco de chroma é de tamanho 32x16, 16x32 ou quando seu bloco de luma colocado é 64x32 ou 32x64. Para outros casos, CCLM (ou CRS) é ativado. As alterações na especificação VTM5 v9 são destacadas em cinza.
1.1.1 Processo de derivação para o modo de intrapredição de chroma
[085] As entradas para este processo são: - uma localização luma (xCb, yCb) especificando a amostra superior esquerda do bloco de codificação de chroma atual em relação à amostra de luma superior esquerda da imagem atual, - uma variável cbWidth especificando a largura do bloco de codificação atual em amostras de luma, - uma variável cbHeight especificando a altura do bloco de codificação atual em amostras de luma. - uma variável treeType especificando se uma única árvore (SINGLE_TREE) ou uma árvore dupla é usada para particionar as CTUs.
[086] Neste processo, o modo de intrapredição de chroma IntraPredModeC [xCb] [yCb] é derivado.
[087] O modo de intrapredição luma correspondente lumaIntraPredMode é derivado da seguinte forma: - Se intra_mip_flag [xCb] [yCb] for igual a 1, lumaIntraPredMode é derivado usando IntraPredModeY [xCb + cbWidth / 2] [yCb + cbHeight / 2] e sizeId definido igual a MipSizeId [xCb] [yCb], conforme especificado na Tabela 8-4 - Caso contrário, lumaIntraPredMode é definido igual a IntraPredModeY [xCb + cbWidth / 2] [yCb + cbHeight / 2]. - Uma variável cclmEnabled é derivada invocando a subcláusula x.xx [Ed. (EF): número da subcláusula tbd] Processo de verificação do modo de intrapredição de chroma de componente cruzado.
[088] O modo de previsão de chroma intra IntraPredModeC [xCb] [yCb] é derivado usando intra_chroma_pred_mode [xCb] [yCb] e lumaIntraPredMode conforme especificado na Tabela 8-5 e Tabela 8-6. Tabela 8 5 - Especificação de IntraPredModeC [xCb] [yCb] dependendo de intra_chroma_pred_mode [xCb] [yCb] e lumaIntraPredMode quando cclmEnabled for igual a 0 lumaIntraPredMode intra_chroma_pred_mode[ xCb ][ yCb ] 0 50 18 1 X ( 0 <= X <= 66 ) 0 66 0 0 0 0 1 50 66 50 50 50 2 18 18 66 18 18 3 1 1 1 66 1 4 0 50 18 1 X Tabela 8-6 - Especificação de IntraPredModeC [xCb] [yCb] dependendo de intra_chroma_pred_mode [xCb] [yCb] e lumaIntraPredMode quando cclmEnabled for igual a 1 lumaIntraPredMode intra_chroma_pred_mode[ xCb ][ yCb ] 0 50 18 1 X ( 0 <= X <= 66 ) 0 66 0 0 0 0 1 50 66 50 50 50 2 18 18 66 18 18 3 1 1 1 66 1 4 81 81 81 81 81 5 82 82 82 82 82 6 83 83 83 83 83 7 0 50 18 1 X
[089] Quando chroma_format_idc for igual a 2, o modo de intrapredição de chroma Y é derivado usando o modo de intrapredição de chroma X na Tabela 8-5 e Tabela 8-6, conforme especificado na Tabela 8-7, e o modo de intrapredição de chroma X é definido igual ao chroma modo de intrapredição Y depois. Tabela 8-7 - Especificação do processo de mapeamento 4:2:2 do modo de intrapredição chroma X para o modo Y quando chroma_format_idc for igual a 2 mod 1 1 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 oX 0 1 2 3 4 5 6 7 mod 1 1 1 1 1 0 1 2 2 2 2 2 2 2 3 4 6 8 oY 0 2 3 4 6 mod 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 oX 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 mod 1 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 4 4 oY 8 0 2 3 4 6 8 0 2 3 4 5 6 7 8 9 0 1 mod 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 oX 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 mod 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 oY 2 3 4 4 4 5 6 6 6 7 8 8 8 9 0 1 2 2 mod 5 5 5 5 5 5 6 6 6 6 6 6 6 oX 4 5 6 7 8 9 0 1 2 3 4 5 6 mod 5 5 5 5 5 5 5 5 5 5 5 5 6 oY 2 3 4 4 4 5 6 6 6 7 8 9 0 x.x.x Processo de verificação do modo de intrapredição de chroma de componente cruzado
[090] As entradas para este processo são: - uma localização luma (xCb, yCb) especificando a amostra superior esquerda do bloco de codificação de chroma atual em relação à amostra de luma superior esquerda da imagem atual, - uma variável cbWidth especificando a largura do bloco de codificação atual em amostras de luma, - uma variável cbHeight especificando a altura do bloco de codificação atual em amostras de luma.
[091] A saída para este processo é: - um sinalizador lmEnabled especificando se um modo de intrapredição de chroma de componente cruzado está ativado ou não para o bloco de codificação de chroma atual.
[092] Nesse processo, cclmEnabled é derivado como segue. - wColoc e hColoc são definidos igual à largura e altura do bloco de codificação luma colocado cobrindo a localização dada por (xCb << 1, yCb << 1)). - cclmEnabled é definido como 1. - Se sps_cclm_enabled_flag for igual a 0, cclmEnabled será definido como igual a 0.
- Caso contrário, se treeType for igual a SINGLE_TREE, cclmEnabled é definido igual a 1. - Caso contrário, se uma das seguintes condições for falsa, cclmEnabled é definido igual a 0. - cbWidth ou cbHeight é maior ou igual a 32 e cbWidth não é igual a cbHeight. - wColoc ou hColoc é maior ou igual a 64 e wColoc não é igual a hColoc. Modalidade 2a - variante com uso de um sinalizador de habilitação inferido para os ARAs de luma; generalização para CCLM
[093] Os conceitos descritos acima também podem ser aplicados a outros modos de luma para chroma, como o CCLM.
[094] Em uma variante da modalidade 2, CCLM (ou LDCRS) é desativado no caso em que pelo menos uma das seguintes condições for verdadeira: • o bloco de chroma considerado não está inteiramente contido em uma única ARA de chroma. • a ARA de luma colocalizada com a ARA de chroma contém pelo menos um bloco de luma não inteiramente dentro da ARA de luma, ou seja, um bloco de luma cruzando as bordas da ARA de luma colocalizada.
[095] Isso pode ser implementado pelo uso de um sinalizador inferido doravante denominado luma_blocks_inside_flag, atribuído a cada ARA de luma. Para cada ARA de luma, o sinalizador é inferido a partir da árvore de particionamento luma (selecionado no codificador ou analisado no decodificador). Depois que a árvore de particionamento luma é gerada para a CTU (ou VDPU), o sinalizador para cada ARA de luma da CTU (ou VDPU) é inferido da seguinte maneira. Se todos os blocos de luma de um determinada ARA de luma forem estritamente incluídos na ARA de luma, o sinalizador será definido como verdadeiro. Caso contrário, se pelo menos um bloco de luma cruzar uma ou mais das bordas ARA de luma, o sinalizador é definido como falso.
[096] O sinalizador pode então ser usado da seguinte maneira. A condição (mencionada acima): • a ARA de luma colocalizada com a ARA de chroma contém pelo menos um bloco de luma não inteiramente dentro da ARA de luma, ou seja, um bloco de luma cruzando as bordas da ARA de luma colocalizada.
[097] Pode ser formulado de forma equivalente da seguinte forma: • o sinalizador luma_blocks_inside_flag da ARA de luma colocalizada com a ARA de chroma é falso. Modalidade 2b - LDCRS ou CCLM ativado se estiver dentro de seu bloco de luma colocado
[098] Em outra variante, o modo dependente de luma (LDCRS ou CCLM) é desativado se o bloco de chroma não estiver inteiramente dentro de seu bloco de luma colocado.
[099] Isso pode ser expresso da seguinte maneira. LDCRS ou CCLM é desativado se uma das seguintes condições for falsa: • O bloco de luma colocado com a amostra superior esquerda do bloco de chroma (na posição (x0, y0) e de tamanho (Wc, Hc)) está dentro de ARA de chroma de 32x32 • xColocY <= 2 * x0 • xColocY + wColocY - 1> = 2 * (x0 + Wc - 1) • yColocY <= 2 * y0 • yColocY + hColocY - 1>= 2 * (y0 + Hc - 1)
[0100] (xColocY, yColocY) sendo a posição da amostra superior esquerda do bloco de luma colocada com a amostra superior esquerda do bloco de chroma e (wColocY, hColocY) sendo as dimensões deste bloco de luma. Modalidade 2c - uso de um modo de fallback quanda LDCRS ou CCLM está desativado
[0101] Pelo menos uma modalidade está relacionada ao modo CCLM (e sua variante MDLM). Nesta modalidade, considera-se que existe um modo CCLM convencional, mais um modo CCLM de fallback. O CCLM de fallback pode ser usado quando o modo CCLM convencional não está ativado devido às restrições descritas neste aplicativo.
[0102] O diagrama de blocos na figura 11A provê um diagrama de blocos simplificado da ativação do processo CCLM. Na etapa 112, as condições para ativação do modo CCLM convencional para um determinado bloco de chroma são verificadas (tais condições são descritas em várias modalidades do pedido atual). Se todas as condições de ativação forem satisfeitas para o determinado bloco de chroma, o modo CCLM convencional é ativado e pode ser usado pelo codificador / decodificador (113). Se uma das condições de ativação não for satisfeita para o determinado bloco de chroma, o modo CCLM convencional é desativado e o modo CCLM de fallback é ativado e pode ser usado pelo codificador / decodificador (114).
[0103] Em pelo menos uma modalidade, o modo CCLM de fallback corresponde a um modo onde os parâmetros CCLM são derivados de amostras de luma e chroma na vizinhança próxima do bloco de chroma considerado (por exemplo, amostras de chroma pertencentes a uma ou duas linhas no topo do bloco de chroma e suas amostras de luma colocadas e/ou amostras de chroma pertencentes a uma ou duas colunas à esquerda do bloco de chroma e suas amostras de luma colocadas). Possíveis modos CCLM de fallback
[0104] Em pelo menos uma modalidade, o modo CCLM de fallback usa os parâmetros CCLM derivados de amostras de chroma e luma vizinhas à CTU atual. Por exemplo, uma ou duas linhas no topo da CTU e/ou uma ou duas colunas à esquerda da CTU são usadas.
[0105] Em pelo menos uma modalidade, o modo CCLM substituto usa os parâmetros CCLM derivados de amostras de chroma e luma vizinhas ao VDPU atual.
Por exemplo, uma ou duas linhas na parte superior da VDPU e/ou uma ou duas colunas à esquerda da VDPU são usadas.
[0106] Em pelo menos uma modalidade, o modo CCLM substituto usa os parâmetros CCLM derivados de amostras de chroma e luma vizinhas à ARA de chroma 16x16 atual e sua ARA de luma de 32x32 correspondente. Por exemplo, uma ou duas linhas no topo da ARA de chroma 16x16 atual e sua ARA de luma de 32x32 correspondente e/ou uma ou duas colunas à esquerda da ARA de chroma 16x16 atual e sua ARA de luma correspondente de 32x32 são usadas.
[0107] Em pelo menos uma modalidade, o modo CCLM de fallback usa os parâmetros CCLM derivados das amostras de luma vizinhas ao bloco de luma colocado com a amostra superior esquerda do bloco de chroma e das amostras de chroma colocadas para essas amostras de luma.
[0108] Em pelo menos uma modalidade, o modo CCLM de fallback usa os parâmetros CCLM mais recentes usados. Uso de uma lista de histórico de parâmetros CCLM
[0109] Em pelo menos uma modalidade, o modo CCLM de fallback usa parâmetros CCLM de uma lista de histórico de parâmetros CCLM construídos no codificador e no decodificador. Um tamanho máximo Nh é especificado para a lista de histórico. A lista de histórico é preenchida com os parâmetros CCLM mais recentes usados. Se um bloco de chroma usa o modo CCLM, seus parâmetros CCLM são adicionados à lista de histórico. Se a lista de histórico já estiver cheia, os parâmetros CCLM mais antigos são removidos e os novos são inseridos na lista de histórico.  Em uma variante, novos parâmetros CCLM são adicionados à lista de histórico apenas se forem diferentes dos parâmetros CCLM já presentes na lista de histórico.  Em uma variante, o índice dos parâmetros CCLM da lista de histórico de parâmetros CCLM é codificado para o bloco de chroma se for codificado usando o modo CCLM de fallback.  Em uma variante, o índice dos parâmetros CCLM da lista de histórico é inferido com base em uma verificação de similaridade das amostras de luma e/ou chroma dentro ou ao redor do bloco de chroma com as amostras de luma e/ou chroma sendo usadas para calcular os parâmetros CCLM da lista.
[0110] Uma possível implementação da última variante é a seguinte. Quando os parâmetros CCLM são inseridos na lista de histórico, os valores médios das amostras de luma usadas para derivar os parâmetros são calculados e armazenados na lista. Eles são anotados avg_Ref_Y [idx], idx sendo o índice na lista de histórico dos parâmetros CCLM (idx = 0 a Nh - 1, Nh sendo o tamanho da lista de histórico).
[0111] Quando o modo CCLM é usado para um bloco de chroma, os valores médios das amostras de luma vizinhas (apenas as amostras de luma disponíveis são consideradas) do bloco de chroma são calculados. Eles são indicados como avg_Cur_Y.
[0112] O índice de parâmetros CCLM idx0 na lista, usado para realizar a previsão CCLM do bloco de chroma, é identificado como o índice que minimiza o valor absoluto da diferença entre avg_Ref_Y [i] e avg_Cur_Y: idx0 = argmin (|avg_Cur_Y-avg_Ref_Y [idx]|)
[0113] A métrica de similaridade pode, alternativamente, ser baseada nas amostras de chroma. Quando os parâmetros CCLM são inseridos na lista de histórico, os valores médios das amostras de chroma usadas para derivar os parâmetros são calculados e armazenados na lista. Eles são indicados como avg_Ref_Cb [idx], avg_Ref_Cr [idx].
[0114] Quando o modo CCLM é usado para um bloco de chroma, os valores médios das amostras de chroma vizinhas ao bloco de chroma são calculados. Eles são indicados como avg_Cur_Cb e avg_Cur_Cr.
[0115] O índice de parâmetros CCLM idx0 na lista, usado para realizar a predição CCLM do bloco de chroma, é identificado como o índice que minimiza o valor absoluto da diferença entre avg_Ref_Cb [idx], avg_Ref_Cr [idx] e avg_Cur_Cb, avg_Cur_Cr: idx0 = argmin (| avg_Cur_Cb-avg_Ref_Cb [idx] | + | avg_Cur_Cr-avg_Ref_Cr [idx] |)
[0116] A figura 11B representa um diagrama de blocos simplificado de um exemplo de processo de seleção de índice da lista de histórico. As entradas do processo são as amostras de luma e/ou chroma vizinhas ao bloco de chroma considerado e a lista de histórico. A lista de histórico contém, para cada índice i, parâmetros CCLM e valores de referência relacionados às amostras de luma ou chroma usadas para derivar os parâmetros CCLM (por exemplo, avg_Ref_Y [i], avg_Ref_Cb [i], avg_Ref_Cr [i]). Na etapa 1200, um valor local é calculado a partir das amostras de luma ou chroma vizinhas ao bloco de chroma (por exemplo, avg_Cur_Y, avg_Cur_Cb, avg_Cur_Cr). Na etapa 1201, um parâmetro distMin é definido como um valor grande. Na etapa 1202, um loop sobre o índice = 0 a Nh - 1. Na etapa 1203, a distorção "dist" entre o valor local calculado na etapa 1200 e o valor de referência do índice i. A etapa 1204 verifica se dist é inferior a minDist. Se isso for verdade, os valores idx0 e minDist são atualizados na etapa 1205 e, em seguida, o processo vai para a etapa 1206. Caso contrário (dist não é inferior a minDist), o processo vai para a etapa 1206. A etapa 1206 verifica se o fim do loop sobre os índices da lista de histórico é feito. Se sim, idx0 é o valor do índice de saída. Se não, o processo volta para a etapa 1202 para verificar o próximo índice. Modalidade 3 - LDCRS ativada se o bloco de chroma não cruzar as bordas de ARAs e se pelo menos um dos blocos de luma colocalizados não cruzar as bordas de ARA de luma colocalizadas
[0117] Em uma modalidade, LDCRS é ativada no caso em que todas as seguintes condições forem verdadeiras:
• o bloco de chroma considerado está inteiramente contido em uma única ARA de chroma • pelo menos um dos blocos de luma colocalizados com o bloco de chroma considerado está inteiramente contido na ARA de luma colocalizada com a ARA de chroma. Esses blocos de luma são nomeados nos seguintes “blocos de luma ativados colocalizados”.
[0118] Um diagrama de blocos simplificado do processo é mostrado na Figura
12. A etapa 500 verifica se o bloco de chroma está dentro de uma única ARA de chroma. Se esta condição for falsa, LDCRS é desativada (etapa 501). Se esta condição for verdadeira, os blocos de luma colocalizados com o bloco de chroma considerado são identificados (etapa 502). A etapa 503 verifica se pelo menos um dos blocos de luma colocalizados está dentro da ARA de luma colocalizada com a ARA de chroma. Se esta condição for falsa, LDCRS é desativada (etapa 504). Se esta condição for verdadeira, a LDCRS é ativada (etapa 505).
[0119] Referindo-se à Figura 13 (que mostra o mesmo particionamento das imagens superiores da Figura 11), a LDCRS está ativada, porque o bloco de chroma está dentro de uma única ARA de chroma e os blocos de luma colocalizados 1 e 2 estão dentro da ARA de luma colocalizada, isto é, pelo menos um dos blocos de luma colocalizados com o bloco de chroma considerado está inteiramente contido na ARA de luma colocalizado com a ARA cromática.
[0120] Com referência à Figura 14, LDCRS está desativada, porque o bloco de chroma cobre duas ARAs de chroma (a primeira ARA de chroma e a ARA de segundo chroma), mesmo se dois de seus blocos de luma colocalizados (blocos coloc luma 1 e 2) estiverem dentro luma ARA colocalizado com o primeiro chroma ARA. Modalidade 4 - LDCRS ativada no caso em que pelo menos um dos blocos de luma colocalizados não cruza as bordas de ARA de luma colocalizadas
[0121] Em uma modalidade, mesmo se o bloco de chroma considerado não estiver inteiramente contido em uma única ARA de chroma, a LDCRS pode ser ativada no caso em que pelo menos um dos blocos de luma colocalizados com o bloco de chroma considerado está inteiramente contido na ARA de luma colocalizado com a primeira ARA de chroma do bloco de chroma considerado. Nesta modalidade, o bloco de chroma considerado pode ser maior do que uma única ARA de chroma.
[0122] Um diagrama de blocos simplificado do processo é mostrado na Figura
15. Os blocos de luma colocalizados com o bloco de chroma considerado são identificados (etapa 600). A etapa 601 verifica se pelo menos um dos blocos de luma colocalizados está dentro da ARA de luma colocalizado com o primeira ARA de chroma. Se esta condição for falsa, LDCRS é desativada (etapa 602). Se esta condição for verdadeira, a LDCRS é ativada (etapa 603).
[0123] A Figura 16 mostra o mesmo particionamento da Figura 14. LDCRS está ativada, porque mesmo se o bloco de chroma cobrir dois ARAs de chroma (a primeira e a segunda ARAs de chroma), alguns de seus blocos de luma colocalizados (blocos 1 e 2) estão dentro da ARA de luma colocalizada com a primeira ARA de chroma do bloco de chroma.
[0124] Em uma variante da modalidade atual, no caso em que LDCRS é habilitada e ativada para o bloco de chroma, o fator de escala usado para escalar chroma residual é derivado apenas das amostras de luma pertencentes aos blocos de luma ativados colocalizados. Todas as amostras de chroma usam o mesmo fator de escala derivado de apenas uma parte das amostras de luma colocalizadas.
[0125] Por exemplo, considerando o caso da Figura 16, a média das amostras de luma dos blocos de luma coloc 1 e 2 é calculada. Este valor médio de luma é usado para identificar o fator de escala a ser aplicado a todo o resíduo do bloco de chroma. Assim, as amostras de luma do bloco de luma 3 não são utilizadas. Modalidade 5: sinalização de fator de escala para blocos de chroma para os quais LDCRS está desativada
[0126] Em uma modalidade, no caso em que um bloco de chroma se beneficia da escala residual de chroma à base de luma, o fator de escala de chroma é sinalizado no fluxo de bits. Se o bloco de chroma for feito de várias unidades de transformada, o fator de escala de chroma se aplica ao residual de cada TU.
[0127] Um diagrama de blocos simplificado do processo é mostrado na Figura
17. A etapa 700 verifica se a LDCRS está ativada para o bloco de chroma considerado. Se esta condição for falsa, o fator de escala ou índice de fator de escala é codificado / decodificado (etapa 701). Se esta condição for verdadeira, o fator de escala ou índice de fator de escala é derivado dos blocos de luma colocalizados (etapa 702).
[0128] Em uma modalidade, o índice do fator de escala de chroma é sinalizado. Em uma modalidade, o fator de escala, ou o índice do fator de escala, é previsto a partir do fator de escala, ou índice do fator de escala, de um ou vários blocos de chroma vizinhos previamente codificados / decodificados. Por exemplo, conforme ilustrado na Figura 18, o fator de escala, ou índice de fator de escala, do bloco de chroma contendo o bloco A, então B se o bloco A não estiver disponível, então C se o bloco A e o bloco B não estiverem disponíveis, então o bloco D se o bloco A e o bloco B e o bloco C não estiverem disponíveis, é usado como preditor. Caso contrário, o fator de escala ou índice do fator de escala não é previsto.
[0129] Em uma variante, o fator de escala é inferido por um processo de predição, usando os blocos de chroma vizinhos já processados. Nenhuma sinalização adicional é usada e apenas o valor de escala inferido é usado para o bloco de chroma considerado. Modalidade 6: sinalização delta QP para blocos de chroma onde LDCRS está desativada
[0130] Em uma modalidade, no caso em que um bloco de chroma se beneficia da escala residual de chroma à base de luma, um parâmetro delta QP sinalizado no fluxo de bits pode ser usado para este bloco de chroma. Se o bloco de chroma for feito de várias unidades de transformada, o parâmetro delta QP se aplica ao residual para cada TU.
[0131] Em uma modalidade, o parâmetro delta QP é sinalizado para o bloco de chroma.
[0132] Em uma modalidade, o parâmetro delta QP é sinalizado para o Grupo de Quantização que contém o bloco de chroma.
[0133] Em uma modalidade, o parâmetro delta QP é sinalizado para a CTU que contém o bloco de chroma.
[0134] Em uma modalidade, o parâmetro QP de chroma é previsto com base no valor de QP ou fator de escala de um ou vários blocos de chroma vizinhos previamente codificados / decodificados. Por exemplo, conforme ilustrado na Figura 18, o valor QP ou fator de escala do bloco de chroma contendo o bloco A, então o bloco B se o bloco A não estiver disponível, então o bloco C se o bloco A e o bloco B não estiverem disponíveis, então bloco D se bloco A e bloco B e bloco C não estiverem disponíveis, é usado como preditor.
[0135] No caso em que o preditor é um fator de escala sc, este fator de escala usado para prever o QP de chroma é primeiro convertido em um valor semelhante a QP, anotado QPpred, usando a seguinte equação: QPpred = - 6 * Log2 (Sc) onde Log2 é a função logarítmica de base 2.
[0136] No caso em que o preditor é um valor QP, esse valor QP é usado como preditor QPpred.
[0137] Em uma variante, o valor de QP é inferido por um processo de predição, usando os blocos de chroma vizinhos já processados. Nenhuma sinalização adicional é usada e apenas o valor QP inferido é usado para o bloco de chroma considerado. Modalidade 7: Extensão para outros modos de codificação de chroma dependentes de luma
[0138] As modalidades divulgadas em relação à escala residual de chroma à base de luma podem ser usadas com outros modos de codificação de chroma dependente de luma ou, mais geralmente, para ferramentas de codificação envolvendo uma dependência de componente cruzado, por exemplo, a intrapredição chroma-de-luma (também conhecido como modo CCLM ou LM, e sua variante Modelo Linear de Múltipla Direção, conhecido como MDLM).
[0139] Em uma modalidade adicional, no caso de um bloco de luma com dimensões WL e HL maiores do que WmaxL e HmaxL, o CCLM pode ser ativado apenas no caso em que o bloco de luma é dividido em unidades de transformada de dimensões máximas WmaxL e HmaxL.
[0140] Da mesma forma, no caso de um bloco de luma com dimensões WL e HL maiores que WmaxL e HmaxL, a escala residual de chroma pode ser habilitada apenas se o bloco de luma for dividido em Unidades de transformada de dimensões máximas WmaxL e HmaxL.
[0141] Em uma modalidade adicional, no caso de um bloco de luma com dimensões WL e HL maiores do que WmaxL e HmaxL, então o bloco de luma é sistematicamente dividido em unidades de transformada de tamanho máximo WmaxL e HmaxL. Desta forma, os modos de escala residual de chroma e/ou CCLM podem ser usados no componente chroma sem sofrer o atraso estrutural implícito pela necessidade de disponibilidade do bloco de luma colocalizado reconstruído para processar os blocos de chroma.
[0142] Em uma variante adicional, no caso de um bloco de chroma com dimensões Wc e Hc maiores do que WmaxC e HmaxC, o bloco de chroma é sistematicamente dividido em unidades de transformada de tamanho máximo WmaxC e HmaxC. Dessa forma, os modos de escala residual de chroma e/ou CCLM podem ser usados no componente chroma, independentemente do tamanho da unidade de codificação de chroma.
[0143] A divisão do bloco de luma em 2 TUs (lado esquerdo) ou 4 TUs (lado direito) é ilustrada nos exemplos da Figura 19.
[0144] Em uma variante, portanto, se o bloco de chroma tiver dimensões Wc e Hc maiores do que WmaxC e HmaxC, o CCLM pode ser ativado apenas se o bloco de chroma for dividido em Unidades de transformada de dimensões máximas WmaxC e HmaxC.
[0145] Da mesma forma, se o bloco de chroma tiver dimensões Wc e Hc maiores que WmaxC e HmaxC, a escala residual de chroma pode ser ativada apenas se o bloco de chroma for dividido em Unidades de transformada de dimensões máximas WmaxC e HmaxC. Modalidade 8: desativação da árvore luma / chroma separada para CTUs usando a disponibilidade de amostras de referência para CCLM
[0146] O modo CCLM usa amostras de luma e chroma de referência para determinar os parâmetros usados para prever as amostras de bloco de chroma de suas amostras de luma colocalizadas. As amostras de luma e chroma de referência são normalmente localizadas: • na (s) linha (s) superior (es) vizinha (s) ao bloco de chroma / luma colocalizado, • na (s) coluna (s) esquerda (s) vizinha (s) ao bloco de chroma / luma colocalizado, • possivelmente no (s) local (is) superior (es) vizinho (s) ao bloco de chroma / luma colocalizado. As combinações desses três locais podem ser usadas dependendo do modo CCLM considerado.
[0147] Em uma modalidade, as amostras de referência de chroma usadas para o modo CCLM são consideradas como disponíveis se pertencerem a blocos de chroma incluídos nas ARAs de chroma vizinhos superior / esquerda / direita da ARA de chroma que compreende o bloco de chroma em consideração (Figura 20). Se as amostras de referência de chroma não estiverem incluídas nas ARAs de chroma vizinhos superior / esquerda / direita, elas serão consideradas indisponíveis.
[0148] A Figura 21 ilustra um caso em que as amostras de chroma de referência superior (no retângulo hachurado diagonal acima do bloco de chroma) usadas para o bloco de chroma pertencem a diferentes blocos de luma (Blocos 1, 3 e 4) e alguns desses blocos de luma (Blocos 3 e 4) não estão dentro da ARA de Chroma superior vizinha. De acordo com a modalidade, apenas as amostras de referência pertencentes ao Bloco 1 são consideradas como disponíveis. As outras amostras de referência do Bloco 3 e Bloco 4 não estão disponíveis para o modo CCLM.
[0149] Em uma variante, o modo CCLM é desativado se uma determinada proporção (por exemplo, 30%) das amostras de referência de chroma usadas para predição de CCLM não estiverem incluídas nas ARAs de chroma superior / esquerda / direita vizinhas.
[0150] Na Figura 21, o número de amostras de referência disponíveis é igual a 25% do número total de amostras de referência. Assim, o CCLM seria desativado.
[0151] Em uma variante, o modo CCLM é desativado assim que pelo menos uma amostra de referência de chroma usada para predição de CCLM não for incluída nas ARAs de chroma superior / esquerda / direita vizinhas.
[0152] Referindo-se à figura 21, como pelo menos uma amostra de referência não está disponível nesta ilustração, o CCLM seria desativado.
[0153] Da mesma forma, para as amostras de referência de luma usadas para CCLM, a seguinte modalidade é proposta. As amostras de referência de luma usadas para o modo CCLM são consideradas como disponíveis se pertencerem a blocos de luma incluídos na ARA de luma colocalizadas com as ARAs de chroma vizinhas na parte superior / esquerda / direita da ARA de chroma que compreende o bloco de chroma sob consideração (Figura 20). Se as amostras de referência de luma não forem incluídas nas ARAs de luma superior / esquerda / direita vizinhos colocalizadas com as ARAs de chroma superior / esquerda / direita vizinhas, elas serão consideradas indisponíveis.
[0154] Em uma variante, o modo CCLM é desativado se uma determinada proporção (por exemplo, 30%) das amostras de referência de luma não forem incluídas nas ARAs de luma superior / esquerdo / direito adjacentes vizinhas colocalizadas com as ARAs de chroma superior / esquerda / direita superior vizinhas.
[0155] Em uma variante, o modo CCLM é desativado se pelo menos uma amostra de referência luma não estiver incluída nas ARAs de luma superior / esquerda / direita vizinhas colocalizadas com as ARAs de chroma superior / esquerda / direita superior vizinhas. Modalidade 9: desativação de árvore luma / chroma separada para CTUs usando CCLM
[0156] Em uma modalidade, no caso em que pelo menos um bloco de chroma dentro da CTU usa CCLM (ou LDCRS), a árvore luma / chroma separada é desativada e a partição de chroma para a CTU é deduzida da partição de luma.
[0157] Em uma variante, um sinalizador é sinalizado no nível da CTU para indicar se o CCLM (ou LDCRS) é usado na CTU ou não.
[0158] O conceito pode ser generalizado para tipos de bloco diferentes de CTUs (por exemplo Unidade de processamento de decodificação de vídeo, também conhecida como VDPU). Modalidade 10: escala residual de chroma com base em amostras vizinhas de bloco de luma colocalizadas com o canto superior esquerdo do bloco de chroma
[0159] Em outra modalidade, o problema de latência de hardware potencial é ainda mais reduzido determinando um fator de escala a ser usado na escala residual de chroma de um bloco de chroma a partir da previsão ou amostras de luma reconstruídas já processadas na vizinhança do bloco de luma colocalizado com uma dada posição no bloco de chroma. Essas amostras são chamadas a seguir “amostras de luma vizinhas”.
[0160] A Figura 22 representa um fluxograma do método para determinar um fator de escala a ser usado na escala residual de chroma de um bloco de chroma.
[0161] Na etapa 800, a posição na imagem de uma determinada posição da amostra no bloco de chroma é identificada. Na etapa 801, o bloco de luma compreendendo a amostra de luma colocalizada com a posição no bloco de chroma é identificado. Na etapa 802, as amostras de luma já processadas vizinhas ao bloco de luma são identificadas. Na etapa 803, um valor de luma é determinado a partir dessas amostras de luma vizinhas identificadas, por exemplo, o valor médio das amostras de luma vizinhas identificadas. Na etapa 804, um fator de escala para o bloco de chroma é determinado com base no valor de luma. Na etapa 805, o resíduo do bloco de chroma é dimensionado usando o fator de escalonamento.
[0162] Em uma modalidade, a posição da amostra dada no bloco de chroma é o canto superior esquerdo do bloco de chroma. Isso é ilustrado na figura 23A. O bloco de chroma (retangular) é indicado em linhas em negrito. O bloco de luma colocalizado (quadrado) na amostra superior esquerda do bloco de chroma está em uma linha fina. Suas amostras vizinhas são indicadas na cor cinza. Em uma variante, a posição dada da amostra no bloco de chroma é o centro do bloco de chroma.
[0163] Em uma modalidade, apenas uma amostra de luma vizinha é usada e corresponde à amostra superior ou esquerda da amostra superior esquerda do bloco de luma colocalizado. Isso é ilustrado na figura 23B. Em uma variante, as amostras superior e esquerda são usadas.
[0164] Em outra modalidade, as amostras de luma vizinhas são feitas da linha superior vizinha de tamanho WL e da linha de coluna esquerda vizinha de tamanho HL, WL e HL sendo as dimensões horizontal e vertical do bloco de luma. Isso é ilustrado na figura 23C.
[0165] Em outra modalidade, as amostras de luma vizinhas são feitas da linha superior vizinha de tamanho minS e da linha de coluna esquerda vizinha de tamanho minS, onde minS é o valor mínimo entre WL e HL.
[0166] Em outra modalidade, as amostras de luma vizinhas são feitas da linha superior vizinha de tamanho Wc*2 e da linha de coluna esquerda vizinha de tamanho Hc*2, Wc e Hc sendo as dimensões horizontal e vertical do bloco de chroma e considerando que o formato de chroma é 4: 2: 0.
[0167] Em outra modalidade, as amostras de luma vizinhas são feitas da linha superior vizinha de tamanho minSC * 2 e da linha de coluna esquerda vizinha de tamanho minSC * 2, onde minSC é o valor mínimo entre Wc e Hc.
[0168] Em uma variante, a linha superior vizinha de tamanho minSC * 2 começa na mesma posição horizontal relativa que o canto superior esquerdo do chroma, e a linha da coluna esquerda vizinha de tamanho minSC * 2 começa na mesma posição vertical relativa que o topo do chroma - canto esquerdo, conforme ilustrado na figura 23D. Por exemplo, se o canto superior esquerdo do bloco de chroma estiver no local (xc, yc) na imagem de chroma e o formato de chroma for 4: 2: 0, a primeira amostra na linha superior das amostras de luma vizinhas está em localização horizontal 2 * xc, e a primeira amostra na coluna esquerda das amostras de luma vizinhas está na localização vertical 2 * yc.
[0169] De acordo com uma outra variante, as amostras vizinhas usadas para determinar o fator de escala a ser aplicado no bloco de chroma atual residual são feitas de uma ou mais amostras de luma reconstruídas que pertencem à linha de fundo e/ou a coluna direita de amostras de luma que pertencem respectivamente às ARAs superior e esquerda vizinhas da ARA que contém o bloco de chroma atual.
[0170] Em outra modalidade, se uma determinada proporção das amostras de luma vizinhas não estiver disponível, a escala residual do bloco de chroma não é aplicada.
[0171] Em outra modalidade, uma amostra de luma vizinha é considerada não disponível se não estiver na mesma CTU que o bloco de chroma.
[0172] Em outra modalidade, uma amostra de luma vizinha é considerada como não disponível se não estiver na mesma VDPU que o bloco de chroma.
[0173] Em outra modalidade, uma amostra de luma vizinha é considerada não disponível se não estiver no mesma ARA de luma colocalizada com a primeira ARA de bloco de chroma.
[0174] Em outra modalidade, se uma dada proporção das amostras de chroma em uma vizinhança considerada não estiver disponível, a escala residual do bloco de chroma não é aplicada. Isso pode acontecer no caso em que os blocos de chroma vizinhos ainda não estão disponíveis em seu estado reconstruído, no momento em que o bloco de chroma atual está sendo processado.
[0175] Em uma modalidade, as amostras de luma vizinhas usadas para derivar o fator de escalonamento residual de chroma são as amostras usadas para prever o bloco de luma colocalizado (também muitas vezes conhecido como amostras de referência intrapredição). No caso de árvore dupla, para cada área dada (por exemplo, VDPU), é comum processar primeiro os blocos de luma da área dada e, em seguida, processar os blocos de chroma da área dada. Quando a modalidade atual se aplica, isso significa que seria necessário armazenar para cada bloco de luma da área dada suas amostras de luma vizinhas, o que requer armazenamento de memória adicional e torna o processo complicado, pois o número de amostras de referência varia dependendo do tamanho do bloco. A fim de reduzir esses impactos negativos, em uma modalidade, apenas o valor de luma derivado na etapa 803 das amostras de luma vizinhas é armazenado para cada bloco de luma. Em outra modalidade, apenas o fator de escalonamento derivado na etapa 804 do valor luma derivado na etapa 803 das amostras vizinhas de luma é armazenado para cada bloco de luma. Isso limita o armazenamento a um único valor por bloco de luma. Este princípio pode ser estendido a outros modos além da LMCS, por exemplo CCLM, onde em vez de armazenar as amostras de luma e chroma de cada bloco, apenas os valores mínimo e máximo das amostras de luma e chroma usados para derivar os parâmetros CCLM do bloco são armazenados.
[0176] O conceito de modalidade 10 pode ser generalizado para o modo CCLM. Neste caso, a modalidade atual consiste em determinar os parâmetros lineares CCLM a serem usados para a predição do bloco de chroma a partir da predição ou amostras de luma reconstruídas (amostras de luma vizinhas) e a predição ou amostras de chroma reconstruídas (amostras de chroma vizinhas) já processadas na vizinhança do bloco de luma colocalizado com uma determinada posição no bloco de chroma. As Figuras 23A a 23D ilustram este conceito. As áreas do retângulo preenchidas em cinza correspondem às amostras vizinhas (luma e chroma) do bloco de luma colocado com a amostra superior esquerda do bloco de chroma atual, que são potencialmente usadas para a derivação dos parâmetros CCLM.
[0177] De acordo com uma variante, as amostras vizinhas de luma e/ou chroma usadas para determinar o modelo linear a ser usado para realizar a previsão de CCLM de um bloco de chroma atual são feitas de pelo menos uma amostra de luma e/ou de chroma reconstruída ou prevista que pertencem à linha de fundo e/ou a coluna da direita de amostras de luma e/ou chroma, que respectivamente pertencem às ARAs de chroma e/ou de luma esquerda e/ou superior vizinhas da ARA que contém o bloco de chroma atual. O conceito pode ser estendido às linhas de fundo das ARAs de chroma e/ou de luma superior direita vizinhas da ARA que contém o bloco de chroma atual e às colunas da direita das ARAs de chroma e/ou de luma inferior esquerda vizinhas da ARA que contém o bloco de chroma atual. O conceito pode ser estendido às linhas de fundo das ARAs de chroma e/ou de luma superior direita vizinhas da ARA que contém o bloco de chroma atual e às colunas da direita das ARAs de chroma e/ou de luma inferior esquerda vizinhas da ARA que contém o bloco de chroma atual. Modalidade 11: Verificação da disponibilidade da amostra de Luma com base em sua localização em relação ao bloco de chroma
[0178] Em outra modalidade, se a distância entre uma amostra de luma vizinha na posição (xL, yL) e a posição da amostra superior esquerda do bloco de chroma considerado (xC, yC) for maior do que um determinado valor, a amostra de luma vizinha é considerada como não disponível. Em outras palavras, uma amostra de luma vizinha é considerada não disponível se a seguinte condição for verdadeira: ((xC * 2) - xL)> TH ou ((yC * 2) - yL)> TV Ou equivalente (xC - (xL / 2))> TH / 2 ou (yC - (yL / 2))> TV / 2 onde TH e TV são valores predefinidos ou sinalizados no fluxo de bits. Normalmente, TH = TC = 16. Em uma variante, TH e TC dependem da resolução da imagem. Por exemplo, TH e TH são definidos de acordo com as seguintes condições: - Se a resolução da imagem for menor ou igual a amostras de luma de 832x480, TH = TC = 8, - Caso contrário, se a resolução da imagem for inferior ou igual a amostras de luma de 1920x1080, TH = TC = 16, - Caso contrário, TH = TC = 32.
[0179] As Figuras 24A e 24B ilustram exemplos de distâncias entre a amostra de luma superior esquerda vizinha e as amostras de chroma vizinhas (em escala de 2 no caso do formato de chroma 4: 2: 0). A Figura 24A ilustra uma distância entre a amostra de chroma superior esquerda e a amostra de chroma adjacente superior esquerda do bloco de luma colocado. A Figura 24B ilustra uma distância entre a amostra de chroma superior esquerda e a linha superior ou coluna esquerda.
[0180] Em uma variante, em vez de desativar estritamente as amostras muito distantes da amostra de chroma superior esquerda, uma ponderação dependente da distância entre a amostra de chroma vizinha e a amostra de chroma superior esquerda é aplicada à amostra de referência considerada.
[0181] Em uma variante, em vez de desativar estritamente as amostras muito distantes da amostra de chroma superior esquerda, uma ponderação dependente da distância entre a amostra de chroma vizinha e a amostra de chroma superior esquerda é aplicada à amostra de referência considerada. Modalidade 12: Verificação da disponibilidade da amostra de Luma com base no valor de suas amostras de chroma colocadas em relação ao valor das amostras de chroma do bloco atual
[0182] Em outra modalidade, a disponibilidade de uma amostra vizinha de luma vizinho é baseada nos valores de suas amostras de chroma Cb e Cr colocadas, vizinhoCb, vizinhoCr e das amostras de chroma de previsão Cb e Cr do bloco de chroma atual. Por exemplo, se as seguintes condições forem verdadeiras, o vizinho da amostra de luma é considerado não disponível: - Se Abs (topLeftCb - neighbourCb)> Th_Ch ou Abs (topLeftCr - neighbourCr)> Th_Ch onde Th_Ch é um valor predefinido ou sinalizado no fluxo de bits e Abs é a função de valor absoluto. Th_Ch pode depender da profundidade de bits das amostras de chroma. Normalmente, Th_Ch = 64 para conteúdo de 10 bits, 32 para conteúdo de 8 bits.
[0183] Em uma variante, a escala residual de chroma é aplicada apenas se os valores médios de Cb e Cr avgNeighCb, avgNeighCr de amostras de chroma colocadas com as amostras de luma vizinhas não estiverem muito longe dos valores médios de Cb e Cr avgCurrCb, avgCurrCr de amostras de chroma do bloco de chroma atual.
[0184] Por exemplo, se as seguintes condições forem verdadeiras, a amostra de luma vizinha é considerada como não disponível:
- Se Abs (avgCurrCb - avgNeighCb)> Th_Ch ou Abs (avgCurrCr - avgNeighCr)> Th_Ch
[0185] Em uma variante, em vez de desativar estritamente amostras muito diferentes da amostra de chroma superior esquerda, uma ponderação dependente da diferença entre a amostra de chroma vizinha e a amostra de chroma superior esquerda é aplicada à amostra de referência considerada.
[0186] Em uma variante, em vez de desativar estritamente amostras muito diferentes da amostra de chroma superior esquerda, uma ponderação dependente da diferença entre a amostra de chroma vizinha e a amostra de chroma superior esquerda é aplicada à amostra de referência considerada.
[0187] A Figura 25 representa um fluxograma do método para verificar a disponibilidade da amostra de luma com base em suas amostras de chroma colocadas e nas amostras de chroma do bloco atual. As etapas 800 a 802 são semelhantes às etapas correspondentes da Figura 22. A etapa 900 é inserida após a etapa 802 para identificar as amostras de chroma vizinhas colocadas com as amostras de luma vizinhas. Na etapa 901, a similaridade das amostras de chroma vizinhas e das amostras de chroma do bloco atual é verificada. Se as amostras de chroma forem semelhantes, a escala residual de chroma é ativada para o bloco de chroma atual (903). Se as amostras forem consideradas não semelhantes, a escala residual de chroma é desativada para o bloco de chroma atual (902). Modalidade 12a: disponibilidade de amostras de referência para MDLM
[0188] O modo MDLM é uma variante do modo CCLM que usa as amostras de luma e chroma superiores vizinhas (MDLM superior) ou as amostras de luma e chroma esquerda vizinhas (MDLM esquerda) como amostras de referência para derivar os parâmetros lineares para a previsão de amostras de chroma de amostras de luma.
[0189] Em pelo menos uma modalidade, quando o processo de divisão leva a um particionamento de uma VDPU de luma compreendendo 2 blocos quadrados superiores de meia largura / altura da largura / altura de VDPU, ou a um particionamento de uma VDPU de chroma compreendendo 2 blocos quadrados superiores de meia largura / altura da VDPU de largura / altura de VDPU de chroma, as amostras de referência para MDLM à esquerda do segundo bloco quadrado (anotado "2" na figura 25A) são apenas as amostras vizinhas à borda esquerda do bloco 2. As amostras abaixo daquelas amostras de referência são consideradas como não disponíveis. Isso limita vantajosamente a latência para o bloco de processamento 2, uma vez que os blocos abaixo do bloco 2 não são necessários para derivar os parâmetros MDLM.
[0190] Esta modalidade também pode ser generalizada para o caso em que o luma ou bloco de chroma 1 da figura 25A é dividido em partições menores. Modalidade 13: sinalizador de baixo nível para ativar ou desativar a escala residual de chroma
[0191] Em outra modalidade, um sinalizador de baixo nível é inserido na sintaxe de fluxo de bits para ativar ou desativar a ferramenta de escalonamento residual de chroma em um nível inferior do que uma fatia ou grupo de blocos. Esta modalidade pode ser aplicada apenas no caso de uma árvore de partição luma / chroma separada. Pode ser estendido também para o caso em que a árvore de partição luma / chroma separada não é usada.
[0192] A tabela a seguir mostra um exemplo de mudança de sintaxe (destacada em cinza), em comparação com a especificação VTM do documento JVET-N0220. Nesta tabela, a sinalização é feita no nível de CTU, e a sinalização é feita apenas em caso de árvore de partição luma / chroma (identificada pelo elemento de sintaxe qtbtt_dual_tree_intra_flag). coding_tree_unit( ) { Descrito r xCtb = ( CtbAddrInRs % PicWidthInCtbsY ) << CtbLog2SizeY yCtb = ( CtbAddrInRs / PicWidthInCtbsY ) << CtbLog2SizeY Se ( tile_group_sao_luma_flag | | tile_group_sao_chroma_flag )
sao( xCtb >> CtbLog2SizeY, yCtb >> CtbLog2SizeY ) Se ( tile_group_alf_enabled_flag ){ alf_ctb_flag[ 0 ][ xCtb >> Log2CtbSize ][ yCtb >> Log2CtbSize ] ae(v) Se ( alf_chroma_idc = = 1 | | alf_chroma_idc = = 3 ) alf_ctb_flag[ 1 ][ xCtb >> Log2CtbSize ][ yCtb >> Log2CtbSize ] ae(v) Se ( alf_chroma_idc = = 2 | | alf_chroma_idc = = 3 ) alf_ctb_flag[ 2 ][ xCtb >> Log2CtbSize ][ yCtb >> Log2CtbSize ] ae(v) } Se ( qtbtt_dual_tree_intra_flag && tile_group_chroma_residual_scale_flag ) ctu_chroma_residual_scale_flag Se ( tile_group_type = = I && qtbtt_dual_tree_intra_flag ) dual_tree_implicit_qt_split ( xCtb, yCtb, CtbSizeY, 0 ) Senão coding_tree( xCtb, yCtb, CtbSizeY, CtbSizeY, 1, 0, 0, 0, 0, 0, SINGLE_TREE ) }
[0193] A tabela a seguir mostra outro exemplo de mudança de sintaxe (destacado em cinza), em comparação com a especificação VTM do documento JVET-N0220. Nesta tabela, a sinalização é feita no nível CTU, e a sinalização é feita independentemente da árvore de partição luma / chroma usada ou não. coding_tree_unit( ) { Descrito r xCtb = ( CtbAddrInRs % PicWidthInCtbsY ) << CtbLog2SizeY yCtb = ( CtbAddrInRs / PicWidthInCtbsY ) << CtbLog2SizeY Se f( tile_group_sao_luma_flag | | tile_group_sao_chroma_flag ) sao( xCtb >> CtbLog2SizeY, yCtb >> CtbLog2SizeY ) Se ( tile_group_alf_enabled_flag ){ alf_ctb_flag[ 0 ][ xCtb >> Log2CtbSize ][ yCtb >> Log2CtbSize ] ae(v) Se ( alf_chroma_idc = = 1 | | alf_chroma_idc = = 3 ) alf_ctb_flag[ 1 ][ xCtb >> Log2CtbSize ][ yCtb >> Log2CtbSize ] ae(v) Se ( alf_chroma_idc = = 2 | | alf_chroma_idc = = 3 ) alf_ctb_flag[ 2 ][ xCtb >> Log2CtbSize ][ yCtb >> Log2CtbSize ] ae(v) } Se ( tile_group_chroma_residual_scale_flag ) ctu_chroma_residual_scale_flag Se ( tile_group_type = = I && qtbtt_dual_tree_intra_flag ) dual_tree_implicit_qt_split ( xCtb, yCtb, CtbSizeY, 0 ) Senão coding_tree( xCtb, yCtb, CtbSizeY, CtbSizeY, 1, 0, 0, 0, 0, 0, SINGLE_TREE ) }
[0194] De acordo com essas variantes, a ativação na CTU da escala residual de chroma é condicionada pelo valor do sinalizador ctu_chroma_residual_scale_flag. Exemplo de adaptação de sintaxe de especificação de acordo com a modalidade 2
[0195] Exemplo de alterações de sintaxe na especificação de rascunho VVC atual (ver Benjamin Bross et al. "Versatile Video Coding (Draft 4)", JVET 13th Meeting: Marrakech, MA, 9-18 jan. 2019, JVET-M1001-v7) de acordo com as modalidades 2 são providas abaixo. As alterações em comparação com JVET-M1001 são destacadas em cinza.
8.4.3 Processo de derivação para o modo de intrapredição de chroma
[0196] As entradas para este processo são: - uma localização luma (xCb, yCb) especificando a amostra superior esquerda do bloco de codificação de chroma atual em relação à amostra de luma superior esquerda da imagem atual, - uma variável cbWidth especificando a largura do bloco de codificação atual em amostras de luma, - uma variável cbHeight especificando a altura do bloco de codificação atual em amostras de luma.
[0197] Neste processo, o modo de intrapredição de chroma IntraPredModeC [xCb] [yCb] é derivado. - Uma variável lmEnabled é definida igual a sps_cclm_enabled_flag. - Quando as seguintes condições forem verdadeiras, lmEnabled é derivado chamando o processo de verificação do modo de intrapredição de chroma de componente cruzado. - lmEnabled é igual a 1, - tile_group_type é igual a 2 (grupo de blocos I), - qtbtt_dual_tree_intra_flag é igual a 1.
[0198] O modo de intrapredição de chroma IntraPredModeC [xCb] [yCb] é derivado usando intra_chroma_pred_mode [xCb] [yCb] e IntraPredModeY [xCb + cbWidth / 2] [yCb + cbHeight / 2] conforme especificado na Tabela 8-2 e Tabela 8-3. Tabela 8-2 - Especificação de IntraPredModeC [xCb] [yCb] dependendo de intra_chroma_pred_mode [xCb] [yCb] e IntraPredModeY [xCb + cbWidth / 2] [yCb + cbHeight / 2] quando lmEnabled for igual a 0 IntraPredModeY[ xCb + cbWidth / 2 ][ yCb + cbH intra_chroma_pred_mode[ xCb eight / 2 ] ][ yCb ] 0 50 18 1 X ( 0 <= X <= 66 ) 0 66 0 0 0 0 1 50 66 50 50 50 2 18 18 66 18 18 3 1 1 1 66 1 4 0 50 18 1 X Tabela 8-3 - Especificação de IntraPredModeC [xCb] [yCb] dependendo de intra_chroma_pred_mode [xCb] [yCb] e IntraPredModeY [xCb + cbWidth / 2] [yCb + cbHeight / 2] quando lmEnabled for igual a 1 IntraPredModeY[ xCb + cbWidth / 2 ][ yCb + cbH intra_chroma_pred_mode[ xCb eight / 2 ] ][ yCb ] 0 50 18 1 X ( 0 <= X <= 66 ) 0 66 0 0 0 0 1 50 66 50 50 50 2 18 18 66 18 18 3 1 1 1 66 1 4 81 81 81 81 81 5 82 82 82 82 82 6 83 83 83 83 83 7 0 50 18 1 X Processo de verificação do modo de intrapredição de chroma de componente cruzado
[0199] As entradas para este processo são: - uma localização luma (xCb, yCb) especificando a amostra superior esquerda do bloco de codificação de chroma atual em relação à amostra de luma superior esquerda da imagem atual, - uma variável cbWidth especificando a largura do bloco de codificação atual em amostras de luma,
- uma variável cbHeight especificando a altura do bloco de codificação atual em amostras de luma.
[0200] A saída para este processo é: - um sinalizador lmEnabled especificando se um modo de intrapredição de chroma de componente cruzado está ativado ou não para o bloco de codificação de chroma atual.
[0201] Nesse processo, lmEnabled é derivado da seguinte maneira. - Se ((16 + xCb) / 16) não for igual a ((16 + xCb + cbWidth - 1) / 16) ou ((16 + yCb) / 16) não for igual a ((16 + yCb + cbHeight - 1) / 16), cclmEnabled é definido igual a0 - Caso contrário, o seguinte se aplica. - Para i = 0, (cbHeight - 1) e j = 0 .. (cbWidth - 1), aplica-se o seguinte. - (xTL, yTL) é definido igual à localização da amostra superior esquerda em relação à amostra de luma superior esquerda da imagem atual do bloco de codificação luma colocado ColLumaBlock cobrindo a localização dada por ((xCb + j) << 1, (yCb + i) << 1)). - wColoc e hColoc são definidos igual à largura e altura de ColLumaBlock. - Se uma das seguintes condições for falsa, cclmEnabled é definido igual a 0 e o loop sobre i e j é interrompido. - ((32 + xTL) / 32) é igual a ((32 + xTL + wColoc - 1) / 32) - ((32 + yTL) / 32) é igual a ((32 + yTL + hColoc - 1) / 32) - Quando cclmEnabled for igual a 1, o seguinte se aplica para i = 1 .. (cbHeight - 2) e j = 0, (cbWidth - 1). - (xTL, yTL) é definido igual à localização da amostra superior esquerda em relação à amostra de luma superior esquerda da imagem atual do bloco de codificação luma colocado ColLumaBlock cobrindo a localização dada por ((xCb + j) << 1, (yCb + i) << 1)).
- wColoc e hColoc são definidos igual à largura e altura de ColLumaBlock. - Se uma das seguintes condições for falsa, cclmEnabled é definido igual a 0 e o loop sobre i e j é interrompido. - ((32 + xTL) / 32) é igual a ((32 + xTL + wColoc - 1) / 32) - ((32 + yTL) / 32) é igual a ((32 + yTL + hColoc - 1) / 32) Exemplo de adaptação de sintaxe de especificação de acordo com a modalidade 10
[0202] Exemplo de sintaxe para inclusão no projeto de especificação VVC atual (por exemplo, documento JVET-M1001) de acordo com a modalidade 10 são fornecidos abaixo. Reconstrução de imagem com processo de mapeamento para valor de amostra de chroma
[0203] As entradas para este processo são: - uma matriz (nCurrSwx2) x (nCurrShx2) mapeada predMapSamples especificando as amostras previstas de luma mapeadas do bloco atual, - quando tile_group_type for igual a 2 (grupo bloco I) e qtbtt_dual_tree_intra_flag for igual a 1, uma matriz recSamples especificando o luma reconstruído da imagem atual, - uma matriz predSamples (nCurrSw) x (nCurrSh) especificando as amostras previstas de chroma do bloco atual, - uma matriz resSamples (nCurrSw) x (nCurrSh) especificando as amostras residuais de chroma do bloco atual. - A matriz InputPivot [i] e ReshapePivot [i],] com i no intervalo de 0 a MaxBinIdx + 1, inclusive, derivado em 7.4.4.1. - A matriz InvScaleCoeff [i] e ChromaScaleCoef [i] com i no intervalo de 0 a MaxBinIdx, inclusive, derivado em 7.4.4.1.
[0204] A saída para este processo é recSamples da matriz de amostra de chroma reconstruída.
[0205] O recSamples é derivado da seguinte forma: - Se (!Tile_group_reshaper_chroma_residual_scale_flag || ((nCurrSw) x (nCurrSh) <= 4)) recSamples [xCurr + i] [yCurr + j] = Clipe1C (predSamples [i] [j] + resSamples [i] [j]) com i = 0..nCurrSw - 1, j = 0..nCurrSh - 1 - Caso contrário (tile_group_reshaper_chroma_residual_scale_flag && ((nCurrSw) x (nCurrSh)> 4)), o seguinte se aplica:
[0206] A variável varScale é derivada da seguinte forma: - invAvgLuma é derivado da seguinte forma: - Se tile_group_type for igual a 2 (grupo de bloco I) e qtbtt_dual_tree_intra_flag for igual a 1, o seguinte se aplica. - A localização de chroma (xCh, yCh) da amostra superior esquerda do bloco de chroma atual em relação à amostra de chroma superior esquerda da imagem atual é identificada. - A localização luma (xTL, yTL) é definida igual à localização da amostra superior esquerda do bloco de codificação luma colocado ColLumaBlock cobrindo a localização dada por (xCh << 1, yCh << 1) em relação à amostra de luma superior esquerda da imagem atual, e wColoc e hColoc são definidos como iguais à largura e altura de ColLumaBlock. - Se ((32 + yCh) / 32) for igual a ((64 + yTL - 1) / 64), invAvgLuma será definido igual a recSamples [yTL - 1] [xTL] - Caso contrário, se ((32 + xCh) / 32) for igual a ((64 + xTL - 1) / 64), invAvgLuma será definido igual a recSamples [yTL] [xTL - 1] - Caso contrário, invAvgLuma é definido igual a -1. - Caso contrário, aplica-se o seguinte:
invAvgLuma = Clip1Y ((ij predMapSamples [i] [j] + nCurrSw * nCurrSh * 2) / (nCurrSw * nCurrSh * 4)) - Se invAvgLuma não for igual a -1, o seguinte se aplica: - a variável idxYInv é derivada envolvendo a identificação do índice de função por peça conforme especificado na cláusula 8.5.6.2 com a entrada do valor de amostra invAvgLuma. - varScale é definido igual a ChromaScaleCoef [idxYInv] - Caso contrário, varScale é definido igual a (1 << shiftC)
[0207] O recSamples é derivado da seguinte forma: - Se tu_cbf_cIdx [xCurr] [yCurr] igual a 1, o seguinte se aplica: shiftC = 11 recSamples [xCurr + i] [yCurr + j] = ClipCidx1 (predSamples [i] [j] + Sign(resSamples [i] [j]) * ((Abs (resSamples [i] [j]) * varScale + (1 << (shiftC - 1))) >> shiftC)) com i = 0..nCurrSw - 1, j = 0..nCurrSh - 1 - Caso contrário (tu_cbf_cIdx [xCurr] [yCurr] igual a 0) recSamples [xCurr + i] [yCurr + j] = ClipCidx1 (predSamples [i] [j]) com i = 0..nCurrSw - 1, j = 0..nCurrSh - 1
[0208] Este pedido descreve uma variedade de aspectos, incluindo ferramentas, recursos, modalidades, modelos, abordagens, etc. Muitos desses aspectos são descritos com especificidade e, pelo menos para mostrar as características individuais, são frequentemente descritos de uma maneira que pode parecer limitante. No entanto, isso é para fins de clareza na descrição e não limita a aplicação ou o escopo desses aspectos. Na verdade, todos os diferentes aspectos podem ser combinados e trocados para prover outros aspectos. Além disso, os aspectos podem ser combinados e trocados com aspectos descritos em registros anteriores também.
[0209] Os aspectos descritos e contemplados neste pedido podem ser implementados de muitas formas diferentes. As Figuras 26, 27 e 28 abaixo fornecem algumas modalidades, mas outras modalidades são contempladas e a discussão das Figuras 26, 27 e 28 não limita a amplitude das implementações. Pelo menos um dos aspectos geralmente se refere à codificação e decodificação de vídeo e pelo menos um outro aspecto geralmente se refere à transmissão de um fluxo de bits gerado ou codificado. Estes e outros aspectos podem ser implementados como um método, um aparelho, um meio de armazenamento legível por computador tendo nele armazenado instruções para codificar ou decodificar dados de vídeo de acordo com qualquer um dos métodos descritos e/ou um meio de armazenamento legível por computador tendo armazenado nele um fluxo de bits gerado de acordo com qualquer um dos métodos descritos.
[0210] Vários métodos são descritos neste documento, e cada um dos métodos compreende uma ou mais etapas ou ações para alcançar o método descrito. A menos que uma ordem específica de etapas ou ações seja necessária para a operação adequada do método, a ordem e/ou o uso de etapas e/ou ações específicas podem ser modificados ou combinados.
[0211] Vários métodos e outros aspectos descritos neste pedido podem ser usados para modificar módulos, por exemplo, os módulos de particionamento e escalonamento de imagem (102, 151, 235 e 251) de um codificador de vídeo 100 e decodificador 200 como mostrado na Figura 26 e Figura 27. Além disso, os presentes aspectos não estão limitados a VVC ou HEVC, e podem ser aplicados, por exemplo, a outras normas e recomendações, sejam preexistentes ou desenvolvidas no futuro, e extensões de quaisquer dessas normas e recomendações (incluindo VVC e HEVC). A menos que indicado de outra forma, ou tecnicamente impedido, os aspectos descritos neste pedido podem ser usados individualmente ou em combinação.
[0212] Vários valores numéricos são usados no presente pedido, por exemplo,
Wmax, Hmax, WmaxC e HmaxC. Os valores específicos são para fins de exemplo e os aspectos descritos não se limitam a esses valores específicos.
[0213] A Figura 26 ilustra um codificador 100. Variações deste codificador 100 são contempladas, mas o codificador 100 é descrito abaixo para fins de clareza, sem descrever todas as variações esperadas.
[0214] Antes de ser codificada, a sequência de vídeo pode passar pelo processamento de pré-codificação (101), por exemplo, aplicando uma transformada de cor à imagem colorida de entrada (por exemplo, conversão de RGB 4: 4: 4 para YCbCr 4: 2: 0), ou realizar um remapeamento dos componentes da imagem de entrada para obter uma distribuição de sinal mais resiliente à compressão (por exemplo, usando uma equalização de histograma de um dos componentes de cor). Os metadados podem ser associados ao pré-processamento e anexados ao fluxo de bits.
[0215] No codificador 100, uma imagem é codificada pelos elementos codificadores conforme descrito abaixo. A imagem a ser codificada é particionada (102) e processada em unidades de, por exemplo, UCs. Cada unidade é codificada usando, por exemplo, um modo intra ou inter. Quando uma unidade é codificada em um modo intra, ela realiza intrapredição (160). Em um modo interno, a estimativa de movimento (175) e a compensação (170) são realizadas. O codificador decide (105) qual dos modos intra ou inter usar para codificar a unidade e indica a decisão intra / inter por, por exemplo, um sinalizador de modo de predição. O codificador pode realizar um mapeamento direto (191) aplicado a amostras de luma para obter o bloco de luma previsto. Para amostras de chroma, o mapeamento direto não se aplica. Predições residuais são calculadas, por exemplo, subtraindo (110) o bloco predito do bloco de imagem original. Para amostras de chroma, uma escala residual de chroma pode ser aplicada aos resíduos de chroma (111).
[0216] As predição residuais são então transformadas (125) e quantizadas
(130). Os coeficientes de transformada quantizados, bem como vetores de movimento e outros elementos de sintaxe, são codificados por entropia (145) para produzir um fluxo de bits. O codificador pode pular a transformada e aplicar a quantização diretamente ao sinal residual não transformado. O codificador pode ignorar tanto a transformada quanto a quantização, ou seja, o residual é codificado diretamente sem a aplicação dos processos de transformada ou quantização.
[0217] O codificador decodifica um bloco codificado para prover uma referência para outras previsões. Os coeficientes de transformada quantizados são desquantizados (140), transformados inversamente (150) para decodificar predição residual. O chroma residual é então processado pelo escalonamento inverso (151), que realiza o processo inverso do processo de escalonamento (111). Combinando (155) as predições residuais decodificadas e o bloco predito, um bloco de imagem é reconstruído. Para amostras de luma, um mapeamento inverso (190) pode ser aplicado, esta etapa sendo o inverso da etapa de mapeamento direto (191). Filtros in- loop (165) são aplicados à imagem reconstruída para realizar, por exemplo, desbloqueio / SAO (Sample Adaptive Offset), filtro Adaptive Loop-Filter (ALF) para reduzir artefatos de codificação. A imagem filtrada é armazenada em um buffer de imagem de referência (180).
[0218] A Figura 27 ilustra um diagrama de blocos de um decodificador de vídeo 200. No decodificador 200, um fluxo de bits é decodificado pelos elementos do decodificador conforme descrito abaixo. O decodificador de vídeo 200 geralmente executa uma passagem de decodificação recíproca para a passagem de codificação, conforme descrito na Figura 26. O codificador 100 também geralmente executa a decodificação de vídeo como parte da codificação de dados de vídeo.
[0219] Em particular, a entrada do decodificador inclui um fluxo de bits de vídeo, que pode ser gerado pelo codificador de vídeo 100. O fluxo de bits é primeiro decodificado por entropia (230) para obter coeficientes de transformada, vetores de movimento e outras informações codificadas. As informações da partição da imagem indicam como a imagem é particionada. O decodificador pode, portanto, dividir (235) a imagem de acordo com a informação de partição da imagem decodificada. Os coeficientes de transformada são desquantizados (240), transformados inversamente (250) para decodificar as predições residuais. Para amostras de chroma, os resíduos de chroma são processados por uma escala inversa (251), que é semelhante à escala inversa (151) do codificador. Combinando (255) as predições residuais decodificadas e o bloco predito, um bloco de imagem é reconstruído. O bloco predito pode ser obtido (270) a partir da intrapredição (260) ou predição compensada por movimento (isto é, predição inter) (275). O mapeamento direto (295) pode ser aplicado a amostras de luma após a predição. O mapeamento inverso (296), semelhante ao mapeamento inverso (190) do codificador, pode ser aplicado às amostras de luma reconstruídas. Em seguida, filtros in-loop (265) são aplicados à imagem reconstruída. A imagem filtrada é armazenada em um buffer de imagem de referência (280).
[0220] A imagem decodificada pode ainda passar por processamento pós- decodificação (285), por exemplo, uma transformada de cor inversa (por exemplo, conversão de YCbCr 4: 2: 0 para RGB 4:4:4) ou um remapeamento inverso realizando o inverso do processo de remapeamento realizado no processamento de pré- codificação (101). O processamento pós-decodificação pode usar metadados derivados no processamento de pré-codificação e sinalizados no fluxo de bits.
[0221] A Figura 28 ilustra um diagrama de blocos de um exemplo de um sistema no qual vários aspectos e modalidades são implementados. O sistema 1000 pode ser incorporado como um dispositivo incluindo os vários componentes descritos abaixo e é configurado para executar um ou mais dos aspectos descritos neste documento. Exemplos de tais dispositivos incluem, mas não estão limitados a, vários dispositivos eletrônicos, como computadores pessoais, laptops, smartphones, tablets, decodificadores de multimídia digital, receptores de televisão digital, sistemas de gravação de vídeo pessoal, eletrodomésticos conectados e servidores . Os elementos do sistema 1000, individualmente ou em combinação, podem ser incorporados em um único circuito integrado (IC), vários ICs e/ou componentes discretos. Por exemplo, em pelo menos uma modalidade, os elementos de processamento e codificador / decodificador do sistema 1000 são distribuídos em vários ICs e/ou componentes discretos. Em várias modalidades, o sistema 1000 é acoplado comunicativamente a um ou mais outros sistemas, ou outros dispositivos eletrônicos, por meio, por exemplo, de um barramento de comunicação ou por meio de portas de entrada e/ou saída dedicadas. Em várias modalidades, o sistema 1000 é configurado para implementar um ou mais dos aspectos descritos neste documento.
[0222] O sistema 1000 inclui pelo menos um processador 1010 configurado para executar instruções carregadas nele para implementar, por exemplo, os vários aspectos descritos neste documento. O processador 1010 pode incluir memória incorporada, interface de entrada e saída e vários outros circuitos, conforme conhecido na técnica. O sistema 1000 inclui pelo menos uma memória 1020 (por exemplo, um dispositivo de memória volátil e/ou um dispositivo de memória não volátil). O sistema 1000 inclui um dispositivo de armazenamento 1040, que pode incluir memória não volátil e/ou memória volátil, incluindo, mas não se limitando a, memória somente para leitura programável apagável eletricamente (EEPROM), memória somente para leitura (ROM), memória somente para leitura programável (PROM), memória de acesso aleatório (RAM), memória de acesso aleatório dinâmico (DRAM), memória de acesso aleatório estático (SRAM), flash, unidade de disco magnético e/ou unidade de disco óptico. O dispositivo de armazenamento 1040 pode incluir um dispositivo de armazenamento interno, um dispositivo de armazenamento anexado (incluindo dispositivos de armazenamento destacáveis e não destacáveis) e/ou um dispositivo de armazenamento acessível em rede, como exemplos não limitativos.
[0223] O sistema 1000 inclui um módulo codificador / decodificador 1030 configurado, por exemplo, para processar dados para fornecer um vídeo codificado ou decodificado, e o módulo codificador / decodificador 1030 pode incluir seu próprio processador e memória. O módulo codificador / decodificador 1030 representa módulo (s) que podem ser incluídos em um dispositivo para executar as funções de codificação e/ou decodificação. Como é conhecido, um dispositivo pode incluir um ou ambos os módulos de codificação e decodificação. Além disso, o módulo codificador / decodificador 1030 pode ser implementado como um elemento separado do sistema 1000 ou pode ser incorporado dentro do processador 1010 como uma combinação de hardware e software como conhecido pelos versados na técnica.
[0224] O código de programa a ser carregado no processador 1010 ou codificador / decodificador 1030 para realizar os vários aspectos descritos neste documento pode ser armazenado no dispositivo de armazenamento 1040 e subsequentemente carregado na memória 1020 para execução pelo processador
1010. De acordo com várias modalidades, um ou mais do processador 1010, memória 1020, dispositivo de armazenamento 1040 e módulo codificador / decodificador 1030 pode armazenar um ou mais de vários itens durante o desempenho dos processos descritos neste documento. Tais itens armazenados podem incluir, mas não estão limitados a, o vídeo de entrada, o vídeo decodificado ou porções do vídeo decodificado, o fluxo de bits, matrizes, variáveis e resultados intermediários ou finais do processamento de equações, fórmulas, operações e lógica.
[0225] Em algumas modalidades, a memória dentro do processador 1010 e/ou do módulo codificador / decodificador 1030 é usada para armazenar instruções e fornecer memória de trabalho para o processamento que é necessário durante a codificação ou decodificação. Em outras modalidades, no entanto, uma memória externa ao dispositivo de processamento (por exemplo, o dispositivo de processamento pode ser o processador 1010 ou o módulo codificador / decodificador
1030) é usado para uma ou mais dessas funções. A memória externa pode ser a memória 1020 e/ou o dispositivo de armazenamento 1040, por exemplo, uma memória dinâmica volátil e/ou uma memória flash não volátil. Em várias modalidades, uma memória flash externa não volátil é usada para armazenar o sistema operacional de, por exemplo, uma televisão. Em pelo menos uma modalidade, uma memória volátil dinâmica externa rápida, como uma RAM, é usada como memória de trabalho para operações de codificação e decodificação de vídeo, como para MPEG-2 (MPEG refere-se ao Moving Picture Experts Group (Grupo de Peritos em Imagem em Movimento), MPEG-2 também é referido como ISO / IEC 13818 e 13818-1 também é conhecido como H.222 e 13818-2 também é conhecido como H.262), HEVC (HEVC refere-se à codificação de vídeo de alta eficiência, também conhecido como H.265 e MPEG-H Parte 2), ou VVC (Versatile Video Coding (Codificação de Vídeo Versátil), um novo padrão sendo desenvolvido pela JVET, a Joint Video Experts Team (Equipe Conjunta de Peritos em Vídeo)).
[0226] A entrada para os elementos do sistema 1000 pode ser fornecida através de vários dispositivos de entrada, conforme indicado no bloco 1130. Tais dispositivos de entrada incluem, mas não estão limitados a, (i) uma porção de radiofrequência (RF) que recebe um sinal de RF transmitido, por exemplo, sem fio por uma emissora, (ii) um terminal de entrada Componente (COMP) (ou um conjunto de terminais de entrada COMP), (iii) um terminal de entrada de Barramento Universal Serial (USB) e/ou (iv) um terminal de entrada de Interface Multimídia de Alta Definição (HDMI). Outros exemplos, não mostrados na Figura 28, incluem vídeo composto.
[0227] Em várias modalidades, os dispositivos de entrada do bloco 1130 têm respectivos elementos de processamento de entrada associados, conforme conhecido na técnica. Por exemplo, a porção de RF pode ser associada a elementos adequados para (i) selecionar uma frequência desejada (também referida como selecionar um sinal ou limitar a banda de um sinal para uma banda de frequências),
(ii) converter para baixo o sinal selecionado, (iii) limitar a banda novamente para uma banda mais estreita de frequências para selecionar (por exemplo) uma banda de frequência de sinal que pode ser referida como um canal em certas modalidades, (iv) demodular o sinal convertido para baixo e limitado em banda, (v) realização de correção de erros e (vi) demultiplexação para selecionar o fluxo desejado de pacotes de dados. A porção de RF de várias modalidades inclui um ou mais elementos para executar essas funções, por exemplo, seletores de frequência, seletores de sinal, limitadores de banda, seletores de canal, filtros, conversores descendentes, demoduladores, corretores de erro e desmultiplexadores. A porção de RF pode incluir um sintonizador que realiza várias dessas funções, incluindo, por exemplo, a conversão descendente do sinal recebido para uma frequência mais baixa (por exemplo, uma frequência intermediária ou uma frequência de banda base próxima) ou para a banda base. Em uma modalidade de decodificador, a porção de RF e seu elemento de processamento de entrada associado recebem um sinal de RF transmitido através de um meio com fio (por exemplo, cabo) e realiza a seleção de frequência por filtragem, conversão descendente e filtragem novamente para uma banda de frequência desejada. Várias modalidades reorganizam a ordem dos elementos descritos acima (e outros), removem alguns desses elementos e/ou adicionam outros elementos que desempenham funções semelhantes ou diferentes. Adicionar elementos pode incluir inserir elementos entre os elementos existentes, como, por exemplo, inserir amplificadores e um conversor analógico para digital. Em várias modalidades, a porção de RF inclui uma antena.
[0228] Além disso, os terminais USB e/ou HDMI podem incluir respectivos processadores de interface para conectar o sistema 1000 a outros dispositivos eletrônicos através de conexões USB e/ou HDMI. Deve ser entendido que vários aspectos do processamento de entrada, por exemplo, correção de erro Reed- Solomon, podem ser implementados, por exemplo, dentro de um IC de processamento de entrada separado ou dentro do processador 1010, conforme necessário. Da mesma forma, os aspectos do processamento de interface USB ou HDMI podem ser implementados em ICs de interface separados ou dentro do processador 1010, conforme necessário. O fluxo desmodulado, corrigido de erro e demultiplexado é provido a vários elementos de processamento, incluindo, por exemplo, processador 1010 e codificador / decodificador 1030 operando em combinação com os elementos de memória e armazenamento para processar o fluxo de dados conforme necessário para apresentação em um dispositivo de saída.
[0229] Vários elementos do sistema 1000 podem ser providos dentro de um alojamento integrado. Dentro do alojamento integrado, os vários elementos podem ser interconectados e transmitir dados entre eles usando um arranjo de conexão adequado 1140, por exemplo, um barramento interno como conhecido na técnica, incluindo o barramento Inter-IC (I2C), fiação e placas de circuito impresso.
[0230] O sistema 1000 inclui a interface de comunicação 1050 que permite a comunicação com outros dispositivos através do canal de comunicação 1060. A interface de comunicação 1050 pode incluir, mas não está limitada a, um transceptor configurado para transmitir e receber dados através do canal de comunicação 1060. A interface de comunicação 1050 pode incluir, mas não está limitada a, um modem ou placa de rede e o canal de comunicação 1060 pode ser implementado, por exemplo, em um meio com fio e/ou sem fio.
[0231] Os dados são transmitidos, ou de outra forma fornecidos, para o sistema 1000, em várias modalidades, usando uma rede sem fio, tal como uma rede Wi-Fi, por exemplo IEEE 802.11 (IEEE refere-se ao Instituto de Engenheiros Elétricos e Eletrônicos). O sinal Wi-Fi dessas modalidades é recebido através do canal de comunicação 1060 e da interface de comunicação 1050 que são adaptados para comunicações Wi-Fi. O canal de comunicação 1060 dessas modalidades é normalmente conectado a um ponto de acesso ou roteador que fornece acesso a redes externas, incluindo a Internet para permitir aplicativos de streaming e outras comunicações over-the-top. Outras modalidades fornecem dados transmitidos ao sistema 1000 usando um decodificador que fornece os dados pela conexão HDMI do bloco de entrada 1130. Ainda outras modalidades fornecem dados transmitidos ao sistema 1000 usando a conexão RF do bloco de entrada 1130. Como indicado acima, várias modalidades fornecem dados de uma maneira sem streaming. Além disso, várias modalidades usam redes sem fio diferentes de Wi-Fi, por exemplo, uma rede celular ou uma rede Bluetooth.
[0232] O sistema 1000 pode fornecer um sinal de saída para vários dispositivos de saída, incluindo um display 1100, alto-falantes 1110 e outros dispositivos periféricos 1120. O display 1100 de várias modalidades inclui um ou mais de, por exemplo, um display de toque, um display de diodo emissor de luz orgânica (OLED), display curvo e/ou display dobrável. O display 1100 pode ser para uma televisão, um tablet, um laptop, um telefone celular (telefone móvel) ou outro dispositivo. O display 1100 também pode ser integrado com outros componentes (por exemplo, como em um smartphone), ou separado (por exemplo, um monitor externo para um laptop). Os outros dispositivos periféricos 1120 incluem, em vários exemplos de modalidades, um ou mais de um disco de vídeo digital autônomo (ou disco versátil digital) (DVR, para ambos os termos), um reprodutor de disco, um sistema estéreo e/ou um sistema de luz. Várias modalidades usam um ou mais dispositivos periféricos 1120 que fornecem uma função com base na saída do sistema 1000. Por exemplo, um reprodutor de disco executa a função de reproduzir a saída do sistema 1000.
[0233] Em várias modalidades, os sinais de controle são comunicados entre o sistema 1000 e o visor 1100, alto-falantes 1110 ou outros dispositivos periféricos 1120 usando sinalização como AV.Link, Controle de Eletrônicos do Consumidor (CEC) ou outros protocolos de comunicação que permitem controle de dispositivo para dispositivo com ou sem intervenção do usuário. Os dispositivos de saída podem ser acoplados comunicativamente ao sistema 1000 por meio de conexões dedicadas através das respectivas interfaces 1070, 1080 e 1090. Alternativamente, os dispositivos de saída podem ser conectados ao sistema 1000 usando o canal de comunicação 1060 por meio da interface de comunicação 1050. O display 1100 e alto- falantes 1110 podem ser integrados em uma única unidade com os outros componentes do sistema 1000 em um dispositivo eletrônico, como, por exemplo, uma televisão. Em várias modalidades, a interface de exibição 1070 inclui uma unidade de exibição, como, por exemplo, um chip controlador de temporização (T Con).
[0234] O display 1100 e o alto-falante 1110 podem, alternativamente, ser separados de um ou mais dos outros componentes, por exemplo, se a porção de RF da entrada 1130 fizer parte de um decodificador separado. Em várias modalidades nas quais o visor 1100 e os alto-falantes 1110 são componentes externos, o sinal de saída pode ser fornecido por meio de conexões de saída dedicadas, incluindo, por exemplo, portas HDMI, portas USB ou saídas COMP.
[0235] As modalidades podem ser realizadas por software de computador implementado pelo processador 1010 ou por hardware, ou por uma combinação de hardware e software. Como um exemplo não limitativo, as modalidades podem ser implementadas por um ou mais circuitos integrados. A memória 1020 pode ser de qualquer tipo apropriado para o ambiente técnico e pode ser implementada usando qualquer tecnologia de armazenamento de dados apropriada, como dispositivos de memória óptica, dispositivos de memória magnética, dispositivos de memória baseados em semicondutores, memória fixa e memória removível, como exemplos não limitantes. O processador 1010 pode ser de qualquer tipo apropriado para o ambiente técnico e pode abranger um ou mais de microprocessadores, computadores de uso geral, computadores de uso especial e processadores baseados em uma arquitetura multi-core, como exemplos não limitativos.
[0236] Várias implementações envolvem decodificação. "Decodificação",
conforme usado neste pedido, pode abranger todos ou parte dos processos realizados, por exemplo, em uma sequência codificada recebida, a fim de produzir uma saída final adequada para exibição. Em várias modalidades, tais processos incluem um ou mais dos processos tipicamente realizados por um decodificador, por exemplo, decodificação de entropia, quantização inversa, transformada inversa e decodificação diferencial. Em várias modalidades, tais processos também, ou alternativamente, incluem processos realizados por um decodificador de várias implementações descritas neste pedido, por exemplo, permitindo que uma ferramenta dependente de componente cruzado seja usada para um bloco de chroma em resposta a um tamanho do bloco de chroma e a um tamanho de pelo menos um bloco de luma colocalizado com pelo menos uma amostra do bloco de chroma.
[0237] Como exemplos adicionais, em uma modalidade, "decodificação" se refere apenas à decodificação de entropia, em outra modalidade, "decodificação" se refere apenas à decodificação diferencial e, em outra modalidade, "decodificação" se refere a uma combinação de decodificação de entropia e decodificação diferencial. Se a frase "processo de decodificação" se destina a referir-se especificamente a um subconjunto de operações ou geralmente ao processo de decodificação mais amplo, ficará claro com base no contexto das descrições específicas e acredita-se que seja bem compreendido por aqueles versados na técnica.
[0238] Várias implementações envolvem codificação. De forma análoga à discussão acima sobre "decodificação", "codificação", conforme usado neste pedido, pode abranger todos ou parte dos processos realizados, por exemplo, em uma sequência de vídeo de entrada, a fim de produzir um fluxo de bits codificado. Em várias modalidades, tais processos incluem um ou mais dos processos tipicamente realizados por um codificador, por exemplo, particionamento, codificação diferencial, transformada, quantização e codificação de entropia. Em várias modalidades, tais processos também, ou alternativamente, incluem processos realizados por um codificador de várias implementações descritas neste pedido, por exemplo, permitindo que uma ferramenta dependente de componente cruzado seja usada para um bloco de chroma em resposta a um tamanho do referido bloco de chroma e a um tamanho de pelo menos um bloco de luma colocalizado com pelo menos uma amostra do bloco de chroma.
[0239] Como exemplos adicionais, em uma modalidade, "codificação" se refere apenas à codificação de entropia, em outra modalidade, "codificação" se refere apenas à codificação diferencial e, em outra modalidade, "codificação" se refere a uma combinação de codificação diferencial e codificação de entropia. Se a frase "processo de codificação" se destina a referir-se especificamente a um subconjunto de operações ou geralmente ao processo de codificação mais amplo, será claro com base no contexto das descrições específicas e acredita-se que seja bem compreendido por aqueles versados na técnica.
[0240] Observe que os elementos de sintaxe usados neste documento, por exemplo, um índice do fator de escala de chroma, são termos descritivos. Como tal, eles não impedem o uso de outros nomes de elementos de sintaxe.
[0241] Quando uma figura é apresentada como um diagrama de fluxo, deve- se entender que ela também provê um diagrama de blocos de um aparelho correspondente. Da mesma forma, quando uma figura é apresentada como um diagrama de blocos, deve-se entender que ela também fornece um diagrama de fluxo de um método / processo correspondente.
[0242] Várias modalidades referem-se à otimização de distorção de taxa. Em particular, durante o processo de codificação, o equilíbrio ou compensação entre a taxa e a distorção é geralmente considerado, muitas vezes devido às restrições de complexidade computacional. A otimização de distorção de taxa é geralmente formulada como a minimização de uma função de distorção de taxa, que é uma soma ponderada da taxa e da distorção. Existem diferentes abordagens para resolver o problema de otimização de distorção de taxa. Por exemplo, as abordagens podem ser baseadas em um teste extensivo de todas as opções de codificação, incluindo todos os modos considerados ou valores de parâmetros de codificação, com uma avaliação completa de seu custo de codificação e distorção relacionada do sinal reconstruído após a codificação e decodificação. Abordagens mais rápidas também podem ser usadas, para salvar a complexidade de codificação, em particular com o cálculo de uma distorção aproximada com base na predição ou no sinal residual de predição, não o reconstruído. A mistura dessas duas abordagens também pode ser usada, tal como usar uma distorção aproximada para apenas algumas das opções de codificação possíveis e uma distorção completa para outras opções de codificação. Outras abordagens avaliam apenas um subconjunto das opções de codificação possíveis. Mais geralmente, muitas abordagens empregam qualquer uma de uma variedade de técnicas para realizar a otimização, mas a otimização não é necessariamente uma avaliação completa tanto do custo de codificação quanto da distorção relacionada.
[0243] As implementações e aspectos descritos neste documento podem ser implementados em, por exemplo, um método ou processo, um aparelho, um programa de software, um fluxo de dados ou um sinal. Mesmo se apenas discutido no contexto de uma única forma de implementação (por exemplo, discutido apenas como um método), a implementação dos recursos discutidos também pode ser implementada em outras formas (por exemplo, um aparelho ou programa). Um aparelho pode ser implementado em, por exemplo, hardware, software e firmware apropriados. Os métodos podem ser implementados em, por exemplo, um processador, que se refere a dispositivos de processamento em geral, incluindo, por exemplo, um computador, um microprocessador, um circuito integrado ou um dispositivo lógico programável. Os processadores também incluem dispositivos de comunicação, como, por exemplo, computadores, telefones celulares, assistentes digitais portáteis / pessoais ("PDAs")
e outros dispositivos que facilitam a comunicação de informações entre os usuários finais.
[0244] Referência a "uma modalidade" ou "uma modalidade" ou "uma implementação" ou "uma implementação", bem como outras variações das mesmas, significa que um determinado recurso, estrutura, característica e assim por diante descrito em conexão com a modalidade está incluído em pelo menos uma modalidade. Assim, as aparições da frase "em uma modalidade" ou "em uma modalidade" ou "em uma implementação" ou "em uma implementação", bem como quaisquer outras variações, aparecendo em vários lugares ao longo deste pedido não são necessariamente todas se referindo à mesma modalidade.
[0245] Além disso, este aplicativo pode se referir a "determinar" várias informações. Determinar as informações pode incluir um ou mais de, por exemplo, estimar as informações, calcular as informações, prever as informações ou recuperar as informações da memória.
[0246] Além disso, este aplicativo pode se referir a "acessar" várias partes de informações. O acesso às informações pode incluir um ou mais de, por exemplo, receber as informações, recuperar as informações (por exemplo, da memória), armazenar as informações, mover as informações, copiar as informações, calcular as informações, determinar as informações, prever as informações ou estimar as informações.
[0247] Além disso, este aplicativo pode referir-se ao “recebimento” de várias informações. Receber, assim como “acessar”, pretende ser um termo amplo. Receber as informações pode incluir um ou mais de, por exemplo, acessar as informações ou recuperar as informações (por exemplo, da memória). Além disso, "receber" está normalmente envolvido, de uma forma ou de outra, durante operações como, por exemplo, armazenar a informação, processar a informação, transmitir a informação, mover a informação, copiar a informação, apagar a informação, calcular a informação,
determinar as informações, prever as informações ou estimar as informações.
[0248] Deve ser apreciado que o uso de qualquer um dos seguintes “/”, “e/ou” e “pelo menos um de”, por exemplo, nos casos de “A / B”, “A e/ou B "E" pelo menos um de A e B ", destina-se a abranger a seleção da primeira opção listada (A) apenas, ou a seleção da segunda opção listada (B) apenas, ou a seleção de ambas as opções (A e B). Como um exemplo adicional, nos casos de "A, B e/ou C" e "pelo menos um de A, B e C", tal frase se destina a abranger a seleção da primeira opção listada (A) apenas, ou a seleção da segunda opção listada (B) apenas, ou a seleção da terceira opção listada (C) apenas, ou a seleção da primeira e da segunda opção listada (A e B) apenas, ou a seleção de apenas a primeira e a terceira opções listadas (A e C), ou a seleção da segunda e terceira opções listadas (B e C) apenas, ou a seleção de todas as três opções (A e B e C). Isso pode ser estendido, como é claro para alguém com habilidade comum nesta e em técnicas relacionadas, para tantos itens quantos forem listados.
[0249] Além disso, conforme usado neste documento, a palavra "sinal" se refere a, entre outras coisas, indicar algo para um decodificador correspondente. Por exemplo, em certas modalidades, o codificador sinaliza um determinado índice de fator de escala de chroma. Desta forma, em uma modalidade, o mesmo parâmetro é usado tanto no lado do codificador quanto no lado do decodificador. Assim, por exemplo, um codificador pode transmitir (sinalização explícita) um parâmetro particular para o decodificador de modo que o decodificador possa usar o mesmo parâmetro particular. Por outro lado, se o decodificador já tiver o parâmetro específico, bem como outros, então a sinalização pode ser usada sem transmissão (sinalização implícita) para simplesmente permitir que o decodificador saiba e selecione o parâmetro específico. Ao evitar a transmissão de quaisquer funções reais, uma pequena economia é realizada em várias modalidades. Deve ser apreciado que a sinalização pode ser realizada de várias maneiras. Por exemplo, um ou mais elementos de sintaxe, sinalizadores e assim por diante são usados para sinalizar informações para um decodificador correspondente em várias modalidades. Embora o precedente se refira à forma verbal da palavra "sinal", a palavra "sinal" também pode ser usada aqui como um substantivo.
[0250] Como será evidente para aqueles versados na técnica, as implementações podem produzir uma variedade de sinais formatados para transportar informações que podem ser, por exemplo, armazenadas ou transmitidas. As informações podem incluir, por exemplo, instruções para executar um método ou dados produzidos por uma das implementações descritas. Por exemplo, um sinal pode ser formatado para transportar o fluxo de bits de uma modalidade descrita. Tal sinal pode ser formatado, por exemplo, como uma onda eletromagnética (por exemplo, usando uma porção de radiofrequência do espectro) ou como um sinal de banda base. A formatação pode incluir, por exemplo, a codificação de um fluxo de dados e a modulação de uma portadora com o fluxo de dados codificados. As informações que o sinal transporta podem ser, por exemplo, informações analógicas ou digitais. O sinal pode ser transmitido por uma variedade de diferentes links com ou sem fio, como é conhecido. O sinal pode ser armazenado em um meio legível por processador.
[0251] Foi descrita uma série de modalidades. As características dessas modalidades podem ser fornecidas sozinhas ou em qualquer combinação, em várias categorias e tipos de reivindicações. Além disso, as modalidades podem incluir um ou mais dos seguintes características, dispositivos ou aspectos, sozinhos ou em qualquer combinação, em várias categorias e tipos de reivindicação: • Ativer uma ferramenta dependente de componente cruzado que responde ao tamanho de um bloco de chroma e possivelmente a um tamanho de pelo menos um bloco de luma colocalizado com o bloco de chroma. • Ativar uma ferramenta dependente de componente cruzado no caso em que o bloco de chroma está dentro de uma única área retangular de chroma, sendo definida pela partição do componente chroma da imagem em áreas retangulares não sobrepostas; • Ativar uma ferramenta dependente de componente cruzado no caso em que pelo menos um bloco de luma colocalizado está dentro de uma área retangular de luma colocalizada com uma primeira área retangular chroma, a referida área retangular de luma sendo definida pela partição do luma da referida imagem em áreas retangulares não sobrepostas; • Um fluxo de bits ou sinal que inclui um ou mais dos elementos de sintaxe descritos, ou variações dos mesmos. • Um fluxo de bits ou sinal que inclui informações de transmissão de sintaxe geradas de acordo com qualquer uma das modalidades descritas. • Inserir na sintaxe de sinalização elementos que permitem ao decodificador ativar / desativar uma ferramenta dependente de componente cruzado de uma maneira correspondente àquela usada por um codificador. • Criar e/ou transmitir e/ou receber e/ou decodificar um fluxo de bits ou sinal que inclui um ou mais dos elementos de sintaxe descritos, ou variações dos mesmos. • Criar e/ou transmitir e/ou receber e/ou decodificar de acordo com qualquer uma das modalidades descritas. • Um método, processo, aparelho, instruções de armazenamento de meio, dados de armazenamento de meio ou sinal de acordo com qualquer uma das modalidades descritas. • Uma TV, set-top box, telefone celular, tablet ou outro dispositivo eletrônico que realiza a ativação / desativação de uma ferramenta dependente de componente cruzado de acordo com qualquer uma das modalidades descritas. • Uma TV, decodificador, telefone celular, tablet ou outro dispositivo eletrônico que realiza a ativação / desativação de uma ferramenta dependente de componente cruzado de acordo com qualquer uma das modalidades descritas e que exibe (por exemplo, usando um monitor, tela ou outro tipo de display) uma imagem resultante. • Uma TV, decodificador, telefone celular, tablet ou outro dispositivo eletrônico que seleciona (por exemplo, usando um sintonizador) um canal para receber um sinal incluindo uma imagem codificada e executa a ativação / desativação de uma ferramenta dependente de componente cruzado de acordo com qualquer uma das modalidades descritas. • Uma TV, set-top box, telefone celular, tablet ou outro dispositivo eletrônico que recebe (por exemplo, usando uma antena) um sinal pelo ar que inclui uma imagem codificada e executa a ativação / desativação de uma ferramenta dependente de componente cruzado de acordo com qualquer uma das modalidades descritas.
[0252] Além disso, as modalidades podem incluir um ou mais dos seguintes recursos, dispositivos ou aspectos, sozinhos ou em qualquer combinação, em várias categorias e tipos de reivindicação.
[0253] De acordo com um aspecto geral de pelo menos uma modalidade, um método de decodificação é apresentado que compreende: - permitir que uma ferramenta dependente de componente cruzado seja usada para um bloco de chroma de uma imagem em resposta a um tamanho do referido bloco de chroma e a um tamanho de pelo menos um bloco de luma colocalizado com o bloco de chroma; - decodificar o referido bloco de chroma em resposta à referida ativação da referida ferramenta dependente de componente cruzado.
[0254] De acordo com um aspecto geral de pelo menos uma modalidade, um aparelho de decodificação é apresentado que compreende um ou mais processadores configurados para realizar: - ativar uma ferramenta dependente de componente cruzado para ser usada para um bloco de chroma de uma imagem em resposta a um tamanho do referido bloco de chroma e a um tamanho de pelo menos um bloco de luma colocalizado com o bloco de chroma; e - decodificar o referido bloco de chroma em resposta à referida ativação da referida ferramenta dependente de componente cruzado.
[0255] De acordo com um aspecto geral de pelo menos uma modalidade, um método de codificação é apresentado que compreende: - ativar uma ferramenta dependente de componente cruzado para ser usada para um bloco de chroma de uma imagem em resposta a um tamanho do referido bloco de chroma e a um tamanho de pelo menos um bloco de luma colocalizado com o bloco de chroma; - codificar o referido bloco de chroma em resposta à referida ativação da referida ferramenta dependente de componente cruzado.
[0256] De acordo com um aspecto geral de pelo menos uma modalidade, um aparelho de codificação é apresentado que compreende um ou mais processadores configurados para realizar: - ativar uma ferramenta dependente de componente cruzado para ser usada para um bloco de chroma de uma imagem em resposta a um tamanho do referido bloco de chroma e a um tamanho de pelo menos um bloco de luma colocalizado com o bloco de chroma; e - codificar o referido bloco de chroma em resposta à referida ativação da referida ferramenta dependente de componente cruzado.
[0257] Uma ou mais das presentes modalidades também fornecem um meio de armazenamento legível por computador tendo nele instruções armazenadas para codificar ou decodificar dados de vídeo de acordo com pelo menos parte de qualquer um dos métodos descritos acima. Uma ou mais modalidades também fornecem um meio de armazenamento legível por computador tendo armazenado nele um fluxo de bits gerado de acordo com os métodos de codificação descritos acima. Uma ou mais modalidades também fornecem um método e aparelho para transmitir ou receber o fluxo de bits gerado de acordo com os métodos de codificação descritos acima. Uma ou mais modalidades também fornecem um produto de programa de computador, incluindo instruções para executar pelo menos parte de qualquer um dos métodos descritos acima.
[0258] Em uma modalidade, a referida ferramenta dependente de componente cruzado é uma escala residual de chroma dependente de luma.
[0259] Em uma modalidade, ativar o referido escalonamento residual de chroma dependente de luma para ser usado para um bloco de chroma de uma imagem em resposta a um tamanho do referido bloco de chroma e a um tamanho de pelo menos um bloco de luma colocalizado com o bloco de chroma compreende: - ativar a referida escala residual de chroma dependente de luma no caso em que: • o bloco de chroma está dentro de uma única área retangular de chroma, a referida área retangular de chroma sendo definida pela partição do componente chroma da referida imagem em áreas retangulares não sobrepostas; e • o pelo menos um bloco de luma colocalizado com o bloco de chroma está dentro de uma única área retangular de luma colocalizada com a referida área retangular de chroma, a referida área retangular de luma sendo definida pela partição do luma da referida imagem em áreas retangulares não sobrepostas; e - desativar a referida escala residual de chroma dependente de luma de outra forma.
[0260] Em uma modalidade, ativar o referido escalonamento residual de chroma dependente de luma para ser usado para um bloco de chroma de uma imagem em resposta a um tamanho do referido bloco de chroma e a um tamanho de pelo menos um bloco de luma colocalizado com o bloco de chroma compreende: - ativar a referida escala residual de chroma dependente de luma no caso em que:
• o bloco de chroma está dentro de uma única área retangular de chroma, a referida área retangular de chroma sendo definida pela partição do componente chroma da referida imagem em áreas retangulares não sobrepostas; e • todos os blocos de luma colocalizados com o bloco de chroma estão dentro de uma única área retangular de luma colocalizada com a referida área retangular de chroma, a referida área retangular de luma sendo definida pela partição do luma da referida imagem em áreas retangulares não sobrepostas; e - desativar a referida escala residual de chroma dependente de luma de outra forma.
[0261] Em uma modalidade, ativar o referido escalonamento residual de chroma dependente de luma para ser usado para um bloco de chroma de uma imagem em resposta a um tamanho do referido bloco de chroma e a um tamanho de pelo menos um bloco de luma colocalizado com o bloco de chroma compreende: - ativar a referida escala residual de chroma dependente de luma no caso em que pelo menos um bloco de luma colocalizado com o bloco de chroma está dentro de uma única área retangular de luma colocalizada com uma primeira área retangular de chroma, a referida área retangular de chroma sendo definida por particionar o componente chroma da referida imagem em áreas retangulares não sobrepostas e a referida área retangular de luma sendo definida dividindo o luma da referida imagem em áreas retangulares não sobrepostas; e - desativar a referida escala residual de chroma dependente de luma de outra forma.
[0262] Em uma modalidade, no caso em que a referida escala residual de chroma dependente de luma está desabilitada, um fator de escala é determinado para o referido bloco de chroma por predição de um fator de escala de chroma ou de um índice que identifica um fator de escala de chroma associado a pelo menos um bloco de chroma decodificado (codificado respectivamente) vizinho ao referido bloco de chroma.
[0263] Em uma modalidade, no caso em que a referida escala residual de chroma dependente de luma está desabilitada, um parâmetro de quantização delta é decodificado (codificado em, respectivamente) a partir do fluxo de bits para o referido bloco de chroma.
[0264] Em outra modalidade, a ferramenta dependente de componente cruzado é uma predição de modelo linear de componente cruzado.

Claims (9)

REIVINDICAÇÕES
1. Método para controlar o uso de uma ferramenta de escalonamento de chroma residual para um bloco de chroma de uma imagem dividida em áreas retangulares não sobrepostas formando uma grade de áreas retangulares autorizadas, o método CARACTERIZADO pelo fato de compreender, na condição de que o bloco de chroma está dentro de uma única área retangular autorizada de chroma e o bloco de luma colocalizado com o bloco de chroma está dentro de uma única área retangular autorizada de luma colocalizada com a referida área retangular autorizada de chroma: - ativar a ferramenta de escalonamento de chroma residual, e - determinar (804) um fator de escalonamento para a ferramenta de escalonamento de chroma residual com base em uma ou mais amostras de luma reconstruídas que pertencem à linha de fundo e / ou à coluna direita de amostras de luma que pertencem respectivamente às áreas retangulares autorizadas superior e esquerda vizinhas das áreas retangulares autorizadas que contêm o bloco de chroma atual.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de a ferramenta de escalonamento de chroma residual ser ativada em resposta às restrições de tamanho e posição de blocos de chroma e luma colocalizados.
3. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de a restrição de tamanho do referido bloco de chroma ser de 32 x 32 pixels e a restrição de tamanho de pelo menos um bloco de luma colocalizado com o bloco de chroma é de 64 x 64 pixels.
4. Método de decodificação, CARACTERIZADO pelo fato de compreender, para um bloco de chroma de uma imagem: - determinar (800) a posição na imagem de uma determinada posição de amostra em um bloco de chroma,
- determinar (801) um bloco de luma colocalizado sendo um bloco de luma compreendendo a amostra de luma colocalizada com a posição no bloco de chroma, - determinar o uso de uma ferramenta de escalonamento de chroma residual de acordo com qualquer uma das reivindicações 1 a 3, - na condição em que a ferramenta de escalonamento de chroma residual está ativada, aplicar um escalonamento (805) do bloco de chroma residual de acordo com o fator de escalonamento determinado de acordo com a reivindicação 1, e - decodificar o bloco de chroma.
5. Método de codificação, CARACTERIZADO pelo fato de compreender, para um bloco de chroma de uma imagem: - determinar (800) a posição na imagem de uma determinada posição de amostra em um bloco de chroma, - determinar (801) um bloco de luma colocalizado sendo um bloco de luma compreendendo a amostra de luma colocalizada com a posição no bloco de chroma, - determinar o uso de uma ferramenta de escalonamento de chroma residual de acordo com qualquer uma das reivindicações 1 a 3, - na condição em que a ferramenta de escalonamento de chroma residual está ativada, aplicar um escalonamento (805) do bloco de chroma residual de acordo com o fator de escalonamento determinado de acordo com a reivindicação 1, e - codificar o bloco de chroma.
6. Aparelho de decodificação, CARACTERIZADO pelo fato de compreender um ou mais processadores configurados para realizar um método de decodificação compreendendo, para um bloco de chroma de uma imagem: - determinar (800) a posição na imagem de uma determinada posição de amostra em um bloco de chroma, - determinar (801) um bloco de luma colocalizado sendo um bloco de luma compreendendo a amostra de luma colocalizada com a posição no bloco de chroma,
- determinar o uso de uma ferramenta de escalonamento de chroma residual de acordo com qualquer uma das reivindicações 1 a 3, - na condição em que a ferramenta de escalonamento de chroma residual está ativada, aplicar um escalonamento (805) do bloco de chroma residual de acordo com o fator de escalonamento determinado de acordo com a reivindicação 1, e - decodificar o bloco de chroma.
7. Aparelho de codificação, CARACTERIZADO pelo fato de compreender um ou mais processadores configurados para executar um método de codificação que compreende, para um bloco de chroma de uma imagem: - determinar (800) a posição na imagem de uma determinada posição de amostra em um bloco de chroma, - determinar (801) um bloco de luma colocalizado sendo um bloco de luma compreendendo a amostra de luma colocalizada com a posição no bloco de chroma, - determinar o uso de uma ferramenta de escalonamento de chroma residual de acordo com qualquer uma das reivindicações 1 a 3, - na condição em que a ferramenta de escalonamento de chroma residual está ativada, aplicar um escalonamento (805) do bloco de chroma residual de acordo com o fator de escalonamento determinado de acordo com a reivindicação 1, e - codificar o bloco de chroma.
8. Produto de programa de computador CARACTERIZADO pelo fato de compreender instruções para realizar um método para controlar o uso de uma ferramenta de escalonamento de chroma residual para um bloco de chroma de uma imagem dividida em áreas retangulares não sobrepostas formando uma grade de áreas retangulares autorizadas, o método compreendendo, na condição de que o bloco de chroma esteja dentro de uma única área retangular autorizada de chroma e o bloco de luma colocalizado com o bloco de chroma esteja dentro de uma única área retangular autorizada de luma colocalizada com a referida área retangular autorizada de chroma: - ativar a ferramenta de escalonamento de chroma residual, e - determinar (804) um fator de dimensionamento para a ferramenta de escalonamento de chroma residual com base em uma ou mais amostras de luma reconstruídas que pertencem à linha de fundo e / ou à coluna direita de amostras de luma que pertencem respectivamente às áreas retangulares autorizadas superior e esquerda vizinhas das áreas retangulares autorizadas que contêm o bloco de chroma atual.
9. Meio de armazenamento não transitório CARACTERIZADO pelo fato de conter um método para controlar o uso de uma ferramenta de escalonamento de chroma residual para um bloco de chroma de uma imagem dividida em áreas retangulares não sobrepostas formando uma grade de áreas retangulares autorizadas, o método compreendendo, na condição de que o bloco de chroma esteja dentro de uma única área retangular autorizada de chroma e o bloco de luma colocalizado com o bloco de chroma esteja dentro de uma única área retangular autorizada de luma colocalizada com a referida área retangular autorizada de chroma: - ativar a ferramenta de escalonamento de chroma residual, e - determinar (804) um fator de dimensionamento para a ferramenta de escalonamento de chroma residual com base em uma ou mais amostras de luma reconstruídas que pertencem à linha de fundo e / ou a coluna direita de amostras de luma que pertencem respectivamente às áreas retangulares autorizadas superior e esquerda vizinhas das áreas retangulares autorizadas que contêm o bloco de chroma atual.
FIGURA 11A
BR112021013611-8A 2019-02-28 2020-02-25 Método e dispositivo para codificação e decodificação de imagens BR112021013611A2 (pt)

Applications Claiming Priority (19)

Application Number Priority Date Filing Date Title
EP19305236.2A EP3703366A1 (en) 2019-02-28 2019-02-28 Method and device for picture encoding and decoding
EP19305236.2 2019-02-28
EP19305281.8 2019-03-11
EP19305281 2019-03-11
EP19305326 2019-03-18
EP19305326.1 2019-03-18
EP19305373.3 2019-03-25
EP19305373 2019-03-25
EP19305465 2019-04-10
EP19305465.7 2019-04-10
EP19305591 2019-05-09
EP19305591.0 2019-05-09
EP19305633.0 2019-05-17
EP19305633 2019-05-17
EP19305684 2019-05-29
EP19305684.3 2019-05-29
EP19305904 2019-07-02
EP19305904.5 2019-07-02
PCT/US2020/019626 WO2020176459A1 (en) 2019-02-28 2020-02-25 Method and device for picture encoding and decoding

Publications (1)

Publication Number Publication Date
BR112021013611A2 true BR112021013611A2 (pt) 2021-09-14

Family

ID=69941495

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021013611-8A BR112021013611A2 (pt) 2019-02-28 2020-02-25 Método e dispositivo para codificação e decodificação de imagens

Country Status (7)

Country Link
US (1) US20230300351A1 (pt)
EP (1) EP3932063A1 (pt)
JP (2) JP7350074B2 (pt)
KR (1) KR20210130153A (pt)
CN (1) CN113545056A (pt)
BR (1) BR112021013611A2 (pt)
WO (1) WO2020176459A1 (pt)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020156574A1 (en) * 2019-02-03 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Signaling for video block partition mode
KR20210134375A (ko) 2019-03-04 2021-11-09 알리바바 그룹 홀딩 리미티드 비디오 콘텐츠를 처리하기 위한 방법 및 시스템
WO2020182091A1 (en) 2019-03-08 2020-09-17 Beijing Bytedance Network Technology Co., Ltd. Reshaping model in video processing
WO2020211863A1 (en) 2019-04-18 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Selective use of cross component mode in video coding
CN113711610B (zh) 2019-04-23 2024-04-16 北京字节跳动网络技术有限公司 降低跨分量依赖性的方法
KR102641796B1 (ko) * 2019-05-08 2024-03-04 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 교차-성분 코딩의 적용가능성에 대한 조건들
WO2020235511A1 (en) * 2019-05-17 2020-11-26 Panasonic Intellectual Property Corporation Of America System and method for video coding
WO2020259427A1 (en) 2019-06-22 2020-12-30 Beijing Bytedance Network Technology Co., Ltd. Syntax element for chroma residual scaling
JP7460748B2 (ja) 2019-07-07 2024-04-02 北京字節跳動網絡技術有限公司 クロマ残差スケーリングのシグナリング
KR20220065758A (ko) 2019-09-20 2022-05-20 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 코딩 블록의 스케일링 프로세스
WO2022194197A1 (en) * 2021-03-17 2022-09-22 Beijing Bytedance Network Technology Co., Ltd. Separate Tree Coding Restrictions
WO2024002675A1 (en) * 2022-06-30 2024-01-04 Interdigital Ce Patent Holdings, Sas Simplification for cross-component intra prediction
CN115834897B (zh) * 2023-01-28 2023-07-25 深圳传音控股股份有限公司 处理方法、处理设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2508339A (en) * 2012-11-22 2014-06-04 Sony Corp Manipulation of transform coefficient blocks in high-efficiency video coding (HEVC)
US9648330B2 (en) * 2013-07-15 2017-05-09 Qualcomm Incorporated Inter-color component residual prediction
US9294766B2 (en) * 2013-09-09 2016-03-22 Apple Inc. Chroma quantization in video coding
US10397607B2 (en) * 2013-11-01 2019-08-27 Qualcomm Incorporated Color residual prediction for video coding
US10200700B2 (en) * 2014-06-20 2019-02-05 Qualcomm Incorporated Cross-component prediction in video coding
EP3192261A1 (en) * 2014-09-12 2017-07-19 VID SCALE, Inc. Inter-component de-correlation for video coding
US10972731B2 (en) * 2015-11-10 2021-04-06 Interdigital Madison Patent Holdings, Sas Systems and methods for coding in super-block based video coding framework
US10455228B2 (en) * 2016-03-21 2019-10-22 Qualcomm Incorporated Determining prediction parameters for non-square blocks in video coding
EP3456043A4 (en) * 2016-05-28 2019-11-27 MediaTek Inc. METHOD AND DEVICE FOR REFERENCING THE CURRENT IMAGE FOR VIDEO CODING USING AFFINER MOTION COMPENSATION
US10477240B2 (en) 2016-12-19 2019-11-12 Qualcomm Incorporated Linear model prediction mode with sample accessing for video coding
EP3386198A1 (en) * 2017-04-07 2018-10-10 Thomson Licensing Method and device for predictive picture encoding and decoding
KR102625573B1 (ko) 2018-02-14 2024-01-16 돌비 레버러토리즈 라이쎈싱 코오포레이션 레이트 왜곡 최적화를 이용한 비디오 코딩에서의 이미지 재성형
US10609402B2 (en) 2018-05-02 2020-03-31 Tencent America LLC Method and apparatus for prediction and transform for small blocks

Also Published As

Publication number Publication date
WO2020176459A1 (en) 2020-09-03
EP3932063A1 (en) 2022-01-05
US20230300351A1 (en) 2023-09-21
CN113545056A (zh) 2021-10-22
JP7350074B2 (ja) 2023-09-25
JP2022532277A (ja) 2022-07-14
JP2023175772A (ja) 2023-12-12
KR20210130153A (ko) 2021-10-29

Similar Documents

Publication Publication Date Title
BR112021013611A2 (pt) Método e dispositivo para codificação e decodificação de imagens
AU2019269346B2 (en) Block shape adaptive intra prediction directions for quadtree-binary tree
US20220038684A1 (en) Multi-reference line intra prediction and most probable mode
US20220078405A1 (en) Simplifications of coding modes based on neighboring samples dependent parametric models
BR112021008108A2 (pt) método e dispositivo para codificação e decodificação de figuração
US11962753B2 (en) Method and device of video coding using local illumination compensation (LIC) groups
BR112020024082A2 (pt) método e aparelho para codificar e decodificar vídeo com base em particionamento binário assimétrico de blocos de imagem
US20230254507A1 (en) Deep intra predictor generating side information
US20210297668A1 (en) Wide angle intra prediction and position dependent intra prediction combination
KR20210058846A (ko) 인트라 변환 코딩 및 광각 인트라 예측의 조화
EP3641311A1 (en) Encoding and decoding methods and apparatus
US20230023837A1 (en) Subblock merge candidates in triangle merge mode
RU2789112C1 (ru) Способ и устройство для кодирования и декодирования изображений
RU2797393C2 (ru) Позиционно-зависимая комбинация intra-предсказания для широкоугольного intra-предсказания
US11979585B2 (en) Current picture referencing block vector initialization with dual tree
WO2024066320A1 (en) Encoding/decoding video picture data
US20230156190A1 (en) Signaling of merge indices for triangle partitions
US20220038704A1 (en) Method and apparatus for determining chroma quantization parameters when using separate coding trees for luma and chroma
BR112021007038A2 (pt) método e aparelho para codificação e decodificação de vídeo com sinalização de tipo de codificação ou tipo de árvore de codificação