BR112021014853A2 - Método e aparelho para processar e codificar dados de vídeo, e, mídias de armazenamento e registro legíveis por computador não transitórias - Google Patents

Método e aparelho para processar e codificar dados de vídeo, e, mídias de armazenamento e registro legíveis por computador não transitórias Download PDF

Info

Publication number
BR112021014853A2
BR112021014853A2 BR112021014853-1A BR112021014853A BR112021014853A2 BR 112021014853 A2 BR112021014853 A2 BR 112021014853A2 BR 112021014853 A BR112021014853 A BR 112021014853A BR 112021014853 A2 BR112021014853 A2 BR 112021014853A2
Authority
BR
Brazil
Prior art keywords
samples
chroma
block
chroma samples
cclm
Prior art date
Application number
BR112021014853-1A
Other languages
English (en)
Inventor
Kai Zhang
Li Zhang
Hongbin Liu
Jizheng Xu
Yue Wang
Original Assignee
Beijing Bytedance Network Technology Co., Ltd.
Bytedance 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
Application filed by Beijing Bytedance Network Technology Co., Ltd., Bytedance Inc. filed Critical Beijing Bytedance Network Technology Co., Ltd.
Publication of BR112021014853A2 publication Critical patent/BR112021014853A2/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/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/103Selection of coding mode or of prediction mode
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/172Methods 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 picture, frame or field
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

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

Abstract

MÉTODO E APARELHO PARA PROCESSAR E CODIFICAR DADOS DE VÍDEO, E, MÍDIAS DE ARMAZENAMENTO E REGISTRO LEGÍVEIS POR COMPUTADOR NÃO TRANSITÓRIAS. É provido um método para processar vídeo. O método inclui determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, parâmetros do modo de previsão do modelo linear de componente cruzado (CCLM) com base nas amostras de croma que são selecionadas com base em W amostras vizinhas acima disponíveis, W sendo um número inteiro; e realizar a conversão com base na determinação.

Description

1 / 122
MÉTODO E APARELHO PARA PROCESSAR E CODIFICAR DADOS DE VÍDEO, E, MÍDIAS DE ARMAZENAMENTO E REGISTRO
LEGÍVEIS POR COMPUTADOR NÃO TRANSITÓRIAS Referência Cruzada para Pedidos Relacionados.
[001] Esse pedido é uma fase nacional do Pedido Internacional nº PCT/CN2020/076361 depositado em 24 de fevereiro de 2020, que reivindica em tempo hábil a prioridade e os benefícios do Pedido de Patente Internacional PCT/CN2019/075874, depositado em 22 de fevereiro de 2019, do Pedido de Patente Internacional PCT/CN2019/075993, depositado em 24 de fevereiro de 2019, do Pedido de Patente Internacional PCT/CN2019/076195, depositado em 26 de fevereiro de 2019, do Pedido de Patente Internacional PCT/CN2019/079396, depositado em 24 de março de 2019, do Pedido de Patente Internacional PCT/CN2019/079431, depositado em 25 de março de 2019, e do Pedido de Patente Internacional PCT/CN2019/079769, depositado em 26 de março de 2019. A íntegra das descrições dos supramencionados pedidos é incorporada pela referência como parte da descrição deste pedido. Campo Técnico
[002] Este documento de patente se refere a técnicas, dispositivos e sistemas de processamento de vídeo. Fundamentos da Invenção
[003] Apesar dos avanços na compressão de vídeo, o vídeo digital ainda é responsável pelo maior uso de largura de banda na internet e outras redes de comunicação digitais. À medida que o número de dispositivos de usuário conectados capazes de receber e exibir vídeo aumenta, espera-se que a demanda por largura de banda para uso de vídeo digital continue a crescer. Sumário
[004] Dispositivos, sistemas e métodos relacionados a processamento de vídeo digital e, por exemplo, derivações do modelo linear simplificado para o modo de previsão do modelo linear de componente cruzado (CCLM) em codificação de vídeo são descritos. Os métodos descritos
2 / 122
[005] podem ser aplicados tanto em padrões de codificação de vídeo existentes (por exemplo, Codificação de Vídeo de Alta Eficiência (HEVC)) quanto em padrões futuros ou codecs de codificação de vídeo (por exemplo, Codificação de Vídeo Versátil (VVC)).
[006] Em um aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processar vídeo. O método compreende determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, parâmetros do modo de previsão do modelo linear de componente cruzado (CCLM) com base em amostras de croma que são selecionadas com base em W amostras vizinhas acima disponíveis, W sendo um número inteiro; e realizar a conversão com base na determinação.
[007] Em um outro aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processar vídeo. O método compreende: determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, parâmetros do modo de previsão do modelo linear de componente cruzado (CCLM) com base em amostras de croma que são selecionadas com base em H amostras vizinhas à esquerda disponíveis do bloco de vídeo atual; e realizar a conversão com base na determinação.
[008] Em um outro aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processar vídeo. O método compreende: determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, parâmetros de um modelo linear de componente cruzado (CCLM) com base em duas ou quatro amostras de croma e/ou correspondentes amostras de luma; e realizar a conversão com base na determinação.
[009] Em um outro aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processar vídeo. O método
3 / 122 compreende: selecionar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, amostras de croma com base em uma regra de posição, as amostras de croma usadas para derivar parâmetros de um modelo linear de componente cruzado (CCLM); e realizar a conversão com base na determinação, em que a regra de posição especifica para selecionar as amostras de croma que estão localizadas em uma linha acima e/ou uma coluna à esquerda do bloco de vídeo atual.
[0010] Em um outro aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processar vídeo. O método compreende: determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, posições nas quais amostras de luma são descendentemente amostradas, em que as amostras de luma descendentemente amostradas são usadas para determinar parâmetros de um modelo linear de componente cruzado (CCLM) com base em amostras de croma e amostras de luma descendentemente amostradas, em que as amostras de luma descendentemente amostradas estão em posições correspondentes às posições das amostras de croma que são usadas para derivar os parâmetros do CCLM; e realizar a conversão com base na determinação.
[0011] Em um outro aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processar vídeo. O método compreende: determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, um método para derivar parâmetros de um modelo linear de componente cruzado (CCLM) usando amostras de croma e amostras de luma com base em uma condição de codificação associada com o bloco de vídeo atual; e realizar a conversão com base na determinação.
[0012] Em um outro aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processar vídeo. O método
4 / 122 compreende: determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, se derivam-se valores máximos e/ou valores mínimos de um componente de luma e um componente de croma que são usados para derivar parâmetros de um modelo linear de componente cruzado (CCLM) com base na disponibilidade de um bloco vizinho esquerdo e um bloco vizinho acima do bloco de vídeo atual; e realizar a conversão com base na determinação.
[0013] Em ainda um outro aspecto representativo, o método supradescrito é incorporado na forma de código executável por processador e armazenado em uma mídia de programa legível por computador.
[0014] Em ainda um outro aspecto representativo, um dispositivo que é configurado ou operável para realiza o método supradescrito é descrito. O dispositivo pode incluir um processador que é programado para implementar este método.
[0015] Em ainda um outro aspecto representativo, um aparelho decodificador de vídeo pode implementar um método da forma aqui descrita.
[0016] Os aspectos e as características expostos e ainda outros da tecnologia descrita são descritos com mais detalhes nos desenhos, na descrição e nas reivindicações. Breve Descrição dos Desenhos
[0017] A figura 1 mostra um exemplo dos locais das amostras usadas para a derivação dos pesos do modelo linear usado para previsão de componente cruzado.
[0018] A figura 2 mostra um exemplo de classificação das amostras vizinhas em dois grupos.
[0019] A figura 3A mostra um exemplo de uma amostra de croma e suas correspondentes amostras de luma.
[0020] A figura 3B mostra um exemplo de filtragem descendente para o modelo linear de componente cruzado (CCLM) no Modelo de Exploração
5 / 122 Conjunta (JEM).
[0021] As figuras 4A e 4B mostram exemplos de amostras vizinhas de topo apenas e vizinhas à esquerda apenas usadas para previsão com base em um modelo linear, respectivamente.
[0022] A figura 5 mostra um exemplo de uma linha reta entre valores de luma máximo e mínimo como uma função das correspondentes amostras de croma.
[0023] A figura 6 mostra um exemplo de um bloco de croma atual e suas amostras vizinhas.
[0024] A figura 7 mostra um exemplo de partes diferentes de um bloco de croma previsto por um modelo linear usando apenas amostras vizinhas à esquerda (LM-L) e um modelo linear usando apenas amostras vizinhas acima (LM-A).
[0025] A figura 8 mostra um exemplo de um bloco vizinho de topo-à esquerda.
[0026] A figura 9 mostra um exemplo de amostras a serem usadas para derivar um modelo linear.
[0027] A figura 10 mostra um exemplo de colunas à esquerda e abaixo-à esquerda e linhas acima e acima-à direita em relação a um bloco atual.
[0028] A figura 11 mostra um exemplo de um bloco atual e suas amostras de referência.
[0029] A figura 12 mostra exemplos de duas amostras vizinhas quando amostras de referência vizinhas tanto à esquerda quanto acima estiverem disponíveis.
[0030] A figura 13 mostra exemplos de duas amostras vizinhas quando apenas amostras de referência vizinhas acima estiverem disponíveis.
[0031] A figura 14 mostra exemplos de duas amostras vizinhas quando apenas amostras de referência vizinhas à esquerda estiverem
6 / 122 disponíveis.
[0032] A figura 15 mostra exemplos de quatro amostras vizinhas quando amostras de referência vizinhas tanto à esquerda quanto acima estiverem disponíveis.
[0033] A figura 16 mostra um exemplo de tabelas de busca usadas em derivações LM.
[0034] A figura 17 mostra um exemplo de um processo de derivação do parâmetro LM com 64 entradas.
[0035] As figuras 18A e 18B mostram fluxogramas de métodos de exemplo para processamento de vídeo com base em algumas implementações da tecnologia descrita.
[0036] As figuras 19A e 19B mostram fluxogramas de métodos de exemplo para processamento de vídeo com base em algumas implementações da tecnologia descrita.
[0037] As figuras 20A a 20C mostram fluxogramas de outros métodos de exemplo para processamento de vídeo com base em algumas implementações da tecnologia descrita.
[0038] As figuras 21A e 2B são diagramas de blocos de exemplos de plataformas de hardware para implementar uma técnica de decodificação de mídia visual ou de codificação de mídia visual descrita no presente documento.
[0039] As figuras 22A e 22B mostram exemplos do processo de derivação do parâmetro LM com quatro entradas. A figura 31A mostra um exemplo em que amostras vizinhas tanto acima quanto à esquerda estão disponíveis e a figura 31B mostra um exemplo em que apenas amostras vizinhas acima estão disponíveis e de topo-à direita não estão disponíveis.
[0040] A figura 23 mostra exemplos de amostras vizinhas para derivar parâmetros LIC. Descrição Detalhada
7 / 122
[0041] Devido à crescente demanda de vídeo de resolução superior, métodos e técnicas de codificação de vídeo são ubíquos na moderna tecnologia. Codecs de vídeo tipicamente incluem um circuito ou software eletrônico que comprime ou descomprime vídeo digital, e estão sendo continuamente melhorados para prover eficiência de codificação mais alta. Um codec de vídeo converte vídeo não comprimido para um formato comprimido ou vice-versa. Há complexos relacionamentos entre a qualidade de vídeo, a quantidade de dados usados para representar o vídeo (determinada pela taxa de bit), a complexidade dos algoritmos de codificação e decodificação, a sensibilidade às perdas e erros de dados, facilidade de edição, acesso aleatório, e atraso ponta a ponta (latência). O formato comprimido usualmente se conforma a uma especificação de compressão de vídeo padrão, por exemplo, o padrão da Codificação de Vídeo de Alta Eficiência (HEVC) (também conhecido como H.265 ou MPEG-H Parte 2), o padrão da Codificação de Vídeo Versátil (VVC) a ser finalizado, ou outros padrões atuais e/ou futuros de codificação de vídeo.
[0042] As modalidades da tecnologia descrita podem ser aplicadas nos padrões de codificação de vídeo existentes (por exemplo, HEVC, H.265) e padrões futuros para melhorar o desempenho em tempo de execução. Cabeçalhos de seção são usados no presente documento para melhorar a legibilidade da descrição e, de maneira nenhuma, limitam a discussão ou as modalidades (e/ou as implementações) às respectivas seções apenas. 1 Modalidades de previsão de componente cruzado
[0043] A previsão de componente cruzado é uma forma da abordagem de previsão croma para luma que tem uma proporcionalidade bem equilibrada entre complexidade e melhoria da eficiência de compressão.
1.1 Exemplos do modelo linear de componente cruzado (CCLM)
[0044] Em algumas modalidades, e para reduzir a redundância do componente cruzado, um modo de previsão do modelo linear de componente
8 / 122 cruzado (CCLM) (também referido como LM), é usado no JEM, para o qual as amostras de croma são previstas com base nas amostras de luma reconstruídas da mesma CU pelo uso de um modelo linear, como segue: (1)
[0045] Aqui, representa as amostras de croma previstas em uma CU e representa as amostras de luma reconstruídas descendentemente amostradas da mesma CU para formatos de cor 4:2:0 ou 4:2:2, ao mesmo tempo em que representa as amostras de luma reconstruídas da mesma CU para o formato de cor 4:4:4. Os parâmetros de CCLM e são derivados pela minimização do erro de regressão entre as amostras de luma e de croma reconstruídas vizinhas ao redor do bloco atual, como segue: (2) e . (3)
[0046] Aqui, representa as amostras de luma reconstruídas vizinhas de topo e à esquerda descendentemente amostradas (para formatos de cor 4:2:0 ou 4:2:2) ou originais (para formato de cor 4:4:4), representa as amostras de croma reconstruídas vizinhas de topo e à esquerda, e o valor de é igual a duas vezes o mínimo da largura e da altura do atual bloco de codificação de croma.
[0047] Em algumas modalidades, e para um bloco de codificação com uma forma quadrada, as duas equações expostas são aplicadas diretamente. Em outras modalidades, e para um bloco de codificação não quadrado, as amostras vizinhas do contorno mais longo são subamostradas primeiro para ter o mesmo número de amostras do contorno mais curto. A figura 1 mostra o local das amostras reconstruídas à esquerda e acima e da amostra do bloco atual envolvido no modo CCLM.
9 / 122
[0048] Em algumas modalidades, esta computação de minimização do erro de regressão é realizada como parte do processo de decodificação, não somente como uma operação de busca do codificador, portanto, nenhuma sintaxe é usada para conduzir os valores α e β.
[0049] Em algumas modalidades, o modo de previsão CCLM também inclui previsão entre os dois componentes de croma, por exemplo, o componente Cr (diferença de vermelho) é previsto a partir do componente Cb (diferença de azul). Em vez de usar o sinal de amostra reconstruído, a previsão de Cb para Cr do CCLM é aplicada no domínio residual. Isto é implementado pela adição de um resíduo de Cb reconstruído ponderado na intraprevisão de Cr original para formar a previsão de Cr final: (4)
[0050] Aqui, apresenta a amostra residual de Cb reconstruída na posição (i,j).
[0051] Em algumas modalidades, o fator de escala pode ser derivado de uma maneira similar à previsão de luma para croma CCLM. A única diferença é uma adição de um custo de regressão em relação a um valor de padrão na função de erro, de forma que o fator de escala derivado seja predisposto na direção um valor padrão de −0,5, como segue: (5)
[0052] Aqui, representa as amostras de Cb reconstruídas vizinhas, representa as amostras de Cr reconstruídas vizinhas, e é igual a .
[0053] Em algumas modalidades, o modo de previsão luma para croma CCLM é adicionado como um modo de intraprevisão de croma adicional. No lado do codificador, mais uma verificação de custo de RD para os componentes de croma é adicionada para selecionar o modo de intraprevisão de croma. Quando os modos de intraprevisão diferentes do
10 / 122 modo de previsão luma para croma CCLM forem usados para os componentes de croma de uma CU, previsão de Cb para Cr do CCLM é usada para previsão do componente de Cr.
1.2 Exemplos de CCLM de modelos múltiplos
[0054] No JEM, há dois modos CCLM: o modo CCLM de modelo único e o modo CCLM de modelos múltiplos (MMLM). Da forma indicada pelo nome, o modo CCLM de modelo único emprega um modelo linear para prever as amostras de croma a partir das amostras de luma para a íntegra da CU, ao mesmo tempo em que, em MMLM, pode haver dois modelos.
[0055] Em MMLM, amostras de luma vizinhas e amostras de croma vizinhas do bloco atual são classificadas em dois grupos, cada grupo é usado como um conjunto de treinamento para derivar um modelo linear (isto é, α e β em particular são derivados para um grupo em particular). Além do mais, as amostras do atual bloco de luma também são classificadas com base na mesma regra para a classificação das amostras de luma vizinhas.
[0056] A figura 2 mostra um exemplo de classificação das amostras vizinhas em dois grupos. Limite é calculado como o valor médio das amostras de luma reconstruídas vizinhas. Uma amostra vizinha com Rec′L[x,y] <= Limite é classificada no grupo 1; ao mesmo tempo em que uma amostra vizinha com Rec′L[x,y] > Limite é classificada no grupo 2.
(6)
1.3 Exemplos de filtros de amostragem descendente em CCLM
[0057] Em algumas modalidades, e para realizar previsão de componente cruzado, para o formato de croma 4:2:0, em que 4 amostras de luma correspondem a 1 amostra de croma, o bloco de luma reconstruído precisa ser descendentemente amostrado para combinar com o tamanho do sinal de croma. O filtro de amostragem descendente padrão usado no modo CCLM é como segue:
11 / 122 Rec 'L [ x, y ] = {2 × RecL [ 2 x, 2 y ] + 2 × RecL [ 2 x, 2 y + 1] + RecL [ 2 x − 1, 2 y ] + RecL [ 2 x + 1, 2 y ] + (7) RecL [ 2 x − 1, 2 y + 1] + RecL [ 2 x + 1, 2 y + 1] + 4} >> 3
[0058] Aqui, a amostragem descendente considera o relacionamento de fase “tipo 0” da forma mostrada na figura 3A para as posições das amostras de croma em relação às posições das amostras de luma, por exemplo, amostragem colocalizada horizontalmente e amostragem intersticial verticalmente.
[0059] O filtro de amostragem descendente de 6 derivações exemplar definido em (6) é usado como o filtro padrão tanto para o modo CCLM de modelo único quanto para o modo CCLM de modelos múltiplos.
[0060] Em algumas modalidades, e para o modo MMLM, o codificador pode selecionar alternativamente um de quatro filtros de amostragem descendente de luma adicionais para ser aplicado para previsão em uma CU, e enviar um índice de filtro para indicar qual dos mesmos é usado. Os quatro filtros de amostragem descendente de luma selecionáveis para o modo MMLM, da forma mostrada na figura 3B, são como segue: Rec 'L [ x, y ] = ( RecL [ 2 x, 2 y ] + RecL [ 2 x + 1, 2 y ] + 1) >> 1 (8) Rec 'L [ x, y ] = ( RecL [ 2 x + 1, 2 y ] + RecL [ 2 x + 1, 2 y + 1] + 1) >> 1 (9) Rec 'L [ x, y ] = ( RecL [ 2 x, 2 y + 1] + RecL [ 2 x + 1, 2 y + 1] + 1) >> 1 (10) Rec 'L [ x, y] = (RecL [ 2x,2 y] + RecL [ 2x,2 y +1] + RecL [ 2x +1,2 y] + RecL [ 2x +1,2 y +1] + 2) >> 2 (11)
1.4 LM Multidirecional (MDLM)
[0061] Esta implementação existente propõe LM Multidirecional (MDLM). Em MDLM, dois modos CCLM adicionais são propostos: LM-A, em que os parâmetros do modelo linear são derivados apenas com base nas amostras vizinhas de topo (ou vizinhas acima), da forma mostrada na figura 4A, e LM-L, em que os parâmetros do modelo linear são derivados apenas com base nas amostras vizinhas à esquerda, da forma mostrada na figura 4B.
1.5 Simplificação do modelo linear de componente cruzado
12 / 122
[0062] Esta implementação existente propõe substituir o algoritmo LMS dos parâmetros do modelo linear e por uma equação de linha reta, assim denominado método de dois pontos. Os 2 pontos (par de Luma e Croma) (A, B) são os valores mínimo e máximo no interior do conjunto de amostras de luma vizinhas, da forma representada na figura 5.
[0063] Aqui, os parâmetros do modelo linear e são obtidos de acordo com a seguinte equação:
[0064] Em algumas modalidades, a operação de divisão necessária na derivação de é evitada e substituída por multiplicações e deslocamentos, como a seguir: a = 0; iShift = 16; int shift = (uiInternalBitDepth > 8) ? uiInternalBitDepth - 9 : 0; int add = shift ? 1 << (shift - 1) : 0; int diff = (MaxLuma- MinLuma + add) >> shift; se (diff > 0) { int div = ((MaxChroma- MinChroma) * g_aiLMDivTableLow[diff - 1] + 32768) >> 16; a = (((MaxChroma- MinChroma) * g_aiLMDivTableHigh[diff - 1] + div + add) >> shift); } b = MinLuma[1] - ((a * MinLuma[0]) >> iShift); Aqui, S é definido igual a iShift, α é definido igual a a e β é definido igual a b. Além do mais, g_aiLMDivTableLow e g_aiLMDivTableHigh são duas tabelas, cada qual com 512 entradas, em que
13 / 122 cada entrada armazena um número inteiro de 16 bits.
[0065] Para derivar o preditor de croma, quanto à atual implementação de VTM, a multiplicação é substituída por uma operação integral, como o seguinte:
[0066] Esta implementação também é mais simples do que a atual implementação de VTM em virtude de o deslocamento S sempre ter o mesmo valor.
1.6 Exemplos de CCLM em VVC
[0067] CCLM, como em JEM, é adotado em VTM-2.0, mas MM- CCLM em JEM não é adotado em VTM-2.0. MDLM e CCLM simplificado foram adotados em VTM-3.0.
1.7 Exemplos de Compensação de Iluminação Local em JEM
[0068] Compensação de Iluminação Local (LIC) é com base em um modelo linear para mudanças de iluminação, usando um fator de escala a e uma compensação b. E a mesma é habilitada ou desabilitada adaptativamente para cada unidade de codificação (CU) codificado em modo inter.
[0069] Quando LIC se aplicar para uma CU, um método do mínimo erro quadrático é empregado para derivar os parâmetros a e b pelo uso das amostras vizinhas da CU atual e suas correspondentes amostras de referência. Mais especificamente, da forma ilustrada na figura 23, as amostras vizinhas subamostradas (subamostragem 2:1) da CU e os correspondentes pixels (identificados pela informação de movimento da CU atual ou sub-CU) na figura de referência são usadas. Os parâmetros IC são derivados e aplicados para cada direção de previsão separadamente.
[0070] Quando uma CU for codificada com modo de mescla 2Nx2N, o indicador LIC é copiado a partir dos blocos vizinhos, de uma maneira similar à cópia da informação de movimento no modo de mescla; caso contrário, um indicador LIC é sinalizado para a CU para indicar se LIC se
14 / 122 aplica ou não.
[0071] Quando LIC for habilitado para uma figura, verificação de RD no nível da CU adicional é necessária para determinar se LIC é aplicada ou não para uma CU. Quando LIC for habilitado para uma CU, soma de diferença absoluta com média removida (MR-SAD) e soma da diferença absoluta transformada por Hadamard com média removida (MR-SATD) são usadas, em vez de SAD e SATD, para busca de movimento de pixel integral e busca de movimento de pixel fracionário, respectivamente.
[0072] Para reduzir a complexidade da codificação, o seguinte esquema de codificação é aplicado em JEM: LIC é desabilitado para a íntegra da figura quando não houver óbvia mudança de iluminação entre uma figura atual e suas figuras de referência. Para identificar esta situação, histogramas de uma figura atual e cada figura de referência da figura atual são calculados no codificador. Se a diferença do histograma entre a figura atual e cada figura de referência da figura atual for menor do que um dado limite, LIC é desabilitado para a figura atual; caso contrário, LIC é habilitado para a figura atual. 2 Exemplos de desvantagens em implementações existentes
[0073] As atuais implementações introduzem um método de dois pontos para substituir a abordagem LMS do modo LM em JEM. Embora o método inédito diminua o número de adições e multiplicações em CCLM, o mesmo introduz os seguintes problemas: 1) Comparações são introduzidas para encontrar os valores de luma máximo e mínimo, que não são amigáveis a um desenho de software de única instrução, múltiplos dados (SIMD).
[0074] 2) Duas tabelas de busca com 1.024 entradas no total armazenando números de 16 bits são introduzidas, com uma exigência de memória ROM 2K que não é desejável em um desenho de hardware. 3 Métodos exemplares para previsão de componente cruzado na codificação
15 / 122 de vídeo
[0075] As modalidades da tecnologia atualmente descrita superam as desvantagens das implementações existentes, desse modo, provendo a codificação de vídeo com eficiências de codificação superiores e complexidade computacional inferior. As derivações do modelo linear simplificado para previsão de componente cruzado, com base na tecnologia descrita, podem intensificar padrões tanto existentes quanto futuros de codificação de vídeo, são elucidadas nos seguintes exemplos descritos para várias implementações. Os exemplos da tecnologia descrita providos a seguir explicam conceitos gerais, e não pretende-se que sejam interpretados como limitantes. Em um exemplo, a menos que explicitamente indicado ao contrário, as várias características descritas nestes exemplos podem ser combinadas.
[0076] Nos seguintes exemplos e métodos, o termo “método LM” inclui, mas sem limitações, o modo LM em JEM ou VTM, e o modo MMLM em JEM, o modo LM à esquerda que usa apenas as amostras vizinhas à esquerda para derivar o modelo linear, o modo LM acima que usa apenas amostras vizinhas acima para derivar o modelo linear ou outros tipos de métodos que utilizam amostras de reconstrução de luma para derivar blocos de previsão de croma. Todos os modos LM que não são o LM-L nem o LM-A são chamados de modos LM normais.
[0077] Nos seguintes exemplos e métodos, Shift(x, s) é definido como , e SignShift(x, s) é definido como
[0078] Aqui, off é um número inteiro, tais como 0 ou 2s-1.
[0079] A altura e a largura de um bloco de croma atual são denotadas como H e W, respectivamente.
[0080] A figura 6 mostra um exemplo de amostras vizinhas do bloco
16 / 122 de croma atual. Considere que a coordenada da amostra no topo-à esquerda do bloco de croma atual seja denotada como (x, y). Então, as amostras de croma vizinhas (da forma mostrada na figura 6) são denotadas como: A: Amostra de topo à esquerda: [x-1, y], B: Amostra média de topo à esquerda: [x-1, y+H/2-1], C: Amostra média de base à esquerda: [x-1, y+H/2], D: Amostra de base à esquerda: [x-1, y+H-1], E: Amostra de topo de base estendida à esquerda: [x-1, y+H], F: Amostra média de topo de base estendida à esquerda: [x-1, y+H+H/2-1], G: Amostra média de base de base estendida à esquerda: [x-1, y+H+H/2], I: Amostra de base de base estendida à esquerda: [x-1, y+H+H-1], J: Amostra à esquerda acima: [x, y-1], K: Amostra de meio à esquerda acima: [x+W/2-1, y-1], L: Amostra de meio à direita acima: [x+W/2, y-1], M: Amostra à direita acima: [x+W-1, y-1], N: Amostra à esquerda acima estendida acima: [x+W, y-1], O: Amostra de meio à esquerda acima estendida acima: [x+W +W/2-1, y-1], P: Amostra de meio à direita acima estendida acima: [x+W +W/2, y-1], e Q: Amostra à direita acima estendida acima: [x+W +W-1, y- 1].
[0081] Exemplo 1. Os parâmetros α e β nos métodos LM são derivados a partir de amostras de croma em duas ou mais posições específicas.
[0082] a. A derivação também é dependente das correspondentes
17 / 122 amostras de luma descendentemente amostradas das amostras de croma selecionadas. Alternativamente, a derivação também é dependente das correspondentes amostras de luma das amostras de croma selecionadas, tal como quando se tratar do formato de cor 4:4:4.
[0083] b. Por exemplo, os parâmetros α e β em CCLM são derivados a partir de amostras de croma em 2S (por exemplo S=2 ou 3) posições, tais como: i. Posição {A, D, J, M}; ii. Posição {A, B, C, D, J, K, L, M}; iii. Posição {A, I, J, Q}; iv. Posição {A, B, D, I, J, K, M, Q}; v. Posição {A, B, D, F, J, K, M, O}; vi. Posição {A, B, F, I, J, K, O, Q}; vii. Posição {A, C, E, I, J, L, N, Q}; viii. Posição {A, C, G, I, J, L, P, Q}; ix. Posição {A, C, E, G, J, L, N, P}; x. Posição {A, B, C, D}; xi. Posição {A, B, D, I}; xii. Posição {A, B, D, F}; xiii. Posição {A, C, E, I}; xiv. Posição {A, C, G, I}; xv. Posição {A, C, E, G}; xvi. Posição {J, K, L, M}; xvii. Posição {J, K, M, Q}; xviii. Posição {J, K, M, O}; xix. Posição {J, K, O, Q}; xx. Posição {J, L, N, Q}; xxi. Posição {J, L, P, Q}; xxii. Posição {J, L, N, P};
18 / 122 xxiii.
Posição {A, B, C, E, E, F, G, I}; xxiv.
Posição {J, K, L, M, N, O, P, Q}; c.
Por exemplo, os parâmetros α e β em CCLM são derivados a partir de amostras de croma em: i.
Qualquer combinação entre {A, B, C, D, E, F, G, I} e {J, K, L, M, N, O, P, Q}, tais como (a) Posição A e J; (b) Posição B e K; (c) Posição C e L; (d) Posição D e M; (e) Posição E e N; (f) Posição F e O; (g) Posição G e P; (h) Posição I e Q; ii.
Quaisquer duas posições diferentes buscadas a partir de {A, B, C, D, E, F, G, } (a) Posição A e B; (b) Posição A e C; (c) Posição A e D; (d) Posição A e E; (e) Posição A e F; (f) Posição A e G; (g) Posição A e I; (h) Posição D e B; (i) Posição D e C; (j) Posição E e B; (k) Posição E e C; (l) Posição I e B; (m) Posição I e C;
19 / 122 (n) Posição I e D; (o) Posição I e E; (p) Posição I e F; (q) Posição I e G; iii. Quaisquer duas posições diferentes buscadas a partir de {J, K, L, M, N, O, P, Q} (a) Posição J e K; (b) Posição J e L; (c) Posição J e M; (d) Posição J e N; (e) Posição J e O; (f) Posição J e P; (g) Posição J e Q; (h) Posição M e K; (i) Posição M e L; (j) Posição N e K; (k) Posição N e L; (l) Posição Q e K; (m) Posição Q e L; (n) Posição Q e M; (o) Posição Q e N; (p) Posição Q e O; (q) Posição Q e P; (r) Posição Q e Q; iv. Em um exemplo, se as duas posições selecionadas tiverem valor de luma idêntico, mais posições podem ser adicionalmente verificadas.
[0084] d. Por exemplo, nem todas as amostras disponíveis de croma são buscadas para encontrar os valores de luma máximo e mínimo para derivar os parâmetros α e β em CCLM com o método de dois pontos.
20 / 122
[0085] i. Uma amostra de croma dentre K amostras de croma (e suas correspondentes amostras de luma descendentemente amostradas) é incluída no conjunto de busca. K pode ser 2, 4, 6 ou 8.
[0086] (a) Por exemplo, se Rec[x,y] for uma amostra vizinha exposta, a mesma é incluída no conjunto de busca apenas se x%K==0. Se Rec[x,y] for uma amostra vizinha à esquerda, a mesma é incluída no conjunto de busca apenas se y%K==0.
[0087] ii. Apenas amostras de croma em posições específicas, tal como definido em 1.a.i~1.a.xxiv são incluídas no conjunto de busca.
[0088] e. Para modo LM-L, todas as amostras selecionadas devem ser amostras vizinhas à esquerda.
[0089] f. Para modo LM-A, todas as amostras selecionadas devem ser amostras vizinhas acima.
[0090] g. As posições selecionadas podem ser fixas, ou as mesmas podem ser adaptativas.
[0091] i. Em um exemplo, quais posições são selecionadas pode depender da largura e da altura do bloco de croma atual; ii. Em um exemplo, quais posições são selecionadas pode ser sinalizado do codificador para o decodificador, tal como em VPS/SPS/PPS/cabeçalho de fatia/cabeçalho do grupo de quadriculados/quadriculado/CTU/CU/PU.
[0092] h. As amostras de croma selecionadas são usadas para derivar os parâmetros α e β com o método da mínima média quadrática, da forma mostrada em Eq(2) e Eq(3). Em Eq(2) e Eq(3), N é definido para ser o número das amostras selecionadas.
[0093] i. Um par de amostras de croma selecionadas é usado para derivar os parâmetros α e β com o método de dois pontos.
[0094] j. Em um exemplo, como selecionar amostras pode depender da disponibilidade dos blocos vizinhos.
21 / 122
[0095] i. Por exemplo, posições A, D, J e M são selecionadas se blocos vizinhos tanto à esquerda quanto acima estiverem disponíveis; posições A e D são selecionadas se apenas o bloco vizinho à esquerda estiver disponível; e posições J e M são selecionadas se apenas o bloco vizinho acima estiver disponível.
[0096] Exemplo 2. Conjuntos de parâmetros no modo CCLM podem ser primeiramente derivados e, então, combinados para formar o parâmetro final do modelo linear usado para codificação de um bloco. Suponha que α1 e β1 são derivados a partir de um grupo de amostras de croma nas posições específicas denotadas como Grupo 1, α2 e β2 são derivados a partir de um grupo de amostras de croma nas posições específicas denotadas como Grupo 2, … , αN e βN são derivados a partir de um grupo de amostras de croma nas posições específicas denotadas como Grupo N, então, α e β finais podem ser derivados a partir de (α1, β1), … (αN, βN).
[0097] a. Em um exemplo, α é calculado como a média de α1, … αN e β é calculado como a média de β 1, … β N.
[0098] i. Em um exemplo, α=SignShift(α1+ α2, 1), β=SignShift(β1+ β2, 1).
[0099] ii. Em um exemplo, α=Shift(α1+ α2, 1), β=Shift(β1+ β2, 1).
[00100] iii. Se (α1, β1) e (α2, β2) forem com precisão diferente, por exemplo, para obter uma previsão de croma CP a partir de sua correspondente amostra de luma descendentemente amostrada LR, a mesma é calculada como CP = SignShift (α1 × LR + β1 , Sh1 ) com (α1, β1), mas CP = SignShift (α2 × LR + β2 , Sh2 ) com (α2, β2) Sh1 não é igual a Sh2, então, os parâmetros precisam ser deslocados antes de serem combinados. Suponha que Sh1 > Sh2, então, antes da combinação, os parâmetros devem ser deslocados como: (a) α1 = SignShift (α1 , Sh1 − Sh2 ), β1 = SignShift (β1, Sh1 − Sh2 ) . Então, a precisão final é como (α2, β2).
22 / 122
[00101] (b) α1 = Shift (α1, Sh1 − Sh2 ), β1 = Shift (β1, Sh1 − Sh2 ) . Então, a precisão final é como (α2, β2).
[00102] (c) α2 = α2 << (Sh1 − Sh2 ), β2 = β2 << (Sh1 − Sh2 ) . Então, a precisão final é como (α1, β1).
[00103] b. Alguns exemplos das posições no Grupo 1 e no Grupo 2: i. Grupo 1: Posição A e D, Grupo 2: Posição J e M; ii. Grupo 1: Posição A e I, Grupo 2: Posição J e Q; iii. Grupo 1: Posição A e D, Grupo 2: Posição E e I, em que há dois grupos que são usados para o modo LM-L; iv. Grupo 1: Posição J e M, Grupo 2: Posição N e Q, em que há dois grupos que são usados para o modo LM-A; v. Grupo 1: Posição A e B, Grupo 2: Posição C e D, em que há dois grupos que são usados para o modo LM-L; vi. Grupo 1: Posição J e K, Grupo 2: Posição L e M, em que há dois grupos que são usados para o modo LM-A.
[00104] Exemplo 3. Suponha que dois valores da amostra de croma denotados como C0 e C1, e seus correspondentes valores da amostra de luma denotados como L0 e L1 ( L0 < L1) são entradas. O método de dois pontos pode derivar α e β com a entrada como
[00105] As profundidades de bit das amostras de luma e amostras de croma são denotadas como BL e BC. Uma ou mais simplificações para esta implementação incluem: a. α é transmitido como 0 se L1 for igual a L0. Alternativamente, quando L1 for igual a L0, um certo modo de intraprevisão (por exemplo, modo DM, DC ou plano) é usado em vez de usar o modo CCLM para derivar a previsão bloco.
[00106] b. A operação de divisão é substituída por outras operações
23 / 122 sem tabela de busca. A operação de log2 pode ser implementada pela verificação da posição do dígito mais significativo. i. α = Shift (C1 − C0, Floor (log2 ( L1 − L0)) ou α = SignShift (C1 − C0, Floor (log2 ( L1 − L0)) ii. α = Shift (C1 − C0, Ceiling(log2 (L1 − L0)) ou α = SignShift (C1 − C0, Ceiling (log2 ( L1 − L0)) iii. Exemplo i ou Exemplo ii podem ser selecionados com base no valor de L1-L0.
[00107] (a) Por exemplo, Exemplo i é usado se L1-L0<T, caso contrário, Exemplo ii é usado. Por exemplo, T pode ser (Floor(log2 (L1 − L0)) + Ceiling (log2 (L1 − L0))) / 2 .
[00108] (b) Por exemplo, Exemplo i é usado se 3× ( L1 − L0) < 2Floor ( Log2 ( L1−L0))+2 , caso contrário, Exemplo ii é usado.
[00109] (c) Por exemplo, Exemplo i é usado se ( L1 − L0)2 < 22×Floor ( Log2 ( L1− L0))+1 , caso contrário, Exemplo ii é usado.
[00110] c. A operação de divisão é substituída por uma tabela de busca denotada como M[k].
[00111] i. O tamanho da tabela de busca denotada como V é menor do que 2P, em que P é um número inteiro, tais como 5, 6, ou 7.
[00112] ii. Cada entrada da tabela de busca armazena um número inteiro de F-bits, por exemplo, F= 8 ou 16.
[00113] (a) Em um exemplo, M[k-Z]=((1<<S)+Off)/k, em que S é um número inteiro que define a precisão, por exemplo, S=F. Off é uma compensação, por exemplo, Off=(k+Z)>>1. Z define o valor inicial da tabela, por exemplo, Z=1, ou Z=8, ou Z= 32. Uma chave válida k que inquire a tabela mais satisfazer k >= Z.
[00114] iii. k=Shift(L1-L0, W) é usado como a chave para inquirir a tabela de busca.
[00115] (a) Em um exemplo, W depende de BL, V e Z.
24 / 122
[00116] (b) Em um exemplo, W também depende do valor de L1-L0.
[00117] iv. Se k não for uma chave válida para inquirir a tabela de busca (k-Z < 0 ou k-Z >=V), α é transmitido como 0.
[00118] v. Por exemplo, α = Shift ((C1 − C 0) × M [k − Z ], D) , ou α = SignShift ((C1 − C0) × M [k − Z ], D) .
[00119] vi. Para obter um CP da previsão de croma a partir de sua correspondente amostra de luma LR (por exemplo, descendentemente amostrada para 4:2:0), o mesmo é calculado como CP = SignShift (α × LR + β , Sh) , ou CP = Shift (α × LR + β , Sh) .
[00120] vii. Sh pode ser um número fixo, ou o mesmo pode depender dos valores de C0, C1, L0, L1 usados para α e β calculados.
[00121] (a) Sh pode depender de BL, BC, V, S e D.
[00122] (b) D pode depender de Sh.
[00123] viii. O tamanho da tabela de busca denotada como V é igual a 2P, em que P é um número inteiro, tais como 5, 6, 7 ou 8. Alternativamente, V é definido em 2P - M (por exemplo, M é igual a 0).
[00124] ix. Suponha que α = P/Q (por exemplo, Q = L1-L0, P = C1- C0, ou os mesmos são derivados de outras maneiras), então, α é calculado com a tabela de busca como α = Shift(P×M[k−Z], D) ou α = SignShift(P×M[k−Z], D), em que k é a chave (índice) para inquirir uma entrada na tabela de busca.
[00125] (a) Em um exemplo, k é derivado a partir de Q com uma função: k= f(Q).
[00126] (b) Em um exemplo, k é derivado a partir de Q e P, com uma função: k= f(Q, P).
[00127] (c) Em um exemplo, k é válido em uma faixa específica [kMin, kMax]. Por exemplo, kMin = Z e kMax = V+Z.
25 / 122
[00128] (d) Em um exemplo, k=Shift(Q, W), a. W pode depender de BL, V e Z.
[00129] b. W pode depender do valor de Q.
[00130] c. Em um exemplo, quando k for calculado como Shift(Q, W), então, α é calculado com a tabela de busca como α = (Shift(P×M[k−Z], D)) << W ou α = (SignShift(P×M[k−Z], D)) << W.
[00131] (e) Em um exemplo, k é derivado de diferentes maneiras com diferentes valores de Q.
[00132] a. Por exemplo, k= Q quando Q<= kMax, e k = Shift(Q, W) quando Q > kMax. Por exemplo, W é escolhido como o menor número inteiro positivo que torna makes Shift(Q, W) não maior do que kMax.
[00133] b. Por exemplo, k = Min(kMax, Q).
[00134] c. Por exemplo, k = Max(kMin, Min(kMax, Q)).
[00135] (f) Em um exemplo, quando Q < 0, -Q é usado para substituir Q no cálculo. Então –α é transmitido.
[00136] (g) Em um exemplo, quando Q for igual a 0, então, α é definido para ser um valor padrão, tais como 0 ou 1.
[00137] (h) Em um exemplo, quando Q for igual a 2E E>=0, então, α = Shift(P, E) ou α = SignShift(P, E).
[00138] d. Todas as operações para derivar os parâmetros LM devem ser em K bits, K podendo ser 8, 10, 12, 16, 24 ou 32.
[00139] i. Se uma variável intermídia puder exceder a faixa representada pelos bits restritos, a mesma deve ser limitada ou deslocada para a direita para ficar nos bits restritos.
[00140] Exemplo 4. Um único bloco de croma pode usar múltiplos modelos lineares e a seleção de múltiplos modelos lineares é dependente da posição de amostras de croma no bloco de croma.
[00141] a. Em um exemplo, modos LM-L e LM-A podem ser
26 / 122 combinados em um único bloco de croma.
[00142] b. Em um exemplo, algumas amostras são previstas pelo modo LM-L e outras amostras são previstas pelo modo LM-A.
[00143] i. a figura 7 mostra um exemplo. Suponha que a amostra no topo-à esquerda está na posição (0,0). As amostras na posição (x,y) com x>y (ou x>=y) são previstas por LM-A, e outras amostras são previstas por LM-L.
[00144] c. Suponha que as previsões com LM-L e LM-A para uma amostra na posição (x,y) são denotadas como P1(x,y) e P2(x,y), respectivamente, então, a previsão final P(x,y) é calculada como uma soma ponderada de P1(x,y) e P2(x,y).
[00145] i. P(x,y)=w1*P1(x,y)+w2*P2(x,y).
[00146] (a) w1+w2=1.
[00147] ii. P(x,y)=(w1*P1(x,y)+w2*P2(x,y)+Offset)>>shift, em que offset pode ser 0 ou 1<<(shift-1), e shift é um número inteiro, tais como 1, 2, 3….
[00148] (a) w1+w2=1<<shift.
[00149] iii. P(x,y) = (w1*P1(x,y) + ((1<<shift) - w1) * P2(x,y)+Offset) >> shift, em que offset pode ser 0 ou 1<<(shift-1), e shift é um número inteiro, tais como 1, 2, 3….
[00150] iv. w1 e w2 podem depender da posição (x,y) (a) Por exemplo, w1 > w2 (por exemplo, w1=3, w2=1) se x<y, (b) Por exemplo, w1 < w2 (por exemplo, w1=1, w2=3) se x>y, (c) Por exemplo, w1 = w2 (por exemplo, w1=2, w2=2) se x==y, (d) Por exemplo, w1 – w2 aumenta se y-x aumentar quando x <y, (e) Por exemplo, w2 – w1 aumenta se x-y aumentar quando x >y.
[00151] Exemplo 5. É proposto que as amostras vizinhas (incluindo
27 / 122 amostras de croma e suas correspondentes amostras de luma, que podem ser descendentemente amostradas) sejam divididas em N grupos. O máximo valor de luma e o mínimo valor de luma para o k-ésimo grupo (com k = 0, 1,…., N- 1) são denotados como MaxLk e MinLk, e seus correspondente valores de croma são denotados como MaxCk e MinCk, respectivamente.
[00152] a. Em um exemplo, MaxL é calculado como MaxL=f1(MaxLS0, MaxLS1, …, MaxLSm); MaxC é calculado como MaxC=f2(MaxCS0, MaxCS1,…MaxCSm); MinL é calculado como MinL=f3(MinLS0, MinLS1,…MinLSm). MinC é calculado como MinC=f3(MinCS0, MinCS1, …, MinCSm). f1, f2, f3 e f4 são funções. O método de dois pontos deriva α e β com a entrada como: MaxC − MinC α= MaxL − MinL β = MinC − α MinL
[00153] i. Em um exemplo, f1, f2, f3, f4, todos, representam a função de ponderação.
[00154] ii. S0, S1,…Sm são índices de grupos selecionados que são usados para calcular α e β.
[00155] (1) Por exemplo, todos os grupos são usados, por exemplo, S0=0, S1=1,… Sm=N-1.
[00156] (2) Por exemplo, dois grupos são usados, por exemplo, m=1, S0=0, S1 = N-1.
[00157] (3) Por exemplo, nem todos os grupos são usados, por exemplo, m < N-1, S0=0, S1=2, S3= 4, …
[00158] b. Em um exemplo, amostras (ou amostras descendentemente amostradas) localizadas em linhas acima podem ser classificadas para um grupo e amostras (ou amostras descendentemente amostradas) localizadas nas colunas à esquerda de um bloco podem ser classificadas para um outro grupo.
[00159] c. Em um exemplo, amostras (ou amostras descendentemente amostradas) são classificadas com base em seus locais ou coordenadas.
28 / 122
[00160] i. Por exemplos, amostras podem ser classificadas em dois grupos.
[00161] (1) Para uma amostra com coordenada (x,y) localizada nas linhas acima, a mesma é classificada no grupo S0 se x%P = Q, em que P e Q são números inteiros, por exemplo, P = 2, Q =1, P=2, Q = 0 ou P = 4, Q = 0; Caso contrário, a mesma é classificada no grupo S1.
[00162] (2) Para uma amostra com coordenada (x,y) localizada nas colunas à esquerda, a mesma é classificada no grupo S0 se y%P = Q, em que P e Q são números inteiros, por exemplo, P = 2, Q =1, P=2, Q = 0 ou P = 4, Q = 0; Caso contrário, a mesma é classificada no grupo S1.
[00163] (3) Apenas amostras em um grupo, tal como S0, são usadas para encontrar MaxC e MaxL. Por exemplo, MaxL= MaxLS0 e MaxC= MaxCS0.
[00164] d. Em um exemplo, apenas parcial das amostras vizinhas (ou amostras descendentemente amostradas) é usada para dividida em N grupos.
[00165] e. O número de grupos (por exemplo, N) e/ou os índices e/ou as funções de grupo selecionados (f1/f2/f3/f4) podem ser pré-definidos ou sinalizados em SPS/VPS/PPS/cabeçalho de figura/cabeçalho de fatia/cabeçalho do grupo de quadriculados/LCUs/LCU/CUs.
[00166] f. Em um exemplo, como selecionar as amostras para cada grupo pode depender da disponibilidade de blocos vizinhos.
[00167] i. Por exemplo, MaxL0 /MaxC0 e MinL0 /MinC0 são encontrados a partir das posições A e D; MaxL1 /MaxC1 e MinL1 /MinC1 são encontrados a partir das posições J e M, então, MaxL= (MaxL0 + MaxL1 )/ 2, MaxC= (MaxC0 + MaxC1 )/ 2, MinL= (MinL0 + MinL1 )/ 2, MinC= (MinC0 + MinC1 )/ 2, quando blocos vizinhos tanto à esquerda quanto acima estiverem disponíveis.
[00168] ii. Por exemplo, MaxL /MaxC e MinL /MinC são diretamente encontrados a partir das posições A e D quando apenas o bloco vizinho à
29 / 122 esquerda estiver disponível.
[00169] (1) Alternativamente, α e β são definidos igual a alguns valores padrões se o bloco vizinho acima não estiver disponível. Por exemplo, α = 0 e β=1<<(bitDepth -1), em que bitDepth é a profundidade de bit das amostras de croma.
[00170] iii. Por exemplo, MaxL /MaxC e MinL /MinC são diretamente encontrados a partir das posições J e M quando o bloco vizinho acima estiver disponível.
[00171] (1) Alternativamente, α e β são definidos igual a alguns valores padrões se o bloco vizinho à esquerda não estiver disponível. Por exemplo, α = 0 e β=1<<(bitDepth -1), em que bitDepth é a profundidade de bit das amostras de croma.
[00172] g. Em um exemplo, como selecionar as amostras para cada grupo pode depender da largura e da altura do bloco.
[00173] h. Em um exemplo, como selecionar as amostras para cada grupo pode depender dos valores de amostras.
[00174] i. Em um exemplo, as duas amostras com o maior valor de luma e o mínimo valor de luma são escolhidas para estar em um primeiro grupo. E todas as outras amostras estão em um segundo grupo.
[00175] Exemplo 6. É proposto que se e como aplicar modos LM-L e LM-A pode depender da largura (W) e da altura (H) do bloco atual.
[00176] (a) Por exemplo, LM-L não pode ser aplicado se W > K×H. Por exemplo, K = 2.
[00177] (b) Por exemplo, LM-A não pode ser aplicado se H > K×W. Por exemplo, K = 2.
[00178] (c) Se um de LM-L e LM-A não puder ser aplicado, o indicador para indicar se LM-L ou LM-A é usado não deve ser sinalizado.
[00179] Exemplo 7. Um indicador é sinalizado para indicar se modo CCLM é aplicado. O contexto usado em codificação aritmética para codificar
30 / 122 o indicador pode depender se o bloco vizinho de topo-à esquerda, da forma mostrada na figura 8, aplica o modo CCLM ou não.
[00180] (a) Em um exemplo, um primeiro contexto é usado se o bloco vizinho de topo-à esquerda aplicar o modo CCLM; e um segundo contexto é usado se o bloco vizinho de topo-à esquerda não aplicar o modo CCLM.
[00181] (b) Em um exemplo, se o bloco vizinho de topo-à esquerda não estiver disponível, isto é considerado como não aplicação do modo CCLM.
[00182] (c) Em um exemplo, se o bloco vizinho de topo-à esquerda não estiver disponível, isto é considerado como aplicação do modo CCLM.
[00183] (d) Em um exemplo, se o bloco vizinho de topo-à esquerda não for intracodificado, isto é considerado como não aplicação do modo CCLM.
[00184] (e) Em um exemplo, se o bloco vizinho de topo-à esquerda não for intracodificado, isto é considerado como aplicação do modo CCLM.
[00185] Exemplo 8. Indicações ou palavras códigos de modos DM e LM podem ser codificados em diferentes ordens de sequência até sequência/figura até figura/quadriculado até quadriculado/bloco até bloco.
[00186] (a) A ordem de codificação das indicações de LM e DM (por exemplo, codificar primeiramente se for o modo LM, se não, então, codificar se for o modo DM; ou codificar primeiramente se for o modo DM, se não, então, codificar se for o modo LM) pode ser depende da informação de modo de um ou múltiplos blocos vizinhos.
[00187] (b) Em um exemplo, quando o bloco de topo-à esquerda do bloco atual estiver disponível e codificado com modo LM, então, a indicação de modo LM é primeiramente codificada.
[00188] (c) Alternativamente, quando o bloco de topo-à esquerda do bloco atual estiver disponível e codificado com modo DM, então, a indicação de modo DM é primeiramente codificada.
31 / 122
[00189] (d) Alternativamente, quando o bloco de topo-à esquerda do bloco atual estiver disponível e codificado não com LM (por exemplo, o modo DM ou outros modos de intraprevisão excluindo LM), então, a indicação de modo DM é primeiramente codificada.
[00190] (e) Em um exemplo, indicações da ordem podem ser sinalizadas em SPS/VPS/PPS/cabeçalho de figura/cabeçalho de fatia/cabeçalho do grupo de quadriculados/LCUs/LCU/CUs.
[00191] Exemplo 9. Nos exemplos expostos, amostras (ou amostras descendentemente amostradas) podem ser localizadas além da faixa de 2×W amostras vizinhas acima ou 2×H amostras vizinhas à esquerda, da forma mostrada na figura 6.
[00192] (a) Com modo LM ou modo LM-L, pode-se usar uma amostra vizinha RecC[x-1, y+d], em que d está na faixa de [T, S]. T pode ser menor do que 0, e S pode ser maior do que 2H-1. Por exemplo, T = -4 e S = 3H. Em um outro exemplo, T = 0, S = max(2H, W+H). Em ainda um outro exemplo, T = 0 e S = 4H.
[00193] (b) Com modo LM ou modo LM-A, pode-se usar uma amostra vizinha RecC[x+d, y], em que d está na faixa de [T, S]. T pode ser menor do que 0, e S pode ser maior do que 2W-1. Por exemplo, T = -4 e S = 3W. Em um outro exemplo, T = 0, S = max(2W, W+H). Em ainda um outro exemplo, T = 0 e S = 4W.
[00194] Exemplo 10. Em um exemplo, as amostras de croma vizinhas e suas correspondentes amostras de luma (podem ser descendentemente amostradas) são descendentemente amostradas antes da derivação dos parâmetros do modelo linear α e β, da forma descrita nos Exemplos 1-7. Suponha que a largura e a altura do bloco de croma atual são W e H.
[00195] (a) Em um exemplo, se e como conduzir a amostragem descendente pode depender de W e H.
[00196] (b) Em um exemplo, o número de amostras vizinhas usadas
32 / 122 para derivar os parâmetros à esquerda do bloco atual, e o número de amostras vizinhas usadas para derivar os parâmetros acima do bloco atual, devem ser os mesmos depois do processo de amostragem descendente.
[00197] (c) Em um exemplo, as amostras de croma vizinhas e suas correspondentes amostras de luma (podem ser descendentemente amostradas) não são descendentemente amostradas se W for igual a H.
[00198] (d) Em um exemplo, as amostras de croma vizinhas e suas correspondentes amostras de luma (podem ser descendentemente amostradas) à esquerda do bloco atual são descendentemente amostradas se W < H.
[00199] (i) Em um exemplo, uma amostra de croma em cada uma das amostras de croma H/W é escolhida para ser usada para derivar α e β. Outras amostras de croma são descartadas. Por exemplo, suponha que R[0, 0] representa a amostra no topo-à esquerda do bloco atual, então, R[-1, K*H/W], K de 0 a W-1, são escolhidos para serem usados para derivar α e β.
[00200] (e) Em um exemplo, as amostras de croma vizinhas e suas correspondentes amostras de luma (podem ser descendentemente amostradas) acima do bloco atual são descendentemente amostradas se W > H.
[00201] (ii) Em um exemplo, uma amostra de croma em cada uma das amostras de croma W/H é escolhida para ser usada para derivar α e β. Outras amostras de croma são descartadas. Por exemplo, suponha que R[0, 0] representa a amostra no topo-à esquerda do bloco atual, então, R[ K*W/H, - 1], K de 0 a H-1, são escolhidos para serem usados para derivar α e β.
[00202] (ii) A figura 9 mostra exemplos de amostras a serem captadas quando a posição D e a posição M na figura 6 forem usadas para derivar α e β, e amostragem descendente realizada quando W>H.
[00203] Exemplo 11. Amostras descendentemente amostradas/originalmente reconstruídas vizinhas e/ou amostras descendentemente amostradas/originalmente reconstruídas podem ser adicionalmente refinadas antes de ser usadas no processo de previsão de
33 / 122 modelo linear ou no processo de previsão do componente de cor cruzada.
[00204] (a) “Para ser refinado” pode se referir a um processamento de filtragem.
[00205] (b) “Para ser refinado” pode se referir a qualquer processamento não linear.
[00206] (c) É proposto que diversas amostras vizinhas (incluindo amostras de croma e suas correspondentes amostras de luma, que podem ser descendentemente amostradas) sejam captadas para calcular C1, C0, L1 e L0, a fim de derivar α e β, tal como α = (C1−C0) / (L1−L0) e β = C0 − αL0.
[00207] (d) Em um exemplo, S amostras de luma vizinhas (podem ser descendentemente amostradas) denotadas como Lx1, Lx2,…, LxS, e suas correspondentes amostras de croma denotados como Cx1, Cx2, … CxS são usadas para derivar C0 e L0, e T amostras de luma vizinhas (podem ser descendentemente amostradas) denotadas como Ly1, Ly2,…, LyT, e suas correspondentes amostras de croma denotadas como Cy1, Cy2, … CyT são usadas para derivar C1 e L1 como: (i) C0=f0(Cx1, Cx2, … CxS), L0=f1(Lx1, Lx2, … LxS), C1=f2(Cy1, Cy2, … CyT), L1=f4(Ly1, Ly2, … LyT). f0, f1, f2 e f3 são quaisquer funções.
[00208] (ii) Em um exemplo, f0 é idêntica a f1.
[00209] (iii) Em um exemplo, f2 é idêntica a f3.
[00210] (iv) Em um exemplo, f0 f1 f2 f3 são idênticas.
[00211] 1. Por exemplo, as mesmas são, todas, a função de ponderação.
[00212] (v) Em um exemplo, S é igual a T.
[00213] 1. Em um exemplo, o conjunto {x1,x2,…xS} é idêntico ao conjunto {y1, y2, …, yT}.
[00214] (vi) Em um exemplo, Lx1, Lx2,…, LxS são escolhidos como as menores S amostras de luma de um grupo de amostras de luma.
[00215] 1. Por exemplo, o grupo de amostras de luma inclui todas as
34 / 122 amostras vizinhas usadas em VTM-3.0 para derivar parâmetros lineares do CCLM.
[00216] 2. Por exemplo, o grupo de amostras de luma inclui amostras vizinhas parciais usadas em VTM-3.0 para derivar parâmetros lineares do CCLM.
[00217] a. Por exemplo, o grupo de amostras de luma inclui quatro amostras, da forma mostrada nas figuras 2-5.
[00218] (vii) Em um exemplo, Ly1, Ly2,…, LyS são escolhidos como as maiores S amostras de luma de um grupo de amostras de luma.
[00219] 1. Por exemplo, o grupo de amostras de luma inclui todas as amostras vizinhas usadas em VTM-3.0 para derivar parâmetros lineares do CCLM.
[00220] 2. Por exemplo, o grupo de amostras de luma inclui amostras vizinhas parciais usadas em VTM-3.0 para derivar parâmetros lineares do CCLM.
[00221] a. Por exemplo, o grupo de amostras de luma inclui quatro amostras, da forma mostrada nas figuras 2-5.
[00222] Exemplo 12. É proposto selecionar outras amostras vizinhas ou vizinhas descendentemente amostradas com base na maior amostra vizinha ou vizinha descendentemente amostrada em um dado conjunto de amostras vizinhas ou vizinhas descendentemente amostradas.
[00223] (a) Em um exemplo, denota-se que a maior amostra vizinha ou vizinha descendentemente amostrada fica localizada na posição (x0, y0). Então, as amostras na região (x0-d1, y0), (x0, y0-d2), (x0+d3, y0), (x0, y0+d4) podem ser utilizadas para selecionar outras amostras. Números inteiros {d1, d2, d3, d4} podem depender da posição (x0, y0). Por exemplo, se (x0, y0) estiver à esquerda do bloco atual, então, d1 = d3 = 1 e d2=d4=0. Se (x0,y0) estiver acima do bloco atual, então, d1 = d3=0 e d2=d4 = 1.
[00224] (b) Em um exemplo, denota-se que a menor amostra vizinha
35 / 122 ou vizinha descendentemente amostrada fica localizada na posição (x1, y1). Então, as amostras na região (x1-d1, y1), (x1, y1-d2), (x1+d3, y1), (x1, y1+d4) podem ser utilizadas para selecionar outras amostras. Números inteiros {d1, d2, d3, d4} podem depender da posição (x1, y1). Por exemplo, se (x1, y1) estiver à esquerda do bloco atual, então, d1 = d3 = 1 e d2=d4=0. Se (x1,y1) estiver acima do bloco atual, então, d1 = d3=0 e d2=d4 = 1.
[00225] (c) Em um exemplo, as amostras acima estão representando amostras de um componente de cor (por exemplo, componente de cor de luma). As amostras usadas no processo de CCLM/componente de cor cruzada podem ser derivadas pelas correspondentes coordenadas de um segundo componente de cor.
[00226] (d) Maneira similar pode ser usada para derivar amostras menores.
[00227] Exemplo 13: Em exemplos expostos, luma e croma podem ser comutados. Alternativamente, o componente de cor de luma pode ser substituído pelo componente de cor principal (por exemplo, G), e o componente de cor de croma pode ser substituído pelo componente de cor dependente (por exemplo, B ou R).
[00228] Exemplo 14. Seleção de locais das amostras de croma (e/ou correspondentes amostras de luma) pode depender da informação de modo codificada.
[00229] (a) Alternativamente, além do mais, isto pode depender da disponibilidade de amostras vizinhas, tal como se a coluna à esquerda ou a linha acima ou a linha acima-à direita ou a coluna abaixo-à esquerda está disponível. A figura 10 representa os conceitos de coluna à esquerda/linha acima/linha acima-à direita/coluna abaixo-à esquerda em relação a um bloco.
[00230] (b) Alternativamente, além do mais, isto pode depender da disponibilidade de amostras localizadas em certas posições, tal como se a 1ª amostra de topo-à direita e/ou a 1ª amostra abaixo-à esquerda estão
36 / 122 disponíveis.
[00231] (c) Alternativamente, além do mais, isto pode depender das dimensões de bloco.
[00232] (i) Alternativamente, além do mais, isto pode depender da razão entre a largura e a altura de atual bloco de croma (e/ou de luma).
[00233] (ii) Alternativamente, além do mais, isto pode depender se a largura e/ou altura é igual a K (por exemplo, K = 2).
[00234] (d) Em um exemplo, quando o modo atual for um modo LM normal, as seguintes maneiras podem ser aplicadas para selecionar amostras de croma (e/ou amostras de luma descendentemente amostradas ou não descendentemente amostradas): (i) Se tanto a coluna à esquerda quanto a linha acima estiverem disponíveis, duas amostras da coluna à esquerda e duas da linha acima podem ser selecionadas. As mesmas podem estar localizadas em (suponha que a coordenada de topo-à esquerda do bloco atual é (x, y)):
1. (x-1, y), (x, y-1), (x-1, y+H-1) e (x + W-1, y-1)
2. (x-1, y), (x, y-1), (x-1, y + H - H/W -1) e (x + W-1, y-1). Por exemplo, quando H for maior do que W
3. (x-1, y), (x, y-1), (x-1, y + H -1) e (x + W - W/H-1, y-1). Por exemplo, quando H for menor do que W
4. (x-1, y), (x, y-1), (x-1, y + H – max(1, H/W)) e (x + W- max(1, W/H), y-1).
[00235] (ii) Se apenas a linha acima estiver disponível, amostras são selecionadas apenas a partir da linha acima.
[00236] 1. Por exemplo, quatro amostras da linha acima podem ser selecionadas.
[00237] 2. Por exemplo, duas amostras podem ser selecionadas.
[00238] 3. Como selecionar as amostras pode depender da largura/altura. Por exemplo, quatro amostras são selecionadas quando W>2 e
37 / 122 duas amostras são selecionadas quando W=2.
[00239] 4. As amostras selecionadas podem estar localizadas em (suponha que a coordenada de topo-à esquerda do bloco atual é (x, y)): a. (x, y-1), (x + W/4, y-1), (x + 2*W/4, y-1), (x + 3*W/4, y – 1) b. (x, y-1), (x + W/4, y-1), (x + 3*W/4, y – 1), (x + W-1, y -1) c. (x, y-1), (x + (2W)/4, y-1), (x + 2*(2W)/4, y-1), (x + 3*(2W)/4, y – 1).
[00240] Por exemplo, quando a linha de topo-à direita estiver disponível, ou quando a 1ª amostra de topo-à direita estiver disponível.
[00241] d. (x, y-1), (x + (2W)/4, y-1), (x + 3*(2W)/4, y – 1), (x + (2W)-1, y -1).
[00242] Por exemplo, quando a linha de topo-à direita estiver disponível, ou quando a 1ª amostra de topo-à direita estiver disponível.
[00243] (iii) Se apenas a coluna à esquerda estiver disponível, as amostras são selecionadas apenas a partir da coluna à esquerda.
[00244] 1. Por exemplo, quatro amostras de coluna à esquerda podem ser selecionadas;
2. Por exemplo, duas amostras de coluna à esquerda podem ser selecionadas;
3. Como selecionar as amostras pode depender da largura/altura. Por exemplo, quatro amostras são selecionadas quando H>2 e duas amostras são selecionadas quando H=2.
[00245] 4. As amostras selecionadas podem estar localizadas em: a. (x-1, y), (x -1, y + H/4), (x -1, y + 2*H/4), (x -1, y + 3*H/4) b. (x-1, y), (x - 1, y+ 2*H/4), (x -1, y + 3*H/4) , (x -1, y + H-1) c. (x-1, y), (x -1, y + (2H)/4), (x -1, y + 2*(2H)/4), (x -1, y + 3*(2H)/4).
[00246] Por exemplo, quando a coluna abaixo-à esquerda estiver
38 / 122 disponível, ou quando a 1ª amostra abaixo-à esquerda estiver disponível.
[00247] d. (x-1, y), (x - 1, y+ 2*(2H)/4), (x -1, y + 3*(2H)/4) , (x -1, y + (2H)-1).
[00248] Por exemplo, quando a coluna abaixo-à esquerda estiver disponível, ou quando a 1ª amostra abaixo-à esquerda estiver disponível.
[00249] (iv) Para os exemplos expostos, apenas duas das quatro amostras podem ser selecionadas.
[00250] (e) Em um exemplo, quando o modo atual for o modo LM-A, o mesmo pode escolher amostras de acordo com Exemplo 11(d)(ii).
[00251] (f) Em um exemplo, quando o modo atual for o modo LM-L, o mesmo pode escolher amostras de acordo com Exemplo 11(d)(iii).
[00252] (g) As amostras de luma selecionadas (por exemplo, de acordo com os locais de croma selecionados) podem ser agrupadas em 2 grupos, uma sendo com o maior valor e o menor valor de todas as amostras selecionadas, o outro grupo sendo com todas as amostras restantes.
[00253] (i) Os dois valores máximos de 2 grupos são ponderados como o máximo valor no método de 2 pontos; os dois valores mínimos de 2 grupos são ponderados como o mínimo valor no método de 2 pontos para derivar parâmetros LM.
[00254] (ii) Quando houver apenas 4 amostras selecionadas, dois maiores valores de amostra são ponderados, dois menores valores de amostra são ponderados, e os valores ponderados são usados como a entrada no método de 2 pontos para derivar parâmetros LM.
[00255] Exemplo 15. Nos exemplos expostos, luma e croma podem ser comutados. Alternativamente, o componente de cor de luma pode ser substituído pelo componente de cor principal (por exemplo, G), e o componente de cor de croma pode ser substituído pelo componente de cor dependente (por exemplo, B ou R).
[00256] Exemplo 16. É proposto selecionar as amostras vizinhas de
39 / 122 croma expostas (e/ou suas correspondentes amostras de luma que podem ser descendentemente amostradas) com base em um primeiro valor de deslocamento da posição (denotado como F) e um valor de passo (denotado como S). Suponha que a largura das amostras vizinhas acima disponíveis a serem usadas é W.
[00257] a. Em um exemplo, W pode ser definido na largura do bloco atual.
[00258] b. Em um exemplo, W pode ser definido em (L* largura do bloco atual), em que L é um valor integral.
[00259] c. Em um exemplo, quando blocos tanto acima quanto à esquerda estiverem disponíveis, W pode ser definido na largura do bloco atual.
[00260] i. Alternativamente, quando o bloco à esquerda não estiver disponível, W pode ser definido em (L* largura do bloco atual), em que L é um valor integral.
[00261] ii. Em um exemplo, L pode ser dependente da disponibilidade do bloco de topo-à direita. Alternativamente, L pode depender da disponibilidade de uma amostra no topo-à esquerda.
[00262] d. Em um exemplo, W pode depender do modo codificado.
[00263] i. Em um exemplo, W pode ser definido na largura do bloco atual se o bloco atual for codificado como modo LM; ii. W pode ser definido em (L* largura do bloco atual), em que L é um valor integral se o bloco atual for codificado como modo LM-A.
[00264] (a) L pode ser dependente da disponibilidade do bloco de topo- à direita. Alternativamente, L pode depender da disponibilidade de uma amostra no topo-à esquerda.
[00265] e. Suponha que a coordenada de topo-à esquerda do bloco atual é (x0, y0), então, as amostras vizinhas acima nas posições (x0+F+K×S, y0-1) com K =0, 1, 2,…kMax são selecionadas.
40 / 122
[00266] f. Em um exemplo, F= W/P. P é um número inteiro.
[00267] i. Por exemplo, P = 2i, em que i é um número inteiro, tais como 1 ou 2.
[00268] ii. Alternativamente, F=W/P+Offset.
[00269] g. Em um exemplo, S= W/Q. Q é um número inteiro.
[00270] i. Por exemplo, Q = 2j, em que j é um número inteiro, tais como 1 ou 2.
[00271] h. Em um exemplo, F= S/R. R é um número inteiro.
[00272] i. Por exemplo, R = 2m, em que m é um número inteiro, tais como 1 ou 2.
[00273] i. Em um exemplo, S= F/Z. Z é um número inteiro.
[00274] i. Por exemplo, Z = 2n, em que n é um número inteiro, tais como 1 ou 2.
[00275] j. kMax e/ou F e/ou S e/ou offset podem depender do modo de previsão (tais como LM, LM-A ou LM-L) do bloco atual; k. kMax e/ou F e/ou S e/ou offset podem depender da largura e/ou da altura do bloco atual.
[00276] l. kMax e/ou F e/ou S e/ou offset podem depender da disponibilidade de amostras vizinhas.
[00277] m. kMax e/ou F e/ou S e/ou offset podem depender de W.
[00278] n. Por exemplo, kMax=1, F= W/4, S= W/2, offset = 0. Alternativamente, além do mais, os ajustes são feitos se o bloco atual for codificado em LM, as amostras vizinhas tanto à esquerda quanto acima estiverem disponíveis, e W>=4.
[00279] o. Por exemplo, kMax=3, F= W/8, S= W/4, offset = 0. Alternativamente, além do mais, os ajustes são feitos se o bloco atual for codificado em LM, apenas amostras vizinhas acima estiverem disponíveis, e W>=4.
[00280] p. Por exemplo, kMax=3, F= W/8, S= W/4, offset = 0.
41 / 122 Alternativamente, além do mais, os ajustes são feitos se o bloco atual for codificado em LM-A e W>=4.
[00281] q. Por exemplo, kMax=1, F= 0, S= 1, offset = 0. Alternativamente, além do mais, os ajustes são feitos se W for igual a 2.
[00282] Exemplo 17. É proposto selecionar as amostras de croma vizinhas à esquerda (e/ou suas correspondentes amostras de luma que podem ser descendentemente amostradas) com base em um primeiro valor de deslocamento da posição (denotado como F) e um valor de passo (denotado como S). Suponha que a altura das amostras vizinhas à esquerda disponíveis a serem usadas é H.
[00283] a. Em um exemplo, H pode ser definido na altura do bloco atual.
[00284] b. Em um exemplo, H pode ser definido em (L* altura de bloco atual), em que L é um valor integral.
[00285] c. Em um exemplo, quando blocos tanto acima quanto à esquerda estiverem disponíveis, H pode ser definido na altura do bloco atual.
[00286] i. Alternativamente, quando o bloco acima não estiver disponível, H pode ser definido em (L* altura do bloco atual), em que L é um valor integral.
[00287] ii. Em um exemplo, L pode ser dependente da disponibilidade do bloco abaixo-à esquerda. Alternativamente, L pode ser dependente da disponibilidade de uma amostra abaixo-à esquerda.
[00288] iii. Alternativamente, H pode ser definido em (altura do bloco atual + largura do bloco atual) se os blocos vizinhos acima-à direita exigidos estiverem disponíveis.
[00289] (a) Em um exemplo, as mesmas H amostras vizinhas acima são escolhidas para modo LM-A e modo LM quando amostras vizinhas à esquerda estiverem indisponíveis.
[00290] d. Em um exemplo, H pode depender do modo codificado.
42 / 122
[00291] i. Em um exemplo, H pode ser definido na altura do bloco atual se o bloco atual for codificado como modo LM; ii. W pode ser definido em (L* altura do bloco atual), em que L é um valor integral se o bloco atual for codificado como modo LM-L.
[00292] (a) L pode ser dependente da disponibilidade do bloco abaixo- à esquerda. Alternativamente, L pode depender da disponibilidade de uma amostra no topo-à esquerda.
[00293] (b) Alternativamente, W pode ser definido em (altura do bloco atual + largura do bloco atual) se os blocos vizinhos abaixo-à esquerda exigidos estiverem disponíveis.
[00294] (c) Em um exemplo, as mesmas W amostras vizinhas à esquerda são escolhidas para modo LM-L e modo LM quando amostras vizinhas acima estiverem indisponíveis.
[00295] e. Suponha que a coordenada de topo-à esquerda do bloco atual é (x0, y0), então, as amostras vizinhas à esquerda nas posições (x0-1, y0+F+K×S) com K =0, 1, 2,…kMax são selecionadas.
[00296] f. Em um exemplo, F= H/P. P é um número inteiro.
[00297] i. Por exemplo, P = 2i, em que i é um número inteiro, tais como 1 ou 2.
[00298] ii. Alternativamente, F=H/P+Offset.
[00299] g. Em um exemplo, S= H/Q. Q é um número inteiro.
[00300] i. Por exemplo, Q = 2j, em que j é um número inteiro, tais como 1 ou 2.
[00301] h. Em um exemplo, F= S/R. R é um número inteiro.
[00302] i. Por exemplo, R = 2m, em que m é um número inteiro, tais como 1 ou 2.
[00303] i. Em um exemplo, S= F/Z. Z é um número inteiro.
[00304] i. Por exemplo, Z = 2n, em que n é um número inteiro, tais como 1 ou 2.
43 / 122
[00305] j. kMax e/ou F e/ou S e/ou offset podem depender do modo de previsão (tais como LM, LM-A ou LM-L) do bloco atual; k. kMax e/ou F e/ou S e/ou offset podem depender da largura e/ou da altura do bloco atual.
[00306] l. kMax e/ou F e/ou S e/ou offset podem depender de H.
[00307] m. kMax e/ou F e/ou S e/ou offset podem depender da disponibilidade de amostras vizinhas.
[00308] n. Por exemplo, kMax=1, F= H/4, S= H/2, offset = 0. Alternativamente, além do mais, os ajustes são feitos se o bloco atual for codificado em LM, as amostras vizinhas tanto à esquerda quanto acima estiverem disponíveis, e H>=4.
[00309] o. Por exemplo, kMax=3, F= H/8, S= H/4, offset = 0. Alternativamente, além do mais, os ajustes são feitos se o bloco atual for codificado em LM, apenas amostras vizinhas acima estiverem disponíveis, e H>=4.
[00310] p. Por exemplo, kMax=3, F= H/8, S= H/4, offset = 0. Alternativamente, além do mais, os ajustes são feitos se o bloco atual for codificado LM-L e H>=4.
[00311] q. Por exemplo, kMax=1, F= 0, S= 1, offset = 0 se H for igual a 2.
[00312] Exemplo 18: É proposto que duas ou quatro amostras de croma vizinhas (e/ou suas correspondentes amostras de luma que podem ser descendentemente amostradas) sejam selecionadas para derivar os parâmetros do modelo linear.
[00313] a. Em um exemplo, maxY/maxC e minY/minC são derivados a partir de duas ou quatro amostras de croma vizinhas (e/ou suas correspondentes amostras de luma que podem ser descendentemente amostradas), e são, então, usadas para derivar os parâmetros do modelo linear com a abordagem de 2 pontos.
44 / 122
[00314] b. Em um exemplo, se houver duas amostras de croma vizinhas (e/ou suas correspondentes amostras de luma que podem ser descendentemente amostradas) que são selecionados para derivar o maxY/maxC e o minY/minC, minY é definido para ser o menor valor da amostra de luma e minC é seu correspondente valor da amostra de croma; maxY é definido para ser o maior valor da amostra de luma e maxC é seu correspondente valor da amostra de croma.
[00315] c. Em um exemplo, se houver quatro amostras de croma vizinhas (e/ou suas correspondentes amostras de luma que podem ser descendentemente amostradas) que são selecionadas para derivar o maxY/maxC e o minY/minC, as amostras de luma e suas correspondentes amostras de croma são divididas em dois arranjos G0 e G1, cada qual contém duas amostras de luma e suas correspondentes amostras de luma.
[00316] i. Suponha que as quatro amostras de luma e suas correspondentes amostras de croma são denotadas como S0, S1, S2, S3, então, as mesmas podem ser divididas em dois grupos em qualquer ordem. Por exemplo: (a) G0={S0, S1}, G1={S2, S3}; (b) G0={ S1, S0}, G1={S3, S2}; (c) G0={S0, S2}, G1={S1, S3}; (d) G0={S2, S0}, G1={S3, S1}; (e) G0={S1, S2}, G1={S0, S3}; (f) G0={S2, S1}, G1={S3, S0}; (g) G0={S0, S3}, G1={S1, S2}; (h) G0={S3, S0}, G1={S2, S1}; (i) G0={S1, S3}, G1={S0, S2}; (j) G0={S3, S1}, G1={S2, S0}; (k) G0={S3, S2}, G1={S0, S1}; (l) G0={S2, S3}, G1={S1, S0};
45 / 122 (m) G0 e G1 podem ser trocados.
[00317] ii. Em um exemplo, os valores da amostra de luma de G0[0] e G0[1] são comparados, se o valor da amostra de luma de G0[0] for maior do que o valor da amostra de luma de G0[1], a amostra de luma e sua correspondente amostra de croma de G0[0] são trocadas com aquelas de G0[1].
[00318] (a) Alternativamente, se o valor da amostra de luma de G0[0] for maior do que ou igual ao valor da amostra de luma de G0[1], a amostra de luma e sua correspondente amostra de croma de G0[0] são trocadas com aquelas de G0[1].
[00319] (b) Alternativamente, se o valor da amostra de luma de G0[0] for menor do que o valor da amostra de luma de G0[1], a amostra de luma e sua correspondente amostra de croma de G0[0] são trocadas com aquelas de G0[1].
[00320] (c) Alternativamente, se o valor da amostra de luma de G0[0] for menor do que ou igual ao valor da amostra de luma de G0[1], a amostra de luma e sua correspondente amostra de croma de G0[0] são trocadas com aquelas de G0[1].
[00321] iii. Em um exemplo, os valores da amostra de luma de G1[0] e G1[1] são comparados, se o valor da amostra de luma de G1[0] for maior do que o valor da amostra de luma de G1[1], a amostra de luma e sua correspondente amostra de croma de G1[0] são trocadas com aquelas de G1[1].
[00322] (a) Alternativamente, se o valor da amostra de luma de G1[0] for maior do que ou igual ao valor da amostra de luma de G1[1], a amostra de luma e sua correspondente amostra de croma de G1[0] são trocadas com aquelas de G1[1].
[00323] (b) Alternativamente, se o valor da amostra de luma de G1[0] for menor do que o valor da amostra de luma de G1[1], a amostra de luma e
46 / 122 sua correspondente amostra de croma de G1[0] são trocadas com aquelas de G1[1].
[00324] (c) Alternativamente, se o valor da amostra de luma de G1[0] for menor do que ou igual ao valor da amostra de luma de G1[1], a amostra de luma e sua correspondente amostra de croma de G1[0] são trocadas com aquelas de G1[1].
[00325] iv. Em um exemplo, os valores da amostra de luma de G0[0] e G1[1] são comparados, se o valor da amostra de luma de G0[0] for maior do que (ou menor do que, ou não maior do que, ou não menor do que) o valor da amostra de luma de G1[1], então, G0 e G1 são trocados.
[00326] (a) Em um exemplo, os valores da amostra de luma de G0[0] e G1[0] são comparados, se o valor da amostra de luma de G0[0] for maior do que (ou menor do que, ou não maior do que, ou não menor do que) o valor da amostra de luma de G1[0], então, G0 e G1 são trocados.
[00327] (b) Em um exemplo, os valores da amostra de luma de G0[1] e G1[0] são comparados, se o valor da amostra de luma de G0[1] for maior do que (ou menor do que, ou não maior do que, ou não menor do que) o valor da amostra de luma de G1[0], então, G0 e G1 são trocados.
[00328] (c) Em um exemplo, os valores da amostra de luma de G0[1] e G1[1] são comparados, se o valor da amostra de luma de G0[1] for maior do que (ou menor do que, ou não maior do que, ou não menor do que) o valor da amostra de luma de G1[1], então, G0 e G1 são trocados.
[00329] v. Em um exemplo, os valores da amostra de luma de G0[0] e G1[1] são comparados, se o valor da amostra de luma de G0[0] for maior do que (ou menor do que, ou não maior do que, ou não menor do que) o valor da amostra de luma de G1[1], então, G0[0] e G1[1] são trocados.
[00330] (a) Em um exemplo, os valores da amostra de luma de G0[0] e G1[0] são comparados, se o valor da amostra de luma de G0[0] for maior do que (ou menor do que, ou não maior do que, ou não menor do que) o valor da
47 / 122 amostra de luma de G1[0], então, G0[0] e G1[0] são trocados.
[00331] (b) Em um exemplo, os valores da amostra de luma de G0[1] e G1[0] são comparados, se o valor da amostra de luma de G0[1] for maior do que (ou menor do que, ou não maior do que, ou não menor do que) o valor da amostra de luma de G1[0], então, G0[1] e G1[0] são trocados.
[00332] (c) Em um exemplo, os valores da amostra de luma de G0[1] e G1[1] são comparados, se o valor da amostra de luma de G0[1] for maior do que (ou menor do que, ou não maior do que, ou não menor do que) o valor da amostra de luma de G1[1], então, G0[1] e G1[1] são trocados.
[00333] vi. Em um exemplo, maxY é calculado como a média dos valores da amostra de luma de G0[0] e G0[1], maxC é calculado como a média dos valores da amostra de croma de G0[0] e G0[1].
[00334] (a) Alternativamente, maxY é calculado como a média dos valores da amostra de luma de G1[0] e G1[1], maxC é calculado como a média dos valores da amostra de croma de G1[0] e G1[1].
[00335] vii. Em um exemplo, minY é calculado como a média dos valores da amostra de luma de G0[0] e G0[1], minC é calculado como a média dos valores da amostra de croma de G0[0] e G0[1].
[00336] Alternativamente, minY é calculado como a média dos valores da amostra de luma de G1[0] e G1[1], minC é calculado como a média dos valores da amostra de croma de G1[0] e G1[1].
[00337] d. Em um exemplo, se houver apenas duas amostras de croma vizinhas (e/ou suas correspondentes amostras de luma que podem ser descendentemente amostradas) que estão disponíveis, as mesmas são primeiro enchidas para compreender quatro amostras de croma (e/ou suas correspondentes amostras de luma), então, as quatro amostras de croma (e/ou suas correspondentes amostras de luma) são usados para derivar os parâmetros de CCLM.
[00338] i. Em um exemplo, duas amostras de croma de enchimento
48 / 122 (e/ou suas correspondentes amostras de luma) são copiadas a partir de duas amostras de croma vizinhas disponíveis (e/ou suas correspondentes amostras de luma que podem ser descendentemente amostradas).
[00339] Exemplo 19: Em todos os exemplos expostos, as amostras de croma selecionadas devem estar localizadas na linha acima (isto é, com W amostras), da forma representada na figura 10, e/ou na coluna à esquerda (isto é, com H amostras), em que W e H são a largura e a altura do bloco atual.
[00340] a. Alternativamente, a restrição exposta pode ser aplicada quando o bloco atual for codificado com o modo LM normal.
[00341] b. Alternativamente, as amostras de croma selecionadas devem estar localizadas na linha acima (isto é, com W amostras) e na linha acima-à direita com H amostras.
[00342] i. Alternativamente, além do mais, a restrição exposta pode ser aplicada quando o bloco atual for codificado com o modo LM-A.
[00343] ii. Alternativamente, além do mais, a restrição exposta pode ser aplicada quando o bloco atual for codificado com o modo LM-A ou o modo LM normal com linha acima disponível, mas coluna à esquerda está indisponível.
[00344] c. Alternativamente, as amostras de croma selecionadas devem estar localizadas na coluna à esquerda (isto é, com H amostras) e na coluna abaixo-à esquerda com W amostras.
[00345] i. Alternativamente, além do mais, a restrição exposta pode ser aplicada quando o bloco atual for codificado com o modo LM-L.
[00346] ii. Alternativamente, além do mais, a restrição exposta pode ser aplicada quando o bloco atual for codificado com o modo LM-L ou o modo LM normal com linha acima indisponível, mas coluna à esquerda está disponível. Exemplo 20
[00347] Em um exemplo, apenas as amostras vizinhas de luma nas
49 / 122 posições em que as correspondentes amostras de croma forem exigidas para derivar os parâmetros de CCLM precisam ser descendentemente amostradas. Exemplo 21
[00348] Como conduzir os métodos descritos neste documento pode depender do formato de cor (tais como 4:2:0 ou 4:4:4).
[00349] a. Alternativamente, como conduzir os métodos descritos neste documento pode depender da profundidade de bit (tais como 8 bits ou 10 bits).
[00350] b. Alternativamente, como conduzir os métodos descritos neste documento pode depender do método de representação de cor (tais como RGB ou YCbCr).
[00351] c. Alternativamente, como conduzir os métodos descritos neste documento pode depender do método de representação de cor (tais como RGB ou YCbCr).
[00352] d. Alternativamente, como conduzir os métodos descritos neste documento pode depender do local da amostragem descendente de croma. Exemplo 22
[00353] Se derivam-se os valores máximo/mínimo dos componentes de luma e de croma usados para derivar parâmetros de CCLM pode depender da disponibilidade de vizinhos à esquerda e acima. Por exemplo, os valores máximo/mínimo para componentes de luma e de croma usados para derivar parâmetros de CCLM podem não ser derivados se os blocos vizinhos tanto à esquerda quanto acima estiverem indisponíveis.
[00354] a. Se derivam-se os valores máximo/mínimo dos componentes de luma e de croma usados para derivar parâmetros de CCLM pode depender do número de amostras vizinhas disponíveis. Por exemplo, os valores máximo/mínimo para componentes de luma e de croma usados para derivar parâmetros de CCLM podem não ser derivados se numSampL == 0 e numSampT == 0. Em um outro exemplo, os valores máximo/mínimo para
50 / 122 componentes de luma e de croma usados para derivar parâmetros de CCLM podem não ser derivados se numSampL + numSampT == 0. Nos dois exemplos, numSampL e numSampT são o número de amostras vizinhas disponíveis a partir dos blocos vizinhos à esquerda e acima.
[00355] b. Se derivam-se os valores máximo/mínimo de componentes de luma e de croma usados para derivar parâmetros de CCLM pode depender do número de amostras escolhidas usadas para derivar os parâmetros. Por exemplo, os valores máximo/mínimo para componentes de luma e de croma usados para derivar parâmetros de CCLM podem não ser derivados se cntL == 0 e cntT == 0. Em um outro exemplo, os valores máximo/mínimo para componentes de luma e de croma usados para derivar parâmetros de CCLM podem não ser derivados se cntL + cntT == 0. Nos dois exemplos, cntL e cntT são o número de amostras escolhidas a partir dos blocos vizinhos à esquerda e acima. Exemplo 23
[00356] Em um exemplo, o método proposto para derivar os parâmetros usados em CCLM pode ser usado para derivar os parâmetros usados em LIC ou outras ferramentas de codificação que se baseiam no modelo linear.
[00357] a. Os exemplos descritos anteriormente podem ser aplicados em LIC, tal como pela substituição das “amostras vizinhas de croma” por “amostras vizinhas do bloco atual” e substituição de “correspondentes amostras de luma” por “amostras vizinhas do bloco de referência”.
[00358] b. Em um exemplo, as amostras utilizadas para derivação do parâmetro LIC podem excluir posições de certas amostras na linha acima e/ou na coluna à esquerda.
[00359] i. Em um exemplo, as amostras utilizadas para derivação do parâmetro LIC podem excluir a primeira na linha acima.
[00360] (a) Suponha que a coordenada da amostra no topo-à esquerda é
51 / 122 (x0, y0), é proposto excluir (x0, y0-1) para o uso dos parâmetros LIC.
[00361] ii. Em um exemplo, as amostras utilizadas para derivação do parâmetro LIC podem excluir a primeira na coluna à esquerda.
[00362] (a) Suponha que a coordenada da amostra no topo-à esquerda é (x0, y0), é proposto excluir (x0-1, y0) para o uso de parâmetros LIC.
[00363] iii. Se aplicam-se os métodos expostos e/ou como definir as certas posições podem depender da disponibilidade da coluna à esquerda/linha acima.
[00364] iv. Se aplicam-se os métodos expostos e/ou como definir as certas posições podem depender da dimensão do bloco.
[00365] c. Em um exemplo, N amostras vizinhas (que podem ser descendentemente amostradas) do bloco atual e N correspondentes amostras vizinhas (que podem ser descendentemente amostradas correspondentemente) do bloco de referência podem ser usadas para derivar os parâmetros usados para LIC.
[00366] i. Por exemplo, N é 4.
[00367] ii. Em um exemplo, as N amostras vizinhas podem ser definidas como N/2 amostras a partir da linha acima; e N/2 amostras a partir da coluna à esquerda.
[00368] (a) Alternativamente, as N amostras vizinhas podem ser definidas como N amostras a partir da linha acima ou da coluna à esquerda.
[00369] iii. Em um outro exemplo, N é igual a min (L, T), em que T é o número total de amostras vizinhas disponíveis (que podem ser descendentemente amostradas) do bloco atual.
[00370] (a) Em um exemplo, L é definido em 4.
[00371] iv. Em um exemplo, a seleção das coordenadas das N amostras pode seguir a regra para selecionar N amostras no processo de CCLM.
[00372] v. Em um exemplo, a seleção das coordenadas das N amostras pode seguir a regra para selecionar N amostras no processo de LM-A.
52 / 122
[00373] vi. Em um exemplo, a seleção das coordenadas das N amostras pode seguir a regra para selecionar N amostras no processo de LM-L.
[00374] vii. Em um exemplo, como selecionar as N amostras pode depender da disponibilidade da linha acima/coluna à esquerda.
[00375] d. Em um exemplo, as N amostras vizinhas (que podem ser descendentemente amostradas) do bloco atual e as N correspondentes amostras vizinhas (que podem ser descendentemente amostradas correspondentemente) do bloco de referência são usadas para derivar os parâmetros usados em LIC, podem ser captadas com base nas posições da amostra.
[00376] i. O método de captação pode depender da largura e da altura do bloco atual.
[00377] ii. O método de captação pode depender da disponibilidade dos blocos vizinhos.
[00378] iii. Por exemplo, K1 amostras vizinhas podem ser captadas a partir das amostras vizinhas à esquerda e K2 amostras vizinhas são captadas a partir das amostras vizinhas acima, se amostras vizinhas tanto acima quanto à esquerda estiverem disponíveis. Por exemplo, K1=K2=2.
[00379] iv. Por exemplo, K1 amostras vizinhas podem ser captadas a partir das amostras vizinhas à esquerda se apenas amostras vizinhas à esquerda estiverem disponíveis. Por exemplo, K1 =4.
[00380] v. Por exemplo, K2 amostras vizinhas podem ser captadas a partir das amostras vizinhas acima se apenas amostras vizinhas acima estiverem disponíveis. Por exemplo, K2 =4.
[00381] vi. Por exemplo, as amostras acima podem ser captadas com um primeiro valor de deslocamento da posição (denotado como F) e um valor de passo (denotado como S) que podem depender da dimensão do bloco atual e da disponibilidade dos blocos vizinhos.
[00382] (a) Por exemplo, os métodos descritos no Exemplo 16 podem
53 / 122 ser aplicados para derivar F e S.
[00383] vii. Por exemplo, as amostras à esquerda podem ser captadas com um primeiro valor de deslocamento da posição (denotado como F) e um valor de passo (denotado como S) que podem depender da dimensão do bloco atual e da disponibilidade dos blocos vizinhos.
[00384] (a) Por exemplo, os métodos descritos no Exemplo 17 podem ser aplicados para derivar F e S.
[00385] e. Em um exemplo, o método proposto para derivar os parâmetros usados em CCLM também pode ser usado para derivar os parâmetros usados em LIC, quando o bloco atual for codificado por afinidade.
[00386] f. Os métodos expostos podem ser usados para derivar os parâmetros usados em outras ferramentas de codificação que se baseiam no modelo linear.
[00387] Em um outro exemplo, o modo de previsão de componente cruzado é proposto, em que as amostras de croma são previstas com correspondentes amostras de luma reconstruídas de acordo com o modelo de previsão, da forma mostrada em Eq. 12. Em Eq. 12, PredC(x, y) denota uma amostra de previsão de croma. α e β são dois parâmetros de modelo. Rec’L(x, y) é uma amostra de luma descendentemente amostrada. (12)
[00388] Um filtro de seis derivações é introduzido para o processo descendentemente amostrado de luma para o bloco A na figura 11, da forma mostrada em Eq. 13.
(13)
[00389] As amostras de referência de luma circundantes acima sombreadas na figura 11 são descendentemente amostradas com um filtro de 3 derivações, da forma mostrada em Eq. 14. As amostras de referência de
54 / 122 luma circundantes à esquerda são descendentemente amostradas de acordo com Eq. 15. Se as amostras à esquerda ou acima não estiverem disponíveis, um filtro de 2 derivações definido em Eq. 16 e Eq. 17 será usado. (14) (15) (16) (17)
[00390] Em particular, as amostras de referência de luma circundantes são descendentemente amostradas até o tamanho igual em relação às amostras de referência de croma. O tamanho é denotado como largura e altura. Para derivar α e β, apenas duas ou quatro amostras vizinhas são envolvidas. Uma tabela de busca é aplicada para evitar a operação de divisão durante a derivação de α e β. Os métodos de derivação são ilustrados a seguir.
3.1 Métodos exemplares com até duas amostras
[00391] (1) A razão r de largura e altura é calculada da forma mostrada em Eq. 18.
(18)
[00392] (2) Se os blocos acima e à esquerda estiverem, ambos, disponíveis, 2 amostras localizadas em posA da primeira linha acima e posL da primeira linha à esquerda são selecionadas. Para simplificar a descrição, largura é considerada como o lado mais longo. A derivação de posA e posL é mostrada em Eq. 19 (o índice de posição inicia a partir de 0). A figura 12 mostra alguns exemplos de diferente razão de largura e altura (1, 2, 4 e 8, respectivamente). As amostras selecionadas são sombreadas.
(19)
[00393] (3) Se o bloco acima estiver disponível ao mesmo tempo em
55 / 122 que o bloco à esquerda não está disponível, o primeiro e o posA pontos da linha acima são selecionados, da forma mostrada na figura 13.
[00394] (4) Se o bloco à esquerda estiver disponível ao mesmo tempo em que o bloco acima não está disponível, o primeiro e o posL pontos da linha à esquerda são selecionados, da forma mostrada na figura 14.
[00395] (5) Um modelo de previsão de croma é derivado de acordo com os valores de luminância e de crominância das amostras selecionadas.
[00396] (6) Se nenhum dos blocos à esquerda e acima estiver disponível, um modelo de previsão padrão é usado, com α igual a 0, β igual a 1<<(BitDepth-1), em que BitDepth representa a profundidade de bit das amostras de croma.
3.2 Métodos exemplares com até quatro amostras
[00397] (1) A razão r de largura e altura é calculada como Eq. 18.
[00398] (2) Se os blocos acima e à esquerda estiverem, ambos, disponíveis, 4 amostras localizadas nas primeira e posA da primeira linha acima, a primeira e posL da primeira linha à esquerda são selecionadas. A derivação de posA e posL é ilustrada em Eq. 19. A figura 15 mostra alguns exemplos da razão de largura e altura diferente (1, 2, 4 e 8, respectivamente). As amostras selecionadas são sombreadas.
[00399] (3) Se o bloco acima estiver disponível ao mesmo tempo em que o bloco à esquerda não está disponível, o primeiro e o posA pontos da linha acima são selecionados, da forma mostrada na figura 13.
[00400] (4) Se o bloco à esquerda estiver disponível ao mesmo tempo em que o bloco acima não está disponível, o primeiro e o posL pontos da linha à esquerda são selecionados, da forma mostrada na figura 14.
[00401] (5) Se nenhum dos blocos à esquerda e acima estiver disponível, um modelo de previsão padrão é usado, com α igual a 0, β igual a 1<<(BitDepth-1), em que BitDepth representa a profundidade de bit das amostras de croma.
56 / 122
3.3 Métodos exemplares que usam tabelas de busca na derivação de LM
[00402] A figura 16 mostra um exemplo das tabelas de busca com 128, 64 e 32 entradas, e cada entrada é representada por 16 bits. O processo de derivação LM de 2 pontos é simplificado, da forma mostrada na Tabela 1 e na figura 17 com 64 entradas. Deve-se notar que a primeira entrada pode não ser armazenada na tabela.
[00403] Também deve-se notar que, embora cada entrada nas tabelas exemplares seja desenhada para estar com 16 bits, a mesma pode ser facilmente transformada para um número com menos bits (tais como 8 bits ou 12 bits). Por exemplo, uma tabela de entradas com 8 bits pode ser alcançada como: g_aiLMDivTableHighSimp_64_8[i] = (g_aiLMDivTableHighSimp_64[i]+128) >> 8.
[00404] Por exemplo, uma tabela de entradas com 12 bits pode ser alcançada como: g_aiLMDivTableHighSimp_64_12[i] = (g_aiLMDivTableHighSimp_64[i]+8) >> 4. Tabela 1: Processo de derivação LM simplificado int iDeltaLuma = maxLuma – minLuma; const int TABLE_PRECISION = 16; // O mesmo pode ser 8 ou 12. const int BIT_DEPTH = 10; // Profundidade de bit para amostras. int shift = TABLE_PRECISION; se( iDeltaLuma > 64) { int depthshift = BIT_ DEPTH - 6; // 64 é igual a 2^6. iDeltaLuma = ( iDeltaLuma + (1<<(depthshift-1)))>> depthshift; shift -= depthshift; } a = (((maxChroma – minChroma)*g_aiLMDivTableHighSimp_64[iDeltaLuma-1] + (1<<(shift- 1)))>>shift;
[00405] Deve-se notar que maxLuma e minLuma podem indicar os máximo e mínimo valores de amostras de luma das posições selecionadas. Alternativamente, os mesmos podem indicar uma função de máximo e mínimo valores de amostras de luma das posições selecionadas, tal como ponderação. Quando houver apenas 4 posições selecionadas, as mesmas também podem indicar a média de dois valores de luma maiores e a média de
57 / 122 dois valores de luma menores. Note adicionalmente que, na figura 17, maxChroma e minChroma representam os valores de croma correspondentes a maxLuma e minLuma.
3.3 Método nº 4 com até quatro amostras
[00406] Suponha que a largura do bloco e a altura do bloco de croma atual é W e H, respectivamente. E a coordenada de topo-à esquerda do bloco de croma atual é [0, 0].
[00407] Se os blocos acima e à esquerda estiverem, ambos, disponíveis e o modo atual for o modo LM normal (excluindo LM-A, e LM-L), 2 amostras de croma localizadas na linha acima, e 2 amostras de croma localizadas na coluna à esquerda são selecionadas.
[00408] As coordenadas das duas amostras acima são [floor(W/4), -1] e [floor (3*W/4), -1].
[00409] As coordenadas das duas amostras à esquerda são [-1, floor(H/4)] e [-1, floor (3*H/4)].
[00410] As amostras selecionadas são pintadas em vermelho, da forma representada na figura 22A.
[00411] Subsequentemente, as 4 amostras são ordenadas de acordo com a intensidade da amostra de luma e classificadas em 2 grupos. As duas amostras maiores e as duas amostras menores são respectivamente ponderadas. O modelo de previsão de componente cruzado é derivado com os 2 pontos ponderados. Alternativamente, os máximo e mínimo valores das quatro amostras são usados para derivar os parâmetros LM.
[00412] Se o bloco acima estiver disponível ao mesmo tempo em que o bloco à esquerda não está disponível, quatro amostras de croma provenientes de bloco acima são selecionadas quando W>2 e 2 amostras de croma são selecionadas quando W=2.
[00413] As quatro coordenadas das amostras acima selecionadas são [W/8, -1], [W/8 + W/4, -1], [W/8 + 2*W/4, -1], e [W/8 + 3*W/4 , -1].
58 / 122
[00414] As amostras selecionadas são pintadas em vermelho, da forma representada na figura 22B.
[00415] Se o bloco à esquerda estiver disponível ao mesmo tempo em que o bloco acima não está disponível, quatro amostras de croma provenientes do bloco à esquerda são selecionadas quando H>2 e 2 amostras de croma são selecionadas quando H=2.
[00416] As quatro coordenadas das amostras à esquerda selecionadas são [-1, H/8], [-1, H/8 + H/4], [-1, H/8 + 2*H/4, -1], e [-1, H/8 + 3*H/4 ].
[00417] Se nenhum dos blocos à esquerda e acima estiver disponível, uma previsão padrão é usada, com α igual a 0, β igual a 1<<(BitDepth-1), em que BitDepth representa a profundidade de bit das amostras de croma.
[00418] Se o modo atual for o modo LM-A, quatro amostras de croma provenientes de bloco acima são selecionadas quando W’>2 e 2 amostras de croma são selecionadas quando W’=2. W’ é o número disponível de amostras vizinhas acima, que pode ser 2*W.
[00419] As quatro coordenadas das amostras acima selecionadas são [W’/8, -1], [W’/8 + W’/4, -1], [W’/8 + 2*W’/4, -1], e [W’/8 + 3*W’/4 , -1].
[00420] Se o modo atual for o modo LM-L, quatro amostras de croma provenientes de bloco à esquerda são selecionadas quando H’>2 e 2 amostras de croma são selecionadas quando H’=2. H’ é o número disponível de amostras vizinhas à esquerda, que pode ser 2*H.
[00421] As quatro coordenadas das amostras à esquerda selecionadas são [-1, H’/8], [-1, H’/8 + H’/4], [-1, H’/8 + 2*H’/4, -1], e [-1, H’/8 + 3*H’/4].
3.5 Modalidade de exemplo para modificar o atual padrão VVC para uso da previsão CCLM Especificação 8.3.4.2.8 do modo de intraprevisão INTRA_LT_CCLM, INTRA_L_CCLM e INTRA_T_CCLM
[00422] As equações são descritas nesta seção usando os números de equação correspondentes àqueles no atual draft do padrão VVC.
59 / 122
[00423] Entradas neste processo são: - o modo de intraprevisão predModeIntra, - um local de amostra ( xTbC, yTbC ) da amostra no topo-à esquerda do atual bloco de transformação em relação à amostra no topo-à esquerda da figura atual, - uma variável nTbW que especifica a largura do bloco de transformação, - uma variável nTbH que especifica a altura do bloco de transformação, - amostras vizinhas de croma p[ x ][ y ], com x = −1, y = 0..2 * nTbH − 1 e x = 0.. 2 * nTbW − 1, y = − 1.
[00424] A saída deste processo são amostras previstas predSamples[ x ][ y ], com x = 0..nTbW − 1, y = 0..nTbH − 1.
[00425] O local de luma atual ( xTbY, yTbY ) é derivado como segue: ( xTbY, yTbY ) = ( xTbC << 1, yTbC << 1 ) (8-155)
[00426] As variáveis availL, availT e availTL são derivadas, como segue: - Se predModeIntra for igual a INTRA_LT_CCLM, o seguinte se aplica: numSampT = availT ? nTbW : 0 (8-156) numSampL = availL ? nTbH : 0 (8-157) - Caso contrário, o seguinte se aplica: numSampT = ( availT && predModeIntra = = INTRA_T_CCLM ) ? ( nTbW + numTopRight ) : 0 (8-158) numSampL = ( availL && predModeIntra = = INTRA_L_CCLM ) ? ( nTbH + numLeftBelow ) : 0 (8-159)
[00427] A variável bCTUboundary é derivada, como segue: bCTUboundary = ( yTbC & ( 1 << ( CtbLog2SizeY − 1 ) − 1 ) = = 0 ) ? TRUE : FALSE. (8-160)
60 / 122
[00428] As amostras de previsão predSamples[ x ][ y ] com x =
0..nTbW − 1, y = 0..nTbH − 1 são derivadas como segue: - Se tanto numSampL quanto numSampT forem iguais a 0, o seguinte se aplica: predSamples[ x ][ y ] = 1 << ( BitDepthC − 1 ) (8-161) - Caso contrário, as seguintes etapas ordenadas se aplicam:
1. …[sem mudanças na especificação atual]
2. …
3. …
4. …
5. …
6. ……[sem mudanças na especificação atual]
7. As variáveis minY, maxY, minC e maxC são derivadas como segue: - A variável minY é definida igual a 1 << (BitDepthY) + 1 e a variável maxY é definida igual a −1.
[00429] - Se availL for igual a TRUE e predModeIntra for igual a INTRA_LT_CCLM, a variável aboveIs4 é definida igual a 0; Caso contrário, a mesma é definida igual a 1.
[00430] - Se availT for igual a TRUE e predModeIntra for igual a INTRA_LT_CCLM, a variável LeftIs4 é definida igual a 0; Caso contrário, a mesma é definida igual a 1.
[00431] - Os arranjos de variável startPos[] e pickStep[] são derivados como segue: - startPos[0] = actualTopTemplateSampNum >> (2 + aboveIs4); - pickStep[0] = std::max(1, actualTopTemplateSampNum >> (1 + aboveIs4)); - startPos[1] = actualLeftTemplateSampNum >> (2 + leftIs4);
61 / 122 - pickStep[1] = std::max(1, actualLeftTemplateSampNum >> (1 + leftIs4)); - A variável cnt é definida igual a 0.
[00432] - Se predModeIntra for igual a INTRA_LT_CCLM, a variável nSX é definida igual a nTbW, nSY é definida igual a nTbH; Caso contrário, nSX é definida igual a numSampLT e nSY é definida igual a numSampL.
[00433] - Se availT for igual a TRUE e predModeIntra não for igual a INTRA_L_CCLM, as variáveis selectLumaPix, selectChromaPix são derivadas como segue: - Enquanto startPos[0]+cnt* pickStep[0] < nSX e cnt < 4, o seguinte se aplica: - selectLumaPix[cnt] = pTopDsY[ startPos[0]+cnt* pickStep[0]]; - selectChromaPix[cnt] = p[startPos[0]+cnt* pickStep[0]][ −1 ]; - cnt++; - Se availL for igual a TRUE e predModeIntra não for igual a INTRA_T_CCLM, as variáveis selectLumaPix, selectChromaPix são derivadas, como segue: - Enquanto startPos[1]+cnt* pickStep[1] < nSY e cnt < 4, o seguinte se aplica: - selectLumaPix[cnt] = pLeftDsY [ startPos[1]+cnt* pickStep[1] ]; - selectChromaPix[cnt] = p[-1][ startPos[1]+cnt* pickStep[1]]; - cnt++; - Se cnt for igual a 2, o seguinte se aplica: - Se selectLumaPix[0] > selectLumaPix[1], minY é definido igual a selectLumaPix[1], minC é definido igual a selectChromaPix[1], maxY é definido igual a selectLumaPix[0] e maxC é definido igual a
62 / 122 selectChromaPix[0]; Caso contrário, maxY é definido igual a selectLumaPix[1], maxC é definido igual a selectChromaPix[1], minY é definido igual a selectLumaPix[0] e minC é definido igual a selectChromaPix[0] - Caso contrário, se cnt for igual a 4, o seguinte se aplica: - Os arranjos de variável minGrpIdx e maxGrpIdx são inicializados como: - minGrpIdx[0] = 0, minGrpIdx[1] = 1, maxGrpIdx[0] = 2, maxGrpIdx[1] = 3; - O seguinte se aplica - Se selectLumaPix[minGrpIdx[0]] > selectLumaPix[minGrpIdx[1]], trocar minGrpIdx[0] e minGrpIdx[1]; - Se selectLumaPix[maxGrpIdx[0]] > selectLumaPix[maxGrpIdx[1]], trocar maxGrpIdx[0] e maxGrpIdx[1]; - Se selectLumaPix[minGrpIdx[0]] > selectLumaPix[maxGrpIdx[1]], trocar minGrpIdx e maxGrpIdx; - Se selectLumaPix[minGrpIdx[1]] > selectLumaPix[maxGrpIdx[0]], trocar minGrpIdx[1] e maxGrpIdx[0]; - maxY, maxC, minY e minC são derivados, como segue: - maxY =(selectLumaPix[maxGrpIdx[0]]+selectLumaPix[maxGrpIdx[1]]+1)>>1; - maxC =(selectChromaPix[maxGrpIdx[0]]+selectChromaPix[maxGrpIdx[1]]+1)>>1; - maxY =(selectLumaPix[minGrpIdx
[0]]+selectLumaPix[minGrpIdx [1]]+1)>>1; - maxC =(selectChromaPix[minGrpIdx[0]]+ selectChromaPix [minGrpIdx [1]]+1)>>1; -8. As variáveis a, b, e k são derivadas como segue: [fim das mudanças]
63 / 122
3.6 Um outro esboço de trabalho exemplar sobre a previsão CCLM proposta
[00434] Nesta seção, uma outra modalidade exemplar que mostra modificações que podem ser feitas no atual esboço de trabalho do padrão VVC é descrita. Os números de equação aqui expostos se referem aos correspondentes números de equação no padrão VVC.
[00435] Especificação de modo de intraprevisão INTRA_LT_CCLM, INTRA_L_CCLM e INTRA_T_CCLM. [adicionar no atual esboço de trabalho VVC, como a seguir]
[00436] O número de amostras de croma vizinhas disponíveis no topo e de topo-à direita numTopSamp e o número de amostras de croma vizinhas disponíveis na esquerda e à esquerda-abaixo nLeftSamp são derivados como segue: - Se predModeIntra for igual a INTRA_LT_CCLM, o seguinte se aplica: numSampT = availT ? nTbW : 0 (8-157) numSampL = availL ? nTbH : 0 (8-158) - Caso contrário, o seguinte se aplica: numSampT = ( availT && predModeIntra = = INTRA_T_CCLM ) ? ( nTbW + Min( numTopRight, nTbH )) : 0 (8-159) numSampL = ( availL && predModeIntra = = INTRA_L_CCLM ) ? ( nTbH + Min( numLeftBelow, nTbW )) : 0 (8-160) A variável bCTUboundary é derivada, como segue: bCTUboundary = ( yTbC & ( 1 << ( CtbLog2SizeY − 1 ) − 1 ) = = 0 ) ? TRUE : FALSE. (8-161) A variável cntN e o arranjo pickPosN[], com N sendo substituído por L e T, são derivados como segue: - A variável numIs4N é definida igual a (( availN &&
64 / 122 predModeIntra == INTRA_LT_CCLM ) ? 0 : 1).
[00437] - A variável startPosN é definida igual a numSampN >> ( 2 + numIs4N ).
[00438] - A variável pickStepN é definida igual a Max( 1, numSampN >> ( 1 + numIs4N )).
[00439] - Se availN for igual a TRUE e predModeIntra for igual a INTRA_LT_CCLM ou INTRA_N_CCLM, cntN é definido igual a ( 1 + numIs4N ) << 1, e pickPosN[ pos ] é definido igual a (startPosN + pos * pickStepN), com pos = 0..( cntN – 1 ).
[00440] - Caso contrário, cntN é definido igual a 0.
[00441] As amostras de previsão predSamples[ x ][ y ] com x =
0..nTbW − 1, y = 0..nTbH − 1 são derivadas como segue: - Se tanto numSampL quanto numSampT forem iguais a 0, o seguinte se aplica: predSamples[ x ][ y ] = 1 << ( BitDepthC − 1 ) (8-162) - Caso contrário, as seguintes etapas ordenadas se aplicam:
1. As amostras de luma colocalizadas pY[ x ][ y ] com x =
0..nTbW * 2 − 1, y= 0..nTbH * 2 − 1 são definidas igual às amostras de luma reconstruídas antes do processo de filtro de desblocagem nos locais ( xTbY + x, yTbY + y ).
[00442] 2. As amostras de amostras de luma vizinhas pY[ x ][ y ] são derivadas como segue: - Quando numSampL for maior do que 0, as amostras de luma à esquerda vizinhas pY[ x ][ y ] com x = −1..−3, y = 0..2 * numSampL − 1, são definidas iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nos locais ( xTbY + x , yTbY +y ).
[00443] - Quando numSampT for maior do que 0, as amostras de luma de topo vizinhas pY[ x ][ y ] com x = 0..2 * numSampT − 1, y = −1, −2, são definidas iguais às amostras de luma reconstruídas antes do processo de filtro
65 / 122 de desblocagem nos locais ( xTbY+ x, yTbY + y ).
[00444] - Quando availTL for igual a TRUE, as amostras de luma no topo-à esquerda vizinhas pY[ x ][ y ] com x = −1, y = −1, −2, são definidas iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nos locais ( xTbY+ x, yTbY + y ).
[00445] 3. As amostras de luma colocalizadas descendentemente amostradas pDsY[ x ][ y ] com x = 0..nTbW − 1, y = 0..nTbH − 1 são derivadas como segue: - Se sps_cclm_colocated_chroma_flag for igual a 1, o seguinte se aplica: - pDsY[ x ][ y ] com x = 1..nTbW − 1, y = 1..nTbH − 1 é derivado como segue: - Se availL for igual a TRUE, pDsY[ 0 ][ y ] com y = 1..nTbH − 1 é derivado como segue: - Caso contrário, pDsY[ 0 ][ y ] com y = 1..nTbH − 1 é derivado como segue: - Se availT for igual a TRUE, pDsY[ x ][ 0 ] com x = 1..nTbW − 1 é derivado como segue: - Caso contrário, pDsY[ x ][ 0 ] com x = 1..nTbW − 1 é derivado como segue:
66 / 122 Se availL for igual a TRUE e availT for igual a TRUE, pDsY[ 0 ][ 0 ] é derivado como segue: - Caso contrário, se availL for igual a TRUE e availT for igual a FALSE, pDsY[ 0 ][ 0 ] é derivado como segue: pDsY[ 0 ][ 0 ] = ( pY[ −1 ][ 0 ] + 2 * pY[ 0 ][ 0 ] + pY[ 1 ][ 0 ] + 2 ) >> 2 (8-169) - Caso contrário, se availL for igual a FALSE e availT for igual a TRUE, pDsY[ 0 ][ 0 ] é derivado como segue: pDsY[ 0 ][ 0 ] = ( pY[ 0 ][ −1 ] + 2 * pY[ 0 ][ 0 ] + pY[ 0 ][ 1 ] + 2 ) >> 2 (8-170) - Caso contrário (availL é igual a FALSE e availT é igual a FALSE), pDsY[ 0 ][ 0 ] é derivado como segue: pDsY[ 0 ][ 0 ] = pY[ 0 ][ 0 ] (8-171) - Caso contrário, o seguinte se aplica: - pDsY[ x ][ y ] com x = 1..nTbW − 1, y = 0..nTbH − 1 é derivado como segue: - Se availL for igual a TRUE, pDsY[ 0 ][ y ] com y = 0..nTbH − 1 é derivado como segue: - Caso contrário, pDsY[ 0 ][ y ] com y = 0..nTbH − 1 é derivado como segue: pDsY[ 0 ][ y ] = ( pY[ 0 ][ 2 * y ] + pY[ 0 ][ 2 * y + 1 ] + 1 ) >> 1 (8-174)
4. Quando numSampL for maior do que 0, as amostras de
67 / 122 croma à esquerda vizinhas selecionadas pSelC[idx] são definidas iguais a p[ - 1 ][ pickPosL[ idx ]] com idx = 0..(cntL – 1), e as amostras de luma à esquerda vizinhas descendentemente amostradas selecionadas pSelDsY[ idx ] com idx = 0..(cntL-1) são derivadas como segue: - A variável y é definida igual a pickPosL[ idx ].
[00446] - Se sps_cclm_colocated_chroma_flag for igual a 1, o seguinte se aplica: - Se y > 0 || availTL == TRUE, - Caso contrário, pSelDsY[ idx ] = ( pY[ −3 ][ 0 ] + 2 * pY[ −2 ][ 0 ] + pY[ −1 ][ 0 ] + 2 ) >> 2 (8-177) - Caso contrário, o seguinte se aplica:
5. Quando numSampT for maior do que 0, as amostras de croma de topo vizinhas selecionadas pSelC[idx] são definidas iguais a p[ pickPosT[ idx ]][ -1 ] com idx = 0..( cntT – 1 ), e as amostras de luma de topo vizinhas descendentemente amostradas pSelDsY[ idx ] com idx = cntL..(cntL + cntT – 1) são especificadas, como segue: - A variável x é definida igual a pickPosT[ idx - cntL ].
[00447] - Se sps_cclm_colocated_chroma_flag for igual a 1, o seguinte se aplica: - Se x > 0: - Se bCTUboundary for igual a FALSE, o seguinte se aplica:
68 / 122
- Caso contrário (bCTUboundary é igual a TRUE), o seguinte se aplica:
- Caso contrário: - Se availTL for igual a TRUE e bCTUboundary for igual a FALSE, o seguinte se aplica:
- Caso contrário, se availTL for igual a TRUE e bCTUboundary for igual a TRUE, o seguinte se aplica:
- Caso contrário, se availTL for igual a FALSE e bCTUboundary for igual a FALSE, o seguinte se aplica: pSelDsY[ idx ] = ( pY[ 0 ][ −3 ] + 2 * pY[ 0 ][ −2 ] + pY[ 0 ][ −1 ] + 2 ) >> 2 (8-183) - Caso contrário (availTL é igual a FALSE e bCTUboundary é igual a TRUE), o seguinte se aplica: pSelDsY[ idx ] = pY[ 0 ][ −1 ] (8-184) - Caso contrário, o seguinte se aplica: - Se x > 0: - Se bCTUboundary for igual a FALSE, o seguinte se aplica:
- Caso contrário (bCTUboundary é igual a TRUE), o seguinte se aplica:
69 / 122 - Caso contrário: - Se availTL for igual a TRUE e bCTUboundary for igual a FALSE, o seguinte se aplica: - Caso contrário, se availTL for igual a TRUE e bCTUboundary for igual a TRUE, o seguinte se aplica: - Caso contrário, se availTL for igual a FALSE e bCTUboundary for igual a FALSE, o seguinte se aplica: pSelDsY[ idx ] = ( pY[ 0 ][ −2 ] + pY[ 0 ][ −1 ] + 1 ) >> 1 (8-189) - Caso contrário, (availTL é igual a FALSE e bCTUboundary é igual a TRUE), o seguinte se aplica: pSelDsY[ idx ] = pY[ 0 ][ −1 ] (8-190)
6. As variáveis minY, maxY, minC e maxC são derivadas como segue: - Quando cntT+cntL for igual a 2, definir pSelC[idx + 2] = pSelC[idx] e pSelDsY[idx + 2] = pSelDsY[idx], com idx = 0 e 1.
[00448] - Os arranjos minGrpIdx[] e maxGrpIdx[] são definidos como: minGrpIdx[0] = 0, minGrpIdx[1] = 1, maxGrpIdx[0] = 2, maxGrpIdx[1] = 3.
[00449] - Se pSelDsY[minGrpIdx[0]] > pSelDsY[minGrpIdx[1]], Swap(minGrpIdx[0], minGrpIdx[1]).
[00450] - Se pSelDsY[maxGrpIdx[0]] > pSelDsY[maxGrpIdx[1]], Swap(maxGrpIdx[0], maxGrpIdx[1]).
[00451] - Se pSelDsY[minGrpIdx[0]] > pSelDsY[maxGrpIdx[1]],
70 / 122 Swap(minGrpIdx, maxGrpIdx ).
[00452] - Se pSelDsY[minGrpIdx[1]] > pSelDsY[maxGrpIdx[0]], Swap(minGrpIdx[1], maxGrpIdx[0]).
[00453] - maxY = ( pSelDsY[maxGrpIdx[0]] + pSelDsY[maxGrpIdx[1]] + 1 ) >> 1.
[00454] - maxC = ( pSelC[maxGrpIdx[0]] + pSelC[maxGrpIdx[1]] + 1 ) >> 1.
[00455] - minY = ( pSelDsY[minGrpIdx[0]] + pSelDsY[minGrpIdx[1]] + 1 ) >> 1.
[00456] - minC = ( pSelC[minGrpIdx[0]] + pSelC[minGrpIdx[1]] + 1 ) >> 1.
[00457] 7. As variáveis a, b, e k são derivadas como segue: - Se numSampL for igual a 0, e numSampT for igual a 0, o seguinte se aplica: k=0 (8-208) a=0 (8-209) b = 1 << ( BitDepthC − 1) (8-210) - Caso contrário, o seguinte se aplica: diff = maxY − minY (8-211) - Se diff não for igual a 0, o seguinte se aplica: diffC = maxC − minC (8-212) x = Floor( Log2( diff ) ) (8-213) normDiff = ( ( diff << 4 ) >> x ) & 15 (8-214) x += ( normDiff != 0 ) ? 1 : 0 (8-215) y = Floor( Log2( Abs ( diffC ) ) ) + 1 (8-216) a = ( diffC * ( divSigTable[ normDiff ] | 8 ) + 2y − 1 ) >> y (8-217) k=((3+x−y)<1)?1:3+x−y (8-218) a = ( ( 3 + x − y ) < 1 ) ? Sign( a ) * 15 : a (8-219)
71 / 122 b = minC − ( ( a * minY ) >> k ) (8-220) em que divSigTable[ ] é especificado como segue: divSigTable[ ] = { 0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0 } (8-221) - Caso contrário (diff é igual a 0), o seguinte se aplica: k=0 (8-222) a=0 (8-223) b = minC (8-224)
8. As amostras de previsão predSamples[ x ][ y ] com x =
0..nTbW − 1, y = 0.. nTbH − 1 são derivadas como segue: predSamples[ x ][ y ] = Clip1C( ( ( pDsY[ x ][ y ] * a ) >> k ) +b) (8-225) [Fim da modalidade exemplo]
3.7 Um outro esboço de trabalho exemplar sobre a previsão CCLM proposta
[00458] Nesta seção, uma outra modalidade exemplar que mostra modificações que podem ser feitas no atual esboço de trabalho do padrão VVC é descrita. Os números de equação aqui expostos se referem aos correspondentes números de equação no padrão VVC. Especificação do modo de intraprevisão INTRA_LT_CCLM, INTRA_L_CCLM e INTRA_T_CCLM
[00459] O número de amostras de croma vizinhas disponíveis no topo e de topo-à direita numTopSamp e o número de amostras de croma vizinhas disponíveis na esquerda e à esquerda-abaixo nLeftSamp são derivados como segue: - Se predModeIntra for igual a INTRA_LT_CCLM, o seguinte se aplica: numSampT = availT ? nTbW : 0 (8-157) numSampL = availL ? nTbH : 0 (8-158) - Caso contrário, o seguinte se aplica:
72 / 122
[00460] A variável bCTUboundary é derivada como segue: bCTUboundary = ( yTbC & ( 1 << ( CtbLog2SizeY − 1 ) − 1 ) = = 0 ) ? TRUE : FALSE. (8-161) A variável cntN e o arranjo pickPosN[], com N sendo substituído por L e T, são derivados como segue: - A variável numIs4N é definida igual a (( availN && predModeIntra == INTRA_LT_CCLM ) ? 0 : 1).
[00461] - A variável startPosN é definida igual a numSampN >> ( 2 + numIs4N ).
[00462] - A variável pickStepN é definida igual a Max( 1, numSampN >> ( 1 + numIs4N )).
[00463] - Se availN for igual a TRUE e predModeIntra for igual a INTRA_LT_CCLM ou INTRA_N_CCLM, cntN é definido igual a Min( numSampN, ( 1 + numIs4N ) << 1 ), e pickPosN[ pos ] é definido igual a (startPosN + pos * pickStepN), com pos = 0..( cntN – 1 ).
[00464] - Caso contrário, cntN é definido igual a 0.
[00465] As amostras de previsão predSamples[ x ][ y ] com x =
0..nTbW − 1, y = 0..nTbH − 1 são derivadas como segue: - Se tanto numSampL quanto numSampT forem iguais a 0, o seguinte se aplica: predSamples[ x ][ y ] = 1 << ( BitDepthC − 1 ) (8-162) - Caso contrário, as seguintes etapas ordenadas se aplicam:
1. As amostras de luma colocalizadas pY[ x ][ y ] com x =
0..nTbW * 2 − 1, y= 0..nTbH * 2 − 1 são definidas iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nos locais ( xTbY +
73 / 122 x, yTbY + y ).
[00466] 2. As amostras de amostras de luma vizinhas pY[ x ][ y ] são derivadas como segue: - Quando numSampL for maior do que 0, as amostras de luma à esquerda vizinhas pY[ x ][ y ] com x = −1..−3, y = 0..2 * numSampL − 1 são definidas iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nos locais ( xTbY + x , yTbY +y ).
[00467] - Quando numSampT for maior do que 0, as amostras de luma de topo vizinhas pY[ x ][ y ] com x = 0..2 * numSampT − 1, y = −1, −2 são definidas iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nos locais ( xTbY+ x, yTbY + y ).
[00468] - Quando availTL for igual a TRUE, as amostras de luma no topo-à esquerda vizinhas pY[ x ][ y ] com x = −1, y = −1, −2 são definidas iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nos locais ( xTbY+ x, yTbY + y ).
[00469] 3. As amostras de luma colocalizadas descendentemente amostradas pDsY[ x ][ y ] com x = 0..nTbW − 1, y = 0..nTbH − 1 são derivadas como segue: - Se sps_cclm_colocated_chroma_flag for igual a 1, o seguinte se aplica: - pDsY[ x ][ y ] com x = 1..nTbW − 1, y = 1..nTbH − 1 é derivado como segue: - Se availL for igual a TRUE, pDsY[ 0 ][ y ] com y = 1..nTbH − 1 é derivado como segue: - Caso contrário, pDsY[ 0 ][ y ] com y = 1..nTbH − 1 é
74 / 122 derivado como segue:
- Se availT for igual a TRUE, pDsY[ x ][ 0 ] com x = 1..nTbW − 1 é derivado como segue:
- Caso contrário, pDsY[ x ][ 0 ] com x = 1..nTbW − 1 é derivado como segue:
- Se availL for igual a TRUE e availT for igual a TRUE, pDsY[ 0 ][ 0 ] é derivado como segue:
- Caso contrário, se availL for igual a TRUE e availT for igual a FALSE, pDsY[ 0 ][ 0 ] é derivado como segue: pDsY[ 0 ][ 0 ] = ( pY[ −1 ][ 0 ] + 2 * pY[ 0 ][ 0 ] + pY[ 1 ][ 0 ] + 2 ) >> 2 (8-169) - Caso contrário, se availL for igual a FALSE e availT for igual a TRUE, pDsY[ 0 ][ 0 ] é derivado como segue: pDsY[ 0 ][ 0 ] = ( pY[ 0 ][ −1 ] + 2 * pY[ 0 ][ 0 ] + pY[ 0 ][ 1 ] + 2 ) >> 2 (8-170) - Caso contrário (availL é igual a FALSE e availT é igual a FALSE), pDsY[ 0 ][ 0 ] é derivado como segue: pDsY[ 0 ][ 0 ] = pY[ 0 ][ 0 ] (8-171) Caso contrário, o seguinte se aplica: - pDsY[ x ][ y ] com x = 1..nTbW − 1, y = 0..nTbH − 1 é derivado como segue:
75 / 122 - Se availL for igual a TRUE, pDsY[ 0 ][ y ] com y = 0..nTbH − 1 é derivado como segue: - Caso contrário, pDsY[ 0 ][ y ] com y = 0..nTbH − 1 é derivado como segue: pDsY[ 0 ][ y ] = ( pY[ 0 ][ 2 * y ] + pY[ 0 ][ 2 * y + 1 ] + 1 ) >> 1 (8-174)
4. Quando numSampL for maior do que 0, as amostras de croma à esquerda vizinhas selecionadas pSelC[idx] são definidas iguais a p[ - 1 ][ pickPosL[ idx ]] com idx = 0..(cntL – 1), e as amostras de luma à esquerda vizinhas descendentemente amostradas selecionadas pSelDsY[ idx ] com idx = 0..(cntL-1) são derivadas como segue: - A variável y é definida igual a pickPosL[ idx ].
[00470] - Se sps_cclm_colocated_chroma_flag for igual a 1, o seguinte se aplica: - Se y > 0 || availTL == TRUE, - Caso contrário, pSelDsY[ idx ] = ( pY[ −3 ][ 0 ] + 2 * pY[ −2 ][ 0 ] + pY[ −1 ][ 0 ] + 2 ) >> 2 (8-177) - Caso contrário, o seguinte se aplica: .
[00471] 5. Quando numSampT for maior do que 0, as amostras de croma de topo vizinhas selecionadas pSelC[idx] são definidas iguais a p[
76 / 122 pickPosT[ idx ]][ -1 ] com idx = 0..( cntT – 1 ), e as amostras de luma de topo vizinhas descendentemente amostradas pSelDsY[ idx ] com idx = cntL..(cntL + cntT – 1) são especificadas como segue: - A variável x é definida igual a pickPosT[ idx - cntL ].
[00472] - Se sps_cclm_colocated_chroma_flag for igual a 1, o seguinte se aplica: - Se x > 0: - Se bCTUboundary for igual a FALSE, o seguinte se aplica: - Caso contrário (bCTUboundary é igual a TRUE), o seguinte se aplica: - Caso contrário: - Se availTL for igual a TRUE e bCTUboundary for igual a FALSE, o seguinte se aplica: - Caso contrário, se availTL for igual a TRUE e bCTUboundary for igual a TRUE, o seguinte se aplica: - Caso contrário, se availTL for igual a FALSE e bCTUboundary for igual a FALSE, o seguinte se aplica: pSelDsY[ idx ] = ( pY[ 0 ][ −3 ] + 2 * pY[ 0 ][ −2 ] + pY[ 0 ][ −1 ] + 2 ) >> 2 (8-183)
77 / 122
- Caso contrário (availTL é igual a FALSE e bCTUboundary é igual a TRUE), o seguinte se aplica: pSelDsY[ idx ] = pY[ 0 ][ −1 ] (8-184) - Caso contrário, o seguinte se aplica: - Se x > 0: - Se bCTUboundary for igual a FALSE, o seguinte se aplica:
- Caso contrário (bCTUboundary é igual a TRUE), o seguinte se aplica:
- Caso contrário: - Se availTL for igual a TRUE e bCTUboundary for igual a FALSE, o seguinte se aplica:
- Caso contrário, se availTL for igual a TRUE e bCTUboundary for igual a TRUE, o seguinte se aplica:
- Caso contrário, se availTL for igual a FALSE e bCTUboundary for igual a FALSE, o seguinte se aplica: pSelDsY[ idx ] = ( pY[ 0 ][ −2 ] + pY[ 0 ][ −1 ] + 1 ) >> 1 (8-189) - Caso contrário (availTL é igual a FALSE e bCTUboundary é igual a TRUE), o seguinte se aplica: pSelDsY[ idx ] = pY[ 0 ][ −1 ] (8-190)
78 / 122
6. Quando cntT+ cntL não for igual a 0, as variáveis minY, maxY, minC e maxC são derivadas como segue: - Quando cntT+cntL for igual a 2, definir pSelComp[3] igual a pSelComp [0], pSelComp[2] igual a pSelComp[1], pSelComp[0] igual a pSelComp [1], e pSelComp[1] igual a pSelComp[3], com Comp sendo substituído por DsY e C.
[00473] - Os arranjos minGrpIdx[] e maxGrpIdx[] são definidos como: minGrpIdx[0] = 0, minGrpIdx[1] = 1, maxGrpIdx[0] = 2, maxGrpIdx[1] = 3.
[00474] - Se pSelDsY[minGrpIdx[0]] > pSelDsY[minGrpIdx[1]], Swap(minGrpIdx[0], minGrpIdx[1]).
[00475] - Se pSelDsY[maxGrpIdx[0]] > pSelDsY[maxGrpIdx[1]], Swap(maxGrpIdx[0], maxGrpIdx[1]).
[00476] - Se pSelDsY[minGrpIdx[0]] > pSelDsY[maxGrpIdx[1]], Swap(minGrpIdx, maxGrpIdx ).
[00477] - Se pSelDsY[minGrpIdx[1]] > pSelDsY[maxGrpIdx[0]], Swap(minGrpIdx[1], maxGrpIdx[0]).
[00478] - maxY = ( pSelDsY[maxGrpIdx[0]] + pSelDsY[maxGrpIdx[1]] + 1 ) >> 1.
[00479] - maxC = ( pSelC[maxGrpIdx[0]] + pSelC[maxGrpIdx[1]] + 1 ) >> 1.
[00480] - minY = ( pSelDsY[minGrpIdx[0]] + pSelDsY[minGrpIdx[1]] + 1 ) >> 1.
[00481] - minC = ( pSelC[minGrpIdx[0]] + pSelC[minGrpIdx[1]] + 1 ) >> 1.
[00482] 7. As variáveis a, b, e k são derivadas como segue: - Se numSampL for igual a 0, e numSampT for igual a 0, o seguinte se aplica: k=0 (8-208) a=0 (8-209)
79 / 122 b = 1 << ( BitDepthC − 1) (8-210) - Caso contrário, o seguinte se aplica: diff = maxY − minY (8-211) - Se diff não é igual a 0, o seguinte se aplica: diffC = maxC − minC (8-212) x = Floor( Log2( diff ) ) (8-213) normDiff = ( ( diff << 4 ) >> x ) & 15 (8-214) x += ( normDiff != 0 ) ? 1 : 0 (8-215) y = Floor( Log2( Abs ( diffC ) ) ) + 1 (8-216) a = ( diffC * ( divSigTable[ normDiff ] | 8 ) + 2y − 1 ) >> y (8-217) k=((3+x−y)<1)?1:3+x−y (8-218) a = ( ( 3 + x − y ) < 1 ) ? Sign( a ) * 15 : a (8-219) b = minC − ( ( a * minY ) >> k ) (8-220) em que divSigTable[ ] é especificado, como segue: divSigTable[ ] = { 0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0 } (8-221) - Caso contrário (diff é igual a 0), o seguinte se aplica: k=0 (8-222) a=0 (8-223) b = minC (8-224)
8. As amostras de previsão predSamples[ x ][ y ] com x =
0..nTbW − 1, y = 0.. nTbH − 1 são derivadas como segue: predSamples[ x ][ y ] = Clip1C( ( ( pDsY[ x ][ y ] * a ) >> k ) +b) (8-225)
3.8 Um esboço de trabalho alternativo sobre a previsão CCLM proposta
[00483] Nesta seção, uma modalidade exemplar alternativa que mostra outras modificações que podem ser feitas no atual esboço de trabalho do padrão VVC é descrita. Os números de equação aqui expostos se referem aos
80 / 122 correspondentes números de equação no padrão VVC.
[00484] Especificação do modo de intraprevisão INTRA_LT_CCLM, INTRA_L_CCLM e INTRA_T_CCLM.
[00485] O número de amostras de croma vizinhas disponíveis no topo e de topo-à direita numTopSamp e o número de amostras de croma vizinhas disponíveis na esquerda e à esquerda-abaixo nLeftSamp são derivados como segue: - Se predModeIntra for igual a INTRA_LT_CCLM, o seguinte se aplica: numSampT = availT ? nTbW : 0 (8-157) numSampL = availL ? nTbH : 0 (8-158) - Caso contrário, o seguinte se aplica:
[00486] A variável bCTUboundary é derivada como segue:
[00487] A variável cntN e o arranjo pickPosN[] com N sendo substituído por L e T, são derivados como segue: - A variável numIs4N é definida igual a (( availT && availL && predModeIntra == INTRA_LT_CCLM ) ? 0 : 1).
[00488] - A variável startPosN é definida igual a numSampN >> ( 2 + numIs4N ).
[00489] - A variável pickStepN é definida igual a Max( 1, numSampN >> ( 1 + numIs4N )).
[00490] - Se availN for igual a TRUE e predModeIntra for igual a INTRA_LT_CCLM ou INTRA_N_CCLM, cntN é definido igual a Min( numSampN, ( 1 + numIs4N ) << 1 ), e pickPosN[ pos ] é definido igual a
81 / 122 (startPosN + pos * pickStepN), com pos = 0..( cntN – 1 ).
[00491] - Caso contrário, cntN é definido igual a 0.
[00492] As amostras de previsão predSamples[ x ][ y ] com x =
0..nTbW − 1, y = 0..nTbH − 1 são derivadas como segue: - Se tanto numSampL quanto numSampT forem iguais a 0, o seguinte se aplica: predSamples[ x ][ y ] = 1 << ( BitDepthC − 1 ) (8-162) - Caso contrário, as seguintes etapas ordenadas se aplicam:
1. As amostras de luma colocalizadas pY[ x ][ y ] com x =
0..nTbW * 2 − 1, y= 0..nTbH * 2 − 1 são definidas iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nos locais ( xTbY + x, yTbY + y ).
[00493] 2. As amostras de amostras de luma vizinhas pY[ x ][ y ] são derivadas como segue: - Quando numSampL for maior do que 0, as amostras de luma à esquerda vizinhas pY[ x ][ y ] com x = −1..−3, y = 0..2 * numSampL − 1 são definidas iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nos locais ( xTbY + x , yTbY +y ).
[00494] - Quando numSampT for maior do que 0, as amostras de luma de topo vizinhas pY[ x ][ y ] com x = 0..2 * numSampT − 1, y = −1, −2 são definidas iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nos locais ( xTbY+ x, yTbY + y ).
[00495] - Quando availTL for igual a TRUE, as amostras de luma no topo-à esquerda vizinhas pY[ x ][ y ] com x = −1, y = −1, −2, são definidas iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nos locais ( xTbY+ x, yTbY + y ).
[00496] 3. As amostras de luma colocalizadas descendentemente amostradas pDsY[ x ][ y ] com x = 0..nTbW − 1, y = 0..nTbH − 1 são derivadas como segue:
82 / 122
- Se sps_cclm_colocated_chroma_flag for igual a 1, o seguinte se aplica: - pDsY[ x ][ y ] com x = 1..nTbW − 1, y = 1..nTbH − 1 é derivado como segue:
- Se availL for igual a TRUE, pDsY[ 0 ][ y ] com y = 1..nTbH − 1 é derivado como segue:
- Caso contrário, pDsY[ 0 ][ y ] com y = 1..nTbH − 1 é derivado como segue:
- Se availT for igual a TRUE, pDsY[ x ][ 0 ] com x = 1..nTbW − 1 é derivado como segue:
- Caso contrário, pDsY[ x ][ 0 ] com x = 1..nTbW − 1 é derivado como segue:
- Se availL for igual a TRUE e availT for igual a TRUE, pDsY[ 0 ][ 0 ] é derivado como segue:
- Caso contrário, se availL for igual a TRUE e availT for igual a FALSE, pDsY[ 0 ][ 0 ] é derivado como segue: pDsY[ 0 ][ 0 ] = ( pY[ −1 ][ 0 ] + 2 * pY[ 0 ][ 0 ] + pY[ 1 ][ 0 ] + 2 ) >> 2 (8-169)
83 / 122 - Caso contrário, se availL for igual a FALSE e availT for igual a TRUE, pDsY[ 0 ][ 0 ] é derivado como segue: pDsY[ 0 ][ 0 ] = ( pY[ 0 ][ −1 ] + 2 * pY[ 0 ][ 0 ] + pY[ 0 ][ 1 ] + 2 ) >> 2 (8-170) - Caso contrário (availL é igual a FALSE e availT é igual a FALSE), pDsY[ 0 ][ 0 ] é derivado como segue: pDsY[ 0 ][ 0 ] = pY[ 0 ][ 0 ] (8-171) - Caso contrário, o seguinte se aplica: - pDsY[ x ][ y ] com x = 1..nTbW − 1, y = 0..nTbH − 1 é derivado como segue: - Se availL for igual a TRUE, pDsY[ 0 ][ y ] com y = 0..nTbH − 1 é derivado como segue: - Caso contrário, pDsY[ 0 ][ y ] com y = 0..nTbH − 1 é derivado como segue: pDsY[ 0 ][ y ] = ( pY[ 0 ][ 2 * y ] + pY[ 0 ][ 2 * y + 1 ] + 1 ) >> 1 (8-174)
4. Quando numSampL for maior do que 0, as amostras de croma à esquerda vizinhas selecionadas pSelC[idx] são definidas iguais a p[ - 1 ][ pickPosL[ idx ]] com idx = 0..(cntL – 1), e as amostras de luma à esquerda vizinhas descendentemente amostradas selecionadas pSelDsY[ idx ] com idx = 0..(cntL-1) são derivadas como segue: - A variável y é definida igual a pickPosL[ idx ].
[00497] - Se sps_cclm_colocated_chroma_flag for igual a 1, o seguinte se aplica: - Se y > 0 || availTL == TRUE,
84 / 122 - Caso contrário, pSelDsY[ idx ] = ( pY[ −3 ][ 0 ] + 2 * pY[ −2 ][ 0 ] + pY[ −1 ][ 0 ] + 2 ) >> 2 (8-177) - Caso contrário, o seguinte se aplica:
5. Quando numSampT for maior do que 0, as amostras de croma de topo vizinhas selecionadas pSelC[ idx ] são definidas iguais a p[ pickPosT[ idx – cntL ]][ -1 ] com idx = cntL..( cntL + cntT – 1 ), e as amostras de luma de topo vizinhas descendentemente amostradas pSelDsY[ idx ] com idx = cntL..( cntL + cntT – 1) são especificadas, como segue: - A variável x é definida igual a pickPosT[ idx – cntL ].
[00498] - Se sps_cclm_colocated_chroma_flag for igual a 1, o seguinte se aplica: - Se x > 0: - Se bCTUboundary for igual a FALSE, o seguinte se aplica: - Caso contrário (bCTUboundary é igual a TRUE), o seguinte se aplica: - Caso contrário: - Se availTL for igual a TRUE e bCTUboundary for igual a FALSE, o seguinte se aplica:
85 / 122
- Caso contrário, se availTL for igual a TRUE e bCTUboundary for igual a TRUE, o seguinte se aplica:
- Caso contrário, se availTL for igual a FALSE e bCTUboundary for igual a FALSE, o seguinte se aplica: pSelDsY[ idx ] = ( pY[ 0 ][ −3 ] + 2 * pY[ 0 ][ −2 ] + pY[ 0 ][ −1 ] + 2 ) >> 2 (8-183) - Caso contrário (availTL é igual a FALSE e bCTUboundary é igual a TRUE), o seguinte se aplica: pSelDsY[ idx ] = pY[ 0 ][ −1 ] (8-184) - Caso contrário, o seguinte se aplica: - Se x > 0: - Se bCTUboundary for igual a FALSE, o seguinte se aplica:
- Caso contrário (bCTUboundary é igual a TRUE), o seguinte se aplica:
- Caso contrário: - Se availTL for igual a TRUE e bCTUboundary for igual a FALSE, o seguinte se aplica:
- Caso contrário, se availTL for igual a TRUE e
86 / 122 bCTUboundary for igual a TRUE, o seguinte se aplica: - Caso contrário, se availTL for igual a FALSE e bCTUboundary for igual a FALSE, o seguinte se aplica: pSelDsY[ idx ] = ( pY[ 0 ][ −2 ] + pY[ 0 ][ −1 ] + 1 ) >> 1 (8-189) - Caso contrário (availTL é igual a FALSE e bCTUboundary é igual a TRUE), o seguinte se aplica: pSelDsY[ idx ] = pY[ 0 ][ −1 ] (8-190)
6. Quando cntT+ cntL não for igual a 0, as variáveis minY, maxY, minC e maxC são derivadas como segue: - Quando cntT+cntL for igual a 2, definir pSelComp[3] igual a pSelComp [0], pSelComp[2] igual a pSelComp[1], pSelComp[0] igual a pSelComp [1], e pSelComp[1] igual a pSelComp[3], com Comp sendo substituído por DsY e C.
[00499] - Os arranjos minGrpIdx[] e maxGrpIdx[] são definidos como: minGrpIdx[0] = 0, minGrpIdx[1] = 2, maxGrpIdx[0] = 1, maxGrpIdx[1] = 3.
[00500] - Se pSelDsY[minGrpIdx[0]] > pSelDsY[minGrpIdx[1]], Swap(minGrpIdx[0], minGrpIdx[1]).
[00501] - Se pSelDsY[maxGrpIdx[0]] > pSelDsY[maxGrpIdx[1]], Swap(maxGrpIdx[0], maxGrpIdx[1]).
[00502] - Se pSelDsY[minGrpIdx[0]] > pSelDsY[maxGrpIdx[1]], Swap(minGrpIdx, maxGrpIdx ).
[00503] - Se pSelDsY[minGrpIdx[1]] > pSelDsY[maxGrpIdx[0]], Swap(minGrpIdx[1], maxGrpIdx[0]).
[00504] - maxY = ( pSelDsY[maxGrpIdx[0]] + pSelDsY[maxGrpIdx[1]] + 1 ) >> 1.
[00505] - maxC = ( pSelC[maxGrpIdx[0]] + pSelC[maxGrpIdx[1]] + 1
87 / 122 ) >> 1.
[00506] - minY = ( pSelDsY[minGrpIdx[0]] + pSelDsY[minGrpIdx[1]] + 1 ) >> 1.
[00507] - minC = ( pSelC[minGrpIdx[0]] + pSelC[minGrpIdx[1]] + 1 ) >> 1.
[00508] 7. As variáveis a, b, e k são derivadas como segue: - Se numSampL for igual a 0, e numSampT for igual a 0, o seguinte se aplica: k=0 (8-208) a=0 (8-209) b = 1 << ( BitDepthC − 1) (8-210) - Caso contrário, o seguinte se aplica: diff = maxY − minY (8-211) - Se diff não for igual a 0, o seguinte se aplica: diffC = maxC – minC (8-212) x = Floor( Log2( diff ) ) (8-213) normDiff = ( ( diff << 4 ) >> x ) & 15 (8-214) x += ( normDiff != 0 ) ? 1 : 0 (8-215) y = Floor( Log2( Abs ( diffC ) ) ) + 1 (8-216) a = ( diffC * ( divSigTable[ normDiff ] | 8 ) + 2y − 1 ) >> y (8-217) k=((3+x−y)<1)?1:3+x−y (8-218) a = ( ( 3 + x − y ) < 1 ) ? Sign( a ) * 15 : a (8-219) b = minC − ( ( a * minY ) >> k ) (8-220) em que divSigTable[ ] é especificado como segue: divSigTable[ ] = { 0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0 } (8-221) - Caso contrário (diff é igual a 0), o seguinte se aplica: k=0 (8-222)
88 / 122 a=0 (8-223) b = minC (8-224)
8. As amostras de previsão predSamples[ x ][ y ] com x =
0..nTbW − 1, y = 0.. nTbH − 1 são derivadas como segue: predSamples[ x ][ y ] = Clip1C( ( ( pDsY[ x ][ y ] * a ) >> k ) + b ) (8-225)
[00509] Os exemplos supradescritos podem ser incorporados no contexto dos métodos descritos a seguir, por exemplo, métodos 1800, 1900 e 2000, que podem ser implementados em um codificador e/ou decodificador de vídeo.
[00510] A figura 18A mostra um fluxograma de um método exemplar para processamento de vídeo. O método 1810 inclui, na etapa 1812, determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, parâmetros do modelo linear de componente cruzado (CCLM) com base em amostras de croma que são selecionadas com base em W amostras vizinhas acima disponíveis, W sendo um número inteiro. O método 1810 inclui adicionalmente, na etapa 1814, realizar a conversão com base na determinação.
[00511] A figura 18B mostra um fluxograma de um método exemplar para processamento de vídeo. O método 1820 inclui, na etapa 1822, determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, parâmetros do modo de previsão do modelo linear de componente cruzado (CCLM) com base em amostras de croma que são selecionadas com base em H amostras vizinhas à esquerda disponíveis do bloco de vídeo atual. O método 1820 inclui adicionalmente, na etapa 1824, realizar a conversão com base na determinação.
[00512] A figura 19A mostra um fluxograma de um método exemplar
89 / 122 para processamento de vídeo. O método 1910 inclui, na etapa 1912, determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, parâmetros de um modelo linear de componente cruzado (CCLM) com base em duas ou quatro amostras de croma e/ou correspondentes amostras de luma. O método 1910 inclui adicionalmente, na etapa 1914, realizar a conversão com base na determinação.
[00513] A figura 19B mostra um fluxograma de um método exemplar para processamento de vídeo. O método 1920 inclui, na etapa 1922, selecionar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, amostras de croma com base em uma regra de posição, as amostras de croma usadas para derivar parâmetros de um modelo linear de componente cruzado (CCLM). O método 1920 inclui adicionalmente, na etapa 1924, realizar a conversão com base na determinação. No exemplo, a regra de posição especifica para selecionar as amostras de croma que estão localizadas em uma linha acima e/ou uma coluna à esquerda do bloco de vídeo atual.
[00514] A figura 20A mostra um fluxograma de um método exemplar para processamento de vídeo. O método 2010 inclui, na etapa 2012, determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, posições nas quais amostras de luma são descendentemente amostradas, em que as amostras de luma descendentemente amostradas são usadas para determinar parâmetros de um modelo linear de componente cruzado (CCLM) com base em amostras de croma e amostras de luma descendentemente amostradas, em que as amostras de luma descendentemente amostradas estão em posições correspondentes às posições das amostras de croma que são usadas para derivar os parâmetros do CCLM. O método 2010 inclui adicionalmente, na etapa 2014, realizar a conversão com base na determinação.
90 / 122
[00515] A figura 20B mostra um fluxograma de um método exemplar para processamento de vídeo. O método 2020 inclui, na etapa 2022, determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, um método para derivar parâmetros de um modelo linear de componente cruzado (CCLM) usando amostras de croma e amostras de luma com base em uma condição de codificação associada com o bloco de vídeo atual. O método 2020 inclui adicionalmente, na etapa 2024, realizar a conversão com base na determinação.
[00516] A figura 20C mostra um fluxograma de um método exemplar para processamento de vídeo. O método 2030 inclui, na etapa 2032, determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, se derivam-se valores máximos e/ou valores mínimos de um componente de luma e um componente de croma que são usados para derivar parâmetros de um modelo linear de componente cruzado (CCLM) com base na disponibilidade de um bloco vizinho esquerdo e um bloco vizinho acima do bloco de vídeo atual. O método 2030 inclui adicionalmente, na etapa 2034, realizar a conversão com base na determinação. 4 Implementações de exemplo da tecnologia descrita
[00517] A figura 21A é um diagrama de blocos de um aparelho de processamento de vídeo 3000. O aparelho 3000 pode ser usado para implementar um ou mais dos métodos aqui descritos. O aparelho 3000 pode ser incorporado em um telefone inteligente, tablet, computador, receptor Internet das Coisas (IoT) e similares. O aparelho 3000 pode incluir um ou mais processadores 3002, uma ou mais memórias 3004 e hardware de processamento de vídeo 3006. O(s) processador(es) 3002 pode(m) ser configurado(s) para implementar um ou mais métodos (incluindo, mas sem limitações, os métodos mostrados nas figuras 18 a 29C) descritos no presente
91 / 122 documento. A memória (memórias) 3004 pode ser usada para armazenar dados e código usados para implementar os métodos e as técnicas aqui descritos. O hardware de processamento de vídeo 3006 pode ser usado para implementar, em conjunto de circuitos de hardware, algumas técnicas descritas no presente documento.
[00518] A figura 21B é um outro exemplo de um diagrama de blocos de um sistema de processamento de vídeo no qual técnicas descritas podem ser implementadas. A figura 21B é um diagrama de blocos que mostra um sistema de processamento de vídeo de exemplo 3100 em que várias técnicas aqui descritas podem ser implementadas. Várias implementações podem incluir alguns ou todos os componentes do sistema 3100. O sistema 3100 pode incluir entrada 3102 para receber o conteúdo de vídeo. O conteúdo de vídeo pode ser recebido em um formato bruto ou não comprimido, por exemplo, valores de pixel multicomponentes de 8 ou 10 bits, ou pode ser em um formato comprimido ou codificado. A entrada 3102 pode representar uma interface de rede, uma interface de barramento periférico, ou uma interface de armazenamento. Exemplos da interface de rede incluem interfaces com fios, tal como Ethernet, rede óptica passiva (PON), etc. e interfaces sem fio, tais como interfaces Wi-Fi ou celular.
[00519] O sistema 3100 pode incluir um componente de codificação 3104 que pode implementar os vários métodos de codificação ou codificação descritos no presente documento. O componente de codificação 3104 pode reduzir a taxa de bit média do vídeo proveniente da entrada 3102 para a saída do componente de codificação 3104 para produzir uma representação codificada do vídeo. As técnicas de codificação são, portanto, algumas vezes chamadas de técnicas de compressão de vídeo ou de transcodificação de vídeo. A saída do componente de codificação 3104 pode ser tanto armazenada quanto transmitida por meio de uma comunicação conectada, da forma representada pelo componente 3106. A representação do fluxo contínuo de
92 / 122 bits armazenado ou comunicado (ou codificado) do vídeo recebido na entrada 3102 pode ser usada pelo componente 3108 para gerar valores de pixel ou vídeo exibível que é enviado para uma interface de exibição 3110. O processo de geração do vídeo visualizável pelo usuário a partir da representação de fluxo contínuo de bits é algumas vezes chamado de descompressão de vídeo. Além do mais, embora certas operações de processamento de vídeo sejam referidas como operações ou ferramentas de “codificação”, será percebido que as ferramentas ou operações de codificação são usadas em um codificador e correspondentes ferramentas ou operações de decodificação que revertem os resultados da codificação serão realizadas por um decodificador.
[00520] Exemplos de uma interface de barramento periférico ou uma interface de exibição podem incluir barramento serial universal (USB) ou interface multimídia de alta definição (HDMI) ou Displayport, e similares. Exemplos de interfaces de armazenamento incluem interface SATA (anexação de tecnologia avançado serial), PCI, IDE, e similares. As técnicas descritas no presente documento podem ser incorporadas em vários dispositivos eletrônicos, tais como telefones celulares, laptops, telefones inteligentes ou outros dispositivos que são capazes de realizar processamento de dados digitais e/ou exibição de vídeo.
[00521] Em algumas modalidades, os métodos de codificação de vídeo podem ser implementados usando um aparelho que é implementado em uma plataforma de hardware, da forma descrita em relação às figuras 21A ou 21B.
[00522] Várias técnicas preferivelmente incorporadas com algumas modalidades podem ser descritas usando o seguinte formato com base em cláusula.
[00523] O primeiro conjunto de cláusulas descreve certos recursos e aspectos das técnicas descritas listadas na seção prévia, incluindo, por exemplo, os Exemplos 16 3 17.
[00524] 1. Um método para processar vídeo, compreendendo:
93 / 122 determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, parâmetros de modo de previsão do modelo linear de componente cruzado (CCLM) com base em amostras de croma que são selecionadas com base em W amostras vizinhas acima disponíveis, W sendo um número inteiro; e realizar a conversão com base na determinação.
[00525] 2. O método da cláusula 1, em que o modo de previsão CCLM usa um modo linear para derivar valores de previsão de um componente croma a partir de um outro componente croma.
[00526] 3. O método da cláusula 1, em que W é definido em i) uma largura do bloco de vídeo atual, ii) L vezes a largura do bloco de vídeo atual, L sendo um número inteiro, iii) uma soma de uma altura do bloco de vídeo atual e uma largura do bloco de vídeo atual, ou iv) uma soma da largura do bloco de vídeo atual e do número de amostras vizinhas de topo-à direita disponíveis.
[00527] 4. O método da cláusula 1, em que W depende de uma disponibilidade de pelo menos um de um bloco vizinho acima ou um bloco vizinho esquerdo do bloco de vídeo atual.
[00528] 5. O método da cláusula 1, em que W depende de um modo de codificação do bloco de vídeo atual.
[00529] 6. O método da cláusula 3, em que L tem um valor dependendo de uma disponibilidade de um bloco de topo-à direita ou uma amostra de topo à esquerda que fica localizada adjacente ao bloco de vídeo atual.
[00530] 7. O método da cláusula 1, em que as amostras de croma são selecionadas com base em um primeiro valor de deslocamento da posição (F) e um valor de passo (S) que dependem de W.
[00531] 8. O método da cláusula 7, em que uma amostra de topo à esquerda tem uma coordenada (x0, y0) e as amostras de croma selecionadas
94 / 122 têm coordenadas (x0+F+K×S, y0-1), K sendo um número inteiro entre 0 e kMax.
[00532] 9. O método da cláusula 7, em que F = W/P ou F = W/P + offset, P sendo um número inteiro.
[00533] 10. O método da cláusula 9, em que F= W >> ( 2 + numIs4T ), em que numIs4T é igual a 1 em um caso em que houver quatro amostras vizinhas selecionadas em uma linha vizinha acima e, em outras circunstâncias, numIs4T é igual a 0, em que símbolo >> é definido como um símbolo de deslocamento à direita aritmético.
[00534] 11. O método da cláusula 7, em que S = W/Q, Q sendo um número inteiro.
[00535] 12. O método da cláusula 7, em que S não é menor do que 1.
[00536] 13. O método das cláusulas 11 ou 12, em que S= Max( 1, W >> ( 1 + numIs4T ) ), em que numIs4T é igual a 1 em um caso em que houver quatro amostras vizinhas selecionadas em uma linha vizinha acima e, em outras circunstâncias, numIs4T é igual a 0, em que o símbolo >> é definido como um símbolo de deslocamento à direita aritmético.
[00537] 14. O método das cláusulas 10 ou 13, em que numIs4T é igual a 1 em um caso em que amostras vizinhas acima estiverem disponíveis, amostras vizinhas à esquerda estão disponíveis, e o bloco de vídeo atual é codificado com um CCLM normal que é diferente de um primeiro CCLM usando apenas amostras vizinhas à esquerda, e diferente de um segundo CCLM usando apenas amostras vizinhas acima.
[00538] 15. O método da cláusula 7, em que F = S/R, R sendo um número inteiro.
[00539] 16. O método da cláusula 7, em que S = F/Z, Z sendo um número inteiro.
[00540] 17. O método de qualquer uma das cláusulas 8-16, em que pelo menos um de Kmax, F, S, ou offset depende de um modo de previsão do
95 / 122 bloco de vídeo atual que é um de um primeiro CCLM usando apenas amostras vizinhas à esquerda, um segundo CCLM usando apenas amostras vizinhas acima, um CCLM normal usando amostras tanto vizinhas à esquerda quanto vizinhas acima, ou outros modos que são diferentes do primeiro CCLM, do segundo CCLM, e do CCLM normal.
[00541] 18. O método de qualquer uma das cláusulas 8-16, em que pelo menos um de Kmax, F, S, ou offset depende de uma largura e/ou uma altura do bloco de vídeo atual.
[00542] 19. O método de qualquer uma das cláusulas 8-16, em que pelo menos um de Kmax, F, S, ou offset depende de disponibilidades de amostras vizinhas.
[00543] 20. O método de qualquer uma das cláusulas 8-16, em que pelo menos um de Kmax, F, S, ou offset depende de W.
[00544] 21. Um método para processar vídeo, compreendendo: determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, parâmetros do modo de previsão do modelo linear de componente cruzado (CCLM) com base em amostras de croma que são selecionadas com base em H amostras vizinhas à esquerda disponíveis do bloco de vídeo atual; e realizar a conversão com base na determinação.
[00545] 22. O método da cláusula 21, em que o modo de previsão CCLM usa um modo linear para derivar valores de previsão de um componente de croma a partir de um outro componente.
[00546] 23. O método da cláusula 21, em que H é definido em um de i) uma altura do bloco de vídeo atual, ii) L vezes a altura do bloco de vídeo atual, L sendo um número inteiro, iii) uma soma de uma altura do bloco de vídeo atual e uma largura do bloco de vídeo atual, ou iv) uma soma da altura do bloco de vídeo atual e do número de amostras vizinhas à esquerda-base disponíveis.
96 / 122
[00547] 24. O método da cláusula 21, em que H depende de uma disponibilidade de pelo menos um de um bloco vizinho acima ou um bloco vizinho esquerdo do bloco de vídeo atual.
[00548] 25. O método da cláusula 21, em que H depende de um modo de codificação do bloco de vídeo atual.
[00549] 26. O método da cláusula 23, em que L tem um valor dependendo de uma disponibilidade de um bloco abaixo-à esquerda ou uma amostra abaixo-à esquerda que fica localizada adjacente ao bloco de vídeo atual.
[00550] 27. O método da cláusula 21, em que as amostras de croma são selecionadas com base em um primeiro valor de deslocamento da posição (F) e um valor de passo (S) que dependem de H.
[00551] 28. O método da cláusula 27, em que uma amostra no topo-à esquerda tem uma coordenada (x0, y0) e as amostras de croma selecionadas têm coordenadas (x0-1, y0+F+K×S), K sendo um número inteiro entre 0 e kMax.
[00552] 29. O método da cláusula 27, em que F = H/P ou F = H/P + offset, P sendo um número inteiro.
[00553] 30. O método da cláusula 29, em que F= H >> ( 2 + numIs4L ), em que numIs4L é igual a 1 em um caso em que houver quatro amostras vizinhas selecionadas na coluna vizinha à esquerda; caso contrário, o mesmo é igual a 0.
[00554] 31. O método da cláusula 27, em que S = H/Q, Q sendo um número inteiro.
[00555] 32. O método da cláusula 27, em que S não é menor do que 1.
[00556] 33. O método das cláusulas 31 ou 32, em que S= Max(1, H >> ( 1 + numIs4L)), em que numIs4L é igual a 1 em um caso em que houver quatro amostras vizinhas selecionadas em uma coluna vizinha à esquerda e, caso contrário, numIs4L é igual a 0.
97 / 122
[00557] 34. O método das cláusulas 30 ou 33, em que numIs4L é igual a 1 em um caso em que amostras vizinhas acima estiverem disponíveis, amostras vizinhas à esquerda estão disponíveis, e o bloco de vídeo atual é codificado com um CCLM normal que é diferente de um primeiro CCLM usando apenas amostras vizinhas à esquerda, e diferente de um segundo CCLM usando apenas amostras vizinhas acima.
[00558] 35. O método da cláusula 27, em que F = S/R, R sendo um número inteiro.
[00559] 36. O método da cláusula 27, em que S = F/Z, Z sendo um número inteiro.
[00560] 37. O método de qualquer uma das cláusulas 28 a 36, em que pelo menos um de Kmax, F, S, ou offset depende de um modo de previsão do bloco de vídeo atual que é um de um primeiro CCLM usando apenas amostras vizinhas à esquerda, um segundo CCLM usando apenas amostras vizinhas acima, um CCLM normal usando amostras tanto vizinhas à esquerda quanto vizinhas acima, ou outros modos que são diferentes do primeiro CCLM, do segundo CCLM, e do CCLM normal.
[00561] 38. O método de qualquer uma das cláusulas 28 a 36, em que pelo menos um de Kmax, F, S, ou offset depende de uma largura e/ou uma altura do bloco de vídeo atual.
[00562] 39. O método de qualquer uma das cláusulas 28 a 36, em que pelo menos um de Kmax, F, S, ou offset depende de H.
[00563] 40. O método de qualquer uma das cláusulas 28 a 36, em que pelo menos um de Kmax, F, S, ou offset depende de disponibilidades de amostras vizinhas.
[00564] 41. O método da cláusula 21, em que H é definido em uma soma da altura do bloco de vídeo atual e uma largura do bloco de vídeo atual em um caso em que um bloco vizinho acima-à direita do bloco de vídeo atual estiver disponível.
98 / 122
[00565] 42. O método da cláusula 21, em que, em um caso em que amostras vizinhas à esquerda estiverem indisponíveis, as amostras de croma selecionadas têm a altura H independente se o bloco de vídeo atual tem um primeiro CCLM usando apenas amostras vizinhas acima ou não.
[00566] 43. O método da cláusula 1, em que W é definido em uma soma da altura do bloco de vídeo atual e de uma largura do bloco de vídeo atual em um caso em que um bloco vizinho abaixo-à esquerda do bloco de vídeo atual estiver disponível.
[00567] 44. O método da cláusula 1, em que, em um caso em que amostras vizinhas acima estiverem indisponíveis, as amostras de croma selecionadas têm o número de W independente se o bloco de vídeo atual tem um primeiro CCLM usando apenas amostras vizinhas à esquerda ou não.
[00568] 45. O método de qualquer uma das cláusulas 1 a 44, em que a realização da conversão inclui gerar a representação codificada a partir do bloco atual.
[00569] 46. O método de qualquer uma das cláusulas 1 a 44, em que a realização da conversão inclui gerar o bloco atual a partir da representação codificada.
[00570] 47. Um aparelho em um sistema de vídeo compreendendo um processador e uma memória não transitória com instruções na mesma, em que as instruções, mediante a execução pelo processador, fazem com que o processador implemente o método em qualquer uma das cláusulas 1 a 46.
[00571] 48. Um produto de programa de computador armazenado em uma mídia legível por computador não transitória, o produto de programa de computador incluindo código de programa para realizar o método em qualquer uma das cláusulas 1 a 46.
[00572] O segundo conjunto de cláusulas descreve certos recursos e aspectos das técnicas descritas listadas na seção prévia, incluindo, por exemplo, Exemplos 18 e 19.
99 / 122
[00573] 1. Um método para processar vídeo, compreendendo: determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, parâmetros de um modelo linear de componente cruzado (CCLM) com base em duas ou quatro amostras de croma e/ou correspondentes amostras de luma; e realizar a conversão com base na determinação.
[00574] 2. O método da cláusula 1, em que as correspondentes amostras de luma são obtidas por amostragem descendente.
[00575] 3. O método da cláusula 1, em que um maxY, um maxC, um minY e um minC são derivados primeiramente e são usados para derivar os parâmetros.
[00576] 4. O método da cláusula 3, em que os parâmetros são derivados com base em abordagem de 2 pontos.
[00577] 5. O método da cláusula 3, em que as duas amostras de croma são selecionadas para derivar o maxY, o maxC, o minY e o minC, e em que o minY é definido para ser o menor valor da amostra de luma, o minC é seu correspondente valor da amostra de croma, o maxY é definido para ser o maior valor da amostra de luma, e o maxC é seu correspondente valor da amostra de croma.
[00578] 6. O método da cláusula 3, em que as quatro amostras de croma são selecionadas para derivar o maxY, o maxC, o minY e o minC, e em que as quatro amostras de croma e as correspondentes amostras de luma são divididas em dois arranjos G0 e G1, cada arranjo incluindo duas amostras de croma e suas correspondentes amostras de luma.
[00579] 7. O método da cláusula 6, em que os dois arranjos G0 e G1 incluem um dos seguintes conjuntos: i) G0={S0, S1}, G1={S2, S3}, ii) G0={S1, S0}, G1={S3, S2}, iii) G0={S0, S2}, G1={S1, S3},
100 / 122 iv) G0={S2, S0}, G1={S3, S1}, v) G0={S1, S2}, G1={S0, S3}, vi) G0={S2, S1}, G1={S3, S0}, vii) G0={S0, S3}, G1={S1, S2}, viii) G0={S3, S0}, G1={S2, S1}, ix) G0={S1, S3}, G1={S0, S2}, x) G0={S3, S1}, G1={S2, S0}, xi) G0={S3, S2}, G1={S0, S1}, ou xii) G0={S2, S3}, G1={S1, S0}, e em que S0, S1, S2, S3 incluem as quatro amostras de croma, respectivamente, e incluem adicionalmente as correspondentes amostras de luma, respectivamente.
[00580] 8. O método da cláusula 7, em que, mediante uma comparação de dois valores da amostra de luma de G0[0] e G0[1], uma amostra de croma e sua correspondente amostra de luma de G0[0] são sobrecarregadas com aquelas de G0[1].
[00581] 9. O método da cláusula 8, em que a amostra de croma e sua correspondente amostra de luma de G0[0] são sobrecarregadas com aquelas de G0[1] em um caso em que um valor da amostra de luma de G0[0] é maior do que um valor da amostra de luma de G0[1].
[00582] 10. O método da cláusula 7, em que, mediante uma comparação de dois valores da amostra de luma de G1[0] e G1[1], uma amostra de croma e sua correspondente amostra de luma de G1[0] são sobrecarregadas com aquelas de G1[1].
[00583] 11. O método da cláusula 10, em que a amostra de croma e sua correspondente amostra de luma de G1[0] são sobrecarregadas com aquelas de G1[1] em um caso em que um valor da amostra de luma de G1[0] for maior do que um valor da amostra de luma de G1[1].
[00584] 12. O método da cláusula 6, em que, mediante uma
101 / 122 comparação de dois valores da amostra de luma de G0[0] e G1[1], amostras de croma e suas correspondentes amostras de luma de G0 são sobrecarregadas com aquelas de G1.
[00585] 13. O método da cláusula 12, em que as amostras de croma e suas correspondentes amostras de luma de G0 são sobrecarregadas com aquelas de G1 em um caso em que um valor da amostra de luma de G0[0] for maior do que um valor da amostra de luma de G1[1].
[00586] 14. O método da cláusula 7, em que, mediante uma comparação de dois valores da amostra de luma de G0[1] e G1[0], uma amostra de croma e sua correspondente amostra de luma de G0[1] são sobrecarregadas com aquelas de G1[0].
[00587] 15. O método da cláusula 14, em que a amostra de croma e sua correspondente amostra de luma de G0[1] são sobrecarregadas com aquelas de G1[0] em um caso em que um valor da amostra de luma de G0[1] for maior do que um valor da amostra de luma de G1[0].
[00588] 16. O método da cláusula 7, em que, mediante uma comparação de dois valores da amostra de luma de G0[0], G0[1], G1[0], e G1[1], seguintes operações de sobrecarga são seletivamente conduzidas em uma ordem: i) uma operação de sobrecarga de uma amostra de croma e sua correspondente amostra de luma de G0[0] com aquelas de G0[1], ii) uma operação de sobrecarga de uma amostra de croma e sua correspondente amostra de luma de G1[0] com aquelas de G1[1], iii) uma operação de sobrecarga de amostras de croma e suas correspondentes amostras de luma de G0 com aquelas de G1, e iv) uma operação de sobrecarga de uma amostra de croma e sua correspondente amostra de luma de G0[1] com aquelas de G1[0].
[00589] 17. O método das cláusulas 7 ou 16, em que maxY é calculado com base em uma soma de valores da amostra de luma de G1[0] e G1[1] e maxC é calculado com base em uma soma dos valores de amostra de croma de G1[0] e G1[1].
102 / 122
[00590] 18. O método das cláusulas 7 ou 16, em que maxY é calculado com base em uma média de valores da amostra de luma de G1[0] e G1[1], e maxC é calculado com base em uma média de valores da amostra de croma de G1[0] e G1[1].
[00591] 19. O método das cláusulas 7 ou 16, em que minY é calculado com base em uma soma dos valores de amostra de luma de G0[0] e G0[1], e minC é calculado com base em uma soma dos valores de amostra de croma de G0[0] e G0[1].
[00592] 20. O método das cláusulas 7 ou 16, em que minY é calculado com base em uma média de valores da amostra de luma de G0[0] e G0[1], e minC é calculado com base em uma média de valores da amostra de croma de G0[0] e G0[1].
[00593] 21. O método de qualquer uma das cláusulas 17 a 20, em que os cálculos de maxY e maxC ou os cálculos de minY e minC são conduzidos depois de qualquer uma das operações de sobrecarga que são realizadas mediante uma comparação de dois valores da amostra de luma de G0[0], G0[1], G1[0] e G1[1], em que as operações de sobrecarga incluem: i) uma operação de sobrecarga de uma amostra de croma e sua correspondente amostra de luma de G1[0] com aquelas de G1[1], ii) uma operação de sobrecarga de amostras de croma e correspondentes amostras de luma de G0 com aquelas de G1, e iii) uma operação de sobrecarga de uma amostra de croma e sua correspondente amostra de luma de G0[1] com aquelas de G1[0], ou iv) uma operação de sobrecarga das amostras de croma e correspondentes amostras de luma de G0[0] com aquelas de G0[1].
[00594] 22. O método da cláusula 1, em que, em um caso em que houver apenas duas amostras de croma que estão disponíveis, um enchimento é realizado nas duas amostras de croma disponíveis para prover as quatro amostras de croma, e também realizado nas duas amostras de luma disponíveis correspondentes para prover as quatro amostras de luma.
103 / 122
[00595] 23. O método da cláusula 22, em que as quatro amostras de croma incluem as duas amostras de croma disponíveis e duas amostras de croma de enchimento que são copiadas das duas amostras de croma disponíveis, e as quatro amostras de luma correspondentes incluem as duas amostras de luma disponíveis e duas amostras de luma de enchimento que são copiadas a partir das duas amostras de luma disponíveis.
[00596] 24. O método da cláusula 7, em que S0, S1, S2, S3 são amostras de croma e correspondentes amostras de luma são selecionadas em uma dada ordem em uma linha acima e/ou uma coluna à esquerda do bloco de vídeo atual.
[00597] 25. Um método para processar vídeo, compreendendo: selecionar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, amostras de croma com base em uma regra de posição, as amostras de croma usadas para derivar parâmetros de um modelo linear de componente cruzado (CCLM); e realizar a conversão com base na determinação, em que a regra de posição especifica para selecionar as amostras de croma que estão localizadas em uma linha acima e/ou uma coluna à esquerda do bloco de vídeo atual.
[00598] 26. O método da cláusula 25, em que a linha acima e a coluna à esquerda têm W amostras e H amostras, respectivamente, W e H sendo uma largura e uma altura do bloco de vídeo atual, respectivamente.
[00599] 27. O método da cláusula 26, em que a regra de posição é aplicada para o bloco de vídeo atual codificado com um modo CCLM normal que é diferente de um primeiro modo CCLM que usa apenas amostras vizinhas acima para derivar os parâmetros do modelo linear de componente cruzado e de um segundo modo CCLM que usa apenas amostras vizinhas à esquerda para derivar os parâmetros do modelo linear de componente cruzado.
[00600] 28. O método da cláusula 26, em que a regra de posição
104 / 122 especifica para selecionar as amostras de croma que estão localizadas na linha acima e em uma linha acima-à direita do bloco de vídeo atual.
[00601] 29. O método da cláusula 28, em que a linha acima e a linha acima-à direita têm W amostras e H amostras, respectivamente, W e H sendo uma largura e uma altura do bloco de vídeo atual, respectivamente.
[00602] 30. O método da cláusula 28, em que apenas amostras na linha acima e na linha acima-à direita disponíveis são selecionadas.
[00603] 31. O método da cláusula 28, em que a regra de posição é aplicada para o bloco de vídeo atual codificado com um primeiro modo CCLM que usa apenas amostras vizinhas acima para derivar os parâmetros do modelo linear de componente cruzado.
[00604] 32. O método da cláusula 28, em que a regra de posição é aplicada em um caso em que a linha acima está disponível e a coluna à esquerda está indisponível e em que o bloco de vídeo atual é codificado com um modo CCLM normal que é diferente de um primeiro modo CCLM que usa apenas amostras vizinhas acima para derivar os parâmetros do CCLM e de um segundo modo CCLM que usa apenas amostras vizinhas à esquerda para derivar os parâmetros do modelo linear de componente cruzado.
[00605] 33. O método de qualquer uma das cláusulas 26-32, em que numSampT é definido com base em uma regra que especifica que numSampT é definido igual a nTbW em um caso em que amostras vizinhas acima estiverem disponíveis e numSampT é definido igual a 0 em um caso em que as amostras vizinhas acima não estiverem disponíveis, e em que numSampT representa o número de amostras de croma em uma linha vizinha acima usadas para derivar os parâmetros do modelo linear de componente cruzado e nTbW representa uma largura do bloco de vídeo atual.
[00606] 34. O método da cláusula 33, em que a regra é aplicada para o bloco de vídeo atual codificado com um modo CCLM normal que é diferente de um primeiro modo CCLM que usa apenas amostras vizinhas acima para
105 / 122 derivar o CCLM e de um segundo modo CCLM que usa apenas amostras vizinhas à esquerda para derivar os parâmetros do modelo linear de componente cruzado.
[00607] 35. O método de qualquer uma das cláusulas 26-32, em que numSampT é definido com base em uma regra que especifica que numSampT é definido igual a nTbW + Min( numTopRight, nTbH ) em um caso em que amostras vizinhas acima estiverem disponíveis e o bloco de vídeo atual for codificado com um primeiro modo CCLM que usa apenas amostras vizinhas acima para derivar os parâmetros do modelo linear de componente cruzado, e que, em outras circunstâncias, o numSampT é definido igual a 0, e em que numSampT representa o número de amostras de croma em uma linha vizinha acima usadas para derivar os parâmetros do modelo linear de componente cruzado, nTbW e nTbH representam uma largura e uma altura do bloco atual, respectivamente, e numTopRight representa o número de amostras vizinhas de topo à direita disponíveis.
[00608] 36. O método da cláusula 25, em que a regra de posição especifica para selecionar as amostras de croma que estão localizadas na coluna à esquerda e uma coluna abaixo-à esquerda do bloco de vídeo atual.
[00609] 37. O método da cláusula 36, em que a coluna à esquerda e a coluna abaixo-à esquerda têm H amostras e W amostras, respectivamente, W e H sendo uma largura e uma altura do bloco de vídeo atual, respectivamente.
[00610] 38. O método da cláusula 36, em que apenas amostras disponíveis na coluna à esquerda e na coluna abaixo-à esquerda são selecionadas.
[00611] 39. O método da cláusula 36, em que a regra de posição é aplicada para o bloco de vídeo atual codificado com um segundo modo CCLM que usa apenas amostras vizinhas à esquerda para derivar os parâmetros do modelo linear de componente cruzado.
[00612] 40. O método da cláusula 36, em que a regra de posição é
106 / 122 aplicada em um caso em que a linha acima está indisponível e a coluna à esquerda está disponível e em que o bloco de vídeo atual é codificado com um modo CCLM normal que é diferente de um primeiro modo CCLM que usa apenas amostras vizinhas acima para derivar os parâmetros do CCLM e de um segundo modo CCLM que usa apenas amostras vizinhas à esquerda para derivar os parâmetros do modelo linear de componente cruzado.
[00613] 41. O método de qualquer uma das cláusulas 36-40, em que numSampL é definido com base em uma regra que especifica que numSampL é definido igual a nTbH em um caso em que amostras vizinhas à esquerda estiverem disponíveis e, em outras circunstâncias, numSampL é definido igual a 0, e em que numSampL representa o número de amostras de croma em uma coluna vizinha à esquerda usadas para derivar os parâmetros do modelo linear de componente cruzado e nTbH representa uma altura do bloco de vídeo atual.
[00614] 42. O método da cláusula 41, em que a regra é aplicada para o bloco de vídeo atual codificado com um modo CCLM normal que é diferente de um primeiro modo CCLM que usa apenas amostras vizinhas acima para derivar os parâmetros do modelo linear de componente cruzado e de um segundo modo CCLM que usa apenas amostras vizinhas à esquerda para derivar os parâmetros do modelo linear de componente cruzado.
[00615] 43. O método de qualquer uma das cláusulas 36-40, em que numSampL é definido com base em uma regra que especifica que numSampL é definido igual a nTbH + Min( numLeftBelow, nTbW ) em um caso em que amostras vizinhas à esquerda estiverem disponíveis e o bloco de vídeo atual for codificado com um segundo modo CCLM que usa apenas amostras vizinhas à esquerda para derivar os parâmetros do modelo linear de componente cruzado e em que, em outras circunstâncias, numSampL é definido igual a 0, e em que numSampL representa o número de amostras de croma em uma coluna vizinha à esquerda usadas para derivar os parâmetros
107 / 122 do modelo linear de componente cruzado, nTbW e nTbH representam uma largura e uma altura do bloco atual, respectivamente, e numLeftBelow representa o número de amostras vizinhas abaixo-à esquerda disponíveis.
[00616] 44. O método de qualquer uma das cláusulas 25-43, em que amostras de luma correspondentes a amostras de croma selecionadas são usadas para derivar os parâmetros do modelo linear de componente cruzado.
[00617] 45. O método da cláusula 44, em que as amostras de luma são derivadas por amostragem descendente.
[00618] 46. O método de qualquer uma das cláusulas 1-45, em que a realização da conversão inclui gerar a representação codificada a partir do bloco atual.
[00619] 47. O método de qualquer uma das cláusulas 1-45, em que a realização da conversão inclui gerar o bloco atual a partir da representação codificada.
[00620] 48. O método de qualquer uma das cláusulas 1-47, em que o CCLM usou amostras de componente luma colocalizadas descendentemente amostradas para derivar valores de previsão das amostras de componente de croma do bloco atual com base em um modelo linear que inclui os parâmetros do modelo linear de componente cruzado.
[00621] 49. Um aparelho em um sistema de vídeo compreendendo um processador e uma memória não transitória com instruções na mesma, em que as instruções, mediante a execução pelo processador, fazem com que o processador implemente o método em qualquer uma das cláusulas 1 a 48.
[00622] 50. Um produto de programa de computador armazenado em uma mídia legível por computador não transitória, o produto de programa de computador incluindo código de programa para realizar o método em qualquer uma das cláusulas 1 a 48.
[00623] O terceiro conjunto de cláusulas descreve certos recursos e aspectos das técnicas descritas listadas na seção prévia, incluindo, por
108 / 122 exemplo, Exemplos 20, 21, 22.
[00624] 1. Um método para processar vídeo, compreendendo: determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, posições nas quais amostras de luma são descendentemente amostradas, em que as amostras de luma descendentemente amostradas são usadas para determinar parâmetros de um modelo linear de componente cruzado (CCLM) com base em amostras de croma e amostras de luma descendentemente amostradas, em que as amostras de luma descendentemente amostradas estão em posições correspondentes às posições das amostras de croma que são usadas para derivar os parâmetros do CCLM; e realizar a conversão com base na determinação.
[00625] 2. Um método da cláusula 1, em que amostras de luma não são descendentemente amostradas em uma posição que está fora do bloco de vídeo atual e não é usada para determinar os parâmetros do CCLM.
[00626] 3. Um método para processar vídeo, compreendendo: determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, um método para derivar parâmetros de um modelo linear de componente cruzado (CCLM) usando amostras de croma e amostras de luma com base em uma condição de codificação associada com o bloco de vídeo atual; e realizar a conversão com base na determinação.
[00627] 4. O método da cláusula 3, em que a condição de codificação corresponde a um formato de cor do bloco de vídeo atual.
[00628] 5. O método da cláusula 4, em que o formato de cor é 4:2:0 ou 4:4:4.
[00629] 6. O método da cláusula 3, em que a condição de codificação corresponde a um método de representação de cor do bloco de vídeo atual.
[00630] 7. O método da cláusula 6, em que o método de representação
109 / 122 de cor é um RGB ou YCbCr.
[00631] 8. O método da cláusula 3, em que as amostras de croma são descendentemente amostradas e a determinação depende dos locais das amostras de croma descendentemente amostradas.
[00632] 9. O método da cláusula 3, em que o método para derivar parâmetros compreende determinar os parâmetros do CCLM com base nas amostras de croma e nas amostras de luma que são selecionadas a partir de um grupo de amostras de croma vizinhas com base em uma regra de posição.
[00633] 10. O método da cláusula 3, em que o método para derivar parâmetros compreende determinar os parâmetros do CCLM com base em valores máximo e mínimo das amostras de croma e das amostras de luma.
[00634] 11. O método da cláusula 3, em que o método para derivar parâmetros compreende determinar os parâmetros do CCLM que são completamente determináveis por duas amostras de croma e correspondentes duas amostras de luma.
[00635] 12. O método da cláusula 3, em que o método para derivar parâmetros compreende determinar os parâmetros do CCLM usando uma tabela de parâmetro cujas entradas são recuperadas de acordo com dois valores da amostra de croma e dois valores da amostra de luma.
[00636] 13. Um método para processar vídeo, compreendendo: determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, se derivam-se valores máximos e/ou valores mínimos de um componente de luma e um componente de croma que são usados para derivar parâmetros de um modelo linear de componente cruzado (CCLM) com base na disponibilidade de um bloco vizinho esquerdo e um bloco vizinho acima do bloco de vídeo atual; e realizar a conversão com base na determinação.
[00637] 14. O método da cláusula 13, em que os valores máximos e/ou os valores mínimos não são derivados em um caso em que o bloco vizinho
110 / 122 esquerdo e o bloco vizinho acima estão indisponíveis.
[00638] 15. O método da cláusula 13, em que a determinação determina com base em um número de amostras vizinhas disponíveis do bloco de vídeo atual, e em que as amostras vizinhas disponíveis são usadas para derivar os parâmetros do modelo linear de componente cruzado.
[00639] 16. O método da cláusula 15, em que os valores máximos e/ou os valores mínimos não são derivados em um caso de numSampL == 0 e numSampT == 0, o numSampL e o numSampT indicando um número de amostras vizinhas disponíveis do bloco vizinho esquerdo e um número de amostras vizinhas disponíveis do bloco vizinho acima, respectivamente, e em que as amostras vizinhas disponíveis do bloco vizinho esquerdo e as amostras vizinhas disponíveis do bloco vizinho acima são usadas para derivar os parâmetros do modelo linear de componente cruzado.
[00640] 17. O método da cláusula 15, em que os valores máximos e/ou os valores mínimos não são derivados em um caso de numSampL + numSampT == 0, o numSampL e o numSampT indicando um número de amostras vizinhas disponíveis do bloco vizinho esquerdo e um número de amostras vizinhas disponíveis do bloco vizinho acima, respectivamente, e em que as amostras vizinhas disponíveis do bloco vizinho esquerdo e as amostras vizinhas disponíveis do bloco vizinho acima são usadas para derivar os parâmetros do modelo linear de componente cruzado.
[00641] 18. O método de qualquer uma das cláusulas 1-17, em que a realização da conversão inclui gerar a representação codificada a partir do bloco atual.
[00642] 19. O método de qualquer uma das cláusulas 1-17, em que a realização da conversão inclui gerar o bloco atual a partir da representação codificada.
[00643] 20. Um aparelho em um sistema de vídeo compreendendo um processador e uma memória não transitória com instruções na mesma, em que
111 / 122 as instruções, mediante a execução pelo processador, fazem com que o processador implemente o método em qualquer uma das cláusulas 1 a 19.
[00644] 21. Um produto de programa de computador armazenado em uma mídia legível por computador não transitória, o produto de programa de computador incluindo código de programa para realizar o método em qualquer uma das cláusulas 1 a 19.
[00645] O quarto conjunto de cláusulas descreve certos recursos e aspectos das técnicas descritas listadas na seção prévia.
[00646] 1. Um método para processar vídeo, compreendendo: determinar, para um bloco de vídeo atual que compreende um bloco de croma e com base em duas ou mais amostras de croma, um conjunto de valores para parâmetros de um modelo linear, em que as duas ou mais amostras de croma são selecionadas a partir de um grupo de amostras de croma vizinhas ao bloco de croma; e reconstruir, com base no modelo linear, o bloco de vídeo atual.
[00647] 2. O método da cláusula 1, em que uma amostra de topo-à esquerda do bloco de croma é ( x, y ), em que uma largura e uma altura do bloco de croma são W e H, respectivamente, e em que o grupo de amostras de croma vizinhas compreende: amostra A com coordenadas ( x - 1, y ), amostra D com coordenadas ( x - 1, y + H - 1 ), amostra J com coordenadas ( x, y - 1 ), e amostra M com coordenadas ( x + W - 1, y - 1 ).
[00648] 3. O método da cláusula 2, em que um bloco vizinho de topo-à esquerda e um bloco vizinho acima do bloco de vídeo atual estão disponíveis, e em que as duas ou mais amostras de croma compreendem as amostras A, D, J e M.
[00649] 4. O método da cláusula 2, em que um bloco vizinho de topo-à esquerda do bloco de vídeo atual está disponível, e em que as duas ou mais amostras de croma compreendem as amostras A e D.
112 / 122
[00650] 5. O método da cláusula 2, em que um bloco vizinho acima do bloco de vídeo atual está disponível, e em que as duas ou mais amostras de croma compreendem as amostras J e M.
[00651] 6. Um método para processar vídeo, compreendendo: gerar, para um bloco de vídeo atual que compreende um bloco de croma, uma pluralidade de grupos compreendendo amostras de croma e de luma de um bloco vizinho do bloco de vídeo atual; determinar, com base na pluralidade de grupos, valores máximo e mínimo das amostras de croma e de luma; determinar, com base nos valores máximo e mínimo, um conjunto de valores para parâmetros de um modelo linear; e reconstruir, com base no modelo linear, o bloco de vídeo atual.
[00652] 7. O método da cláusula 6, em que a geração da pluralidade de grupos é com base em uma disponibilidade do bloco vizinho do bloco de vídeo atual.
[00653] 8. O método da cláusula 6, em que a pluralidade de grupos compreende S0 e S1, em que um máximo valor de luma é calculado como maxL = f1(maxLS0, maxLS1,…, maxLSm), em que f1 é uma primeira função e maxLSi é um máximo valor de luma de um grupo Si da pluralidade de grupos, em que um máximo valor de croma é calculado como maxC = f2(maxCS0, maxCS1,…, maxCSm), em que f2 é uma segunda função e maxCSi é um máximo valor de croma do grupo Si, em que um mínimo valor de luma é calculado como minL = f3(minLS0, minLS1,…, minLSm), em que f3 é uma terceira função e minLSi é um mínimo valor de luma do grupo Si, em que um mínimo valor de croma é calculado como minC = f4(minCS0, minCS1,…, minCSm), em que f4 é uma quarta função e minCSi é um máximo valor de croma do grupo Si, e em que os parâmetros do modelo linear compreendem α e β que são calculados como α = ( maxC - minC ) / ( maxL - minL ) e β = minC - α×minL.
[00654] 9. O método da cláusula 8, em que uma amostra de topo-à esquerda do bloco de croma é ( x, y ), em que uma largura e uma altura do
113 / 122 bloco de croma são W e H, respectivamente, e em que o grupo de amostras de croma vizinhas compreende: amostra A com coordenadas ( x - 1, y ), amostra D com coordenadas ( x - 1, y + H - 1 ), amostra J com coordenadas ( x, y - 1 ), e amostra M com coordenadas ( x + W - 1, y - 1 ).
[00655] 10. O método da cláusula 9, em que um bloco vizinho de topo- à esquerda e um bloco vizinho acima do bloco de vídeo atual estão disponíveis, em que os máximos valores de luma e de croma e os mínimos valores de luma e de croma para o grupo S0 (maxLS0, maxCS0, minLS0 e minLS0, respectivamente) são com base nas amostras A e D, em que os máximos valores de luma e de croma e os mínimos valores de luma e de croma para o grupo S1 (maxLS1, maxCS1, minLS1 e minLS1, respectivamente) são com base nas amostras J e M, e em que maxL = ( maxLS0 + maxLS1 ) / 2, maxC = ( maxCS0 + maxCS1 ) / 2, minL = ( minLS0 + minLS1 ) / 2 e minC = ( minCS0 + minCS1 ) /
2.
[00656] 11. O método da cláusula 9, em que um bloco vizinho de topo- à esquerda do bloco de vídeo atual está disponível, e em que maxL, maxC, minL e minC são com base nas amostras A e D.
[00657] 12. O método da cláusula 9, em que um bloco vizinho acima do bloco de vídeo atual está disponível, e em que maxL, maxC, minL e minC são com base nas amostras J e M.
[00658] 13. O método da cláusula 6, em que os parâmetros do modelo linear compreendem α e β que são calculados como α = 0 e β = 1 << ( bitDepth - 1 ), em que bitDepth é uma profundidade de bit das amostras de croma.
114 / 122
[00659] 14. O método da cláusula 6, em que a geração de uma pluralidade de grupos é com base em uma altura ou uma largura do bloco de vídeo atual.
[00660] 15. Um método para processar vídeo, compreendendo: gerar amostras de croma e de luma descendentemente amostradas pela amostragem descendente das amostras de croma e de luma de um bloco vizinho de um bloco de vídeo atual com uma altura (H) e uma largura (W); determinar, com base nas amostras de croma e de luma descendentemente amostradas, um conjunto de valores para parâmetros de um modelo linear para o bloco de vídeo atual; e reconstruir, com base no modelo linear, o bloco de vídeo atual.
[00661] 16. O método da cláusula 15, em que a amostragem descendente é com base na altura ou na largura.
[00662] 17. O método da cláusula 16, em que W < H.
[00663] 18. O método da cláusula 16, em que W > H.
[00664] 19. O método da cláusula 15, em que uma amostra de topo-à esquerda do bloco de vídeo atual é R[ 0, 0 ], em que as amostras de croma descendentemente amostradas compreendem amostras R[ -1, K×H/W ], e em que K é um número inteiro não negativo que varia de 0 a W-1.
[00665] 20. O método da cláusula 15, em que uma amostra de topo-à esquerda do bloco de vídeo atual é R[ 0, 0 ], em que as amostras de croma descendentemente amostradas compreendem amostras R[ K×H/W, -1 ], e em que K é um número inteiro não negativo que varia de 0 a H-1.
[00666] 21. O método da cláusula 15, em que um processo de refinamento é realizado nas amostras de croma e de luma descendentemente amostradas antes de serem usadas para determinar o conjunto de valores para os parâmetros do modelo linear para o bloco de vídeo atual.
[00667] 22. O método da cláusula 21, em que o processo de
115 / 122 refinamento compreende um processo de filtragem.
[00668] 23. O método da cláusula 21, em que o processo de refinamento compreende um processo não linear.
[00669] 24. O método da cláusula 15, em que os parâmetros do modelo linear são α e β, em que α = (C1-C0) / (L1-L0) e β = C0 - αL0, em que C0 e C1 são amostras de croma, e em que L0 e L1 são amostras de luma.
[00670] 25. O método da cláusula 24, em que C0 e L0 são com base em S amostras de croma e de luma descendentemente amostradas, denotadas como {Lx1, Lx2, …, LxS} e {Cx1, Cx2, …, CxS}, respectivamente, em que C1 e L1 são com base em T amostras de croma e de luma descendentemente amostradas, denotadas como {Ly1, Ly2, …, LyT} e {Cy1, Cy2, …, CyT}, respectivamente, em que C0 = f0(Cx1, Cx2, …, CxS), L0 = f1(Lx1, Lx2, …, LxS), C1 = f2(Cy1, Cy2, …, CyT) e L1 = f1(Ly1, Ly2, …, LyT), e em que f0, f1, f2 e f3 são funções.
[00671] 26. O método da cláusula 25, em que f0 e f1 são uma primeira função.
[00672] 27. O método da cláusula, em que f2 e f3 são uma segunda função.
[00673] 28. O método da cláusula 25, em que f0, f1, f2 e f3 são uma terceira função.
[00674] 29. O método da cláusula 28, em que a terceira função é uma função de ponderação.
[00675] 30. O método da cláusula 25, em que S = T.
[00676] 31. O método da cláusula 25, em que {Lx1, Lx2, …, LxS} são as menores amostras de um grupo de amostras de luma.
[00677] 32. O método da cláusula 25, em que {Lx1, Lx2, …, LxS} são as maiores amostras de um grupo de amostras de luma.
[00678] 33. O método das cláusulas 31 ou 32, em que o grupo de
116 / 122 amostras de luma compreende todas as amostras vizinhas usadas em VTM-
3.0 para derivar os parâmetros do modelo linear.
[00679] 34. O método das cláusulas 31 ou 32, em que o grupo de amostras de luma compreende um subconjunto de amostras vizinhas usadas em VTM-3.0 para derivar os parâmetros do modelo linear, e em que o subconjunto exclui todas as amostras vizinhas.
[00680] 35. O método da cláusula 1, em que as duas ou mais amostras de croma são selecionadas a partir de uma ou mais de uma coluna à esquerda, uma linha acima, uma linha acima-à direita ou uma coluna abaixo-à esquerda em relação ao bloco de vídeo atual.
[00681] 36. O método da cláusula 1, em que as duas ou mais amostras de croma são selecionadas com base em uma razão de uma altura do bloco de vídeo atual por uma largura do bloco de vídeo atual.
[00682] 37. O método da cláusula 1, em que as duas ou mais amostras de croma são selecionadas com base em um modo de codificação do bloco de vídeo atual.
[00683] 38. O método da cláusula 37, em que o modo de codificação do bloco de vídeo atual é um primeiro modo linear que é diferente de um segundo modo linear que usa apenas amostras vizinhas à esquerda e um terceiro modo linear que usa apenas amostras vizinhas acima, em que coordenadas de uma amostra de topo-à esquerda do bloco de vídeo atual são (x, y), e em que uma largura e uma altura do bloco de vídeo atual é W e H, respectivamente.
[00684] 39. O método da cláusula 38, em que as duas ou mais amostras de croma compreendem amostras com coordenadas (x-1, y), (x, y-1), (x-1, y+H-1) e (x + W-1, y-1).
[00685] 40. O método da cláusula 38, em que as duas ou mais amostras de croma compreendem amostras com coordenadas (x-1, y), (x, y-1), (x-1, y + H - H/W -1) e (x + W-1, y-1), e em que H > W.
117 / 122
[00686] 41. O método da cláusula 38, em que as duas ou mais amostras de croma compreendem amostras com coordenadas (x-1, y), (x, y-1), (x-1, y + H -1) e (x + W - W/H-1, y-1), e em que H < W.
[00687] 42. O método da cláusula 38, em que as duas ou mais amostras de croma compreendem amostras com coordenadas (x-1, y), (x, y-1), (x-1, y + H - max(1, H/W)) e (x + W- max(1, W/H), y-1).
[00688] 43. O método da cláusula 38, em que as duas ou mais amostras de croma compreendem amostras com coordenadas (x, y-1), (x + W/4, y-1), (x + 2*W/4, y-1) e (x + 3*W/4, y - 1).
[00689] 44. O método da cláusula 38, em que as duas ou mais amostras de croma compreendem amostras com coordenadas (x, y-1), (x + W/4, y-1), (x + 3*W/4, y - 1) e (x + W-1, y -1).
[00690] 45. O método da cláusula 38, em que as duas ou mais amostras de croma compreendem amostras com coordenadas (x, y-1), (x + (2W)/4, y- 1), (x + 2*(2W)/4, y-1) e (x + 3*(2W)/4, y - 1).
[00691] 46. O método da cláusula 38, em que as duas ou mais amostras de croma compreendem amostras com coordenadas (x, y-1), (x + (2W)/4, y- 1), (x + 3*(2W)/4, y - 1) e (x + (2W)-1, y-1).
[00692] 47. O método da cláusula 38, em que as duas ou mais amostras de croma compreendem amostras com coordenadas (x-1, y), (x -1, y + H/4), (x -1, y + 2*H/4) e (x -1, y + 3*H/4).
[00693] 48. O método da cláusula 38, em que as duas ou mais amostras de croma compreendem amostras com coordenadas (x-1, y), (x - 1, y+ 2*H/4), (x -1, y + 3*H/4) e (x -1, y + H-1).
[00694] 49. O método da cláusula 38, em que as duas ou mais amostras de croma compreendem amostras com coordenadas (x-1, y), (x -1, y + (2H)/4), (x -1, y + 2*(2H)/4) e (x -1, y + 3*(2H)/4).
[00695] 50. O método da cláusula 38, em que as duas ou mais amostras de croma compreendem amostras com coordenadas (x-1, y), (x - 1, y+
118 / 122 2*(2H)/4), (x -1, y + 3*(2H)/4) e (x -1, y + (2H)-1).
[00696] 51. O método de qualquer uma das cláusulas 39 a 50, em que exatamente duas das quatro amostras são selecionadas para determinar o conjunto de valores para os parâmetros do modelo linear.
[00697] 52. Um aparelho de decodificação de vídeo compreendendo um processador configurado para implementar um método citado em uma ou mais das cláusulas 1 a 51.
[00698] 53. Um aparelho de codificação de vídeo compreendendo um processador configurado para implementar um método citado em uma ou mais das cláusulas 1 a 51.
[00699] 54. Um aparelho em um sistema de vídeo compreendendo um processador e uma memória não transitória com instruções na mesma, em que as instruções, mediante a execução pelo processador, fazem com que o processador implemente o método em qualquer uma das cláusulas 1 a 51.
[00700] 55. Um produto de programa de computador armazenado em uma mídia legível por computador não transitória, o produto de programa de computador incluindo código de programa para realizar o método em qualquer uma das cláusulas 1 a 51.
[00701] A partir do exposto, será percebido que modalidades específicas da tecnologia atualmente descrita foram aqui descritas com propósitos de ilustração, mas que várias modificações podem ser feitas sem desviar do escopo da invenção. Desta maneira, a tecnologia atualmente descrita não é limitada, exceto pelas reivindicações anexas.
[00702] Implementações da matéria e das operações funcionais descritas neste documento de patente podem ser implementadas em vários sistemas, conjunto de circuitos eletrônico digital, ou em software de computador, software embarcado, ou hardware, incluindo as estruturas descritas nesta especificação e seus equivalentes estruturais, ou em combinações de um ou mais de dos mesmos. Implementações da matéria
119 / 122 descrita nesta especificação podem ser implementadas como um ou mais produtos de programa de computador, isto é, um ou mais módulos de instruções de programa de computador codificadas em uma mídia legível por computador tangível e não transitória para execução pelo, ou para controlar a operação do, aparelho de processamento de dados. A mídia legível por computador pode ser um dispositivo de armazenamento legível por máquina, um substrato de armazenamento legível por máquina, um dispositivo de memória, uma composição da matéria que efetua um sinal propagado legível por máquina, ou uma combinação de um ou mais dos mesmos. O termo “unidade de processamento de dados” ou “aparelho de processamento de dados” abrange todos os aparelhos, dispositivos, e máquinas para processamento de dados, incluindo, a título de exemplo, um processador programável, um computador, ou múltiplos processadores ou computadores. O aparelho pode incluir, além do hardware, código que cria um ambiente de execução para o programa de computador em questão, por exemplo, código que constitui software embarcado de processador, uma pilha de protocolo, um sistema de gerenciamento de base de dados, um sistema operacional, ou uma combinação de um ou mais dos mesmos.
[00703] Um programa de computador (também conhecido como um programa, software, aplicação em software, script ou código) pode ser gravado em qualquer forma de linguagem de programação, incluindo linguagens compiladas ou interpretadas, e o mesmo pode ser implementado em qualquer forma, incluindo como um programa autônomo ou como um módulo, componente, sub-rotina, ou outra unidade adequada para uso em um ambiente de computação. Um programa de computador não necessariamente corresponde a um arquivo em um sistema de arquivos. Um programa pode ser armazenado em uma parte de um arquivo que contém outros programas ou dados (por exemplo, um ou mais scripts armazenados em um documento de linguagem de marcação), em um único arquivo dedicado ao programa em
120 / 122 questão, ou em múltiplos arquivos coordenados (por exemplo, arquivos que armazenam um ou mais módulos, subprogramas, ou partes de código). Um programa de computador pode ser implementado para ser executado em um computador ou em múltiplos computadores que ficam localizados em um local ou são distribuídos através de múltiplos locais e interconectados por uma rede de comunicação.
[00704] Os processos e fluxos lógicos descritos nesta especificação podem ser realizados por um ou mais processadores programáveis que executam um ou mais programas de computador para realizar funções pela operação nos dados de entrada e gerar saída. Os processos e fluxos lógicos também podem ser realizados pelo, e o aparelho também pode ser implementado como, conjunto de circuitos lógico de propósito especial, por exemplo, um FPGA (arranjo de portas programável no campo) ou um ASIC (circuito integrado específico de aplicação).
[00705] Os processadores adequados para a execução de um programa de computador incluem, a título de exemplo, microprocessadores de propósito tanto geral quanto especial, e qualquer um ou mais processadores de qualquer tipo de computador digital. No geral, um processador irá receber instruções e dados a partir de uma memória exclusiva de leitura ou uma memória de acesso aleatório ou de ambas. Os elementos essenciais de um computador são um processador para realizar instruções e um ou mais dispositivos de memória para armazenar instruções e dados. No geral, um computador também irá incluir, ou ser operativamente acoplado para receber dados a partir de ou transferir dados para, ou ambos, um ou mais dispositivos de armazenamento em massa para armazenar dados, por exemplo, discos magnéticos, discos magneto ópticos, ou discos ópticos. Entretanto, um computador não precisa ter tais dispositivos. A mídia legível por computador adequada para armazenar instruções de programa de computador e dados inclui todas as formas de memória não volátil, mídia e dispositivos de
121 / 122 memória, incluindo, a título de exemplo, dispositivos de memória semicondutora, por exemplo, EPROM, EEPROM, e dispositivos de memória flash. O processador e a memória podem ser complementados pelo, ou incorporados no, conjunto de circuitos lógico de propósito especial.
[00706] Pretende-se que a especificação, juntamente com os desenhos, seja considerada exemplar apenas, em que exemplar significa um exemplo. Da forma aqui usada, pretende-se que o uso de “ou” inclua “e/ou”, a menos que o contexto claramente indique de outra forma.
[00707] Embora este documento de patente contenha muitas especificidades, as mesmas não devem ser interpretadas como limitações no escopo de qualquer invenção ou do que pode ser reivindicado, mas, em vez disto, como descrições das características que podem ser específicas de modalidades em particular de invenções em particular. Certas características que são descritas neste documento de patente no contexto de modalidades separadas também podem ser implementadas em combinação em uma única modalidade. Inversamente, várias características que são descritas no contexto de uma única modalidade também podem ser implementadas em múltiplas modalidades separadamente ou em qualquer subcombinação adequada. Além do mais, embora características possam ser supradescritas como agindo em certas combinações e até mesmo inicialmente reivindicadas como tal, uma ou mais características de uma combinação reivindicada podem, em alguns casos, ser removidas da combinação, e a combinação reivindicada pode ser direcionada para uma subcombinação ou uma variação de uma subcombinação.
[00708] Similarmente, embora as operações sejam representadas nos desenhos em uma ordem em particular, isto não deve ser entendido como exigindo que tais operações sejam realizadas na ordem em particular mostrada ou em ordem sequencial, ou que todas as operações ilustradas sejam realizadas, para alcançar resultados desejáveis. Além do mais, a separação de
122 / 122 vários componentes do sistema nas modalidades descritas neste documento de patente não deve ser entendida como exigindo tal separação em todas as modalidades.
[00709] Apenas umas poucas implementações e exemplos são descritos e outras implementações, intensificações e variações podem ser feitas com base no que é descrito e ilustrado neste documento de patente.

Claims (20)

REIVINDICAÇÕES
1. Método para processar dados de vídeo, caracterizado pelo fato de que compreende: determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e um fluxo contínuo de bits do vídeo, parâmetros do modelo linear de componente cruzado (CCLM) pelo menos com base em amostras de croma selecionadas que são selecionadas a partir de amostras de croma vizinhas do bloco de vídeo atual, em que a posição das amostras de croma selecionadas são derivadas de um primeiro valor de deslocamento de posição (F) e um valor de valor de passo (S), e em que o F e o S são derivados pelo menos com base em disponibilidades das amostras de croma vizinhas do bloco de vídeo atual e uma dimensão do bloco de vídeo atual; aplicar o CCLM em amostras de luma localizadas em um bloco de luma que corresponde ao bloco de vídeo atual para derivar valores de previsão do bloco de vídeo atual; e realizar a conversão com base nos valores de previsão.
2. Método de acordo com a reivindicação 1, caracterizado pelo fato de que as amostras de croma vizinhas incluem amostras de croma vizinhas esquerdas, amostras de croma vizinhas acima, amostras de croma vizinhas acima e à direita ou amostras de croma vizinhas abaixo e à esquerda em relação ao bloco de vídeo atual.
3. Método de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que F=Floor (M/2i), em que M é um número das amostras de croma vizinhas usadas para derivar as amostras de croma selecionadas na direção horizontal, ou F=Floor (N/2i), em que N é um número de amostras de croma vizinhas usadas para derivar as amostras de croma selecionadas na direção vertical, i é igual a 2 ou 3, e a operação Floor é usada para obter uma parte de número inteiro de um número.
4. Método de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que S=Max(1, Floor (M/2j)) ou S=Max(1, Floor (N/2j)), j é igual a 1 ou 2, e a operação Max é usada para obter um máximo de membros múltiplos.
5. Método de acordo com a reivindicação 3 ou 4, caracterizado pelo fato de que o M e N são ambos menos que ou iguais a W+H, e determinados com base em um modo CCLM do bloco de vídeo atual, em que W e H é uma largura e uma altura do bloco de vídeo, respectivamente.
6. Método de acordo com a reivindicação 5, caracterizado pelo fato de que o modo CCLM do bloco de vídeo atual fica um de um primeiro modo CCLM que deriva os parâmetros de CCLM com base em amostras de croma vizinhas esquerdas e amostras de croma vizinhas acima, um segundo modo CCLM que deriva os parâmetros de CCLM com base em amostras croma vizinhas esquerdas e amostras vizinhas abaixo e à esquerda e um terceiro modo CCLM que deriva os parâmetros de CCLM com base em amostras de croma vizinhas acima e amostra de croma vizinha acima e à direita.
7. Método de acordo com qualquer uma das reivindicações 3 a 6, caracterizado pelo fato de que em resposta à seleção de duas amostras de croma na direção horizontal, posições de duas amostras de croma selecionadas na direção horizontal são Floor(M/4) e Floor (M/4) + Floor (M/2).
8. Método de acordo com qualquer uma das reivindicações 3 a 6, caracterizado pelo fato de que em resposta à seleção de duas amostras de croma na direção vertical, posições de duas amostras de croma selecionadas na direção vertical são Floor(N/4) e Floor N /4) + Floor N /2).
9. Método de acordo com qualquer uma das reivindicações 3 a 6, caracterizado pelo fato de que em resposta à seleção de quatro amostras de croma na direção horizontal, posições de quatro amostras de croma selecionadas na direção horizontal são Floor(M/8), Floor (M/8) + Floor (M/4), Floor (M/8) + 2*Floor (M/4), Floor (M/8) + 3*Floor (M/4).
10. Método de acordo com qualquer uma das reivindicações 3 a 6, caracterizado pelo fato de que em resposta à seleção de quatro amostras de croma na direção vertical, posições de quatro amostras de croma selecionadas na direção vertical são Floor(N/8), Floor(N/8)+Floor (N/4), Floor(N/8)+2*Floor (N/4), Floor(N/8)+3*Floor (N/4).
11. Método de acordo com qualquer uma das reivindicações 6 a 10, caracterizado pelo fato de que, em resposta ao modo CCLM que é o primeiro modo CCLM e as amostras de croma vizinhas acima que estão disponíveis, M é igual a W.
12. Método de acordo com qualquer uma das reivindicações 6 a 10, caracterizado pelo fato de que, em resposta ao modo CCLM que é o terceiro modo CCLM, as amostras de croma vizinhas acima que estão disponíveis e as amostras de croma vizinhas acima e à direita que estão indisponíveis, M é igual a W.
13. Método de acordo com qualquer uma das reivindicações 6 a 10, caracterizado pelo fato de que, em resposta ao modo CCLM que é o primeiro modo CCLM e as amostras de croma vizinhas esquerdas que estão disponíveis, N é igual a H.
14. Método de acordo com qualquer uma das reivindicações 6 a 10, caracterizado pelo fato de que, em resposta ao modo CCLM que é o segundo modo CCLM, as amostras de croma vizinhas esquerdas que estão disponíveis e amostras de croma vizinhas abaixo e à esquerda que estão indisponíveis, N é igual a H.
15. Método de acordo com qualquer uma das reivindicações 1 a 14, caracterizado pelo fato de que compreende adicionalmente, em resposta às amostras de croma vizinhas do bloco de vídeo atual que estão indisponíveis, os valores de previsão do bloco de vídeo atual são ajustados a um valor padrão, opcionalmente, o valor padrão é igual a 1<<(BitDepth-1), em que BitDepth representa a profundidade de bit das amostras de croma.
16. Método de acordo com qualquer uma das reivindicações 1 a 15, caracterizado pelo fato de que a conversão inclui codificar o bloco de vídeo atual a partir de fluxo contínuo de bits.
17. Método de acordo com qualquer uma das reivindicações 1 a 15, caracterizado pelo fato de que a conversão inclui decodificar o bloco de vídeo atual a partir de fluxo contínuo de bits.
18. Aparelho para codificar dados de vídeo, caracterizado pelo fato de que compreende um processador e uma memória não transitória com instruções na mesma, em que as instruções, mediante a execução pelo processador, fazem com que o processador: determine, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e um fluxo contínuo de bits do vídeo, parâmetros do modelo linear de componente cruzado (CCLM) pelo menos com base em amostras de croma selecionadas que são selecionadas a partir de amostras de croma vizinhas do bloco de vídeo atual, em que a posição das amostras de croma selecionadas são derivadas de um primeiro valor de deslocamento de posição (F) e um valor de valor de passo (S), e em que o F e o S são derivados pelo menos com base em disponibilidades das amostras de croma vizinhas do bloco de vídeo atual e uma dimensão do bloco de vídeo atual; aplique o CCLM em amostras de luma localizadas em um bloco de luma que corresponde ao bloco de vídeo atual para derivar valores de previsão do bloco de vídeo atual; e realize a conversão com base nos valores de previsão.
19. Mídia de armazenamento legível por computador não transitória, caracterizada pelo fato de que armazena instrução que faz com que um processador: determine, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e um fluxo contínuo de bits do vídeo, parâmetros do modelo linear de componente cruzado (CCLM) pelo menos com base em amostras de croma selecionadas que são selecionadas a partir de amostras de croma vizinhas do bloco de vídeo atual, em que a posição das amostras de croma selecionadas são derivadas de um primeiro valor de deslocamento de posição (F) e um valor de valor de passo (S), e em que o F e o S são derivados pelo menos com base em disponibilidades das amostras de croma vizinhas do bloco de vídeo atual e uma dimensão do bloco de vídeo atual; aplique o CCLM em amostras de luma localizadas em um bloco de luma que corresponde ao bloco de vídeo atual para derivar valores de previsão do bloco de vídeo atual; e realize a conversão com base nos valores de previsão.
20. Mídia de registro legível por computador não transitória, caracterizada pelo fato de que armazena um fluxo contínuo de bits de um vídeo que é gerado por um método realizado por um aparelho de processamento de vídeo, em que o método compreende: determinar, para uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e um fluxo contínuo de bits do vídeo, parâmetros do modelo linear de componente cruzado (CCLM) pelo menos com base em amostras de croma selecionadas que são selecionadas a partir de amostras de croma vizinhas do bloco de vídeo atual, em que a posição das amostras de croma selecionadas são derivadas de um primeiro valor de deslocamento de posição (F) e um valor de valor de passo (S), e em que o F e o S são derivados pelo menos com base em disponibilidades das amostras de croma vizinhas do bloco de vídeo atual e uma dimensão do bloco de vídeo atual;
aplicar o CCLM em amostras de luma localizadas em um bloco de luma que corresponde ao bloco de vídeo atual para derivar valores de previsão do bloco de vídeo atual; e gerar o fluxo contínuo de bits com base nos valores de previsão.
BR112021014853-1A 2019-02-22 2020-02-24 Método e aparelho para processar e codificar dados de vídeo, e, mídias de armazenamento e registro legíveis por computador não transitórias BR112021014853A2 (pt)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
CNPCT/CN2019/075874 2019-02-22
CN2019075874 2019-02-22
CNPCT/CN2019/075993 2019-02-24
CN2019075993 2019-02-24
CNPCT/CN2019/076195 2019-02-26
CN2019076195 2019-02-26
CNPCT/CN2019/079396 2019-03-24
CN2019079396 2019-03-24
CN2019079431 2019-03-25
CNPCT/CN2019/079431 2019-03-25
CNPCT/CN2019/079769 2019-03-26
CN2019079769 2019-03-26
PCT/CN2020/076361 WO2020169101A1 (en) 2019-02-22 2020-02-24 Neighbouring sample selection for intra prediction

Publications (1)

Publication Number Publication Date
BR112021014853A2 true BR112021014853A2 (pt) 2021-10-05

Family

ID=72144442

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021014853-1A BR112021014853A2 (pt) 2019-02-22 2020-02-24 Método e aparelho para processar e codificar dados de vídeo, e, mídias de armazenamento e registro legíveis por computador não transitórias

Country Status (12)

Country Link
US (1) US11115655B2 (pt)
EP (1) EP3903482A4 (pt)
JP (2) JP2022521698A (pt)
KR (1) KR102628086B1 (pt)
CN (1) CN113439437B (pt)
AU (1) AU2020226565C1 (pt)
BR (1) BR112021014853A2 (pt)
CA (1) CA3128429C (pt)
MX (1) MX2021009788A (pt)
SG (1) SG11202108209YA (pt)
WO (1) WO2020169101A1 (pt)
ZA (1) ZA202105356B (pt)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110719479B (zh) 2018-07-15 2023-01-10 北京字节跳动网络技术有限公司 跨分量编码信息导出
CN116347109A (zh) 2018-08-17 2023-06-27 北京字节跳动网络技术有限公司 一种处理视频数据的方法和装置
CN117478883A (zh) 2018-09-12 2024-01-30 北京字节跳动网络技术有限公司 交叉分量线性模型中的尺寸相关的下采样
KR20210089131A (ko) 2018-11-06 2021-07-15 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 위치 기반 인트라 예측
WO2020108591A1 (en) 2018-12-01 2020-06-04 Beijing Bytedance Network Technology Co., Ltd. Parameter derivation for intra prediction
AU2019391197B2 (en) 2018-12-07 2023-05-25 Beijing Bytedance Network Technology Co., Ltd. Context-based intra prediction
CN113273203B (zh) 2018-12-22 2024-03-12 北京字节跳动网络技术有限公司 两步交叉分量预测模式
BR112021015017B1 (pt) 2019-02-24 2022-07-26 Bytedance Inc. Método e aparelho para codificar dados de vídeo, e, mídia de armazenamento
EP3918800A4 (en) 2019-03-08 2022-07-06 Beijing Bytedance Network Technology Co., Ltd. SIGNALING TRANSFORMATION INFORMATION IN VIDEO PROCESSING
WO2020192642A1 (en) 2019-03-24 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Conditions in parameter derivation for intra prediction
EP3935834A4 (en) 2019-04-18 2022-08-17 Beijing Bytedance Network Technology Co., Ltd. LIMITATION ON THE APPLICABILITY OF A CROSS COMPONENT MODE
MX2021012674A (es) 2019-04-23 2021-11-12 Beijing Bytedance Network Tech Co Ltd Metodos para la reduccion de dependencia de componentes cruzados.
JP7407206B2 (ja) 2019-05-08 2023-12-28 北京字節跳動網絡技術有限公司 クロスコンポーネントコーディングの適用条件
JP7418478B2 (ja) 2019-06-22 2024-01-19 北京字節跳動網絡技術有限公司 クロマ残差スケーリングのためのシンタックス要素
CN117395396A (zh) 2019-07-07 2024-01-12 北京字节跳动网络技术有限公司 色度残差缩放的信令通知
CN114303369A (zh) * 2019-08-28 2022-04-08 株式会社Kt 视频信号处理方法和装置
JP7479456B2 (ja) 2019-09-20 2024-05-08 北京字節跳動網絡技術有限公司 ビデオ・データ処理方法及び装置並びに記憶媒体及び方法
KR20220084060A (ko) 2019-10-29 2022-06-21 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 크로스 컴포넌트 적응적 루프 필터의 시그널링
WO2021115362A1 (en) 2019-12-11 2021-06-17 Beijing Bytedance Network Technology Co., Ltd. Sample padding for cross-component adaptive loop filtering
CN115176475A (zh) 2019-12-31 2022-10-11 抖音视界有限公司 多参考线色度预测
KR20230029670A (ko) 2020-06-30 2023-03-03 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 적응적 루프 필터링을 위한 경계 위치
EP4388736A1 (en) * 2021-08-19 2024-06-26 Beijing Dajia Internet Information Technology Co., Ltd. Methods and devices for decoder-side intra mode derivation

Family Cites Families (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9693070B2 (en) 2011-06-24 2017-06-27 Texas Instruments Incorporated Luma-based chroma intra-prediction for video coding
MX2014000163A (es) 2011-06-28 2014-02-19 Samsung Electronics Co Ltd Metodo y aparato de prediccion para componente de croma de imagen que utiliza componente de luma de imagen.
US8724711B2 (en) 2011-07-12 2014-05-13 Intel Corporation Luma-based chroma intra prediction
CN103096055B (zh) 2011-11-04 2016-03-30 华为技术有限公司 一种图像信号帧内预测及解码的方法和装置
US9344722B2 (en) 2011-11-18 2016-05-17 Futurewei Technologies, Inc. Scanning of prediction residuals in high efficiency video coding
CN104380741B (zh) 2012-01-19 2018-06-05 华为技术有限公司 用于lm帧内预测的参考像素缩减
CN104718759B (zh) * 2012-01-24 2019-01-18 华为技术有限公司 Lm模式的简化
US9438905B2 (en) * 2012-04-12 2016-09-06 Futurewei Technologies, Inc. LM mode with uniform bit-width multipliers
CN103379321B (zh) 2012-04-16 2017-02-01 华为技术有限公司 视频图像分量的预测方法和装置
WO2013155662A1 (en) * 2012-04-16 2013-10-24 Mediatek Singapore Pte. Ltd. Methods and apparatuses of simplification for intra chroma lm mode
CN104871537B (zh) 2013-03-26 2018-03-16 联发科技股份有限公司 色彩间帧内预测的方法
WO2015054307A2 (en) 2013-10-07 2015-04-16 Vid Scale, Inc. Combined scalability processing for multi-layer video coding
CN106664410B (zh) 2014-06-19 2019-12-03 Vid拓展公司 用于基于三维色彩映射模型参数优化的系统和方法
US10200700B2 (en) 2014-06-20 2019-02-05 Qualcomm Incorporated Cross-component prediction in video coding
CN107079166A (zh) 2014-10-28 2017-08-18 联发科技(新加坡)私人有限公司 用于视频编码的引导交叉分量预测的方法
EP3241352B1 (en) * 2014-12-31 2021-11-24 Nokia Technologies Oy Inter-layer prediction for scalable video coding and decoding
US10321140B2 (en) * 2015-01-22 2019-06-11 Mediatek Singapore Pte. Ltd. Method of video coding for chroma components
WO2016115708A1 (en) 2015-01-22 2016-07-28 Mediatek Singapore Pte. Ltd. Methods for chroma component coding with separate intra prediction mode
US9998742B2 (en) * 2015-01-27 2018-06-12 Qualcomm Incorporated Adaptive cross component residual prediction
US10455249B2 (en) * 2015-03-20 2019-10-22 Qualcomm Incorporated Downsampling process for linear model prediction mode
US20180139469A1 (en) * 2015-06-19 2018-05-17 Nokia Technologies Oy An Apparatus, A Method and A Computer Program for Video Coding and Decoding
CN113810691A (zh) 2015-07-08 2021-12-17 交互数字麦迪逊专利控股公司 用于使用交叉平面滤波的增强色度编码的方法和装置
US20170016972A1 (en) * 2015-07-13 2017-01-19 Siemens Medical Solutions Usa, Inc. Fast Prospective Motion Correction For MR Imaging
KR102267922B1 (ko) * 2015-09-23 2021-06-22 노키아 테크놀로지스 오와이 360도 파노라마 비디오를 코딩하는 방법, 장치 및 컴퓨터 프로그램 제품
US10045023B2 (en) * 2015-10-09 2018-08-07 Telefonaktiebolaget Lm Ericsson (Publ) Cross component prediction in video coding
US20170150156A1 (en) * 2015-11-25 2017-05-25 Qualcomm Incorporated Illumination compensation with non-square predictive blocks in video coding
FI20165256L (fi) * 2016-03-24 2017-09-25 Nokia Technologies Oy Laitteisto, menetelmä ja tietokoneohjelma videokoodaukseen ja -dekoodaukseen
MX2018014190A (es) * 2016-05-17 2019-08-05 Arris Entpr Llc Correlacion de plantillas para intra-prediccion de jvet.
WO2017203882A1 (en) 2016-05-24 2017-11-30 Sharp Kabushiki Kaisha Systems and methods for intra prediction coding
WO2017205621A1 (en) * 2016-05-25 2017-11-30 Arris Enterprises Llc Jvet coding block structure with asymmetrical partitioning
MX2018014487A (es) * 2016-05-25 2019-08-12 Arris Entpr Llc Prediccion angular ponderada para intra codificacion.
WO2017205700A1 (en) * 2016-05-25 2017-11-30 Arris Enterprises Llc Binary, ternary and quad tree partitioning for jvet coding of video data
MX2018014480A (es) * 2016-05-25 2019-08-12 Arris Entpr Llc Codificacion de prediccion angular ponderada mejorada para intra codificacion.
MX2018014491A (es) * 2016-05-25 2019-08-14 Arris Entpr Llc Metodo de particionamiento de bloque general.
CN114866774A (zh) * 2016-05-27 2022-08-05 松下电器(美国)知识产权公司 编码装置及解码装置
US10484712B2 (en) * 2016-06-08 2019-11-19 Qualcomm Incorporated Implicit coding of reference line index used in intra prediction
FI20165547A (fi) * 2016-06-30 2017-12-31 Nokia Technologies Oy Laitteisto, menetelmä ja tietokoneohjelma videokoodausta ja videokoodauksen purkua varten
EP3488610A4 (en) * 2016-07-22 2019-07-17 Sharp Kabushiki Kaisha SYSTEMS AND METHOD FOR CODING VIDEO DATA BY ADAPTIVE COMPONENT CALING
US11095922B2 (en) * 2016-08-02 2021-08-17 Qualcomm Incorporated Geometry transformation-based adaptive loop filtering
WO2018030292A1 (ja) 2016-08-10 2018-02-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
WO2018030293A1 (ja) * 2016-08-10 2018-02-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US10368107B2 (en) * 2016-08-15 2019-07-30 Qualcomm Incorporated Intra video coding using a decoupled tree structure
US10326986B2 (en) 2016-08-15 2019-06-18 Qualcomm Incorporated Intra video coding using a decoupled tree structure
US10390015B2 (en) 2016-08-26 2019-08-20 Qualcomm Incorporated Unification of parameters derivation procedures for local illumination compensation and cross-component linear model prediction
US10419757B2 (en) 2016-08-31 2019-09-17 Qualcomm Incorporated Cross-component filter
US10652575B2 (en) * 2016-09-15 2020-05-12 Qualcomm Incorporated Linear model chroma intra prediction for video coding
US10382781B2 (en) * 2016-09-28 2019-08-13 Qualcomm Incorporated Interpolation filters for intra prediction in video coding
GB2555788A (en) * 2016-11-08 2018-05-16 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
US10477240B2 (en) * 2016-12-19 2019-11-12 Qualcomm Incorporated Linear model prediction mode with sample accessing for video coding
US10674165B2 (en) * 2016-12-21 2020-06-02 Arris Enterprises Llc Constrained position dependent intra prediction combination (PDPC)
WO2018116925A1 (ja) 2016-12-21 2018-06-28 シャープ株式会社 イントラ予測画像生成装置、画像復号装置、および画像符号化装置
WO2018125972A1 (en) * 2016-12-28 2018-07-05 Arris Enterprises Llc Adaptive unequal weight planar prediction
DE112017006638B4 (de) * 2016-12-28 2023-05-11 Arris Enterprises Llc Verbesserte Videobitstromkodierung
US20180199062A1 (en) * 2017-01-11 2018-07-12 Qualcomm Incorporated Intra prediction techniques for video coding
US11025903B2 (en) * 2017-01-13 2021-06-01 Qualcomm Incorporated Coding video data using derived chroma mode
US10694181B2 (en) 2017-01-27 2020-06-23 Qualcomm Incorporated Bilateral filters in video coding with reduced complexity
US10542264B2 (en) * 2017-04-04 2020-01-21 Arris Enterprises Llc Memory reduction implementation for weighted angular prediction
CN114422780A (zh) * 2017-04-28 2022-04-29 夏普株式会社 图像解码装置以及图像编码装置
US10602180B2 (en) * 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
WO2018236031A1 (ko) * 2017-06-21 2018-12-27 엘지전자(주) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2019004283A1 (ja) * 2017-06-28 2019-01-03 シャープ株式会社 動画像符号化装置及び動画像復号装置
WO2019006300A1 (en) * 2017-06-29 2019-01-03 Dolby Laboratories Licensing Corporation INTEGRATED IMAGE REMODELING AND VIDEO CODING
WO2019006363A1 (en) 2017-06-30 2019-01-03 Vid Scale, Inc. LOCAL LIGHTING COMPENSATION USING GENERALIZED BI-PREDICTION
CN116781893A (zh) * 2017-07-05 2023-09-19 艾锐势有限责任公司 对视频编码、解码的方法和计算机可读存储器或存储装置
CN109274969B (zh) * 2017-07-17 2020-12-22 华为技术有限公司 色度预测的方法和设备
CN115174913A (zh) * 2017-07-24 2022-10-11 艾锐势有限责任公司 帧内模式jvet编译方法
CA3070444A1 (en) * 2017-07-24 2019-01-31 Arris Enterprises Llc Intra mode jvet coding
JP6994868B2 (ja) * 2017-08-09 2022-01-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法
MX2020003656A (es) * 2017-10-02 2020-10-12 Arris Entpr Llc Sistema y método para reducir artefactos de bloque y proporcionar eficiencia de codificación mejorada.
US10575023B2 (en) * 2017-10-09 2020-02-25 Arris Enterprises Llc Adaptive unequal weight planar prediction
GB2567249A (en) * 2017-10-09 2019-04-10 Canon Kk New sample sets and new down-sampling schemes for linear component sample prediction
US10965941B2 (en) * 2017-10-09 2021-03-30 Qualcomm Incorporated Position-dependent prediction combinations in video coding
GB2580268B (en) * 2017-12-18 2023-03-08 Arris Entpr Llc System and method for constructing a plane for planar prediction
US20190313108A1 (en) 2018-04-05 2019-10-10 Qualcomm Incorporated Non-square blocks in video coding
US10609402B2 (en) * 2018-05-02 2020-03-31 Tencent America LLC Method and apparatus for prediction and transform for small blocks
WO2019210840A1 (en) 2018-05-03 2019-11-07 FG Innovation Company Limited Device and method for coding video data based on different reference sets in linear model prediction
CN116708837A (zh) 2018-07-02 2023-09-05 Lg电子株式会社 编解码设备和数据发送设备
CN109005408B (zh) * 2018-08-01 2020-05-29 北京奇艺世纪科技有限公司 一种帧内预测方法、装置及电子设备
KR20210089131A (ko) 2018-11-06 2021-07-15 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 위치 기반 인트라 예측
US11197005B2 (en) 2018-11-08 2021-12-07 Qualcomm Incorporated Cross-component prediction for video coding
US11178396B2 (en) 2018-11-14 2021-11-16 Tencent America LLC Constrained intra prediction and unified most probable mode list generation
AU2019391197B2 (en) 2018-12-07 2023-05-25 Beijing Bytedance Network Technology Co., Ltd. Context-based intra prediction
US11095921B2 (en) 2018-12-18 2021-08-17 Tencent America LLC Method and apparatus for video encoding or decoding
BR122021012456B1 (pt) 2019-01-15 2022-03-22 Lg Electronics Inc Método de decodificação de uma imagem realizado por um aparelho de decodificação, método de codificação de uma imagem realizado por um aparelho de codificação, aparelho de decodificação para decodificação de imagem, aparelho de codificação para codificação de imagem e mídia de armazenamento digital legível por computador não transitória
BR112021015017B1 (pt) 2019-02-24 2022-07-26 Bytedance Inc. Método e aparelho para codificar dados de vídeo, e, mídia de armazenamento

Also Published As

Publication number Publication date
EP3903482A1 (en) 2021-11-03
JP2023160996A (ja) 2023-11-02
ZA202105356B (en) 2023-01-25
CA3128429A1 (en) 2020-08-27
JP2022521698A (ja) 2022-04-12
KR20210126009A (ko) 2021-10-19
MX2021009788A (es) 2021-09-08
KR102628086B1 (ko) 2024-01-23
CA3128429C (en) 2023-11-21
US11115655B2 (en) 2021-09-07
SG11202108209YA (en) 2021-08-30
AU2020226565C1 (en) 2024-01-11
CN113439437B (zh) 2023-11-24
US20200382769A1 (en) 2020-12-03
WO2020169101A1 (en) 2020-08-27
AU2020226565A1 (en) 2021-08-19
CN113439437A (zh) 2021-09-24
EP3903482A4 (en) 2022-06-01
AU2020226565B2 (en) 2023-06-01

Similar Documents

Publication Publication Date Title
BR112021014853A2 (pt) Método e aparelho para processar e codificar dados de vídeo, e, mídias de armazenamento e registro legíveis por computador não transitórias
BR112021015017A2 (pt) Método para processar vídeo, aparelho em um sistema de vídeo, e, produto de programa de computador
BR112021010428A2 (pt) Método para processamento de vídeo, aparelho em um sistema de vídeo, e, produto de programa de computador
US11025915B2 (en) Complexity reduction in parameter derivation intra prediction
US11902507B2 (en) Parameter derivation for intra prediction
WO2020192642A1 (en) Conditions in parameter derivation for intra prediction
WO2020192717A1 (en) Parameter derivation for inter prediction
RU2810900C2 (ru) Выбор соседней выборки для внутреннего предсказания
RU2777779C1 (ru) Получение параметра для внутрикадрового предсказания
RU2806083C2 (ru) Контекстно-ориентированное внутреннее предсказание