BR112020012101A2 - controle de parâmetro de quantificação para codificação de vídeo com quantificação à base de transformada/pixel conjunta - Google Patents

controle de parâmetro de quantificação para codificação de vídeo com quantificação à base de transformada/pixel conjunta Download PDF

Info

Publication number
BR112020012101A2
BR112020012101A2 BR112020012101-0A BR112020012101A BR112020012101A2 BR 112020012101 A2 BR112020012101 A2 BR 112020012101A2 BR 112020012101 A BR112020012101 A BR 112020012101A BR 112020012101 A2 BR112020012101 A2 BR 112020012101A2
Authority
BR
Brazil
Prior art keywords
hdr
video data
block
dra
wcg video
Prior art date
Application number
BR112020012101-0A
Other languages
English (en)
Inventor
Dmytro Rusanovskyy
Adarsh Krishnan Ramasubramonian
Marta Karczewicz
Original Assignee
Qualcomm Incorporated
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 Incorporated filed Critical Qualcomm Incorporated
Publication of BR112020012101A2 publication Critical patent/BR112020012101A2/pt

Links

Classifications

    • G06T5/94
    • 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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows

Abstract

Trata-se de um dispositivo para processar dados de vídeo de alto intervalo dinâmico e/ou gama de cores ampla (HDR/WCG) que pode ser configurado para determinar um parâmetro de quantificação para coeficientes de transformada quantificados de um bloco dos dados de vídeo de HDR/WCG; quantificar de maneira inversa os coeficientes de transformada quantificados com base no parâmetro de quantificação determinado para determinar coeficientes de transformada desquantificados; com base nos coeficientes de transformada desquantificados, determinar um bloco de valores residuais para o bloco dos dados de vídeo de HDR/WCG; com base no bloco de valores residuais, determinar um bloco reconstruído para o bloco dos dados de vídeo de HDR/WCG; determinar um ou mais parâmetros de ajuste de intervalo dinâmico (DRA) para o bloco dos dados de vídeo de HDR/WCG; ajustar o um ou mais parâmetros de DRA com base no parâmetro de quantificação determinado para determinar parâmetros de DRA ajustados; e realizar DRA no bloco reconstruído com o uso dos parâmetros de DRA ajustados.

Description

“CONTROLE DE PARÂMETRO DE QUANTIFICAÇÃO PARA CODIFICAÇÃO DE VÍDEO COM QUANTIFICAÇÃO À BASE DE TRANSFORMADA/PIXEL CONJUNTA”
[0001] Este pedido reivindica a prioridade sobre o pedido n° U.S. 16/224,320, depositado em 18 de dezembro de 2018, que reivindica o benefício do pedido provisório n° U.S. 62/607,887, depositado em 19 de dezembro de 2017, cujo conteúdo integral de cada um dos pedidos listados acima está incorporado a título de referência.
CAMPO DA TÉCNICA
[0002] Esta revelação se refere à codificação de vídeo e decodificação de vídeo.
ANTECEDENTES
[0003] As capacidades de vídeo digital podem ser incorporadas em uma ampla gama de dispositivos, incluindo televisões digitais, sistemas de difusão direta digital, sistemas de difusão sem fio, assistentes pessoais digitais (PDAs), computadores do tipo laptop ou de mesa, computador do tipo tablet, leitores e-book, câmeras digitais, dispositivos de gravação digital, reprodutores de mídia digital, dispositivos de videogame, consoles de videogame, telefones de rádio via satélite ou celular, os chamados “telefones inteligentes”, dispositivos de teleconferência de vídeo, dispositivos de transmissão contínua de vídeo e similares. Os dispositivos de vídeo digital implantam técnicas de compactação de vídeo, como aquelas descritas nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU- T H.264/MPEG-4, Parte 10, Codificação de vídeo avançada (AVC), o padrão de codificação de vídeo de alta eficiência (HEVC) recentemente finalizado e extensões de tais padrões.
Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar informações de vídeo digital de modo mais eficaz mediante a implantação de tais técnicas de compactação de vídeo.
[0004] As técnicas de compactação de vídeo realizam predição espacial (intra-imagem) e/ou predição temporal (inter-imagem) para reduzir ou remover redundância inerente em sequências de vídeo. Para a codificação de vídeo à base de bloco, uma fatia de vídeo (isto é, um quadro de vídeo ou uma porção de um quadro de vídeo) pode ser dividida em blocos de vídeo, que também podem ser chamados de blocos de árvore, unidades de codificação (CUs) e/ou nós de codificação. Os blocos de vídeo em uma fatia intra-codificada (I) de uma imagem são codificados com o uso de predição espacial em relação a amostras de referência em blocos vizinhos na mesma imagem. Os blocos de vídeo em uma fatia inter-codificada (P ou B) de uma imagem podem usar predição espacial em relação a amostras de referência em blocos vizinhos na mesma imagem ou predição temporal em relação a amostras de referência em outras imagens de referência. As imagens podem ser denominadas como quadros, e imagens de referência podem ser denominadas de quadros de referência.
[0005] A predição temporal ou espacial resulta em um bloco preditivo para um bloco a ser codificado. Os dados residuais representam diferenças de pixel entre o bloco original a ser codificado e o bloco preditivo. Um bloco inter-codificado é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência que formam o bloco preditivo, e os dados residuais que indicam a diferença entre o bloco codificado e o bloco preditivo. Um bloco intra-codificado é codificado de acordo com um modo de intra-codificação e os dados residuais. Para compactação adicional, os dados residuais podem ser transformados a partir do domínio de pixel em um domínio de transformada, resultando em coeficientes de transformada residuais que podem, então, ser quantificados. Os coeficientes de transformada quantificados, inicialmente dispostos em um arranjo bidimensional, podem ser varridos a fim de produzir um vetor unidimensional de coeficientes de transformada, e a codificação de entropia pode ser aplicada para obter até mais compactação.
SUMÁRIO
[0006] Um ou mais aspectos desta revelação se referem ao campo de codificação de sinais de vídeo, por exemplo, dados de vídeo, com representações de alto intervalo dinâmico (HDR) e gama de cores ampla (WCG).
[0007] De acordo com um exemplo, um método para processar dados de vídeo de alto intervalo dinâmico e/ou gama de cores ampla (HDR/WCG) inclui determinar um parâmetro de quantificação para coeficientes de transformada quantificados de um bloco dos dados de vídeo de HDR/WCG; quantificar de maneira inversa os coeficientes de transformada quantificados com base no parâmetro de quantificação determinado para determinar coeficientes de transformada desquantificados; com base nos coeficientes de transformada desquantificados, determinar um bloco de valores residuais para o bloco dos dados de vídeo de HDR/WCG; com base no bloco de valores residuais, determinar um bloco reconstruído para o bloco dos dados de vídeo de
HDR/WCG; determinar um ou mais parâmetros de ajuste de intervalo dinâmico (DRA) para o bloco dos dados de vídeo de HDR/WCG; ajustar o um ou mais parâmetros de DRA com base no parâmetro de quantificação determinado para determinar um ou mais parâmetros de DRA ajustados; e realizar DRA no bloco reconstruído dos dados de vídeo de HDR/WCG com o uso do um ou mais parâmetros de DRA ajustados.
[0008] De acordo com um outro exemplo, um dispositivo para processar dados de vídeo de alto intervalo dinâmico e/ou gama de cores ampla (HDR/WCG) inclui uma memória configurada para armazenar dados de vídeo e um ou mais processadores acoplados à memória e configurados para determinar um parâmetro de quantificação para coeficientes de transformada quantificados de um bloco dos dados de vídeo de HDR/WCG; quantificar de maneira inversa os coeficientes de transformada quantificados com base no parâmetro de quantificação determinado para determinar coeficientes de transformada desquantificados; com base nos coeficientes de transformada desquantificados, determinar um bloco de valores residuais para o bloco dos dados de vídeo de HDR/WCG; com base no bloco de valores residuais, determinar um bloco reconstruído para o bloco dos dados de vídeo de HDR/WCG; determinar um ou mais parâmetros de ajuste de intervalo dinâmico (DRA) para o bloco dos dados de vídeo de HDR/WCG; ajustar o um ou mais parâmetros de DRA com base no parâmetro de quantificação determinado para determinar um ou mais parâmetros de DRA ajustados; e realizar DRA no bloco reconstruído dos dados de vídeo de HDR/WCG com o uso do um ou mais parâmetros de DRA ajustados.
[0009] De acordo com um outro exemplo, uma mídia legível por computador armazena instruções que, quando executadas por um ou mais processadores, fazem com que o um ou mais processadores determine um parâmetro de quantificação para coeficientes de transformada quantificados de um bloco de dados de vídeo de alto intervalo dinâmico e/ou gama de cores ampla (HDR/WCG); quantifique de maneira inversa os coeficientes de transformada quantificados com base no parâmetro de quantificação determinado para determinar coeficientes de transformada desquantificados; com base nos coeficientes de transformada desquantificados, determine um bloco de valores residuais para o bloco dos dados de vídeo de HDR/WCG; com base no bloco de valores residuais, determine um bloco reconstruído para o bloco dos dados de vídeo de HDR/WCG; determine um ou mais parâmetros de ajuste de intervalo dinâmico (DRA) para o bloco dos dados de vídeo de HDR/WCG; ajuste o um ou mais parâmetros de DRA com base no parâmetro de quantificação determinado para determinar um ou mais parâmetros de DRA ajustados; e realize DRA no bloco reconstruído dos dados de vídeo de HDR/WCG com o uso do um ou mais parâmetros de DRA ajustados.
[0010] De acordo com um outro exemplo, um aparelho para processar dados de vídeo de alto intervalo dinâmico e/ou gama de cores ampla (HDR/WCG) inclui meio para determinar um parâmetro de quantificação para coeficientes de transformada quantificados de um bloco dos dados de vídeo de HDR/WCG; meio para quantificar de maneira inversa os coeficientes de transformada quantificados com base no parâmetro de quantificação determinado para determinar coeficientes de transformada desquantificados; meio para determinar um bloco de valores residuais para o bloco dos dados de vídeo de HDR/WCG com base nos coeficientes de transformada desquantificados; meio para determinar um bloco reconstruído para o bloco dos dados de vídeo de HDR/WCG com base no bloco de valores residuais; meio para determinar um ou mais parâmetros de ajuste de intervalo dinâmico (DRA) para o bloco dos dados de vídeo de HDR/WCG; meio para ajustar o um ou mais parâmetros de DRA com base no parâmetro de quantificação determinado para determinar um ou mais parâmetros de DRA ajustados; e meio para realizar DRA no bloco reconstruído dos dados de vídeo de HDR/WCG com o uso do um ou mais parâmetros de DRA ajustados.
[0011] Os detalhes de um ou mais exemplos da revelação são apresentados nos desenhos anexos e na descrição abaixo. Outros recursos, objetivos e vantagens ficarão evidentes a partir da descrição, dos desenhos e das reivindicações.
BREVE DESCRIÇÃO DOS DESENHOS
[0012] A Figura 1 é um diagrama de blocos que ilustra um sistema de codificação e decodificação de vídeo exemplificador que pode usar as técnicas descritas nesta revelação.
[0013] A Figura 2 é um desenho conceitual que ilustra os conceitos de dados de HDR.
[0014] A Figura 3 é um diagrama conceitual que ilustra gamas de cores exemplificadoras.
[0015] A Figura 4 é um diagrama de fluxo que ilustra um exemplo de conversão de representação de
HDR/WCG.
[0016] A Figura 5 é um diagrama de fluxo que ilustra um exemplo de conversão inversa de HDR/WCG.
[0017] A Figura 6 é um diagrama conceitual que ilustra o exemplo de funções de transferência eletro-óptica (EOTF) usadas para conversão de dados de vídeo (incluindo SDR e HDR) a partir de níveis de código perceptivamente uniformes para luminância linear.
[0018] A Figura 7 mostra uma visualização exemplificadora de PQ TF (ST2084 EOTF).
[0019] A Figura 8 mostra um exemplo de uma função LCS.
[0020] A Figura 9 mostra um exemplo de sistema de codificação de vídeo com DRA.
[0021] A Figura 10 é um diagrama de blocos que ilustra um codificador de vídeo exemplificador que pode implantar as técnicas descritas nesta revelação.
[0022] A Figura 11 é um diagrama de blocos que ilustra um decodificador de vídeo exemplificador que pode implantar as técnicas descritas nesta revelação.
[0023] A Figura 12 é um fluxograma que ilustra uma operação exemplificadora de um decodificador de vídeo para decodificar dados de vídeo, de acordo com uma técnica desta revelação.
DESCRIÇÃO DETALHADA
[0024] Esta revelação descreve técnicas relacionadas ao campo de codificação de sinais de vídeo com representações de alto intervalo dinâmico (HDR) e gama de cores ampla (WCG). Mais especificamente, esta revelação descreve sinalização e operações aplicadas a dados de vídeo em certos espaços de cor para habilitar a compactação mais eficaz de dados de vídeo de HDR e WCG. As técnicas desta revelação podem aprimorar a eficiência de compactação de sistemas de codificação de vídeo com base híbrida usados para codificação dados de vídeo de HDR & WCG.
[0025] Conforme será explicado em maiores detalhes abaixo, o vídeo de HDR se refere, de modo geral, a vídeo que tem um intervalo dinâmico que é maior que aquele de vídeo de intervalo dinâmico padrão (SDR). WCG se refere, de modo geral, a vídeo que é representado com uma gama de cores mais ampla que pode incluir cor mais viva, como vermelhos mais vermelhos, verdes mais verdes, azuis mais azuis, etc. Tanto HDR como WCG pode fazer o vídeo parecer mais realista. Enquanto fazem com que o vídeo pareça mais realista, HDR e WCG também podem aumentar a complexidade associada à codificação e decodificação de dados de vídeo. As técnicas desta revelação podem ajudar a reduzir a complexidade associada à codificação e decodificação de dados de vídeo de HDR e WCG, mais especificamente, podem reduzir a complexidade associada à codificação e decodificação de dados de vídeo de HDR e WCG por meio da harmonização da quantificação realizada no domínio de transformada mediante a quantificação de coeficientes de transformada e o escalonamento e quantificação realizados no domínio de pixel mediante a realização de ajuste de intervalo dinâmico (DRA).
[0026] A Figura l é um diagrama de blocos que ilustra um sistema de codificação e decodificação de vídeo 10 exemplificador que pode processar dados de vídeo de HDR/WCG e usar as técnicas de DRA descritas nesta revelação. Conforme mostrado na Figura 1, o sistema 10 inclui um dispositivo de origem 12 que fornece dados de vídeo codificados a serem decodificados posteriormente por um dispositivo de destino 14. Em particular, o dispositivo de origem 12 fornece os dados de vídeo para o dispositivo de destino 14 através de um meio legível por computador 16. O dispositivo de origem 12 e o dispositivo de destino 14 podem compreender qualquer um dentre uma ampla gama de dispositivos, incluindo computadores de mesa, computadores do tipo notebook (isto é, computadores do tipo laptop), computadores do tipo tablet, decodificadores de sinal, aparelhos de telefone como os chamados telefones “inteligentes”, chamados blocos “inteligentes”, televisões, câmeras, dispositivos de exibição, reprodutores de mídia digital, consoles de videogame, dispositivo de transmissão contínua de vídeo ou similares. Em alguns casos, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio.
[0027] O dispositivo de destino 14 pode receber os dados de vídeo codificados a serem decodificados através do meio 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 de origem 12 para o dispositivo de destino 14. Em um exemplo, a mídia legível por computador 16 pode compreender uma mídia de comunicação para habilitar o dispositivo de origem 12 para transmitir dados de vídeo codificados diretamente para o 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 ou com 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 formar 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 de origem 12 para o dispositivo de destino 14.
[0028] Em outros exemplos, a mídia legível por computador 16 pode incluir mídia de armazenamento não transitório, 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 de origem 12 e fornecer os dados de vídeo codificados para o dispositivo de destino 14, por exemplo, através da transmissão de rede. De modo similar, um dispositivo de computação de uma instalação de produção de meio, como uma instalação de estampagem de disco, pode receber dados de vídeo codificados a partir do dispositivo de origem 12 e produzir um disco que contém os dados de vídeo codificados. Portanto, a mídia legível por computador 16 pode ser compreendida como incluindo uma ou mais mídias legíveis por computador de diversas formas, em diversos exemplos.
[0029] Em alguns exemplos, os dados codificados podem ser emitidos a partir da interface de saída 22 para um dispositivo de armazenamento. De modo similar, os dados codificados podem ser acessado a partir do dispositivo de armazenamento por meio da interface de entrada. O dispositivo de armazenamento pode incluir qualquer uma dentre uma variedade de mídias de armazenamento de dados distribuídas ou acessadas localmente como um disco rígido, discos Blu-ray, DVDs, CD-ROMs, memória flash, memória volátil ou não volátil, ou qualquer outra mídia de armazenamento digital adequada para armazenar dados de vídeo codificados. Em um exemplo adicional, o dispositivo de armazenamento pode corresponder a um servidor de arquivos ou um outro dispositivo de armazenamento intermediário que pode armazenar o vídeo codificado gerado pelo dispositivo de origem 12. O dispositivo de destino 14 pode acessar os dados de vídeo armazenados a partir do dispositivo de armazenamento através de transmissão contínua ou transferência por download. O servidor de arquivos pode ser qualquer tipo de servidor com capacidade para armazenar dados de vídeo codificados e transmitir dados de vídeo codificados para o dispositivo de destino
14. Os servidores de arquivos exemplificadores incluem um servidor Web (por exemplo, para um site da Web), um servidor FTP, dispositivos de armazenamento em rede (NAS) ou uma unidade de disco local. O 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 de Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão com fio (por exemplo, DSL, modem a cabo, etc.), ou uma combinação de ambas que é adequada para acessar dados de vídeo codificados armazenados em um servidor de arquivos. A transmissão de dados de vídeo codificados a partir do dispositivo de armazenamento pode ser uma transmissão contínua, uma transmissão por download ou uma combinação das mesmas.
[0030] As técnicas desta revelação não estão necessariamente limitadas a cenários ou aplicações sem fio. As técnicas podem ser aplicadas à codificação de vídeo em suporte de qualquer uma dentre uma variedade de aplicações de multimídia, como difusões de televisão pelo ar, transmissões de televisão a cabo, transmissões de televisão via satélite, transmissões de vídeo de transmissão contínua via Internet, como transmissão contínua adaptativa dinâmica em HTTP (DASH), vídeo digital que é codificado em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados ou outras aplicações. 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 de vídeo.
[0031] No exemplo da Figura 1, o dispositivo de origem 12 inclui fonte de vídeo 18, codificador de vídeo 20 e interface de saída 22. O dispositivo de destino 14 inclui interface de entrada 28, unidade de pré-processamento 19, decodificador de vídeo 30 e dispositivo de exibição 32. De acordo com esta revelação, a unidade de pré-processamento 19 do dispositivo de origem 12 pode ser configurada para implantar as técnicas desta revelação, incluindo a sinalização e operações relacionadas aplicadas a dados de vídeo em certos espaços de cores para habilitar a compactação mais eficaz de dados de vídeo de HDR e WCG. Em alguns exemplos, a unidade de pré-processamento 19 pode ser separada do codificador de vídeo 20. Em outros exemplos, a unidade de pré-processamento 19 pode fazer parte do codificador de vídeo 20. Em outros exemplos, um dispositivo de origem e um dispositivo de destino podem incluir outros componentes ou disposições. Por exemplo, o dispositivo de origem 12 pode receber dados de vídeo a partir de uma fonte de vídeo externa 18, como uma câmera externa. De modo semelhante, o dispositivo de destino 14 pode fazer interface com um dispositivo de exibição externo, em vez de incluir um dispositivo de exibição integrado.
[0032] O sistema ilustrado 10 da Figura 1 é apenas um exemplo. As técnicas para o processamento e a codificação de dados de vídeo de HDR e WCG podem ser realizadas por qualquer dispositivo de codificação de vídeo e/ou decodificação de vídeo digital. Ademais, as técnicas desta revelação também podem ser realizadas por um pré- processador de vídeo e/ou pós-processador de vídeo. Um pré- processador de vídeo pode ser qualquer dispositivo configurado para processar dados de vídeo antes da codificação (por exemplo, antes de HEVC ou outra codificação). Um pós-processador de vídeo pode ser qualquer dispositivo configurado para processar dados de vídeo após a decodificação (por exemplo, após HEVC ou outra decodificação). O dispositivo de origem 12 e o dispositivo de destino 14 são apenas exemplos de tais dispositivos de codificação em que o dispositivo de origem 12 gera dados de vídeo codificados para a transmissão para o dispositivo de destino 14. Em alguns exemplos, os dispositivos 12, 14 podem operar de uma maneira substancialmente simétrica de modo que cada um dos dispositivos 12, 14 inclua componentes de codificação e decodificação de vídeo, bem como um pré- processador de vídeo e um pós-processador de vídeo (por exemplo, unidade de pré-processamento e unidade de pós- processamento 31, respectivamente). Por conseguinte, o sistema 10 pode suportar transmissão de vídeo unidirecional ou bidirecional entre dispositivos de vídeo 12, 14, por exemplo, para a transmissão contínua de vídeo, reprodução de vídeo, difusão de vídeo ou telefonia de vídeo.
[0033] A fonte de vídeo 18 do dispositivo de origem 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 vídeo capturado anteriormente e/ou uma interface de alimentação de vídeo para receber 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 à base de gráfico 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. Em alguns casos, se a fonte de vídeo 18 for uma câmera de vídeo, o dispositivo de origem 12 e o dispositivo de destino 14 podem formar os chamados telefones com câmera fotográfica, ou telefones com câmera de vídeo. Conforme mencionado acima, no entanto, as técnicas descritas nesta revelação podem ser aplicáveis à codificação de vídeo e processamento de vídeo em geral e podem ser aplicadas às 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
20. As informações de vídeo codificadas podem ser, então, emitidas pela interface de saída 22 sobre uma mídia legível por computador 16.
[0034] A interface de entrada 28 do dispositivo de destino 14 recebe informações a partir do meio legível por computador 16. As informações da mídia legível por computador 16 podem incluir informações de sintaxe definidas pelo codificador de vídeo 20, que também são usadas pelo decodificador de vídeo 30, que incluem elementos de sintaxe que descrevem características e/ou processamento de blocos e outras unidades codificadas, por exemplo, grupos de imagens (GOPs). O dispositivo de exibição 32 exibe os dados de vídeo decodificados para um usuário e pode compreender qualquer um dentre uma variedade de dispositivos de exibição como um tubo de raios catódicos (CRT), um visor de cristal líquido (LCD), um visor de plasma, um visor de diodo emissor de luz orgânico (OLED) ou um outro tipo de dispositivo de exibição.
[0035] Cada um dentre o codificador de vídeo 20 e o decodificador de vídeo 30 pode ser implantado como qualquer um dentre uma variedade de conjuntos de circuitos de codificador ou decodificador adequado, como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de porta programável em campo (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. Quando as técnicas são 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 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 20 e o decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, em que qualquer um dos quais pode ser integrado como parte de um codificador/decodificador (CODEC) combinado em um respectivo dispositivo.
[0036] A unidade de pré-processamento 19 e a unidade de pós-processamento 31 podem ser, cada uma, implantadas como qualquer um dentre uma variedade de conjunto de circuitos de codificador adequado, como um ou mais microprocessadores, DSPs, ASICs, FPGAs, lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. Quando as técnicas são 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 executar as instruções em hardware com o uso de um ou mais processadores para realizar as técnicas desta revelação.
[0037] O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de compactação de vídeo, como o padrão de codificação de vídeo de alta eficiência (HEVC) recentemente finalizado e podem estar em conformidade com o modelo de teste de HEVC (HM). O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar adicionalmente de acordo com uma extensão HEVC, como a extensão de alcance, a extensão de visualização múltipla (MV-HEVC), ou a extensão escalável (SHVC) que foi desenvolvida pela Joint Collaboration Team em codificação de vídeo (JCT-VC), bem como Joint Collaboration Team em desenvolvimento de extensão de codificação de vídeo 3D (JCT-3V) do grupo de especialistas de codificação de vídeo ITU-T (VCEG) e grupo de especialistas de imagem em movimento ISO/IEC (MPEG).
[0038] O codificador de vídeo 20 e o decodificador de vídeo 30 também podem operar de acordo com outros padrões da indústria ou de propriedade, como o padrão ITU-T H.264, alternativamente denominado como ISO/IEC MPEG-4, Parte 10, codificação de vídeo avançada (AVC), ou extensões de tais padrões, como as extensões de codificação de vídeo escalável (SVC) e codificação de vídeo de visualização múltipla (MVC). As técnicas desta revelação, no entanto, não se limitam a qualquer padrão de codificação particular. Outros exemplos de padrões de compactação de vídeo incluem ITU-T H.261, ISO/IEC MPEG-l Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263 e ISO/IEC MPEG-4 Visual.
[0039] ITU-T VCEG (Q6/16) e ISO/IEC MPEG (JTC 1/SC 29/WG 11) estão agora estudando a necessidade potencial por padronização de tecnologia de codificação de vídeo futura com uma capacidade de compactação que ultrapassa significativamente aquela do padrão de HEVC atual (incluindo suas extensões atuais e extensões de curto prazo para codificação de conteúdo de tela e codificação de alto intervalo dinâmico). Os grupos estão trabalhando em conjunto nessa atividade de exploração em um esforço de colaboração conjunta conhecido como o Joint Video Exploration Team (JVET) para avaliar projetos de tecnologia de compactação propostos. O JVET se reuniu pela primeira vez em 19 a 21 de outubro de 2015 e desenvolveu várias versões diferentes de software de referência, denominadas como modelos de exploração conjunta (“JEM” - Joint Exploration Model). Um exemplo de tal software de referência é denominado como JEM 7 e é descrito em J. Chen, E. Alshina, G. J. Sullivan, J.-R. Ohm, J. Boyce,“Algorithm Description of Joint Exploration Test Model 7”, JVET-G1001, 13 a 21 de julho de 2017.
[0040] Com base no trabalho de ITU-T VCEG (Q6/16) e ISO/IEC MPEG (JTC l/SC 29/WG 11), um novo padrão de codificação de vídeo, denominado como o padrão de codificação de vídeo versátil (VVC), está em desenvolvimento pelo Joint Video Expert Team (JVET) de VCEG e MPEG. Um rascunho inicial do VVC está disponível no documento JVET-J1001 “Versatile Video Coding (Draft 1)” e sua descrição de algoritmo está disponível no documento JVET-J1002 “Algorithm description for Versatile Video Coding and Test Model 1 (VTM 1)”. Um outro rascunho inicial do VVC está disponível no documento JVET-J1001 “Versatile Video Coding (Draft 3)” e sua descrição de algoritmo está disponível no documento JVET-L1002 “Algorithm description for Versatile Video Coding and Test Model 3 (VTM 3)”.
[0041] As técnicas desta revelação podem usar a terminologia de HEVC para facilidade de explicação. Não deve ser presumido, no entanto, que as técnicas desta revelação são limitadas a HEVC, e de fato, é explicitamente contemplado que as técnicas desta revelação podem ser implantadas em padrões sucessores a HEVC e suas extensões.
[0042] Em HEVC e outros padrões de codificação de vídeo exemplificadores, uma sequência de vídeo pode incluir uma série de imagens. As imagens também podem ser denominadas como “quadros”. Uma imagem pode incluir três matrizes de amostra, denotadas SL, SCb e SCr. SL é uma matriz bidimensional (isto é, um bloco) de amostras luma. SCb é uma matriz bidimensional de amostras de crominância Cb. SCr é uma matriz bidimensional de amostras de crominância Cr. As amostras de crominância também podem ser denominadas no presente documento como amostras “croma”. Em outros casos, uma imagem pode ser monocromática e pode incluir apenas uma matriz de amostras luma.
[0043] O codificador de vídeo 20 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 luma, dois blocos de árvore de codificação correspondentes de amostras croma e estruturas de sintaxe usadas para codificar as amostras dos blocos de árvore de codificação. Em uma imagem monocromática ou uma imagem 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 um “bloco de árvore” ou uma “unidade de codificação maior” (LCU). As CTUs de HEVC podem ser amplamente análogas aos macroblocos de outros padrões de codificação de vídeo, como H.264/AVC. No entanto, uma CTU não é necessariamente limitada 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 ordenados de maneira consecutiva na varredura raster.
[0044] Esta revelação pode usar o termo “unidade de vídeo” ou “bloco de vídeo” para se referir a um ou mais blocos de amostras e estruturas de sintaxe usadas para codificar amostras do um ou mais blocos de amostras. Os tipos exemplificadores de unidades de vídeo podem incluir CTUs, CUs, PUs, unidades de transformada (TUs) em HEVC ou macroblocos, divisões de macrobloco e assim por diante, em outros padrões de codificação de vídeo.
[0045] Para gerar uma CTU codificada, o codificador de vídeo 20 pode realizar de maneira recursiva a divisão de quad-tree 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 luma e dois blocos de codificação correspondentes de amostras croma de uma imagem que tem uma matriz de amostra luma, uma matriz de amostra Cb e uma matriz de amostra Cr, e estruturas de sintaxe usadas para codificar as amostras dos blocos de codificação. Em uma imagem monocromática ou uma imagem 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.
[0046] O codificador de vídeo 20 pode dividir um bloco de codificação de uma CU em um ou mais blocos de predição. Um bloco de predição pode ser um bloco retangular (isto é, quadrado ou não quadrado) de amostras em que a mesma predição é aplicada. Uma unidade de predição (PU) de uma CU pode compreender um bloco de predição de amostras luma, dois blocos de predição correspondentes de amostras croma de uma imagem, e estruturas de sintaxe usadas para predizer as amostras de bloco de predição. Em uma imagem monocromática ou uma imagem que tem três planos de cor separados, uma PU pode compreender um único bloco de predição e estruturas de sintaxe usadas para predizer as amostras de bloco de predição. O codificador de vídeo 20 pode gerar blocos preditivos luma, Cb e Cr para blocos de predição luma, Cb e Cr de cada PU da CU.
[0047] O codificador de vídeo 20 pode usar intra- predição ou inter-predição para gerar os blocos preditivos para uma PU. Se o codificador de vídeo 20 usar intra- predição para gerar os blocos preditivos de uma PU, o codificador de vídeo 20 pode gerar os blocos preditivos da PU com base em amostras decodificadas da imagem associada à PU.
[0048] Se o codificador de vídeo 20 usar intra- predição para gerar os blocos preditivos de uma PU, o codificador de vídeo 20 pode gerar os blocos preditivos da PU com base em amostras decodificadas de uma ou mais imagens diferentes da imagem associada à PU. A inter- predição pode ser inter-predição unidirecional (isto é, uni-predição) ou inter-predição bidirecional (isto é, bi- predição). Para realizar a uni-predição ou bi-predição, o codificador de vídeo 20 pode gerar uma primeira lista de imagem de referência (RefPicList0) e uma segunda lista de imagem de referência (RefPicList1) para uma fatia atual.
[0049] Cada uma das listas de imagem de referência pode incluir uma ou mais imagens de referência. Mediante o uso de uni -predição, o codificador de vídeo 20 pode pesquisar as imagens de referência em qualquer uma dentre ou tanto em RefPicList0 como em RefPicList1 para determinar uma localização de referência dentro de uma imagem de referência. Adicionalmente, mediante o uso de uni-predição, o codificador de vídeo 20 pode gerar, com base, pelo menos em parte, em amostras que correspondem à localização de referência, os blocos de amostra preditivos para a PU. Ademais, mediante o uso de uni-predição, o codificador de vídeo 20 pode gerar um único vetor de movimento que indica um deslocamento espacial entre um bloco de predição da PU e a localização de referência. Para indicar o deslocamento espacial entre um bloco de predição da PU e a localização de referência, um vetor de movimento pode incluir um componente horizontal que especifica um deslocamento horizontal entre o bloco de predição da PU e a localização de referência e pode incluir um componente vertical que especifica um deslocamento vertical entre o bloco de predição da PU e a localização de referência.
[0050] Mediante o uso de bi-predição para codificar uma PU, o codificador de vídeo 20 pode determinar uma primeira localização de referência em uma imagem de referência em RefPicList0 e uma segunda localização de referência em uma imagem de referência em RefPicList1. O codificador de vídeo 20 pode, então, gerar, com base, pelo menos em parte, nas amostras que correspondem à primeira e à segunda localizações de referência, os blocos preditivos para a PU. Ademais, mediante o uso de bi-predição para codificar a PU, o codificador de vídeo 20 pode gerar um primeiro movimento que indica um deslocamento espacial entre um bloco de amostra da PU e a primeira localização de referência e um segundo movimento que indica um deslocamento espacial entre o bloco de predição da PU e a segunda localização de referência.
[0051] Depois que o codificador de vídeo 20 gera blocos preditivos luma, Cb e Cr para uma ou mais PUs de uma CU, o codificador de vídeo 20 pode gerar um bloco residual luma para a CU. Cada amostra no bloco residual luma da CU indica uma diferença entre uma amostra luma em um dentre os blocos luma preditivos da CU e uma amostra correspondente no bloco de codificação luma original da CU. Além disso, o codificador de vídeo 20 pode gerar um bloco residual Cb para a CU. Cada amostra no bloco residual Cb da CU pode indicar uma diferença entre uma amostra Cb em um dentre os blocos Cb preditivos da CU e uma amostra correspondente no bloco de codificação Cb original da CU. O codificador de vídeo 20 também pode gerar um bloco residual Cr para a CU. Cada amostra no bloco residual Cr da CU pode indicar uma diferença entre uma amostra Cr em um dentre os blocos Cr preditivos da CU e uma amostra correspondente no bloco de codificação Cr original da CU.
[0052] Adicionalmente, o codificador de vídeo 20 pode usar a divisão quadtree para decompor os blocos residuais luma, Cb e Cr de uma CU em um ou mais blocos de transformada luma, Cb e Cr. Um bloco de transformada pode ser um bloco 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 luma, dois blocos de transformada correspondentes de amostras croma e estruturas de sintaxe usadas para transformar as amostras de blocos de transformada. Em uma imagem monocromática ou uma imagem que tem três planos de cor separados, uma TU pode compreender um único bloco de transformada e estruturas de sintaxe usadas para transformar as amostras de bloco de predição. Dessa forma, cada TU de uma CU pode ser associada a um bloco de transformada luma, um bloco de transformada Cb e um bloco de transformada Cr. O bloco de transformada luma associado à TU pode ser um sub-bloco do bloco residual luma da CU. O bloco de transformada Cb pode ser um sub-bloco do bloco residual Cb da CU. O bloco de transformada Cr pode ser um sub-bloco do bloco residual Cr da CU.
[0053] O codificador de vídeo 20 pode aplicar uma ou mais transformadas a um bloco de transformada luma de uma TU para gerar um bloco de coeficiente 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 vídeo 20 pode aplicar uma ou mais transformadas em um bloco de transformada Cb de uma TU para gerar um bloco de coeficiente Cb para a TU. O codificador de vídeo 20 pode aplicar uma ou mais transformadas em um bloco de transformada Cr de uma TU para gerar um bloco de coeficiente Cr para a TU.
[0054] Em JEM7, em vez de usar a estrutura de divisão quadtree de HEVC descrito acima, uma estrutura de divisão de árvore binária quadtree (QTBT) pode ser usada. A estrutura QTBT remove os conceitos de múltiplos tipos de divisão. Ou seja, a estrutura QTBT remove a separação dos conceitos de CU, PU e TU, e suporta mais flexibilidade para formatos de divisão de CU. Na estrutura de bloco QTBT, uma CU pode ter um formato retangular ou quadrado. Em um exemplo, uma CU é a primeira divisão por uma estrutura quadtree. Os nós folha de quadtree são adicionalmente divididos por uma estrutura de árvore binária.
[0055] Em alguns exemplos, existem dois tipos de divisão: divisão horizontal simétrica e divisão vertical simétrica. Os nós folha de árvore binária são chamados de CUs, e essa segmentação (isto é, a CU) é usada para o processamento de transformada e predição sem qualquer divisão adicional. Isso significa que a CU, PU e TU têm o mesmo tamanho de bloco na estrutura de bloco de codificação QTBT. Em JEM, uma CU às vezes consiste em blocos de codificação (CBs) de componentes de cor diferentes. Por exemplo, uma CU contém um CB luma e dois CBs croma no caso de fatias P e B do formato de croma 4:2:0 e às vezes consiste em um CB de um único componente. Por exemplo, uma CU contém apenas um CB luma ou apenas dois CBs croma no caso de fatias I.
[0056] Após a geração de um bloco de coeficiente (por exemplo, um bloco de coeficiente luma, um bloco de coeficiente Cb ou um bloco de coeficiente Cr), o codificador de vídeo 20 pode quantificar o bloco de coeficiente. A quantificação se refere, em geral, a um processo em que os coeficientes de transformada são quantificados para reduzir possivelmente a quantidade de dados usados para representar os coeficientes de transformada, fornecendo compactação adicional. Adicionalmente, o codificador de vídeo 20 pode quantificar de maneira inversa os coeficientes de transformada e aplicar uma transformada inversa aos coeficientes de transformada a fim de reconstruir blocos de transformada de
TUs de CUs de uma imagem. O codificador de vídeo 20 pode usar os blocos de transformada reconstruídos de TUs de uma CU e os blocos preditivos de PUs da CU para reconstruir blocos de codificação da CU. Mediante a reconstrução dos blocos de codificação para cada CU de uma imagem, o codificador de vídeo 20 pode reconstruir a imagem. O codificador de vídeo 20 pode armazenar imagens reconstruídas em um armazenamento temporário de imagem decodificada (DPB). O codificador de vídeo 20 pode usar imagens reconstruídas no DPB para inter-predição e intra- predição.
[0057] Depois que o codificador de vídeo 20 quantifica um bloco de coeficiente, o codificador de vídeo 20 pode codificar por entropia elementos de sintaxe que indicam os coeficientes de transformada quantificados. Por exemplo, o codificador de vídeo 20 pode realizar a codificação aritmética binária adaptável ao contexto (CABAC) nos elementos de sintaxe que indicam os coeficientes de transformada quantificados. O codificador de vídeo 20 pode emitir os elementos de sintaxe codificados por entropia em um fluxo de bits.
[0058] O codificador de vídeo 20 pode emitir um fluxo de bits que inclui uma sequência de bits que forma uma representação de imagens codificadas e dados associados. O fluxo de bits pode compreender uma sequência de unidades de camada de abstração de rede (NAL). Cada uma das unidades NAL inclui um cabeçalho de unidade NAL e encapsula uma carga útil de sequência de bytes brutos (RBSP). O cabeçalho de unidade NAL pode incluir um elemento de sintaxe que indica um código de tipo de unidade NAL. O código de tipo de unidade NAL especificado pelo cabeçalho de unidade NAL de uma unidade NAL indica o tipo da unidade NAL. Uma RBSP pode ser uma estrutura de sintaxe que contém um número inteiro de bytes que é encapsulado dentro de uma unidade NAL. Em alguns casos, uma RBSP inclui zero bits.
[0059] Tipos diferentes de unidades NAL podem encapsular tipos diferentes de RBSPs. Por exemplo, um primeiro tipo de unidade NAL pode encapsular uma RBSP para um conjunto de parâmetros de imagem (PPS), um segundo tipo de unidade NAL pode encapsular uma RBSP para uma fatia codificada, um terceiro tipo de unidade NAL pode encapsular uma RBSP para informações de enriquecimento suplementar (SEI) e assim por diante. Um PPS é uma estrutura de sintaxe que pode conter elementos de sintaxe que se aplicam a zero ou mais imagens codificadas inteiras. As unidades NAL que encapsulam RBSPs para dados de codificação de vídeo (em oposição a RBSPs para conjunto de parâmetros e mensagens SEI) podem ser denominadas como unidades NAL de camada de codificação de vídeo (VCL). Uma unidade NAL que encapsula uma fatia codificada pode ser denominada no presente documento como uma unidade NAL de fatia codificada. Uma RBSP para uma fatia codificada pode incluir um cabeçalho de fatia e dados de fatia.
[0060] O decodificador de vídeo 30 pode receber um fluxo de dados. Além disso, o decodificador de vídeo 30 pode analisar o fluxo de bits para decodificar elementos de sintaxe a partir do fluxo de bits. O decodificador de vídeo 30 pode reconstruir as imagens dos dados de vídeo com base, pelo menos em parte, nos elementos de sintaxe decodificados a partir do fluxo de bits. O processo para reconstruir os dados de vídeo pode ser, em geral, recíproco ao processo realizado pelo codificador de vídeo 20. Por exemplo, o decodificador de vídeo 30 pode usar vetores de movimento de PUs para determinar blocos preditivos para as PUs de uma CU atual. O decodificador de vídeo 30 pode usar um vetor de movimento ou vetores de movimento de PUs para gerar blocos preditivos para as PUs.
[0061] Além disso, o decodificador de vídeo 30 pode quantificar de maneira inversa os blocos de coeficiente associados a TUs da CU atual. O decodificador de vídeo 30 pode realizar transformadas inversas nos blocos de coeficiente para reconstruir blocos de transformada associados às TUs da CU atual. O decodificador de vídeo 30 pode reconstruir os blocos de codificação da CU atual mediante a adição das amostras dos blocos de amostra preditivos para PUs da CU atual a amostras correspondentes dos blocos de transformada das TUs da CU atual. Mediante a reconstrução dos blocos de codificação para cada CU de uma imagem, o decodificador de vídeo 30 pode reconstruir a imagem. O decodificador de vídeo 30 pode armazenar imagens decodificadas em um armazenamento temporário de imagem decodificada para saída e/ou para uso na decodificação de outras imagens.
[0062] As aplicações de vídeo de próxima geração são antecipadas para operar com dados de vídeo que representam o cenário capturado com HDR e WCG. Os parâmetros da gama de cores e intervalo dinâmico usados são dois atributos independentes de conteúdo de vídeo, e sua especificação para propósitos de serviços de multimídia e televisão digital são definidos por vários padrões internacionais. Por exemplo, ITU-R R.ec. 709 define parâmetros para HDTV como Intervalo dinâmico padrão e gama de cores padrão e o ITU-R Rec.2020 especifica parâmetros de UHDTV como alto intervalo dinâmico e gama de cores ampla. Também existem outros documentos SDOs que especificam esses atributos em outros sistemas, por exemplo, a gama de cores P3 é definida em SMPTE-231-2 e alguns parâmetros de HDR são definidos em STMPTE-2084. Uma breve descrição do intervalo dinâmico e da gama de cores para dados de vídeo é fornecida abaixo.
[0063] O codificador de vídeo 20 e decodificador de vídeo 30, em conjunto com outros componentes, como a unidade de pré-processamento 19 e unidade de pós- processamento 31, respectivamente, podem implantar a codificação de intervalo dinâmico. O intervalo dinâmico é tipicamente definido como a razão entre o brilho mínimo e máximo do sinal de vídeo. O intervalo dinâmico também é medido em termos de “f-stop”, em que um f-stop corresponde a uma duplicação do intervalo dinâmico de sinal. Na definição do MPEG, o conteúdo de alto intervalo dinâmico é tal conteúdo que apresenta variação de brilho com mais de 16 f-stops. Em alguns termos, os níveis entre 10 e 16 f- stops são considerados como intervalo dinâmico intermediário, mas também podem ser considerados como HDR em outras definições. Ao mesmo tempo, o sistema visual humano tem capacidade para perceber um intervalo dinâmico muito maior e inclui um mecanismo de adaptação para estreitar o chamado intervalo simultâneo.
[0064] Os aplicativos e serviços de vídeo atuais são regulados pela Rec.709 e fornecem SDR, que suporta tipicamente uma faixa de brilho (ou luminância) de cerca de 0,1 a 100 candelas (cd) por m2 (muitas vezes chamadas de “nits”), que leva a menos de 10 f-stops. Espera-se que os serviços de vídeo de próxima geração forneçam o intervalo dinâmico de até 16 f-stops e, embora a especificação detalhada esteja atualmente em desenvolvimento, alguns parâmetros iniciais foram especificados em SMPTE-2084 e Rec.2020.
[0065] A Figura 2 mostra um exemplo de visão humana e capacidades de exibição. A visualização do intervalo dinâmico fornecida por SDR de HDTV, HDR esperado de EIHDTV e intervalo dinâmico de HVS é mostrada na Figura
2.
[0066] A Figura 3 mostra um exemplo de gamas de cores. Um outro aspecto para uma experiência de vídeo mais realista além de HDR é a dimensão da cor, que é convencionalmente definida pela gama de cores. A Figura 3 mostra a gama de cores de SDR (triângulo 100 com base nas cores primárias vermelha, verde e azul de BT.709) e a gama de cores mais ampla para EIHDTV (triângulo 102 com base nas cores primárias vermelha, verde e azul de BT.2020). A Figura 3 também representa o chamado local de espectro (formato 104), que representa os limites das cores naturais. Conforme ilustrado pela Figura 3, o movimento de cores primárias de BT.709 para BT.2020 visa fornecer serviços de EIHDTV com cerca de 70% mais cores. D65 especifica a cor branca para determinadas especificações.
[0067] Os exemplos de especificação de gama de cores são mostrados na Tabela 1.
Tabela 1 Parâmetros de colorimetria para espaços de cores selecionados Parâmetros de espaço de cores RGB Espaço de Ponto branco Cores primárias cores XW YW XR YR XG YG XB YB DCI-P3 0,314 0,351 0,680 0,320 0,265 0,690 0,150 0,060 ITU-R 0,3127 0,3290 0,64 0,33 0,30 0,60 0,15 0,06 BT.709 ITU-R 0,3127 0,3290 0.708 0.292 0.170 0.797 0.131 0.046 BT.2020
[0068] O codificador de vídeo 20 e o decodificador de vídeo 30 podem realizar a compactação de dados de vídeo de HDR. HDR/WCG é tipicamente adquirido e armazenado em uma precisão muito alta por componente (até ponto flutuante), com o formato de croma 4:4:4 e um espaço de cores muito amplo (por exemplo, XYZ). Essa representação visa a alta precisão e é (quase) matematicamente sem perdas. No entanto, esse formato apresenta muitas redundâncias e não é ideal para propósitos de compactação. Um formato de precisão menor com suposição à base de HVS é tipicamente usado para aplicações de vídeo do estado da técnica. A conversão típica de formato de dados de vídeo de HDR para propósitos de compactação consiste em três elementos principais, conforme mostrado na Figura 4 - (1) função de transferência não linear (TF) para compactação de intervalo dinâmico, (2) conversão de cores para um espaço de cores mais compacto ou robusto e (3) conversão de representação flutuante para número inteiro (quantificação).
[0069] Um exemplo de um processo de conversão de formato de dados de vídeo para propósitos de compactação inclui três processos principais, conforme mostrado na Figura 4. As técnicas da Figura 4 podem ser realizadas pelo dispositivo de origem 12. Os dados de RGB lineares 110 podem ser dados de vídeo de HDR/WCG e podem ser armazenados em uma representação de ponto flutuante. Os dados de RGB lineares 110 podem ser compactados com o uso de uma função de transferência não linear (TF) 112 para compactação de intervalo dinâmico. A função de transferência 112 pode compactar dados de RGB lineares 110 com o uso de qualquer número de funções de transferência não lineares, por exemplo, o PQ TF conforme definido em SMPTE-2084. Em alguns exemplos, o processo de conversão de cores 114 converte os dados compactados em um espaço de cores mais compacto ou robusto (por exemplo, um espaço de cores YUV ou YCrCb) que é mais adequado para compactação por um codificador de vídeo híbrido. Esses dados são então quantificados com o uso de uma unidade de quantificação de representação de flutuante para número inteiro 116 para produzir dados de HDR’ convertidos 118. Nesse exemplo, os dados de HDR’ 118 estão em uma representação de número inteiro. Os dados do HDR’ estão agora em um formato mais adequado para compactação por um codificador de vídeo híbrido (por exemplo, codificador de vídeo 20 que aplica técnicas de HEVC). A ordem dos processos representados na Figura 4 é dada como um exemplo e pode variar em outras aplicações. Por exemplo, a conversão de cores pode preceder o processo de TF. Além disso, o processamento adicional, por exemplo, subamostragem espacial, pode ser aplicado a componentes de cores.
[0070] A conversão inversa no decodificador (por exemplo, decodificador de vídeo 30) é representada na Figura 5. As técnicas da Figura 5 podem ser realizadas pelo decodificador de vídeo 30 e/ou pela unidade de pós- processamento 31 no dispositivo de destino 14. Os dados de HDR’ convertidos 120 podem ser obtidos no dispositivo de destino 14 através da decodificação de dados de vídeo com o uso de um decodificador de vídeo híbrido (por exemplo, decodificador de vídeo 30 que aplica técnicas de HEVC). Os dados de HDR’ 120 podem então ser quantificados de maneira inversa pela unidade de quantificação inversa 122. Então, um processo de conversão de cor inversa 124 pode ser aplicado aos dados de HDR’ quantificados de maneira inversa. O processo de conversão de cores inversa 124 pode ser o inverso do processo de conversão de cores 114. Por exemplo, o processo de conversão de cores inversa 124 pode converter os dados de HDR’ de um formato YCrCb de volta para um formato RGB. Em seguida, a função de transferência inversa 126 pode ser aplicada aos dados para adicionar novamente o intervalo dinâmico que foi compactado pela função de transferência 112 para recriar os dados de RGB lineares 128.
[0071] O alto intervalo dinâmico de dados de RGB de entrada na representação de ponto linear e flutuante é compactado com a função de transferência não linear usada TF, por exemplo, PQ TF conforme definido em SMPTE-2084, após o qual o mesmo é convertido em um espaço de cores alvo mais adequado para compactação, por exemplo, YCbCr, e então quantificado para obter a representação de número inteiro. A ordem desses elementos é dada como um exemplo e pode variar em aplicações do mundo real; por exemplo, a conversão de cores pode preceder o módulo de TF, bem como o processamento adicional, por exemplo, a subamostragem espacial pode ser aplicada aos componentes de cores. Esses três componentes são descritos em mais detalhes.
[0072] O codificador de vídeo 20 e o decodificador de vídeo 30 podem usar funções de transferência (TFs). Uma TF é aplicada aos dados para compactar o intervalo dinâmico dos dados e possibilitar a representação dos dados com número limitado de bits. Essa função é tipicamente uma função não linear unidimensional (1D) que reflete o inverso da função de transferência eletro-óptica (EOTF) da exibição de usuário final, conforme especificado para SDR em Rec.709, ou que aproxima a percepção de HVS a alterações de brilho, conforme para PQ TF especificado em SMPTE-2084 para HDR. O processo inverso da OETF é a EOTF (função de transferência eletro-óptica), que mapeia os níveis de código de volta para luminância. A Figura 6 mostra vários exemplos de TFs.
[0073] A especificação do ST2084 definiu a aplicação de EOTF conforme exposto a seguir. TF é aplicada a valores lineares normalizados de R,G,B que resultam em representação não linear de R'G’B’. ST2084 define a normalização por NORM = 10000, que está associada a um brilho de pico de 10.000 nits (cd/m2).
[0074] A Figura 7 mostra uma visualização exemplificadora de PQ TF (ST2084 EOTF). Com os valores de entrada (valor de cor linear) normalizados para o intervalo
0..1 e os valores de saída normalizados (valor de cor não linear) PQ EOTF são visualizados na Figura 7. Conforme pode ser visto a partir da curva, 1 por cento (baixa iluminação) de intervalo dinâmico do sinal de entrada é convertido em 50% de intervalo dinâmico de sinal de saída.
[0075] Tipicamente, a EOTF é definida como uma função com uma precisão de ponto flutuante, dessa forma, nenhum erro é introduzido em um sinal com essa não linearidade se a TF inversa chamada OETF for aplicada. A TF inversa (OETF) especificada em ST2084 é definida como função inversePQ:
[0076] Com precisão de ponto flutuante, a aplicação sequencial de EOTF e OETF fornece uma reconstrução perfeita sem erros. No entanto, essa representação não é ideal para serviços de difusão e transmissão contínua. A representação mais compacta com precisão de bits fixos dos dados não lineares de R'G'B’ é descrita nas seções a seguir. Observe que EOTF e OETF são um objeto de pesquisas muito ativas atualmente, e TF usada em alguns sistemas de codificação de vídeo de HDR pode ser diferente de ST2084.
[0077] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para implantar transformadas de cores. Os dados de RGB são tipicamente usados como uma entrada, devido ao fato de que os dados de RGB são produzidos por sensores de captura de imagem. No entanto, esse espaço de cores tem alta redundância entre os componentes e não é ideal para a representação compacta. Para obter uma representação mais compacta e mais robusta, os componentes de RGB são tipicamente convertidos em um espaço de cores mais não correlacionado, mais adequado para compactação, por exemplo, YCbCr. Esse espaço de cores separa o brilho na forma de luminância e informações de cores em diferentes componentes não correlacionados.
[0078] Para sistemas modernos de codificação de vídeo, o espaço de cores tipicamente usado é YCbCr, conforme especificado em ITU-R BT.709 ou ITU-R BT.709. O espaço de cores YCbCr no padrão BT.709 especifica o seguinte processo de conversão a partir de R'G'B’ para Y'CbCr (representação de luminância não constante):
[0079] O acima pode também ser implantado com o uso da seguinte conversão aproximada que evita a divisão para os componentes Cb e Cr:
[0080] O padrão ITU-R BT.2020 especifica o seguinte processo de conversão a partir de R'G'B’ para Y'CbCr (representação de luminância não constante):
[0081] O acima pode também ser implantado com o uso da seguinte conversão aproximada que evita a divisão para os componentes Cb e Cr:
[0082] Deve ser observado que ambos os espaços de cores permanecem normalizados, portanto, para os valores de entrada normalizados no intervalo 0 ... 1, os valores resultantes serão mapeados para o intervalo 0..1. De modo geral, as transformadas de cores implantadas com precisão de ponto flutuante fornecem a reconstrução perfeita, dessa forma, esse processo é sem perda.
[0083] O codificador de vídeo 20 e o decodificador de vídeo 30 podem implantar quantificação/conversão de ponto fixo. Os estágios de processamento descritos acima são tipicamente implantados na representação de precisão de ponto flutuante e, dessa forma, podem ser considerados como sem perdas. No entanto, esse tipo de precisão pode ser considerado redundante e dispendioso para a maioria das aplicações eletrônicas de consumo. Para tais aplicações, os dados de entrada em um espaço de cores alvo são tipicamente convertidos em uma precisão de ponto fixo de profundidade de bit alvo. Certos estudos mostram que a precisão de 10 a 12 bits em combinação com o PQ TF é suficiente para fornecer dados de HDR de 16 f-stops com distorção abaixo da diferença mínima perceptível. Os dados representados com precisão de 10 bits podem ser codificados adicionalmente com a maioria das soluções de codificação de vídeo do estado da técnica. Esse processo de conversão inclui a quantificação de sinal e é um elemento de codificação com perdas e é uma fonte de imprecisão introduzida nos dados convertidos.
[0084] Um exemplo de tal quantificação aplicada a palavras de código em um espaço de cores alvo, YCbCr nesse exemplo, é mostrado abaixo. Os valores de entrada YCbCr representados na precisão de ponto flutuante são convertidos em um sinal de profundidade de bits fixa BitDepthY para o valor Y e BitDepthC para os valores de croma (Cb, Cr).
[0085] O codificador de vídeo 20 e o decodificador de vídeo 30 podem implantar DRA. O DRA foi inicialmente proposto no ajuste de intervalo dinâmico SEI para habilitar a codificação de vídeo de alto intervalo dinâmico com capacidade compatível com versões anteriores, D. Rusanovskyy, A. K. Ramasubramonian, D. Bugdayci, S. Lee, J. Sole, M. Karczewicz, VCEG documento COM16-C 1027-E, setembro de 2015 (mais adiante neste documento Referência 1). Os autores propuseram implantar DRA como uma função linear por parte f(x) que é definida para um grupo de divisões de intervalo dinâmico não sobrepostas (intervalos) {Ri} do valor de entrada x, em que i é um índice do intervalo com intervalo de 0 a N-1, inclusive, e em que N é o número total de intervalos {Ri} usado para definir a função de DRA. Supõe-se que os intervalos do DRA sejam definidos pelo mínimo e um valor máximo de x que pertençam ao intervalo Ri, por exemplo, [xi,xi+1 - 1] em que xi e xi+1 denotam o valor mínimo dos intervalos Ri e Ri+1 respectivamente. Aplicada ao componente de cor Y do vídeo (luma), a função DRA Sy é definida através de uma escala Sy,i e offset Oy,i que são aplicados a cada x ϵ [xi,xi+1 - 1], dessa forma, Sy = {Sy,i,Oy,i}.
[0086] Com isso, para qualquer Ri, e cada x ϵ [xi,xi+1 - 1], o valor de saída X é calculado conforme exposto a seguir: X = Sy,i * (x – Oy,i) (8)
[0087] Para o processo de mapeamento de DRA inverso para o componente luma Y conduzido no decodificador, a função de DRA Sy é definida pelo inverso de valores de escala Sy,i e desvio Oy,i que são aplicados a cada X ϵ [Xi,Xi+1 - 1].
[0088] Com isso, para qualquer Ri, e cada X ϵ [Xi,Xi+1 - 1], o valor reconstruído x é calculada conforme exposto a seguir: x = X/Sy,i + Oy,i (9)
[0089] O processo de mapeamento de DRA direto para componentes croma Cb e Cr foi definido conforme definido a seguir. O exemplo é dado com o termo “u” que denota amostra de componente de cor Cb que pertence ao intervalo Ri, u ϵ [ui,ui+1 - 1], dessa forma, Su = {Su,i,Ou,i}: U = Su,i * (u – Oy,i) + Offset (10) em que Offset é igual a 2(bitdepth-1) denota o desvio de sinal bipolar Cb, Cr.
[0090] O processo de mapeamento de DRA inverso conduzido no decodificador para componentes croma Cb e Cr foi definido conforme exposto a seguir. O exemplo é dado com o termo U que denota amostra de componente de cor Cb remapeado que pertence ao intervalo Ri, U ϵ [Ui,Ui+1 - 1]: u = (U - Offset)/Su,i+Oy,i (11) em que Offset é igual a 2(bitdepth-1) denota o desvio de sinal bipolar Cb, Cr.
[0091] O codificador de vídeo 20 e o decodificador de vídeo 30 também podem implantar o escalonamento de croma acionado por luma (LCS). LCS foi inicialmente proposto em JCTVC-W0101 HDR CE2: Report on CE2.a-l LCS, A.K. Ramasubramonian, J. Sole, D. Rusanovskyy, D. Bugdayci, M. Karczewicz (mais adiante neste documento Referência 2). Na Referência 2, foram propostas técnicas para ajustar as informações de croma, por exemplo, Cb e Cr, mediante a exploração de informações de brilho associadas à amostra de croma processada. De modo similar à abordagem de DRA da Referência 1, foi proposto aplicar a uma amostra croma um fator de escala Su para Cb e Su,i para Cr. No entanto, em vez de definir funções de DRA como função linear por parte Su = {Su,i,Ou,i} para um conjunto de intervalos {Ri} acessíveis pelo valor de croma u ou v como nas Equações (3) e (4), a abordagem de LCS propõe usar o valor de luma Y para derivar um fator de escala para a amostra croma. Com isso, o mapeamento de LCS direto da amostra croma u (ou v) é conduzido como: U = Su,i(Y) * (u— Offset) + Offset (12) O processo de LCS inverso conduzido no lado de decodificador é definido conforme exposto a seguir: u = (U — Offset)/Su,i(Y) + Offset (13)
[0092] Em mais detalhes, para um determinado pixel situado em (x, y), as amostras croma Cb(x, y) ou Cr(x, y) são escalonadas com um fator derivado de uma função de LCS Scb (ou Scr,) determinada pelo valor de luma correspondente Y’(x, y).
[0093] No LCS direto para amostras croma, os valores Cb (ou Cr) e o valor de luma associado Y’ são tomados como uma entrada para a função de escala de croma Scb (ou Scr,) e Cb ou Cr são convertidos em Cb’ e Cr’ conforme mostrado na Equação 9. No lado de decodificador, o LCS inverso é aplicado, Cb’ ou Cr’ reconstruído são convertidos em Cb ou Cr, conforme mostrado na Equação (10).
[0094] A Figura 8 mostra um exemplo de funções de
LCS, com a função de LCS no exemplo, os componentes croma de pixels com valores menores de luma são multiplicados com fatores de escalonamento menores.
[0095] A relação entre o escalonamento de amostra de DRA e os parâmetros de quantificação será agora discutida. Para ajustar a taxa de compactação, o codificador de vídeo 20 usa esquemas de codificação de vídeo à base de transformada de blocos, como HEVC, com o uso de quantificadores escalares que são aplicados a coeficientes de transformada. O codificador de vídeo 20 pode controlar um quantificador escalar com base em um parâmetro de quantificação (QP), com a relação entre QP e quantificador escalar definida conforme exposto a seguir: escalonador = exp(QP/6)*log(2.0)) (16)
[0096] A função inversa define a relação entre um quantificador escalar e QP em HEVC, conforme exposto a seguir: QP = log2(escalonador)*6; (17)
[0097] Mediante a implantação de DRA, o codificador de vídeo 20 e o decodificador de vídeo 30 escalonam de modo eficaz os dados de pixel e levam em consideração as propriedades de transformada, que podem ser mapeadas para uma classe grande de sinais para o escalonador aplicado no domínio de transformada. Dessa forma, a seguinte relação é definida: dQP = log2(scaleDRA)*6; (18) em que dQP é um desvio de QP aproximado introduzido, por HEVC, por exemplo, mediante a implantação de DRA nos dados de entrada.
[0098] Algumas das não linearidades (por exemplo,
aplicação da função de transferência SMPTE 2084) e representações de cores (por exemplo, ITEi-R BT.2020 ou BT.22100) usadas em sistemas de codificação de vídeo por modem podem resultar em representações de dados de vídeo que apresentam variação significativa da distorção percebida, ou limiar de diferença mínima perceptível (JND), sobre o intervalo dinâmico e os componentes de cor da representação de sinal. Isso pode ser percebido como uma razão de sinal-ruído desigual dentro do intervalo de dados processado. Para tratar desse problema e linearizar as distribuições de erros de codificação (quantificação) no intervalo dinâmico do sinal, o método de DRA da Referência 1 foi proposto.
[0099] A Referência 1 propôs aplicar o DRA para obter uma redistribuição de palavras de código em dados de vídeo em contentor ST 2084/BT.2020 antes de aplicar o esquema de codificação de vídeo híbrido à base de transformada H.265/HEVC, conforme mostrado na Figura 9.
[0100] A redistribuição alcançada por DRA visa a linearização de distorção percebida (razão entre sinal e ruído) dentro de um intervalo dinâmico. Para compensar essa redistribuição no lado de decodificador e converter dados na representação original de ST 2084/BT.2020, um processo de DRA inverso é aplicado aos dados após a decodificação de vídeo.
[0101] Um outro exemplo de tal esquema de DRA foi proposto no projeto de escalonamento de croma acionado por luma (LCS) em HDR em JCTVC-W0101 HDR CE2: Report on CE2.a-l LCS, A.K. Ramasubramonian, J. Sole, D. Rusanovskyy, D. Bugdayci, M. Karczewicz (mais adiante neste documento
Referência 2).
[0102] A Referência 2 propôs técnicas para ajustar as informações de croma, por exemplo, Cb e Cr, mediante a exploração de informações de brilho associadas à amostra de croma processada. De modo similar à abordagem De DRA na Referência 1, foi proposto aplicar a uma amostra croma um fator de escala Su para Cb e Su,i para Cr. No entanto, em vez de definir funções de DRA como função linear por parte Su = {Su,i,Ou,i} para um conjunto de intervalos {Ri} acessíveis pelo valor de croma u ou v como nas Equações (3) e (4), a abordagem de LCS propõe usar o valor de luma Y para derivar um fator de escala para a amostra croma.
[0103] As técnicas de DRA aplicadas ao sinal de vídeo representado com um número finito de bits por amostra, por exemplo, 10 bits, podem ser classificadas como quantificação de nível de pixel. A combinação com a codificação de vídeo que implanta a quantificação escalar à base de bloco no domínio de transformada (por exemplo, H.265/HEVC) produz um sistema de codificação de vídeo com quantificação conjunta do sinal nos domínios de pixel e transformada.
[0104] Os projetos de alguns esquemas de codificação de vídeo podem incorporar ferramentas de codificação de vídeo, lógica normativa de tomada de decisão e parâmetros que são à base de suposição/estimativa de erro de quantificação que é introduzida no sinal codificado. Entre exemplos de tais ferramentas, o filtro de desblocagem H.265/HEVC (por exemplo, HEVC cláusula 8.7.2) e o processo de derivação de QP (por exemplo, HEVC cláusula 8.6.1) no lado de decodificador podem ser listados.
[0105] A aplicação de DRA no nível de pixel pode introduzir um erro de quantificação que não pode ser estimado corretamente, o que pode fazer com que a lógica de decisão usada no decodificador tome decisões de codificação não ideais. Como um exemplo, a Tabela 8-10 da especificação de HEVC define a mudança de QP de croma usada durante a derivação de QP tanto no codificador como no decodificador, o que pode resultar em um índice de QP derivado por Eq. 8- 259/8-260 que não reflete a quantificação/escalonamento de pixels aplicada às amostras do bloco de croma atual.
[0106] Esta revelação descreve técnicas para o controle de parâmetros de quantificação para codificação de vídeo com quantificação à base de pixel/transformação conjunta. Os exemplo de tais sistemas é uma combinação de codificação de vídeo híbrida convencional que usa quantificação no domínio de transformada e DRA que realiza o escalonamento/quantificação no domínio de pixel, no estágio de pré/pós-processamento ou dentro do ciclo de codificação da codificação de vídeo.
[0107] O codificador de vídeo 20 e o decodificador de vídeo 30 podem realizar uma compensação de escalas de DRA para o manuseio de QP de decodificador. As escalas de DRA para três componentes de cores são ajustadas ao manuseio de QP compensado no codec de vídeo.
[0108] Supõe-se que os parâmetros de DRA para 3 componentes de cores (por exemplo Y, Cb, Cr) sejam definidos através das seguintes variáveis:
[0109] Os parâmetros de DRA que conduzem o processamento de pixel são sinalizados através de fluxo de bits codificado ou derivados no lado de decodificador a partir de elementos de sintaxe sinalizados no fluxo de bits. Esses parâmetros de DRA são ajustados adicionalmente levando-se em consideração as informações que descrevem a quantificação dos coeficientes de transformada.
[0110] QPx representa um ajuste ou manipulação de QP conduzido pelo codificador de vídeo 20 para determinado bloco de pixels e sinalizado para o decodificador de vídeo 30 no fluxo de bits ou fornecido ao decodificador de vídeo 30 como informações externas, por exemplo, como informações pré-tabuladas. A saída desse processo é parâmetros de DRA ajustados ( DRA'y, DRA'Cb, DRA'Cr) que devem ser aplicados nas amostras decodificadas (Ydec, Cbdec, Crdec).
[0111] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ajustar as informações de
QP para refletir o impacto de DRA aplicado aos pixels. As informações de QP usadas na tomada de decisão no lado de decodificador são alteradas para refletir o impacto do DRA aplicado aos pixels da imagem decodificada.
[0112] QPx são parâmetros de QP derivados pelo decodificador sem levar em consideração o escalonamento implantado pelo processamento de DRA para os pixels processados atuais.
[0113] A saída deste processo é QP ajustados (QP'y,QP'Cb,QP’Cr) que são usados no processo de tomada de decisão no lado de decodificador. Em alguns exemplos, apenas um subconjunto dos métodos no algoritmo de decodificação irá usar o QP ajustado no processo de tomada de decisão.
[0114] Vários exemplos não limitadores da implantação das técnicas propostas desta revelação serão descritos abaixo.
[0115] A compensação de escalas de DRA para a tabela de mudança de QP de croma será agora descrita. Em alguns exemplos, a derivação dos parâmetros do decodificador pode ter por base informações de QP locais derivadas a partir de elementos de sintaxe do fluxo de bits decodificado e adicionalmente alterada por uma informação externa disponível no lado de decodificador.
[0116] Um exemplo de tal processamento está na especificação de HEVC na cláusula 8.6.1: - As variáveis qPCb e qPCr são definidas iguais ao valor de Qpc, conforme especificado na Tabela 8 a 9, com base no índice qPi igual a qPiCb e qPiCr, respectivamente, e qPiCb e qPiCr são derivadas conforme exposto a seguir: - Se ChromaArrayType for igual a 1, as variáveis qPCb e qPCr são definidas iguais ao valor de QpC, conforme especificado na Tabela 8-10, com base no índice qPi igual a qPiCb e qPiCr, respectivamente. - De outro modo, as variáveis qPCb e qPCr são definidas iguais a Min( qPi, 51 ), com base no índice qPi igual a qPiCb e qPiCr, respectivamente. - Os parâmetros de quantificação croma para os componentes Cb e Cr, Qp'Cb e Qp'Cr, são derivados conforme exposto a seguir: Qp'Cb = qPCb + QpBdOffsetc (8-259) Qp'Cr = qPCr + QpBdOffsetc (8-260) Tabela 8 a 9 - Especificação de Qpc em função de qPi qPi <30 30 31 32 33 34 35 36 37 38 39 40 41 42 43 >43 Qpc =qPi 29 30 31 32 33 33 34 34 35 35 36 36 37 37 =qPi-6
[0117] Em tal exemplo, os parâmetros de escala de DRA para componentes croma podem ser alterados para refletir a mudança de QP introduzida por tal processamento. O exemplo a seguir é dado para o componente Cb, as derivações para os componentes Cr são similares.
[0118] O decodificador de vídeo 30 pode derivar parâmetros de quantificação de croma para o componente Cb com a Tabela 8-10. As informações de QP são estimadas:
[0119] A variável updatedQP1 é adicionalmente usada no processo de decodificação e shiftQP1 fornece estimativas para o impacto no QP introduzido pela Tabela 8-
10. Para harmonizar a quantificação em nível de pixel conduzida pelo manuseio de DRA e QP no decodificador, a função de escalonamento de DRA é alterada conforme exposto a seguir: estimateQP2 = qPcb + QpBdPffsetC + scale2QP(DRACb) (23) em que scale2QP(DRACb) conduz a conversão de Escala para QP, de modo similar, é mostrado na Equação l8 updatedQP2 = fun(Table8-l0, estimateQP2) (24) shiftQP2 = updatedQP2 - estimateQP2;
[0120] Em alguns exemplos, particularmente no caso de implantação de DRA de componente cruzado (por exemplo, LCS), a Equação (23) irá incluir o termo de desvio de QP estimado a partir da escala de DRA do componente Y e o termo de desvio de QP adicional estimado a partir da escala de cromaticidade (escala addnDRACb) usada para produzir DRA para o componente Cb. Por exemplo, estimateQP2 = qPcb + QpBdPffsetC + scale2QP(DRAY) + scale2QP(addnDRACbScale)
[0121] A variável UpdatedQP2 fornece estimativas para QP, no caso de o DRA ser conduzido através do escalonamento de domínio de transformada e shfitQP2 fornece estimativas do impacto sobre o QP introduzido pela Tabela
8-10.
[0122] Em algumas circunstâncias, o shiftQP1 estimado não seria igual ao shiftQP2. Para compensar essa diferença, as escalas de DRA podem ser alteradas com um multiplicador conforme exposto a seguir: shiftScale = Qp2Scale(shiftQP2 - shiftQPl) (25) DRACb’ = shiftScale*DRACb Onde a função Qp2Scale converte a variável QP na escala de quantificador associada, conforme mostrado na Equação 16.
[0123] As saídas desse processo são uma escala de DRA ajustada que é aplicada às amostras decodificadas Cbdec.
[0124] Em alguns exemplos, a saída da função de conversão de escala para QP scale2QP(DRACb) e a estimateQP2 resultante é um valor não inteiro. A fim de lidar com elementos da Tabela 8-10, os valores de QP de entrada e saída da Tabela 8-10 podem ser interpolados entre entradas inteiras, conforme exposto a seguir: qp1 = fun(Table8-l0,(Int) estimateQP2; qp2 = fun(Table8-l0,(Int)(estimateQP2+ 1.0)); (26) shiftQP2 = qp1 + (qp2 – qp1)*(estimateQP2 -(Int) estimateQP2);
[0125] Em ainda outros exemplos, as entradas da Tabela 8-10 (ou informações tabuladas similares) podem ser definidas através de uma função analítica ou sinalizadas explicitamente no fluxo de bits.
[0126] Em ainda outro exemplo, o shiftScale pode ser calculado para compensar o impacto de shiftQP1 da Tabela 8 a 10 conforme exposto a seguir: shiftScale = Qp2Scale(shiftQP1)
[0127] Em alguns exemplos, um índice QP para inicializar as equações 22 e 23 pode ser sinalizado através do fluxo de bits, a fim de evitar a análise e processamento de dependências. Em alguns exemplos, o codificador de vídeo 20 pode estimar parâmetros para as técnicas propostas descritas no presente documento e sinalizar aqueles parâmetros para o decodificador de vídeo 30 através de um fluxo de bits (metadados, mensagem SEI, VUI ou SPS/PPS ou cabeçalho de fatia, etc.). O decodificador de vídeo 30 então recebe os parâmetros a partir do fluxo de bits. Em alguns exemplos, o codificador de vídeo 20 pode derivar os parâmetros das técnicas propostas. O decodificador de vídeo 30 pode implantar um processo especificado a partir de um sinal de entrada ou a partir de outros parâmetros disponíveis associados ao sinal de entrada e realizar a mesma derivação. Em alguns exemplos, o codificador de vídeo 20 pode sinalizar os parâmetros de técnicas propostas explicitamente para o decodificador de vídeo 30. Em ainda outro exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem derivar os parâmetros a partir de outros parâmetros de sinal de entrada, por exemplo, parâmetros da gama de cores de entrada e de recipiente de cores alvo (cores primárias).
[0128] A Figura 10 é um diagrama de blocos que ilustra um codificador de vídeo exemplificador 20 que pode implantar as técnicas descritas nesta revelação. O codificador de vídeo 20 pode realizar intra- e inter- codificação de blocos de vídeo dentro de fatias de vídeo. A intra-codificação depende da predição espacial para reduzir ou remover redundância espacial em vídeo dentro de um determinado quadro de vídeo ou imagem. A inter-codificação depende da predição temporal para reduzir ou remover redundância temporal em vídeo dentro de quadros ou imagens adjacentes de uma sequência de vídeo. O modo intra (modo I) pode se referir a qualquer um dentre vários modos de compactação com base espacial. Os modos inter, como predição unidirecional (modo P) ou bi-predição (modo B), podem se referir a qualquer um dentre vários modos de compactação com base temporal.
[0129] No exemplo da Figura 10, o codificador de vídeo 20 inclui uma memória de dados de vídeo 33, unidade de divisão 35, unidade de processamento de predição 41, somador 50, unidade de processamento de transformada 52, unidade de quantificação 54, unidade de codificação por entropia 56. A unidade de processamento de predição 41 inclui unidade de estimação de movimento (MEU) 42, unidade de compensação de movimento (MCU) 44 e unidade de processamento de intra-predição 46. Para a reconstrução de bloco de vídeo, o codificador de vídeo 20 também inclui unidade de quantificação inversa 58, unidade de processamento de transformada inversa 60, somador 62, unidade de filtro 64 e memória temporária de imagem decodificada (DPB) 66.
[0130] Conforme mostrado na Figura 10, o codificador de vídeo 20 recebe dados de vídeo e armazenada os dados de vídeo recebidos na memória de dados de vídeo
33. A memória de dados de vídeo 33 pode armazenar dados de vídeo a serem codificados pelos componentes do codificador de vídeo 20. Os dados de vídeo armazenados na memória de dados de vídeo 33 podem ser obtidos, por exemplo, a partir da fonte de vídeo 18. A DPB 66 pode ser uma memória de imagem de referência que armazena dados de vídeo de referência para uso na decodificação de dados de vídeo por meio do codificador de vídeo 20, por exemplo, em modos de intra- ou inter-codificação. A memória de dados de vídeo 33 e DPB 66 podem ser formadas por qualquer um dentre uma variedade de dispositivos de memória, como memória de acesso aleatório dinâmico (DRAM), incluindo DRAM síncrono (SDRAM), RAM magneto-resistiva (MRAM), RAM resistiva (RRAM) ou outros tipos de dispositivos de memória. A memória de dados de vídeo 33 e DPB 66 podem ser fornecidas pelo mesmo dispositivo de memória ou dispositivos de memória separados. Em diversos exemplos, a memória de dados de vídeo 33 pode ser em chip com outros componentes de codificador de vídeo 20 ou fora de chip em relação àqueles componentes.
[0131] A unidade de divisão 35 recupera os dados de vídeo a partir da memória de dados de vídeo 33 e divide os dados de vídeo em blocos de vídeo. Essa divisão também pode incluir a divisão em fatias, blocos ou outras unidades maiores, bem como divisão de bloco de vídeo, por exemplo, de acordo com uma estrutura quadtree de LCUs e CUs. O codificador de vídeo 20 ilustra, em geral, os componentes que codificam blocos de vídeo dentro de uma fatia de vídeo a ser codificada. A fatia pode ser dividida em múltiplos blocos de vídeo (e possivelmente em conjuntos de blocos de vídeo mencionados como blocos). A unidade de processamento de predição 41 pode selecionar um dentre uma pluralidade de modos de codificação possíveis, como um dentre uma pluralidade de modos de intra-codificação ou um dentre uma pluralidade de modos inter-codificação para o bloco de vídeo atual com base em resultados de erro (por exemplo, taxa de codificação e o nível de distorção). A unidade de processamento de predição 41 pode fornecer o bloco intra ou inter-codificado resultante para o somador 50 para gerar dados de bloco residual e para o somador 62 para reconstruir o bloco codificado para uso como uma imagem de referência.
[0132] A unidade de processamento de intra- predição 46 dentro da unidade de processamento de predição 41 pode realizar a codificação intra-preditiva do bloco de vídeo atual em relação a um ou mais blocos vizinhos no mesmo quadro ou fatia como o bloco atual a ser codificado para fornecer compactação espacial. A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 dentro da unidade de processamento de predição 41 realizam codificação inter-preditiva do bloco de vídeo atual em relação a um ou mais blocos preditivos em uma ou mais imagens de referência para fornecer compactação temporal.
[0133] A unidade de estimação de movimento 42 pode ser configurada para determinar o modo inter-predição para uma fatia de vídeo de acordo com um padrão predeterminado para uma sequência de vídeo. O padrão predeterminado pode designar fatias de vídeo na sequência como fatias P ou fatias B. A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 podem ser altamente integradas, mas são ilustradas separadamente para propósitos conceituais. A estimação de movimento, realizada pela unidade de estimação de movimento 42, é o processo de gerar vetores de movimento, que estimam o movimento para blocos de vídeo. Um vetor de movimento,
por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo dentro de uma quadro ou imagem de vídeo atual em relação a um bloco preditivo dentro de uma imagem de referência.
[0134] Um bloco preditivo é um bloco que é encontrado para corresponder estritamente à PU do bloco de vídeo a ser codificado em termos de diferença de pixel, que pode ser determinado pela soma de diferença absoluta (SAD), soma de diferença quadrada (SSD) ou métricas de diferença. Em alguns exemplos, o codificador de vídeo 20 pode calcular valores para posições de pixel de subnúmero inteiro de imagens de referência armazenadas na DPB 66. Por exemplo, o codificador de vídeo 20 pode interpolar valores de posições de pixel de um quarto, posições de pixel de um oitavo ou outras posições de pixel fracional da imagem de referência. Portanto, a unidade de estimação de movimento 42 pode realizar uma pesquisa de movimento em relação às posições de pixel total e posições de pixel fracionário e emitir um vetor de movimento com precisão de pixel fracionário.
[0135] A unidade de estimação de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia inter-codificada mediante a comparação da posição da PU com a posição de um bloco preditivo de uma imagem de referência. A imagem de referência pode ser selecionada a partir de uma primeira lista de imagem de referência (Lista 0) ou uma segunda lista de imagem de referência (Lista 1), cada uma das quais identifica uma ou mais imagens de referência armazenadas na DPB 66. A unidade de estimação de movimento 42 envia o vetor de movimento calculado para a unidade de codificação por entropia 56 e a unidade de compensação de movimento 44.
[0136] A compensação de movimento, realizada pela unidade de compensação de movimento 44, pode envolver obter ou gerar o bloco preditivo com base no vetor de movimento determinado pela estimação de movimento, possivelmente realizando interpolações para precisão de sub-pixel. Mediante o recebimento do vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco preditivo para qual o vetor de movimento aponta em uma dentre as listas de imagem de referência. O codificador de vídeo 20 forma um bloco de vídeo residual mediante a subtração de valores de pixel do bloco preditivo a partir dos valores de pixel do bloco de vídeo atual que é codificado, formando valores de diferença de pixel. Os valores de diferença de pixel formam dados residuais para o bloco, e podem incluir tanto componentes de diferença luma como croma. O somador 50 representa o componente ou componentes que realizam essa operação de subtração. A unidade de compensação de movimento 44 também pode gerar elementos de sintaxe associados aos blocos de vídeo e à fatia de vídeo para uso pelo decodificador de vídeo 30 na decodificação dos blocos de vídeo da fatia de vídeo.
[0137] Depois que a unidade de processamento de predição 41 gera o bloco preditivo para o bloco de vídeo atual, através de intra-predição ou inter-predição, o codificador de vídeo 20 forma um bloco de vídeo residual mediante a subtração do bloco preditivo a partir do bloco de vídeo atual. Os dados de vídeo residuais no bloco residual podem ser incluídos em uma ou mais TUs e aplicados à unidade de processamento de transformada 52. A unidade de processamento de transformada 52 transforma os dados de vídeo residuais em coeficientes de transformada residuais com o uso de uma transformada, como uma transformada de cosseno discreta (DCT) ou uma transformada conceitualmente similar. A unidade de processamento de transformada 52 pode converter os dados de vídeo residuais a partir de um domínio de pixel para um domínio de transformada, como um domínio de frequência.
[0138] A unidade de processamento de transformada 52 pode enviar os coeficientes de transformada resultantes para a unidade de quantificação 54. A unidade de quantificação 54 quantifica os coeficientes de transformada para reduzir ainda mais a taxa de bits. O processo de quantificação pode reduzir a profundidade de bit associada a alguns ou todos dentre os coeficientes. O grau de quantificação pode ser modificado mediante o ajuste de um parâmetro de quantificação. Em alguns exemplos, a unidade de quantificação 54 pode, então, realizar uma varredura da matriz que inclui os coeficientes de transformada quantificados. Em um outro exemplo, a unidade de codificação por entropia 56 pode realizar a varredura.
[0139] Após a quantificação, a unidade de codificação de entropia 56 codifica por entropia os coeficientes de transformada quantificados. Por exemplo, a unidade de codificação de entropia 56 pode realizar a codificação de comprimento de variável adaptativa ao contexto (CAVLC), codificação aritmética binária adaptativa ao contexto (CABAC), codificação aritmética binária adaptativa ao contexto à base de sintaxe (SBAC),
codificação por entropia de divisão de intervalo de probabilidade (PIPE) ou uma outra técnica ou metodologia de codificação por entropia. Após a codificação por entropia por meio da unidade de codificação por entropia 56, o fluxo de bits codificado pode ser transmitido para o decodificador de vídeo 30, ou arquivado para a recuperação ou transmissão posterior por meio do decodificador de vídeo
30. A unidade de codificação por entropia 56 também pode codificar por entropia os vetores de movimento e os outros elementos de sintaxe para a fatia de vídeo atual que é codificada.
[0140] A unidade de quantificação inversa 58 e a unidade de processamento de transformada inversa 60 aplicam a quantificação inversa e transformação inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel para o uso posterior como um bloco de referência de uma imagem de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência por meio da adição do bloco residual a um bloco preditivo de uma das imagens de referência dentro de uma das listas de imagem de referência. A unidade de compensação de movimento 44 também pode aplicar um ou mais filtros de interpolação ao bloco residual reconstruído para calcular os valores de pixel de subnúmero inteiro para uso na estimação de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição compensado por movimento produzido pela unidade de compensação de movimento 44 para produzir um bloco reconstruído.
[0141] A unidade de filtro 64 filtra o bloco reconstruído (por exemplo, a saída do somador 62) e armazena o bloco reconstruído filtrado na DPB 66 para usos como um bloco de referência. O bloco de referência pode ser usado pela unidade de estimação de movimento 42 e unidade de compensação de movimento 44 como um bloco de referência para inter-predizer um bloco em uma imagem ou quadro de vídeo subsequente. A unidade de filtro 64 é destinada a representar um ou mais dentre um filtro de desblocagem, um filtro de desvio adaptativo de amostra e filtro de circuito adaptativo, ou outros tipos de filtros. A filtração de desblocagem pode aplicar, por exemplo, a filtração de desblocagem para filtrar limites de bloco para remover artefatos de blocagem do vídeo reconstruído. Um filtro de desvio adaptativo de amostra pode aplicar desvios a valores de pixel reconstruídos a fim de aprimorar a qualidade de codificação global. Os filtros de circuito adicionais (em circuito ou pós-circuito) também podem ser usados.
[0142] Diversas técnicas descritas nesta revelação podem ser realizadas pelo codificador de vídeo 20 e/ou pela unidade de pré-processamento 19, separadamente ou em combinação uma com a outra. Por exemplo, o codificador de vídeo 20 e/ou a unidade de pré-processamento 19 pode ser configurada para processar dados de vídeo de HDR/WCG. O codificador de vídeo 20 e/ou a unidade de pré-processamento 19 pode ser configurada para determinar um parâmetro de quantificação para coeficientes de transformada quantificados de um bloco dos dados de vídeo de HDR/WCG; quantificar de maneira inversa os coeficientes de transformada quantificados com base no parâmetro de quantificação determinado para determinar coeficientes de transformada desquantificados; com base nos coeficientes de transformada desquantificados, determinar um bloco de valores residuais para o bloco dos dados de vídeo de HDR/WCG; com base no bloco de valores residuais, determinar um bloco reconstruído para o bloco dos dados de vídeo de HDR/WCG; determinar um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG; ajustar o um ou mais parâmetros de DRA com base no parâmetro de quantificação determinado para determinar um ou mais parâmetros de DRA ajustados; e realizar DRA no bloco reconstruído dos dados de vídeo de HDR/WCG com o uso do um ou mais parâmetros de DRA ajustados.
[0143] O codificador de vídeo 20 e/ou a unidade de pré-processamento 19 pode ser, adicional ou alternativamente, configurada para determinar um parâmetro de quantificação para coeficientes de transformada quantificados de um bloco dos dados de vídeo de HDR/WCG; quantificar os coeficientes de transformada quantificados com base no parâmetro de quantificação determinado para determinar coeficientes de transformada quantificados; determinar um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG com base no parâmetro de quantificação determinado; e ajustar o um ou mais parâmetros de DRA com base no parâmetro de quantificação determinado para determinar um ou mais parâmetros de DRA ajustados.
[0144] A Figura 11 é um diagrama de blocos que ilustra um decodificador de vídeo exemplificador 30 que pode implantar as técnicas descritas nesta revelação. O decodificador de vídeo 30 da Figura 11 pode ser, por exemplo, configurado para receber a sinalização descrita acima em relação ao codificador de vídeo 20 da Figura 10. No exemplo da Figura 11, o decodificador de vídeo 30 inclui memória de dados de vídeo 78, unidade de decodificação por entropia 80, unidade de processamento de predição 81, unidade de quantificação inversa 86, unidade de processamento de transformada inversa 88, somador 90, unidade de filtro 92 e DPB 94. A unidade de processamento de predição 81 inclui a unidade de compensação de movimento 82 e a unidade de intra-predição 84. O decodificador de vídeo 30 pode, em alguns exemplos, realizar uma passagem de decodificação em geral recíproca à passagem de codificação descrita em relação ao codificador de vídeo 20 da Figura
10.
[0145] Durante o processo de decodificação, o decodificador de vídeo 30 recebe um fluxo de bits de vídeo codificado que representa blocos de vídeo de uma fatia de vídeo codificada e elementos de sintaxe associados a partir do codificador de vídeo 20. O decodificador de vídeo 30 armazena o fluxo de bits de vídeo codificado recebido na memória de dados de vídeo 78. A memória de dados de vídeo 78 pode armazenar dados de vídeo, como um fluxo de bits de vídeo codificado, a serem decodificados pelos componentes do decodificador de vídeo 30. Os dados de vídeo armazenados na memória de dados de vídeo 78 podem ser obtidos, por exemplo, através do enlace 16, a partir do dispositivo de armazenamento 26 ou a partir de uma fonte de vídeo local, como uma câmera, ou mediante o acesso de mídia de armazenamento de dados física. A memória de dados de vídeo 78 pode formar uma memória temporária de imagem codificada (CPB) que armazena dados de vídeo codificados a partir de um fluxo de bits de vídeo codificado. A DPB 94 pode ser uma memória de imagem de referência que armazena dados de vídeo de referência para uso na decodificação de dados de vídeo por meio do decodificador de vídeo 30, por exemplo, em modos de intra- ou inter-codificação. A memória de dados de vídeo 78 e DPB 94 podem ser formadas por qualquer um dentre uma variedade de dispositivos de memória, como DRAM, SDRAM, MRAM, RRAM ou outros tipos de dispositivos de memória. A memória de dados de vídeo 78 e DPB 94 podem ser fornecidas pelo mesmo dispositivo de memória ou dispositivos de memória separados. Em diversos exemplos, a memória de dados de vídeo 78 pode ser em chip com outros componentes de decodificador de vídeo 30 ou fora de chip em relação àqueles componentes.
[0146] A unidade de decodificação por entropia 80 do decodificador de vídeo 30 decodifica por entropia os dados de vídeo armazenados na memória de dados de vídeo 78 para gerar coeficientes quantificados, vetores de movimento e outros elementos de sintaxe. A unidade de decodificação por entropia 80 encaminha os vetores de movimento e outros elementos de sintaxe para a unidade de processamento de predição 81. O decodificador de vídeo 30 pode receber os elementos de sintaxe no nível de fatia de vídeo e/ou no nível de bloco de vídeo.
[0147] Quando a fatia de vídeo é codificada como uma fatia intra-codificada (I), a unidade de intra-predição 84 da unidade de processamento de predição 81 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual com base em um modo de intra-predição sinalizado e dados a partir de blocos decodificados anteriormente da imagem ou quadro atual. Quando o quadro de vídeo é codificado como uma fatia inter-codificada (por exemplo, fatia B ou fatia P), a unidade de compensação de movimento 82 da unidade de processamento de predição 81 produz blocos preditivos para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe recebidos a partir da unidade de decodificação por entropia 80. Os blocos preditivos podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagem de referência. O decodificador de vídeo 30 pode construir as listas de quadro de referência, Lista 0 e Lista 1, com o uso de técnicas de construção padrão com base nas imagens de referência armazenadas em DPB 94.
[0148] A unidade de compensação de movimento 82 determina as informações de predição para um bloco de vídeo da fatia de vídeo atual por meio da análise dos vetores de movimento e outros elementos de sintaxe, e usa as informações de predição para produzir os blocos preditivos para o bloco de vídeo atual que é decodificado. Por exemplo, a unidade de compensação de movimento 82 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, intra- ou inter-predição) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de inter-predição (por exemplo, fatia B ou fatia P), informações de construção para uma ou mais dentre as listas de imagem de referência para a fatia, vetores de movimentos para cada bloco de vídeo inter-codificado da fatia, situação de inter-predição para cada bloco de vídeo inter-codificado da fatia e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[0149] A unidade de compensação de movimento 82 também pode realizar interpolação com base em filtros de interpolação. A unidade de compensação de movimento 82 pode usar filtros de interpolação conforme usado pelo codificador de vídeo 20 durante a codificação dos blocos de vídeo para calcular valores interpolados para pixels de subnúmero inteiro de blocos de referência. Nesse caso, a unidade de compensação de movimento 82 pode determinar os filtros de interpolação usados pelo codificador de vídeo 20 a partir dos elementos de sintaxe recebidos e usar os filtros de interpolação para produzir blocos preditivos.
[0150] A unidade de quantificação inversa 86 quantifica de modo inverso, isto é, desquantifica, os coeficientes de transformada quantificados fornecidos no fluxo de bits e decodificados pela unidade de decodificação por entropia 80. O processo de quantificação inversa pode incluir o uso de um parâmetro de quantificação calculado pelo codificador de vídeo 20 para cada bloco de vídeo na fatia de vídeo para determinar um grau de quantificação e, de modo semelhante, um grau de quantificação inversa que deveria ser aplicado. A unidade de processamento de transformada inversa 88 aplica uma transformada inversa, por exemplo, uma DCT inversa, uma transformada de número inteiro inversa, ou um processo de transformada inversa conceitualmente similar, aos coeficientes de transformada a fim de produzir blocos residuais no domínio de pixel.
[0151] Depois que a unidade de processamento de predição gera o bloco preditivo para o bloco de vídeo atual com o uso, por exemplo, de intra ou inter-predição, o decodificador de vídeo 30 forma um bloco de vídeo reconstruído mediante a soma dos blocos residuais a partir da unidade de processamento de transformada inversa 88 com os blocos preditivos correspondentes gerados pela unidade de compensação de movimento 82. O somador 90 representa o componente ou componentes que realizam essa operação de soma.
[0152] A unidade de filtro 92 filtra o bloco de vídeo reconstruído com o uso de, por exemplo, um ou mais dentre filtração de desblocagem, filtração SAO, filtração de circuito adaptativo ou outros tipos de filtros. Outros filtros de circuito (no circuito de codificação ou após o circuito de codificação) também podem ser usados para suavizar transições de pixel ou de outro modo aperfeiçoar a qualidade de vídeo. Os blocos de vídeo decodificados em um determinado quadro ou imagem são, então, armazenados em DPB 94, que armazena imagens de referência usadas para compensação de movimento subsequente. DPB 94 pode ser parte de ou separado da memória adicional que armazena vídeo decodificado para apresentação posterior em um dispositivo de exibição, como o dispositivo de exibição 32 da Figura 1.
[0153] Diversas técnicas descritas nesta revelação podem ser realizadas pelo decodificador de vídeo 30 e/ou pela unidade de pós-processamento 31, separadamente ou em combinação uma com a outra. Por exemplo, o decodificador de vídeo 30 e/ou a unidade de pós- processamento 31 pode ser configurada para processar dados de vídeo de HDR/WCG. O decodificador de vídeo 30 e/ou a unidade de pós-processamento 31 pode ser configurada para determinar um parâmetro de quantificação para coeficientes de transformada quantificados de um bloco dos dados de vídeo de HDR/WCG; quantificar de maneira inversa os coeficientes de transformada quantificados com base nos parâmetro de quantificação determinado para determinar coeficientes de transformada desquantificados; com base nos coeficientes de transformada desquantificados, determinar um bloco de valores residuais para o bloco dos dados de vídeo de HDR/WCG; com base no bloco de valores residuais, determinar um bloco reconstruído para o bloco dos dados de vídeo de HDR/WCG; determinar um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG; ajustar o um ou mais parâmetros de DRA com base no parâmetro de quantificação determinado para determinar um ou mais parâmetros de DRA ajustados; e realizar DRA no bloco reconstruído dos dados de vídeo de HDR/WCG com o uso do um ou mais parâmetros de DRA ajustados.
[0154] A Figura 12 é um fluxograma que ilustra uma operação exemplificadora de um decodificador de vídeo 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 decodificador de vídeo 30, para emitir vídeo decodificado passível de exibição ou pode ser um decodificador de vídeo implantado em um codificador de vídeo, como o circuito de decodificação do codificador de vídeo 20, que inclui a unidade de processamento de predição 41, unidade de quantificação inversa 58, unidade de processamento de transformada inversa 60, unidade de filtro 64 e DPB 66. Algumas das técnicas da Figura 12 podem ser realizadas por entidades separadas do decodificador de vídeo, como a unidade de pré-processamento 19 ou a unidade de pós-processamento 31, mas por uma questão de simplicidade, todas as técnicas da Figura 12 serão descritas como sendo realizadas pelo decodificador de vídeo.
[0155] O decodificador de vídeo determina um parâmetro de quantificação para coeficientes de transformada quantificados de um bloco dos dados de vídeo de HDR/WCG (200). O decodificador de vídeo quantifica de maneira inversa os coeficientes de transformada quantificados com base no parâmetro de quantificação determinado para determinar coeficientes de transformada desquantificados (210). Com base nos coeficientes de transformada desquantificados, o decodificador de vídeo determina um bloco de valores residuais para o bloco dos dados de vídeo de HDR/WCG (220). Com base no bloco de valores residuais, o decodificador de vídeo determina um bloco reconstruído para o bloco dos dados de vídeo de HDR/WCG (230). O decodificador de vídeo determina um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG (240). Para determinar o um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG, o decodificador de vídeo pode receber indicações do um ou mais parâmetros de DRA como elementos de sintaxe nos dados de vídeo de HDR/WCG ou pode de outro modo derivar o um ou mais parâmetros de DRA.
[0156] O decodificador de vídeo ajusta o um ou mais parâmetros de DRA com base no parâmetro de quantificação determinado para determinar um ou mais parâmetros de DRA ajustados (250). O um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG podem incluir um parâmetro de escalonamento para um componente luma do bloco dos dados de vídeo de HDR/WCG e um parâmetro de desvio para o componente luma do bloco dos dados de vídeo de HDR/WCG, e o um ou mais parâmetros de DRA ajustados para o bloco dos dados de vídeo de HDR/WCG podem incluir um parâmetro de escalonamento ajustado para o componente luma do bloco dos dados de vídeo de HDR/WCG e um parâmetro de desvio ajustado para o componente luma do bloco dos dados de vídeo de HDR/WCG.
O um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG podem incluir um parâmetro de escalonamento para um componente croma do bloco dos dados de vídeo de HDR/WCG e um parâmetro de desvio para o componente croma do bloco dos dados de vídeo de HDR/WCG, e o um ou mais parâmetros de DRA ajustados para o bloco dos dados de vídeo de HDR/WCG podem incluir um parâmetro de escalonamento ajustado para o componente croma do bloco dos dados de vídeo de HDR/WCG e um parâmetro de desvio ajustado para o componente croma do bloco dos dados de vídeo de HDR/WCG.
O um ou mais parâmetros de DRA ajustados podem incluir um parâmetro de DRA ajustado para um primeiro componente croma do bloco dos dados de vídeo de HDR/WCG e um parâmetro de DRA ajustado para um segundo componente croma do bloco dos dados de vídeo de HDR/WCG.
O um ou mais parâmetros de DRA ajustados podem incluir um parâmetro de DRA ajustado para um componente luma do bloco dos dados de vídeo de HDR/WCG, um parâmetro de DRA ajustado para um primeiro componente croma do bloco dos dados de vídeo de HDR/WCG, e um parâmetro de DRA ajustado para um segundo componente croma do bloco dos dados de vídeo de HDR/WCG.
[0157] O decodificador de vídeo realiza DRA no bloco reconstruído dos dados de vídeo de HDR/WCG com o uso do um ou mais parâmetros de DRA ajustados (260). O decodificador de vídeo pode também emitir os dados de vídeo ajustados que resultam da realização de DRA. O decodificador de vídeo pode, por exemplo, emitir os dados de vídeo ajustados para exibição ou pode emitir os dados de vídeo ajustados mediante o armazenamento dos dados de vídeo ajustados. O decodificador de vídeo pode armazenar os dados de vídeo ajustados para exibição futura ou pode armazenar os dados de vídeo ajustados para codificação ou decodificação de blocos futuros de dados de vídeo.
[0158] Em um ou mais exemplos, as funções descritas podem ser implantadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se forem implantadas em software, as funções podem ser armazenadas em ou transmitidas sobre, como uma ou mais instruções ou código, um meio legível por computador e executadas por uma unidade de processamento à base de hardware. A mídia legível por computador pode incluir mídia de armazenamento legível por computador, que corresponde a um meio tangível como mídia de armazenamento de dados, ou mídia de comunicação que inclui qualquer meio que 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. Dessa maneira, a mídia legível por computador pode, em geral, corresponder a (1) mídia de armazenamento legível por computador tangível que é não transitória ou (2) um meio de comunicação como uma onda de portadora ou sinal. A mídia de armazenamento de dados pode ser qualquer mídia disponível que pode ser acessada por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implantação das técnicas descritas nesta revelação. Um produto de programa de computador pode incluir um mídia legível por computador.
[0159] 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 em disco magnético ou outros dispositivos de armazenamento magnético, memória flash, ou qualquer outro meio que pode ser usado para armazenar código de programa desejado na forma de instruções ou estruturas de dados e que podem ser acessados por um computador. Além disso, qualquer conexão é adequadamente denominada uma mídia legível por computador. Por exemplo, se as instruções forem transmitidas a partir de um sítio da web, um servidor ou de outra fonte remota com o uso de um cabo coaxial, um cabo de fibra óptica, um par retorcido, uma linha de assinante 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 retorcido, a DSL ou as tecnologias sem fio como infravermelho, rádio e micro- ondas são incluídas na definição de meio. Deve-se compreender, no entanto, que a mídia de armazenamento legível por computador e mídia de armazenamento de dados não incluem conexões, ondas de portadora, sinais, ou outras mídias transitórias, mas são, em vez disso, direcionadas a mídia de armazenamento tangível não transitória. O disco magnético e o 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 normalmente reproduzem os dados de modo magnético, enquanto os discos ópticos reproduzem os dados de modo óptico com lasers. As combinações do supracitado devem também ser incluídas no escopo de mídias legíveis por computador.
[0160] As instruções podem ser executadas por um ou mais processadores, como um ou mais processadores de sinal digital (DSPs), microprocessadores de propósito geral, circuitos integrados de aplicação específica (ASICs), arranjos de lógicas programáveis em campo (FPGAs) ou outro conjunto de circuitos lógico discreto 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 de software e/ou hardware dedicado configurado para codificar e decodificar, ou incorporado em um codec combinado. Além disso, as técnicas poderiam ser completamente implantadas em um ou mais circuitos ou elementos lógicos.
[0161] As técnicas desta revelação podem ser implantadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um monofone, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritas na presente revelação para enfatizar os aspectos funcionais de dispositivos configurados para realizar as técnicas reveladas, mas não exigem, necessariamente, a realização por diferentes unidades de hardware. De preferência, 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 interoperacionais, incluindo um ou mais processadores conforme descrito acima, em conjunto com software e/ou firmware adequado.
[0162] Diversos exemplos foram descritos. Esses e outros exemplos são abrangidos pelo escopo das reivindicações a seguir.

Claims (29)

REIVINDICAÇÕES
1. Método para processar dados de vídeo de alto intervalo dinâmico e/ou gama de cores ampla (HDR/WCG), sendo que o método compreende: determinar um parâmetro de quantificação para coeficientes de transformada quantificados de um bloco dos dados de vídeo de HDR/WCG; quantificar de maneira inversa os coeficientes de transformada quantificados com base no parâmetro de quantificação determinado para determinar coeficientes de transformada desquantificados; com base nos coeficientes de transformada desquantificados, determinar um bloco de valores residuais para o bloco dos dados de vídeo de HDR/WCG; com base no bloco de valores residuais, determinar um bloco reconstruído para o bloco dos dados de vídeo de HDR/WCG; determinar um ou mais parâmetros de ajuste de intervalo dinâmico (DRA) para o bloco dos dados de vídeo de HDR/WCG, em que o um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG compreendem um parâmetro de escalonamento para um componente croma do bloco dos dados de vídeo de HDR/WCG e um parâmetro de desvio para o componente croma do bloco dos dados de vídeo de HDR/WCG; ajustar o um ou mais parâmetros de DRA com base no parâmetro de quantificação determinado para determinar um ou mais parâmetros de DRA ajustados, em que o um ou mais parâmetros de DRA ajustados para o bloco dos dados de vídeo de HDR/WCG compreendem um parâmetro de escalonamento ajustado para o componente croma do bloco dos dados de vídeo de HDR/WCG e um parâmetro de desvio ajustado para o componente croma do bloco dos dados de vídeo de HDR/WCG; e realizar DRA no bloco reconstruído dos dados de vídeo de HDR/WCG com o uso do um ou mais parâmetros de DRA ajustados.
2. Método, de acordo com a reivindicação 1, em que o um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG compreendem adicionalmente um parâmetro de escalonamento para um componente luma do bloco dos dados de vídeo de HDR/WCG e um parâmetro de desvio para o componente luma do bloco dos dados de vídeo de HDR/WCG, e em que o um ou mais parâmetros de DRA ajustados para o bloco dos dados de vídeo de HDR/WCG compreendem adicionalmente um parâmetro de escalonamento ajustado para o componente luma do bloco dos dados de vídeo de HDR/WCG e um parâmetro de desvio ajustado para o componente luma do bloco dos dados de vídeo de HDR/WCG.
3. Método, de acordo com a reivindicação 2, em que o um ou mais parâmetros de DRA ajustados compreendem um parâmetro de DRA ajustado para um componente luma do bloco dos dados de vídeo de HDR/WCG, um parâmetro de DRA ajustado para um primeiro componente croma do bloco dos dados de vídeo de HDR/WCG, e um parâmetro de DRA ajustado para um segundo componente croma do bloco dos dados de vídeo de HDR/WCG.
4. Método, de acordo com a reivindicação 1, em que o um ou mais parâmetros de DRA ajustados compreendem um parâmetro de DRA ajustado para um primeiro componente croma do bloco dos dados de vídeo de HDR/WCG e um parâmetro de DRA ajustado para um segundo componente croma do bloco dos dados de vídeo de HDR/WCG.
5. Método, de acordo com a reivindicação 1, em que a determinação do um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG compreende receber indicações do um ou mais parâmetros de DRA como elementos de sintaxe nos dados de vídeo de HDR/WCG.
6. Método, de acordo com a reivindicação 1, em que o bloco reconstruído dos dados de vídeo de HDR/WCG compreende uma versão filtrada do bloco reconstruído.
7. Método, de acordo com a reivindicação 1, em que a determinação do um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG compreende derivar pelo menos um dentre o um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG com base em uma dependência entre um parâmetro de quantificação para um componente luma do bloco dos dados de vídeo de HDR/WCG e um parâmetro de quantificação para um componente croma do bloco dos dados de vídeo de HDR/WCG.
8. Método, de acordo com a reivindicação 7, em que a derivação do pelo menos um dentre o um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG com base na dependência entre o parâmetro de quantificação para o componente luma do bloco dos dados de vídeo de HDR/WCG e o parâmetro de quantificação para o componente croma do bloco dos dados de vídeo de HDR/WCG compreende derivar o pelo menos um dentre o um ou mais parâmetros de DRA por meio da realização da conversão de QP para escala de DRA.
9. Método, de acordo com a reivindicação 7, em que a derivação do pelo menos um dentre o um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG com base na dependência entre o parâmetro de quantificação para o componente luma do bloco dos dados de vídeo de HDR/WCG e o parâmetro de quantificação para o componente croma do bloco dos dados de vídeo de HDR/WCG compreende derivar o pelo menos um dentre o um ou mais parâmetros de DRA por meio da realização da conversão de escala de DRA para QP.
10. Método, de acordo com a reivindicação 7, em que a dependência entre o parâmetro de quantificação para o componente luma e o parâmetro de quantificação para o componente croma é definida por um codec.
11. Método, de acordo com a reivindicação 7, sendo que o método compreende adicionalmente: receber elementos de sintaxe nos dados de vídeo de HDR/WCG, em que os valores para os elementos de sintaxe definem a dependência entre o parâmetro de quantificação para o componente luma do bloco dos dados de vídeo de HDR/WCG e o parâmetro de quantificação para o componente croma do bloco dos dados de vídeo de HDR/WCG.
12. Método, de acordo com a reivindicação 7, em que o método para decodificar é realizado como parte de um processo de codificação.
13. Dispositivo para processar dados de vídeo de alto intervalo dinâmico e/ou gama de cores ampla (HDR/WCG),
sendo que o dispositivo compreende: uma memória configurada para armazenar dados de vídeo; e um ou mais processadores acoplados à memória e configurados para: determinar um parâmetro de quantificação para coeficientes de transformada quantificados de um bloco dos dados de vídeo de HDR/WCG; quantificar de maneira inversa os coeficientes de transformada quantificados com base no parâmetro de quantificação determinado para determinar coeficientes de transformada desquantificados; com base nos coeficientes de transformada desquantificados, determinar um bloco de valores residuais para o bloco dos dados de vídeo de HDR/WCG; com base no bloco de valores residuais, determinar um bloco reconstruído para o bloco dos dados de vídeo de HDR/WCG; determinar um ou mais parâmetros de ajuste de intervalo dinâmico (DRA) para o bloco dos dados de vídeo de HDR/WCG, em que o um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG compreendem um parâmetro de escalonamento para um componente croma do bloco do dados de vídeo de HDR/WCG e um parâmetro de desvio para o componente croma do bloco dos dados de vídeo de HDR/WCG; ajustar o um ou mais parâmetros de DRA com base no parâmetro de quantificação determinado para determinar um ou mais parâmetros de DRA ajustados, em que o um ou mais parâmetros de DRA ajustados para o bloco dos dados de vídeo de HDR/WCG compreendem um parâmetro de escalonamento ajustado para o componente croma do bloco dos dados de vídeo de HDR/WCG e um parâmetro de desvio ajustado para o componente croma do bloco dos dados de vídeo de HDR/WCG; e realizar DRA no bloco reconstruído dos dados de vídeo de HDR/WCG com o uso do um ou mais parâmetros de DRA ajustados.
14. Dispositivo, de acordo com a reivindicação 13, em que o um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG compreendem adicionalmente um parâmetro de escalonamento para um componente luma do bloco dos dados de vídeo de HDR/WCG e um parâmetro de desvio para o componente luma do bloco dos dados de vídeo de HDR/WCG, e em que o um ou mais parâmetros de DRA ajustados para o bloco dos dados de vídeo de HDR/WCG compreendem adicionalmente um parâmetro de escalonamento ajustado para o componente luma do bloco dos dados de vídeo de HDR/WCG e um parâmetro de desvio ajustado para o componente luma do bloco dos dados de vídeo de HDR/WCG.
15. Dispositivo, de acordo com a reivindicação 14, em que o um ou mais parâmetros de DRA ajustados compreendem um parâmetro de DRA ajustado para um componente luma do bloco dos dados de vídeo de HDR/WCG, um parâmetro de DRA ajustado para um primeiro componente croma do bloco dos dados de vídeo de HDR/WCG, e um parâmetro de DRA ajustado para um segundo componente croma do bloco dos dados de vídeo de HDR/WCG.
16. Dispositivo, de acordo com a reivindicação 13,
em que o um ou mais parâmetros de DRA ajustados compreendem um parâmetro de DRA ajustado para um primeiro componente croma do bloco dos dados de vídeo de HDR/WCG e um parâmetro de DRA ajustado para um segundo componente croma do bloco dos dados de vídeo de HDR/WCG.
17. Dispositivo, de acordo com a reivindicação 13, em que para determinar o um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG, o um ou mais processadores são configurados para receber indicações do um ou mais parâmetros de DRA como elementos de sintaxe nos dados de vídeo de HDR/WCG.
18. Dispositivo, de acordo com a reivindicação 13, em que o bloco reconstruído dos dados de vídeo de HDR/WCG compreende uma versão filtrada do bloco reconstruído.
19. Dispositivo, de acordo com a reivindicação 13, em que para determinar o um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG, o um ou mais processadores são configurados para derivar pelo menos um dentre o um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG com base em uma dependência entre um parâmetro de quantificação para um componente luma do bloco dos dados de vídeo de HDR/WCG e um parâmetro de quantificação para um componente croma do bloco dos dados de vídeo de HDR/WCG.
20. Dispositivo, de acordo com a reivindicação 19, em que para derivar o pelo menos um dentre o um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG com base na dependência entre o parâmetro de quantificação para o componente luma do bloco dos dados de vídeo de HDR/WCG e o parâmetro de quantificação para o componente croma do bloco dos dados de vídeo de HDR/WCG, o um ou mais processadores são configurados para derivar o pelo menos um dentre o um ou mais parâmetros de DRA por meio da realização da conversão de QP para escala de DRA.
21. Dispositivo, de acordo com a reivindicação 19, em que para derivar o pelo menos um dentre o um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG com base na dependência entre o parâmetro de quantificação para o componente luma do bloco dos dados de vídeo de HDR/WCG e o parâmetro de quantificação para o componente croma do bloco dos dados de vídeo de HDR/WCG, o um ou mais processadores são configurados para derivar o pelo menos um dentre o um ou mais parâmetros de DRA por meio da realização da conversão de escala de DRA para QP.
22. Dispositivo, de acordo com a reivindicação 19, em que a dependência entre o parâmetro de quantificação para o componente luma e o parâmetro de quantificação para o componente croma é definida por um codec.
23. Dispositivo, de acordo com a reivindicação 19, em que o um ou mais processadores são adicionalmente configurados para: receber elementos de sintaxe nos dados de vídeo de HDR/WCG, em que os valores para os elementos de sintaxe definem a dependência entre o parâmetro de quantificação para o componente luma do bloco dos dados de vídeo de HDR/WCG e o parâmetro de quantificação para o componente croma do bloco dos dados de vídeo de HDR/WCG.
24. Dispositivo, de acordo com a reivindicação 13, em que o dispositivo compreende um dispositivo de comunicação sem fio, que compreende adicionalmente um receptor configurado para receber dados de vídeo codificados.
25. Dispositivo, de acordo com a reivindicação 24, 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 fio, um sinal que compreende os dados de vídeo codificados.
26. Dispositivo, de acordo com a reivindicação 13, em que o dispositivo compreende um dispositivo de comunicação sem fio, que compreende adicionalmente um transmissor configurado para transmitir dados de vídeo codificados.
27. Dispositivo, de acordo com a reivindicação 26, 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, um sinal que compreende os dados de vídeo codificados.
28. Mídia legível por computador que armazena instruções que, quando executadas por um ou mais processadores, fazem com que o um ou mais processadores: determinar um parâmetro de quantificação para coeficientes de transformada quantificados de um bloco de dados de vídeo de alto intervalo dinâmico e/ou gama de cores ampla (HDR/WCG); quantificar de maneira inversa os coeficientes de transformada quantificados com base no parâmetro de quantificação determinado para determinar coeficientes de transformada desquantificados; com base nos coeficientes de transformada desquantificados, determinar um bloco de valores residuais para o bloco dos dados de vídeo de HDR/WCG; com base no bloco de valores residuais, determinar um bloco reconstruído para o bloco dos dados de vídeo de HDR/WCG; determinar um ou mais parâmetros de ajuste de intervalo dinâmico (DRA) para o bloco dos dados de vídeo de HDR/WCG, em que o um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG compreendem um parâmetro de escalonamento para um componente croma do bloco dos dados de vídeo de HDR/WCG e um parâmetro de desvio para o componente croma do bloco dos dados de vídeo de HDR/WCG; ajustar o um ou mais parâmetros de DRA com base no parâmetro de quantificação determinado para determinar um ou mais parâmetros de DRA ajustados, em que o um ou mais parâmetros de DRA ajustados para o bloco dos dados de vídeo de HDR/WCG compreendem um parâmetro de escalonamento ajustado para o componente croma do bloco dos dados de vídeo de HDR/WCG e um parâmetro de desvio ajustado para o componente croma do bloco dos dados de vídeo de HDR/WCG; e realizar DRA no bloco reconstruído dos dados de vídeo de HDR/WCG com o uso do um ou mais parâmetros de DRA ajustados.
29. Aparelho para processar dados de vídeo de alto intervalo dinâmico e/ou gama de cores ampla (HDR/WCG), sendo que o dispositivo compreende: meio para determinar um parâmetro de quantificação para coeficientes de transformada quantificados de um bloco dos dados de vídeo de HDR/WCG; meio para quantificar de maneira inversa os coeficientes de transformada quantificados com base no parâmetro de quantificação determinado para determinar coeficientes de transformada desquantificados; meio para determinar um bloco de valores residuais para o bloco dos dados de vídeo de HDR/WCG com base nos coeficientes de transformada desquantificados; meio para determinar um bloco reconstruído para o bloco dos dados de vídeo de HDR/WCG com base no bloco de valores residuais; meio para determinar um ou mais parâmetros de ajuste de intervalo dinâmico (DRA) para o bloco dos dados de vídeo de HDR/WCG, em que o um ou mais parâmetros de DRA para o bloco dos dados de vídeo de HDR/WCG compreendem um parâmetro de escalonamento para um componente croma do bloco dos dados de vídeo de HDR/WCG e um parâmetro de desvio para o componente croma do bloco dos dados de vídeo de HDR/WCG; meio para ajustar o um ou mais parâmetros de DRA com base no parâmetro de quantificação determinado para determinar um ou mais parâmetros de DRA ajustados, em que o um ou mais parâmetros de DRA ajustados para o bloco dos dados de vídeo de HDR/WCG compreendem um parâmetro de escalonamento ajustado para o componente croma do bloco dos dados de vídeo de HDR/WCG e um parâmetro de desvio ajustado para o componente croma do bloco dos dados de vídeo de HDR/WCG; e meio para realizar DRA no bloco reconstruído dos dados de vídeo de HDR/WCG com o uso do um ou mais parâmetros de DRA ajustados.
BR112020012101-0A 2017-12-19 2018-12-19 controle de parâmetro de quantificação para codificação de vídeo com quantificação à base de transformada/pixel conjunta BR112020012101A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762607887P 2017-12-19 2017-12-19
US62/607,887 2017-12-19
US16/224,320 2018-12-18
US16/224,320 US10681358B2 (en) 2017-12-19 2018-12-18 Quantization parameter control for video coding with joined pixel/transform based quantization
PCT/US2018/066476 WO2019126307A1 (en) 2017-12-19 2018-12-19 Quantization parameter control for video coding with joined pixel/transform based quantization

Publications (1)

Publication Number Publication Date
BR112020012101A2 true BR112020012101A2 (pt) 2020-11-17

Family

ID=66816609

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112020012101-0A BR112020012101A2 (pt) 2017-12-19 2018-12-19 controle de parâmetro de quantificação para codificação de vídeo com quantificação à base de transformada/pixel conjunta

Country Status (9)

Country Link
US (2) US10681358B2 (pt)
EP (1) EP3729806A1 (pt)
JP (1) JP7369124B2 (pt)
KR (1) KR20200099535A (pt)
CN (1) CN111480339B (pt)
BR (1) BR112020012101A2 (pt)
SG (1) SG11202004176SA (pt)
TW (1) TWI800580B (pt)
WO (1) WO2019126307A1 (pt)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111654697B (zh) * 2015-01-30 2022-07-19 交互数字Vc控股公司 对彩色画面进行编码和解码的方法和装置
US10129558B2 (en) * 2015-09-21 2018-11-13 Qualcomm Incorporated Supplement enhancement information (SEI) messages for high dynamic range and wide color gamut video coding
US10244249B2 (en) 2015-09-21 2019-03-26 Qualcomm Incorporated Fixed point implementation of range adjustment of components in video coding
US10681358B2 (en) 2017-12-19 2020-06-09 Qualcomm Incorporated Quantization parameter control for video coding with joined pixel/transform based quantization
KR20200128587A (ko) * 2018-03-30 2020-11-13 인터디지털 브이씨 홀딩스 인코포레이티드 비디오 인코딩 및 디코딩에서의 크로마 양자화 파라미터 조정
US11750811B2 (en) * 2018-04-06 2023-09-05 Comcast Cable Communications, Llc Systems, methods, and apparatuses for processing video
EP3935847A4 (en) * 2019-03-04 2022-12-07 Alibaba Group Holding Limited METHOD AND SYSTEM FOR PROCESSING VIDEO CONTENT
WO2020246790A1 (ko) * 2019-06-03 2020-12-10 엘지전자 주식회사 맵핑된 루마 성분 및 스케일링된 크로마 성분 기반 비디오 또는 영상 코딩
CN111083475B (zh) * 2019-12-31 2022-04-01 上海富瀚微电子股份有限公司 量化变换系数管理装置及适用于hevc标准的编码器
US11558616B2 (en) * 2020-03-05 2023-01-17 Qualcomm Incorporated Methods for quantization parameter control for video coding with joined pixel/transform based quantization
US11375212B2 (en) * 2020-04-18 2022-06-28 Qualcomm Incorporated Flexible chroma processing for dynamic range adjustment
WO2023140952A1 (en) * 2022-01-20 2023-07-27 Dolby Laboratories Licensing Corporation Data structure for multimedia applications

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120307889A1 (en) * 2011-06-01 2012-12-06 Sharp Laboratories Of America, Inc. Video decoder with dynamic range adjustments
CN102333223A (zh) * 2011-10-25 2012-01-25 北京华兴宏视技术发展有限公司 视频数据编码方法、解码方法、编码系统和解码系统
KR102051193B1 (ko) * 2014-09-12 2019-12-02 브이아이디 스케일, 인크. 비디오 코딩을 위한 성분간 탈상관
US20160309154A1 (en) 2015-04-17 2016-10-20 Qualcomm Incorporated Dynamic range adjustment for high dynamic range and wide color gamut video coding
US10244249B2 (en) * 2015-09-21 2019-03-26 Qualcomm Incorporated Fixed point implementation of range adjustment of components in video coding
US10200701B2 (en) * 2015-10-14 2019-02-05 Qualcomm Incorporated HDR and WCG coding architecture with SDR backwards compatibility in a single bitstream for video coding
KR20180074150A (ko) * 2016-12-23 2018-07-03 삼성전자주식회사 Sao 필터링을 포함하는 비디오 데이터의 부호화를 위한 방법 및 장치
US10681358B2 (en) 2017-12-19 2020-06-09 Qualcomm Incorporated Quantization parameter control for video coding with joined pixel/transform based quantization

Also Published As

Publication number Publication date
TWI800580B (zh) 2023-05-01
US20190191172A1 (en) 2019-06-20
JP2021507614A (ja) 2021-02-22
SG11202004176SA (en) 2020-07-29
US20200260092A1 (en) 2020-08-13
US11190779B2 (en) 2021-11-30
EP3729806A1 (en) 2020-10-28
CN111480339B (zh) 2022-05-24
WO2019126307A1 (en) 2019-06-27
CN111480339A (zh) 2020-07-31
KR20200099535A (ko) 2020-08-24
US10681358B2 (en) 2020-06-09
JP7369124B2 (ja) 2023-10-25
TW201931853A (zh) 2019-08-01

Similar Documents

Publication Publication Date Title
AU2018322042B2 (en) System and method of cross-component dynamic range adjustment (CC-DRA) in video coding
TWI801432B (zh) 利用內容適應性空間變化量化之視訊寫碼
US11190779B2 (en) Quantization parameter control for video coding with joined pixel/transform based quantization
EP3354024B1 (en) Supplemental enhancement information (sei) messages for high dynamic range and wide color gamut video coding
US10284863B2 (en) Adaptive constant-luminance approach for high dynamic range and wide color gamut video coding
AU2015328088B2 (en) QP derivation and offset for adaptive color transform in video coding
EP3354025B1 (en) Fixed point implementation of range adjustment of components in video coding
US20160309154A1 (en) Dynamic range adjustment for high dynamic range and wide color gamut video coding
EP3800885A1 (en) In loop sample processing for high dynamic range and wide color gamut video coding
KR20190039958A (ko) 피드백 채널에 의한 컬러 영역 적응
BR112020013979A2 (pt) Mecanismos de sinalização para faixas iguais e outros parâmetros dra para codificação de vídeo
US10728559B2 (en) Precision of computation and signaling of dynamic range adjustment and color remapping information
TWI765903B (zh) 用於循環樣本處理之視訊寫碼工具

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]