BR112016008224B1 - Escalabilidade de gama de cores com base em tabela de pesquisa tridimensional em codificação de vídeo de múltiplas camadas - Google Patents

Escalabilidade de gama de cores com base em tabela de pesquisa tridimensional em codificação de vídeo de múltiplas camadas Download PDF

Info

Publication number
BR112016008224B1
BR112016008224B1 BR112016008224-9A BR112016008224A BR112016008224B1 BR 112016008224 B1 BR112016008224 B1 BR 112016008224B1 BR 112016008224 A BR112016008224 A BR 112016008224A BR 112016008224 B1 BR112016008224 B1 BR 112016008224B1
Authority
BR
Brazil
Prior art keywords
video
lookup table
color
chroma
size
Prior art date
Application number
BR112016008224-9A
Other languages
English (en)
Other versions
BR112016008224A2 (pt
Inventor
Krishnakanth RAPAKA
Xiang Li
Jianle Chen
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 BR112016008224A2 publication Critical patent/BR112016008224A2/pt
Publication of BR112016008224B1 publication Critical patent/BR112016008224B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/194Transmission of image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Landscapes

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

Abstract

ESCALABILIDADE DE GAMA DE CORES COM BASE EM TABELA DE PESQUISA TRIDIMENSIONAL EM CODIFICAÇÃO DE VÍDEO DE MÚLTIPLAS CAMADAS. Trata-se de técnicas para escalabilidade de gama de cores com base em tabela de pesquisa 3D em codificação de vídeo de múltiplas camadas. Uma camada inferior de dados de vídeo pode incluir dados de cor em uma primeira gama de cores e uma camada superior dos dados de vídeo pode incluir dados de cor em uma segunda gama de cores. Para gerar figurações de referência entre camadas, um codificador de vídeo realiza a previsão de cor para converter os dados de cor de uma figuração de referência na primeira gama de cores na segunda gama de cores. O codificador de vídeo pode realizar a previsão de cor com o uso de uma tabela de pesquisa 3D. De acordo com as técnicas, o codificador de vídeo gera pelo menos uma tabela de pesquisa 3D que tem um tamanho que é diferente para um componente de luma e para um primeiro componente de croma e um segundo componente de croma. Dessa maneira, o tamanho total da tabela pode ser reduzido, mantendo-se ao mesmo tempo um bom desempenho de codificação.

Description

PEDIDOS RELACIONADOS
[0001] Este pedido reivindica o benefício do Pedido Provisório no U.S. 61/890.843, depositado em 14 de outubro de 2013, cujo conteúdo é incorporado ao presente documento em sua totalidade a título de referência.
CAMPO DA TÉCNICA
[0002] Esta revelação refere-se à codificação de vídeo.
ANTECEDENTES
[0003] As capacidades de vídeo digital podem ser incorporadas em uma ampla faixa de dispositivos, incluindo televisões digitais, sistemas de difusão direta digital, sistemas de difusão sem fio, assistentes digitais pessoais (PDAs), computadores do tipo laptop ou desktop, computadores do tipo tablet, leitores de e-book, câmeras digitais, dispositivos de gravação digitais, reprodutores de mídias digitais, dispositivos de video game, consoles de video game, celular ou telefones de rádio-satélite, conhecidos como “telefones inteligentes”, dispositivos de teleconferência por vídeo, dispositivos de transmissão contínua de vídeo e similares. Os dispositivos de vídeo digitais implantam técnicas de codificação de vídeo, como as 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) e extensões de tais padrões. Os dispositivos de vídeo podem transmitir, receber, criptar, descodificar e/ou armazenar informações de vídeo digital de maneira mais eficiente implantando-se tais técnicas de codificação de vídeo.
[0004] As técnicas de codificação de vídeo incluem previsão espacial (intrafiguração) e/ou previsão temporal (interfiguração) para reduzir ou remover a redundância inerente em sequências de vídeo. Para a codificação de vídeo com base em bloco, uma fatia de vídeo (por exemplo, um quadro de vídeo ou uma porção de um quadro de vídeo) pode ser particionada em blocos de vídeo, que também podem ser denominados de blocos em árvore, unidades de codificação (CUs) e/ou nós de codificação. Os blocos de vídeo em uma fatia intracodificada (I) de uma figuração são criptados com o uso de previsão espacial em relação às amostras de referência em blocos próximos na mesma figuração. Os blocos de vídeo em uma fatia intercodificada (P ou B) de uma figuração podem usar previsão espacial em relação às amostras de referência em blocos próximos na mesma figuração ou previsão temporal em relação às amostras de referência em outras figurações de referência. As figurações podem ser denominadas de quadros e figurações de referência podem ser denominadas de quadros de referência.
[0005] A previsão espacial ou temporal 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 intercodificado é criptado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência que forma o bloco preditivo, sendo que os dados residuais indicam a diferença entre o bloco codificado e o bloco preditivo. Um bloco intracodificado é criptado de acordo com um modo de intracodificação e os dados residuais. Para compressão adicional, os dados residuais podem ser transformados do domínio de pixel para um domínio de transformada, que resulta em coeficientes de transformada residuais,os quais, então, podem ser quantizados. Os coeficientes de transformada quantizados, inicialmente dispostos em uma matriz bidimensional, podem ser varridos a fim de produzir um vetor unidimensional de coeficientes de transformada, e a codificação por entropia pode ser aplicada para alcançar ainda mais compressão.
SUMÁRIO
[0006] Em geral, esta revelação descreve técnicas para escalabilidade de gama de cores com base em tabela de pesquisa tridimensional (3D) em codificação de vídeo de múltiplas camadas. Como um exemplo, a codificação de vídeo de múltiplas camadas pode ser de acordo com o padrão de Codificação de Vídeo de Alta Eficiência (HEVC), que inclui qualquer uma dentre uma extensão de codificação de vídeo escalável, uma extensão de codificação de vídeo de múltiplas vistas e uma extensão de codificação de vídeo 3D (isto é, codificação de vídeo de múltiplas vistas mais profundidade), ou outros padrões de codificação de vídeo de múltiplas camadas. As técnicas para escalabilidade de gama de cores podem ser usadas por criptadores de vídeo e/ou decodificadores de vídeo para gerar figurações de referência entre camadas quando uma gama de cores para uma camada inferior de dados de vídeo é diferente de uma gama de cores para uma camada superior dos dados de vídeo.
[0007] Por exemplo, um criptador de vídeo e/ou decodificador de vídeo pode primeiro realizar a previsão de cor com o uso de uma tabela de pesquisa 3D para escalabilidade de gama de cores para converter os dados de cor de uma figuração de referência para a camada inferior na gama de cores para a camada superior e, então, gerar figurações de referência entre camadas com base nos dados de cor convertidos. De acordo com as técnicas descritas nesta revelação, o criptador de vídeo e/ou decodificador de vídeo gera pelo menos uma tabela de pesquisa 3D que tem um tamanho que é diferente para o componente de luma e para o primeiro componente de croma e o segundo componente de croma. O criptador de vídeo e/ou decodificador de vídeo pode gerar essa tabela de pesquisa 3D assimétrica com o uso de um número diferente de segmentos para a dimensão de luma da tabela de pesquisa 3D. Dessa forma, o tamanho total da tabela pode ser reduzido, mantendo-se ao mesmo tempo um bom desempenho de codificação.
[0008] Em um exemplo, esta revelação é direcionada a um método para processar dados de vídeo de múltiplas camadas, em que o método compreende gerar pelo menos uma tabela de pesquisa 3D para escalabilidade de gama de cores, em que a pelo menos uma tabela de pesquisa 3D tem um tamanho que é diferente para um componente de luma e para cada um dentre um primeiro componente de croma e um segundo componente de croma; realizar a previsão de cor com o uso da pelo menos uma tabela de pesquisa 3D para converter dados de cor de uma figuração de referência em uma primeira gama de cores para uma camada inferior dos dados de vídeo em uma segunda gama de cores para uma camada superior dos dados de vídeo; e gerar pelo menos uma figuração de referência entre camadas para a camada superior dos dados de vídeo com base nos dados de cor convertidos.
[0009] Em outro exemplo, esta revelação é direcionada a um dispositivo de processamento de vídeo para processar dados de vídeo de múltiplas camadas, sendo que o dispositivo compreende uma memória configurada para armazenar os dados de vídeo de múltiplas camadas, e um ou mais processadores em comunicação com a memória. Os um ou mais processadores são configurados para gerar pelo menos uma tabela de pesquisa 3D para escalabilidade de gama de cores, em que a pelo menos uma tabela de pesquisa 3D tem um tamanho que é diferente para um componente de luma e para um primeiro componente de croma e um segundo componente de croma, realizar a previsão de cor com o uso da pelo menos uma tabela de pesquisa 3D para converter dados de cor de uma figuração de referência em uma primeira gama de cores para uma camada inferior dos dados de vídeo em uma segunda gama de cores para uma camada superior dos dados de vídeo e gerar pelo menos uma figuração de referência entre camadas para a camada superior dos dados de vídeo com base nos dados de cor convertidos.
[0010] Em um exemplo adicional, esta revelação é direcionada a um dispositivo de processamento de vídeo para processar dados de vídeo de múltiplas camadas, sendo que o dispositivo compreende meios para gerar pelo menos uma tabela de pesquisa 3D para escalabilidade de gama de cores, em que a pelo menos uma tabela de pesquisa 3D tem um tamanho que é diferente para um componente de luma e para um primeiro componente de croma e um segundo componente de croma; meios para realizar a previsão de cor com o uso da pelo menos uma tabela de pesquisa 3D para converter dados de cor de uma figuração de referência em uma primeira gama de cores para uma camada inferior dos dados de vídeo em uma segunda gama de cores para uma camada superior dos dados de vídeo; e meios para gerar pelo menos uma figuração de referência entre camadas para a camada superior dos dados de vídeo com base nos dados de cor convertidos.
[0011] Em outro exemplo, esta revelação é direcionada a uma mídia de armazenamento legível por computador que armazena instruções para processar dados de vídeo de múltiplas camadas que, quando executadas, fazem com que um ou mais processadores gerem pelo menos uma tabela de pesquisa 3D para escalabilidade de gama de cores, em que a pelo menos uma tabela de pesquisa 3D tem um tamanho que é diferente para um componente de luma e para um primeiro componente de croma e um segundo componente de croma; realize a previsão de cor com o uso da pelo menos uma tabela de pesquisa 3D para converter dados de cor de uma figuração de referência em uma primeira gama de cores para uma camada inferior dos dados de vídeo em uma segunda gama de cores para uma camada superior dos dados de vídeo; e gere pelo menos uma figuração de referência entre camadas para a camada superior dos dados de vídeo com base nos dados de cor convertidos.
[0012] Os detalhes de um ou mais exemplos são apresentados nos desenhos anexos e na descrição abaixo. Outros recursos, objetivos e vantagens serão evidentes a partir da descrição e dos desenhos e a partir das reivindicações.
BREVE DESCRIÇÃO DOS DESENHOS
[0013] A Figura 1 é um diagrama de blocos que ilustra um sistema de criptação e decodificação de vídeo exemplificativo que pode utilizar técnicas para escalabilidade de gama de cores com base em tabela de pesquisa 3D.
[0014] A Figura 2 é uma ilustração conceitual que mostra um exemplo de escalabilidade em três dimensões diferentes.
[0015] A Figura 3 é uma ilustração conceitual que mostra uma estrutura exemplificativa de um fluxo de bits de codificação de vídeo escalável.
[0016] A Figura 4 é uma ilustração conceitual que mostra unidades de acesso de codificação de vídeo escalável exemplificativas em ordem de fluxo de bits.
[0017] A Figura 5 é um diagrama de blocos que ilustra um criptador de extensão de codificação de vídeo escalável para HEVC (SHVC).
[0018] A Figura 6 é um gráfico que ilustra uma gama de cores exemplificativa de uma sequência de vídeo de amostra.
[0019] A Figura 7 é um diagrama de blocos que ilustra a conversão de gama de cores de alta definição (HD) BT.709 para gama de cores de ultra-alta definição (UHD) BT.2020.
[0020] A Figura 8 é um diagrama de blocos que ilustra um codificador escalável de gama de cores que inclui uma unidade de processamento de previsão de cor que pode gerar uma figuração de referência entre camadas quando uma gama de cores de camada-base e uma gama de cores de camada de melhoramento são diferentes.
[0021] A Figura 9 é uma ilustração conceitual que mostra uma tabela de pesquisa 3D exemplificativa para escalabilidade de gama de cores.
[0022] A Figura 10 é uma ilustração conceitual que mostra a interpolação trilinear com a tabela de pesquisa 3D para escalabilidade de gama de cores.
[0023] A Figura 11 é um diagrama de blocos que ilustra um exemplo de um criptador de vídeo que pode implantar técnicas para usar a escalabilidade de gama de cores com base em tabela de pesquisa 3D em codificação de vídeo de múltiplas camadas.
[0024] A Figura 12 é um diagrama de blocos que ilustra um exemplo de um decodificador de vídeo que pode implantar técnicas para usar a escalabilidade de gama de cores com base em tabela de pesquisa 3D em codificação de vídeo de múltiplas camadas.
[0025] A Figura 13 é um fluxograma que ilustra uma operação exemplificativa de geração de figurações de referência entre camadas com o uso de escalabilidade de gama de cores com base em tabela de pesquisa 3D.
DESCRIÇÃO DETALHADA
[0026] Esta revelação descreve técnicas para escalabilidade de gama de cores com base em tabela de pesquisa tridimensional (3D) em codificação de vídeo de múltiplas camadas. A codificação de vídeo de múltiplas camadas pode ser de acordo com o padrão de Codificação de Vídeo de Alta Eficiência (HEVC), que inclui qualquer uma dentre uma extensão de codificação de vídeo escalável, uma extensão de codificação de vídeo de múltiplas vistas, uma extensão de codificação de vídeo 3D (isto é, codificação de vídeo de múltiplas vistas mais profundidade), ou outras extensões de codificação de vídeo de múltiplas camadas para HEVC. As técnicas podem ser usadas por criptadores de vídeo e/ou decodificadores de vídeo para gerar figurações de referência entre camadas quando uma gama de cores para uma camada inferior de dados de vídeo é diferente de uma gama de cores para uma camada superior dos dados de vídeo.
[0027] Uma gama de cores compreende uma faixa completa de cores que podem ser reproduzidas para uma imagem, por exemplo, em uma figuração, fatia, bloco ou camada de dados de vídeo. Convencionalmente, em codificação de vídeo de múltiplas camadas, uma camada inferior de dados de vídeo (por exemplo, uma camada-base) e uma camada superior dos dados de vídeo (por exemplo, uma camada de melhoramento) incluem dados de cor na mesma gama de cores, por exemplo, gama de cores de alta definição (HD) BT.709. Nesse caso, um criptador de vídeo e/ou decodificador de vídeo pode gerar figurações de referência entre camadas para a camada superior dos dados de vídeo como versões com resolução aumentada de figurações de referência colocalizadas para a camada inferior dos dados de vídeo.
[0028] Em alguns exemplos, entretanto, uma camada inferior de dados de vídeo pode incluir dados de cor m uma primeira gama de cores, por exemplo, BT.709, e uma camada superior dos dados de vídeo pode incluir dados de cor em uma segunda gama de cores diferente, por exemplo, gama de cores de ultra-alta definição (UHD) BT.2020. Nesse exemplo, a fim de gerar figurações de referência entre camadas para a camada superior dos dados de vídeo, um criptador de vídeo e/ou decodificador de vídeo deve primeiro realizar a previsão de cor para converter os dados de cor de uma figuração de referência na primeira gama de cores para a camada inferior dos dados de vídeo na segunda gama de cores para a camada superior dos dados de vídeo.
[0029] O criptador de vídeo e/ou decodificador de vídeo pode realizar a previsão de cor com o uso de uma tabela de pesquisa 3D para escalabilidade de gama de cores. Em alguns exemplos, uma tabela de pesquisa 3D separada pode ser gerada para cada um dos componentes de cor, isto é, um componente de luma (Y), um primeiro componente de croma (U) e um segundo componente de croma (V). Cada uma das tabelas de pesquisa 3D inclui uma dimensão de luma (Y), uma primeira dimensão de croma (U) e uma segunda dimensão de croma (V), é indexada com o uso dos três componentes de cor independentes (Y, U, V).
[0030] Convencionalmente, as tabelas de pesquisa 3D são sempre simétricas de modo que as tabelas de pesquisa 3D tenham um mesmo tamanho para o componente de luma, o primeiro componente de croma e o segundo componente de croma. Além disso, convencionalmente, as tabelas de pesquisa 3D são sempre equilibradas de modo que um tamanho de cada dimensão das tabelas de pesquisa 3D seja sempre o mesmo. Isso resulta em tamanhos de tabela grandes com alta complexidade computacional e altos custos de sinalização. Por exemplo, os tamanhos de tabela pode ser de até 9x9x9 ou 17x17x17.
[0031] De acordo com as técnicas descritas nesta revelação, o criptador de vídeo e/ou decodificador de vídeo gera pelo menos uma tabela de pesquisa 3D que tem um tamanho que é diferente para o componente de luma e para cada um dentre o primeiro componente de croma e o segundo componente de croma. O criptador de vídeo e/ou decodificador de vídeo pode gerar essa tabela de pesquisa 3D assimétrica com o uso de um número diferente de segmentos para a dimensão de luma da tabela de pesquisa 3D. Por exemplo, o criptador de vídeo e/ou decodificador de vídeo pode gerar a tabela de pesquisa 3D para ter um tamanho maior, isto é, mais segmentos, para o componente de luma do que para cada um dentre o primeiro e o segundo componentes de croma. Em um exemplo, a tabela de pesquisa 3D pode ter um tamanho de até 8x2x2. Dessa forma, o tamanho total da tabela pode ser reduzido, mantendo-se ao mesmo tempo um bom desempenho de codificação com resolução mais alta para o componente de luma do que para o primeiro e o segundo componentes de croma.
[0032] Em alguns exemplos, cada uma das tabelas de pesquisa 3D pode ter o mesmo tamanho MxNxK, em que o tamanho (M) da dimensão de luma da tabela de pesquisa 3D é diferente de cada um dentre o tamanho (N) da primeira dimensão de croma da tabela de pesquisa 3D e o tamanho (K) da segunda dimensão de croma da tabela de pesquisa 3D. Por exemplo, o tamanho da dimensão de luma pode ser maior do que os tamanhos das dimensões de croma, M > N e M > K, e os tamanhos das dimensões de croma da tabela de pesquisa 3D podem ser o mesmo, N=K. Em um exemplo, cada uma das tabelas de pesquisa 3D pode ter o mesmo tamanho de 8x2x2.
[0033] Em outros exemplos, uma tabela de pesquisa 3D de componente de luma (LUTy) pode ter primeiro tamanho, por exemplo, MxMxM ou MxNxK, que diferente de um segundo tamanho de uma primeira tabela de pesquisa 3D de componente de croma (LUTU), por exemplo, NxNxN, e de um terceiro tamanho de uma segunda tabela de pesquisa 3D de componente de croma (LUTV), por exemplo, KxKxK. Por exemplo, o tamanho da tabela de pesquisa 3D de componente de luma pode ser maior do que os tamanhos das tabelas de pesquisa 3D de componente de croma. A primeira e a segunda tabelas de pesquisa 3D de componente de croma podem ser do mesmo tamanho ou de tamanhos diferentes. Em um exemplo, LUTy pode ter o tamanho 8x2x2, e cada um dentre a LUTU e a LUTV pode ter o tamanho 2x2x2.
[0034] Em um exemplo adicional, a precisão da tabela de pesquisa 3D de componente de luma também pode ser diferente da precisão de cada uma dentre a primeira tabela de pesquisa 3D de componente de croma e a segunda tabela de pesquisa 3D de componente de croma. Por exemplo, a precisão da tabela de pesquisa 3D de componente de luma pode ser maior do que a precisão das tabelas de pesquisa 3D de componente de croma. Em alguns casos, para reduzir adicionalmente a complexidade, o criptador de vídeo e/ou decodificador de vídeo pode gerar somente uma tabela de pesquisa 3D de componente de luma, realizar a previsão de componente de luma com o uso da tabela de pesquisa 3D de componente de luma e realizar a primeira e a segunda previsão de componente de croma com o uso de mapeamento linear unidimensional (ID) ou mapeamento linear por partes.
[0035] Como outro exemplo, de acordo com as técnicas desta revelação, o criptador de vídeo e/ou decodificador de vídeo pode gerar uma tabela de pesquisa 3D desequilibrada com o uso de mais segmentos para a dimensão da tabela de pesquisa 3D associados ao componente de cor usado como um índice de tabela para a tabela de pesquisa 3D. Por exemplo, a tabela de pesquisa 3D de componente de luma pode ter uma dimensão de luma maior do que cada um dentre uma primeira dimensão de croma e uma segunda dimensão de croma com base no componente de luma que é usado como um índice de tabela para a tabela de pesquisa 3D de componente de luma. Nesse exemplo, a LUTy pode ter o tamanho MxNxN, em que M > N. Os tamanhos da primeira e da segunda tabelas de pesquisa 3D de componente de croma podem ser determinados similarmente. Por exemplo, a LUTU pode ter o tamanho NxMxN com base no primeiro componente de croma que é usado no índice de tabela e a LUTV pode ter o tamanho NxNxM com base no segundo componente de croma que é usado no índice de tabela. Dessa forma, o tamanho total de cada uma das tabelas pode ser reduzido, mantendo-se ao mesmo tempo um bom desempenho de codificação com resolução mais alta para o componente de cor usado como o índice de tabela.
[0036] Os padrões de codificação de vídeo incluem ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também denominado de ISO/IEC MPEG-4 AVC), incluindo suas extensões de Codificação de Vídeo Escalável (SVC) e de Codificação de Vídeo de Múltiplas Vistas (MVC).
[0037] O projeto de um novo padrão de codificação de vídeo, a saber HEVC, foi finalizado pela Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do Grupo de Especialistas de Codificação de Vídeo de ITU-T (VCEG) e do Grupo de Especialistas em Imagens com Movimento ISO/IEC (MPEG). Uma especificação de rascunho de HEVC, denominada de “Rascunho de Trabalho HEVC 10” ou “WD 10”, Bross et al., “High efficiency codificação de vídeo (HEVC) text specification draft 10 (for FDIS & Last Call)”, Equipe Colaborativa Conjunta em Codificação de Vídeo (JCT- VC) de ITU-T SGI 6 WP3 e ISO/IEC JTC 1/SC29/WG11, 12° Encontro: Geneva, CH, 14 a 23 de janeiro de 2013, JCTVC- L1003v34, está disponível em http://phenix.int- eyry.fr/ict/doc end user/documents/12 Geneva/wg11/JCTVC- L1003-v34.zip. O padrão HEVC finalizado é denominado de versão de HEVC 1.
[0038] Um relatório de defeito, Wang et al., “High efficiency codificação de vídeo (HEVC) Defect Report”, Equipe Colaborativa Conjunta em Codificação de Vídeo (JCT-VC) de ITU-T SGI 6 WP3 e ISO/IEC JTC1/SC29/WG11, 14° Encontro: Viena, AT, de 25 de julho a 2 de agosto de 2013, JCTVC-N1003vl, está disponível em http://phenix.int- eyry.fr/jct/doc end user/documents/14 Vienna/wg11/JCTVC- N1003-v1.zip. O documento padrão finalizado está publicado como ITU-T H.265, Série H: Sistemas Audiovisuais e de Multimídia, serviços audiovisuais de Infraestrutura - Codificação de vídeo em movimento, Codificação de vídeo de alta eficiência. Setor de Padronização de Telecomunicação da União Internacional de Telecomunicações (ITU), abril de 2013.
[0039] A extensão de múltiplas vistas para HEVC (MV-HEVC) e outra extensão de HEVC para codificação de vídeo 3D mais avançada (3D-HEVC) estão sendo desenvolvidas pela JCT-3V. Uma especificação de rascunho de MV-HEVC, denominada como Rascunho de Trabalho MV-HEVC 5 (WD5), Tech et al., “MV-HEVC Draft Text 5”, Equipe Colaborativa Conjunta em Desenvolvimento de Extensão de Codificação de Vídeo 3D (JCT-3V) de ITU-T SGI 6 WP3 e ISO/IEC JTC 1/SC29/WG 11, 5° Encontro: Viena, AT, de 27 de julho a 2 de agosto de 2013, JCT3V-E1004v6, está disponível em http://phenix.int- evTy.fr/ict/doc end user/documents/5 Vienna/wg11/JCT3V- E1004-v6.zip. Uma especificação de rascunho de 3D-HEVC, denominada de Rascunho de Trabalho de 3D-HEVC 1 (WD.1) e descrita em Tech et al., “3D-HEVC Draft Text 1”, Equipe Colaborativa Conjunta em Desenvolvimento de Extensão de Codificação de Vídeo em 3D (JCT-3V) de ITU-T SG 16 WP 3 e ISO/IEC JTC1/SC29/WG11, 5° Encontro: Viena, AT, de 27 de julho a 2 de agosto de 2013, JCT3V- E1001V3, está disponível em http://phenix.it- sudparis.eu/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V -E1001-v3.zip.
[0040] A extensão escalável para HEVC (SHVC) está sendo desenvolvida pela JCT-VC. Uma especificação de rascunho de SHVC, denominada de Rascunho de Trabalho SHVC 3 (WD3), Chen et al., “SHVC Draft 3”, Equipe Colaborativa Conjunta em Codificação de Vídeo (JCT-VC) de ITU-T SG 16 WP3 e ISO/TEC JTC 1/SC29/WGII, 14° Encontro: Viena, AT, de 25 de julho a 2 de agosto de 2013, JCTVC-N 1008v3, está disponível em http://phenix.int- evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC- N1008-v3.zip.
[0041] A Figura 1 é um diagrama de blocos que ilustra um sistema de criptação e decodificação de vídeo exemplificativo 10 que pode utilizar técnicas para escalabilidade de gama de cores com base em tabela de pesquisa 3D. Conforme mostrado na Figura 1, o sistema 10 inclui um dispositivo de fonte 12 que fornece dados de vídeo criptados a serem decodificados posteriormente por um dispositivo de destino 14. Em particular, o dispositivo de fonte 12 fornece os dados de vídeo para o dispositivo de destino 14 por meio de uma mídia legível por computador 16. O dispositivo de fonte 12 e o dispositivo de destino 14 podem compreender qualquer um dentre uma ampla faixa de dispositivos, que inclui computadores de mesa, computadores do tipo notebook (isto é, do tipo laptop), computadores do tipo tablet, decodificadores de sinais, aparelhos de telefone, tais como, os assim chamados telefones “inteligentes”, assim chamados computadores do tipo pad “inteligentes”, televisões, câmeras, dispositivos de exibição, reprodutores de mídias digitais, consoles de video game, dispositivo de transmissão contínua de vídeo ou similares. Em alguns casos, o dispositivo de fonte 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio.
[0042] O dispositivo de destino 14 pode receber os dados de vídeo criptados a serem decodificados por meio de uma mídia legível por computador 16. A mídia legível por computador 16 pode compreender qualquer tipo de mídia ou dispositivo com capacidade para mover os dados de vídeo criptados do dispositivo de fonte 2 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 permitir que um dispositivo de fonte 12 transmita os dados de vídeo criptados diretamente para o dispositivo de destino 14 em tempo real. Os dados de vídeo criptados podem ser modulados de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio, e transmitidos para o dispositivo de destino 14. A mídia de comunicação pode compreender qualquer mídia de comunicação sem fio e cabeada, tal como, um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão física. 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 fonte 12 para o dispositivo de destino 14.
[0043] Em alguns exemplos, dados criptados podem ser emitidos a partir da interface de saída 22 para um dispositivo de armazenamento. De modo similar, dados criptados podem ser acessados a partir do dispositivo de armazenamento pela interface de entrada. O dispositivo de armazenamento pode incluir qualquer uma dentre uma variedade mídias de armazenamento de dados distribuídos ou acessados 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 quaisquer outras mídias de armazenamento digital adequadas para armazenar dados de vídeo criptados. Em um exemplo adicional, o dispositivo de armazenamento pode corresponder a um servidor de arquivo ou a outro dispositivo de armazenamento intermediário que pode armazenar o vídeo criptado gerado pelo dispositivo de fonte 12. O dispositivo de destino 14 pode acessar os dados de vídeo armazenados do dispositivo de armazenamento por meio de transmissão contínua ou transferência por download. O servidor de arquivo pode ser qualquer tipo de servidor com capacidade para armazenar dados de vídeo criptados e para transmitir esses dados de vídeo criptados para o dispositivo de destino 14. Os servidores de arquivo exemplificativos incluem um servidor da web (por exemplo, para um site da web), um servidor FTP, dispositivos de armazenamento anexado à rede (NAS) ou uma unidade de disco local. O dispositivo de destino 14 pode acessar os dados de vídeo criptados 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 cabeada (por exemplo, DSL, modem a cabo, etc.) ou uma combinação dos dois que seja adequada para acessar os dados de vídeo criptados armazenados em um servidor de arquivo. A transmissão de dados de vídeo criptados a partir do dispositivo de armazenamento pode ser uma transmissão contínua, uma transmissão através de transferência por download ou uma combinação das mesmas.
[0044] As técnicas desta revelação não se limitam necessariamente às aplicações ou configurações sem fio. As técnicas podem ser aplicadas à codificação de vídeo visando dar apoio a qualquer uma dentre uma variedade de aplicações de multimídia, tais como, difusões de televisão aberta, transmissões de televisão a cabo, transmissões de televisão por satélite, transmissões contínuas de vídeo pela Internet, tais como, transmissão contínua adaptativa dinâmica através de HTTP (DASH), vídeo digital que é criptado em uma mídia de armazenamento de dados, decodificação de vídeo digital armazenado em uma mídia 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 a fim de suportar aplicações, tais como, transmissão contínua de vídeo, reprodução de vídeo, difusão de vídeo e/ou videotelefonia.
[0045] No exemplo da Figura 1, o dispositivo de fonte 12 inclui uma fonte de vídeo 18, um criptador de vídeo 20 e uma interface de saída 22. O dispositivo de destino 14 inclui uma interface de entrada 28, um decodificador de vídeo 30 e um dispositivo de exibição 32. De acordo com esta revelação, o criptador de vídeo 20 de dispositivo de fonte 12 pode ser configurado para aplicar as técnicas para processamento de dados de vídeo em paralelo. Em outros exemplos, um dispositivo de fonte e um dispositivo de destino podem incluir outros componentes oi disposições. Por exemplo, o dispositivo de fonte 12 pode receber dados de vídeo a partir de uma fonte de vídeo externa 18, tal como uma câmera externa. De modo dispositivo de destino 14 pode fazer interface com um dispositivo de exibição externo, em vez de incluir um dispositivo de exibição integrado.
[0046] O sistema 10 ilustrado da Figura 1 é meramente um exemplo. As técnicas para processamento de dados de vídeo em paralelo podem ser realizadas por qualquer dispositivo de criptação e/ou decodificação de vídeo digital. Embora, de modo geral, as técnicas desta revelação sejam realizadas por um dispositivo de criptação de vídeo, as técnicas também podem ser realizadas por um criptador/decodificador de vídeo denominado tipicamente de “CODEC”. Além disso, as técnicas desta revelação também podem ser realizadas por um pré-processador de vídeo. O dispositivo de fonte 12 e o dispositivo de destino 14 são meramente exemplos de tais dispositivos de codificação nos quais o dispositivo de fonte 12 gera dados de vídeo codificados para transmissão para o dispositivo de destino 14. Em alguns exemplos, os dispositivos 12, 14 podem operar de maneira substancialmente simétrica de modo que cada um dos dispositivos 12, 14 inclua componentes de criptação e decodificação de vídeo. 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 transmissão contínua de vídeo, reprodução de vídeo, radiodifusão de vídeo ou videotelefonia.
[0047] A fonte de vídeo 18 do dispositivo de fonte 12 pode incluir um dispositivo de captura de vídeo, tal como, uma câmera de vídeo, um arquivo de vídeo que contém um vídeo anteriormente capturado e/ou uma interface de alimentação de vídeo para receber vídeo de um fornecedor de conteúdo de vídeo. Como uma alternativa adicional, uma fonte de vídeo 18 pode gerar dados com base em computação gráfica como o vídeo-fonte ou uma combinação de vídeo ao vivo, vídeo arquivado e vídeo gerado por computador. Em alguns casos, caso a fonte de vídeo 18 seja uma câmera de vídeo, o dispositivo de fonte 12 e o dispositivo de destino 14 podem formar os assim chamados telefones de câmera ou videofones. No entanto, conforme mencionado acima, as técnicas descritas nesta revelação podem ser aplicáveis à codificação de vídeo em geral, e podem ser aplicadas a aplicações sem fio e/ou cabeadas. Em cada caso, o vídeo capturado, pré-capturado ou gerado por computador pode ser criptado por criptador de vídeo 20. As informações de vídeo criptadas podem, então, ser emitidas pela interface de saída 22 para uma mídia legível por computador 16.
[0048] A mídia legível por computador 16 pode incluir mídias transitórias, tais como uma transmissão por difusão sem fio ou por rede cabeada, ou mídias de armazenamento (isto é, mídias de armazenamento não transitórias), tais 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 criptados a partir do dispositivo de fonte 12 e fornecer os dados de vídeo criptados para o dispositivo de destino 14, por exemplo, por meio de transmissão por rede. De modo similar, um dispositivo de computação de uma instalação de produção de mídia, tal como uma instalação de rotulação de disco, pode receber dados de vídeo criptados a partir do dispositivo de fonte 12 e produzir um disco contendo os dados de vídeo criptados. Portanto, a mídia legível por computador 6 pode ser entendida como incluindo uma ou mais mídias legíveis por computador várias formas, em vários exemplos.
[0049] A interface de entrada 28 de dispositivo de destino 14 recebe informações a partir da mídia legível por computador 16. As informações de mídia legível por computador 16 podem incluir informações de sintaxe definidas pelo criptador de vídeo 20, que também é usado pelo decodificador de vídeo 30, que inclui elementos de sintaxe que descrevem características e/ou o processamento de blocos e outras unidades codificadas, por exemplo, grupos de figurações (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 visores como um tubo de raio de cátodo (CRT), um visor de cristal líquido (LCD), um visor de plasma, um visor de diodo emissor de luz orgânico (OLED) ou outro tipo de dispositivo de exibição.
[0050] O criptador de vídeo 20 e o decodificador de vídeo 30, cada um, podem ser implantados como qualquer um dentre uma variedade de conjunto de circuitos de criptador adequado, tal como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), matrizes de porta programáveis por 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 criptador de vídeo 20 e o decodificador de vídeo 30 pode estar incluído em um ou mais criptadores ou decodificadores, um dos quais pode ser integrado como parte de um criptador/decodificador (CODEC) combinado em um respectivo dispositivo.
[0051] Em alguns exemplos, o criptador de vídeo 20 e o decodificador de vídeo 30 operam de acordo com um padrão de compressão de vídeo, tal como ISO TEC MPEG-4 Visual e ITU-T H.264 (também denominado de ISO/IEC MPEG-4 AVC), que inclui sua extensão de Codificação de Vídeo Escalável (SVC), extensão de Codificação de Vídeo de Múltiplas Vistas (MVC) e a extensão de Vídeo tridimensional (3DV) com base em MVC. Em alguns exemplos, qualquer fluxo de bits em conformidade com 3DV com base em MVC sempre contém um subfluxo de bits que é compatível com um perfil de MVC, por exemplo, elevado perfil estéreo. Além disso, há um esforço contínuo para gerar uma extensão de codificação de 3DV para H.264/AVC, a saber 3DV com base em AVC. Em outros exemplos, o criptador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com ITU-T 11.261, ISO/IEC MPEG- 1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264, ISO/IEC Visual.
[0052] No exemplo da Figura 1, o criptador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) finalizado pela Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do Grupo de Especialistas em Codificação de Vídeo de ITU-T (VCEG) e Grupo de Especialistas em Imagens em Movimento de ISO/IEC (MPEG). A especificação de rascunho de HEVC, referida acima, é denominada de Rascunho de Trabalho de HEVC 10 (WD 10), e a versão finalizada do padrão de HEVC é denominada de versão de HEVC 1. A MV-HEVC e a 3D-HEVC estão sendo desenvolvidas pela JCT-3V. Uma especificação de rascunho recente de MV-HEVC é denominada de MV-HEVC WD5, e uma especificação de rascunho recente de 3D-HEVC é denominada de 3D-HEVC WD1. A SHVC está sendo desenvolvida pela JCT-VC. Uma especificação de rascunho recente de SHVC é denominada de SHVC WD3.
[0053] Em HEVC WD10 e outros padrões de codificação de vídeo, uma sequência de vídeo inclui tipicamente uma série de figurações. As figurações também podem ser denominadas de “quadros”. A figuração pode inclui três matrizes de amostra, denotadas SL, SCb e SCr. A SL é uma matriz bidimensional (isto é, um bloco) de amostras de luma. A 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 de amostras de “croma”. Em outros exemplos, uma figuração pode ser um monocroma e pode incluir apenas uma matriz de amostras de luma.
[0054] O criptador de vídeo 20 pode gerar um conjunto de unidades de árvore de codificação (CTUs). Cada uma das CTUs pode ser um bloco de árvore de codificação de amostras de luma, dois blocos de árvore de codificação correspondentes de amostras de croma e estruturas de sintaxe usadas para codificar as amostras dos blocos de árvore de codificação. Em uma figuração de monocroma ou uma figuração que tem 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 de “bloco de árvore” ou de uma “unidade de codificação maior” (LCU). As CTUs de HEVC podem ser amplamente análogas aos macroblocos de outros padrões de codificação de vídeo, tais como H.264/AVC. No entanto, a CTU não se limita necessariamente a um tamanho particular e pode incluir uma ou mais unidades de codificação (CUs). Uma fatia pode incluir um número inteiro de CTUs ordenadas consecutivamente na varredura de rastreamento.
[0055] 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 dos um ou mais blocos de amostras. Tipos de exemplo de unidades de vídeo podem incluir CTUs, CUs, PUs, unidades de transformada (TUs) em HEVC, ou macroblocos, partições de macrobloco e assim por diante em outros padrões de codificação de vídeo.
[0056] Para gerar uma CTU codificada, o criptador de vídeo 20 pode realizar, recursivamente, partição de árvore quadrática nos blocos de árvore de codificação de uma CTU para dividir os blocos de árvore de codificação em blocos de codificação, por conseguinte, o nome “unidades de árvore de codificação”. Um bloco de codificação é um bloco NxN de amostras. Uma CU pode compreender um bloco de codificação de amostras de luma e dois blocos de codificação correspondentes de amostras de croma de uma figuração que tem uma matriz de amostra de 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 figuração de monocroma ou uma figuração que tem 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.
[0057] O criptador de vídeo 20 pode particionar um bloco de codificação de uma CU em um ou mais blocos de previsão. Um bloco de previsão pode ser um bloco retangular (isto é, quadrado ou não quadrado) de amostras no qual a mesma previsão é aplicada. Uma unidade de previsão (PU) de uma CU pode compreender um bloco de previsão de amostras de luma, dois blocos de previsão correspondentes de amostras de croma de uma figuração e estruturas de sintaxe usadas para prever as amostras de bloco de previsão. Em uma figuração de monocroma ou uma figuração que tem três planos de cor separados, uma PU pode compreender um único bloco de previsão e estruturas de sintaxe usadas para prever as amostras de bloco de previsão. O criptador de vídeo 20 pode gerar blocos de luma, de Cb e de Cr preditivos para blocos de previsão de luma, de Cb e de Cr de cada PU da CU.
[0058] O criptador de vídeo 20 pode usar intraprevisão ou interprevisão para gerar os blocos preditivos para uma PU. Se o criptador de vídeo 20 usa intraprevisão para gerar os blocos preditivos de uma PU, o criptador de vídeo 20 pode gerar blocos preditivos da PU com base em amostras decodificadas da figuração associada à PU.
[0059] Se o criptador de vídeo 20 usa interprevisão para gerar os blocos preditivos de uma PU, o criptador de vídeo 20 pode gerar os blocos preditivos da PU com base em amostras decodificadas de uma ou mais figurações diferentes da figuração associada à PU. A interprevisão pode ser uma interprevisão unidirecional (isto é, uniprevisão) ou interprevisão bidirecional (isto é, biprevisão). Para realizar a uniprevisão ou biprevisão, o criptador de vídeo 20 pode gerar uma primeira lista de figurações de referência (RefPicList0) e uma segunda lista de figurações de referência (RefPicList1) para uma fatia atual.
[0060] Cada uma das listas de figurações de referência pode incluir uma ou mais figurações de referência. Durante o uso da uniprevisão, o criptador de vídeo 20 pode buscar as figurações de referência tanto na RefPicList0 como na RefPicList1 para determinar uma localização de referência dentro de uma figuração de referência. Adicionalmente, quando o uso da uniprevisão, o criptador de vídeo 20 pode gerar, com base pelo menos em parte nas amostras correspondentes à localização de referência, os blocos de amostra preditivos para a PU. Ademais, durante o uso da uniprevisão, o criptador de vídeo 20 pode gerar um único vetor de movimento que indica um deslocamento espacial entre um bloco de previsão da PU e a localização de referência. Para indicar o deslocamento espacial entre um bloco de previsã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 previsã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 previsão da PU e a localização de referência.
[0061] Durante o uso da biprevisão para criptar uma PU, o criptador de vídeo 20 pode determinar uma primeira localização de referência em uma figuração de referência na RefPicList0 e segunda localização de referência em uma figuração de referência na RefPicList1. Então, o criptador de vídeo 20 pode gerar, com base pelo menos em parte nas amostras correspondentes à primeira e à segunda localizações de referências, os blocos preditivos para a PU. Além disso, durante o uso da biprevisão para criptar a PU, o criptador 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 previsão da PU e a segunda localização de referência.
[0062] Após o criptador de vídeo 2,0 gerar blocos de luma, de Cb e de Cr preditivos para uma ou mais PUs de uma CU, o criptador de vídeo 20 pode gerar um bloco residual de luma para a CU. Cada amostra no bloco residual de luma da CU indica uma diferença entre uma amostra de luma em um dos blocos de luma preditivos da CU e uma amostra correspondente no bloco de codificação de luma original da CU. Além disso, o criptador de vídeo 20 pode gerar um bloco residual de Cb para a CU. Cada amostra no bloco residual de Cb da CU pode indicar uma diferença entre uma amostra de Cb em um dos blocos de Cb preditivos da CU e uma amostra correspondente no bloco de codificação de Cb original da CU. O criptador de vídeo 20 também pode gerar um bloco residual de Cr para a CU. Cada amostra no bloco residual de Cr da CU pode indicar uma diferença entre uma amostra de Cr em um dos blocos de Cr preditivos da CU e uma amostra correspondente no bloco de codificação de Cr original da CU.
[0063] Além disso, o criptador de vídeo 20 pode usar a partição de árvore quadrática para decompor os blocos residuais de luma, de Cb e de Cr de uma CU em um ou mais blocos de transformada de luma, de Cb e de 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 de luma, dois blocos de transformada correspondentes de amostras de croma e estruturas de sintaxe usadas para transformar as amostras de bloco de transformada. Em uma figuração de monocroma ou uma figuração 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 transformada. Assim, cada TU de uma CU pode ser associada a um bloco de transformada de luma, um bloco de transformada de Cb e um bloco de transformada de Cr. O bloco de transformada de luma associado à TU pode ser um sub-bloco do bloco residual de luma da CU. O bloco de transformada de Cb pode ser um sub-bloco do bloco residual de Cb da CU. O bloco de transformada de Cr pode ser um sub- bloco do bloco residual de Cr da CU.
[0064] O criptador de vídeo 20 pode aplicar uma ou mais transformadas a um bloco de transformada de luma de uma TU para gerar um bloco de coeficiente de luma para a TU. Um bloco de coeficiente pode ser uma matriz bidimensional de coeficientes de transformada. Um coeficiente de transformada pode ser uma quantidade escalar. O criptador de vídeo 20 pode aplicar uma ou mais transformadas a um bloco de transformada de Cb de uma TU para gerar um bloco de coeficiente de Cb para a TU. O criptador de vídeo 20 pode aplicar uma ou mais transformadas a um bloco de transformada de Cr de uma TU para gerar um bloco de coeficiente de Cr para a TU.
[0065] Após gerar um bloco de coeficiente (por exemplo, um bloco de coeficiente de luma, um bloco de coeficiente de Cb ou um bloco de coeficiente de Cr), o criptador de vídeo 20 pode quantizar o bloco de coeficiente. Em geral, a quantização se refere a um processo no qual os coeficientes de transformada são quantizados para reduzir possivelmente a quantidade de dados usada para representar os coeficientes de transformada, o que fornece uma compressão adicional. Além disso, o criptador de vídeo 20 pode quantizar, inversamente, 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 figuração. O criptador 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. Reconstruindo-se os blocos de codificação de cada CU de uma figuração, o criptador de vídeo 20 pode reconstruir a figuração. O criptador de vídeo 20 pode armazenar figurações reconstruídas em um armazenamento temporário de figuração decodificada (DPB). O criptador de vídeo 20 pode usar figurações reconstruídas no DPB para interprevisão e intraprevisão.
[0066] Após o criptador de vídeo 20 quantizar um bloco de coeficiente, o criptador de vídeo 20 pode criptar por entropia elementos de sintaxe que indicam os coeficientes de transformada quantizados. Por exemplo, o criptador de vídeo 20 pode realizar Codificação Aritmética Binária Adaptativa ao Contexto (CABAC - Context-Adaptive Binary Arithmetic Coding) nos elementos de sintaxe que indicam os coeficientes de transformada quantizados. O criptador de vídeo 20 pode emitir os elementos de sintaxe criptados por entropia em um fluxo de bits. O criptador de vídeo 20 pode emitir um fluxo de bits que inclui uma sequência de bits que forma uma representação de figurações 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 de NAL inclui um cabeçalho de unidade de NAL e encapsula uma carga útil de sequência de byte bruto (RBSP). O cabeçalho de unidade de NAL pode incluir um elemento de sintaxe que indica um código de tipo de unidade de NAL. O código de tipo de unidade de NAL especificado pelo cabeçalho de unidade de NAL de uma unidade de NAL indica o tipo da unidade de NAL. Uma RBSP pode ser uma estrutura de sintaxe que contém um número inteiro de bytes que é encapsulada dentro de uma unidade de NAL. Em alguns exemplos, uma RBSP inclui zero bits.
[0067] Diferentes tipos de unidades de NAL podem encapsular diferentes tipos de RBSPs, por exemplo, um primeiro tipo de unidade de NAL pode encapsular uma RBSP para um ajuste de parâmetro de figuração (PPS), um segundo tipo de unidade de NAL pode encapsular uma RBSP para uma fatia codificada, um terceiro tipo de unidade de NAL pode encapsular uma RBSP para Informações de Melhoramento suplementares (SEI), e assim por diante. Um PPS é uma estrutura de sintaxe que pode conter elementos de sintaxe que aplicam a zero ou figurações de codificação mais inteiras. As unidades de NAL que encapsulam RBSPs para dados de codificação de vídeo (conforme oposto às RBSPs para ajustes de parâmetros e mensagens de SEI) podem ser denominadas de unidades de NAL de camada de codificação de vídeo (VLC). Uma unidade de NAL que encapsula uma fatia codificada pode ser denominada no presente documento de uma unidade de NAL de fatia codificada. Uma RBSP para uma fatia codificada pode incluir um cabeçalho de fatia e dados de fatia.
[0068] O decodificador de vídeo 30 pode receber um fluxo de bits. Além disso, o decodificador de vídeo 30 pode analisar o fluxo de bits para decodificar elementos de sintaxe do fluxo de bits. O decodificador de vídeo 30 pode reconstruir as figurações dos dados de vídeo com base, pelo menos em parte, nos elementos de sintaxe decodificados do fluxo de bits. O processo para reconstruir os dados de vídeo pode ser, em geral, recíproco ao processo realizado pelo criptador 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.
[0069] Além disso, o decodificador de vídeo 30 pode quantizar, inversamente, os coeficientes de blocos associados às TUs da CU atual. O decodificador de vídeo 30 pode realizar transformadas inversas nos blocos de coeficientes 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 adicionando-se as amostras dos blocos preditivos para as PUs da CU atual às amostras correspondentes dos blocos de transformada das TUs da CU atual. Reconstruindo-se os blocos de codificação para cada CU de uma figuração, o decodificador de vídeo 30 pode reconstruir a figuração. O decodificador de vídeo 30 pode armazenar figurações decodificadas em um armazenamento temporário de figuração decodificada para emitir e/ou para uso em decodificação de outras figurações.
[0070] Em MV-HEVC, 3D-HEVC e SHVC, um criptador de vídeo pode gerar um fluxo de bits de múltiplas camadas que compreende uma série de unidades de camadas de abstração de rede (NAL).
[0071] Unidades de NAL diferentes do fluxo de bits podem ser associadas às camadas diferentes do fluxo de bits. Uma camada pode ser definida como um conjunto de unidades de NAL de camada de codificação de vídeo (VLC) e unidades de NAL não VCL associadas que têm o mesmo identificador de camada. Uma camada pode ser equivalente a uma vista em codificação de vídeo de múltiplas vistas. Em codificação de vídeo de múltiplas vistas, uma camada pode conter todos os componentes de vista da mesma camada com diferentes períodos de tempo. Cada componente de vista pode ser uma figuração codificada da cena de vídeo que pertence a uma vista específica em um período de tempo específico. Em codificação de vídeo 313, uma camada pode conter tanto todas as figurações de profundidade codificadas de uma vista específica quanto figurações de textura codificadas de uma vista específica. De modo similar, no contexto de codificações de vídeo escalável, uma camada corresponde tipicamente às figurações codificadas que têm características de vídeo diferentes de figurações codificadas em outras camadas. Tais características de vídeo incluem tipicamente resolução espacial e nível de qualidade (Razão entre sinal e ruído). Em HEVC e suas extensões, a escalabilidade temporal pode ser alcançada dentro de uma camada definindo-se um grupo de figurações com um nível temporal particular como uma subcamada.
[0072] Para cada respectiva camada do fluxo de bits, os dados em uma camada inferior podem ser decodificados sem referência aos dados em qualquer camada superior. Em codificação de vídeo escalável, por exemplo, os dados em uma camada-base podem ser decodificados sem referência aos dados em uma camada de melhoramento. As unidades de NAL encapsulam apenas dados de uma única camada. Em SHVC, uma vista poder ser denominada de “camada- base” se um decodificador de vídeo pode decodificar figurações na vista sem referência aos dados de qualquer outra camada. A camada-base pode se conformar à especificação de base de HEVC. Assim, as unidades de NAL que encapsulam dados da camada remanescente mais superiores do fluxo de bits podem ser removidas do fluxo de bits sem afetar a capacidade de decodificação de dados nas camadas remanescentes do fluxo de bits. Em MV-HEVC e 3D-HEVC, as camadas superiores podem incluir componentes de vista adicionais. Em SHVC, as camadas superiores podem incluir dados de melhoramento de razão entre sinal e ruído (SNR), dados de melhoramento espacial e/ou dados de melhoramento temporal.
[0073] Em alguns exemplos, os dados em uma camada superior podem ser decodificados com referência aos dados em uma ou mais camadas inferiores. As camadas inferiores podem ser usadas como figurações de referência para comprimir a camada superior com o uso de previsão entre camadas. Os dados das camadas inferiores podem ter sua resolução aumentada para ter a mesma resolução que as camadas superiores. Em geral, o criptador de vídeo 20 e o decodificador de vídeo 30 podem realizar a previsão entre camadas de uma maneira similar a da interprevisão descrita acima, exceto uma ou mais camadas inferiores com resolução aumentada que podem ser usadas como figurações de referência conforme opostas a uma ou mais figurações próximas.
[0074] A Figura 2 é uma ilustração conceitual que mostra um exemplo de escalabilidade em três dimensões diferentes. Em uma estrutura de codificação de vídeo escalável, as escalabilidades são permitidas em três dimensões. No exemplo da Figura 2, as escalabilidades são permitidas em uma dimensão espacial (S) 100, uma dimensão temporal (T) 102 e uma dimensão de razão entre sinal e ruído (SNR) ou de qualidade (Q) 104. Na dimensão temporal 102, taxas de quadro com 7,5 Hz (T0), 15 Hz (T1) ou 30 Hz (T2), por exemplo, podem ser suportadas por escalabilidade temporal. Quando a escalabilidade espacial é suportada, diferentes resoluções tais como QCIF (S0), CIF (S1) e 4CIF (S2), por exemplo, são permitidas na dimensão espacial 100. Para cada resolução espacial específica e taxa de quadros, camadas de SNR (Q1) podem ser adicionadas na dimensão de SNR 104 para aprimorar a qualidade de figuração.
[0075] Uma vez que o conteúdo de vídeo foi criptado de tal forma escalável, uma ferramenta extratora pode ser usada para adaptar o conteúdo entregue atual de acordo com as exigências de aplicação, que são dependentes, por exemplo, dos clientes ou do canal de transmissão. No exemplo mostrado na Figura 2, cada cúbico contém figurações com a mesma taxa de quadros (nível temporal), resolução espacial, e camadas de SNR. A melhor representação pode ser alcançada adicionando-se cubos (isto é, figurações) em qualquer uma dentre as dimensões 100, 102 ou 104. A escalabilidade combinada é suportada quando há duas, três ou até mais escalabilidades permitidas.
[0076] Em padrões de codificação de vídeo escalável, tais como a extensão de SVC para H.264 ou SHVC, as figurações com as camadas espaciais ou de SNR mais inferiores são compatíveis com o codec de vídeo de camada única, e as figurações no nível temporal mais inferior formam a camada-base temporal, que pode ser elevada com figurações em níveis temporais superiores. Além da camada- base, diversas camadas de melhoramento espaciais e/ou de SNR podem ser adicionadas para fornecer escalabilidades espaciais e/ou de qualidade. Cada própria camada de melhoramento espacial ou de SNR pode ser escalável temporalmente, com a mesma estrutura de escalabilidade temporal que a camada-base. Para uma camada de melhoramento espacial ou de SNR, a camada inferior que a mesma depende pode ser denominada de camada-base da camada de melhoramento espacial ou de SNR específica.
[0077] A Figura 3 é uma ilustração conceitual que mostra uma estrutura exemplificativa 110 de um fluxo de bits de codificação de vídeo escalável. A estrutura de fluxo de bits 110 inclui uma camada 0 112 que inclui figurações ou fatias I0, P4 e P8, e uma camada 1 114 que inclui figurações ou fatias B2, B6 e B10. Além disso, a estrutura de fluxo de bits 110 inclui uma camada 2 116 e uma camada 3 117 que, cada uma, inclui figurações 0, 2, 4, 6, 8 e 10, e uma camada 4 118 que inclui figurações 0 até 11.
[0078] Uma camada-base tem a camada espacial e de qualidade mais inferior (isto é, figurações em camada 0 112 e camada 1 114 com resolução QCIF). Dentre as mesmas, essas figurações do nível temporal mais inferior formam a camada-base temporal, conforme mostrado na camada 0 112 da Figura 3. A camada-base temporal (camada 0) 112 pode ser alcançada com figurações de um nível temporal superior, por exemplo, a camada 1 114 com taxa de quadros de 15 Hz ou camada 4 118 com taxa de quadros de 30 Hz.
[0079] Além da camada-base 112, 114, diversas camadas de melhoramento espaciais e/ou de SNR podem ser usadas para fornecer escalabilidades espaciais e/ou de qualidade. Por exemplo, a camada 2 116 com resolução GIF pode ser uma camada de melhoramento espacial para camada- base 112, 114. Em outro exemplo, a camada 3 117 pode ser uma camada de melhoramento de SNR para camada-base 112, 114 e para camada 2 116. Conforme mostrado na Figura 3, cada própria camada de melhoramento espacial ou de SNR pode ser escalável temporalmente, com a mesma estrutura de escalabilidade temporal que a camada-base 112, 114. Além disso, uma camada de melhoramento pode melhorar tanto a resolução espacial quanto a taxa de quadros. Por exemplo, a camada 4 118 fornece uma camada de melhoramento de resolução 4CIF, que aumenta adicionalmente a taxa de quadros de 15 Hz para 30 Hz.
[0080] A Figura 4 é uma ilustração conceitual que mostra unidades de acesso de codificação de vídeo escalável exemplificativas 120A a 120E (“unidades de acesso 120”) em ordem de fluxo de bits. Conforme mostrado na Figura 4, as figurações ou fatias codificadas no mesmo período de tempo são sucessivas na ordem de fluxo de bits e formam uma unidade de acesso no contexto de um padrão codificação de vídeo escalável, tal como a extensão de SVC para H.264 ou SHVC. As unidades de acesso 120, então, seguem a ordem de decodificação, que pode ser diferente da ordem de exibição e determinada, por exemplo, pela relação de previsão temporal entre as unidades de acesso 120.
[0081] Por exemplo, a unidade de acesso 120A inclui a figuração I0 de camada 0 112, figuração 0 de camada 2 116, figuração 0 de camada 3 117 e a figuração 0 de camada 4 118. A unidade de acesso 120B inclui a figuração P4 de camada 0 112, figuração 4 de camada 2 116, figuração 4 de camada 3 117 e a figuração 4 de camada 4 118. A unidade de acesso 120C inclui a figuração B2 de camada 1 114, figuração 2 de camada 2 116, figuração 2 de camada 3 117 e a figuração 2 de camada 4 118. A unidade de acesso 120D inclui a figuração 1 de camada 4 118, e a unidade de acesso 120E inclui a figuração 3 de camada 4 118.
[0082] A Figura 5 é um diagrama de blocos que ilustra um criptador de SHVC de 3 camadas exemplificativo 122. Conforme ilustrado na Figura 5, o criptador de SHVC 122 inclui um criptador de camada-base 124, um primeiro criptador de camada de melhoramento 125 e um segundo criptador de camada de melhoramento 126. Em SHVC de somente sintaxe de alto nível, não há novas ferramentas de codificação de nível de bloco quando comparada a codificação de camada única de HEVC. Em SHVC, apenas alterações de fatia e de sintaxe acima de nível e operação de nível de figuração, tal como filtragem ou aumento de resolução de figuração, são permitidos.
[0083] Para reduzir a redundância entre camadas, figurações de camada de referência colocalizadas de resolução aumentada para uma camada-base/inferior podem gerar e armazenar em um armazenamento temporário de referência para uma camada de melhoramento/superior de modo que a previsão entre camadas possa ser alcançada da mesma forma que a previsão entre camadas dentro de uma única camada. Conforme ilustrado na Figura 5, uma figuração de referência entre camadas de resolução alterada (ILR) 128 é gerada a partir de uma figuração de referência em criptador de camada-base 124 e armazenada no primeiro criptador de camada de melhoramento 125. De modo similar, uma figuração de ILR de resolução alterada 129 é gerada a partir de uma figuração de referência em primeiro criptador de camada de melhoramento 125 e armazenada no segundo criptador de camada de melhoramento 126. Em SHVC WD3, a figuração de ILR é marcada como uma figuração de referência a longo prazo para a camada de melhoramento. A diferença de vetor de movimento associada a uma figuração de referência entre camadas é restrita a zero.
[0084] A próxima implantação de conteúdo e dispositivos de televisão de ultra-alta definição (UHDTV) irá usar uma gama de cores diferente dos dispositivos legados. Especificamente, HD usa a recomendação BT.709, ITU-R Recomendação BT.709 “Valores e parâmetro para os padrões de HDTV para produção e troca de programa internacional”, dezembro de 2010, enquanto UHDTV irá usar a recomendação BT.2020, ITU-R Recomendação BT.2020 “Valores de parâmetro para sistemas UHDTV para produção e troca de programa internacional”, abril de 2012. Uma gama de cores compreende uma faixa completa de cores que podem ser reproduzidas para uma imagem, por exemplo, em uma figuração, fatia, bloco ou camada de dados de vídeo. Uma diferença-chave entre esses sistemas é que a gama de cores de UHDTV é significativamente maior do que a de HD. Afirma- se que UHDTV irá fornecer uma experiência de vista mais natural ou realista, que é consistente com outras características UHDTV, tal como alta resolução.
[0085] A Figura 6 é um gráfico que ilustra uma gama de cores exemplificativa de uma sequência de vídeo de amostra 130. Conforme ilustrado na Figura 6, a sequência de vídeo de amostra SWG1 130 é indicada como uma aglomeração de pontos dentro de um contorno de linha da gama de cores de UHD BT.2020 132. Para propósitos de comparação, um contorno da gama de cores de HD BT.709 134 e um contorno do espaço de cor linear (CIE)-XYZ da Comissão Internacional em Iluminação sobrepõem a sequência de vídeo de amostra SWGl 130. É facilmente observado a partir da Figura 6 que a gama de cores de UHD BT.2020 132 é muito maior do que a gama de cores de HD BT.709 134. Observe o número de pixels na sequência de vídeo de amostra SWG1 130 que que está fora da gama de cores BT.709 134.
[0086] A Figura 7 é um diagrama de blocos que ilustra a conversão de gama de cores de HD BT.709 134 para gama de cores de UHD BT.2020 132. Tanto a gama de cores de HD BT.709 134 quanto a gama de cores de UHD BT.2020 132 definem as representações de pixels de cor em componentes de luma e de croma (por exemplo, YCbCr ou YUV). Cada gama de cores define a conversão para e a partir do espaço de cor linear CIE-XYZ 136. Esse espaço de cor intermediário comum pode ser usado para definir a conversão dos valores de luma e de croma na gama de cores de HD BT.709 134 para valores de luma e de croma correspondentes na gama de cores de UHD BT.2020 132.
[0087] Mais detalhes em relação à gama de cores da sequência de amostra ilustrada na Figura 6 e a conversão de gama de cores ilustrada na Figura 7 podem ser encontrados em L. Kerofsky, A. Sega.il, S.-H. Kim, K. Misra, “Color Gamut Scalable codificação de vídeo: New Results”, JCTVC-L0334, Geneva, CH, 14 a 23 de janeiro de 2013 (doravante denominado de “JCTVC-L0334”).
[0088] A Figura 8 é um diagrama de blocos que ilustra um codificador escalável de gama de cores 140 que inclui uma unidade de processamento de previsão de cor 144 que pode gerar uma figuração de referência entre camadas quando uma gama de cores de camada-base e uma gama de cores de camada de melhoramento são diferentes. A unidade de processamento de previsão de cor 144 pode ser usada por um codificador de vídeo, tal como um criptador de vídeo 20 ou decodificador de vídeo 30 da Figura 1, para realizar a codificação de vídeo escalável de gama de cores, na qual a gama de cores da camada-base e de melhoramento é diferente.
[0089] No exemplo ilustrado na Figura 8, um laço de codificação de camada-base 142 realiza a codificação de vídeo de figurações que incluem dados de cor em uma primeira gama de cores, por exemplo, BT.709, e um laço de codificação de camada de melhoramento 146 realiza a codificação de vídeo de figurações que incluem dados de cor em uma segunda gama de cores, por exemplo, BT.2020. A unidade de processamento de previsão de cor 144 realiza a previsão de cor para mapear ou converter dados de cor de uma figuração de referência de camada-base na primeira gama de cores para a segunda gama de cores, e gerar uma figuração de referência entre camadas para a camada de melhoramento com base nos dados de cor mapeados da figuração de referência de camada-base.
[0090] Para alcançar alta eficiência de codificação, a unidade de processamento de previsão de cor 144 é configurada para realizar a previsão de cor específica ao gerar figurações de referência entre camadas. Conforme descrito em mais detalhes abaixo, a unidade de processamento de previsão de cor 144 pode ser configurada para realizar a previsão de cor de acordo com qualquer um dentre um modelo de previsão linear, um modelo de previsão linear por partes ou um modelo de previsão de cor com base em tabela de pesquisa 3D. Um modelo de previsão linear é proposto em JCTVC-L0334, mencionado acima. Em geral, o processo de previsão de cor do modelo de previsão linear pode ser descrito como um modelo de ganho e compensação. O modelo de previsão linear opera em planos de cor individuais. Para facilitar o cálculo total, um parâmetro descreve o número de bits fracionários usado no cálculo com o uso do parâmetro numFractionBits. Para cada canal, um ganho [c] e uma compensação [c] são especificados. O modelo de previsão linear é definido conforme exposto a seguir: Pred[c][x][y] = (ganho[c]*In[x][y] + (1 <<(numFractionBits - 1)) >> numFractionBits + compensação[c]
[0091] Um modelo de previsão linear por partes é proposto em C. Auyeung, K. Saio, “AHG14: Color gamut scalable video coding with piecewise linear predictions and shift-offset model”, JCTVC-N0271, Viena, Áustria, julho de 2013, com base em JCTVC-L0334, mencionado acima. O processo de previsão de cor do modelo de previsão linear por partes também pode ser descrito como um modelo de ganho e compensação. O modelo de previsão linear por partes é definido conforme exposto a seguir: Let d[c][x][y] = In[c][x][y] - knot[c]. Se d[c][x][y] <- 0 Pred[c] [x][y] (ganho1[c]*d[c][x][y] + compensação[c] + (l<<(numFractionBits-l))) >> numFractionBits ou Pred[c][x][y] = (ganho2[c]*d[c][x][y] + deslocamento[c] + (l<<(numFractionBits-l))) >> numFractionBits
[0092] Os parâmetros de previsão knot[c], compensação[c], ganho1[c] e ganho2[c] podem ser criptados no fluxo de bits.
[0093] A Figura 9 é uma ilustração conceitual que mostra uma tabela de pesquisa 3D exemplificativa 150 para escalabilidade de gama de cores. Um modelo de previsão de cor com base em tabela de pesquisa 3D é proposto em P. Bordes, P. Andrivon, F. Hiron, “AHG14: Color Gamut Scalable Video Coding using 3D LUT: New Results”, JCTVC-N0168, Viena, Áustria, julho de 2013 (doravante denominado de “JCTVC-N0168”). O princípio da tabela de pesquisa 3D para escalabilidade de gama de cores é retratado na Figura 9. A tabela de pesquisa 3D 150 pode ser considerada como uma subamostra de um primeiro espaço de cor 3D, por exemplo, a gama de cores de HD BT.709, em que cada vértice é associado a um trio de cores (y, u, v) correspondente ao segundo espaço de cor 3D (isto é, valores previstos, por exemplo, gama de cores de UHD BT.2020).
[0094] Em geral, a primeira gama de cores pode ser particionada em octantes ou cuboides em cada dimensão de cor (isto é, Y, U e V), e os vértices dos octantes são associados ao trio de cores correspondentes à segunda gama de cores e usados para preencher a tabela de pesquisa 3D 150. O número de vértices ou segmentos em cada dimensão de cor indica o tamanho de tabela de pesquisa 3D. A Figura 9(a) ilustra os vértices ou pontos de treliça de interseção dos octantes em cada dimensão de cor. A Figura 9(b) ilustra os valores de cor diferentes associados a cada um dos vértices. Conforme ilustrado, na Figura 9(a) cada dimensão de cor tem quatro vértices e na Figura 9(b) cada dimensão de cor inclui quatro valores de cor.
[0095] A Figura 10 é uma ilustração conceitual que mostra a interpolação trilinear com a tabela de pesquisa 3D 150 para escalabilidade de gama de cores. Para uma dada amostra de cor de camada-base na primeira gama de cores, a computação de sua previsão na segunda gama de cores para uma camada de melhoramento é feita com o uso de interpolação trilinear de acordo com a seguinte equação.
Figure img0001
[0096] Y0 é o índice do vértice de subamostra mais próximo inferior a y,
[0097] Y11 é o índice do vértice de sub amostra mais próximo superior a y.
[0098] Em alguns exemplos, uma tabela de pesquisa 3D separada pode ser gerada para cada um dos componentes de cor, isto é, um componente de luma (Y), um primeiro componente de croma (U) e um segundo componente de croma (V). Cada uma das tabelas de pesquisa 3D inclui uma dimensão de luma (Y), uma primeira dimensão de croma (U) e uma segunda dimensão de croma (V), é indexada com o uso dos três componentes de cor independentes (Y, U, V).
[0099] Em um exemplo, uma função de mapeamento pode ser definida para cada componente de cor com base na tabela de pesquisa 3D. Uma função de mapeamento exemplificativa para um valor de pixel de luma (Y) é apresentada na seguinte equação:
Figure img0002
[00100] Na equação acima, YE representa o valor de pixel de luma na camada de melhoramento, (YB, UB, VB) representa um valor de pixel de camada-base e LUTy, LUTU, LUTv e LUTc representam a tabela de pesquisa 3D para cada componente de cor Y, U, V, e uma constante. Funções de mapeamento similares podem ser definidas para um primeiro valor de pixel de croma (U) e um segundo valor de pixel de croma (V) na camada de melhoramento.
[00101] Mais detalhes da tabela de pesquisa 3D ilustrados na Figura 9 e da interpolação trilinear com a tabela de pesquisa 3D ilustrada na Figura 10 podem ser encontrados em JCTVC-N0168, mencionado acima.
[00102] Em geral, a escalabilidade de gama de cores com base em tabela de pesquisa 3D resulta em bom desempenho de codificação. Entretanto, o tamanho da tabela de pesquisa 3D pode ser uma preocupação, visto que a tabela de pesquisa 3D é tipicamente armazenada em memória cache em implantação de hardware. Uma tabela de pesquisa 3D com um tamanho de tabela grande pode resultar em alta complexidade computacional e em alto custo de sinalização. Por exemplo, convencionalmente, as tabelas de pesquisa 3D são sempre simétricas de modo que as tabelas de pesquisa 3D tenham um mesmo tamanho para o componente de luma, o primeiro componente de croma e o segundo componente de croma. Além disso, convencionalmente, as tabelas de pesquisa 3D são sempre equilibradas de modo que um tamanho de cada dimensão das tabelas de pesquisa 3D seja sempre o mesmo. Isso resulta em tamanhos de tabela grandes com alta complexidade computacional e altos custos de sinalização. Por exemplo, os tamanhos de tabela pode ser de até 9x9x9 ou 17x17x17.
[00103] Os métodos a seguir são propostos de modo que tanto o custo de sinalização quanto o custo computacional para a escalabilidade de gama de cores com base em tabela de pesquisa 3D possam ser reduzidos.
[00104] O primeiro método inclui gerar uma tabela de pesquisa 3D assimétrica de modo que os componentes de luma (Y) e de croma (U e V) tenham tamanhos diferentes, em alguns casos, a tabela de pesquisa 3D pode ter um tamanho maior, isto é, mais segmentos, para o componente de luma do que para cada um dentre o primeiro e o segundo componentes de croma. Nesse caso, os componentes de croma podem usar uma tabela de pesquisa mais grosseira e o componente de luma pode uma tabela de pesquisa mais refinada. Em outros casos, a tabela de pesquisa 3D pode ter um tamanho maior para um ou ambos os componentes de croma do que para o componente de luma.
[00105] Em geral, a tabela de pesquisa 3D com base em previsão de cor é um tipo de previsão linear por partes 3D. Teoricamente, quanto mais segmentos usados em casa dimensão de cor (isto é, Y, U e V) da tabela de pesquisa 3D, maior a precisão de previsão de cor. Um número maior de segmentos, entretanto, pode levar a um alto custo de sinalização e alta complexidade computacional (isto é, uma tabela de tamanho maior). Na prática, o sinal de croma pode ser menos importante e mais fácil de prever. Nesse caso, pode ser melhor ter uma tabela de pesquisa de alta resolução para o componente de luma (Y) e ter tabelas de pesquisa de baixa precisão para cada um dentre o primeiro componente de croma (U) e o segundo componente de croma (V).
[00106] De acordo com as técnicas desta revelação, um codificador de vídeo, tal como um criptador de vídeo 20 e/ou decodificador de vídeo 30, pode gerar a tabela de pesquisa 3D assimétrica com o uso de um número diferente de segmentos para a dimensão de luma da tabela de pesquisa 3D e para a primeira dimensão de croma e a segunda dimensão de croma da tabela de pesquisa 3D. Por exemplo, o criptador de vídeo 20 ou decodificador de vídeo 30 pode gerar a tabela de pesquisa 3D para ter um tamanho maior, isto é, mais segmentos, para o componente de luma do que para cada um dentre o primeiro e o segundo componentes de croma. Em um exemplo, a tabela de pesquisa 3D pode ter um tamanho de até 8x2x2. Dessa forma, o tamanho total da tabela pode ser reduzido e o custo de sinalização também pode ser reduzido, mantendo-se ao mesmo tempo um bom desempenho de codificação com resolução mais alta para o componente de luma do que para o primeiro e o segundo componentes de croma. Os tamanhos de tabela para a tabela de pesquisa 3D podem ser sinalizados em um fluxo de bits tal como em um ajuste de parâmetro de vídeo (VPS), ajuste de parâmetro de sequência (SPS), ajuste de parâmetro de figuração (PPS), cabeçalho de fatia ou extensões relacionadas.
[00107] Em alguns exemplos, cada uma das tabelas de pesquisa 3D pode ter o mesmo tamanho MxNxK, em que o tamanho (M) da dimensão de luma da tabela de pesquisa 3D é diferente do tamanho (N) da primeira dimensão de croma da tabela de pesquisa 3D e do tamanho (K) da segunda dimensão de croma da tabela de pesquisa 3D. Por exemplo, o tamanho da dimensão de luma pode ser maior do que os tamanhos das dimensões de croma, M > N e M > K, e os tamanhos das dimensões de croma da tabela de pesquisa 3D podem ser o mesmo, N=K. Em um exemplo, cada uma das tabelas de pesquisa 3D pode ter o mesmo tamanho de 8x2x2. Em outro exemplo, cada uma das tabelas de pesquisa 3D pode ter o mesmo tamanho de 9x6x6. Em outros exemplos, uma tabela de pesquisa 3D de componente de luma (LUTY) pode ter um primeiro tamanho, por exemplo, MxMxM ou MxNxK, que é diferente de um segundo tamanho de uma primeira tabela de pesquisa 3D de componente de croma (LUTU), por exemplo, NxNxN e um terceiro tamanho de uma segunda tabela de pesquisa 3D de componente de croma (LUTv), por exemplo, KxKxK. Por exemplo, o tamanho da LUTY pode ser maior do que os tamanhos de LUTU e LUTV. Os tamanhos de LUTU e LUTV podem ser os mesmos ou diferentes um do outro. Em um exemplo, LUTY pode ter o tamanho 8x2x2, e cada um dentre LUTU e LUTV pode ter o tamanho 2x2x2. Em outro exemplo, LUTY pode ter o tamanho 9x9x9 ou 9x6x6, e cada um dentre LUTU e LUTV pode ter o tamanho 9x3x3 ou 3x3x3.
[00108] Em um exemplo adicional, a previsão da tabela de pesquisa 3D pode ser dependente do componente de cor associado. Por exemplo, um primeiro valor de precisão da tabela de pesquisa 3D de componente de luma pode ser diferente de um segundo valor de precisão de tanto a primeira quanto a segunda tabelas de pesquisa 3D de componente de croma. Por exemplo, o primeiro valor de precisão da tabela de pesquisa 3D de componente de luma pode ser maior do que o segundo valor de precisão das tabelas de pesquisa 3D de componente de croma. Em um exemplo, o primeiro valor de precisão pode ser de 8 bits para o componente de luma e o segundo valor de precisão pode ser de 6 bits para os componentes de croma. Em alguns casos, ao gerar as tabelas de pesquisa 3D, uma mudança pode ser aplicada a fim de atender uma profundidade-alvo de bits da camada de melhoramento. O uso de valores de precisão diferentes a partir de um valor de precisão predefinido para tabelas de pesquisa 3D com base no componente de cor associado pode ser indicado no VPS, SPS, PPS, cabeçalho de fatia ou extensões relacionadas.
[00109] O segundo método inclui gerar uma tabela de pesquisa 3D desequilibrada, isto é, tabela[M][N][K], de modo que o tamanho de cada dimensão seja diferente dependendo de que componente de cor está sendo usado como um índice de tabela para a tabela de pesquisa 3D. A tabela de pesquisa 3D pode ter um tamanho maior para a dimensão associada ao componente de cor usado como o índice de tabela. Nesse caso, o mapeamento de cor pode ser mais preciso para o componente de cor usado como o índice de tabela, enquanto é menos preciso para os outros componentes de cor.
[00110] A tabela de pesquisa 3D proposta em JCTVC-N0168 é sempre equilibrada de modo que o tamanho de cada dimensão da tabela de pesquisa 3D seja sempre o mesmo. Conforme discutido acima, quanto mais segmentos usados em cada dimensão de cor (isto é, Y, U e V) da tabela de pesquisa 3D, melhor a eficiência de previsão de cor. Um grande número de segmentos, entretanto, pode levar a um alto custo de sinalização e a uma alta complexidade computacional (isto é, uma tabela de tamanho maior). Considerando-se que cada componente de cor em uma primeira gama de cores usualmente tem maior correlação com o mesmo componente de cor em uma segunda gama de cores, pode ser mais útil aprimorar a eficiência de previsão com o uso de mais segmentos, isto é, com o uso de um tamanho maior para a dimensão de tabela quando o componente de cor associado é usado como um índice de tabela para a tabela de pesquisa 3D. O tamanho da dimensão de tabela pode ser menor quando um componente de cor diferente é usado como um índice de tabela para a tabela de pesquisa 3D.
[00111] De acordo com as técnicas desta revelação, um codificador de vídeo, tal como um criptador de vídeo 20 e/ou decodificador de vídeo 30, pode gerar a tabela de pesquisa 3D desequilibrada com o uso de mais segmentos para a dimensão da tabela de pesquisa 3D associada ao componente de cor usado como um índice de tabela para a tabela de pesquisa 3D. Por exemplo, a tabela de pesquisa 3D de componente de luma pode ter uma maior dimensão de luma do que uma primeira dimensão de croma e uma segunda dimensão de croma com base no componente de luma que é usado como um índice de tabela para a tabela de pesquisa 3D de componente de luma. Em um exemplo, a LUTY pode ter o tamanho MxNxN, em que M > N. Os tamanhos da primeira e da segunda tabelas de pesquisa 3D de componente de croma podem ser determinados de modo similar. Por exemplo, a LUTU pode ter o tamanho NxMxN com base no primeiro componente de croma que é usado no índice de tabela, e a LUTV pode ter o tamanho NxNxM com base no segundo componente de croma que é usado no índice de tabela. Dessa forma, o tamanho total de cada uma das tabelas pode ser reduzido, mantendo-se ao mesmo tempo um bom desempenho de codificação com resolução mais alta para o componente de cor usado como o índice de tabela.
[00112] Em um exemplo, quando o componente Y, U, V é usado como entrada para a tabela de pesquisa 3D, uma tabela de 8x2x2 pode ser usada para o componente Y, uma tabela de 2x8x2 pode ser usada para o componente U e uma tabela de 2x2x8 pode ser usada para o componente V. Em outro exemplo, quando o componente Y, U, V é usado como entrada para a tabela de pesquisa 3D, uma tabela de 9x3x3 pode ser usada para o componente Y, uma tabela de 3x9x3 pode ser usada para o componente U e uma tabela de 3x3x9 pode ser usada para o componente V.
[00113] Os tamanhos de tabela para a tabela de pesquisa 3D podem ser sinalizados em um fluxo de bits tal como no VPS, SPS, PPS, cabeçalho de fatia ou extensões relacionadas. Nos exemplos acima, somente os valores de M e N podem ser sinalizados para indicar os tamanhos de tabela. Em alguns casos, em vez de sinalizar os valores de M e N, os valores predefinidos podem ser ajustados para M e N de modo que nenhuma sinalização do tamanho de tabela seja necessária. Por exemplo, N pode ser ajustado para um valor de 3 ou um valor de 2 por predefinição.
[00114] O terceiro método inclui gerar somente uma tabela de pesquisa 3D de componente de luma, e somente com o uso da tabela de pesquisa 3D para realizar a previsão de componente de luma, durante o uso de mapeamento linear unidimensional (ID) ou mapeamento linear por partes para os componentes de croma. Nesse exemplo, a tabela de pesquisa 3D é simplificada de modo que a mesma seja aplicada somente para a previsão de componente de luma. Para previsão de componente de croma, o modelo de previsão linear por partes pode ser usado. Visto que o modelo de previsão linear por partes mostra desempenho similar ao modelo de previsão de cor com base em tabela de pesquisa 3D para componentes de croma, essa simplificação pode manter a precisão de previsão enquanto reduz a complexidade computacional e o custo de sinalização. Por exemplo, o uso de somente uma tabela de pesquisa 3D de componente de luma pode reduzir a complexidade computacional evitando-se a interpolação trilinear para os componentes de croma, e pode reduzir o custo de sinalização ao não sinalizar as tabelas de pesquisa 3D para os componentes de croma.
[00115] Quando a tabela de pesquisa 3D é usada somente para realizar a previsão de componente de luma, a função de mapeamento 3D descrita acima em relação à Figura 9 e à Figura 10 pode ser simplificada para uma função de mapeamento 1D para os componentes de croma. As funções de mapeamento exemplificativas para um primeiro valor de pixel de croma (U) e um segundo valor de pixel de croma (V) são apresentadas na seguinte equação. A função de mapeamento 3D para o valor de pixel de luma (Y) pode ser a mesma apresentada acima. UE= LUTU(UB)*UB + LUTc(UB) VE= LUTV(VB)*VB + LUTC(VB)
[00116] Nas equações acima, UE representa o primeiro valor de pixel de croma na camada de melhoramento, VE representa o segundo valor de pixel de croma na camada de melhoramento, UB e VB representam valores de pixel de croma de camada-base, e LUTU, LUTV e LUTC representam a tabela de pesquisa 1D para cada componente de croma U, V e uma constante.
[00117] O uso de qualquer um dos métodos descritos acima pode ser indicado no VPS, SPS, PPS, cabeçalho de fatia ou extensão relacionada. Em alguns exemplos, um ou mais dos métodos descritos acima para realizar a escalável gama de cores com base em tabela de pesquisa 3D podem ser combinados.
[00118] A Figura 11 é um diagrama de blocos que ilustra um exemplo de criptador de vídeo 20 que pode implantar técnicas para usar escalabilidade de gama de cores com base em tabela de pesquisa 3D em codificação de vídeo de múltiplas camadas. O criptador de vídeo 20 pode realizar a intra e intercodificação de blocos de vídeo dentro de fatias de vídeo. A intracodificação tem base na previsão espacial para reduzir ou remover a redundância espacial em vídeo dentro de um dado quadro ou figuração de vídeo. A intercodificação tem base na previsão temporal para reduzir ou remover a redundância temporal no vídeo dentro de quadros ou figurações adjacentes de uma sequência de vídeo. O intramodo (modo I) pode se referir a qualquer um dentre diversos modos de codificação com base em espaço. Os intermodos, tais como previsão unidirecional (modo P) ou biprevisão (modo B), podem se referir a qualquer um dentre diversos modos de codificação com base em tempo.
[00119] Conforme mostrado na Figura 11, o codificador de vídeo 20 recebe um bloco de vídeo atual dentro de um quadro de vídeo a ser criptado. No exemplo da Figura 11, o criptador de vídeo 20 inclui a unidade de seleção de modo 40, uma memória de dados de vídeo 41, o armazenamento temporário de figuração decodificada 64, o somador 50, a unidade de processamento de transformada 52, a unidade de quantização 54 e a unidade de criptação por entropia 56. A unidade de seleção de modo 40, por sua vez, inclui a unidade de compensação de movimento 44, a unidade de estimativa de movimento 42, a unidade de intraprevisão 46, a unidade de partição 48 e a unidade de processamento de previsão de cor 66. Para a reconstrução de bloco de vídeo, o criptador de vídeo 20 também inclui a unidade de quantização inversa 58, a unidade de processamento de transformada inversa 60 e o somador 62. Um filtro de desbloqueio (não mostrado na Figura 11) também pode ser incluído para filtrar os limites do bloco para remover artefatos de característica de bloqueio de vídeo reconstruído. Se desejado, o filtro de desbloqueio filtraria tipicamente a emissão de somador 62. Filtros adicionais (em laço ou pós laço) também podem ser usados além do filtro de desbloqueio. Tais filtros não são mostrados para propósitos de brevidade, mas caso desejado, podem filtrar a emissão do somador 50 (como um filtro em laço).
[00120] A memória de dados de vídeo 41 pode armazenar dados de vídeo a serem criptados pelos componentes de criptador de vídeo 20. Os dados de vídeo armazenados na memória de dados de vídeo 41 podem ser obtidos, por exemplo, a partir de fonte de vídeo 18. O armazenamento temporário de figuração decodificada 64 pode ser uma memória de figuração de referência que armazena dados de vídeo de referência para uso em dados de vídeo de criptação pelo criptador de vídeo 20, por exemplo, em modos de intra ou intercodificação. A memória de dados de vídeo 41 e o armazenamento temporário de figuração decodificada 64 podem ser formados por qualquer um dentre uma variedade de dispositivos de memória, tal como memória dinâmica de acesso aleatório (DRAM), que inclui DRAM síncrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM) ou outros tipos de dispositivos de memória. A memória de dados de vídeo 41 e o armazenamento temporário de figuração decodificada 64 podem ser fornecidos pelo menos dispositivo de memória ou dispositivos de memória separados. Em vários exemplos, a memória de dados de vídeo 41 pode ser no chip com outros componentes de criptador de vídeo 20, ou fora do chip em relação àqueles componentes.
[00121] Durante o processo de criptação, o criptador de vídeo 20 recebe um quadro ou fatia de vídeo a ser codificado. O quadro ou fatia pode ser dividido em múltiplos blocos de vídeo. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 realizam codificação interpreditiva do bloco de vídeo recebido em relação a um ou mais blocos em um ou mais quadros de referência para fornecer previsão temporal. A unidade de intraprevisão 46 pode realizar de modo alternativo a codificação intrapreditiva do bloco de vídeo recebido em relação a um ou mais blocos vizinhos no mesmo quadro ou fatia que o bloco a ser codificado para fornecer previsão espacial. O criptador de vídeo 20 pode realizar múltiplos passos de codificação, por exemplo, para selecionar um modo de codificação apropriado para cada bloco de dados de vídeo.
[00122] Além disso, a unidade de partição 48 pode particionar blocos de dados de vídeo em sub-blocos, com base na avaliação de esquemas de particionamento anteriores em passos de codificação anteriores. Por exemplo, a unidade de partição 48 pode particionar inicialmente um quadro ou fatia em LCUs, e particionar cada uma das LCUs em sub-CUs com base na análise de distorção de taxa (por exemplo, otimização de distorção de taxa). A unidade de seleção de modo 40 pode produzir adicionalmente uma estrutura de dados de árvore quadrática que indica a partição de uma LCU em sub-CUs. As CUs de nó-folha da árvore quadrática podem incluir uma ou mais PUs e uma ou mais TUs.
[00123] A unidade de seleção de modo 40 pode selecionar um dos modos de codificação, intra ou inter, por exemplo, com base em resultados de erro e fornece o bloco intra ou intercodificado resultante para o somador 50 para gerar dados de bloco residuais e para o somador 62 para reconstruir o bloco criptado para uso como um quadro de referência. A unidade de seleção de modo 40 também fornece elementos de sintaxe, como vetores de movimento, indicadores de intramodo, informações de partição e outras tais informações de sintaxe, para a unidade de criptação por entropia 56.
[00124] A unidade de estimativa 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 estimativa de movimento, realizada pela unidade de estimativa de movimento 42, é o processo de geração de vetores de movimento, que estima 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 um quadro ou figuração de vídeo atual em relação a um bloco preditivo dentro de uma figuração de referência (ou outra unidade codificada) em relação ao bloco atual que está codificado dentro da figuração atual (ou outra unidade codificada). Um bloco preditivo é um bloco que se encontra em correspondência muito próxima ao bloco a ser codificado, em termos de diferença de pixels, que pode ser determinado pelo somatório da diferença absoluta (SAD), somatório da diferença quadrada (SSD) ou outras medidas de diferença. Em alguns exemplos, o criptador de vídeo 20 pode calcular valores para posições de pixel subinteiro de figurações de referência armazenadas no armazenamento temporário de figuração decodificada 64. Por exemplo, o criptador de vídeo 20 pode interpolar valores de posições de um quarto de pixel, posições de um oitavo de pixel ou outras posições de pixel fracionárias da figuração de referência. Portanto, a unidade de estimativa de movimento 42 pode realizar uma busca de movimento em relação às posições de pixel completas e posições de pixel fracionárias e emitir um vetor de movimento com precisão pixel fracionária.
[00125] A unidade de estimativa de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia intercodificada pela comparação da posição da PU em relação à posição de um bloco preditivo de uma figuração de referência. A figuração de referência pode ser selecionada a partir de uma primeira lista de figuração de referência (lista 0) ou uma segunda lista de figuração de referência (lista 1), cada uma das quais identifica uma ou mais figurações de referência armazenadas na memória temporária de figuração decodificada 64. A unidade de estimativa de movimento 42 envia o vetor de movimento calculado para a unidade de criptação por entropia 56 e para a unidade de compensação de movimento 44.
[00126] 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 unidade de estimativa de movimento 42. Novamente, a unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 podem ser integradas de modo funcional, em alguns exemplos. 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 o qual o vetor de movimento aponta em uma das listas de figurações de referência. O somador 50 forma um bloco de vídeo residual subtraindo-se valores de pixel do bloco preditivo dos valores de pixel do bloco de vídeo atual que está codificado, o que forma a diferença de valores de pixels, conforme discutido abaixo. Em geral, a unidade de estimativa de movimento 42 realiza a estimativa de movimento em relação aos componentes de luma, e a unidade de compensação de movimento 44 usa vetores de movimento calculados com base nos componentes de luma tanto para os componentes de croma quanto para os componentes de luma. A unidade de seleção de modo 40 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.
[00127] A unidade de intraprevisão 46 pode intraprever ou calcular um bloco atual, como uma alternativa à interprevisão realizada pela unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44, conforme descrito acima. Em particular, a unidade de intraprevisão 46 pode determinar um modo de intraprevisão para usar para criptar um bloco atual. Em alguns exemplos, a unidade de intraprevisão 46 pode criptar um bloco atual com o uso de vários modos de intraprevisão, por exemplo, durante passos de criptação separados, e a unidade de intraprevisão 46 (ou unidade de seleção de modo 40, em alguns exemplos) pode selecionar um modo de intraprevisão apropriado para usar a partir dos modos testados.
[00128] Por exemplo, a unidade de intraprevisão 46 pode calcular valores de distorção de taxa com o uso de uma análise de distorção de taxa para os vários modos de intraprevisão testados, e selecionar o modo de intraprevisão que tem as melhores características de distorção de taxa entre os modos testados. A análise de distorção de taxa geralmente determina uma quantidade de distorção (ou erro) entre um bloco criptado e um bloco original não criptado que foi criptado para produzir o bloco criptado, assim como uma taxa de bits (isto é, uma quantidade de bits) usada para produzir o bloco criptado. A unidade de intraprevisão 46 pode calcular razões a partir de distorções e taxas para os vários blocos criptados para determinar qual modo de intraprevisão exibe o melhor valor de distorção de taxa para o bloco.
[00129] Após selecionar um modo de intraprevisão para um bloco, a unidade de intraprevisão 46 pode fornecer informações que indicam o modo de intraprevisão selecionado para o bloco para unidade de criptação por entropia 56. A unidade de criptação por entropia 56 pode criptar as informações que indicam o modo de intraprevisão selecionado. O criptador de vídeo 20 pode incluir nos dados de configuração de fluxo de bits transmitidos, que podem incluir uma pluralidade de tabelas de índices de modo de intraprevisão e uma pluralidade de tabelas de índices de modo de intraprevisão modificados (também denominadas de tabelas de mapeamento de palavras- código), as definições de criptação de contextos para vários blocos, e indicações de um modo de intraprevisão mais provável, uma tabela de índices de modo de intraprevisão e uma tabela de índices de modo de intraprevisão modificados para usar para cada um dos contextos.
[00130] O criptador de vídeo 20 forma um bloco de vídeo residual subtraindo-se os dados de previsão da unidade de seleção de modo 40 a partir do bloco de vídeo original que está codificado. O somador 50 representa o componente ou os componentes que realizam essa operação de subtração.
[00131] A unidade de processamento de transformada 52 aplica uma transformada, como uma transformada de cosseno discreta (DCT) ou uma transformada conceitualmente similar, ao bloco residual, o que produz um bloco de vídeo que compreende valores de coeficiente de transformada residuais. A unidade de processamento de transformada 52 pode realizar outras transformadas que são conceitualmente similares à DCT, transformada de Wavelet, transformadas inteiras, transformadas de sub-banda ou outros tipos de transformadas também poderiam ser usadas. Em todo caso, a unidade de processamento de transformada 52 aplica a transformada ao bloco residual, produzindo um bloco de coeficiente de transformada residual. A transformada pode converter as informações residuais provenientes de um domínio de valor de pixel para um domínio de transformada, tal como um domínio de frequência. A unidade de processamento de transformada 52 pode enviar coeficientes de transformada resultantes para a unidade de quantização 54. A unidade de quantização 54 quantiza os coeficientes de transformada para reduzir ainda mais a taxa de bits. O processo de quantização pode reduzir a profundidade de bits associada a alguns ou todos os coeficientes. O grau de quantização pode ser modificado ajustando-se um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54, pode, então, realizar uma varredura da matriz, que inclui coeficientes de transformada quantizados. Alternativamente, a unidade de criptação por entropia 56 pode realizar a varredura.
[00132] Após a quantização, a unidade de criptação por entropia 56 codifica por entropia os coeficientes de transformada quantizados. Por exemplo, a unidade de criptação por entropia 56 pode realizar codificação de comprimento 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 com base em sintaxe (SBAC), codificação por entropia de particionamento de intervalo de probabilidade (PIPE) ou outra técnica de codificação por entropia. No caso de codificação por entropia com base em contexto, o contexto pode ser baseado em blocos vizinhos. Após a codificação por entropia pela unidade de criptação por entropia 56, o fluxo de bits criptado pode ser transmitido para outro dispositivo (por exemplo, o decodificador de vídeo 30) ou arquivado para transmissão ou recuperação posterior.
[00133] A unidade de quantização inversa 58 e a unidade de processamento de transformada inversa 60 aplicam a quantização inversa e a transformada inversa, respectivamente, para reconstruir o bloco residual no domínio de pixels, por exemplo, para uso posterior como um bloco de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência adicionando-se o bloco residual a um bloco preditivo de um dos quadros de armazenamento temporário de figuração decodificada 64. 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 valores de pixel subinteiros para uso em estimativa de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de previsão com movimento compensado produzido pela unidade de compensação de movimento 44 para produzir um bloco de vídeo reconstruído para o armazenamento em armazenamento temporário de figuração decodificada 64. O bloco de vídeo reconstruído pode ser usado pela unidade de estimativa de movimento 42 e pela unidade de compensação de movimento 44 como um bloco de referência para intercodificar um bloco em um quadro de vídeo subsequente.
[00134] De acordo com as técnicas descritas nesta revelação, o criptador de vídeo 20 é configurado para realizar a escalabilidade de gama de cores com base em tabela de pesquisa 3D durante a criptação de dados de vídeo de múltiplas camadas. O criptador de vídeo 20 pode prever e criptar dados de vídeo de múltiplas camadas de acordo com qualquer uma dentre a extensão de SHVC, a extensão de MV- HEVC e a extensão de 3D-HEVC, ou outra extensão de codificação de vídeo de múltiplas camadas. Especificamente, a unidade de processamento de previsão de cor 66 de criptador de vídeo 20 pode gerar figurações de referência entre camadas usadas para prever blocos de vídeo em uma figuração de uma camada superior dos dados de vídeo quando uma gama de cores para a camada superior dos dados de vídeo é diferente de uma gama de cores para uma camada inferior de dados de vídeo.
[00135] A unidade de processamento de previsão de cor 66 de criptador de vídeo 20 pode realizar a previsão de cor com o uso de uma tabela de pesquisa 3D para escalabilidade de gama de cores para converter dados de cor de uma figuração de referência em uma primeira gama de cores para a camada inferior dos dados de vídeo em uma segunda gama de cores para a camada superior dos dados de vídeo. Em alguns exemplos, a unidade de processamento de previsão de cor 66 pode gerar uma tabela de pesquisa 3D separada para cada um dos componentes de cor, isto é, um componente de luma, um primeiro componente de croma e um segundo componente de croma. Cada uma das tabelas de pesquisa 3D inclui uma dimensão de luma, uma primeira dimensão de croma e uma segunda dimensão de croma, e é indexada com o uso dos três componentes de cor independentes.
[00136] De acordo com as técnicas descritas nesta revelação, a unidade de processamento de previsão de cor 66 de criptador de vídeo 20 gera pelo menos uma tabela de pesquisa 3D que tem um tamanho que é diferente para o componente de luma e para cada um dentre o primeiro componente de croma e o segundo componente de croma. A unidade de processamento de previsão de cor 66 pode gerar essa tabela de pesquisa 3D assimétrica com o uso de um número diferente de segmentos para a dimensão de luma da tabela de pesquisa 3D. Em um exemplo, a unidade de processamento de previsão de cor 66 pode gerar a tabela de pesquisa 3D para ter um tamanho maior, isto é, mais segmentos, para o componente de luma do que para cada um dentre o primeiro e o segundo componentes de croma. Dessa forma, o tamanho total da tabela pode ser reduzido, mantendo-se ao mesmo tempo um bom desempenho de codificação com resolução mais alta para o componente de luma do que para o primeiro e o segundo componentes de croma.
[00137] Em alguns exemplos, a unidade de processamento de previsão de cor 66 pode gerar cada uma das tabelas de pesquisa 3D para ter o mesmo tamanho, em que um tamanho da dimensão de luma da tabela de pesquisa 3D é diferente de cada um dentre um tamanho da primeira dimensão de croma da tabela de pesquisa 3D e um tamanho da segunda dimensão de croma da tabela de pesquisa 3D. Em outros exemplos, a unidade de processamento de previsão de cor 66 pode gerar uma tabela de pesquisa 3D de componente de luma para ter um primeiro tamanho que é diferente de cada um dentre um segundo tamanho de uma primeira tabela de pesquisa 3D de componente de croma e um terceiro tamanho de uma segunda tabela de pesquisa 3D de componente de croma. Em um exemplo adicional, a unidade de processamento de previsão de cor 66 pode gerar uma tabela de pesquisa 3D de componente de luma para ter um valor de precisão diferente de cada um dentre a primeira tabela de pesquisa 3D de componente de croma e a segunda tabela de pesquisa 3D de componente de croma. Em alguns casos, para reduzir adicionalmente a complexidade, a unidade de processamento de previsão de cor 66 pode gerar somente uma tabela de pesquisa 3D de componente de luma, realizar a previsão de componente de luma com o uso da tabela de pesquisa 3D de componente de luma e realizar a primeira e a segunda previsão de componente de croma com o uso de mapeamento linear 1D ou mapeamento linear por partes.
[00138] Como outro exemplo, de acordo com as técnicas desta revelação, a unidade de processamento de previsão de cor 66 pode gerar uma tabela de pesquisa 3D desequilibrada com o uso de mais segmentos para a dimensão da tabela de pesquisa 3D associada ao componente de cor usado como um índice de tabela para a tabela de pesquisa 3D. Por exemplo, a tabela de pesquisa 3D de componente de luma pode ter uma dimensão de luma maior do que cada um dentre uma primeira dimensão de croma e uma segunda dimensão de croma com base no componente de luma que é usado como um índice de tabela para a tabela de pesquisa 3D de componente de luma. Os tamanhos da primeira e da segunda tabelas de pesquisa 3D de componente de croma podem ser determinados de modo similar com base no componente respectivo do primeiro ou segundo componente de croma que é usado no índice de tabela. Dessa forma, o tamanho total de cada uma das tabelas pode ser reduzido, mantendo-se ao mesmo tempo um bom desempenho de codificação com resolução mais alta para o componente de cor usado como o índice de tabela.
[00139] Mediante a geração da tabela de pesquisa 3D, a unidade de processamento de previsão de cor 66 realiza a previsão de cor de uma figuração de referência para a camada inferior dos dados de vídeo com o uso da tabela de pesquisa 3D, e gera uma figuração de referência entre camadas para a camada superior dos dados de vídeo com base na figuração de referência prevista de cor. Mediante a geração das figurações de referência entre camadas, a unidade de compensação de movimento 44 de criptador de vídeo 20 pode operar conforme descrito acima para prever blocos de vídeo em uma figuração da camada superior dos dados de vídeo com base nas figurações de referência entre camadas geradas com o uso da tabela de pesquisa 3D. O criptador de vídeo 20 pode, então, criptar dados residuais dos blocos de vídeo previstos em um fluxo de bits para a transmissão para o decodificador de vídeo 30. Em alguns exemplos, o criptador de vídeo 20 também pode criptar um ou mais elementos de sintaxe que indicam o tamanho da tabela de pesquisa 3D no fluxo de bits, em que o tamanho é diferente para o componente de luma e para o primeiro e o segundo componentes de croma.
[00140] A Figura 12 é um diagrama de blocos que ilustra um exemplo de decodificador de vídeo 30 que pode implantar técnicas para determinar o uso de escalabilidade de gama de cores com base em tabela de pesquisa 3D em codificação de vídeo de múltiplas camadas. No exemplo da Figura 12, o decodificador de vídeo 30 inclui uma unidade de decodificação por entropia 70, uma memória de dados de vídeo 71, uma unidade de compensação de movimento 72, uma unidade de processamento de intraprevisão 74, uma unidade de processamento de previsão de cor 86, uma unidade de quantização inversa 76, unidade de processamento de transformada inversa 78, um armazenamento temporário de figuração decodificada 82 e um somador 80. O decodificador de vídeo 30 pode, em alguns exemplos, realizar um passo de decodificação geralmente recíproco ao passo de criptação descrito em relação ao criptador de vídeo 20 (Figura 11). A unidade de compensação de movimento 72 pode gerar dados de previsão com base em vetores de movimento recebidos a partir da unidade de decodificação por entropia 70, enquanto a unidade de intraprevisão 74 pode gerar dados de previsão com base em indicadores de modo de intraprevisão recebidos a partir da unidade de decodificação por entropia 70.
[00141] A memória de dados de vídeo 71 pode armazenar dados de vídeo, tais como um fluxo de bits de vídeo criptado a ser decodificado pelos componentes de decodificador de vídeo 30. Os dados de vídeo armazenados na memória de dados de vídeo 71 podem ser obtidos, por exemplo, a partir da mídia legível por computador 16, por exemplo, a partir de uma fonte de vídeo local, tal como uma câmera, através de comunicação de rede sem fio ou cabeada de dados de vídeo ou acessando-se a mídia de armazenamento de dados físicos. A memória de dados de vídeo 7 pode formar um armazenamento temporário de figuração codificada (CPB) que armazena dados de vídeo criptados a partir de um fluxo de bits de vídeo criptado. O armazenamento temporário de figuração decodificada 82 pode ser uma memória de figuração de referência que armazena dados de vídeo de referência para uso em dados de vídeo de decodificação pelo decodificador de vídeo 30, por exemplo, em modos de intra ou intercodificação. A memória de dados de vídeo 71 e o armazenamento temporário de figuração decodificada 82 podem ser formados por qualquer um dentre uma variedade de dispositivos de memória, tal como memória dinâmica de acesso aleatório (DRAM), que inclui DRAM síncrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM) ou outros tipos de dispositivos de memória. A memória de dados de vídeo 71 e o armazenamento temporário de figuração decodificada 82 podem ser fornecidos pelo menos dispositivo de memória ou dispositivos de memória separados. Em vários exemplos, a memória de dados de vídeo 71 pode ser no chip com outros componentes de decodificador de vídeo 30, ou fora do chip em relação àqueles componentes.
[00142] Durante o processo de decodificação, o decodificador de vídeo 30 recebe um fluxo de bits de vídeo criptado que representa blocos de vídeo de uma fatia de vídeo criptada e elementos de sintaxe associados provenientes do criptador de vídeo 20. A unidade de decodificação por entropia 70 do decodificador de vídeo 30 decodifica por entropia o fluxo de bits para gerar coeficientes quantizados, vetores de movimento ou indicadores de modo de intraprevisão e outros elementos de sintaxe. A unidade de decodificação por entropia 70 encaminha os vetores de movimento e outros elementos de sintaxe para a unidade de compensação de movimento 72. 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.
[00143] Quando a fatia de vídeo for codificada como uma fatia intracodificada (1), a unidade de processamento de intraprevisão 74 pode gerar dados de previsão para um bloco de vídeo da fatia de vídeo atual com base em um modo de intraprevisão sinalizado e dados provenientes de blocos decodificados anteriormente do quadro ou da figuração atual. Quando o quadro de vídeo for codificado como uma fatia intercodificada (isto é, B ou P), a unidade de compensação de movimento 72 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 70. Os blocos preditivos podem ser produzidos a partir de uma das figurações de referência dentro de uma das listas de figurações de referência. O decodificador de vídeo 30 pode construir as listas de figurações de referência, Lista 0 e Lista 1, que usa técnicas de construção predefinidas com base em figurações de referência armazenadas em armazenamento temporário de figuração decodificada 82. A unidade de compensação de movimento 72 determina as informações de previsão para um bloco de vídeo da fatia de vídeo atual analisando-se os vetores de movimento e outros elementos de sintaxe, e usa as informações de previsão para produzir os blocos preditivos para o bloco de vídeo atual que é decodificado. Por exemplo, a unidade de compensação de movimento 72 usa uma parte dos elementos de sintaxe recebidos para determinar um modo de previsão (por exemplo, intra ou interprevisão) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de interprevisão (por exemplo, fatia B ou fatia P), informações de construção para uma ou mais das listas de figurações de referência para a fatia, vetores de movimento para cada bloco de vídeo intercriptado da fatia, situações de interprevisão para cada bloco de vídeo intercriptado da fatia e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[00144] A unidade de compensação de movimento 72 também pode realizar a interpolação com base em filtros de interpolação. A unidade de compensação de movimento 72 pode usar filtros de interpolação conforme usado pelo criptador de vídeo 20 durante a criptação dos blocos de vídeo para calcular valores interpolados para pixels subinteiros de blocos de referência. Nesse caso, a unidade de compensação de movimento 72 pode determinar os filtros de interpolação usados pelo criptador de vídeo 20 a partir dos elementos de sintaxe recebidos e usar os filtros de interpolação para produzir blocos preditivos.
[00145] A unidade de quantização inversa 76 quantiza inversamente, isto é, desquantiza, os coeficientes de transformada quantizados fornecidos no fluxo de bits e decodificados pela unidade de decodificação por entropia 70. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização QPY calculado pelo decodificador de vídeo 30 para cada bloco de vídeo na fatia de vídeo para determinar um grau de quantização e, de modo semelhante, um grau de quantização inversa que deve ser aplicada. A unidade de processamento de transformada inversa 78 aplica uma transformada inversa, por exemplo, uma DCT inversa, uma transformada inteira inversa ou um processo de transformada inversa conceitualmente semelhante para os coeficientes de transformada a fim de produzir blocos residuais no domínio de pixel.
[00146] Após a unidade de compensação de movimento 72 gerar o bloco preditivo para o bloco de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe, o decodificador de vídeo 30 forma um bloco de vídeo decodificado somando-se os blocos residuais provenientes da unidade de processamento de transformada inversa 78 com os blocos preditivos correspondentes gerados pela unidade de compensação de movimento 72. O somador 80 representa o componente ou os componentes que realizam essa operação de soma. Caso desejado, um filtro de desbloqueio também pode ser aplicado para filtrar os blocos decodificados a fim de remover os artefatos de característica de bloqueio. Outros filtros de laço (tanto no laço de codificação quanto após o laço de codificação) também podem ser usados para suavizar as transições de pixel, ou, de outro modo, aprimorar a qualidade de vídeo. Os blocos de vídeo decodificados em um dado quadro ou figuração são, então, armazenados no armazenamento temporário de figuração decodificada 82, que armazena figurações de referência usadas para a compensação de movimento subsequente. O armazenamento temporário de figuração decodificada 82 também armazena o vídeo decodificado para a apresentação posterior em um dispositivo de exibição, tal como o dispositivo de exibição 32 da Figura 1.
[00147] De acordo com as técnicas descritas nesta revelação, o decodificador de vídeo 30 é configurado para realizar a escalabilidade de gama de cores com base em tabela de pesquisa 3D durante a decodificação de dados de vídeo de múltiplas camadas. O decodificador de vídeo 30 pode decodificar e reconstruir dados de vídeo de múltiplas camadas previstos de acordo com qualquer um dentre a extensão de SHVC, a extensão de MV-HEVC, a extensão de 3D- HEVC ou outras extensões de codificação de vídeo de múltiplas camadas para HEVC.
[00148] Especificamente, a unidade de processamento de previsão de cor 86 de decodificador de vídeo 30 pode gerar figurações de referência entre camadas usadas para prever blocos de vídeo em uma figuração de uma camada superior dos dados de vídeo quando uma gama de cores para a camada superior dos dados de vídeo é diferente de uma gama de cores para uma camada inferior de dados de vídeo.
[00149] A unidade de processamento de previsão de cor 86 de decodificador de vídeo 30 pode realizar a previsão de cor com o uso de uma tabela de pesquisa 3D para escalabilidade de gama de cores para converter dados de cor de uma figuração de referência em uma primeira gama de cores para a camada inferior dos dados de vídeo em uma segunda gama de cores para a camada superior dos dados de vídeo. Em alguns exemplos, a unidade de processamento de previsão de cor 86 pode gerar uma tabela de pesquisa 3D separada para cada um dos componentes de cor, isto é, um componente de luma, um primeiro componente de croma e um segundo componente de croma. Cada uma das tabelas de pesquisa 3D inclui uma dimensão de luma, uma primeira dimensão de croma e uma segunda dimensão de croma, e é indexada com o uso dos três componentes de cor independentes.
[00150] De acordo com as técnicas descritas nesta revelação, a unidade de processamento de previsão de cor 86 de decodificador de vídeo 30 gera pelo menos uma tabela de pesquisa 3D que tem um tamanho que é diferente para o componente de luma e para cada um dentre o primeiro componente de croma e o segundo componente de croma. Em alguns exemplos, o decodificador de vídeo 30 pode decodificar um ou mais elementos de sintaxe que indicam o tamanho da tabela de pesquisa 3D no fluxo de bits, em que o tamanho é diferente para o componente de luma e para o primeiro e o segundo componentes de croma. A unidade de processamento de previsão de cor 86 pode gerar essa tabela de pesquisa 3D assimétrica de acordo com o tamanho indicado com o uso de um número diferente de segmentos para a dimensão de luma da tabela de pesquisa 3D. Em um exemplo, a unidade de processamento de previsão de cor 86 pode gerar a tabela de pesquisa 3D para ter um tamanho maior, isto é, mais segmentos, para o componente de luma do que para cada um dentre o primeiro e o segundo componentes de croma. Dessa forma, o tamanho total da tabela pode ser reduzido, mantendo-se ao mesmo tempo um bom desempenho de codificação com resolução mais alta para o componente de luma do que para o primeiro e o segundo componentes de croma.
[00151] Em alguns exemplos, a unidade de processamento de previsão de cor 86 pode gerar cada uma das tabelas de pesquisa 3D para ter o mesmo tamanho, em que um tamanho da dimensão de luma da tabela de pesquisa 3D é diferente de cada um dentre um tamanho da primeira dimensão de croma da tabela de pesquisa 3D e um tamanho da segunda dimensão de croma da tabela de pesquisa 3D. Em outros exemplos, a unidade de processamento de previsão de cor 86 pode gerar uma tabela de pesquisa 3D de componente de luma para ter um primeiro tamanho que é diferente de cada um dentre um segundo tamanho de uma primeira tabela de pesquisa 3D de componente de croma e um terceiro tamanho de uma segunda tabela de pesquisa 3D de componente de croma. Em um exemplo adicional, a unidade de processamento de previsão de cor 86 pode gerar uma tabela de pesquisa 3D de componente de luma para ter um valor de precisão diferente de cada um dentre a primeira tabela de pesquisa 3D de componente de croma e a segunda tabela de pesquisa 3D de componente de croma. Em alguns casos, para reduzir adicionalmente a complexidade, a unidade de processamento de previsão de cor 86 pode gerar somente uma tabela de pesquisa 3D de componente de luma, realizar a previsão de componente de luma com o uso da tabela de pesquisa 3D de componente de luma e realizar a primeira e a segunda previsão de componente de croma com o uso de mapeamento linear 1D ou mapeamento linear por partes.
[00152] Como outro exemplo, de acordo com as técnicas desta revelação, a unidade de processamento de previsão de cor 86 pode gerar uma tabela de pesquisa 3D desequilibrada com o uso de mais segmentos para a dimensão da tabela de pesquisa 3D associada ao componente de cor usado como um índice de tabela para a tabela de pesquisa 3D. Por exemplo, a tabela de pesquisa 3D de componente de luma pode ter uma dimensão de luma maior do que cada um dentre uma primeira dimensão de croma e uma segunda dimensão de croma com base no componente de luma que é usado como um índice de tabela para a tabela de pesquisa 3D de componente de luma. Os tamanhos da primeira e da segunda tabelas de pesquisa 3D de componente de croma podem ser determinados de modo similar com base no respectivo componente dentre o primeiro ou segundo componente de croma que é usado no índice de tabela. Dessa forma, o tamanho total de cada uma das tabelas pode ser reduzido, mantendo- se ao mesmo tempo um bom desempenho de codificação com resolução mais alta para o componente de cor usado como o índice de tabela.
[00153] Mediante a geração da tabela de pesquisa 3D, a unidade de processamento de previsão de cor 86 realiza a previsão de cor de uma figuração de referência para a camada inferior dos dados de vídeo com o uso da tabela de pesquisa 3D, e gera uma figuração de referência entre camadas para a camada superior dos dados de vídeo com base na figuração de referência prevista de cor. Mediante a geração das figurações de referência entre camadas, a unidade de compensação de movimento 72 de decodificador de vídeo 30 pode operar conforme descrito acima para reconstruir blocos de vídeo previstos em uma figuração da camada superior dos dados de vídeo com base em dados residuais decodificados e nas figurações de referência entre camadas geradas com o uso da tabela de pesquisa 3D.
[00154] A Figura 13 é um fluxograma que ilustra uma operação exemplificativa de geração de figurações de referência entre camadas com o uso de escalabilidade de gama de cores com base em tabela de pesquisa 3D. A operação exemplificativa da Figura 13 é descrita no presente documento como sendo realizada pela unidade de processamento de previsão de cor 86 de decodificador de vídeo 30 da Figura 12. Em outros exemplos, a operação pode ser realizada pela unidade de processamento de previsão de cor 66 de criptador de vídeo 20 da Figura 11 ou pela unidade de processamento de previsão de cor 144 da Figura 8.
[00155] Convencionalmente, em codificação de vídeo de múltiplas camadas, uma camada inferior de dados de vídeo (por exemplo, uma camada-base) e uma camada superior dos dados de vídeo (por exemplo, uma camada de melhoramento) incluem dados de cor na mesma gama de cores, por exemplo, gama de cores HD BT.709. Nesse caso, um decodificador de vídeo pode gerar figurações de referência entre camadas para a camada superior dos dados de vídeo como versões com resolução aumentada de figurações de referência colocalizadas para a camada inferior dos dados de vídeo. Nos exemplos descritos nesta revelação, uma camada inferior de dados de vídeo pode incluir dados de cor em uma primeira gama de cores, por exemplo, BT.709, e uma camada superior dos dados de vídeo pode incluir dados de cor em uma segunda gama de cores diferente, por exemplo, gama de cores de UHD BT.2020. Nesse exemplo, a fim de gerar figurações de referência entre camadas para a camada superior dos dados de vídeo, o decodificador de vídeo 30 usa a unidade de processamento de previsão de cor 86 para realizar a previsão de cor para converter os dados de cor de uma figuração de referência na primeira gama de cores para a camada inferior dos dados de vídeo na segunda gama de cores para a camada superior dos dados de vídeo. A unidade de processamento de previsão de cor 86 de decodificador de vídeo 30 pode realizar a previsão de cor com o uso de uma tabela de pesquisa 3D para escalabilidade de gama de cores.
[00156] De acordo com as técnicas desta revelação, a unidade de processamento de previsão de cor 86 gera pelo menos uma tabela de pesquisa 3D para escalabilidade de gama de cores que tem um tamanho diferente para um componente de luma e para cada um dentre um primeiro componente de croma e um segundo componente de croma (180). A unidade de decodificação por entropia 70 pode decodificar um ou mais elementos de sintaxe que indicam o tamanho da pelo menos uma tabela de pesquisa 3D, em que o tamanho é diferente para o componente de luma do que para cada um dentre o primeiro e segundo componentes de croma. A unidade de processamento de previsão de cor 86 pode gerar essa tabela de pesquisa 3D assimétrica de acordo com o tamanho indicado com o uso de um número diferente de segmentos para a dimensão de luma da tabela de pesquisa 3D e para o primeiro e segundo componentes de croma da tabela de pesquisa 3D.
[00157] Por exemplo, a unidade de processamento de previsão de cor 86 pode gerar a tabela de pesquisa 3D para ter um tamanho maior, isto é, mais segmentos, para o componente de luma do que para cada um dentre o primeiro e o segundo componentes de croma. Em um exemplo, a tabela de pesquisa 3D pode ter um tamanho de até 8x2x2. Dessa forma, o tamanho total da tabela pode ser reduzido, mantendo-se ao mesmo tempo um bom desempenho de codificação com resolução mais alta para o componente de luma do que para o primeiro e o segundo componentes de croma.
[00158] A unidade de processamento de previsão de cor 86 pode gerar uma tabela de pesquisa 3D separada para cada um dos componentes de cor, isto é, um componente de luma (Y), um primeiro componente de croma (U) e um segundo componente de croma (V). Cada uma das tabelas de pesquisa 3D inclui uma dimensão de luma (Y), uma primeira dimensão de croma (U) e uma segunda dimensão de croma (V), é indexada com o uso dos três componentes de cor independentes (Y, U, V). Em alguns exemplos, a unidade de processamento de previsão de cor 86 pode gerar cada uma das tabelas de pesquisa 3D para ter o mesmo tamanho MxNxK, em que o tamanho (M) da dimensão de luma da tabela de pesquisa 3D é diferente de cada um dentre o tamanho (N) da primeira dimensão de croma da tabela de pesquisa 3D e o tamanho (K) da segunda dimensão de croma da tabela de pesquisa 3D. Por exemplo, o tamanho da dimensão de luma pode ser maior do que os tamanhos das dimensões de croma, M > N e M > K, e os tamanhos das dimensões de croma podem ser o mesmo, N=K. Em um exemplo, cada uma das tabelas de pesquisa 3D pode ter o mesmo tamanho de 8x2x2.
[00159] Em outros exemplos, a unidade de processamento de previsão de cor 86 pode gerar uma tabela de pesquisa 3D de componente de luma (LUTY) para ter um primeiro tamanho, por exemplo, MxMxM ou MxNxK, que é diferente de cada um dentre um segundo tamanho de uma primeira tabela de pesquisa 3D de componente de croma (LUTU), por exemplo, NxNxN, e um terceiro tamanho de uma segunda tabela de pesquisa 3D de componente de croma (LUTV), por exemplo, KxKxK. Por exemplo, o tamanho da tabela de pesquisa 3D de componente de luma pode ser maior do que os tamanhos das tabelas de pesquisa 3D de componente de croma. A primeira e a segunda tabelas de pesquisa 3D de componente de croma podem ser do mesmo tamanho ou de tamanhos diferentes. Em um exemplo, LUTy pode ter o tamanho 8x2x2, e cada um dentre a LUTU e a LUTV pode ter o tamanho 2x2x2.
[00160] Em um exemplo adicional, a unidade de processamento de previsão de cor 86 pode gerar a tabela de pesquisa 3D de componente de luma com um valor de precisão diferente do valor de precisão de cada uma dentre a primeira tabela de pesquisa 3D de componente de croma e a segunda tabela de pesquisa 3D de componente de croma. Por exemplo, o valor de precisão da tabela de pesquisa 3D de componente de luma pode ser maior do que o valor de precisão das tabelas de pesquisa 3D de componente de croma. Em alguns casos, para reduzir ainda mais a complexidade, a unidade de processamento de previsão de cor 86 pode gerar somente uma tabela de pesquisa 3D de componente de luma.
[00161] Como outro exemplo, de acordo com as técnicas desta revelação, a unidade de processamento de previsão de cor 86 de decodificador de vídeo 30 pode gerar a pelo menos uma tabela de pesquisa 3D como uma tabela de pesquisa 3D desequilibrada com o uso de mais segmentos para a dimensão da tabela de pesquisa 3D associada ao componente de cor usado como um índice de tabela para a tabela de pesquisa 3D. Por exemplo, a tabela de pesquisa 3D de componente de luma pode ter uma dimensão de luma maior do que uma primeira dimensão de croma e uma segunda dimensão de croma com base no componente de luma que é usado como um índice de tabela para a tabela de pesquisa 3D de componente de luma. Nesse exemplo, a LUTY pode ter o tamanho MxNxN, em que M > N. Os tamanhos da primeira e da segunda tabelas de pesquisa 3D de componente de croma podem ser determinados similarmente. Por exemplo, a LUTU pode ter o tamanho NxMxN com base no primeiro componente de croma que é usado no índice de tabela, e a LUTV pode ter o tamanho NxNxM com base no segundo componente de croma que é usado no índice de tabela. Dessa forma, o tamanho total de cada uma das tabelas pode ser reduzido, mantendo-se ao mesmo tempo um bom desempenho de codificação com resolução mais alta para o componente de cor usado como o índice de tabela.
[00162] Após gerar a pelo menos uma tabela de pesquisa 3D, a unidade de processamento de previsão de cor 86 realiza a previsão de cor com o uso da pelo menos uma tabela de pesquisa 3D para converter os dados de cor da figuração de referência na primeira gama de cores para a camada inferior dos dados de vídeo na segunda gama de cores para a camada superior dos dados de vídeo (182). A unidade de processamento de previsão de cor 86, então, gera pelo menos uma figuração de referência entre camadas para a camada superior dos dados de vídeo com base nos dados de cor convertidos (184). Em casos em que somente uma tabela de pesquisa 3D de componente de luma é gerada, a unidade de processamento de previsão de cor 86 pode realizar a previsão de componente de luma com o uso da tabela de pesquisa 3D de componente de luma, e realiza a primeira e a segunda previsão de componente de croma com o uso de mapeamento linear 1D ou mapeamento linear por partes para gerar uma figuração de referência entre camadas. O decodificador de vídeo 30 pode, então, reconstruir blocos de vídeo previstos em uma figuração da camada superior de dados de vídeo com base nos dados residuais decodificados e na pelo menos uma figuração de referência entre camadas gerada com o uso da pelo menos uma tabela de pesquisa 3D.
[00163] Certos aspectos desta revelação foram descritos em relação às extensões do padrão de HEVC para propósitos de ilustração. Entretanto, as técnicas descritas nesta revelação podem ser úteis para outros processos de codificação de vídeo, que incluem outros processos de codificação de vídeo padrão ou de propriedade ainda não desenvolvidos.
[00164] Um codificador de vídeo, conforme descrito nesta revelação, pode se referir a um criptador de vídeo ou a um decodificador de vídeo. De modo similar, uma unidade de codificação de vídeo pode se referir a um criptador de vídeo ou a um decodificador de vídeo. De modo semelhante, a codificação de vídeo pode se referir à criptação de vídeo ou à decodificação de vídeo, conforme aplicável.
[00165] Deve ser reconhecido que, dependendo do exemplo, certos atos ou eventos de quaisquer uma dentre as técnicas descritas no presente documento podem ser realizados em uma sequência diferente, podem ser adicionados, fundidos ou deixados de fora todos juntos (por exemplo, nem todos os atos ou eventos descritos são necessários para a prática das técnicas). Além disso, em certos exemplos, os atos ou eventos podem ser realizados de modo concorrente, por exemplo, através de processamento de múltiplos segmentos, processamento interrupto ou em múltiplos processadores, em vez de sequencialmente.
[00166] Em um ou mais exemplos, as funções descritas podem ser implantadas em hardware, software, firmware ou qualquer combinação dos mesmos. Caso implantado em software, as funções podem ser armazenadas ou transmitidas como uma ou mais instruções ou código em uma mídia legível por computador e executadas por uma unidade de processamento com base em hardware. As mídias legíveis por computador podem incluir mídias de armazenamento legíveis por computador, que correspondem a uma mídia tangível como mídias de armazenamento de dados ou mídias de comunicação que incluem qualquer mídia que facilite a transferência de um programa de computador proveniente de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Dessa forma, as mídias legíveis por computador geralmente podem corresponder a (1) mídias tangíveis de armazenamento legíveis por computador que sejam não transitórias ou (2) uma mídia de comunicação tal como um sinal ou onda portadora As mídias de armazenamento de dados podem ser quaisquer mídias disponíveis que possam ser acessadas por um ou mais computadores ou um ou mais processadores para recuperar instruções, estruturas de código e/ou dados para a implantação das técnicas descritas nesta revelação. Um produto de programa de computador pode incluir uma mídia legível por computador.
[00167] A título de exemplo, e não de limitação, tais mídias de armazenamento legíveis por computador podem compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento de disco óptico, armazenamento de disco magnético ou outros dispositivos de armazenamento magnético, memória flash, ou qualquer outra mídia que possa ser usada para armazenar o código de programa desejado na forma de instruções ou estruturas de dados e que possa ser acessada por um computador. Além disso, qualquer conexão á apropriadamente denominada uma mídia legível por computador. Por exemplo, se as instruções forem transmitidas a partir de um site da web, servidor ou outra fonte remota com o uso de um cabo coaxial, cabo de fibra óptica, par trançado, linha de inscrição digital (DSL) ou tecnologias sem fio como infravermelho, rádio e microondas, então, o cabo coaxial, o cabo de fibra óptica, o par trançado, a DSL ou as tecnologias sem fio como infravermelho, rádio e micro-ondas estão incluídos na definição de mídia. Deve ser entendido, entretanto, que as mídias de armazenamento legíveis por computador e as mídias de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outras mídias transitórias, mas são, em vez disso, destinadas para mídias de armazenamento tangíveis não transitórias. Disco magnético e disco óptico, conforme usado no presente documento, incluem disco compacto (CD), disco laser, disco ótico, 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 dos supracitados também devem ser incluídas no escopo de mídias legíveis por computador.
[00168] 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), matrizes lógicas programáveis por campo (FPGAs) ou outro conjunto de circuitos lógicos integrados ou discretos equivalentes. 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. Além disso, em alguns aspectos, a funcionalidade descrita no presente documento pode ser fornecida dentro de módulos dedicados de hardware e/ou software configurados para criptar e decodificar ou incorporados em um codec combinado. Além disso, as técnicas podem ser totalmente implantadas em um ou mais circuitos ou elementos lógicos.
[00169] 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 descritos nesta 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. Em vez disso, conforme descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec ou fornecidas por uma coleção de unidades de hardware interoperativos, incluindo um ou mais processadores conforme descrito acima, em conjunto com software e/ou firmware adequados.
[00170] Vários exemplos foram descritos. Esses e outros exemplos estão dentro do escopo das reivindicações a seguir.

Claims (6)

1. Método para processamento de dados de vídeo de multicamadas, o método caracterizado pelo fato de que compreende: gerar uma pluralidade de tabelas de pesquisa tridimensionais, 3D, para escalabilidade de gama de cores, em que a pluralidade de tabela de pesquisa 3D compreende uma primeira tabela de pesquisa para um componente de luma e uma segunda tabela de pesquisa para um primeiro componente de croma e uma terceira tabela de pesquisa para um segundo componente de croma, em que cada uma da primeira tabelas de pesquisa e segunda tabela de pesquisa e terceira tabela de pesquisa compreende 3 dimensões comprendendo uma dimensão luma e uma primeira dimensão croma e uma segunda dimensão croma e em que o tamanho da tabela de pesquisa 3D para o componente de luma é superior ao tamanho da tabela de pesquisa 3D para a primeira componente de croma e em que o tamanho da tabela de pesquisa 3D para o primeiro componente de croma é o mesmo que o tamanho da tabela de pesquisa 3D para o segundo componente de croma e em que o tamanho da dimensão luma de cada tabela de pesquisa 3D é maior do que o tamanho de cada uma da primeira dimensão croma e da segunda dimensão croma; codificar uma pluralidade de elementos de sintaxe indicando os tamanhos para as tabelas de pesquisa 3D; realizar a previsão de cor usando a pelo menos uma tabela de pesquisa 3D para converter dados de cor de uma imagem de referência em uma primeira gama de cores para uma camada inferior dos dados de vídeo para uma segunda gama de cores para uma camada superior dos dados de vídeo com base nos elementos de sintaxe codificada; e gerar pelo menos uma imagem de referência inter- camadas para a camada superior dos dados de vídeo com base nos dados de cor convertidos.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que gerar a pluralidade de tabelas de pesquisa 3D compreende ainda gerar uma tabela de pesquisa 3D de componente de luma tendo um primeiro valor de precisão, gerar uma primeira tabela de pesquisa 3D de componente de croma tendo um segundo valor de precisão, e gerar uma segunda tabela de pesquisa 3D de componente de croma tendo o segundo valor de precisão, em que o primeiro valor de precisão é diferente do segundo valor de precisão.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda: prever blocos de vídeo em uma imagem da camada superior dos dados de vídeo com base na pelo menos uma imagem de referência inter-camadas gerada utilizando a pelo menos uma tabela de pesquisa 3D; codificar dados residuais dos blocos de vídeo previstos em um fluxo de bits; e codificar um ou mais elementos de sintaxe indicando o tamanho da pelo menos uma tabela de pesquisa 3D no fluxo de bits, em que o um ou mais elementos de sintaxe indicam que o tamanho é diferente para o componente de luma do que para cada um dentre o primeiro e segundo componentes de croma.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda: decodificar um ou mais elementos de sintaxe que indicam o tamanho da pelo menos uma tabela de pesquisa 3D, em que o um ou mais elementos de sintaxe indicam que o tamanho é diferente para o componente de luma do que para cada um dentre o primeiro e o segundo componentes de croma; decodificar dados residuais de blocos de vídeo previstos; e reconstruir os blocos de vídeo previstos em uma imagem da camada superior dos dados de vídeo com base nos dados residuais decodificados e na pelo menos uma imagem de referência inter-camadas gerada usando a pelo menos uma tabela de pesquisa 3D.
5. Dispositivo de processamento de vídeo para processar dados de vídeo de multicamadas, o dispositivo caracterizado pelo fato de compreende: meios para gerar uma pluralidade de tabelas de pesquisa tridimensionais, 3D, para a escalabilidade de gama de cores, em que a pluralidade de tabelas de pesquisa 3D compreende uma primeira tabela de pesquisa para um componente de luma e uma segunda tabela de pesquisa para um primeiro componente de croma e uma terceira tabela de pesquisa para um segundo componente de croma, em que cada uma da primeira tabela de pesquisa e segunda tabela de pesquisa e terceira tabela de pesquisa compreende 3 dimensões compreendendo uma dimensão luma e uma primeira dimensão croma e uma segunda dimensão croma e em que o tamanho da tabela de pesquisa 3D para o componente de luma é maior do que o tamanho da tabela de pesquisa 3D para o primeiro componente de croma e em que o tamanho da tabela de pesquisa 3D para o primeiro componente de croma é o mesmo que o tamanho da tabela de pesquisa 3D para o segundo componente de croma e em que o tamanho da dimensão luma de cada tabela de pesquisa 3D é maior do que o tamanho de cada uma da primeira dimensão croma e da segunda dimensão croma; meios para codificar uma pluralidade de elementos de sintaxe indicando os tamanhos para as tabelas de pesquisa 3D; meios para realizar a previsão de cor usando a pelo menos uma tabela de pesquisa 3D para converter os dados de cor de uma imagem de referência em uma primeira gama de cores para uma camada inferior dos dados de vídeo para uma segunda gama de cores para uma camada superior dos dados de vídeo com base nos elementos de sintaxe codificado; e meios para gerar pelo menos uma imagem de referência inter-camadas para a camada superior dos dados de vídeo com base nos dados de cor convertidos.
6. Memória caracterizda pelo fato de que compreende instruções armazenadas na mesma, as instruções sendo executadas por um computador para realizar o método conforme definido em qualquer uma das reivindicações 1 a 4.
BR112016008224-9A 2013-10-14 2014-10-14 Escalabilidade de gama de cores com base em tabela de pesquisa tridimensional em codificação de vídeo de múltiplas camadas BR112016008224B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361890843P 2013-10-14 2013-10-14
US61/890,843 2013-10-14
US14/512,177 US9948916B2 (en) 2013-10-14 2014-10-10 Three-dimensional lookup table based color gamut scalability in multi-layer video coding
US14/512,177 2014-10-10
PCT/US2014/060413 WO2015057656A1 (en) 2013-10-14 2014-10-14 Three-dimensional lookup table based color gamut scalability in multi-layer video coding

Publications (2)

Publication Number Publication Date
BR112016008224A2 BR112016008224A2 (pt) 2017-08-01
BR112016008224B1 true BR112016008224B1 (pt) 2023-04-25

Family

ID=52809631

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112016008224-9A BR112016008224B1 (pt) 2013-10-14 2014-10-14 Escalabilidade de gama de cores com base em tabela de pesquisa tridimensional em codificação de vídeo de múltiplas camadas

Country Status (10)

Country Link
US (1) US9948916B2 (pt)
EP (1) EP3058731B1 (pt)
JP (2) JP2016537929A (pt)
KR (1) KR102276273B1 (pt)
CN (1) CN105659595B (pt)
BR (1) BR112016008224B1 (pt)
CA (1) CA2925909C (pt)
ES (1) ES2753960T3 (pt)
HU (1) HUE046838T2 (pt)
WO (1) WO2015057656A1 (pt)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013109026A1 (ko) * 2012-01-18 2013-07-25 엘지전자 주식회사 엔트로피 부호화/복호화 방법 및 그 장치
US9602841B2 (en) * 2012-10-30 2017-03-21 Texas Instruments Incorporated System and method for decoding scalable video coding
US9756337B2 (en) 2013-12-17 2017-09-05 Qualcomm Incorporated Signaling color values for 3D lookup table for color gamut scalability in multi-layer video coding
US10531105B2 (en) 2013-12-17 2020-01-07 Qualcomm Incorporated Signaling partition information for 3D lookup table for color gamut scalability in multi-layer video coding
US9445111B2 (en) 2014-01-08 2016-09-13 Sony Corporation Image processing apparatus and image processing method
EP3105926B1 (en) * 2014-02-13 2018-04-11 Dolby International AB Piecewise inter-layer prediction for signals with enhanced dynamic range
US10104385B2 (en) 2014-04-17 2018-10-16 Qualcomm Incorporated Signaling reference layers for 3D color prediction for color gamut scalability
JP6330507B2 (ja) * 2014-06-19 2018-05-30 ソニー株式会社 画像処理装置及び画像処理方法
US20160217766A1 (en) * 2015-01-23 2016-07-28 Dell Products, Lp System and Method for Sub-Pixel Color Management
US10257526B2 (en) * 2015-05-01 2019-04-09 Disney Enterprises, Inc. Perceptual color transformations for wide color gamut video coding
SG11201701137SA (en) 2015-05-15 2017-03-30 Hewlett Packard Development Co Printer cartridges and memory devices containing compressed multi-dimensional color tables
US10244245B2 (en) * 2015-06-08 2019-03-26 Qualcomm Incorporated Content-adaptive application of fixed transfer function to high dynamic range (HDR) and/or wide color gamut (WCG) video data
US10321162B2 (en) * 2015-06-08 2019-06-11 Qualcomm Incorporated Derivation of color gamut scalability parameters and tables in scalable video coding
US10674043B2 (en) 2016-07-08 2020-06-02 Hewlett-Packard Development Company, L.P. Color table compression
US9992382B2 (en) 2016-07-08 2018-06-05 Hewlett-Packard Development Company, L.P. Color table compression
CN109155810B (zh) 2016-07-08 2020-12-01 惠普发展公司,有限责任合伙企业 颜色查找表压缩
US11178204B1 (en) * 2017-02-23 2021-11-16 Cox Communications, Inc. Video processor to enhance color space and/or bit-depth
TWI725456B (zh) 2018-06-21 2021-04-21 大陸商北京字節跳動網絡技術有限公司 交錯區塊的自動劃分
CN109005408B (zh) * 2018-08-01 2020-05-29 北京奇艺世纪科技有限公司 一种帧内预测方法、装置及电子设备
CN109685859B (zh) * 2018-12-24 2021-06-08 哈尔滨工业大学(深圳) 基于3d查找表的三维颜色自动调整方法
US11234023B2 (en) * 2019-06-28 2022-01-25 Microsoft Technology Licensing, Llc Features of range asymmetric number system encoding and decoding

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100547812B1 (ko) * 2002-06-24 2006-01-31 삼성전자주식회사 컬러 참조테이블을 사용하여 화소데이터의 컬러모델을변환하는 장치 및 방법
US7653133B2 (en) 2003-06-10 2010-01-26 Rensselaer Polytechnic Institute (Rpi) Overlapped block motion compression for variable size blocks in the context of MCTF scalable video coders
US8014445B2 (en) 2006-02-24 2011-09-06 Sharp Laboratories Of America, Inc. Methods and systems for high dynamic range video coding
JP4991851B2 (ja) 2006-07-17 2012-08-01 トムソン ライセンシング ビデオ色向上データをエンコードする方法および装置ならびにビデオ色向上データをデコードする方法および装置
WO2008049446A1 (en) * 2006-10-25 2008-05-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Quality scalable coding
US7843465B1 (en) 2007-05-31 2010-11-30 Zoran Corporation Method and apparatus for mapping a multi-dimensional signal from one space to another space
EP2051527A1 (en) * 2007-10-15 2009-04-22 Thomson Licensing Enhancement layer residual prediction for bit depth scalability using hierarchical LUTs
US8208560B2 (en) 2007-10-15 2012-06-26 Intel Corporation Bit depth enhancement for scalable video coding
JP2011040001A (ja) * 2009-08-18 2011-02-24 Nec Personal Products Co Ltd 画像処理装置、画像処理方法及びプログラム
EP2684365A1 (en) 2011-03-10 2014-01-15 Dolby Laboratories Licensing Corporation Bitdepth and color scalable video coding
CN103621084A (zh) 2011-04-28 2014-03-05 皇家飞利浦有限公司 用于生成图像编码信号的方法和装置
KR102028186B1 (ko) 2013-09-20 2019-10-02 브이아이디 스케일, 인크. 색역 확장성을 위한 3d 룩업 테이블 코딩을 제공하기 위한 시스템 및 방법
US10063886B2 (en) 2013-10-07 2018-08-28 Vid Scale, Inc. Combined scalability processing for multi-layer video coding
KR20170113713A (ko) 2013-12-13 2017-10-12 브이아이디 스케일, 인크. 보간을 이용하는 루마 및 크로마의 위상 정렬을 위한 컬러 색역 스케일러블 비디오 코딩 디바이스 및 방법
US10531105B2 (en) 2013-12-17 2020-01-07 Qualcomm Incorporated Signaling partition information for 3D lookup table for color gamut scalability in multi-layer video coding
US9756337B2 (en) 2013-12-17 2017-09-05 Qualcomm Incorporated Signaling color values for 3D lookup table for color gamut scalability in multi-layer video coding

Also Published As

Publication number Publication date
JP2016537929A (ja) 2016-12-01
CN105659595A (zh) 2016-06-08
US9948916B2 (en) 2018-04-17
BR112016008224A2 (pt) 2017-08-01
EP3058731A1 (en) 2016-08-24
EP3058731B1 (en) 2019-08-07
ES2753960T3 (es) 2020-04-15
JP6780054B2 (ja) 2020-11-04
US20150103902A1 (en) 2015-04-16
KR20160071415A (ko) 2016-06-21
KR102276273B1 (ko) 2021-07-12
JP2019176483A (ja) 2019-10-10
CN105659595B (zh) 2019-05-31
CA2925909C (en) 2022-03-29
CA2925909A1 (en) 2015-04-23
WO2015057656A1 (en) 2015-04-23
HUE046838T2 (hu) 2020-03-30

Similar Documents

Publication Publication Date Title
JP6780054B2 (ja) マルチレイヤビデオコーディングにおける3次元ルックアップテーブルベースの色域スケーラビリティ
US10432941B2 (en) Signaling color values for 3D lookup table for color gamut scalability in multi-layer video coding
TWI650004B (zh) 於多層視訊寫碼中用於色彩色域可擴展性之3d查找表之發信分割區資訊
BR112016007916B1 (pt) Sinalização para armazenamento temporário de figuração subdecodificada (sub-dpb) com base em operações de dpb em codificação de vídeo
ES2903013T3 (es) Capas de referencia de señalización para la predicción del color 3D para la escalabilidad de la gama de color
BR112016014129B1 (pt) Sinalização de informações de divisão para tabela de consulta 3d para escalabilidade de gama de cores em codificação de vídeo de multicamadas

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 14/10/2014, OBSERVADAS AS CONDICOES LEGAIS