BR112016000866B1 - Processamento de compensação de iluminação para codificação de vídeo - Google Patents

Processamento de compensação de iluminação para codificação de vídeo Download PDF

Info

Publication number
BR112016000866B1
BR112016000866B1 BR112016000866-9A BR112016000866A BR112016000866B1 BR 112016000866 B1 BR112016000866 B1 BR 112016000866B1 BR 112016000866 A BR112016000866 A BR 112016000866A BR 112016000866 B1 BR112016000866 B1 BR 112016000866B1
Authority
BR
Brazil
Prior art keywords
current block
arp
lighting compensation
value
syntax element
Prior art date
Application number
BR112016000866-9A
Other languages
English (en)
Other versions
BR112016000866A2 (pt
Inventor
Marta Karczewicz
Li Zhang
Ying Chen
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 BR112016000866A2 publication Critical patent/BR112016000866A2/pt
Publication of BR112016000866B1 publication Critical patent/BR112016000866B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

PROCESSAMENTO DE COMPENSAÇÃO DE ILUMINAÇÃO PARA CODIFICAÇÃO DE VÍDEO. Em um exemplo, um dispositivo para codificar (por exemplo, codificação ou decodificação) os dados de vídeo inclui uma memória configurada para armazenar os dados de vídeo e um codificador de vídeo configurado para de terminar um valor para um fator de ponderação de previsão residual avançada (ARP) de um bloco atual dos dados de vídeo e para pular a codificação de um elemento de sintaxe de compensação de iluminação para o bloco atual e para codificar o bloco atual quando o valor do fator de ponderação de ARP não for igual a zero. O codificador de vídeo pode ser adicionalmente configurado para codificar o elemento de sintaxe de compensação de iluminação para o bloco atual e codificar o bloco atual com base pelo menos em parte no valor do elemento de sintaxe de compensação de iluminação quando o valor do fator de ponderação de ARP for igual a zero.

Description

[0001] Este pedido reivindica o benefício do pedido provisório n° US 61/846.985, depositado em terça- feira, 16 de julho de 2013, estando todo o conteúdo do mesmo aqui incorporado por 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, dispositivo de gravação digitais, reprodutores de mídia digitais, dispositivos de vídeo jogo, consoles de vídeo jogo, celular ou telefones de rádio satélite, conhecidos como "telefones inteligentes", dispositivos de teleconferência por vídeo, dispositivos de difusão por vídeo e similares. Os dispositivos de vídeo digital 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) atualmente sob desenvolvimento e extensões de tais padrões.Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar informações de video digital, mais eficientemente, através da implantação de tais técnicas de codificação de vídeo.
[0004] As técnicas de codificação de vídeo incluem predição espacial (intraimagem) e/ou predição temporal (interimagem) para reduzir ou remover redundância inerente nas 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 nos blocos de vídeo, os quais também podem ser referidos como nós de codificação e/ou unidades de codificação (CUs) de blocos em árvore. Os blocos de vídeo em uma fatia intracodificada (I) de uma imagem são codificados com uso de predição espacial em relação às amostras de referência nos blocos vizinhos na mesma imagem. Os blocos de vídeo em uma fatia intercodificada (P ou B) de uma imagem podem usar predição espacial em relação às amostras de referência em blocos vizinhos na mesma imagem ou predição temporal em relação às amostras de referência em outras imagens de referência. As imagens podem ser referidas como quadros e as imagens de referência podem ser referidas como quadros de referência.
[0005] A predição temporal ou espacial resulta em um bloco preditivo para um bloco a ser codificado. Os dados residuais representam diferenças de pixels entre o bloco original a ser codificado e o bloco preditivo. Um bloco intercodificado é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência que formam o bloco preditivo e os dados residuais que indicam a diferença entre o bloco codificado e o bloco preditivo. Um bloco intracodificado é codificado 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, resultando em coeficientes de transformada residual, os quais os mesmos podem ser quantizados. O coeficiente de transformada quantizado disposto inicialmente em uma matriz bidimensional pode ser varrido a fim de produzir um vetor monodimensional de coeficiente de transformada, e a codificação de entropia pode ser aplicada para conseguir ainda mais compressão.
SUMÁRIO
[0006] Em geral, essa revelação descreve as técnicas relacionadas à codificação (por exemplo, sinalização e recebimento de um sinal indicativo de) um modo de predição para um bloco atual de dados de vídeo. Um bloco interpretativo pode ser preditivo com uso de interpredição temporal, interpredição de vista, predição residual avançada ou compensação de iluminação. Entretanto, a compensação de iluminação e a predição residual avançada não são usadas juntamente. Portanto, essa revelação propõe que um elemento de sintaxe (por exemplo, um sinalizador), que indica se a compensação de iluminação é usada para o bloco atual, não é sinalizado quando um fator de ponderação de predição residual avançada tem um valor diferente de zero, que indica de modo eficaz que a predição residual avançada é usada para o bloco atual.
[0007] Em um exemplo, um método de decodificação de dados de vídeo inclui determinar um valor para um fator de ponderação de predição residual avançada (ARP) de um bloco atual e quando o valor do fator de ponderação de ARP for igual a zero, pular a decodificação de um elemento de sintaxe de compensação de iluminação para o bloco atual e decodificação do bloco atual. O método pode incluir adicionalmente, quando o valor do fator de ponderação de ARP for igual a zero, decodificar um elemento de sintaxe de compensação de iluminação para o bloco atual e decodificar o bloco atual com base pelo menos em parte no valor do elemento de sintaxe de compensação de iluminação.
[0008] Em um outro exemplo, um método de codificação de dados de vídeo inclui determinar um valor para um fator de ponderação de predição residual avançada (ARP) de um bloco atual e quando o valor do fator de ponderação de ARP for igual a zero, pular a codificação de um elemento de sintaxe de compensação de iluminação para o bloco atual e codificação do bloco atual. O método pode incluir adicionalmente, quando o valor do fator de ponderação de ARP for igual a zero, codificar o elemento de sintaxe de compensação de iluminação para o bloco atual e codificar o bloco atual com base pelo menos em parte no valor do elemento de sintaxe de compensação de iluminação.
[0009] Em um outro exemplo, um dispositivo para codificar (por exemplo, codificação ou decodificação) os dados de vídeo inclui uma memória configurada para armazenar os dados de vídeo e um codificador de vídeo configurado para determinar um valor para um fator de ponderação de predição residual avançada (ARP) de um bloco atual dos dados de vídeo e para pular a codificação de um elemento de sintaxe de compensação de iluminação para o bloco atual e para codificar o bloco atual quando o valor do fator de ponderação de ARP não for igual a zero. O codificador de vídeo pode ser adicionalmente configurado para codificar o elemento de sintaxe de compensação de iluminação para o bloco atual e codificar o bloco atual com base pelo menos em parte no valor do elemento de sintaxe de compensação de iluminação quando o valor do fator de ponderação de ARP for igual a zero.
[0010] Em um outro exemplo, um dispositivo para codificar dados de vídeo inclui meios para determinar um valor para um fator de ponderação de predição residual avançada (ARP) de um bloco atual, meios para pular a codificação de um elemento de sintaxe de compensação de iluminação para o bloco atual quando o valor do fator de ponderação de ARP não for igual a zero e maios para codificar o bloco atual quando o valor do fator de ponderação de ARP não for igual a zero. O dispositivo pode incluir adicionalmente meios para codificar o elemento de sintaxe de compensação de iluminação para o bloco atual quando o valor do fator de ponderação de ARP for igual a zero e meios para codificar o bloco atual com base pelo menos em parte no valor do elemento de sintaxe de compensação de iluminação quando o valor do fator de ponderação de ARP for igual a zero.
[0011] Em um outro exemplo, um meio de armazenamento legível por computador (por exemplo, um meio de armazenamento legível por computador não transitório) tem armazenado no mesmo instruções que, quando executadas, fazem com que um processador de um dispositivo codifique os dados de vídeo para determinar um valor para um fator de ponderação de predição residual avançada (ARP) de um bloco atual e quando o valor do fator de ponderação de ARP não for igual a zero, codifique por salto o elemento de sintaxe de compensação de iluminação para o bloco atual e codifique o bloco atual. O meio de armazenamento legível por computador pode incluir adicionalmente instruções que fazem com que o processador, quando o valor do fator de ponderação de ARP for igual a zero, codifique um elemento de sintaxe de compensação de iluminação para o bloco atual e codifique o bloco atual com base pelo menos em parte no valor do elemento de sintaxe de compensação de iluminação.
[0012] Os detalhes de um ou mais exemplos são apresentados nos desenhos anexos e na descrição abaixo. Outras características, objetivos e vantagens se tornarão aparentes 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 decodificação e codificação de vídeo exemplificativo que pode utilizar técnicas para sinalizar a compensação de iluminação.
[0014] A Figura 2 é um diagrama de blocos que ilustra um exemplo de um codificador de vídeo que pode implantar técnicas para sinalizar a compensação de iluminação.
[0015] A Figura 3 é um diagrama de blocos que ilustra um exemplo de um decodificador de vídeo que pode implantar técnicas para sinalizar a compensação de iluminação.
[0016] A Figura 4 é um diagrama conceitual que ilustra um padrão de predição de MVC exemplificativo.
[0017] A Figura 5 é um diagrama conceitual que ilustra uma relação entre uma unidade de predição atual (PU) e suas PUs vizinhas espaciais.
[0018] A Figura 6 é um diagrama conceitual que ilustra uma estrutura de predição de quadro de vídeos na ordem de saída.
[0019] A Figura 7 é um diagrama conceitual de um cabeçalho de unidade de camada de abstração de rede (NAL) de acordo com a codificação de vídeo de alta eficiência (HEVC).
[0020] A Figura 8 é um diagrama conceitual que ilustra amostras vizinhas que podem ser usadas para a derivação de parâmetros de compensação de iluminação.
[0021] A Figura 9 é um diagrama conceitual que ilustra técnicas para predição residual avançada (ARP).
[0022] A Figura 10 é um diagrama conceitual que ilustra uma relação entre um bloco atual, blocos de referência e blocos compensados de movimento no caso de predição bidirecional.
[0023] A Figura 11 é um diagrama conceitual que ilustra aprimoramentos adicionais de ARP.
[0024] A Figura 12 é um fluxograma que ilustra um método exemplificativo para codificação de um bloco de acordo com as técnicas dessa revelação.
[0025] A Figura 13 é um fluxograma que ilustra um método exemplificativo para decodificação de um bloco de acordo com as técnicas dessa revelação.
DESCRIÇÃO DETALHADA
[0026] As técnicas dessa revelação são geralmente relacionadas à codificação de vídeo de camada múltipla (por exemplo, vista múltipla) com base nos codecs avançados, por exemplo, que incluem a codificação de duas ou mais vistas com o codec de 3D-HEVC (codificação de vídeo de alta eficiência). Por exemplo, essa revelação descreve técnicas relacionadas à sinalização do modo de compensação de iluminação juntamente com a sinalização de modo de predição residual avançado.
[0027] Em geral, a codificação de vídeo (codificação ou decodificação) envolve o aproveitamento de redundâncias dentro das imagens individuais e entre as imagens separadas de dados de vídeo para comprimir um fluxo de bits. Por exemplo, intrapredição, também referida como predição espacial, envolve predizer um bloco de uma imagem com uso de pixels de blocos vizinhos anteriormente codificados. A interpredição temporal envolve predizer um bloco de uma imagem com uso de um bloco de referência de uma imagem anteriormente codificada. A predição de intercamada envolve predizer um bloco de uma imagem com uso de dados de uma imagem anteriormente codificada em uma diferente camada, assumindo que o fluxo de bits inclui múltiplas camadas de dados de vídeo. No caso de dados de vídeo de vista múltipla, as camadas distintas podem corresponder a diferentes vistas, por exemplo, diferentes localizações horizontais para as perspectivas de câmera de um cenário que pode ser usado para produzir um efeito tridimensional para um visualizador.
[0028] Várias técnicas de predição de intercamada podem ser usadas para predizer um bloco de dados de vídeo. Por exemplo, um bloco de dados de vídeo pode ser preditivo com uso de um vetor de movimento de disparidade que identifica um bloco de referência em uma imagem de referência de intercamada. A compensação de iluminação é uma outra técnica que envolve a interpredição de vista. Em geral, a compensação de iluminação envolve valores de pixel de manipulação de um bloco de referência identificada por um vetor de movimento de disparidade com uso de uma equação linear a qual os parâmetros são determinados com base nas amostras vizinhas (pixels) para o bloco atual e amostras vizinhas para o bloco de referência.
[0029] Como ainda outro exemplo, a predição residual avançada é uma técnica que utiliza tanto um vetor de disparidade (ou um vetor de movimento de disparidade) quanto um vetor de movimento temporal quando prevê um bloco atual. Em geral, o vetor de disparidade identifica um bloco em uma vista de referência e o vetor de movimento temporal é aplicado tanto ao bloco atual para identificar um bloco de referência na vista atual quanto ao bloco na vista de referência para identificar um segundo bloco de referência na vista de referência. Alternativamente, o segundo bloco de referência pode ser identificado aplicando-se o vetor de disparidade ao primeiro bloco de referência. Um codificador de vídeo pode aplicar um fator de ponderação à diferença entre o segundo bloco de referência e o bloco na vista de referência, em que o fator de ponderação pode ser um valor de 0, 0,5 ou 1 e, então, adicionar esse valor ponderado (pixel por pixel) ao primeiro bloco de referência para produzir um bloco preditivo para o bloco atual. Quando o fator de ponderação for igual a 0, a predição residual avançada não é usada para predizer o bloco atual, devido ao fato de que todos os valores ponderados designam um valor de 0. Tanto o primeiro bloco de referência quanto o segundo bloco de referência, assumem-se que o fator de ponderação não é igual a zero, são usados para calcular um bloco preditivo para o bloco atual.
[0030] Conforme descrito em maiores detalhes abaixo, essa revelação geralmente descreve técnicas para sinalização de dados relacionados à predição de um bloco atual. Por exemplo, os sinalizadores ou outros elementos de sintaxe podem ser codificados para o bloco atual que indica se o bloco atual é preditivo com uso de, por exemplo, interpredição de vista convencional, predição residual avançada ou compensação de iluminação. Mais particularmente, essa revelação reconhece que a compensação de iluminação seria apenas realizada para um bloco atual se a predição residual avançada não for usada para predizer o bloco atual. Em alguns exemplos, um sinalizador que indica se a compensação de iluminação deve ser realizada para um bloco atual é apenas codificado (por exemplo, sinalizado) para o bloco atual se um fator de ponderação para predição residual avançada for igual a zero. Em outras palavras, em alguns exemplos, o sinalizador que indica se a compensação de iluminação deve ser realizada para um bloco atual não é codificado (por exemplo, sinalizado) para o bloco atual se o fator de ponderação para a predição residual avançada não for igual a zero.
[0031] Conforme explicado acima, um valor de fator de ponderação igual a zero indica que a predição residual avançada não é usada e, então, a compensação de iluminação pode ser usada para predizer o bloco atual no caso em que o valor de fator de ponderação para predição residual avançada for igual a zero. Um valor diferente de zero para o valor de fator de ponderação (por exemplo, valores de 0,5 ou 1,0) pode indicar que o sinalizador de compensação de iluminação não é sinalizado (por conseguinte, não deve ser codificado). Consequentemente, um valor diferente de zero para o fator de ponderação de predição residual avançada pode indicar que o sinalizador de compensação de iluminação não está presente no fluxo de bits.
[0032] Desse modo, de acordo com as técnicas dessa revelação, um codificador de vídeo (por exemplo, um codificador de vídeo ou um decodificador de vídeo) pode ser configurado para determinar um valor de um fator de ponderação de predição residual avançada para um bloco atual. Se o fator de ponderação tiver um valor de zero, um codificador de vídeo pode determinar a codificação de um valor para um elemento de sintaxe de compensação de iluminação para o bloco atual, de modo que o valor do elemento de sintaxe de compensação de iluminação indique se o codificador de vídeo determinado codifica o bloco atual com uso de compensação de iluminação. Isto é, quando o codificador de vídeo determinar não usar ARP para predizer um bloco que é codificado (de modo que o fator de ponderação de ARP tenha um valor de zero), o codificador de vídeo pode codificar o elemento de sintaxe de compensação de iluminação. De modo similar, um decodificador de vídeo pode determinar que quando o fator de ponderação para o bloco atual tiver um valor de zero, o elemento de sintaxe de compensação de iluminação será sinalizado e, então, pode determinar se usa a compensação de iluminação para predizer o bloco atual com base no elemento de sintaxe de compensação de iluminação. Por outro lado, se o fator de ponderação tiver um valor diferente de zero, um codificador de vídeo pode pular a codificação do elemento de sintaxe de compensação de iluminação, de modo que o elemento de sintaxe de compensação de iluminação não forme parte do fluxo de bits. Isto é, quando o codificador de vídeo eleger a predição de um bloco que é codificado com uso de ARP (de modo que o fator de ponderação de ARP tenha um valor diferente de zero), o codificador de vídeo pode pular a codificação do elemento de sintaxe de compensação de iluminação. De modo similar, o decodificador de vídeo pode determinar que quando o fator de ponderação tiver um valor diferente de zero, o elemento de sintaxe de compensação de iluminação não estará presente no fluxo de bits para o bloco atual e, portanto, deduzir (isto é, determinar sem receber sinalização explícita) que a compensação de iluminação não é usada para predizer o bloco atual.
[0033] Os padrões de codificação de video incluem ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecidos como ISO/IEC MPEG-4 AVC), que inclui sua codificação de vídeo escalonável (SVC) e extensões de codificação de vídeo de vista múltipla (MVC). A extensão de MVC de H.264 é descrita em “Advanced video coding for generic audiovisual services”, Recomendação de ITU-T H.264, março de 2010.
[0034] Em geral, as técnicas de codificação de vídeo em 2D (tal como codificação de vídeo ou decodificação de vídeo) incluem técnicas de codificação com base em bloco. A codificação com base em bloco inclui predizer um bloco, se por interpredição (também referida como predição temporal) ou intrapredição (também referida como predição espacial). Na intrapredição, um codificador de vídeo (por exemplo, um codificador de vídeo ou um decodificador de vídeo) predizer um bloco atual a partir de pixels vizinhos anteriormente codificados (também referidos como “amostras”). Na interpredição, o codificador de vídeo prevê o bloco atual a partir de uma imagem anteriormente codificada com uso de um ou mais conjuntos de parâmetros de movimento (que podem incluir um ou mais vetores de movimento respectivo).
[0035] Em HEVC, há dois modos para a predição de parâmetros de movimento: um é modo de mescla e o outro é predição de vetor de movimento avançado (AMVP). No modo de mescla, uma lista de candidato de parâmetros de movimento (direção de predição, imagens de referência e vetores de movimento) é construída, sendo que o candidato pode ser selecionado a partir de blocos vizinhos temporais e espaciais. O codificador de vídeo pode sinalizar os parâmetros de movimento selecionados através da transmissão de um índice na lista de candidato. No lado do decodificador, uma vez que o índice é decodificado, todos os parâmetros de movimento do bloco correspondente onde os pontos de índice são herdados para o bloco atual.
[0036] Em AMVP, uma lista de candidato de vetores de movimento preditor para cada hipótese de movimento é derivada com base no índice de referência codificado. Essa lista inclui vetores de movimento de blocos vizinhos que são associados ao mesmo índice de referência bem como um preditor de vetor de movimento temporal que é derivado com base nos parâmetros de movimento do bloco vizinho do bloco colocalizado em uma imagem de referência temporal. Os vetores de movimento selecionados são sinalizados através da transmissão de um índice na lista de candidato. Além disso, os valores de índice de referência e as diferenças de vetor de movimento também são sinalizadas. Os métodos de compressão de dados de movimento serão descritos em maiores detalhes abaixo.
[0037] Os vetores de movimento também podem ser preditivos com uso de predição de vetor de movimento temporal (TMVP). Para obter um preditor de vetor de movimento temporal para um vetor de movimento de um bloco atual, um codificador de vídeo pode primeiro identificar uma imagem colocalizada para uma imagem atual que inclui o bloco atual. Se a imagem atual for uma fatia B (isto é, uma fatia inclui blocos preditivos de modo bidirecional), um collocated_from_10_flag pode ser sinalizado em um cabeçalho de fatia de uma fatia que inclui o bloco atual, para indicar se a imagem colocalizada é de RefPicList0 ou RefPicListl. Além disso, para uma fatia B, uma lista combinada (RefPicListC) pode ser construída após as listas finais de imagem de referência (RefPicList0 e RefPicListl) terem sido construídas. A lista combinada pode ser adicionalmente modificada se a sintaxe de modificação de lista de imagem de referência estiver presente para a lista combinada.
[0038] Após o codificador de vídeo identificar uma lista de imagem de referência, o codificador de vídeo pode usar collocated_ref_idx— sinalizado no cabeçalho de fatia— para identificar a imagem na imagem na lista. O codificador de vídeo pode, então, identificar uma PU colocalizada através da verificação da imagem colocalizada. O movimento da PU do fundo à direita da PU colocalizada ou o movimento da PU de centro da PU colocalizada, é usado como o preditor, para propósito de TMVP.
[0039] Quando um codificador de vídeo utiliza vetores de movimento identificados pelo processo acima para gerar um candidato de movimento para AMVP ou modo de mescla, o codificador de vídeo pode escalonar o vetor de movimento preditor do candidato de movimento, com base na localização temporal (refletida por um valor de contagem de ordem de imagem (POC)).
[0040] Em HEVC, um conjunto de parâmetros de imagem (PPS) inclui o sinalizador enable_temporal_mvp_flag. Quando uma imagem particular com temporal_id igual a 0 se referir a um PPS que tem enable_temporal_mvp_flag igual a 0, todas as imagens de referência na memória temporária de imagem decodificada (DPB) são marcadas como “não usadas para predição de vetor de movimento temporal” e, nenhum vetor de movimento a partir das imagens antes daquela imagem particular na ordem de decodificação seria usado como um preditor de vetor de movimento temporal na ordem de decodificação da imagem particular ou uma imagem após a imagem particular na ordem de decodificação.
[0041] As técnicas dessa revelação são geralmente relacionadas ao modo de compensação de iluminação de sinalização em 3D-HEVC, embora essas técnicas possam ser implantadas em outras extensões e/ou padrões de codificação de vídeo de outros padrões de codificação de vídeo. O modo de compensação de iluminação em 3D-HEVC é descrito em maiores detalhes abaixo em relação às Figuras 7 a 10. O modo de compensação de iluminação em 3D-HEVC, antes dessa revelação, pode ter os problemas a seguir:
[0042] - No modelo de ARP, quando uma unidade de codificação (CU) for codificada com ARP (isto é, sinalizar um fator de ponderação de ARP com um valor que não é igual a 0), a presença de uma compensação de iluminação (ic_flag) pode ser redundante, por exemplo, visto que a CU atual não pode ser preditiva por uma imagem de referência de intervista.
[0043] - ARP também seria aplicada à interpredição de vista, como nos Pedidos Provisórios nos U.S. 61/838.208, depositado no dia 21 de junho de 2013 e 61/846.036, depositado no dia 14 de julho de 2013. Nesse caso, a relação entre o fator de ponderação de ARPs e o ic_flag não é considerada e, portanto, a ic_flag deve ser redundante quando estiver presente.
[0044] - O controle do uso de compensação de iluminação está no nível de fatia. Portanto, múltiplos bits podem ser perdido quando uma sequência total não usar a compensação de iluminação.
[0045] Além disso, essa revelação reconhece que, geralmente, ARP e compensação de iluminação não são realizados juntamente (isto é, juntamente no mesmo bloco). Desse modo, quando ARP for realizada (por exemplo, quando um fator de ponderação de ARP tiver um valor diferente de zero), um elemento de sintaxe de compensação de iluminação não precisa ser sinalizado. De modo similar, quando ARP não for realizado (por exemplo, quando o fator de ponderação de ARP tiver um valor de zero), o elemento de sintaxe de compensação de iluminação pode ser sinalizado.
[0046] As técnicas de acordo com os exemplos dessa revelação, quando implantadas, podem superar qualquer ou todos esses problemas quando a compensação de iluminação (IC) for aplicada na compensação de movimento de disparidade e, ao considerar se a ARP é aplicável a um bloco atual (por exemplo, uma CU atual). Cada aspecto das técnicas dessa revelação pode ser usado no isolamento ou em combinação com qualquer outro aspecto.
[0047] A Figura 1 é um diagrama de blocos que ilustra um sistema de decodificação e codificação de vídeo exemplificativo 10 que pode utilizar as técnicas para a sinalização compensação de iluminação. Conforme mostrado na Figura 1, o sistema 10 inclui um dispositivo de fonte 12 que fornece dados de vídeo codificados a serem decodificados em um tempo posterior por um dispositivo de destino 14. Em particular, o dispositivo de fonte 12 fornece os dados de vídeo ao dispositivo de destino 14 através de um meio 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 incluem computadores do tipo desktop, computadores do tipo notebook (isto é, do tipo laptop), computadores do tipo tablet, decodificares, aparelhos telefônicos tal como denominado telefones “inteligentes”, computadores do tipo tablet, televisões, câmeras, dispositivos de exibição, reprodutores de mídia digital, consoles de vídeo jogo, 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. O dispositivo de fonte 12 e o dispositivo de destino 14 podem incluir uma memória para armazenar dados de vídeo, por exemplo, memórias respectivas dentro do codificador de vídeo 20 e do decodificador de vídeo 30 e/ou memórias externas ao codificador de vídeo 20 e decodificador de vídeo 30, tais como uma memória temporária de imagem codificada (CPB) e memórias temporárias para armazenar dados não codificados brutos (para dispositivo de fonte 12) ou dados decodificados (para dispositivo de destino 14).
[0048] O dispositivo de destino 14 pode receber os dados de vídeo codificados a serem decodificados através do meio legível por computador 16. O meio legível por computador 16 pode compreender qualquer tipo de meio ou dispositivo com capacidade para mover os dados de vídeo codificados do dispositivo de fonte 12 para o dispositivo de destino 14. Em um exemplo, o meio legível por computador 16 pode compreender um meio de comunicação para garantir que o dispositivo de fonte 12 transmita os dados de vídeo codificados diretamente para o dispositivo de destino 14 em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio e transmitidos para o dispositivo de destino 14. O meio de comunicação pode compreender qualquer meio de comunicação sem fio ou com fio, tal como um espectro de frequência de rádio (RF) ou uma ou mais linhas de transmissão física. O meio de comunicação pode formar parte de uma rede com base em pacote, tal como uma rede de área local, uma rede de área ampla ou uma rede global tal como a Internet. O meio de comunicação pode incluir roteadores, comutadores, estações de base ou qualquer outro equipamento que pode ser útil para facilitar a comunicação do dispositivo de fonte 12 para o dispositivo de destino 14.
[0049] Em alguns exemplos, os dados codificados podem ser emitidos da interface de saída 22 para um dispositivo de armazenamento. De modo similar, os dados codificados podem ser acessados a partir do dispositivo de armazenamento através da interface de entrada. O dispositivo de armazenamento pode incluir qualquer um dentre uma variedade de meios 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 qualquer outro meio de armazenamento digital adequado para armazenar dados de vídeo codificados. Em um exemplo adicional, o dispositivo de armazenamento pode corresponder a um servidor de arquivo ou um outro dispositivo de armazenamento intermediário que pode armazenar o vídeo codificado gerado pelo dispositivo de fonte 12. O dispositivo de destino 14 pode acessar os dados de vídeo armazenados a partir do dispositivo de armazenamento através da transmissão contínua ou transferência por download. O servidor de arquivo pode ser qualquer tipo de servidor com capacidade para armazenar os dados de vídeo codificados e transmitir aqueles dados de vídeo codificados para o dispositivo de destino 14. Os servidores de arquivo exemplificativos incluem um servidor de web (por exemplo, para um site da web), um servidor de FTP, dispositivos de armazenamento de rede anexos (NAS) ou uma unidade de disco local. O dispositivo de destino 14 pode acessar os dados de vídeo codificados através de qualquer conexão de dados padrão, incluindo uma conexão de Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão com fio (por exemplo, DSL, modem a cabo, etc.), ou uma combinação de ambos que é adequada para acessar os dados de vídeo codificados armazenados em um servidor de arquivo. A transmissão de dados de vídeo codificados a partir do dispositivo de armazenamento pode ser uma transmissão contínua, uma transmissão de transferência por download ou uma combinação das mesmas.
[0050] As técnicas dessa revelação não são necessariamente limitadas às configurações ou aplicações sem fio. As técnicas podem ser aplicadas à codificação de vídeo no suporte de qualquer uma variedade de aplicações de multimídia, tais como difusões para televisão sem fio, transmissões para televisão de cabo, transmissões para televisão por satélite, transmissões de vídeo de transmissão contínua de Internet, tal como transmissão contínua adaptativa dinâmica sobre HTTP (DASH), vídeo digital que é codificado em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados ou outras aplicações. Em alguns exemplos, o sistema 10 pode ser configurado para suportar a transmissão de vídeo de uma via ou de duas vias para sustentar aplicações como difusão de vídeo, reprodução de vídeo, difusão de vídeo e/ou telefonia por vídeo.
[0051] No exemplo da Figura 1, o dispositivo de fonte 12 inclui a fonte de vídeo 18, o codificador de vídeo 20 e a interface de emissão 22. O dispositivo de destino 14 inclui a interface de entrada 28, o decodificador de vídeo 30 e o dispositivo de exibição 32. De acordo com essa revelação, o codificador de vídeo 20 do dispositivo de fonte 12 pode ser configurado para aplicar as técnicas para sinalizar a compensação de iluminação. Em outros exemplos, um dispositivo de fonte e um dispositivo de destino podem incluir outros componentes ou disposições. Por exemplo, o dispositivo de fonte 12 pode receber os dados de vídeo a partir de uma fonte de vídeo externa 18, tal como uma câmera externa. De modo similar, o dispositivo de destino 14 pode realizar interface com um dispositivo de exibição externo, em vez de incluir um dispositivo de exibição integrado.
[0052] O sistema ilustrado 10 da Figura 1 é simplesmente um exemplo. As técnicas para sinalizar a compensação de iluminação podem ser realizadas por qualquer dispositivo de decodificação e/ou codificação de vídeo digital. Embora, geralmente, as técnicas dessa revelação sejam realizadas por um dispositivo de codificação de vídeo ou um dispositivo de decodificação de vídeo, as técnicas também podem ser realizadas por um codificador/decodificador de vídeo, tipicamente referido como um “CODEC”. Ademais, as técnicas dessa 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 simplesmente exemplos de tais dispositivos de codificação no qual 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 uma maneira substancialmente simétrica de modo que cada um dos dispositivos 12, 14 inclua componentes de decodificação e codificação de vídeo. Consequentemente, o sistema 10 pode suportar a transmissão de vídeo de uma via ou de duas vias entre os dispositivos de vídeo 12, 14, por exemplo, para transmissão contínua de vídeo, reprodução de vídeo, difusão de vídeo ou telefonia por vídeo.
[0053] A fonte de vídeo 18 de 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 vídeo anteriormente capturado e/ou uma interface de alimentação de vídeo para receber vídeo a partir de um provedor de conteúdo de vídeo. Como uma alternativa adicional, a fonte de vídeo 18 pode gerar os dados com base em gráficos de computador como o vídeo de fonte ou uma combinação de vídeo ao vivo, vídeo arquivado e vídeo gerado por computador. Em alguns casos, se a fonte de vídeo 18 for uma câmera de vídeo, o dispositivo de fonte 12 e o dispositivo de destino 14 podem formar os denominados telefones de vídeo ou telefones de câmera. Entretanto, conforme mencionado acima, as técnicas descritas nessa revelação podem ser aplicáveis à codificação de vídeo em geral e, podem ser aplicadas às aplicações com fio e/ou sem fio. Nesse caso, o vídeo gerado por computador, pré-capturado ou capturado pode ser codificado pelo codificador de vídeo 20. As informações de vídeo codificadas podem, então, ser emitidas pela interface de saída 22 para um meio legível por computador 16.
[0054] O meio legível por computador 16 pode incluir meios transitórios, como uma transmissão por difusão sem fio ou por difusão com fio ou meios de armazenamento (ou seja, meios de armazenamento não transitórios), como um disco rígido, unidade flash, disco compacto, disco de vídeo digital, disco Blu-ray ou outros meios legíveis por computador. Em alguns exemplos, um servidor de rede (não mostrado) pode receber os dados de vídeo codificados a partir do dispositivo de fonte 12 e pode fornecer os dados de vídeo codificados para o dispositivo de destino 14, por exemplo, através da transmissão de rede. De modo similar, um dispositivo de computação de uma instalação de produção de meio, tal como uma instalação de registro de disco, pode receber os dados de vídeo codificados a partir do dispositivo de fonte 12 e produzir um disco que contém os dados de vídeo codificados. Portanto, o meio legível por computador 16 pode ser entendido como incluindo um ou mais meios legíveis por computador de um certo número de formas, em vários exemplos.
[0055] A interface de entrada 28 de dispositivo de destinação 14 recebe informações a partir do meio legível por computador 16. As informações do meio legível por computador 16 podem inclui informações de sintaxe definidas pelo codificador 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, 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.
[0056] O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de codificação de vídeo, como a padrão de Codificação de Vídeo de Alta Eficiência (HEVC), e pode se conformar ao Modelo de Teste HEVC (HM). O codificador de vídeo 20 e o decodificador de vídeo 30 também podem operar de acordo com uma ou mais extensões para um padrão de codificação de vídeo, tais como extensões de codificação de vídeo de vista múltipla e/ou codificação de vídeo escalonável, por exemplo, HEVC escalonável (SHVC), HEVC tridimensional (3D-HEVC) ou HEVC de múltipla vista (MV-HEVC). Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões de proprietário ou de indústria, como o padrão ITU-T H.264, referido de modo alternativo como MPEG- 4, Parte 10, Codificação de Vídeo Avançada (AVC), ou extensões de tais padrões. As técnicas dessa revelação, entretanto, não são limitadas a qualquer padrão de codificação particular. Outros exemplos padrões de codificação de vídeo incluem MPEG-2 e ITU-T H.263. Embora não seja mostrado na Figura Em alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um, serem integrados a um codificador e decodificador de áudio, e podem incluir unidades MUX-DEMUX apropriadas, ou outro hardware e outro software, para lidar com a codificação tanto de áudio quanto de vídeo em um fluxo de dados comum ou fluxos de dados diferentes. Caso aplicável, as unidades MUX-DEMUX podem se conformar ao protocolo multiplexador ITU H.223, ou outros protocolos como protocolo de datagrama de usuário (UDP).
[0057] O padrão de ITU-T H.264/MPEG-4 (AVC) foi formulado pelo Grupo de especialistas de codificação de vídeo de ITU-T (VCEG) juntamente com o Grupos de especialistas em imagem com movimento de ISO/IEC (MPEG) como o produto de uma parceria coletiva conhecida como Joint Video Team (JVT). Em alguns aspectos, as técnicas descritas nessa revelação podem ser aplicadas aos dispositivos que, geralmente, se conformam para o padrão H.264. O padrão H.264 é descrito na recomendação H.264 pela ITU-T, codificação de vídeo avançada para serviços genéricos audiovisuais, pelo grupo de estudos pela ITU-T e datado em março de 2005, que pode ser referido no presente documento como padrão H.264 ou especificação H.264, ou o padrão ou especificação H.264/AVC. O Joint Video Team (JVT) continua a funcionar nas extensões para H.264/MPEG-4 AVC.
[0058] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser, cada um, implantados como qualquer um dentre uma variedade de conjunto de circuitos de codificador adequado, como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), matrizes de portal 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 um meio legível por computador não transitório adequado e executar as instruções em hardware com o uso de um ou mais processadores para realizar as técnicas dessa revelação. Cada um dentre o codificador de vídeo 20 e o decodificador de vídeo 30 podem estar incluídos em um ou mais codificadores ou decodificadores, um dos quais pode ser integrado como parte de um codificador/decodificador (CODEC) combinado em um dispositivo respectivo.
[0059] O JCT-VC tem desenvolvido e continua a refinar e expandir o padrão HEVC. Os esforços de padronização HEVC têm base em um modelo de evolução de um dispositivo de codificação de vídeo referido como o Modelo de Teste HEVC (HM). O HM presume um certo número de capacidades adicionais de dispositivos de vídeo de codificação em relação a dispositivos existentes de acordo com, por exemplo, ITU-T H.264/AVC. Por exemplo, enquanto o H.264 fornece nove modos de codificação intrapredição, o HM pode fornecer até trinta e três modos de codificação intrapredição.
[0060] Em geral, o modelo de funcionamento da HM descreve que um quadro de vídeo ou imagem pode ser dividido em uma sequência de blocos em árvore ou maiores unidades de codificação (LCUs) (também referida como “unidades de codificação em árvore”) que incluem tanto amostras croma quanto amostras luma. Os dados de sintaxe dentro de um fluxo de bits podem definir um tamanho para a LCU, que é uma maior unidade de codificação em termos dos vários pixels. Uma fatia inclui vários blocos em árvore consecutivos em ordem de codificação. Um quadro de vídeo ou imagem pode ser particionado em uma ou mais fatias. Cada bloco em árvore pode ser partido em unidades de codificação (CUs) de acordo com uma árvore quadrática. Em geral, uma estrutura de dados de árvore quadrática inclui um nó por CU, com um nó de raiz correspondente ao bloco em árvore. se uma CU for partida em quatro sub-CUs, o nó correspondente ao CU inclui quadro nós de folha, cada um dos quais corresponde a um dos sub-CUs.
[0061] Cada nó da estrutura de dados de árvore quadrática pode fornecer dados de sintaxe para o CU correspondente. Por exemplo, um nó na árvore quadrática pode incluir um sinalizador partido, que indica se a CU que corresponde ao nó está partida em sub-CUs. Os elementos de sintaxe para um CU podem ser definidos de modo recursivo e podem depender de se a CU está partido em sub-CUs. Se uma CU não estiver mais partido, a CU é referida como uma CU-folha. Nessa revelação, quatro sub-CUs de uma CU-folha também serão referidos como CUs-folha mesmo se não houver partição explícita da CU-folha original. Por exemplo, se uma CU de tamanho 16x16 não estiver mais partida, as quatro sub-CUs 8x8 também serão referidas como CUs-folha mesmo que a CU 16x16 nunca tivesse sido partida.
[0062] Uma CU tem um propósito similar a um macrobloco do padrão H.264, exceto que uma CU não tem uma distinção de tamanho. Por exemplo, um bloco em árvore pode ser partido em quatro nós-filho (também referidos como sub-CUs), e cada nó-filho pode ser, por sua vez, ser um nó-pai e ser partido em outros quatro nós-filhos. Um nó-filho final não partido, referido como um nó-filho da árvore quadrática, compreende um nó de codificação, também referido como CU- folha. Os dados de sintaxe associados a um fluxo de bits codificado podem definir uma quantidade máxima de vezes que um bloco em árvore pode ser partido, referida como uma profundidade de CU máxima, e também pode definir um tamanho mínimo dos nós de codificação. Consequentemente, um fluxo de bits também pode definir uma menor unidade de codificação (SCU). Essa revelação usa o termo "bloco" para se referir a qualquer um dentre uma CU, uma PU ou uma TU, no contexto de HEVC, ou estruturas de dados similares no contexto de outros padrões (por exemplo, macroblocos e sub-blocos dos mesmos em H.264/AVC).
[0063] Uma CU inclui um nó de codificação e unidades de predição (PUs) E unidades de transformada (TUs) associadas ao nó de codificação. Um tamanho da CU corresponde a um tamanho do nó de codificação e deve ter formato quadrado. O tamanho da CU pode variar de 8x8 pixels até o tamanho do bloco em árvore com um máximo de 64x64 pixels ou maior. Cada CU pode conter uma ou mais PUs e uma ou mais TUs. Os dados de sintaxe associados a uma CU podem descrever, por exemplo, o particionamento da CU em uma ou mais PUs. Os modos de particionamento podem diferir entre se a CU é codificada em salto ou de modo direto, codificada de modo em intrapredição ou codificada de modo em interpredição. As PUs podem ser particionadas para serem não quadradas em formato. Os dados de sintaxe associados a uma CU também podem descrever, por exemplo, o particionamento da CU em uma ou mais TUs de acordo com uma árvore quadrática. Uma TU pode ser quadrada ou não quadrada (por exemplo, retangular) em formato.
[0064] O padrão HEVC prevê transformações de acordo com TUs, que podem ser diferentes para diferentes CUs. As TUs são dimensionadas tipicamente com base no tamanho de PUs dentro de uma CU dada definida por uma LCU particionada, embora esse possa nem sempre ser o caso. As TUs têm tipicamente o mesmo tamanho ou são menores que as PUs. Em alguns exemplos, as amostras residuais correspondentes a uma CU podem ser subdivididas em unidades menores com o uso de uma estrutura de árvore quadrática conhecida como "árvore quadrática residual" (RQT). Os nós de folha da RQT podem ser referidos como unidades de transformada (TUs). Os valores de diferença de pixel associados às TUs podem ser transformados para produzir o coeficiente de transformada, que pode ser quantizado.
[0065] Uma CU-folha pode incluir uma ou mais unidades de predição (PUs). Em geral, uma PU representa uma área espacial correspondente a toda ou a uma porção da CU correspondente, e pode incluir dados para recuperar uma amostra de referência para a PU. Além do mais, uma PU inclui dados relacionados a predição. Por exemplo, quando a PU é codificada em intramodo, os dados para a PU podem ser incluídos em uma árvore quadrática residual (RQT), que podem incluir dados que descrevem um modo intrapredição para uma TU correspondente à PU. Como outro exemplo, quando a PU for codificada em intermodo, a PU pode incluir dados que definem um ou mais vetores de movimento para a PU. Os dados que definem o vetor de movimento para um PU podem descrever, por exemplo, um componente horizontal do vetor de movimento, um componente vertical do vetor de movimento, uma resolução para o vetor de movimento (por exemplo, precisão de um quarto de pixel ou precisão de um oitavo de pixel), uma imagem de referência para a qual o vetor de movimento aponta e/ou uma lista de imagens de referência (por exemplo, Lista 0, Lista 1 ou Lista C) para o vetor de movimento.
[0066] Uma CU-folha que tem uma ou mais Pus também podem inclui uma ou mais unidades de transformada (TUs). As unidades de transformada podem ser especificadas com o uso de uma RQT (também referida como uma estrutura de árvore quadrática de TU), conforme discutido acima. Por exemplo, um sinalizador partido pode indicar se uma CU-folha é partida em quatro unidades de transformada. Então, cada unidade de transformada pode ser ainda mais dividida em quatro sub-TUs. Quando uma TU não estiver mais partida, a TU pode ser referida como uma TU-folha. Em geral, para intracodificação, todas as TUs-folha que pertencem a uma CU-folha compartilham o mesmo modo de intrapredição. Ou seja, o mesmo modo intrapredição é geralmente aplicado para calcular valores praticados para todas as TUs de uma CU- folha. Para a intracodificação, um codificador de vídeo pode calcular um valor residual para cada TU-folha com o uso do modo intrapredição, como uma diferença entre a porção da CU correspondente ao TU e ao bloco original. Um TU não está necessariamente limitado ao tamanho de uma PU. Dessa forma, as TUs podem ser maiores ou menores que uma PU. Para a intracodificação, uma PU pode ser colocada com uma TU-folha correspondentes para a mesma CU. Em alguns exemplos, o tamanho máximo de uma TU-folha pode corresponder ao tamanho da CU-folha correspondente.
[0067] Além do mais, as TUs das CUs-folha também podem estar associadas às estruturas de dados de árvore quadrática respectivas, referidas como árvores quadráticas residuais (RQTs). Ou seja, uma CU-folha pode incluir uma árvore quadrática que indica como a CU-folha é particionada em TUs. O nó de raiz de uma TU árvore quadrática geralmente corresponde a uma CU-folha, enquanto o nó de raiz de uma árvore quadrática de CU geralmente corresponde a um bloco em árvore (ou LCU). As TUs da RQT que não são partidas estão referidas como TUs-folha. Em geral, essa revelação usa os termos CU e TU para se referir à CU-folha e à TU-folha, respectivamente, a não ser que notado de outro modo.
[0068] Uma sequência de vídeo inclui tipicamente uma série de quadros ou imagens de vídeo. Um grupo de imagens (GOP) geralmente compreende uma série de uma ou mais das imagens de vídeo. Uma GOP pode incluir dados de sintaxe em um cabeçalho do GOP, um cabeçalho de uma ou mais das imagens, eu em outro lugar, que descreve um certo número de imagens incluídas no GOP. Cada fatia de uma imagem pode incluir a fatia dados de sintaxe que descreve um modo de codificação para a respectiva fatia. O codificador de vídeo 20 opera tipicamente em blocos de vídeo dentro de fatias de vídeo individuais a fim de codificar os dados de vídeo. Um bloco de vídeo pode corresponder a um nó de codificação dentro de uma CU. Os blocos de vídeo podem ter tamanhos fixos ou variados, e podem diferir em tamanho de acordo com um padrão de codificação especificado.
[0069] Como um exemplo, o HM sustenta uma predição em vários tamanhos de PU. Admitindo-se que o tamanho de uma CU particular seja 2Nx2N, o HM sustenta a intrapredição em tamanhos de PU de 2Nx2N ou NxN e a interpredição em tamanhos simétricos de PU de 2Nx2N, 2NxN, Nx2N ou NxN. O HM também sustenta o particionamento assimétrico para interpredição em tamanhos de PU de 2NxnU, 2NxnD, nLx2N e nRx2N. No particionamento assimétrico, uma direção de um CU não é particionada, enquanto a outra direção é particionada em 25% e 75%. A porção da CU correspondente aos 25% de partição é indicada por um "n" seguida por uma indicação de "Cima", "Baixo", "Esquerda" ou "Direita". Dessa forma, por exemplo, "2NxnU" se refere a um CU de 2Nx2N que é particionado horizontalmente com um PU de 2Nx0,5N no topo e um PU de 2Nxl,5N no fundo.
[0070] Nessa revelação, "NxN" e "N por N" podem ser usados de modo intercambiável para se referir às dimensões de pixel de um bloco de vídeo em termos de dimensões horizontal e vertical, por exemplo, 16x16 pixels ou 16 por 16 pixels. Em geral, um bloco de 16x16 terá 16 pixels em uma direção vertical (y = 16) e 16 pixels em uma direção horizontal (x = 16). De modo semelhante, um bloco NxN geralmente tem N pixels em uma direção vertical e N pixels em uma direção horizontal, em que N representa um valor de número inteiro não negativo. Os pixels em um bloco podem ser representados em fileiras e colunas. Além do mais, os blocos não precisam ter necessariamente a mesma quantidade de pixels tanto na direção horizontal quanto na direção vertical. Por exemplo, os blocos podem compreender NxM pixels, em que M não é necessariamente igual a N.
[0071] Após a codificação intrapreditiva ou interpreditiva com o uso das PUs de uma CU, o codificador de vídeo 20 pode calcular dados residuais para as TUs da CU. As PUs podem compreender dados de sintaxe que descrevem um método ou modo de geração de dados de pixel preditivos no domínio espacial (também referido como o domínio de pixels) e as TUs podem compreender coeficientes no domínio de transformada após a aplicação de uma transformada, por exemplo, uma transformada de cosseno discreta (DCT), uma transformada de número inteiro, uma transformada de Wavelet ou uma transformada conceitualmente similar de dados de vídeo residuais. Os dados residuais podem corresponder a diferenças de pixel entre pixels da imagem não codificada e valores de predição correspondentes às PUs. O codificador de vídeo 20 podem formar as TUs incluindo os dados residuais para a CU, e, então, transformar as TUs para produzir o coeficiente de transformada para a CU.
[0072] Após quaisquer transformações para produzir o coeficiente de transformada, o codificador de vídeo 20 pode realizar a quantização do coeficiente de transformada. A quantização geralmente se refere a um processo no qual os coeficientes de transformada são quantizados para reduzir possivelmente a quantidade de dados usados para representar os coeficientes, fornecendo compressão adicional. O processo de quantização pode reduzir a profundidade de bits associada a alguns ou todos os coeficientes. Por exemplo, um valor n-bit pode ser arredondado para baixo para um valor m-bit durante a quantização, em que n é maior que m.
[0073] Após a quantização, o codificador de vídeo pode varrer o coeficiente de transformada, produzindo um vetor monodimensional a partir da matriz bidimensional que inclui o coeficiente de transformada quantizado. A varredura pode ser atribuída para aplicar coeficientes de energia mais alta (e, portanto, frequência mais baixa) na frente da matriz e aplicar coeficientes de energia mais baixa (e, portanto, frequência mais alta) no verso da matriz. Em alguns exemplos, o codificador de vídeo 20 pode utilizar uma ordem de varredura predefinida para varrer o coeficiente de transformada quantizado para produzir o vetor serializado que pode ser codificado por entropia. Em outros exemplos, o codificador de vídeo 20 podem realizar uma varredura adaptativa. Após varrer o coeficiente de transformada quantizado para formar um vetor monodimensional, o codificador de vídeo 20 pode codificar por entropia o vetor monodimensional, por exemplo, de acordo com a codificação de comprimento variável adaptativa a contexto (CAVLC), codificação aritmética binária adaptativa a contexto (CABAC), codificação aritmética binária adaptativa a contexto com base em sintaxe (SBAC), codificação por Entropia de Particionamento de Intervalo de Probabilidade (PIPE) ou outra metodologia de codificação de entropia. O codificador de vídeo 20 também pode codificar por entropia elementos de sintaxe associados aos dados de vídeo codificados para uso pelo decodificador de vídeo 30 na decodificação dos dados de vídeo.
[0074] Para realizar a CABAC, o codificador de vídeo 20 pode atribuir um contexto dentro de um modelo de contexto a um símbolo a ser transmitido. O contexto pode se relacionar a, por exemplo, se valores vizinhos do símbolo são diferentes de zero ou não. para realizar a CAVLC, o codificador de vídeo 20 pode selecionar um código de comprimento variável para um símbolo a ser transmitido. As palavras-código em VLC podem ser construídas de modo que códigos relativamente mais curtos corresponda a mais símbolos prováveis, enquanto códigos mais longos correspondem a símbolos menos prováveis. Desse modo, o uso de VLC pode conseguir uma economia de bits sobre, por exemplo, o uso de palavras-código de comprimento igual para cada símbolo a ser transmitido. A determinação de probabilidade pode ter base em um contexto atribuído ao símbolo.
[0075] De acordo com as técnicas dessa revelação, um codificador de vídeo, tal como codificador de vídeo 20 ou decodificador de vídeo 30, pode ser configurado para realizar compensação de iluminação aprimorada. Em um exemplo, quando tanto a ARP quanto a compensação de iluminação forem permitidas para uma fatia e uma unidade de codificação atual (CU) for intercodificado, a sinalização de ic_flag pode ser dependente do valor de um fator de ponderação sinalizado para ARP. Quando ic_flag não for sinalizado, o codificador de vídeo sempre pode assumir que a compensação de iluminação é desabilitada para a CU atual. Quando nenhum ic_flag for sinalizado para qualquer CU de uma fatia, o codificador de vídeo pode desabilitar a compensação de iluminação para a fatia atual e, portanto, o slice_ic_enable_flag não precisa ser sinalizado se o fato acima for determinado através da verificação dos elementos de sintaxe na fatia ou maiores níveis, tal como se a imagem atual for uma intraimagem de acesso aleatório (IRAP).
[0076] Em um exemplo, um codificador de vídeo, tal como o codificador de vídeo 20 ou o decodificador de vídeo 30, geralmente determina um valor para um fator de ponderação de predição residual avançada (ARP) de um bloco atual, tal como uma CU atual. O codificador de vídeo 20, por exemplo, pode determinar se ARP deve ser usada para codificar pelo menos uma porção (por exemplo, uma PU) da CU. Por exemplo, o codificador de vídeo 20 pode realizar análise de distorção-taxa para determinar se a ARP gerar as bases métricas de taxa de distorção ao codificar uma porção da CU e, sendo assim, pode codificar a porção da CU com uso de ARP. A codificação da porção da CU com uso de ARP pode incluir assinar um valor diferente de zero para um fator de ponderação de ARP, por exemplo, 0,5 ou 1,0. Como um outro exemplo, o decodificador de vídeo 30 pode determinar um valor sinalizado para o fator de ponderação de ARP da CU atual e determinar se um elemento de sintaxe de compensação de iluminação estará presente no fluxo de bits (isto é, se uma sintaxe de compensação de iluminação será recebida) com base no valor do fator de ponderação de ARP.
[0077] O codificador de vídeo pode codificar um elemento de sintaxe de compensação de iluminação (por exemplo, ic_flag) para a CU atual e codificar a CU atual com base pelo menos em parte no valor do elemento de sintaxe de compensação de iluminação quando o valor do fator de ponderação de ARP for igual a zero (ou, mais geralmente, se ARP for usada para predizer a CU atual). Conforme explicado no presente documento, a compensação de iluminação e ARP não são tipicamente realizadas em conjunto. Isto é, se um codificador de vídeo codificar um bloco com uso de ARP, o codificador de vídeo não usará também provavelmente a compensação de iluminação para codificar o bloco e, de modo similar, se o codificador de vídeo codificar o bloco com uso de compensação de iluminação, o codificador de vídeo não usará também provavelmente a ARP para codificar o bloco. Portanto, se ARP não for usada para codificar o bloco (por exemplo, conforme evidenciado por um valor de zero para o fator de ponderação de ARP), o codificador de vídeo pode codificar (por exemplo, sinalizar ou decodificar) um elemento de sintaxe de compensação de iluminação, tal como ic_flag, que indica se a compensação de iluminação é usada. De modo similar, se ARP for usada (por exemplo, conforme evidenciado por um valor diferente de zero para um fator de ponderação de ARP), o codificador de vídeo pode omitir (isto é, não realizar ou se abster de) a codificação do elemento de sintaxe de compensação de iluminação.
[0078] Por exemplo, quando ARP não for usada (por exemplo, quando o fator de ponderação de ARP tiver um valor de zero), o codificador de vídeo 20 pode codificar um valor para o elemento de sintaxe de compensação de iluminação. Se o codificador de vídeo 20 determinar o uso da compensação de iluminação para codificar o bloco (por exemplo, com base nas métricas de taxa de distorção conforme explicado acima), o codificador de vídeo 20 pode sinalizar um valor para o elemento de sintaxe de compensação de iluminação que indica que a compensação de iluminação é usada e, ademais, o codificador de vídeo 20 pode codificar o bloco com uso da compensação de iluminação. De modo similar, o decodificador de vídeo 30 pode determinar que o elemento de sintaxe de compensação de iluminação estará presente no fluxo de bits quando o fator de ponderação de ARP tiver um valor de zero.
[0079] Por outro lado, se o valor do fator de ponderação de ARP não for igual a zero, o codificador de vídeo pode pular a codificação do elemento de sintaxe de compensação de iluminação para o bloco atual e codificar o bloco atual, por exemplo, com uso de ARP. O codificador de vídeo 20 pode pular a codificação do elemento de sintaxe de compensação de iluminação através, por exemplo, da não inserção do elemento de sintaxe de compensação de iluminação no fluxo de bits. O decodificador de vídeo 30, de modo similar, pode determinar que o elemento de sintaxe de compensação de iluminação não estará presente no fluxo de bits para um bloco quando o fator de ponderação de ARP para o bloco tiver um valor diferente de zero (por exemplo, um valor de 0,5 ou 1,0).
[0080] Em um exemplo, o codificador de vídeo não sinaliza/codifica o ic_flag quando o fator de ponderação de ARP de CU atual não for igual a 0. Em um exemplo, o ic_flag é sinalizado se e somente se as condições a seguir forem verdadeiras: a. O fator de ponderação sinalizado para ARP da CU atual é igual a 0; e b. Pelo menos um dos seguintes é verdadeiro (equivalente ao icEnableFlag é igual a 1 no 3D-HEVC atual): i. A PU atual (codificada com 2Nx2N) é codificada com modo de mescla e (slice_ic_disable_merge_zero_idx_flag é igual a 0 ou o índice de mescla não é igual a 0); ou ii. A PU atual (codificada com 2Nx2N) é codificada com modo de AMVP, cada um dos índices de referência que correspondem à RefPicList0 e RefPicListl corresponde a uma imagem de referência de intervista. c. Alternativa ou adicionalmente, a imagem atual é uma imagem de IRAP.
[0081] Em um exemplo, o codificador de vídeo sinaliza/decodifica o ic_flag com base no fator de ponderação de ARP e Se a imagem atual for uma imagem de IRAP, mas não e se a CU atual for codificada com a mescla ou AMVP e não no índice de mescla. Vários exemplos incluem: a. Se e somente se o fator de ponderação de ARP da unidade de codificação atual (CU) for igual a 0 e a imagem atual for uma imagem de IRAP, ic_flag é sinalizado pelo codificador ou decodificado pelo decodificador. b. Alternativamente, se e somente se o fator de ponderação de ARP da unidade de codificação atual (CU) for igual a 0 e a imagem atual tiver slice_ic_disable_merge_zero_idx_flag igual a 1, ic_flag é sinalizado pelo codificador e decodificado pelo decodificador. c. Alternativamente, se e somente se o fator de ponderação de ARP da unidade de codificação atual (CU) for igual a 0 e a CU atual é codificada com modo por salto, o elemento de sintaxe de compensação de iluminação é sinalizado pelo codificador e decodificado pelo decodificador. d. Alternativamente, se e somente se o fator de ponderação de ARP da unidade de codificação atual (CU) for igual a 0 e a CU atual tem apenas uma partição (isto é, modo de partição igual a PART_2Nx2N), o elemento de sintaxe de compensação de iluminação é sinalizado pelo codificador e decodificado pelo decodificador.
[0082] Em um exemplo, o codificador de vídeo sinaliza/decodifica ic_flag se e somente se o fator de ponderação de ARP de CU atual for igual a 0. Nesse caso, quando a imagem atual for uma imagem de IRAP e o fator de ponderação de ARP não é sinalizado, o fator de ponderação de ARP pode ser deduzido para ser 0 para a CU atual.
[0083] Alternativa ou adicionalmente, o fator de ponderação de ARP pode ser sinalizado/decodificado até mesmo para uma imagem de IRAP. Portanto, quando esse fator de ponderação não for igual a 0, o mesmo indica que a desativação do modo de compensação de iluminação e nenhum ic_flag precisam ser sinalizados. Entretanto, nesse caso, até o fator de ponderação de ARP é diferente de zero, se o processo de decodificação não encontrar os vetores de movimento adequados, vetores de disparidade ou vetores de movimento de disparidade ou, não encontrar as imagens relevantes adequadas, a predição residual avançada pode ser desabilitada para a PU atual. Portanto, a PU pode ser decodificada da mesma maneira do caso em que o fator de ponderação de ARP é igual a 0. Portanto, no presente documento, o principal objetivo de sinalização do fator de ponderação de ARP pode ser desabilitar a sinalização do ic_flag.
[0084] Um sinalizador pode ser adicionado no conjunto de parâmetros de vídeo (VPS), conjunto de parâmetros de sequência (SPS) e/ou o conjunto de parâmetros de imagem (PPS) para indicar o uso de IC para cada camada ou para todas as camadas.
[0085] As técnicas dessa revelação são descritas em maiores detalhes abaixo em relação às Tabelas 1 a 4. As deleções comparadas ao projeto de trabalho de 3D- HEVC atual foram identificadas com uso de [removed: ""] e, as partes recém adicionadas são escritas em itálico. A Tabela 1 representa um exemplo de uma tabela de sintaxe modificada para uma unidade de codificação.Tabela 1
Figure img0001
Figure img0002
Figure img0003
[0086] A Tabela 2 representa um exemplo alternativo de uma tabela de sintaxe modificada para uma unidade de codificação Tabela 2
Figure img0004
[0087] Adicional ou alternativamente, a sintaxe de cabeçalho de fatia geral pode ser modificada conforme mostrado na Tabela 3 abaixo, em que a compensação de iluminação pode ser aplicada apenas para as imagens de IRAP: Tabela 3
Figure img0005
[0088] Nesse exemplo, a semântica a seguir da Tabela 3 podem ser alteradas, conforme mostrado:
[0089] [removido: slice_ic_disable_merge_zero_idx_flag igual a 1 especifica que ic_flag não está presente nas unidades de codificação da fatia atual quando merge_flag for igual a 1 e merge_idx da primeira unidade de predição da unidade de codificação for igual a 0. slice_ic_disable_merge_zero_idx_flag igual a 0 especifica que ic_flag deve estar presente nas unidades de codificação da fatia atual quando merge_flag for igual a 1 e merge_idx da primeira unidade de predição da unidade de codificação for igual a 0. Quando não estiver presente, slice_ic_disable_merge_zero_idx_flag é deduzido para ser igual a 0. [Ed. (GT): Substituir termo primeira unidade de predição]”]
[0090] Adicional ou alternativamente, às modificações mostradas na Tabela 3, a semântica e sintaxe de unidade de codificação podem ser modificadas conforme discutido em relação à Tabela 4, abaixo. Tabela 4
Figure img0006
Figure img0007
Figure img0008
[0091] A semântica de elementos de sintaxe da Tabela 4 pode ser modificada conforme discutido abaixo, em que “(H-#)” se refere a uma seção de 3D-HEVC: [removed: “O icEnableFlag variável é definido igual a 0 e quando slice_ic_enable_flag for igual a 1 e PartMode for igual a 2Nx2N e PredMode[x0][y0] não for igual a MODE_INTRA, é aplicável o seguinte: - Se merge_flag[x0][y0] for igual a 1, é aplicável o seguinte: - icEnableFlag = (merge_idx[x0][y0] ! = 0) | | ! slice_ic_disable_merge_zero_idx_flag (H-9) - De outro modo, (merge_flag[x0][y0] é igual a 0), é aplicável o seguinte: - Com X que é substituído por 0 e 1, o refViewIdxLX variável é definido igual ao índice de ordem de vista de RefPicListLX[ref_idx_1X[x0][y0]]. - O sinalizador icEnableFlag é derivado conforme especificado a seguir: icEnableFlag = (inter_pred_idc[x0][y0] ! = Pred_LO && refViewIdxLl [x0][y0] ! = Viewldx) | | (inter_pred_idc[x0][y0] ! = Pred_Ll && refViewIdxL0[x0][y0] ! = Viewldx) (H-10)”]
[0092] O codificador 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 codificador ou decodificador adequado, como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), matrizes de portal programáveis por campo (FPGAs), conjunto de circuitos de lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. Cada um dentre o codificador de vídeo 20 e o decodificador de vídeo 30 podem estar incluídos em um ou mais codificadores ou decodificadores, um dos quais pode ser integrado como parte de um codificador/decodificador de vídeo (CODEC) combinado. Um dispositivo que inclui o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode compreender um circuito integrado, um microprocessador e/ou um dispositivo de comunicação sem fio, como um telefone celular.
[0093] A Figura 2 é um diagrama de blocos que ilustra um exemplo de codificador de vídeo 20 que pode implantar as técnicas para sinalizar uma compensação de iluminação. O codificador de vídeo 20 pode realizar intra e intercodificação de blocos de vídeo dentro de fatias de vídeo. A intracodificação tem base na predição espacial para reduzir ou remover a redundância espacial no vídeo dentro de um quadro de vídeo ou imagem dados. A intercodificação tem base na predição temporal para reduzir ou remover a redundância temporal no vídeo dentro de quadros ou imagens adjacentes de uma sequência de vídeo. O intramodo (modo I) pode se referir a qualquer um dentre vários modos de codificação com base em espaço. Os intermodos, como predição monodirecional (modo P) ou bi-predição (modo B), podem se referir a qualquer um dentre vários modos de codificação com base em tempo.
[0094] Conforme mostrado na Figura 2, o codificador de vídeo 20 recebe um bloco de vídeo atual dentro de um quadro de vídeo a ser codificado. No exemplo da Figura 2, o codificador de vídeo 20 inclui a unidade de seleção de modo 40, a memória de imagem de referência 64, somador 50, a unidade de processamento de transformada 52, a unidade de quantização 54 e a unidade de codificação por entropia 56. A unidade de seleção de modo 40, por sua vez, inclui a unidade de compensação de modo 44, a unidade de estimativa de movimento 42, a unidade de intrapredição 46 e a unidade de partição 48. Para o bloco de vídeo reconstrução, o codificador de vídeo 20 também inclui a unidade de quantização inversa 58, a unidade de transformada inversa 60 e o somador 62. Um filtro de desbloqueio (não mostrado na Figura 2) também pode ser incluído para filtrar o os limites do bloco para remover artefatos de característica de bloqueio provenientes de vídeo reconstruído. Caso desejado, o filtro de desbloqueio pode filtrar tipicamente o resultado do somador 62. Filtros adicionais (em circuito ou pós-circuito) também podem ser usados adicionalmente ao filtro de desbloqueio. Tais filtros não são mostrados para propósitos de brevidade, mas caso desejado, podem filtrar o resultado do somador 50 (como um filtro em circuito).
[0095] Durante o processo de codificação, o codificador 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 modo 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 predição temporal. A unidade de intraprediçã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 predição espacial. O codificador 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.
[0096] Além do mais, 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 o particionamento 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.
[0097] 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 (por exemplo, avaliados com uso das métricas de distorção-taxa) 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 codificado 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 intramodo, informações de partição e outras tais informações de sintaxe, para a unidade de codificação por entropia 56.
[0098] A unidade de estimativa de movimento 42 e a unidade de compensação de modo 44 podem ser altamente integradas, mas são ilustradas separadamente para propósitos de conceito. 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 um PU de um bloco de vídeo dentro de um quadro ou imagem de vídeo atual em relação a um bloco de predição dentro de um quadro de referência (ou outra unidade codificada) em relação ao bloco atual que está codificado dentro do quadro atual (ou outra unidade codificada). Um bloco de predição é 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 codificador de vídeo pode calcular valores para posições de pixel sub-inteiro de imagens de referência armazenadas na memória de imagem de referência 64. Por exemplo, o codificador 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 fracionadas de pixel da imagem de referência. Portanto, a unidade de estimativa de movimento 42 pode realizar uma busca de movimento em relação a todas as posições de pixel e posições fracionadas de pixel e emitir um vetor de movimento com precisão fracionada de pixel.
[0099] 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 de predição de uma imagem de referência. A imagem de referência pode ser selecionada a partir de uma primeira lista de imagem de referência (Lista 0) ou uma segunda lista de imagem de referência (Lista 1), cada uma das quais identifica uma ou mais imagens de referência armazenadas na memória de imagem de referência 64. A unidade de estimativa de movimento 42 envia o vetor de movimento calculado para a unidade de codificação por entropia 56 e a unidade de compensação de modo 44.
[0100] A compensação de movimento, realizada pela unidade de compensação de modo 44, pode envolver obter ou gerar o bloco de predição 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 modo 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 modo 44 pode localizar o bloco de predição ao qual o vetor de movimento aponta em uma das listas de imagens de referência. O somador 50 forma um bloco de vídeo residual subtraindo-se valores de pixel do bloco de predição 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 a componentes de luma, e a unidade de compensação de modo 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 a 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.
[0101] A unidade de compensação de movimento 44 pode ser configurada para realizar a compensação de movimento com uso de várias técnicas. Por exemplo, a unidade de compensação de movimento 44 pode realizar a compensação de movimento temporal geral para um bloco atual, substancialmente conforme discutido acima. Adicionalmente, a unidade de compensação de movimento 44 pode ser configurada para realizar a predição residual avançada (ARP). Isto é, a unidade de compensação de movimento 44 pode usar tanto um primeiro preditor para um bloco atual, obtido com uso de um vetor de movimento temporal e, um segundo preditor para o bloco atual, obtido com uso tanto de um vetor de disparidade quanto do vetor de movimento temporal, para predizer o bloco atual. Além disso, a unidade de compensação de movimento 44 também pode ser configurada para realizar a compensação de iluminação. Conforme discutido em maiores detalhes abaixo, a compensação de iluminação envolve geralmente aplicar uma ou mais equações lineares para os valores de amostra (isto é, pixel) de um bloco preditivo com base nas pixels/amostras vizinhas ao bloco preditivo e/ou pixels/amostras vizinhas para o bloco atual.
[0102] A unidade de intrapredição 46 pode intrapredizer um bloco atual, como uma alternativa à interpredição realizada pela unidade de estimativa de movimento 42 e a unidade de compensação de modo 44, conforme descrito acima. Em particular, a unidade de intrapredição 46 pode determinar um modo de intrapredição para usar para codificar um bloco atual. Em alguns exemplos, a unidade de intrapredição 46 pode codificar um bloco atual com o uso de vários modos de intrapredição, por exemplo, durante passos de codificação separados, e a unidade de intrapredição 46 (ou unidade de seleção de modo 40, em alguns exemplos) pode selecionar um modo de intrapredição apropriado para usar a partir dos modos testados.
[0103] Por exemplo, a unidade de intrapredição 46 pode calcular os valores de distorção de taxa com o uso de uma análise de distorção de taxa para os vários modos de intrapredição testados, e selecionar o modo de intrapredição que tem as melhores características de distorção de taxa entre os modos testados. A análise de distorção de taxa determina geralmente uma quantidade de distorção (ou erro) entre um bloco codificado e um bloco original não codificado que foi codificado para produzir o bloco codificado, assim como uma taxa de bits (ou seja, vários bits) usados para produzir o bloco codificado. A unidade de intrapredição 46 pode calcular razões entre distorções e taxas para os vários blocos codificados para determinar qual modo de intrapredição exibe o melhor valor de distorção de taxa para o bloco.
[0104] Após selecionar um modo de intrapredição para um bloco, a unidade de intrapredição 46 pode fornecer informações que indicam o modo de intrapredição selecionado para o bloco em relação à unidade de codificação por entropia 56. A unidade de codificação por entropia 56 pode codificar as informações que indicam o modo de intrapredição selecionado. O codificador 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 intrapredição e uma pluralidade de tabelas de índices de modo de intrapredição modificados (também referidas como tabelas de mapeamento de palavras-código), as definições de codificação de contextos para vários blocos, e indicações de um modo de intrapredição mais provável, uma tabela de índices de modo de intrapredição e uma tabela de índices de modo de intrapredição modificados para usar para cada um dos contextos.
[0105] O codificador de vídeo 20 forma um bloco de vídeo residual subtraindo-se os dados de prediçã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. 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 sejam conceitualmente similares à DCT. As transformadas de wavelet, transformadas de números inteiros, transformadas de subfaixa ou outros tipos de transformadas também podem ser usadas.
[0106] Em qualquer 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, como um domínio de frequência. A unidade de processamento de transformada 52 pode enviar o coeficiente de transformada resultante para a unidade de quantização 54. A unidade de quantização 54 quantiza o coeficiente 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 processo de quantização também pode ser referido como um processo de “escalonamento” e, desse modo, os coeficientes quantizados por entropia também podem ser referidos como “coeficientes de transformada escalonados”. O grau de quantização (ou escalonamento) pode ser modificado ajustando-se um parâmetro de quantização. Em alguns exemplos, a unidade de codificação por entropia 56, então, pode realizar uma varredura da matriz, incluindo o coeficiente de transformada quantizado.
[0107] Após a quantização, a unidade de codificação por entropia 56 codifica por entropia o coeficiente de transformada quantizado e varrido. Por exemplo, uma unidade de codificação por entropia 56 pode realizar codificação de comprimento variável adaptativa a contexto (CAVLC), codificação aritmética binária adaptativa a contexto (CABAC), codificação aritmética binária adaptativa a contexto com base em sintaxe (SBAC), codificação por Entropia de Particionamento de Intervalo de Probabilidade (PIPE) ou outra metodologia de codificação de entropia. No caso de codificação de entropia com base em contexto, o contexto pode ter base em blocos vizinhos. Após a codificação de entropia pela unidade de codificação por entropia 56, o fluxo de bits codificado pode ser transmitido para outro dispositivo (por exemplo, o decodificador de vídeo 30) ou arquivado para transmissão ou recuperação posterior.
[0108] A unidade de quantização inversa 58 e a unidade de transformada inversa 60 aplicam quantização inversa e 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 de predição de um dos quadros de memória de imagem de referência 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 sub-inteiros para uso na estimativa de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição compensado de movimento produzido pela unidade de compensação de modo 44 para produzir um bloco de vídeo reconstruído para o armazenamento na memória de imagem de referência 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 modo 44 como um bloco de referência para intercodificar um bloco em um quadro de vídeo subsequente.
[0109] A unidade de seleção de modo 40 pode comparar os resultados de codificação entre os vários modos para um bloco para selecionar finalmente um modo de codificação para o bloco. Por exemplo, a unidade de seleção de modo 40 pode comparar as métricas de taxa de distorção para os modos que incluem compensação de movimento temporal, compensação de movimento de intervista, predição residual avançada e compensação de iluminação. A unidade de seleção de modo 40 pode selecionar o modo de codificação que gera as melhores métricas de taxa de distorção para o bloco atual.
[0110] Quando a unidade de seleção de modo 40 selecionar ARP como o modo de codificação para um bloco, a unidade de seleção de modo 40 pode determinar adicionalmente um fator de ponderação a ser aplicado durante a ARP. Novamente, a unidade de seleção de modo 40 pode comparar as métricas de taxa de distorção entre vários fatores de ponderação potenciais, por exemplo, 0,5 e 1,0 e, selecionar o fator de ponderação que gera as melhores métricas de taxa de distorção. A unidade de codificação por entropia 56 pode codificar um valor para um elemento de sintaxe de fator de ponderação representativo do fator de ponderação selecionado pela unidade de seleção de modo 40 para o bloco. Quando a unidade de seleção de modo 40 selecionar um modo diferente da ARP, a unidade de codificação por entropia 56 pode codificar um valor para o elemento de sintaxe de fator de ponderação que indica que o fator de ponderação de ARP tem um valor de 0.
[0111] De acordo com as técnicas dessa revelação, quando o fator de ponderação de ARP tiver um valor de 0, a unidade de codificação por entropia 56 pode codificar adicionalmente um valor para um elemento de sintaxe de compensação de iluminação (por exemplo, ic_flag) que indica se o bloco correspondente é codificado com uso da compensação de iluminação. Por exemplo, se a unidade de seleção de modo 40 determinar não codificar um bloco com uso de ARP, mas, em vez disso, usar a compensação de iluminação, a unidade de codificação por entropia 56 pode codificar um valor para um elemento de sintaxe de compensação de iluminação que indica que o bloco é codificado com uso da compensação de iluminação. De modo similar, se a unidade de seleção de modo 40 determinar não codificar um bloco com uso de ARP e não usar a compensação de iluminação, mas um diferente modo, a unidade de codificação por entropia 56 pode codificar um valor para um elemento de sintaxe de compensação de iluminação que indica que o bloco não é codificado com uso da compensação de iluminação. Um ou mais elementos de sintaxe separados podem, então, indicar o modo de codificação atual usado para codificar o bloco.
[0112] Além disso, quando o fator de ponderação de ARP tiver um valor diferente de zero, a unidade de codificação por entropia 56 pode pular a codificação do elemento de sintaxe de compensação de iluminação. Isto é, o codificador de vídeo 20 pode ser configurado para evitar a inserção de um valor para o elemento de sintaxe de compensação de iluminação em um fluxo de bits resultante que inclui os dados de vídeo codificados. Em alguns exemplos, o codificador de vídeo 20 também pode codificar um elemento de sintaxe de compensação de iluminação de nível de bloco permitida, por exemplo, icEnableFlag. O codificador de vídeo 20 pode ser adicionalmente configurado para codificar um valor para um elemento de sintaxe de compensação de iluminação de nível de bloco (o qual indica se a compensação de iluminação é atualmente usada para o bloco) somente quando o elemento de sintaxe de compensação de iluminação de nível de bloco permitida indicar que a compensação de iluminação é permitida para o bloco.
[0113] Adicional ou alternativamente, em alguns exemplos, o codificador de vídeo 20 pode codificar um elemento de sintaxe de compensação de iluminação de nível de fatia, por exemplo, slice_ic_enable_flag. O codificador de vídeo 20 pode ser adicionalmente configurado para codificar um valor para um elemento de sintaxe de compensação de iluminação de nível de bloco somente quando o elemento de sintaxe de compensação de iluminação de nível de fatia indicar que a compensação de iluminação é permitida para a fatia que inclui o bloco correspondente. Quando o codificador de vídeo 20 codificar os blocos de uma fatia total sem determinar o uso da compensação de iluminação para qualquer um dos blocos da fatia, o codificador de vídeo 20 pode ajustar o valor do elemento de sintaxe de compensação de iluminação de nível de fatia para indicar que a compensação de iluminação é desabilitada para a fatia.
[0114] ARP e compensação de iluminação são técnicas de interpredição. Portanto, em alguns exemplos, o codificador de vídeo 20 somente codifica os valores para o fator de ponderação de ARP e/ou elementos de sintaxe de compensação de iluminação quando o bloco correspondente é interpreditivo. Para os blocos intrapreditivos, o codificador de vídeo 20 pode pular a codificação do fator de ponderação de ARP e os elementos de sintaxe de compensação de iluminação.
[0115] Dessa maneira, o codificador de vídeo 20 da Figura 2 representa um exemplo de um codificador de vídeo configurado para determinar um valor para um fator de ponderação de predição residual avançada (ARP) de um bloco atual dos dados de vídeo e para pular a codificação de (isto é, criptografar) um elemento de sintaxe de compensação de iluminação para o bloco atual e para codificar o bloco atual quando o valor do fator de ponderação de ARP não for igual a zero. O exemplo de codificador de vídeo 20 da Figura 2 é adicionalmente configurado para codificar o elemento de sintaxe de compensação de iluminação para o bloco atual e codificar o bloco atual com base pelo menos em parte no valor do elemento de sintaxe de compensação de iluminação quando o valor do fator de ponderação de ARP for igual a zero. Amenos que indicado o contrário, “codificar” e “que codifica” conforme usado em relação ao codificador de vídeo 20 destinam-se a serem entendidos como “criptografar” e “que criptografa”. Entretanto, deve ser entendido que “codificar” e “que codifica” também podem se referir a “decodificar” e “que decodifica”, por exemplo, quando usados em relação ao decodificador de vídeo 30 das Figuras 1 a 3.
[0116] A Figura 3 é um diagrama de blocos que ilustra um exemplo de decodificador de vídeo 30 que pode implantar as técnicas para sinalizar uma compensação de iluminação. No exemplo da Figura 3, o decodificador de vídeo 30 inclui uma unidade de decodificação e entropia 70, uma unidade de compensação de modo 72, uma unidade de intrapredição 74, uma unidade de quantização inversa 76, uma unidade de transformada inversa 78, uma memória de imagem de referência 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 codificação descrito em relação ao codificador de vídeo 20 (Figura 2). A unidade de compensação de movimento 72 pode gerar dados de predição com base em vetores de movimento recebidos a partir da unidade de decodificação e entropia 70, enquanto a unidade de intrapredição 74 pode gerar dados de predição com base em indicadores de modo de intrapredição recebidos a partir da unidade de decodificação e entropia 70.
[0117] Durante o processo de decodificação, o decodificador de vídeo 30 recebe um fluxo de bits de vídeo codificado que representa blocos de vídeo de uma fatia de vídeo codificada e elementos de sintaxe associados provenientes do codificador de vídeo 20. A unidade de decodificação de 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 intrapredição e outros elementos de sintaxe. A unidade de decodificação de entropia 70 encaminha os vetores de movimento e outros elementos de sintaxe para a unidade de compensação de modo 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.
[0118] Quando a fatia de vídeo for codificada como uma fatia intracodificada (I), a unidade de intrapredição 74 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual com base em um modo de intrapredição sinalizado e dados provenientes de blocos decodificados anteriormente do quadro ou imagem atual. Quando o quadro de vídeo for codificado como uma fatia intercodificada (isto é, B, P ou GPB), a unidade de compensação de modo 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 e entropia 70. Os blocos preditivos podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagens de referência. O decodificador de vídeo 30 pode construir as listas de quadro de referência, a Lista 0 e a Lista 1, com o uso de técnicas de construção padrão com base em imagens de referência armazenadas na memória de imagem de referência 82.
[0119] A unidade de compensação de movimento 72 determina informações de prediçã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 predição para produzir os blocos preditivos para o bloco de vídeo atual em decodificação. Por exemplo, a unidade de compensação de modo 72 usa uma parte dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, intra ou interpredição) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de interpredição (por exemplo, fatia B, fatia P ou fatia GPB), informações construção para um ou mais dentre as listas de imagens de referência para a fatia, vetores de movimento para cada bloco codificado intervídeo da fatia, situações de interpredição para cada bloco de vídeo intercodificado da fatia e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[0120] A unidade de compensação de movimento 72 também pode realizar interpolação com base em filtros de interpolação. A unidade de compensação de movimento 72 por usar filtros de interpolação conforme usado pelo codificador de vídeo 20 durante a codificação dos blocos de vídeo para calcular valores interpolados para pixels sub-inteiros de blocos de referência. Nesse caso, a unidade de compensação de modo 72 pode determinar os filtros de interpolação usados pelo codificador de vídeo 20 a partir dos elementos de sintaxe recebidos e usar os filtros de interpolação para produzir blocos preditivos.
[0121] De acordo com as técnicas dessa revelação, a unidade de decodificação por entropia 70 pode decodificar por entropia um valor para um fator de ponderação de ARP de um bloco atual. Se o fator de ponderação de ARP tiver um valor diferente de zero, a unidade de decodificação por entropia 70 pode determinar que um elemento de sintaxe de compensação de iluminação (por exemplo, ic_flag) não estará incluído no fluxo de bits e, portanto, determinar que os bits subsequentes do fluxo de bits representam um elemento de sintaxe diferente de um elemento de sintaxe de compensação de iluminação. Por outro lado, se o fator de ponderação de ARP tem um valor de zero, a unidade de decodificação por entropia 70 pode determinar que um elemento de sintaxe de compensação de iluminação está presente no fluxo de bits e, ademais, pode decodificar um valor para o elemento de sintaxe de compensação de iluminação.
[0122] Quando o fator de ponderação de ARP tiver um valor diferente de zero (por exemplo, 0,5 ou 1,0), a unidade de compensação de movimento 72 pode usar ARP para decodificar um bloco correspondente. Por exemplo, conforme explicado em maiores detalhes abaixo, a unidade de compensação de movimento 72 pode determinar um primeiro preditor com uso de um vetor de movimento temporal, determinar um segundo preditor com uso de um vetor de disparidade e o vetor de movimento temporal, aplicar o fator de ponderação de ARP ao segundo preditor e, calcular o preditor para o bloco atual a partir do primeiro preditor e do segundo preditor ao qual o fator de ponderação de ARP tem sido aplicado.
[0123] Quando o fator de ponderação de ARP tiver um valor de zero, a unidade de decodificação por entropia 70 pode decodificar um valor para um elemento de sintaxe de compensação de iluminação para o bloco atual que indica se o bloco atual é codificado com uso da compensação de iluminação. Se o elemento de sintaxe de compensação de iluminação indicar que o bloco atual é codificado com uso da compensação de iluminação, a unidade de compensação de movimento 72 pode predizer o bloco atual com uso da compensação de iluminação. Por outro lado, se o elemento de sintaxe de compensação de iluminação indicar que o bloco atual não é codificado com uso da compensação de iluminação, a unidade de compensação de movimento 72 pode predizer o bloco atual com uso de um modo de predição diferente, por exemplo, predição temporal ou interpredição de vista.
[0124] Em alguns exemplos, o decodificador de vídeo 30 também pode decodificar um elemento de sintaxe de compensação de iluminação de nível de bloco permitida, por exemplo, icEnableFlag. O decodificador de vídeo 30 pode ser adicionalmente configurado para decodificar um valor para um elemento de sintaxe de compensação de iluminação de nível de bloco (o qual indica se a compensação de iluminação é atualmente usada para o bloco) somente quando o elemento de sintaxe de compensação de iluminação de nível de bloco permitida indicar que a compensação de iluminação é permitida para o bloco.
[0125] Adicional ou alternativamente, em alguns exemplos, o decodificador de vídeo 30 pode decodificar um elemento de sintaxe de compensação de iluminação de nível de fatia, por exemplo, slice_ic_enable_flag. O decodificador de vídeo 30 pode ser adicionalmente configurado para decodificar um valor para um elemento de sintaxe de compensação de iluminação de nível de bloco somente quando o elemento de sintaxe de compensação de iluminação de nível de fatia indicar que a compensação de iluminação é permitida para a fatia que inclui o bloco correspondente. Quando o decodificador de vídeo 30 do elemento de sintaxe de compensação de iluminação de nível de fatia indicar que a compensação de iluminação é desabilitada para a fatia, o decodificador de vídeo 30 pode determinar que os elementos de sintaxe de compensação de iluminação não estarão presentes no fluxo de bits para qualquer um dos blocos da fatia.
[0126] ARP e compensação de iluminação são técnicas de interpredição. Portanto, em alguns exemplos, o decodificador de vídeo 30 apenas decodifica os valores para o fator de ponderação de ARP e/ou os elementos de sintaxe de compensação de iluminação quando o bloco correspondente for interpreditivo. O decodificador de vídeo 30 pode determinar que o fator de ponderação de ARP e os elementos de sintaxe de compensação de iluminação não estão presentes para os blocos intrapreditivos.
[0127] Em geral, o decodificador de vídeo 30 reproduz os dados residuais para um bloco a ser combinado com os dados preditivos para o bloco a fim de decodificar o bloco. A unidade de quantização inversa 76 quantiza inversamente, por exemplo, desquantiza, o coeficiente de transformada quantizado fornecido no fluxo de bits e decodificado pela unidade de decodificação e 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 similar, um grau de quantização inversa que deve ser aplicado. A unidade de transformada inversa 78 aplica uma transformada inversa, por exemplo, uma DCT inversa, uma transformada de número inteiro inversa ou um processo de transformada inversa conceitualmente similar, ao coeficiente de transformada a fim de produzir blocos residuais no domínio de pixels.
[0128] Após a unidade de compensação de modo 72 gerar o bloco de predição 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 transformada inversa 78 com os blocos preditivos correspondentes gerados pela unidade de compensação de modo 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 em circuito (tanto no circuito de codificação quanto após o circuito de codificação) também podem ser usados para suavizar as transições de pixel, ou, de outro modo, melhorar a qualidade de vídeo. Os blocos de vídeo decodificados em um quadro ou imagem dados são, então, armazenados na memória de imagem de referência 82, que armazena imagens de referência usadas para a composição de movimento subsequente. A memória de imagem de referência 82 também armazena o vídeo decodificado para apresentação posterior em um dispositivo de exibição, como o dispositivo de exibição 32 da Figura 1.
[0129] Dessa maneira, o decodificador de vídeo 30 da Figura 3 representa um exemplo de um decodificador de vídeo configurado para determinar um valor para um fator de ponderação de predição residual avançada (ARP) de um bloco atual dos dados de vídeo e para pular a codificação de (isto é, decodificar) o elemento de sintaxe de compensação de iluminação para o bloco atual e para codificar o bloco atual quando o valor do fator de ponderação de ARP não for igual a zero. O exemplo de decodificador de vídeo 30 da Figura 3 é adicionalmente configurado para codificar o elemento de sintaxe de compensação de iluminação para o bloco atual e codificar o bloco atual com base pelo menos em parte no valor do elemento de sintaxe de compensação de iluminação quando o valor do fator de ponderação de ARP for igual a zero. O uso das palavras “codificar” e “que codifica” em relação ao decodificador de vídeo 30 destina-se no sentido da decodificação, a menos que indicado o contrário.
[0130] A Figura 4 é um diagrama conceitual que ilustra um padrão de predição de MVC exemplificativo. A codificação de vídeo de vista múltipla (MVC) é uma extensão de ITU-T H.264/AVC. Uma técnica similar pode ser aplicada a HEVC. No exemplo da Figura 4, oito vistas (que têm vistas IDs “S0” a “S7”) são ilustradas e doze localizações temporais (“T0” a “T11”) são ilustradas para cada vista. Isto é, cada fileira na Figura 4 corresponde a uma vista, enquanto que cada coluna indica uma localização temporal.
[0131] Uma estrutura de predição de MVC típico (que inclui tanto a predição de interimagem dentro de cada vista quanto a interpredição de vista) para codificação de vídeo de vista múltipla é mostrada na Figura 4, em que as previsões são indicadas por setas, o objeto para o qual se aponta com uso do objeto que aponta para referência de predição. Em MVC, a interpredição de vista é realizada entre as imagens capturadas nas diferentes vistas da mesma unidade de acesso (isto é, com o mesmo momento de tempo) para remover a correlação entre as vistas. Uma imagem codificada com interpredição de vista pode ser adicionada em uma lista de imagem de referência para a interpredição de vista das outras vistas não de base.
[0132] Embora MVC tenha uma denominada vista de base que é desacoplável pelos decodificadores H.264/AVC e par de vista estéreo seria suportado também por MVC, uma vantagem de MVC é de que poderia suportar um exemplo que usa mais que duas vistas como uma entrada de vídeo em 3D e decodificar esse vídeo em 3D representado pelas vistas múltiplas. Um renderizador de um cliente que tem um decodificador de MVC pode esperar o conteúdo de vídeo em 3D com múltiplas vistas.
[0133] Uma disposição de ordem de decodificação de MVC típica é referida como a codificação inicial. Uma unidade de acesso pode incluir imagens codificadas de todas as vistas para uma instância de tempo de emissão. Por exemplo, cada uma das imagens de tempo T0 pode estar incluída em uma unidade de acesso comum, cada uma das imagens de tempo Tl pode estar incluída em uma segunda unidade de acesso comum, e assim por diante. A ordem de decodificação não é necessariamente idêntica à ordem de exibição ou de saída.
[0134] Os quadros na Figura 4 são indicados na intersecção de cada fileira e cada coluna na Figura 4 com uso de um bloco sombreado que inclui uma letra, que determina se o quadro correspondente é intracodificado (ou seja, um quadro I) ou intercodificado em uma direção (ou seja, como um quadro P) ou em múltiplas direções (ou seja, como um quadro B). Os quadros designados como quadros b (ou seja, com um “b” maiúsculo) também podem ser intercodificados em múltiplas direções e, geralmente, se referem aos quadros que são menores em uma hierarquia de codificação nas dimensões de vista ou temporais que quadros B (ou seja, com “B” capital). Em geral, as previsões são indicadas por setas, em que o quadro para o qual se aponta usa o objeto que aponta para referência de predição. Por exemplo, o quadro P da vista S2 na localização temporal T0 é preditivo a partir do quadro I da vista S0 na localização temporal T0.
[0135] Como com criptografia de vídeo de vista única, os quadros de uma sequência de vídeo de codificação de vídeo de vista múltipla podem ser criptografados de modo preditivo em relação aos quadros nas diferentes localizações temporais. Por exemplo, o quadro b da vista S0 na localização temporal Tl tem uma seta apontada para o mesmo a partir do quadro I da vista S0 na localização temporal T0, que indicam que o quadro b é interpreditivo a partir do quadro I. Adicionalmente, entretanto, no contexto de criptografia de vídeo de vista múltipla, os quadros podem ser preditivos de intervista. Isto é, um componente de vista pode usar os componentes de vista em outras vistas para referência. Em MVC, por exemplo, a interpredição de vista é realizada como se o componente de vista em uma outra vista fosse uma referência de interpredição. As referências de intervista potencial podem ser sinalizadas na extensão de MCV de conjunto de parâmetros de sequência (SPS) e podem ser modificadas pelo processo de construção de lista de imagem de referência, que permite a ordenação flexível das referências de predição de intervista ou interpredição.
[0136] Uma imagem de referência de interpredição de vista pode ser colocada em qualquer posição de uma lista de imagem de referência da mesma maneira de uma imagem de referência de interpredição. Em alguns exemplos, as imagens de referência de intervista são diferenciadas das imagens de referência temporal através da rotulagem das imagens de referência de intervista como imagens de referência a longo prazo e rotulagem das imagens de referência temporal como imagens de referência a curto prazo. No contexto de codificação de vídeo de vista múltipla, há dois tipos de vetores de movimento. Um é um vetor de movimento normal que aponta para uma imagem de referência temporal. O modo de interpredição temporal correspondente para vetores de movimento temporal é referido como predição de movimento compensado (MCP). O outro tipo de vetor de movimento é um vetor de movimento de disparidade (DMV) que aponta para uma imagem em uma vista diferente (isto é, uma imagem de referência de intervista). O modo de interpredição correspondente para DMVs é referido como predição de disparidade compensada (DCP).
[0137] A Figura 5 é um diagrama conceitual que ilustra uma relação entre uma unidade de predição atual (PU) 90 e suas PUs vizinhas espaciais. As PUs vizinhas espaciais são rotuladas A0, A1, B0, B1 e B2 no exemplo da Figura 5 e, podem ser usadas para determinar os vetores de movimento de candidato tanto para modo de mescla quanto para modo de AMVP. Deixar que certos símbolos sejam definidos conforme a seguir:
[0138] - Uma localização luma (xP, yP) é usada para especificar a amostra luma superior à esquerda da unidade de predição atual (PU) 90 em relação à amostra superior à esquerda da imagem atual;
[0139] - nPSW e nPSH variáveis denotam a largura e a altura da PU para luma;
[0140] - A amostra luma superior à esquerda da unidade de predição atual N em relação à amostra superior à esquerda da imagem atual é (xN, yN).
[0141] Dadas essas definições exemplificativas, (xN, yN) (com N que é substituído por A0, A1, B0, B1 ou B2, para a Figura 5) pode ser definido como (xP - 1, yP + nPSH), (xP - 1, yP + nPSH - 1), (xP + nPSW, yP - 1), (xP + nPSW - 1, yP - 1) ou (xP - 1, yP - 1), respectivamente. Em alguns exemplos, a compensação de iluminação pode ser usada quando as informações de movimento para uma PU forem preditivas com uso do modo de mescla. A Figura 5 ilustra os candidatos de vetor de movimento preditor que podem ser usados durante a codificação de modo de mescla de informações de movimento para uma PU.
[0142] A Figura 6 é um diagrama conceitual que ilustra uma estrutura de predição de quadro de vídeos na ordem de saída. Há quatro tipos de imagem que podem ser identificados por um tipo de unidade de camada de abstração de rede (NAL) em HEVC. Há a imagem de restauração instantânea de decodificação (IDR), a imagem de acesso aleatório limpo (CRA), a imagem de acesso de camada temporal (TLA) e uma imagem codificada que não é uma imagem de IDR, CRA ou TLA. Em alguns exemplos, a compensação de iluminação pode ser usada quando um bloco estiver incluído em uma imagem de IRAP, tal como uma imagem de IDR ou CRA.
[0143] A imagem de IDR e as imagens codificadas são tipos de imagem herdados a partir da especificação H.264/AVC. Os tipos de imagem de CRA e de TLA são novos em HEVC e não são disponíveis na especificação H.264/AVC. A imagem de CRA é um tipo de imagem que facilita o início da decodificação a partir de qualquer ponto de acesso aleatório no meio de uma sequência de vídeo, que é mais eficaz que as imagens de IDR de inserção. Em HEVC, um fluxo de bits que começa a partir dessas imagens de CRA também é um fluxo de bits de conformação. A imagem de TLA é um tipo de imagem que pode ser usado para indicar os pontos de comutação de camada temporal válida.
[0144] Em aplicações de vídeo, tais como difusão e transmissão contínua, um recurso importante para os usuários para comutar entre diferentes canais e para pular para partes específicas do vídeo com atraso mínimo é necessário. Esse recurso é permitido por ter imagens de acesso aleatório nos intervalos regulares nos fluxos de bits de vídeo. A imagem de IDR, especificada tanto em H.264/AVC quanto em HEVC, pode ser usada para acesso aleatório. Entretanto, visto que uma imagem de IDR inicia uma sequência de vídeo codificada e sempre limpa a memória temporária de imagem decodificada (DPB), as imagens que seguem a IDR na ordem de decodificação não podem usar imagens decodificado antes da imagem de IDR como referência. Consequentemente, os fluxos de bits que dependem das imagens de IDR para acesso aleatório podem ter eficiência de codificação significativamente inferior (por exemplo, 6%). Para aprimorar a eficiência de codificação, as imagens de CRA em HEVC permitem as imagens que seguem a imagem de CRA na ordem de decodificação, mas seguem para a imagem de CRA na ordem de saída para usar imagens decodificado antes da imagem de CRA como referência.
[0145] Um estrutura de predição típica em torno de uma imagem de CRA é mostrada na Figura 6: a imagem de CRA (com um valor de POC de 24) pertence a um grupo de imagens (GOP), que contém outras imagens (valores de POC 17 a 23), que seguem a imagem de CRA na ordem de decodificação, mas seguem para a imagem de CRA na ordem de saída. Essas imagens são chamadas de imagens de entrelinhamento da imagem de CRA e podem ser corretamente decodificadas se a decodificação começar a partir de um IDR ou imagem de CRA antes da imagem de CRA atual. Entretanto, as imagens de entrelinhamento não podem ser corretamente decodificadas quando o acesso aleatório a partir dessa imagem de CRA ocorrer; então, essas imagens de entrelinhamento são tipicamente descartadas durante a decodificação de acesso aleatório.
[0146] Para impedir a propagação de erro a partir de imagens de referência que não podem estar disponíveis dependendo de onde a decodificação se inicia, todas as imagens no GOP a seguir, conforme mostrado na Figura 6, que seguem a imagem de CRA tanto na ordem de decodificação quanto na ordem de saída, não deve ser qualquer imagem que segue a imagem de CRA na ordem de decodificação ou na ordem de saída (que inclui as imagens de entrelinhamento) como referência.
[0147] As funcionalidades de acesso aleatório similar são suportadas em H.264/AVC com a mensagem de SEI de ponto de recuperação. Uma implantação de decodificador de H.264/AVC pode ou não pode suportar a funcionalidade. Em HEVC, um fluxo de bits que começa com uma imagem de CRA é considerado como um fluxo de bits de conformação. Quando um fluxo de bits começa com uma imagem de CRA, as imagens de entrelinhamento da imagem de CRA podem se referir às imagens de referência indisponíveis e, então, não podem ser decodificadas corretamente. Entretanto, HEVC especifica que as imagens de entrelinhamento da imagem de CRA de partida não são emitidas, então, o nome “acesso aleatório limpo”. Para estabelecimento da exigência de conformação de fluxo de bits, HEVC especifica um processo de decodificação para gerar imagens de referência indisponíveis para decodificar as imagens de entrelinhamento não emitidas. Entretanto, as implantações de decodificador de conformação não têm que seguir aquele processo de decodificação, enquanto que a mesma pode gerar saída idêntica comparada a quando o processo de decodificação é realizado a partir do início do fluxo de bits. Em HEVC, um fluxo de bits de conformação pode conter absolutamente nenhuma imagem de IDRs e, consequentemente, pode conter um subconjunto de uma sequência de vídeo codificada ou uma sequência de vídeo codificada incompleta.
[0148] Além de IDR e das imagens de CRA, há outros tipos de imagens de ponto de acesso aleatório, por exemplo, acesso de enlace desfeito (BLA). Para cada um dos principais tipos das imagens de ponto de acesso aleatório, pode haver subtipos, que dependem de como uma imagem de ponto de acesso aleatório seria potencialmente tratada pelos sistemas. Cada subtipo de imagem de ponto de acesso aleatório tem um tipo de unidade de camada de abstração de rede diferente (NAL).
[0149] Uma imagem de IRAP (ponto de acesso aleatório intra) também definida em HEVC, isto é, uma imagem codificada para a qual cada unidade de VCL NAL tem nal_unit_type na faixa de BLA_W_LP a RSV_IRAP_VCL23, inclusive. Uma imagem de IRAP contém somente fatias I e, pode ser uma imagem de BLA, uma imagem de CRA ou uma imagem de IDR. A primeira imagem no fluxo de bits na ordem de decodificação deve ser uma imagem de IRAP. Visto que os conjuntos de parâmetros necessários são disponíveis quando os mesmos precisam ser ativados, a imagem de IRAP e todas as imagens de não RASL subsequentes na ordem de decodificação podem ser corretamente decodificadas sem realizar o processo de decodificação de quaisquer imagens que seguem para a imagem de IRAP na ordem de decodificação. Pode haver imagens em um fluxo de bits que contém apenas fatias I que não são imagens de IRAP.
[0150] A Figura 7 é um diagrama conceitual de um cabeçalho de unidade de NAL 100 de acordo com HEVC. Em HEVC, um cabeçalho de unidade de NAL de dois bytes foi introduzido com a antecipação de que esse projeto é suficiente para suportar o HEVC escalonável e extensões de codificação de vídeo em 3D (3DV), bem como outras extensões futuras, conforme amplamente descrito abaixo.
[0151] Conforme mostrado na Figura 7, o primeiro byte do cabeçalho de unidade de HEVC NAL é similar ao cabeçalho de unidade de H.264/AVC NAL. Em particular, cabeçalho de unidade de NAL 100 inclui F-bit 102, campo de tipo de unidade de NAL 104, bits reservados 106 e identificador temporal mais um campo (TIDP) 108.
[0152] O bit de forbidden_zero (F) 102 deve ter um valor de zero, para impedir o início das emulações de código em ambientes de legado de sistemas MPEG-2.
[0153] Em H.264/AVC, o nal_ref_idc (NRI) foi uma palavra de código fixo de dois bits. A motivação principal para dois bits foi o suporte da diferente sinalização de prioridade de transporte para suportar a partição de dados. A remoção da partição de dados permitiu que NRI seja reduzida por 1-bit para HEVC. Além disso, nal_unit_types pode ser usado para indicar se certas imagens de referência são permitidas para a unidade de NAL. Então, NRI é completamente removida a partir do cabeçalho de unidade de NAL em HEVC, que, por sua vez, permite que o tamanho de nal_unit_type (representado como campo de tipo de NAL 104 na Figura 7) aumente de cinca a seis bits, fornecendo o dobro de muitos tipos de unidade de NAL, comparado com H.264/AVC.
[0154] A segunda parte do cabeçalho de unidade de NAL HEVC inclui dois elementos de sintaxe: reserved_zero_6bits (representado por bits reservados 106 na Figura 7, que inclui 6 bits) temporal_id_plusl (campo de TIDP 108 na Figura 7, que inclui 3 bits). O campo de TIDP 108 pode ser usado para suportar a escalabilidade temporal (com o identificador temporal que varia de 0 a 6, inclusive).As unidades de NAL de camada de codificação de vídeo (VCL) podem ser decodificadas com sucesso sem acessar quaisquer unidades de NAL que têm valores Temporalld maiores.
[0155] Uma imagem atual, ao ser decodificado, tem um conjunto de imagens de referência que inclui todas as imagens que podem ser usadas pela imagem atual ou pela imagem seguinte (futura) da imagem atual para referência. Um dispositivo de codificação de vídeo pode se distinguir entre as imagens que podem ser usadas como referência para a imagem atual e imagens que podem apenas ser usadas como imagens de referência para uma imagem futura. As listas de imagem de referência são construídas com base nas imagens no conjunto de imagens de referência que pode ser usado para a imagem atual (a saber “RPS para atual”) e, então, não para imagens que podem apenas ser usadas como referências para imagens futuras. Uma imagem em um RPS atual pode ou não pode estar em qualquer uma das duas listas de imagem de referência, RefPicList0 ou RefPicListl.
[0156] Atualmente, uma equipe de colaboração conjunta na codificação de vídeo em 3D (JCT-3C) de VCEG e MPEG está desenvolvendo um padrão de 3DV com base no HEVC, para que parte dos esforços de padronização inclua a padronização do codec de vídeo de múltipla vista com base em HEVC (MV-HEVC) e uma outra parte para codificação de vídeo em 3D com base no HEVC (3D-HEVC). Para 3D-HEVC, novas ferramentas de codificação, que incluem aquelas no nível de unidade de codificação/unidade de predição, tanto para vistas de profundidade quanto para vistas de textura podem ser incluídas e suportadas. A versão 7.0 do software 3D-HTM para 3D-HEVC pode ser transferido por download a partir do seguinte link: https://hevc.hhi.fraunhofer.de/svn/svn_3DVCSoftware/tags/HT M-7.0/. Esse software é descrito, junto com um projeto de trabalho de 3D-HEVC, em Gerhard Tech, Krzysztof Wegner, Ying Chen, Sehoon Yea, “3D-HEVC Test Model 4”, JCT3V-D1005, Joint Collaborative Team em Desenvolvimento de Extensão de codificação de vídeo em 3D de ITU-T SG16 WP3 e ISO/IEC JTC 1/SC 29/WG 11, 3a Conferência: Incheon, KR, abril de 2013, disponível junto a http://phenix.it- sudparis.eu/jct2/doc_end_user/documents/4_Incheon/wgl l/JCT3V-D1005-vl.zip.
[0157] A Figura 8 é um diagrama conceitual que ilustra amostras vizinhas que podem ser usadas para a derivação de parâmetros de compensação de iluminação. Em particular, a Figura 8 ilustra a unidade de codificação atual (CU) 120, que inclui a PU atual 122 e, CU de referência 126, que inclui a PU de referência 128. A Figura 8 também ilustra as amostras vizinhas (pixels) 124 para a CU atual 120, bem como as amostras vizinhas 130 para a CU de referência 126.
[0158] A compensação de iluminação (IC) na codificação de vídeo de vista múltipla pode ser usada para compensar a discrepância de iluminação entre as diferentes vistas, devido ao fato de que cada câmera pode ter exposição diferente para uma fonte de luz. Tipicamente, um fator de peso e/ou um deslocamento são usados para compensar as diferenças entre um bloco codificado e um bloco de predição em uma vista diferente. Os parâmetros podem ou não podem ser explicitamente transmitidos para um decodificador.
[0159] A compensação de iluminação é descrita em Liu et al., “3D-CE2.h: Results of Illumination Compensation for Inter-View Prediction”, Joint Collaborative Team no Desenvolvimento de extensão de codificação de vídeo em 3D de ITU-T SG 16, WP3 e ISO/IEC JTC 1/SC 29/WG 11, JCT3V- B0045, Shanghai, CN, 13 a 19 de outubro 2012, disponível junto a http://phenix.it- sudparis.eu/jct2/doc_end_user/current_document.php?id=234. No documento JCT3V-B0045, a compensação de iluminação é sinalizada no nível de unidade de codificação e os parâmetros são derivados das amostras vizinhas 124 para a CU atual 120 e amostras vizinhas 130 para a CU de referência 126. Posteriormente, a sinalização do modo foi alterada, conforme descrito em Ikai, “3D-CE5.h related: Removal of parsing dependency in illumination compensation”, Joint Collaborative Team no Desenvolvimento de Extensão de codificação de vídeo em 3D de ITU-T SG 16, WP3 e ISO/IEC JTC 1/SC 29/WG 11, JCT3V- D0060, Incheon, KR, 20 a 26 de abril de 2013, disponível junto a http://phenix.it- sudparis.eu/jct2/doc_end_user/current_document.php?id=744.
[0160] Portanto, a compensação de iluminação foi introduzida para aprimorar a eficiência de codificação para blocos preditivos a partir de imagens de referência de intervista. Esse modo pode apenas se aplicar aos blocos que são preditivos com uso de uma imagem de referência de intervista.
[0161] As amostras vizinhas 124 incluem amostras (pixels) na fileira vizinha de topo e coluna vizinha à esquerda para a CU 120. As amostras vizinhas 124, juntamente com as amostras vizinhas correspondentes 130 para a CU de referência 126, podem ser usadas como parâmetros de entrada para um modelo linear, que pode derivar um fator de escalonamento a e um deslocamento b por uma solução quadrada mínima. As amostras vizinhas correspondentes 130 na vista de referência podem ser identificadas por um vetor de movimento de disparidade da PU atual, conforme mostrado na Figura 8. Em particular, a Figura 8 ilustra uma imagem atual 132 em uma vista não de base que inclui PU 122 e imagem de vista de base 134 que inclui PU de referência 128 (rotulada "PUref") dentro da imagem de vista de base 134 da Figura 8).
[0162] Após a compensação de movimento a partir de uma referência de intervista, a codificador de vídeo (por exemplo, codificador de vídeo 20 ou decodificador de vídeo 30) pode aplicar o modelo linear a cada valor de bloco de referência 128 para atualizar o sinal de predição para a PU atual 122. Cada valor do bloco de referência pode ser adicionalmente escalonado por a e adicionalmente adicionado a b, conforme mostrado na Figura 8. Isto é, cada valor de amostra (valor de pixel) de PU de referência 128 pode ser modificado de acordo com a fórmula “a*(valor de amostra de PU de referência 128) + b.” AMVP e modos de mescla na compensação de iluminação podem ser permitidos de modo adaptativo ou desabilitados em um nível de fatia de modo a reduzir bits extra e computações desnecessárias.
[0163] A permissão da compensação de iluminação (IC) pode ser sinalizada em um cabeçalho de fatia por um sinalizador, por exemplo, slice_ic_enable_flag. Similar a outros sinalizadores, se o slice_ic_enable_flag for igual a 0, o modo de IC é desabilitado para todas as CUs da fatia; de outro modo, uma CU pode ou não pode usar esse modo, dependendo do sinalizador (ic_flag) sinalizado no nível de CU.
[0164] Em um modelo, proposto no documento JCT3V-B0045 conforme citado acima, o ic_flag é somente sinalizado quando uma CU tiver pelo menos uma PU que é preditiva a partir de uma imagem de referência de intervista a partir de RefPicList0 ou RefPicListl. Entretanto, a condição exige derivação de todos os índices de referência das PUs em uma CU. Isso exige a análise de todos os elementos de sintaxe de PU e conclusão da construção de lista de candidato de mescla para cada PU codificada com o modo de mescla. Em geral, um atraso de análise, especialmente com base em um processo de decodificação (por exemplo, na construção de lista de candidato de mescla), não é desejável em um codec de vídeo.
[0165] Portanto, a sinalização de modo de IC foi modificada, conforme proposto no documento JCT3V-D0060, citado acima. As modificações do documento JCT3V-D0060 incluem duas partes: a desativação do modo de IC para as CUs codificadas com um tamanho de partição diferente de 2Nx2N e um sinalizador slice_ic_disable_merge_zero_idx_flag adicional no cabeçalho de fatia, que controla se o sinalizador que indica o modo de IC é sinalizado ou não em casos especiais concernentes ao modo de mescla. Para o documento JCT3V-D0060, o ic_flag sempre é sinalizado após o merge_flag (que indica que a PU interpreditiva atual é codificada com a mescla ou AMVP).
[0166] De modo similar, para o documento JCT3V- D0060, quando a PU atual (codificada com 2Nx2N) for codificada com o modo de mescla, o ic_flag é apenas sinalizado quando slice_ic_disable_merge_zero_idx_flag for igual a 0 ou o índice de mescla não for igual a 0. Além disso, para JCT3V-D0060, quando a PU atual (codificada com 2Nx2N) for codificada com o modo de AMVP, os índices de referência que correspondem a RefPicList0 e RefPicListl são conhecidos. Para JCT3V-D0060, apenas quando qualquer um dos mesmos corresponder a uma imagem de referência de intervista, o ic_flag é sinalizado.
[0167] Nota-se que ic_flag pode ser simplesmente substituído através da verificação de se a imagem atual é uma imagem de acesso aleatório ou não, como para as técnicas descritas no Pedido Provisório no U.S.61/842.834, depositado no dia 3 de julho de 2013.
[0168] A Figura 9 é um diagrama conceitual que ilustra técnicas para predição residual avançada (ARP). A predição residual avançada (ARP) que pode ser aplicada às CUs com modo de partição igual a Part_2Nx2N foi adotada em 4a conferência de JCT3V, conforme proposto em Zhang et al, “CE4: Advanced residual prediction for multiview coding”, JCT3V-D0177, 20 a 26 abril de 2013, disponível em http://phenix.it- sudparis.eu/jct3v/doc_end_user/current_document.php?id=862t
[0169] A Figura 9 ilustra a estrutura de predição de ARP na codificação de vídeo de vista múltipla. Conforme mostrado na Figura 9, os blocos a seguir são invocados na predição do bloco atual: 1. Um bloco atual 152 de uma imagem atual 150 2. Um bloco de referência 160 na imagem de vista de base/referência 158 derivada pelo vetor de disparidade (DV) 168 3. Um bloco 156 de imagem 154 na mesma vista como o bloco atual 152 derivado pelo vetor de movimento temporal 166 (denotado como TMV) do bloco atual. 4. Um bloco 164 de imagem 162 na mesma vista como o bloco de referência 160, derivado através da aplicação do vetor de movimento temporal 166 de bloco atual 152 para o bloco de referência 160. O bloco 164 é identificado por um vetor 170 que resulta a partir da combinação do vetor de movimento temporal 166 com o vetor de disparidade 168, em relação ao bloco atual 152.
[0170] O preditor residual é denotado como: BaseTRef-Base (ou seja, bloco 164 menos bloco 160), sendo que a operação de subtração se aplica a cada pixel das matrizes de pixel denotadas. Um fator de ponderação w é adicionalmente multiplicado pelo preditor residual. Portanto, o preditor final do bloco atual é denotado como: CurrTRef+ w*(BaseTRef-Base), isto é, bloco 156 + w * (bloco 164 - bloco 160). O fator de ponderação, w, pode ter um valor de, por exemplo, 0,5 ou 1,0.
[0171] Deve ser entendido que os vetores de movimento temporal 166 e 166’ são iguais em valor, mas são aplicados a diferentes blocos. Nesse exemplo, o vetor de movimento temporal 166 é aplicado ao bloco 152 para identificar o bloco de referência 156, enquanto o vetor de movimento temporal 166’ pode ser aplicado ao bloco 160 para identificar o bloco 164. De modo similar, o vetor de disparidades 168 e 168’ são iguais em valor, mas são aplicados a diferentes blocos. Nesse exemplo, o vetor de disparidade 168 pode ser aplicado ao bloco 152 para identificar o bloco 160, enquanto o vetor de disparidade 168’ pode ser aplicado ao bloco 156 para identificar o bloco 164.
[0172] A Figura 10 é um diagrama conceitual que ilustra uma relação entre um bloco atual, blocos de referência e blocos compensados de movimento no caso de predição bidirecional. A descrição acima da Figura 9 tem base na pressuposição de que a predição unidirecional é aplicada. Quando estendida para o caso de predição bidirecional, conforme mostrado na Figura 10, as etapas acima descritas em relação à Figura 9 podem ser aplicadas para cada lista de imagem de referência. Quando o bloco atual usar uma imagem de referência de intervista (em uma diferente vista) para uma lista de imagem de referência, o processo de predição residual pode ser desabilitado
[0173] Os procedimentos principais da ARP proposta no lado de decodificador podem ser descritos conforme a seguir: 1. Obter um vetor de disparidade conforme especificado no 3D-HEVC atual, apontando uma vista de referência alvo. Desse modo, na imagem da vista de referência dentro da mesma unidade de acesso, o bloco correspondente está localizado pelo vetor de disparidade. 2. Utilizar novamente as informações de movimento do bloco atual para derivar as informações de movimento para o bloco de referência. Aplicar a compensação de movimento para o bloco correspondente com base no mesmo vetor de movimento de bloco atual e imagem de referência derivada na vista de referência para o bloco de referência, para derivar um bloco de resíduo. A relação entre o bloco atual, o bloco correspondente e o bloco compensado de movimento é mostrada na Figura 4. A imagem de referência na vista de referência (V0) a qual tem o mesmo valor de POC (contagem de ordem de imagem) como da imagem de referência da vista atual (Vm) é selecionada como a imagem de referência do bloco correspondente. 3. Aplicar o fator de ponderação ao bloco de resíduo para obter um bloco de resíduo ponderado e adicionar os valores do bloco de resíduo ponderado às amostras preditivas.
[0174] Em um exemplo, três fatores de ponderação são usados em ARP: 0, 0,5 e 1. Um codificador de vídeo, por exemplo, codificador de vídeo 20, pode selecionar o fator de ponderação que leva a um custo mínimo de taxa- distorção para a CU atual como o fator de ponderação final e o índice de fator de ponderação correspondente (por exemplo, 0, 1 e 2, que pode corresponder ao fator de ponderação 0, 1, e 0,5, respectivamente) pode ser transmitido no fluxo de bits no nível de CU. Todas as previsões de PU em uma CU podem compartilhar o mesmo fator de ponderação. Quando o fator de ponderação for igual a 0, ARP não é usada para a CU atual.
[0175] Em Zhang et al, “3D-CE4: Advanced residual prediction for multiview coding”, JCT3V-C0049, Genebra, Suíça, 17 a 23 janeiro de 2013, disponível junto a http://phenix.int- evry.fr/jct3v/doc_end_user/current_document.php?id=487, as imagens de referência de unidades de predição codificadas com fatores de ponderação diferentes de zero podem ser diferentes de bloco a bloco. Portanto, as diferentes imagens da vista de referência podem precisar ser acessadas para gerar o bloco de movimento compensado (bloco 164 na Figura 9) do bloco correspondente. O documento JCT3V-C0049 proposto para escalonar os vetores de movimento decodificado da PU atual em direção a uma imagem fixa antes de realizar a compensação de movimento para o processo de geração residual, quando o fator de ponderação não for igual a 0.
[0176] No documento JCT3V-D0177, a imagem fixa é definida como a primeira imagem de referência de cada lista de imagem de referência se a mesma for a partir da mesma vista. Quando o vetor de movimento decodificado não apontar para a imagem fixa, o vetor de movimento é primeiro escalonado e, então, usado para identificar CurrTRef e BaseTRef. Tal imagem de referência usada para ARP é referida como a imagem de referência de ARP alvo.
[0177] No documento JCT3V-C0049, um filtro bilinear é aplicado durante o processo de interpolação do bloco correspondente e seu bloco de predição. Para o bloco de predição da PU atual nas vistas de não base, aplica-se um filtro de derivação de 8/4 convencional. O documento JCT3V- D0177 proposto para empregar sempre o filtro bilinear, independentemente de se o bloco estiver em uma vista de base ou uma vista de não base, quando ARP for aplicada.
[0178] A vista de referência é identificada pelo índice de ordem de vista retornado a partir do processo de NBDV. No modelo de ARP na 3D-HTM de versão 7.0, quando a imagem de referência de uma PU em uma lista de imagem de referência for de uma diferente vista da vista atual, ARP é desabilitada para essa lista de imagem de referência.
[0179] A Figura 11 é um diagrama conceitual que ilustra aprimoramentos adicionais de ARP. ARP, conforme descrito no documento JCT3V-D0177, seria apenas aplicada à predição temporal, isto é, o vetor de movimento atual de um bloco atual se refere a uma imagem de referência na mesma vista. Nos Pedidos Provisórios no U.S. 61/838.208, depositado no dia 21 de junho de 2013, e 61/846.036, depositado no sia 14 de julho de 2013, as soluções para aplicar ARP para interpredição de vista (isto é, o vetor de movimento atual de um bloco atual se refere a uma imagem de referência em uma vista diferente) foram descritas. Para essas duas aplicações provisórias:
[0180] Propõe-se em ARP, o residual de intervista calculado em uma unidade de acesso diferente pode ser usado para predizer o residual do bloco atual, conforme mostrado na Figura 11. Quando o vetor de movimento do bloco atual (Curr) for um vetor de movimento de disparidade (DMV) e o bloco de referência na vista de referência (Base) (identificado pelo DMV) conter pelo menos um vetor de movimento temporal, um vetor de movimento temporal do bloco de referência na vista de referência (Base) juntamente com o DMV é usado para identificar um bloco de referência temporal na vista de referência (BaseTRef) e o vetor de movimento temporal é usado para identificar um bloco de referência temporal na vista atual (CurrTRef). Portanto, o preditor residual de intervista em uma unidade de acesso diferente pode ser calculado como a diferença entre esses dois blocos posteriores: CurrTRef-BaseTRef. O sinal de diferença, denotado como o preditor residual de intervista, pode ser usado para predizer o residual do bloco atual. O sinal de predição do bloco atual é a soma do preditor de intervista (Base) e o residual de intervista preditiva em uma unidade de acesso diferente, com um fator de ponderação w: Base + w* (CurrTRef- BaseTRef).
[0181] Mais particularmente, a Figura 11 ilustra a imagem atual 180 que inclui o bloco atual 182, a imagem 184 que inclui o bloco 186, a imagem 188 em uma diferente vista que inclui o bloco 190 e a imagem 192 que inclui o bloco 194. No exemplo da Figura 11, o bloco 190 pode ser usado como um bloco de referência para o bloco atual 182, conforme indicado pelo vetor de movimento de disparidade 198. O bloco 190 pode incluir adicionalmente os dados para o vetor de movimento temporal 196 que identifica o bloco 194 como um bloco de referência para o bloco 190. O vetor de movimento temporal 196 pode ser aplicado ao bloco atual 182 (vetor de movimento temporal 196’) para identificar o bloco 186. Um resíduo (diferença de pixel por pixel) entre o bloco 186 e o bloco 194, ao qual um fator de ponderação pode ser aplicado, pode ser usado como um preditor residual para o bloco atual 182. Em outras palavras, um preditor para o bloco atual 182 pode igualar o bloco 190 + w * (bloco 186 - bloco 194), em que o preditor e os blocos se referem às amostras de pixel do preditor e blocos.
[0182] A Tabela 5 abaixo descreve uma extensão de conjunto de parâmetros de vídeo, que incluem a compensação de iluminação e ARP relacionada aos elementos de sintaxe. A semântica para elementos de sintaxe relevante de cada uma das Tabelas 5 a 7 abaixo é fornecida abaixo na Tabela 7. Tabela 5
Figure img0009
[0183] A Tabela 6 abaixo descreve elementos de sintaxe de cabeçalho de fatia geral. Tabela 6
Figure img0010
[0184] A Tabela 7 abaixo descreve elementos de sintaxe de unidade de codificação geral. Tabela 7
Figure img0011
Figure img0012
Figure img0013
[0185] A semântica exemplificativa para certos elementos de sintaxe relevantes das Tabelas 5 a 7 é descrita abaixo. Deve ser entendido que essa semântica é exemplificativa e pode ser definida de uma maneira diferente em outros exemplos. Por exemplo, a semântica para valores de 0 a 1 pode ser trocada. De modo similar, os valores inferenciais podem ser modificados.
[0186] iv_res_pred_flag[layerld] indica se a interpredição residual de vista é usada no processo de decodificação da camada com nuh_layer_id igual a layerld. iv_res_pred_flag[layerld] igual a 0 especifica que a interpredição residual de vista não é usada para a camada com nuh_layer_id igual a layerld. iv_res_pred_flag[layerld] igual a 1 especifica que a interpredição residual de vista pode ser usada para a camada com nuh_layer_id igual a layerld. Quando não estiver presente, o valor de iv_res_pred_flag[layerld] deve ser deduzido para ser igual a 0.
[0187] iv_res_pred_weight_idx especifica o índice do fator de ponderação usado para predição residual. iv_res_pred_weight_idx igual a 0 especifica que a predição residual não é usada para a unidade de codificação atual. iv_res_pred_weight_idx não igual a 0 especifica que a predição residual é usada para a unidade de codificação atual. Quando não estiver presente, o valor de iv_res_pred_weight_idx é deduzido para ser igual a 0.
[0188] O icEnableFlag variável é definido igual a 0 e quando slice_ic_enable_flag for igual a 1 e PartMode for igual a 2Nx2N e PredMode[x0][y0] não for igual um MODE_INTRA, é aplicável o seguinte: • Se merge_flag[x0][y0] for igual a 1, é aplicável o seguinte: o icEnableFlag = (merge_idx[x0][y0] ! = 0) | | !slice_ic_disable_merge_zero_idx_flag (H-9) • De outro modo, (merge_flag[x0][y0] é igual a 0), é aplicável o seguinte: o Com X que é substituído por 0 e 1, o refViewIdxLX variável é definido igual ao índice de ordem de vista de RefPicListLX[ref_idx_1X[x0][y0]]. o O sinalizador icEnableFlag é derivado conforme especificado a seguir: • icEnableFlag = • (inter_pred_idc[x0][y0] ! = Pred_L0 && refViewIdxLl [x0][y0] ! = Viewldx) | | • (inter_pred_idc[x0][y0] ! = Pred_Ll && refViewIdxL0[x0] [y0] ! = Viewldx) (H-10)
[0189] ic_flag igual a 1 especifica que a compensação de iluminação é usada para a unidade de codificação atual, ic_flag igual a 0 especifica que a compensação de iluminação não é usada para a unidade de codificação atual. Quando não estiver presente, ic_flag é deduzido para ser igual a 0.
[0190] slice_ic_enable_flag igual a 1 especifica que a compensação de iluminação é permitida para a fatia atual, slice_ic_enable_flag igual a 0 especifica que a compensação de iluminação é desabilitada para a fatia atual. Quando não estiver presente, slice_ic_enable_flag é deduzido para ser igual a 0.
[0191] slice_ic_disable_merge_zero_idx_flag igual a 1 especifica que ic_flag não está presente nas unidades de codificação da fatia atual quando merge_flag for igual a 1 e merge_idx da primeira unidade de predição da unidade de codificação for igual a 0. slice_ic_disable_merge_zero_idx_flag igual a 0 especifica que ic_flag deve estar presente nas unidades de codificação da fatia atual quando merge_flag for igual a 1 e merge_idx da primeira unidade de predição da unidade de codificação for igual a 0. Quando não estiver presente, slice_ic_disable_merge_zero_idx_flag é deduzido para ser igual a 0.
[0192] A Figura 12 é uma fluxograma que ilustra um método exemplificativo para codificação de um bloco de acordo com as técnicas dessa revelação. O método da Figura 12 é descrito em relação ao codificador de vídeo 20 para propósitos explicativos, embora deva ser entendido que potros dispositivos podem ser configurados para realizar o método da Figura 12.
[0193] Inicialmente, nesse exemplo, o codificador de vídeo 20 recebe um bloco atual (250), por exemplo, uma unidade de predição atual (PU) de uma unidade de codificação atual (CU). A unidade de seleção de modo 40 do codificador de vídeo 20 pode, então, determinar um modo de predição para o bloco atual (252). Por exemplo, a unidade de seleção de modo 40 pode determinar métricas de taxa de distorção para vários modos de predição, tais como, interpredição temporal, interpredição de vista, predição residual avançada (ARP) e compensação de iluminação.
[0194] Se a unidade de seleção de modo 40 selecionar ARP como o modo de predição para o bloco atual (ramificação “SIM” de 254), o codificador de vídeo 20 pode sinalizar um fator de ponderação de ARP diferente de zero para o bloco atual (258). Por exemplo, a unidade de seleção de modo 40 pode determinar se para usar um fator de ponderação de ARP de 0,5 ou 1,0, o qual pode novamente ter base nas métricas de taxa de distorção. Notavelmente, nesse caso, o codificador de vídeo 20 não precisa sinalizar um elemento de sintaxe de compensação de iluminação (por exemplo, ic_flag), devido ao fato de que o modo de predição pode ser deduzido para ser ARP e não compensação de iluminação, devido ao fator de ponderação de ARP ser diferente de zero.
[0195] O codificador de vídeo 20 pode, então, predizer o bloco atual com uso de ARP (260). Por exemplo, a unidade de compensação de movimento 44 pode determinar um bloco de referência com uso de um vetor de movimento temporal ou um vetor de movimento de disparidade do bloco atual. A unidade de estimativa de movimento 42 pode calcular o vetor de movimento temporal ou o vetor de movimento de disparidade. A unidade de compensação de movimento 44 pode adicionalmente calcular um preditor residual como, por exemplo, a diferença entre um bloco em uma vista de referência (identificada por um vetor de disparidade) ou um bloco na vista atual (identificada por um vetor de movimento temporal) e um bloco de referência de vista de base (indicado por uma combinação de um vetor de disparidade ou vetor de movimento de disparidade e um vetor de movimento temporal relativo à posição do bloco atual), conforme discutido acima em relação às Figuras 9 e 11.
[0196] Quando o modo de predição não for ARP (ramificação “NÃO” de 254) e quando o modo de predição for compensação de iluminação (ramificação “SIM” de 256), o codificador de vídeo 20 pode sinalizar um valor de 0 para o fator de ponderação de ARP (WF) e um valor de verdadeiro (por exemplo, um) para um elemento de sintaxe de compensação de iluminação, tal como ic_flag (262). Isto é, o codificador de vídeo 20 sinaliza um valor para o elemento de sintaxe de compensação de iluminação que indica que a compensação de iluminação é usada para o bloco atual. Ademais, o codificador de vídeo 20 pode predizer o bloco atual com uso de compensação de iluminação (264). Isto é, conforme explicado acima em relação à Figura 8, o codificador de vídeo 20 pode determinar um bloco de referência para o bloco atual com uso um vetor de movimento de disparidade e determinar valores para serem usados para modificar de modo linear os pixels do bloco de referência com base nos pixels vizinhos ao bloco atual (pixels vizinhos 124 na Figura 8) e pixels vizinhos ao bloco de referência (pixels vizinhos 130 na Figura 8).
[0197] Quando o modo de predição não for ARP (ramificação “NÃO” de 254) e quando o modo de predição for compensação de iluminação (ramificação “NÃO” de 256), o codificador de vídeo 20 pode sinalizar um valor de 0 para o fator de ponderação de ARP (WF) e um valor de falso (por exemplo, zero) para um elemento de sintaxe de compensação de iluminação, tal como ic_flag (266). Isto é, o codificador de vídeo 20 sinaliza um valor para o elemento de sintaxe de compensação de iluminação que indica que a compensação de iluminação não é usada para o bloco atual. O codificador de vídeo 20 pode sinalizar adicionalmente um ou mais elementos de sintaxe que indicam o modo de predição atual (268). Alternativamente, o modo de predição pode ser deduzido para ser interpredição e os parâmetros de movimento sinalizados para o bloco atual podem indicar de modo inerente se o modo de predição é interpredição temporal ou interpredição de vista, de modo que os elementos de sintaxe adicionais precisem ser sinalizados. O codificador de vídeo 20 pode predizer adicionalmente o bloco atual com uso do modo de predição sinalizado (ou com falha) (270).
[0198] Após a predição do bloco atual, o codificador de vídeo 20 pode calcular um bloco residual para o bloco atual (272). A menos que o modo usado para calcular o bloco preditivo, o codificador de vídeo 20 pode calcular o bloco residual através do cálculo de diferenças de pixel por pixel entre o bloco atual e o bloco preditivo. O codificador de vídeo 20 pode, então, transformar, quantizar e codificar por entropia o bloco residual (274). Mais particularmente, a unidade de processamento de transformada 52 transforma o bloco residual, por exemplo, com uso de uma transformada distinta de cosseno (DCT), a unidade de quantização 54 quantiza os coeficientes de transformadas resultantes e a unidade de codificação por entropia 56 codifica por entropia os coeficientes quantizados por entropia. Certamente, a unidade de codificação por entropia 56 pode codificar por entropia outros elementos de sintaxe bem como, por exemplo, o fator de ponderação de ARP e (caso seja sinalizado) o elemento de sintaxe de compensação de iluminação, bem como os parâmetros de movimento para o bloco atual.
[0199] Desse modo, o método da Figura 12 representa um exemplo de um método de codificação de dados de vídeo que incluem determinar um valor para um fator de ponderação de predição residual avançada (ARP) de um bloco atual e quando o valor do fator de ponderação de ARP não for igual a zero, pular a codificação de um elemento de sintaxe de compensação de iluminação para o bloco atual e codificar o bloco atual. O método exemplificativo da Figura 12 inclui adicionalmente, quando o valor do fator de ponderação de ARP for igual a zero, codificar o elemento de sintaxe de compensação de iluminação para o bloco atual e codificar o bloco atual com base pelo menos em parte no valor do elemento de sintaxe de compensação de iluminação.
[0200] A Figura 13 é um fluxograma que ilustra um método exemplificativo para decodificação de um bloco de acordo com as técnicas dessa revelação. O método da Figura 13 é descrito em relação ao decodificador de vídeo 30 para propósitos explicativos, embora deva ser entendido que potros dispositivos podem ser configurados para realizar o método da Figura 13.
[0201] Inicialmente, o decodificador de vídeo 30 recebe um bloco atual (280). Mais particularmente, o decodificador de vídeo 30 recebe elementos de sintaxe codificador por entropia para o bloco atual. O decodificador de vídeo 30 pode decodificar cada elemento de sintaxe de modo individual. Mediante o alcance de um fator de ponderação de ARP elemento de sintaxe, o decodificador de vídeo 30 pode determinar se o fator de ponderação de ARP tem um valor de zero para o bloco atual (282).
[0202] Se o fator de ponderação de ARP tiver um valor diferente de zero (ramificação “NÃO” de 282), o decodificador de vídeo 30 pode determinar que ARP é usado para predizer o bloco atual. Desse modo, a unidade de decodificação por entropia 70 pode saltar para tentar decodificar um elemento de sintaxe de compensação de iluminação para o bloco atual, com base na implicação de que esse elemento de sintaxe de compensação de iluminação não estará incluído no fluxo de bits. Consequentemente, o decodificador de vídeo 30 pode predizer os bloco atual com uso de ARP (286). Por exemplo, conforme explicado acima em relação às Figuras 9 e 11, a unidade de compensação de movimento 72 pode calcular um preditor residual como, por exemplo, a diferença entre um bloco em uma vista de referência (identificada por um vetor de disparidade) ou um bloco na vista atual (identificada por um vetor de movimento temporal) e um bloco de referência de vista de base (indicado por uma combinação de um vetor de disparidade ou vetor de movimento de disparidade e um vetor de movimento temporal relativo à posição do bloco atual) e aplicar o fator de ponderação de ARP ao preditor residual. A unidade de compensação de movimento 72 também pode calcular um preditor para o bloco atual com uso de um vetor de movimento de disparidade ou um vetor de movimento temporal e combinar o preditor com o preditor residual (conforme modificado pelo fator de ponderação de ARP) para produzir um bloco preditivo para o bloco atual.
[0203] Entretanto, se o fator de ponderação de ARP for igual a zero (ramificação “SIM” de 282), o decodificador de vídeo 30 pode determinar que um elemento de sintaxe de compensação de iluminação será sinalizado no fluxo de bits para o bloco atual. Portanto, a unidade de decodificação por entropia 70 pode decodificar um valor para o elemento de sintaxe de compensação de iluminação (por exemplo, ic_flag) e o decodificador de vídeo 30 pode determinar se o elemento de sintaxe de compensação de iluminação tem um valor de verdadeiro (por exemplo, 1) ou falso (por exemplo, 0) (284), em que assume-se que um valor de verdadeiro ou 1 indica que a compensação de iluminação é usada e falso ou 0 indica que a compensação de iluminação não é usada.
[0204] Quando o elemento de sintaxe de compensação de iluminação tiver um valor de verdadeiro (ramificação “SIM” de 284), o decodificador de vídeo 30 pode predizer o bloco atual com uso da compensação de iluminação (288). Isto é, conforme explicado acima em relação à Figura 8, o decodificador de vídeo 30 pode determinar um bloco de referência para o bloco atual com uso um vetor de movimento de disparidade e determinar valores para serem usados para modificar de modo linear os pixels do bloco de referência com base nos pixels vizinhos ao bloco atual (pixels vizinhos 124 na Figura 8) e pixels vizinhos ao bloco de referência (pixels vizinhos 130 na Figura 8).
[0205] Quando o elemento de sintaxe de compensação de iluminação tiver um valor de falso (ramificação “NÃO” de 284), o decodificador de vídeo 30 pode determinar um modo de predição atual para o bloco atual (290) e predizer o bloco atual com uso do modo de predição (292). Por exemplo, quando o bloco atual for um bloco interpreditivo e o modo de predição não for ARP ou compensação de iluminação, o decodificador de vídeo 30 pode deduzir que o modo de predição é interpredição, o qual pode ser interpredição de vista ou interpredição temporal, conforme indicado por, por exemplo, parâmetros de movimento para o bloco atual. Isto é, se uma imagem de referência tiver o mesmo valor de POC como a imagem atual, o modo de predição é interpredição de vista, enquanto se a imagem de referência tiver um valor de POC diferente da imagem atual, o modo de predição é interpredição temporal. A unidade de compensação de movimento 72 pode usar os parâmetros de movimento para decodificar um vetor de movimento (temporal ou de disparidade) para o bloco atual e predizer o bloco atual com uso do vetor de movimento.
[0206] O decodificador de vídeo 30 pode, então, quantizar de modo inverso e transformar de modo inverso um bloco residual para o bloco atual (294). Isto é, a unidade de quantização inversa 76 pode quantizar de modo inverso os dados codificados por entropia para o bloco residual para reproduzir os coeficientes de transformada para o bloco residual e a unidade de transformada inversa 78 pode transformar de modo inverso os coeficientes de transformada para reproduzir o bloco residual. O decodificador de vídeo 30 pode, então, combinar o bloco residual e o bloco preditivo para decodificar o bloco atual (296). Isto é, o decodificador de vídeo 30 pode realizar a adição de pixel por pixel entre o bloco residual e o bloco preditivo para reproduzir o bloco atual.
[0207] Desse modo, o método da Figura 13 representa um exemplo de um método de decodificação de dados de vídeo que incluem determinar um valor para um fator de ponderação de predição residual avançada (ARP) de um bloco atual e quando o valor do fator de ponderação de ARP não for igual a zero, pular a decodificação de um elemento de sintaxe de compensação de iluminação para o bloco atual e decodificar o bloco atual. O método da Figura 13 inclui adicionalmente, quando o valor do fator de ponderação de ARP for igual a zero, decodificar o elemento de sintaxe de compensação de iluminação para o bloco atual e decodificar o bloco atual com base pelo menos em parte no valor do elemento de sintaxe de compensação de iluminação.
[0208] Deve ser reconhecido que, dependendo-se do exemplo, certos atos ou eventos de quaisquer uma das 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 e eventos descritos são necessários para a prática da técnica). Ademais, em certos exemplos, os atos e eventos podem ser realizados de modo concorrente, por exemplo, através de processamento multifiletado, processamento interrupto ou em múltiplos processadores, em vez de sequencialmente.
[0209] 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 em, ou transmitidas sobre, como uma ou mais instruções ou código em um meio legível por computador e executadas por uma unidade de processamento com base em hardware. As meios legíveis por computador podem incluir meios de armazenamento legíveis por computador, que correspondem a uma mídia tangível como meios de armazenamento de dados ou meios 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 maneira, os meios legíveis por computador podem geralmente corresponder a (1) meios de armazenamento legível por computador tangível que são não transitórios ou (2) um meio de comunicação tal como uma onda portadora ou sinal. Os meios de armazenamento de dados podem ser quaisquer meios 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 nessas revelações. Um produto de programa de computador pode incluir uma mídia legível por computador.
[0210] A título de exemplo, e não de limitação, tais meios de armazenamento legíveis por computador podem compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento de disco óptico, armazenamento de disco magnético ou outros dispositivos de armazenamento magnético, ou qualquer outro meio que possa ser usado para armazenar o código de programa desejado na forma de instruções ou estruturas de dados e que possa ser acessado por um computador. Também, qualquer conexão pode ser propriamente denominada um meio legível por computador. Por exemplo, se as instruções forem transmitidas a partir de um sítio da web, servidor ou outra fonte remota com o uso de uma cabo coaxial, cabo de fibra óptica, par trançado, linha de inscrição digital (DSL) ou tecnologias sem fio como infravermelho, rádio e micro-ondas, então, o cabo coaxial, o cabo de fibra óptica, o par trançado, a DSL ou as tecnologias sem fio como infravermelho, rádio e microonda estão incluídos na definição de mídia. Deve ser entendido, entretanto, que os meios de armazenamento legíveis por computador e os meios de armazenamento de dados não incluem conexões, ondas transportadoras, sinais ou outros meios transitórios, mas são, em vez disso, direcionadas para meios não transitórios e tangíveis. O disco magnético e disco óptico, conforme usado no presente documento, incluem disco compacto (CD), disco laser, disco óptico, disco versátil digital (DVD), disquete e disco Blu- ray, em que os discos magnéticos 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 abrangidas pelo escopo de meios legíveis por computador.
[0211] As instruções podem ser executadas por um ou mais processadores, como um ou mais processadores de sinal digital (DSPs), microprocessadores para propósitos gerais, circuitos integrados de aplicação específica (ASICs), matrizes lógicas programáveis por campo (FPGAs) ou outro conjunto de circuitos lógicos equivalentes integrados ou discretos. Portanto, o termo "processador", conforme usado no presente documento pode se referir a qualquer uma das estruturas supracitadas ou qualquer outra estrutura adequada para a implantação das técnicas descritas no presente documento. Adicionalmente, em alguns aspectos, a funcionalidade descrita no presente documento pode ser fornecida dentro de módulos dedicados de hardware e/ou software configurados para cifrar e decodificar ou incorporados em um codec combinado. Também, as técnicas podem ser totalmente implantadas em um ou mais circuitos ou elementos lógicos.
[0212] As técnicas dessas revelações 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 nessa revelação para enfatizar os aspectos funcionais dos dispositivos configurados para realizar as técnicas reveladas, mas não exigem necessariamente a realização por diferentes unidades de hardware. Em vez disso, conforme descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec ou fornecidas por uma coleção de unidades de hardware interoperativos, incluindo um ou mais processadores conforme descrito acima, em conjunto com software e/ou firmware adequados.
[0213] Vários exemplos foram descritos. Esses e outros exemplos estão dentro do escopo das reivindicações a seguir.

Claims (15)

1. Método para decodificar dados de vídeo, o método caracterizado pelo fato de que compreende: determinar um valor para um fator de ponderação de predição residual avançada, ARP, de um bloco atual; e quando o valor do fator de ponderação de ARP não for igual a zero: pular a decodificação de um elemento de sintaxe de compensação de iluminação para o bloco atual; e decodificar o bloco atual com base pelo menos em parte na utilização de ARP e do valor do fator de ponderação de ARP; ou quando o valor do fator de ponderação de ARP for igual a zero: decodificar o elemento de sintaxe de compensação de iluminação para o bloco atual; e decodificar o bloco atual com base pelo menos em parte no valor do elemento de sintaxe de compensação de iluminação.
2. Método para codificar dados de vídeo, o método caracterizado pelo fato de que compreende: determinar um valor para um fator de ponderação de predição residual avançada, ARP, de um bloco atual; e quando o valor do fator de ponderação de ARP não for igual a zero: pular a codificação de um elemento de sintaxe de compensação de iluminação para o bloco atual; e codificar o bloco atual com base pelo menos em parte na utilização de ARP e do valor do fator de ponderação de ARP; ou quando o valor do fator de ponderação de ARP for igual a zero: codificar o elemento de sintaxe de compensação de iluminação para o bloco atual; e codificar o bloco atual com base pelo menos em parte no valor do elemento de sintaxe de compensação de iluminação.
3. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que o elemento de sintaxe de compensação de iluminação compreende um elemento de sintaxe de ic_flag.
4. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que a decodificação ou a codificação do elemento de sintaxe de compensação de iluminação compreender adicionalmente determinar se a compensação de iluminação é permitida para o bloco atual e decodificar ou codificar o elemento de sintaxe de compensação de iluminação apenas quando a compensação de iluminação for permitida para o bloco atual.
5. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que compreende adicionalmente decodificar ou codificar um elemento de sintaxe de compensação de iluminação de nível de fatia que indica se a compensação de iluminação é permitida para uma fatia que inclui o bloco atual, sendo que a decodificação ou codificação do elemento de sintaxe de compensação de iluminação para o bloco atual compreende decodificar ou codificar o elemento de sintaxe de compensação de iluminação para o bloco atual apenas quando o elemento de sintaxe de compensação de iluminação de nível de fatia indicar que a compensação de iluminação é permitida para a fatia.
6. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que a decodificação ou codificação do elemento de sintaxe de compensação de iluminação compreende decodificar ou codificar o elemento de sintaxe de compensação de iluminação se e apenas se o fator de ponderação de ARP tiver um valor igual a zero e pelo menos um dentre (a) ou (b) for verdadeiro, em que (a) é aquele bloco atual que é codificado com modo de mescla e pelo menos um entre (i) ou (ii), em que (i) é aquele um elemento de sintaxe em um cabeçalho de fatia para uma fatia que inclui o bloco atual que tem um valor que indica que o modo de compensação de iluminação é permitido para a fatia atual, em que (ii) é aquele um índice de mescla para o bloco atual que tem um valor diferente de zero e, em que (b) é aquele bloco atual que é codificado com modo de predição de vetor de movimento avançado (AMVP) e pelo menos um índice de referência para o bloco atual corresponde a uma imagem de referência de intervista.
7. Método, de acordo com a reivindicação 6, caracterizado pelo fato de que o elemento de sintaxe no cabeçalho de fatia para a fatia compreende slice_ic_disable_merge_zero_idx_flag.
8. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que a decodificação ou codificação do elemento de sintaxe de compensação de iluminação compreende decodificar ou codificar o elemento de sintaxe de compensação de iluminação quando uma imagem atual que inclui o bloco atual for uma imagem de acesso intra-aleatório, IRAP.
9. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que compreende adicionalmente decodificar ou codificar pelo menos um elemento de sintaxe que indica se a compensação de iluminação é usada para pelo menos uma camada de dados de vídeo multicamada.
10. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que a decodificação ou codificação do bloco atual com base pelo menos em parte no valor do elemento de sintaxe de compensação de iluminação compreende decodificar ou codificar o bloco atual com uso da compensação de iluminação quando o valor do elemento de sintaxe de compensação de iluminação indicar que o bloco atual deve ser codificado com uso da compensação de iluminação.
11. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que quando o valor do fator de ponderação de ARP for igual a zero, a decodificação ou codificação do bloco atual com base pelo menos em parte no valor do elemento de sintaxe de compensação de iluminação compreende decodificar ou codificar o bloco atual sem usar a compensação de iluminação quando o valor do elemento de sintaxe de compensação de iluminação indicar que o bloco atual não deve ser codificado com uso da compensação de iluminação e sem usar ARP.
12. Método, de acordo com a reivindicação 1 ou 2, caracterizado por compreender adicionalmente, antes de determinar o valor do fator de ponderação de ARP: determinar se ARP é permitida para uma fatia que inclui o bloco atual; e determinar se o bloco atual é intercodificado, sendo que a determinação do valor do fator de ponderação de ARP compreende determinar o valor do fator de ponderação de ARP quando ARP é permitida e quando o bloco atual é intercodificado.
13. Dispositivo para decodificar dados de vídeo, o dispositivo caracterizado pelo fato de que compreende: meios para determinar um valor para um fator de ponderação de predição residual avançada, ARP, de um bloco atual; meios configurados para: decodificar um elemento de sintaxe de compensação de iluminação para o bloco atual quando o valor do fator de ponderação de ARP for igual a zero; e pular a decodificação de um elemento de sintaxe de compensação de iluminação para o bloco atual quando o valor do fator de ponderação de ARP não for igual a zero; e meios para decodificar o bloco atual, os meios configurados para decodificar o bloco atual: com base pelo menos em parte na utilização de ARP e do fator de ponderação de ARP quando o valor do fator de ponderação de ARP não for igual a zero; e com base pelo menos em parte no valor do elemento de sintaxe de compensação de iluminação quando o valor de ponderação de ARP for igual a zero.
14. Dispositivo para codificar dados de vídeo, o dispositivo caracterizado pelo fato de que compreende: meios para determinar um valor para um fator de ponderação de predição residual avançada, ARP, de um bloco atual; meios configurados para: codificar um elemento de sintaxe de compensação de iluminação para o bloco atual quando o valor do fator de ponderação de ARP for igual a zero; e pular a codificação de um elemento de sintaxe de compensação de iluminação para o bloco atual quando o valor do fator de ponderação de ARP não for igual a zero; e meios para codificar o bloco atual, os meios configurados para codificar o bloco atual: com base pelo menos em parte na utilização de ARP e do fator de ponderação de ARP quando o valor do fator de ponderação de ARP não for igual a zero; e com base pelo menos em parte no valor do elemento de sintaxe de compensação de iluminação quando o valor de ponderação de ARP for igual a zero.
15. Memória legível por computador caracterizada pelo fato de que contém gravado na mesma o método conforme definido em qualquer uma das reivindicações 1 a 12.
BR112016000866-9A 2013-07-16 2014-07-16 Processamento de compensação de iluminação para codificação de vídeo BR112016000866B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361846985P 2013-07-16 2013-07-16
US61/846,985 2013-07-16
US14/332,105 US9860529B2 (en) 2013-07-16 2014-07-15 Processing illumination compensation for video coding
US14/332,105 2014-07-15
PCT/US2014/046874 WO2015009842A1 (en) 2013-07-16 2014-07-16 Processing illumination compensation for video coding

Publications (2)

Publication Number Publication Date
BR112016000866A2 BR112016000866A2 (pt) 2017-07-25
BR112016000866B1 true BR112016000866B1 (pt) 2023-04-11

Family

ID=52343560

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112016000866-9A BR112016000866B1 (pt) 2013-07-16 2014-07-16 Processamento de compensação de iluminação para codificação de vídeo

Country Status (8)

Country Link
US (1) US9860529B2 (pt)
EP (1) EP3022932B1 (pt)
JP (1) JP6419808B2 (pt)
KR (1) KR101917481B1 (pt)
CN (1) CN105379288B (pt)
BR (1) BR112016000866B1 (pt)
CA (1) CA2915114C (pt)
WO (1) WO2015009842A1 (pt)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015005746A1 (ko) * 2013-07-12 2015-01-15 삼성전자 주식회사 잔차 예측을 이용한 인터 레이어 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
WO2015009041A1 (ko) * 2013-07-15 2015-01-22 삼성전자 주식회사 적응적 휘도 보상을 위한 인터 레이어 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
WO2015056961A1 (ko) * 2013-10-14 2015-04-23 삼성전자 주식회사 휘도 보상 여부에 따른 뷰 합성 예측 적용 방법 및 장치
US10887597B2 (en) 2015-06-09 2021-01-05 Qualcomm Incorporated Systems and methods of determining illumination compensation parameters for video coding
KR20180019092A (ko) * 2015-06-16 2018-02-23 엘지전자 주식회사 영상 코딩 시스템에서 조도 보상에 기반한 블록 예측 방법 및 장치
US9710722B1 (en) * 2015-12-29 2017-07-18 Stmicroelectronics International N.V. System and method for adaptive pixel filtering
CN114401402B (zh) * 2016-07-05 2024-06-14 株式会社Kt 用于处理视频信号的方法和装置
ES2737845B2 (es) 2016-07-05 2021-05-19 Kt Corp Metodo y aparato para procesar senal de video
KR20180021942A (ko) 2016-08-22 2018-03-06 광운대학교 산학협력단 보안 카메라용 영상 코덱에서 블록 분할 정보 전송 방법 및 장치
CN109792529A (zh) * 2016-09-22 2019-05-21 Lg 电子株式会社 图像编译系统中的基于照度补偿的间预测方法和设备
US10631002B2 (en) * 2016-09-30 2020-04-21 Qualcomm Incorporated Frame rate up-conversion coding mode
KR20230125341A (ko) * 2016-10-11 2023-08-29 엘지전자 주식회사 영상 코딩 시스템에서 인트라 예측에 따른 영상 디코딩방법 및 장치
EP3335716A1 (en) * 2016-12-15 2018-06-20 Indena S.p.A. Process for the preparation of powder compositions
KR20180074000A (ko) * 2016-12-23 2018-07-03 삼성전자주식회사 비디오 디코딩 방법, 이를 수행하는 비디오 디코더, 비디오 인코딩 방법, 및 이를 수행하는 비디오 인코더
US10701390B2 (en) 2017-03-14 2020-06-30 Qualcomm Incorporated Affine motion information derivation
EP3410717A1 (en) * 2017-05-31 2018-12-05 Thomson Licensing Methods and apparatus for candidate list pruning
US20200267385A1 (en) * 2017-07-06 2020-08-20 Kaonmedia Co., Ltd. Method for processing synchronised image, and apparatus therefor
EP3468194A1 (en) 2017-10-05 2019-04-10 Thomson Licensing Decoupled mode inference and prediction
US10715810B2 (en) * 2018-02-20 2020-07-14 Qualcomm Incorporated Simplified local illumination compensation
US10834409B2 (en) * 2018-04-06 2020-11-10 Arris Enterprises Llc System and method of implementing multiple prediction models for local illumination compensation
US10735721B2 (en) * 2018-04-17 2020-08-04 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method using local illumination compensation
US11343541B2 (en) * 2018-04-30 2022-05-24 Hfi Innovation Inc. Signaling for illumination compensation
CN112385226A (zh) * 2018-06-18 2021-02-19 交互数字Vc控股公司 视频编码中的照度补偿
KR20230169440A (ko) 2018-08-17 2023-12-15 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩에서의 참조 화상 관리
KR20210058856A (ko) * 2018-09-19 2021-05-24 인터디지털 브이씨 홀딩스 인코포레이티드 저장된 파라미터들을 사용하는 비디오 인코딩 및 디코딩을 위한 로컬 조명 보상
WO2020084502A1 (en) * 2018-10-23 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Video processing using local illumination compensation
CN112868239B (zh) 2018-10-23 2023-05-30 北京字节跳动网络技术有限公司 并置的局部照明补偿和帧内块复制编解码
BR112021012163A2 (pt) * 2018-12-21 2021-08-31 Sharp Kabushiki Kaisha Método de decodificação de dados de vídeo, método de codificação de dados de vídeo, e dispositivo
WO2020147747A1 (en) 2019-01-15 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Weighted prediction in video coding
CN113316933A (zh) 2019-01-17 2021-08-27 北京字节跳动网络技术有限公司 使用运动预测进行去方块滤波
WO2020151765A1 (en) * 2019-01-27 2020-07-30 Beijing Bytedance Network Technology Co., Ltd. Interpolation for bi-prediction with cu-level weight
EP3918804A4 (en) 2019-03-14 2023-02-08 HFI Innovation Inc. METHODS AND APPARATUS FOR VIDEO PROCESSING USING MOTION DECOMPOSITION AND SUB-PARTITION BASE FILLING
WO2020251930A1 (en) * 2019-06-12 2020-12-17 Interdigital Vc Holdings, Inc. Illumination compensation for video encoding and decoding
CN115336273A (zh) 2020-03-19 2022-11-11 字节跳动有限公司 用于图片编解码的帧内随机访问点
WO2021188805A1 (en) 2020-03-20 2021-09-23 Bytedance Inc. Order relationship between subpictures
JP2023522224A (ja) 2020-04-20 2023-05-29 バイトダンス インコーポレイテッド 参照ピクチャリスト上の制約
US11558630B2 (en) 2020-05-20 2023-01-17 Tencent America LLC Techniques for random access point indication and picture output in coded video stream
CA3136422A1 (en) * 2020-05-20 2021-11-20 Tencent America LLC Techniques for random access point indication and picture output in coded video stream

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1646243B1 (en) * 2004-09-30 2009-06-24 Kabushiki Kaisha Toshiba Information processing apparatus and program for use in the same
AU2007205227B2 (en) * 2006-01-09 2012-02-16 Dolby International Ab Method and apparatus for providing reduced resolution update mode for multi-view video coding
KR101370919B1 (ko) * 2006-07-12 2014-03-11 엘지전자 주식회사 신호처리방법 및 장치
US8494046B2 (en) * 2007-03-23 2013-07-23 Lg Electronics Inc. Method and an apparatus for decoding/encoding a video signal by performing illumination compensation
WO2008130716A2 (en) * 2007-04-24 2008-10-30 Thomson Licensing Video coding
BRPI0906413A2 (pt) * 2008-01-10 2015-07-14 Thomson Licensing Métodos e equipamento para compensação de iluminação de vídeo intra predito
WO2009131688A2 (en) * 2008-04-25 2009-10-29 Thomson Licensing Inter-view skip modes with depth
JP5663093B2 (ja) * 2010-10-01 2015-02-04 ドルビー ラボラトリーズ ライセンシング コーポレイション 参照ピクチャー処理のための最適化されたフィルタ選択
EP2781091B1 (en) * 2011-11-18 2020-04-08 GE Video Compression, LLC Multi-view coding with efficient residual handling
RU2510944C2 (ru) * 2012-07-03 2014-04-10 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ кодирования/декодирования многоракурсной видео последовательности на основе адаптивной локальной коррекции яркости опорных кадров без передачи дополнительных параметров (варианты)
US9948951B2 (en) * 2012-12-26 2018-04-17 Sharp Kabushiki Kaisha Image decoding device which generates a predicted image of a target prediction unit
US9930363B2 (en) * 2013-04-12 2018-03-27 Nokia Technologies Oy Harmonized inter-view and view synthesis prediction for 3D video coding
US9288507B2 (en) 2013-06-21 2016-03-15 Qualcomm Incorporated More accurate advanced residual prediction (ARP) for texture coding

Also Published As

Publication number Publication date
JP6419808B2 (ja) 2018-11-07
CA2915114A1 (en) 2015-01-22
WO2015009842A1 (en) 2015-01-22
CN105379288A (zh) 2016-03-02
BR112016000866A2 (pt) 2017-07-25
CA2915114C (en) 2019-08-27
CN105379288B (zh) 2019-05-21
EP3022932A1 (en) 2016-05-25
US9860529B2 (en) 2018-01-02
KR101917481B1 (ko) 2018-11-09
US20150023422A1 (en) 2015-01-22
JP2016529791A (ja) 2016-09-23
EP3022932B1 (en) 2021-04-28
KR20160032126A (ko) 2016-03-23

Similar Documents

Publication Publication Date Title
BR112016000866B1 (pt) Processamento de compensação de iluminação para codificação de vídeo
KR102187723B1 (ko) 3 차원(3d)비디오 코딩을 위한 진보된 병합 모드
JP6522629B2 (ja) 3dビデオコード化のためのブロックベースの高度残差予測
US10158884B2 (en) Simplified merge list construction process for 3D-HEVC
KR102180859B1 (ko) 3d 비디오 코딩에서 디스패리티 벡터 도출 및 모션 벡터 예측에 대한 단순화
KR101722890B1 (ko) 텍스처 코딩을 위한 더욱 정확한 어드밴스드 잔차 예측 (arp)
KR102264104B1 (ko) 백워드 뷰 합성 예측
BR112021005357A2 (pt) aprimoramentos em preditor de vetor de movimento baseado em histórico
BR112016007760B1 (pt) Método e aparelho de decodificação de dados de vídeo e método de codificação de dados de vídeo
ES2703062T3 (es) Síntesis de visualización en vídeo 3D
BR112015016011B1 (pt) Método de decodificação de vídeo inter-vista ou intercamada, método de codificação de vídeo inter-vista ou inter-camada, dispositivo e memória legível por computador
BR112016006574B1 (pt) Predição de vetor de movimento temporal com base em unidade de subpredição (pu) em hevc e projeto de sub-pu em 3d-hevc
KR20140120900A (ko) 심도를 갖는 3d 비디오 코딩에서의 멀티-가설 디스패리티 벡터 구성
BR112014017159B1 (pt) Conjuntos de parâmetros de codificação e cabeçalhos de unidade nal para codificação de vídeo
BR112016006607B1 (pt) Método e dispositivo para processamento de dados de vídeo, e memória legível por computador
KR20150092249A (ko) 3d 비디오에 대한 진보된 병합/스킵 모드 및 진보된 모션 벡터 예측 (amvp) 모드
KR20160024960A (ko) 심도 지향 인터-뷰 모션 벡터 예측
BR112015032977B1 (pt) Equipamento e método para codificar informações de vídeo, equipamento e método para decodificar informações de vídeo, e memória legível por computador
ES2780686T3 (es) Tipo de dependencia entre vistas en MV-HEVC
KR20150034173A (ko) 비디오 코딩에서의 디스패리티 벡터 선택
BR112016013464B1 (pt) Método para decodificar e método para codificar um bloco de profundidade; dispositivo para decodificar e dispositivo para codificar um bloco de profundidade e memória legível por computador
BR112015008574B1 (pt) Métodos para decodificar e codificar dados de vídeo, dispositivos para decodificar e codificar dados de vídeo, e, memória legível por computador
BR112021014603A2 (pt) Geração de lista de preditores de vetor de movimento para modo de cópia de intrabloco em codificação de vídeo
BR112016013489B1 (pt) Sinalização de codificação de profundidade simplificada (sdc) para modos de inter e intrapredição em codificação de vídeo 3d

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]
B350 Update of information on the portal [chapter 15.35 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 16/07/2014, OBSERVADAS AS CONDICOES LEGAIS