BR112019014090A2 - técnicas de intraprevisão para codificação de vídeo - Google Patents

técnicas de intraprevisão para codificação de vídeo Download PDF

Info

Publication number
BR112019014090A2
BR112019014090A2 BR112019014090A BR112019014090A BR112019014090A2 BR 112019014090 A2 BR112019014090 A2 BR 112019014090A2 BR 112019014090 A BR112019014090 A BR 112019014090A BR 112019014090 A BR112019014090 A BR 112019014090A BR 112019014090 A2 BR112019014090 A2 BR 112019014090A2
Authority
BR
Brazil
Prior art keywords
samples
value
video data
block
neighboring
Prior art date
Application number
BR112019014090A
Other languages
English (en)
Inventor
Hsieh Cheng-Teh
Chuang Hsiao-Chiang
Chen Jianle
Zhang Kai
Zhang Li
Karczewicz Marta
Seregin Vadim
Li Xiang
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 BR112019014090A2 publication Critical patent/BR112019014090A2/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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Abstract

um decodificador de vídeo determina um bloco atual de uma gravura atual de dados de vídeo tem um tamanho de pxq, em que p é um primeiro valor correspondente a uma largura do bloco atual e q é um segundo valor correspondente a uma altura do bloco atual, em que p não é igual a q, em que o bloco atual inclui um lado curto e um lado longo, e em que o primeiro valor adicionado ao segundo valor não iguala um valor que é uma potência de 2; decodifica o bloco atual de dados de vídeo usando-se previsão de modo intra-dc, em que decodificar o bloco atual de dados de vídeo usando-se previsão de modo intra-dc compreende realizar uma operação de deslocamento para calcular um valor de dc e gerar um bloco de previsão para o bloco atual de dados de vídeo usando-se o valor de dc calculado; e emite uma versão decodificada da gravura atual.

Description

TÉCNICAS DE INTRAPREVISÃO PARA CODIFICAÇÃO DE VÍDEO [0001] Este pedido reivindica o beneficio do Pedido de Patente Provisório sob n- U.S. 62/445,207 depositado 11 de janeiro de 2017, cujo conteúdo total é incorporado no presente documento a titulo de referência.
CAMPO DA TÉCNICA [0002] Esta revelação refere-se a codificação de video como codificação de video e decodificação de video.
ANTECEDENTES DA INVENÇÃO [0003] As capacidades de video digital podem ser incorporadas em uma grande variedade de dispositivos, incluindo televisões digitais, sistemas de difusão direta digital, sistema de difusão sem fio, assistentes digitais pessoais (PDAs), computadores do tipo laptop ou desktop, computadores do tipo tablet, leitores de e-book, câmeras digitais, dispositivos de gravação digital, reprodutores de midia digital, dispositivos de jogos eletrônicos, consoles de jogos eletrônicos, telefones de rádio via satélite ou celular, os assim chamados de telefones inteligentes, dispositivos de teleconferência por video, dispositivos de transmissão continua de video e similares. Os dispositivos de video digital implantam técnicas de codificação de video como aqueles descritos nos padrões definidos por MPEG-2, MPEG—4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação de Video Avançada (AVC), o padrão de Codificação de Video de Alta Eficiência (HEVC) e extensões de tais padrões. Os dispositivos de video podem transmitir, receber, codificar, decodificar e/ou armazenar informações de video digital de maneira mais eficiente implantando-se
Petição 870190063547, de 08/07/2019, pág. 9/121
2/82 tais técnicas de codificação de video.
[0004] As técnicas de codificação de vídeo incluem previsão espacial (intragravura) e/ou previsão temporal (intergravura) para reduzir ou remover a redundância inerente em sequências de vídeo. Para a codificação de vídeo com base em bloco, uma fatia de vídeo (por exemplo, um quadro de vídeo ou uma porção de um quadro de vídeo) pode ser particionado em blocos de vídeo, que também podem ser denominados de blocos em árvore, CUs e/ou nós de codificação. As gravuras também podem ser denominadas como quadros. As gravuras de referência podem ser referidas como quadros de referência.
[0005] A previsão espacial ou temporal resulta em um bloco preditivo para um bloco a ser convertido em código. Os dados residuais representam diferenças de pixel entre o bloco original a ser convertido em código e o bloco preditivo. Para compactação adicional, os dados residuais podem ser transformados do domínio de pixel para um domínio de transformada, resultando em coeficientes de transformada residuais que podem, então, ser quantizados. A codificação por entropia pode ser aplicada para alcançar ainda mais compactação.
SUMÁRIO [0006] Esta revelação descreve técnicas para codificar um bloco de dados de vídeo usando-se intraprevisão. Por exemplo, as técnicas desta revelação incluem codificar um bloco de dados de vídeo usando-se previsão de modo intra-DC quando o bloco de dados de vídeo for um retângulo.
[0007] De acordo com um exemplo, um método
Petição 870190063547, de 08/07/2019, pág. 10/121
3/82 para decodificar dados de video inclui determinar um bloco atual de uma gravura atual de dados de vídeo tem um tamanho de PxQ, em que P é um primeiro valor correspondente a uma largura do bloco atual e Q é um segundo valor correspondente a uma altura do bloco atual, em que P não é igual a Q, em que o bloco atual inclui um lado curto e um lado longo, e em que o primeiro valor adicionado ao segundo valor não iguala um valor que é uma potência de 2; decodificar o bloco atual de dados de vídeo usando-se previsão de modo intra-DC, em que decodificar o bloco atual de dados de vídeo usando-se previsão de modo intra-DC compreende realizar uma operação de deslocamento para calcular um valor de DC e gerar um bloco de previsão para o bloco atual de dados de vídeo usando-se o valor de DC calculado; e emitir uma versão decodificada da gravura atual que compreende uma versão decodificada do bloco atual.
[0008] De acordo com outro exemplo, um dispositivo para decodificar dados de vídeo inclui uma ou mais mídias de armazenamento configuradas para armazenar os dados de vídeo; e um ou mais processadores configurados para: determinar que um bloco atual de uma gravura atual dos dados de vídeo tem um tamanho de PxQ, em que P é um primeiro valor correspondente a uma largura do bloco atual e Q é um segundo valor correspondente a uma altura do bloco atual, em que P não é igual a Q, em que o bloco atual inclui um lado curto e um lado longo, e em que o primeiro valor adicionado ao segundo valor não iguala um valor que é uma potência de 2; decodificar o bloco atual de dados de vídeo usando-se previsão de modo intra-DC, em que
Petição 870190063547, de 08/07/2019, pág. 11/121
4/82 decodificar o bloco atual de dados de vídeo usando-se previsão de modo intra-DC compreende: realizar uma operação de deslocamento para calcular um valor de DC; e gerar um bloco de previsão for o bloco atual de dados de video usando-se o valor de DC calculado; e emitir uma versão decodificada da gravura atual que compreende uma versão decodificada do bloco atual.
[0009] De acordo com outro exemplo, um aparelho para decodificar dados de video inclui meios para determinar um bloco atual de uma gravura atual de dados de video tem um tamanho de PxQ, em que P é um primeiro valor correspondente a uma largura do bloco atual e Q é um segundo valor correspondente a uma altura do bloco atual, em que P não é igual a Q, em que o bloco atual inclui um lado curto e um lado longo, e em que o primeiro valor adicionado ao segundo valor não iguala um valor que é uma potência de 2; meios para decodificar o bloco atual de dados de video usando-se previsão de modo intra-DC, em que os meios para decodificar o bloco atual de dados de video usando-se previsão de modo intra-DC compreendem: meios para realizar uma operação de deslocamento para calcular um valor de DC; e meios para gerar um bloco de previsão para o bloco atual de dados de video usando-se o valor de DC calculado; e meios para emitir uma versão decodificada da gravura atual que compreende uma versão decodificada do bloco atual.
[0010] Os detalhes de um ou mais exemplos são apresentados nos desenhos anexos e na descrição abaixo. Outros recursos, objetivos e vantagens serão evidentes a partir da descrição, desenhos e reivindicações.
Petição 870190063547, de 08/07/2019, pág. 12/121
5/82
BREVE DESCRIÇÃO DOS DESENHOS [0011] A Figura 1 é um diagrama de blocos que ilustra um sistema de codificação e decodificação de video exemplificativo configurado para implantar técnicas da revelação.
[0012] A Figura 2 é um diagrama conceituai que ilustra estrutura de unidade de codificação (CU) em Codificação de Vídeo de Alta Eficiência (HEVC).
[0013] A Figura 3 é um diagrama conceituai que ilustra tipos de partição exemplificativos para um modo de interprevisão.
[0014] A Figura 4A é um diagrama conceituai que ilustra um exemplo de particionamento de bloco usandose uma estrutura de árvore quadrática-árvore binária (QTBT).
[0015] A Figura 4B é um diagrama conceituai que ilustra uma estrutura de árvore exemplificativa correspondente ao particionamento de bloco usando-se a estrutura de QTBT da Figura 4A.
[0016] A Figura 5 é um diagrama conceituai que ilustra partições assimétricas exemplificativas de acordo com um exemplo de particionamento de QTBT.
[0017] A Figura 6A ilustra um exemplo básico de intraprevisão de acordo com um exemplo da revelação.
[0018] A Figura 6B ilustra um exemplo de 33 modos angulares diferentes de intraprevisão de acordo com um exemplo da revelação.
[0019] A Figura 6C ilustra um exemplo de previsão de modo intra-planar de acordo com um exemplo da revelação.
Petição 870190063547, de 08/07/2019, pág. 13/121
6/82 [0020] A Figura 6D ilustra amostras vizinhas acima e amostras vizinhas à esquerda na margem de um bloco atual de acordo com um exemplo da revelação.
[0021] A Figura 7 ilustra um exemplo de infraamostragem de amostras vizinhas acima na margem de um bloco atual de acordo com um exemplo da revelação.
[0022] A Figura 8 ilustra um exemplo de extensão de amostras vizinhas à esquerda na margem de um bloco atual de acordo com um exemplo da revelação.
[0023] A Figura 9 ilustra um exemplo de técnicas de eliminação de divisão.
[0024] A Figura 10 é um diagrama de blocos que ilustra um exemplo de um codificador de video.
[0025] A Figura 11 é um diagrama de blocos que ilustra um exemplo de um decodificador de video.
[0026] A Figura 12 é um fluxograma que ilustra uma operação exemplificativa de um decodificador de video, de acordo com uma técnica desta revelação.
[0027] A Figura 13 é um fluxograma que ilustra uma operação exemplificativa de um decodificador de video, de acordo com uma técnica desta revelação.
DESCRIÇÃO DETALHADA [0028] Esta revelação descreve técnicas para codificar um bloco de dados de video usando-se intraprevisão, e mais particularmente, esta revelação descreve técnicas relacionadas à codificação de blocos retangulares não quadrados, isto é, blocos com uma altura que não é igual à largura do bloco. Por exemplo, as técnicas desta revelação incluem uma codificação de um bloco retangular não quadrado de dados de video usando-se
Petição 870190063547, de 08/07/2019, pág. 14/121
7/82 modo de previsão intra-DC ou usando-se um intrafiltro forte. As técnicas descritas no presente documento podem habilitar o uso de uma operação de deslocamento, em que uma operação de divisão pode, de outro modo, ser necessária, reduzindo potencialmente, assim, a complexidade computacional enquanto mantém uma eficiência de codificação desejada.
[0029] Conforme usado nesta revelação, o termo codificação de video se refere, genericamente, a codificação de video ou decodificação de vídeo. De modo semelhante, o termo codificador de vídeo pode se referir, genericamente, a um codificador de vídeo ou um decodificador de vídeo. Ademais, determinadas técnicas descritas nesta revelação em relação à decodificação de vídeo também podem se aplicar à codificação de vídeo, e vice-versa. Por exemplo, várias vezes os codificadores de vídeo e decodificadores de vídeo são configurados para realizar o mesmo processo, ou processos recíprocos. Além disso, os codificadores de vídeo realizam, tipicamente, a decodificação de vídeo como parte dos processos de determinar como codificar dados de vídeo. Portanto, salvo declarado em contrário, não se deve presumir que uma técnica descrita em relação a decodificação de vídeo que não pode ser realizada como parte de codificação de vídeo, ou vice-versa.
[0030] A revelação também pode usar termos como camada atual, bloco atual, gravura atual, fatia atual, etc. No contexto desta revelação, o termo atual se destina a identificar um bloco, gravura, fatia, etc. que está sendo codificado atualmente, em oposição a, por exemplo, blocos,
Petição 870190063547, de 08/07/2019, pág. 15/121
8/82 gravuras e fatias já codificados, codificados anteriormente ou blocos, gravuras e fatias ainda a ser codificados.
[0031] A Figura 1 é um diagrama de blocos que ilustra um sistema de codificação e decodificação de video exemplificativo 10 que pode utilizar as técnicas desta revelação para codificar um bloco de dados de video usandose previsão de modo intra-DC quando o bloco de dados de video for um retângulo. Conforme mostrado na Figura 1, o sistema 10 inclui um dispositivo-fonte 12 que fornece dados de video codificados a serem decodificados em um momento posterior por um dispositivo de destino 14. Em particular, o dispositivo-fonte 12 fornece os dados de video para o dispositivo de destino 14 por meio de uma midia legivel por computador 16. O dispositivo-fonte 12 e o dispositivo de destino 14 podem compreender qualquer um dentre uma ampla faixa de dispositivos, incluindo computadores do tipo desktop, computadores do tipo notebook (isto é, computadores do tipo laptop), computadores do tipo tablet, decodificadores de sinais, aparelhos de telefone, tais como, os então chamados telefones inteligentes, computadores do tipo tablet, televisões, câmeras, dispositivos de exibição, reprodutores de midia digital, consoles de videogame, dispositivo de transmissão continua de video, ou semelhantes. Em alguns casos, o dispositivofonte 12 e o dispositivo de destino 14 podem estar equipados para comunicação sem fio. Portanto, o dispositivo-fonte 12 e o dispositivo de destino 14 podem ser dispositivos de comunicação sem fio. O dispositivofonte 12 é um dispositivo de codificação de video exemplificativo (isto é, um dispositivo para codificar
Petição 870190063547, de 08/07/2019, pág. 16/121
9/82 dados de video). 0 dispositivo de destino 14 é um dispositivo de decodificação de video exemplificativo (por exemplo, um dispositivo ou aparelho para decodificar dados de video).
[0032] No exemplo da Figura 1, o dispositivofonte 12 inclui uma fonte de video 18, midias de armazenamento 20 configuradas para armazenar dados de video, um codificador de video 22, e uma interface de saida 24. O dispositivo de destino 14 inclui uma interface de entrada 26, uma midia de armazenamento 28 configurada para armazenar dados de video codificados, um decodificador de video 30 e dispositivo de exibição 32. Em outros exemplos, o dispositivo-fonte 12 e o dispositivo de destino 14 incluem outros componentes ou disposições. Por exemplo, o dispositivo-fonte 12 pode receber dados de video a partir de uma fonte de video externa, como uma câmera externa. Da mesma forma, o dispositivo de destino 14 pode fazer interface com um dispositivo de exibição externo, ao invés de incluir um dispositivo de exibição integrado.
[0033] O sistema ilustrado 10 da Figura 1 é meramente um exemplo. As técnicas para processar dados de video podem ser realizadas por qualquer dispositivo ou aparelho de codificação e/ou decodificação de video digital. Embora, de modo geral, as técnicas desta revelação sejam realizadas por um dispositivo de codificação de video e um dispositivo de decodificação de video, as técnicas também podem ser realizadas por um codificador/decodificador de video combinados, tipicamente referidos como CODEC. O dispositivo-fonte 12 e o dispositivo de destino 14 são meramente exemplos de tais
Petição 870190063547, de 08/07/2019, pág. 17/121
10/82 dispositivos de codificação em que o dispositivo-fonte 12 gera dados de vídeo codificados para transmissão para o dispositivo de destino 14. Em alguns exemplos, o dispositivo-fonte 12 e o dispositivo de destino 14 operam de modo substancialmente simétrico de modo que cada um dentre o dispositivo-fonte 12 e o dispositivo de destino 14 inclua componentes de codificação e decodificação de vídeo. Por conseguinte, o sistema 10 pode suportar transmissão de vídeo unidirecional ou bidirecional entre os dispositivofonte 12 e dispositivo de destino 14, por exemplo, para a transmissão contínua de vídeo, reprodução de vídeo, difusão de vídeo ou telefonia por vídeo.
[0034] A fonte de vídeo 18 do dispositivofonte 12 pode incluir um dispositivo de captura de vídeo, como uma câmera de vídeo, um arquivo de vídeo que contém um vídeo anteriormente capturado e/ou uma interface de alimentação de vídeo para receber dados de vídeo a partir de um provedor de conteúdo de vídeo. Como uma alternativa adicional, a fonte de vídeo 18 pode gerar dados com base em gráficos de computador como o vídeo de fonte ou uma combinação de vídeo ao vivo, vídeo arquivado e vídeo gerado por computador. O dispositivo-fonte 12 pode compreender uma ou mais mídias de armazenamento de dados (por exemplo, mídias de armazenamento 20) configuradas para armazenar os dados de vídeo. As técnicas descritas nesta revelação podem ser aplicáveis a codificação de vídeo em geral e podem ser aplicadas a aplicações com fio e/ou sem fio. Em cada caso, o vídeo capturado, pré-capturado ou gerado por computador pode ser codificado pelo codificador de vídeo 22. A interface de saída 24 pode emitir as informações de vídeo
Petição 870190063547, de 08/07/2019, pág. 18/121
11/82 codificado para a mídia legível por computador 16.
[0035]
O dispositivo de destino 14 pode receber os dados de vídeo codificados a serem decodificados por meio da mídia legível por computador 16. A mídia legível por computador 16 pode compreender qualquer tipo de mídia ou dispositivo com capacidade para mover os dados de vídeo codificados a partir do dispositivo-fonte 12 ao dispositivo de destino 14. Em alguns exemplos, a mídia legível por computador 16 compreende uma mídia de comunicação para possibilitar que um dispositivo-fonte transmita os dados de vídeo codificados diretamente a um dispositivo de destino 14 em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, como um protocolo de comunicação sem fio, e transmitidos para o dispositivo de destino 14. A mídia de comunicação pode compreender qualquer mídia de comunicação sem fio ou com fio, como um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão físicas. A mídia de comunicação pode fazer parte de uma rede com base em pacote, como uma rede de área local, uma rede de área ampla ou uma rede global como a Internet. A mídia de comunicação pode incluir roteadores, comutadores, estações-base ou qualquer outro equipamento que possa ser útil para facilitar a comunicação a partir do dispositivo-fonte 12 para o dispositivo de destino 14. O dispositivo de destino 14 pode compreender uma ou mais mídias de armazenamento de dados configuradas para armazenar dados de vídeo codificados e dados de vídeo decodificados.
[0036]
Em alguns exemplos dados codificados (por exemplo, dados de vídeo codificados) podem
Petição 870190063547, de 08/07/2019, pág. 19/121
12/82 ser emitidos a partir da interface de saida 24 para um dispositivo de armazenamento. De modo semelhante, os dados codificados podem ser acessados a partir do dispositivo de armazenamento pela interface de entrada 26. 0 dispositivo de armazenamento pode incluir qualquer um dentre uma variedade de midias de armazenamento de dados acessados localmente ou distribuídos como um disco rigido, discos Blu-ray, DVDs, CD-ROMs, memória flash, memória volátil ou não volátil ou quaisquer outras midias de armazenamento digital adequadas para armazenar dados de vídeo codificados. Em um exemplo adicional, o dispositivo de armazenamento pode corresponder a um servidor de arquivos ou outro dispositivo de armazenamento intermediário que pode armazenar o vídeo codificado gerado pelo dispositivofonte 12 0 dispositivo de destino 14 pode acessar dados de vídeo armazenados a partir do dispositivo de armazenamento por meio de transmissão contínua ou transferência por download. 0 servidor de arquivos pode ser qualquer tipo de servidor com capacidade para armazenar dados de vídeo codificados e transmitir aqueles dados de vídeo codificados para o dispositivo de destino 14. Os servidores de arquivo exemplificativos incluem um servidor da web (por exemplo, para um site da web) , um servidor FTP, dispositivos de armazenamento anexado à rede (NAS) ou uma unidade de disco local. 0 dispositivo de destino 14 pode acessar os dados de vídeo codificados através de qualquer conexão de dados padrão, incluindo uma conexão com a Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão com fio (por exemplo, DSL, modem de cabo, etc.) ou uma combinação de ambos que seja adequada para acessar
Petição 870190063547, de 08/07/2019, pág. 20/121
13/82 dados de vídeo codificados armazenados em um servidor de arquivos. A transmissão de dados de video codificados a partir do dispositivo de armazenamento pode ser uma transmissão de transferência continua, uma transmissão de transferência por download ou uma combinação das mesmas.
[0037] As técnicas desta revelação podem ser aplicadas à codificação de video visando o suporte a qualquer uma dentre uma variedade de aplicativos de multimídia, tais como difusões de televisão pelo ar, transmissões de televisão a cabo, transmissões de televisão por satélite, transmissões contínuas de vídeo pela Internet, tais como transmissão contínua adaptativa dinâmica através de HTTP (DASH), vídeo digital que é codificado em uma mídia de armazenamento de dados, decodificação de vídeo digital armazenado em uma mídia de armazenamento de dados ou outros aplicativos. Em alguns exemplos, o sistema 10 pode ser configurado para suportar transmissão de vídeo unidirecional ou bidirecional para suportar aplicações como transmissão contínua de vídeo, reprodução de vídeo, difusão de vídeo e/ou telefonia por vídeo.
[0038] A mídia legível por computador pode incluir mídias transientes, como uma transmissão de rede com fio ou difusão sem fio ou mídias de armazenamento (isto é, mídias de armazenamento não transitórias), como um disco rígido, unidade flash, disco compacto, disco de vídeo digital, disco Blu-ray ou outras mídias legíveis por computador. Em alguns exemplos, um servidor de rede (não mostrado) pode receber dados de vídeo codificados a partir do dispositivo-fonte 12 e fornecer os dados de vídeo
Petição 870190063547, de 08/07/2019, pág. 21/121
14/82 codificados para o dispositivo de destino 14, por exemplo, por meio da transmissão de rede. De modo semelhante, um dispositivo de computação de uma instalação de produção de midia, como uma instalação de rotulação de disco, pode receber dados de video codificados a partir do dispositivofonte 12 e produzir um disco que contém os dados de video codificados. Portanto, a midia legivel por computador pode ser compreendida de modo a incluir uma ou mais midias legiveis por computador de várias formas, em vários exemplos.
[0039] A interface de rede 26 do dispositivo de destino 14 recebe informações a partir da midia legivel por computador 16. As informações de midia legivel por computador 16 podem incluir informações de sintaxe definidas pelo codificador de video 22, que também é usado pelo decodificador de video 30, que inclui elementos de sintaxe que descrevem características e/ou processamento de blocos e outras unidades codificadas, por exemplo, grupos de gravuras (GOPs) . As midias de armazenamento 28 podem armazenar dados de video codificados recebidos pela interface de entrada 26. O dispositivo de exibição 32 exibe os dados de video decodificados a um usuário. O dispositivo de exibição 32 pode compreender qualquer um dentre uma variedade de dispositivos de exibição como um tubo de raio catódico (CRT), um visor de cristal liquido (LCD), um visor de plasma, um visor de diodo emissor de luz orgânico (OLED), ou outro tipo de dispositivo de exibição.
[0040] O codificador de video 22 e o decodificador de video 30 podem ser implantados como qualquer um dentre uma variedade de conjuntos de circuitos
Petição 870190063547, de 08/07/2019, pág. 22/121
15/82 de codificador ou decodificador adequados, tal como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados específicos para aplicação (ASICs), matrizes de porta programável em campo (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. Quando as técnicas foram implantadas parcialmente em software, um dispositivo pode armazenar instruções para o software em uma mídia legível por computador não transitória adequada e pode executar as instruções em hardware com o uso de um ou mais processadores para realizar as técnicas desta revelação. Cada um dentre o codificador de vídeo 22 e o decodificador de vídeo 30 pode estar incluído em um ou mais codificadores ou decodif icadores, um dos quais pode ser integrado como parte de um codificador/decodificador (CODEC) combinado em um respectivo dispositivo.
[0041] Em alguns exemplos, o codificador de vídeo 22 e decodificador de vídeo 30 podem operar de acordo com um padrão de codificação de vídeo. Os padrões de codificação de vídeo exemplífreativos incluem, sem limitação, 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 chamado de ISO/IEC MPEG-4 AVC) , incluindo suas extensões de Codificação de Vídeo Escalonável (SVC) e de Codificação de Vídeo de Múltiplas Vistas (MVC). O padrão de codificação de vídeo Codificação de Vídeo de Alta Eficiência (HEVC) ou ITU-T H.265, incluindo suas extensões de codificação de conteúdo de tela e faixa, codificação de vídeo 3D (3D-HEVC) e extensões de multivistas (MV-HEVC) e extensão escalável (SHVC), foi
Petição 870190063547, de 08/07/2019, pág. 23/121
16/82 desenvolvido pela Equipe de Colaboração Conjunta em Codificação de Video (JCT-VC) de Grupo de Especialistas de Codificação de Video ITU-T (VCEG) e Grupo de Especialistas de Gravura em Movimento ISO/IEC (MPEG). A especificação de rascunho de HEVC mais recente, e referida como HEVC WD doravante, está disponível da http://phenix.intevry.fr/j ct/doc_end_user/documents/14_Vienna/wg 11/JCTVC-N1 0 0 3- vl. zip.
[0042] Em HEVC e outras especificações de codificação de video, uma sequência de videos inclui, tipicamente, uma série de gravuras. As gravuras também podem ser denominadas como quadros. A gravura pode incluir três arranjos de amostra, denotados SL, Scb e Scr. SL é um arranjo bidimensional (isto é, um bloco) de amostras de luma. Scb é uma matriz bidimensional de amostras de crominância de Cb. Scr é uma matriz bidimensional de amostras de crominância de Cr. As amostras de crominância também podem ser denominadas no presente documento como amostras de croma. Em outros exemplos, uma gravura pode ser monocroma pode incluir apenas uma matriz de amostras de luma.
[0043] Além do mais, em HEVC e outras especificações de codificação de video, para gerar uma representação codificada de uma gravura, codificador de video 22 pode gerar um conjunto de unidades de árvore de codificação (CTUs) . Cada uma das CTUs pode compreender um bloco de árvore de codificação de amostras de luma, dois blocos de árvore de codificação correspondentes de amostras de croma e estruturas de sintaxe usadas para codificar as amostras dos blocos de árvore de codificação. Em gravuras
Petição 870190063547, de 08/07/2019, pág. 24/121
17/82 de monocroma ou gravuras que têm três planos de cor separados, uma CTU pode compreender um único bloco de árvore de codificação e estruturas de sintaxe usadas para codificar as amostras do bloco de árvore de codificação. Um bloco de árvore de codificação pode ser um bloco NxN de amostras. Uma CTU também pode ser denominada como bloco de árvore ou de uma unidade de codificação maior (LCU). As CTUs de HEVC podem ser amplamente análogas aos macroblocos de outros padrões, como H.264/AVC. No entanto, a CTU não se limita necessariamente a um tamanho particular e pode incluir uma ou mais unidades de codificação (CUs) . Uma fatia pode incluir um número inteiro de CTUs ordenadas consecutivamente em uma ordem de varredura raster.
[0044] Se estiver operando de acordo com HEVC para uma CTU codificada, o codificador de video 22 pode realizar, recursivamente, o particionamento de árvore quadrática nos blocos de árvore de codificação de uma CTU para dividir os blocos de árvore de codificação em blocos de codificação, por conseguinte, o nome unidades de árvore de codificação. Um bloco de codificação é um bloco NxN de amostras. Uma CU pode compreender um bloco de codificação de amostras de luma e dois blocos de codificação correspondentes de amostras de croma de uma gravura que tem uma matriz de amostra de luma, uma matriz de amostra de Cb e uma matriz de amostra de Cr e estruturas de sintaxe usadas para codificar as amostras dos blocos de codificação. Em gravuras de monocroma ou gravuras que têm três planos de cor separados, uma CU pode compreender um único bloco de codificação e estruturas de sintaxe usadas para codificar as amostras do bloco de codificação.
Petição 870190063547, de 08/07/2019, pág. 25/121
18/82 [0045] Os dados de sintaxe dentro de um fluxo de bits também podem definir um tamanho da CTU. Uma fatia inclui várias CTUs consecutivas na ordem de codificação. Um quadro de video ou gravura pode ser particionado em uma ou mais fatias. Conforme mencionado acima, cada bloco de árvore pode ser dividido em CUs de acordo com uma árvore quadrática. Em geral, uma estrutura de dados de árvore quadrática inclui um nó por CU, com um nó raiz correspondente ao bloco de árvore. Se uma CU for dividida em quatro sub-CUs, o nó correspondente à CU inclui quatro nós folha, cada um dos quais corresponde a uma das sub-CUs.
[0046] Cada nó da estrutura de dados de árvore quadrática pode fornecer dados de sintaxe para a CU correspondente. Por exemplo, um nó na árvore quadrática pode incluir um sinalizador de divisão, indicando se a CU correspondente ao nó está dividida em sub-CUs. Os elementos de sintaxe para uma CU podem ser definidas de modo recursive, e pode depender de se a CU é dividida em subCUs. Se uma CU não for dividida adicionalmente, a mesma é referida como uma CU folha. Se um bloco de CU for dividido adicionalmente, o mesmo pode ser referido genericamente como uma CU não folha. Em alguns exemplos desta revelação, quatro sub-CUs de uma CU folha pode ser referida como CUs folha até mesmo se não houver divisão explicita da CU folha original. Por exemplo, se uma CU com tamanho de 16x16 não for dividida adicionalmente, as quatro sub-CUs 8x8 também podem ser referidas como CUs folha embora a CU 16x16 nunca tenha sido dividida.
[0047] Uma CU tem um propósito semelhante como um macrobloco do padrão H.2 64, exceto que uma CU não tem
Petição 870190063547, de 08/07/2019, pág. 26/121
19/82 uma distinção de tamanho. Por exemplo, um bloco de árvore pode ser dividido em quatro nós filho (também referidos como sub-CUs), e cada nó filho pode, por sua vez, ser um nó pai e ser dividido em outros quatro nós filho. Um nó filho não dividido final, referido como um nó folha da árvore quadrática, compreende um nó de codificação, também referido como uma CU folha. Os dados de sintaxe associados a um fluxo de bits codificado podem definir um número máximo de vezes que um bloco de árvore pode ser dividido, referido como uma profundidade de CU máxima, e também podem definir um tamanho minimo dos nós de codificação. Consequentemente, um fluxo de bits também pode definir uma menor unidade de codificação (SCU). Esta revelação usa o termo bloco para se referir a qualquer uma dentre uma CU, PU ou TU, no contexto de HEVC, ou estruturas de dados semelhantes no contexto de outros padrões (por exemplo, macroblocos e sub-blocos dos mesmos em H.264/AVC).
[0048] Uma CU inclui um nó de codificação bem como unidades de previsão (PUs) e unidades de transformada (TUs) associadas ao nó de codificação. Um tamanho da CU corresponde a um tamanho da nó de codificação e pode ser, em alguns exemplos, de formato quadrado. No exemplo de HEVC, o tamanho da CU pode está na faixa de 8x8 pixels até o tamanho do bloco de árvore com um máximo de 64x64 pixels ou mais. Cada CU pode conter uma ou mais PUs e uma ou mais TUs. Os dados de sintaxe associados a uma CU podem descrever, por exemplo, o particionamento da CU em uma ou mais PUs. Os modos de particionamento podem diferir entre se a CU é codificada no modo direto ou modo skip, codificada no modo de intraprevisão, ou codificada no modo
Petição 870190063547, de 08/07/2019, pág. 27/121
20/82 de interprevisão. As PUs podem ser particionadas para terem formato não quadrado. Os dados de sintaxe associados a uma CU também podem descrever, por exemplo, a partição da CU em uma ou mais TUs de acordo com uma árvore quadrática. Uma TU pode ter formato quadrado ou não quadrado (por exemplo, retangular).
[0049] O padrão HEVC permite as transformações de acordo com as TUs. As TUs podem ser diferentes para diferentes CUs. As TUs são tipicamente dimensionadas com base no tamanho de PUs dentro de uma dada CU definida para uma LCU particionada, embora esse nem sempre seja o caso. As TUs são tipicamente do mesmo tamanho ou menor do que as PUs. Em alguns exemplos, os amostras residuais correspondente a uma CU podem ser subdivididas em unidades menores usando-se uma estrutura de árvore quadrática, algumas vezes chamada de árvore quadrática residual (RQT). Os nós folha da RQT podem ser referidos como TUs. Os valores de diferença de pixel associados às TUs podem ser transformados para produzir coeficientes de transformada, que podem ser quantizados.
[0050] Uma CU folha pode incluir uma ou mais PUs. Em geral, uma PU representa uma área espacial correspondente a toda ou uma porção da CU correspondente, e pode incluir dados para recuperar uma amostra de referência para a PU. Ademais, uma PU inclui dados relacionados à previsão. Por exemplo, quando a PU for codificada intramodo, dados para a PU podem ser incluídas em uma RQT, que pode incluir dados que descrevem um modo de intraprevisão para uma TU correspondente à PU. Como outro exemplo, quando a PU for codificada inter-modo, a PU pode incluir dados que
Petição 870190063547, de 08/07/2019, pág. 28/121
21/82 definem um ou mais vetores de movimento para a PU. Os dados que definem o vetor de movimento para uma PU podem descrever, por exemplo, um componente horizontal do vetor de movimento, um componente vertical do vetor de movimento, uma resolução para o vetor de movimento (por exemplo, precisão de um quarto de pixel ou precisão de um oitavo de
pixel), uma gravura de referência para a qual o vetor de
movimento aponta e/ou uma lista de gravura de referência
(por exemplo, Lista 0, Lista 1 ou Lista C) para o vetor de
movimento.
[0051] Uma CU de folha que tem uma ou mais PUs
também pode incluir uma ou mais TUs. As TUs podem ser
especificadas usando-se uma RQT (também referidas como uma
estrutura de árvore quadrática de TU) , conforme discutido acima. Por exemplo, um sinalizador de divisão pode indicar se uma CU folha é dividida em quatro unidades de transformada. Em alguns exemplos, cada unidade de transformada pode ser dividida adicionalmente em sub-TUs adicionais. Quando uma TU não for dividida adicionalmente, a mesma pode ser referida como uma TU folha. De modo geral, para intracodificação, todas as TUs folha pertencentes a uma CU folha contêm dados residuais produzidos a partir do mesmo modo de intraprevisão. Isto é, o mesmo modo de intraprevisão é geralmente aplicado para calcular valores previstos que será transformado em todas as TUs de uma CU folha. Para intracodificação, o codificador de video 22 pode calcular um valor residual para cada TU folha usandose o modo de intraprevisão, como uma diferença entre a porção da CU correspondente à TU e ao bloco original. Uma TU não é necessariamente limitada ao tamanho de a PU.
Petição 870190063547, de 08/07/2019, pág. 29/121
22/82
Portanto, as TUs podem ser maiores ou menores do que uma PU. Para intracodificação, uma PU pode estar colocalizada com uma TU folha correspondente para a mesma CU. Em alguns exemplos, o tamanho máximo de uma TU folha pode corresponder ao tamanho da CU folha correspondente.
[0052] Ademais, as TUs das CUs folha também pode estar associadas a respectivas estruturas de RQT. Isto é, uma CU folha pode incluir uma árvore quadrática que indica como a CU folha é particionada em TUs. O nó raiz de uma árvore quadrática de TU geralmente corresponde a uma CU folha, enquanto o nó raiz de uma árvore quadrática de CU geralmente corresponde a um bloco de árvore (ou LCU).
[0053] Conforme discutido acima, o codificador de video 22 pode particionar um bloco de codificação de uma CU em um ou mais blocos de previsão. Um bloco de previsão é um bloco (isto é, quadrado ou não quadrado) retangular de amostras no qual a mesma previsão é aplicada. Uma PU de uma CU pode compreender um bloco de previsão de amostras de luma, dois blocos de previsão correspondentes de amostras de croma e estruturas de sintaxe usadas para prever os blocos de previsão. Nas gravuras de monocroma ou em gravuras que têm três planos de cor separados, uma PU pode compreender um único bloco de previsão e estruturas de sintaxe usadas para prever o bloco de previsão. O codificador de video 22 pode gerar blocos preditivos (por exemplo, blocos preditivos de luma, Cb e Cr ) para blocos de previsão (por exemplo, blocos de previsão de luma, Cb e Cr) de cada PU da CU.
[0054] O codificador de video 22 pode usar intraprevisão ou interprevisão para gerar os blocos
Petição 870190063547, de 08/07/2019, pág. 30/121
23/82 preditivos para uma PU. Se o codificador de video 22 usar intraprevisão para gerar os blocos preditivos de uma PU, o codificador de video 22 pode gerar blocos preditivos da PU com base nas amostras decodificadas da gravura que inclui a PU.
[0055] Após o codificador de video 22 gerar blocos preditivos (por exemplo, blocos preditivos de luma, Cb e Cr ) para uma ou mais PUs de uma CU, o codificador de video 22 pode gerar um ou mais blocos residuais para a CU. Por exemplo, o codificador de video 22 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 preditivos de luma da CU e uma amostra correspondente no bloco de codificação de luma original da CU. Além disso, o codificador de video 22 pode
gerar um bloco residual de Cb para a CU. Cada amostra no
bloco residual de Cb de uma CU pode indicar uma diferença
entre uma amostra de Cb em um dentre os blocos preditivos
de Cb da CU e uma amostra correspondente no bloco de codificação de Cb original da CU. O codificador de video 22 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.
[0056] Além disso, conforme discutido acima, o codificador de video 22 pode usar o particionamento de árvore quadrática para decompor os blocos residuais (por exemplo, os blocos residuais de luma, Cb e Cr) de uma CU em um ou mais blocos de transformada (por exemplo, blocos de
Petição 870190063547, de 08/07/2019, pág. 31/121
24/82 transformada de luma, Cb e Cr). Um bloco de transformada é um bloco (por exemplo, quadrado ou não quadrado) retangular de amostras no qual a mesma transformada é aplicada. Uma unidade de transformada (TU) de uma CU pode compreender 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. Assim, cada TU de uma CU pode ter um bloco de transformada de luma, um bloco de transformada de Cb e um bloco de transformada de Cr. 0 bloco de transformada de luma da TU pode ser um sub-bloco do bloco residual de luma da CU. 0 bloco de transformada de Cb pode ser um sub-bloco do bloco residual de Cb da CU. 0 bloco de transformada de Cr pode ser um sub-bloco do bloco residual de Cr da CU. Nas gravuras de monocroma ou nas gravuras que têm três planos de cor separados, uma TU pode compreender um único bloco de transformada e estruturas de sintaxe usadas para transformar as amostras do bloco de transformada.
[0057] O codificador de video 22 pode aplicar uma ou mais transformadas a um bloco de transformada de uma TU a fim de gerar um bloco de coeficiente para a TU. Por exemplo, o codificador de video 22 pode aplicar uma ou mais transformadas a um bloco de transformada de 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. O codificador de video 22 pode aplicar uma ou mais transformadas a um bloco de transformada de Cb de uma TU para gerar um bloco
Petição 870190063547, de 08/07/2019, pág. 32/121
25/82 de coeficiente de Cb para a TU. 0 codificador de video 22 pode aplicar uma ou mais transformadas a um bloco de transformada de Cr de uma TU para gerar um bloco de coeficiente de Cr para a TU.
[0058]
Em alguns exemplos, o codificador de vídeo 22 salta a aplicação das transformadas ao bloco de transformada. Nesses exemplos, o codificador de vídeo 22 pode tratar valores de amostra residual da mesma forma que os coeficientes de transformada. Portanto, nos exemplos em que o codificador de vídeo 22 salta a aplicação das transformadas, a seguinte discussão de coeficientes de transformada e blocos de coeficiente pode ser aplicável a blocos de transformada de amostras residuais.
[0059]
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 22 pode quantizar o bloco de coeficiente para, possivelmente, reduzir a quantidade de dados usados para representar o bloco de coeficiente, potencialmente fornecendo compactação adicional. A quantização geralmente se refere a um processo em que uma faixa de valores é compactada para um único valor. Por exemplo, a quantização pode ser feita dividindo-se um valor por uma constante e, então, arredondando para o número inteiro mais próximo. Para quantizar o bloco de coeficiente, o codificador de vídeo 22 pode quantizar coeficientes de transformada do bloco de coeficiente. Após o codificador de vídeo 22 quantizar um bloco de coeficiente, o codificador de vídeo 22 pode codificar por entropia elementos de sintaxe que indicam os coeficientes
Petição 870190063547, de 08/07/2019, pág. 33/121
26/82 de transformada quantizados. Por exemplo, o codificador de video 22 pode realizar Codificação Aritmética Binária Adaptativa a Contexto (CABAC) ou outras técnicas de codificação por entropia nos elementos de sintaxe que indicam os coeficientes de transformada quantizados.
[0060] O codificador de video 22 pode emitir um fluxo de bits que inclui uma sequência de bits que forma uma representação de gravuras codificadas e dados associados. Portanto, o fluxo de bits compreende uma representação codificada de dados de video. O fluxo de bits pode compreender uma sequência de unidades de camada de abstração de rede (NAL). Uma unidade de NAL é uma estrutura de sintaxe que contém uma indicação do tipo de dados na unidade de NAL e bytes e que contêm esses dados na forma de uma carga de sequência de bytes brutos (RBSP) intercalados conforme necessário com bits de prevenção de emulação. Cada uma das unidades de NAL pode incluir um cabeçalho de unidade de NAL e pode encapsular uma RBSP. O cabeçalho de unidade de NAL pode incluir um elemento de sintaxe que indica um código de tipo de unidade de NAL. O código do tipo 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 que contém uma quantidade em número inteiro de bytes que são encapsulados dentro de uma unidade de NAL. Em alguns exemplos, uma RBSP inclui zero bits.
[0061] O decodificador de vídeo 30 pode receber um fluxo de bits gerado pelo codificador de vídeo 22. O decodificador de vídeo 30 pode decodificar o fluxo de bits para reconstruir gravuras dos dados de vídeo. Como
Petição 870190063547, de 08/07/2019, pág. 34/121
27/82 parte da decodificação do fluxo de bits, o decodificador de video 30 pode analisar sintaticamente o fluxo de bits a fim de obter elementos de sintaxe a partir do fluxo de bits. 0 decodificador de video 30 pode reconstruir as gravuras dos dados de video com base, pelo menos em parte, nos elementos de sintaxe obtidos a partir do fluxo de bits. O processo para reconstruir os dados de video pode ser, em geral, reciproco ao processo realizado pelo codificador de video 22. Por exemplo, o decodif icador de video 30 pode usar vetores de movimento de PUs para determinar os blocos preditivos para as PUs de uma CU atual. Além disso, o decodificador de video 30 pode quantizar, inversamente, os coeficientes de blocos das TUs da CU atual. O decodificador de video 30 pode realizar transformadas inversas nos blocos de coeficientes para reconstruir blocos de transformada das TUs da CU atual. O decodificador de video 30 pode reconstruir os blocos de codificação da CU atual adicionando-se as amostras dos blocos preditivos para as PUs da CU atual às amostras correspondentes dos blocos de transformada das TUs da CU atual. Reconstruindo-se os blocos de codificação para cada CU de uma gravura, o decodificador de video 30 pode reconstruir a gravura.
[0062] Os conceitos comuns e determinados aspectos de design de HEVC são descritos abaixo, focando em técnicas para particionamento de bloco. Em HEVC, a maior unidade de codificação em uma fatia é chamada de CTU. O tamanho de uma CTU pode estar na faixa de 16x16 a 64x64 no perfil principal de HEVC, embora os tamanhos de CTU 8x8 também possam ser suportados. Portanto, o tamanho de uma CTU em HEVC pode estar na faixa de 8x8 a 64x64. Em alguns
Petição 870190063547, de 08/07/2019, pág. 35/121
28/82 exemplos, uma CU pode ser do mesmo tamanho de uma CTU. Cada CU é codificada com um modo de codificação, como um modo de intracodificação ou um modo de intercodificação. Outros modos de codificação também são possíveis, incluindo modos de codificação para conteúdo de tela (por exemplo, modos de cópia intra-bloco, modos de codificação com base em paleta, etc.). Quando uma CU for intercodifiçada (isto é, intermodo é aplicado), a CU pode ser adicionalmente particionada em unidades de previsão (PUs) . Por exemplo, uma CU pode ser particionada em 2 ou 4 PUs. Em outro exemplo, a CU inteira é tratada como uma única PU quando particionamento adicional não for aplicado. Em exemplo de HEVC, quando duas PUs estiverem presentes em uma CU, as duas PUs podem ser retângulos de metade do tamanho ou dois retângulos com tamanho de ou 3A do tamanho da CU. Uma CTU pode incluir um bloco de árvore de codificação (CTB) para cada componente de luma e croma. Um CTB pode incluir um ou mais blocos de codificação (CBs). Um CB também pode ser referido como uma CU em alguns exemplos. Em alguns exemplos, o termo CU pode ser usado para se referir a uma nó folha de árvore binária.
[0063] Para uma fatia I, uma estrutura de particionamento de bloco de luma-croma separadas é proposta. O componente de luma de uma CTU (isto é, o CTB de luma) é particionado por uma estrutura de QTBT em CBs de luma, e os dois componentes de croma (por exemplo, Cr e Cb) daquela CTU (isto é, os dois CTBs de croma) são particionados por outra estrutura de QTBT em CBs de croma.
[0064] Para fatias P e B, a estrutura de particionamento de bloco para luma e croma é compartilhada. Isto é, uma CTU (incluindo tanto luma quanto croma) é
Petição 870190063547, de 08/07/2019, pág. 36/121
29/82 particionada por uma estrutura de QTBT em CUs.
[0065] Quando uma CU for intercodifiçada, um conjunto de informações de movimento (por exemplo, vetor de movimento, direção de previsão e gravura de referência) está presente para cada PU. Além disso, cada PU é codificada com um modo de interprevisão exclusivo para derivar um conjunto de informações de movimento. Entretanto, deve ser compreendido que até mesmo se suas PUs forem codificadas de modo exclusivo, as duas PUs podem ainda ter as mesmas informações de movimento em algumas circunstâncias.
[0066] Em J. An et al., Block partitioning structure for next generation video coding, International Telecommunication Union, COM16-C966, setembro de 2015 (doravante, proposta de VCEG COMÍ 6-C966), técnicas de particionamento de árvore quadrática-árvore binária (QTBT) foram propostas para padrão de codificação de video futuro além de HEVC. Simulações mostraram que a estrutura de QTBT proposta é mais eficaz do que a estrutura de árvore quadrática em HEVC usada. A estrutura de QTBT, como aquela descrita em H. Huang, K. Zhang, Y.-W. Huang, S. Lei, EE2 . 1: Quadtree plus binary tree structure integration with JEM tools, JVET-C0024, junho de 2016, é adotado no software JEM. Adoção da estrutura de QTBT no software JEM é descrita em J. Chen, E. Alshina, G. J. Sullivan, J.-R. Ohm, J. Boyce, Algorithm Description of Joint Exploration Test Model 4, JVET-D1001, outubro de 2016. 0 software JEM se baseia no software de Modelo de HEVC (HM) que é software de referência para o grupo de Equipe de Exploração de Video Conjunta (JVET).
Petição 870190063547, de 08/07/2019, pág. 37/121
30/82 [00 67] Na estrutura de QTBT, uma CTU (ou CTB para uma fatia I), que é o nó raiz de uma árvore quadrática, é primeiramente particionada por uma estrutura de árvore quadrática. Os nós folha de árvore quadrática podem ser particionadas adicionalmente por uma estrutura de árvore binária. Os nós folha de árvore binária, a saber, blocos de codificação (CBs), podem ser usados para previsão e transformada sem qualquer particionamento. Para as fatias P e B, os CTBs de luma e croma em uma CTU compartilham a mesma estrutura de QTBT. Para uma fatia I, a CTB de luma pode ser particionada em CBs por uma estrutura de QTBT, e dois CTBs de croma podem ser particionados em CTBs de croma por outra estrutura de QTBT.
[0068] O tamanho de nó folha de árvore quadrática permitido minimo pode ser indicado para o decodificador de video pelo valor do elemento de sintaxe MinQTSize. Se o tamanho de nó folha de árvore quadrática não for maior do que o tamanho de nó raiz de árvore binária permitido máximo (por exemplo, conforme denotado por um elemento de sintaxe MaxBTSize), o nó folha de árvore quadrática pode ser particionado adicionalmente usando-se particionamento de árvore binária. O particionamento de árvore binária de um nó pode ser iterado até que o nó atingisse o tamanho de nó folha de árvore binária minimo permitido (por exemplo, conforme denotado por um elemento de sintaxe MinBTSize) ou a profundidade de árvore binária permitida máxima (por exemplo, conforme denotado por um elemento de sintaxe MaxBTDepth). O nó folha de árvore binária, como uma CU (ou um CB para uma fatia I), será usado para previsão (por exemplo previsão intra-gravura ou
Petição 870190063547, de 08/07/2019, pág. 38/121
31/82 inter-gravura) e transformada sem qualquer particionamento adicional. Em geral, de acordo com técnicas de QTBT, existem dois tipos de divisão para divisão de árvore binária: divisão horizontal simétrica e divisão vertical simétrica. Em cada caso, um bloco é dividido dividindo-se o bloco pela metade, horizontal ou verticalmente.
[0069] Em um exemplo da estrutura de particionamento de QTBT, o tamanho de CTU é definido como 128x128 (por exemplo, um bloco de luma 128x128, um bloco de croma Cr 64x64 correspondente, e um bloco de croma Cb 64x64 correspondente), o MinQTSize é definido como 16x16, o MaxBTSize é definido como 64x64, o MinBTSize (tanto para largura e altura) é definido como 4, e o MaxBTDepth é definido como 4. O particionamento de árvore quadrática é aplicado à CTU primeiro para gerar nós folha de árvore quadrática. Os nós folha de árvore quadrática podem ter um tamanho de 16x16 (isto é, o MinQTSize é 16x16) a 128x128 (isto é, o tamanho de CTU) . De acordo com um exemplo de particionamento de QTBT, se o nó folha de árvore quadrática é 128x128, o nó folha de árvore quadrática não pode ser dividido adicionalmente pela árvore binária visto que o tamanho do nó folha de árvore quadrática excede o MaxBTSize (isto é, 64x64) . De outro modo, o nó folha de árvore quadrática é adicionalmente particionado pela árvore binária. Portanto, o nó folha de árvore quadrática também é o nó raiz para a árvore binária e sua profundidade de árvore binária é definida como 0. A profundidade de árvore binária que atinge MaxBTDepth (por exemplo, 4) implica que não há divisão adicional. A árvore binária nó que tem uma largura igual ao MinBTSize (por exemplo, 4) implica que não
Petição 870190063547, de 08/07/2019, pág. 39/121
32/82 há divisão horizontal adicional. De modo semelhante, a árvore binária nó que tem uma altura igual a MinBTSize implica que não há divisão vertical adicional. Os nós folha da árvore binária (por exemplo, as CUs) são processados adicionalmente (por exemplo, realizando-se um processo de previsão e um processo de transformada) sem qualquer particionamento adicional.
[0070] Conforme mostrado na Figura 2, cada nivel de particionamento é uma árvore quadrática dividida em quatro sub-blocos. O bloco negro é um exemplo de um nó folha (isto é, um bloco que não é dividido adicionalmente). Uma CTU é dividida de acordo com uma estrutura de árvore quadrática, cujos nós são unidades de codificação. A pluralidade de nós em uma estrutura de árvore quadrática inclui nós folha e nós não folha. Os nós folha não têm nós filho na estrutura de árvore (isto é, os nós folha não são divididos adicionalmente). Os nós não folha incluem um nó raiz da estrutura de árvore. O nó raiz corresponde a um bloco de video inicial dos dados de vídeo (por exemplo, um CTB) . Para cada respectivo nó não raiz da pluralidade de nós, o respectivo nó não raiz corresponde a um bloco de vídeo que é um sub-bloco de um bloco de vídeo correspondente a um nó pai na estrutura de árvore do respectivo nó não raiz. Cada respectivo nó não folha da pluralidade de nós não folha tem um ou mais nós filho na estrutura de árvore.
[0071] Em HEVC, existem oito modos de partição para uma CU codificada com o modo de interprevisão, isto é, PART_2Nx2N, PART_2NxN, PART_Nx2N, PART_NxN, PART_2NxnU, PART_2NxnD, PART_nLx2N e PART_nRx2N, conforme mostrado na
Petição 870190063547, de 08/07/2019, pág. 40/121
33/82
Figura 3. Conforme mostrado na Figura 3, uma CU codificada com modo de partição PART_2Nx2N não é dividida adicionalmente. Isto é, a CU inteira é tratada como uma única PU (PUO) . Uma CU codificada com modo de partição PART_2NxN é dividida de modo simetricamente horizontal em duas PUs (PUO e PU1) . Uma CU codificada com modo de partição PART_Nx2N é dividida de modo simetricamente vertical em duas PUs. Uma CU codificada com modo de partição PART_NxN é simetricamente dividida em quatro PUs de tamanho igual (PUO, PU1, PU2, PU3).
[0072] Uma CU codificada com modo de partição PART_2NxnU é dividida de modo assimetricamente horizontal em uma PUO (a PU superior) que tem do tamanho da CU e uma PU1 (a PU inferior) que tem h do tamanho da CU. Uma CU codificada com modo de partição PART_2NxnD é dividida de modo assimetricamente horizontal em uma PUO (a PU superior) que tem h do tamanho da CU e uma PU1 (a PU inferior) que tem do tamanho da CU. Uma CU codificada com modo de partição PART_nLx2N é dividida de modo assimetricamente vertical em uma PUO (a PU esquerda) que tem do tamanho da CU e uma PU1 (a PU direita) que tem h do tamanho da CU. Uma CU codificada com modo de partição PART_nRx2N é dividida de modo assimetricamente vertical em uma PUO (a PU esquerda) que tem h do tamanho da CU e uma PU1 (a PU direita) que tem do tamanho da CU.
[0073] A Figura 4A ilustra um exemplo de um bloco 50 (por exemplo, um CTB) particionado usando-se particionamento de técnicas de QTBT. Conforme mostrado na Figura 4A, usando-se técnicas de particionamento de QTBT, cada um dos blocos resultantes é dividido assimetricamente
Petição 870190063547, de 08/07/2019, pág. 41/121
34/82 através do centro de cada bloco. A Figura 4B ilustra a estrutura de árvore correspondente ao particionamento de bloco da Figura 4B. As linhas sólidas na Figura 4B indicam divisão de árvore quadrática e linhas pontilhadas indicam divisão de árvore binária. Em um exemplo, em cada nó de divisão (isto é, não folha) da árvore binária, um elemento de sintaxe (por exemplo, um sinalizador) é sinalizado para indicar o tipo de divisão realizada (por exemplo, horizontal ou vertical), em que 0 indica divisão horizontal e 1 indica divisão vertical. Para a divisão de árvore quadrática, não há necessidade de indicar o tipo de divisão, na medida em que a divisão de árvore quadrática sempre divide um bloco horizontal e verticalmente em 4 subblocos de tamanho igual.
[0074] Conforme mostrado na Figura 4B, no nó 70, o bloco 50 é divido nos quatro blocos 51, 52, 53, e 54, mostrados na Figura 4A, usando-se particionamento de QT. O bloco 54 não é dividido adicionalmente e é, portanto, um nó folha. No nó 72, o bloco 51 é dividido adicionalmente em dois blocos usando-se o particionamento de BT. Conforme mostrado na Figura 4B, o nó 72 é marcado com um 1, indicando a divisão vertical. Como tal, a divisão no nó 72 resulta no bloco 57 e o bloco que inclui ambos os blocos 55 e 56. Os blocos 55 e 56 são criados por uma divisão vertical adicional no nó 74. No nó 7 6, o bloco 52 é dividido adicionalmente em dois blocos 58 e 59 usando-se o particionamento de BT. Conforme mostrado na Figura 4B, o nó 76 é marcado com um 1, indicando a divisão horizontal.
[0075] No nó 78, o bloco 53 é dividido em 4 blocos de tamanho igual usando-se o particionamento de QT.
Petição 870190063547, de 08/07/2019, pág. 42/121
35/82
Os blocos 63 e 66 são criados a partir desse particionamento de QT e não são divididos adicionalmente. No nó 80, o bloco esquerdo superior é primeiro dividido usando-se divisão de árvore binária vertical resultando no bloco 60 e um bloco vertical direito. O bloco vertical direito é, então, dividido usando-se divisão de árvore binária horizontal nos blocos 61 e 62. O bloco direito inferior criado a partir da divisão de árvore quadrática no nó 78, é dividido no nó 84 usando-se a divisão de árvore binária horizontal nos blocos 64 e 65.
[0076] Em um exemplo de acordo com as técnicas desta revelação, o codificador de video 22 e/ou decodificador de video 30 pode ser configurado para receber um bloco atual de dados de video que tem um tamanho de PxQ. Em alguns exemplos, o bloco atual de dados de video pode ser referido como uma representação codificada de um bloco atual de dados de video. Em alguns exemplos, P pode ser um primeiro valor correspondente a uma largura do bloco atual e Q pode ser um segundo valor correspondente a uma altura do bloco atual. A altura e largura do bloco atual, por exemplo, os valores para o P e Q, podem ser expressos em termos de números de amostras. Em alguns exemplos, o P pode não ser igual a Q; e, nesses exemplos, o bloco atual inclui um lado curto e um lado longo. Se, por exemplo, o valor de Q for maior do que o valor de P, então o lado esquerdo do bloco é o lado longo e o lado superior é o lado curto. Se, por exemplo, o valor de Q for menor do que o valor de P, então o lado esquerdo do bloco é o lado curto e o lado superior é o lado longo.
[0077] O codificador de video 22 e/ou
Petição 870190063547, de 08/07/2019, pág. 43/121
36/82 decodificador de video 30 pode ser configurado para decodificar o bloco atual de dados de video usando-se previsão de modo intra-DC. Em alguns exemplos, a codificação do bloco atual de dados de video usando-se a previsão de modo intra-DC pode incluir determinar que ο primeiro valor adicionado ao segundo valor não é igual a uma potência de 2; amostrar, para gerar várias amostras vizinhas amostradas, pelo menos uma dentre várias amostras vizinhas ao lado curto ou várias amostras vizinhas ao lado longo; e gerar um bloco de previsão para o bloco atual de dados de video calculando-se um valor de DC usando-se o número de amostras vizinhas amostradas.
[0078] Portanto, em um exemplo, o codificador de video 22 pode gerar uma representação codificada de um bloco de video inicial (por exemplo, um bloco de árvore de codificação ou CTU) de dados de video. Como parte de gerar a representação codificada do bloco de video inicial, o codificador de video 22 determina uma estrutura de árvore que compreende uma pluralidade de nós. Por exemplo, o codificador de video 22 pode particionar um bloco de árvore usando-se uma estrutura de QTBT.
[0079] A pluralidade de nós na estrutura de QTBT pode incluir uma pluralidade de nós folha e uma pluralidade de nós não folha. Os nós folha não têm nós filho na estrutura de árvore. Os nós não folha incluem um nó raiz da estrutura de árvore. O nó raiz corresponde ao bloco de video inicial. Para cada respectivo nó não raiz da pluralidade de nós, o respectivo nó não raiz corresponde a um bloco de video (por exemplo, um bloco de codificação) que é um sub-bloco de um bloco de video correspondente a um
Petição 870190063547, de 08/07/2019, pág. 44/121
37/82 nó pai na estrutura de árvore do respectivo nó não raiz. Cada respectivo nó não folha da pluralidade de nós não folha tem um ou mais nós filho na estrutura de árvore. Em alguns exemplos, um nó não folha em um limiar de gravura pode apenas ter um nó filho devido a uma divisão forçada e um dos nós filho corresponde a um bloco fora do limiar de gravura.
[0080] Em F. Le Léannec, T. Poirier, F. Urban, Asymmetric Coding Units in QTBT, JVET-D0064, Chengdu, outubro de 2016 (doravante JVET-D0064), as unidades de codificação assimétrica foram propostas para serem usadas em combinação com QTBT. Quatro novos modos de divisão de árvore binária (por exemplo, tipos de partição) foram introduzidos no interior da estrutura de QTBT, com a finalidade de permitir novas configurações de divisão. Os assim chamados modos de divisão assimétricas foram propostos adicionalmente aos modos de divisão já disponíveis em QTBT, conforme mostrado pela Figura 5. Conforme mostrado na Figura 5, os tipos de partição HOR_UP, HOR_DOWN, VER_LEFT e VER_RIGHT são exemplos de modos de divisão assimétrica.
[0081] De acordo com os modos de divisão assimétrica adicionados, uma unidade de codificação com tamanho 5 é dividido em 2 sub-CUs com tamanhos 5/4 e 3,5/4, na direção horizontal (por exemplo, HOR_UP ou HOR_DOWN) ou na vertical (por exemplo, VER_LEFT ou VER_RIGHT). Em JVETD0064, a largura ou altura de CU recentemente adicionada poderia ser apenas 12 ou 24.
[0082] Nas unidades de codificação assimétricas (por exemplo, aquelas mostradas na Figura 5),
Petição 870190063547, de 08/07/2019, pág. 45/121
38/82 transformadas com um tamanho não sendo iguais a uma potência de 2 são introduzidas, como 12 e 24. Consequentemente, essas unidades de codificação assimétricas introduzem mais fatores que não podem ser compensados no processo de transformada. 0 processamento adicional pode ser necessário para realizar a transformada ou transformada inversa nessas unidades de codificação assimétricas.
[0083] Referindo-se, de modo geral, à intraprevisão, um codificador de video (por exemplo, codificador de video 22 e/ou decodificador de video 30) pode ser configurado para realizar a intraprevisão. A intraprevisão pode ser descrita como realizando previsão de bloco de imagem usando-se suas amostras de imagem reconstruídas espacialmente vizinhas. A Figura 6A mostra um exemplo de intraprevisão para um bloco 16x16. No exemplo da Figura 6A, o bloco 16x16 (no quadrado 202) é previsto a partir das amostras reconstruídas vizinhas acima, esquerda e acima à esquerda (amostras de referência) localizadas na fileira acima e coluna esquerda ao longo de uma direção de previsão selecionada (conforme indicado pela seta 204).
[0084] Em HEVC, a intraprevisão inclui, dentre outros, 35 modos diferentes. Os 35 modos diferentes exemplificativos incluem modo Planar, modo DC e 33 modos angulares. A Figura 6B ilustra os 33 modos angulares diferentes .
[0085] Para o modo Planar, a amostra de previsão é gerada conforme mostrado na Figura 6C. Para realizar a previsão Planar para um bloco NxN, para cada amostra pxy localizada em (x, y) , o valor de previsão é
Petição 870190063547, de 08/07/2019, pág. 46/121
39/82 calculado usando-se quatro amostra reconstruídas vizinhas especificas, isto é, amostras de referência, com filtro bilinear. As quatro amostras de referência incluem a amostra reconstruída superior à direita TR, a amostra reconstruída inferior à esquerda BL, a amostra reconstruída localizadas na mesma coluna (rx,-i) da amostra atual denotada por L e a amostra reconstruída localizada na fileira (r_1/y) da amostra atual denotada por T. 0 modo planar pode ser formulado como abaixo de acordo com a Equação (1):
pxy - ((N-x-l)4^ +(N~y~l) ·Τ f (x+l)'TR + (y tl)'BL) » ( Log2(N ) + 1 ) [0086] Para o modo DC, o bloco de previsão é preenchido com o valor de DC. Em alguns exemplos, o valor de DC pode se referir ao valor médio das amostras reconstruídas vizinhas de acordo com a Equação (2):
pxy equação [0087]
Referindo-se à (2) , M é número de amostras reconstruídas vizinhas acima, N é o número de amostras reconstruídas vizinhas esquerdas, Ak representa a k-ésima amostra reconstruída vizinha acima e Lk representa a k-ésima amostra reconstruída vizinha esquerda conforme mostrado na Figura 6D. Em alguns exemplos, quando todas as the amostras vizinhas não estiverem disponíveis (por exemplo, não existente ou não codificadas/decodifiçadas ainda), um valor padrão de 1 << ( bitDepth - 1 ) pode ser atribuído a cada amostra indisponível. Nesses exemplos, a variável bitDepth denota a profundidade de bit de um componente de luma ou croma. Quando um número parcial das amostras vizinhas não estiver
Petição 870190063547, de 08/07/2019, pág. 47/121
40/82 disponível, as amostras indisponíveis podem ser preenchidas pelas amostras disponíveis. Consistente com esses exemplos, M pode se referir de modo amplo ao número de amostras vizinhas acima, em que o número de amostras vizinhas acima inclui uma ou mais amostras reconstruídas, uma ou mais amostras que têm um valor padrão atribuído à mesma (por exemplo, um valor padrão atribuído de acordo com 1 << ( bitDepth - 1 )), e/ou uma ou mais amostras preenchidas por uma ou mais amostras disponíveis. De modo semelhante, N também pode se referir de modo amplo ao número de amostras vizinhas à esquerda, em que o número de amostras vizinhas à esquerda inclui uma ou mais amostras reconstruídas, uma ou mais amostras que têm um valor padrão atribuído à mesma (por exemplo, um valor padrão atribuído de acordo com 1 << ( bitDepth - 1 )), e/ou uma ou mais amostras preenchidas por uma ou mais amostras disponíveis. Em relação a isso, compreende-se que referência a amostras vizinhas podem se referir a amostras vizinhas disponíveis e/ou amostras vizinhas indisponíveis devido à fato de que a substituição/troca de valores por amostras vizinhas indisponíveis. De modo semelhante, Ak pode, assim, denotar a k-ésima amostra vizinha acima; e, se a k-ésima amostra vizinha acima não estiver disponível, um valor de substituição/troca (por exemplo, um valor padrão ou um valor preenchido) pode ser usado ao invés disso. De modo semelhante, Lk pode, assim, denotar a k-ésima amostra vizinha esquerda; e, se a k-ésima amostra vizinha esquerda não estiver disponível, um valor de substituição/troca (por exemplo, um valor padrão ou um valor preenchido) pode ser usado ao invés disso.
Petição 870190063547, de 08/07/2019, pág. 48/121
41/82 [0088] Os seguintes problemas foram observados com algumas propostas atuais para codificar dados de vídeo de acordo com a previsão de modo intra-DC. Um primeiro problema inclui: quando o número total de amostras vizinhas notado como T não for igual a qualquer 2k (em que k é um número inteiro), a operação de divisão no cálculo de valor médio das amostras reconstruídas vizinhas não pode ser substituída por uma operação de deslocamento. Isso é problemático devido ao fato de que a operação de divisão impõe uma complexidade computacional muito mais do que outras operações no design de produto. Um segundo problema inclui: Uma operação de divisão também pode ocorrer quando alguma interpelação for necessária, mas o número de amostras vizinhas não é igual a uma potência de 2 (por exemplo, não igual a qualquer 2k em que k é um número inteiro). Por exemplo, as amostras de referência podem ser interpeladas linearmente de acordo com a distância de uma extremidade para outra extremidade (como quando um intrafiltro forte é aplicado) , e as amostras finais são usadas como uma entrada e outras amostras são interpeladas como estando entre aquelas amostras finais. Nesse exemplo, se a extensão (por exemplo, a distância de uma extremidade para outra extremidade) não for potência de 2, uma operação de divisão é necessária.
[0089] Para abordar os problemas mencionados acima, as seguintes técnicas são propostas. O codificador de video 22 e o decodif icador de video 30 podem ser configurados para realizar as seguintes técnicas. Em alguns exemplos, o codificador de video 22 e o decodificador de video 30 podem ser configurados para realizar as seguintes
Petição 870190063547, de 08/07/2019, pág. 49/121
42/82 técnicas de modo reciproco. Por exemplo, o codificador de video 22 pode ser configurado para realizar as seguintes técnicas, e o decodif icador de video 30 pode ser configurado para realizar as técnicas de modo reciproco em relação ao codificador de video 22. As seguintes técnicas itemizadas podem ser aplicadas individualmente. Além disso, cada uma das seguintes técnicas podem ser usadas juntas em qualquer combinação. As técnicas descritas abaixo habilitam o uso de uma operação de deslocamento ao invés de uma operação de divisão, reduzindo, assim, a complexidade computacional, permitindo assim maior eficiência de codificação.
[0090] De acordo com um exemplo da revelação, quando a previsão de modo intra-DC for aplicada para um bloco com o tamanho PxQ, em que (P+Q) não é uma potência de 2, o codificador de video 22 e/ou o decodificador de video 30 podem derivar o valor de DC usando-se uma ou mais técnicas descritas abaixo. Uma ou mais técnicas descritas abaixo podem se aplicar quando a previsão de modo intra-DC for aplicada para um bloco com o tamanho PxQ, em que (P+Q) não é uma potência de 2, e ambas as amostras vizinhas esquerda e acima estão disponíveis. Na uma ou mais técnicas exemplificativas descritas abaixo, a equação (2) se refere a: pxy = valor de DC = + Σ^Σ^ί^ , em que M é o número de amostras reconstruídas vizinhas acima, N é o número de amostras reconstruídas vizinhas esquerdas, Ak representa a k-ésima amostra reconstruída vizinha acima e Lk representa a k-ésima amostra reconstruída vizinha esquerda conforme mostrado na Figura 6D. Em alguns exemplos, quando todas as the amostras vizinhas não estiverem disponíveis (por
Petição 870190063547, de 08/07/2019, pág. 50/121
43/82 exemplo, não existente ou não codificadas/decodificadas ainda) , um valor padrão de 1 << ( bitDepth - 1 ) pode ser atribuído a cada amostra indisponível. Nesses exemplos, a variável bitDepth denota a profundidade de bit de um componente de luma ou croma.
[0091] Quando um número parcial das amostras vizinhas não estiver disponível, as amostras indisponíveis podem ser preenchidas pelas amostras disponíveis. Consistente com esses exemplos, M pode se referir de modo amplo ao número de amostras vizinhas acima, em que o número de amostras vizinhas acima inclui uma ou mais amostras reconstruídas, uma ou mais amostras que têm um valor padrão atribuído à mesma (por exemplo, um valor padrão atribuído de acordo com 1 << ( bitDepth - 1 ) ) , e/ou uma ou mais amostras preenchidas por uma ou mais amostras disponíveis. De modo semelhante, N também pode se referir de modo amplo ao número de amostras vizinhas à esquerda, em que o número de amostras vizinhas à esquerda inclui uma ou mais amostras reconstruídas, uma ou mais amostras que têm um valor padrão atribuído à mesma (por exemplo, um valor padrão atribuído de acordo com 1 << ( bitDepth - 1 ) ) , e/ou uma ou mais amostras preenchidas por uma ou mais amostras disponíveis. Em relação a isso, compreende-se que referência a amostras vizinhas podem se referir a amostras vizinhas disponíveis e/ou amostras vizinhas indisponíveis devido à fato de que a substituição/troca de valores por amostras vizinhas indisponíveis. De modo semelhante, Ak pode, assim, denotar a k-ésima amostra vizinha acima; e, se a k-ésima amostra vizinha acima não estiver disponível, um valor de substituição/troca (por exemplo, um valor padrão ou um
Petição 870190063547, de 08/07/2019, pág. 51/121
44/82 valor preenchido) pode ser usado ao invés disso. De modo semelhante, Lk pode, assim, denotar a k-ésima amostra vizinha esquerda; e, se a k-ésima amostra vizinha esquerda não estiver disponível, um valor de substituição/troca (por exemplo, um valor padrão ou um valor preenchido) pode ser usado ao invés disso.
[0092] Em uma primeira técnica exemplificativa desta revelação, quando se usa a equação (2) para calcular o valor de DC, codificador de vídeo 22 e/ou decodificador de vídeo 30 pode infra-amostrar as amostras vizinhas no limiar do lado mais longo (que pode ser referido como o limiar longo ou limiar mais longo) de um bloco não quadrado (por exemplo, um bloco PxQ, em que P não é igual a Q) de modo que o número de amostras vizinhas no limiar infraamostrado (que também pode ser referido como subamostrado) é igual ao número de amostras vizinhas no limiar mais curto (isto é, min(Μ, N)). Em alguns exemplos min(Μ, N) pode ser igual a min(P, Q) . A primeira técnica exemplificativa inclui usar o número subamostrado de amostras vizinhas para calcular o valor de DC ao invés do número nativo de amostras vizinhas. Conforme usado no presente documento para esse exemplo bem como outros exemplos, o número nativo de amostras vizinhas se refere ao número de amostras vizinhas antes de qualquer amostragem (por exemplo, infraamostragem ou supra-amostragem) ser realizada nas mesmas. Compreende-se que atribuir um valor a uma amostra vizinha indisponível não constitui um processo de amostragem. Em alguns exemplos, o processo de subamostragem pode ser um processo de amostragem de eliminação ou um processo de amostragem interpolado. Em alguns exemplos, uma técnica de
Petição 870190063547, de 08/07/2019, pág. 52/121
45/82 infra-amostrar as amostras vizinhas no lado mais longo para igualar o número de amostras vizinhas no limiar mais curto pode apenas ser invocado quando min(Μ, N) for uma potência de 2. Em outros exemplos, uma técnica de infra-amostrar as amostras vizinhas no lado mais longo para igualar o número de amostras vizinhas no limiar mais curto pode apenas ser invocado quando min(P, Q) for uma potência de 2.
[0093] A Figura 7 mostra uma técnica exemplificativa de subamostrar amostras vizinhas no limiar do lado mais longo usando-se uma técnica de cálculo de valor de DC isenta de divisão descrita no presente documento. No exemplo da Figura 7, as amostras negras são envolvidas para calcular o valor de DC; e, conforme mostrado, as amostras vizinhas no lado mais longo são subamostradas de 8 amostras vizinhas para 4 amostras vizinhas. Descrita adicionalmente, a Figura 7 ,mostra um exemplo da primeira técnica exemplificativa, em que P é igual a 8 e Q é igual a 4 em um bloco PxQ. No exemplo da Figura 7, as amostras vizinhas no lado mais longo do bloco PxQ são mostradas como sendo subamostradas de acordo com um processo de amostragem de eliminação antes de calcular o valor de DC, significando que o número subamostrado de amostras vizinhas é usado no cálculo do valor de DC ao invés do número nativo de amostras vizinhas. No exemplo de bloco PxQ da Figura 7, M é igual a 8 e N é igual a 4, e M é retratado como sendo subamostrado de modo que o número de amostras vizinhas acima seja igual ao número de amostras no limiar mais curto, que é 4 nesse exemplo. Descrito adicionalmente, o número subamostrado de amostras vizinhas inclui 8 amostras vizinhas (as 4 amostras vizinhas à
Petição 870190063547, de 08/07/2019, pág. 53/121
46/82 esquerda nativas e as amostras vizinhas acima subamostradas) , e o número nativo de amostras vizinhas inclui 12 amostras vizinhas (8 amostras vizinhas acima nativas e 4 amostras vizinhas à esquerda nativas).
[0094] De acordo com um exemplo diferente do exemplo retratado na Figura 7, o codificador de video 22 e/ou o decodificador de video 30 pode supra-amostrar amostras vizinhas localizadas tanto no lado mais longo quanto no lado mais curto do bloco PxQ. Em alguns exemplos, a razão de subamostragem no lado mais longo pode ser diferente da razão de subamostragem no lado mais curto. Em alguns exemplos, o número total de amostras vizinhas nos lados mais curto e mais longo após a infra-amostragem pode precisar ser igual a uma potência de 2, que pode ser descrita como 2k em que k é um número inteiro. Em alguns exemplos, o valor de k pode ser dependendo do tamanho de bloco de PxQ. Por exemplo, o valor de k pode ser dependente dos valores de P e/ou Q. Por exemplo, o valor de k pode ser igual ao valor absoluto de (P-Q). Em alguns exemplos, a técnica de subamostragem das amostras vizinhas no limiar mais curto e/ou no limiar mais longo pode apenas ser invocada quando min(Μ, N) for uma potência de 2. Em outros exemplos, a técnica de subamostragem das amostras vizinhas no limiar mais curto e/ou no limiar mais longo pode apenas ser invocada quando min(P, Q) for uma potência de 2.
[0095] Em uma segunda técnica exemplificativa desta revelação, quando se usa a equação (2) para calcular o valor de DC, o codificador de video 22 e/ou o decodificador de video 30 pode supra-amostrar as amostras vizinhas no limiar do lado mais curto (o que pode ser
Petição 870190063547, de 08/07/2019, pág. 54/121
47/82 referido como o limiar curto ou o limiar mais curto) de um bloco não quadrado (por exemplo, um bloco PxQ, em que P não é igual a Q) de modo que o número de amostras vizinhas no limiar supra-amostrado seja igual ao número de amostras vizinhas no limiar mais longo (isto é, max(Μ, N) ) . Em alguns exemplos max (Μ, N) pode ser igual a max(P, Q) . A segunda técnica exemplificativa inclui usar o número supraamostrado de amostras vizinhas para calcular o valor de DC ao invés do número nativo de amostras vizinhas. Em alguns exemplos, o processo de supra-amostragem pode ser um processo de amostragem de duplicador ou um processo de amostragem interpolado. Em alguns exemplos, a técnica de supra-amostragem das amostras vizinhas no lado mais curto para igualar o número de amostras vizinhas no limiar mais longo pode apenas ser invocada quando max (Μ, N) for uma potência de 2. Em outros exemplos, a técnica de supraamostragem das amostras vizinhas no lado mais curto para igualar o número de amostras vizinhas no limiar mais longo pode apenas ser invocada quando max(P, Q) for uma potência de 2 .
[0096] Em outros exemplos, o codificador de video 22 e/ou decodificador de video 30 pode supra-amostrar amostras vizinhas localizadas tanto no lado mais longo quanto no lado mais curto do bloco PxQ. Em alguns exemplos, a razão de supra-amostragem no lado mais longo pode ser diferente da razão de subamostragem no lado mais curto. Em alguns exemplos, o número total de amostras vizinhas nos lados mais curto e mais longo após a supra-amostragem pode precisar ser igual a uma potência de 2, que pode ser descrita como 2k em que k é um número inteiro. Em alguns
Petição 870190063547, de 08/07/2019, pág. 55/121
48/82 exemplos, o valor de k pode ser dependendo do tamanho de bloco de PxQ. Por exemplo, o valor de k pode ser dependente dos valores de P e/ou Q. Por exemplo, o valor de k pode ser igual ao valor absoluto de (P-Q). Em alguns exemplos, a técnica de supra-amostragem das amostras vizinhas no limiar mais curto e/ou no limiar mais longo pode apenas ser invocada quando max(Μ, N) for uma potência de 2. Em outros exemplos, a técnica de supra-amostragem das amostras vizinhas no limiar mais curto e/ou no limiar mais longo pode apenas ser invocada quando max(P, Q) for uma potência de 2 .
[0097] Em uma terceira técnica exemplificativa desta revelação, quando se usa a equação (2) para calcular o valor de DC, o codificador de video 22 e/ou decodificador de vídeo 30 pode supra-amostrar as amostras vizinhas no limiar do lado mais curto (que pode ser referido como o limiar curto ou o limiar mais curto) de um bloco não quadrado (por exemplo, um bloco PxQ, em que P não é igual a Q) e infra-amostrar as amostras vizinhas no limiar do lado mais longo (que pode ser referido como o limiar longo ou o limiar mais longo) de modo que o número de amostras vizinhas no limiar supra-amostrado mais curto seja igual ao número de amostras vizinhas no limiar mais longo subamostrado. Em alguns exemplos, o processo de supraamostragem pode ser um processo de amostragem de duplicador ou um processo de amostragem interpolado. Em alguns exemplos, o processo de subamostragem pode ser um processo de amostragem de eliminação ou um processo de amostragem interpolado. Em alguns exemplos, o número total de amostras vizinhas após subamostragem e supra-amostragem pode ser
Petição 870190063547, de 08/07/2019, pág. 56/121
49/82 necessário para uma potência de 2, o que pode ser descrito como 2k em que k é um número inteiro. Em alguns exemplos, o valor de k pode ser dependendo do tamanho de bloco de PxQ. Por exemplo, o valor de k pode ser dependente dos valores de P e/ou Q. Por exemplo, o valor de k pode ser igual ao valor absoluto de (P-Q).
[0098] Em uma quarta técnica exemplificativa desta revelação, o codificador de video 22 e/ou o decodificador de video 30 pode aplicar diferentes formas de suba mostrar e/ou supra-amostrar amostras de vizinhas. Em um exemplo, o processo (ou processos) de subamostragem e/ou supra-amostragem pode ser dependente no tamanho de bloco (por exemplo, os valores de P e/ou Q de um bloco que tem o tamanho de PxQ) . Em alguns exemplos, o tamanho de bloco pode corresponder a um tamanho de unidade de previsão devido ao fato de que o bloco é uma unidade de previsão. Em outro exemplo, o processo (ou processos) de subamostragem e/ou supra-amostragem pode ser sinalizado pelo codificador de video 22 em pelo menos um dentre: um conjunto de parâmetros de sequência, um conjunto de parâmetros de gravura, um conjunto de parâmetros de video, um conjunto de parâmetros de adaptação, um cabeçalho de gravura ou um cabeçalho de fatia.
[0099] Em uma quinta técnica exemplificativa desta revelação, o codificador de video 22 e/ou o decodificador de video 30 pode infra-amostrar ambos os lados (por exemplo, o lado mais curto e o lado mais longo) de modo que o número de amostras vizinhas em ambos os limiares infra-amostrados seja igual ao maior valor que é uma potência de 2, em que o maior valor é um múltiplo dos
Petição 870190063547, de 08/07/2019, pág. 57/121
50/82 dois lados. Nenhuma mudança em um lado pode ser considerada como uma infra-amostragem especifica em que o fator de infra-amostragem é 1. Em outro exemplo, ambos os lados (por exemplo, o lado mais curto e o lado mais longo) podem ser infra-amostrados de modo que o número de amostras vizinhas em ambos os limiares infra-amostrados seja igual a um maior múltiplo comum entre os dois lados. Em alguns exemplos, o maior múltiplo comum entre os dois lados pode precisar ser uma potência de 2. Por exemplo, em um exemplo em que um bloco tem o tamanho de 8x4, o maior múltiplo comum entre os dois lados é 4, e 4 também é uma potência de 2. Nesse exemplo, o fator de infra-amostragem para o lado mais curto de 4 pode ser igual a 1 e o fator de infra-amostragem para o lado mais longo de 8 pode ser igual a 2.
[0100] Em uma sexta técnica exemplificativa desta revelação, o codificador de video 22 e/ou o decodificador de vídeo 30 pode supra-amostrar ambos os lados (por exemplo, o lado mais curto e o lado mais longo) de modo que o número de amostras vizinhas em ambos os limiares supra-amostrados seja igual ao menor valor que é uma potência de 2, em que o menor valor é um múltiplo dos dois lados. Nenhuma mudança em um lado pode ser considerada como uma supra-amostragem específica em que o fator de supra-amostragem é 1. Em outro exemplo, ambos os lados (por exemplo, o lado mais curto e o lado mais longo) podem ser supra-amostrados de modo que o número de amostras vizinhas em ambos os limiares supra-amostrados seja igual a um menor múltiplo comum entre os dois lados. Em alguns exemplos, o menor múltiplo comum entre os dois lados pode precisar ser uma potência de 2. Por exemplo, em um exemplo em que um
Petição 870190063547, de 08/07/2019, pág. 58/121
51/82 bloco tem o tamanho de 8x4, o menor múltiplo comum entre os dois lados é 8, e 8 também é uma potência de 2. Nesse exemplo, o fator de supra-amostragem para o lado mais longo de 8 pode ser igual a 1 e o fator de supra-amostragem para o lado mais curto de 4 pode ser igual a 2.
[0101] Em uma sétima técnica exemplificativa desta revelação, ao invés de usar a equação (2) para calcular o valor de DC, o codificador de video 22 e/ou o decodificador de vídeo 30 pode calcular o valor de DC como o valor médio do lado mais longo das amostras vizinhas conforme a seguir de acordo com a equação (3) ou a equação (4) :
rizsΛ .if Μ > N
Equação (3): valor de DO3 ou í(CX£ô 1) » Íf M > iV Equação (4): valor de DC M í · v '~í “ 3 · ·. ·.
\((Σ ,-η h) + °Π 2) » ” · il Μ < N
ΓΨ C?
[0102] Em uma oitava técnica exemplificativa desta revelação, ao invés de usar a equação (2) para calcular o valor de DC, o codificador de vídeo 22 e/ou o decodificador de vídeo 30 pode calcular o valor de DC como o valor médio dos dois valores médios das duas amostras vizinhas laterais conforme a seguir de acordo com a equação (5) ou a equação (6):
Petição 870190063547, de 08/07/2019, pág. 59/121
52/82
Equação (5): valor de | ou
Equação (6J:
valor de DC=((«fl + Σ* » m) + «í2 * » «) + **** X.««v ' · ., .
[0103] Nas equações (3), (4), (5) e (6), as variáveis Μ, N, Ak, e Lk podem ser definidas da mesma forma que para a equação (2) acima. A variável offl pode ser um número inteiro, como 0 ou (l<<(m-l)). A variável off2 pode ser um número inteiro, como 0 ou (l<<(n-l)).
[0104] Em uma nona técnica exemplificativa desta revelação, ao invés de usar a equação (2) para calcular o valor de DC, o codificador de video 22 e/ou o decodificador de video 30 pode calcular o valor de DC conforme a seguir de acordo com a equação (7) ou a equação (8) :
í™(X&lÀk + S X Lk'),if M > IV, em queS M/iV Equação (7): Valor de DC= < 5
I™(S X Σ£α4* + Σ/SI*),íf M < /V.em queS = N/M \tj·» ou
Equação (8);
{((Σ^Α) + ((Σ X1 M « O «)) + +
Vater de DC- <
( í(( Σ Γσ1 A) « (n - «ri) * (Σ Γ* 4) * off 2) » (« + n. ífM<N [0105] Nas equações (7) e (8), as variáveis M, N, Ak, e Lk podem ser definidas da mesma forma que para a equação (2) acima. A variável offl pode ser um número inteiro, como 0 ou (l<<m) . A variável off2 pode ser um número inteiro, como 0 ou (l<<m).
[0106] Em uma décima técnica exemplificativa
Petição 870190063547, de 08/07/2019, pág. 60/121
53/82 desta revelação, quando se usa a equação (2) para calcular o valor de DC, o codificador de video 22 e/ou o decodificador de video 30 pode estender as amostras vizinhas no limiar do lado mais curto do bloco atual (por exemplo, o bloco não quadrado que tem um tamanho de PxQ). A Figura 8 ilustra um exemplo de acordo com a décima técnica exemplificativa. Por exemplo, a Figura 8 mostra um exemplo de estender as amostras vizinhas no limiar do lado mais curto usando-se uma técnica de cálculo de valor de DC isenta de divisão descrita no presente documento. No exemplo da Figura 8, as amostras negras estão envolvidas para calcular o valor de DC; e, conforme mostrado, o limiar vizinho de lado mais curto é estendido de modo exemplificativo. Em alguns exemplos, pode ser necessário que o número total de amostras vizinhas nos dois lados após um lado sendo estendido ser igual a uma potência de 2, que pode ser descrita como 2k em que k é um número inteiro. Em alguns exemplos, o valor de k pode ser dependendo do tamanho de bloco de PxQ. Por exemplo, o valor de k pode ser dependente dos valores de P e/ou Q. Por exemplo, o valor de k pode ser igual ao valor absoluto de (P-Q).
[0107] Em uma décima-primeira técnica exemplificativa desta revelação, se uma ou mais amostras vizinhas estendidas nas técnicas exemplificativas que envolvem amostras vizinhas estendidas não estiverem disponiveis, o codificador de video 22 e/ou o decodificador de video 30 pode preencher a uma ou mais amostras vizinhas estendidas indisponíveis. Em alguns exemplos, a uma ou mais amostras vizinhas estendidas indisponíveis podem ser preenchidas (i) pelas amostras vizinhas disponíveis, (ii)
Petição 870190063547, de 08/07/2019, pág. 61/121
54/82 espelhando-se a uma ou mais amostras vizinhas estendidas indisponíveis a partir das amostras vizinhas disponíveis.
[0108] Em uma décima-segunda técnica exemplificativa desta revelação, o codificador de video 22 e/ou o decodificador de video 30 pode aplicar uma tabela de consulta com entradas com base nos tamanhos de bloco ou
transformada suportados por um codec quando se usa a
equação (2) para calcular o valor de DC para evitar a
operação de divisão. [010 9] Em uma décima-terceira técnica
exemplificativa desta revelação, se o lado esquerdo de um bloco atual (por exemplo, o bloco não quadrado que tem um tamanho de PxQ) for o lado curto e uma ou mais das amostras vizinhas à esquerda estiverem indisponíveis, o codificador de video 22 e/ou o decodificador de video 30 pode usar uma ou mais amostras localizadas duas colunas à esquerda do bloco atual para trocar/substituir a uma ou mais amostras vizinhas à esquerda indisponíveis. Em alguns exemplos, a uma ou mais amostras vizinhas à esquerda que estão indisponíveis são amostras vizinhas à esquerda inferiores. De modo semelhante, se o lado superior do bloco atual for o lado curto e uma ou mais das amostras superiores estiverem indisponíveis, o codificador de video 22 e/ou o decodificador de video 30 pode usar uma ou mais amostras localizadas duas fileiras acima do bloco atual para trocar/substituir a uma ou mais amostras vizinhas acima indisponíveis. Em alguns exemplos, a uma ou mais amostras vizinhas acima que estão indisponíveis são amostras vizinhas acima à direita. Em alguns exemplos, pode ser necessário que o número total de amostras vizinhas nos
Petição 870190063547, de 08/07/2019, pág. 62/121
55/82 lados esquerdo e superior após troca/substituição de uma ou mais amostras vizinhas indisponíveis seja igual a uma potência de 2, o que pode ser descrito como 2k em que k é um número inteiro. Em alguns exemplos, o valor de k pode ser dependendo do tamanho de bloco de PxQ. Por exemplo, o valor de k pode ser dependente dos valores de P e/ou Q. Por exemplo, o valor de k pode ser igual ao valor absoluto de (P-Q) .
[0110] Em uma décima-quarta técnica exemplificativa desta revelação, o codificador de video 22 e/ou o decodif icador de video 30 pode usar uma média ponderada ao invés de uma média simples em que a soma dos pesos pode ser igual a uma potência de 2, que pode ser descrita como 2k em que k é um número inteiro. Em alguns exemplos, os pesos podem se basear em métricas que indicam a qualidade de amostras vizinhas. Por exemplo, um ou mais pesos podem se basear em uma ou mais das seguintes métricas: um valor de QP, um tamanho de transformada, um modo de previsão, ou o número total de bits gastos nos coeficientes residuais do bloco vizinho Em alguns exemplos, os valores maiores podem ser colocados em amostras que têm métricas de melhor qualidade. De acordo com a décima-quarta técnica exemplificativa, ao invés de usar a equação (2) para calcular o valor de DC, o valor de DC pode ser calculado conforme a seguir de acordo com equação (9):
valoí de DC
offset ™ 2 a 1
Petição 870190063547, de 08/07/2019, pág. 63/121
56/82
Λί-l A?-I
m-ΰ n=0
Em alguns exemplos, um conjunto predefinido de fatores de ponderação pode ser armazenado e o codificador de video 22 pode ser configurado para sinalizar o indice de conjunto por meio de SPS, PPS, VPS, ou do cabeçalho de fatia.
[0111] Em uma décima-quinta técnica exemplificativa desta revelação, alguns exemplos são revelados em relação a como evitar uma operação de divisão se a largura ou largura de bloco atual não for igual a uma potência de 2. Esses exemplos não se limitam a um intrafiltro forte; ao invés disso, os exemplos descritos no presente documento podem ser aplicados em qualquer outro caso em que um problema semelhante surge. Quando a divisão por uma distância (largura ou altura) for necessária, e a distância não for uma potência de 2, os seguintes três aspectos diferentes podem ser aplicados separadamente ou em qualquer combinação.
[0112] Em um primeiro aspecto da décima-quinta técnica exemplificativa desta revelação, o codificador de video 22 e/ou o decodificador de video 30 pode arredondar uma distância inicial a ser usada para divisão para a distância mais próxima que é uma potência de 2. Em alguns exemplos, a distância inicial pode ser referida como a distância real devido ao fato de que a distância inicial pode se referir à distância antes de qualquer arredondamento ocorrer. A distância arredondada pode ser menor ou maior do que a distância inicial. Quando as amostras vizinhas forem calculadas até a nova distância
Petição 870190063547, de 08/07/2019, pág. 64/121
57/82 arredondada, a operação de divisão pode ser trocada por uma operação de deslocamento visto que a nova distância arredondada é uma potência de 2. Em alguns exemplos, se a nova distância arredondada for menor do que a distância inicial, as amostras vizinhas localizadas na posição que excede a nova distância arredondada podem ser atribuídas um valor padrão como no exemplo superior mostrado na Figura 9. No exemplo superior da Figura 9, a distância inicial é igual a 6 e a nova distância arredondada é 4. Nesse exemplo, as amostras vizinhas localizadas na posição que excede a nova distância arredondada são retratadas como sendo atribuídas um valor padrão. Em alguns exemplos, o valor padrão atribuído pode incluir o valor da última amostra calculada (por exemplo, a última amostra calculada pode ser repetida), ou o valor médio das amostras calculadas pode ser atribuído. Em outros exemplos, se nova distância arredondada for maior do que a distância inicial, o número de amostras calculadas vizinhas pode ser maior do que é necessário, e algumas amostras vizinhas podem ser ignoradas, como no exemplo inferior mostrado na Figura 9. No exemplo inferior da Figura 9, a distância inicial é igual a 6 e a nova distância arredondada é 8. Nesse exemplo, as amostras vizinhas que excedem a distância inicial de 6 são retratadas como sendo ignoradas.
[0113] Em um segundo aspecto da décima-quinta técnica exemplificativa desta revelação, o codificador de video 22 e/ou o decodificador de video 30 pode não aplicar uma técnica de codificação (por exemplo, um filtro de intraprevisão forte ou outra ferramenta) para uma direção (por exemplo, horizontal ou vertical) de um bloco atual se
Petição 870190063547, de 08/07/2019, pág. 65/121
58/82 a operação de divisão for necessária para aquela direção. De outro modo descrito, uma técnica de codificação (por exemplo, um filtro de intraprevisão forte ou outra ferramenta) pode ser aplicada para um bloco atual apenas se divisão puder ser representada como uma operação de deslocamento.
[0114] Em um terceiro aspecto da décima-quinta técnica exemplificativa desta revelação, o codificador de video 22 e/ou o decodificador de video 30 pode usar um cálculo recursive. Nesse aspecto, a distância inicial pode ser arredondada para a menor distância mais próxima que é uma potência de 2. Por exemplo, se a distância inicial for 6, o valor de 6 seria arredondada para 4 ao invés de 8 visto que o valor de 4 é a menor distância mais próxima que é uma potência de 2. As amostras vizinhas podem ser calculadas até a nova distância arredondada. Quando o processo se repetir, a última amostra vizinha calculada pode ser usada como a primeira amostra vizinha, e a distância inicial pode ser reduzida pela menor distância arredondada. O processo pode ser terminado quando a distância reduzida for igual a 1. As técnicas desta revelação também contemplam qualquer combinação de particularidades ou técnicas apresentadas nos diferentes exemplos discutidos acima.
[0115] A Figura 10 é um diagrama de blocos que ilustra um codificador de video exemplificativo 22 que pode implantar as técnicas desta revelação. A Figura 10 é fornecida para propósitos explicativos e não deveria ser considerada como limitante das técnicas conforme amplamente exemplificado e descrito nesta revelação. As técnicas desta
Petição 870190063547, de 08/07/2019, pág. 66/121
59/82 revelação podem ser aplicáveis a vários padrões ou métodos de codificação.
[0116] No exemplo da Figura 10, o codificador de video 22 inclui uma unidade de processamento de previsão 100, uma 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 armazenamento temporário de gravura decodificada 116 e uma unidade de criptografia por entropia 118. A unidade de
processamento de previsão 100 inclui uma unidade de
processamento de interprevisão 120 e uma unidade de
processamento de intraprevisão 126. A unidade de
processamento de interprevisão 120 pode incluir uma unidade de estimativa de movimento e uma unidade de compensação de movimento (não mostrada).
[0117] A memória de dados de video 101 pode ser configurada para armazenar dados de video a serem codificados pelos componentes do codificador de video 22. Os dados de vídeo armazenados na memória de dados de vídeo 101 podem ser obtidos, por exemplo, a partir da fonte de vídeo 18. O armazenamento temporário de gravura decodificada 116 pode ser uma memória de gravura de referência que armazena dados de vídeo de referência para uso em dados de vídeo de codificação pelo codificador de vídeo 22, por exemplo, em modos de intra ou intercodificação. A memória de dados de vídeo 101 e o armazenamento temporário de gravura decodificada 116 podem
Petição 870190063547, de 08/07/2019, pág. 67/121
60/82 ser formados por qualquer um dentre uma variedade de dispositivos de memória, tal como memória dinâmica de acesso aleatório (DRAM), que inclui DRAM sincrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM) ou outros tipos de dispositivos de memória. A memória de dados de video 101 e o armazenamento temporário de gravura decodificada 116 podem ser fornecidos 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 22, ou fora do chip em relação àqueles componentes. A memória de dados de vídeo 101 pode ser a mesma ou parte de mídias de armazenamento 20 da Figura 1.
[0118] O codificador de vídeo 22 recebe dados de vídeo. O codificador de vídeo 22 pode codificar cada CTU em uma fatia de uma gravura dos dados de vídeo. Cada uma das CTUs pode estar associada a CTBs de luma de tamanho igual e CTBs correspondentes da gravura. Como parte da codificação de uma CTU, a unidade de processamento de previsão 100 pode realizar o particionamento para dividir os CTBs da CTU em blocos progressivamente menores. Os menores blocos podem representar blocos de codificação de CUs. Por exemplo, a unidade de processamento de previsão 100 pode particionar um CTB associado a uma CTU de acordo com uma estrutura de árvore. De acordo com uma ou mais técnicas desta revelação, para cada respectivo nó não folha da estrutura de árvore em cada nível de profundidade da estrutura de árvore, existe uma pluralidade de padrões de divisão permitidos para o respectivo nó não folha e o bloco de vídeo correspondente para o respectivo nó não folha é
Petição 870190063547, de 08/07/2019, pág. 68/121
61/82 particionado em blocos de vídeo correspondentes aos nós filho do respectivo nó não folha de acordo com um dentre a pluralidade de padrões de divisão permissíveis. Em um exemplo, a unidade de processamento de previsão 100 ou outra unidade de processamento de codificador de video 22 pode ser configurada para realizar qualquer combinação das técnicas descritas no presente documento.
[0119] O codificador de video 22 pode codificar as CUs de uma CTU para gerar representações codificadas das CUs (isto é, CUs codificadas) . Como parte da codificação de uma CU, a unidade de processamento de previsão 100 pode particionar os blocos de codificação associados à CU entre uma ou mais PUs da CU. De acordo com as técnicas desta revelação, uma CU pode apenas incluir uma única PU. Isto é, em alguns exemplos desta revelação, uma CU não é dividida em blocos de previsão separados, mas ao invés disso, um processo de previsão é realizado na CU inteira. Dessa forma, cada CU pode estar associada a um bloco de previsão de luma e os blocos de previsão de croma correspondentes. O codificador de video 22 e o decodificador de video 30 podem suportar as CUs que têm vários tamanhos. Conforme indicado acima, o tamanho de uma CU pode se referir ao tamanho do bloco de codificação de luma da CU também do tamanho de um bloco de luma de previsão. Como discutido acima, o codificador de video 22 e o decodificador de vídeo 30 podem suportar tamanhos de CU definidos por qualquer combinação das técnicas de particionamento exemplificativas descritas no presente documento.
[0120] A unidade de processamento de
Petição 870190063547, de 08/07/2019, pág. 69/121
62/82 interprevisão 120 pode gerar dados preditivos para uma PU através da realização de interprevisão em cada PU de uma CU. Como explicado no presente documento, em alguns exemplos desta revelação, uma CU pode conter apenas uma única PU, isto é, a CU e PU podem ser sinônimos. 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 interprevisão 120 pode realizar diferentes operações para uma PU ou uma CU que depende de 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. Por conseguinte, se a PU estiver em uma fatia I, a unidade de processamento de interprevisão 120 não realiza interprevisão na PU. Desse modo, para os blocos codificados no modo I, o bloco previsto é formado com o uso de previsão espacial a partir de blocos vizinhos anteriormente codificados dentro do mesmo quadro. Se uma PU estiver em uma fatia P, a unidade de processamento de interprevisão 120 pode usar interprevisão unidirecional para gerar um bloco preditivo da PU. Se uma PU estiver em uma fatia B, unidade de processamento de interprevisão 120 pode usar interprevisão unidirecional ou bidirecional para gerar um bloco preditivo da PU.
[0121] A unidade de processamento de intraprevisão 126 pode gerar dados preditivos para uma PU realizando-se a intraprevisão na PU. Os dados de previsão para a PU podem incluir blocos de previsão da PU e vários elementos de sintaxe. A unidade de processamento de intraprevisão 126 pode realizar a intraprevisão em PUs nas fatias I, fatias P e fatias B.
Petição 870190063547, de 08/07/2019, pág. 70/121
63/82 [0122] Para realizar a intraprevisão em uma PU, a unidade de processamento de intraprevisão 126 pode usar múltiplos modos de intraprevisão para gerar múltiplos conjuntos de dados preditivos para a PU. A unidade de processamento de intraprevisã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 ou à esquerda da PU, supondo-se uma ordem de codificação do topo para o fundo e da esquerda para a direita para PUs, CUs e CTUs. A unidade de processamento de intraprevisão 126 pode usar diversos números de modos de intraprevisão, por exemplo, 33 modos de intraprevisão direcional. Em alguns exemplos, o número de modos de intraprevisão pode depender do tamanho da região associada à PU.
[0123] A unidade de processamento de previsão 100 pode selecionar os dados preditivos para as PUs de uma CU de entre os dados preditivos gerados pela unidade de processamento de interprevisão 120 para as PUs ou os dados preditivos gerados pela unidade de processamento de intraprevisão 126 para as PUs. Em alguns exemplos, a unidade de processamento de previsão 100 seleciona os dados preditivos para as PUs da CU com base nas métricas de taxa/distorção dos conjuntos de dados preditivos. Os blocos de previsão dos dados de previsão selecionados podem ser referidos no presente documento como blocos de previsão selecionados.
[0124] A unidade de geração residual 102 pode gerar, com base nos blocos de codificação (por exemplo, blocos de codificação de luma, Cb e Cr) para uma CU e nos
Petição 870190063547, de 08/07/2019, pág. 71/121
64/82 blocos de previsão selecionados (por exemplo, blocos de luma, Cb e Cr) para as PUs da CU, blocos residuais (por exemplo, blocos residuais de luma, Cb e Cr) para a 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 de previsão selecionado correspondente de uma PU da CU.
[0125] A unidade de processamento de transformada 104 pode realizar o particionamento de árvore quadrática para particionar os blocos residuais associados a uma CU em blocos de transformada associados às TUs da CU. Portanto, uma TU pode ser associada a um bloco de transformada de luma e dois blocos de transformada de croma. Os tamanhos e posições dos blocos de transformada luma e croma de TUs de uma CU podem, ou não, ter por base os tamanhos e posições de blocos de previsão das PUs da CU. Uma estrutura de árvore quadrática conhecida como uma árvore quadrática 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. Em outros exemplos, a unidade de processamento de transformada 104 pode ser configurada para particionar as TUs de acordo com as técnicas de particionamento descritas no presente documento. Por exemplo, o codificador de video 22 pode não dividir adicionalmente CUs em TUs usando-se uma estrutura de RQT. Como tal, em um exemplo, uma CU inclui uma única TU.
[0126] A unidade de processamento de
Petição 870190063547, de 08/07/2019, pág. 72/121
65/82 transformada 104 pode gerar blocos de coeficiente de transformada para cada TU de uma CU através da aplicação de uma ou mais transformadas aos 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, uma unidade de processamento de transformada 104 pode aplicar uma transformada discreta de cosseno (DCT), uma transformada direcional ou uma transformada conceitualmente semelhante 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.
[0127] 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 bit associada a alguns ou a todos os coeficientes de transformada. Por exemplo, um coeficiente de transformada de n-bits pode ser arredondado para baixo para um coeficiente de transformada de m-bits durante a quantização, em que n é maior que m. A unidade de quantização 106 pode quantizar um bloco de coeficientes associado a uma TU de uma CU com base em um valor de parâmetro de quantização (QP) associado à CU. O codificador de video 22 pode ajustar o grau de quantização aplicado aos blocos de coeficiente associados a uma CU através do ajuste do valor de QP associado à CU. A quantização pode introduzir perda de informações. Portanto, os coeficientes de transformada quantizados podem ter menor precisão do que
Petição 870190063547, de 08/07/2019, pág. 73/121
66/82 os originais .
[0128] A unidade de quantizaçã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 a partir do bloco de coeficiente. A unidade de reconstrução 112 pode adicionar o bloco residual reconstruído às amostras correspondentes a partir de um ou mais blocos de previsão gerados pela unidade de processamento de previsão 100 para produzir um bloco de transformada reconstruído associado a uma TU. Através da reconstrução dos blocos de transformada para cada TU de uma CU, desta forma, o codificador de video 22 pode reconstruir os blocos de codificação da CU.
[0129] 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 armazenamento temporário de gravura decodificada 116 pode armazenar os blocos de codificação reconstruídos após a unidade de filtro 114 realizar as uma ou mais operações de desblocagem nos blocos de codificação reconstruídos. A unidade de processamento de interprevisão 120 pode utilizar uma imagem de referência que contém os blocos de codificação reconstruídos para realizar a interprevisão em PUs de outras imagens. Além disso, a unidade de processamento de intraprevisão 126 pode usar blocos de codificação reconstruídos no armazenamento temporário de gravura decodificada 116 para realizar intraprevisão em outras PUs na mesma gravura que a CU.
[0130] A unidade de codificação por entropia
Petição 870190063547, de 08/07/2019, pág. 74/121
67/82
118 pode receber dados a partir de outros componentes funcionais do codificador de video 22. Por exemplo, a unidade de codificação por entropia 118 pode receber blocos de coeficiente a partir da unidade de quantização 106 e pode receber elementos de sintaxe a partir da unidade de processamento de previsã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 CABAC, operação de codificação de comprimento variável adaptativa ao contexto (CAVLC), uma operação de codificação de comprimento de variável para variável (V2V), uma operação de codificação aritmética binária adaptativa a contexto com base em sintaxe (SBAC), uma operação de codificação de Particionamento por Entropia com Intervalo de Probabilidade (PIPE), uma operação de codificação de Exponencial de Golomb ou um outro tipo de operação de codificação por entropia nos dados. O codificador de video 22 pode emitir um fluxo de bits que inclui dados codificados por entropia gerados pela unidade de codificação por entropia 118. Por exemplo, o fluxo de bits pode incluir dados que representam a estrutura de partição para uma CU de acordo com as técnicas desta revelação.
[0131] A Figura 11 é um diagrama de blocos que ilustra um decodificador de video 20 exemplificativo que é configurado para implantar as técnicas desta revelação. A Figura 11 é fornecida para propósitos explicativos e não é considerada como limitante das técnicas conforme amplamente exemplificado e descrito nesta revelação. Para propósitos
Petição 870190063547, de 08/07/2019, pág. 75/121
68/82 de explicação, esta revelação descreve o decodificador de vídeo 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.
[0132] No exemplo da Figura 11, o
decodificador de vídeo 30 inclui uma unidade de
decodificação por entropia 150, uma memória de dado s de
vídeo 151, uma unidade de processamento de previsã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 armazenamento temporário de gravura decodificada 162. A unidade de processamento de previsão 152 inclui uma unidade de compensação de movimento 164 e uma unidade de processamento de intraprevisão 166. Em outros exemplos, o decodificador de vídeo 30 pode incluir mais, menos ou diferentes componentes funcionais.
[0133] A memória de dados de vídeo 151 pode armazenar dados de vídeo codificados, tal como um fluxo de bits de vídeo codificado, a ser decodificado 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 da mídia legível por computador 16, por exemplo, a partir de uma fonte de vídeo local, tal como uma câmera, através de comunicação de rede sem fio ou com fio de dados de vídeo ou acessando-se mídias de armazenamento de dados físicos. A memória de dados de vídeo 151 pode formar um armazenamento temporário de imagem codificada (CPB) que armazena dados de vídeo codificados a partir de um fluxo de bits de vídeo codificado. O
Petição 870190063547, de 08/07/2019, pág. 76/121
69/82 armazenamento temporário de gravura decodificada 162 pode ser uma memória de gravura de referência que armazena dados de video de referência para uso na decodificação de dados de video pelo decodificador de video 30, por exemplo, em modos de intra ou intercodificação, ou para saida. A memória de dados de video 151 e o armazenamento temporário de gravura decodificada 162 podem ser formados por qualquer um dentre uma variedade de dispositivos de memória, tal como memória dinâmica de acesso aleatório (DRAM), que inclui DRAM sincrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM) ou outros tipos de dispositivos de memória. A memória de dados de video 151 e o armazenamento temporário de gravura decodificada 162 podem ser fornecidos pelo mesmo 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. A memória de dados de video 151 pode ser a mesma ou parte de midias de armazenamento 28 da Figura 1.
[0134] A memória de dados de video 151 recebe e armazena 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) a partir da memória de dados de video 151 e pode analisar as unidades de NAL para obter os elementos de sintaxe. A unidade de decodificação por entropia 150 pode decodificar por entropia os elementos de sintaxe codificados por entropia nas unidades de NAL. A unidade de processamento de previsão
Petição 870190063547, de 08/07/2019, pág. 77/121
70/82
152, a unidade de quantização inversa 154, a unidade de processamento de transformada inversa 156, a unidade de reconstrução 158 e a unidade de filtro podem gerar dados de video decodificados com base nos elementos de sintaxe extraídos do fluxo de bits. A unidade de decodificação por entropia 150 pode realizar um processo geralmente reciproco àquele da unidade de codificação por entropia 118.
[0135] De acordo com alguns exemplos desta revelação, unidade de decodificação por entropia 150, ou outra unidade de processamento do decodificador de video 30, pode determinar uma estrutura de árvore como parte da obtenção dos elementos de sintaxe a partir do fluxo de bits. A estrutura de árvore pode especificar como um bloco de video inicial, como um CTB, é particionado em blocos de video menores, como unidades de codificação. De acordo com uma ou mais técnicas desta revelação, para cada respectivo nó não folha da estrutura de árvore em cada nivel de profundidade da estrutura de árvore, existe uma pluralidade de tipos de partição permitidos para o respectivo nó não folha e o bloco de video correspondente para o respectivo nó não folha é particionado em blocos de video correspondentes aos nós filho do respectivo nó não folha de acordo com um dentre a pluralidade de padrões de divisão permissiveis.
[0136] Além de obter os elementos de sintaxe a partir do fluxo de bits, o decodificador de video 30 pode realizar uma operação de reconstrução em uma CU não particionada. Para realizar a operação de reconstrução em uma CU, o decodif icador de video 30 pode realizar uma operação de reconstrução em cada TU da CU. Através da
Petição 870190063547, de 08/07/2019, pág. 78/121
71/82 realização da operação de reconstrução para cada TU da CU, o decodificador de video 30 pode reconstruir os blocos residuais da CU. Como discutido acima, em um exemplo da revelação, uma CU inclui uma única TU.
[0137] Como parte de realização de uma operação de reconstrução em uma TU de uma CU, a unidade de quantização inversa 154 pode inverter e quantizar, isto é, desquantizar, os blocos de coeficiente associados à TU. Após a unidade de quantização inversa 154 quantizar inversamente um bloco de coeficiente, a unidade de processamento de transformada inversa 156 pode aplicar uma ou mais transformadas inversas ao bloco de coeficiente a fim de gerar um bloco residual associado à TU. Por exemplo, a unidade de processamento de transformada inversa 156 pode aplicar uma DCT inversa, uma transformada de número inteiro inversa, uma transformada de Karhunen-Loeve inversa (KLT), uma transformada rotacional inversa, uma transformada direcional inversa ou uma outra transformada inversa ao bloco de coeficiente.
[0138] Se uma CU ou PU for codificada com uso de intraprevisão, a unidade de processamento de intraprevisão 166 pode realizar a intraprevisão para gerar blocos preditivos da PU. A unidade de processamento de intraprevisão 166 pode usar um modo de intraprevisão para gerar os blocos preditivos da PU com base em blocos espacialmente vizinhos de amostras. A unidade de processamento de intraprevisão 166 pode determinar o modo de intraprevisão para a PU com base em um ou mais elementos de sintaxe obtidos a partir do fluxo de bits.
[0139] Se uma PU for codificada com uso de
Petição 870190063547, de 08/07/2019, pág. 79/121
72/82 interprevisão, a unidade de decodificação por entropia 150 pode determinar 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, um ou mais blocos de referência. A unidade de compensação de movimento 164 pode gerar, com base no um ou mais blocos de referência, os blocos de previsão (por exemplo, blocos de luma, Cb e Cr de previsão) para a PU. Como discutido acima, uma CU pode incluir apenas uma única PU. Isto é, uma CU pode não ser dividida em múltiplas PUs.
[0140] A unidade de reconstrução 158 pode usar os blocos de transformada (por exemplo, blocos de transformada luma, Cb e Cr) para TUs de uma CU e os blocos preditivos (por exemplo, blocos de luma, Cb e Cr) das PUs da CU, isto é, dados de intraprevisão ou dados de interprevisão, caso seja aplicável, para reconstruir os blocos de codificação (por exemplo, blocos de codificação luma, Cb e Cr) para a CU. Por exemplo, a unidade de reconstrução 158 pode adicionar amostras dos blocos de transformada (por exemplo, blocos de transformada de luma, Cb e Cr) às amostras correspondentes do blocos de previsão (por exemplo, blocos preditivos de luma, Cb e Cr) para reconstruir os blocos de codificação (por exemplo, blocos de codificação de luma, Cb e Cr) da CU.
[0141] A unidade de filtro 160 pode realizar uma operação de desblocagem para reduzir os artefatos de blocagem associados aos blocos de codificação da CU. O decodificador de video 30 pode armazenar os blocos de codificação da CU em armazenamento temporário de gravura decodificada 162. O armazenamento temporário de gravura
Petição 870190063547, de 08/07/2019, pág. 80/121
73/82 decodificada 162 pode fornecer gravuras de referência para compensação, intraprevisão e apresentação de movimento subsequente em um dispositivo de exibição, tal como o dispositivo de exibição 32 da Figura 1. Por exemplo, o decodif icador de video 30 pode realizar, com base nos blocos no armazenamento temporário de gravura decodificada 162, operações de intraprevisão ou interprevisão para PUs de outras CUs.
[0142] A Figura 12 é um fluxograma que ilustra uma operação exemplificativa de um decodificador de video para decodificar dados de vídeo de acordo com uma técnica desta revelação. O decodificador de vídeo descrito em relação à Figura 12 pode, por exemplo, ser um decodificador de vídeo, como o decodif icador de vídeo 30, para emitir vídeo decodificado exibível ou pode ser um decodificador de vídeo implantado em um codificador de vídeo, como o loop de decodificação do codificador de vídeo 22, cuja porção inclui a unidade de processamento de previsão 100 e somador 112 .
[0143] De acordo com as técnicas da Figura 12, o decodificador de vídeo determina que um bloco atual de uma gravura atual dos dados de vídeo tem um tamanho de PxQ, em que P é um primeiro valor correspondente a uma largura do bloco atual e Q é um segundo valor correspondente a uma altura do bloco atual (202). P não é igual a Q, de modo que o bloco atual inclua um lado curto e um lado longo, e o primeiro valor adicionado ao segundo valor não iguala um valor que é uma potência de 2. O decodificador de vídeo decodifica o bloco atual de dados de vídeo usando-se previsão de modo intra-DC (204) . Para decodificar o bloco
Petição 870190063547, de 08/07/2019, pág. 81/121
74/82 atual de dados de vídeo usando-se previsão de modo intraDC, o decodificador de vídeo realiza uma operação de deslocamento para calcular um valor de DC (20 6) e gera um bloco de previsão para o bloco atual de dados de vídeo usando-se o valor de DC calculado (208) .
[0144] Em um exemplo, para decodificar o bloco atual de dados de vídeo usando-se a previsão de modo intraDC, o decodificador de vídeo determina um primeiro valor médio de amostra para as amostras vizinhas ao lado curto usando-se a operação de deslocamento, determina um segundo valor médio para as amostras vizinhas ao lado longo usandose a operação de deslocamento, e calcula o valor de DC determinando-se um valor médio dentre o primeiro valor médio e o segundo valor médio usando-se a operação de deslocamento. Para determinar o valor médio dentre o primeiro valor médio e o segundo valor médio, o decodificador de vídeo pode determinar um valor médio ponderado dentre o primeiro valor médio e o segundo valor médio. Em outro exemplo, para decodificar o bloco atual de dados de vídeo usando-se a previsão de modo intra-DC, o decodificador de vídeo infra-amostra o número de amostras vizinhas ao lado longo para determinar várias amostras infra-amostradas vizinhas ao lado longo de modo que o número de amostras infra-amostradas vizinhas ao lado longo e o número de amostras vizinhas ao lado curto combinados sejam iguais a um valor que é uma potência de 2. Em outro exemplo, para decodificar o bloco atual de dados de vídeo usando-se a previsão de modo intra-DC, o decodificador de vídeo supra-amostra o número de amostras vizinhas ao lado curto para determinar várias amostras supra-amostradas
Petição 870190063547, de 08/07/2019, pág. 82/121
75/82 vizinhas ao lado curto de modo que o número de amostras supra-amostradas vizinhas ao lado curto e o número de amostras vizinhas ao lado longo combinados sejam iguais a um valor que é uma potência de 2.
[0145] Em outro exemplo, para decodificar o bloco atual de dados de video usando-se previsão de modo intra-DC, o decodificador de vídeo supra-amostra o número de amostras vizinhas ao lado curto para determinar várias amostras supra-amostradas vizinhas ao lado curto e infraamostra o número de amostras vizinhas ao lado longo para determinar várias amostras infra-amostradas vizinhas ao lado longo de modo que o número de amostras supraamostradas vizinhas ao lado curto e o número de amostras infra-amostradas vizinhas ao lado longo combinados sejam iguais a um valor que é uma potência de 2.
[0146] Em outro exemplo, para decodificar o bloco atual de dados de vídeo usando-se previsão de modo intra-DC, o decodificador de vídeo infra-amostra o número de amostras vizinhas ao lado curto para determinar várias amostras infra-amostradas vizinhas ao lado curto e infraamostra o número de amostras vizinhas ao lado longo para determinar várias amostras infra-amostradas vizinhas ao lado longo de modo que o número de amostras infraamostradas vizinhas ao lado curto e o número de amostras infra-amostradas vizinhas ao lado longo combinados sejam iguais a um valor que é uma potência de 2.
[0147] O decodificador de vídeo emite uma versão decodificada da gravura atual que inclui uma versão decodificada do bloco atual (210). Quando o decodificador de vídeo for um decodificador de vídeo configurado para
Petição 870190063547, de 08/07/2019, pág. 83/121
76/82 emitir video decodificado exibivel, então o decodificador de video pode, por exemplo, emitir a versão decodificada da gravura atual para um dispositivo de exibição. Quando a decodif icação for realizada como parte de um loop de decodificação de um processo de codificação de video, então o decodificador de video pode armazenar a versão decodificada da gravura atual como uma gravura de referência para uso na codificação de outra gravura dos dados de video.
[0148] A Figura 13 é um fluxograma que ilustra uma operação exemplificativa de um decodificador de video para decodificar dados de video de acordo com uma técnica desta revelação. O decodificador de video descrito em relação à Figura 13 pode, por exemplo, ser um decodificador de video, como o decodif icador de video 30, para emitir video decodificado exibivel ou pode ser um decodificador de video implantado em um codificador de video, como o loop de decodificação do codificador de video 22, cuja porção inclui a unidade de processamento de previsão 100 e somador 112 .
[0149] De acordo com as técnicas da Figura 13, o decodificador de video determina que um bloco atual de uma gravura atual dos dados de video tem um tamanho de PxQ, em que P é um primeiro valor correspondente a uma largura do bloco atual e Q é um segundo valor correspondente a uma altura do bloco atual e P não é igual a Q (222) . O bloco atual inclui um lado curto e um lado longo, e o primeiro valor adicionado ao segundo valor não iguala um valor que é uma potência de 2.
[0150] O decodificador de video realiza uma
Petição 870190063547, de 08/07/2019, pág. 84/121
77/82 operação de filtragem no bloco atual de dados de video (224) . Para realizar a operação de filtragem no bloco atual de dados de video, o decodificador de video realiza uma operação de deslocamento para calcular um valor de filtro (226) e gerar um bloco filtrado para o bloco atual de dados de video usando-se o valor de filtro calculado (228) . Para realizar a operação de filtragem no bloco atual de dados de video, o decodificador de video pode, por exemplo, infraamostrar o número de amostras vizinhas ao lado longo para determinar várias amostras infra-amostradas vizinhas ao lado longo de modo que o número de amostras infraamostradas vizinhas ao lado longo e o número de amostras vizinhas ao lado curto combinados sejam iguais a um valor que é uma potência de 2. Para infra-amostrar o número de amostras vizinhas ao lado longo, o decodificador de video pode, por exemplo, ignorar algumas amostras. Para realizar a operação de filtragem no bloco atual de dados de video, o decodificador de video pode, por exemplo, supra-amostrar o número de amostras vizinhas ao lado curto para determinar várias amostras supra-amostradas vizinhas ao lado curto de modo que o número de amostras supra-amostradas vizinhas ao lado curto e o número de amostras vizinhas ao lado longo combinados sejam iguais a um valor que é uma potência de 2. Para supra-amostrar o número de amostras vizinhas ao lado curto, o decodificador de video pode, por exemplo, atribuir valores padrão a amostras sem valores reais correspondentes.
[0151] O decodificador de video emite uma versão decodificada da gravura atual que compreende uma versão decodificada do bloco atual (230). Quando o
Petição 870190063547, de 08/07/2019, pág. 85/121
78/82 decodificador de video for um decodificador de video configurado para emitir video decodificado exibível, então o decodificador de video pode, por exemplo, emitir a versão decodificada da gravura atual para um dispositivo de exibição. Quando a decodificação for realizada como parte de um loop de decodificação de um processo de codificação de video, então o decodificador de vídeo pode armazenar a versão decodificada da gravura atual como uma gravura de referência para uso na codificação de outra gravura dos dados de vídeo.
[0152] Determinados aspectos desta revelação foram descritos em relação a extensões do padrão HEVC para fins de ilustração. No entanto, as técnicas descritas nesta revelação podem ser úteis para outros processos de codificação de vídeo, que incluem outro padrão ou processos de codificação de vídeo de proprietário ainda não desenvolvidos.
[0153] Um codificador de vídeo, conforme descrito nesta revelação, pode se referir a um codificador de vídeo ou um decodificador de vídeo. De modo semelhante, uma unidade de codificação de vídeo pode se referir a um codificador de vídeo ou um decodificador de vídeo. De modo semelhante, codificação de vídeo pode se referir à codificação de vídeo ou decodificação de vídeo, conforme aplicável. Nesta revelação, a frase com base em pode indicar com base apenas em, com base, pelo menos em parte, em ou com base, de algum modo, em. Esta revelação pode usar o termo unidade de vídeo ou bloco de vídeo ou bloco para se referir a um ou mais blocos de amostra e estruturas de sintaxe usados para codificar amostras do um
Petição 870190063547, de 08/07/2019, pág. 86/121
79/82 ou mais blocos de amostras. Os tipos de exemplos de unidades de vídeo podem incluir CTUs, CUs, PUs, unidades de transformada (TUs), macroblocos, partições de macrobloco e assim por diante. Em alguns contextos, a discussão de PUs pode ser intercambiada com a discussão de macroblocos ou partições de macrobloco. Os tipos de exemplo dos blocos de vídeo podem incluir blocos de árvore de codificação, blocos de codificação e outros tipos de blocos de dados de vídeo.
[0154] Deve ser reconhecido que, dependendo do exemplo, determinadas ações ou eventos de quaisquer uma das técnicas descritas no presente documento pode ser realizada em uma sequência diferente, podem ser adicionados, mesclados ou deixados totalmente de fora (por exemplo, nem todos as ações e eventos descritos são necessários para a prática das técnicas). Ademais, em determinados exemplos, atos ou eventos podem ser realizados de modo concomitante, por exemplo, através de processamento de múltiplos encadeamentos, processamento interrupt© ou em múltiplos processadores, em vez de sequencialmente.
[0155] Em um ou mais exemplos, as funções descritas podem ser implantadas em hardware, software, firmware ou qualquer combinação dos mesmos. Caso implantadas em software, as funções podem ser armazenadas ou transmitidas como uma ou mais instruções ou código em uma mídia legível por computador e executadas por uma unidade de processamento com base em hardware. As mídias legíveis por computador podem incluir mídias de armazenamento legíveis por computador, que correspondem a uma mídia tangível como mídias de armazenamento de dados ou mídias de comunicação que incluem qualquer mídia que
Petição 870190063547, de 08/07/2019, pág. 87/121
80/82 facilite a transferência de um programa de computador a partir de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Desta forma, as midias legiveis por computador podem, em geral, corresponder a (1) midias de armazenamento legiveis por computador tangiveis que são não transitórias ou (2) uma midia de comunicação como um sinal ou onda portadora. As midias de armazenamento de dados podem ser quaisquer midias disponíveis que possam ser acessadas por um ou mais computadores ou um ou mais processadores para recuperar instruções, estruturas de dados e/ou código para a implantação das técnicas descritas nesta revelação. Um produto de programa de computador pode incluir uma mídia legível por computador.
[0156] A título de exemplo, e não de limitação, tais mídias 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ético, memória flash, ou qualquer outra mídia que possa ser usada para armazenar o código de programa desejado na forma de instruções ou estruturas de dados e que possa ser acessada por um computador. Além disso, qualquer conexão é denominada adequadamente como mídia legível por computador. Por exemplo, se as instruções forem transmitidas a partir de um site da web, servidor ou outra fonte remota com o uso de um cabo coaxial, cabo de fibra óptica, par trançado, linha de inscrição digital (DSL) ou tecnologias sem fio como infravermelho, rádio e micro-ondas, então, o cabo coaxial, o cabo de fibra óptica, o par trançado, a DSL ou as tecnologias sem fio como infravermelho, rádio e micro
Petição 870190063547, de 08/07/2019, pág. 88/121
81/82 ondas estão incluídos na definição de mídia. Deve ser compreendido, entretanto, que as mídias de armazenamento legíveis por computador e as mídias de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outras mídias transitórias, mas são, em vez disso, direcionadas para mídias de armazenamento não transitórias e tangíveis. Disco magnético e disco óptico, conforme usado no presente documento, incluem disco compacto (CD), disco laser, disco óptico, disco versátil digital (DVD), disquete e disco Blu-ray, em que os discos magnéticos reproduzem geralmente os dados de modo magnético, enquanto os discos ópticos reproduzem os dados de modo óptico com lasers. As combinações do supracitado também devem ser abrangidas pelo escopo das mídias legíveis por computador.
[0157] As instruções podem ser executadas por um ou mais processadores, como um ou mais DSPs, microprocessadores de propósito geral, ASICs, FPGAs, ou outro conjunto de circuitos lógico distinto ou integrado equivalente. Consequentemente, o termo processador, conforme usado no presente documento pode se referir a qualquer uma das estruturas supracitadas ou qualquer outra estrutura adequada para a implantação das técnicas descritas no presente documento. Adicionalmente, em alguns aspectos, a funcionalidade descrita no presente documento pode ser fornecida dentro de módulos dedicados de hardware e/ou software configurados para codificação e decodificação, ou incorporados em um codec combinado. Além disso, as técnicas podem ser totalmente implantadas em um ou mais circuitos ou elementos lógicos.
[0158] As técnicas desta revelação podem ser
Petição 870190063547, de 08/07/2019, pág. 89/121
82/82 implantadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um monotone, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritos nesta revelação para enfatizar os aspectos funcionais dos dispositivos configurados para realizar as técnicas reveladas, mas não exigem necessariamente a realização por diferentes unidades de hardware. Em vez disso, conforme descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec ou fornecidas por uma coleção de unidades de hardware interoperativas, incluindo um ou mais processadores, conforme descrito acima, em combinação com software e/ou firmware adequados.
[0159] Vários exemplos foram descritos. Esses e outros exemplos estão no escopo das reivindicações a seguir.

Claims (31)

REIVINDICAÇÕES
1. Método para a decodificação de dados de vídeo, sendo que o método compreende:
determinar que um bloco atual de uma gravura atual dos dados de vídeo tem um tamanho de PxQ, em que P é um primeiro valor correspondente a uma largura do bloco atual e Q é um segundo valor correspondente a uma altura do bloco atual, em que P não é igual a Q, em que o bloco atual inclui um lado curto e um lado longo, e em que o primeiro valor adicionado ao segundo valor não iguala um valor que é uma potência de 2;
decodificar o bloco atual de dados de vídeo usando-se previsão de modo intra-DC, em que decodificar o bloco atual de dados de vídeo usando-se previsão de modo intra-DC compreende:
realizar uma operação de deslocamento para calcular um valor de DC; e gerar um bloco de previsão para o bloco atual de dados de vídeo usando-se o valor de DC calculado; e emitir uma versão decodificada da gravura atual que compreende uma versão decodificada do bloco atual.
2/11 calcular o valor de DC determinando-se um valor médio dentre o primeiro valor médio e o segundo valor médio usando-se a operação de deslocamento.
2. Método, de acordo com a reivindicação 1, em que decodificar o bloco atual de dados de vídeo usando-se previsão de modo intra-DC compreende adicionalmente:
determinar um primeiro valor médio de amostra para as amostras vizinhas ao lado curto usando-se a operação de deslocamento;
determinar um segundo valor médio para as amostras vizinhas ao lado longo usando-se a operação de deslocamento; e
Petição 870190063547, de 08/07/2019, pág. 91/121
3/11
curto para determinar várias amostras supra-amostradas vizinhas ao lado curto; infra-amostrar várias amostras vizinhas ao lado longo para determinar várias amostras infra-amostradas vizinhas ao lado longo de modo que o número de amostras
supra-amostradas vizinhas ao lado curto e o número de amostras infra-amostradas vizinhas ao lado longo combinados sejam iguais a um valor que é uma potência de 2.
3. Método, de acordo com a reivindicação 2, em que determinar o valor médio dentre o primeiro valor médio e o segundo valor médio compreende determinar um valor médio ponderado dentre o primeiro valor médio e o segundo valor médio.
4/11 para um dispositivo de exibição.
4. Método, de acordo com a reivindicação 1, em que decodificar o bloco atual de dados de video usando-se previsão de modo intra-DC compreende adicionalmente:
infra-amostrar várias amostras vizinhas ao lado longo para determinar várias amostras infra-amostradas vizinhas ao lado longo de modo que o número de amostras infra-amostradas vizinhas ao lado longo e o número de amostras vizinhas ao lado curto combinados sejam iguais a um valor que é uma potência de 2.
5/11 operação de deslocamento;
determinar um segundo valor médio para as amostras vizinhas ao lado longo usando-se a operação de deslocamento; e calcular o valor de DC determinando-se um valor médio dentre o primeiro valor médio e o segundo valor médio usando-se a operação de deslocamento.
5. Método, de acordo com a reivindicação 1, em que decodificar o bloco atual de dados de video usando-se previsão de modo intra-DC compreende adicionalmente:
supra-amostrar várias amostras vizinhas ao lado curto para determinar um número de amostras supraamostradas vizinhas ao lado curto de modo que o número de amostras supra-amostradas vizinhas ao lado curto e o número de amostras vizinhas ao lado longo combinadas sejam iguais a um valor que é uma potência de 2.
6/11 amostras supra-amostradas vizinhas ao lado curto e o número de amostras vizinhas ao lado longo combinadas sejam iguais a um valor que é uma potência de 2.
6. Método, de acordo com a reivindicação 1, em que decodificar o bloco atual de dados de vídeo usando-se previsão de modo intra-DC compreende adicionalmente:
supra-amostrar várias amostras vizinhas ao lado
Petição 870190063547, de 08/07/2019, pág. 92/121
7/11
7. Método, de acordo com a reivindicação 1, em que decodificar o bloco atual de dados de video usando-se previsão de modo intra-DC compreende adicionalmente:
infra-amostrar várias amostras vizinhas ao lado curto para determinar várias amostras infra-amostradas vizinhas ao lado curto;
infra-amostrar várias amostras vizinhas ao lado longo para determinar várias amostras infra-amostradas vizinhas ao lado longo de modo que o número de amostras infra-amostradas vizinhas ao lado curto e o número de amostras infra-amostradas vizinhas ao lado longo combinados sejam iguais a um valor que é uma potência de 2.
8/11 fio, sendo que um sinal compreende os dados de video codificados.
8. Método, de acordo com a reivindicação 1, em que o método para decodificar é realizado como parte de um loop de decodificação de um processo de codificação de video, e em que emitir uma versão decodificada da gravura atual compreende armazenar a versão decodificada da gravura atual como uma gravura de referência para uso na codificação de outra gravura dos dados de video.
9/11 operação de deslocamento;
meios para determinar um segundo valor médio para as amostras vizinhas ao lado longo usando-se a operação de deslocamento; e meios para calcular o valor de DC determinando-se um valor médio dentre o primeiro valor médio e o segundo valor médio usando-se a operação de deslocamento.
9. Método, de acordo com a reivindicação 1, em que emitir a versão decodificada da gravura atual compreende emitir a versão decodificada da gravura atual
Petição 870190063547, de 08/07/2019, pág. 93/121
10/11 curto e o número de amostras vizinhas ao lado longo combinados sejam iguais a um valor que é uma potência de 2.
10, em que o dispositivo compreende um dispositivo de comunicação sem fio, que compreende adicionalmente um receptor configurado para receber dados de video codificados.
10, para emitir a versão decodificada da gravura atual, o um ou mais processadores são configurados adicionalmente para armazenar a versão decodificada da gravura atual como uma gravura de referência para uso na codificação de outra gravura dos dados de video.
10. Dispositivo para decodificar dados de video, sendo que o dispositivo compreende:
uma ou mais midias de armazenamento configuradas para armazenar os dados de video; e um ou mais processadores configurados para:
determinar que um bloco atual de uma gravura atual dos dados de video tem um tamanho de PxQ, em que P é um primeiro valor correspondente a uma largura do bloco atual e Q é um segundo valor correspondente a uma altura do bloco atual, em que P não é igual a Q, em que o bloco atual inclui um lado curto e um lado longo, e em que o primeiro valor adicionado ao segundo valor não iguala um valor que é uma potência de 2;
decodificar o bloco atual de dados de video usando-se previsão de modo intra-DC, em que decodificar o bloco atual de dados de video usando-se previsão de modo intra-DC compreende:
realizar uma operação de deslocamento para calcular um valor de DC; e gerar um bloco de previsão para o bloco atual de dados de video usando-se o valor de DC calculado; e emitir uma versão decodificada da gravura atual que compreende uma versão decodificada do bloco atual.
11/11
11. Dispositivo, de acordo com a reivindicação 10, em que para decodificar o bloco atual de dados de video usando-se previsão de modo intra-DC, o um ou mais processadores são configurados adicionalmente para:
determinar um primeiro valor médio de amostra para as amostras vizinhas ao lado curto usando-se a
Petição 870190063547, de 08/07/2019, pág. 94/121
12. Dispositivo, de acordo com a reivindicação 11, em que para determinar o valor médio do primeiro valor médio e o segundo valor médio, o um ou mais processadores são configurados adicionalmente para determinar um valor médio ponderado do primeiro valor médio e o segundo valor médio compreende.
13. Dispositivo, de acordo com a reivindicação 10, em que para decodificar o bloco atual de dados de video usando-se previsão de modo intra-DC, o um ou mais processadores são configurados adicionalmente para:
infra-amostrar várias amostras vizinhas ao lado longo para determinar várias amostras infra-amostradas vizinhas ao lado longo de modo que o número de amostras infra-amostradas vizinhas ao lado longo e o número de amostras vizinhas ao lado curto combinados sejam iguais a um valor que é uma potência de 2.
14. Dispositivo, de acordo com a reivindicação 10, em que para decodificar o bloco atual de dados de video usando-se previsão de modo intra-DC, o um ou mais processadores são configurados adicionalmente para:
supra-amostrar várias amostras vizinhas ao lado curto para determinar um número de amostras supraamostradas vizinhas ao lado curto de modo que o número de
Petição 870190063547, de 08/07/2019, pág. 95/121
15. Dispositivo, de acordo com a reivindicação 10, em que para decodificar o bloco atual de dados de video usando-se previsão de modo intra-DC, o um ou mais processadores são configurados adicionalmente para:
supra-amostrar várias amostras vizinhas ao lado curto para determinar várias amostras supra-amostradas vizinhas ao lado curto;
infra-amostrar várias amostras vizinhas ao lado longo para determinar várias amostras infra-amostradas vizinhas ao lado longo de modo que o número de amostras infra-amostradas vizinhas ao lado curto e o número de amostras infra-amostradas vizinhas ao lado longo combinados sejam iguais a um valor que é uma potência de 2.
16. Dispositivo, de acordo com a reivindicação 10, em que para decodificar o bloco atual de dados de video usando-se previsão de modo intra-DC, o um ou mais processadores são configurados adicionalmente para:
infra-amostrar várias amostras vizinhas ao lado curto para determinar várias amostras infra-amostradas vizinhas ao lado curto;
infra-amostrar várias amostras vizinhas ao lado longo para determinar várias amostras infra-amostradas vizinhas ao lado longo de modo que o número de amostras infra-amostradas vizinhas ao lado curto e o número de amostras infra-amostradas vizinhas ao lado longo combinados sejam iguais a um valor que é uma potência de 2.
17. Dispositivo, de acordo com a reivindicação
Petição 870190063547, de 08/07/2019, pág. 96/121
18. Dispositivo, de acordo com a reivindicação 10, em que para emitir a versão decodificada da gravura atual, o um ou mais processadores são configurados adicionalmente para emitir a versão decodificada da gravura atual para um dispositivo de exibição.
19. Dispositivo, de acordo com a reivindicação 10, em que o dispositivo compreende um dispositivo de comunicação sem fio que compreende adicionalmente um transmissor configurado para transmitir dados de video codificados.
20 . Dispositivo, de acordo com a reivindicação 19, em que o dispositivo de comunicação sem fio compreende um aparelho de telefone e em que o transmissor é configurado para modular, de acordo com um padrão de comunicação sem fio, sendo que um sinal compreende os dados
de video codificados.
21. Dispositivo, de acordo com a reivindicação
22. Dispositivo, de acordo com a reivindicação 21, em que o dispositivo de comunicação sem fio compreende um aparelho de telefone e em que o receptor é configurado para demodular, de acordo com um padrão de comunicação sem
Petição 870190063547, de 08/07/2019, pág. 97/121
23. Aparelho para decodificar dados de video, sendo que o aparelho compreende:
meios para determinar que um bloco atual de uma gravura atual dos dados de video tem um tamanho de PxQ, em que P é um primeiro valor correspondente a uma largura do bloco atual e Q é um segundo valor correspondente a uma altura do bloco atual, em que P não é igual a Q, em que o bloco atual inclui um lado curto e um lado longo, e em que o primeiro valor adicionado ao segundo valor não iguala um valor que é uma potência de 2;
meios para decodificar o bloco atual de dados de video usando-se previsão de modo intra-DC, em que os meios para decodificar o bloco atual de dados de video usando-se previsão de modo intra-DC compreendem:
meios para realizar uma operação de deslocamento para calcular um valor de DC; e meios para gerar um bloco de previsão para o bloco atual de dados de video usando-se o valor de DC calculado; e meios para emitir uma versão decodificada da gravura atual que compreende uma versão decodificada do bloco atual.
24. Aparelho, de acordo com a invenção 23, em que os meios para decodificar o bloco atual de dados de video usando-se previsão de modo intra-DC compreendem adicionalmente:
meios para determinar um primeiro valor médio de amostra para as amostras vizinhas ao lado curto usando-se a
Petição 870190063547, de 08/07/2019, pág. 98/121
25. Aparelho, de acordo com a reivindicação 24, em que os meios para determinar o valor médio dentre o primeiro valor médio e o segundo valor médio compreendem meios para determinar um valor médio ponderado dentre o primeiro valor médio e o segundo valor médio.
26. Aparelho, de acordo com a invenção 23, em que os meios para decodificar o bloco atual de dados de video usando-se previsão de modo intra-DC compreendem adicionalmente:
meios para infra-amostrar várias amostras vizinhas ao lado longo para determinar várias amostras infra-amostradas vizinhas ao lado longo de modo que o número de amostras infra-amostradas vizinhas ao lado longo e o número de amostras vizinhas ao lado curto combinados sejam iguais a um valor que é uma potência de 2.
27. Aparelho, de acordo com a invenção 23, em que os meios para decodificar o bloco atual de dados de video usando-se previsão de modo intra-DC compreendem adicionalmente:
meios para supra-amostrar várias amostras vizinhas ao lado curto para determinar um número de amostras supra-amostradas vizinhas ao lado curto de modo que o número de amostras supra-amostradas vizinhas ao lado
Petição 870190063547, de 08/07/2019, pág. 99/121
28. Aparelho, de acordo com a invenção 23, em que os meios para decodificar o bloco atual de dados de vídeo usando-se previsão de modo intra-DC compreendem adicionalmente:
meios para supra-amostrar várias amostras vizinhas ao lado curto para determinar várias amostras supra-amostradas vizinhas ao lado curto;
meios para infra-amostrar várias amostras vizinhas ao lado longo para determinar várias amostras infra-amostradas vizinhas ao lado longo de modo que o número de amostras infra-amostradas vizinhas ao lado curto e o número de amostras infra-amostradas vizinhas ao lado longo combinados sejam iguais a um valor que é uma potência de 2 .
29. Aparelho, de acordo com a invenção 23, em que os meios para decodificar o bloco atual de dados de vídeo usando-se previsão de modo intra-DC compreendem adicionalmente:
meios para infra-amostrar várias amostras vizinhas ao lado curto para determinar várias amostras infra-amostradas vizinhas ao lado curto;
meios para infra-amostrar várias amostras vizinhas ao lado longo para determinar várias amostras infra-amostradas vizinhas ao lado longo de modo que o número de amostras infra-amostradas vizinhas ao lado curto e o número de amostras infra-amostradas vizinhas ao lado longo combinados sejam iguais a um valor que é uma potência de 2 .
Petição 870190063547, de 08/07/2019, pág. 100/121
30. Aparelho, de acordo com a invenção 23, em que os meios para emitir a versão decodificada da gravura atual compreendem meios para armazenar a versão decodificada da gravura atual como uma gravura de referência para uso na codificação de outra gravura dos dados de video.
31. Aparelho, de acordo com a invenção 23, em que os meios para emitir a versão decodificada da gravura atual compreendem meios para emitir a versão decodificada da gravura atual para um dispositivo de exibição.
BR112019014090A 2017-01-11 2018-01-10 técnicas de intraprevisão para codificação de vídeo BR112019014090A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762445207P 2017-01-11 2017-01-11
US15/866,287 US20180199062A1 (en) 2017-01-11 2018-01-09 Intra prediction techniques for video coding
PCT/US2018/013169 WO2018132475A1 (en) 2017-01-11 2018-01-10 Intra prediction techniques for video coding

Publications (1)

Publication Number Publication Date
BR112019014090A2 true BR112019014090A2 (pt) 2020-02-04

Family

ID=62783736

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019014090A BR112019014090A2 (pt) 2017-01-11 2018-01-10 técnicas de intraprevisão para codificação de vídeo

Country Status (8)

Country Link
US (1) US20180199062A1 (pt)
EP (1) EP3568986A1 (pt)
JP (1) JP2020503815A (pt)
KR (1) KR20190103167A (pt)
CN (1) CN110100439A (pt)
BR (1) BR112019014090A2 (pt)
TW (1) TW201841502A (pt)
WO (1) WO2018132475A1 (pt)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11146795B2 (en) 2017-03-10 2021-10-12 Qualcomm Incorporated Intra filtering flag in video coding
CN117395405A (zh) * 2017-04-28 2024-01-12 英迪股份有限公司 图像解码方法、图像编码方法和用于发送比特流的方法
US10805641B2 (en) 2017-06-15 2020-10-13 Qualcomm Incorporated Intra filtering applied together with transform processing in video coding
US10484695B2 (en) 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
EP3982631A1 (en) * 2017-11-13 2022-04-13 MediaTek Singapore Pte. Ltd. Method and apparatus for intra prediction fusion in image and video coding
KR20210111323A (ko) * 2018-01-15 2021-09-10 주식회사 비원영상기술연구소 색차 성분에 관한 화면내 예측 부호화/복호화 방법 및 장치
EP3744092A1 (en) * 2018-01-26 2020-12-02 InterDigital VC Holdings, Inc. Method and apparatus for video encoding and decoding based on a linear model responsive to neighboring samples
US10869060B2 (en) * 2018-01-30 2020-12-15 Google Llc Efficient context model computation design in transform coefficient coding
US10645381B2 (en) 2018-04-30 2020-05-05 Google Llc Intra-prediction for smooth blocks in image/video
US11025946B2 (en) * 2018-06-14 2021-06-01 Tencent America LLC Method and apparatus for video coding
CN112997492B (zh) 2018-11-06 2024-02-20 北京字节跳动网络技术有限公司 帧内预测的简化参数推导
CN112913243A (zh) * 2018-11-21 2021-06-04 华为技术有限公司 帧内预测方法及设备
CN113170122B (zh) 2018-12-01 2023-06-27 北京字节跳动网络技术有限公司 帧内预测的参数推导
WO2020114445A1 (en) 2018-12-07 2020-06-11 Beijing Bytedance Network Technology Co., Ltd. Context-based intra prediction
WO2020145775A1 (ko) * 2019-01-13 2020-07-16 엘지전자 주식회사 Mrl 기반 인트라 예측을 수행하는 영상 코딩 방법 및 장치
CN113711615A (zh) 2019-02-15 2021-11-26 北京字节跳动网络技术有限公司 视频压缩中的非二次幂分割树
CN113439437B (zh) * 2019-02-22 2023-11-24 北京字节跳动网络技术有限公司 用于帧内预测的邻近样点选择
KR102472756B1 (ko) 2019-02-24 2022-12-01 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 인트라 예측을 위한 파라미터 유도
JP7203241B2 (ja) 2019-03-08 2023-01-12 北京字節跳動網絡技術有限公司 映像処理における再整形情報の信号伝達
CN113748676B (zh) * 2019-04-16 2024-05-10 北京字节跳动网络技术有限公司 帧内编解码模式下的矩阵推导
WO2020211862A1 (en) 2019-04-18 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Restriction on applicability of cross component mode
AU2020263199B2 (en) 2019-04-23 2023-10-19 Beijing Bytedance Network Technology Co., Ltd. Methods for cross component dependency reduction
US11277637B2 (en) 2019-05-09 2022-03-15 Qualcomm Incorporated Reference sampling for matrix intra prediction mode
KR20220013939A (ko) 2019-05-31 2022-02-04 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 행렬 기반 인트라 예측에서의 제한된 업샘플링 프로세스
WO2020256483A1 (ko) * 2019-06-21 2020-12-24 삼성전자 주식회사 영상 부호화 방법 및 장치, 영상 복호화 방법 및 장치
CN113994697A (zh) 2019-06-22 2022-01-28 北京字节跳动网络技术有限公司 色度残差缩放的语法元素
EP3977738A4 (en) 2019-07-07 2022-08-17 Beijing Bytedance Network Technology Co., Ltd. SIGNALING OF CHROMA RESIDUAL SCALE
CN114830655B (zh) * 2019-12-12 2023-08-18 寰发股份有限公司 视频编解码的方法与装置
JP2022531541A (ja) * 2019-12-23 2022-07-07 テンセント・アメリカ・エルエルシー ビデオ符号化/復号のための方法および装置
CN111263193B (zh) * 2020-01-21 2022-06-17 北京世纪好未来教育科技有限公司 视频帧上下采样方法及装置、视频直播方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4617644B2 (ja) * 2003-07-18 2011-01-26 ソニー株式会社 符号化装置及び方法
US8457200B2 (en) * 2006-07-07 2013-06-04 Telefonaktiebolaget Lm Ericsson (Publ) Video data management
CN101710987B (zh) * 2009-12-29 2011-06-15 浙江大学 一种高压缩性能分层b预测结构配置方法
CN102857752B (zh) * 2011-07-01 2016-03-30 华为技术有限公司 一种像素预测方法和装置
US10432928B2 (en) * 2014-03-21 2019-10-01 Qualcomm Incorporated Using a current picture as a reference for video coding
WO2016154963A1 (en) * 2015-04-01 2016-10-06 Mediatek Inc. Methods for chroma coding in video codec

Also Published As

Publication number Publication date
JP2020503815A (ja) 2020-01-30
EP3568986A1 (en) 2019-11-20
US20180199062A1 (en) 2018-07-12
TW201841502A (zh) 2018-11-16
CN110100439A (zh) 2019-08-06
KR20190103167A (ko) 2019-09-04
WO2018132475A1 (en) 2018-07-19

Similar Documents

Publication Publication Date Title
BR112019014090A2 (pt) técnicas de intraprevisão para codificação de vídeo
CN110073661B (zh) 用于编码和解码视频数据的方法和装置
US10506246B2 (en) Multi-type-tree framework for video coding
AU2018282523B2 (en) Intra filtering applied together with transform processing in video coding
CN110572659B (zh) 灵活树
US10687079B2 (en) Constrained depth intra mode coding for 3D video coding
BR112020019715A2 (pt) combinação de intrapredição dependente de posição estendida com modos angulares
BR112019013705A2 (pt) predição temporal de filtro de laço adaptativo modificada para suporte de escalabilidade temporal
BR112016000863B1 (pt) Previsão residual de componente intercor
US20190306506A1 (en) Limitation on the coding tree unit/block for next-generation video coding
EP3772262A1 (en) Multi-type-tree framework for transform in video coding

Legal Events

Date Code Title Description
B11A Dismissal acc. art.33 of ipl - examination not requested within 36 months of filing
B11Y Definitive dismissal - extension of time limit for request of examination expired [chapter 11.1.1 patent gazette]
B350 Update of information on the portal [chapter 15.35 patent gazette]