BR112019011883A2 - modo de predição por modelo linear com acesso de amostra para codificação de vídeo - Google Patents

modo de predição por modelo linear com acesso de amostra para codificação de vídeo Download PDF

Info

Publication number
BR112019011883A2
BR112019011883A2 BR112019011883A BR112019011883A BR112019011883A2 BR 112019011883 A2 BR112019011883 A2 BR 112019011883A2 BR 112019011883 A BR112019011883 A BR 112019011883A BR 112019011883 A BR112019011883 A BR 112019011883A BR 112019011883 A2 BR112019011883 A2 BR 112019011883A2
Authority
BR
Brazil
Prior art keywords
luma
block
samples
sample
luma samples
Prior art date
Application number
BR112019011883A
Other languages
English (en)
Inventor
Chen Jianle
Zhang Kai
Zhang Li
Karczewicz Marta
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of BR112019011883A2 publication Critical patent/BR112019011883A2/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

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

Abstract

as técnicas são descritas do modo de predição por modelo linear (lm). em um ou em alguns exemplos, um codificador de vídeo ou decodificador de vídeo pode limitar o número de amostras de luma vizinhas que são buscadas para subamostragem, aumentando assim a velocidade na qual o codificador de vídeo ou decodificador de vídeo é capaz de concluir a codificação ou decodificação de predição por lm.

Description

MODO DE PREDIÇÃO POR MODELO LINEAR COM ACESSO DE AMOSTRA PARA CODIFICAÇÃO DE VÍDEO [001] Este pedido reivindica o beneficio de Pedido provisório de patente US n° 62/436,319 depositado em 19 de dezembro de 2016, cujo conteúdo integral está incorporado por meio deste a titulo de referência.
CAMPO DA TÉCNICA [002] Esta revelação refere-se à codificação e decodificação de video.
FUNDAMENTOS [003] As capacidades de video digital podem ser incorporadas a uma ampla gama de dispositivos, incluindo televisões digitais, sistemas de transmissão direta digital, sistemas de transmissão sem fio, assistentes digitais pessoais (PDAs), computadores laptop ou desktop, computadores tablet, leitores de e-books, câmeras digitais dispositivos de gravação, reprodutores de mídia digital, dispositivos de videogame, consoles de video game, telefones celulares ou telefones de rádio por satélite, denominados smartphones, dispositivos de teleconferência de vídeo, dispositivos de streaming de vídeo e similares. Os dispositivos de vídeo digital implementam técnicas de compactação de vídeo, como aquelas descritas nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento, e extensões de tais padrões. Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar
Petição 870190053680, de 12/06/2019, pág. 6/171
2/119 informações de video digitais com mais eficiência implementando-se tais técnicas de compactação de vídeo.
[004] As técnicas de compactação de vídeo realizam a predição espacial (intra-imagem) e/ou predição temporal (inter-imagem) para reduzir ou remover a redundância inerente em sequências de vídeos. Para codificação de vídeo baseada em bloco, uma fatia de vídeo (ou seja, um quadro de vídeo ou uma porção de um quadro de vídeo) pode ser particionada em blocos de vídeo. Os blocos de vídeo em uma fatia intracodificada (I) de uma imagem são codificados usando predição espacial em relação a amostras de referência em blocos vizinhos na mesma imagem. Os blocos de vídeo em uma fatia de imagem intercodificada (P ou B) podem usar a predição espacial em relação a amostras de referência em blocos vizinhos na mesma imagem ou predição temporal em relação a amostras de referência em outras imagens de referência. A predição espacial ou temporal resulta em um bloco preditivo para um bloco que será codificado. Os dados residuais representam diferenças de pixel entre o bloco original que será codificado e o bloco preditivo. Um bloco intercodifiçado é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência que forma o bloco preditivo, e os dados residuais indicam a diferença entre o bloco codificado e o bloco preditivo. Um bloco intracodifiçado é codificado de acordo com um modo de intra-codificação e os dados residuais. Para compactação adicional, os dados residuais podem ser transformados a partir do domínio de pixel em um domínio de transformada, resultando em
Petição 870190053680, de 12/06/2019, pág. 7/171
3/119 coeficientes residuais, que podem então ser quantizados.
SUMÁRIO [005] Em geral, os aspectos da revelação referem-se a técnicas para subamostragem de amostras de luma vizinhas para o modo de predição por modelo linear (LM). Conforme descrito em mais detalhes, um codificador de video ou decodificador de video pode ser configurado para buscar amostras de luma vizinhas como parte de subamostragem para construir um bloco de predição de croma em modo de predição por LM. Em alguns exemplos, o codificador de video ou o decodificador de video pode ser configurado para não buscar determinadas amostras de luma vizinhas como parte da subamostragem para construir o bloco de predição de croma em modo de predição por LM. Ao não buscar determinadas amostras de luma vizinhas, os exemplos de técnicas podem promover o processamento e o uso da largura de banda de memória eficientes.
[006] Em um exemplo, a revelação descreve um método de decodificação de dados de video, sendo que o método compreende determinar um bloco de luma que corresponde a um bloco de croma, buscar amostras de luma vizinhas para a subamostragem das amostras de luma vizinhas, em que as amostras de luma vizinhas buscadas compreendem uma pluralidade de amostras de luma que estão acima do bloco de luma e excluem as amostras de luma que estão acima e à esquerda de uma amostra de luma superior esquerda do bloco de luma, determinar uma pluralidade de amostras de luma subamostradas com base nas amostras de
Petição 870190053680, de 12/06/2019, pág. 8/171
4/119 luma vizinhas buscadas, em que uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada imediatamente acima da amostra de luma superior esquerda, determinar um ou mais parâmetros de escalonamento com base nas amostras de luma subamostradas, determinar um bloco preditivo com base em um ou mais parâmetros de escalonamento, e predição por modelo linear (LM) que decodifica o bloco de croma com base no bloco preditivo.
[007] Em um exemplo, a revelação descreve um dispositivo para decodificar dados de vídeo, sendo que o dispositivo compreende uma memória de dados de vídeo, e um decodifreader de vídeo que compreende pelo menos um dentre o conjunto de circuitos de função fixa ou conjunto de circuitos programável. O decodificador de vídeo é configurado para determinar um bloco de luma que corresponde a um bloco de croma, buscar, a partir da memória de dados de vídeo, amostras de luma vizinhas para a subamostragem das amostras de luma vizinhas, em que as amostras de luma vizinhas buscadas compreendem uma pluralidade de amostras de luma que estão acima do bloco de luma e excluem as amostras de luma que estão acima e à esquerda de uma amostra de luma superior esquerda do bloco de luma, determinar uma pluralidade de amostras de luma subamostradas com base nas amostras de luma vizinhas buscadas, em que uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada imediatamente acima da amostra de luma superior esquerda, determinar um ou mais parâmetros de escalonamento com base
Petição 870190053680, de 12/06/2019, pág. 9/171
5/119 nas amostras de luma subamostradas, determinar um bloco preditivo com base em um ou mais parâmetros de escalonamento, e a predição por modelo linear (LM) decodifica o bloco de croma com base no bloco preditivo.
[008] Em um exemplo, a revelação descreve um método de codificação de dados de video, sendo que o método compreende determinar um bloco de luma que corresponde a um bloco de croma, buscar amostras de luma vizinhas para a subamostragem das amostras de luma vizinhas, em que as amostras de luma vizinhas buscadas compreendem uma pluralidade de amostras de luma que estão acima do bloco de luma e excluem as amostras de luma que estão acima e à esquerda de uma amostra de luma superior esquerda do bloco de luma, determinar uma pluralidade de amostras de luma subamostradas com base nas amostras de luma vizinhas buscadas, em que uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada imediatamente acima da amostra de luma superior esquerda, determinar um ou mais parâmetros de escalonamento com base nas amostras de luma subamostradas, determinar um bloco preditivo com base em um ou mais parâmetros de escalonamento, e predição por modelo linear (LM) que codifica o bloco de croma com base no bloco preditivo.
[009] Em um exemplo, a revelação descreve um dispositivo para codificar dados de video, sendo que o dispositivo compreende uma memória de dados de video, e um codificador de video que compreende pelo menos um dentre o conjunto de circuitos de função fixa ou conjunto de circuitos programável. O codificador de video é configurado
Petição 870190053680, de 12/06/2019, pág. 10/171
6/119 para determinar um bloco de luma que corresponde a um bloco de croma, buscar, a partir da memória de dados de video, amostras de luma vizinhas para a subamostragem das amostras de luma vizinhas, em que as amostras de luma vizinhas buscadas compreendem uma pluralidade de amostras de luma que estão acima do bloco de luma e excluem as amostras de luma que estão acima e à esquerda de uma amostra de luma superior esquerda do bloco de luma, determinar uma pluralidade de amostras de luma subamostradas com base nas amostras de luma vizinhas determinadas, em que uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada imediatamente acima da amostra de luma superior esquerda, determinar um ou mais parâmetros de escalonamento com base nas amostras de luma subamostradas, determinar um bloco preditivo com base em um ou mais parâmetros de escalonamento, e a predição por modelo linear (LM) codifica o bloco de croma com base no bloco preditivo.
[0010] Em um exemplo, a revelação descreve um método de decodificação de dados de video, sendo que o método compreende determinar um bloco de luma que corresponde a um bloco de croma, buscar amostras de luma vizinhas para a subamostragem das amostras de luma vizinhas, em que as amostras de luma vizinhas buscadas compreendem uma pluralidade de amostras de luma que estão à esquerda do bloco de luma e excluem as amostras de luma que são mais do que um número limite de amostras à esquerda do bloco de luma e abaixo de uma amostra de luma superior esquerda do bloco de luma, determinar uma pluralidade de amostras de luma subamostradas com base nas amostras de
Petição 870190053680, de 12/06/2019, pág. 11/171
7/119 luma vizinhas buscadas, em que uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada que é o número limite de amostras à esquerda do bloco de luma, determinar um ou mais parâmetros de escalonamento com base nas amostras de luma subamostradas, determinar um bloco preditivo com base em um ou mais parâmetros de escalonamento, e predição por modelo linear (LM) que decodifica o bloco de croma com base no bloco preditivo.
[0011] Em um exemplo, a revelação descreve um dispositivo para decodificar dados de video, sendo que o dispositivo compreende uma memória de dados de video, e um decodificador de vídeo que compreende pelo menos um dentre o conjunto de circuitos de função fixa ou conjunto de circuitos programável. O decodificador de vídeo é configurado para determinar um bloco de luma que corresponde a um bloco de croma, buscar amostras de luma vizinhas para a subamostragem das amostras de luma vizinhas, em que as amostras de luma vizinhas buscadas compreendem uma pluralidade de amostras de luma que estão à esquerda do bloco de luma e excluem as amostras de luma que são mais do que um número limite de amostras à esquerda do bloco de luma e abaixo de uma amostra de luma superior esquerda do bloco de luma, determinar uma pluralidade de amostras de luma subamostradas com base nas amostras de luma vizinhas buscadas, em que uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada que é o número limite de amostras à esquerda do bloco de luma, determinar um ou mais parâmetros de
Petição 870190053680, de 12/06/2019, pág. 12/171
8/119 escalonamento com base nas amostras de luma subamostradas, determinar um bloco preditivo com base em um ou mais parâmetros de escalonamento, e a predição por modelo linear (LM) decodifica o bloco de croma com base no bloco preditivo.
[0012] Em um exemplo, a revelação descreve um método de codificação de dados de video, sendo que o método compreende determinar um bloco de luma que corresponde a um bloco de croma, buscar amostras de luma vizinhas para a subamostragem das amostras de luma vizinhas, em que as amostras de luma vizinhas buscadas compreendem uma pluralidade de amostras de luma que estão à esquerda do bloco de luma e excluem as amostras de luma que são mais do que um número limite de amostras à esquerda do bloco de luma e abaixo de uma amostra de luma superior esquerda do bloco de luma, determinar uma pluralidade de amostras de luma subamostradas com base nas amostras de luma vizinhas buscadas, em que uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada que é o número limite de amostras à esquerda do bloco de luma, determinar um ou mais parâmetros de escalonamento com base nas amostras de luma subamostradas, determinar um bloco preditivo com base em um ou mais parâmetros de escalonamento, e a predição por modelo linear (LM) que codifica o bloco de croma com base no bloco preditivo.
[0013] Em um exemplo, a revelação descreve um dispositivo para codificar dados de video, sendo que o dispositivo compreende uma memória de dados de video, e um codificador de video que compreende pelo menos um dentre o
Petição 870190053680, de 12/06/2019, pág. 13/171
9/119 conjunto de circuitos de função fixa ou conjunto de circuitos programável. 0 codificador de video é configurado para determinar um bloco de luma que corresponde a um bloco de croma, buscar amostras de luma vizinhas para a subamostragem das amostras de luma vizinhas, em que as amostras de luma vizinhas buscadas compreendem uma pluralidade de amostras de luma que estão à esquerda do bloco de luma e excluem as amostras de luma que são mais do que um número limite de amostras à esquerda do bloco de luma e abaixo de uma amostra de luma superior esquerda do bloco de luma, determinar uma pluralidade de amostras de luma subamostradas com base nas amostras de luma vizinhas buscadas, em que uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada que é o número limite de amostras à esquerda do bloco de luma, determinar um ou mais parâmetros de escalonamento com base nas amostras de luma subamostradas, determinar um bloco preditivo com base em um ou mais parâmetros de escalonamento, e a predição por modelo linear (LM) codifica o bloco de croma com base no bloco preditivo.
[0014] Os detalhes de um ou mais aspectos da revelação são apresentados nos desenhos em anexo e na descrição a seguir. Outros recursos, objetivos e vantagens da revelação se tornarão evidentes a partir da descrição e desenhos, e a partir das reivindicações.
BREVE DESCRIÇÃO DOS DESENHOS [0015] A Figura 1 é um diagrama de blocos que ilustra um exemplo de sistema de codificação de video que pode usar as técnicas descritas nesta revelação.
Petição 870190053680, de 12/06/2019, pág. 14/171
10/119 [0016] A Figura 2 é um diagrama de blocos que ilustra um exemplo de codificador de video que pode implementar as técnicas descritas nesta revelação.
[0017] A Figura 3 é um diagrama de blocos que ilustra um exemplo de decodificador de video que pode implementar as técnicas descritas nesta revelação.
[0018] A Figura 4 é um diagrama conceituai que ilustra locais relativos nominais verticais e horizontais de amostras de luma e croma.
[0019] A Figura 5 é um diagrama conceituai que ilustra exemplos de locais a partir dos quais os parâmetros de escalonamento usados para escalonar o bloco de luma reconstruído e subamostrado são derivados.
[0020] A Figura 6 é um diagrama conceituai que ilustra um exemplo de posições de luma e posições de croma para a subamostragem de amostras de um bloco de luma para gerar um bloco preditivo.
[0021] A Figura 7 é um diagrama conceituai que ilustra outro exemplo de posições de luma e posições de croma para a subamostragem de amostras de um bloco de luma para gerar um bloco preditivo.
[0022] As Figuras 8A a 8D são diagramas conceituais que ilustram amostras vizinhas usadas na subamostragem.
[0023] A Figura 9 é um diagrama conceituai que ilustra um exemplo de amostras de luma que são buscadas para obter uma amostra de luma subamostrada.
[0024] A Figura 10 é um diagrama conceituai que ilustra um exemplo de amostras de luma que são buscadas
Petição 870190053680, de 12/06/2019, pág. 15/171
11/119 para obter uma amostra de luma subamostrada.
[0025] As Figuras 11A e 11B são diagramas conceituais que ilustram comprimentos de filtro diferentes para amostras subamostradas em posições diferentes.
[0026] As Figuras 12A e 12B são diagramas conceituais que ilustram a filtragem com amostras preenchidas.
[0027] A Figura 13 é um diagrama conceituai que ilustra um exemplo de amostras de luma que são buscadas para obter uma amostra de luma subamostrada.
[0028] A Figura 14 é um diagrama conceituai que ilustra um exemplo de amostras de luma que são buscadas para obter uma amostra de luma subamostrada.
[0029] As Figuras 15A e 15B são diagramas conceituais que ilustram comprimentos de filtro diferentes para amostras subamostradas em posições diferentes.
[0030] As Figuras 16A e 16B são diagramas
conceituais que ilustram a filtragem com amostras
preenchidas.
[0031] A Figura 17 é um diagrama conceituai
que ilustra blocos vizinhos do bloco atual.
[0032] A Figura 18 é um fluxograma que ilustra um exemplo de método de decodificação de dados de vídeo.
[0033] A Figura 19 é um fluxograma que ilustra um exemplo de método de codificação de dados de vídeo.
DESCRIÇÃO DETALHADA [0034] Esta revelação descreve técnicas de codificação e compactação de vídeo. Em particular, esta revelação descreve técnicas para o modo de codificação de
Petição 870190053680, de 12/06/2019, pág. 16/171
12/119 predição por modelo linear (LM). No modo de codificação de vídeo por predição por LM, um bloco de croma é previsto a partir de um bloco de luma escalonado, subamostrado, reconstruído correspondente (ou seja, esse bloco de luma escalonado, subamostrado, reconstruído correspondente forma um bloco preditivo usado para prever o bloco de croma).
[0035] Em alguns exemplos, a subamostragem do bloco de luma correspondente reconstruído inclui filtragem. Esta revelação descreve exemplos de maneiras nas quais tal filtragem é realizada. Além disso, as técnicas descritas nesta revelação também podem ser aplicadas para situações em que as amostras de luma usadas no modo de predição por LM estão localizadas em telhas diferentes.
[0036] Consequentemente, as técnicas descritas nesta revelação referem-se a um modo de predição por Modelo Linear (LM), que é usado para reduzir a redundância entre componentes na codificação de vídeo. As técnicas descritas nesta revelação podem ser usadas no contexto de codecs de vídeo avançados, como extensões do padrão de codificação de vídeo de codificação de vídeo de alta eficiência (HEVC) ou a próxima geração de padrões de codificação de vídeo.
[0037] Ao realizar a codificação ou decodificação de predição por LM, um codificador de vídeo ou decodificador de vídeo, respectivamente, buscam amostras de luma vizinhas a partir da memória de dados de vídeo para subamostragem de modo a determinar os parâmetros de escalonamento usados para escalonar um bloco de luma correspondente subamostrado. Se um tipo de filtro usado para subamostrar as amostras de luma vizinhas usar amostras
Petição 870190053680, de 12/06/2019, pág. 17/171
13/119 de luma vizinhas que estão fora da faixa de amostras de luma vizinhas que estão localmente armazenadas (por exemplo, na memória local de conjunto de circuitos de codificação), tempo de processamento e largura de banda de memória podem ser desperdiçados pelo codificador de vídeo ou decodificador de vídeo recuperando amostras de luma de uma memória externa. Por exemplo, na tecnologia de codificação de vídeo, em vez de codificação de vídeo genérica, pode haver problemas em que a execução de operações do modo de predição por LM exige a busca de valores de amostra de luma da memória que podem exigir tempo de processamento e largura de banda de memória adicionais. Esta revelação descreve exemplos para reduzir o número de valores de amostra que são buscados, o que poderia exigir quantidades relativamente altas de tempo de processamento e largura de banda de memória.
[0038] Como um exemplo, ao buscar as amostras de luma vizinhas para realizar a subamostragem, o codificador de vídeo e o decodificador de vídeo podem excluir determinadas amostras de luma (por exemplo, amostras de luma não armazenadas na memória local ou amostras de luma que ainda não foram geradas) da busca. Dessa forma, em um exemplo, a busca não faz com que o codificador de vídeo e o decodificador de vídeo acessem a memória não local. Ao invés disso, nesse exemplo, o codificador de vídeo ou o decodificador de vídeo busca apenas amostras de luma da memória local, por exemplo, para uso em operações de modo de predição por LM.
[0039] Em alguns exemplos, o codificador de
Petição 870190053680, de 12/06/2019, pág. 18/171
14/119 video e o decodificador de video podem ser configurados para realizar a subamostragem usando filtros diferentes. Por exemplo, o codificador de vídeo e o decodificador de vídeo podem aplicar um primeiro filtro quando nenhuma das amostras de luma vizinhas que são excluídas for necessária para a subamostragem de acordo com o primeiro filtro. Entretanto, se a aplicação do primeiro filtro exigir a busca das amostras de luma excluídas, então, o codificador de vídeo e o decodificador de vídeo podem aplicar um segundo filtro que é diferente do primeiro filtro.
[0040] A Figura 1 é um diagrama de blocos que ilustra um exemplo de sistema de codificação de vídeo 10 que pode usar as técnicas desta revelação. Como usado no presente documento, o termo codificador de vídeo referese, em geral, tanto a codificadores de vídeo como a decodificadores de vídeo. Nesta revelação, os termos codificação de vídeo ou codificação pode referir-se, em geral, à codificação de vídeo ou decodificação de vídeo. O codificador de vídeo 20 e o decodificador de vídeo 30 de sistema de codificação de vídeo 10 representam exemplos de dispositivos que podem ser configurados para realizar as técnicas para codificação de vídeo baseada em predição por modelo linear (LM) de acordo com vários exemplos descritos nesta revelação. Por exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para codificar um bloco de croma que utiliza amostras de luma escalonadas, subamostradas, reconstruídas de um bloco de luma correspondente, conforme descrito nesta revelação.
[0041] Conforme mostrado na Figura 1, o
Petição 870190053680, de 12/06/2019, pág. 19/171
15/119 sistema de codificação de video 10 inclui um dispositivo de origem 12 e um dispositivo de destino 14. O dispositivo de origem 12 gera dados de video codificados. Consequentemente, o dispositivo de origem 12 pode ser chamado de um dispositivo de codificação de video ou um aparelho de codificação de video. O dispositivo de destino 14 pode decodificar os dados de video codificados gerados pelo dispositivo de origem 12. Consequentemente, o dispositivo de destino 14 pode ser chamado de um dispositivo de decodificação de video ou um aparelho de decodificação de video. O dispositivo de origem 12 e o dispositivo de destino 14 podem ser exemplos de dispositivos de codificação de video ou aparelhos de codificação de video.
[0042] O dispositivo de origem 12 e o dispositivo de destino 14 podem compreender uma ampla gama de dispositivos, incluindo computadores desktop, dispositivos de computação móveis, computadores notebook (por exemplo, laptop), computadores tablet, decodificadores de sinais, aparelhos de telefone como os denominados telefones inteligentes, televisões, câmeras, dispositivos de exibição, reprodutores de midia digital, consoles de jogos, computadores para carro, ou similares.
[0043] O dispositivo de destino 14 pode receber dados de video codificados a partir do dispositivo de origem 12 através de um canal 16. O canal 16 pode compreender um ou mais meios ou dispositivos com capacidade de mover os dados de video codificados a partir do dispositivo de origem 12 para o dispositivo de destino 14.
Petição 870190053680, de 12/06/2019, pág. 20/171
16/119
Em um exemplo, o canal 16 pode compreender um ou mais meios de comunicação que permitem que o dispositivo de origem 12 transmita dados de video codificados diretamente para o dispositivo de destino 14 em tempo real. Neste exemplo, o dispositivo de origem 12 pode modular os dados de video codificados de acordo com um padrão de comunicação, como um protocolo de comunicação sem fio, e pode transmitir os dados de video modulados ao dispositivo de destino 14. 0 um ou mais meios de comunicação podem incluir midias de comunicação sem fio e/ou com fio, como um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão fisicas. 0 um ou mais meios de comunicação podem fazer parte de uma rede baseada em pacote, como uma rede local, uma rede de longa distância, ou uma rede global (por exemplo, a Internet) . 0 um ou mais meios de comunicação podem incluir roteadores, comutadores, estações de base, ou outro equipamento que facilitam a comunicação a partir do dispositivo de origem 12 ao dispositivo de destino 14.
[0044] Em outro exemplo, o canal 16 pode incluir um meio de armazenamento que armazena dados de video codificados gerados pelo dispositivo de origem 12. Neste exemplo, o dispositivo de destino 14 pode acessar o meio de armazenamento, por exemplo, através de acesso de disco ou acesso de cartão. O meio de armazenamento pode incluir uma variedade de meios de armazenamento de dados localmente acessados como discos Blu-ray, DVDs, CD-ROMs, memória flash, ou outros meios de armazenamento digitais adequados para armazenar dados de video codificados.
[0045] Em um exemplo adicional, o canal 16
Petição 870190053680, de 12/06/2019, pág. 21/171
17/119 pode incluir um servidor de arquivos ou outro dispositivo de armazenamento intermediário que armazene dados de vídeo codificados gerados pelo dispositivo de origem 12. Neste exemplo, o dispositivo de destino 14 pode acessar dados de vídeo codificados armazenados no servidor de arquivos ou outro dispositivo de armazenamento intermediário através de streaming ou download. 0 servidor de arquivo pode ser um tipo de servidor com capacidade de armazenar dados de vídeo codificados e transmitir os dados de vídeo codificados ao dispositivo de destino 14. Exemplos de servidores de arquivo incluem servidores da web (por exemplo, para um site da web), servidores de protocolo de transferência de arquivo (FTP), dispositivos de armazenamento conectados à rede (NAS), ou unidades de disco local.
[0046] O dispositivo de destino 14 pode acessar os dados de vídeo codificados através de uma conexão de dados padrão, como uma conexão com a Internet. Exemplos de tipos de conexões de dados podem incluir canais sem fio (por exemplo, conexões Wi-Fi), conexões com fio (por exemplo, DSL, modem a cabo, etc.), ou combinações de ambos que são adequadas para acessar dados de vídeo codificados armazenados em um servidor de arquivo. A transmissão de dados de vídeo codificados do servidor de arquivos pode ser uma transmissão por streaming, uma transmissão por download, ou uma combinação de ambas.
[0047] As técnicas desta revelação não são
limitadas a aplicações ou configurações sem f io. As
técnicas podem ser aplicadas à codificação de vídeo em
suporte de uma variedade de aplicações multimídia, como
Petição 870190053680, de 12/06/2019, pág. 22/171
18/119 transmissões de televisão terrestres, transmissões de televisão a cabo, transmissões de televisão por satélite, transmissões de video por streaming, por exemplo, através da Internet, codificação de dados de video para armazenamento em um meio de armazenamento de dados, decodificação de dados d video armazenados em um meio de armazenamento de dados, ou outras aplicações. Em alguns exemplos, o sistema de codificação de video 10 pode ser configurado para suportar transmissão de video unidirecional ou bidirecional para suportar aplicações como streaming de video, reprodução de video, transmissão de video e/ou telefonia de video.
[0048] O sistema de codificação de video 10 ilustrado na Figura 1 é meramente um exemplo e as técnicas desta revelação podem se aplicar a configurações de codificação de video (por exemplo, codificação de video ou decodificação de video) que não incluem necessariamente qualquer comunicação de dados entre os dispositivos de codificação e decodificação. Em alguns exemplos, os dados são recuperados de uma memória local, transmitidos por streaming através de uma rede, ou similares. Um dispositivo de codificação de video pode codificar e armazenar dados na memória e/ou um dispositivo de decodificação de video pode recuperar e decodificar dados a partir da memória. Em muitos exemplos, a codificação e a decodificação são realizadas por dispositivos que não se comunicam uns com os outros, porém simplesmente codificam dados na memória e/ou recuperam e decodificam dados da memória.
[0049] No exemplo da Figura 1, o dispositivo
Petição 870190053680, de 12/06/2019, pág. 23/171
19/119
de origem 12 inclui uma fonte de vídeo 18, um codificador
de vídeo 20 e uma interface de saída 22 . Em alguns
exemplos, a interface de saída 22 pode incluir um
modulador/demodulador (modem) e/ou um transmissor. A fonte de video 18 pode incluir um dispositivo de captura de video (por exemplo, uma câmera de video) , um arquivo de video contendo dados de video anteriormente capturados, uma interface de alimentação de video para receber dados de video de um provedor de conteúdo de video e/ou um sistema de computação gráfica para gerar dados de video, ou uma combinação de tais fontes de dados de video.
[0050] O codificador de video 20 pode codificar dados de video da fonte de video 18. Em alguns exemplos, o dispositivo de origem 12 transmite diretamente os dados de video codificados ao dispositivo de destino 14 através da interface de saida 22. Em outros exemplos, os dados de video codificados também podem ser armazenados em um meio de armazenamento ou um servidor de arquivos para acesso posterior pelo dispositivo de destino 14 para descodificação e/ou reprodução.
[0051] No exemplo da Figura 1, o dispositivo de destino 14 inclui uma interface de entrada 28, um decodifleader de vídeo 30, e um dispositivo de exibição 32. Em alguns exemplos, a interface de entrada 28 inclui um receptor e/ou um modem. A interface de entrada 28 pode receber dados de vídeo codificados através do canal 16. O dispositivo de exibição 32 pode ser integrado ou pode ser externo ao dispositivo de destino 14. Em geral, o dispositivo de exibição 32 exibe dados de vídeo
Petição 870190053680, de 12/06/2019, pág. 24/171
20/119 decodificados. O dispositivo de exibição 32 pode compreender uma variedade de dispositivos de exibição, como uma tela de cristal líquido (LCD), uma tela de plasma, uma tela de diodo emissor de luz orgânica (OLED) ou outro tipo de dispositivo de exibição.
[0052] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser implementados por um ou mais processadores formados por qualquer um dentre uma variedade de conjuntos de circuitos adequados (por exemplo, conjunto de circuitos de função fixa e/ou programáveis) como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuito integrado para aplicação específica (ASICs), matrizes de portas programáveis em campo (FPGAs), lógica discreta, hardware, ou quaisquer combinações dos mesmos. Se as técnicas forem parcialmente implementadas no software, um dispositivo pode armazenar instruções para o software em um meio de armazenamento legível por computador não temporário adequado e pode executar as instruções em hardware usando um ou mais processadores para realizar as técnicas desta revelação. Qualquer um dos anteriormente mencionados (incluindo hardware, software, uma combinação de hardware e software, etc.) pode ser considerado como um ou mais processadores. Cada codificador de vídeo 20 e decodificador de vídeo 30 pode estar incluído em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador combinado (CODEC) em um respectivo dispositivo.
[0053] Esta revelação pode referir-se, em
Petição 870190053680, de 12/06/2019, pág. 25/171
21/119 geral, ao codificador de video 20 que sinaliza ou transmite determinadas informações a outro dispositivo, como o decodificador de video 30. O termo sinalização ou transmissão pode referir-se, em geral, à comunicação de elementos de sintaxe e/ou outros dados usados para decodificar os dados de video compactados. Tal comunicação pode ocorrer em tempo real ou quase em tempo real. Alternativamente, tal comunicação pode ocorrer ao longo de um periodo de tempo, como pode ocorrer quando armazena-se elementos de sintaxe em um meio de armazenamento legivel por computador em um fluxo de bits codificado no momento da codificação que, então, podem ser recuperados por um dispositivo de decodificação a qualquer momento após serem armazenados nesse meio.
[0054] Em alguns exemplos, o codificador de video 20 e o decodif icador de video 30 podem operar de acordo com um padrão de compactação de video. Exemplos de padrões de codificação de video incluem ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC), incluindo suas extensões de Codificação de Video Escalonável (SVC) e Codificação de Video Multivista (MVC).
[0055] Além disso, um novo padrão de codificação de video, ou seja, Codificação de Video de Alta Eficiência (HEVC), foi recentemente desenvolvido pelo Joint Collaboration Team on Video Coding (JCT-VC) de ITU-T Video Coding Experts Group (VCEG) e ISO/IEC Motion Picture Experts Group (MPEG). Um projeto de especificação de HEVC,
Petição 870190053680, de 12/06/2019, pág. 26/171
22/119 chamado de HEVC WD mais adiante neste documento, está disponível a partir de http://phenix.intevry.fr/jct/doc_end_user/documents/14_Vienna/wgl 1/JCTVCN1003-VÍ .zip. O padrão HEVC também é apresentado conjuntamente na Recomendação ITU-T H.265 e Padrão Internacional ISO/IEC 23008-2, ambos intitulados High efficiency video coding, e ambos publicados em outubro de 2014 .
[0056] A especificação de HEVC e suas extensões incluindo Extensões de Intervalo de Formato (RExt), Escalabilidade (SHVC), e Multivista (MV-HEVC) está disponível a partir de http://phenix.intevry.fr/j et/doc_end_user/documents/18_Sapporo/wgl 1/JCTVCR1013- v6. zip.
[0057] A codificação de vídeo pode ser realizada com base em espaço de cor e formato de cor. Por exemplo, o vídeo colorido exerce uma função essencial nos sistemas multimídia, em que vários espaços de cor são usados para representar a cor eficientemente. Um espaço de cor especifica a cor com valores numéricos usando múltiplos componentes. Um espaço de cor popular é o espaço de cores RGB, em que a cor é representada como uma combinação de três valores de componentes de cores primárias (ou seja, vermelho, verde e azul). Para compactação de vídeo colorido, o espaço de cor YCbCr foi amplamente usado, conforme descrito em A. Ford e A. Roberts, Colour space conversions, University of Westminster, London, Tech. Rep., Agosto de 1998.
[0058] YCbCr pode ser facilmente convertido de
Petição 870190053680, de 12/06/2019, pág. 27/171
23/119 espaço de cores RGB através de uma transformação linear e da redundância entre componentes diferentes, ou seja, a redundância de componente cruzado, é significativamente reduzida no espaço de cor YCbCr. Uma vantagem de YCbCr é a retrocompatibilidade com TV preto e branco à medida que o sinal Y transmite as informações de luminância. Além disso, a largura de banda de crominância pode ser reduzida pela subamostragem dos componentes Cb e Cr no formato de amostragem de croma 4:2:0 com impacto significativamente menos subjetivo do que a subamostragem em RGB. Devido a essas vantagens, YCbCr tem sido o principal espaço de cor na compactação de video. Também há outros espaços de cores, como YCoCg, usados na compactação de video. Nesta revelação, independentemente do espaço de cor real usado, Y, Cb, Cr é usado para representar os três componentes de cor no esquema de compactação de vídeo.
[0059] Na amostragem 4:2:0, cada uma das duas matrizes de croma tem metade da altura e metade da largura da matriz de luma. Os locais relativos nominais verticais e horizontais de amostras de luma e croma nas imagens são mostrados na Figura 4.
[0060] Em HEVC e outros padrões de codificação de vídeo, uma sequência de vídeo inclui tipicamente uma série de imagens. As imagens também podem ser chamadas de quadros. A imagem reconstruída pode incluir três matrizes de amostra, denotadas SL, Sob e Scr. SL é uma matriz bidimensional (ou seja, um bloco) de amostras de luma. SCb é uma matriz bidimensional de amostras de crominância Cb. Scr é uma matriz bidimensional de amostras de crominância
Petição 870190053680, de 12/06/2019, pág. 28/171
24/119
Cr. As amostras de crominância também podem ser chamadas no presente documento de amostras de croma. Em outros casos, uma imagem pode ser monocromática e pode incluir apenas uma matriz de amostras de luma.
[0061] Para gerar uma representação codificada de uma imagem, o codificador de video 20 pode gerar um conjunto de unidades de codificação em árvore (CTUs). Cada uma das CTUs pode ser um bloco de codificação em árvore de amostras de luma, dois blocos de codificação em árvore correspondentes de amostras de croma, e estruturas de sintaxe usadas para codificar as amostras dos blocos de codificação em árvore. Um bloco de codificação em árvore pode ser um bloco NxN de amostras. Uma CTU também pode ser chamada de um bloco de árvore ou uma grande unidade de codificação (LCU) . As CTUs de HEVC podem ser amplamente análogas aos macroblocos de outros padrões, como H.264/AVC. Entretanto, uma CTU não é necessariamente limitada a um tamanho especifico e pode incluir uma ou mais unidades de codificação (CUs). Uma fatia pode incluir um número inteiro de CTUs ordenado consecutivamente na varredura rastreada.
[0062] Para gerar uma CTU codificada, o codificador de video 20 pode realizar recursivamente a partição de árvore de quadrantes nos blocos de codificação em árvore de uma CTU para dividir os blocos de codificação em árvore em blocos de codificação, então o nome unidades de codificação em árvore. Um bloco de codificação é um bloco NxN de amostras. Uma CU pode ser um bloco de codificação de amostras de luma e dois blocos de codificação correspondentes de amostras de croma de uma
Petição 870190053680, de 12/06/2019, pág. 29/171
25/119 imagem que tem uma matriz de amostras de luma, uma matriz de amostras de Cb e uma matriz de amostras de Cr, e estruturas de sintaxe usadas para codificar as amostras dos blocos de codificação. 0 codificador de video 20 pode particionar um bloco de codificação de uma CU em um ou mais blocos de predição. Um bloco de predição pode ser um bloco retangular (ou seja, quadrado ou não quadrado) de amostras ao qual a mesma predição é aplicada. Uma unidade de predição (PU) de uma CU pode ser um bloco de predição de amostras de luma, dois blocos de predição correspondentes de amostras de croma de uma imagem, e estruturas de sintaxe usadas para prever as amostras de bloco de predição. O codificador de video 20 pode gerar blocos preditivos de luma, Cb e Cr para blocos de predição de luma, Cb e Cr de cada PU da CU.
[0063] O codificador de video 20 pode usar intrapredição, interpredição ou predição por modelo linear (LM), como alguns exemplos, para gerar (por exemplo, determinar) os blocos preditivos para uma PU. Se o codificador de video 20 usar intrapredição para gerar os blocos preditivos de uma PU, o codificador de video 20 pode gerar os blocos preditivos da PU com base em amostras decodificadas da imagem associada à PU.
[0064] Se o codificador de video 20 usar interpredição para gerar (por exemplo, determinar) os blocos preditivos de uma PU, o codificador de video 20 pode gerar os blocos preditivos da PU com base em amostras decodificadas de uma ou mais imagens exceto a imagem associada à PU. O codificador de video 20 pode usar
Petição 870190053680, de 12/06/2019, pág. 30/171
26/119 unipredição ou bipredição para gerar os blocos preditivos de uma PU. Quando o codificador de vídeo 20 usa unipredição para gerar os blocos preditivos para uma PU, a PU pode ter um único vetor de movimento (MV). Quando o codificador de vídeo 20 usa bipredição para gerar os blocos preditivos para uma PU, a PU pode ter dois MVs.
[0065] Após o codificador de vídeo 20 gerar blocos preditivos de luma, Cb e Cr para uma ou mais PUs de uma CU, o codificador de vídeo 20 pode gerar um bloco residual de luma para a CU. Cada amostra no bloco residual de luma da CU indica uma diferença entre uma amostra de luma em um dos blocos de luma preditivos da CU e uma amostra correspondente no bloco de codificação de luma original da CU. Além disso, o codificador de vídeo 20 pode gerar um bloco residual de Cb para a CU. Cada amostra no bloco residual de Cb da CU pode indicar uma diferença entre uma amostra de Cb em um dos blocos de Cb preditivos da CU e uma amostra correspondente no bloco de codificação de Cb original da CU. O codificador de vídeo 20 também pode gerar um bloco residual de Cr para a CU. Cada amostra no bloco residual de Cr da CU pode indicar uma diferença entre uma amostra de Cr em um dos blocos de Cr preditivos da CU e uma amostra correspondente no bloco de codificação de Cr original da CU.
[0066] Para um bloco de croma, em vez de determinar um bloco preditivo para intra- ou interpredição, o codificador de vídeo 20 pode determinar um bloco preditivo com base em um bloco de luma reconstruído correspondente, para modo de predição por LM. O
Petição 870190053680, de 12/06/2019, pág. 31/171
27/119 decodificador de video 30 pode determinar de modo similar um bloco preditivo com base em um bloco de luma reconstruído correspondente. O bloco de luma correspondente refere-se ao bloco de luma que fazia parte da unidade (por exemplo, unidade de codificação ou unidade de predição) a partir da qual o bloco de croma atual foi determinado. O codificador de video 20 pode determinar o residual entre o bloco de croma e esse bloco preditivo gerado a partir de um bloco de luma reconstruído correspondente.
[0067] Além disso, o codificador de video 20 pode usar a partição de árvore de quadrantes para decompor os blocos residuais de luma, Cb e Cr de uma CU em um ou mais blocos de transformada de luma, Cb e Cr. Um bloco de transformada pode ser um bloco retangular de amostras ao qual a mesma transformada é aplicada. Uma unidade de transformada (TU) de uma CU pode ser um bloco de transformada de amostras de luma, dois blocos de transformada correspondentes de amostras de croma, e estruturas de sintaxe usadas para transformar as amostras de bloco de transformada. Dessa forma, cada TU de uma CU pode estar associada a um bloco de transformada de luma, um bloco de transformada de Cb e um bloco de transformada de Cr. O bloco de transformada de luma associado à TU pode ser um sub-bloco do bloco residual de luma da CU. O bloco de transformada de Cb pode ser um sub-bloco do bloco residual de Cb da CU. O bloco de transformada de Cr pode ser um subbloco do bloco residual de Cr da CU.
[0068] O codificador de video 20 pode aplicar uma ou mais transformadas a uma bloco de transformada de
Petição 870190053680, de 12/06/2019, pág. 32/171
28/119 luma de uma TU para gerar um bloco de coeficiente de luma para a TU. Um bloco de coeficiente pode ser uma matriz bidimensional de coeficientes de transformada. Um coeficiente de transformada pode ser uma quantidade escalar. 0 codificador de vídeo 20 pode aplicar uma ou mais transformadas a uma bloco de transformada de Cb de uma TU para gerar um bloco de coeficiente de Cb para a TU. O codificador de vídeo 20 pode aplicar uma ou mais transformadas a uma bloco de transformada de Cr de uma TU para gerar um bloco de coeficiente de Cr para a TU.
[0069] Após gerar um bloco de coeficiente (por exemplo, um bloco de coeficiente de luma, um bloco de coeficiente de Cb ou um bloco de coeficiente de Cr) , o codificador de vídeo 20 pode quantizar o bloco de coeficiente. Em geral, a quantização refere-se a um processo em que os coeficientes de transformada são quantizados possivelmente para reduzir a quantidade de dados usados para representar os coeficientes de transformada, proporcionando compactação adicional. Após o codificador de vídeo 20 quantizar um bloco de coeficiente, o codificador de vídeo 20 pode realizar a codificação por entropia de elementos de sintaxe indicando os coeficientes de transformada quantizados. Por exemplo, o codificador de vídeo 20 pode executar a Codificação Aritmética Binária Adaptável ao Contexto (CAB AC) nos elementos de sintaxe indicando os coeficientes de transformada quantizados. O codificador de vídeo 20 pode enviar os elementos de sintaxe codificados por entropia em um fluxo de bits.
[0070] O codificador de vídeo 20 pode emitir
Petição 870190053680, de 12/06/2019, pág. 33/171
29/119 um fluxo de bits que inclui os elementos de sintaxe codificados por entropia. 0 fluxo de bits pode incluir uma representação codificada de dados de vídeo. Por exemplo, o fluxo de bits pode incluir uma sequência de bits que forma uma representação de imagens codificadas e dados
associados. 0 fluxo de bits pode compreender uma sequência
de unidades de camada de abstração de rede (NAL) Cada
unidade de NAL inclui um cabeçalho de unidade de NAL e
encapsula uma carga útil de sequência de bytes brutos
(RBSP) . 0 cabeçalho de unidade de NAL pode incluir um elemento de sintaxe que indica um código do tipo de unidade de NAL. 0 código do tipo de unidade de NAL especificado pelo cabeçalho de unidade de NAL de uma unidade de NAL indica o tipo da unidade de NAL. Uma RBSP pode ser uma estrutura de sintaxe contendo um número inteiro de bytes que é encapsulado dentro de uma unidade de NAL. Em alguns casos, um RBSP inclui zero bits.
[0071] Diferentes tipos de unidades de NAL podem encapsular diferentes tipos de RBSPs. Por exemplo, um primeiro tipo de unidade de NAL pode encapsular uma RBSP para um conjunto de parâmetros de imagem (PPS), um segundo tipo de unidade de NAL pode encapsular um RBSP para uma fatia codificada, um terceiro tipo de unidade de NAL pode encapsular uma RBSP para informações de aperfeiçoamento suplementar (SEI), e assim por diante. As unidades de NAL que encapsulam RBSPs para dados de codificação de vídeo (ao contrário de RBSPs para conjuntos de parâmetros e mensagens SEI) podem ser chamadas de unidades de NAL de camada de codificação de vídeo (VCL).
Petição 870190053680, de 12/06/2019, pág. 34/171
30/119 [0072] 0 decodificador de video 30 pode receber um fluxo de bits gerados pelo codificador de video 20. Além disso, o decodificador de video 30 pode analisar o fluxo de bits para decodificar elementos de sintaxe do fluxo de bits. O decodificador de video 30 pode reconstruir as imagens dos dados de video com base pelo menos em parte nos elementos de sintaxe decodificados a partir do fluxo de bits. O processo para reconstruir os dados de video pode ser geralmente reciproco ao processo realizado pelo codificador de video 20. Por exemplo, o decodificador de video 30 pode usar MVs de PUs para determinar blocos preditivos para as PUs de uma CU atual. Como outro exemplo, para o modo de predição por LM, o decodificador de video 30 pode determinar o bloco preditivo para um bloco de croma com base nas amostras reconstruídas de um bloco de luma correspondente. Além disso, o decodificador de video 30 pode quantizar inversamente os blocos de coeficiente de transformada associados a TUs da CU atual. O decodificador de video 30 pode realizar transformadas inversas nos blocos de coeficiente de transformada para reconstruir os blocos de transformada associados às TUs da CU atual.
[0073] O decodificador de video 30 pode reconstruir os blocos de codificação da CU atual adicionando-se as amostras dos blocos preditivos para PUs da CU atual a amostras correspondentes dos blocos de transformada das TUs da CU atual. Com a reconstrução dos blocos de codificação para cada CU de uma imagem, o decodificador de video 30 pode reconstruir a imagem.
[0074] Em alguns exemplos, o codificador de
Petição 870190053680, de 12/06/2019, pág. 35/171
31/119 video 20 e o decodif icador de video 30 podem ser configurados para realizar a codificação baseada em modelo linear (LM) . A seguir, é apresentada uma descrição da codificação por predição baseada em LM. Por exemplo, embora a redundância de complemento cruzado seja significativamente reduzida no espaço de cor YCbCr, ainda há uma correlação entre três componentes de cor. Vários métodos foram estudados para aprimorar o desempenho de codificação de video reduzindo ainda mais a correlação.
[0075] Em codificação de video de croma 4:2:0, um método chamado modo de predição por Modelo Linear (LM) foi bem estudado, durante o desenvolvimento de padrão de HEVC. Consultar J. Chen, V. Seregin, W.-J. Han, J.-S. Kim, B.-M. Joen, CE6.a.4: Chroma intra prediction by reconstructed amostras de luma, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC UTC1/SC29/WG11, UCTVC-E266, 5a Reunião: Geneva, 16 a 23 de março de 2011, disponivel junto à http://phenix.intevry.fr/j ct/doc_end_user/current_document.php?id=219 6,e chamado de UCTVC-E266 abaixo.
[0076] Com o modo de predição por LM, as amostras de croma são previstas com base nas amostras de luma reconstruídas do mesmo bloco usando um modelo linear da seguinte forma:
«treç (D em que prdec(i,j) representa a predição de amostras de croma em um bloco e recL representa as amostras de luma reconstruídas subamostradas do mesmo bloco. Os parâmetros α
Petição 870190053680, de 12/06/2019, pág. 36/171
32/119 e β são derivados de amostras reconstruídas causair em torno do bloco atual (por exemplo, amostras de luma vizinhas). Indicar o tamanho de bloco de croma em NxN; então, tanto i como j estão dentro da faixa [0, N).
[0077] Os parâmetros α e β na equação (1) são derivados minimizando o erro de regressão entre as amostras de luma e croma reconstruídas vizinhas em torno do bloco atual.
(2)
Os parâmetros α e β são resolvidos da seguinte forma:
em que x± é a amostra de referência de Luma reconstruída subamostrada, y± é a amostra de referência de Croma reconstruída, e I é uma quantidade (por exemplo, número) das amostras de referência. Para um bloco de croma NxN alvo, quando ambas as amostras causais à esquerda e acima estiverem disponíveis, o número total de amostras envolvidas I é igual a 2N; quando apenas as amostras causais à esquerda e acima estiverem disponíveis, o número total de amostras envolvidas I é igual a N.
[0078] A Figura 5 é um diagrama conceituai que ilustra exemplos de locais a partir dos quais os parâmetros de escalonamento usados para escalonar o bloco de luma reconstruído e subamostrado são derivados. Por exemplo, a
Petição 870190053680, de 12/06/2019, pág. 37/171
33/119
Figura 5 ilustra um exemplo de amostragem 4:2:0, e os
parâmetros de escalonamento são α e β.
[0079] Em geral, quando o modo de predição por
LM for aplicado, o codificador de vídeo 20 e o
decodificador de video 30 pode invocar as seguintes etapas. O codificador de video 20 e o decodificador de video 30 podem subamostrar as amostras de luma vizinhas. 0 codificador de video 20 e o decodificador de video 30 podem derivar os parâmetros lineares (ou seja, ae β) (também chamados de parâmetros de escalonamento). O codificador de vídeo 20 e o decodificador de vídeo 30 podem subamostrar o bloco de luma atual e derivar a predição (por exemplo, bloco preditivo) a partir do bloco de luma subamostrado e parâmetros lineares (ou seja, parâmetros de escalonamento).
[0080] Pode haver várias formas de subamostragem. A descrição a seguir apresenta exemplos de formas nas quais a subamostragem pode ser realizada.
[0081] Em JCTVC-E266, conforme descrito acima, quando realiza-se o modo de predição por LM, o bloco de luma atual subamostrado e o bloco de luma vizinho subamostrado são necessários. O bloco de luma atual subamostrado é usado para derivar o bloco de predição para codificação de croma enquanto o bloco de luma vizinho subamostrado for usado para a derivação de parâmetros (ou sej a, α e β) .
[0082] Visto que a razão de amostragem típica de componentes de croma é metade do componente de luma e tem uma diferença de fase de amostra de 0,5 na direção vertical em amostragem 4:2:0, a amostra de luma
Petição 870190053680, de 12/06/2019, pág. 38/171
34/119 reconstruída de um bloco atual é subamostrada na direção vertical e subamostrada na direção horizontal para corresponder ao tamanho e fase do sinal de croma, da seguinte forma:
j) = (Re |2ú 2/j Ψ Re [2í 2j + I]) »1 (5) em que RecLOrig[] indica a amostra de luma reconstruída original.
[0083] A Figura 6 é um diagrama conceituai que ilustra um exemplo de posições de luma e posições de croma para a subamostragem de amostras de um bloco de luma para gerar um bloco preditivo para um bloco de luma. Como representado na Figura 6, uma amostra de croma, representada pelo triângulo preenchido (ou seja, preto sólido) , é prevista a partir de duas amostras de luma, representada pelos dois círculos preenchidos, aplicando-se um filtro [1, 1]. O filtro [1, 1] é um exemplo de um filtro de 2 derivações.
[0084] Para a subamostragem de bloco de luma vizinho, quando as amostras vizinhas estiverem sobre o bloco de luma atual, o processo de subamostragem é definido como:
(A -1) - Re (2d -1] (6) [0085] Quando as amostras vizinhas estiverem à esquerda do bloco de luma atual, o processo de subamostragem é definido como:
(-1, J) - (Re 1-2,2/] ã Re [-2,2/ +1']) »1 (7) [0086] O filtro de 2 derivações, ou seja, [1,
Petição 870190053680, de 12/06/2019, pág. 39/171
35/119
1], pode ser igual àquele usado no exemplo ilustrado na Figura 6.
[0087] Outras técnicas de amostragem descendente também foram propostas. Em Yi-Jen Chiu, Yu Han, Lidong Xu, Wenhao Zhang, Hong Jiang, Cross-channel techniques to improve intra chroma prediction, Joint Collaborative Team on Video Coding (JCT-VC) of ITU- T SGI 6 WP3 and ISO/IEC JTC1/SC29/WG11, JCTVC-F502, 6a Reunião: Torino, IT, 14 a 22 de julho de 2011, disponível a partir de http://phenix.intevry.fr/j ct/doc_end_user/current_document.php?id=2 97 9,e chamado de JCTVC- F502, em vez de usar o filtro de duas derivações, a filtragem de 6 derivações bidimensional é aplicada tanto ao bloco de luma atual como ao bloco de luma vizinho. O conjunto de coeficientes de filtragem bidimensional é:
[0088] Em outras palavras, as amostras de luma subamostradas são derivadas pela seguinte equação (9):
n-;: /) - (Re <..... J 2í, 2/1 * 2 v Re. | ?/. 2./ 4 1| e Re 2í. 2/ -1 j 4· Re [2í+Ç 2j] * 2. r Re [2/ * 1,2y +1] ψ Re [2? + i, 2/ -1]) » 3 (9)
[0089] A Figura 7 é um diagrama conceituai que ilustra outro exemplo de posições de luma e posições de croma para a subamostragem de amostras de um bloco de luma para gerar um bloco preditivo. Como representado na Figura 7, uma amostra de croma, representada pelo triângulo
Petição 870190053680, de 12/06/2019, pág. 40/171
36/119 preenchido (ou seja, preto sólido), é prevista a partir de seis amostras de luma, representada pelos seis círculos preenchidos, aplicando-se um filtro de 6 derivações.
[0090] Visto que o preditor de uma amostra de croma é derivado com o uso da função linear, conforme definido na fórmula (1), poderia ser observado que quando o filtro de 6 derivações for aplicado, o preditor da amostra de croma depende das seis amostras de luma vizinhas. Quando
combina-se as equações (D e ( 9), o resultado é a seguinte
equação (10):
jwáe(i,/)- a>(Re<.'i<w| ; 2r,2j]*2 + Rec 1] -í' J 2/,2/-1] 10)
1/ + L 2/]*2-rRe< +l>Re£,íte J2i +1,2/ -1])» 3) + β (
[0091] No texto a seguir, a amostra
subamostrada recL (i,j) é chamada da amostra de luma
subamostrada correspondente para a amostra de croma
localizada em (i, j) .
[0092] No Pedido Provisório de Patente US n°
62/395.145, depositado em 15 de setembro de 2016 ( Pedido
Ί45, a seguir) i, e Pedido US n° 15/705 .029, depositado em 14
de setembro de 2017 (Pedido Ό29, a seguir), mais filtros de subamostragem são descritos, e mais amostras vizinhas podem ser usadas para derivar os modelos lineares conforme mostrado nas Figuras 8A a 8D. Em geral, as Figuras 8A a 8D são diagramas conceituais que ilustram amostras vizinhas usadas para a subamostragem. Nas Figuras 8A a 8D, os círculos preenchidos são exemplos de amostras de croma vizinhas. Suas amostras de luma correspondentes podem ser subamostradas como parte de subamostragem de amostras de luma vizinhas para determinar os parâmetros de
Petição 870190053680, de 12/06/2019, pág. 41/171
37/119 escalonamento .
[0093] A descrição a seguir apresenta a sinalização no modo de LM. Em JCTVC-E266 e JCTVC- F502 (ambos citados acima), um sinalizador é sinalizado para indicar se a predição por LM é usada para o bloco atual. O Pedido '145 e o Pedido '029 descrevem mais modos de predição por LM, e um método de sinalização sofisticado pode ser descrito. Os modos de LM e um modo Não LM são organizados em uma lista ordenada. A ordem de modos depende dos modos de intrapredição de croma de blocos vizinhos. O índice do modo de intrapredição de croma codificado na lista ordenada do bloco atual é sinalizado pelo codificador de vídeo 2 0.
[0094] Pode haver problemas com alguns exemplos de técnicas. A descrição a seguir apresenta alguns desses possíveis problemas. O processo de subamostragem invocado no modo de predição por LM proposto em JCTVC-F502 pode ser mais eficiente, porém o mesmo acessa mais blocos vizinhos (por exemplo, amostras de luma vizinhas), o que pode aumentar o custo de buffer em linha no design de hardware. O método de sinalização proposto no Pedido '145 e no Pedido '029 pode otimizar o desempenho de codificação. Os exemplos de técnicas no Pedido '145 e no Pedido '029 também podem incluir a sobrecarga de reordenação da lista de modos. Também, os exemplos de técnicas no Pedido '145 e no Pedido '029 podem aumentar o custo de buffer em linha acessando mais blocos vizinhos (por exemplo, amostras de luma vizinhas).
[0095] Consequentemente, pode haver problemas
Petição 870190053680, de 12/06/2019, pág. 42/171
38/119 tecnológicos presentes em algumas técnicas para a subamostragem de amostras de luma vizinhas. 0 codificador de video 20 e o decodificador de video 30 incluem, cada um, os respectivos buffers de linha que são locais aos respectivos codificador de video 20 e decodificador de video 30. Por exemplo, o conjunto de circuitos de processamento de codificador de video 20 pode não precisar de um barramento de sistema externo ao codificador de video 20 para acessar o tampão de linha de codificador de video 20, e o conjunto de circuitos de processamento de decodif icador de video 30 pode não precisar de um barramento de sistema externo ao decodificador de video 30 para acessar o tampão de linha de decodificador de video 30. O buffer de linha do codificador de video 20 pode estar no mesmo chip de circuito integrado (IC) que o codificador de video 20, e o buffer de linha do decodificador de video 30 pode estar no mesmo chip de IC que o decodificador de video 30. O codificador de video 20 e o decodificador de video 30 também podem ser capazes de buscar dados armazenados nos respectivos buffers de linha em um periodo de tempo relativamente curto, pois a disponibilidade de acesso ao buffer de linha não é atrasada devido a algum outro componente que acessa o buffer de linha (por exemplo, os respectivos buffers de linha podem não ser usados por componentes exceto o codificador de video 20 e o decodificador de video 30).
[0096] Por exemplo, de todos os componentes que podem estar presentes no IC que inclui o codificador de video 20 ou o IC que inclui o decodif icador de video 30,
Petição 870190053680, de 12/06/2019, pág. 43/171
39/119 apenas o codificador de vídeo 20 ou o decodificador de vídeo 30, ou um número limitado de componentes do IC, pode acessar o buffer de linha. Pode haver memória no IC que inclui o codificador de vídeo 20 ou o decodificador de vídeo 30. Entretanto, essa memória pode ser acessível por todos os componentes no IC. O buffer de linha, em alguns, porém não necessariamente todos os exemplos, pode ser diferente da memória disponível para todos os componentes no IC, e pode estar disponível para o codificador de vídeo 20 ou o decodificador de vídeo 30 (conforme aplicável) e nenhum outro componente ou um número limitado de componentes no IC. Os vários componentes do IC podem acessar essa memória através de um barramento de sistema, porém o acesso ao buffer de linha pode não exigir que o codificador de vídeo 20 ou o decodificador de vídeo 30 use o mesmo barramento de sistema.
[0097] Em alguns exemplos, o buffer de linha, como no decodificador de vídeo 30, pode fornecer uma quantidade relativamente pequena de espaço de armazenamentos. Por exemplo, um buffer de linha pode armazenar um número limitado de luma e valores de amostra de croma, e pode não fornecer armazenamento suficiente para armazenar uma imagem inteira de valores de amostras de luma e croma. O buffer de linha do decodificador de vídeo 30 pode armazenar valores de amostras de luma e croma reconstruídas como valores de amostras de luma e croma que são próximas (por exemplo, vizinhas) a um bloco atual que está sendo codificado ou decodificado. Se o decodificador de vídeo 30 buscar valores de amostra de seu buffer de
Petição 870190053680, de 12/06/2019, pág. 44/171
40/119 linha, o decodificador de video 30 pode ser capaz de buscar os valores de amostra de forma relativamente rápida e com baixo consumo de energia. Entretanto, se o decodificador de video 30 buscar os valores de amostra não armazenados dentro de seu buffer de linha, o decodificador de vídeo 30 pode gastar energia e tempo acessando a memória de sistema externa ao decodificador de vídeo 30 para recuperar os valores das amostras. Consequentemente, pode haver vantagens técnicas para limitar o acesso do decodificador de vídeo 30 à memória diferente da memória de buffer de linha quando possível.
[0098] A memória de buffer de linha do codificador de vídeo 20 pode não ser necessariamente limitada a uma quantidade relativamente pequena de espaço de armazenamento. Entretanto, devido ao fato de o decodificador de vídeo 30 realizar as operações inversas do codificador de vídeo 20, se o codificador de vídeo 20 depender de valores de amostra para subamostragem que poderíam estar fora do buffer de linha do decodificador de vídeo 30, pode haver um impacto sobre a rapidez com que o decodificador de vídeo 30 é capaz de reconstruir os blocos de uma imagem.
[0099] A descrição acima do buffer de linha é fornecida para auxiliar o entendimento, e não deve ser considerada limitativa. Os exemplos de técnicas descritos nesta revelação podem ser aplicáveis a exemplos em que uma memória de buffer de linha maior é usada, ou quando nenhuma memória de buffer de linha for usada. Para facilidade, nas Figuras 2 e 3, é feita referência a uma memória de dados de
Petição 870190053680, de 12/06/2019, pág. 45/171
41/119 video, e um exemplo da memória de dados de video é um buffer de linha. Entretanto, a memória de dados de video pode ser diferente do buffer de linha.
[00100] Conforme descrito em mais detalhes, em um ou mais exemplos de técnicas, para a subamostragem de amostras de luma vizinhas para o modo de predição por LM, o codificador de video 20 e o decodificador de video 30 podem usar técnicas de filtragem de subamostragem que excluem as amostras de luma vizinhas que são armazenadas fora do buffer de linha. Em alguns exemplos, se as amostras de luma usadas para subamostrar as amostras de luma vizinhas para determinar os parâmetros de escalonamento estiverem armazenadas dentro do buffer de linha, então, o codificador de video 20 e o decodificador de video 30 podem realizar uma subamostragem de acordo com um primeiro filtro. Entretanto, se as amostras de luma usadas para subamostrar as amostras de luma vizinhas para determinar os parâmetros de escalonamento não estiverem armazenadas dentro do buffer de linha, então, o codificador de video 20 e o decodificador de video 30 podem realizar uma subamostragem de acordo com um segundo filtro. O segundo filtro pode ser diferente do primeiro filtro. Em alguns exemplos, se as amostras de luma usadas para subamostrar as amostras de luma vizinhas para determinar os parâmetros de escalonamento não forem armazenadas dentro do buffer de linha, então, o codificador de video 20 e o decodificador de video 30 podem realizar uma subamostragem de acordo com o primeiro filtro, porém gerar valores de amostra de luma para valores não armazenados no buffer de linha, em vez de
Petição 870190053680, de 12/06/2019, pág. 46/171
42/119 buscar aqueles valores de amostra de luma a partir da memória externa ao codificador de video 20 ou decodifleader de video 30.
[00101] A seguir são descritas técnicas de acordo com esta revelação. Os exemplos de técnicas podem resolver os problemas mencionados acima, porém não precisam necessariamente resolver os problemas mencionados acima. As técnicas detalhadas podem ser individualmente aplicadas. Alternativamente, qualquer combinação das mesmas pode ser aplicada.
[00102] Nos exemplos de técnicas, a coordenada (posição) da amostra de luma superior esquerda do bloco atual é indicada por (xO, yO). Os exemplos de técnicas são descritos excluindo as amostras de luma de amostras de luma cujos valores são buscados para subamostragem. Para facilidade, as amostras de luma que são excluídas são
descritas em relação à amostra de luma superior esquerda do
bloco atual.
[00103] Durante o processo de derivação de
amostras de luma subamostradas correspondentes para uma
amostra de croma, as amostras de luma buscadas são
limitadas a uma determinada área dependendo da posição da
amostra de croma. Como um exemplo, durante o processo de derivação de amostras de luma subamostradas correspondentes de amostras de croma, uma amostra de luma com a coordenada (x,y), em que x<x0 e y < yO, não está envolvida no processo de subamostragem de amostras de luma vizinhas acima do bloco atual. Por exemplo, na busca das amostras de luma vizinhas para a subamostragem das amostras de luma
Petição 870190053680, de 12/06/2019, pág. 47/171
43/119 vizinhas, o codificador de video 20 e o decodificador de video 30 podem excluir as amostras de luma que estão acima e à esquerda da amostra de luma superior esquerda do bloco de luma, e buscar as amostras de luma que estão acima do bloco de luma.
[00104] A Figura 9 é um diagrama conceituai que ilustra um exemplo de amostras de luma que são buscadas para obter uma amostra de luma subamostrada. A Figura 10 é um diagrama conceituai que ilustra um exemplo de amostras de luma que são buscadas para obter uma amostra de luma subamostrada. A Figura 9 e a Figura 10 demonstram a diferença entre os métodos de subamostragem em JCTVC-F502 (a Figura 9) e as técnicas descritas nesta revelação (Figura 10) . Para obter a amostra de luma vizinha acima mais esquerda, JCTVC-F502 descreve que um processo buscará duas amostras de luma acima à esquerda do bloco atual; enquanto o codificador de video 20 e o decodificador de video 30 não podem buscar estas duas amostras de luma de acordo com as técnicas de exemplo descritas nesta revelação.
[00105] Em um exemplo, o comprimento do filtro (ou seja, número de amostras ao qual o filtro se estende) para derivar a amostra de luma subamostrada correspondente de uma amostra de croma é mais curto quando o processo de filtragem envolve amostras de luma com a coordenada (x,y), em que x<x0 e y<y0. Em outras palavras, o codificador de video 20 e o decodificador de video 30 podem usar filtros diferentes para o processo de subamostragem em que as amostras de luma vizinhas estão envolvidas na
Petição 870190053680, de 12/06/2019, pág. 48/171
44/119 subamostragem.
[00106] As Figuras 11A e 11B são diagramas conceituais que ilustram comprimentos de filtro diferentes para amostras subamostradas em posições diferentes. O filtro de subamostragem proposto em JCTVC-F502 é usado quando não há amostra de luma com a coordenada (x,y), em que x<x0, y < yO, envolvida no processo de filtragem, conforme mostrado na Figura 11A. Por outro lado, o filtro de subamostragem proposto em JCTVC-E266 é usado quando há amostra de luma com a coordenada (x,y), em que x<x0, y < yO, envolvida no processo de filtragem JCTVC-F502, conforme mostrado na Figura 11B. Os valores de xO e yO podem ser valores de coordenadas dentro da imagem, como as coordenadas na determinada imagem.
[00107] Em um exemplo, os filtros para derivar a amostra de luma subamostrada correspondente de uma amostra de croma são iguais, independentemente se o processo de filtragem envolve ou não amostras de luma com a coordenada (x,y), em que x<x0 e y < yO. Entretanto, quando o processo de filtragem envolve amostras de luma com a coordenada (x,y), em que <x0 e y < yO, essas amostras de luma são preenchidas por amostras de luma adjacentes em vez de serem buscadas dos locais correspondentes.
[00108] As Figuras 12A e 12B são diagramas conceituais que ilustram a filtragem com amostras preenchidas. Nas Figuras 12A e 12B, o filtro de subamostragem proposto em JCTVC-F502 é sempre usado, independentemente se uma amostra de luma com a coordenada (x,y), em que x<x0, y < yO, está ou não envolvida no
Petição 870190053680, de 12/06/2019, pág. 49/171
45/119 processo de filtragem. Porém, quando as amostras de luma com a coordenada (x,y), em que x<xO e y < yO, estiverem envolvidas, essas amostras são preenchidas em vez de serem buscadas conforme mostrado na Figura 12B. A Equação (11) mostra um processo de preenchimento em uma forma de fórmula.
mr (ã - (Re í 2/, 2 f] * 2 * Re r, .·>. [2/ ™ 12 ? | + Re í?^ . [ 2í + L 2 + ReQ,wPh 2_/ + l]*2*-1 2y +1] tRcJ2; -e-ls 2/4-1]) »3 em que
Re2í -1,. 2J] - Re[ 2/, 2J]
Re e \cw[2í -L 2,/ 11] - Re c [2p 2/ 41] (11) [00109] Consequentemente, as Figuras 10 a 12B ilustram exemplos de quais amostras de luma o codificador de video 20 e o decodificador de video 30 buscam para a subamostragem amostras de luma. Por exemplo, as amostras de luma vizinhas buscadas incluem uma pluralidade de amostras de luma que estão acima do bloco de luma e excluem amostras de luma que estão acima e à esquerda da amostra de luma superior esquerda do bloco de luma. O codificador de video 20 e o decodificador de video 30 podem determinar uma pluralidade de amostras de luma subamostradas com base nas amostras de luma vizinhas buscadas. Uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada imediatamente acima da amostra superior esquerda.
Petição 870190053680, de 12/06/2019, pág. 50/171
46/119 [00110] Por exemplo, as Figuras 10, 11B e 12B ilustram uma amostra de luma subamostrada que está imediatamente acima da amostra de luma superior esquerda. As Figuras 11A e 12A ilustram uma amostra de luma subamostrada que está acima do bloco de luma, porém não imediatamente acima da amostra de luma superior esquerda. Consequentemente, as Figuras 10 a 12B ilustram exemplos de maneiras nas quais o codificador de vídeo 20 e o decodificador de vídeo 30 podem determinar uma pluralidade de amostras de luma subamostradas, em que a amostra de luma subamostrada nas Figuras 10, 11B e 12B é uma dentre a pluralidade de amostras de luma subamostradas, e a amostra de luma subamostrada nas Figuras 11A e 12A é outra dentre a pluralidade de amostras de luma subamostradas.
[00111] Conforme ilustrado nas Figuras 10, 11B e 12B, uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada imediatamente acima da amostra superior esquerda. As amostras de luma vizinhas buscadas que são subamostradas para gerar a amostra de luma subamostrada das Figuras 10, 11B e 12B excluem as amostras de luma que estão acima e à esquerda de uma amostra de luma superior esquerda do bloco de luma. Em contrapartida, as amostras de luma vizinhas buscadas que são subamostradas para gerar a amostra de luma subamostrada da Figura 9 incluem as amostras de luma que estão acima e à esquerda de uma amostra de luma superior esquerda do bloco de luma. Em alguns exemplos, as amostras de luma que estão acima e à esquerda de uma amostra superior esquerda do bloco de luma podem não ser armazenadas na memória de buffer de linha.
Petição 870190053680, de 12/06/2019, pág. 51/171
47/119
Portanto, o acesso a essas amostras de luma pode ser ineficiente em termos de processamento e largura de banda. Então, os exemplos de técnicas podem promover a eficiência de processamento e largura de banda excluindo, das amostras de luma buscadas, as amostras que estão acima e à esquerda de uma amostra de luma superior esquerda do bloco de luma.
[00112] Entretanto, em alguns exemplos, todas as amostras de luma necessárias para a subamostragem de acordo com o filtro descrito em JCTVC-F502 podem ser armazenadas no buffer de linha e em tais exemplos, o codificador de video 20 e o decodificador de video 30 podem buscar todas as amostras de luma vizinhas necessárias para realizar a subamostragem de acordo com o filtro JCTVC-F502. Se todas as amostras de luma necessárias para subamostragem de acordo com o filtro de JCTVC-F502 não estiverem disponíveis (por exemplo, devido ao fato de estas amostras de luma estarem localizadas acima e à esquerda da amostra superior esquerda) , então o codificador de video 20 e decodificador de video 30 podem buscar amostras diferentes daquelas usadas no filtro de JCTVC-F502. Deve ser entendido que a referência ao filtro de JCTVC-F502 é usada meramente como um exemplo, e as técnicas são aplicáveis a outros filtros também.
[00113] Conforme ilustrado na Figura 11A, o codificador de video 20 e o decodificador de video 30 podem aplicar um primeiro filtro a um primeiro conjunto das amostras de luma vizinhas buscadas para determinar uma primeira amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, guando nenhuma amostra de
Petição 870190053680, de 12/06/2019, pág. 52/171
48/119 luma que está acima e à esquerda da amostra de luma superior esquerda for necessária para subamostragem de acordo com o primeiro filtro. Por exemplo, nas Figuras 11A e 12A, o primeiro filtro utiliza três amostras de luma de uma primeira linha que está acima do bloco de luma, e utiliza três amostras de luma de uma segunda linha que está acima da primeira linha. Nas Figuras 11A e 12A, o primeiro conjunto das amostras de luma vizinhas buscadas consiste nos exemplos de amostras de luma usadas para gerar a amostra de luma subamostrada ilustrada.
[00114] Conforme ilustrado nas Figuras 10 e 11B, o codificador de vídeo 20 e o decodificador de vídeo 30 podem aplicar um segundo filtro a um segundo conjunto das amostras de luma vizinhas buscadas para determinar uma segunda amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando pelo menos uma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda do bloco de luma for necessária para subamostragem de acordo com o primeiro filtro. Deve-se compreender que quando o codificador de vídeo 20 ou o decodificador de vídeo 30 aplicam o segundo filtro, o codificador de vídeo 20 e o decodificador de vídeo 30 não determinam necessariamente (embora seja possível) que o uso do primeiro filtro poderia resultar na busca de pelo menos uma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda. De preferência, na condição em que o uso do primeiro filtro poderia resultar na busca de pelo menos uma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda, o codificador de
Petição 870190053680, de 12/06/2019, pág. 53/171
49/119 video 20 e ο decodificador de video 30 podem utilizar um segundo filtros para a subamostragem que não exige a busca de amostras de luma que estão acima e à esquerda da amostra de luma superior esquerda.
[00115] Por exemplo, nas Figuras 10 e 11B, se ο primeiro filtro (por exemplo, que é usado na Figura 11A) for usado, então, o codificador de vídeo 20 e o decodificador de vídeo 30 poderíam ser necessários para buscar as amostras de luma que estão acima e à esquerda da amostra de luma superior esquerda. Para evitar a busca de amostras de luma que estão acima e à esquerda da amostras de luma superior esquerda, o codificador de vídeo 20 e o decodificador de vídeo 30 podem aplicar o segundo filtro. Em alguns exemplos, o segundo filtro usa menos de três amostras de luma de uma primeira linha que está acima do bloco de luma (por exemplo, duas amostras de luma na Figura 10 e uma amostra de luma na Figura 11B) , e usa menos de três amostras de luma de uma segunda linha que está acima da primeira linha (por exemplo, duas amostras de luma na Figura 10, e uma amostra de luma na Figura 11B).
[00116] Nas Figuras 10, 11A e 11B, o codificador de vídeo 20 e o decodificador de vídeo 30 podem usar filtros diferentes com base em se a busca de amostra de luma poderia resultar na busca de amostras de luma que estão acima e à esquerda da amostra de luma superior esquerda. Entretanto, os exemplos de técnicas não são tão limitados.
[00117] Em alguns exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem usar um
Petição 870190053680, de 12/06/2019, pág. 54/171
50/119 filtro. Na condição em que o uso daquele filtro para a subamostragem podería resultar na busca de codificador de video 20 e decodificador de video 30 por amostras de luma que estão acima e à esquerda da amostra de luma superior esquerda, em vez da busca de amostras de luma que estão acima e à esquerda da amostra de luma superior esquerda, o codificador de video 20 e o decodificador de vídeo 30 podem gerar valores de luma (por exemplo, valores de preenchimento descritos acima). Por exemplo, conforme ilustrado na Figura 12B, o codificador de vídeo 20 e o decodificador de vídeo 30 podem gerar, sem busca, valores de luma (por exemplo, valores de preenchimento) que correspondem a amostras de luma localizadas acima e à esquerda da amostra de luma superior esquerda do bloco de luma. O codificador de vídeo 20 e o decodificador de vídeo podem aplicar um filtro (por exemplo, filtro de JCTVC-F502) aos valores de luma gerados para determinar pelo menos uma amostra de luma subamostrada da pluralidade de amostras de luma subamostradas.
[00118] Os exemplos fornecidos acima para a subamostragem de amostras de luma vizinhas que estão acima do bloco de luma. A descrição a seguir apresenta exemplos para a subamostragem de amostras de luma vizinhas que estão à esquerda do bloco de luma. Os exemplos a seguir para a subamostragem das amostras de luma vizinhas à esquerda e os exemplos acima para a subamostragem de amostras de luma vizinhas que estão acima do bloco de luma podem ser usados em conjunto ou separadamente.
[00119] Por exemplo, o codificador de vídeo 20
Petição 870190053680, de 12/06/2019, pág. 55/171
51/119 e o decodificador de video 30 podem ser configurados para realizar uma ou mais técnicas exemplificadoras descritas nesta revelação em relação à subamostragem acima das amostras de luma vizinhas, e podem não ser configurados para realizar uma ou mais técnicas exemplificadoras descritas nesta revelação em relação à subamostragem de amostras de luma vizinhas à esquerda. O codificador de video 20 e o decodif icador de vídeo 30 podem não ser configurados para realizar uma ou mais técnicas exemplificadoras descritas nesta revelação em relação à subamostragem acima das amostras de luma vizinhas, e podem ser configurados para realizar uma ou mais técnicas exemplificadoras descritas nesta revelação em relação à subamostragem de amostras de luma vizinhas à esquerda. O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para realizar uma ou mais técnicas exemplificadoras descritas nesta revelação em relação à subamostragem acima das amostras de luma vizinhas, e podem ser configurados para realizar uma ou mais técnicas exemplificadoras descritas nesta revelação em relação à subamostragem de amostras de luma vizinhas à esquerda.
[00120] Para amostras de luma vizinhas à esquerda, como um exemplo, durante o processo de derivação de amostras de luma subamostradas correspondentes de amostras de croma, uma amostra de luma com a coordenada (x,y), em que x<x0-k e y>=y0, não está envolvida no processo de subamostragem de amostras de luma vizinhas à esquerda do bloco atual. Aqui, k é um número inteiro maior que 0. Em um exemplo, k é igual a 4.
Petição 870190053680, de 12/06/2019, pág. 56/171
52/119 [00121] A Figura 13 é um diagrama conceituai que ilustra um exemplo de amostras de luma que são buscadas para obter uma amostra de luma subamostrada. A Figura 14 é um diagrama conceituai que ilustra outro exemplo de amostras de luma que são buscadas para obter uma amostra de luma subamostrada. A Figura 13 e a Figura 14 demonstram a diferença entre os métodos de subamostragem JCTVC-F502 (Figura 13) e as técnicas descritas nesta revelação (Figura 14) respectivamente, quando k=4. Para obter a amostra de luma vizinha esquerda subamostrada da segunda coluna, conforme descrito no Pedido '145 e Pedido '029, o método de subamostragem em JCTVC-F502 irá buscar duas amostras de luma com as coordenadas (x0-5, yO) e (x0-5, yO + 1) ; enquanto o codificador de vídeo 20 e o decodificador de vídeo 30 não podem buscar estas duas amostras de luma de acordo com exemplos desta revelação.
[00122] Em um exemplo, o comprimento do filtro (ou seja, número de amostras que o filtro usou como entrada) para derivar a amostra de luma subamostrada correspondente de uma amostra de croma é mais curto quando o processo de filtragem envolve amostras de luma com a coordenada (x,y), em que x<x0-k e y>=y0.
[00123] As Figuras 15A e 15B são diagramas conceituais que ilustram comprimentos de filtro diferentes para amostras subamostradas em posições diferentes. O filtro de subamostragem proposto em JCTVC-F502 é usado quando nenhuma amostra de luma com a coordenada (x,y), em que x<x0-k e y>=y0, estiver envolvida no processo de filtragem, conforme mostrado na Figura 15 A. Por outro
Petição 870190053680, de 12/06/2019, pág. 57/171
53/119 lado, o filtro de subamostragem proposto em JCTVC-E266 é usado quando as amostras de luma com a coordenada (x,y), em que x<xO-k e y>=yO, estiverem envolvidas no processo de filtragem JCTVC-F502, conforme mostrado na Figura 15B.
[00124] Em um exemplo, os filtros para derivar a amostra de luma subamostrada correspondente de uma amostra de croma são iguais, independentemente se o processo de filtragem envolve ou não amostras de luma com a coordenada (x,y), em que x<x0-k. Entretanto, quando o processo de filtragem envolve amostras de luma com a coordenada (x,y), em que x<x0-k e y>=y0, essas amostras de luma são preenchidas por amostras de luma adjacentes em vez de serem buscadas dos locais correspondentes.
[00125] As Figuras 16A e 16B são diagramas conceituais que ilustram a filtragem com amostras preenchidas. Nas Figuras 16A e 16B, o filtro de subamostragem proposto em JCTVC-F502 é sempre usado, independentemente se uma amostra de luma com a coordenada (x,y), em que x<x0-k e y>=y0, está ou não envolvida no processo de filtragem. Porém, quando as amostras de luma com a coordenada (x,y), em que x<x0-k e y>=y0, estiverem envolvidas, essas amostras são preenchidas em vez de serem buscadas conforme mostrado na Figura 16B. A Equação (11) mostra um processo de preenchimento em uma forma de fórmula.
my (f,./) = (Re [ 2f, 2/| * 2 + Re c - ζ 2/J r Re^ [ 2i + lf 2/]
-η Re[2L 2j +!] * 2 -η Ree[2/ -1,2/ +1]+Re[2/ ζ 2./ 4· I]) » 3
Petição 870190053680, de 12/06/2019, pág. 58/171
54/119 em que
Re Ú 12/ ·~ 1,2/ ·± rj - Re ÍÍ ', iXa [2ς 2/ 41] [00126] Consequentemente, as Figuras 14 a 16B ilustram exemplos de quais amostras de luma o codificador de video 20 e o decodificador de video 30 buscam para a subamostragem amostras de luma. Por exemplo, as amostras de luma vizinhas buscadas incluem uma pluralidade de amostras de luma que estão à esquerda do bloco de luma e excluem amostras de luma que estão à esquerda e que são mais do que um número limite (por exemplo, k) de amostras à esquerda do bloco de luma e abaixo de uma amostra de luma superior esquerda do bloco de luma. O codificador de video 20 e o decodificador de video 30 podem determinar uma pluralidade
de amostras de luma subamostradas com base nas amostras de
luma vizinhas buscadas. Uma das amostras de luma
subamostradas corresponde a uma amostra de luma
subamostrada que está o número limite de amostras à esquerda do bloco de luma.
[00127] Por exemplo, as Figuras 14, 15B e 15B ilustram uma amostra de luma subamostrada que está quatro amostras à esquerda do bloco de luma, e nesse exemplo, o número limite de amostras à esquerda do bloco de luma é quatro (por exemplo, k = 4). Então, a Figura 14, 15B e 16B ilustram exemplos em que as amostras de luma vizinhas buscadas incluem amostras que estão à esquerda do bloco de luma e excluem as amostras de luma que estão mais do que o número limite de amostras à esquerda do bloco de luma e
Petição 870190053680, de 12/06/2019, pág. 59/171
55/119 estão abaixo de uma amostra de luma superior esquerda, e em que uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada que está o número limite de amostras à esquerda do bloco de luma.
[00128] As Figuras 15A e 16A ilustram uma amostra de luma subamostrada que está à esquerda do bloco de luma, porém não um número limite de amostras de luma à esquerda do bloco de luma. Por exemplo, se o número limite de amostras de luma à esquerda, além do qual as amostras de luma são excluídas da busca, for quatro, então nas Figuras 15A e 16A, as amostras de luma subamostradas são ilustradas como duas amostras de luma à esquerda do bloco de luma (por exemplo, em uma coluna que está duas amostras de luma à esquerda do bloco de luma). Consequentemente, as Figuras 14 a 16B ilustram exemplos de maneiras nas quais o codificador de vídeo 20 e o decodificador de vídeo 30 podem determinar uma pluralidade de amostras de luma subamostradas, em que a amostra de luma subamostrada nas Figuras 14, 15B e 16B é uma dentre a pluralidade de amostras de luma subamostradas, e a amostra de luma subamostrada nas Figuras 15A e 16A é outra dentre a pluralidade de amostras de luma subamostradas.
[00129] Conforme ilustrado nas Figuras 14, 15B e 15B, uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada que está o número limite de amostras de luma à esquerda do bloco de luma (por exemplo, corresponde a uma amostra de luma subamostrada mais de duas colunas visto que o número limite é quatro). As amostras de luma vizinhas buscadas que são subamostradas
Petição 870190053680, de 12/06/2019, pág. 60/171
56/119 para gerar a amostra de luma subamostrada das Figuras 14, 15B e 16B excluem as amostras de luma que estão mais do que um número limite (por exemplo, k = 4) de amostras à esquerda do bloco de luma e abaixo de uma amostra de luma superior esquerda do bloco de luma. Em contrapartida, as amostras de luma vizinhas buscadas que são subamostradas para gerar a amostra de luma subamostrada da Figura 13 incluem amostras de luma que estão mais de um número limite de amostras à esquerda do bloco de luma. Em alguns exemplos, as amostras de luma que estão mais do que um número limite de amostras à esquerda do bloco de luma e estão abaixo de uma amostra superior esquerda do bloco de luma podem não ser armazenadas na memória de buffer de linha. Portanto, o acesso a essas amostras de luma pode ser ineficiente em termos de processamento e largura de banda. Então, os exemplos de técnicas podem promover a eficiência de processamento e largura de banda excluindo, da busca, as amostras de luma que estão mais do que um número limite de amostras à esquerda do bloco de luma e estão abaixo de uma amostra de luma superior esquerda do bloco de luma.
[00130] Entretanto, em alguns exemplos, todas as amostras de luma necessárias para a subamostragem de acordo com o filtro descrito em JCTVC-F502 podem ser armazenadas no buffer de linha e em tais exemplos, o codificador de video 20 e o decodificador de video 30 podem buscar todas as amostras de luma vizinhas necessárias para realizar a subamostragem de acordo com o filtro JCTVC-F502. Se todas as amostras de luma necessárias para subamostragem de acordo com o filtro de JCTVC-F502 não estiverem
Petição 870190053680, de 12/06/2019, pág. 61/171
57/119 disponíveis (por exemplo, devido ao fato de estas amostras de luma estarem localizadas mais do que um número limite de amostras à esquerda do bloco de luma e abaixo de uma amostra superior esquerda do bloco de luma), então o codificador de vídeo 20 e decodificador de vídeo 30 podem buscar amostras diferentes daquelas usadas no filtro de JCTVC-F502. Deve ser entendido que a referência ao filtro de JCTVC-F502 é usada meramente como um exemplo, e as técnicas são aplicáveis a outros filtros também.
[00131] Conforme ilustrado na Figura 15A, o codificador de vídeo 20 e o decodificador de vídeo 30 podem aplicar um primeiro filtro a um primeiro conjunto das amostras de luma vizinhas buscadas para determinar uma primeira amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, guando nenhuma amostra de luma que é mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda for necessária para subamostragem de acordo com o primeiro filtro. A primeira amostra de luma subamostrada pode estar em uma coluna que é um primeiro número de colunas à esquerda do bloco de luma. Por exemplo, nas Figuras 15A e 16A, o primeiro filtro utiliza três amostras de luma de uma primeira linha que está à esquerda do bloco de luma, e utiliza três amostras de luma de uma segunda linha que está abaixo da primeira linha. Também nas Figuras 15A e 16A, a amostra de luma subamostrada está em uma coluna que está duas colunas à esquerda do bloco de luma. Nas Figuras 15A e 16 A, o primeiro conjunto das amostras de luma vizinhas buscadas consiste nos exemplos de
Petição 870190053680, de 12/06/2019, pág. 62/171
58/119 amostras de luma usadas para gerar a amostra de luma subamostrada ilustrada.
[00132] Conforme ilustrado nas Figuras 14 e 15, o codificador de video 20 e o decodifleader de video 30 podem aplicar um segundo filtro a um segundo conjunto das amostras de luma vizinhas buscadas para determinar uma segunda amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando pelo menos uma amostra de luma que é mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda do bloco de luma podería ser necessária para subamostragem de acordo com o primeiro filtro. Deve-se compreender que quando o codificador de video 20 ou o decodificador de vídeo 30 aplicam o segundo filtro, o codificador de vídeo 20 e o decodificador de vídeo 30 não determinam necessariamente (embora seja possível) que o uso do primeiro filtro podería resultar na busca de pelo menos uma amostra de luma que está mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda. De preferência, na condição em que o uso do primeiro filtro podería resultar na busca de pelo menos uma amostra de luma que está mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda, o codificador de vídeo 20 e o decodificador de vídeo 30 podem utilizar um segundo filtros para a subamostragem que não exige a busca de amostras de luma que estão mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior
Petição 870190053680, de 12/06/2019, pág. 63/171
59/119 esquerda .
[00133] Por exemplo, nas Figuras 14 e 15B, se o primeiro filtro (por exemplo, aquele usado na Figura 11A) for usado, então, o codificador de video 20 e o decodificador de video 30 poderíam ser necessários para buscar as amostras de luma que estão mais do que o número limite de amostras de luma à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda. Para evitar a busca de amostras de luma que estão mais do que o número limite de amostras de luma à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda, o codificador de vídeo 20 e o decodificador de vídeo 30 podem aplicar o segundo filtro. Em alguns exemplos, o segundo filtro usa menos de três amostras de luma de uma primeira linha que está à esquerda do bloco de luma (por exemplo, duas amostras de luma na Figura 14, e uma amostra de luma na Figura 15B) , e usa menos de três amostras de luma de uma segunda linha que está acima da primeira linha (por exemplo, duas amostras de luma na Figura 14, e uma amostra de luma na Figura 15B).
[00134] Nas Figuras 10, 15A e 15B, o codificador de vídeo 20 e o decodificador de vídeo 30 podem usar filtros diferentes com base em se a busca da amostra de luma podería resultar na busca de amostras de luma que estão mais do que o número limite de amostras de luma à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda. Entretanto, os exemplos de técnicas não são tão limitados.
[00135] Em alguns exemplos, o codificador de
Petição 870190053680, de 12/06/2019, pág. 64/171
60/119 video 20 e o decodifleader de video 30 podem usar um filtro. Na condição em que o uso daquele filtro para a subamostragem poderia resultar na busca de codificador de video 20 e decodificador de video 30 por amostras de luma que estão mais do que o número limite de amostras de luma à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda, em vez de buscar aquelas amostras de luma, o codificador de video 20 e o decodificador de video 30 podem gerar valores de luma (por exemplo, valores de preenchimento descritos acima). Por exemplo, conforme ilustrado na Figura 12B, o codificador de video 20 e o decodificador de video 30 podem gerar, sem busca, valores de luma (por exemplo, valores de preenchimento) que correspondem a amostras de luma localizadas mais do que o número limite de amostras de luma à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda do bloco de luma. O codificador de video 20 e o decodif icador de video podem aplicar um filtro (por exemplo, filtro de JCTVC-F502) aos valores de luma gerados para determinar pelo menos uma amostra de luma subamostrada da pluralidade de amostras de luma subamostradas.
[00136] As técnicas mencionadas acima podem não estar limitadas aos filtros de subamostragem específicos descritos acima, e podem ser usadas em conjunto com qualquer filtro de subamostragem. Também, as técnicas supracitadas podem não ser limitadas à codificação de vídeo/imagem em formato de croma yuv420. Como um exemplo, as mesmas também podem usadas em codificação de vídeo/imagem em formato de croma yuv422.
Petição 870190053680, de 12/06/2019, pág. 65/171
61/119 [00137] Um sinalizador de agrupamento denominado sinalizador por LM, para indicar se o modo LM (como o modo LM proposto em JCTVC-E266 ou um dos múltiplos modos LM propostos no Pedido '145 e no Pedido '029) é codificado por codificador de video 20 ou decodificador de vídeo 30, conforme aplicável. O contexto de codificação desse sinalizador pode depender dos sinalizadores por LM codificados/decodifiçados de um ou mais blocos vizinhos.
[00138] Em um exemplo tal sinalizador primeiramente codificado. Se esse sinalizador indicar que um modo LM é usado, o índice de modos LM pode ser adicionalmente sinalizado no fluxo de bits codificado pelo codificador de vídeo 20. De outro modo, outros modos de croma excluindo modos LM podem ser adicionalmente sinalizados. Como um exemplo, pode haver 3 contextos para o sinalizador LM: LM ctx[0], LM ctx[l] e LM ctx[2]. Uma variável ctx é calculada como ctx = LM_flag_A + LM_flag_B, em que o sinalizador LM A e o sinalizador LM B são os sinalizadores LM de blocos vizinhos. Em um exemplo, os blocos vizinhos denotados por A e B são mostrados na Figura 17, respectivamente (por exemplo, A, A0, Al, B, B0, BI e B2) . A Figura 17 é um diagrama conceituai que ilustra blocos vizinhos do bloco atual.
Em um exemplo além disso quando o
Bloco X (X sendo um dos blocos vizinhos) não é codificado por intrapredição ou não existe (ou seja, não está disponível), o sinalizador LM X é igual a 0, em que X é A ou B. Em um exemplo, além disso, quando um bloco vizinho estiver localizado acima do bloco atual, pode ser
Petição 870190053680, de 12/06/2019, pág. 66/171
62/119 necessário que o bloco vizinho esteja dentro da mesma LCU. Se o bloco vizinho estiver fora da LCU atual, o mesmo pode ser tratado como indisponível.
[00140] Consequentemente, em um exemplo, o decodificador de video 30 pode decodificar um sinalizador para um bloco atual que inclui o bloco de luma e o bloco de croma. O sinalizador (por exemplo, sinalizador LM) indica que a codificação por predição por LM é habilitada para o bloco de croma. O decodif icador de video 30 pode ser configurado para decodificar o sinalizador com base em um contexto que compreende um ou mais sinalizadores que indicam se a codificação por predição por LM está habilitada para blocos vizinhos. De modo similar, o codificador de video 20 pode codificar um sinalizador para um bloco atual que inclui o bloco de luma e o bloco de croma. O sinalizador (por exemplo, sinalizador LM) indica que a codificação por predição por LM é habilitada para o bloco de croma. O codificador de video 20 pode codificar o sinalizador com base em um contexto que compreende um ou mais sinalizadores que indicam se a codificação por predição por LM está habilitada para blocos vizinhos.
[00141] Nesta revelação, os exemplos de técnicas descritos em relação ao sinalizador LM podem ser aplicadas separadamente e independentemente dos exemplos de técnicas relacionados com as quais as amostras de luma são subamostradas para a predição por LM. Em alguns exemplos, o codificador de video 20 e o decodificador de video 30 podem ser configurados para excluir amostras de luma vizinhas da subamostragem, conforme descrito acima, e codificam ou
Petição 870190053680, de 12/06/2019, pág. 67/171
63/119 decodificam o sinalizador LM conforme descrito acima. Em alguns exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para excluir amostras de luma vizinhas da subamostragem, conforme descrito acima, porém não codificam ou decodificam o sinalizador LM conforme descrito acima. Em alguns exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem não ser configurados para excluir amostras de luma vizinhas da subamostragem, conforme descrito acima, porém podem ser configurados para codificar ou decodificar o sinalizador LM conforme descrito acima.
[00142] A descrição a seguir apresenta um exemplo para implementar um ou mais exemplos de técnicas descritos nesta revelação. O exemplo é para os exemplos de técnicas de downfiltering (por exemplo, subamostragem) das amostras de luma vizinhas acima, ou para os exemplos de técnicas para downfiltering (por exemplo, subamostragem) das amostras de luma vizinhas à esquerda. Supondo que ReciOng[0, 0] representa a amostra de luma superior esquerda do bloco atual, o processo de subamostragem para as amostras de luma vizinhas acima é definido conforme exposto a seguir:
- se a amostra de croma não estiver localizada mais à esquerda da linha vizinha acima, ou seja, quando i > 0:
regO.·''!) 2% -2]*2 <Rec,A>J[2f 2]'l'Req^J 2/ H ~2]
-s-Rec,.v42í. -l]+Re^.[2í+l.-q +#)«)»3
...... '..... * ...... (12)
- De outro modo, ou seja, quando i for igual a 0:
Petição 870190053680, de 12/06/2019, pág. 68/171
64/119 mç (j,. -1) s': ((Re u, [ 2/, - 2| ♦ 3 4- Re c-tiW [ 22 9-1 - 2|
4-Reeq^pl -91-1] -9i9$fe/1.)>>3 (13)
[00143] Em um exemplo, offset0 e offsetl são
ambos iguais a 0. Em um exemplo, offset0 e offsetl são
ambos iguais a 4. Por exemplo, para a subamostragem das
amostras de luma acima de acordo com o exemplo da Figura 10, o codificador de video 20 e ο decodificador de video 30 podem aplicar a equação (13) com deslocamento de 0. Para a subamostragem das amostras de luma à esquerda de acordo com o exemplo da Figura 14, o codificador de video 20 e ο decodificador de video 30 podem aplicar a equação (13) com deslocamento de 4. Nesse exemplo, o deslocamento é 4, pois as amostras de luma mais de 4 amostras à esquerda do bloco de luma são excluídas da subamostragem. O deslocamento pode ser diferente de 4 se as amostras de luma menos ou mais de 4 samples à esquerda do bloco de luma forem excluídas da subamostragem.
[00144] Por exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem realizar as operações da equação (12) (por exemplo, aplicar um primeiro filtro a um primeiro conjunto das amostras de luma vizinhas buscadas) para determinar uma primeira amostra de luma subamostrada quando nenhuma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda for necessária para subamostragem de acordo com as operações da equação (12). Como um exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem realizar as operações da equação (12) para determinar a amostra de luma subamostrada
Petição 870190053680, de 12/06/2019, pág. 69/171
65/119 ilustrada na Figura 11A usando as amostras de luma vizinhas (por exemplo, um primeiro conjunto das amostras de luma vizinhas buscadas) ilustradas na Figura 11A.
[00145] O codificador de video 20 e o decodificador de video 30 podem realizar as operações da equação (13) (por exemplo, aplicar um segundo filtro a um segundo conjunto das amostras de luma vizinhas buscadas) para determinar uma segunda amostra de luma subamostrada quando pelo menos uma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda do bloco de luma for necessária para subamostragem de acordo com as operações da equação (12) (por exemplo, de acordo com o primeiro filtro). Por exemplo, se o primeiro filtro for usado, então, pelo menos uma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda do bloco de luma podería ser necessária para a subamostragem. Como um exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem realizar as operações da equação (13) para determinar a amostra de luma subamostrada ilustrada na Figura 10 usando as amostras de luma vizinhas (por exemplo, um segundo conjunto das amostras de luma vizinhas buscadas) ilustradas na Figura 10.
[00146] Por exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem realizar as operações da equação (12) (por exemplo, aplicar um primeiro filtro a um primeiro conjunto das amostras de luma vizinhas buscadas) para determinar uma primeira amostra de luma subamostrada quando nenhuma amostra de luma que é mais do que o número limite de amostras (por exemplo, k amostras) à
Petição 870190053680, de 12/06/2019, pág. 70/171
66/119 esquerda do bloco de luma e abaixo da amostra de luma superior esquerda for necessária para subamostragem de acordo com as operações da equação (12) . A primeira amostra de luma subamostrada está em uma coluna que é um primeiro número de colunas à esquerda do bloco de luma. Como um exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem realizar as operações da equação (12) para determinar a amostra de luma subamostrada ilustrada na Figura 16A usando as amostras de luma vizinhas (por exemplo, um primeiro conjunto das amostras de luma vizinhas
buscadas ) ilustradas na Figura 15A. Conforme ilustrado, a
amostra de luma subamostrada na Figura 15A está duas
colunas à esquerda do bloco de luma.
[00147] 0 codificador de vídeo 2 0 e o
decodificador de vídeo 30 podem realizar as operações da equação (13) (por exemplo, aplicar um segundo filtro a um segundo conjunto das amostras de luma vizinhas buscadas) para determinar uma segunda amostra de luma subamostrada quando pelo menos uma amostra de luma que é mais do que o número limite de amostras (por exemplo, k amostras) à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda do bloco de luma for necessária para subamostragem de acordo com as operações da equação (12) (por exemplo, de acordo com o primeiro filtro). Por exemplo, se o primeiro filtro for usado, então, pelo menos uma amostra de luma que está mais do que o número limite de amostras (por exemplo, k amostras) à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda do bloco de luma poderia ser necessária para a subamostragem. A
Petição 870190053680, de 12/06/2019, pág. 71/171
67/119 segunda amostra de luma subamostrada está em uma coluna que é um segundo número de colunas à esquerda do bloco de luma, e o segundo número é maior que o primeiro número. Como um exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem realizar as operações da equação (13) para determinar a amostra de luma subamostrada ilustrada na Figura 14 usando as amostras de luma vizinhas (por exemplo, um segundo conjunto das amostras de luma vizinhas buscadas) ilustradas na Figura 14.
[00148] A Figura 2 é um diagrama de blocos que ilustra um exemplo de codificador de vídeo 20 que pode implementar as técnicas desta revelação. A Figura 2 é fornecida com propósitos de explicação e não deve ser considerada como limitativa das técnicas como amplamente exemplificado e descrito nesta revelação. Com os propósitos de explicação, esta revelação descreve o codificador de vídeo 20 no contexto de codificação de HEVC. Entretanto, as técnicas desta revelação podem ser aplicáveis a outros padrões ou métodos de codificação, inclusive aqueles sob desenvolvimento atualmente ou no futuro.
[00149] O codificador de vídeo 20 representa um exemplo de um dispositivo que pode ser configurado para realizar as técnicas para codificação de vídeo baseada em LM de acordo com vários exemplos descritos nesta revelação. Por exemplo, o codificador de vídeo 20 pode ser configurado para codificar um ou mais blocos usando a codificação de vídeo por LM.
[00150] No exemplo da Figura 2, o codificador de vídeo 20 inclui uma unidade de processamento de predição
Petição 870190053680, de 12/06/2019, pág. 72/171
68/119
100, memória de dados de video 101, uma unidade de geração residual 102, uma unidade de processamento de transformada 104, uma unidade de quantização 106, uma unidade de quantização inversa 108, uma unidade de processamento de transformada inversa 110, uma unidade de reconstrução 112, uma unidade de filtro 114, um buffer de imagens decodificadas (DPB) 116 e uma unidade de codificação por entropia 118. A unidade de processamento de predição 100 inclui uma unidade de processamento de interpredição 120 e uma unidade de processamento de intrapredição 126. A unidade de processamento de interpredição 120 inclui uma unidade de estimativa de movimento e uma unidade de compensação de movimento (não mostradas). O codificador de video 20 também inclui uma unidade de codificação baseada em modelo linear (LM) 122 configurada para realizar vários aspectos das técnicas de codificação baseadas em LM descritos nesta revelação. Em outros exemplos, o codificador de video 20 pode incluir mais, menos ou componentes funcionais diferentes.
[00151] A memória de dados de video 101 pode armazenar dados de video que serão codificados pelos componentes de codificador de video 20. Os dados de video armazenados na memória de dados de video 101 podem ser obtidos, por exemplo, a partir da fonte de video 18. O DPB 116 pode ser uma memória de imagem de referência que armazena dados de video de referência para uso na codificação de dados de video pelo codificador de video 20 (por exemplo, em modos de intra ou intercodificação) . A memória de dados de video 101 e DPB 116 podem ser formados
Petição 870190053680, de 12/06/2019, pág. 73/171
69/119 por qualquer um dentre uma variedade de dispositivos de memória, como memória de acesso aleatório dinâmica (DRAM), incluindo DRAM síncrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM), ou outros tipos de dispositivos de memória. A memória de dados de vídeo 101 e DPB 116 pode ser fornecida pelo mesmo dispositivo de memória ou dispositivos de memória separados. Em vários exemplos, a memória de dados de vídeo 101 pode estar no chip com outros componentes de codificador de vídeo 20, ou fora do chip em relação àqueles componentes.
[00152] Nesta revelação, a referência à memória de dados de vídeo 101 não deve ser interpretada como limitada à memória interna do codificador de vídeo 20, a menos que especificamente descrito como tal, ou memória externa ao codificador de vídeo 20, a menos que especificamente descrito como tal. A referência à memória de dados de vídeo 101 deve ser entendida como referência à memória que armazena dados de vídeo que o codificador de vídeo 20 recebe para codificação (por exemplo, dados de vídeo para um bloco atual que deve ser codificado) . A memória de dados de vídeo 101 também pode fornecer armazenamento temporário de saídas das várias unidades de codificador de vídeo 20.
[00153] Como um exemplo, a memória de dados de vídeo 101 é um exemplo de um buffer de linha que é interno ao codificador de vídeo 20 e armazena amostras de blocos vizinhos que estão adjacentes ao bloco atual que está sendo codificado. Como outro exemplo, parte de DPB 116 pode ser o buffer de linha que é interno ao codificador de vídeo 20, e
Petição 870190053680, de 12/06/2019, pág. 74/171
70/119 parte de DPB 116 pode ser a memória que é externa ao codificador de video 20, como parte da memória de sistema do chip de IC que inclui o codificador de video 20. Como outro exemplo, o buffer de linha pode ser a memória cache do codificador de video 20.
[00154] As várias unidades da Figura 2 são ilustradas para ajudar a entender as operações realizadas pelo codificador de video 20. As unidades podem ser implementadas como circuitos de função fixa, circuitos programáveis, ou uma combinação dos mesmos. Os circuitos de função fixa referem-se a circuitos que fornecem funcionalidade especifica, e estão presentes nas operações que podem ser realizadas. Os circuitos programáveis referem-se a circuitos que podem ser programados para realizar várias tarefas, e fornecer funcionalidade flexível nas operações que podem ser realizadas. Por exemplo, os circuitos programáveis podem executar software ou firmware que fazem com que os circuitos programáveis operem da maneira definida por instruções do software ou firmware. Os circuitos de função fixa podem executar instruções de software (por exemplo, para receber parâmetros ou parâmetros de saída), porém os tipos de operações que os circuitos de função fixa realizam são geralmente imutáveis. Em alguns exemplos, a uma ou mais unidades podem ser blocos de circuito distintos (função fixa ou programável), e em alguns exemplos, a uma ou mais unidades podem ser circuitos integrados.
[00155] O codificador de vídeo 20 pode incluir unidades lógicas e aritméticas (ALUs), unidades de função
Petição 870190053680, de 12/06/2019, pág. 75/171
71/119 elementar (EFUs), circuitos digitais, circuitos analógicos e/ou núcleos programáveis, formados a partir de circuitos programáveis. Em exemplos em que as operações do codificador de vídeo 20 são realizadas por software executado pelos circuitos programáveis, a memória de dados de vídeo 101 pode armazenar o código de objeto do software que o codificador de vídeo 20 recebe e executa, ou outra memória (não mostrada) pode armazenar tais instruções.
[00156] O codificador de vídeo 20 pode receber dados de vídeo. O codificador de vídeo 20 pode codificar cada CTU em uma fatia de uma imagem reconstruída dos dados de vídeo. Cada uma das CTUs pode estar associada a blocos de árvore de codificação de luma igualmente dimensionados (CTBs) e CTBs correspondentes da imagem. Como parte da codificação de uma CTU, a unidade de processamento de predição 100 pode realizar o particionamento de quadtree para dividir os CTBs da CTU em blocos progressivamente menores. O bloco menor pode ser blocos de codificação de CUs. Por exemplo, a unidade de processamento de predição 100 pode particionar um CTB associado a uma CTU em quatro sub-blocos igualmente dimensionados, particionar um ou mais dos sub-blocos em quatro sub-blocos igualmente dimensionados, e assim por diante.
[00157] O codificador de vídeo 20 pode codificar as CUs de uma CTU para gerar representações codificadas das CUs (ou seja, Cus codificadas). Como parte da codificação de uma CU, a unidade de processamento de predição 100 pode particionar os blocos de codificação associados à CU entre uma ou mais PUs da CU. Dessa forma,
Petição 870190053680, de 12/06/2019, pág. 76/171
72/119 cada PU pode estar associada a um bloco de predição de luma e blocos de predição de croma correspondentes. 0 codificador de video 20 e o decodificador de video 30 podem suportar PUs que têm vários tamanhos. Como indicado acima, o tamanho de uma CU pode referir-se ao tamanho do bloco de codificação de luma da CU e o tamanho de uma PU pode referir-se ao tamanho de um bloco de predição de luma da PU. Supondo que o tamanho de uma CU especifica seja 2Nx2N, o codificador de video 20 e o decodificador de video 30 podem suportar tamanhos de PU de 2Nx2N ou NxN para intrapredição, e tamanhos de PU simétricos de 2Nx2N, 2NxN, Nx2N, NxN, ou similares para interpredição. O codificador de video 20 e o decodif icador de video 30 também podem suportar o particionamento assimétrico para tamanhos de PU de 2NxnU, 2NxnD, nLx2N e nRx2N para interpredição.
[00158] A unidade de processamento de interpredição 120 pode gerar dados preditivos para uma PU realizando a interpredição em cada PU de uma CU. Os dados preditivos para a PU podem incluir blocos preditivos da PU e informações de movimento para a PU. A unidade de processamento de interpredição 120 pode realizar operações diferentes para uma PU de uma CU dependendo se a PU está em uma fatia I, uma fatia P ou uma fatia B. Em uma fatia I, todas as PUs são intraprevistas. Então, se a PU estiver em uma fatia I, a unidade de processamento de interpredição 120 não realiza a interpredição na PU. Dessa forma, para blocos codificados em modo I, o bloco previsto é formado usando a predição espacial de blocos vizinhos anteriormente codificados dentro da mesma estrutura.
Petição 870190053680, de 12/06/2019, pág. 77/171
73/119 [00159] Se uma PU estiver em uma fatia P, a unidade de estimativa de movimento de unidade de processamento de interpredição 120 pode buscar as imagens de referência em uma lista de imagens de referência (por exemplo, RefPicListO) para uma região de referência para a PU. A região de referência para a PU pode ser uma região, dentro de uma imagem de referência, que contém os blocos de amostra que melhor correspondem aos blocos de amostra da PU. A unidade de estimativa de movimento pode gerar um índice de referência que indica uma posição em RefPicListO da imagem de referência contendo a região de referência para a PU. Além disso, a unidade de estimativa de movimento pode gerar um MV que indica um deslocamento espacial entre um bloco de codificação da PU e uma localização de referência associada à região de referência. Por exemplo, o MV pode ser um vetor bidimensional que fornece um deslocamento a partir das coordenadas na imagem decodificada atual até as coordenadas em uma imagem de referência. A unidade de estimativa de movimento pode enviar o índice de referência e o MV como as informações de movimento da PU. A unidade de compensação de movimento de unidade de processamento de interpredição 120 pode gerar os blocos preditivos da PU com base em amostras reais ou interpeladas na localização de referência indicada pelo vetor de movimento da PU.
[00160] Se uma PU estiver em uma fatia B, a unidade de estimativa de movimento de unidade de processamento de interpredição 120 pode realizar a unipredição ou bipredição para a PU. Para realizar a
Petição 870190053680, de 12/06/2019, pág. 78/171
74/119 unipredição da PU, a unidade de estimativa de movimento pode buscar as imagens de referência de RefPicListO ou uma segunda lista de imagens de referência (RefPicListl) para uma região de referência da PU. A unidade de estimativa de movimento pode enviar, como as informações de movimento da PU, um índice de referência que indica uma posição em RefPicListO ou RefPicListl da imagem de referência que contém a região de referência, um MV que indica um deslocamento espacial entre um bloco de predição da PU e um local de referência associado à região de referência e um ou mais indicadores de direção de predição que indicam se a imagem de referência está em RefPicListO ou RefPicListl. A unidade de compensação de movimento de unidade de processamento de interpredição 120 pode gerar os blocos preditivos da PU com base pelo menos em parte em amostras reais ou interpeladas na região de referência indicada pelo
vetor de movimento da PU
[00161] Para realizar a interpredição
bidirecional para uma PU, a unidade de estimativa de
movimento pode buscar as imagens de referência em
RefPicListO por uma região de referência para a PU e também pode buscar as imagens de referência em RefPicListl por outra região de referência para a PU. A unidade de estimativa de movimento pode gerar índices de imagem de referência que indicam posições em RefPicListO e RefPicListl das imagens de referência que contêm as regiões de referência. Além disso, a unidade de estimativa de movimento pode gerar MVs que indicam deslocamentos espaciais entre a localização de referência associada às
Petição 870190053680, de 12/06/2019, pág. 79/171
75/119 regiões de referência e um bloco de amostra da PU. A informações de movimento da PU podem incluir os indices de referência e os MVs da PU. A unidade de compensação de movimento de unidade de processamento de interpredição 120 pode gerar os blocos preditivos da PU com base pelo menos em parte em amostras reais ou interpeladas nas regiões de referência indicada pelos vetores de movimento da PU.
[00162] A unidade de codificação baseada em LM 122 pode realizar a codificação por predição por modelo linear (LM) . Por exemplo, a unidade de codificação baseada em LM 122 pode subamostrar as amostras de luma reconstruídas de um bloco de luma que corresponde a um bloco de croma atual que está sendo codificado. A unidade de codificação baseada em LM 122 pode escalonar as amostras de luma reconstruídas subamostradas do bloco de luma para gerar um bloco preditivo. A unidade de geração residual 102 pode determinar um bloco residual indicando uma diferença em valores de amostra entre o bloco de croma e o bloco preditivo. Em alguns exemplos, a unidade de codificação baseada em LM 122 pode aplicar tais técnicas como parte de predição residual de componente cruzado. Nesse caso, o bloco de croma é um bloco residual de croma e o bloco de luma é um bloco residual de luma.
[00163] Por exemplo, a unidade de codificação baseada em LM 122 pode determinar um bloco de luma que corresponde a um bloco de croma. A unidade de codificação baseada em LM 122 pode buscar as amostras de luma vizinhas para a subamostragem das amostras de luma vizinhas utilizando os exemplos de técnicas descritos nesta
Petição 870190053680, de 12/06/2019, pág. 80/171
76/119 revelação, e determinar uma pluralidade de amostras de luma subamostradas com base nas amostras de luma vizinhas buscadas. A unidade de codificação baseada em LM 122 pode determinar um ou mais parâmetros de escalonamento com base nas amostras de luma subamostradas (por exemplo, α e β, descrito acima). A unidade de codificação baseada em LM 122 pode determinar um bloco preditivo com base em um ou mais parâmetros de escalonamento. Por exemplo, a unidade de codificação baseada em LM 122 pode determinar a*recL(i,j) + β, em que recL(ij) é uma versão subamostrada do bloco de luma que corresponde ao bloco de croma, e α e β são fatores de escalonamento determinados a partir de amostras de luma vizinhas subamostradas. A unidade de codificação baseada em LM 122 pode realizar a subamostragem das amostras de luma vizinhas de acordo com um ou mais exemplos de técnicas descritos nesta revelação como técnicas para limitar o acesso de amostras de luma vizinhas armazenadas fora do buffer de linha.
[00164] O codificador de vídeo 20 pode, então, codificar por predição por LM o bloco de croma com base no bloco preditivo. Por exemplo, conforme descrito a seguir, o codificador de vídeo 20 pode subtrair o bloco preditivo do bloco de croma para gerar um bloco residual usado, pelo decodificador de vídeo 30, para reconstruir o bloco de croma.
[00165] Nas técnicas descritas nesta revelação, a unidade de codificação baseada em LM 122 pode implementar um ou mais dos exemplos de técnicas acima como parte da subamostragem das amostras de luma de um bloco de luma.
Petição 870190053680, de 12/06/2019, pág. 81/171
77/119
Como um exemplo, a unidade de codificação baseada em LM 122 pode determinar um bloco de luma que corresponde a um bloco de croma que está sendo codificado, em que uma coordenada de uma amostra superior esquerda do bloco de luma é (xO, yO), determinar as amostras de luma, armazenadas em DPB 116 ou memória de dados de video 101, parra subamostragem, sendo que as amostras de luma determinadas excluem as amostras de luma que têm uma coordenada x menor que xO e uma coordenada y menor que yO, subamostrar o bloco de luma com base nas amostras de luma determinadas, determinar um bloco preditivo com base no bloco de luma subamostrado e codificar por predição por modelo linear (LM) o bloco de croma com base no bloco preditivo. Por exemplo, a determinação das amostras de luma para subamostragem inclui excluir as amostras de luma que têm uma coordenada x menor que xO e uma coordenada y menor que yO.
[00166] Por exemplo, a unidade de codificação baseada em LM 122 pode buscar amostras de luma vizinhas para a subamostragem das amostras de luma vizinhas. As amostras de luma vizinhas buscadas incluem uma pluralidade de amostras de luma que estão acima do bloco de luma e excluem amostras de luma que estão acima e à esquerda de uma amostra de luma superior esquerda do bloco de luma. Por exemplo, as amostras de luma ilustradas na Figura 9 (por exemplo, à esquerda da linha tracejada) que estão acima e à esquerda de uma amostra de luma superior esquerda do bloco de luma são excluídas das amostras de luma que são buscadas.
[00167] Como outro exemplo, a unidade de
Petição 870190053680, de 12/06/2019, pág. 82/171
78/119 codificação baseada em LM 122 pode determinar um bloco de luma que corresponde a um bloco de croma que está sendo codificado, em que uma coordenada de uma amostra superior esquerda do bloco de luma é (xO, yO), determinar as amostras de luma, armazenadas em DPB 116 ou memória de dados de video 101, parra subamostragem, sendo que as amostras de luma determinadas excluem as amostras de luma que têm uma coordenada x menor que (χθ-k) e uma coordenada y maior ou igual a yO, em que k é um número inteiro maior que 0, subamostrar o bloco de luma com base nas amostras de luma determinadas, determinar um bloco preditivo com base no bloco de luma subamostrado e codificar por predição por modelo linear (LM) o bloco de croma com base no bloco preditivo. Por exemplo, a determinação das amostras de luma para subamostragem inclui excluir as amostras de luma que têm uma coordenada x menor que (χθ-k) e uma coordenada y maior ou igual a yO.
[00168] Por exemplo, a unidade de codificação baseada em LM 122 pode buscar amostras de luma vizinhas para a subamostragem das amostras de luma vizinhas. As amostras de luma vizinhas buscadas incluem uma pluralidade de amostras de luma que estão à esquerda do bloco de luma e excluem amostras de luma que estão à esquerda e que são mais do que um número limite de amostras à esquerda do bloco de luma e abaixo de uma amostra de luma superior esquerda do bloco de luma. Por exemplo, as amostras de luma ilustradas na Figura 13 (por exemplo, à esquerda da linha tracejada) que estão mais de um número limite de amostras à esquerda do bloco de luma (por exemplo, mais de 4 amostras
Petição 870190053680, de 12/06/2019, pág. 83/171
79/119 à esquerda) e abaixo da amostra superior esquerda do bloco de luma são excluídas das amostras de luma que são buscadas.
[00169] Em um caso, a unidade de codificação baseada em LM 122 pode aplicar um primeiro filtro (por exemplo, that of JCTVC-F502) quando nenhuma amostra de luma que tem uma coordenada x menor que xO e uma coordenada y menor que yO for necessária para a subamostragem de acordo com o primeiro filtro, e aplicar um segundo filtro diferente (por exemplo, that of JCTVC-E266 ou equação 13) quando as amostras de luma que têm uma coordenada x menor que xO e uma coordenada y menor que yO forem necessárias para a subamostragem de acordo com o primeiro filtro. Nesses exemplos, em outro caso, a unidade de codificação baseada em LM 122 pode determinar se a aplicação de um filtro podería resultar no uso de amostras de luma que têm uma coordenada x menor que xO e uma coordenada y menor que yO, gerar valores de luma para amostras de luma que têm a coordenada x menor que xO e a coordenada y menor que yO sem buscar valores de luma para as amostras de luma. Por exemplo, a unidade de codificação baseada em LM pode preencher valores com base em amostras de luma adjacentes conforme ilustrado na Figura 12B, e aplicar um filtro usando os valores de luma gerados para subamostrar o bloco de luma, em que o filtro é o mesmo filtro usado para a subamostragem se a aplicação do filtro podería não resultar no uso de amostras de luma com uma coordenada x menor que xO e uma coordenada y menor que yO.
[00170] Para as amostras de luma vizinhas à
Petição 870190053680, de 12/06/2019, pág. 84/171
80/119 esquerda, a unidade de codificação baseada em LM 122 pode aplicar um primeiro filtro a um primeiro conjunto das amostras de luma vizinhas buscadas para determinar uma primeira amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando nenhuma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda for necessária para subamostragem de acordo com o primeiro filtro. A unidade de codificação baseada em LM 122 pode aplicar um segundo filtro diferente a um segundo conjunto das amostras de luma vizinhas buscadas para determinar uma segunda amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando pelo menos uma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda do bloco de luma for necessária para subamostragem de acordo com o primeiro filtro.
[00171] Para as amostras de luma vizinhas à esquerda, a unidade de codificação baseada em LM 122 pode aplicar um primeiro filtro a um primeiro conjunto das amostras de luma vizinhas buscadas para determinar uma primeira amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando nenhuma amostra de luma que é mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda for necessária para subamostragem de acordo com o primeiro filtro. A primeira amostra de luma subamostrada está em uma coluna que é um primeiro número de colunas à esquerda do bloco de luma. A unidade de codificação baseada em LM 122 pode aplicar um segundo
Petição 870190053680, de 12/06/2019, pág. 85/171
81/119 filtro diferente a um segundo conjunto das amostras de luma vizinhas buscadas para determinar uma segunda amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando pelo menos uma amostra de luma que é mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda do bloco de luma for necessária para subamostragem de acordo com o primeiro filtro. A segunda amostra de luma subamostrada está em uma coluna que é um segundo número de colunas à esquerda do bloco de luma, e o segundo número é maior que o primeiro número.
[00172] Em um exemplo, para as amostras de luma vizinhas acima, a unidade de codificação baseada em LM 122 pode gerar, sem busca a partir da memória de dados de video 101, os valores de luma que correspondem a amostras de luma localizadas acima e à esquerda da amostra de luma superior esquerda do bloco de luma, e aplicar um filtro aos valores de luma gerados para determinar pelo menos uma amostra de luma subamostrada da pluralidade de amostras de luma subamostradas. Em um exemplo, para as amostras de luma vizinhas à esquerda, a unidade de codificação baseada em LM 122 pode gerar, sem busca a partir da memória de dados de video 101, os valores de luma que correspondem a amostras de luma localizadas mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda do bloco de luma, e aplicar um filtro aos valores de luma gerados para determinar pelo menos uma amostra de luma subamostrada da pluralidade de amostras de luma subamostradas.
Petição 870190053680, de 12/06/2019, pág. 86/171
82/119 [00173] A unidade de processamento de intrapredição 126 pode gerar dados preditivos para uma PU realizando a intrapredição na PU. Os dados preditivos para a PU podem incluir blocos preditivos para a PU e vários elementos de sintaxe. A unidade de processamento de intrapredição 126 pode realizar a intrapredição em PUs em fatias I, fatias P e fatias B.
[00174] Para realizar a intrapredição em uma PU, a unidade de processamento de intrapredição 126 pode usar múltiplos modos de intrapredição para gerar múltiplos conjuntos de dados preditivos para a PU. A unidade de processamento de intrapredição 126 pode usar amostras de blocos de amostra de PUs vizinhas para gerar um bloco preditivo para uma PU. As PUs vizinhas podem estar acima, acima e à direita, acima e à esquerda e à esquerda, ou à esquerda da PU, supondo uma ordem de codificação de cima para baixo da esquerda para a direita para PUs, CUs e CTUs. A unidade de processamento de intrapredição 126 pode usar vários números de modos de intrapredição, por exemplo, 33 modos de intrapredição direcionais. Em alguns exemplos, o número de modos de intrapredição pode depender do tamanho da região associada à PU.
[00175] A unidade de processamento de predição 100 pode selecionar os dados preditivos para PUs de uma CU entre os dados preditivos gerados pela unidade de processamento de interpredição 120 para as PUs, os dados preditivos gerados pela unidade de processamento de intrapredição 126 para as PUs ou os dados preditivos gerados pela unidade de codificação baseada em LM 122. Em
Petição 870190053680, de 12/06/2019, pág. 87/171
83/119 alguns exemplos, a unidade de processamento de predição 100 seleciona os dados preditivos para as PUs da CU com base na métrica de taxa/distorção dos conjuntos de dados preditivos. Os blocos preditivos dos dados preditivos selecionados podem ser chamados de blocos preditivos selecionados.
[00176] A unidade de geração residual 102 pode gerar, com base nos blocos de codificação de luma, Cb e Cr de uma CU e os blocos de luma, Cb e Cr preditivos selecionados das PU da CU, os blocos residuais de luma, Cb e Cr da CU. Por exemplo, a unidade de geração residual 102 pode gerar os blocos residuais da CU de modo que cada amostra nos blocos residuais tenha um valor igual a uma diferença entre uma amostra em um bloco de codificação da CU e uma amostra correspondente em um bloco preditivo selecionado correspondente de uma PU da CU.
[00177] A unidade de processamento de transformada 104 pode executar o particionamento de quadtree para particionar os blocos residuais associados a uma CU em blocos de transformada associados a TUs da CU. Dessa forma, uma TU pode estar associada a um bloco de transformada e dois blocos de transformada de croma. Os tamanhos e posições dos blocos de transformada de luma e croma de TUs de uma CU podem ou não ser baseados nos tamanhos e posições dos blocos de predição das PUs da CU. Uma estrutura quadtree conhecida como uma quadtree residual (RQT) pode incluir nós associados a cada uma das regiões. As TUs de uma CU podem corresponder a nós folha da RQT.
Petição 870190053680, de 12/06/2019, pág. 88/171
84/119 [00178] A unidade de processamento de transformada 104 pode gerar blocos de coeficiente de transformada para cada TU de uma CU aplicando uma ou mais transformadas nos blocos de transformada da TU. A unidade de processamento de transformada 104 pode aplicar várias transformadas a um bloco de transformada associado a uma TU. Por exemplo, a unidade de processamento de transformada 104 pode aplicar uma transformada de cosseno discreta (DCT), uma transformada direcional ou uma transformada conceitualmente similar a um bloco de transformada. Em alguns exemplos, a unidade de processamento de transformada 104 não aplica transformadas a um bloco de transformada. Em tais exemplos, o bloco de transformada pode ser tratado como um bloco de coeficiente de transformada.
[00179] A unidade de quantização 106 pode quantizar os coeficientes de transformada em um bloco de coeficiente. O processo de quantização pode reduzir a profundidade de bits associada a alguns ou todos os coeficientes de transformada. Por exemplo, um coeficiente de transformada de n bits pode ser arredondado para baixo até um coeficiente de transformada de m bits durante a quantização, em que n é maior que m. A unidade de quantização 106 pode quantizar um bloco de coeficiente associado a uma TU de uma CU com base em um valor de parâmetro de quantização (QP) associado à CU. O codificador de vídeo 20 pode ajustar o grau de quantização aplicado aos blocos de coeficiente associados a uma CU, ajustando o valor de QP associado à CU. A quantização pode introduzir perda de informações; dessa forma, os coeficientes de
Petição 870190053680, de 12/06/2019, pág. 89/171
85/119 transformada quantizados podem ter uma precisão menor que os originais .
[00180] A unidade de guantização inversa 108 e a unidade de processamento de transformada inversa 110 podem aplicar quantização inversa e transformadas inversas a um bloco de coeficiente, respectivamente, para reconstruir um bloco residual do bloco de coeficiente. A unidade de reconstrução 112 pode adicionar o bloco residual reconstruído a amostras correspondentes de um ou mais blocos preditivos gerados pela unidade de processamento de predição 100 para produzir um bloco de transformada reconstruído associado a uma TU. Com a reconstrução de blocos de transformada para cada TU de uma CU deste modo, o codificador de vídeo 20 pode reconstruir os blocos de codificação da CU.
[00181] A unidade de filtro 114 pode realizar uma ou mais operações de desblocagem para reduzir os artefatos de blocagem nos blocos de codificação associados a uma CU. O DPB 116 pode armazenar os blocos de codificação reconstruídos após a unidade de filtro 114 realizar a uma ou mais operações de desblocagem nos blocos de codificação reconstruídos. A unidade de processamento de interpredição 120 pode utilizar uma imagem de referência que contém os blocos de codificação reconstruídos para executar a interpredição em PUs de outras imagens. Além disso, a unidade de processamento de intrapredição 126 pode usar blocos de codificação reconstruídos no buffer de imagem decodificado 116 para realizar a intrapredição em outras PUs na mesma imagem que a CU. Além disso, a unidade de
Petição 870190053680, de 12/06/2019, pág. 90/171
86/119 codificação baseada em LM 122 pode utilizar os blocos de luma reconstruídos em DPB 116 para predição por modelo linear (LM) que codifica um bloco de croma (em que o bloco de luma pode incluir dados de vídeo em alguns exemplos ou pode ser um bloco de luma residual e o bloco de croma pode incluir dados de vídeo em alguns exemplos ou pode ser um bloco de croma residual).
[00182] A unidade de codificação por entropia 118 pode receber dados de outros componentes funcionais do codificador de vídeo 20. Por exemplo, a unidade de codificação por entropia 118 pode receber blocos de coeficiente da unidade de quantização 106 e pode receber elementos de sintaxe da unidade de processamento de predição 100. A unidade de codificação por entropia 118 pode realizar uma ou mais operações de codificação por entropia nos dados para gerar dados codificados por entropia. Por exemplo, a unidade de codificação por entropia 118 pode realizar uma operação de codificação de comprimento variável adaptativa ao contexto (CAVLC), uma operação CAB CA, uma operação de codificação de comprimento variável para variável (V2V), uma operação de codificação aritmética binária adaptativa ao contexto baseada em sintaxe (SB AC) uma operação de codificação por Entropia de Particionamento de Intervalo de Probabilidade (PIPE), uma operação de codificação Exponencial-Golomb ou outro tipo de operação de codificação por entropia nos dados. O codificador de vídeo 20 pode enviar um fluxo de bits que inclui dados codificados por entropia gerados pela unidade de codificação por entropia 118. Por exemplo, o fluxo de
Petição 870190053680, de 12/06/2019, pág. 91/171
87/119 bits pode incluir dados que representam uma RQT de uma CU.
[00183] A Figura 3 é um diagrama de blocos que ilustra um exemplo de decodificador de video 30 que é configurado para implementar as técnicas desta revelação. A Figura 3 é fornecida com propósitos de explicação e não deve limitativa das técnicas como amplamente exemplificado e descrito nesta revelação. Com os propósitos de explicação, esta revelação descreve o decodificador de video 30 no contexto de codificação de HEVC. Entretanto, as técnicas desta revelação podem ser aplicáveis a outros padrões ou métodos de codificação.
[00184] O codificador de video 30 representa um exemplo de um dispositivo que pode ser configurado para realizar as técnicas para codificação de video baseada em LM de acordo com vários exemplos descritos nesta revelação. Por exemplo, o codificador de video 30 pode ser configurado para codificar um ou mais blocos utilizando um modo de codificação de video por LM (ou seja, decoodificação por predição por modelo linear (LM) de um ou mais blocos).
[00185] No exemplo da Figura 3, o decodificador de video 30 inclui uma unidade de decodificação por entropia 150, memória de dados de video 151, uma unidade de processamento de predição 152, uma unidade de quantização inversa 154, uma unidade de processamento de transformada inversa 156, uma unidade de reconstrução 158, uma unidade de filtro 160 e um buffer de imagens decodificadas (DPB) 162. A unidade de processamento de predição 152 inclui a unidade de compensação de movimento 164 e uma unidade de processamento de intrapredição 166. O decodificador de
Petição 870190053680, de 12/06/2019, pág. 92/171
88/119 video 30 também inclui uma unidade de decodificação baseada em modelo linear (LM) 165 configurada para realizar vários aspectos das técnicas de codificação baseadas em LM descritos nesta revelação. Em outros exemplos, o decodificador de vídeo 30 pode incluir mais, menos ou componentes funcionais diferentes.
[00186] A memória de dados de vídeo 151 pode armazenar dados de vídeo, como um fluxo de bits de vídeo codificado, que serão decodificados pelos componentes de decodificador de vídeo 30. Os dados de vídeo armazenados na memória de dados de vídeo 151 podem ser obtidos, por exemplo, a partir de meio legível por computador 16 (por exemplo, a partir de uma fonte de vídeo local, como uma câmera, através de comunicação de rede com fio ou sem fio de dados de vídeo, ou acessando meios de armazenamento de dados físicos). A memória de dados de vídeo 151 pode formar um buffer de imagens codificadas (CPB) que armazena dados de vídeo codificados de um fluxo de bits de vídeo codificado.. O DPB 162 pode ser uma memória de imagem de referência que armazena dados de vídeo de referência para uso na decodificação de dados de vídeo pelo decodificador de vídeo 30, (por exemplo, em modos de intra ou intercodificação) . A memória de dados de vídeo 151 e DPB 162 podem ser formados por qualquer um dentre uma variedade de dispositivos de memória, como memória de acesso aleatório dinâmica (DRAM), incluindo DRAM síncrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM), ou outros tipos de dispositivos de memória. A memória de dados de vídeo 151 e DPB 162 pode ser fornecida pelo mesmo
Petição 870190053680, de 12/06/2019, pág. 93/171
89/119 dispositivo de memória ou dispositivos de memória separados. Em vários exemplos, a memória de dados de video 151 pode estar no chip com outros componentes de decodif icador de video 30, ou fora do chip em relação àqueles componentes.
[00187] Nesta revelação, a referência à memória de dados de video 151 não deve ser interpretada como limitada à memória interna do decodificador de video 30, a menos que especificamente descrito como tal, ou memória externa ao decodificador de video 30, a menos que especificamente descrito como tal. A referência à memória de dados de vídeo 151 deve ser entendida como memória de referência que armazena dados de vídeo que o decodificador de vídeo 30 recebe para decodificação (por exemplo, dados de vídeo para um bloco atual que deve ser codificado) . A memória de dados de vídeo 151 também pode fornecer armazenamento temporário de saídas das várias unidades de decodificador de vídeo 30.
[00188] Como um exemplo, a memória de dados de vídeo 151 é um exemplo de um buffer de linha que é interno ao decodificador de vídeo 30 e armazena amostras de blocos vizinhos que estão adjacentes ao bloco atual que está sendo decodificado. Como outro exemplo, parte de DPB 162 pode ser o buffer de linha que é interno ao decodificador de vídeo 30, e parte de DPB 162 pode ser a memória que é externa ao decodificador de vídeo 30, como parte da memória de sistema do chip de IC que inclui o decodificador de vídeo 30. Como outro exemplo, o buffer de linha pode ser a memória cache do decodificador de vídeo 30.
Petição 870190053680, de 12/06/2019, pág. 94/171
90/119 [00189] As várias unidades da Figura 3 são ilustradas para ajudar a entender as operações realizadas pelo decodificador de vídeo 30. As unidades podem ser implementadas como circuitos de função fixa, circuitos programáveis, ou uma combinação dos mesmos. Os circuitos de função fixa referem-se a circuitos que fornecem funcionalidade específica, e estão presentes nas operações que podem ser realizadas. Os circuitos programáveis referem-se a circuitos que podem ser programados para realizar várias tarefas, e fornecer funcionalidade flexível nas operações que podem ser realizadas. Por exemplo, os circuitos programáveis podem executar software ou firmware que fazem com que os circuitos programáveis operem da maneira definida por instruções do software ou firmware. Os circuitos de função fixa podem executar instruções de software (por exemplo, para receber parâmetros ou parâmetros de saída), porém os tipos de operações que os circuitos de função fixa realizam são geralmente imutáveis. Em alguns exemplos, a uma ou mais unidades podem ser blocos de circuito distintos (função fixa ou programável), e em alguns exemplos, a uma ou mais unidades podem ser circuitos integrados.
[00190] O codificador de vídeo 20 pode incluir unidades lógicas e aritméticas (ALUs), unidades de função elementar (EFUs), circuitos digitais, circuitos analógicos e/ou núcleos programáveis, formados a partir de circuitos programáveis. Em exemplos em que as operações do decodificador de vídeo 30 são realizadas por software executado pelos circuitos programáveis, a memória de dados
Petição 870190053680, de 12/06/2019, pág. 95/171
91/119 de video 151 pode armazenar o código de objeto do software que o decodificador de video 30 recebe e executa, ou outra memória (não mostrada) pode armazenar tais instruções.
[00191] Um buffer de imagem codificada (CPB) pode receber e armazenar dados de video codificados (por exemplo, unidades de NAL) de um fluxo de bits. A unidade de decodificação por entropia 150 pode receber dados de video codificados (por exemplo, unidades de NAL) do CPB e analisar as unidades de NAL para decodificar elementos de sintaxe. A unidade de decodificação por entropia 150 pode decodificar os elementos de sintaxe codificados por entropia nas unidades de NAL. Unidade de processamento de predição 152, unidade de quantização inversa 154, unidade de processamento de transformada inversa 156, unidade de reconstrução 158, e unidade de filtro 160 podem gerar dados de video decodificados com base nos elementos de sintaxe extraídos do fluxo de bits.
[00192] As unidades de NAL do fluxo de bits podem incluir unidades de NAL de fatia codificadas. Como parte da decodificação do fluxo de bits, a unidade de decodificação por entropia 150 pode extrair e decodificar por entropia os elementos de sintaxe das unidades de NAL de fatia codificada. Cada uma das fatias codificadas pode incluir um cabeçalho de fatia e dados de fatia. O cabeçalho de fatia pode conter elementos de sintaxe pertencentes a uma fatia. Os elementos de sintaxe no cabeçalho da fatia podem incluir um elemento de sintaxe que identifica um PPS associado a uma imagem que contém a fatia.
[00193] Além de decodificar elementos de
Petição 870190053680, de 12/06/2019, pág. 96/171
92/119 sintaxe do fluxo de bits, o decodificador de video 30 pode executar uma operação de reconstrução em uma CU não particionada. Para realizar a operação de reconstrução em uma CU não particionada, o decodificador de video 30 pode realizar uma operação de reconstrução em cada TU da CU. Ao realizar a operação de reconstrução para cada TU da CU, o decodificador de video 30 pode reconstruir blocos residuais da CU.
[00194] Como parte de realizar uma operação de reconstrução em uma TU de uma CU, a unidade de quantização inversa 154 pode quantizar inversamente, ou seja, desquantizar, blocos de coeficiente associados à TU. A unidade de quantização inversa 154 pode utilizar um valor de QP associado à CU da TU para determinar um grau de quantização e, de modo semelhante, um grau de quantização inversa para a unidade de quantização inversa 154 a ser aplicada. Ou seja, a taxa de compactação, isto é, a razão do número de bits usados para representar a sequência original e a compactada, pode ser controlada ajustando o valor do QP utilizado quando os coeficientes de transformada são quantizados. A razão de compactação também pode depender do método de codificação por entropia empregado.
[00195] Após a unidade de quantização inversa 154 realizar a quantização inversa de um bloco de coeficiente, a unidade de processamento de transformada inversa 156 pode aplicar uma ou mais transformadas inversas ao bloco de coeficiente de modo a gerar um bloco residual associado à TU. Por exemplo, a unidade de processamento de
Petição 870190053680, de 12/06/2019, pág. 97/171
93/119 transformada inversa 156 pode aplicar uma DCT inversa, uma transformada inversa inteira, uma transformada inversa de Karhunen-Loeve (KLT), uma transformada rotacional inversa, uma transformada direcional inversa, ou outra transformada inversa para o bloco de coeficiente.
[00196] Se uma PU for codificada usando intrapredição, a unidade de processamento de intrapredição 166 pode realizar a intrapredição para gerar blocos preditivos para a PU. A unidade de processamento de intrapredição 166 pode usar um modo de intrapredição para gerar os blocos preditivos de luma, Cb e Cr para a PU com base nos blocos de predição de PUs espacialmente vizinhas. A unidade de processamento de intrapredição 166 pode determinar o modo de intrapredição para a PU com base em um ou mais elementos de sintaxe decodificados a partir do fluxo de bits.
[00197] A unidade de processamento de predição 152 pode construir uma primeira lista de imagens de referência (RefPicList0) e uma segunda lista de imagens de referência (RefPicList1) com base nos elementos de sintaxe extraídos do fluxo de bits. Além disso, se uma PU for codificada usando a interpredição, a unidade de decodificação por entropia 150 pode extrair as informações de movimento para a PU. A unidade de compensação de movimento 164 pode determinar, com base nas informações de movimento da PU, uma ou mais regiões de referência para a PU. A unidade de compensação de movimento 164 pode gerar, com base em blocos de amostras no um ou mais blocos de referência para a PU, blocos preditivos de luma, Cb e Cr
Petição 870190053680, de 12/06/2019, pág. 98/171
94/119 para a PU.
[00198] A unidade de reconstrução 158 pode usar os blocos de transformada de luma, Cb e Cr associados a TUs de uma CU e os blocos preditivos de luma, Cb e Cr das PUs da CU, ou seja, dados de intrapredição ou dados de interpredição, como aplicável, para reconstruir os blocos de codificação da luma, Cb e Cr da CU. Por exemplo, a unidade de reconstrução 158 pode adicionar amostras dos blocos de transformada de luma, Cb e Cr a amostras correspondentes dos blocos preditivos de luma, Cb e Cr para reconstruir os blocos de codificação de luma, Cb e Cr da CU.
[00199] A unidade de filtro 160 pode realizar uma operação de desblocagem para reduzir os artefatos de blocagem associados aos blocos de codificação de luma, Cb e Cr da CU. O decodificador de video pode armazenar os blocos de codificação de luma, Cb e Cr da CU no buffer de imagem decodificada 162. O buffer de imagem decodificada 162 pode fornecer imagens para compensação de movimento subsequente, intrapredição e apresentação em um dispositivo de exibição, como dispositivo de exibição 32 da Figura 1. Por exemplo, o decodif icador de vídeo 30 pode realizar, com base nos blocos de luma, Cb e Cr em DPB 162, operações de intrapredição ou interpredição em PUs de outras CUs.
[00200] De acordo com vários exemplos desta revelação, o decodificador de vídeo 30 pode ser configurado para realizar a codificação baseada em LM. A unidade de decodificação baseada em LM 165, por exemplo, pode realizar a decodificação por predição por modelo linear (LM) . Por
Petição 870190053680, de 12/06/2019, pág. 99/171
95/119 exemplo, a unidade de decodificação baseada em LM 165 pode subamostrar as amostras de luma reconstruídas de um bloco de luma que corresponde a um bloco de croma atual que está sendo decodificado. A unidade de decodificação baseada em LM 165 pode escalonar as amostras de luma reconstruídas subamostradas do bloco de luma para gerar um bloco preditivo. A unidade de reconstrução 158 pode, então, adicionar o bloco preditivo gerado aos dados residuais decodificados para o bloco de croma de modo a reconstruir o bloco de croma. Em alguns exemplos, a unidade de decodificação baseada em LM 165 pode aplicar tais técnicas como parte de predição residual de componente cruzado. Nesse caso, o bloco de croma é um bloco residual de croma e o bloco de luma é um bloco residual de luma.
[00201] Por exemplo, a unidade de decodificação baseada em LM 165 pode determinar um bloco de luma que corresponde a um bloco de croma. A unidade de decodificação baseada em LM 165 pode buscar as amostras de luma vizinhas para a subamostragem das amostras de luma vizinhas utilizando os exemplos de técnicas descritos nesta revelação, e determinar uma pluralidade de amostras de luma subamostradas com base nas amostras de luma vizinhas buscadas. A unidade de decodificação baseada em LM 165 pode determinar um ou mais parâmetros de escalonamento com base nas amostras de luma subamostradas (por exemplo, α e β, descrito acima). A unidade de decodificação baseada em LM 165 pode determinar um bloco preditivo com base em um ou mais parâmetros de escalonamento. Por exemplo, a unidade de decodificação baseada em LM 165 pode determinar a*recL(i,j)
Petição 870190053680, de 12/06/2019, pág. 100/171
96/119 + β, em que recL(ij) é uma versão subamostrada do bloco de luma que corresponde ao bloco de croma, e α e β são fatores de escalonamento determinados a partir de amostras de luma vizinhas subamostradas. A unidade de decodificação baseada em LM 165 pode realizar a subamostragem das amostras de luma vizinhas de acordo com um ou mais exemplos de técnicas descritos nesta revelação como técnicas para limitar o acesso de amostras de luma vizinhas armazenadas fora do buffer de linha.
[00202] O decodificador de video 30 pode, então, decodificar por predição por LM o bloco de croma com base no bloco preditivo. Por exemplo, conforme descrito a seguir, o decodificador de video 30 pode adicionar o bloco preditivo a um bloco residual para reconstruir o bloco de croma.
[00203] Nas técnicas descritas nesta revelação, a unidade de decodificação baseada em LM 165 pode implementar um ou mais dos exemplos de técnicas acima como parte da subamostragem das amostras de luma de um bloco de luma. Como um exemplo, a unidade de decodificação baseada em LM 165 pode determinar um bloco de luma que corresponde a um bloco de croma que está sendo codificado, em que uma coordenada de uma amostra superior esquerda do bloco de luma é (x0, y0), determinar as amostras de luma, armazenadas em DPB 162 ou memória de dados de video 151, parra subamostragem, sendo que as amostras de luma determinadas excluem as amostras de luma que têm uma coordenada x menor que xO e uma coordenada y menor que yO, subamostrar o bloco de luma com base nas amostras de luma
Petição 870190053680, de 12/06/2019, pág. 101/171
97/119 determinadas, determinar um bloco preditivo com base no bloco de luma subamostrado e realizar a predição por modelo linear (LM) para decodificar o bloco de croma com base no bloco preditivo. Por exemplo, a determinação das amostras de luma para subamostragem inclui excluir as amostras de luma que têm uma coordenada x menor que xO e uma coordenada y menor que yO.
[00204] Por exemplo, a unidade de decodificação baseada em LM 165 pode buscar amostras de luma vizinhas para a subamostragem das amostras de luma vizinhas. As amostras de luma vizinhas buscadas incluem uma pluralidade de amostras de luma que estão acima do bloco de luma e excluem amostras de luma que estão acima e à esquerda de uma amostra de luma superior esquerda do bloco de luma. Por exemplo, as amostras de luma ilustradas na Figura 9 (por exemplo, à esquerda da linha tracejada) que estão acima e à esquerda de uma amostra de luma superior esquerda do bloco de luma são excluídas das amostras de luma que são buscadas.
[00205] Como outro exemplo, a unidade de decodificação baseada em LM 165 pode determinar um bloco de luma que corresponde a um bloco de croma que está sendo codificado, em que uma coordenada de uma amostra superior esquerda do bloco de luma é (x0, y0), determinar as amostras de luma, armazenadas em DPB 162 ou memória de dados de video 151, para subamostragem, sendo que as amostras de luma determinadas excluem as amostras de luma que têm uma coordenada x menor que (χθ-k) e uma coordenada y maior ou igual a yO, em que k é um número inteiro maior
Petição 870190053680, de 12/06/2019, pág. 102/171
98/119 que 0, subamostrar o bloco de luma com base nas amostras de luma determinadas, determinar um bloco preditivo com base no bloco de luma subamostrado e decodificar por predição por modelo linear (LM) o bloco de croma com base no bloco preditivo. Por exemplo, a determinação das amostras de luma para subamostragem inclui excluir as amostras de luma que têm uma coordenada x menor que (χθ-k) e uma coordenada y maior ou igual a yO.
[00206] Por exemplo, a unidade de decodificação baseada em LM 165 pode buscar amostras de luma vizinhas para a subamostragem das amostras de luma vizinhas. As amostras de luma vizinhas buscadas incluem uma pluralidade de amostras de luma que estão à esquerda do bloco de luma e excluem amostras de luma que estão à esquerda e que são mais do que um número limite de amostras à esquerda do bloco de luma e abaixo de uma amostra de luma superior esquerda do bloco de luma. Por exemplo, as amostras de luma ilustradas na Figura 13 (por exemplo, à esquerda da linha tracejada) que estão mais de um número limite de amostras à esquerda do bloco de luma (por exemplo, mais de 4 amostras à esquerda) e abaixo da amostra superior esquerda do bloco de luma são excluídas das amostras de luma que são buscadas.
[00207] Em um caso, a unidade de decodificação baseada em LM 165 pode aplicar um primeiro filtro (por exemplo, that of JCTVC-F502) quando nenhuma amostra de luma que tem uma coordenada x menor que xO e uma coordenada y menor que yO for necessária para a subamostragem de acordo com o primeiro filtro, e aplicar um segundo filtro
Petição 870190053680, de 12/06/2019, pág. 103/171
99/119 diferente (por exemplo, that of JCTVC-E266 ou equação 13) quando as amostras de luma que têm uma coordenada x menor que xO e uma coordenada y menor que yO for necessária para a subamostragem de acordo com o primeiro filtro. Nesses exemplos, em outro caso, a unidade de decodificação baseada em LM 165 pode determinar se a aplicação de um filtro poderia resultar no uso de amostras de luma que têm uma coordenada x menor que xO e uma coordenada y menor que yO, gerar valores de luma para amostras de luma que têm a coordenada x menor que xO e a coordenada y menor que yO sem buscar valores de luma para as amostras de luma (por exemplo, valores de preenchimento com base em amostras de luma adjacentes conforme ilustrado na Figura 16B), e aplicar um filtro usando os valores de luma gerados para subamostrar o bloco de luma, em que o filtro é o mesmo filtro usado para a subamostragem de amostras de luma vizinhas se a aplicação do filtro poderia não resultar no uso de amostras de luma com uma coordenada x menor que xO e uma coordenada y menor que yO.
[00208] Para as amostras de luma vizinhas à esquerda, a unidade de decodificação baseada em LM 165 pode aplicar um primeiro filtro a um primeiro conjunto das amostras de luma vizinhas buscadas para determinar uma primeira amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando nenhuma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda for necessária para subamostragem de acordo com o primeiro filtro. A unidade de decodificação baseada em LM 165 pode aplicar um segundo filtro diferente
Petição 870190053680, de 12/06/2019, pág. 104/171
100/119 a um segundo conjunto das amostras de luma vizinhas buscadas para determinar uma segunda amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando pelo menos uma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda do bloco de luma for necessária para subamostragem de acordo com o primeiro filtro.
[00209] Para as amostras de luma vizinhas à esquerda, a unidade de decodificação baseada em LM 165 pode aplicar um primeiro filtro a um primeiro conjunto das amostras de luma vizinhas buscadas para determinar uma primeira amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando nenhuma amostra de luma que é mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda for necessária para subamostragem de acordo com o primeiro filtro. A primeira amostra de luma subamostrada está em uma coluna que é um primeiro número de colunas à esquerda do bloco de luma. A unidade de decodificação baseada em LM 165 pode aplicar um segundo filtro diferente a um segundo conjunto das amostras de luma vizinhas buscadas para determinar uma segunda amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando pelo menos uma amostra de luma que é mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda do bloco de luma for necessária para subamostragem de acordo com o primeiro filtro. A segunda amostra de luma subamostrada está em uma coluna que é um segundo número de
Petição 870190053680, de 12/06/2019, pág. 105/171
101/119 colunas à esquerda do bloco de luma, e o segundo número é maior que o primeiro número.
[00210] Em um exemplo, para as amostras de luma vizinhas acima, a unidade de decodificação baseada em LM 165 pode gerar, sem busca a partir da memória de dados de video 151, os valores de luma que correspondem a amostras de luma localizadas acima e à esquerda da amostra de luma superior esquerda do bloco de luma, e aplicar um filtro aos valores de luma gerados para determinar pelo menos uma amostra de luma subamostrada da pluralidade de amostras de luma subamostradas. Em um exemplo, para as amostras de luma vizinhas à esquerda, a unidade de decodificação baseada em LM 165 pode gerar, sem busca a partir da memória de dados de video 151, os valores de luma que correspondem a amostras de luma localizadas mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda do bloco de luma, e aplicar um filtro aos valores de luma gerados para determinar pelo menos uma amostra de luma subamostrada da pluralidade de amostras de luma subamostradas.
[00211] A Figura 18 é um fluxograma que ilustra um exemplo de método de decodificação de dados de video. Conforme ilustrado, a unidade de decodificação baseada em LM 165 pode determinar um bloco de luma que corresponde a um bloco de croma (180) . Conforme descrito acima, um bloco pode incluir um bloco de luma e dois blocos de croma. Um bloco de luma que corresponde a um bloco de croma significa que o bloco de luma e o bloco de croma correspondente são do mesmo bloco.
Petição 870190053680, de 12/06/2019, pág. 106/171
102/119 [00212] A unidade de decodificação baseada em LM 165 pode buscar amostras de luma vizinhas para a subamostragem das amostras de luma vizinhas (182). Em um ou mais exemplos, a unidade de decodificação baseada em LM 165 pode excluir determinadas amostras de luma vizinhas da busca. As amostras de luma que não são buscadas podem ser descritas em relação à amostra superior esquerda de um bloco de luma que tem a coordenada (xO, yO).
[00213] Por exemplo, para o exemplo em que as amostras de luma vizinhas estão acima do bloco de luma, a unidade de decodificação baseada em LM 165 pode excluir as amostras de luma que estão acima e à esquerda de uma amostra de luma superior esquerda do bloco de luma. Como um exemplo, as amostras de luma à esquerda da linha tracejada na Figura 9 podem não ser buscadas, pois as mesmas estão acima e à esquerda de uma amostra de luma superior esquerda do bloco de luma. Nesse exemplo, as amostras de luma vizinhas buscadas excluem as amostras de luma que têm uma coordenada x menor que xO e uma coordenada y menor que yO. Ao invés disso, as amostras de luma como aquelas ilustradas nas Figuras 10, 11A e 11B podem ser buscadas.
[00214] Para o exemplo em que as amostras de luma vizinhas estão à esquerda do bloco de luma, a unidade de decodificação baseada em LM 165 pode excluir as amostras de luma que estão à esquerda e que estão mais do que um número limite de amostras à esquerda do bloco de luma e abaixo de uma amostra de luma superior esquerda do bloco de luma. Como um exemplo, as amostras de luma à esquerda das linhas tracejadas na Figura 13 podem não ser buscadas, pois
Petição 870190053680, de 12/06/2019, pág. 107/171
103/119 as mesmas estão mais do que um número limite de amostras (por exemplo, mais de 4 amostras) à esquerda do bloco de luma e abaixo de uma amostra de luma superior esquerda do bloco de luma. Nesse exemplo, as amostras de luma vizinhas buscadas excluem as amostras de luma que têm uma coordenada x menor que (xO-k), e uma coordenada y maior que yO, em que k é o número limite e um número inteiro maior que 0 (por exemplo, 4). Ao invés disso, as amostras de luma como aquelas ilustradas nas Figuras 14, 15A e 15B podem ser buscadas.
[00215] A unidade de decodificação baseada em LM 165 podem determinar uma pluralidade de amostras de luma subamostradas com base nas amostras de luma vizinhas buscadas (184). Para o exemplo em que as amostras vizinhas estão acima do bloco de luma, uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada imediatamente acima da amostra de luma superior esquerda. Por exemplo, conforme ilustrado nas Figuras 10, 11B e 12B, a amostra de luma subamostrada está imediatamente acima da amostra de luma superior esquerda. Para o exemplo em que as amostras vizinhas estão à esquerda do bloco de luma, uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada que é o número limite de amostras à esquerda do bloco de luma. As Figuras 11A e 12A ilustram um exemplo adicional de uma amostra de luma subamostrada. Por exemplo, conforme ilustrado nas Figuras 14, 15B e 16B, a amostra de luma subamostrada está 4 amostras à esquerda do bloco de luma, e nesse exemplo, o número limite de amostras à esquerda do
Petição 870190053680, de 12/06/2019, pág. 108/171
104/119 bloco de luma é 4. Nesses exemplos, a amostra de luma subamostrada está mais de duas colunas à esquerda da amostra de luma superior esquerda (por exemplo, a amostra de luma subamostrada está 4 colunas à esquerda, que está mais de 2 colunas à esquerda) . As Figuras 15A e 16A ilustram um exemplo adicional de uma amostra de luma subamostrada.
[00216] Para o exemplo em que as amostras de luma vizinhas estão acima do bloco de luma, a unidade de decodificação baseada em LM 165 pode aplicar um primeiro filtro a um primeiro conjunto das amostras de luma vizinhas buscadas para determinar uma primeira amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando nenhuma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda for necessária para subamostragem de acordo com o primeiro filtro. Por exemplo, a unidade de decodificação baseada em LM 165 pode aplicar um filtro como aqueles de JCTVC-F502 (como um exemplo), e conforme ilustrado nas Figuras 11A e 12A. A unidade de decodif icação baseada em LM 165 pode aplicar um segundo filtro diferente a um segundo conjunto das amostras de luma vizinhas buscadas para determinar uma segunda amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando pelo menos uma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda do bloco de luma se necessária (por exemplo, poderia ser necessária se for primeiramente usada) para subamostragem de acordo com o primeiro filtro. Por exemplo, se o uso do filtro descrito em JCTVC-F502
Petição 870190053680, de 12/06/2019, pág. 109/171
105/119 resultaria no acesso a amostras de luma que estão acima e à esquerda da amostra superior esquerda, então a unidade de decodificação baseada em LM 165 pode aplicar um filtro como o filtro descrito em JCTVC-E266 (por exemplo, a Figura 11B) ou de acordo com a equação (13) descrita acima (por exemplo, a Figura 10).
[00217] Para o exemplo em que as amostras de luma vizinhas à esquerda do bloco de luma, a unidade de decodificação baseada em LM 165 pode aplicar um primeiro filtro a um primeiro conjunto das amostras de luma vizinhas buscadas para determinar uma primeira amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando nenhuma amostra de luma que é mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda for necessária para subamostragem de acordo com o primeiro filtro. Por exemplo, a unidade de decodificação baseada em LM 165 pode aplicar um filtro como aqueles de JCTVC-F502 (como um exemplo), e conforme ilustrado nas Figuras 15A e 16A. A unidade de decodif icação baseada em LM 165 pode aplicar um segundo filtro diferente a um segundo conjunto das amostras de luma vizinhas buscadas para determinar uma segunda amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando pelo menos uma amostra de luma que é mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda do bloco de luma for necessária (por exemplo, poderia ser necessária se for primeiramente usada) para subamostragem de acordo com o primeiro filtro. Por
Petição 870190053680, de 12/06/2019, pág. 110/171
106/119 exemplo, se o uso do filtro descrito em JCTVC-F502 resultaria no acesso a amostras de luma que estão mais do número limite de amostras à esquerda do bloco de luma e abaixo da amostra superior esquerda, então a unidade de decodificação baseada em LM 165 pode aplicar um filtro como o filtro descrito em JCTVC-E266 (por exemplo, conforme mostrado na Figura 15B) ou de acordo com a equação (13) descrita acima (por exemplo, conforme mostrado na Figura 14) .
[00218] Nos exemplos acima, o primeiro filtro utiliza três amostras de luma de uma primeira linha que está acima do bloco de luma, e utiliza três amostras de luma de uma segunda linha que está acima da primeira linha. O segundo filtro usa menos de três amostras de luma de uma primeira linha (por exemplo, duas amostras nas Figuras 9 e 14, e uma amostra nas Figuras 11B e 15B) que está à esquerda do bloco de luma, e utiliza menos de três amostras de luma de uma segunda linha (por exemplo, duas amostras nas Figuras 9 e 14, e uma amostra nas Figuras 11B e 15B) que está abaixo da primeira linha.
[00219] Em alguns exemplos, em vez de usar filtros diferentes, a unidade de decodificação baseada em LM 165 pode usar o mesmo filtro, porém aplicar o preenchimento (por exemplo, gerar valores de amostra de luma) em vez de busca. Por exemplo, para os exemplos de amostras de luma vizinhas acima, a unidade de decodificação baseada em LM 165 pode gerar, sem busca, valores de luma que correspondem a amostras de luma localizadas acima e à esquerda da amostra de luma superior esquerda do bloco de
Petição 870190053680, de 12/06/2019, pág. 111/171
107/119 luma, e pode aplicar um filtro aos valores de luma gerados para determinar pelo menos uma amostra de luma subamostrada da pluralidade de amostras de luma subamostradas (por exemplo, o exemplo da Figura 12B) . Para os exemplos de amostras de luma vizinhas à esquerda, a unidade de decodificação baseada em LM 165 pode gerar, sem busca,
valores de luma que correspondem a amostras de luma
localizadas mais do que o número limite de amostras à
esquerda do bloco de luma e abaixo da amostra de luma
superior esquerda do bloco de luma, , e pode aplicar um
filtro aos valores de luma gerados para determinar pelo
menos uma amostra de luma subamostrada da pluralidade de amostras de luma subamostradas (por exemplo, o exemplo de 16B) .
[00220] A unidade de decodificação baseada em LM 165 pode determinar um ou mais parâmetros de escalonamento com base nas amostras de luma subamostradas (186) . Por exemplo, a unidade de decodificação baseada em LM 165 pode determinar α e β com base nas amostras de luma subamostradas. A unidade de decodificação baseada em LM 165 pode determinar um bloco preditivo com base em um ou mais parâmetros de escalonamento (188). Por exemplo, a unidade de decodificação baseada em LM 165 pode determinar o bloco preditivo como a*recL(i,j) + β, em que recL(ij) é uma versão subamostrada do bloco de luma que corresponde ao
bloco de croma, e α e β são fatores de escalonamento
determinados a partir de amostras de luma vizinhas
subamostradas.
[00221] 0 decodificador de vídeo 30 pode
Petição 870190053680, de 12/06/2019, pág. 112/171
108/119 decodificar por predição por LM o bloco de croma com base no bloco preditivo (190). Por exemplo, a unidade de reconstrução 158 pode adicionar o bloco preditivo a um bloco residual para reconstruir o bloco de croma.
[00222] A Figura 19 é um fluxograma que ilustra um exemplo de método de codificação de dados de vídeo. Conforme ilustrado, a unidade de codificação baseada em LM 122 pode determinar um bloco de luma que corresponde a um bloco de croma (200) . Conforme descrito acima, um bloco pode incluir um bloco de luma e dois blocos de croma. Um bloco de luma que corresponde a um bloco de croma significa que o bloco de luma e o bloco de croma correspondente são do mesmo bloco.
[00223] A unidade de codificação baseada em LM 122 pode buscar amostras de luma vizinhas para a subamostragem das amostras de luma vizinhas (202). Em um ou mais exemplos, a unidade de codificação baseada em LM 122 pode excluir determinadas amostras de luma vizinhas da busca. As amostras de luma que não são buscadas podem ser descritas em relação à amostra superior esquerda de um bloco de luma que tem a coordenada (xO, yO).
[00224] Por exemplo, para o exemplo em que as amostras de luma vizinhas estão acima do bloco de luma, a unidade de codificação baseada em LM 122 pode excluir as amostras de luma que estão acima e à esquerda de uma amostra de luma superior esquerda do bloco de luma. Como um exemplo, as amostras de luma à esquerda da linha tracejada na Figura 9 podem não ser buscadas, pois as mesmas estão acima e à esquerda de uma amostra de luma superior esquerda
Petição 870190053680, de 12/06/2019, pág. 113/171
109/119 do bloco de luma. Nesse exemplo, as amostras de luma vizinhas buscadas excluem as amostras de luma que têm uma coordenada x menor que xO e uma coordenada y menor que yO. Ao invés disso, as amostras de luma como aquelas ilustradas nas Figuras 10, HA e 11B podem ser buscadas.
[00225] Para o exemplo em que as amostras de luma vizinhas estão à esquerda do bloco de luma, a unidade de codificação baseada em LM 122 pode excluir as amostras de luma que estão à esquerda e que estão mais do que um número limite de amostras à esquerda do bloco de luma e abaixo de uma amostra de luma superior esquerda do bloco de luma. Como um exemplo, as amostras de luma à esquerda das linhas tracejadas na Figura 13 podem não ser buscadas, pois as mesmas estão mais do que um número limite de amostras (por exemplo, mais de 4 amostras) à esquerda do bloco de luma e abaixo de uma amostra de luma superior esquerda do bloco de luma. Nesse exemplo, as amostras de luma vizinhas buscadas excluem as amostras de luma que têm uma coordenada x menor que (xO-k), e uma coordenada y maior que yO, em que k é o número limite e um número inteiro maior que 0 (por exemplo, 4). Ao invés disso, as amostras de luma como aquelas ilustradas nas Figuras 14, 15A e 15B podem ser buscadas.
[00226] A unidade de codificação baseada em LM 122 podem determinar uma pluralidade de amostras de luma subamostradas com base nas amostras de luma vizinhas buscadas (204). Para o exemplo em que as amostras vizinhas estão acima do bloco de luma, uma das amostras de luma subamostradas corresponde a uma amostra de luma
Petição 870190053680, de 12/06/2019, pág. 114/171
110/119 subamostrada imediatamente acima da amostra de luma superior esquerda. Por exemplo, conforme ilustrado nas Figuras 10, 11B e 12B, a amostra de luma subamostrada está imediatamente acima da amostra de luma superior esquerda. Para o exemplo em que as amostras vizinhas estão à esquerda do bloco de luma, uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada que é o número limite de amostras à esquerda do bloco de luma. As Figuras 11A e 12A ilustram um exemplo adicional de uma amostra de luma subamostrada. Por exemplo, conforme ilustrado nas Figuras 14, 15B e 16B, a amostra de luma subamostrada está 4 amostras à esquerda do bloco de luma, e nesse exemplo, o número limite de amostras à esquerda do bloco de luma é 4. Nesses exemplos, a amostra de luma subamostrada está mais de duas colunas à esquerda da amostra de luma superior esquerda (por exemplo, a amostra de luma subamostrada está 4 colunas à esquerda, que está mais de 2 colunas à esquerda) . As Figuras 15A e 16A ilustram um exemplo adicional de uma amostra de luma subamostrada.
[00227] Para o exemplo em que as amostras de luma vizinhas estão acima do bloco de luma , a unidade de codificação baseada em LM 122 pode aplicar um primeiro filtro a um primeiro conjunto das amostras de luma vizinhas buscadas para determinar uma primeira amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando nenhuma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda for necessária para subamostragem de acordo com o primeiro
Petição 870190053680, de 12/06/2019, pág. 115/171
111/119 filtro. Por exemplo, a unidade de codificação baseada em LM 122 pode aplicar um filtro como aqueles de JCTVC-F502 (como um exemplo), e conforme ilustrado nas Figuras 11A e 12A. A unidade de codificação baseada em LM 122 pode aplicar um segundo filtro diferente a um segundo conjunto das amostras de luma vizinhas buscadas para determinar uma segunda amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando pelo menos uma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda do bloco de luma poderia ser necessária para subamostragem de acordo com o primeiro filtro. Por exemplo, se o uso do filtro descrito em JCTVC-F502 resultaria no acesso a amostras de luma que estão acima e à esquerda da amostra superior esquerda, então a unidade de codificação baseada em LM 122 pode aplicar um filtro como JCTVC-E266 (por exemplo, a Figura 11B) ou de acordo com a equação (13) descrita acima (por exemplo, a Figura 10).
[00228] Para o exemplo em que as amostras de luma vizinhas à esquerda do bloco de luma, a unidade de codificação baseada em LM 122 pode aplicar um primeiro filtro a um primeiro conjunto das amostras de luma vizinhas buscadas para determinar uma primeira amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando nenhuma amostra de luma que é mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda for necessária para subamostragem de acordo com o primeiro filtro. Por exemplo, a unidade de codificação baseada em LM 122 pode aplicar um filtro como aqueles de JCTVC-F502 (como
Petição 870190053680, de 12/06/2019, pág. 116/171
112/119 um exemplo), e conforme ilustrado nas Figuras 15A e 16A. A unidade de codificação baseada em LM 122 pode aplicar um segundo filtro diferente a um segundo conjunto das amostras de luma vizinhas buscadas para determinar uma segunda amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando pelo menos uma amostra de luma que é mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda do bloco de luma poderia ser necessária para subamostragem de acordo com o primeiro filtro. Por exemplo, se o uso do filtro descrito em JCTVC-F502 resultaria no acesso a amostras de luma que estão mais do número limite de amostras à esquerda do bloco de luma e abaixo da amostra superior esquerda, então a unidade de decodificação baseada em LM 165 pode aplicar um filtro como JCTVC-E266 (por exemplo, a Figura 15B) ou de acordo com a equação (13) descrita acima (por exemplo, a Figura 14).
[00229] Nos exemplos acima, o primeiro filtro utiliza três amostras de luma de uma primeira linha que está acima do bloco de luma, e utiliza três amostras de luma de uma segunda linha que está acima da primeira linha. O segundo filtro usa menos de três amostras de luma de uma primeira linha (por exemplo, duas amostras nas Figuras 9 e 14, e uma amostra nas Figuras 11B e 15B) que está à esquerda do bloco de luma, e utiliza menos de três amostras de luma de uma segunda linha (por exemplo, duas amostras nas Figuras 9 e 14, e uma amostra nas Figuras 11B e 15B) que está abaixo da primeira linha.
[00230] Em alguns exemplos, em vez de usar
Petição 870190053680, de 12/06/2019, pág. 117/171
113/119 filtros diferentes, a unidade de codificação baseada em LM 122 pode usar o mesmo filtro, porém aplicar o preenchimento (por exemplo, gerar valores de amostra de luma) em vez de busca. Por exemplo, para os exemplos de amostras de luma vizinhas acima, a unidade de codificação baseada em LM 122 pode gerar, sem busca, valores de luma que correspondem a amostras de luma localizadas acima e à esquerda da amostra de luma superior esquerda do bloco de luma, e pode aplicar um filtro aos valores de luma gerados para determinar pelo menos uma amostra de luma subamostrada da pluralidade de amostras de luma subamostradas (por exemplo, o exemplo da Figura 12B). Para os exemplos de amostras de luma vizinhas à esquerda, a unidade de codificação baseada em LM 122 pode gerar, sem busca, valores de luma que correspondem a amostras de luma localizadas mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda do bloco de luma, e pode aplicar um filtro aos valores de luma gerados para determinar pelo menos uma amostra de luma subamostrada da pluralidade de amostras de luma subamostradas (por exemplo, o exemplo de 16B) .
[00231] A unidade de codificação baseada em LM 122 pode determinar um ou mais parâmetros de escalonamento com base nas amostras de luma subamostradas (206) . Por exemplo, a unidade de codificação baseada em LM 122 pode determinar α e β com base nas amostras de luma subamostradas. A unidade de codificação baseada em LM 122 pode determinar um bloco preditivo com base em um ou mais parâmetros de escalonamento (208). Por exemplo, a unidade
Petição 870190053680, de 12/06/2019, pág. 118/171
114/119 de codificação baseada em LM 122 pode determinar o bloco
preditivo como a*recL ( i,j) + β, em que recL(ij) é uma
versão subamostrada do bloco de luma que corre sponde ao
bloco de croma, e α e β são fatores de escalonamento
determinados a partir de amostras de luma vizinhas
subamostradas.
[00232] 0 codificador de vídeo pode codificar
por predição por LM o bloco de croma com base no bloco
preditivo (210) . Por exemplo, a unidade de geração residual 102 pode subtrair o bloco preditivo do bloco de croma para gerar um bloco residual usado, pelo decodificador de vídeo 30, para reconstruir o bloco de croma.
[00233] As técnicas descritas acima podem ser realizadas pelo codificador de vídeo 20 (Figuras 1 e 2) e/ou decodificador de vídeo 30 (Figuras 1 e 3), ambos podem ser geralmente denominados como um codificador de vídeo. De modo semelhante, a codificação de vídeo pode referir-se à codificação de vídeo ou decodificação de vídeo, conforme aplicável. Além disso, a codificação de vídeo e a decodificação de vídeo podem ser geralmente denominados como processamento de dados de vídeo.
[00234] Deve-se compreender que todas as técnicas descritas no presente documento podem ser usadas individualmente ou em combinação. Esta revelação inclui vários métodos de sinalização que podem mudar dependendo de determinados fatores como tamanho de bloco, tipo de fatia, etc. Tal variação na sinalização ou inferência dos elementos de sintaxe pode ser conhecida para o codificador e decodificador a-priori ou pode ser sinalizada ao
Petição 870190053680, de 12/06/2019, pág. 119/171
115/119 decodificador explicitamente no conjunto de parâmetros de video (VPS), conjunto de parâmetros de sequência (SPS), conjunto de parâmetros de imagem (PPS), cabeçalho de fatia, em um nivel de telha ou em outra parte.
[00235] Deve-se reconhecer que , dependendo do exemplo, determinadas ações ou eventos de qualquer uma das técnicas descritas no presente documento podem ser executados em uma sequência diferente, podem ser adicionados, mesclados ou ignorados (por exemplo, nem todas as ações ou eventos descritos são necessários para a prática das técnicas). Além disso, em determinados exemplos, ações ou eventos podem ser executados simultaneamente, por exemplo, através de processamento multi-threaded, processamento de interrupção ou múltiplos processadores, em vez de sequencialmente. Além disso, embora certos aspectos desta revelação sejam descritos como sendo realizados por um único módulo ou unidade com propósitos de clareza, deve ser entendido que as técnicas desta revelação podem ser realizadas por uma combinação de unidades ou módulos associados a um codificador de video.
[00236] Embora combinações especificas de vários aspectos das técnicas sejam descritas acima, estas combinações são fornecidas meramente para ilustrar exemplos das técnicas descritas nesta revelação. Consequentemente, as técnicas desta revelação não devem ser limitadas a estes exemplos de combinações e podem abranger qualquer combinação concebível dos vários aspectos das técnicas descritas nesta revelação.
[00237] Em um ou mais exemplos, as funções
Petição 870190053680, de 12/06/2019, pág. 120/171
116/119 descritas podem ser implementadas em hardware, software, firmware, ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas ou transmitidas como uma ou mais instruções ou código, um meio legivel por computador e executadas por uma unidade de processamento baseada em hardware. 0 meio legivel por computador pode incluir meio de armazenamento legivel por computador que corresponde a um meio tangível como meios de armazenamento de dados, ou meios de comunicação incluindo qualquer meio que facilite a transferência de um programa de computador a partir de um local para outro, por exemplo, de acordo com um protocolo de comunicação. Dessa forma, os meios legíveis por computador podem, em geral, corresponder a (1) meios de armazenamento legíveis por computador tangíveis que são não temporários ou (2) um meio de comunicação como um sinal ou onda portadora. Os meios de armazenamento de dados podem ser quaisquer meios disponíveis que podem ser acessados 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 um meio legivel por computador.
[00238] A titulo de exemplo, e não de limitação, tais meios de armazenamento legíveis por computador podem compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento de disco óptico, armazenamento de disco magnético, ou outros dispositivos de armazenamento magnéticos, memória flash, ou qualquer outro meio que possa
Petição 870190053680, de 12/06/2019, pág. 121/171
117/119 ser usado para armazenar o código de programa desejado sob a forma de instruções ou estruturas de dados e que possa ser acessado por um computador. Também, qualquer conexão é adequadamente denominada um meio legivel por computador. Por exemplo, se as instruções forem transmitidas de um site da Web, servidor ou outra fonte remota usando um cabo coaxial, cabo de fibra óptica, par torcido, linha de assinante digital (DSL) ou tecnologias sem fio como infravermelho, rádio e micro-ondas, então, o cabo coaxial, cabo de fibra óptica, par torcido, DSL ou tecnologias sem fio como infravermelho, rádio e micro-ondas estão incluídos na definição de meio. Deve-se compreender, no entanto, que os meios de armazenamento legíveis por computador e meios de armazenamento de dados não incluem conexões, ondas portadoras, sinais, ou outros meios temporários, porém são em vez disso direcionados para meios de armazenamento tangíveis não temporários. 0 disco e o disquete, como usado no presente documento, inclui disco compacto (CD) , disco a laser, disco óptico, disco versátil digital (DVD), disquete e disco Blu-ray em que disquetes reproduzem dados magneticamente, enquanto os discos reproduzem dados opticamente com lasers. Combinações desses também podem estar incluídas dentro do escopo de meios legíveis por computador.
[00239] As instruções podem ser executadas por um ou mais processadores, como um ou mais processadores de sinais digitais (DSPs), microprocessadores de uso geral, circuito integrado para aplicação especifica (ASICs), matrizes lógicas programáveis em campo (FPGAs) ou outro
Petição 870190053680, de 12/06/2019, pág. 122/171
118/119 conjunto de circuitos lógico integrado ou distinto equivalente. Consequentemente, o termo processador, conforme usado no presente documento podem se referir a qualquer estrutura anterior ou qualquer outra estrutura adequada para a implementação das técnicas descritas no presente documento. Além disso, em alguns aspectos, a funcionalidade descrita no presente documento pode ser fornecida dentro de módulos de hardware e/ou software dedicados configurados para codificação e decodificação, ou incorporados em um codec combinado. Também, as técnicas poderíam ser completamente implementadas em ou mais circuitos ou elementos lógicos.
[00240] As técnicas desta revelação podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um aparelho sem fio, um circuito integrado (TC) 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 aspectos funcionais de dispositivos configurados para executar as técnicas reveladas, porém não necessariamente exigem realização por unidades de hardware diferentes. Em vez disso, como descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec ou fornecidas por uma coleção de unidades de hardware interoperacionais, incluindo um ou mais processadores como descrito acima, em conjunto com software e/ou firmware adequado.
[00241] Vários exemplos foram descritos. Esses e outros exemplos estão dentro do escopo das reivindicações
Petição 870190053680, de 12/06/2019, pág. 123/171
119/119 a seguir.

Claims (67)

  1. REIVINDICAÇÕES
    1. Método de decodificação de dados de video, sendo que o método compreende:
    determinar um bloco de luma que corresponde a um bloco de croma;
    buscar amostras de luma vizinhas para realizar a amostragem descendente das amostras de luma vizinhas, em que as amostras de luma vizinhas buscadas compreendem uma pluralidade de amostras de luma que estão acima do bloco de luma e excluem amostras de luma que estão acima e à esquerda de uma amostra de luma superior esquerda do bloco de luma;
    determinar uma pluralidade de amostras de luma submetidas à amostragem descendente com base nas amostras de luma vizinhas buscadas, em que uma das amostras de luma submetidas à amostragem descendente corresponde a uma amostra de luma submetida à amostragem descendente imediatamente acima da amostra de luma superior esquerda;
    determinar um ou mais parâmetros de escalonamento com base nas amostras de luma submetidas à amostragem descendente;
    determinar um bloco preditivo com base em um ou mais parâmetros de escalonamento; e decodificar por predição por modelo linear (LM) o bloco de croma com base no bloco preditivo.
  2. 2. Método, de acordo com a reivindicação 1, em que uma coordenada da amostra de luma superior esquerda do bloco de luma é (xO, yO), e em que as amostras de luma vizinhas buscadas excluem amostras de luma que têm uma
    Petição 870190053680, de 12/06/2019, pág. 125/171
    2/26 coordenada x menor que xO e uma coordenada y menor que yO.
  3. 3. Método, de acordo com a reivindicação 1, em que a determinação da pluralidade de amostras de luma subamostradas compreende:
    aplicar um primeiro filtro a um primeiro conjunto das amostras de luma vizinhas buscadas para determinar uma primeira amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando nenhuma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda for necessária para subamostragem de acordo com o primeiro filtro; e aplicar um segundo filtro diferente a um segundo conjunto das amostras de luma vizinhas buscadas para determinar uma segunda amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando pelo menos uma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda do bloco de luma for necessária para subamostragem de acordo com o primeiro filtro.
  4. 4. Método, de acordo com a reivindicação 3, em que o primeiro filtro utiliza três amostras de luma de uma primeira linha que está acima do bloco de luma e três amostras de luma de uma segunda linha que está acima da primeira linha.
  5. 5. Método, de acordo com a reivindicação 3, em que o segundo filtro utiliza menos de três amostras de luma de uma primeira linha que está acima do bloco de luma e menos de três amostras de luma de uma segunda linha que está acima da primeira linha.
    Petição 870190053680, de 12/06/2019, pág. 126/171
    3/26
  6. 6. Método, de acordo com a reivindicação 1, em que a determinação da pluralidade de amostras de luma subamostradas compreende:
    gerar, sem busca, valores de luma que correspondem a amostras de luma localizadas acima e à esquerda da amostra de luma superior esquerda do bloco de luma; e aplicar um filtro aos valores de luma gerados para determinar pelo menos uma amostra de luma subamostrada da pluralidade de amostras de luma subamostradas.
  7. 7. Método, de acordo com a reivindicação 1, em que a predição por LM que decodifica o bloco de croma com base no bloco preditivo compreende adicionar o bloco preditivo a um bloco residual para reconstruir o bloco de croma.
  8. 8. Método, de acordo com a reivindicação 1, que compreende adicionalmente:
    decodificar um sinalizador para um bloco atual que inclui o bloco de luma e o bloco de croma, em que o sinalizador indica que a codificação preditiva por LM está habilitada para o bloco de croma, e em que a decodificação do sinalizador compreende decodificar o sinalizador com base em um contexto que compreende um ou mais sinalizadores que indicam se a codificação preditiva por LM está habilitada para blocos vizinhos.
  9. 9. Dispositivo para decodificação de dados de video, sendo que o dispositivo compreende:
    uma memória de dados de video; e um decodificador de vídeo que compreende pelo
    Petição 870190053680, de 12/06/2019, pág. 127/171
    4/26 menos um conjunto de circuitos de função fixa ou conjunto de circuitos programável, em que o decodificador de video é configurado para:
    determinar um bloco de luma que corresponde a um bloco de croma;
    buscar, a partir da memória de dados de video, amostras de luma vizinhas para realizar a amostragem descendente das amostras de luma vizinhas, em que as amostras de luma vizinhas buscadas compreendem uma pluralidade de amostras de luma que estão acima do bloco de luma e excluem amostras de luma que estão acima e à esquerda de uma amostra de luma superior esquerda do bloco de luma;
    determinar uma pluralidade de amostras de luma submetidas à amostragem descendente com base nas amostras de luma vizinhas buscadas, em que uma das amostras de luma submetidas à amostragem descendente corresponde a uma amostra de luma submetida à amostragem descendente imediatamente acima da amostra de luma superior esquerda;
    determinar um ou mais parâmetros de escalonamento com base nas amostras de luma submetidas à amostragem descendente;
    determinar um bloco preditivo com base em um ou mais parâmetros de escalonamento; e decodificar por predição por modelo linear (LM) o bloco de croma com base no bloco preditivo.
  10. 10. Dispositivo, de acordo com a reivindicação 9, em que uma coordenada da amostra de luma superior esquerda do bloco de luma é (xO, yO), e em que as amostras de luma
    Petição 870190053680, de 12/06/2019, pág. 128/171 vizinhas buscadas excluem amostras de luma que têm uma coordenada x menor que xO e uma coordenada y menor que yO.
  11. 11. Dispositivo, de acordo com a reivindicação 9, em que para determinar da pluralidade de amostras de luma subamostradas, o decodificador de video é configurado para:
    aplicar um primeiro filtro a um primeiro conjunto das amostras de luma vizinhas buscadas para determinar uma primeira amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando nenhuma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda for necessária para subamostragem de acordo com o primeiro filtro; e aplicar um segundo filtro diferente a um segundo conjunto das amostras de luma vizinhas buscadas para determinar uma segunda amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando pelo menos uma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda do bloco de luma for necessária para subamostragem de acordo com o primeiro filtro.
  12. 12. Dispositivo, de acordo com a reivindicação 11, em que o primeiro filtro utiliza três amostras de luma de uma primeira linha que está acima do bloco de luma e três amostras de luma de uma segunda linha que está acima da primeira linha.
  13. 13. Dispositivo, de acordo com a reivindicação 11, em que o segundo filtro utiliza menos de três amostras de luma de uma primeira linha que está acima do bloco de luma e menos de três amostras de luma de uma segunda linha
    Petição 870190053680, de 12/06/2019, pág. 129/171
    6/26 que está acima da primeira linha.
  14. 14. Dispositivo, de acordo com a reivindicação 9, em que para determinar da pluralidade de amostras de luma subamostradas, o decodificador de vídeo é configurado para:
    gerar, sem busca, valores de luma que correspondem a amostras de luma localizadas acima e à esquerda da amostra de luma superior esquerda do bloco de luma; e aplicar um filtro aos valores de luma gerados para determinar pelo menos uma amostra de luma subamostrada da pluralidade de amostras de luma subamostradas.
  15. 15. Dispositivo, de acordo com a reivindicação 9, em que a predição por LM decodificar o bloco de croma com base no bloco preditivo, o decodificador de vídeo é configurado para adicionar o bloco preditivo a um bloco residual para reconstruir o bloco de croma.
  16. 16. Dispositivo, de acordo com a reivindicação 9, em que o decodificador de vídeo é configurado para:
    decodificar um sinalizador para um bloco atual que inclui o bloco de luma e o bloco de croma, em que o sinalizador indica que a codificação preditiva por LM está habilitada para o bloco de croma, e em que a decodificação do sinalizador compreende decodificar o sinalizador com base em um contexto que compreende um ou mais sinalizadores que indicam se a codificação preditiva por LM está habilitada para blocos vizinhos.
  17. 17. Método de codificação de dados de vídeo, sendo que o método compreende:
    determinar um bloco de luma que corresponde a um
    Petição 870190053680, de 12/06/2019, pág. 130/171
    7/26 bloco de croma;
    buscar amostras de luma vizinhas para realizar a amostragem descendente das amostras de luma vizinhas, em que as amostras de luma vizinhas buscadas compreendem uma pluralidade de amostras de luma que estão acima do bloco de luma e excluem amostras de luma que estão acima e à esquerda de uma amostra de luma superior esquerda do bloco de luma;
    determinar uma pluralidade de amostras de luma submetidas à amostragem descendente com base nas amostras de luma vizinhas buscadas, em que uma das amostras de luma submetidas à amostragem descendente corresponde a uma amostra de luma submetida à amostragem descendente imediatamente acima da amostra de luma superior esquerda;
    determinar um ou mais parâmetros de escalonamento com base nas amostras de luma submetidas à amostragem descendente;
    determinar um bloco preditivo com base em um ou mais parâmetros de escalonamento; e predição por modelo linear (LM) que codifica o bloco de croma com base no bloco preditivo.
  18. 18. Método, de acordo com a reivindicação 17, em que uma coordenada da amostra de luma superior esquerda do bloco de luma é (xO, yO), e em que as amostras de luma vizinhas buscadas excluem amostras de luma que têm uma coordenada x menor que xO e uma coordenada y menor que yO.
  19. 19. Método, de acordo com a reivindicação 17, em que a determinação da pluralidade de amostras de luma subamostradas compreende:
    Petição 870190053680, de 12/06/2019, pág. 131/171
    8/26 aplicar um primeiro filtro a um primeiro conjunto das amostras de luma vizinhas buscadas para determinar uma primeira amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando nenhuma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda for necessária para subamostragem de acordo com o primeiro filtro; e aplicar um segundo filtro diferente a um segundo conjunto das amostras de luma vizinhas buscadas para determinar uma segunda amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando pelo menos uma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda do bloco de luma podería ser necessária para subamostragem de acordo com o primeiro filtro.
  20. 20. Método, de acordo com a reivindicação 19, em que o primeiro filtro utiliza três amostras de luma de uma primeira linha que está acima do bloco de luma e três amostras de luma de uma segunda linha que está acima da primeira linha.
  21. 21. Método, de acordo com a reivindicação 19, em que o segundo filtro utiliza menos de três amostras de luma de uma primeira linha que está acima do bloco de luma e menos de três amostras de luma de uma segunda linha que está acima da primeira linha.
  22. 22. Método, de acordo com a reivindicação 17, em que a determinação da pluralidade de amostras de luma subamostradas compreende:
    gerar, sem busca, valores de luma que
    Petição 870190053680, de 12/06/2019, pág. 132/171
    9/26 correspondem a amostras de luma localizadas acima e à esquerda da amostra de luma superior esquerda do bloco de luma; e aplicar um filtro aos valores de luma gerados para determinar pelo menos uma amostra de luma subamostrada da pluralidade de amostras de luma subamostradas.
  23. 23. Método, de acordo com a reivindicação 17, em que a predição por LM que codifica o bloco de croma com base no bloco preditivo compreende subtrair o bloco preditivo do bloco de croma para gerar um bloco residual que será usado, por um decodificador de vídeo, para reconstruir o bloco de croma.
  24. 24. Método, de acordo com a reivindicação 17, que compreende adicionalmente:
    codificar um sinalizador para um bloco atual que inclui o bloco de luma e o bloco de croma, em que o sinalizador indica que a codificação preditiva por LM está habilitada para o bloco de croma, e em que a codificação do sinalizador compreende codificar o sinalizador com base em um contexto que compreende um ou mais sinalizadores que indicam se a codificação preditiva por LM está habilitada para blocos vizinhos.
  25. 25. Dispositivo para codificação de dados de vídeo, sendo que o dispositivo compreende:
    uma memória de dados de vídeo; e
    Um codificador de vídeo que compreende pelo menos um conjunto de circuitos de função fixa ou conjunto de circuitos programável, em que o codificador de vídeo é configurado para:
    Petição 870190053680, de 12/06/2019, pág. 133/171
    10/26 determinar um bloco de luma que corresponde a um bloco de croma;
    buscar, a partir da memória de dados de vídeo, amostras de luma vizinhas para realizar a amostragem descendente das amostras de luma vizinhas, em que as amostras de luma vizinhas buscadas compreendem uma pluralidade de amostras de luma que estão acima do bloco de luma e excluem amostras de luma que estão acima e à esquerda de uma amostra de luma superior esquerda do bloco de luma;
    determinar uma pluralidade de amostras de luma submetidas à amostragem descendente com base nas amostras de luma vizinhas determinadas, em que uma das amostras de luma submetidas à amostragem descendente corresponde a uma amostra de luma submetida à amostragem descendente imediatamente acima da amostra de luma superior esquerda;
    determinar um ou mais parâmetros de escalonamento com base nas amostras de luma submetidas à amostragem descendente;
    determinar um bloco preditivo com base em um ou mais parâmetros de escalonamento; e codificar por predição por modelo linear (LM) o bloco de croma com base no bloco preditivo.
  26. 26. Dispositivo, de acordo com a reivindicação 25, em que uma coordenada da amostra de luma superior esquerda do bloco de luma é (xO, yO), e em que as amostras de luma vizinhas buscadas excluem amostras de luma que têm uma coordenada x menor que xO e uma coordenada y menor que yO.
    Petição 870190053680, de 12/06/2019, pág. 134/171
    11/26
  27. 27. Dispositivo, de acordo com a reivindicação 25, em que para determinar da pluralidade de amostras de luma subamostradas, o codificador de video é configurado para :
    aplicar um primeiro filtro a um primeiro conjunto das amostras de luma vizinhas buscadas para determinar uma primeira amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, guando nenhuma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda for necessária para subamostragem de acordo com o primeiro filtro; e aplicar um segundo filtro diferente a um segundo conjunto das amostras de luma vizinhas buscadas para determinar uma segunda amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando pelo menos uma amostra de luma que está acima e à esquerda da amostra de luma superior esquerda do bloco de luma for necessária para subamostragem de acordo com o primeiro filtro.
  28. 28. Dispositivo, de acordo com a reivindicação 27, em que o primeiro filtro utiliza três amostras de luma de uma primeira linha que está acima do bloco de luma e três amostras de luma de uma segunda linha que está acima da primeira linha.
  29. 29. Dispositivo, de acordo com a reivindicação 27, em que o segundo filtro utiliza menos de três amostras de luma de uma primeira linha que está acima do bloco de luma e menos de três amostras de luma de uma segunda linha que está acima da primeira linha.
    Petição 870190053680, de 12/06/2019, pág. 135/171
    12/26
  30. 30. Dispositivo, de acordo com a reivindicação 25, em que para determinar da pluralidade de amostras de luma subamostradas, o codificador de video é configurado para :
    gerar, sem busca, valores de luma que correspondem a amostras de luma localizadas acima e à esquerda da amostra de luma superior esquerda do bloco de luma; e aplicar um filtro aos valores de luma gerados para determinar pelo menos uma amostra de luma subamostrada da pluralidade de amostras de luma subamostradas.
  31. 31. Dispositivo, de acordo com a reivindicação 25, em que a predição por LM codifica o bloco de croma com base no bloco preditivo, o codificador de vídeo é configurado para subtrair o bloco preditivo do bloco de croma para gerar um bloco residual que será usado, por um decodificador de vídeo, para reconstruir o bloco de croma.
  32. 32. Dispositivo, de acordo com a reivindicação
    25, em que o codificador de vídeo é configurado para:
    codificar um sinalizador para um bloco atual que inclui o bloco de luma e o bloco de croma, em que o sinalizador indica que a codificação preditiva por LM está habilitada para o bloco de croma, e em que a codificação do sinalizador compreende codificar o sinalizador com base em um contexto que compreende um ou mais sinalizadores que indicam se a codificação preditiva por LM está habilitada para blocos vizinhos.
  33. 33. Método de decodificação de dados de vídeo, sendo que o método compreende:
    Petição 870190053680, de 12/06/2019, pág. 136/171
    13/26 determinar um bloco de luma que corresponde a um bloco de croma;
    buscar amostras de luma vizinhas para realizar a amostragem descendente das amostras de luma vizinhas, em que as amostras de luma vizinhas buscadas compreendem uma pluralidade de amostras de luma que estão à esquerda do bloco de luma e excluem amostras de luma que estão à esquerda e que são mais do que um número limite de amostras à esquerda do bloco de luma e abaixo de uma amostra de luma superior esquerda do bloco de luma;
    determinar uma pluralidade de amostras de luma subamostradas com base nas amostras de luma vizinhas buscadas, em que uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada que é o número limite de amostras à esquerda do bloco de luma;
    determinar um ou mais parâmetros de escalonamento com base nas amostras de luma submetidas à amostragem descendente;
    determinar um bloco preditivo com base em um ou mais parâmetros de escalonamento; e predição por modelo linear (LM) que decodifica o bloco de croma com base no bloco preditivo.
  34. 34. Método, de acordo com a reivindicação 33, em que uma coordenada da amostra de luma superior esquerda do bloco de luma é (xO, yO), e em que as amostras de luma vizinhas buscadas excluem amostras de luma que têm uma coordenada x menor que (χθ-k) e uma coordenada y maior que yO, e em que k é o número limite e k é um número inteiro maior que 0.
    Petição 870190053680, de 12/06/2019, pág. 137/171
    14/26
    35. Método, de acordo com a reivindicação 34, em que k é igual a 4 . 36. Método, de acordo com a reivindicação 33, em que uma das amostras ; de luma subamostradas corresponde a uma amostra de luma subamostrada mais de duas colunas à esquerda da amostra de luma superior esquerda. 37 . Método, de acordo com a reivindicação 33, em que a determinação da pluralidade de amostras de luma subamostradas compreende: aplicar um primeiro filtro a um primeiro conjunto
    das amostras de luma vizinhas buscadas, para determinar uma primeira amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando nenhuma amostra de luma que é mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda for necessária para subamostragem de acordo com o primeiro filtro, e em que a primeira amostra de luma subamostrada está em uma coluna que é um primeiro número de colunas à esquerda do bloco de luma; e aplicar um segundo filtro diferente a um segundo conjunto das amostras de luma vizinhas buscadas, para determinar uma segunda amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando pelo menos uma amostra de luma que é mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda do bloco de luma for necessária para subamostragem de acordo com o primeiro filtro, em que a segunda amostra de luma subamostrada está em uma coluna que é um segundo número de colunas à esquerda do bloco de
    Petição 870190053680, de 12/06/2019, pág. 138/171
    15/26 luma, e em que o segundo número é maior que o primeiro número.
  35. 38. Método, de acordo com a reivindicação 37, em que o primeiro filtro utiliza três amostras de luma de uma primeira linha que está à esquerda do bloco de luma e três amostras de luma de uma segunda linha que está abaixo da primeira linha.
  36. 39. Método, de acordo com a reivindicação 37, em que o segundo filtro utiliza menos de três amostras de luma de uma primeira linha que está à esquerda do bloco de luma e menos de três amostras de luma de uma segunda linha que está abaixo da primeira linha.
  37. 40. Método, de acordo com a reivindicação 33, em que a determinação da pluralidade de amostras de luma subamostradas compreende:
    gerar, sem busca, valores de luma que correspondem a amostras de luma localizadas mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda do bloco de luma; e aplicar um filtro aos valores de luma gerados para determinar pelo menos uma amostra de luma subamostrada da pluralidade de amostras de luma subamostradas.
  38. 41. Método, de acordo com a reivindicação 33, em que a predição por LM que decodifica o bloco de croma com base no bloco preditivo compreende adicionar o bloco preditivo a um bloco residual para reconstruir o bloco de croma.
  39. 42. Método, de acordo com a reivindicação 33, que
    Petição 870190053680, de 12/06/2019, pág. 139/171
    16/26 compreende adicionalmente:
    decodificar um sinalizador para um bloco atual que inclui o bloco de luma e o bloco de croma, em que o sinalizador indica que a codificação preditiva por LM está habilitada para o bloco de croma, e em que a decodificação do sinalizador compreende decodificar o sinalizador com base em um contexto que compreende um ou mais sinalizadores que indicam se a codificação preditiva por LM está habilitada para blocos vizinhos.
  40. 43. Dispositivo para decodificação de dados de video, sendo que o dispositivo compreende:
    uma memória de dados de video; e um decodificador de video que compreende pelo menos um conjunto de circuitos de função fixa ou conjunto de circuitos programável, em que o decodificador de video é configurado para:
    determinar um bloco de luma que corresponde a um bloco de croma; buscar amostras de luma vizinhas para realizar a amostragem descendente das amostras de luma vizinhas, em que as amostras de luma vizinhas buscadas compreendem uma pluralidade de amostras de luma que estão à esquerda do bloco de luma e excluem amostras de luma que estão à esquerda e que são mais do que um número limite de amostras à esquerda do bloco de luma e abaixo de uma amostra de luma superior esquerda do bloco de luma;
    determinar uma pluralidade de amostras de luma subamostradas com base nas amostras de luma vizinhas buscadas, em que uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada que é o
    Petição 870190053680, de 12/06/2019, pág. 140/171
    17/26 número limite de amostras à esquerda do bloco de luma;
    determinar um ou mais parâmetros de escalonamento com base nas amostras de luma submetidas à amostragem descendente;
    determinar um bloco preditivo com base em um ou mais parâmetros de escalonamento; e predição por modelo linear (LM) que decodifica o bloco de croma com base no bloco preditivo.
    44 Dispositivo, de acordo com a reivindicação 43, em que uma coordenada da amostra de luma superior esquerda do bloco de luma é (xO , yO), e em que as amostras
    de luma vizinhas buscadas excluem amostras de luma que têm uma coordenada x menor que (xO-k) e uma coordenada y maior que yO, e em que k é o número limite e k é um número inteiro maior que 0.
  41. 45. Dispositivo, de acordo com a reivindicação 44, em que k é igual a 4.
  42. 46. Dispositivo, de acordo com a reivindicação 43, em que uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada mais de duas colunas à esquerda da amostra de luma superior esquerda.
  43. 47. Dispositivo, de acordo com a reivindicação
    43, em que para determinar da pluralidade de amostras de luma subamostradas, o decodificador de video é configurado para:
    aplicar um primeiro filtro a um primeiro conjunto das amostras de luma vizinhas, para determinar uma primeira amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando nenhuma amostra de luma que é
    Petição 870190053680, de 12/06/2019, pág. 141/171
    18/26 mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda for necessária para subamostragem de acordo com o primeiro filtro, e em que a primeira amostra de luma subamostrada está em uma coluna que é um primeiro número de colunas à esquerda do bloco de luma; e aplicar um segundo filtro diferente a um segundo conjunto das amostras de luma vizinhas, para determinar uma segunda amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando pelo menos uma amostra de luma que é mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda do bloco de luma for necessária para subamostragem de acordo com o primeiro filtro, em que a segunda amostra de luma subamostrada está em uma coluna que é um segundo número de colunas à esquerda do bloco de luma, e em que o segundo número é maior que o primeiro número.
  44. 48. Dispositivo, de acordo com a reivindicação 47, em que o primeiro filtro utiliza três amostras de luma de uma primeira linha que está à esquerda do bloco de luma e três amostras de luma de uma segunda linha que está abaixo da primeira linha.
  45. 49. Dispositivo, de acordo com a reivindicação 47, em que o segundo filtro utiliza menos de três amostras de luma de uma primeira linha que está à esquerda do bloco de luma e menos de três amostras de luma de uma segunda linha que está abaixo da primeira linha.
  46. 50. Dispositivo, de acordo com a reivindicação 43, em que para determinar da pluralidade de amostras de
    Petição 870190053680, de 12/06/2019, pág. 142/171
    19/26 luma subamostradas, o decodificador de video é configurado para :
    gerar, sem busca, valores de luma que correspondem a amostras de luma localizadas mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda do bloco de luma; e aplicar um filtro aos valores de luma gerados para determinar pelo menos uma amostra de luma subamostrada da pluralidade de amostras de luma subamostradas.
  47. 51. Dispositivo, de acordo com a reivindicação 43, em que a predição por LM decodificar o bloco de croma, o decodificador de video é configurado para adicionar o bloco preditivo a um bloco residual para reconstruir o bloco de croma.
  48. 52. Dispositivo, de acordo com a reivindicação
    43, em que o decodificador de video é configurado para:
    decodificar um sinalizador para um bloco atual que inclui o bloco de luma e o bloco de croma, em que o sinalizador indica que a codificação preditiva por LM está habilitada para o bloco de croma, e em que para decodificar o sinalizador, o decodificador de video é configurado para decodificar o sinalizador com base em um contexto que compreende um ou mais sinalizadores que indicam se a codificação preditiva por LM está habilitada para blocos vi zinhos .
  49. 53. Método de codificação de dados de video, sendo que o método compreende:
    determinar um bloco de luma que corresponde a um
    Petição 870190053680, de 12/06/2019, pág. 143/171
    20/26 bloco de croma;
    buscar amostras de luma vizinhas para realizar a amostragem descendente das amostras de luma vizinhas, em que as amostras de luma vizinhas buscadas compreendem uma pluralidade de amostras de luma que estão à esquerda do bloco de luma e excluem amostras de luma que estão à esquerda e que são mais do que um número limite de amostras à esquerda do bloco de luma e abaixo de uma amostra de luma superior esquerda do bloco de luma;
    determinar uma pluralidade de amostras de luma subamostradas com base nas amostras de luma vizinhas buscadas, em que uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada que é o número limite de amostras à esquerda do bloco de luma;
    determinar um ou mais parâmetros de escalonamento com base nas amostras de luma submetidas à amostragem descendente;
    determinar um bloco preditivo com base em um ou mais parâmetros de escalonamento; e codificar por predição por modelo linear (LM) o bloco de croma com base no bloco preditivo.
  50. 54. Método, de acordo com a reivindicação 53, em que uma coordenada da amostra de luma superior esquerda do bloco de luma é (xO, yO), e em que as amostras de luma vizinhas buscadas excluem amostras de luma que têm uma coordenada x menor que (χθ-k) e uma coordenada y maior que yO, e em que k é o número limite e k é um número inteiro maior que 0.
  51. 55. Método, de acordo com a reivindicação 54, em
    Petição 870190053680, de 12/06/2019, pág. 144/171
    21/26 que k é igual a 4.
  52. 56. Método, de acordo com a reivindicação 53, em que uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada mais de duas colunas à esquerda da amostra de luma superior esquerda.
  53. 57. Método, de acordo com a reivindicação 53, em que a determinação da pluralidade de amostras de luma subamostradas compreende:
    aplicar um primeiro filtro a um primeiro conjunto das amostras de luma vizinhas buscadas, para determinar uma primeira amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando nenhuma amostra de luma que é mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda for necessária para subamostragem de acordo com o primeiro filtro, e em que a primeira amostra de luma subamostrada está em uma coluna que é um primeiro número de colunas à esquerda do bloco de luma; e aplicar um segundo filtro diferente a um segundo conjunto das amostras de luma vizinhas buscadas, para determinar uma segunda amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando pelo menos uma amostra de luma que é mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda do bloco de luma for necessária para subamostragem de acordo com o primeiro filtro, em que a segunda amostra de luma subamostrada está em uma coluna que é um segundo número de colunas à esquerda do bloco de luma, e em que o segundo número é maior que o primeiro
    Petição 870190053680, de 12/06/2019, pág. 145/171
    22/26 número .
  54. 58. Método, de acordo com a reivindicação 57, em que o primeiro filtro utiliza três amostras de luma de uma primeira linha que está à esquerda do bloco de luma e três amostras de luma de uma segunda linha que está abaixo da primeira linha.
  55. 59. Método, de acordo com a reivindicação 57, em que o segundo filtro utiliza menos de três amostras de luma de uma primeira linha que está à esquerda do bloco de luma e menos de três amostras de luma de uma segunda linha que está abaixo da primeira linha.
  56. 60. Método, de acordo com a reivindicação 53, em que a determinação da pluralidade de amostras de luma subamostradas compreende:
    gerar, sem busca, valores de luma que correspondem a amostras de luma localizadas mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda do bloco de luma; e aplicar um filtro aos valores de luma gerados para determinar pelo menos uma amostra de luma subamostrada da pluralidade de amostras de luma subamostradas.
  57. 61. Método, de acordo com a reivindicação 53, em que a predição por LM que codifica o bloco de croma com base no bloco preditivo compreende subtrair o bloco preditivo do bloco de croma para gerar um bloco residual que será usado, por um decodificador de video, para reconstruir o bloco de croma.
  58. 62. Método, de acordo com a reivindicação 53, que
    Petição 870190053680, de 12/06/2019, pág. 146/171
    23/26 compreende adicionalmente:
    codificar um sinalizador para um bloco atual que inclui o bloco de luma e o bloco de croma, em que o sinalizador indica que a codificação preditiva por LM está habilitada para o bloco de croma, e em que a codificação do sinalizador compreende codificar o sinalizador com base em um contexto que compreende um ou mais sinalizadores que indicam se a codificação preditiva por LM está habilitada para blocos vizinhos.
  59. 63. Dispositivo para codificação de dados de video, sendo que o dispositivo compreende:
    uma memória de dados de video; e um codificador de video que compreende pelo menos um conjunto de circuitos de função fixa ou conjunto de circuitos programável, em que o codificador de video é configurado para:
    determinar um bloco de luma que corresponde a um bloco de croma; buscar amostras de luma vizinhas para realizar a amostragem descendente das amostras de luma vizinhas, em que as amostras de luma vizinhas buscadas compreendem uma pluralidade de amostras de luma que estão à esquerda do bloco de luma e excluem amostras de luma que estão à esquerda e que são mais do que um número limite de amostras à esquerda do bloco de luma e abaixo de uma amostra de luma superior esquerda do bloco de luma;
    determinar uma pluralidade de amostras de luma subamostradas com base nas amostras de luma vizinhas buscadas, em que uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada que é o
    Petição 870190053680, de 12/06/2019, pág. 147/171
    24/26 número limite de amostras à esquerda do bloco de luma;
    determinar um ou mais parâmetros de escalonamento com base nas amostras de luma submetidas à amostragem descendente;
    determinar um bloco preditivo com base em um ou mais parâmetros de escalonamento; e codificar por predição por modelo linear (LM) o bloco de croma com base no bloco preditivo.
    64 Dispositivo, de acordo com a reivindicação 63, em que uma coordenada da amostra de luma superior esquerda do bloco de luma é (xO , yO), e em que as amostras
    de luma vizinhas buscadas excluem amostras de luma que têm uma coordenada x menor que (χθ-k) e uma coordenada y maior que yO, em que k é o número limite e k é um número inteiro maior que 0.
  60. 65. Dispositivo, de acordo com a reivindicação 64, em que k é igual a 4.
  61. 66. Dispositivo, de acordo com a reivindicação
    63, em que uma das amostras de luma subamostradas corresponde a uma amostra de luma subamostrada mais de duas colunas à esquerda da amostra de luma superior esquerda.
  62. 67. Dispositivo, de acordo com a reivindicação
    63, em que para determinar da pluralidade de amostras de luma subamostradas, o codificador de video é configurado para:
    aplicar um primeiro filtro a um primeiro conjunto das amostras de luma vizinhas, para determinar uma primeira amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando nenhuma amostra de luma que é
    Petição 870190053680, de 12/06/2019, pág. 148/171
    25/26 mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda for necessária para subamostragem de acordo com o primeiro filtro, e em que a primeira amostra de luma subamostrada está em uma coluna que é um primeiro número de colunas à esquerda do bloco de luma; e aplicar um segundo filtro diferente a um segundo conjunto das amostras de luma vizinhas, para determinar uma segunda amostra de luma subamostrada da pluralidade de amostras de luma subamostradas, quando pelo menos uma amostra de luma que é mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda do bloco de luma for necessária para subamostragem de acordo com o primeiro filtro, em que a segunda amostra de luma subamostrada está em uma coluna que é um segundo número de colunas à esquerda do bloco de luma, e em que o segundo número é maior que o primeiro número.
  63. 68. Dispositivo, de acordo com a reivindicação 67, em que o primeiro filtro utiliza três amostras de luma de uma primeira linha que está à esquerda do bloco de luma e três amostras de luma de uma segunda linha que está abaixo da primeira linha.
  64. 69. Dispositivo, de acordo com a reivindicação 67, em que o segundo filtro utiliza menos de três amostras de luma de uma primeira linha que está à esquerda do bloco de luma e menos de três amostras de luma de uma segunda linha que está abaixo da primeira linha.
  65. 70. Dispositivo, de acordo com a reivindicação 63, em que para determinar da pluralidade de amostras de
    Petição 870190053680, de 12/06/2019, pág. 149/171
    26/26 luma subamostradas, o codificador de video é configurado para :
    gerar, sem busca, valores de luma que correspondem a amostras de luma localizadas mais do que o número limite de amostras à esquerda do bloco de luma e abaixo da amostra de luma superior esquerda do bloco de luma; e aplicar um filtro aos valores de luma gerados para determinar pelo menos uma amostra de luma subamostrada da pluralidade de amostras de luma subamostradas.
  66. 71. Dispositivo, de acordo com a reivindicação 63, em que codifica por predição por LM o bloco de croma com base no bloco preditivo, o codificador de vídeo é configurado para subtrair o bloco preditivo do bloco de croma para gerar um bloco residual que será usado, por um decodificador de vídeo, para reconstruir o bloco de croma.
  67. 72. Dispositivo, de acordo com a reivindicação
    63, em que o codificador de vídeo é configurado para:
    codificar um sinalizador para um bloco atual que inclui o bloco de luma e o bloco de croma, em que o sinalizador indica que a codificação preditiva por LM está habilitada para o bloco de croma, e em que a codificação do sinalizador compreende codificar o sinalizador com base em um contexto que compreende um ou mais sinalizadores que indicam se a codificação preditiva por LM está habilitada para blocos vizinhos.
BR112019011883A 2016-12-19 2017-12-19 modo de predição por modelo linear com acesso de amostra para codificação de vídeo BR112019011883A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662436319P 2016-12-19 2016-12-19
US15/845,484 US10477240B2 (en) 2016-12-19 2017-12-18 Linear model prediction mode with sample accessing for video coding
PCT/US2017/067344 WO2018118940A1 (en) 2016-12-19 2017-12-19 Linear model prediction mode with sample accessing for video coding

Publications (1)

Publication Number Publication Date
BR112019011883A2 true BR112019011883A2 (pt) 2019-10-22

Family

ID=62562826

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019011883A BR112019011883A2 (pt) 2016-12-19 2017-12-19 modo de predição por modelo linear com acesso de amostra para codificação de vídeo

Country Status (8)

Country Link
US (1) US10477240B2 (pt)
EP (1) EP3556099A1 (pt)
JP (1) JP7069171B2 (pt)
KR (1) KR102574560B1 (pt)
CN (1) CN110024406B (pt)
BR (1) BR112019011883A2 (pt)
TW (1) TWI781972B (pt)
WO (1) WO2018118940A1 (pt)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10873746B2 (en) * 2016-12-21 2020-12-22 Sharp Kabushiki Kaisha Intra prediction image generation device using cross-component liner model, image decoding apparatus, and image coding apparatus using same
GB2567249A (en) * 2017-10-09 2019-04-10 Canon Kk New sample sets and new down-sampling schemes for linear component sample prediction
US11758159B2 (en) * 2018-05-14 2023-09-12 Intellectual Discovery Co., Ltd. Image decoding method/device, image encoding method/device, and recording medium in which bitstream is stored
WO2020015433A1 (en) * 2018-07-15 2020-01-23 Huawei Technologies Co., Ltd. Method and apparatus for intra prediction using cross-component linear model
KR20230008896A (ko) * 2018-07-16 2023-01-16 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 인코더, 비디오 디코더 및 대응하는 인코딩 및 디코딩 방법
CN116347109A (zh) * 2018-08-17 2023-06-27 北京字节跳动网络技术有限公司 一种处理视频数据的方法和装置
KR20200028856A (ko) * 2018-09-07 2020-03-17 김기백 인트라 예측을 이용한 영상 부호화/복호화 방법 및 장치
TWI820212B (zh) * 2018-09-12 2023-11-01 大陸商北京字節跳動網絡技術有限公司 單行交叉分量線性模型預測模式
FI3840377T3 (fi) * 2018-09-20 2023-05-26 Lg Electronics Inc Menetelmä ja laite kuvan dekoodaamiseksi cclm-ennustuksen perusteella kuvankoodausjärjestelmässä
CN115334303A (zh) * 2018-10-05 2022-11-11 华为技术有限公司 帧内预测方法及设备
WO2020076835A1 (en) * 2018-10-08 2020-04-16 Beijing Dajia Internet Information Technology Co., Ltd. Simplifications of cross-component linear model
US10939118B2 (en) * 2018-10-26 2021-03-02 Mediatek Inc. Luma-based chroma intra-prediction method that utilizes down-sampled luma samples derived from weighting and associated luma-based chroma intra-prediction apparatus
WO2020094059A1 (en) 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Complexity reduction in parameter derivation for intra prediction
CN118175297A (zh) * 2018-11-23 2024-06-11 英迪股份有限公司 图像解码方法、图像编码方法和传输图像的比特流的方法
CN113170122B (zh) 2018-12-01 2023-06-27 北京字节跳动网络技术有限公司 帧内预测的参数推导
EP3871415A4 (en) 2018-12-07 2022-04-13 Beijing Bytedance Network Technology Co., Ltd. CONTEXT-BASED INTRAPREDICTION
CN111327903B (zh) * 2018-12-13 2023-05-16 华为技术有限公司 色度块的预测方法和装置
EP3902251A4 (en) * 2018-12-21 2022-09-21 Samsung Electronics Co., Ltd. ENCODING METHOD AND APPARATUS THEREOF, AND DECODING METHOD AND APPARATUS THEREOF
JP7481332B2 (ja) * 2018-12-25 2024-05-10 オッポ広東移動通信有限公司 デコードのための予測方法及びその装置、並びにコンピュータ記憶媒体
CN109672895A (zh) * 2018-12-27 2019-04-23 北京佳讯飞鸿电气股份有限公司 一种hevc帧内预测方法及系统
CN118200555A (zh) * 2018-12-27 2024-06-14 英迪股份有限公司 图像编码/解码方法和装置
KR20200083319A (ko) * 2018-12-28 2020-07-08 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
CN116546216A (zh) 2019-01-02 2023-08-04 Oppo广东移动通信有限公司 解码预测方法、装置及计算机存储介质
KR20220104076A (ko) 2019-01-09 2022-07-25 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 교차-성분 선형 모델을 사용하는 비디오 코딩
KR20210114462A (ko) * 2019-01-16 2021-09-23 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 정보 처리 방법 및 장치, 기기, 저장 매체
CN113439437B (zh) * 2019-02-22 2023-11-24 北京字节跳动网络技术有限公司 用于帧内预测的邻近样点选择
MX2021009894A (es) 2019-02-24 2022-05-18 Beijing Bytedance Network Tech Co Ltd Derivación de parámetros para intrapredicción.
EP3703366A1 (en) * 2019-02-28 2020-09-02 InterDigital VC Holdings, Inc. Method and device for picture encoding and decoding
JP7350074B2 (ja) 2019-02-28 2023-09-25 インターデジタル ヴイシー ホールディングス, インコーポレイテッド ピクチャの符号化及び復号のための方法及び装置
US11516512B2 (en) * 2019-03-04 2022-11-29 Alibaba Group Holding Limited Method and system for processing video content
US20200288159A1 (en) 2019-03-08 2020-09-10 Qualcomm Incorporated Combined residual coding in video coding
KR102639936B1 (ko) 2019-03-08 2024-02-22 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 처리에서 모델-기반 변형에 대한 제약들
EP3939259A4 (en) * 2019-03-12 2022-12-14 Beijing Dajia Internet Information Technology Co., Ltd. VIDEO CODING USING A MULTIPLE MODEL LINEAR MODEL
WO2020192642A1 (en) 2019-03-24 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Conditions in parameter derivation for intra prediction
US10742992B1 (en) 2019-03-26 2020-08-11 Electronic Arts Inc. Video compression for video games
MX2021012472A (es) 2019-04-18 2021-11-12 Beijing Bytedance Network Tech Co Ltd Restriccion de la aplicabilidad del modo de componentes cruzados.
CA3135973A1 (en) * 2019-04-23 2020-10-29 Beijing Bytedance Network Technology Co., Ltd. Methods for cross component dependency reduction
CN113796072B (zh) 2019-05-08 2023-10-03 北京字节跳动网络技术有限公司 跨分量编解码的适用性条件
WO2020236038A1 (en) * 2019-05-21 2020-11-26 Huawei Technologies Co., Ltd. Method and apparatus of cross-component prediction
EP3973707A4 (en) 2019-06-22 2022-08-31 Beijing Bytedance Network Technology Co., Ltd. CHROMA REST SCALE SYNTAX ELEMENT
CN113396587A (zh) 2019-06-25 2021-09-14 Oppo广东移动通信有限公司 图像分量预测方法、装置及计算机存储介质
WO2021004445A1 (en) 2019-07-07 2021-01-14 Beijing Bytedance Network Technology Co., Ltd. Signaling of chroma residual scaling
CN114586349A (zh) * 2019-08-29 2022-06-03 Lg 电子株式会社 基于滤波编译视频的设备和方法
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
US20220363835A1 (en) * 2020-09-03 2022-11-17 Fuji Polymer Industries Co., Ltd. Thermally conductive silicone composition and method for producing the same

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9288500B2 (en) * 2011-05-12 2016-03-15 Texas Instruments Incorporated Luma-based chroma intra-prediction for video coding
CN103688533B (zh) * 2011-06-20 2015-12-23 联发科技(新加坡)私人有限公司 可减少行存储器的色度帧内预测方法及装置
US9693070B2 (en) * 2011-06-24 2017-06-27 Texas Instruments Incorporated Luma-based chroma intra-prediction for video coding
CN103782596A (zh) 2011-06-28 2014-05-07 三星电子株式会社 使用图像的亮度分量的对图像的色度分量的预测方法和设备
CN103096055B (zh) * 2011-11-04 2016-03-30 华为技术有限公司 一种图像信号帧内预测及解码的方法和装置
CN109218730B (zh) * 2012-01-19 2023-07-28 华为技术有限公司 用于lm帧内预测的参考像素缩减
US9438904B2 (en) * 2012-01-19 2016-09-06 Futurewei Technologies, Inc. Reduced look-up table for LM mode calculation
CN104718759B (zh) * 2012-01-24 2019-01-18 华为技术有限公司 Lm模式的简化
US9438905B2 (en) * 2012-04-12 2016-09-06 Futurewei Technologies, Inc. LM mode with uniform bit-width multipliers
KR102127280B1 (ko) * 2013-04-08 2020-06-26 지이 비디오 컴프레션, 엘엘씨 성분-간 예측
WO2015005418A1 (ja) * 2013-07-10 2015-01-15 Kddi株式会社 動画像符号化装置、動画像復号装置、動画像システム、動画像符号化方法、動画像復号方法、およびプログラム
US10455249B2 (en) * 2015-03-20 2019-10-22 Qualcomm Incorporated Downsampling process for linear model prediction mode
WO2016154963A1 (en) * 2015-04-01 2016-10-06 Mediatek Inc. Methods for chroma coding in video codec
US10484712B2 (en) * 2016-06-08 2019-11-19 Qualcomm Incorporated Implicit coding of reference line index used in intra prediction

Also Published As

Publication number Publication date
TWI781972B (zh) 2022-11-01
KR20190097036A (ko) 2019-08-20
JP2020502925A (ja) 2020-01-23
TW201830963A (zh) 2018-08-16
US10477240B2 (en) 2019-11-12
WO2018118940A1 (en) 2018-06-28
JP7069171B2 (ja) 2022-05-17
EP3556099A1 (en) 2019-10-23
CN110024406A (zh) 2019-07-16
KR102574560B1 (ko) 2023-09-04
US20180176594A1 (en) 2018-06-21
CN110024406B (zh) 2023-07-28

Similar Documents

Publication Publication Date Title
BR112019011883A2 (pt) modo de predição por modelo linear com acesso de amostra para codificação de vídeo
TWI533679B (zh) 在視訊寫碼中之參數集
ES2874552T3 (es) Diseño de codificación y descodificación en modo de paleta
JP2022050614A (ja) ビデオコード化のためのマルチタイプツリーフレームワーク
BR112017020102B1 (pt) Processo de amostragem descendente para modo de previsão de modelo linear
US9521393B2 (en) Non-nested SEI messages in video coding
BR112019013705A2 (pt) predição temporal de filtro de laço adaptativo modificada para suporte de escalabilidade temporal
BR112021004492A2 (pt) codificação por transformada múltipla adaptativa
BR112020019715A2 (pt) combinação de intrapredição dependente de posição estendida com modos angulares
US20150016503A1 (en) Tiles and wavefront processing in multi-layer context
BR112021006108A2 (pt) método de codificação de imagem usando informações de movimento baseadas em histórico e dispositivo para o mesmo
BR112019027071A2 (pt) intra-predição aperfeiçoada em codificação de vídeo
BR112015024766B1 (pt) Desabilitação da ocultação de dados de sinal na codificação de vídeo
BR112015007761B1 (pt) Aplicabilidade do sub-fluxo de bits às mensagens sei aninhadas na codificação de vídeo
BR112016027426B1 (pt) Codificação de valores de curso com base em índice de paleta em codificação de vídeo baseada em paleta
BR112014010330B1 (pt) Codificação de vídeo com unidades de camadas de abstração de rede que incluem múltiplas partições de imagens codificadas
BR112016015546B1 (pt) Codificação de índice de cor para codificação de vídeo com base em paleta
BR112014010360B1 (pt) Método e dispositivo para codificar dados de vídeo, método e dispositivo para decodificar dados de vídeo e memória legível por computador
BR112014019444B1 (pt) Restrição de unidades de predição em fatias b para interpredição unidirecional
BR112016006607B1 (pt) Método e dispositivo para processamento de dados de vídeo, e memória legível por computador
KR20180113515A (ko) 최적화된 컴팩트 다중 패스 변환을 사용한 효율적인 변환 코딩
BR112016008224B1 (pt) Escalabilidade de gama de cores com base em tabela de pesquisa tridimensional em codificação de vídeo de múltiplas camadas
TW202121899A (zh) 針對局部雙樹的調色板預測器更新
BR112016008337B1 (pt) Aparelho configurado para codificar informações de vídeo, método para codificar informações de vídeo e memória legível por computador
BR112016030530B1 (pt) Método e aparelho para decodificação de dados de vídeo e método e aparelho para codificação de dados de vídeo em um fluxo de bits

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]
B06W Patent application suspended after preliminary examination (for patents with searches from other patent authorities) chapter 6.23 patent gazette]