BR112021016560A2 - Método e aparelho para predição intra usando modelo linear - Google Patents

Método e aparelho para predição intra usando modelo linear Download PDF

Info

Publication number
BR112021016560A2
BR112021016560A2 BR112021016560-6A BR112021016560A BR112021016560A2 BR 112021016560 A2 BR112021016560 A2 BR 112021016560A2 BR 112021016560 A BR112021016560 A BR 112021016560A BR 112021016560 A2 BR112021016560 A2 BR 112021016560A2
Authority
BR
Brazil
Prior art keywords
luma
chroma
samples
sample
block
Prior art date
Application number
BR112021016560-6A
Other languages
English (en)
Inventor
Alexey Konstantinovich Filippov
Vasily Alexeevich Rufitskiy
Jianle Chen
Original Assignee
Huawei Technologies Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Publication of BR112021016560A2 publication Critical patent/BR112021016560A2/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/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/136Incoming video signal characteristics or properties
    • 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/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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

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

Abstract

método e aparelho para predição intra usando modelo linear. a presente invenção se refere ao campo de processamento de imagem. especialmente, a invenção trata de melhorar predição intra (tal como a predição intra de croma) usando modelagem linear de componente cruzado (cclm) e mais particularmente a filtragem espacial usada em modelo linear de componente cruzado para predição intra com diferentes formatos de croma. um aparelho, um codificador, um decodificador e métodos correspondentes para predição de componente cruzado para uma imagem, no qual o conjunto de filtros de subamostragem aplicados durante a predição depende de um formato de croma, que pode ser um dentre múltiplos formatos de croma suportados, são fornecidos, de modo a melhorar eficiência de codificação.

Description

“MÉTODO E APARELHO PARA PREDIÇÃO INTRA USANDO MODELO LINEAR” REFERÊNCIA CRUZADA AOS PEDIDOS RELACIONADOS
[0001] Este pedido de patente reivindica a prioridade ao Pedido de Patente Provisório U.S. No 62/809,555, depositado em 22 de fevereiro de 2019, a prioridade ao Pedido de Patente Provisório U.S. No 62/825,021, depositado em 28 de março de 2019, e a prioridade ao Pedido de Patente Provisório U.S. No 62/825,796, depositado em 28 de março de 2019. A revelação dos pedidos de patente anteriormente mencionados é integralmente incorporada à título de referência em suas totalidades.
CAMPO TÉCNICO
[0002] As modalidades da presente revelação geralmente referem-se ao campo de processamento de imagem e, mais particularmente, à predição intra (tal como a predição intra croma) usando modelagem linear de componente cruzado (CCLM) e, mais particularmente, à filtragem espacial usada no modelo linear para o componente cruzado para predição intra com diferentes formatos de croma.
FUNDAMENTOS
[0003] A codificação de vídeo (codificação e/ou decodificação de vídeo) é usada em uma ampla faixa de aplicações de vídeo digital, por exemplo, transmissão por broadcast de TV digital, transmissão de vídeo pela internet e redes móveis, aplicações de conversação em tempo real, tais como bate-papo de vídeo, videoconferência, DVD e discos de Blu-ray, sistemas de aquisição e edição de conteúdo de vídeo e filmadoras de aplicações de segurança.
[0004] A quantidade de dados de vídeo necessária para representar um vídeo relativamente curto pode ser substancial, o que pode resultar em dificuldades quando os dados devem ser transmitidos ou, de outro modo, comunicados através de uma rede de comunicações com capacidade de largura de banda limitada. Assim, os dados de vídeo são geralmente comprimidos antes de serem comunicados através de redes de telecomunicações dos dias modernos. O tamanho de um vídeo também pode ser um problema quando o vídeo é armazenado em um dispositivo de armazenamento pelo fato de que os recursos de memória podem ser limitados. Os dispositivos de compressão de vídeo, frequentemente usam software e/ou hardware na fonte para codificar os dados de vídeo antes da transmissão ou armazenamento, diminuindo, desse modo, a quantidade de dados necessária para representar imagens de vídeo digital. Os dados comprimidos são, em seguida, recebidos no destino por um dispositivo de descompressão de vídeo que decodifica os dados de vídeo. Com os recursos de rede limitados e demandas cada vez maiores para a qualidade de vídeo superior, as técnicas de compressão e descompressão aprimoradas com uma taxa de compressão mais alta e pouco ou nenhum sacrifício na qualidade da imagem são desejáveis.
[0005] Particularmente, o codificador atual de Codificação de Vídeo Versátil e Modelo de Teste (VTM) suporta principalmente o formato de croma 4:2:0 como o formato de imagem de entrada. O codificador de VTM pode ocorrer quando o formato de croma de entrada torna-se 4:4:4. Para evitar tal problema, um codificador que suporta outros formatos de croma (tais como, 4:4:4 ou 4:2:2) é altamente desejável e até mesmo obrigatório para uma ampla variedade de aplicações.
SUMÁRIO
[0006] Em vista dos desafios mencionados acimas, uma modificação para o processo de codificação de vídeo para suportar múltiplos formatos de croma é proposta na presente revelação. Em particular, as modalidades do presente pedido visam fornecer um aparelho, um codificador, um decodificador e métodos correspondentes para predição de componente cruzado para uma imagem, em que o conjunto de filtros de redução de amostragem aplicados durante a predição depende de um formato de croma, que pode ser um dentre os múltiplos formatos de croma suportados, de modo a melhor a eficiência de codificação.
[0007] As modalidades são definidas pelas características das reivindicações independentes e implementações vantajosas adicionais das modalidades pelas características das reivindicações dependentes.
[0008] As modalidades particulares são esboçadas nas reivindicações independentes anexas, com outras modalidades nas reivindicações dependentes.
[0009] O anterior e outros objetivos são obtidos pelo objeto das reivindicações independentes. As formas implementação adicionais são evidentes a partir das reivindicações dependentes, da descrição e das figuras.
[0010] De acordo com um primeiro aspecto da invenção, um método para realizar predição intra usando um modelo linear é fornecido, o método compreende: determinar um conjunto de filtros de amostragem reduzida (um conjunto de coeficientes de filtros de amostragem reduzida) com base em informações de formato de croma, em que as informações de formato de croma indicam um formato de croma de uma imagem à qual um bloco atual pertence; obter amostras de luma de amostragem reduzida de amostras de luma reconstruídas em um bloco de luma do bloco atual e amostras de referência de luma de amostragem reduzida de amostras de referência de luma selecionadas do bloco de luma (vizinhos do bloco de luma) usando filtros de amostragem reduzida respectivos entre (selecionados a partir do) o conjunto de filtros de amostragem reduzida; determinar um ou mais coeficientes de modelo linear com base nas amostras de referência de luma de amostragem reduzida e em amostras de referência de croma (selecionadas ou disponíveis) que correspondem às amostras de referência de luma de amostragem reduzida; e obter amostras de predição de um bloco de croma que corresponde ao bloco de luma com base nos coeficientes de modelo linear e nas amostras de luma de amostragem reduzida das amostras de luma reconstruídas no bloco de luma.
[0011] Assim, um método aprimorado é fornecido permitindo um sinal de predição de croma mais exato e redução de erro de predição por seleção do conjunto de filtros com base nas informações de formato de croma. O resultado técnico de um erro de predição menor é uma redução da energia do sinal residual. O método de codificação pode utilizar esta redução de modo a diminuir a distorção do sinal reconstruído, diminuir a taxa de bits que é necessária para codificar o sinal residual ou diminuir tanto a distorção quanto a taxa de bits. Estes efeitos benéficos obtidos pela presente invenção melhoram os valores do desempenho de compressão geral do método de codificação que usa a presente invenção.
[0012] É observado que o termo “bloco”, “bloco de codificação” ou “bloco de imagem” é usado na presente revelação que pode ser aplicado para unidades de transformada (TUs), unidades de predição (PUs), unidades de codificação (CUs), etc. Em VVC, em geral, unidades de transformada e unidades de codificação estão principalmente alinhas, exceto em alguns cenários quando o revestimento de TU ou transformada de sub-bloco (SBT) é usado. Pode ser entendido que os termos “bloco/bloco de imagem/bloco de codificação/bloco de transformada” e “tamanho de bloco/tamanho de bloco de transformada” podem ser trocados entre si na presente revelação. Os termos “amostra/pixel” podem ser trocados entre si na presente revelação.
[0013] Em uma possível forma de implementação do método, de acordo com o primeiro aspecto como tal, a determinação de um conjunto de filtros de amostragem reduzida (um conjunto de coeficientes de filtro de amostragem reduzida) com base em informações de formato de croma compreende: determinar informações de razão de subamostragem nas direções horizontal e vertical (tais como as variáveis SubWidthC e SubHeightC) com base nas informações de formato de croma; e determinar o conjunto de filtros de amostragem reduzida com base nas informações de razão de subamostragem (tais como as variáveis SubWidthC e SubHeightC).
[0014] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do primeiro aspecto ou do primeiro aspecto como tal, para o formato de croma sendo um formato de croma 4:2:0, um primeiro conjunto de filtros de amostragem reduzida (um conjunto de coeficientes de filtro de amostragem reduzida) é usado para o bloco de luma do bloco atual; para o formato de croma sendo um formato de croma 4:2:2, um segundo conjunto de filtros de amostragem reduzida (um conjunto de coeficientes de filtro de amostragem reduzida) é usado para um bloco de luma do bloco atual; ou para o formato de croma sendo um formato de croma 4:4:4, um terceiro conjunto de filtros de amostragem reduzida (isto é, um filtro com coeficiente [1], isto é, como um filtro bypass) é usado para um bloco de luma do bloco atual.
[0015] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do primeiro aspecto ou do primeiro aspecto como tal, a determinação do conjunto de filtros de amostragem reduzida com base nas informações de razão de subamostragem, compreende um ou mais dentre: quando as variáveis são SubWidthC=2 e SubHeightC=2, determinar um primeiro conjunto de filtros de amostragem reduzida (um conjunto de coeficientes de filtro de amostragem reduzida) para o bloco de luma do bloco atual; quando SubWidthC=2 e SubHeightC=1, determinar um segundo conjunto de filtros de amostragem reduzida (um conjunto de coeficientes de filtro de amostragem reduzida) para o bloco de luma do bloco atual; ou quando SubWidthC=1 e SubHeightC=1, determinar um terceiro conjunto de filtros de amostragem reduzida (um conjunto de coeficientes de filtro de amostragem reduzida) para o bloco de luma do bloco atual.
[0016] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do primeiro aspecto ou do primeiro aspecto como tal, quando uma amostra de croma subamostrada é colocalizada com a amostra de luma correspondente dentro do bloco atual, a obtenção de amostras de luma de amostragem reduzida de amostras de luma reconstruídas em um bloco de luma do bloco atual e amostras de referência de luma de amostragem reduzida de amostras de referência de luma selecionadas do bloco de luma usando filtros de amostragem reduzida respectivos entre o conjunto de filtros de amostragem reduzida, compreende: obter uma amostra de luma de amostragem reduzida de uma amostra de luma reconstruída no bloco de luma aplicando-se um primeiro filtro de amostragem reduzida a um primeiro conjunto de amostras de luma reconstruídas, em que o primeiro conjunto de amostras de luma reconstruídas compreende: amostras de luma reconstruídas em posições que são horizontal e/ou verticalmente adjacentes a uma posição da amostra de luma reconstruída (da amostra de luma de amostragem reduzida); e obter uma amostra de referência de luma de amostragem reduzida de pelo menos uma amostra de luma de referência selecionada aplicando-se o primeiro filtro de amostragem reduzida a um segundo conjunto de amostras de luma reconstruídas, em que o segundo conjunto de amostras de luma reconstruídas compreende: amostras de luma reconstruídas em posições que são horizontal e/ou verticalmente adjacentes à posição da amostra de luma de referência selecionada (da amostra de luma de amostragem reduzida); em que o primeiro filtro de amostragem reduzida é selecionado a partir do conjunto de filtros de amostragem reduzida.
[0017] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do primeiro aspecto ou do primeiro aspecto como tal, quando o formato de croma 4:2:2 é usado (SubWidthC=2 e SubHeightC=1), o primeiro filtro de amostragem reduzida é um filtro não separável 1D; ou
[0018] Quando o formato de croma 4:2:0 é usado (SubWidthC=2 e SubHeightC=2), o primeiro filtro de amostragem reduzida é um filtro não separável 2D.
[0019] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do primeiro aspecto ou do primeiro aspecto como tal, quando o formato de croma 4:2:2 é usado (SubWidthC=2 e SubHeightC=1), o primeiro filtro de amostragem reduzida (filtro não separável 1D 0 0 0    1 2 1 0 0 0 F2 recitado no padrão) é representado por [1, 2, 1] ou  , em que coeficientes diferentes de zero estão em posições que são horizontalmente adjacentes à posição da amostra de luma reconstruída filtrada, em que uma posição central com um coeficiente “2” corresponde à posição da amostra de luma reconstruída filtrada).
[0020] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do primeiro aspecto ou do primeiro aspecto como tal, se o formato de croma 4:2:0 for usado (SubWidthC=2 e SubHeightC=2), o primeiro filtro de amostragem reduzida (filtro não separável 0 1 0  1 4 1   0 1 0 2D, F3 recitado no padrão VVC) é representado por , em que coeficientes diferentes de zero estão em posições que são horizontal e/ou verticalmente adjacentes à posição da amostra de luma reconstruída filtrada, em que a posição central com o coeficiente “4” corresponde à posição da amostra de luma reconstruída filtrada).
[0021] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do primeiro aspecto ou do primeiro aspecto como tal, quando uma amostra de croma subamostrada não está colocalizada com a amostra de luma correspondente dentro do bloco atual, a obtenção de amostras de luma de amostragem reduzida de amostras de luma reconstruídas em um bloco de luma do bloco atual e amostras de referência de luma de amostragem reduzida de amostras de referência de luma selecionadas do bloco de luma usando filtros de amostragem reduzida respectivos entre o conjunto de filtros de amostragem reduzida, compreende: obter uma amostra de luma de amostragem reduzida de uma amostra de luma reconstruída no bloco de luma aplicando-se um segundo filtro de amostragem reduzida a um terceiro conjunto de amostras de luma reconstruídas, em que o terceiro conjunto de amostras de luma reconstruídas compreende: amostras de luma reconstruídas em posições que são horizontal e/ou verticalmente adjacentes a uma posição da amostra de luma reconstruída (a amostra de luma de amostragem reduzida); e obter uma amostra de referência de luma de amostragem reduzida de pelo menos uma amostra de luma de referência selecionada aplicando-se o segundo filtro de amostragem reduzida a um quarto conjunto de amostras de luma reconstruídas, em que o quarto conjunto de amostras de luma reconstruídas compreende: amostras de luma reconstruídas em posições que são horizontal e/ou verticalmente adjacentes à posição da amostra de luma de referência selecionada (da amostra de luma de amostragem reduzida); em que o segundo filtro de amostragem reduzida é selecionado a partir do conjunto de filtros de amostragem reduzida.
[0022] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do primeiro aspecto ou do primeiro aspecto como tal, se o formato de croma 4:2:2 for usado (SubWidthC=2 e SubHeightC=1), o segundo filtro de amostragem reduzida é o filtro não separável 1D; ou se o formato de croma 4:2:0 for usado (SubWidthC=2 e SubHeightC=2), o segundo filtro de amostragem reduzida é o filtro não separável 2D.
[0023] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do primeiro aspecto ou do primeiro aspecto como tal, se o formato de croma 4:2:2 for usado (SubWidthC=2 e
SubHeightC=1), o segundo filtro de amostragem reduzida (filtro não separável 0 0 0  1 2 1   0 0 0 1D F1, F2 recitado no padrão) é representado por [2, 0] ou [1, 2, 1] ou , em que coeficientes diferentes de zero estão em posições que são horizontalmente adjacentes à posição da amostra de luma reconstruída filtrada, em que a posição central com o coeficiente “2” corresponde à posição da amostra de luma reconstruída filtrada).
[0024] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do primeiro aspecto ou do primeiro aspecto como tal, se o formato de croma 4:2:0 for usado (SubWidthC=2 e SubHeightC=2), o segundo filtro de amostragem reduzida (filtro não separável 0 0 0  1 2 1   1 2 1 2D, F4 recitado no padrão VVC) é representado por , em que coeficientes diferentes de zero estão em posições que são horizontal ou verticalmente adjacentes à posição da amostra de luma reconstruída filtrada, em que a posição central com o coeficiente “2” corresponde à posição da amostra de luma reconstruída filtrada).
[0025] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do primeiro aspecto ou do primeiro aspecto como tal, a amostra de croma subamostrada está colocalizada com a amostra de luma correspondente, ocorre dentro do bloco atual quando um tipo de amostra de croma da amostra de croma subamostrada compreende qualquer um dentre os seguintes: Tipo de amostra de croma 2 ou Tipo de amostra de croma 4.
[0026] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do primeiro aspecto ou do primeiro aspecto como tal, a amostra de croma subamostrada não está colocalizada com a amostra de luma correspondente dentro do bloco atual, ocorre quando um tipo de amostra de croma da amostra de croma subamostrada compreende qualquer um dentre os seguintes:
Tipo de amostra de croma 0, Tipo de amostra de croma 1, Tipo de amostra de croma 3 ou Tipo de amostra de croma 5.
[0027] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do primeiro aspecto ou do primeiro aspecto como tal, em que o conjunto de filtros de amostragem reduzida é determinado como a seguir: se o formato de croma for o formato de croma 4:4:4, um filtro bypass usado; de outro modo, o conjunto de filtros {F2, F3, F5, F6} é determinado como a seguir: F3[0] = 1, F3[1] = 2, F3[2] = 1 F5[i][j] = F6[i][j] = 0, com i = 0.,2, j = 0.,2 Se o formato de croma for o formato de croma 4:2:0, F5[0][1] = 1, F5[1][1] = 4, F5[2][1] = 1, F5[1][0] = 1, F5[1][2] = 1 F6[0][1] = 1, F6[1][1] = 2, F6[2][1] = 1, F6[0][2] = 1, F6[1][2] = 2, F6[2][2] = 1, F2[0] = 1, F2[1] = 1 Se o formato de croma for o formato de croma 4:2:2, F5[0][1] = 0, F5[1][1] = 8, F5[2][1] = 0, F5[1][0] = 0, F5[1][2] = 0 F6[0][1] = 2, F6[1][1] = 4, F6[2][1] = 2, F6[0][2] = 0, F6[1][2] = 0, F6[2][2] = 0, F2[0] = 2, F2[1] = 0.
[0028] Como acima, os filtros para o formato de croma 4:2:0 e 4:2:2 são permitidos para minimizar a complexidade de computação pelo acesso mínimo às amostras vizinhas. Assim, permite fornecer características espectrais desejadas e efeito de suavização. Além disso, permite especificar o processo de filtragem de luma para o caso quando o componente de croma não é subamostrado.
[0029] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do primeiro aspecto ou do primeiro aspecto como tal, o conjunto de filtros de amostragem reduzida é determinado como a seguir: se pelo menos uma primeira condição incluindo SubWidthC==1 e
SubHeightC==1 não for atendida, um conjunto de filtros {F2, F3, F5, F6} é determinado como a seguir: F3[0] = 1, F3[1] = 2, F3[2] = 1 F5[i][j] = F6[i][j] = 0, com i = 0..2, j = 0..2 se pelo menos uma segunda condição for atendida, em que a segunda condição inclui SubWidthC==2 e SubHeightC==2, F5[0][1] = 1, F5[1][1] = 4, F5[2][1] = 1, F5[1][0] = 1, F5[1][2] = 1 F6[0][1] = 1, F6[1][1] = 2, F6[2][1] = 1, F6[0][2] = 1, F6[1][2] = 2, F6[2][2] = 1, F2[0] = 1, F2[1] = 1 De outro modo, F5[0][1] = 0, F5[1][1] = 8, F5[2][1] = 0, F5[1][0] = 0, F5[1][2] = 0 F6[0][1] = 2, F6[1][1] = 4, F6[2][1] = 2, F6[0][2] = 0, F6[1][2] = 0, F6[2][2] = 0, F2[0] = 2, F2[1] = 0.
[0030] Como acima, os filtros para o formato de croma 4:2:0 e 4:2:2 são permitidos para minimizar a complexidade de computação pelo acesso mínimo às amostras vizinhas. Assim, permite fornecer características espectrais desejadas e efeito de suavização.
[0031] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do primeiro aspecto ou do primeiro aspecto como tal, as amostras de referência de luma selecionadas compreendem pelo menos uma dentre: amostras de luma vizinhas que estão acima do bloco de luma e que são selecionadas com base em L amostras de referência de croma disponíveis ou amostras de luma vizinhas que estão à esquerda do bloco de luma e que são selecionadas com base em L amostras de referência de croma disponíveis.
[0032] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do primeiro aspecto ou do primeiro aspecto como tal, as posições das amostras de referência de croma disponíveis são especificadas como: S[W’/4, -1], S[3W’/4, -1], S[-1, H’/4], S[-1, 3H’/4] quando modo LM é aplicado e tanto as amostras vizinhas acima quanto à esquerda estão disponíveis; S[W’/8, -1], S[3W’/8, -1], S[5W’/8, -1], S[7W’/8, -1] quando modo LM- A é aplicado ou apenas as amostras vizinhas acima estão disponíveis; ou S[-1, H’/8], S[-1, 3H’/8], S[-1, 5H’/8], S[-1, 7H’/8] quando modo LM-L é aplicado ou apenas as amostras vizinhas à esquerda estão disponíveis; em que as dimensões de bloco de croma são W × H e W’ e H’ são definidas como W’ = W, H’ = H quando modo LM é aplicado; W’ = W + H quando modo LM-A é aplicado; H’ = H + W quando modo LM-L é aplicado.
[0033] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do primeiro aspecto ou do primeiro aspecto como tal, a determinação de um ou mais coeficientes de modelo linear com base nas amostras de referência de luma de amostragem reduzida das amostras de referência de luma selecionadas e em amostras de referência de croma que correspondem às amostras de referência de luma de amostragem reduzida, compreende: determinar um valor de luma máximo e um valor de luma mínimo com base nas amostras de referência de luma de amostragem reduzida ; obter um primeiro valor de croma com base, pelo menos em parte, em uma ou mais posições de uma ou mais amostras de referência de luma de amostragem reduzida associadas ao valor de luma máximo; obter um segundo valor de croma com base, pelo menos em parte, em uma ou mais posições de uma ou mais amostras de referência de luma de amostragem reduzida associadas ao valor de luma mínimo; calcular o um ou mais coeficientes de modelo linear com base no primeiro valor de croma, no segundo valor de croma, no valor de luma máximo e no valor de luma mínimo.
[0034] De acordo com um segundo aspecto da invenção, um método de determinação de um ou mais filtros de amostragem reduzida (filtro de amostragem reduzida de luma) usados na predição de componente cruzado de um bloco de imagem atual de dados de vídeo é fornecido, o método compreende: determinar fatores de escala de croma nas direções horizontal e vertical com base em informações de formato de croma, em que as informações de formato de croma indicam um formato de croma de uma imagem atual à qual o bloco de imagem atual pertence; quando os valores dos fatores de escala de croma em direções horizontal e vertical são iguais a um primeiro valor, determinar um primeiro conjunto de filtros de amostragem reduzida (um conjunto de coeficientes de filtro de amostragem reduzida) para um bloco de luma do bloco atual; quando um valor do fator de escala de croma na direção horizontal é igual ao primeiro valor e um valor do fator de escala de croma na direção vertical é igual a um segundo valor, determinar um segundo conjunto de filtros de amostragem reduzida (um conjunto de coeficientes de filtro de amostragem reduzida) para um bloco de luma do bloco atual; ou quando os valores dos fatores de escala de croma nas direções horizontal e vertical são iguais ao segundo valor, determinar um terceiro conjunto de filtros de amostragem reduzida (um conjunto de coeficientes de filtro de amostragem reduzida) para um bloco de luma do bloco atual.
[0035] De acordo com um terceiro aspecto da invenção, um método de determinação de um ou mais filtros de amostragem reduzida de luma usados na predição de componente cruzado de um bloco atual de dados de vídeo, o método compreende: determinar um formato de croma de uma imagem à qual o bloco atual pertence; quando o formato de croma é o formato de croma 4:2:0, determinar um primeiro conjunto de filtros de amostragem reduzida (um conjunto de coeficientes de filtro de amostragem reduzida) a ser usado para um bloco de luma do bloco atual; quando o formato de croma é o formato de croma 4:2:2, determinar um segundo conjunto de filtros de amostragem reduzida (um conjunto de coeficientes de filtro de amostragem reduzida) a ser usado para um bloco de luma do bloco atual; quando o formato de croma é o formato de croma 4:4:4, determinar um terceiro conjunto de filtros de amostragem reduzida (um conjunto de coeficientes de filtro de amostragem reduzida) a ser usado para um bloco de luma do bloco atual.
[0036] De acordo com um quarto aspecto da invenção, um aparelho para predição intra usando o modelo linear, compreende: uma unidade de determinação configurada para determinar um conjunto de filtros de amostragem reduzida com base em informações de formato de croma, em que as informações de formato de croma indicam um formato de croma de uma imagem à qual um bloco atual pertence; uma unidade de filtragem configurada para obter amostras de luma de amostragem reduzida de amostras de luma reconstruídas em um bloco de luma do bloco atual e amostras de referência de luma de amostragem reduzida de amostras de referência de luma selecionadas do bloco de luma usando filtros de amostragem reduzida respectivos entre o conjunto de filtros de amostragem reduzida; uma unidade de derivação de modelo linear configurada para determinar um ou mais coeficientes de modelo linear com base nas amostras de referência de luma de amostragem reduzida e em amostras de referência de croma que correspondem às amostras de referência de luma de amostragem reduzida; e uma unidade de processamento de predição configurada para obter amostras de predição de um bloco de croma que corresponde ao bloco de luma com base nos coeficientes de modelo linear e nas amostras de luma de amostragem reduzida das amostras de luma reconstruídas no bloco de luma.
[0037] É observado que o termo “bloco”, “bloco de codificação” ou “bloco de imagem” é usado na presente revelação que pode ser aplicado para unidades de transformada (TUs), unidades de predição (PUs), unidades de codificação (CUs), etc. Na VVC, em geral, unidades de transformada e unidades de codificação são principalmente alinhadas, exceto em alguns cenários quando o revestimento de TU ou transformada de sub-bloco (SBT) é usado. Pode ser entendido que os termos “bloco/bloco de imagem/bloco de codificação/bloco de transformada” e “tamanho de bloco/tamanho de bloco de transformada”, podem ser trocados entre si na presente revelação. Os termos “amostra/pixel” podem ser trocados entre si na presente revelação.
[0038] Assim, um dispositivo aprimorado é fornecido considerando um ou mais sinais de predição de croma exatos e redução de erro de predição pela seleção do conjunto de filtros com base nas informações de formato de croma.
O resultado técnico de um erro de predição menor é uma redução de energia do sinal residual. Este método de codificação pode utilizar esta redução de modo a diminuir a distorção do sinal reconstruído, diminuir a taxa de bits que é necessária para codificar o sinal residual ou diminuir tanto a distorção quanto a taxa de bits. Estes efeitos benéficos obtidos pela presente invenção melhoram o desempenho de compressão geral do método de codificação que usa a presente invenção.
[0039] Em uma possível forma de implementação do aparelho, de acordo com o quarto aspecto como tal, a unidade de determinação é configurada para: determinar informações de razão de subamostragem nas direções horizontal e vertical com base nas informações de formato de croma; e determinar o conjunto de filtros de amostragem reduzida com base nas informações de razão de subamostragem.
[0040] Em uma possível forma de implementação do aparelho, de acordo com qualquer implementação anterior do quarto aspecto ou do quarto aspecto como tal, para o formato de croma sendo um formato de croma 4:2:0, um primeiro conjunto de filtros de amostragem reduzida é usado para o bloco de luma do bloco atual; para o formato de croma sendo um formato de croma 4:2:2, um segundo conjunto de filtros de amostragem reduzida é usado para um bloco de luma do bloco atual; ou para o formato de croma sendo um formato de croma 4:4:4, um terceiro conjunto de filtros de amostragem reduzida é usado para um bloco de luma do bloco atual.
[0041] Em uma possível forma de implementação do aparelho, de acordo com qualquer implementação anterior do quarto aspecto ou do quarto aspecto como tal, a unidade de determinação é configurada para: quando as variáveis são SubWidthC=2 e SubHeightC=2, determinar um primeiro conjunto de filtros de amostragem reduzida (um conjunto de coeficientes de filtro de amostragem reduzida) para o bloco de luma do bloco atual; quando SubWidthC=2 e SubHeightC=1, determinar um segundo conjunto de filtros de amostragem reduzida (um conjunto de coeficientes de filtro de amostragem reduzida) para o bloco de luma do bloco atual; ou quando SubWidthC=1 e SubHeightC=1, determinar um terceiro conjunto de filtros de amostragem reduzida (um conjunto de coeficientes de filtro de amostragem reduzida) para o bloco de luma do bloco atual.
[0042] Em uma possível forma de implementação do aparelho, de acordo com qualquer implementação anterior do quarto aspecto ou do quarto aspecto como tal, quando uma amostra de croma subamostrada está colocalizada com a amostra de luma correspondente dentro do bloco atual, a unidade de filtragem é configurada para: obter uma amostra de luma de amostragem reduzida de uma amostra de luma reconstruída no bloco de luma aplicando-se um primeiro filtro de amostragem reduzida a um primeiro conjunto de amostras de luma reconstruídas, em que o primeiro conjunto de amostras de luma reconstruídas compreende: amostras de luma reconstruídas em posições que são horizontal e/ou verticalmente adjacentes a uma posição da amostra de luma reconstruída; e obter uma amostra de referência de luma de amostragem reduzida de pelo menos umas amostras de luma de referência selecionadas aplicando-se o primeiro filtro de amostragem reduzida a um segundo conjunto de amostras de luma reconstruídas, em que o segundo conjunto de amostras de luma reconstruídas compreende: amostras de luma reconstruídas em posições que são horizontal e/ou verticalmente adjacentes à posição da amostra de luma de referência selecionada; em que o primeiro filtro de amostragem reduzida é selecionado a partir do conjunto de filtros de amostragem reduzida.
[0043] Em uma possível forma de implementação do aparelho, de acordo com qualquer implementação anterior do quarto aspecto ou do quarto aspecto como tal, quando o formato de croma 4:2:2 é usado (SubWidthC=2 e SubHeightC=1), o primeiro filtro de amostragem reduzida é um filtro não separável 1D; ou quando o formato de croma 4:2:0 é usado (SubWidthC=2 e SubHeightC=2), o primeiro filtro de amostragem reduzida é um filtro não separável 2D.
[0044] Em uma possível forma de implementação do aparelho, de acordo com qualquer implementação anterior do quarto aspecto ou do quarto aspecto como tal, quando o formato de croma 4:2:2 é usado (SubWidthC=2 e SubHeightC=1), o primeiro filtro de amostragem reduzida (filtro não separável 1D 0 0 0  1 2 1   0 0 0 F2 recitado no padrão) é representado por [1, 2, 1] ou , em que coeficientes diferentes de zero em posições que são horizontalmente adjacentes à posição da amostra de luma reconstruída filtrada, em que uma posição central com um coeficiente “2” corresponde à posição da amostra de luma reconstruída filtrada).
[0045] Em uma possível forma de implementação do aparelho, de acordo com qualquer implementação anterior do quarto aspecto ou do quarto aspecto como tal, se o formato de croma 4:2:0 for usado (SubWidthC=2 e SubHeightC=2), o primeiro filtro de amostragem reduzida (filtro não separável 0 1 0  1 4 1   0 1 0 2D, F3 recitado no padrão VVC) é representado por , em que os coeficientes diferentes de zero estão em posições que são horizontal e/ou verticalmente adjacentes à posição da amostra de luma reconstruída filtrada, em que a posição central com o coeficiente “4” corresponde à posição da amostra de luma reconstruída filtrada).
[0046] Em uma possível forma de implementação do aparelho, de acordo com qualquer implementação anterior do quarto aspecto ou do quarto aspecto como tal, quando uma amostra de croma subamostrada não está colocalizada com a amostra de luma correspondente dentro do bloco atual, a unidade de filtragem é configurada para: obter uma amostra de luma de amostragem reduzida de uma amostra de luma reconstruída no bloco de luma aplicando-se um segundo filtro de amostragem reduzida a um terceiro conjunto de amostras de luma reconstruídas, em que o terceiro conjunto de amostras de luma reconstruídas compreende: amostras de luma reconstruídas em posições que estão horizontal e/ou verticalmente adjacentes a uma posição da amostra de luma reconstruída; e obter uma amostra de referência de luma de amostragem reduzida de pelo menos uma amostra de luma de referência selecionada aplicando-se o segundo filtros de amostragem reduzida a um quarto conjunto de amostras de luma reconstruídas, em que o quarto conjunto de amostras de luma reconstruídas compreende: amostras de luma reconstruídas em posições que estão horizontal e/ou verticalmente adjacentes à posição da amostra de luma de referência selecionada; em que o segundo filtro de amostragem reduzida é selecionado a partir do conjunto de filtros de amostragem reduzida.
[0047] Em uma possível forma de implementação do aparelho, de acordo com qualquer implementação anterior do quarto aspecto ou do quarto aspecto como tal, se o formato de croma 4:2:2 for usado (SubWidthC=2 e SubHeightC=1), o segundo filtro de amostragem reduzida é o filtro não separável 1D; ou se o formato de croma 4:2:0 for usado (SubWidthC=2 e SubHeightC=2), o segundo filtro de amostragem reduzida é o filtro não separável 2D.
[0048] Em uma possível forma de implementação do aparelho, de acordo com qualquer implementação anterior do quarto aspecto ou do quarto aspecto como tal, se o formato de croma 4:2:2 for usado (SubWidthC=2 e SubHeightC=1), o segundo filtro de amostragem reduzida (filtro não separável 0 0 0  1 2 1   0 0 0 1D F1, F2 recitado no padrão) é representado por [2, 0] ou [1, 2, 1] ou , em que os coeficientes diferentes de zero estão em posições que são horizontalmente adjacentes à posição da amostra de luma reconstruída filtrada, em que a posição central com o coeficiente “2” corresponde à posição da amostra de luma reconstruída filtrada).
[0049] Em uma possível forma de implementação do aparelho, de acordo com qualquer implementação anterior do quarto aspecto ou do quarto aspecto como tal, se o formato de croma 4:2:0 for usado (SubWidthC=2 e SubHeightC=2), o segundo filtro de amostragem reduzida (filtro não separável
0 0 0  1 2 1   1 2 1 2D, F4 recitado no padrão VVC) é representado por , em que os coeficientes diferentes de zero estão em posições que são horizontal ou verticalmente adjacentes à posição da amostra de luma reconstruída filtrada, em que a posição central com o coeficiente “2” corresponde à posição da amostra de luma reconstruída filtrada).
[0050] Em uma possível forma de implementação do aparelho, de acordo com qualquer implementação anterior do quarto aspecto ou do quarto aspecto como tal, a amostra de croma subamostrada está colocalizada com a amostra de luma correspondente, ocorre dentro do bloco atual quando um tipo de amostra de croma da amostra de croma subamostrada compreende qualquer um dentre os seguintes: Tipo de amostra de croma 2 ou Tipo de amostra de croma 4.
[0051] Em uma possível forma de implementação do aparelho, de acordo com qualquer implementação anterior do quarto aspecto ou do quarto aspecto como tal, a amostra de croma subamostrada não está colocalizada com a amostra de luma correspondente dentro do bloco atual, ocorre quando um tipo de amostra de croma da amostra de croma subamostrada compreende qualquer um dentre os seguintes: Tipo de amostra de croma 0, Tipo de amostra de croma 1, Tipo de amostra de croma 3 ou Tipo de amostra de croma 5.
[0052] Em uma possível forma de implementação do aparelho, de acordo com qualquer implementação anterior do quarto aspecto ou do quarto aspecto como tal, a unidade de determinação é configurada para determinar um conjunto de filtros de amostragem reduzida: se o formato de croma for o formato de croma 4:4:4, um filtro bypass é usado; de outro modo, o conjunto de filtros {F2, F3, F5, F6} é determinado como a seguir: F3[0] = 1, F3[1] = 2, F3[2] = 1
F5[i][j] = F6[i][j] = 0, com i = 0..2, j = 0..2 Se o formato de croma for o formato de croma 4:2:0, F5[0][1] = 1, F5[1][1] = 4, F5[2][1] = 1, F5[1][0] = 1, F5[1][2] = 1 F6[0][1] = 1, F6[1][1] = 2, F6[2][1] = 1, F6[0][2] = 1, F6[1][2] = 2, F6[2][2] = 1, F2[0] = 1, F2[1] = 1 Se o formato de croma for o formato de croma 4:2:2, F5[0][1] = 0, F5[1][1] = 8, F5[2][1] = 0, F5[1][0] = 0, F5[1][2] = 0 F6[0][1] = 2, F6[1][1] = 4, F6[2][1] = 2, F6[0][2] = 0, F6[1][2] = 0, F6[2][2] = 0, F2[0] = 2, F2[1] = 0.
[0053] Em uma possível forma de implementação do aparelho, de acordo com qualquer implementação anterior do quarto aspecto ou do quarto aspecto como tal, a unidade de determinação é configurada para determinar um conjunto de filtros {F2, F3, F5, F6} como a seguir: F3[0] = 1, F3[1] = 2, F3[2] = 1 F5[i][j] = F6[i][j] = 0, com i = 0..2, j = 0..2 em que, se pelo menos uma segunda condição for atendida, em que a segunda condição inclui SubWidthC==2 e SubHeightC==2, F5[0][1] = 1, F5[1][1] = 4, F5[2][1] = 1, F5[1][0] = 1, F5[1][2] = 1 F6[0][1] = 1, F6[1][1] = 2, F6[2][1] = 1, F6[0][2] = 1, F6[1][2] = 2, F6[2][2] = 1, F2[0] = 1, F2[1] = 1 De outro modo, F5[0][1] = 0, F5[1][1] = 8, F5[2][1] = 0, F5[1][0] = 0, F5[1][2] = 0 F6[0][1] = 2, F6[1][1] = 4, F6[2][1] = 2, F6[0][2] = 0, F6[1][2] = 0, F6[2][2] = 0, F2[0] = 2, F2[1] = 0.
[0054] Em uma possível forma de implementação do aparelho, de acordo com qualquer implementação anterior do quarto aspecto ou do quarto aspecto como tal, as amostras de referência de luma selecionadas compreendem pelo menos uma dentre: amostras de luma vizinhas que estão acima do bloco de luma e que são selecionadas com base em L amostras de referência de croma disponíveis ou amostras de luma vizinhas que estão à esquerda do bloco de luma e que são selecionadas com base em L amostras de referência de croma disponíveis.
[0055] Em uma possível forma de implementação do aparelho, de acordo com qualquer implementação anterior do quarto aspecto ou do quarto aspecto como tal, as posições das amostras de referência de croma disponíveis são especificadas como: S[W’/4, -1], S[3W’/4, -1], S[-1, H’/4], S[-1, 3H’/4] quando modo LM é aplicado e tanto as amostras de croma vizinhas acima e à esquerda estão disponíveis; S[W’/8, -1], S[3W’/8, -1], S[5W’/8, -1], S[7W’/8, -1] quando modo LM- A é aplicado ou apenas as amostras de croma vizinhas acima estão disponíveis; S[-1, H’/8], S[-1, 3H’/8], S[-1, 5H’/8], S[-1, 7H’/8] quando modo LM-L é aplicado ou apenas as amostras de croma vizinhas à esquerda estão disponíveis; em que as dimensões de bloco de croma são W × H , e W’ e H’ são definidas como W’ = W, H’ = H quando modo LM é aplicado; W’ = W + H quando modo LM-A é aplicado; H’ = H + W quando modo LM-L é aplicado.
[0056] Em uma possível forma de implementação do aparelho, de acordo com qualquer implementação anterior do quarto aspecto ou do quarto aspecto como tal, a unidade de derivação de modelo linear é configurada para determinar um valor de luma máximo e um valor de luma mínimo com base nas amostras de referência de luma de amostragem reduzida; obter um primeiro valor de croma com base, pelo menos em parte, em uma ou mais posições de uma ou mais amostras de referência de luma de amostragem reduzida associadas ao valor de luma máximo; obter um segundo valor de croma com base, pelo menos em parte, em uma ou mais posições de uma ou mais amostras de referência de luma de amostragem reduzida associadas ao valor de luma mínimo; calcular o um ou mais coeficientes de modelo linear com base no primeiro valor de croma, no segundo valor de croma, no valor de luma máximo e no valor de luma mínimo.
[0057] De acordo com um quinto aspecto, a revelação refere-se a um método de codificação implementado por um dispositivo de codificação, compreendendo: realizar predição intra usando o modelo linear (tal como modelo linear de componente cruzado, CCLM, ou modelo linear multidirecional, MDLM), de acordo com qualquer um dos aspectos anteriores; e gerar um fluxo de bits incluindo uma pluralidade de elementos de sintaxe, em que a pluralidade de elementos de sintaxe inclui um elemento de sintaxe que indica uma seleção de um filtro para uma amostra de luma que pertence a um bloco (tal como uma seleção de um filtro de luma de CCLM, em particular, uma flag SPS, tal como sps_cclm_colocated_chroma_flag).
[0058] Em uma possível forma de implementação do método, de acordo com o quinto aspecto como tal, em que quando o valor do elemento de sintaxe é 0 ou falso, o filtro é aplicado a uma amostra de luma para determinar o modelo linear e a predição; e quando o valor do elemento de sintaxe é 1 ou verdadeiro, o filtro não é aplicado a uma amostra de luma para determinar o modelo linear e a predição.
[0059] De acordo com um sexto aspecto, a revelação refere-se a um método de decodificação implementado por um dispositivo de decodificação, compreendendo: analisar a partir de um fluxo de bits, uma pluralidade de elementos de sintaxe, em que a pluralidade de elementos de sintaxe inclui um elemento de sintaxe que indica uma seleção de um filtro para uma amostra de luma que pertence a um bloco (tal como uma seleção de um filtro de luma de CCLM, em particular, uma flag SPS, tal como sps_cclm_colocated_chroma_flag); e realizar a predição intra usando o modelo linear indicado (tal como CCLM), de acordo com qualquer um dos aspectos anteriores.
[0060] Em uma possível forma de implementação do método, de acordo com o sexto aspecto como tal, quando o valor do elemento de sintaxe é 0 ou falso, o filtro é aplicado a uma amostra de luma para determinar o modelo linear e a predição; quando o valor do elemento de sintaxe é 1 ou verdadeiro, o filtro não é aplicado a uma amostra de luma para determinar o modelo linear e a predição.
Por exemplo, quando colocalizado, não usar o filtro de luma.
[0061] De acordo com um sétimo aspecto, a revelação refere-se a um decodificador, compreendendo: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para a execução pelos processadores, em que a programação, quando executada pelos processadores, configura o decodificador para realizar o método, de acordo com qualquer um dos aspectos anteriores ou qualquer modalidade possível dos aspectos anteriores.
[0062] De acordo com um oitavo aspecto, a revelação refere-se a um codificador, compreendendo: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para a execução pelos processadores, em que a programação, quando executada pelos processadores, configura o codificador para realizar o método, de acordo com os aspectos anteriores ou qualquer modalidade possível dos aspectos anteriores.
[0063] O método, de acordo com o primeiro aspecto da revelação pode ser realizado pelo aparelho, de acordo com o quarto aspecto da revelação. As características adicionais e formas de implementação do método, de acordo com o primeiro aspecto da revelação correspondem às características e formas de implementação do aparelho, de acordo com o quarto aspecto da revelação.
[0064] O método, de acordo com o primeiro aspecto da revelação pode ser realizado pelo aparelho, de acordo com o quarto aspecto da revelação. As características adicionais e formas de implementação do método, de acordo com o primeiro aspecto da revelação correspondem às características e formas de implementação do aparelho, de acordo com o quarto aspecto da revelação.
[0065] De acordo com outro aspecto, a revelação refere-se a um aparelho para decodificar um fluxo de vídeo que inclui um processador e uma memória. A memória armazena instruções que fazem com que o processador realize o método, de acordo com o primeiro ou terceiro aspecto.
[0066] De acordo com outro aspecto, a revelação refere-se a um aparelho para codificar um fluxo de vídeo que inclui um processador e uma memória. A memória armazena instruções que fazem com que o processador realize o método, de acordo com o segundo aspecto.
[0067] De acordo com outro aspecto, uma mídia de armazenamento legível por computador que armazena instruções, que quando executadas fazem com que um ou mais processadores configurados para codificar dados de vídeo é proposta. As instruções fazem com que um ou mais processadores realizem um método, de acordo com o primeiro ou segundo ou terceiro aspecto ou qualquer modalidade possível do primeiro ou segundo ou terceiro aspecto.
[0068] De acordo com outro aspecto, a revelação refere-se a um programa de computador compreendendo o código de programa para realizar o método, de acordo com o primeiro ou segundo ou terceiro aspecto ou qualquer modalidade possível do primeiro ou segundo ou terceiro aspecto quando executado em um computador.
[0069] Os detalhes de uma ou mais modalidades são apresentados nos desenhos anexos e na descrição abaixo. Outras características, objetivos e vantagens serão evidentes a partir da descrição, desenhos e reivindicações.
BREVE DESCRIÇÃO DOS DESENHOS
[0070] A seguir, as modalidades são descritas em mais detalhes com referência às figuras anexas e desenhos, em que:
[0071] A FIG. 1A é um diagrama de bloco que mostra um exemplo de um sistema de codificação de vídeo configurado para implementar as modalidades reveladas neste relatório;
[0072] A FIG. 1B é um diagrama de bloco que mostra outro exemplo de um sistema de codificação de vídeo configurado para implementar as modalidades reveladas neste relatório;
[0073] A FIG. 2 é um diagrama de bloco que mostra um exemplo de um codificador de vídeo configurado para implementar as modalidades reveladas neste relatório;
[0074] A FIG. 3 é um diagrama de bloco que mostra uma estrutura de exemplo de um decodificador de vídeo configurado para implementar as modalidades reveladas neste relatório;
[0075] A FIG. 4 é um diagrama de bloco que ilustra um exemplo de um aparelho de codificação ou um aparelho de decodificação, de acordo com uma modalidade revelada neste relatório;
[0076] A FIG. 5 é um diagrama de bloco que ilustra outro exemplo de um aparelho de codificação ou um aparelho de decodificação, de acordo com uma modalidade exemplar revelada neste relatório;
[0077] A FIG. 6A é um exemplo que ilustra localizações verticais e horizontais nominais de amostras de luma e croma 4:2:0 em uma imagem;
[0078] A FIG. 6B é um exemplo que ilustra localizações verticais e horizontais nominais de amostras de luma e croma 4:2:2 em uma imagem;
[0079] A FIG. 6C é um exemplo que ilustra localizações verticais e horizontais nominais de amostras de luma e croma 4:4:4 em uma imagem;
[0080] A FIG. 6D ilustra vários padrões de amostragem para uma imagem entrelaçada;
[0081] A FIG. 6E é um desenho que ilustra um conceito de modelo linear de componente cruzado para a predição intra de croma;
[0082] A FIG. 7A é um exemplo que ilustra blocos de luma e croma colocalizados que estão incluídos em um bloco de imagem atual de uma imagem atual e as amostras de referência de luma e croma associadas, quando o formato de croma da imagem atual é 4:2:0.
[0083] A FIG. 7B é um exemplo que ilustra blocos de luma e croma colocalizados que estão incluídos em um bloco de imagem atual de uma imagem atual e as amostras de referência de luma e croma associadas, quando o formato de croma da imagem atual é 4:2:2;
[0084] A FIG. 7C é um exemplo que ilustra blocos de luma e croma colocalizados que estão incluídos em um bloco de imagem atual de uma imagem atual e as amostras de referência de luma e croma associadas, quando o formato de croma da imagem atual é 4:4:4;
[0085] A FIG. 7D é um exemplo que ilustra amostras de referência de luma de amostragem reduzida 719 de amostras de referência de luma selecionadas 715 do bloco de luma 711, e amostras de referência de croma 705 que correspondem às amostras de referência de luma de amostragem reduzida 719, quando o formato de croma da imagem atual é 4:2:0;
[0086] A FIG. 8 é um desenho que ilustra exemplos de amostras de referência de croma e luma usadas para a derivação de parâmetro de modelo linear;
[0087] A FIG. 9 é um diagrama que ilustra posições espaciais de amostras de luma envolvidas na amostragem reduzida durante a predição intra de componente cruzado quando o formato de croma da imagem atual é 4:2:0.
[0088] A FIG. 10 é um diagrama esquemático que ilustra mecanismos de exemplo de amostragem reduzida para suportar predição intra de componente cruzado.
[0089] A FIG. 11 é um fluxo diagrama que ilustra um processo para realizar predição intra de componente cruzado, de acordo com alguns aspectos da presente revelação.
[0090] A FIG. 12 é um diagrama esquemático de um dispositivo configurado para realizar predição intra de componente cruzado, de acordo com alguns aspectos da presente revelação;
[0091] A FIG. 13 é um diagrama de bloco que mostra uma estrutura de exemplo de um sistema de fornecimento de conteúdo que realiza um serviço de liberação de conteúdo; e
[0092] A FIG. 14 é um diagrama de bloco que mostra uma estrutura de um exemplo de um dispositivo terminal.
[0093] Os seguintes sinais de referência idênticos referem-se às características idênticas ou pelo menos funcionalmente equivalentes, se não forem explicitamente especificados de outro modo.
DESCRIÇÃO DETALHADA DAS MODALIDADES
[0094] Na seguinte descrição, a referência será feita às figuras anexas, que fazem parte da revelação e que mostram, através de ilustração, aspectos específicos de modalidades reveladas neste relatório ou aspectos específicos em que modalidades reveladas neste relatório podem ser usadas. É entendido que as modalidades reveladas neste relatório podem ser usadas em outros aspectos e compreendem alterações estruturais ou lógicas não representadas nas figuras. A seguinte descrição detalhada, portanto, não deve ser tomada em um sentido limitante e o escopo da presente revelação é definido pelas reivindicações anexas.
[0095] A seguintes abreviações aplicam-se:
[0096] Por exemplo, é entendido que uma revelação em relação a um método descrito também pode ser verdadeira para um dispositivo ou sistema correspondente configurado para realizar o método e vice-versa. Por exemplo,
se uma ou uma pluralidade de etapas do método específicas for descrita, um dispositivo correspondente pode incluir uma ou uma pluralidade de unidades, por exemplo, unidades funcionais, para realizar uma ou pluralidade das etapas do método descritas (por exemplo, uma unidade que realiza uma ou pluralidade de etapas, ou uma pluralidade de unidades, cada uma, realizando uma ou mais da pluralidade de etapas), mesmo se tal ou mais unidades não forem explicitamente descritas ou ilustradas nas figuras. Por outro lado, por exemplo, se um aparelho específico for descrito com base em uma ou uma pluralidade de unidades, por exemplo, unidades funcionais, um método correspondente pode incluir uma etapa para realizar a funcionalidade de uma ou pluralidade de unidades (por exemplo, uma etapa que realiza a funcionalidade de uma ou pluralidade de unidades, ou uma pluralidade de etapas, cada uma, realizando a funcionalidade de uma ou mais da pluralidade de unidades), mesmo se tal ou pluralidade de etapas não for explicitamente descrita ou ilustrada nas figuras. Além disso, é entendido que as características das várias modalidades e/ou aspectos exemplares descritas neste relatório podem ser combinadas entre si, a menos que especificamente observado de outro modo.
[0097] A codificação de vídeo tipicamente se refere ao processamento de uma sequência de imagens, que forma o vídeo ou sequência de vídeos. Em vez do termo “imagem”, o termo “quadro” ou “fotografia” pode ser usado como sinônimo no campo da codificação de vídeo. A codificação de vídeo (ou codificação, em geral) compreende duas partes de codificação de vídeo e decodificação de vídeo. A codificação de vídeo é realizada no lado de origem, tipicamente compreendendo o processamento (por exemplo, por compressão) das imagens de vídeo originais para reduzir a quantidade de dados necessária para representar as imagens de vídeo (para armazenamento e/ou transmissão mais eficiente). A decodificação de vídeo é realizada no lado de destino e tipicamente compreende o processamento inverso comparado ao codificador para reconstruir as imagens de vídeo. As modalidades que se referem à “codificação” de imagens de vídeo (ou fotografias, em geral) devem ser entendida como referência à “codificação” ou “decodificação” de imagens de vídeo ou sequências de vídeos respectivas. A combinação da parte de codificação e da parte de decodificação também é referida como CODEC (Coding e Decoding).
[0098] No caso de codificação de vídeo sem perdas, as imagens de vídeo originais podem ser reconstruídas, isto é, as imagens de vídeo reconstruídas têm a mesma qualidade que as imagens de vídeo originais (assumindo nenhuma perda de transmissão ou outras perdas de dados durante o armazenamento ou transmissão). No caso de codificação de vídeo com perdas, compressão adicional, por exemplo, por quantização, é realizada, para reduzir a quantidade de dados representando as imagens de vídeo, que não podem ser completamente reconstruídas no decodificador, isto é, a qualidade das imagens de vídeo reconstruídas é inferior ou pior comparada à qualidade das imagens de vídeo originais.
[0099] Vários padrões de codificação de vídeo pertencem ao grupo de “codecs de vídeo híbrido com perdas” (isto é, combinam predição espacial e temporal no domínio de amostra e codificação de transformada 2D para aplicar quantização no domínio de transformada). Cada imagem de uma sequência de vídeos é tipicamente particionada em um conjunto de blocos não sobrepostos e a codificação é tipicamente realizada em um nível de bloco. Em outras palavras, no codificador, o vídeo é tipicamente processado, isto é, codificado, em um nível de bloco (bloco de vídeo), por exemplo, por meio do uso de predição espacial (imagem intra) e/ou predição temporal (imagem inter) para gerar um bloco de predição, subtraindo o bloco de predição do bloco atual (bloco atualmente processado/a ser processado) para obter um bloco residual, transformando o bloco residual e quantizando o bloco residual no domínio de transformada para reduzir a quantidade de dados a ser transmitida (compressão), enquanto no decodificador, o processamento inverso comparado ao codificador, é aplicado ao bloco codificado ou comprimido para reconstruir o bloco atual para representação. Além disso, o codificador duplica o loop de processamento de decodificador, tal que ambos gerarão as predições idênticas (por exemplo, predições intra e inter) e/ou reconstruções para processamento, isto é, codificação, dos blocos subsequentes.
[0100] Nas seguintes modalidades de um sistema de codificação de vídeo 10, um codificador de vídeo 20 e um decodificador de vídeo 30 são descritos com base nas Figs. 1 a 3.
[0101] A Fig. 1A é um diagrama esquemático de bloco que ilustra um sistema de codificação de exemplo 10, por exemplo, um sistema de codificação de vídeo 10 (ou sistema de codificação 10, para abreviação) que pode utilizar técnicas do presente pedido. O codificador de vídeo 20 (ou codificador 20, para abreviação) e o decodificador de vídeo 30 (ou decodificador 30, para abreviação) do sistema de codificação de vídeo 10 representam exemplos de dispositivos que podem ser configurados para realizar técnicas, de acordo com vários exemplos descritos no presente pedido.
[0102] Como mostrado na FIG. 1A, o sistema de codificação 10 compreende um dispositivo de origem 12 configurado para fornecer dados de imagem codificados 21, por exemplo, para um dispositivo de destino 14 para decodificar os dados de imagem codificados 21.
[0103] O dispositivo de origem 12 compreende um codificador 20 e pode, adicionalmente, isto é, opcionalmente, compreender uma fonte de imagem 16, um pré-processador (ou unidade de pré-processamento) 18, por exemplo, um pré-processador de imagem 18 e uma interface de comunicação ou unidade de comunicação 22.
[0104] A fonte de imagem 16 pode compreender ou ser qualquer tipo de dispositivo de captura de imagem, por exemplo, uma câmera para capturar uma imagem do mundo real, e/ou qualquer tipo de uma imagem que gera o dispositivo, por exemplo, um processador gráfico de computador para gerar uma imagem animada por computador, ou qualquer tipo de outro dispositivo para obter e/ou fornecer uma imagem do mundo real, uma imagem gerada por computador (por exemplo, um conteúdo de tela, uma imagem de realidade virtual (VR)) e/ou qualquer combinação dos mesmos (por exemplo, uma imagem de realidade aumentada (AR)). A fonte de imagem pode ser qualquer tipo de memória ou armazenamento que armazena qualquer uma das imagens anteriormente mencionadas.
[0105] Em distinção ao pré-processador 18 e ao processamento realizado pela unidade de pré-processamento 18, a imagem ou dados de imagem 17 também pode ser referida como imagem bruta ou dados de imagem brutos 17.
[0106] O pré-processador 18 é configurado para receber os dados de imagem (brutos) 17 e para realizar o pré-processamento nos dados de imagem 17 para obter uma imagem pré-processada 19 ou dados de imagem pré- processados 19. O pré-processamento realizado pelo pré-processador 18 pode,
por exemplo, compreender corte, conversão de formato de cor (por exemplo, de RGB para YCbCr), correção de cor ou eliminação de ruído. Pode ser entendido que a unidade de pré-processamento 18 pode ser o componente opcional.
[0107] O codificador de vídeo 20 é configurado para receber os dados de imagem pré-processados 19 e fornecer dados de imagem codificados 21 (os detalhes adicionais serão descritos abaixo, por exemplo, com base na Fig. 2).
[0108] A interface de comunicação 22 do dispositivo de origem 12 pode ser configurada para receber os dados de imagem codificados 21 e para transmitir os dados de imagem codificados 21 (ou qualquer versão processada adicional) através do canal de comunicação 13 para outro dispositivo, por exemplo, o dispositivo de destino 14 ou qualquer outro dispositivo, para armazenamento ou reconstrução direta.
[0109] O dispositivo de destino 14 compreende um decodificador 30 (por exemplo, um decodificador de vídeo 30) e pode, adicionalmente, isto é, opcionalmente, compreender uma interface de comunicação ou unidade de comunicação 28, um pós-processador 32 (ou unidade de pós-processamento 32) e um dispositivo de exibição 34.
[0110] A interface de comunicação 28 do dispositivo de destino 14 é configurada para receber os dados de imagem codificados 21 (ou qualquer versão processada adicional), por exemplo, diretamente do dispositivo de origem 12 ou de qualquer outra fonte, por exemplo, um dispositivo de armazenamento, por exemplo, um dispositivo de armazenamento de dados de imagem codificados, e fornecer os dados de imagem codificados 21 para o decodificador
30.
[0111] A interface de comunicação 22 e a interface de comunicação 28 podem ser configuradas para transmitir ou receber os dados de imagem codificados 21 ou dados codificados 21 através de um enlace de comunicação direto entre o dispositivo de origem 12 e o dispositivo de destino 14, por exemplo, uma conexão direta com fio ou sem fio direta, ou através de qualquer tipo de rede, por exemplo, uma rede com fio ou sem fio ou qualquer combinação da mesma, ou qualquer tipo de rede privada e pública ou qualquer tipo de combinação da mesma.
[0112] A interface de comunicação 22 pode ser, por exemplo, configurada para empacotar os dados de imagem codificados 21 em um formato apropriado, por exemplo, pacotes, e/ou processar os dados de imagem codificados usando qualquer tipo de codificação ou processamento de transmissão para transmissão em um enlace de comunicação ou rede de comunicação.
[0113] A interface de comunicação 28, formando a contraparte da interface de comunicação 22, pode ser, por exemplo, configurada para receber os dados transmitidos e processar os dados de transmissão usando qualquer tipo de decodificação de transmissão correspondente ou processamento e/ou desempacotamento para obter os dados de imagem codificados 21.
[0114] Tanto a interface de comunicação 22 quanto a interface de comunicação 28 podem ser configuradas como interfaces de comunicação unidirecionais como indicado pela seta para o canal de comunicação 13 na Fig. 1A apontando a partir do dispositivo de origem 12 para o dispositivo de destino 14, ou interfaces de comunicação bidirecionais, e podem ser configuradas, por exemplo, para enviar e receber mensagens, por exemplo, para configurar uma conexão, para reconhecer e trocar quaisquer outras informações relacionadas ao enlace de comunicação e/ou transmissão de dados, por exemplo, transmissão de dados de imagem codificados.
[0115] O decodificador 30 é configurado para receber os dados de imagem codificados 21 e fornecer dados de imagem decodificados 31 ou uma imagem decodificada 31 (os detalhes adicionais serão descritos abaixo, por exemplo, com base na Fig. 3 ou Fig. 5).
[0116] O pós-processador 32 do dispositivo de destino 14 é configurado para pós-processar os dados de imagem decodificados 31 (também chamados dados de imagem reconstruídos), por exemplo, a imagem decodificada 31, para obter dados de imagem pós-processados 33, por exemplo, uma imagem pós-processada 33. O pós-processamento realizado pela unidade de pós-processamento 32 pode compreender, por exemplo, conversão de formato de cor (por exemplo, de YCbCr para RGB), correção de cor, para preparar os dados de imagem decodificados 31 para exibição, por exemplo, pelo dispositivo de exibição 34.
[0117] O dispositivo de exibição 34 do dispositivo de destino 14 é configurado para receber os dados de imagem pós-processados 33 para exibir a imagem, por exemplo, para um usuário ou observador. O dispositivo de exibição 34 pode ser ou compreender qualquer tipo de display para representar a imagem reconstruída, por exemplo, um display ou monitor integrado ou externo. O display pode, por exemplo, compreender displays de cristal líquido (LCD), displays de diodos emissores de luz orgânicos (OLED), displays de plasma, projetores, displays de micro LED, cristal líquido em silício (LCoS), processador de luz digital (DLP) ou qualquer tipo de outro display.
[0118] Embora a Fig. 1A represente o dispositivo de origem 12 e o dispositivo de destino 14 como dispositivos separados, as modalidades dos dispositivos também podem compreender ambos ou ambas as funcionalidades, o dispositivo de origem 12 ou funcionalidade correspondente e o dispositivo de destino 14 ou funcionalidade correspondente. Em tais modalidades, o dispositivo de origem 12 ou funcionalidade correspondente e o dispositivo de destino 14 ou funcionalidade correspondente podem ser implementados usando o mesmo hardware e/ou software ou por hardware e/ou software separado ou qualquer combinação dos mesmos.
[0119] Como será evidente para o técnico no assunto com base na descrição, a existência e a divisão (exata) de funcionalidades das diferentes unidades ou funcionalidades dentro do dispositivo de origem 12 e/ou dispositivo de destino 14 como mostrado na Fig. 1A podem variar dependendo do dispositivo e aplicações reais.
[0120] O codificador 20 (por exemplo, um codificador de vídeo 20) ou o decodificador 30 (por exemplo, um decodificador de vídeo 30) ou tanto o codificador 20 quanto o decodificador 30 podem ser implementados através de circuitos de processamento, como mostrado na Fig. 1B, tais como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados específicos da aplicação (ASICs), arranjos de portas programáveis em campo (FPGAs), lógica discreta, hardware, codificação de vídeo dedicada ou qualquer combinações dos mesmos. O codificador 20 pode ser implementado através de circuitos de processamento 46 para incorporar os vários módulos como discutido em relação ao codificador 20 da FIG. 2 e/ou qualquer outro sistema ou subsistema do codificador descrito neste relatório. O decodificador 30 pode ser implementado através de circuitos de processamento 46 para incorporar os vários módulos como discutido em relação ao decodificador 30 da FIG. 3 e/ou qualquer outro sistema ou subsistema do decodificador descrito neste relatório.
Os circuitos de processamento podem ser configurados para realizar as várias operações como discutido mais adiante. Como mostrado na fig. 5, se as técnicas forem implementadas parcialmente no software, um dispositivo pode armazenar instruções para o software em uma mídia de armazenamento legível por computador não transitória adequada e pode executar as instruções em hardware usando um ou mais processadores para realizar as técnicas desta revelação. O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser integrados como parte de um codificador/decodificador combinado (CODEC) em um único dispositivo, por exemplo, como mostrado na Fig. 1B.
[0121] O dispositivo de origem 12 e o dispositivo de destino 14 podem compreender qualquer um de uma ampla faixa de dispositivos, incluindo qualquer tipo de dispositivos portáteis ou fixos, por exemplo, computadores notebook ou laptop, telefones móveis, smartphones, computadores tabletes ou tablet, câmeras, computadores de área de trabalho, set-top boxes, televisões, dispositivos de exibição, reprodutores de mídia digital, consoles de videogame, dispositivos de fluxo de vídeo (tal como servidores de serviços de conteúdo ou servidores de liberação de conteúdo), dispositivo de receptor de broadcast, dispositivo de transmissor de broadcast ou semelhantes e podem usar nenhum ou qualquer tipo de sistema operacional. Em alguns casos, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser equipados para a comunicação sem fio. Assim, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser dispositivos de comunicação sem fio.
[0122] Em alguns casos, o sistema de codificação de vídeo 10 ilustrado na Fig. 1A é meramente um exemplo e as técnicas do presente pedido podem se aplicar às configurações de codificação de vídeo (por exemplo, codificação de vídeo ou decodificação de vídeo) que não necessariamente incluem qualquer comunicação de dados entre os dispositivos de codificação e decodificação. Em outros exemplos, os dados são recuperados de uma memória local, transmitidos em uma rede ou semelhantes. Um dispositivo de codificação de vídeo pode codificar e armazenar dados para a memória, e/ou um dispositivo de decodificação de vídeo pode recuperar e decodificar dados da memória. Em alguns exemplos, a codificação e a decodificação são realizadas por dispositivos que não se comunicam um com o outro, mas simplesmente codificam dados para a memória e/ou recuperam e decodificam dados da memória.
[0123] Por conveniência da descrição, as modalidades são descritas neste relatório, por exemplo, com referência à Codificação de Vídeo de Alta Eficiência (HEVC) ou ao software de referência da Codificação de Vídeo Versátil (VVC), ao padrão de codificação de vídeo da próxima geração desenvolvido pela Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do Grupos de Especialistas em Codificação de Vídeo ITU-T (VCEG) e Grupo de Especialistas em Imagem em Movimento ISO/IEC (MPEG). Um dos técnicos no assunto entenderão que as modalidades reveladas neste relatório não são limitadas à HEVC ou VVC. Codificador e Método de Codificação
[0124] A Fig. 2 mostra um diagrama esquemático de bloco de um codificador de vídeo de exemplo 20 que é configurado para implementar as técnicas do presente pedido. No exemplo da Fig. 2, o codificador de vídeo 20 compreende uma entrada 201 (ou interface de entrada 201), uma unidade de cálculo residual 204, uma unidade de processamento de transformada 206, uma unidade de quantização 208, uma unidade de quantização inversa 210 e unidade de processamento de transformada inversa 212, uma unidade de reconstrução 214, uma unidade de filtro loop 220, um buffer de imagem decodificado (DPB) 230, uma unidade de seleção de modo 260, uma unidade de codificação de entropia 270 e uma saída 272 (ou interface de saída 272). A unidade de seleção de modo 260 pode incluir uma unidade de predição inter 244, uma unidade de predição intra 254 e uma unidade de particionamento 262. A unidade de predição inter 244 pode incluir uma unidade de estimativa de movimento e uma unidade de compensação de movimento (não mostradas). Um codificador de vídeo 20 como mostrado na Fig. 2 também pode ser referido como codificador de vídeo híbrido ou um codificador de vídeo, de acordo com um codec de vídeo híbrido.
[0125] A unidade de cálculo residual 204, a unidade de processamento de transformada 206, a unidade de quantização 208, a unidade de seleção de modo 260 podem ser referidas como formando um caminho de sinal direto do codificador 20, enquanto a unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o buffer 216, o filtro loop 220, o buffer de imagem decodificado (DPB) 230, a unidade de predição inter 244 e a unidade de predição intra 254 podem ser referidos como formando um caminho de sinal indireto do codificador de vídeo 20, em que o caminho de sinal indireto do codificador de vídeo 20 corresponde ao caminho de sinal do decodificador (ver o decodificador de vídeo 30 na Fig. 3). A unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o filtro loop 220, o buffer de imagem decodificado (DPB) 230, a unidade de predição inter 244 e a unidade de predição intra 254 também são referidos como formando o “decodificador embutido” do codificador de vídeo 20. Imagens e Particionamento de Imagem (Imagens e Blocos)
[0126] O codificador 20 pode ser configurado para receber, por exemplo, através da entrada 201, uma imagem 17 (ou dados de imagem 17), por exemplo, imagem de uma sequência de imagens formando um vídeo ou sequência de vídeos. A imagem recebida ou dados de imagem, também pode ser uma imagem pré-processada 19 (ou dados de imagem pré-processados 19). Por razões de simplicidade, a seguinte descrição refere-se à imagem 17. A imagem 17 também pode ser referida como imagem atual ou imagem a ser codificada (em particular, na codificação de vídeo para distinguir a imagem atual de outras imagens, por exemplo, imagens previamente codificadas e/ou decodificadas da mesma sequência de vídeos, isto é, a sequência de vídeos que também compreende a imagem atual).
[0127] Uma imagem (digital) é ou pode ser considerada um arranjo bidimensional ou matriz de amostras com valores de intensidade. Uma amostra no arranjo também pode ser referida como pixel (forma abreviada de elemento de imagem) ou um pel. O número de amostras na direção horizontal e vertical (ou eixo) do arranjo ou imagem define o tamanho e/ou resolução da imagem. Para representação de cor, tipicamente três componentes de cor são utilizados, isto é, a imagem pode ser representada ou incluir três arranjos de amostra. No formato RGB ou espaço de cor, uma imagem compreende um arranjo de amostra vermelho, verde e azul correspondente. Entretanto, na codificação de vídeo, cada pixel é tipicamente representado em um formato de luminância e crominância ou espaço de cor, por exemplo, YCbCr, que compreende um componente de luminância indicado por Y (às vezes também L é usado no lugar) e dois componentes de crominância indicados por Cb e Cr. O componente de luminância (ou luma, para abreviação) Y representa o brilho ou intensidade de nível de cinza (por exemplo, como em uma imagem em escala de cinza), enquanto dois componentes de crominância (ou croma, para abreviação) Cb e Cr representam a cromaticidade ou componentes de informações de cor. Consequentemente, uma imagem em formato YCbCr compreende uma arranjo de amostra de luminância de valores de amostra de luminância (Y), e dois arranjos de amostra de crominância de valores de crominância (Cb e Cr). As imagens no formato RGB podem ser convertidas ou transformadas no formato YCbCr e vice-versa, o processo também é conhecido como transformação ou conversão de cor. Se uma imagem for monocromática, a imagem pode compreender apenas um arranjo de amostra de luminância. Consequentemente, uma imagem pode ser, por exemplo, um arranjo de amostras de luma no formato monocromático ou um arranjo de amostras de luma e dois arranjos correspondentes de amostras de croma no formato de coloração 4:2:0, 4:2:2 e 4:4:4.
[0128] As modalidades do codificador de vídeo 20 podem compreender uma unidade de particionamento de imagem (não representada na Fig. 2) configurada para particionar a imagem 17 em uma pluralidade de blocos de imagem 203 (tipicamente não sobrepostos). Estes blocos também podem ser referidos como blocos de raiz, macroblocos (H.264/AVC) ou blocos de árvore de codificação (CTB) ou unidades de árvore de codificação (CTU) (H.265/HEVC e VVC). A unidade de particionamento de imagem pode ser configurada para usar o mesmo tamanho de bloco para todas as imagens de uma sequência de vídeos e a grade correspondente definindo o tamanho do bloco atual, ou para alterar o tamanho do bloco atual entre imagens ou sub-conjuntos ou grupos de imagens, e particionar cada imagem nos blocos correspondentes.
[0129] Nas modalidades adicionais, o codificador de vídeo pode ser configurado para receber diretamente um bloco 203 da imagem 17, por exemplo, um, vários ou todos os blocos que formam a imagem 17. O bloco de imagem 203 também pode ser referido como bloco de imagem atual ou bloco de imagem a ser codificado.
[0130] Como a imagem 17, o bloco de imagem 203 é ou pode ser considerado como um arranjo bidimensional ou matriz de amostras com valores de intensidade (valores de amostra), embora de menor dimensão do que a imagem 17. Em outras palavras, o bloco atual 203 pode compreender, por exemplo, um arranjo de amostra (por exemplo, um arranjo de luma no caso de uma imagem monocromática 17, ou um arranjo de luma ou croma no caso de uma imagem de cor) ou três arranjos de amostra (por exemplo, um de luma e dois arranjos de croma no caso de uma imagem de cor 17) ou qualquer outro número e/ou tipos de arranjo dependendo do formato de cor aplicado. O número de amostras na direção horizontal e vertical (ou eixo) do bloco atual 203 define o tamanho do bloco 203. Consequentemente, um bloco pode, por exemplo, um arranjo de amostras MxN (coluna M por linha N), ou um arranjo MxN dos coeficientes de transformada.
[0131] As modalidades do codificador de vídeo 20 como mostrado na Fig. 2 podem ser configuradas para codificar a imagem 17, bloco por bloco, por exemplo, a codificação e predição são realizadas por bloco 203.
[0132] As modalidades do codificador de vídeo 20 como mostrado na Fig. 2 podem ser configuradas adicionalmente para particionar e/ou codificar a imagem por meio do uso de fatias (também referidas como fatias de vídeo), em que uma imagem pode ser particionada ou codificada usando uma ou mais fatias (tipicamente não sobrepostas), e cada fatia pode compreender um ou mais blocos (por exemplo, CTUs).
[0133] As modalidades do codificador de vídeo 20 como mostrado na Fig. 2 podem ser configuradas adicionalmente para particionar e/ou codificar a imagem por meio do uso de grupos de tiles (também referidos como grupos de tiles de vídeo) e/ou tiles (também referidas como tiles de vídeo), em que uma imagem pode ser particionada ou codificada usando um ou mais grupos de tiles (tipicamente não sobrepostos), e cada grupo de tiles pode compreender, por exemplo, um ou mais blocos (por exemplo, CTUs) ou uma ou mais tiles, em que cada tile, por exemplo, pode ser de formato retangular e pode compreender um ou mais blocos (por exemplo, CTUs), por exemplo, blocos completos ou parciais. Cálculo Residual
[0134] A unidade de cálculo residual 204 pode ser configurada para calcular um bloco residual 205 (também referido como residual 205) com base no bloco de imagem 203 e um bloco de predição 265 (os detalhes adicionais sobre o bloco de predição 265 são fornecidos adiante), por exemplo, subtraindo valores de amostra do bloco de predição 265 de valores de amostra do bloco de imagem 203, amostra por amostra (pixel por pixel), para obter o bloco residual
205 no domínio de amostra. Transformada
[0135] A unidade de processamento de transformada 206 pode ser configurada aplicar uma transformada, por exemplo, uma transformada de cosseno discreta (DCT) ou transformada de seno discreta (DST), nos valores de amostra do bloco residual 205 para obter coeficientes de transformada 207 em um domínio de transformada. Os coeficientes de transformada 207 também podem ser referidos como coeficientes residuais de transformada e representam o bloco residual 205 no domínio de transformada.
[0136] A unidade de processamento de transformada 206 pode ser configurada para aplicar aproximações inteiras de DCT/DST, tais como as transformadas especificadas para H.265/HEVC. Em comparação a uma transformada DCT ortogonal, tais aproximações inteiras são tipicamente dimensionadas por um determinado fator. De modo a preservar a norma do bloco residual que é processada por transformadas diretas e inversas, fatores de escala adicionais são aplicados como parte do processo de transformada. Os fatores de escala são tipicamente escolhidos com base em certas restrições como fatores de escala sendo uma potência de dois para operações de deslocamento, profundidade de bits dos coeficientes de transformada, compensação entre precisão e custos de implementação, etc. Os fatores de escala específicos são, por exemplo, especificados para a transformada inversa, por exemplo, pela unidade de processamento de transformada inversa 212 (e a transformada inversa correspondente, por exemplo, pela unidade de processamento de transformada inversa 312 no decodificador de vídeo 30) e fatores de escala correspondentes para a transformada direta, por exemplo, pela unidade de processamento de transformada 206, em um codificador 20 podem ser especificados consequentemente.
[0137] As modalidades do codificador de vídeo 20 (respectivamente, unidade de processamento de transformada 206) podem ser configuradas para emitir parâmetros de transformada, por exemplo, um tipo de transformada ou transformadas, por exemplo, diretamente ou codificado ou comprimido através da unidade de codificação de entropia 270, de modo que, por exemplo, o decodificador de vídeo 30 possa receber e usar os parâmetros de transformada para decodificação.
Quantização
[0138] A unidade de quantização 208 pode ser configurada para quantizar os coeficientes de transformada 207 para obter coeficientes quantizados 209, por exemplo, aplicando-se quantização escalar ou quantização vetorial. Os coeficientes quantizados 209 também podem ser referidos como coeficientes de transformada quantizados 209 ou coeficientes residuais quantizados 209.
[0139] O processo de quantização pode reduzir a profundidade de bits associada a alguns ou todos os coeficientes de transformada 207. Por exemplo, um coeficiente de transformada de n bits pode ser arredondado para baixo para um coeficientes de transformada de m bits durante a quantização, onde n é maior do que m. O grau de quantização pode ser modificado pelo ajuste de um parâmetro de quantização (QP). Por exemplo, para quantização escalar, diferentes escalas podem ser aplicadas para obter quantização mais fina ou grosseira. Os menores tamanhos de etapa de quantização correspondem à quantização mais fina, enquanto os tamanhos de etapa de quantização maiores correspondem à quantização grosseira. O tamanho de etapa de quantização aplicável pode ser indicado por um parâmetro de quantização (QP). O parâmetro de quantização pode, por exemplo, ser um índice para um conjunto pré-definido de tamanhos de etapa de quantização aplicáveis. Por exemplo, parâmetros de quantização pequenos podem corresponder à quantização fina (tamanhos de etapa de quantização pequenos) e parâmetros de quantização maiores podem corresponder à quantização grosseira (tamanhos de etapa de quantização grandes) ou vice-versa. A quantização pode incluir a divisão por um tamanho de etapa de quantização e uma desquantização correspondente e/ou a quantização inversa, por exemplo, pela unidade de quantização inversa 210, pode incluir multiplicação pelo tamanho de etapa de quantização. As modalidades, de acordo com alguns padrões, por exemplo, HEVC, podem ser configurada para usar um parâmetro de quantização para determinar o tamanho de etapa de quantização. Geralmente, o tamanho de etapa de quantização pode ser calculado com base em um parâmetro de quantização usando uma aproximação de ponto fixo de uma equação incluindo divisão. Os fatores de escala adicionais podem ser introduzidos para quantização e desquantização para restaurar a norma do bloco residual, que pode ser modificada por causa da escala usada na aproximação de ponto fixo da equação para o tamanho de etapa de quantização e parâmetro de quantização. Em uma implementação do exemplo, a escala da transformada inversa e desquantização podem ser combinadas. Alternativamente, as tabelas de quantização personalizadas podem ser usadas e sinalizadas de um codificador para um decodificador, por exemplo, em um fluxo de bits. A quantização é uma operação com perdas, em que a perda aumento com o aumento dos tamanhos de etapa de quantização.
[0140] As modalidades do codificador de vídeo 20 (respectivamente, unidade de quantização 208) podem ser configuradas para emitir os parâmetros de quantização (QP), por exemplo, diretamente ou codificados através da unidade de codificação de entropia 270, de modo que, por exemplo, o decodificador de vídeo 30 possa receber e aplicar os parâmetros de quantização para decodificação. Quantização Inversa
[0141] A unidade de quantização inversa 210 é configurada para aplicar a quantização inversa da unidade de quantização 208 nos coeficientes quantizados para obter coeficientes desquantizados 211, por exemplo, aplicando-se o inverso do esquema de quantização aplicado pela unidade de quantização 208 com base ou usando o mesmo tamanho de etapa de quantização como a unidade de quantização 208. Os coeficientes desquantizados 211 também podem ser referidos como coeficientes residuais desquantizados 211 e correspondem - embora tipicamente não sejam idênticos aos coeficientes de transformada devido à perda por quantização - aos coeficientes de transformada 207. Transformada Inversa
[0142] A unidade de processamento de transformada inversa 212 é configurada para aplicar a transformada inversa da transformada aplicada pela unidade de processamento de transformada 206, por exemplo, uma transformada de cosseno discreta inversa (DCT) ou transformada de seno discreta inversa (DST) ou outras transformadas inversas, para obter um bloco residual reconstruído 213 (ou coeficientes desquantizados correspondentes 213) no domínio de amostra. O bloco residual reconstruído 213 também pode ser referido como bloco de transformada 213. Reconstrução
[0143] A unidade de reconstrução 214 (por exemplo, adicionador ou somador 214) é configurada para adicionar o bloco de transformada 213 (isto é, o bloco residual reconstruído 213) ao bloco de predição 265 para obter um bloco reconstruído 215 no domínio de amostra, por exemplo, adicionando - amostra por amostra - os valores de amostra do bloco residual reconstruído 213 e os valores de amostra do bloco de predição 265. Filtragem
[0144] A unidade de filtro loop 220 (ou “filtro loop” 220, para abreviação), é configurada para filtrar o bloco reconstruído 215 para obter um bloco filtrado 221 ou, em geral, para filtrar amostras reconstruídas para obter amostras filtradas. A unidade de filtro loop é, por exemplo, configurada para suavizar transições de pixel ou, de outro modo, melhorar a qualidade de vídeo. A unidade de filtro loop 220 pode compreender um ou mais filtros loop, tais como um filtro de desblocagem, um filtro de deslocamento adaptativo da amostra (SAO) ou um ou mais outros filtros, por exemplo, um filtro bilateral, um filtro loop adaptativo (ALF), um filtro de nitidez, um filtro de suavização ou um filtro colaborativo ou qualquer combinação dos mesmos. Embora a unidade de filtro loop 220 seja mostrada na FIG. 2 como sendo um filtro no loop, em outras configurações, a unidade de filtro loop 220 pode ser implementada como um filtro de pós-loop. O bloco filtrado 221 também pode ser referido como bloco reconstruído filtrado 221.
[0145] As modalidades do codificador de vídeo 20 (respectivamente, unidade de filtro loop 220) podem ser configuradas para emitir os parâmetros de filtro loop (tais como informações de deslocamento adaptativas da amostra), por exemplo, codificado diretamente ou através da unidade de codificação de entropia 270, de modo que, por exemplo, um decodificador 30 possa receber e aplicar os mesmos parâmetros de filtro loop ou filtros loop respectivos para decodificação. Buffer de Imagem Decodificado
[0146] O buffer de imagem decodificado (DPB) 230 pode ser uma memória que armazena imagens de referência ou, em geral, dados de imagem de referência, para codificar dados de vídeo pelo codificador de vídeo 20. O DPB 230 pode ser formado por qualquer um de uma variedade de dispositivos de memória, tais como memória de acesso aleatório dinâmica (DRAM), incluindo
DRAM síncrona (SDRAM), RAM magneto resistiva (MRAM), RAM resistiva (RRAM) ou outros tipos de dispositivos de memória. O buffer de imagem decodificado (DPB) 230 pode ser configurado para armazenar um ou mais blocos filtrados 221. O buffer de imagem decodificado 230 pode ser configurado adicionalmente para armazenar outros blocos previamente filtrados, por exemplo, blocos previamente reconstruídos filtrados 221, da mesma imagem atual ou de diferente imagens, por exemplo, imagens previamente reconstruídas, e pode fornecer imagens completas previamente reconstruídas, isto é, decodificadas, (e blocos e amostras de referência correspondentes) e/ou uma imagem atual parcialmente reconstruída (e blocos e amostras de referência correspondentes), por exemplo, para predição inter. O buffer de imagem decodificado (DPB) 230 também pode ser configurado para armazenar um ou mais blocos reconstruídos filtrados 215 ou, em geral, amostras filtradas reconstruídas, por exemplo, se o bloco reconstruído 215 não for filtrado pela unidade de filtro loop 220 ou qualquer outra versão processada adicional do blocos ou amostras reconstruídas. Seleção de Modo (Particionamento e Predição)
[0147] A unidade de seleção de modo 260 compreende a unidade de particionamento 262, unidade de predição inter 244 e unidade de predição intra 254, e é configurada para receber ou obter dados de imagem originais, por exemplo, um bloco original 203 (bloco atual 203 da imagem atual 17), e dados de imagem reconstruídos, por exemplo, filtrados e/ou amostras filtradas reconstruídas ou blocos da mesma imagem (atual) e/ou a partir de uma ou uma pluralidade de imagens previamente decodificadas, por exemplo, a partir de buffer de imagem decodificado 230 ou outros buffers (por exemplo, buffer de linha, não mostrado). Os dados de imagem reconstruídos são usados como dados de imagem de referência para predição, por exemplo, predição inter ou predição intra, para obter um bloco de predição 265 ou preditor 265.
[0148] A unidade de seleção de modo 260 pode ser configurada para determinar ou selecionar um particionamento para um modo de predição de bloco atual (não incluindo particionamento) e um modo de predição (por exemplo, um modo de predição intra ou inter) e gerar um bloco de predição correspondente 265, que é usado para o cálculo do bloco residual 205 e para a reconstrução do bloco reconstruído 215.
[0149] As modalidades da unidade de seleção de modo 260 podem ser configuradas para selecionar o particionamento e o modo de predição (por exemplo, daqueles suportados ou disponíveis para a unidade de seleção de modo 260), que fornecem a melhor combinação ou, em outras palavras, o residual mínimo (residual mínimo significa melhor compressão para transmissão ou armazenamento), ou uma sobrecarga de sinalização mínima (sobrecarga de sinalização mínima significa melhor compressão para transmissão ou armazenamento), ou que considera ou equilibra ambos. A unidade de seleção de modo 260 pode ser configurada para determinar o particionamento e o modo de predição com base na otimização de distorção de taxa (RDO), isto é, selecionar o modo de predição que fornece uma distorção de taxa mínima. Os termos como “melhor”, “mínimo”, “ideal” etc., neste contexto, não necessariamente referem-se a um “melhor”, “mínimo”, “ideal”, etc. geral, também podem se referir ao cumprimento de uma terminação ou critério de seleção como um valor excedendo ou caindo abaixo de um limite ou outras restrições levando potencialmente a uma “seleção sub-ideal”, mas reduzindo a complexidade e o tempo de processamento.
[0150] Em outras palavras, a unidade de particionamento 262 pode ser configurada para particionar o bloco atual 203 em menores partições de bloco ou sub-blocos (que formam novamente blocos), por exemplo, usando iterativamente particionamento de quadtree (QT), particionamento binário (BT) ou particionamento de árvore tripla (TT) ou qualquer combinação dos mesmos e, para realizar, por exemplo, a predição para cada uma das partições de bloco atual ou sub-blocos, em que a seleção de modo compreende a seleção da estrutura de árvore do bloco particionado 203 e os modos de predição são aplicados a cada uma das partições de bloco atual ou sub-blocos.
[0151] A seguir, o particionamento (por exemplo, pela unidade de particionamento 260) e o processamento de predição (pela unidade de predição inter 244 e unidade de predição intra 254) realizados por um codificador de vídeo de exemplo 20 serão explicados em mais detalhes. Particionamento
[0152] A unidade de particionamento 262 pode particionar (ou dividir) um bloco atual 203 em menores partições, por exemplo, menores blocos de tamanho quadrado ou retangular. Estes blocos menores (que também podem ser referidos como sub-blocos) podem ser particionados adicionalmente em partições menores. Isto também é referido como particionamento de árvore ou particionamento de árvore hierárquica, em que um bloco de raiz, por exemplo, no nível de árvore de raiz 0 (nível hierárquico 0, profundidade 0), pode ser particionado recursivamente, por exemplo, particionado em dois ou mais blocos de um próximo nível de árvore inferior, por exemplo, nós no nível de árvore 1 (nível hierárquico 1, profundidade 1), em que estes blocos podem ser novamente particionados em dois ou mais blocos de um próximo nível inferior, por exemplo, nível de árvore 2 (nível hierárquico 2, profundidade 2), etc. até que o particionamento seja encerrado, por exemplo, pelo fato de que um critério de terminação é atendido, por exemplo, uma profundidade de árvore máxima ou tamanho de bloco mínimo é alcançado. Os blocos que não são particionados adicionalmente também são referidos como blocos de folha ou nós de folha da árvore. Uma árvore usando o particionamento em duas partições é referida como árvore binária (BT), uma árvore usando particionamento em três partições é referida como árvore ternária (TT), e uma árvore usando particionamento em quatro partições é referida como quadtree (QT).
[0153] Como mencionado antes, o termo “bloco” como usado neste relatório, pode ser uma parte, em particular, uma parte quadrada ou retangular, de uma imagem. Com referência, por exemplo, à HEVC e VVC, o bloco atual pode ser ou corresponder a uma unidade de árvore de codificação (CTU), uma unidade de codificação (CU), unidade de predição (PU), e unidade de transformada (TU) e/ou aos blocos correspondentes, por exemplo, um bloco de árvore de codificação (CTB), um bloco de codificação (CB), um bloco de transformada (TB) ou bloco de predição (PB).
[0154] Por exemplo, uma unidade de árvore de codificação (CTU) pode ser ou compreender um CTB de amostras de luma, dois CTBs correspondentes de amostras de croma de uma imagem que tem três arranjos de amostra, ou um CTB de amostras de uma imagem monocromática ou uma imagem que é codificada usando três planos de cores separados e estruturas de sintaxe usados para codificar as amostras. Correspondentemente, um bloco de árvore de codificação (CTB) pode ser um bloco de amostras NxN para algum valor de N, tal que a divisão de um componente em CTBs é um particionamento. Uma unidade de codificação (CU) pode ser ou compreender um bloco de codificação de amostras de luma, dois blocos de codificação correspondentes de amostras de croma de uma imagem que tem três arranjos de amostra, ou um bloco de codificação de amostras de uma imagem monocromática ou uma imagem que é codificada usando três planos de cor separados e estruturas de sintaxe usados para codificar as amostras. Correspondentemente, um bloco de codificação (CB) pode ser um bloco de amostras MxN para alguns valores de M e N, tais que a divisão de um CTB nos blocos de codificação é um particionamento.
[0155] Em modalidades, por exemplo, de acordo com HEVC, uma unidade de árvore de codificação (CTU) pode ser dividida em CUs por meio do uso de uma estrutura de quadtree denotada como árvore de codificação. A decisão para codificar uma imagem área usando predição de imagem inter (temporal) ou imagem intra (espacial) é feita no nível de CU. Cada CU pode ser dividida adicionalmente em uma, duas ou quatro PUs, de acordo com o tipo de divisão de PU. Dentro de uma PU, o mesmo processo de predição é aplicado e as informações relevantes são transmitidas para o decodificador em uma base de PU. Depois de obter o bloco residual aplicando-se o processo de predição com base no tipo de divisão de PU, uma CU pode ser particionada em unidades de transformada (TUs), de acordo com outra estrutura de quadtree similar à árvore de codificação para a CU.
[0156] Nas modalidades, por exemplo, de acordo com o padrão de codificação de vídeo mais recente atualmente em desenvolvimento, que é referido como Codificação de Vídeo Versátil (VVC), um particionamento de árvore de quadtree e binária combinada (QTBT) é, por exemplo, usado para particionar um bloco de codificação. Na estrutura de bloco de QTBT, uma CU pode ter um formato quadrado ou retangular. Por exemplo, uma unidade de árvore de codificação (CTU) é particionada primeiro por uma estrutura de quadtree. Os nós de folha de quadtree são particionados adicionalmente por uma estrutura de árvore de árvore binária ou ternária (ou tripla). Os nós de folha de árvore de particionamento são chamados de unidades de codificação (CUs), e essa segmentação é usada para predição e processamento de transformada sem qualquer particionamento adicional. Isto significa que a CU, PU e TU têm o mesmo tamanho de bloco na estrutura de bloco de codificação de QTBT. Em paralelo, a partição múltipla, por exemplo, a partição de árvore tripla pode ser usada juntamente com a estrutura de bloco de QTBT.
[0157] Em um exemplo, a unidade de seleção de modo 260 do codificador de vídeo 20 pode ser configurada para realizar qualquer combinação das técnicas de particionamento descritas neste relatório.
[0158] Como descrito acima, o codificador de vídeo 20 é configurado para determinar ou selecionar o melhor ou um modo de predição ideal a partir de um conjunto de modos de predição (por exemplo, pré-determinado). O conjunto de modos de predição pode compreender, por exemplo, modos de predição intra e/ou modos de predição inter. Predição intra
[0159] O conjunto de modos de predição intra pode compreender 35 modos de predição intra diferentes, por exemplo, modos não direcionais como o modo DC (ou meio) e modo planar, ou modos direcionais, por exemplo, como definido em HEVC, ou pode compreender 67 modos de predição intra diferentes, por exemplo, modos não direcionais como o modo DC (ou meio) e o modo planar, ou modos direcionais, por exemplo, como definido para VVC.
[0160] A unidade de predição intra 254 é configurada para usar amostras reconstruídas de blocos vizinhos da mesma imagem atual para gerar um bloco de predição intra 265, de acordo com um modo de predição intra do conjunto de modos de predição intra.
[0161] A unidade de predição intra 254 (ou, em geral, a unidade de seleção de modo 260) é configurada adicionalmente para emitir parâmetros de predição intra (ou, em geral, informações indicativas do modo de predição intra selecionado para o bloco atual) para a unidade de codificação de entropia 270 na forma de elementos de sintaxe 266 para a inclusão nos dados de imagem codificados 21, de modo que, por exemplo, o decodificador de vídeo 30 possa receber e usar os parâmetros de predição para decodificação. Predição inter
[0162] O conjunto de modos de predição inter (ou possível) depende das imagens de referência disponíveis (isto é, imagens anteriores pelo menos parcialmente decodificadas, por exemplo, armazenadas em DPB 230) e outros parâmetros de predição inter, por exemplo, se a imagem de referência inteira ou apenas uma parte, por exemplo, uma área de janela de pesquisa em torno da área do bloco atual, da imagem de referência for usada para pesquisar um bloco de referência que melhor se adapta e/ou, por exemplo, se a interpolação de pixel for aplicada, por exemplo, interpolação de metade/semi-pel e/ou um quarto de pel ou não.
[0163] Além dos modos de predição acima, o modo de salto e/ou modo direto pode ser aplicado.
[0164] A unidade de predição inter 244 pode incluir uma unidade de estimativa de movimento (ME) e uma unidade de compensação de movimento (MC) (ambas não mostradas na Fig. 2). A unidade de estimativa de movimento pode ser configurada para receber ou obter o bloco de imagem 203 (bloco de imagem atual 203 da imagem atual 17) e uma imagem decodificada 231, ou pelo menos um ou uma pluralidade de blocos previamente reconstruídos, por exemplo, blocos reconstruídos de uma ou uma pluralidade de outras/diferentes imagens previamente decodificadas 231, para a estimativa de movimento. Por exemplo, uma sequência de vídeos pode compreender a imagem atual e a imagem previamente decodificada 231 ou, em outras palavras, a imagem atual e a imagem previamente decodificada 231 podem fazer parte ou formar uma sequência de imagens formando uma sequência de vídeos.
[0165] O codificador 20 pode, por exemplo, ser configurado para selecionar um bloco de referência a partir de uma pluralidade de blocos de referência das imagens iguais ou diferentes da pluralidade de outras imagens e fornecer uma imagem de referência (ou índice de imagem de referência) e/ou um deslocamento (deslocamento espacial) entre a posição (coordenadas x, y) do bloco de referência e a posição do bloco atual como parâmetros de predição inter para a unidade de estimativa de movimento. Este deslocamento também é chamado de vetor de movimento (MV).
[0166] A unidade de compensação de movimento é configurada para obter, por exemplo, receber, um parâmetro de predição inter e para realizar predição inter com base ou usando o parâmetro de predição inter para obter um bloco de predição inter 265. A compensação de movimento, realizada pela unidade de compensação de movimento, pode envolver buscar ou gerar o bloco de predição com base no vetor de movimento/bloco determinado pela estimativa de movimento, possivelmente realizando interpolações para a precisão de sub- pixel. A filtragem de interpolação pode gerar amostras de pixel adicionais a partir de amostras de pixel conhecidas, aumento assim potencialmente o número de blocos de predição candidatos que podem ser usados para codificar um bloco de imagem. Após receber o vetor de movimento para a PU do bloco de imagem atual, a unidade de compensação de movimento pode localizar o bloco de predição para o qual o vetor de movimento aponta em uma das listas de imagens de referência.
[0167] A unidade de compensação de movimento também pode gerar elementos de sintaxe associados aos blocos atuais e fatias de vídeo para o uso pelo decodificador de vídeo 30 na decodificação dos blocos de imagem da fatia de vídeo. Em adição ou como uma alternativa às fatias e elementos de sintaxe respectivos, grupos de tiles e/ou tiles e elementos de sintaxe respectivos podem ser gerados ou usados. Codificação de Entropia
[0168] A unidade de codificação de entropia 270 é configurada para aplicar, por exemplo, um algoritmo ou esquema de codificação de entropia (por exemplo, um esquema de codificação de comprimento variável (VLC), um esquema VLC adaptativo ao contexto (CAVLC), um esquema de codificação aritmética, uma binarização, uma codificação aritmética binária adaptativa ao contexto (CABAC), codificação aritmética binária adaptativa ao contexto com base em sintaxe (SBAC), codificação de entropia de particionamento de intervalo de probabilidade (PIPE) ou outra metodologia ou técnica de codificação de entropia) ou bypass (sem compressão) nos coeficientes quantizados 209, parâmetros de predição inter, parâmetros de predição intra, parâmetros de filtro loop e/ou outros elementos de sintaxe para obter dados de imagem codificados 21 que podem ser emitidos através da saída 272, por exemplo, na forma de um fluxo de bits codificado 21, de modo que, por exemplo, o decodificador de vídeo 30 possa receber e usar os parâmetros para decodificação. O fluxo de bits codificado 21 pode ser transmitido para o decodificador de vídeo 30 ou armazenado em uma memória para transmissão ou recuperação posterior pelo decodificador de vídeo 30.
[0169] Outras variações estruturais do codificador de vídeo 20 podem ser usadas para codificar o fluxo de vídeo. Por exemplo, um codificador 20 não baseado em transformada pode quantizar o sinal residual diretamente sem a unidade de processamento de transformada 206 para certos blocos ou quadros. Em outra implementação, um codificador 20 pode ter a unidade de quantização
208 e a unidade de quantização inversa 210 combinadas em uma única unidade. Decodificador e Método de Decodificação
[0170] A Fig. 3 mostra um exemplo de um decodificador de vídeo 30 que é configurado para implementar as técnicas deste presente pedido. O decodificador de vídeo 30 é configurado para receber dados de imagem codificados 21 (por exemplo, fluxo de bits codificado 21), por exemplo, codificados pelo codificador 20, para obter uma imagem decodificada 331. Os dados de imagem codificados ou fluxo de bits compreendem informações para decodificar os dados de imagem codificados, por exemplo, dados que representam os blocos de imagem de uma fatia de vídeo codificada (e/ou grupos de tile ou tiles) e elementos de sintaxe associados.
[0171] No exemplo da Fig. 3, o decodificador 30 compreende uma unidade de decodificação de entropia 304, uma unidade de quantização inversa 310, uma unidade de processamento de transformada inversa 312, uma unidade de reconstrução 314 (por exemplo, um somador 314), um filtro loop 320, um buffer de imagem decodificado (DPB) 330, uma unidade de aplicação de modo 360, uma unidade de predição inter 344 e uma unidade de predição intra 354. A unidade de predição inter 344 pode ser ou incluir uma unidade de compensação de movimento. O decodificador de vídeo 30 pode, em alguns exemplos, realizar uma passagem de decodificação geralmente recíproca à passagem de codificação descrita em relação ao codificador de vídeo 100 da FIG. 2.
[0172] Como explicado com relação ao codificador 20, a unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214 o filtro loop 220, o buffer de imagem decodificado (DPB) 230, a unidade de predição inter 344 e a unidade de predição intra 354 também são referidos como formando o “decodificador embutido” do codificador de vídeo 20. Consequentemente, a unidade de quantização inversa 310 pode ser idêntica em função à unidade de quantização inversa 110, a unidade de processamento de transformada inversa 312 pode ser idêntica em função à unidade de processamento de transformada inversa 212, a unidade de reconstrução 314 pode ser idêntica em função à unidade de reconstrução 214, o filtro loop 320 pode ser idêntico em função ao filtro loop 220, e o buffer de imagem decodificado 330 pode ser idêntico em função ao buffer de imagem decodificado 230. Portanto, as explicações fornecidas para as respectivas unidades e funções do codificador de vídeo 20 aplicam-se correspondentemente às respectivas unidades e funções do decodificador de vídeo 30. Decodificação de Entropia
[0173] A unidade de decodificação de entropia 304 é configurada para analisar o fluxo de bits 21 (ou, em geral, dados de imagem codificados 21) e realizar, por exemplo, a decodificação de entropia para os dados de imagem codificados 21 para obter, por exemplo, coeficientes quantizados 309 e/ou parâmetros de codificação decodificados (não mostrados na Fig. 3), por exemplo, quaisquer ou todos os parâmetros de predição inter (por exemplo, índice de imagem de referência e vetor de movimento), parâmetro de predição intra (por exemplo, modo ou índice de predição intra), parâmetros de transformada, parâmetros de quantização, parâmetros de filtro loop, e/ou outros elementos de sintaxe. A unidade de decodificação de entropia 304 pode ser configurada para aplicar os algoritmos ou esquemas de decodificação correspondentes aos esquemas de codificação como descritos em relação à unidade de codificação de entropia 270 do codificador 20. A unidade de decodificação de entropia 304 pode ser configurada adicionalmente para fornecer parâmetros de predição inter, parâmetros de predição intra e/ou outros elementos de sintaxe para a unidade de aplicação de modo 360 e outros parâmetros para outras unidades do decodificador 30. O decodificador de vídeo 30 pode receber os elementos de sintaxe no nível de fatia de vídeo e/ou no nível de bloco de vídeo. Em adição ou como uma alternativa para fatias e elementos de sintaxe respectivos, grupos de tiles e/ou tiles e elementos de sintaxe respectivos podem ser recebidos e/ou usados. Quantização Inversa
[0174] A unidade de quantização inversa 310 pode ser configurada para receber parâmetros de quantização (QP) (ou, em geral, informações relacionadas à quantização inversa) e coeficientes quantizados dos dados de imagem codificados 21 (por exemplo, análise e/ou decodificação, por exemplo, pela unidade de decodificação de entropia 304) e para aplicar com base nos parâmetros de quantização, uma quantização inversa aos coeficientes quantizados decodificados 309 para obter coeficientes desquantizados 311, que também podem ser referidos como coeficientes de transformada 311. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização determinado pelo codificador de vídeo 20 para cada bloco de vídeo na fatia de vídeo (ou tile ou grupo de tiles) para determinar um grau de quantização e, do mesmo modo, um grau de quantização inversa que deve ser aplicado. Transformada Inversa
[0175] A unidade de processamento de transformada inversa 312 pode ser configurada para receber coeficientes desquantizados 311, também referidos como coeficientes de transformada 311, e para aplicar uma transformada aos coeficientes desquantizados 311, de modo a obter o bloco residual reconstruído 213 no domínio de amostra. O bloco residual reconstruído 213 também pode ser referido como bloco de transformada 313. A transformada pode ser uma transformada inversa, por exemplo, uma DCT inversa, uma DST inversa, uma transformada inteira inversa ou um processo de transformada inversa conceitualmente similar. A unidade de processamento de transformada inversa 312 pode ser configurada adicionalmente para receber parâmetros de transformada ou informações correspondentes dos dados de imagem codificados 21 (por exemplo, análise e/ou decodificação, por exemplo, pela unidade de decodificação de entropia 304) para determinar a transformada a ser aplicada aos coeficientes desquantizados 311. Reconstrução
[0176] A unidade de reconstrução 314 (por exemplo, adicionador ou somador 314) pode ser configurada para adicionar o bloco residual reconstruído 313, ao bloco de predição 365 para obter um bloco reconstruído 315 no domínio de amostra, por exemplo, adicionando os valores de amostra do bloco residual reconstruído 313 e os valores de amostra do bloco de predição 365. Filtragem
[0177] A unidade de filtro loop 320 (no loop de codificação ou depois do loop de codificação) é configurada para filtrar o bloco reconstruído 315 para obter um bloco filtrado 321, por exemplo, para suavizar transições de pixel ou, de outro modo, melhorar a qualidade de vídeo. A unidade de filtro loop 320 pode compreender um ou mais filtros loop, tais como um filtro de desblocagem, um filtro de deslocamento adaptativo da amostra (SAO) ou um ou mais outros filtros, por exemplo, um filtro bilateral, um filtro loop adaptativo (ALF), um filtro de nitidez ou um filtro de suavização ou um filtro colaborativo, ou qualquer combinação dos mesmos. Embora a unidade de filtro loop 320 seja mostrada na FIG. 3 como sendo um filtro no loop, em outras configurações, a unidade de filtro loop 320 pode ser implementada como um filtro de pós-loop. Buffer de Imagem Decodificado
[0178] Os blocos de vídeo decodificados 321 de uma imagem são, em seguida, armazenados em buffer de imagem decodificado 330, que armazena as imagens decodificada 331 como imagens de referência para compensação de movimento subsequente para outras imagens e/ou para exibição de saída, respectivamente.
[0179] O decodificador 30 é configurado para emitir a imagem decodificada 311, por exemplo, através da saída 312, para apresentação ou visualização para um usuário. Predição
[0180] A unidade de predição inter 344 pode ser idêntica à unidade de predição inter 244 (em particular, à unidade de compensação de movimento) e a unidade de predição intra 354 pode ser idêntica à unidade de predição intra 254 em função, e realiza a divisão ou decisões de particionamento e predição com base nos parâmetros de particionamento e/ou predição ou informações respectivas recebidas dos dados de imagem codificados 21 (por exemplo, análise e/ou decodificação, por exemplo, pela unidade de decodificação de entropia 304). A unidade de aplicação de modo 360 pode ser configurada para realizar a predição (predição intra ou inter) por bloco com base nas imagens reconstruídas, blocos ou amostras respectivas (filtradas ou não filtradas) para obter o bloco de predição 365.
[0181] Quando a fatia de vídeo é codificada como uma fatia codificada de modo intra (I), a unidade de predição intra 354 da unidade de aplicação de modo 360 é configurada para gerar bloco de predição 365 para um bloco de imagem da fatia de vídeo atual com base em um modo de predição intra sinalizado e dados de blocos previamente decodificados da imagem atual. Quando a imagem de vídeo é codificada como uma fatia codificada de modo inter (isto é, B ou P), a unidade de predição inter 344 (por exemplo, a unidade de compensação de movimento) da unidade de aplicação de modo 360 é configurada para produzir blocos de predição 365 para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe recebidos da unidade de decodificação de entropia 304. Para predição inter, os blocos de predição podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagens de referência. O decodificador de vídeo 30 pode construir a lista de quadros de referência, Lista 0 e Lista 1, usando técnicas de construção padrão com base em imagens de referência armazenadas em DPB 330. O mesmo ou similar pode ser aplicado, ou pelas modalidades usando grupos de tile (por exemplo, grupos de tile de vídeo) e/ou tiles (por exemplo, tiles de vídeo) em adição ou alternativamente às fatias (por exemplo, fatias de vídeo), por exemplo, um vídeo pode ser codificado usando grupos de tile e/ou tiles I, P ou B.
[0182] A unidade de aplicação de modo 360 é configurada para determinar as informações de predição para um bloco de vídeo da fatia de vídeo atual analisando os vetores de movimento ou informações relacionadas e outros elementos de sintaxe, e usar as informações de predição para produzir os blocos de predição para o bloco de vídeo atual sendo decodificado. Por exemplo, a unidade de aplicação de modo 360 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, predição intra ou inter) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de predição inter (por exemplo, fatia B, fatia P ou fatia GPB), informações de construção para uma ou mais das listas de imagens de referência para a fatia, vetores de movimento para cada bloco de vídeo codificado de modo inter da fatia, estado de predição inter para cada bloco de vídeo codificado de modo inter da fatia, e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual. O mesmo ou similar pode ser aplicado, ou pelas modalidades usando grupos de tile (por exemplo, grupos de tile de vídeo) e/ou tiles (por exemplo, tiles de vídeo) em adição ou alternativamente às fatias (por exemplo, fatias de vídeo), por exemplo, um vídeo pode ser codificado usando grupos de tile e/ou tiles I, P ou B.
[0183] As modalidades do decodificador de vídeo 30 como mostrado na Fig. 3 podem ser configuradas para particionar e/ou decodificar a imagem por meio do uso de fatias (também referidas como fatias de vídeo), em que uma imagem pode ser particionada ou decodificada usando uma ou mais fatias (tipicamente não sobrepostas), e cada fatia pode compreender um ou mais blocos (por exemplo, CTUs).
[0184] As modalidades do decodificador de vídeo 30 como mostrado na Fig. 3 podem ser configuradas para particionar e/ou decodificar a imagem por meio do uso de grupos de tile (também referidos como grupos de tile de vídeo) e/ou tiles (também referidas como tiles de vídeo), em que uma imagem pode ser particionada ou decodificada usando um ou mais grupos de tile (tipicamente não sobrepostos), e cada grupo de tiles pode compreender, por exemplo, um ou mais blocos (por exemplo, CTUs) ou uma ou mais tiles, em que cada tile, por exemplo, pode ser de formato retangular e pode compreender um ou mais blocos (por exemplo, CTUs), por exemplo, blocos completos ou parciais.
[0185] Outras variações do decodificador de vídeo 30 podem ser usadas para decodificar dados de imagem codificados 21. Por exemplo, o decodificador 30 pode produzir o fluxo de vídeo de saída sem a unidade de filtragem loop 320. Por exemplo, um decodificador 30 não baseado em transformada pode quantizar inversamente o sinal residual diretamente sem a unidade de processamento de transformada inversa 312 para certos blocos ou quadros. Em outra implementação, o decodificador de vídeo 30 pode ter a unidade de quantização inversa 310 e a unidade de processamento de transformada inversa 312 combinadas em uma única unidade.
[0186] Deve ser entendido que, no codificador 20 e no decodificador 30, um resultado de processamento de uma etapa atual pode ser processado adicionalmente e, em seguida, emitido para a próxima etapa. Por exemplo, depois da filtragem de interpolação, derivação de vetor de movimento ou filtragem loop, uma operação adicional, tal como corte ou deslocamento, pode ser realizada no resultado de processamento da filtragem de interpolação, derivação de vetor de movimento ou filtragem loop.
[0187] Deve ser observado que operações adicionais podem ser aplicadas aos vetores de movimento derivados do bloco atual (incluindo, mas não limitando os vetores de movimento de ponto de controle do modo afim, vetores de movimento de sub-bloco em modos afim, planar, ATMVP, vetores de movimento temporais e assim por diante). Por exemplo, o valor do vetor de movimento é restrito a uma faixa pré-definida, de acordo com seus bits representantes. Se os bits representantes do vetor de movimento for bitDepth, em seguida, a faixa é -2^(bitDepth-1) ~ 2^(bitDepth-1)-1, onde “^” significa exponenciação. Por exemplo, se bitDepth for definido como igual a 16, a faixa é de -32768 ~ 32767; se bitDepth for definido como igual a 18, a faixa é de -131072 ~ 131071. Por exemplo, o valor do vetor de movimento derivado (por exemplo, os MVs de quatro sub-blocos 4x4 dentro de um bloco 8x8) é restrito, tal que a diferença máxima entre as partes inteiras dos quadros MVs de sub-bloco 4x4 não é maior do que N pixels, tal como não é maior do que 1 pixel. Neste relatório, é fornecido dois métodos para restringir o vetor de movimento, de acordo com bitDepth. Método 1: remover o MSB de extravasamento (bit mais significante) fluindo as operações ux = (mvx + 2bitDepth) % 2bitDepth (1) mvx = (ux >= 2bitDepth-1) ? (ux − 2bitDepth) : ux (2) uy = (mvy + 2bitDepth) % 2bitDepth (3) mvy = (uy >= 2bitDepth-1) ? (uy − 2bitDepth) : uy (4) onde mvx é um componente horizontal de um vetor de movimento de um bloco de imagem ou um sub-bloco, mvy é um componente vertical de um vetor de movimento de um bloco de imagem ou um sub-bloco, e ux e uy indicam um valor intermediário;
[0188] Por exemplo, se o valor de mvx for -32769, depois de aplicar a fórmula (1) e (2), o valor resultante é 32767. No sistema de computador, os números decimais são armazenados como complemento de dois. O complemento de dois de -32769 é 1,0111,1111,1111,1111 (17 bits), em seguida, o MSB é descartado, de modo que o complemento de dois resultante seja 0111,1111,1111,1111 (número decimal é 32767), que é o mesmo que a saída aplicando-se a fórmula (1) e (2). ux = (mvpx + mvdx +2bitDepth) % 2bitDepth (5) mvx = (ux >= 2bitDepth-1) ? (ux − 2bitDepth) : ux (6) uy = (mvpy + mvdy + 2bitDepth) % 2bitDepth (7) mvy = (uy >= 2bitDepth-1) ? (uy − 2bitDepth) : uy (8)
[0189] As operações podem ser aplicadas durante a soma de mvp e mvd, como mostrado na fórmula (5) a (8). Método 2: remover o MSB de extravasamento cortando o valor vx = Clip3(-2bitDepth-1, 2bitDepth-1 -1, vx) vy = Clip3(-2bitDepth-1, 2bitDepth-1 -1, vy) onde vx é um componente horizontal de um vetor de movimento de um bloco de imagem ou um sub-bloco, vy é um componente vertical de um vetor de movimento de um bloco de imagem ou um sub-bloco; x, y e z correspondem, respectivamente, aos três valores de entrada do processo de corte de MV e a definição da função Clip3 é como a seguir: x ; z<x Clip3(x, y, z) = �y ; z>y z ; de outro modo
[0190] A FIG. 4 é um diagrama esquemático de um dispositivo de codificação de vídeo 400, de acordo com uma modalidade da revelação. O dispositivo de codificação de vídeo 400 é adequado para implementar as modalidades reveladas como descrito neste relatório. Em uma modalidade, o dispositivo de codificação de vídeo 400 pode ser um decodificador, tal como o decodificador de vídeo 30 da FIG. 1A ou um codificador, tal como o codificador de vídeo 20 da FIG. 1A.
[0191] O dispositivo de codificação de vídeo 400 compreende portas de ingresso 410 (ou portas de entrada 410) e unidades receptoras (Rx) 420 para receber dados; um processador, unidade lógica, ou unidade de processamento central (CPU) 430 para processar os dados; unidades transmissoras (Tx) 440 e portas de egresso 450 (ou portas de saída 450) para transmitir os dados; e uma memória 460 para armazenar os dados. O dispositivo de codificação de vídeo 400 também pode compreender componentes ópticos para elétricos (OE) e componentes elétricos para ópticos (EO) acoplados às portas de ingresso 410, às unidades receptoras 420, às unidades transmissoras 440 e às portas de egresso 450 para egresso ou ingresso de sinais ópticos ou elétricos.
[0192] O processador 430 é implementado por hardware e software. O processador 430 pode ser implementado como um ou mais chips de CPU, núcleos (por exemplo, como um processador de múltiplos núcleos), FPGAs, ASICs e DSPs. O processador 430 está em comunicação com as portas de ingresso 410, unidades receptoras 420, unidades transmissoras 440, portas de egresso 450 e memória 460. O processador 430 compreende um módulo de codificação 470. O módulo de codificação 470 implementa as modalidades reveladas descritas acima. Por exemplo, o módulo de codificação 470 implementa, processa, prepara ou fornece as várias operações de codificação. A inclusão do módulo de codificação 470, portanto, fornece uma melhoria substancial para a funcionalidade do dispositivo de codificação de vídeo 400 e efetua uma transformação do dispositivo de codificação de vídeo 400 para um estado diferente. Alternativamente, o módulo de codificação 470 é implementado como instruções armazenadas na memória 460 e executadas pelo processador
430.
[0193] A memória 460 pode compreender um ou mais discos, unidades de fita e unidades de estado sólido e pode ser usada como um dispositivo de armazenamento de dados de fluxo excessivo, para armazenar programas, quando tais programas são selecionados para a execução, e para armazenar instruções e dados que são lidos durante a execução do programa. A memória 460 pode ser, por exemplo, volátil e/ou não volátil e pode ser uma memória somente de leitura (ROM), memória de acesso aleatório (RAM), memória endereçável de conteúdo ternário (TCAM) e/ou memória de acesso aleatório estática (SRAM).
[0194] A Fig. 5 é um diagrama de bloco simplificado de um aparelho 500 que pode ser usado tanto como o dispositivo de origem 12 quanto como o dispositivo de destino 14 da Fig. 1A, de acordo com uma modalidade exemplar.
[0195] Um processador 502 no aparelho 500 pode ser uma unidade de processamento central. Alternativamente, o processador 502 pode ser qualquer outro tipo de dispositivo, ou múltiplos dispositivos, capazes de manipular ou processar informações agora existentes ou desenvolvidas no futuro. Embora as implementações reveladas possam ser praticadas com um único processador como mostrado, por exemplo, o processador 502, as vantagens na velocidade e eficiência podem ser obtidas usando mais do que um processador.
[0196] Uma memória 504 no aparelho 500 pode ser um dispositivo de memória somente de leitura (ROM) ou um dispositivo de memória de acesso aleatório (RAM) em uma implementação. Qualquer outro tipo de dispositivo de armazenamento adequado pode ser usado como a memória 504. A memória 504 pode incluir código e dados 506 que são acessados pelo processador 502 usando um barramento 512. A memória 504 pode incluir adicionalmente um sistema operacional 508 e programas de aplicativo 510, os programas de aplicativo 510 incluindo pelo menos um programa que permite que o processador
502 realize os métodos descritos neste relatório. Por exemplo, os programas de aplicativo 510 podem incluir aplicativos 1 através de N, que incluem adicionalmente uma aplicação de codificação de vídeo que realiza os métodos descritos neste relatório.
[0197] O aparelho 500 também pode incluir um ou mais dispositivos de saída, tais como um display 518. O display 518 pode ser, em um exemplo, um display sensível ao toque que combina um display com um elemento sensível ao toque que é operável para detectar entradas de toque. O display 518 pode ser acoplado ao processador 502 através de barramento 512.
[0198] Embora representado neste relatório como um único barramento, o barramento 512 do aparelho 500 pode ser composto de múltiplos barramentos. Além disso, o armazenamento secundário 514 pode ser diretamente acoplado aos outros componentes do aparelho 500 ou pode ser acessado através de uma rede e pode compreender uma única unidade integrada, tal como um cartão de memória ou múltiplas unidades, tais como múltiplos cartões de memória. O aparelho 500 pode ser, portanto, implementado em uma ampla variedade de configurações.
[0199] As modalidades apresentadas neste relatório serão descritas em mais detalhes como a seguir. Uma fonte de vídeo que é representada por um fluxo de bits pode incluir uma sequência de imagens na ordem de decodificação.
[0200] Cada uma das imagens (que pode ser uma imagem de destino ou uma imagem decodificada) inclui um ou mais dos seguintes arranjos de amostra: - Apenas luma (Y) (monocromático). - Luma e dois cromas (YCbCr ou YCgCo). - Verde, azul e vermelho (GBR, também conhecido como RGB). - Arranjos representando outras amostragens de cores monocromáticas ou de três estímulos não especificadas (por exemplo, YZX, também conhecido como XYZ).
[0201] Para conveniência da notação e terminologia na presente revelação, as variáveis e termos associados com estes arranjos são referidos como luma (ou L ou Y) e croma, onde os dois arranjos de croma são referidos como Cb e Cr.
[0202] A Fig. 6A ilustra as localizações do componente de croma para o esquema de amostragem 4:2:0. No esquema de amostragem 4:2:0, cada um dos dois arranjos de croma tem metade da altura e metade da largura do arranjo de luma. A Fig. 6B ilustra as localizações do componente de croma para o esquema de amostragem 4:2:2. No esquema de amostragem 4:2:2, cada um dos dois arranjos de croma tem a mesma altura e metade da largura do arranjo de luma. A Fig. 6C ilustra as localizações do componente de croma para o esquema de amostragem 4:4:4. No esquema de amostragem 4:4:4, se separate_colour_plane_flag for igual a 0, cada um dos dois arranjos de croma tem a mesma altura e largura que o arranjo de luma. A Fig. 6D mostra vários padrões de amostragem para uma imagem intercalada. Na Fig. 6D, o tipo de amostra de croma 0, o tipo de amostra de croma 1, o tipo de amostra de croma 2, o tipo de amostra de croma 3, o tipo de amostra de croma 4 e o tipo de amostra de croma 5 são representados.
[0203] A predição intra de amostras de croma pode ser realizada usando amostras de bloco de luma reconstruído.
[0204] Durante o desenvolvimento de HEVC, a predição intra de croma do modelo linear de componente cruzado (CCLM) foi proposta [J. Kim, S.- W. Park, J.-Y. Park, e B.-M. Jeon, Intra Chroma Prediction Using Inter Channel Correlation, documento JCTVC-B021, Jul. 2010]. CCLM usa correlação linear entre uma amostra de croma e uma amostra de luma em uma posição em um bloco de codificação correspondente à posição da amostra de croma. Quando um bloco de croma é codificado usando CCLM, um modelo linear é derivado das amostras de luma e croma vizinhas reconstruídas através de regressão linear. As amostras de croma no bloco atual podem ser, em seguida, preditas usando as amostras de luma reconstruídas no bloco atual com o modelo linear derivado (como mostrado na Fig. 6E): C ( x, y ) = α × L ( x, y ) + β , onde C e L indicam valores de amostra de luma e croma, respectivamente. Os parâmetros α e β são derivados pelo método dos mínimos quadrados como a seguir: R ( L, C ) α= R ( L, L ) β = M (C ) − α × M ( L) ,
onde M(A) representa a média de a e R(A,B) é definido como a seguir: R( A, B) = M (( A − M ( A)) × ( B − M ( B) ) .
[0205] Se a imagem codificada ou decodificada tiver um formato que especifique diferentes números de amostras para componentes de luma e croma (por exemplo, formato YCbCr 4:2:0 como mostrado na Fig. 6), as amostras de luma são reduzidas antes da modelagem e predição.
[0206] O método foi adotado para o uso em VTM2.0. Especificamente, a derivação de parâmetro é realizada como a seguir: 𝑁𝑁·∑�𝐿𝐿(𝑛𝑛)·𝐶𝐶(𝑛𝑛)�−∑𝐿𝐿(𝑛𝑛)·∑𝐶𝐶(𝑛𝑛) 𝛼𝛼 = , 𝑁𝑁·∑�𝐿𝐿(𝑛𝑛)·𝐿𝐿(𝑛𝑛)�−∑𝐿𝐿(𝑛𝑛)·∑𝐿𝐿(𝑛𝑛) ∑𝐶𝐶(𝑛𝑛)−𝛼𝛼·∑𝐿𝐿(𝑛𝑛) 𝛽𝛽 = ,
𝑁𝑁 onde 𝐿𝐿(𝑛𝑛) representa as amostras de luma reconstruídas vizinhas reduzidas acima ou à esquerda, 𝐶𝐶(𝑛𝑛) representa as amostras de croma reconstruídas vizinhas acima ou à esquerda.
[0207] Em [G. Laroche, J. Taquet, C. Gisquet, P. Onno (Canon), “CE3: Cross-component linear model simplification (Test 5.1)”, documento de entrada para o 12o Encontro de JVET em Macao, China, Out. 2018] um método diferente de derivar 𝛼𝛼 e 𝛽𝛽 foi proposto (como mostrado na Fig. 8). Em particular, os parâmetros do modelo linear𝛼𝛼 e 𝛽𝛽 são obtidos, de acordo com as seguintes equações: 𝐶𝐶(𝐵𝐵) − 𝐶𝐶(𝐴𝐴) 𝛼𝛼 = 𝐿𝐿(𝐵𝐵) − 𝐿𝐿(𝐴𝐴) 𝛽𝛽 = 𝐿𝐿(𝐴𝐴) − 𝛼𝛼𝛼𝛼(𝐴𝐴), onde onde 𝐵𝐵 = argmax�𝐿𝐿(𝑛𝑛)� e 𝐴𝐴 = argmin(𝐿𝐿(𝑛𝑛)) são posições de valores máximos e mínimos nas amostras de luma.
[0208] A Fig. 7A mostra a localização das amostras causais acima e à esquerda e as amostras do bloco atual envolvidas no modo CCLM se o formato de croma YCbCr 4:2:0 estiver em uso. Deve ser entendido que as “amostras acima ou à esquerda” também podem ser referidas como “amostras superiores ou esquerda”, “amostras de cima ou da esquerda” ou “amostras da parte de cima ou da parte esquerda”. Estas amostras referem-se às amostras em blocos vizinhos à esquerda e acima (ou parte superior) de um bloco atual.
[0209] Para realizar a predição de componente cruzado, para o formato de croma 4:2:0, o bloco de luma reconstruído precisa ser sub-amostrado para combinar o tamanho do sinal de croma ou amostras de croma ou bloco de croma. O filtro de amostragem reduzida padrão usado no modo CCLM é como a seguir. 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 ] + RecL [ 2 x − 1, 2 y + 1] + RecL [ 2 x + 1, 2 y + 1] + 4) >> 3 (0)
[0210] Observe que esta amostragem reduzida assume que a relação de fase do “tipo 0” é definida para as posições das amostras de croma em relação às posições das amostras de luma, isto é, a amostragem horizontalmente colocalizada e a amostragem verticalmente intersticial. O filtro de amostragem reduzida de 6 tap acima mostrado em Eqn. (0) é usado como o filtro padrão tanto para o modo CCLM de modelo único quanto para o modo CCLM de múltiplos modelo. As posições espaciais das amostras usadas por este filtro de amostragem reduzida de 6 tap são ilustradas na Fig. 9. Nesta figura, existem amostras 901, amostras 902 e amostras 903 que são marcadas usando diferentes padrões de linha. Durante a filtragem, as amostras 901, 902 e 903 têm pesos de 2, 1 e 0, respectivamente.
[0211] Se as amostras de luma estiverem localizadas em um limite de bloco e blocos adjacentes acima e à esquerda não estiverem disponíveis, as seguintes fórmulas são usadas: Rec'L [x, y ] = RecL [2 x,2 y ], se a linha com y = 0 for a 1a linha de uma CTU, x = 0 bem como os blocos adjacentes à esquerda e acima não estão disponíveis; ou Rec'L [x, y ] = (2 × RecL [2 x,2 y ] + RecL [2 x − 1,2 y ] + RecL [2 x + 1,2 y ] + 2 ) >> 2 , se a linha com y = 0 for a 1a linha de uma CTU e o bloco adjacente acima não estiver disponível; ou Rec'L [x, y ] = (RecL [2 x,2 y ] + RecL [2 x,2 y + 1] + 1) >> 1 , se x = 0 bem como como os blocos adjacentes à esquerda e acima não estão disponíveis.
[0212] Ao considerar a amostragem dos componentes de luma e croma no esquema de amostragem 4:2:0, pode haver um deslocamento entre as grades do componente de luma e croma. Em um bloco de 2×2 pixels, os componentes de croma são realmente deslocados pela metade de um pixel comparado verticalmente ao componente de luma (ilustrado na Fig. 6A). Tal deslocamento pode ter uma influência nos filtros de interpolação quando a amostragem reduzida é realizada, ou quando a amostragem elevada é realizada. O mesmo descrito acima pode ser aplicado aos outros esquemas de amostragem como mostrado na Fig. 6B ou 6C. Na Fig. 6D, vários padrões de amostragem são representados para uma imagem intercalada. Isto significa que a paridade, isto é, se os pixels estiverem nos campos superior ou inferiores de uma imagem intercalada também é levado em consideração.
[0213] Como proposto em [P. Hanhart, Y. He, “CE3: Modified CCLM downsampling filter for “type-2” content (Test 2.4)”, documento de entrada JVET- M0142 para o 13o encontro de JVET em Marrakech, Morocco, Jan. 2019] e incluído no projeto de especificação VVC (versão 4), para evitar o desalinhamento entre as amostras de croma e as amostras de luma de amostragem reduzidas em CCLM para o conteúdo “tipo 2”, os seguintes filtros de amostragem reduzida são aplicados às amostras de luma para a determinação e a predição do modelo linear: 3 tap: RecL ′(𝑖𝑖, 𝑗𝑗) = [RecL (2𝑖𝑖 − 1,2𝑗𝑗) + 2 ∙ recL (2𝑖𝑖, 2𝑗𝑗) + RecL (2𝑖𝑖 + 1,2𝑗𝑗) + 2] ≫ 2 5 tap: RecL ′(𝑖𝑖, 𝑗𝑗) = [RecL (2𝑖𝑖, 2𝑗𝑗 − 1) + RecL (2𝑖𝑖 − 1,2𝑗𝑗) + 4 ∙ RecL (2𝑖𝑖, 2𝑗𝑗) + RecL (2𝑖𝑖 + 1,2𝑗𝑗) + RecL (2𝑖𝑖, 2𝑗𝑗 + 1) + 4] ≫ 3
[0214] Para evitar o aumento do número do buffer de linhas, estas modificações não são aplicadas ao limite de CTU superior. A seleção do filtro de amostragem reduzida é governada pela flag SPS sps_cclm_colocated_chroma_flag. Quando o valor de sps_cclm_colocated_chroma_flag é 0 ou falso, o filtro de amostragem reduzida é aplicado às amostras de luma para a determinação e a predição do modelo linear; Quando o valor de sps_cclm_colocated_chroma_flag é 1 ou verdadeiro, o filtro de amostragem reduzida não é aplicados às amostras de luma para a determinação e a predição do modelo linear.
[0215] As amostras de limite de luma reconstruídas L() que são usadas para derivar os parâmetros de modelo linear como descrito acima são subsamostradas a partir das amostras de luma filtradas Rec' L [ x, y ] .
[0216] O processo de filtragem e amostragem reduzida da amostra de luma em um projeto anterior é descrito em 8.3.4.2.8 da especificação VVC:
8.3.4.2.8. Especificação do modo de predição intra de INTRA_LT_CCLM, INTRA_L_CCLM e INTRA_T_CCLM
[0217] As entradas para este processo são: o modo de predição intra predModeIntra, uma localização da amostra (xTbC, yTbC) da amostra superior esquerda do bloco de transformada atual em relação à amostra superior esquerda da imagem atual, uma variável nTbW especificando a largura do bloco de transformada, uma variável nTbH especificando a altura do bloco de transformada, amostras vizinhas de croma p[x][y], com x = −1, y = 0..2 * nTbH − 1 e x = 0..2 * nTbW − 1, y = − 1.
[0218] A saída para este processo são amostras preditas predSamples[x][y], com x = 0..nTbW − 1, y = 0..nTbH − 1.
[0219] A localização de luma atual (xTbY, yTbY) é derivada como a seguir: (xTbY, yTbY) = (xTbC << 1, yTbC << 1) (8-155)
[0220] As variáveis availL, availT e availTL são derivadas como a seguir:
[0221] A disponibilidade do processo de derivação das amostras vizinhas esquerdas para um bloco é invocada com a localização de croma atual (xCurr, yCurr) definida como igual a (xTbC, yTbC) e a localização de croma vizinha (xTbC − 1, yTbC) como entrada, e a saída é atribuída a availL.
[0222] A disponibilidade do processo de derivação das amostras vizinhas superiores para um bloco é invocada com a localização de croma atual (xCurr, yCurr) definida como igual a (xTbC, yTbC) e a localização de croma vizinha (xTbC, yTbC − 1) como entrada, e a saída é atribuída a availT.
[0223] A disponibilidade do processo de derivação de amostras vizinhas superiores esquerdas para um bloco é invocada com a localização de croma atual (xCurr, yCurr) definida como igual a (xTbC, yTbC) e a localização de croma vizinha (xTbC − 1, yTbC − 1) como entrada, e a saída é atribuída a availTL.
[0224] O número de amostras de croma vizinhas superiores direitas disponíveis numTopRight é derivado como a seguir:
[0225] A variável numTopRight é definida como igual a 0 e availTR é definido igual a TRUE.
[0226] Quando predModeIntra é igual a INTRA_T_CCLM, o seguindo é aplicado para x = nTbW..2 * nTbW − 1 até que availTR seja igual a FALSE ou x seja igual a 2 * nTbW − 1:
[0227] O processo de derivação de disponibilidade para um bloco é invocado com a localização de croma atual (xCurr, yCurr) definida como igual a (xTbC , yTbC) e a localização de croma vizinha (xTbC + x, yTbC − 1) como entrada, e a saída é atribuída a availableTR
[0228] Quando availableTR é igual a TRUE, numTopRight é incrementado por um.
[0229] O número de amostras de croma vizinhas inferiores esquerdas disponíveis numLeftBelow é derivado como a seguir:
[0230] A variável numLeftBelow é definida como igual a 0 e availLB é definido como igual a TRUE.
[0231] Quando predModeIntra é igual a INTRA_L_CCLM, o seguinte é aplicado para y = nTbH..2 * nTbH − 1 até que availLB seja igual a FALSE ou y seja igual a 2 * nTbH − 1:
[0232] O processo de derivação de disponibilidade para um bloco é invocado com a localização de croma atual (xCurr, yCurr) definida como igual a (xTbC , yTbC) e a localização de croma vizinha (xTbC − 1, yTbC + y) como entrada, e a saída é atribuída a availableLB
[0233] Quando availableLB é igual a TRUE, numLeftBelow é incrementado por um.
[0234] O número de amostras de croma vizinhas disponíveis no numTopSamp superior e superior direito e o número de amostras de croma vizinhas disponíveis no nLeftSamp esquerdo e inferior esquerdo são derivados como a seguir:
[0235] Se predModeIntra for igual a INTRA_LT_CCLM, o seguinte é aplicado: numSampT = availT ? nTbW : 0(8 - 156) numSampL = availL ? nTbH : 0(8 - 157)
[0236] De outro modo, o seguinte é aplicado: numSampT = (availT && predModeIntra = = INTRA_T_CCLM) ?
(nTbW + numTopRight) : 0 (8 - 158) numSampL = (availL && predModeIntra = = INTRA_L_CCLM) ? (nTbH + numLeftBelow) : 0 (8 - 159)
[0237] A variável bCTUboundary é derivada como a seguir: bCTUboundary = (yTbC & (1 << (CtbLog2SizeY − 1) − 1) = = 0) ? TRUE : FALSE. (8 - 160)
[0238] As amostras de predição predSamples[x][y] com x = 0..nTbW − 1, y = 0..nTbH − 1 são derivadas como a seguir:
[0239] Se tanto numSampL quanto numSampT forem iguais a 0, o seguinte é aplicado: predSamples[x][y] = 1 << (BitDepthC − 1) (8 - 161)
[0240] De outro modo, as seguintes etapas ordenadas são aplicadas:
[0241] As amostras de luma colocalizadas pY[x][y] com x = 0..nTbW * 2 − 1, y= 0..nTbH * 2 − 1 são definidas como iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nas localizações (xTbY + x, yTbY + y).
[0242] As amostras de luma vizinhas pY[x][y] são derivadas como a seguir:
[0243] Quando numSampL é maior do que 0, as amostras de luma esquerdas vizinhas pY[x][y] com x = −1..−3, y = 0.,2 * numSampL − 1, são definidas como iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nas localizações (xTbY + x , yTbY +y).
[0244] Quando numSampT é maior do que 0, as amostras de luma superiores vizinhas pY[x][y] com x = 0..2 * numSampT − 1, y = −1, −2, são definidas como iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nas localizações (xTbY+ x, yTbY + y).
[0245] Quando availTL é igual a TRUE, as amostras de luma superiores esquerdas vizinhas pY[x][y] com x = −1, y = −1, −2, são definidas como iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nas localizações (xTbY+ x, yTbY + y).
[0246] As amostras de luma colocalizadas de amostragem reduzida pDsY[x][y] com x = 0..nTbW − 1, y = 0..nTbH − 1 são derivadas como a seguir:
[0247] Se sps_cclm_colocated_chroma_flag for igual a 1, o seguinte é aplicado:
pDsY[x][y] com x = 1..nTbW − 1, y = 1..nTbH − 1 é derivado como a seguir: pDsY[x][y] = (pY[2 * x][2 * y − 1] + pY[2 * x − 1][2 * y] + 4 * pY[2 * x][2 * y] + pY[2 * x + 1][2 * y] + (8 - 162) pY[2 * x][2 * y + 1] + 4) >> 3
[0248] Se availL for igual a TRUE, pDsY[0][y] com y = 1..nTbH − 1 é derivado como a seguir: pDsY[0][y] = (pY[0][2 * y − 1] + pY[−1][2 * y] + 4 * pY[0][2 * y] + pY[1][2 * y] + (8 - 163) pY[0][2 * y + 1] + 4) >> 3
[0249] De outro modo, pDsY[0][y] com y = 1..nTbH − 1 é derivado como a seguir: pDsY[0][y] = (pY[0][2 * y − 1] + 2 * pY[0][2 * y] + pY[0][2 * y + 1] + 2) >> 2(8 - 164)
[0250] Se availT for igual a TRUE, pDsY[x][0] com x = 1..nTbW − 1 é derivado como a seguir: pDsY[x][0] = (pY[2 * x][−1] + pY[2 * x − 1][0] + 4 * pY[2 * x][0] + pY[2 * x + 1][0] + (8 - 165) pY[2 * x][1] + 4) >> 3
[0251] De outro modo, pDsY[x][0] com x = 1..nTbW − 1 é derivado como a seguir: pDsY[x][0] = (pY[2 * x − 1][0] + 2 * pY[2 * x][0] + pY[2 * x + 1][0] + 2) >> 2 (8 - 166)
[0252] Se availL for igual a TRUE e availT for igual a TRUE, pDsY[0][0] é derivado como a seguir: pDsY[0][0] = (pY[0][−1] + pY[−1][0] + 4 * pY[0][0] + pY[1][0] + (8 - 167) pY[0][1] + 4) >> 3
[0253] De outro modo, se availL for igual a TRUE e availT for igual a FALSE, pDsY[0][0] é derivado como a seguir: pDsY[0][0] = (pY[−1][0] + 2 * pY[0][0] + pY[1][0] + 2) >> 2 (8 - 168)
[0254] De outro modo, se availL for igual a FALSE e availT for igual a TRUE, pDsY[0][0] é derivado como a seguir:
pDsY[0][0] = (pY[0][−1] + 2 * pY[0][0] + pY[0][1] + 2) >> 2 (8 - 169)
[0255] De outro modo, (availL é igual a FALSE e availT é igual a FALSE), pDsY[0][0] é derivado como a seguir: pDsY[0][0] = pY[0][0] (8 - 170)
[0256] De outro modo, o seguinte é aplicado: pDsY[x][y] com x = 1..nTbW − 1, y = 0..nTbH − 1 é derivado como a seguir: pDsY[x][y] = (pY[2 * x − 1][2 * y] + pY[2 * x − 1][2 * y + 1] + 2* pY[2 * x][2 * y] + 2*pY[2 * x][2 * y + 1] + (8 - 171) pY[2 * x + 1][2 * y] + pY[2 * x + 1][2 * y + 1] + 4) >> 3
[0257] Se availL for igual a TRUE, pDsY[0][y] com y = 0..nTbH − 1 é derivado como a seguir: pDsY[0][y] = (pY[−1][2 * y] + pY[−1][2 * y + 1] + 2* pY[0][2 * y] + 2*pY[0][2*y + 1] + (8 - 172) pY[1][2 * y] + pY[1][2 * y + 1] + 4) >> 3
[0258] De outro modo, pDsY[0][y] com y = 0..nTbH − 1 é derivado como a seguir: pDsY[0][y] = (pY[0][2 * y] + pY[0][2 * y + 1] + 1) >> 1 (8 - 173)
[0259] CCLM prevê os valores das amostras de croma em um bloco de croma por meio do uso de bloco de luma subamostrado (bloco de luma de amostragem reduzida) que é colocalizado espacialmente com o bloco de croma. A subamostragem ou amostragem reduzida do bloco de luma compreende filtragem para suprimir artefatos de dobradura causados pelo espelhamento de espectro. A seleção do tipo de filtro de interpolação é dependente do tipo de subamostragem e o valor dos deslocamentos espaciais de subamostragem entre amostras de luma e croma da imagem original.
[0260] No projeto anterior, um conjunto de filtros de interpolação foi definido sem considerar o formato de croma e, consequentemente, quando a razão da subamostragem de croma na direção horizontal (SubWidthC) não é igual à razão da subamostragem de croma na direção vertical (SubHeightC), as seguintes falhas podem ocorrer: - alisamento extra; - deslocamento de fase incorreto do sinal de luminância filtrado.
[0261] A presente revelação fornece um método para considerar o formato de croma da imagem ao prognosticar amostras de croma das amostras de luma. Ao selecionar o conjunto de filtros com base no formato de croma, as falhas do projeto anterior podem ser eliminadas, o que resulta em um sinal de predição de croma mais preciso e, assim, a redução de erro de predição. O resultado técnico de um erro de predição menor é uma redução de energia do sinal residual. Os métodos de codificação podem utilizar esta redução para diminuir a distorção do sinal reconstruído, diminuir a taxa de bits que é necessária para codificar o sinal residual ou diminuir tanto a distorção quanto a taxa de bits. Estes efeitos benéficos obtidos pela presente revelação melhoram o desempenho de compressão geral do método de codificação.
[0262] A Tabela 1 mostra os formatos de croma que podem ser suportados na presente revelação. As informações de formato de croma, tais como chroma_format_idc e/ou separate_colour_plane_flag, que podem ser usadas para determinar os valores das variáveis SubWidthC e SubHeightC. chroma_format_id separate_colour_plane_fla Formato de SubWidthC SubHeightC c g croma 0 0 Monocromático 1 1 1 0 4:2:0 2 2 2 0 4:2:2 2 1 3 0 4:4:4 1 1 3 1 4:4:4 1 1 Tabela 1
[0263] chroma_format_idc especifica a amostragem de croma em relação à amostragem de luma. O valor de chroma_format_idc deve estar na faixa de 0 a 3, inclusive.
[0264] separate_colour_plane_flag igual a 1 especifica que os três componentes de cor do formato de croma 4:4:4 são codificados separadamente. separate_colour_plane_flag igual a 0 especifica que os componentes de cor não são codificados separadamente. Quando separate_colour_plane_flag não está presente, é inferido para ser igual a 0. Quando separate_colour_plane_flag é igual a 1, a imagem codificada consiste de três componentes separados, cada um consistindo de amostras codificadas de um plano de cor (Y, Cb ou Cr) e usa a sintaxe de codificação monocromática.
[0265] O formato de croma determina precedência e a subamostragem dos arranjos de croma;
[0266] Na amostragem monocromática existe apenas um arranjo de amostra, que é nominalmente considerado o arranjo de luma.
[0267] Na amostragem 4:2:0, cada um dos dois arranjos de croma tem metade da altura e metade da largura do arranjo de luma, como mostrado na fig. 6A.
[0268] Na amostragem 4:2:2, cada um dos dois arranjos de croma tem a mesma altura e metade da largura do arranjo de luma, como mostrado na fig. 6B.
[0269] Na amostragem 4:4:4, dependendo do valor de separate_colour_plane_flag, o seguinte é aplicado: - Se separate_colour_plane_flag for igual a 0, cada um dos dois arranjos de croma tem a mesma altura e largura que o arranjo de luma, como mostrado na fig. 6C. - De outro modo (separate_colour_plane_flag é igual a 1), os três planos de cor são separadamente processados como imagens de amostra monocromáticas.
[0270] Na presente revelação, um método para processar amostras de luma que são usadas como dados de entrada para determinar parâmetros de um modelo linear é fornecido. O modelo linear pode incluir, mas não é limitado ao modelo linear de componente cruzado (CCLM) ou modelo linear multidirecional (MDLM). O método inclui a determinação de um conjunto de filtros (tais como dois filtros) que é condicionalmente aplicado nas direções vertical e horizontal.
[0271] Em algumas modalidades, um conjunto de condições é introduzido que é verificado de modo a determinar coeficientes do filtro a ser aplicado às amostras de luma reconstruídas. O conjunto de condições incluem, mas não é limitado às condições que envolvem as razões da amostragem de croma (também, isto é, os fatores de amostragem de croma, tais como as variáveis SubWidthC e SubHeightC).
[0272] A FIG. 7A é um diagrama esquemático que ilustra um mecanismo de exemplo que realiza predição intra CCLM 700. A predição intra CCLM 700 é um tipo de predição intra de componente cruzado. Consequentemente, predição intra CCLM 700 pode ser realizada por uma unidade de predição intra 254 do codificador 20 e/ou uma unidade de predição intra 354 da predição intra CCLM 700 do decodificador 30 prevê amostras de croma 703 em um bloco de croma 701. As amostras de croma 703 aparecem em posições inteiras mostradas como grades ou células formadas por linhas que se cruzam. A predição é com base, em parte, nas amostras de referência vizinhas, que são representadas como círculos pretos. As amostras de croma 703 não são preditas somente com base nas amostras de referência de croma vizinhas 705, que são denotadas como amostras de croma reconstruídas (Rec’C). As amostras de croma 703 também são preditas com base em amostras de luma reconstruídas 713 e amostras de referência de luma vizinhas 715. Especificamente, uma CU contém um bloco de luma 711 e dois blocos de croma
701. Um modelo é gerado que correlaciona as amostras de croma 703 e as amostras de luma reconstruídas 713 na mesma CU. Os coeficientes lineares para o modelo podem ser determinados ao comparar as amostras de referência de luma vizinhas 715 às amostras de referência de croma vizinhas 705, em um exemplo, os coeficientes lineares para o modelo podem ser determinados ao comparar as amostras de referência de luma de amostragem reduzida 719 de amostras de referência de luma vizinhas selecionadas 715 às amostras de referência de croma vizinhas selecionadas 705, e as posições das amostras de referência de croma vizinhas selecionadas 705 podem corresponder às posições das amostras de referência de luma de amostragem reduzida 719.
[0273] As amostras de referência de croma vizinhas 705 são selecionadas a partir das amostras de croma em blocos vizinhos adjacentes ao bloco de croma 701. As amostras de referência de croma vizinhas 705 são selecionadas a partir de um modelo superior 707 e/ou um modelo esquerdo 706. Por exemplo, as amostras de referência de croma vizinhas 705 podem ser selecionadas com base na disponibilidade do modelo superior 707 e/ou do modelo esquerdo 706. Como mostrado na Fig. 7D, quatro amostras de referência de croma vizinhas 705 podem ser selecionadas. Pelo fato de que as amostras de referência de croma vizinhas 705 são amostras reconstruídas, as amostras de referência de croma vizinhas 705 são denotadas como amostras de croma reconstruídas (Rec’C). As amostras de luma reconstruídas 713 são obtidas a partir do bloco de luma 711 na mesma CU que o bloco de croma 701. As amostras de referência de luma vizinhas 715 são selecionadas a partir de amostras de luma em blocos vizinhos adjacentes ao bloco de luma 711. As amostras de referência de luma vizinhas 715 são selecionadas a partir de um modelo superior 717 e/ou um modelo esquerdo 716. Por exemplo, como mostrado na Fig. 7D, de modo a obter quatro amostras de referência de luma de amostragem reduzida 719 que correspondam às quatro amostras de referência de croma vizinhas selecionadas 705 (isto é, as posições das quatro amostras de referência de luma de amostragem reduzida 719 correspondem às posições das quatro amostras de referência de croma vizinhas selecionadas 705), as amostras de referência de luma vizinhas 715 são selecionadas. Tal como, se um filtro de amostragem reduzida de 6 tap for aplicado, seis amostras de referência de luma vizinhas 715 são usadas para obter uma amostra de referência de luma de amostragem reduzida 719 que corresponde a uma amostra de referência de croma vizinha selecionada 705. As amostras de luma reconstruídas 713 são denotadas como Rec’L. Também, como usado neste relatório, o modelo 706, 707, 716 e 717 é um mecanismo que correlaciona amostras de referência de luma vizinhas 715 às amostras de referência de croma vizinhas 705.
[0274] Como mostrado, o bloco de luma 711 contém quatro vezes as amostras que o bloco de croma 701. Especificamente, o bloco de croma 701 contém N por N amostras, enquanto o bloco de luma 711 contém 2N por 2N amostras. Consequentemente, o bloco de luma 711 é quatro vezes a resolução do bloco de croma 701. Para a predição operar nas amostras de luma reconstruídas 713 e nas amostras de referência de luma vizinhas (selecionada) 715, as amostras de luma reconstruídas 713 e as amostras de referência de luma vizinhas (selecionadas) 715 são reduzidas para fornecer uma comparação exata com as amostras de referência de croma vizinhas 705 e às amostras de croma
703. A subamostragem é o processo de reduzir a resolução de um grupo de amostras.
[0275] Uma vez que as amostras de referência de luma vizinhas (selecionadas) 715 e as amostras de luma reconstruídas 713 são subamostradas, um modelo pode ser gerado para prever as amostras de croma 703 do bloco de croma 701. Especificamente, na predição intra CCLM 700, uma predição para amostras de croma 703 do bloco de croma 701 pode ser determinada, de acordo com o modelo descrito pela equação 1 abaixo: 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝐶𝐶 (𝑖𝑖, 𝑗𝑗) = 𝛼𝛼 · 𝑟𝑟𝑟𝑟𝑟𝑟𝐿𝐿 ′(𝑖𝑖, 𝑗𝑗) + 𝛽𝛽(1)
onde 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝐶𝐶 (𝑖𝑖, 𝑗𝑗) é a predição amostra de croma 703 do bloco de croma 701 em uma localização (i,j), onde i é o índice horizontal e j é o índice vertical. 𝑟𝑟𝑟𝑟𝑟𝑟𝐿𝐿 ′(𝑖𝑖, 𝑗𝑗) é a amostra de luma de amostragem reduzida na localização (i,j) da amostra de luma reconstruída 713 e 𝛼𝛼 e 𝛽𝛽 são coeficientes lineares determinados com base em amostras de referência de luma de amostragem reduzida das amostras de referência de luma vizinhas (selecionadas) 715 e em amostras de referência de croma (selecionadas) 705. Para o formato YUV 4:2:0, cada amostra de croma tem 4 amostras de luma colocalizadas, tanto as amostras de luma usadas para derivar α e β quanto as amostras usadas para calcular as amostras de croma preditas são subamostradas (ver a Fig. 6A).
[0276] Em um exemplo, α e β são determinados com base no valor mínimo e máximo das amostras de referência de luma vizinhas subamostradas 719 das amostras de referência de luma vizinhas selecionadas 715 como discutido em relação à FIG. 8 e Fig. 7D. Em uma implementação exemplar, depois que um valor de luma máximo e um valor de luma mínimo são determinados com base nas amostras de referência de luma de amostragem reduzida 719; um primeiro valor de croma é obtido com base pelo menos em parte, em uma ou mais posições (tais como duas posições) de uma ou mais amostras de referência de luma de amostragem reduzida (tal como duas amostras de referência de luma de amostragem reduzida) associadas ao valor de luma máximo; Por exemplo, o primeiro valor de croma é obtido com base em duas amostras de referência de croma em duas posições que correspondem às duas amostras de referência de luma de amostragem reduzida associadas ao valor de luma máximo. Um segundo valor de croma é obtido com base pelo menos em parte, em uma ou mais posições de uma ou mais amostras de referência de luma de amostragem reduzida associadas ao valor de luma mínimo; Por exemplo, o segundo valor de croma é obtido com base em duas amostras de referência de croma em duas posições que correspondem às duas amostras de referência de luma de amostragem reduzida associadas ao valor de luma mínimo. Os coeficientes de modelo linear α e β são calculados com base no primeiro valor de croma, no segundo valor de croma, no valor de luma máximo e no valor de luma mínimo (consultar a fig. 7D e fig. 8).
[0277] Como observado acima, as amostras de referência de luma vizinhas (selecionadas) 715 e as amostras de luma reconstruídas 713 são subamostradas antes de gerar o modelo linear. Além disso, utilizar múltiplas linhas/setas e colunas para gerar as amostras de referência de luma vizinhas 715 não aumenta significantemente a precisão dos cálculos remanescentes, de acordo com predição intra CCLM 700. Como tal, uma única linha e/ou coluna de amostras de referência de luma vizinhas 715 pode ser utilizada durante a amostragem reduzida, o que reduz a utilização da memória do buffer de linha sem impactar significantemente a precisão e/ou eficiência da codificação da predição intra CCLM 700.
[0278] A Fig. 7B mostra as localizações das amostras causais à esquerda e acima e a amostra do bloco atual envolvidas no modo CCLM se o formato de croma YCbCr 4:4:4 estiver em uso. Neste caso, nenhuma amostragem reduzida é realizada para CCLM.
[0279] A Fig. 7C mostra as localizações das amostras causais à esquerda e acima e a amostra do bloco atual envolvidas no modo CCLM se o formato de croma YCbCr 4:2:2 estiver em uso. Neste caso, a filtragem é realizada antes da amostragem reduzida das amostras de luma na direção horizontal para CCLM.
[0280] A FIG. 10 é um diagrama esquemático que ilustra um mecanismo de exemplo 1500 da amostragem reduzida para suportar predição intra de componente cruzado.
[0281] O mecanismo 1500 emprega uma única linha 1518 de amostras de referência de luma vizinhas e uma única coluna 1520 de amostras de referência de luma vizinhas. A linha 1518 e a coluna 1520 são diretamente adjacentes a um bloco de luma 1511 que compartilha uma CU com um bloco de croma sendo predito, de acordo com a predição intra de componente cruzado. Depois da amostragem reduzida, a linha 1518 de amostras de referência de luma vizinhas torna-se uma linha 1516 de amostras de referência de luma vizinhas subamostradas. Além disso, a coluna 1520 de amostras de referência de luma vizinhas são resultado subamostrados em uma única coluna 1517 de amostras de referência de luma vizinhas subamostradas. As amostras de referência de luma vizinhas subamostradas da linha 1516 e da coluna 1517 podem ser, em seguida, utilizadas para a predição intra de componente cruzado, de acordo com a equação 1.
[0282] Consequentemente, em uma implementação exemplar, uma única linha 1518 de amostras de referência de luma vizinhas e uma única coluna 1520 de amostras de referência de luma vizinhas são subamostradas para o uso na predição intra de componente cruzado. É observado que em outra implementação exemplar, as amostras de referência de luma selecionadas de uma única linha 1518 de amostras de referência de luma vizinhas e amostras de referência de luma selecionadas de uma única coluna 1520 de amostras de referência de luma vizinhas são subamostradas para o uso na predição intra de componente cruzado.
[0283] Para um bloco de luma 1511, a linha vizinha superior 1518, denotada como A1, é usada para a amostragem reduzida para obter a linha vizinha subamostrada 1516 denotada como A. A[i] é a iésima amostra em A e A1[i] é a iésima amostra em A1. Em um exemplo específico, um ou mais filtros de amostragem reduzida, que são determinados ou selecionados que dependem do formato de croma da imagem, podem ser aplicados à linha vizinha 1518 para obter a linha vizinha subamostrada 1516. Em outro exemplo específico, um ou mais filtros de amostragem reduzida, que são determinados ou selecionados que dependem do formato de croma da imagem, podem ser aplicados à algumas amostras de referência de luma selecionadas A1[i] da única linha 1518 para obter as amostras de referência de luma de amostragem reduzida, como mostrado na Fig. 7D. Os detalhes a este respeito serão introduzidos abaixo.
[0284] Além disso, a coluna vizinha esquerda 1520 é denotada como L1 é usada para a amostragem reduzida para obter uma coluna vizinha subamostrada 1517 denotada como L. L[i] é a iésima amostra em L e L1[i] é a iésima amostra em L1. Em um exemplo específico, um ou mais filtros de amostragem reduzida, que são determinados ou selecionados que dependem do formato de croma da imagem, podem ser aplicados à coluna vizinha 1520 para obter a coluna vizinhas subamostrada 1517. Os detalhes a este respeito serão introduzidos abaixo. Em outro exemplo específico, um ou mais filtros de amostragem reduzida, que são determinados ou selecionados que dependem do formato de croma da imagem, podem ser aplicados à algumas amostras de referência de luma selecionadas L1[i] da única coluna 1520 para obter as amostras de referência de luma de amostragem reduzida, como mostrado na Fig. 7D.
[0285] Além disso, também deve ser observado que o mecanismo
1500 também pode ser aplicado quando as dimensões das linhas 1518 e/ou 1516 e/ou colunas 1520 e/ou 1517 são maiores do que a largura ou a altura do bloco de luma 1511 ou do bloco de luma subamostrado 1512. No projeto alternativo, onde o mecanismo 1500 também pode ser aplicado à algumas amostras de referência vizinhas selecionadas A1[i] e/ou algumas amostras de referência vizinhas selecionadas L1[i].
[0286] A FIG. 11 é um fluxograma de um processo de exemplo 1100 para realizar predição intra usando um modelo linear, de acordo com algumas modalidades da presente revelação. O método pode ser realizado por um codificador de vídeo 20 e/ou um decodificador de vídeo 30 de um sistema de codec 10 ou 40 mostrado nas FIGs. 1A e 1B. Em particular, o método pode ser realizado por uma unidade de predição intra 244 do codificador de vídeo 20 mostrado na FIG. 2, e/ou uma unidade de predição intra 354 do decodificador de vídeo 30 mostrado na FIG. 3.
[0287] No bloco 1101, um conjunto de filtros de amostragem reduzida é determinado com base nas informações de formato de croma, em que as informações de formato de croma indicam um formato de croma de uma imagem à qual um bloco atual pertence; O bloco atual compreende um bloco de luma e um bloco de croma colocalizado. Pode ser entendido que cada filtro de amostragem reduzida do conjunto de filtros de amostragem reduzida pode ser definido por um ou mais coeficientes de filtro de amostragem reduzida. Será explicado como abaixo em detalhes.
[0288] No bloco 1103, as amostras de luma de amostragem reduzida de amostras de luma reconstruídas em um bloco de luma do bloco atual e amostras de referência de luma de amostragem reduzida de amostras de referência de luma selecionadas (também, isto é, amostras de luma vizinhas selecionadas) (adjacentes) do bloco de luma são obtidas usando filtros de amostragem reduzida respectivos entre o conjunto de filtros de amostragem reduzida;
[0289] Pode ser entendido que a resolução espacial do bloco de luma é usualmente maior do que o bloco de croma, um bloco de luma (isto é, um bloco de luma reconstruído) é subamostrado para obter um bloco de luma subamostrado, como ilustrado na FIG. 10. As amostras de luma reconstruídas que são horizontal e/ou verticalmente adjacentes à amostra de luma vizinha selecionada (a amostra de referência de luma de amostragem reduzida) são usadas para obter amostras de referência de luma de amostragem reduzida de amostras de luma vizinhas selecionadas fora do bloco de luma, como ilustrado na FIG. 9 ou 10.
[0290] No bloco 1105, um ou mais coeficientes de modelo linear são determinados ou derivados com base nas amostras de referência de luma de amostragem reduzida e em amostras de referência de croma que correspondem (ou que são associadas) às amostras de referência de luma de amostragem reduzida; e
[0291] No bloco 1107, as amostras de predição de um bloco de croma que corresponde ao bloco de luma são obtidas com base nos coeficientes de modelo linear e nas amostras de luma de amostragem reduzida das amostras de luma reconstruídas no bloco de luma.
[0292] O bloco 1101 é para determinar ou obter ou conseguir os valores das variáveis SubWidthC) e SubHeightCbased nas informações de formato de croma indicando o formato de croma da imagem sendo codificada.
[0293] O bloco 1101 é para definir ou determinar o filtro “F” usado para os valores das variáveis SubWidthC e SubHeightC.
[0294] A modalidade exemplar de como os filtros podem estar associados aos valores correspondentes de SubWidthC e SubHeightC como mostrado nas tabelas 2 a 5. Um filtro espacial “F” é definido em uma forma de uma matriz de coeficientes. As posições de amostras às quais estes coeficientes são aplicados, são definidas como a seguir onde a posição da amostra de luma filtrada ou modificada é denotada como (x,y): ( x − 1, y − 1) ( x, y − 1) ( x + 1, y − 1)   ( x − 1, y ) ( x, y ) ( x + 1, y )   ( x − 1, y + 1) ( x, y + 1) ( x + 1, y + 1) . (5)
[0295] Quando a posição da amostra reconstruída filtrada de saída está em um limite de bloco, algumas das posições vizinhas podem se tornar indisponíveis, devido aos blocos vizinhos estarem indisponíveis. Neste caso, a seleção das amostras de entrada é modificada para duplicar as amostras no limite de bloco. Esta modificação pode ser implementada aplicando outro filtro em um menor conjunto de amostras com diferentes coeficientes de filtro.
[0296] Especificamente, quando a amostra de saída está no limite esquerdo do bloco atual e amostras adjacentes à esquerda de um bloco de luma estão indisponíveis, as posições de amostras usadas para filtragem são definidas como a seguir: ( x, y − 1) ( x, y − 1) ( x + 1, y − 1)   ( x, y ) ( x, y ) ( x + 1, y )   ( x, y + 1) ( x, y + 1) ( x + 1, y + 1) . (6)
[0297] Quando a amostra de saída está no limite superior do bloco atual e amostras adjacentes ao lado superior de um bloco de luma estão indisponíveis, as posições de amostras usadas para filtragem são definidas como a seguir:  ( x − 1, y ) ( x, y ) ( x + 1, y )   ( x − 1, y ) ( x, y ) ( x + 1, y )   ( x − 1, y + 1) ( x, y + 1) ( x + 1, y + 1) . (7)
[0298] Quando a posição da amostra de saída está no limite direito do bloco atual, as posições de amostras usadas para filtragem são definidas como a seguir: ( x − 1, y − 1) ( x, y − 1) ( x, y − 1)   ( x − 1, y ) ( x, y ) ( x, y )   ( x − 1, y + 1) ( x, y + 1) ( x, y + 1) . (8)
[0299] Quando a posição da amostra de saída está no limite inferior do bloco atual, as posições de amostras usadas para filtragem são definidas como a seguir: ( x − 1, y − 1) ( x, y − 1) ( x + 1, y − 1)  ( x − 1, y ) ( x, y ) ( x + 1, y )    ( x − 1, y ) ( x, y ) ( x + 1, y )  (9) Tabela 2. Um exemplo da associação de um filtro espacial aos valores de SubWidthC e SubHeightC SubWidthC SubHeightC Filtro Espacial F 0 0 0  0 1 0  1 1   0 0 0
0 1 0  0 2 0  1 2   0 1 0 
0 0 0  1 2 1  2 1   0 0 0
0 1 0  1 4 1  2 2   0 1 0
Tabela 3. Um exemplo da associação de um filtro espacial aos valores de SubWidthC e SubHeightC SubWidthC SubHeight Filtro C Espacial 0 1 0  1 4 1  1 1   0 1 0
0 1 0  0 2 0  1 2   0 1 0 
0 0 0  1 2 1  2 1   0 0 0
0 1 0  1 4 1  2 2   0 1 0
Tabela 4. Um exemplo da associação de um filtro espacial aos valores de SubWidthC e SubHeightC SubWidthC SubHeightC Filtro Espacial F 0 0 0  0 1 0  1 1   0 0 0
0 1 0  0 2 0  1 2   0 1 0 
0 0 0  1 2 1  2 1   0 0 0 1 2 1   2 4 2 2 2   1 2 1  Tabela 5. Um exemplo da associação de um filtro espacial aos valores de SubWidthC e SubHeightC SubWidthC SubHeightC Filtro Espacial F 0 0 0  0 1 0  1 1   0 0 0 0 0 0  1 2 1 1 2   1 2 1 0 0 0  1 2 1 2 1   1 2 1 0 0 0  1 2 1 2 2   1 2 1
[0300] O bloco 1103 deve realizar a filtragem da amostra de luma reconstruída de modo a obter os valores da amostra de luma filtrada Rec'L [ x, y ] . Em particular, isto é realizado aplicando-se um filtro selecionado “F” às amostras reconstruídas RecL [ x, y ] : 1 1
N Rec'L [ x, y ] = ( ∑ ∑ Rec'L [ x + i, y + j ] ⋅ F [i + 1, j + 1] + ) >> log 2 ( N ) i = −1 j = −1 2 , onde F representa o filtro espacial, N é uma soma de coeficientes do filtro espacial F, e (x,y) representa a posição da amostra reconstruída. Esta filtragem corresponde ao cenário descrito em Eqn. (5). Em outros cenários, tais como os descritos acima em relação a Eqns. (6) a (9), a filtragem pode ser aplicada ajustando a filtragem acima com base nas posições de amostras mostradas em Eqns. (6) a (9).
[0301] Na modalidade adicional, o filtro pode comutar entre diferentes tipos de filtro (tais como as várias associações de filtros definidas nas tabelas 2 a 5) dependendo da posição da amostra de croma subamostrada em relação às amostras de luma. Como um exemplo, quando as amostras de croma subamostradas não estão colocalizadas com a amostra de luma correspondentes (como mostrado na fig. 6D, ver o Tipo de amostra de croma 0, 1, 3 ou 5, como sinalizado por um flag(tal como, sps_cclm_colocated_chroma_flag sendo o valor de 0) no fluxo de bits), a Tabela 4 é usada. De outro modo, a Tabela 2 ou Tabela 3 é usada para o bloco atual.
[0302] Uma determinação do uso da Tabela 2 ou Tabela 3 pode ser feita com base no número de amostras de luma no bloco atual. Por exemplo, para blocos compreendendo 64 amostras ou menos, nenhuma filtragem de croma é aplicada quando nenhuma subamostragem de croma é realizada (assim, a Tabela 2 é selecionada para o uso). Por outro lado, quando o tamanho de bloco é maior do que 64 amostras, a Tabela 3 é usada para definir o filtro “F”. Deve ser observado que 64 é usado apenas como um exemplo, outros valores de limite para o número de amostras podem ser usados.
[0303] Em outra modalidade, o filtro F é selecionado, de acordo com informações indicando o formato de croma e o tipo de croma como mostrado nas tabelas 6 a 10. O tipo de croma especifica o deslocamento do componente de croma e é mostrado na Fig. 6D. Na Fig. 6D, para o Tipo de amostra de croma 2 e Tipo de amostra de croma 4, a amostra de croma subamostrada está colocalizada com a amostra de luma correspondente. Para os Tipos de amostra de croma 0, 1, 3 e 5, a amostra de croma subamostrada não está colocalizada com a amostra de luma correspondente. Nas tabelas 6 a 10, os filtros especificados na coluna “YUV 4:2:0” são usados no projeto anterior do projeto VVC. As colunas “YUV 4:2:2” e “YUV 4:4:4” definem os filtros que podem substituir os filtros definidos na coluna “YUV 4:2:0” quando um formato de croma correspondente é definido. Tabela 6. Associação de um filtro espacial F aos valores do formato de croma e tipo de croma, os tipos de croma são mostrados na Fig. 6D. Tipo de croma YUV 4:2:0 YUV 4:2:2 YUV 4:4:4
0 0 0  0 0 0  0 0 0  1 2 1 1 2 1 0 1 0        1 2 1 1 2 1 0 0 0
0 0 0  0 0 0  0 0 0  0 1 0  0 1 0  0 1 0        Tipo de croma 0 0 0 0 0 0 0 0 0 0 0 0 0  0 0 0  0 0 0  1 2 1 1 2 1 0 1 0        0 0 0 0 0 0 0 0 0
0 0 0  0 0 0  0 0 0  0 1 0  0 1 0  0 1 0        0 1 0 0 0 0 0 0 0
0 0 0  0 0 0  0 0 0  1 2 1 1 2 1 0 1 0        Tipo de croma 0 0 0 0 0 0 0 0 0 2 0 1 0  0 0 0  0 0 0  1 4 1 1 2 1 0 1 0        0 1 0 1 2 1 0 0 0
Tabela 7. Associação de um filtro espacial F aos valores do formato de croma e tipo de croma Tipo de croma YUV 4:2:0 YUV 4:2:2 YUV 4:4:4
0 0 0  0 0 0  0 1 0    1 2 1 1 4 1 1 2 1     1 2 1 1 2 1 0 1 0
0 0 0  0 0 0  0 0 0  0 1 0  0 1 0  0 1 0        Tipo de croma 0 0 0 0 0 0 0 0 0 0 0 0 0  0 0 0  0 0 0  1 2 1 1 2 1 0 1 0        0 0 0 0 0 0 0 0 0
0 0 0  0 0 0  0 0 0  0 1 0  0 1 0  0 1 0        0 1 0 0 0 0 0 0 0
0 0 0  0 0 0  0 0 0  1 2 1 1 2 1 0 1 0        Tipo de croma 0 0 0 0 0 0 0 0 0 2 0 1 0  0 0 0  0 1 0  1 4 1 1 2 1 1 4 1       0 1 0 1 2 1 0 1 0
Tabela 8. Associação de um filtro espacial F aos valores do formato de croma e tipo de croma Tipo de croma YUV 4:2:0 YUV 4:2:2 YUV 4:4:4
0 0 0  0 0 0  0 1 0  1 2 1 1 2 1 1 4 1       1 2 1 1 2 1 0 1 0
0 0 0  0 0 0  0 0 0  0 1 0  0 1 0  0 1 0        Tipo de croma 0 0 0 0 0 0 0 0 0 0 0 0 0  0 0 0  0 0 0  1 2 1 1 2 1 0 1 0        0 0 0 0 0 0 0 0 0
0 0 0  0 0 0  0 0 0  0 1 0  0 1 0  0 1 0        0 1 0 0 1 0 0 0 0
0 0 0  0 0 0  0 0 0    1 2 1 0 1 0  1 2 1     Tipo de croma 0 0 0 0 0 0 0 0 0 2 0 1 0  0 1 0  0 1 0  1 4 1 1 4 1 1 4 1       0 1 0 0 1 0 0 1 0
Tabela 9. Associação de um filtro espacial F aos valores do formato de croma e tipo de croma Tipo de croma YUV 4:2:0 YUV 4:2:2 YUV 4:4:4
0 0 0  0 0 0  0 1 0  Tipo de croma 1 2 1 1 2 1 1 4 1 0       1 2 1 1 2 1 0 1 0
0 0 0  0 0 0  0 0 0  0 1 0  0 1 0  0 1 0        0 0 0 0 1 0 0 0 0
0 0 0  0 0 0  0 0 0  1 2 1 1 2 1 0 1 0        0 0 0 1 2 1 0 0 0
0 0 0  0 0 0  0 0 0  0 1 0  0 1 0  0 1 0        0 1 0 0 1 0 0 0 0
0 0 0  0 0 0  0 0 0  1 2 1 1 2 1 0 1 0        Tipo de croma 0 0 0 1 2 1 0 0 0 2 0 1 0  0 1 0  0 1 0  1 4 1 1 4 1 1 4 1       0 1 0 0 1 0 0 1 0
Tabela 10. Associação de um filtro espacial F aos valores do formato de croma e tipo de croma Tipo de YUV 4:2:0 YUV 4:2:2 YUV 4:4:4 croma
0 0 0  0 1 0  0 1 0  1 2 1 1 4 1 1 4 1       1 2 1 0 1 0 0 1 0
0 0 0  0 0 0  0 0 0  0 1 0  0 1 0  0 1 0        Tipo de 0 0 0 0 0 0 0 0 0 croma 0 0 0 0  0 1 0  0 1 0  1 2 1 1 4 1 1 4 1       0 0 0 0 1 0 0 1 0
0 0 0  0 1 0  0 1 0  0 1 0  1 4 1 1 4 1       0 1 0 0 1 0 0 1 0
0 0 0  0 1 0  0 1 0  1 2 1 1 4 1 1 4 1       Tipo de 0 0 0 0 1 0 0 1 0 croma 2 0 1 0  0 1 0  0 1 0  1 4 1 1 4 1 1 4 1       0 1 0 0 1 0 0 1 0 0 0 0  0 1 0    0 0 0
[0304] O filtro pode ser implementado de diferentes maneiras, incluindo uma operação de bypass de filtro (isto é, ajustando o valor de saída para o valor de entrada, isto é, o filtro é um filtro bypass). Alternativamente, pode ser implementado usando as operações de adição e deslocamento similares, isto é: 1 1
N N Rec' L [ x, y ] = ( ∑ ∑ Rec' L [ x + i, y + j ] ⋅ F [i + 1, j + 1] + ) >> log 2 ( N ) = ( N + ) >> log 2 ( N ) i = −1 j = −1 2 2
[0305] De acordo com as alterações sugeridas, os detalhes de um processo para realizar predição intra usando um modelo linear (predição de componente cruzado de um bloco), de acordo com uma modalidade exemplar apresentada neste relatório são descritos como a seguir no formato de uma parte da especificação do projeto VVC:
3. As amostras de luma colocalizadas subamostradas pDsY[x][y] com x = 0..nTbW − 1, y = 0..nTbH − 1 são derivadas como a seguir:
[0306] Se sps_cclm_colocated_chroma_flag for igual a 1, o seguinte é aplicado: pDsY[x][y] com x = 1..nTbW − 1, y = 1..nTbH − 1 é derivado como a seguir: pDsY[x][y] = (F[1][0] * pY[SubWidthC * x][SubHeightC * y − 1] + + F[0][1] * pY[SubWidthC * x − 1][SubHeightC * y] + + F[1][1] * pY[SubWidthC * x][SubHeightC * y] + + F[2][1] * pY[SubWidthC * x + 1][SubHeightC * y] + + F[1][2] * pY[SubWidthC * x][SubHeightC * y + 1] + 4) >> 3
[0307] Se availL for igual a TRUE, pDsY[0][y] com y = 1..nTbH − 1 é derivado como a seguir: pDsY[0][y] = (F[1][0] * pY[0][SubHeightC * y − 1] + + F[0][1] * pY[− 1][SubHeightC * y] + + F[1][1] * pY[0][SubHeightC * y] + + 2) >> 2
[0308] De outro modo, pDsY[0][y] com y = 1..nTbH − 1 é derivado como a seguir: pDsY[0][y] = (2 * F[1][0] * pY[0][SubHeightC * y − 1] + + F[1][1] * pY[0][SubHeightC * y] + + 2) >> 2
[0309] Se availT for igual a TRUE, pDsY[x][0] com x = 1..nTbW − 1 é derivado como a seguir: pDsY[x][0] = (F[1][0] * pY[SubWidthC * x][ − 1] + + F[0][1] * pY[SubWidthC * x − 1][0] + + F[1][1] * pY[SubWidthC * x][0] + + F[2][1] * pY[SubWidthC * x + 1][0] + + F[1][2] * pY[SubWidthC * x][ 1] + 4) >> 3
[0310] De outro modo, pDsY[x][0] com x = 1..nTbW − 1 é derivado como a seguir: pDsY[x][0] = (F[1][0] * pY[SubWidthC * x][ − 1] + + F[0][1] * pY[SubWidthC * x − 1][0] + + F[1][1] * pY[SubWidthC * x][0] + + F[2][1] * pY[SubWidthC * x + 1][0] + + F[1][2] * pY[SubWidthC * x][ 1] + 4) >> 3
[0311] Se availL for igual a TRUE e availT for igual a TRUE, pDsY[0][0] é derivado como a seguir: pDsY[0][0] = (F[1][0] * pY[0][ − 1] + + F[0][1] * pY[− 1][0] + + F[1][1] * pY[0][0] +
+ F[2][1] * pY[1][0] + + F[1][2] * pY[0][ 1] + 4) >> 3
[0312] De outro modo, se availL for igual a TRUE e availT for igual a FALSE, pDsY[0][0] é derivado como a seguir: pDsY[0][0] = (F[0][1] * pY[− 1][0] + + F[1][1] * pY[0][0] + + F[2][1] * pY[1][0] + + 2) >> 2
[0313] De outro modo, se availL for igual a FALSE e availT for igual a TRUE, pDsY[0][0] é derivado como a seguir: pDsY[0][0] = (pY[0][−1] + 2 * pY[0][0] + pY[0][1] + 2) >> 2 (8 - 169)
[0314] De outro modo (availL é igual a FALSE e availT é igual a FALSE), pDsY[0][0] é derivado como a seguir: pDsY[0][0] = pY[0][0] (8 - 170)
[0315] De outro modo, o seguinte é aplicado: pDsY[x][y] com x = 1..nTbW − 1, y = 0..nTbH − 1 é derivado como a seguir: pDsY[x][y] = (F[0][1] * pY[SubWidthC * x − 1][SubHeightC * y] + + F[0][2] * pY[SubWidthC * x − 1][SubHeightC * y + 1] + + F[1][1] * pY[SubWidthC * x][SubHeightC * y] + + F[1][2] * pY[SubWidthC * x][SubHeightC * y + 1] + + F[2][1] * pY[SubWidthC * x + 1][SubHeightC * y] + + F[2][2] * pY[SubWidthC * x +1][SubHeightC * y + 1] + 4) >> 3
[0316] Se availL for igual a TRUE, pDsY[0][y] com y = 0..nTbH − 1 é derivado como a seguir: pDsY[0][y] = (F[0][1] * pY[− 1][SubHeightC * y] + + F[0][2] * pY[− 1][SubHeightC * y + 1] + + F[1][1] * pY[0][SubHeightC * y] + + F[1][2] * pY[0][SubHeightC * y + 1] + + F[2][1] * pY[1][SubHeightC * y] + + F[2][2] * pY[1][SubHeightC * y + 1] + 4) >> 3
[0317] De outro modo, pDsY[0][y] com y = 0..nTbH − 1 é derivado como a seguir: pDsY[0][y] = (F[1][1] * pY[0][SubHeightC * y] + + F[1][2] * pY[0][SubHeightC * y + 1] + 1) >> 1
[0318] O filtro F[i][j] mencionado na descrição acima é especificado, de acordo com as modalidades apresentadas neste relatório.
[0319] Os detalhes de um processo para realizar a predição intra usando um modelo linear (predição de componente cruzado de um bloco), de acordo com outra modalidade exemplar são descritos como a seguir no formato de uma parte da especificação do projeto VVC:
8.4.4.2.8 Especificação do modo de predição intra INTRA_LT_CCLM, INTRA_L_CCLM e INTRA_T_CCLM
[0320] As entradas para este processo são: o modo de predição intra predModeIntra, uma localização de amostra (xTbC, yTbC) da amostra superior esquerda do bloco de transformada atual em relação à amostra da imagem atual superior esquerda, uma variável nTbW que especifica a largura do bloco de transformada, uma variável nTbH que especifica a altura do bloco de transformada, as amostras de croma vizinhas p[x][y], com x = −1, y = 0..2 * nTbH − 1 e x = 0..2 * nTbW − 1, y = − 1. As saídas para este processo são amostras preditas predSamples[x][y], com x = 0..nTbW − 1, y = 0..nTbH − 1.
[0321] A localização de luma atual (xTbY, yTbY) é derivada como a seguir:
[0322] (xTbY, yTbY) = (xTbC << (SubWidthC − 1), yTbC << (SubHeightC - 1))(8 - 156)
[0323] As variáveis availL, availT e availTL são derivadas como a seguir:
[0324] A disponibilidade do processo de derivação de amostras vizinhas para um bloco é invocada com a localização de croma atual (xCurr, yCurr) definida como igual a (xTbC, yTbC) e a localização de croma vizinha (xTbC − 1, yTbC) como entrada, e a saída é atribuída a availL.
[0325] A disponibilidade do processo de derivação de amostras vizinhas superiores para um bloco é invocada com a localização de croma atual (xCurr, yCurr) definida como igual a (xTbC, yTbC) e a localização de croma vizinha (xTbC, yTbC − 1) como entrada, e a saída é atribuída a availT.
[0326] A disponibilidade processo de derivação de amostras vizinhas superiores esquerdas para um bloco é invocada com a localização de croma atual (xCurr, yCurr) definida como igual a (xTbC, yTbC) e a localização de croma vizinha (xTbC − 1, yTbC − 1) como entrada, e a saída é atribuída a availTL.
[0327] O número de amostras de croma vizinhas superiores direitas numTopRight é derivado como a seguir:
[0328] A variável numTopRight é definido como igual a 0 e availTR é definido como igual a TRUE.
[0329] Quando predModeIntra é igual a INTRA_T_CCLM, o seguinte é aplicado para x = nTbW..2 * nTbW − 1 até que availTR seja igual a FALSE ou x seja igual a 2 * nTbW − 1:
[0330] O processo de derivação de disponibilidade para um bloco é invocado com a localização de croma atual (xCurr, yCurr) definida como igual a (xTbC , yTbC) e a localização de croma vizinha (xTbC + x, yTbC − 1) como entrada, e a saída é atribuída a availableTR
[0331] Quando availableTR é igual a TRUE, numTopRight é incrementado por um.
[0332] O número de amostras de croma vizinhas inferiores esquerdas disponíveis numLeftBelow é derivado como a seguir:
[0333] A variável numLeftBelow é definida como igual a 0 e availLB é definido igual a TRUE.
[0334] Quando predModeIntra é igual a INTRA_L_CCLM, o seguinte é aplicado para y = nTbH..2 * nTbH − 1 até que availLB seja igual a FALSE ou y seja igual a 2 * nTbH − 1:
[0335] O processo de derivação de disponibilidade para um bloco é invocado com a localização de croma atual (xCurr, yCurr) definida como igual a (xTbC , yTbC) e a localização de croma vizinha (xTbC − 1, yTbC + y) como entrada, e a saída é atribuída a availableLB
[0336] Quando availableLB é igual a TRUE, numLeftBelow é incrementado por um.
[0337] O número de amostras de croma vizinhas disponíveis em numTopSamp superior e superior direito e o número de amostras de croma vizinhas disponíveis no nLeftSamp esquerdo e inferior esquerdo são derivados como a seguir:
[0338] Se predModeIntra for igual a INTRA_LT_CCLM, o seguinte é aplicado: numSampT = availT ? nTbW : 0 numSampL = availL ? nTbH : 0
[0339] De outro modo, o seguinte é aplicado: numSampT = (availT && predModeIntra = = INTRA_T_CCLM) ? (nTbW + numTopRight) : 0 numSampL = (availL && predModeIntra = = INTRA_L_CCLM) ? (nTbH + numLeftBelow) : 0
[0340] A variável bCTUboundary é derivada como a seguir: bCTUboundary = (yTbC & (1 << (CtbLog2SizeY − 1) − 1) = = 0) ? TRUE : FALSE.
[0341] As amostras de predição predSamples[x][y] com x = 0..nTbW − 1, y = 0..nTbH − 1 são derivadas como a seguir:
[0342] Se tanto numSampL quanto numSampT forem iguais a 0, o seguinte é aplicado: predSamples[x][y] = 1 << (BitDepthC − 1)
[0343] De outro modo, as seguintes etapas ordenadas aplicam-se:
[0344] As amostras de luma colocalizadas a pY[x][y] com x = 0..nTbW * SubWidthC − 1, y= 0..nTbH * SubHeightC − 1 são definidas como iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nas localizações (xTbY + x, yTbY + y).
[0345] As amostras de luma vizinhas amostras pY[x][y] são derivadas como a seguir:
[0346] Quando numSampL é maior do que 0, as amostras de luma esquerdas vizinhas pY[x][y] com x = −1..−3, y = 0.. SubHeightC * numSampL − 1, são definidas como iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nas localizações (xTbY + x , yTbY +y).
[0347] Quando numSampT é maior do que 0, as amostras de luma superiores vizinhas pY[x][y] com x = 0.. SubWidthC * numSampT − 1, y = −1, −2, são definidas iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nas localizações (xTbY+ x, yTbY + y).
[0348] Quando availTL é igual a TRUE, as amostras de luma superiores esquerdas 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 nas localizações (xTbY+ x, yTbY + y).
[0349] As amostras de luma colocalizadas subamostradas pDsY[x][y] com x = 0..nTbW − 1, y = 0..nTbH − 1 são derivadas como a seguir:
[0350] Se SubWidthC==1 e SubHeightC==1, o seguinte é aplicado: pDsY[x][y] com x=1..nTbW-1, y=1..nTbH - 1 é derivado como a seguir: pDstY[x][y] = pY[x][y] //Notas explicativas: Nenhuma amostragem reduzida é necessária, isto é, nenhuma filtragem é realizada quando 4:4:4 (se tanto SubWidthC quanto SubHeightC forem iguais a 1), e também pode ser interpretado como um filtro com coeficiente [1], isto é, como um filtro bypass//
[0351] De outro modo, o seguinte é aplicado para um conjunto de filtros {F3, F5, F6}.//Notas explicativas: Neste relatório, são definidos os coeficientes dos filtros quando 4:2:0 ou 4:2:2 (se tanto SubWidthC quanto SubHeightC não forem iguais à 1), em que F2 pertencem tanto ao primeiro e segundo conjuntos dos filtros de amostragem reduzida// F3[0] = 1, F3[1] = 2, F3[2] = 1 Se SubWidthC==2 e SubHeightC==2 F5[0][1] = 1, F5[1][1] = 4, F3[2][1] = 1, F5[1][0] = 1, F5[1][2] = 1 F6[0][1] = 1, F6[1][1] = 2, F6[2][1] = 1, F6[0][2] = 1, F6[1][2] = 2, F6[2][2] = 1, F2[0] = 1, F2[1] = 1
[0352] De outro modo, F5[0][1] = 0, F5[1][1] = 8, F3[2][1] = 0, F5[1][0] = 0, F5[1][2] = 0 F6[0][1] = 2, F6[1][1] = 4, F6[2][1] = 2, F6[0][2] = 0, F6[1][2] = 0, F6[2][2] = 0, F2[0] = 2, F2[1] = 0
[0353] Se sps_cclm_colocated_chroma_flag for igual a 1, o seguinte é aplicado:
pDsY[x][y] com x = 1..nTbW − 1, y = 1..nTbH − 1 é derivado como a seguir ajustando F para ser F5: pDsY[x][y] = (F[1][0] * pY[SubWidthC * x][SubHeightC * y − 1] + + F[0][1] * pY[SubWidthC * x − 1][SubHeightC * y] + + F[1][1] * pY[SubWidthC * x][SubHeightC * y] + + F[2][1] * pY[SubWidthC * x + 1][SubHeightC * y] + + F[1][2] * pY[SubWidthC * x][SubHeightC * y + 1] + 4) >> 3 //Notas explicativas: F5 corresponde ao primeiro filtro de amostragem reduzida reivindicado // //
[0354] Se availL for igual a TRUE, pDsY[0][y] com y = 1..nTbH − 1 é derivado como a seguir para F definido como F5: pDsY[0][y] = (F[1][0] * pY[0][SubHeightC * y − 1] + + F[0][1] * pY[− 1][SubHeightC * y ] + + F[1][1] * pY[0][SubHeightC * y] + + F[2][1] * pY[1] [SubHeightC * y ] + + F[1][2] * pY[0][SubHeightC * y + 1] + 4) >> 3
[0355] De outro modo, pDsY[0][y] com y = 1..nTbH − 1 é derivado como a seguir para F definido como F3: pDsY[0][y] = (F[0] * pY[0][SubHeightC * y − 1] + + F[1] * pY[0][SubHeightC * y ] + + F[2] * pY[0][SubHeightC * y + 1] + + 2) >> 2
[0356] Se availT for igual a TRUE, pDsY[x][0] com x = 1..nTbW − 1 é derivado como a seguir para F definido como F5: pDsY[x][0] = (F[1][0] * pY[SubWidthC * x][ − 1] + + F[0][1] * pY[SubWidthC * x − 1][0] + + F[1][1] * pY[SubWidthC * x][0] + + F[2][1] * pY[SubWidthC * x + 1][0] + + F[1][2] * pY[SubWidthC * x][ 1] + 4) >> 3
[0357] De outro modo, pDsY[x][0] com x = 1..nTbW − 1 é derivado como a seguir para F definido como F3: pDsY[x][0] = = (F[0] * pY[SubWidthC * x − 1][0] + + F[1] * pY[SubWidthC * x][0] + + F[2] * pY[SubWidthC * x + 1][0] + 2) >> 2
[0358] Se availL for igual a TRUE e availT for igual a TRUE, pDsY[0][0] é derivado como a seguir para F definido como F5: pDsY[0][0] = (F[1][0] * pY[0][ − 1] + + F[0][1] * pY[− 1][0] + + F[1][1] * pY[0][0] + + F[2][1] * pY[1][0] + + F[1][2] * pY[0][ 1] + 4) >> 3
[0359] De outro modo, se availL for igual a TRUE e availT for igual a FALSE, pDsY[0][0] é derivado como a seguir para F definido como F3: pDsY[0][0] = (F[0] * pY[− 1][0] + + F[1] * pY[0][0] + + F[2] * pY[1][0] + + 2) >> 2
[0360] De outro modo, se availL for igual a FALSE e availT for igual a TRUE, pDsY[0][0] é derivado como a seguir para F definido como F3: pDsY[0][0] = (F[0] * pY[0][-1] + + F[1] * pY[0][0] ++ F[2] * pY[0][1] + + 2) >> 2
[0361] De outro modo (availL é igual a FALSE e availT é igual a FALSE), pDsY[0][0] é derivado como a seguir: pDsY[0][0] = pY[0][0]
[0362] De outro modo, o seguinte é aplicado: pDsY[x][y] com x = 1..nTbW − 1, y = 0..nTbH − 1 é derivado como a seguir para F definido como F6: pDsY[x][y] =
(F[0][1] * pY[SubWidthC * x − 1][SubHeightC * y] + + F[0][2] * pY[SubWidthC * x − 1][SubHeightC * y + 1] + + F[1][1] * pY[SubWidthC * x][SubHeightC * y] + + F[1][2] * pY[SubWidthC * x][SubHeightC * y + 1] + + F[2][1] * pY[SubWidthC * x + 1][SubHeightC * y] + + F[2][2] * pY[SubWidthC * x +1][SubHeightC * y + 1] + 4) >> 3
[0363] Se availL for igual a TRUE, pDsY[0][y] com y = 0..nTbH − 1 é derivado como a seguir para F definido como F6: pDsY[0][y] = (F[0][1] * pY[− 1][SubHeightC * y] + + F[0][2] * pY[− 1][SubHeightC * y + 1] + + F[1][1] * pY[0][SubHeightC * y] + + F[1][2] * pY[0][SubHeightC * y + 1] + + F[2][1] * pY[1][SubHeightC * y] + + F[2][2] * pY[1][SubHeightC * y + 1] + 4) >> 3
[0364] De outro modo, pDsY[0][y] com y = 0..nTbH − 1 é derivado como a seguir para F definido como F2: pDsY[0][y] = (F[0] * pY[0][SubHeightC * y] + + F[1] * pY[0][SubHeightC * y + 1] + 1) >> 1 //A etapa 3 é uma implementação para obter as amostras de luma de amostragem reduzida de amostras de luma reconstruídas em um bloco de luma do bloco atual usando filtros de amostragem reduzida respectivos.//
[0365] Quando numSampL é maior do que 0, as amostras de luma esquerdas vizinhas subamostradas pLeftDsY[y] com y = 0..numSampL − 1 são derivadas como a seguir:
[0366] Se SubWidthC==1 e SubHeightC==1, o seguinte é aplicado: pLeftDsY[y] com y=0..nTbH - 1 é derivado como a seguir:pLeftDsY[y] = pY[-1][y]
[0367] De outro modo, o seguinte é aplicado: Se sps_cclm_colocated_chroma_flag for igual a 1, o seguinte é aplicado: pLeftDsY[y] com y = 1..nTbH − 1 é derivado como a seguir para F definido como F5:
pLeftDsY[y] = = F[1][0] * pY[− SubWidthC][SubHeightC * y − 1] + + F[0][1] * pY[−1 − SubWidthC ][SubHeightC * y] + + F[1][1] * pY[− SubWidthC ][SubHeightC * y] + + F[2][1] * pY[1 − SubWidthC][SubHeightC * y] + + F[1][2] * pY[− SubWidthC][SubHeightC * y + 1] + 4) >> 3
[0368] Se availTL for igual a TRUE, pLeftDsY[0] é derivado como a seguir para F definido como F5: pLeftDsY[0] = = F[1][0] * pY[− SubWidthC][ − 1] + + F[0][1] * pY[−1 − SubWidthC ][0] + + F[1][1] * pY[− SubWidthC ][0] + + F[2][1] * pY[1 − SubWidthC][0] + + F[1][2] * pY[− SubWidthC][1] + 4) >> 3
[0369] De outro modo, pDsY[x][0] com x = 1..nTbW − 1 é derivado como a seguir para F definido como F3: pLeftDsY [0] = (F[0] * pY[−1 − SubWidthC][0] + + F[1] * pY[− SubWidthC ][0] + + F[2] * pY[1 − SubWidthC][0] + + 2) >> 2
[0370] De outro modo, o seguinte é aplicado para F definido como F6: pLeftDsY[y] = = (F[0][1] * pY[−1− SubWidthC][SubHeightC * y] + + F[0][2] * pY[−1 − SubWidthC][SubHeightC * y + 1] + + F[1][1] * pY[ − SubWidthC][SubHeightC * y] + + F[1][2] * pY[ − SubWidthC][SubHeightC * y + 1] + + F[2][1] * pY[1 − SubWidthC][SubHeightC * y] + + F[2][2] * pY[1 − SubWidthC][SubHeightC * y + 1] + 4) >> 3 //Notas explicativas: As etapas 4 e 5 são uma implementação para obter as amostras de referência de luma de amostragem reduzida de amostras de luma vizinhas selecionadas do bloco de luma usando filtros de amostragem reduzida respectivos.//
[0371] Quando numSampT é maior do que 0, as amostras de luma superiores vizinhas subamostradas pTopDsY[x] com x = 0..numSampT − 1 são especificadas como a seguir:
[0372] Se SubWidthC==1 e SubHeightC==1, o seguinte é aplicado: pTopDsY[x] = pY[x][-1] for x=0..numSampT-1
[0373] De outro modo, o seguinte é aplicado: Se sps_cclm_colocated_chroma_flag for igual a 1, o seguinte é aplicado: pTopDsY[x] com x = 1..numSampT − 1 é derivado como a seguir: Se bCTUboundary for igual a FALSE, o seguinte é aplicado para F definido como F5: pTopDsY[x] = = (F[1][0] * pY[SubWidthC * x][− 1 − SubHeightC] + + F[0][1] * pY[SubWidthC * x − 1][− SubHeightC] + + F[1][1] * pY[SubWidthC * x][− SubHeightC] + + F[2][1] * pY[SubWidthC * x + 1][− SubHeightC] + + F[1][2] * pY[SubWidthC * x][1 − SubHeightC] + 4) >> 3
[0374] De outro modo (bCTUboundary é igual a TRUE), o seguinte é aplicado para F definido como F3: pTopDsY[x] = = (F[0] * pY[SubWidthC * x − 1 ][−1] + + F[1] * pY[SubWidthC * x ][−1] + + F[2] * pY[SubWidthC * x + 1][−1] + + 2) >> 2
[0375] pTopDsY[0] é derivado como a seguir:
[0376] Se availTL for igual a TRUE e bCTUboundary for igual a FALSE, o seguinte é aplicado para F definido como F5: pTopDsY[0] = = F[1][0] * pY[ − 1] [− 1− SubHeightC] + + F[0][1] * pY[− 1] [ − SubHeightC] + + F[1][1] * pY[0] [ − SubHeightC] + + F[2][1] * pY[1] [ − SubHeightC] + + + F[1][2] pY[− 1] [1 − SubHeightC] + + 4) >> 3
[0377] De outro modo, se availTL for igual a TRUE e bCTUboundary for igual a TRUE, o seguinte é aplicado para F definido como F3:
pTopDsY[0] = = (F[0] * pY[−1][−1] + + F[1] * pY[0][−1] + + F[2] * pY[1][−1] + + 2) >> 2
[0378] De outro modo, se availTL for igual a FALSE e bCTUboundary for igual a FALSE, o seguinte é aplicado para F definido como F3: pTopDsY[0] = = (F[0] * pY[0][−1] + + F[1] * pY[0][−2] + + F[2] * pY[0][−1] + + 2) >> 2
[0379] De outro modo (availTL é igual a FALSE e bCTUboundary é igual a TRUE), o seguinte é aplicado: pTopDsY[0] = pY[0][−1] De outro modo, o seguinte é aplicado: pTopDsY[x] com x = 1..numSampT − 1 é derivado como a seguir: Se bCTUboundary for igual a FALSE, o seguinte é aplicado para F definido como F6: pTopDsY[x] = = (F[0][1] * pY[SubWidthC * x − 1][−2] + + F[0][2] * pY[SubWidthC * x − 1][−1] + + F[1][1] * pY[ SubWidthC * x][−2] + + F[1][2] * pY[ SubWidthC * x][ −1] + + F[2][1] * pY[ SubWidthC * x + 1][ −2] + + F[2][2] * pY[ SubWidthC * x + 1][ −1] + 4) >> 3
[0380] De outro modo (bCTUboundary é igual a TRUE), o seguinte é aplicado para F definido como F3: pTopDsY[x] = = (F[0] * pY [SubWidthC * y − 1] [− 1] + + F[1] * pY[SubWidthC * y] [− 1] + + F[2] * pY[SubWidthC * y + 1] [− 1] + + 2) >> 2 pTopDsY[0] é derivado como a seguir:
Se availTL for igual a TRUE e bCTUboundary for igual a FALSE, o seguinte é aplicado para F definido como F6: pTopDsY[0] = = (F[0][1] * pY[− 1][−2] + + F[0][2] * pY[− 1][−1] + + F[1][1] * pY[ 0][−2] + + F[1][2] * pY[ 0][ −1] + + F[2][1] * pY[ 1][ −2] + + F[2][2] * pY[ 1][ −1] + 4) >> 3
[0381] De outro modo, se availTL é igual a TRUE e bCTUboundary é igual a TRUE, o seguinte é aplicado para F definido como F3: pTopDsY[0] = = (F[0] * pY [− 1] [− 1] + + F[1] * pY[0] [− 1] + + F[2] * pY[1] [− 1] + + 2) >> 2
[0382] De outro modo, se availTL for igual a FALSE e bCTUboundary for igual a FALSE, o seguinte é aplicado para F definido como F2: pTopDsY[0] = (F[1] * pY[0][−2] + F[0] * pY[0][−1] + 1) >> 1
[0383] De outro modo (availTL é igual a FALSE e bCTUboundary é igual a TRUE), o seguinte é aplicado: pTopDsY[0] = pY[0][−1] //Notas explicativas: As etapas 4 e 5 são uma implementação para obter amostras de referência de luma de amostragem reduzida das amostras de luma vizinhas selecionadas do bloco de luma aplicando-se respectivo filtro de amostragem reduzida.//
[0384] As variáveis nS, xS, yS são derivadas como a seguir:
[0385] Se predModeIntra for igual a INTRA_LT_CCLM, o seguinte é aplicado: nS = ((availL && availT) ? Min(nTbW, nTbH) : (availL ? nTbH : nTbW)) xS = 1 << (((nTbW > nTbH) && availL && availT) ? (Log2(nTbW) − L og2(nTbH)) : 0) (8 - 192) yS = 1 << (((nTbH > nTbW) && availL && availT) ? (Log2(nTbH) − Lo g2(nTbW)) : 0) (8 - 193)
[0386] De outro modo, se predModeIntra for igual a INTRA_L_CCLM, o seguinte é aplicado: nS = numSampL xS = 1 yS = 1
[0387] De outro modo (predModeIntra é igual a INTRA_T_CCLM), o seguinte é aplicado: nS = numSampT xS = 1 yS = 1 As variáveis minY, maxY, minC e maxC são derivadas como a seguir: A variável minY é definida como igual a 1 << (BitDepthY) + 1 e a variável maxY é definida como igual a −1. Se availT for igual a TRUE, as variáveis minY, maxY, minC e maxC com x = 0..nS − 1 são derivadas como a seguir: Se minY for maior do que pTopDsY[x * xS], o seguinte é aplicado: minY = pTopDsY[x * xS] minC = p[x * xS][−1] Se maxY for menor do que pTopDsY[x * xS], o seguinte é aplicado: maxY = pTopDsY[x * xS] maxC = p[x * xS][−1] Se availL for igual a TRUE, as variáveis minY, maxY, minC e maxC com y = 0..nS − 1 são derivadas como a seguir: Se minY for maior do que pLeftDsY[y * yS], o seguinte é aplicado: minY = pLeftDsY[y * yS] minC = p[−1][y * yS] Se maxY for menor do que pLeftDsY[y * yS], o seguinte é aplicado: maxY = pLeftDsY[y * yS] maxC = p[−1][y * yS] As variáveis a, b e k são derivadas como a seguir: Se numSampL for igual a 0 e numSampT for igual a 0, o seguinte é aplicado: k=0 a=0 b = 1 << (BitDepthC − 1) De outro modo, o seguinte é aplicado: diff = maxY − minY Se diff não for igual a 0, o seguinte é aplicado: diffC = maxC − minC x = Floor(Log2(diff)) normDiff = ((diff << 4) >> x) & 15 x += (normDiff != 0) ? 1 : 0 y = Floor(Log2(Abs (diffC))) + 1 a = (diffC * (divSigTable[normDiff] | 8) + 2y − 1) >> y k = ((3 + x − y) < 1) ? 1 : 3 + x − y a = ((3 + x − y) < 1) ? Sign(a) * 15 : a b = minC − ((a * minY) >> k) onde divSigTable[] é especificado como a seguir: divSigTable[] = {0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0}
[0388] De outro modo (diff é igual a 0), o seguinte é aplicado: k=0 a=0 b = minC //Notas explicativas: As etapas 6 a 8 são uma implementação para determinar um ou mais coeficientes de modelo linear com base nas amostras de referência de luma de amostragem reduzida das amostras de luma vizinhas e em amostras de referência de croma selecionadas que correspondem às amostras de referência de luma de amostragem reduzida; em particular, a determinação de coeficientes de modelo linear é fundamentada em minY, maxY, minC e maxC.//
[0389] As amostras de predição predSamples[x][y] com x = 0..nTbW − 1, y = 0.. nTbH − 1 são derivadas como a seguir: predSamples[x][y] = Clip1C(((pDsY[x][y] * a) >> k) + b) //Notas explicativas: A etapa 9 é uma implementação para obter amostras de predição de um bloco de croma que corresponde ao bloco de luma com base nos coeficientes de modelo linear e nas amostras de luma de amostragem reduzida das amostras de luma reconstruídas no bloco de luma.//
[0390] Deve ser observado que na presente revelação, para o conjunto de filtros {F2, F3, F5, F6}, o número de um dígito que segue “F” é um índice usado para representar diferentes filtros dentro de um conjunto de filtros. O filtro é definido por um ou mais coeficientes de filtro a serem aplicados às amostras correspondente. Por exemplo, se um ou mais coeficientes de filtro de amostragem reduzida a serem aplicados às amostras correspondentes em F3 forem iguais a um ou mais coeficientes de filtro de amostragem reduzida a serem aplicados às amostras correspondentes em F2, pode ser entendido que o F3 e o F2 são o mesmo filtro; tal como, se F3[0] = 1, F3[1] = 2, F3[2] = 1 e F2[0] = 1, F2[1] = 2, F2[2] = 1, então F3=F2.
[0391] Por exemplo, se um ou mais coeficientes de filtro de amostragem reduzida a serem aplicados às amostras correspondentes em F5 forem diferentes de um ou mais coeficientes de filtro de amostragem reduzida a serem aplicados às amostras correspondentes em F5, pode ser entendido que o F5 e o F5 são filtros diferentes, até mesmo o nome dos dois são iguais; tais como, se F5[0][1] = 1, F5[1][1] = 4, F 5 [2][1] = 1, F5[1][0] = 1, F5[1][2] = 1 e F5[0][1] = 0, F5[1][1] = 8, F5[2][1] = 0, F5[1][0] = 0, F5[1][2] = 0, então F5≠F5. .
[0392] Deve ser observado que há um filtro com coeficiente [1], isto é, como um filtro bypass, filtro não separável 1D (F[i]) e filtro não separável 2D (F[i][j]) na presente revelação.
[0393] Outra modalidade descreve o método para derivar os parâmetros CCLM com no máximo quatro amostras de croma vizinhas e suas amostras de luma de amostragem reduzida correspondentes.
[0394] Suponha que as dimensões atuais de bloco de croma são W × H, então W’ e H’ são definidos como W’ = W, H’ = H quando modo LM é aplicado (os modelos superiores esquerdos são usados no modo LM); W’ = W + H quando modo LM-A é aplicado (apenas o modelo superior é usado no modo LM-A); H’ = H + W quando modo LM-L é aplicado (apenas o modelo esquerdo é usado no modo LM-L);
[0395] As amostras vizinhas acima (isto é, amostras de croma vizinhas que estão acima do bloco atual) são denotadas como S[0, -1]…S[W’-1, -1] e as amostras vizinhas esquerda (isto é, as amostras de croma vizinhas que estão à esquerda do bloco atual) são denotadas como S[-1, 0]…S[-1, H’-1]. Neste relatório, S[x,y] denota a amostra na posição (x,y). (x,y) é medido em relação à amostra superior esquerda do bloco atual (isto é, a amostra superior esquerda do bloco é marcada como (0,0)). Em seguida, as quatro amostras de croma vizinhas usadas para derivar os parâmetros CCLM podem ser especificadas como (correspondentemente, as posições das quatro amostras de luma vizinhas subamostradas de amostras de luma vizinhas selecionadas são indicadas por): S[W’/4, -1], S[3W’/4, -1], S[-1, H’/4], S[-1, 3H’/4] quando modo LM é aplicado ambas as amostras vizinhas acima e à esquerda estão disponíveis; S[W’/8, -1], S[3W’/8, -1], S[5W’/8, -1], S[7W’/8, -1] quando modo LM- A é aplicado ou apenas as amostras vizinhas acima estão disponíveis; S[-1, H’/8], S[-1, 3H’/8], S[-1, 5H’/8], S[-1, 7H’/8] quando modo LM-L é aplicado ou apenas as amostras vizinhas esquerdas estão disponíveis;
[0396] Cada uma das quatro amostras de luma vizinhas subamostradas é obtida aplicando-se o filtro de amostragem reduzida respectivo em uma parte ou todas as amostras de luma vizinhas selecionadas. As quatro amostras de luma vizinhas subamostradas correspondentes às quatro amostras de croma vizinhas acima selecionadas são comparadas quatro vezes para encontrar dois valores menores: x0A e x1A, e dois valores maiores: x0B e x1B, onde qualquer um de x0B e x1B é maior do que qualquer um de x0A e x1A. Seus valores de croma correspondente da amostra são denotados como y0A, y1A, y0B e y1B. Em seguida, xA, xB, yA e yB são derivados como: xA=(x0A + x1A +1)>>1; xB=(x0B + x1B +1)>>1; yA=(y0A + y1A +1)>>1; yB=(y0B + y1B +1)>>1.
[0397] Os detalhes de um processo para realizar a predição intra usando um modelo linear (predição de componente cruzado de um bloco), de acordo com outra modalidade exemplar apresentada neste relatório são descritos como a seguir no formato de uma parte da especificação do projeto VVC (a versão da seção 8.4.4.2.8 abaixo é diferente da versão da seção
8.4.4.2.8) acima:
8.4.4.2.8 Especificação do modo de predição intra INTRA_LT_CCLM, INTRA_L_CCLM e INTRA_T_CCLM
[0398] As entradas para este processo são:
o modo de predição intra predModeIntra, uma localização de amostra (xTbC, yTbC) da amostra superior esquerda do bloco de transformada atual em relação à amostra superior esquerda da imagem atual, uma variável nTbW que especifica o bloco de transformada largura, uma variável nTbH que especifica o bloco de transformada altura, amostras vizinhas de croma p[x][y], com x = −1, y = 0..2 * nTbH − 1 e x = 0..2 * nTbW − 1, y = − 1.
[0399] As saídas para este processo são amostras preditas predSamples[x][y], com x = 0..nTbW − 1, y = 0..nTbH − 1.
[0400] A localização de luma atual (xTbY, yTbY) é derivada como a seguir:
[0401] (xTbY, yTbY) = (xTbC << (SubWidthC − 1), yTbC << (SubHeightC - 1))
[0402] As variáveis availL, availT e availTL são derivadas como a seguir:
[0403] A disponibilidade do processo de derivação de amostras vizinhas esquerdas para um bloco é invocada com a localização de croma atual (xCurr, yCurr) definida como igual a (xTbC, yTbC) e a localização de croma vizinha (xTbC − 1, yTbC) como entrada, e a saída é atribuída a availL.
[0404] A disponibilidade do processo de derivação de amostras vizinhas superiores para um bloco é invocada com a localização de croma atual (xCurr, yCurr) definida como igual a (xTbC, yTbC) e a localização de croma vizinha (xTbC, yTbC − 1) como entrada, e a saída é atribuída a availT.
[0405] A disponibilidade do processo de derivação de amostras vizinhas superiores esquerdas para um bloco é invocada com a localização de croma atual (xCurr, yCurr) definida como igual a (xTbC, yTbC) e a localização de croma vizinha (xTbC − 1, yTbC − 1) como entrada, e a saída é atribuída a availTL.
[0406] O número de amostras de croma vizinhas superiores direitas disponíveis numTopRight é derivado como a seguir:
[0407] A variável numTopRight é definida como igual a 0 e availTR é definido como igual a TRUE.
[0408] Quando predModeIntra é igual a INTRA_T_CCLM, o seguinte é aplicado para x = nTbW..2 * nTbW − 1 até que availTR seja igual a FALSE ou x seja igual a 2 * nTbW − 1:
[0409] O processo de derivação de disponibilidade para um bloco é invocado com a localização de croma atual (xCurr, yCurr) definida como igual a (xTbC , yTbC) e a localização de croma vizinha (xTbC + x, yTbC − 1) como entrada, e a saída é atribuída a availableTR
[0410] Quando availableTR é igual a TRUE, numTopRight é incrementado por um.
[0411] O número de amostras de croma vizinhas inferiores esquerdas disponíveis numLeftBelow é derivado como a seguir:
[0412] A variável numLeftBelow é definida como igual a 0 e availLB é definido como igual a TRUE.
[0413] Quando predModeIntra é igual a INTRA_L_CCLM, o seguinte é aplicado para y = nTbH.,2 * nTbH − 1 até que availLB seja igual a FALSE ou y seja igual a 2 * nTbH − 1:
[0414] O processo de derivação de disponibilidade para um bloco é invocado com a localização de croma atual (xCurr, yCurr) definida como igual a (xTbC , yTbC) e a localização de croma vizinha (xTbC − 1, yTbC + y) como entrada, e a saída é atribuída a availableLB
[0415] Quando availableLB é igual a TRUE, numLeftBelow é incrementado por um.
[0416] O número de amostras de croma vizinhas disponíveis no numTopSamp superior e superior esquerdo e o número de amostras de croma vizinhas disponíveis no nLeftSamp esquerda e inferior esquerda são derivados como a seguir:
[0417] Se predModeIntra for igual a INTRA_LT_CCLM, o seguinte é aplicado: numSampT = availT ? nTbW : 0 numSampL = availL ? nTbH : 0 De outro modo, o seguinte é aplicado: numSampT = (availT && predModeIntra = = INTRA_T_CCLM) ? (nTbW + Min(numTopRight, nTbH)) : 0 numSampL = (availL && predModeIntra = = INTRA_L_CCLM) ? (nTbH + Min(numLeftBelow, nTbW)) : 0
A variável bCTUboundary é derivada como a seguir: bCTUboundary = (yTbC & (1 << (CtbLog2SizeY − 1) − 1) = = 0) ? TRUE : FALSE.
[0418] A variável cntN e arranjo pickPosN[] com N sendo substituído por L e T, são derivados como a seguir:
[0419] A variável numIs4N é definida como igual a ((availT && availL && predModeIntra == INTRA_LT_CCLM) ? 0 : 1).
[0420] A variável startPosN é definida como igual a numSampN >> (2 + numIs4N).
[0421] A variável pickStepN é definida como igual a Max(1, numSampN >> (1 + numIs4N)).
[0422] Se availN for igual a TRUE e predModeIntra for igual a INTRA_LT_CCLM ou INTRA_N_CCLM, cntN é definido como igual a Min(numSampN, (1 + numIs4N) << 1), e pickPosN[pos] é definido como igual a (startPosN + pos * pickStepN), com pos = 0..(cntN - 1).
[0423] De outro modo, cntN é definido como igual a 0.
[0424] As amostras de predição predSamples[x][y] com x = 0..nTbW − 1, y = 0..nTbH − 1 são derivadas como a seguir:
[0425] Se tanto numSampL quanto numSampT forem iguais a 0, o seguinte é aplicado: predSamples[x][y] = 1 << (BitDepthC − 1)
[0426] De outro modo, as seguintes etapas ordenadas são aplicadas:
[0427] As amostras de luma colocalizadas pY[x][y] com x = 0..nTbW * SubWidthC − 1, y= 0..nTbH * SubHeightC − 1 são definidas como iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nas localizações (xTbY + x, yTbY + y).
[0428] As amostras de luma vizinhas amostras pY[x][y] são derivadas como a seguir:
[0429] Quando numSampL é maior do que 0, as amostras de luma esquerdas vizinhas pY[x][y] com x = −1..−3, y = 0.. SubHeightC * numSampL − 1, são definidas iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nas localizações (xTbY + x , yTbY +y).
[0430] Quando numSampT é maior do que 0, as amostras de luma superiores vizinhas pY[x][y] com x = 0.. SubWidthC * numSampT − 1, y = −1, −2, são definidas como iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nas localizações (xTbY+ x, yTbY + y).
[0431] Quando availTL é igual a TRUE, as amostras de luma superiores esquerdas vizinhas pY[x][y] com x = −1, y = −1, −2, são definidas como iguais às amostras de luma reconstruídas antes do processo de filtro de desblocagem nas localizações (xTbY+ x, yTbY + y).
[0432] As amostras de luma colocalizadas subamostradas pDsY[x][y] com x = 0..nTbW − 1, y = 0..nTbH − 1 são derivadas como a seguir:
[0433] Se SubWidthC==1 e SubHeightC==1, o seguinte é aplicado:
[0434] pDsY[x][y] com x=1..nTbW-1, y=1..nTbH - 1 é derivado como a seguir: pDstY[x][y] = pY[x][y] //Notas explicativas: apenas para explicação: Nenhum filtro para YUV 4:4:4 e nenhuma amostragem reduzida são necessários, isto é, nenhuma filtragem é realizada quando 4:4:4 (se tanto SubWidthC quanto SubHeightC forem iguais a 1), e também pode ser interpretado como um filtro com coeficiente
[1], isto é, como um filtro bypass//
[0435] De outro modo, o seguinte é aplicado para um conjunto de filtros {F3, F5, F6}.//Notas explicativas: Neste relatório, são definidos os coeficientes dos filtros quando 4:2:0 ou 4:2:2 (se tanto SubWidthC quanto SubHeightC não forem iguais a 1), em que F2 pertence tanto ao primeiro quanto ao segundo conjuntos dos filtros de amostragem reduzida// F3[0] = 1, F3[1] = 2, F3[2] = 1 Se SubWidthC==2 e SubHeightC==2 F5[0][1] = 1, F5[1][1] = 4, F3[2][1] = 1, F5[1][0] = 1, F5[1][2] = 1 F6[0][1] = 1, F6[1][1] = 2, F6[2][1] = 1, F6[0][2] = 1, F6[1][2] = 2, F6[2][2] = 1, F2[0] = 1, F2[1] = 1 De outro modo, F5[0][1] = 0, F5[1][1] = 8, F3[2][1] = 0, F5[1][0] = 0, F5[1][2] = 0 F6[0][1] = 2, F6[1][1] = 4, F6[2][1] = 2, F6[0][2] = 0, F6[1][2] = 0, F6[2][2] = 0, F2[0] = 2, F2[1] = 0
Se sps_cclm_colocated_chroma_flag for igual a 1, o seguinte é aplicado: pDsY[x][y] com x = 1..nTbW − 1, y = 1..nTbH − 1 é derivado como a seguir pelo ajuste de F para ser F5: pDsY[x][y] = (F[1][0] * pY[SubWidthC * x][SubHeightC * y − 1] + + F[0][1] * pY[SubWidthC * x − 1][SubHeightC * y] + + F[1][1] * pY[SubWidthC * x][SubHeightC * y] + + F[2][1] * pY[SubWidthC * x + 1][SubHeightC * y] + + F[1][2] * pY[SubWidthC * x][SubHeightC * y + 1] + 4) >> 3//Notas explicativas: F5 corresponde ao primeiro filtro de amostragem reduzida reivindicado// Se availL for igual a TRUE, pDsY[0][y] com y = 1..nTbH − 1 é derivado como a seguir para F definido como F5: pDsY[0][y] = (F[1][0] * pY[0][SubHeightC * y − 1] + + F[0][1] * pY[− 1][SubHeightC * y ] + + F[1][1] * pY[0][SubHeightC * y] + + F[2][1] * pY[1] [SubHeightC * y ] + + F[1][2] * pY[0][SubHeightC * y + 1] + 4) >> 3
[0436] De outro modo, pDsY[0][y] com y = 1..nTbH − 1 é derivado como a seguir para F definido como F3: pDsY[0][y] = (F[0] * pY[0][SubHeightC * y − 1] + + F[1] * pY[0][SubHeightC * y ] + + F[2] * pY[0][SubHeightC * y + 1] + + 2) >> 2
[0437] Se availT for igual a TRUE, pDsY[x][0] com x = 1..nTbW − 1 é derivado como a seguir para F definido como F5: pDsY[x][0] = (F[1][0] * pY[SubWidthC * x][ − 1] + + F[0][1] * pY[SubWidthC * x − 1][0] + + F[1][1] * pY[SubWidthC * x][0] + + F[2][1] * pY[SubWidthC * x + 1][0] +
+ F[1][2] * pY[SubWidthC * x][ 1] + 4) >> 3
[0438] De outro modo, pDsY[x][0] com x = 1..nTbW − 1 é derivado como a seguir para F definido como F3: pDsY[x][0] = = (F[0] * pY[SubWidthC * x − 1][0] + + F[1] * pY[SubWidthC * x][0] + + F[2] * pY[SubWidthC * x + 1][0] + 2) >> 2
[0439] Se availL for igual a TRUE e availT for igual a TRUE, pDsY[0][0] é derivado como a seguir para F definido como F5: pDsY[0][0] = (F[1][0] * pY[0][ − 1] + + F[0][1] * pY[− 1][0] + + F[1][1] * pY[0][0] + + F[2][1] * pY[1][0] + + F[1][2] * pY[0][ 1] + 4) >> 3
[0440] De outro modo, se availL for igual a TRUE e availT for igual a FALSE, pDsY[0][0] é derivado como a seguir para F definido como F3: pDsY[0][0] = (F[0] * pY[− 1][0] + + F[1] * pY[0][0] + + F[2] * pY[1][0] + + 2) >> 2
[0441] De outro modo, se availL for igual a FALSE e availT for igual a TRUE, pDsY[0][0] é derivado como a seguir para F definido como F3: pDsY[0][0] = (F[0] * pY[0][-1] + + F[1] * pY[0][0] + + F[2] * pY[0][1] + + 2) >> 2
[0442] De outro modo (availL é igual a FALSE e availT é igual a FALSE), pDsY[0][0] é derivado como a seguir: pDsY[0][0] = pY[0][0]
[0443] De outro modo, o seguinte é aplicado: pDsY[x][y] com x = 1..nTbW − 1, y = 0..nTbH − 1 é derivado como a seguir para F definido como F6: pDsY[x][y] = (F[0][1] * pY[SubWidthC * x − 1][SubHeightC * y] + + F[0][2] * pY[SubWidthC * x − 1][SubHeightC * y + 1] + + F[1][1] * pY[SubWidthC * x][SubHeightC * y] + + F[1][2] * pY[SubWidthC * x][SubHeightC * y + 1] + + F[2][1] * pY[SubWidthC * x + 1][SubHeightC * y] + + F[2][2] * pY[SubWidthC * x +1][SubHeightC * y + 1] + 4) >> 3
[0444] Se availL for igual a TRUE, pDsY[0][y] com y = 0..nTbH − 1 é derivado como a seguir para F definido como F6: pDsY[0][y] = (F[0][1] * pY[− 1][SubHeightC * y] + + F[0][2] * pY[− 1][SubHeightC * y + 1] + + F[1][1] * pY[0][SubHeightC * y] + + F[1][2] * pY[0][SubHeightC * y + 1] + + F[2][1] * pY[1][SubHeightC * y] + + F[2][2] * pY[1][SubHeightC * y + 1] + 4) >> 3 De outro modo, pDsY[0][y] com y = 0..nTbH − 1 é derivado como a seguir para F definido como F2: pDsY[0][y] = (F[0] * pY[0][SubHeightC * y] + + F[1] * pY[0][SubHeightC * y + 1] + 1) >> 1 //A etapa 3 é uma implementação para obter amostras de luma de amostragem reduzida de amostras de luma reconstruídas em um bloco de luma do bloco atual usando filtros de amostragem reduzida respectivos.//
[0445] Quando numSampL é maior do que 0, as amostras de croma vizinhas esquerdas selecionadas pSelC[idx] são definidas como iguais a p[- 1][pickPosL[idx]] com idx = 0..(cntL - 1), e as amostras de luma esquerdas vizinhas subamostradas selecionadas pSelDsY [idx] com idx = 0..(cntL-1) são derivadas como a seguir:
[0446] A variável y é definida como igual a pickPosL[idx].
[0447] Se SubWidthC==1 e SubHeightC==1, o seguinte é aplicado: pSelDsY [i] = pY[-1][y]
[0448] De outro modo, o seguinte é aplicado:
Se sps_cclm_colocated_chroma_flag for igual a 1, o seguinte é aplicado: Se y > 0 || availTL == TRUE, para F definido como F5: pSelDsY [idx] = = F[1][0] * pY[− SubWidthC][SubHeightC * y − 1] + + F[0][1] * pY[−1 − SubWidthC ][SubHeightC * y] + + F[1][1] * pY[− SubWidthC ][SubHeightC * y] + + F[2][1] * pY[1 − SubWidthC][SubHeightC * y] + + F[1][2] * pY[− SubWidthC][SubHeightC * y + 1] + 4) >> 3
[0449] De outro modo, para F definido como F3: pSelDsY [idx] = (F[0] * pY[−1 − SubWidthC][0] + + F[1] * pY[− SubWidthC ][0] + + F[2] * pY[1 − SubWidthC][0] + + 2) >> 2
[0450] De outro modo, o seguinte é aplicado para F definido como F6: pSelDsY [idx] = = (F[0][1] * pY[−1− SubWidthC][SubHeightC * y] + + F[0][2] * pY[−1 − SubWidthC][SubHeightC * y + 1] + + F[1][1] * pY[ − SubWidthC][SubHeightC * y] + + F[1][2] * pY[ − SubWidthC][SubHeightC * y + 1] + + F[2][1] * pY[1 − SubWidthC][SubHeightC * y] + + F[2][2] * pY[1 − SubWidthC][SubHeightC * y + 1] + 4) >> 3 //Notas explicativas: As etapas 4 e 5 são uma implementação para obter amostras de referência de luma de amostragem reduzida de amostras de luma vizinhas selecionadas do bloco de luma usando filtros de amostragem reduzida respectivos.//
[0451] Quando numSampT é maior do que 0, as amostras de croma vizinhas superiores selecionadas pSelC[idx] são definidas como iguais a p[pickPosT[idx - cntL]][-1] com idx = cntL..(cntL + cntT - 1), e as amostras de luma superiores vizinhas subamostradas pSelDsY [ idx ] com idx = cntL.. cntL+ cntT − 1 são especificadas como a seguir:
[0452] A variável x é definida como igual a pickPosT[idx - cntL].
[0453] Se SubWidthC==1 e SubHeightC==1, o seguinte é aplicado:
pSelDsY [idx] = pY[x][-1]
[0454] De outro modo, o seguinte é aplicado:
[0455] Se sps_cclm_colocated_chroma_flag for igual a 1, o seguinte é aplicado: Se x > 0:
[0456] Se bCTUboundary for igual a FALSE, o seguinte é aplicado para F definido como F5: pSelDsY [idx] = = (F[1][0] * pY[SubWidthC * x][− 1 − SubHeightC] + + F[0][1] * pY[SubWidthC * x − 1][− SubHeightC] + + F[1][1] * pY[SubWidthC * x][− SubHeightC] + + F[2][1] * pY[SubWidthC * x + 1][− SubHeightC] + + F[1][2] * pY[SubWidthC * x][1 − SubHeightC] + 4) >> 3
[0457] De outro modo (bCTUboundary é igual a TRUE), o seguinte é aplicado para F definido como F3: pSelDsY [idx] = = (F[0] * pY[SubWidthC * x − 1 ][−1] + + F[1] * pY[SubWidthC * x ][−1] + + F[2] * pY[SubWidthC * x + 1][−1] + + 2) >> 2
[0458] De outro modo:
[0459] Se availTL for igual a TRUE e bCTUboundary for igual a FALSE, o seguinte é aplicado para F definido como F5: pSelDsY [idx] = = F[1][0] * pY[ − 1] [− 1− SubHeightC] + + F[0][1] * pY[− 1] [ − SubHeightC] + + F[1][1] * pY[0] [ − SubHeightC] + + F[2][1] * pY[1] [ − SubHeightC] + + F[1][2] pY[− 1] [1 − SubHeightC] + 4) >> 3
[0460] De outro modo, se availTL for igual a TRUE e bCTUboundary for igual a TRUE, o seguinte é aplicado para F definido como F3: pSelDsY [idx] = = (F[0] * pY[−1][−1] + + F[1] * pY[0][−1] +(8 - 182)
+ F[2] * pY[1][−1] + + 2) >> 2
[0461] De outro modo, se availTL for igual a FALSE e bCTUboundary for igual a FALSE, o seguinte é aplicado para F definido como F3: pSelDsY [idx] = = (F[0] * pY[0][−1] + + F[1] * pY[0][−2] + + F[2] * pY[0][−1] + + 2) >> 2
[0462] De outro modo (availTL é igual a FALSE e bCTUboundary é igual a TRUE), o seguinte é aplicado: pSelDsY [idx] = pY[0][−1]
[0463] De outro modo, o seguinte é aplicado: Se x > 0:
[0464] Se bCTUboundary for igual a FALSE, o seguinte é aplicado para F definido como F6: pSelDsY [idx] = = (F[0][1] * pY[SubWidthC * x − 1][−2] + + F[0][2] * pY[SubWidthC * x − 1][−1] + + F[1][1] * pY[ SubWidthC * x][−2] + + F[1][2] * pY[ SubWidthC * x][ −1] + + F[2][1] * pY[ SubWidthC * x + 1][ −2] + + F[2][2] * pY[ SubWidthC * x + 1][ −1] + 4) >> 3
[0465] De outro modo (bCTUboundary é igual a TRUE), o seguinte é aplicado para F definido como F3: pSelDsY [idx] = = (F[0] * pY [SubWidthC * y − 1] [− 1] + + F[1] * pY[SubWidthC * y] [− 1] + + F[2] * pY[SubWidthC * y + 1] [− 1] + + 2) >> 2
[0466] De outro modo:
[0467] Se availTL for igual a TRUE e bCTUboundary for igual a FALSE, o seguinte é aplicado para F definido como F6: pSelDsY [idx] =
= (F[0][1] * pY[− 1][−2] + + F[0][2] * pY[− 1][−1] + + F[1][1] * pY[ 0][−2] + + F[1][2] * pY[ 0][ −1] + + F[2][1] * pY[ 1][ −2] + + F[2][2] * pY[ 1][ −1] + 4) >> 3
[0468] De outro modo, se availTL for igual a TRUE e bCTUboundary for igual a TRUE, o seguinte é aplicado para F definido como F3: pSelDsY [idx] = = (F[0] * pY [− 1] [− 1] + + F[1] * pY[0] [− 1] + + F[2] * pY[1] [− 1] + + 2) >> 2
[0469] De outro modo, se availTL for igual a FALSE e bCTUboundary for igual a FALSE, o seguinte é aplicado para F definido como F2: pSelDsY [idx] = (F[1] * pY[0][−2] + F[0] * pY[0][−1] + 1) >> 1
[0470] De outro modo (availTL é igual a FALSE e bCTUboundary é igual a TRUE), o seguinte é aplicado: pSelDsY [idx] = pY[0][−1] //Notas explicativas: As etapas 4 e 5 são uma implementação para obter amostras de referência de luma de amostragem reduzida de amostras de luma vizinhas selecionadas do bloco de luma aplicando-se o filtro de amostragem reduzida respectivo.//
[0471] Quando cntT+ cntL não é igual a 0, as variáveis minY, maxY, minC e maxC são derivadas como a seguir:
[0472] Quando cntT+cntL é igual a 2, pSelComp[3] definido como 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.
[0473] Os arranjos minGrpIdx[] e maxGrpIdx[] são definidos como: minGrpIdx[0] = 0, minGrpIdx[1] = 2, maxGrpIdx[0] = 1, maxGrpIdx[1] = 3.
[0474] Se pSelDsY[minGrpIdx[0]] > pSelDsY[minGrpIdx[1]], Swap(minGrpIdx[0], minGrpIdx[1]).
[0475] Se pSelDsY[maxGrpIdx[0]] > pSelDsY[maxGrpIdx[1]],
Swap(maxGrpIdx[0], maxGrpIdx[1]).
[0476] Se pSelDsY[minGrpIdx[0]] > pSelDsY[maxGrpIdx[1]], Swap(minGrpIdx, maxGrpIdx).
[0477] Se pSelDsY[minGrpIdx[1]] > pSelDsY[maxGrpIdx[0]], Swap(minGrpIdx[1], maxGrpIdx[0]).
[0478] maxY = (pSelDsY[maxGrpIdx[0]] + pSelDsY[maxGrpIdx[1]] + 1) >> 1.
[0479] maxC = (pSelC[maxGrpIdx[0]] + pSelC[maxGrpIdx[1]] + 1) >>
1.
[0480] minY = (pSelDsY[minGrpIdx[0]] + pSelDsY[minGrpIdx[1]] + 1) >> 1.
[0481] minC = (pSelC[minGrpIdx[0]] + pSelC[minGrpIdx[1]] + 1) >> 1.
[0482] As variáveis a, b e k são derivadas como a seguir:
[0483] Se numSampL for igual a 0 e numSampT for igual a 0, o seguinte é aplicado: k=0 a=0 b = 1 << (BitDepthC − 1)
[0484] De outro modo, o seguinte é aplicado: diff = maxY − minY Se diff não for igual a 0, o seguinte é aplicado: diffC = maxC − minC x = Floor(Log2(diff)) normDiff = ((diff << 4) >> x) & 15 x += (normDiff != 0) ? 1 : 0 y = Floor(Log2(Abs (diffC))) + 1 a = (diffC * (divSigTable[normDiff] | 8) + 2y − 1) >> y k = ((3 + x − y) < 1) ? 1 : 3 + x − y a = ((3 + x − y) < 1) ? Sign(a) * 15 : a b = minC − ((a * minY) >> k) onde divSigTable[] é especificado como a seguir: divSigTable[] = {0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0}
[0485] De outro modo (diff é igual a 0), o seguinte é aplicado: k=0 a=0 b = minC //Notas explicativas: As etapas 6 a 7 são uma implementação para determinar um ou mais coeficientes de modelo linear com base nas amostras de referência de luma de amostragem reduzida das amostras de luma vizinhas e em amostras de referência de croma selecionadas que correspondem às amostras de referência de luma de amostragem reduzida; em particular, a determinação de coeficientes de modelo linear é fundamentada em minY, maxY, minC e maxC.//
[0486] As amostras de predição predSamples[x][y] com x = 0..nTbW − 1, y = 0..nTbH − 1 são derivadas como a seguir: predSamples[x][y] = Clip1C(((pDsY[x][y] * a) >> k) + b)//Notas explicativas: A etapa 8 é uma implementação para obter amostras de predição de um bloco de croma que corresponde ao bloco de luma com base nos coeficientes de modelo linear e nas amostras de luma de amostragem reduzida das amostras de luma reconstruídas no bloco de luma.//
[0487] A Fig. 12 ilustra um dispositivo para realizar a predição intra usando um modelo linear, de acordo com outro aspecto da revelação. O dispositivo 1200 compreende: uma unidade de determinação 1201 configurada para determinar um conjunto de filtros de amostragem reduzida com base em informações de formato de croma, em que as informações de formato de croma indicam um formato de croma de uma imagem à qual um bloco atual pertence; uma unidade de filtragem 1203 configurada para obter amostras de luma de amostragem reduzida de amostras de luma reconstruídas em um bloco de luma do bloco atual e amostras de referência de luma de amostragem reduzida de amostras de referência de luma selecionadas (ou amostras de luma vizinhas selecionadas) do bloco de luma usando filtros de amostragem reduzida respectivos entre o conjunto (selecionado) de filtros de amostragem reduzida; uma unidade de derivação de modelo linear 1205 configurada para determinar um ou mais coeficientes de modelo linear com base nas amostras de referência de luma de amostragem reduzida e em amostras de referência de croma que correspondem às amostras de referência de luma de amostragem reduzida; e uma unidade de predição 1207, configurada para obter amostras de predição de um bloco de croma que corresponde ao bloco de luma com base nos coeficientes de modelo linear e nas amostras de luma de amostragem reduzida das amostras de luma reconstruídas no bloco de luma.
[0488] Correspondentemente, em um exemplo, uma estrutura de exemplo do dispositivo 1200 pode corresponder ao codificador 20 na FIG. 2. Em outro exemplo, uma estrutura de exemplo do dispositivo 1200 pode ser correspondente ao decodificador 30 na FIG. 3.
[0489] Em outro exemplo, uma estrutura de exemplo do dispositivo 1200 pode ser correspondente à unidade de predição intra 254 na FIG. 2. Em outro exemplo, uma estrutura de exemplo do dispositivo 1200 pode ser correspondente à unidade de predição intra 354 na FIG. 3.
[0490] A presente revelação fornece os seguintes aspectos adicionais.
[0491] De acordo com um primeiro aspecto, a revelação refere-se a um método para predição intra usando modelo linear. O método é realizado pelo aparelho de codificação (em particular, o aparelho para predição intra). O método inclui: - determinar um filtro para uma amostra de luma (tal como cada amostra de luma) pertencente a um bloco (isto é, as amostras do bloco atual internas), com base em um formato de croma de uma imagem à qual o bloco atual pertence; em particular, diferentes amostras de luma podem corresponder aos diferentes filtros. Basicamente, dependendo se está no limite. - na posição da amostra de luma (tal como cada amostra de luma) pertencente ao bloco atual, aplicar o filtro determinado para uma área de amostras de luma reconstruídas, para obter uma amostra de luma reconstruída filtrada (tal como Rec' L [ x, y ] ); - obter, com base na amostra de luma reconstruída filtrada, um conjunto de amostras de luma usado como uma entrada da derivação de modelo linear; e realizar a predição de componente cruzado (tal como predição de croma de luma de componente cruzado ou predição CCLM) com base em coeficientes de modelo linear da derivação de modelo linear e na amostra de luma reconstruída filtrada.
[0492] A presente revelação refere-se ao filtro de luma de CCLM. A revelação é sobre como filtrar amostras de luma. A revelação refere-se à seleção de filtro que é realizado dentro de CCLM.
[0493] CCLM refere-se à predição de croma, usando luma reconstruído para prever o sinal de croma.
[0494] Em uma possível forma de implementação do método, de acordo com o primeiro aspecto como tal, a determinação de um filtro, compreende: determinar o filtro com base em uma posição da amostra de luma dentro do bloco atual e o formato de croma; ou determinar filtros respectivos para uma pluralidade de amostras de luma pertencente ao bloco atual, com base nas posições respectivas das amostras de luma dentro do bloco atual e no formato de croma. Pode ser entendido que se amostras adjacentes ao bloco atual estão disponíveis, o filtro pode usar também para filtrar a área de limite do bloco atual.
[0495] Em uma possível forma de implementação do método, de acordo com o primeiro aspecto como tal, a determinação de um filtro, compreende: determinar o filtro com base em um ou mais do seguinte: um formato de croma de uma imagem à qual o bloco atual pertence, uma posição da amostra de luma dentro do bloco atual, o número de amostras de luma pertencente ao bloco atual, uma largura e uma altura do bloco atual, e uma posição da amostra de croma subamostrada em relação à amostra de luma dentro do bloco atual.
[0496] Em uma possível forma de implementação do método, de acordo com o primeiro aspecto como tal, quando a amostra de croma subamostrada não está colocalizada com a amostra de luma correspondente, uma primeira relação (tal como a Tabela 4) entre uma pluralidade de filtros e os valores da largura e uma altura do bloco atual são usados para a determinação do filtro; quando a amostra de croma subamostrada está colocalizada com a amostra de luma correspondente, uma segunda ou terceira relação (tal como a Tabela 2 ou Tabela 3) entre uma pluralidade de filtros e os valores da largura e uma altura do bloco atual são usados para a determinação do filtro.
[0497] Em uma possível forma de implementação do método, de acordo com o primeiro aspecto como tal, a segunda ou terceira relação (tal como a Tabela 2 ou Tabela 3) entre uma pluralidade de filtros e os valores da largura e uma altura do bloco atual são determinados com base no número das amostras de luma pertencente ao bloco atual.
[0498] Em uma possível forma de implementação do método, de acordo com o primeiro aspecto como tal, o filtro compreende coeficientes diferentes de zero em posições que são horizontal e verticalmente adjacentes à posição da amostra de luma reconstruída filtrada, quando o componente de croma do bloco atual não é subamostrado. 0 1 0  1 4 1    0 1 0 (tal como , em que a posição central com o coeficiente “4” corresponde à posição da amostra de luma reconstruída filtrada)
[0499] Em uma possível forma de implementação do método, de acordo com o primeiro aspecto como tal, a área de amostras de luma reconstruídas inclui uma pluralidade de amostras de luma reconstruídas que são relacionadas à posição da amostra reconstruída filtrada, e a posição da amostra de luma reconstruída filtrada corresponde à posição da amostra de luma pertencente ao bloco atual, e a posição da amostra de luma reconstruída filtrada está dentro de um bloco de luma do bloco atual.
[0500] Em uma possível forma de implementação do método, de acordo com o primeiro aspecto como tal, a área de amostras de luma reconstruídas inclui uma pluralidade de amostras de luma reconstruídas em posições que são horizontal e verticalmente adjacentes à posição da amostra de luma reconstruída filtrada, e a posição da amostra de luma reconstruída filtrada corresponde à posição da amostra de luma pertencente ao bloco atual, e a posição da amostra de luma reconstruída filtrada está dentro do bloco atual (tal como o bloco de luma atual ou componente de luma do bloco atual). Tal como, a posição da amostra de luma reconstruída filtrada está dentro do bloco atual (parte direita da Fig. 8, é aplicado o filtro às amostras de luma).
[0501] Em uma possível forma de implementação do método, de acordo com o primeiro aspecto como tal, o formato de croma compreende o formato de croma YCbCr 4:4:4, o formato de croma YCbCr 4:2:0, o formato de croma YCbCr 4:2:2 ou monocromático.
[0502] Em uma possível forma de implementação do método, de acordo com o primeiro aspecto como tal, o conjunto de amostras de luma usado como uma entrada da derivação de modelo linear, compreende: amostras de luma reconstruídas de limite que são subamostradas a partir de amostras filtradas de luma reconstruídas (tais como Rec' L [ x, y ] ).
[0503] Em uma possível forma de implementação do método, de acordo com o primeiro aspecto como tal, o preditor para o bloco de croma atual é obtido com base em: 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝐶𝐶 (𝑖𝑖, 𝑗𝑗) = 𝛼𝛼 · 𝑟𝑟𝑟𝑟𝑟𝑟𝐿𝐿 ′(𝑖𝑖, 𝑗𝑗) + 𝛽𝛽
[0504] Onde 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝐶𝐶 (𝑖𝑖, 𝑗𝑗) representa uma amostra de croma, e 𝑟𝑟𝑟𝑟𝑟𝑟𝐿𝐿 (𝑖𝑖, 𝑗𝑗) representa uma amostra de luma reconstruída correspondente.
[0505] Em uma possível forma de implementação do método, de acordo com o primeiro aspecto como tal, o modelo linear é um modelo linear multidirecional (MDLM) e os coeficientes de modelo linear são usados para obter o MDLM.
[0506] De acordo com um segundo aspecto da revelação, um método para a predição intra usando o modelo linear é fornecido, o método compreendendo: - determinar um filtro para um componente de luma de um bloco atual, com base em um formato de croma de uma imagem à qual o bloco atual pertence; - aplicar o filtro determinado a uma área de amostras de luma reconstruídas do componente de luma do bloco atual e amostras de luma na posição vizinha selecionadas (uma ou várias linhas/colunas adjacentes ao lado esquerdo ou de cima do bloco atual) ao bloco atual, para obter amostras filtradas de luma reconstruídas (por exemplo, a amostra de luma reconstruída filtrada dentro do bloco atual (tal como o componente de luma do bloco atual)); obter, com base nas amostras de luma reconstruídas filtradas como uma entrada da derivação de modelo linear (por exemplo, o conjunto de amostras de luma inclui o as amostras de luma reconstruídas filtradas dentro do bloco atual e amostras filtradas de luma vizinhas fora do bloco atual, por exemplo, o filtro determinado também pode ser aplicado às amostras de luma vizinhas fora do bloco atual), coeficientes de modelo linear; e realizar a predição de componente cruzado com base nos coeficientes obtidos de modelo linear e nas amostras de luma reconstruídas filtradas do bloco atual (por exemplo, as amostras de luma reconstruídas filtradas dentro do bloco atual (tal como o componente de luma do bloco atual)) para obter o preditor de um bloco de croma atual.
[0507] Em uma possível forma de implementação do método, de acordo com o segundo aspecto como tal, a determinação de um filtro compreende: determinar o filtro com base em uma posição da amostra de luma dentro do bloco atual e no formato de croma; ou determinar filtros respectivos para uma pluralidade de amostras de luma pertencente ao bloco atual, com base em posições respectivas das amostras de luma dentro do bloco atual e no formato de croma.
[0508] Em uma possível forma de implementação do método, de acordo com o segundo aspecto como tal, a determinação de um filtro compreende: determinar o filtro com base em um ou mais do seguinte: informações de razão de subamostragem (tais como SubWidthC e SubHeightC, que podem ser obtidos a partir de uma tabela, de acordo com um formato de croma de uma imagem à qual o bloco atual pertence), um formato de croma de uma imagem à qual o bloco atual pertence (tal como, em que o formato de croma é usado para obter informações de razão de subamostragem (tal como SubWidthC e SubHeightC)), uma posição da amostra de luma dentro do bloco atual, o número de amostras de luma pertencente ao bloco atual, uma largura e uma altura do bloco atual, e/ou uma posição da amostra de croma subamostrada em relação à amostra de luma dentro do bloco atual.
[0509] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do segundo aspecto ou do segundo aspecto como tal, quando a amostra de croma subamostrada não está colocalizada com a amostra de luma correspondente, uma primeira relação pré- ajustada (tal como a Tabela 4) entre uma pluralidade de filtros e informações de razão de subamostragem (tal como SubWidthC e SubHeightC ou tal como os valores da largura e uma altura do bloco atual) é usada para a determinação do filtro; e/ou, quando a amostra de croma subamostrada está colocalizada com a amostra de luma correspondente, uma segunda ou terceira relação pré-ajustada (tal como a Tabela 2 ou Tabela 3) entre uma pluralidade de filtros e informações de razão de subamostragem (tal como SubWidthC e SubHeightC ou tal como os valores da largura e uma altura do bloco atual) é usada para a determinação do filtro.
[0510] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do segundo aspecto ou do segundo aspecto como tal, a segunda ou terceira relação (tal como a Tabela 2 ou Tabela 3) entre uma pluralidade de filtros e informações de razão de subamostragem (tal como SubWidthC e SubHeightC ou tal como os valores da largura e uma altura do bloco atual) é determinada com base no número de certas amostras de luma (tal como a amostra de luma disponível) pertencente ao bloco atual.
[0511] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do segundo aspecto ou do segundo aspecto como tal, o filtro é determinado condicionalmente como a seguir: se uma primeira condição (tal como as informações de razão de subamostragem obtidas a partir da tabela definida na especificação, tal como SubWidthC==1 e SubHeightC==1) não for atendida, o seguinte é aplicado para um conjunto de filtros {F3, F5, F6}; F3[0] = 1, F3[1] = 2, F3[2] = 1; se uma segunda condição (tal como as informações de razão de subamostragem obtidas a partir da tabela, tal como SubWidthC==2 e SubHeightC==2) for atendida, F5[0][1] = 1, F5[1][1] = 4, F3[2][1] = 1, F5[1][0] = 1, F5[1][2] = 1 F6[0][1] = 1, F6[1][1] = 2, F6[2][1] = 1, F6[0][2] = 1, F6[1][2] = 2, F6[2][2] = 1, F2[0] = 1, F2[1] = 1
[0512] De outro modo, (por exemplo, se uma segunda condição (as informações de razão de subamostragem obtidas a partir da tabela, tal como SubWidthC==2 e SubHeightC==2) não for atendida), F5[0][1] = 0, F5[1][1] = 8, F5[2][1] = 0, F5[1][0] = 0, F5[1][2] = 0 F6[0][1] = 2, F6[1][1] = 4, F6[2][1] = 2, F6[0][2] = 0, F6[1][2] = 0, F6[2][2] = 0, F2[0] = 2, F2[1] = 0.
[0513] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do segundo aspecto ou do segundo aspecto como tal, o filtro compreende coeficientes diferentes de zero em posições que são horizontal e/ou verticalmente adjacentes à posição da amostra de luma reconstruída filtrada, quando o componente de croma do bloco atual não é subsamostrado. 0 1 0  1 4 1    0 1 0 (tal como , em que a posição central com o coeficiente “4” corresponde à posição da amostra de luma reconstruída filtrada)
[0514] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do segundo aspecto ou do segundo aspecto como tal, a área de amostras de luma reconstruídas inclui uma pluralidade de amostras de luma reconstruídas que estão relacionadas à posição da amostra reconstruída filtrada, e a posição da amostra de luma reconstruída filtrada corresponde à posição da amostra de luma pertencente ao bloco, e a posição da amostra de luma reconstruída filtrada está dentro de um bloco de luma do bloco.
[0515] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do segundo aspecto ou do segundo aspecto como tal, a área de amostras de luma reconstruídas inclui uma pluralidade de amostras de luma reconstruídas em posições que são horizontal e/ou verticalmente adjacentes à posição da amostra de luma reconstruída filtrada, e a posição da amostra de luma reconstruída filtrada corresponde à posição da amostra de luma pertencente ao, e a posição da amostra de luma reconstruída filtrada está dentro do bloco (tal como o bloco de luma atual ou componente de luma do bloco atual).
[0516] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do segundo aspecto ou do segundo aspecto como tal, o formato de croma compreende o formato de croma YCbCr 4:4:4, o formato de croma YCbCr 4:2:0, o formato de croma YCbCr 4:2:2 ou monocromático.
[0517] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do segundo aspecto ou do segundo aspecto como tal, o conjunto de amostras de luma usado como uma entrada da derivação de modelo linear, compreende: amostras de luma reconstruídas de limite que são subamostradas a partir das amostras de luma reconstruídas filtradas (tais como Rec' L [ x, y ] ).
[0518] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do segundo aspecto ou do segundo aspecto como tal, o preditor para o bloco de croma atual é obtido com base em: 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝐶𝐶 (𝑖𝑖, 𝑗𝑗) = 𝛼𝛼 · 𝑟𝑟𝑟𝑟𝑟𝑟𝐿𝐿 ′(𝑖𝑖, 𝑗𝑗) + 𝛽𝛽
[0519] Onde 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝐶𝐶 (𝑖𝑖, 𝑗𝑗) representa uma amostra de croma, e 𝑟𝑟𝑟𝑟𝑟𝑟𝐿𝐿 (𝑖𝑖, 𝑗𝑗) representa um valor reconstruído correspondente de uma amostra de luma (tal como, a posição da amostra de luma reconstruída correspondente está dentro do bloco atual), 𝛼𝛼 e 𝛽𝛽 representam os coeficientes de modelo linear.
[0520] Em uma possível forma de implementação do método, de acordo com qualquer implementação anterior do segundo aspecto ou do segundo aspecto como tal, o modelo linear é um modelo linear multidirecional (MDLM) e os coeficientes de modelo linear são usados para obter o MDLM.
[0521] De acordo com um terceiro aspecto da revelação, um método de codificação implementado por um dispositivo de codificação é fornecido, o método compreende: realizar a predição intra usando o modelo linear (tal como modelo linear de componente cruzado, CCLM ou modelo linear multidirecional, MDLM) como descrito na presente revelação; e gerar um fluxo de bits incluindo uma pluralidade de elementos de sintaxe, em que a pluralidade de elementos de sintaxe inclui um elemento de sintaxe que indica uma seleção de um filtro para uma amostra de luma pertencente a um bloco (tal como uma seleção de um filtro de luma de CCLM,
em particular, uma flag SPS, tal como sps_cclm_colocated_chroma_flag).
[0522] Em uma possível forma de implementação do método, de acordo com o terceiro aspecto como tal, quando o valor do elemento de sintaxe é 1 ou verdadeiro, o filtro não é aplicado a uma amostra de luma para a determinação e a predição do modelo linear; quando o valor do elemento de sintaxe é 0 ou falso, o filtro é aplicado a uma amostra de luma para a determinação e a predição do modelo linear.
[0523] De acordo com um quarto aspecto da revelação, um método de decodificação implementado por um dispositivo de decodificação, compreende: analisar a partir de um fluxo de bits, uma pluralidade de elementos de sintaxe, em que a pluralidade de elementos de sintaxe inclui um elemento de sintaxe que indica uma seleção de um filtro para uma amostra de luma pertencente a um bloco (tal como uma seleção de um filtro de luma de CCLM, em particular, uma flag SPS, tal como sps_cclm_colocated_chroma_flag); e realizar a predição intra usando o modelo linear indicado (tal como CCLM) como descrito na presente revelação.
[0524] Em uma possível forma de implementação do método, de acordo com o quarto aspecto como tal, quando o valor do elemento de sintaxe é 0 ou falso, o filtro é aplicado a uma amostra de luma para a determinação e a predição do modelo linear; quando o valor do elemento de sintaxe é 1 ou verdadeiro, o filtro não é aplicado a uma amostra de luma para a determinação e a predição do modelo linear.
[0525] De acordo com um quinto aspecto da revelação, um aparelho para predição intra usando o modelo linear é fornecido, compreendendo: - uma unidade de determinação, configurada para determinar um filtro para uma amostra de luma pertencente a um bloco, com base em um formato de croma de uma imagem à qual o bloco atual pertence; - uma unidade de filtragem, configurada para na posição da amostra de luma pertencente ao bloco atual, aplicar o filtro determinado a uma área de amostras de luma reconstruídas, para obter uma amostra de luma reconstruída filtrada; - uma unidade de obtenção, configurada para obter, com base na amostra de luma reconstruída filtrada, um conjunto de amostras de luma usado como uma entrada da derivação de modelo linear; e uma unidade de predição, configurada para realizar a predição do componente cruzado com base em coeficientes de modelo linear da derivação de modelo linear e na amostra de luma reconstruída filtrada.
[0526] Em uma possível forma de implementação do dispositivo, de acordo com qualquer implementação anterior do quinto aspecto ou do quinto aspecto como tal, o número das amostras reconstruídas filtradas é igual ou maior do que um tamanho do bloco de luma atual.
[0527] Em uma possível forma de implementação do dispositivo, de acordo com qualquer implementação anterior do quinto aspecto ou do quinto aspecto como tal, CCLM é realizado para amostras reconstruídas subamostradas.
[0528] Em uma possível forma de implementação do dispositivo, de acordo com qualquer implementação anterior do quinto aspecto ou do quinto aspecto como tal, apenas uma linha das amostras de luma reconstruídas vizinhas é usada para obter as amostras reconstruídas filtradas quando o bloco de croma atual está em um limite superior.
[0529] Em uma possível forma de implementação do dispositivo, de acordo com qualquer implementação anterior do quinto aspecto ou do quinto aspecto como tal, o modelo linear é um modelo linear multidirecional (MDLM) e os coeficientes de modelo linear são usados para obter o MDLM.
[0530] Em uma possível forma de implementação do dispositivo, de acordo com qualquer implementação anterior do quinto aspecto ou do quinto aspecto como tal, a derivação do parâmetro CCLM ou MDLM é realizada para as amostras reconstruídas filtradas apenas pertencentes a um modelo superior do bloco de luma atual, ou apenas pertencentes a um modelo esquerdo do bloco de luma atual, ou em que as amostras reconstruídas pertencem a um modelo superior do bloco de luma atual e um modelo esquerdo do bloco de luma atual.
[0531] Em uma possível forma de implementação do dispositivo, de acordo com qualquer implementação anterior do quinto aspecto ou do quinto aspecto como tal, as amostras de luma na posição vizinha selecionada ao bloco atual que são amostras em uma linha de amostras vizinha à parte superior do bloco atual, e/ou em uma coluna de amostras vizinha à parte esquerda do bloco atual são separadas uniformemente por um intervalo/distância/número de pixels entre elas.
[0532] Em uma possível forma de implementação do dispositivo, de acordo com qualquer implementação anterior do quinto aspecto ou do quinto aspecto como tal, a posição vizinha selecionada para o bloco atual é indicada por: S[W’/4, -1], S[3W’/4, -1], S[-1, H’/4], S[-1, 3H’/4] quando modo LM é aplicado e ambas as amostras vizinhas acima e à esquerda estão disponíveis; S[W’/8, -1], S[3W’/8, -1], S[5W’/8, -1], S[7W’/8, -1] quando modo LM- A é aplicado ou apenas as amostras vizinhas acima estão disponíveis; S[-1, H’/8], S[-1, 3H’/8], S[-1, 5H’/8], S[-1, 7H’/8] quando modo LM-L é aplicado ou apenas as amostras vizinhas à esquerda estão disponíveis.
[0533] Um sexto aspecto de um decodificador (30) compreendendo circuitos de processamento para realizar o método, de acordo com qualquer um do primeiro ao terceiro aspecto.
[0534] Um sétimo aspecto de um produto de programa de computador compreendendo um código de programa para realizar o método, de acordo com qualquer um do primeiro ao terceiro aspecto.
[0535] Um oitavo aspecto de um decodificador, compreendendo: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para a execução pelos processadores, em que a programação, quando executada pelos processadores, configura o decodificador para realizar o método, de acordo com qualquer um do primeiro ao terceiro aspecto.
[0536] Um nono aspecto de um codificador, compreendendo: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para a execução pelos processadores, em que a programação, quando executada pelos processadores, configura o codificador para realizar o método, de acordo com qualquer um do primeiro ao terceiro aspecto.
[0537] Um décimo aspecto de uma mídia legível por computador não transitória que porta um código de programa que, quando executado por um dispositivo de computador, faz com que o dispositivo de computador realize o método, de acordo com qualquer um do primeiro ao terceiro aspecto.
[0538] Um décimo primeiro aspecto de um codificador (20) compreende circuitos de processamento para realizar o método, de acordo com qualquer um do primeiro ao terceiro aspecto.
[0539] Com base no anterior, as modalidades reveladas neste relatório têm as seguintes vantagens técnicas: as modalidades reveladas neste relatório consideram o formato de croma da imagem ao prognosticar amostras de croma a partir de amostras de luma. Ao selecionar o conjunto de filtros com base no formato de croma, as falhas do projeto anterior são eliminadas levando à redução de erro de predição e, assim, uma predição de croma mais precisa. O resultado técnico de um erro de predição menor é a redução de energia do sinal residual. Os métodos de codificação podem utilizar esta energia da redução de sinal residual para diminuir a distorção do sinal reconstruído, diminuir a taxa de bits que é necessária para codificar o sinal residual, ou diminuir tanto a distorção quanto a taxa de bits. Estes efeitos benéficos obtidos pelas modalidades apresentadas neste relatório, melhoram o desempenho de compressão geral do método de codificação.
[0540] Além disso, os filtros revelados neste relatório têm as seguintes duas propriedades: - o número de torneiras nas direções horizontal e vertical não excede
3. - os valores dos coeficientes são uma potência de dois.
[0541] A primeira propriedade permite que a região sendo acessada para a filtragem não exceda 3 amostras (o menor tamanho possível de suporte de filtro sem deslocamento de fase). A segunda propriedade (coeficientes de potência de dois) permite que os filtros sejam implementados sem multiplicação. Em vez disso, os filtros podem ser implementados usando deslocamento para a esquerda por um valor constante, o que requer a complexidade mínima no projeto de hardware.
[0542] Nenhuma técnica anterior propôs filtros FIR práticos (resposta de impulso finita) que têm as propriedades acima. Nenhum dos filtros FIP na técnica podem fornecer as mesmas propriedades de suavização e, entretanto, ter a mesma implementação simples que as reveladas neste relatório.
[0543] O seguinte é uma explicação das aplicações do método de codificação bem como o método de decodificação como mostrado nas modalidades mencionadas acima e um sistema usando que os usa.
[0544] A FIG. 13 é um diagrama de bloco que mostra um sistema de fornecimento de conteúdo 3100 para realizar o serviço de distribuição de conteúdo. Este sistema de fornecimento de conteúdo 3100 inclui o dispositivo captura 3102, dispositivo terminal 3106 e, inclui opcionalmente, o display 3126. O dispositivo de captura 3102 se comunica com o dispositivo terminal 3106 através do enlace de comunicação 3104. O enlace de comunicação pode incluir o canal de comunicação 13 descrito acima. O enlace de comunicação 3104 inclui, mas não está limitado ao WIFI, Ethernet, Cabo, sem fio (3G/4G/5G), USB ou qualquer tipo de combinação dos mesmos ou semelhantes.
[0545] O dispositivo de captura 3102 gera dados, e pode codificar os dados pelo método de codificação como mostrado nas modalidades acima. Alternativamente, o dispositivo de captura 3102 pode distribuir os dados para um servidor de transmissão (não mostrado nas figuras), e o servidor codifica os dados e transmite os dados codificados para o dispositivo terminal 3106. O dispositivo de captura 3102 inclui, mas não está limitado à câmera, smartphone ou pad, computador ou laptop, sistema de videoconferência, PDA, dispositivo montado em veículo ou uma combinação de qualquer um deles ou semelhantes. Por exemplo, o dispositivo de captura 3102 pode incluir o dispositivo de origem 12 como descrito acima. Quando os dados incluem vídeo, o codificador de vídeo 20 incluído no dispositivo de captura 3102 pode realmente realizar o processamento de codificação de vídeo. Quando os dados incluem áudio (isto é, voz), um codificador de áudio incluído no dispositivo de captura 3102 pode realmente realizar o processamento de codificação de áudio. Para alguns cenários práticos, o dispositivo de captura 3102 distribui os dados de vídeo e áudio codificados por multiplexação deles juntos. Para outros cenários práticos, por exemplo, no sistema de videoconferência, os dados de áudio codificados e os dados de vídeo codificados não são multiplexados. O dispositivo de captura 3102 distribui os dados de áudio codificados e os dados de vídeo codificados para o dispositivo terminal 3106 separadamente.
[0546] No sistema de fornecimento de conteúdo 3100, o dispositivo terminal 310 recebe e reproduz os dados codificados. O dispositivo terminal 3106 pode ser um dispositivo com capacidade de recebimento e recuperação de dados, tal como smartphone ou pad 3108, computador ou laptop 3110, gravador de vídeo de rede (NVR)/gravador de vídeo digital (DVR) 3112, TV 3114, set top box (STB) 3116, sistema de videoconferência 3118, sistema de videovigilância 3120, assistente pessoal digital (PDA) 3122, dispositivo montado em veículo 3124, ou uma combinação de qualquer um deles ou semelhantes capazes de decodificador os dados codificados mencionados acima. Por exemplo, o dispositivo terminal 3106 pode incluir o dispositivo de destino 14 como descrito acima. Quando os dados codificados incluem vídeo, o decodificador de vídeo 30 incluído no dispositivo terminal é priorizado para realizar a decodificação de vídeo. Quando os dados codificados incluem áudio, um decodificador de áudio incluído no dispositivo terminal é priorizado para realizar o processamento de decodificação de áudio.
[0547] Para um dispositivo terminal com seu display, por exemplo, smartphone ou pad 3108, computador ou laptop 3110, gravador de vídeo de rede (NVR)/gravador de vídeo digital (DVR) 3112, TV 3114, assistente digital pessoal (PDA) 3122, ou dispositivo montado em veículo 3124, o dispositivo terminal pode alimentar os dados decodificados para o seu display. Para um dispositivo terminal equipado sem nenhum display, por exemplo, STB 3116, sistema de videoconferência 3118 ou sistema de videovigilância 3120, um display externo 3126 é contatado para receber e mostrar os dados decodificados.
[0548] Quando cada dispositivo neste sistema realiza codificação ou decodificação, o dispositivo de codificação de imagem ou o dispositivo de decodificação de imagem, como mostrado nas modalidades mencionadas acima, pode ser usado.
[0549] A FIG. 14 é um diagrama que mostra uma estrutura de um exemplo do dispositivo terminal 3106. Depois do dispositivo terminal 3106 receber o fluxo a partir do dispositivo de captura 3102, a unidade de procedimento de protocolo 3202 analisa o protocolo de transmissão do fluxo. O protocolo inclui, mas não está limitado ao Protocolo de Transmissão em Tempo Real (RTSP), Protocolo de Transferência de Hiper Texto (HTTP), protocolo de transmissão ao vivo HTTP (HLS), MPEG-DASH, protocolo de transporte em tempo real (RTP), Protocolo de Mensagem em Tempo Real (RTMP) ou qualquer tipo de combinação dos mesmos ou semelhantes.
[0550] Depois da unidade de procedimento de protocolo 3202 processar o fluxo, o arquivo de fluxo é gerado. O arquivo é emitido para uma unidade de demultiplexação 3204. A unidade de demultiplexação 3204 pode separar os dados multiplexados nos dados de áudio codificados e nos dados de vídeo codificados. Como descrito acima, para alguns cenários práticos, por exemplo, no sistema de videoconferência, os dados de áudio codificados e os dados de vídeo codificados não são multiplexados. Nesta situação, os dados codificados são transmitidos para o decodificador de vídeo 3206 e decodificador de áudio 3208 sem através da unidade de demultiplexação 3204.
[0551] Através do processamento de demultiplexação, o fluxo elementar de vídeo (ES), ES de áudio e, opcionalmente, a legenda são gerados. O decodificador de vídeo 3206, que inclui o decodificador de vídeo 30 como explicado nas modalidades mencionadas acima, decodifica o ES de vídeo pelo método de decodificação como mostrado nas modalidades mencionadas acima para gerar quadro de vídeo, e alimenta estes dados para a unidade síncrona
3212. O decodificador de áudio 3208, decodifica o ES de áudio para gerar o quadro de áudio, e alimenta estes para a unidade síncrona 3212. Alternativamente, o quadro de vídeo pode ser armazenado em um buffer (não mostrado na FIG. Y) antes da alimentação para a unidade síncrona 3212. Similarmente, o quadro de áudio pode ser armazenado em um buffer (não mostrado na FIG. Y) antes da alimentação para a unidade síncrona 3212.
[0552] A unidade síncrona 3212 sincroniza o quadro de vídeo e o quadro de áudio, e suporta o vídeo/áudio para um display de vídeo/áudio 3214. Por exemplo, a unidade síncrona 3212 sincroniza a apresentação de informações de vídeo e áudio. As informações podem codificar na sintaxe usando carimbos de data e hora relativos à apresentação de dados de áudio e visuais codificados e carimbos de data e hora relativos à liberação do fluxo de dados.
[0553] Se a legenda for incluída no fluxo, o decodificador de legenda 3210 decodifica a legenda, e sincroniza com o quadro de vídeo e quadro de áudio, e suporta o vídeo/áudio/legenda para um display de vídeo/áudio/legenda
3216.
[0554] A presente invenção não está limitada ao sistema mencionado acima e o dispositivo de codificação de imagem ou o dispositivo de decodificação de imagem nas modalidades mencionadas acima podem ser incorporados em outro sistema, por exemplo, um sistema de carro.
Operadores Matemáticos
[0555] Os operadores matemáticos usados neste pedido são similares aos usados na linguagem de programação C. Entretanto, os resultados da divisão inteira e operações aritméticas de deslocamento são definidos mais precisamente, e as operações adicionais são definidas, tais como exponenciação e divisão com valor real. As convenções de numeração e contagem geralmente começam em 0, por exemplo, “o primeiro” é equivalente ao 0ésimo, “o segundo” é equivalente ao 1o, etc. Operadores Aritméticos
[0556] Os seguintes operadores aritméticos são definidos como a seguir: + Adição Subtração (como um operador de dois argumentos) ou negação (como um − operador de prefixo unário) * Multiplicação, incluindo multiplicação de matriz Exponenciação. Especifica x elevado a y. Em outros contextos, tal notação é xy usada para sobrescrito, não pretendido para interpretação como exponenciação. Divisão inteira com truncamento do resultado em direção à zero. Por / exemplo, 7/4 e −7/−4 são truncados para 1 e −7/4 e 7/−4 são truncados para −1. Usado para denotar divisão nas equações matemáticas onde nenhum ÷ truncamento ou arredondamento é pretendido. x Usado para denotar divisão nas equações matemáticas onde nenhum y truncamento ou arredondamento é pretendido. y � f(i) A soma de f(i) com i levando todos os valores inteiros de x até e incluindo y. i=x Módulo. Restante de x dividido por y, definido apenas para x e y inteiros x%y com x >= 0 e y > 0. Operadores Lógicos
[0557] Os seguintes operadores lógicos são definidos como a seguir: x && y Booleano lógico “e” de x e y x | | y Booleano lógico “ou” de x e y
! Booleano lógico “não” x ? y : z Se x for TRUE ou não for igual a 0, avalia o valor de y; de outro modo, avalia o valor de z. Operadores Relacionais
[0558] Os seguintes operadores relacionais são definidos como a seguir: > Maior do que >= Maior do que ou igual a < Menor do que <= Menor do que ou igual a = = Igual a != Diferente de
[0559] Quando um operador relacional é aplicado a um elemento de sintaxe ou variável que foi atribuída ao valor “na” (não aplicável), o valor “na” é tratado como um valor distinto para o elemento de sintaxe ou variável. O valor “na” é considerado igual a nenhum outro valor. Operadores de Bit-wise
[0560] Os seguintes operadores de bit-wise são definidos como a seguir: &Bit-wise “e”. Ao operar com argumentos inteiro, operar em uma representação de complemento de dois do valor inteiro. Ao operar com um argumento binário que contém menor bits do que outro argumento, o argumento mais curto é estendido adicionais bits mais significantes iguais a 0. |Bit-wise “ou”. Ao operar com argumentos inteiros, operar com uma representação de complemento de dois do valor inteiro. Ao operar com um argumento binário que contém menos bits do que outro argumento, o argumento mais curto é estendido adicionando bits mais significante iguais a 0. ^Bit-wise “exclusivo ou”. Ao operar com argumentos inteiros, operar com uma representação de complemento de dois do valor inteiro. Ao operar com um argumento binário que contém menos bits do que outro argumento, o argumento mais curto é estendido adicionando bits mais significantes iguais a 0. x >> y Deslocamento aritmético para a direita de uma representação inteira de complemento de dois de x por y dígitos binários. Esta função é definida apenas para os valores inteiros não negativos de y. Os bits deslocados nos bits mais significantes (MSBs) como um resultado do deslocamento para a direita têm um valor igual ao MSB de x antes da operação de deslocamento. x << y Deslocamento aritmético para a esquerda de uma representação inteira de complemento de dois de x por y dígitos binários. Esta função é definida apenas para valores inteiros não negativos de y. Os bits deslocados nos bits menos significantes (LSBs) como um resultado do deslocamento para a esquerda têm um valor igual a 0. Operadores de Atribuição
[0561] Os seguintes operadores de atribuição são definidos como a seguir: = Operador de atribuição + + Incremento, isto é, x+ + é equivalente a x = x + 1; quando usado em um índice de arranjo, avalia o valor da variável antes da operação de incremento. − − Decremento, isto é, x− − é equivalente a x = x − 1; quando usado em um índice de arranjo, avalia o valor da variável antes da operação de decremento. += Incremento pela quantidade especificada, isto é, x += 3 é equivalente a x = x + 3, e x += (−3) é equivalente a x = x + (−3). −= Decremento pela quantidade especificada, isto é, x −= 3 é equivalente a x =x − 3, e x −= (−3) é equivalente a x = x − (−3). Notação de Faixa
[0562] A seguinte notação é usada para especificar uma faixa de valores: x = y..zx assume valores inteiros partindo de y para z, inclusive, com x, y e z sendo números inteiros e z sendo maior do que y. Funções Matemáticas
[0563] As seguintes funções matemáticas são definidas: x ; x >= 0 Abs(x) = � −x ; x<0 Asin(x) a função de seno inversa trigonométrica, operando com um argumento x que está na faixa de −1,0 a 1,0, inclusive, com um valor de saída na faixa de −π÷2 para π÷2, inclusive, em unidades de radianos Atan(x) a função de tangente inversa trigonométrica, operando com um argumento x, com um valor de saída na faixa de −π÷2 para π÷2, inclusive, em unidades de radianos y ⎧ Atan � x � ; x>0 ⎪ y ⎪ Atan � x � + π ; x < 0 && y >= 0 Atan2(y, x) = y Atan � � − π ; x < 0 && y < 0 ⎨ x π ⎪ + ; x = = 0 && y >= 0 2 ⎪ − π ; de outro modo ⎩ 2
Ceil(x) o menor inteiro maior do que ou igual a x.
Clip1Y(x) = Clip3(0, (1 << BitDepthY) − 1, x) Clip1C(x) = Clip3(0, (1 << BitDepthC) − 1, x) x ; z<x Clip3(x, y, z) = � y ; z>y z ; de outro modo Cos(x) a função de cosseno trigonométrica operado com um argumento x em unidades de radianos.
Floor(x) o maior inteiro menor do que ou igual a x. c+d ; b − a >= d/2 GetCurrMsb(a, b, c, d) = � c − d ; a − b > d/2 c ; de outro modo Ln(x) o logaritmo natural de x (o logaritmo de base e, onde e é o constante de base do logaritmo natural 2,718 281 828...). Log2(x) o logaritmo de base 2 de x.
Log10(x) o logaritmo de base 10 de x. x ; x <= y Min(x, y) = � y ; x>y x ; x >= y Max(x, y) = � y ; x<y Round(x) = Sign(x) * Floor(Abs(x) + 0,5) 1 ; x>0 Sign(x) = � 0 ; x==0 −1 ; x<0 Sin(x) a função de seno trigonométrica operando com um argumento x em unidades de radianos Sqrt(x) = √x
Swap(x, y) = (y, x) Tan(x) a função de tangente trigonométrica operando com um argumento x em unidades de radianos Ordem de Precedência de Operação
[0564] Quando uma ordem de precedência em uma expressão não é indicado explicitamente pelo uso de parêntesis, a seguinte regra é aplicada: - As operações de uma precedência superior são avaliadas antes de qualquer operação de uma precedência inferior. - As operações da mesma precedência são avaliadas sequencialmente da esquerda para a direita.
[0565] A tabela abaixo especifica a precedência das operações da mais alta para a mais baixa; uma posição superior na tabela indica uma precedência superior.
[0566] Para estes operadores que também são usados na linguagem de programação C, a ordem de precedência usada nesta especificação é a mesma que a usada na linguagem de programação C. Tabela: Precedência da operação da mais alta (na parte superior da tabela) para a mais baixa (na parte inferior da tabela) operações (com operandos x, y e z) “x++”, “x− −” “!x”, “−x” (como um operador de prefixo unário) xy x “x * y”, “x/y”, “x ÷ y”, “ ”, “x % y” y “x + y”, “x − y” (como um operador de dois y ∑ f( i ) argumentos), “ i=x ” “x << y”, “x >> y” “x < y”, “x <= y”, “x > y”, “x >= y” “x = = y”, “x != y” “x & y” “x | y”
“x && y” “x | | y” “x ? y : z” “x..y” “x = y”, “x += y”, “x −= y” Descrição do texto das operações lógicas
[0567] No texto, uma afirmação das operações lógicas que seriam descritas matematicamente da seguinte forma: if(condition 0) statement 0 else if(condition 1) statement 1 ... else/* informative remark on remaining condition */ statement n pode ser descrito da seguinte maneira: ... as follows/... o seguinte é aplicado: - Se condição 0, afirmação 0 - De outro modo, se condição 1, afirmação 1 - ... - De outro modo (observação informativa sobre a condição remanescente), afirmação n Cada afirmação “Se ... De outro modo, se ... De outro modo, ...” no texto é introduzida com “... como a seguir” ou “... o seguinte é aplicado” imediatamente seguido por “Se ... “. A última condição de “Se ... De outro modo, se ... De outro modo, ...” é sempre um “De outro modo, ...”. As declarações intercaladas “Se ... De outro modo, se ... De outro modo, ...” podem ser identificadas combinando “... como a seguir” ou “... o seguinte é aplicado” com a terminação “De outro modo, ...”. No texto, uma afirmação das operações lógicas que seriam descritas matematicamente da seguinte forma: if(condition 0a && condition 0b) statement 0 else if(condition 1a | | condition 1b)
statement 1 ... else statement n pode ser descrito da seguinte maneira: ... as follows/... o seguinte é aplicado: - Se todas as seguintes condições forem verdadeiras, afirmação 0: - condição 0a - condição 0b - De outro modo, se uma ou mais das seguintes condições forem verdadeiras, afirmação 1: - condição 1a - condição 1b - ... - De outro modo, afirmação n No texto, uma afirmação das operações lógicas que seriam descritas matematicamente da seguinte forma: if(condition 0) statement 0 if(condition 1) statement 1 pode ser descrito da seguinte maneira: Quando condição 0, afirmação 0 Quando condição 1, afirmação 1.
[0568] Embora as modalidades reveladas neste relatório tenham sido descritas principalmente com base na codificação de vídeo, deve ser observado que as modalidades do sistema de codificação 10, codificador 20 e decodificador 30 (e, correspondentemente, o sistema 10) e as outras modalidades descritas neste relatório também podem ser configuradas ainda para o processamento ou codificação de imagem, isto é, o processamento ou codificação de uma imagem individual independente de qualquer imagem precedente ou consecutiva como na codificação de vídeo. Em geral, apenas as unidades de predição inter 244 (codificador) e 344 (decodificador) podem não estar disponíveis no caso da codificação de processamento de imagem ser limitada a uma única imagem 17.
Todas as outras funcionalidades (também referidas como ferramentas ou tecnologias) do codificador de vídeo 20 e decodificador de vídeo 30 podem igualmente ser usadas ainda para o processamento de imagem, por exemplo, cálculo residual 204/304, transformada 206, quantização 208, quantização inversa 210/310, transformada (inversa) 212/312, particionamento 262/362, predição intra 254/354, e/ou filtragem loop 220, 320, e codificação de entropia 270 e decodificação de entropia 304.
[0569] As modalidades, por exemplo, do codificador 20 e do decodificador 30, e as funções descritas neste relatório, por exemplo, com referência ao codificador 20 e ao decodificador 30, podem ser implementadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas em uma mídia legível por computador ou transmitidas através da mídia de comunicação como uma ou mais instruções ou códigos e executadas por uma unidade de processamento com base em hardware. A mídia legível por computador pode incluir a mídia legível por computador, que corresponde a uma mídia tangível, tal como mídia de armazenamento de dados ou mídia de comunicação incluindo qualquer mídia que facilite a transferência de um programa de computador a partir de uma placa para outra, por exemplo, de acordo com um protocolo de comunicação. Desta maneira, a mídia legível por computador geralmente pode corresponder à (1) mídia de armazenamento legível por computador tangível que é não transitória ou (2) uma mídia de comunicação, tal como um onda de sinal ou portadora. A mídia de armazenamento de dados pode ser qualquer mídia disponível que possa ser acessada por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para a implementação das técnicas descritas nesta revelação. Um produto de programa de computador pode incluir uma mídia legível por computador.
[0570] Através do exemplo e não limitando, tal mídia de armazenamento legível por computador pode compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento de disco óptico, armazenamento de disco magnético ou outros dispositivos de armazenamento magnético, memória flash, ou qualquer outra mídia que possa ser usada para armazenar o código de programa desejado na forma de instruções ou estruturas de dados e que possa ser acessada por um computador. Também, qualquer conexão é apropriadamente denominada uma mídia legível por computador. Por exemplo, se as instruções forem transmitidas de um website, servidor ou outra fonte remota usando um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL) ou tecnologias sem fio, tal como infravermelho, rádio e micro-ondas, em seguida, o cabo coaxial, cabo de fibra óptica, par trançado, DSL ou tecnologias sem fio, tal como infravermelho, rádio e micro-ondas são incluídas na definição de mídia. Deve ser entendido, entretanto, que a mídia de armazenamento legível por computador e a mídia de armazenamento de dados não incluem conexões, ondas de portadora, sinais ou outra mídia transitória, mas são, em vez disso, direcionadas para a mídia de armazenamento tangível não transitória. Disquete e disco, como usado neste relatório, incluem disco compacto (CD), disco à laser, disco óptico, disco versátil digital (DVD), disquete e disco Blu-ray, onde os disquetes usualmente reproduzem dados magneticamente, enquanto os discos reproduzem dados opticamente com lasers. As combinações do anterior também devem ser incluídas dentro do escopo da mídia legível por computador.
[0571] As instruções podem ser executadas por um ou mais processadores, tais como um ou mais processadores de sinal digital (DSPs), microprocessadores de uso geral, circuitos integrados específicos da aplicação (ASICs), arranjos de porta programáveis em campo (FPGAs) ou outros circuitos lógicos equivalentes integrados ou discretos. Consequentemente, o termo “processador”, como usado neste relatório pode se referir a qualquer uma da estrutura anterior ou qualquer outra estrutura adequada para a implementação das técnicas descritas neste relatório. Além disso, em alguns aspectos, a funcionalidade descrita neste relatório pode ser fornecida dentro de módulos de hardware e/ou software dedicados configurados para codificar e decodificar, ou incorporados em uma codec combinada. Também, as técnicas podem ser implementadas completamente em um ou mais circuitos ou elementos lógicos.
[0572] As técnicas desta revelação podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um monofone sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritos nesta revelação para enfatizar os aspectos funcionais de dispositivos configurados para realizar as técnicas reveladas, mas não necessariamente requerem a realização de diferentes unidades de hardware.
Em vez disso, como descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec e fornecidas por uma coleção de unidades de hardware interoperativas, incluindo um ou mais processadores como descritos acima, em conjunto com software e/ou firmware adequado.

Claims (30)

REIVINDICAÇÕES
1. Método para realizar predição intra usando um modelo linear, CARACTERIZADO pelo fato de que compreende: determinar um conjunto de filtros de amostragem reduzida com base em informações de formato de croma, em que as informações de formato de croma indicam um formato de croma de uma imagem à qual um bloco atual pertence; obter amostras de luma de amostragem reduzida de amostras de luma reconstruídas em um bloco de luma do bloco atual e amostras de referência de luma de amostragem reduzida de amostras de referência de luma selecionadas do bloco de luma usando filtros de amostragem reduzida respectivos entre o conjunto de filtros de amostragem reduzida; determinar um ou mais coeficientes de modelo linear com base nas amostras de referência de luma de amostragem reduzida e em amostras de referência de croma que correspondem às amostras de referência de luma de amostragem reduzida; e obter amostras de predição de um bloco de croma que corresponde ao bloco de luma com base nos coeficientes de modelo linear e nas amostras de luma de amostragem reduzida das amostras de luma reconstruídas no bloco de luma.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a determinação de um conjunto de filtros de amostragem reduzida com base em informações de formato de croma compreende: determinar informações de razão de subamostragem nas direções horizontal e vertical com base nas informações de formato de croma; e determinar o conjunto de filtros de amostragem reduzida com base nas informações de razão de subamostragem.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que para o formato de croma sendo um formato de croma 4:2:0, um primeiro conjunto de filtros de amostragem reduzida é usado para o bloco de luma do bloco atual;
para o formato de croma sendo um formato de croma 4:2:2, um segundo conjunto de filtros de amostragem reduzida é usado para um bloco de luma do bloco atual; ou para o formato de croma sendo um formato de croma 4:4:4, um terceiro conjunto de filtros de amostragem reduzida é usado para um bloco de luma do bloco atual.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, CARACTERIZADO pelo fato de que quando uma amostra de croma subamostrada está colocalizada com uma amostra de luma correspondente dentro do bloco atual, a obtenção de amostras de luma de amostragem reduzida de amostras de luma reconstruídas em um bloco de luma do bloco atual e amostras de referência de luma de amostragem reduzida de amostras de referência de luma selecionadas do bloco de luma usando filtros de amostragem reduzida respectivos entre o conjunto de filtros de amostragem reduzida compreende: obter uma amostra de luma de amostragem reduzida de uma amostra de luma reconstruída no bloco de luma aplicando-se um primeiro filtro de amostragem reduzida a um primeiro conjunto de amostras de luma reconstruídas, em que o primeiro conjunto de amostras de luma reconstruídas compreende: amostras de luma reconstruídas em posições que são horizontal e/ou verticalmente adjacentes a uma posição da amostra de luma reconstruída; e obter uma amostra de referência de luma de amostragem reduzida de pelo menos uma amostra de luma de referência selecionada aplicando-se o primeiro filtro de amostragem reduzida a um segundo conjunto de amostras de luma reconstruídas, em que o segundo conjunto de amostras de luma reconstruídas compreende: amostras de luma reconstruídas em posições que são horizontal e/ou verticalmente adjacentes à posição da amostra de luma de referência selecionada; em que o primeiro filtro de amostragem reduzida é selecionado a partir do conjunto de filtros de amostragem reduzida.
5. Método, de acordo com qualquer uma das reivindicações 1 a 3, CARACTERIZADO pelo fato de que quando uma amostra de croma subamostrada não está colocalizada com uma amostra de luma correspondente dentro do bloco atual, a obtenção de amostras de luma de amostragem reduzida de amostras de luma reconstruídas em um bloco de luma do bloco atual e amostras de referência de luma de amostragem reduzida de amostras de referência de luma selecionadas do bloco de luma usando filtros de amostragem reduzida respectivos entre o conjunto de filtros de amostragem reduzida compreende: obter uma amostra de luma de amostragem reduzida de uma amostra de luma reconstruída no bloco de luma aplicando-se um segundo filtro de amostragem reduzida a um terceiro conjunto de amostras de luma reconstruídas, em que o terceiro conjunto de amostras de luma reconstruídas compreende: amostras de luma reconstruídas em posições que são horizontal e/ou verticalmente adjacentes a uma posição da amostra de luma reconstruída; e obter uma amostra de referência de luma de amostragem reduzida de pelo menos uma amostra de luma de referência selecionada aplicando-se os segundos filtros de amostragem reduzida a um quarto conjunto de amostras de luma reconstruídas, em que o quarto conjunto de amostras de luma reconstruídas compreende: amostras de luma reconstruídas em posições que são horizontal e/ou verticalmente adjacentes à posição da amostra de luma de referência selecionada; em que o segundo filtro de amostragem reduzida é selecionado a partir do conjunto de filtros de amostragem reduzida.
6. Método, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que a amostra de croma subamostrada estar colocalizada com a amostra de luma correspondente dentro do bloco atual ocorre quando um tipo de amostra de croma da amostra de croma subamostrada compreende qualquer um dentre os seguintes: - Tipo de amostra de croma 2, ou - Tipo de amostra de croma 4.
7. Método, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que a amostra de croma subamostrada não estar colocalizada com a amostra de luma correspondente dentro do bloco atual, ocorre quando um tipo de amostra de croma da amostra de croma subamostrada compreende qualquer um dentre os seguintes:
- Tipo de amostra de croma 0, - Tipo de amostra de croma 1, - Tipo de amostra de croma 3, ou - Tipo de amostra de croma 5.
8. Método, de acordo com qualquer uma das reivindicações 1 a 7, CARACTERIZADO pelo fato de que o conjunto de filtros de amostragem reduzida compreende: um filtro bypass se pelo menos uma condição compreendendo o formato de croma ser formato de croma 4:4:4 for atendida; ou, o conjunto de filtros de amostragem reduzida compreende: um conjunto de filtros {F2, F3, F5, F6} se pelo menos uma condição compreendendo o formato de croma ser formato de croma 4:2:0 for atendida, em que: F3[0] = 1, F3[1] = 2, F3[2] = 1 F5[i][j] = F6[i][j] = 0, com i = 0..2, j = 0..2 F5[0][1] = 1, F5[1][1] = 4, F5[2][1] = 1, F5[1][0] = 1, F5[1][2] = 1 F6[0][1] = 1, F6[1][1] = 2, F6[2][1] = 1, F6[0][2] = 1, F6[1][2] = 2, F6[2][2] = 1, F2[0] = 1, F2[1] = 1; ou, o conjunto de filtros de amostragem reduzida compreende: um conjunto de filtros {F2, F3, F5, F6} se pelo menos uma condição compreendendo o formato de croma ser formato de croma 4:2:2 for atendida, em que: F3[0] = 1, F3[1] = 2, F3[2] = 1 F5[i][j] = F6[i][j] = 0, com i = 0..2, j = 0..2 F5[0][1] = 0, F5[1][1] = 8, F5[2][1] = 0, F5[1][0] = 0, F5[1][2] = 0 F6[0][1] = 2, F6[1][1] = 4, F6[2][1] = 2, F6[0][2] = 0, F6[1][2] = 0, F6[2][2] = 0, F2[0] = 2, F2[1] = 0.
9. Método, de acordo com qualquer uma das reivindicações 2 a 7, CARACTERIZADO pelo fato de que as informações de razão de subamostragem nas direções horizontal e vertical são representadas por valores das variáveis SubWidthC e SubHeightC, respectivamente; e o conjunto de filtros de amostragem reduzida compreende: um conjunto de filtros {F2, F3, F5, F6} se pelo menos uma condição incluindo SubWidthC==2 e SubHeightC==2 for atendida, em que:
F3[0] = 1, F3[1] = 2, F3[2] = 1 F5[i][j] = F6[i][j] = 0, com i = 0..2, j = 0..2 F5[0][1] = 1, F5[1][1] = 4, F5[2][1] = 1, F5[1][0] = 1, F5[1][2] = 1 F6[0][1] = 1, F6[1][1] = 2, F6[2][1] = 1, F6[0][2] = 1, F6[1][2] = 2, F6[2][2] = 1, F2[0] = 1, F2[1] = 1 o conjunto de filtros de amostragem reduzida compreende: um conjunto de filtros {F2, F3, F5, F6} se pelo menos uma condição incluindo SubWidthC==2 e SubHeightC==1 for atendida, em que: F3[0] = 1, F3[1] = 2, F3[2] = 1 F5[i][j] = F6[i][j] = 0, com i = 0..2, j = 0..2 F5[0][1] = 0, F5[1][1] = 8, F5[2][1] = 0, F5[1][0] = 0, F5[1][2] = 0 F6[0][1] = 2, F6[1][1] = 4, F6[2][1] = 2, F6[0][2] = 0, F6[1][2] = 0, F6[2][2] = 0, F2[0] = 2, F2[1] = 0.
10. Método, de acordo com qualquer uma das reivindicações 1 a 9, CARACTERIZADO pelo fato de que as amostras de referência de luma selecionadas compreendem pelo menos uma dentre: amostras de luma vizinhas que estão acima do bloco de luma e que são selecionadas com base em L amostras de referência de croma disponíveis, ou amostras de luma vizinhas que estão à esquerda do bloco de luma e que são selecionadas com base em L amostras de referência de croma disponíveis.
11. Método, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que as posições das amostras de referência de croma disponíveis são especificadas como: S[W’/4, -1], S[3W’/4, -1], S[-1, H’/4], S[-1, 3H’/4] quando modo LM é aplicado e ambas as amostras vizinhas acima e à esquerda estão disponíveis; S[W’/8, -1], S[3W’/8, -1], S[5W’/8, -1], S[7W’/8, -1] quando modo LM- A é aplicado ou apenas as amostras vizinhas acima estão disponíveis; ou S[-1, H’/8], S[-1, 3H’/8], S[-1, 5H’/8], S[-1, 7H’/8] quando modo LM-L é aplicado ou apenas as amostras vizinhas à esquerda estão disponíveis;
em que as dimensões de bloco de croma são W×H, e W’ e H’ são definidas como W’ = W, H’ = H quando o modo LM é aplicado; W’ = W + H quando o modo LM-A é aplicado; H’ = H + W quando o modo LM-L é aplicado.
12. Método, de acordo com qualquer uma das reivindicações 1 a 11, CARACTERIZADO pelo fato de que a determinação de um ou mais coeficientes de modelo linear com base nas amostras de referência de luma de amostragem reduzida das amostras de referência de luma selecionadas e em amostras de referência de croma que correspondem às amostras de referência de luma de amostragem reduzida compreende: determinar um valor de luma máximo e um valor de luma mínimo com base nas amostras de referência de luma de amostragem reduzida; obter um primeiro valor de croma com base, pelo menos em parte, em uma ou mais posições de uma ou mais amostras de referência de luma de amostragem reduzida associadas ao valor de luma máximo; obter um segundo valor de croma com base, pelo menos em parte, em uma ou mais posições de uma ou mais amostras de referência de luma de amostragem reduzida associadas ao valor de luma mínimo; calcular o um ou mais coeficientes de modelo linear com base no primeiro valor de croma, no segundo valor de croma, no valor de luma máximo e no valor de luma mínimo.
13. Aparelho para predição intra usando modelo linear, CARACTERIZADO pelo fato de que compreende: uma unidade de determinação configurada para determinar um conjunto de filtros de amostragem reduzida com base em informações de formato de croma, em que as informações de formato de croma indicam um formato de croma de uma imagem à qual um bloco atual pertence; uma unidade de filtragem configurada para obter amostras de luma de amostragem reduzida de amostras de luma reconstruídas em um bloco de luma do bloco atual e amostras de referência de luma de amostragem reduzida de amostras de referência de luma selecionadas do bloco de luma usando filtros de amostragem reduzida respectivos entre o conjunto de filtros de amostragem reduzida;
uma unidade de derivação de modelo linear configurada para determinar um ou mais coeficientes de modelo linear com base nas amostras de referência de luma de amostragem reduzida e em amostras de referência de croma que correspondem às amostras de referência de luma de amostragem reduzida; e uma unidade de processamento de predição, configurada para obter amostras de predição de um bloco de croma que corresponde ao bloco de luma com base nos coeficientes de modelo linear e nas amostras de luma de amostragem reduzida das amostras de luma reconstruídas no bloco de luma.
14. Aparelho, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que a unidade de determinação é configurada para: determinar informações de razão de subamostragem nas direções horizontal e vertical com base nas informações de formato de croma; e determinar o conjunto de filtros de amostragem reduzida com base nas informações de razão de subamostragem.
15. Aparelho, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que para o formato de croma sendo um formato de croma 4:2:0, um primeiro conjunto de filtros de amostragem reduzida é usado para o bloco de luma do bloco atual; para o formato de croma sendo um formato de croma 4:2:2, um segundo conjunto de filtros de amostragem reduzida é usado para um bloco de luma do bloco atual; ou para o formato de croma sendo um formato de croma 4:4:4, um terceiro conjunto de filtros de amostragem reduzida é usado para um bloco de luma do bloco atual.
16. Aparelho, de acordo com qualquer uma das reivindicações 13 a 15, CARACTERIZADO pelo fato de que quando uma amostra de croma subamostrada está colocalizada com uma amostra de luma correspondente dentro do bloco atual, a unidade de filtragem é configurada para: obter uma amostra de luma de amostragem reduzida de uma amostra de luma reconstruída no bloco de luma aplicando-se um primeiro filtro de amostragem reduzida a um primeiro conjunto de amostras de luma reconstruídas, em que o primeiro conjunto de amostras de luma reconstruídas compreende: amostras de luma reconstruídas em posições que são horizontal e/ou verticalmente adjacentes a uma posição da amostra de luma reconstruída; e obter uma amostra de referência de luma de amostragem reduzida de pelo menos uma amostra de luma de referência selecionada aplicando-se o primeiro filtro de amostragem reduzida a um segundo conjunto de amostras de luma reconstruídas, em que o segundo conjunto de amostras de luma reconstruídas compreende: amostras de luma reconstruídas em posições que são horizontal e/ou verticalmente adjacentes à posição da amostra de luma de referência selecionada; em que o primeiro filtro de amostragem reduzida é selecionado a partir do conjunto de filtros de amostragem reduzida.
17. Aparelho, de acordo com qualquer uma das reivindicações 13 a 15, CARACTERIZADO pelo fato de que quando uma amostra de croma subamostrada não está colocalizada com uma amostra de luma correspondente dentro do bloco atual, a unidade de filtragem é configurada para: obter uma amostra de luma de amostragem reduzida de uma amostra de luma reconstruída no bloco de luma aplicando-se um segundo filtro de amostragem reduzida a um terceiro conjunto de amostras de luma reconstruídas, em que o terceiro conjunto de amostras de luma reconstruídas compreende: amostras de luma reconstruídas em posições que são horizontal e/ou verticalmente adjacentes a uma posição da amostra de luma reconstruída; e obter uma amostra de referência de luma de amostragem reduzida de pelo menos uma amostra de luma de referência selecionada aplicando-se os segundos filtros de amostragem reduzida a um quarto conjunto de amostras de luma reconstruídas, em que o quarto conjunto de amostras de luma reconstruídas compreende: amostras de luma reconstruídas em posições que são horizontal e/ou verticalmente adjacentes à posição da amostra de luma de referência selecionada; em que o segundo filtro de amostragem reduzida é selecionado a partir do conjunto de filtros de amostragem reduzida.
18. Aparelho, de acordo com a reivindicação 16, CARACTERIZADO pelo fato de que a amostra de croma subamostrada estar colocalizada com a amostra de luma correspondente dentro do bloco atual ocorre quando um tipo de amostra de croma da amostra de croma subamostrada compreende qualquer um dentre os seguintes: - Tipo de amostra de croma 2, ou - Tipo de amostra de croma 4.
19. Aparelho, de acordo com a reivindicação 17, CARACTERIZADO pelo fato de que a amostra de croma subamostrada não estar colocalizada com a amostra de luma correspondente dentro do bloco atual, ocorre quando um tipo de amostra de croma da amostra de croma subamostrada compreende qualquer um dentre os seguintes: - Tipo de amostra de croma 0, - Tipo de amostra de croma 1, - Tipo de amostra de croma 3, ou - Tipo de amostra de croma 5.
20. Aparelho, de acordo com qualquer uma das reivindicações 13 a 19, CARACTERIZADO pelo fato de que a unidade de determinação é configurada para determinar um conjunto de filtros de amostragem reduzida, em que o conjunto de filtros de amostragem reduzida compreende: um filtro bypass se pelo menos uma condição compreendendo o formato de croma ser formato de croma 4:4:4 for atendida; ou, o conjunto de filtros de amostragem reduzida compreende: um conjunto de filtros {F2, F3, F5, F6} se pelo menos uma condição compreendendo o formato de croma ser formato de croma 4:2:0 for atendida, em que: F3[0] = 1, F3[1] = 2, F3[2] = 1 F5[i][j] = F6[i][j] = 0, com i = 0..2, j = 0..2 F5[0][1] = 1, F5[1][1] = 4, F5[2][1] = 1, F5[1][0] = 1, F5[1][2] = 1 F6[0][1] = 1, F6[1][1] = 2, F6[2][1] = 1, F6[0][2] = 1, F6[1][2] = 2, F6[2][2] = 1, F2[0] = 1, F2[1] = 1; ou, o conjunto de filtros de amostragem reduzida compreende: um conjunto de filtros {F2, F3, F5, F6} se pelo menos uma condição compreendendo o formato de croma ser formato de croma 4:2:2 for atendida, em que: F3[0] = 1, F3[1] = 2, F3[2] = 1
F5[i][j] = F6[i][j] = 0, com i = 0..2, j = 0..2 F5[0][1] = 0, F5[1][1] = 8, F5[2][1] = 0, F5[1][0] = 0, F5[1][2] = 0 F6[0][1] = 2, F6[1][1] = 4, F6[2][1] = 2, F6[0][2] = 0, F6[1][2] = 0, F6[2][2] = 0, F2[0] = 2, F2[1] = 0.
21. Aparelho, de acordo com qualquer uma das reivindicações 14 a 19, CARACTERIZADO pelo fato de que as informações de razão de subamostragem nas direções horizontal e vertical são representadas por valores das variáveis SubWidthC e SubHeightC, respectivamente; e a unidade de determinação é configurada para determinar o conjunto de filtros de amostragem reduzida, em que: o conjunto de filtros de amostragem reduzida compreende: um conjunto de filtros {F2, F3, F5, F6} se pelo menos uma condição incluindo SubWidthC==2 e SubHeightC==2 for atendida, em que: F3[0] = 1, F3[1] = 2, F3[2] = 1 F5[i][j] = F6[i][j] = 0, com i = 0..2, j = 0..2 F5[0][1] = 1, F5[1][1] = 4, F5[2][1] = 1, F5[1][0] = 1, F5[1][2] = 1 F6[0][1] = 1, F6[1][1] = 2, F6[2][1] = 1, F6[0][2] = 1, F6[1][2] = 2, F6[2][2] = 1, F2[0] = 1, F2[1] = 1 o conjunto de filtros de amostragem reduzida compreende: um conjunto de filtros {F2, F3, F5, F6} se pelo menos uma condição incluindo SubWidthC==2 e SubHeightC==1 for atendida, em que: F3[0] = 1, F3[1] = 2, F3[2] = 1 F5[i][j] = F6[i][j] = 0, com i = 0..2, j = 0..2 F5[0][1] = 0, F5[1][1] = 8, F5[2][1] = 0, F5[1][0] = 0, F5[1][2] = 0 F6[0][1] = 2, F6[1][1] = 4, F6[2][1] = 2, F6[0][2] = 0, F6[1][2] = 0, F6[2][2] = 0, F2[0] = 2, F2[1] = 0.
22. Aparelho, de acordo com qualquer uma das reivindicações 13 a 21, CARACTERIZADO pelo fato de que as amostras de referência de luma selecionadas compreendem pelo menos uma dentre:
amostras de luma vizinhas que estão acima do bloco de luma e que são selecionadas com base em L amostras de referência de croma disponíveis, ou amostras de luma vizinhas que estão à esquerda do bloco de luma e que são selecionadas com base em L amostras de referência de croma disponíveis.
23. Aparelho, de acordo com a reivindicação 22, CARACTERIZADO pelo fato de que as posições das amostras de referência de croma disponíveis são especificadas como: S[W’/4, -1], S[3W’/4, -1], S[-1, H’/4], S[-1, 3H’/4] quando modo LM é aplicado e ambas as amostras de croma vizinhas acima e à esquerda estão disponíveis; S[W’/8, -1], S[3W’/8, -1], S[5W’/8, -1], S[7W’/8, -1] quando modo LM- A é aplicado ou apenas as amostras de croma vizinhas acima estão disponíveis; ou S[-1, H’/8], S[-1, 3H’/8], S[-1, 5H’/8], S[-1, 7H’/8] quando modo LM-L é aplicado ou apenas as amostras de croma vizinhas à esquerda estão disponíveis; em que as dimensões de bloco de croma são W×H, e W’ e H’ são definidas como W’ = W, H’ = H quando o modo LM é aplicado; W’ = W + H quando o modo LM-A é aplicado; H’ = H + W quando o modo LM-L é aplicado.
24. Aparelho, de acordo com qualquer uma das reivindicações 13 a 23, CARACTERIZADO pelo fato de que a unidade de derivação de modelo linear é configurada para determinar um valor de luma máximo e um valor de luma mínimo com base nas amostras de referência de luma de amostragem reduzida, obter um primeiro valor de croma com base, pelo menos em parte, em uma ou mais posições de uma ou mais amostras de referência de luma de amostragem reduzida associadas ao valor de luma máximo; obter um segundo valor de croma com base, pelo menos em parte, em uma ou mais posições de uma ou mais amostras de referência de luma de amostragem reduzida associadas ao valor de luma mínimo; e calcular o um ou mais coeficientes de modelo linear com base no primeiro valor de croma, no segundo valor de croma, no valor de luma máximo e no valor de luma mínimo.
25. Codificador (20), CARACTERIZADO pelo fato de que compreende circuitos de processamento para realizar o método conforme definido em qualquer uma das reivindicações 1 a 12.
26. Decodificador (30), CARACTERIZADO pelo fato de que compreende circuitos de processamento para realizar o método conforme definido em qualquer uma das reivindicações 1 a 12.
27. Produto de programa de computador, CARACTERIZADO pelo fato de que compreende um código de programa para realizar o método conforme definido em qualquer uma das reivindicações 1 a 12.
28. Mídia legível por computador não transitória, CARACTERIZADA pelo fato de que porta um código de programa que, quando executado por um dispositivo de computador, faz com que o dispositivo de computador realize o método conforme definido em qualquer uma das reivindicações 1 a 12.
29. Decodificador, CARACTERIZADO pelo fato de que compreende: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o decodificador para realizar o método conforme definido em qualquer uma das reivindicações 1 a 12.
30. Codificador, CARACTERIZADO pelo fato de que compreende: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o codificador para realizar o método conforme definido em qualquer uma das reivindicações 1 a 12.
BR112021016560-6A 2019-02-22 2020-02-24 Método e aparelho para predição intra usando modelo linear BR112021016560A2 (pt)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201962809555P 2019-02-22 2019-02-22
US62/809,555 2019-02-22
US201962825021P 2019-03-28 2019-03-28
US201962825796P 2019-03-28 2019-03-28
US62/825,796 2019-03-28
US62/825,021 2019-03-28
PCT/CN2020/076466 WO2020169113A1 (en) 2019-02-22 2020-02-24 Method and apparatus for intra prediction using linear model

Publications (1)

Publication Number Publication Date
BR112021016560A2 true BR112021016560A2 (pt) 2021-10-26

Family

ID=72143758

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021016560-6A BR112021016560A2 (pt) 2019-02-22 2020-02-24 Método e aparelho para predição intra usando modelo linear

Country Status (12)

Country Link
US (1) US20210385440A1 (pt)
EP (1) EP3928517A4 (pt)
JP (1) JP2022521757A (pt)
KR (1) KR20210125086A (pt)
CN (7) CN116506599A (pt)
AU (1) AU2020226573A1 (pt)
BR (1) BR112021016560A2 (pt)
CA (1) CA3131027A1 (pt)
CL (1) CL2021002220A1 (pt)
MX (1) MX2021010130A (pt)
WO (1) WO2020169113A1 (pt)
ZA (1) ZA202106297B (pt)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4085631A4 (en) * 2019-12-30 2023-03-22 Beijing Dajia Internet Information Technology Co., Ltd. CROSS COMPONENT DETERMINATION OF CHROMA AND LUMA COMPONENTS OF VIDEO DATA
KR20230002433A (ko) * 2020-04-18 2023-01-05 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 교차 성분 비디오 코딩 시그널링 신택스
WO2023132508A1 (ko) * 2022-01-04 2023-07-13 현대자동차주식회사 크로마 성분을 위한 템플릿 기반 인트라 모드 유도를 위한 방법
WO2023197192A1 (zh) * 2022-04-12 2023-10-19 Oppo广东移动通信有限公司 编解码方法、装置、编码设备、解码设备以及存储介质
EP4262206A1 (en) * 2022-04-14 2023-10-18 FG Innovation Company Limited Method for determining specific linear model and video processing device
WO2024005545A1 (ko) * 2022-06-29 2024-01-04 엘지전자 주식회사 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체
WO2024010359A1 (ko) * 2022-07-05 2024-01-11 엘지전자 주식회사 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8023569B2 (en) * 2005-12-15 2011-09-20 Sharp Laboratories Of America, Inc. Methods and systems for block-based residual upsampling
CN103119943B (zh) * 2011-06-03 2017-03-08 太阳专利托管公司 图像编码方法及图像解码方法
GB2492130A (en) * 2011-06-22 2012-12-26 Canon Kk Processing Colour Information in an Image Comprising Colour Component Sample Prediction Being Based on Colour Sampling Format
TW201309036A (zh) * 2011-06-28 2013-02-16 Samsung Electronics Co Ltd 使用亮度成分影像的預測色度成分影像用的裝置與方法
CN103650512B (zh) * 2011-07-12 2017-04-19 英特尔公司 基于亮度的色度帧内预测
CN103369315B (zh) * 2012-04-06 2016-08-24 华为技术有限公司 色度分量的帧内预测模式的编码、解码方法、设备及系统
US10455249B2 (en) * 2015-03-20 2019-10-22 Qualcomm Incorporated Downsampling process for linear model prediction mode
JP2018056685A (ja) * 2016-09-27 2018-04-05 株式会社ドワンゴ 画像符号化装置、画像符号化方法、及び画像符号化プログラム、並びに、画像復号装置、画像復号方法、及び画像復号プログラム
US11025903B2 (en) * 2017-01-13 2021-06-01 Qualcomm Incorporated Coding video data using derived chroma mode
CN117499630A (zh) * 2017-07-06 2024-02-02 Lx 半导体科技有限公司 图像解码设备、图像编码设备、用于发送图像数据的设备
CN109257605B (zh) * 2017-07-13 2021-11-19 华为技术有限公司 图像处理方法、设备及系统
US11070824B2 (en) * 2017-09-15 2021-07-20 Sony Corporation Image processing device and method

Also Published As

Publication number Publication date
US20210385440A1 (en) 2021-12-09
EP3928517A1 (en) 2021-12-29
ZA202106297B (en) 2022-09-28
CN116405668A (zh) 2023-07-07
MX2021010130A (es) 2021-11-12
CN117041552A (zh) 2023-11-10
CN113545063A (zh) 2021-10-22
CN116418981A (zh) 2023-07-11
AU2020226573A1 (en) 2021-09-30
CA3131027A1 (en) 2020-08-27
JP2022521757A (ja) 2022-04-12
WO2020169113A1 (en) 2020-08-27
CN116506599A (zh) 2023-07-28
EP3928517A4 (en) 2022-04-27
CN116437077A (zh) 2023-07-14
CL2021002220A1 (es) 2022-05-06
CN117278744A (zh) 2023-12-22
CN113545063B (zh) 2023-04-28
KR20210125086A (ko) 2021-10-15

Similar Documents

Publication Publication Date Title
WO2020228744A1 (en) An encoder, a decoder and corresponding methods using ibc dedicated buffer and default value refreshing for luma and chroma component
BR112021016560A2 (pt) Método e aparelho para predição intra usando modelo linear
WO2020177520A1 (en) An encoder, a decoder and corresponding methods using ibc search range optimization for abitrary ctu size
US20220014742A1 (en) Encoder, a Decoder and Corresponding Methods Harmonizing Matrix-Based Intra Prediction and Secondary Transform Core Selection
BR112021016677A2 (pt) Método e aparelho para predição inter baseada em afim de sub-blocos de croma
BR112020026818A2 (pt) codificador, decodificador e métodos correspondentes de derivação de resistência de limite de filtro de desbloqueio
BR112020025145A2 (pt) filtro de desbloqueio para fronteiras de subpartição causadas por ferramenta de codificação de subpartição intra
US20240121433A1 (en) Method and apparatus for chroma intra prediction in video coding
BR122022009445A2 (pt) Codificador, decodificador e métodos correspondentes para simplificar sinalização de cabeçalho de imagem
CA3133984A1 (en) Optical flow based video inter prediction
AU2024201152A1 (en) An encoder, a decoder and corresponding methods using intra mode coding for intra prediction
BR112021009833A2 (pt) codificador, decodificador e métodos correspondentes para predição inter
BR112021012708A2 (pt) Método e aparelho de modelagem linear de componente cruzado para predição intra
US20220345712A1 (en) Method and apparatus for intra prediction
US20220159251A1 (en) Method and apparatus of sample adaptive offset in-loop filter with application region size constraint
AU2020233004B2 (en) An encoder, a decoder, and corresponding methods that are used for transform process
WO2021057755A1 (en) An encoder, a decoder and corresponding methods of complexity reduction on intra prediction for the planar mode
US20220321888A1 (en) Method and apparatus of position dependent prediction combination for oblique directional intra prediction