BR112016013489B1 - Sinalização de codificação de profundidade simplificada (sdc) para modos de inter e intrapredição em codificação de vídeo 3d - Google Patents

Sinalização de codificação de profundidade simplificada (sdc) para modos de inter e intrapredição em codificação de vídeo 3d Download PDF

Info

Publication number
BR112016013489B1
BR112016013489B1 BR112016013489-3A BR112016013489A BR112016013489B1 BR 112016013489 B1 BR112016013489 B1 BR 112016013489B1 BR 112016013489 A BR112016013489 A BR 112016013489A BR 112016013489 B1 BR112016013489 B1 BR 112016013489B1
Authority
BR
Brazil
Prior art keywords
depth
sdc
intraprediction
video
interprediction
Prior art date
Application number
BR112016013489-3A
Other languages
English (en)
Other versions
BR112016013489A2 (pt
Inventor
Li Zhang
Hongbin Liu
Ying Chen
Original Assignee
Qualcomm Incorporated
Filing date
Publication date
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Priority claimed from PCT/CN2013/001562 external-priority patent/WO2015085449A1/en
Publication of BR112016013489A2 publication Critical patent/BR112016013489A2/pt
Publication of BR112016013489B1 publication Critical patent/BR112016013489B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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

Abstract

SINALIZAÇÃO DE CODIFICAÇÃO DE PROFUNDIDADE SIMPLIFICADA (SDC) PARA MODOS DE INTER E INTRAPREDIÇÃO EM CODIFICAÇÃO DE VÍDEO 3D. Esta divulgação descreve técnicas para a sinalização e processamento de informação que indica a codificação de profundidade simplificada (SDC) para modos de intrapredição de profundidade e interpredição de profundidade em um processo de codificação de vídeo 3D, tal como um processo definido pela extensão 3D-HEVC para HEVC. Em alguns exemplos, a divulgação descreve técnicas para unificar a sinalização da SDC para modos de intrapredição de profundidade e interpredição de profundidade em codificação de vídeo 3D. A sinalização da SDC pode ser unificada para que um codificador de vídeo ou decodificador de vídeo use o mesmo elemento de sintaxe para sinalização de SDC para ambos o modo de intrapredição de profundidade e o modo de interpredição de profundidade. Além disso, em alguns exemplos, um codificador de vídeo pode sinalizar e/ou processar um valor residual gerado no modo de SDC usando a mesma estrutura de sintaxe, ou mesmo tipo de estrutura de sintaxe, para ambos o modo de intrapredição de profundidade e modo de interpredição de profundidade.

Description

CAMPO TÉCNICO
[001] Esta divulgação refere-se à codificação de vídeo, e mais particularmente, a técnicas para codificação de valores residuais para dados de profundidade em um processo de codificação de vídeo tridimensional (3D).
FUNDAMENTOS
[002] Capacidades de vídeo digitais podem ser incorporadas em uma ampla gama de dispositivos, incluindo televisores digitais, sistemas de broadcast diretos digitais, sistemas de broadcast sem fio, computadores tablet, smartphones, assistentes digitais pessoais (PDAs), computadores laptop ou desktop, câmeras digitais, dispositivos de gravação digitais, reprodutores de mídia digitais, dispositivos de jogos de vídeo, consoles de jogos de vídeo, telefones de rádio celular ou por satélite, dispositivos de videoteleconferência, dispositivos de settop e similares. Dispositivos de vídeo digital implementam as técnicas de compressão de vídeo, tais como as descritas nos padrões definidos pela MPEG-2, MPEG-4, ITU-T H.263, ITU- T H.264 / MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), o padrão de Codificação de Vídeo de Alta Eficiência (HEVC), e extensões de tais normas. Os dispositivos de vídeo podem transmitir, receber e armazenar informações de vídeo digital de forma mais eficiente.
[003] Um decodificador - codificador (codec) aplica técnicas de compressão de vídeo para executar predição espacial (intraimagem) e/ou predição temporal (interimagem) para reduzir ou eliminar a redundância inerente em sequências de vídeo. Para a codificação de vídeo baseada em blocos, uma fatia de vídeo pode ser dividida em blocos de vídeo, que podem igualmente ser referidos como blocos em árvore, unidades de codificação (CUs) e/ou de nós de codificação. Blocos de vídeo em uma fatia intracodificada (I) de uma imagem são codificados usando a predição espacial em relação às amostras de referência em blocos vizinhos no mesmo quadro. Blocos de vídeo em uma fatia intercodificada (P ou B) de uma imagem espacial podem utilizar a predição com relação às amostras de referência em blocos vizinhos na mesma imagem, ou a predição temporal com relação às amostras de referência em outros quadros de referência. Imagens alternativamente podem ser referidas como quadros.
[004] Predição espacial ou temporal resulta em um bloco preditivo para um bloco a ser codificada. Dados residuais representam diferenças de pixel 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 forma o bloco de predição, 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 a compressão adicional, os dados residuais podem ser transformados a partir do domínio espacial para um domínio de transformada, resultando em coeficientes de transformada residuais, que podem em seguida ser quantizados. Coeficientes de transformada quantizados inicialmente dispostos em uma matriz bidimensional podem ser verificados, a fim de produzir um vetor unidimensional de coeficientes de transformada, e codificação de entropia pode ser aplicada para conseguir ainda mais compressão.
[005] Um fluxo de bits de codificação multivisualização pode ser gerado pelas visualizações de codificação, por exemplo, a partir de múltiplas perspectivas. Codificação multivisualização pode permitir que um decodificador selecione diferentes visualizações, ou, possivelmente, renderizem múltiplos visualizações. Além disso, algumas técnicas de vídeo tridimensionais (3D) e padrões que foram desenvolvidos ou estão em desenvolvimento, fazem uso de aspectos de codificação multivisualização. Por exemplo, em alguns processos de codificação de vídeo 3D, diferentes visualizações podem ser utilizadas para transmitir visualizações do olho esquerdo e direito para suportar vídeo 3D. Outros processos de codificação de vídeo 3D podem utilizar uma codificação multivisualização mais profundidade. Em um processo de codificação multivisualização mais profundidade, tal como um processo definido pela extensão 3D-HEVC para HEVC, um fluxo de bits de vídeo 3D pode conter várias visualizações que incluem não só componentes de visualização de textura, mas também componentes de visualização de profundidade. Por exemplo, uma determinada visualização pode compreender um componente de visualização de textura e um componente de visualização de profundidade. Os componentes de visualização de textura e profundidade podem ser utilizados para construir dados de vídeo 3D.
SUMÁRIO
[006] De um modo geral, esta divulgação descreve técnicas para a sinalização e processamento de informação que indica o uso de codificação de profundidade simplificada (SDC) para modos de intrapredição de profundidade e interpredição de profundidade em um processo de codificação de vídeo 3D, tal como um processo definido pela extensão 3D- HEVC para HEVC. Em alguns exemplos, a divulgação descreve técnicas para unificar a sinalização do uso de SDC para modos de intrapredição de profundidade e interpredição de profundidade na codificação de vídeo 3D, por exemplo, usando um elemento de sintaxe para indicar o uso de SDC para ambos intrapredição de profundidade e interpredição e profundidade.
[007] A sinalização de SDC pode ser unificada para que um decodificador de vídeo ou codificador de vídeo, isto é, um codificador de vídeo, utilize o mesmo elemento de sintaxe, em vez de elementos de sintaxe separados, para a sinalização de SDC, para ambos os modos de intrapredição de profundidade e modo de interpredição de profundidade. Por exemplo, um único elemento de sintaxe pode ser sinalizado ao nível de CU para indicar se SDC é utilizada para a CU, se a CU é intrapredita ou interpredita.
[008] Além disso, em alguns exemplos, um codificador de vídeo pode sinalizar e/ou processar um valor residual gerado no modo de SDC usando a mesma estrutura de sintaxe, o mesmo tipo de estrutura de sintaxe, ou casos diferentes da mesma estrutura de sintaxe, para ambos o modo de intrapredição de profundidade e modo de interpredição de profundidade. Em cada caso, os mesmos elementos de sintaxe podem ser utilizados para sinalizar os valores residuais, por exemplo, os valores residuais de DC. Em alguns exemplos, os elementos de sintaxe para sinalização de SDC para o modo de interpredição de profundidade podem ser parte desses elementos de sintaxe para sinalização de SDC para o modo de intrapredição de profundidade. Neste caso, os elementos de sintaxe comuns podem ser compartilhados por modos de intrapredição de profundidade e interpredição de profundidade de SDC.
[009] Para os elementos de sintaxe comuns nas estruturas de sintaxe utilizadas para os valores residuais gerados pela SDC, os processos de modelo de contexto e binarização, por exemplo, para um processo de codificação de entropia por codificação aritmética binária adaptativa de contexto (CABAC), para elementos de sintaxe relevantes para ambos os modos de intrapredição de profundidade e interpredição de profundidade podem ser unificados. Por exemplo, os elementos de sintaxe para os valores residuais gerados pela SDC podem ser codificados com o mesmo processo de modelo de contexto e/ou binarização, para ambos o modo de intrapredição de profundidade e o modo de interpredição de profundidade.
[010] Em alguns exemplos, um codificador de vídeo pode aplicar uma restrição tal que codificação de modulação de código de pulso (PCM) é desabilitada quanda SDC está habilitada. Além disso, em alguns exemplos, um codificador de vídeo pode aplicar uma pressão tal que SDC é aplicada em ambos os modos de intrapredição de profundidade e interpredição de profundidade apenas por unidades de codificação que têm um determinado tamanho de partição ou tamanhos de partição.
[011] Além disso, em alguns exemplos, um único elemento de sintaxe pode ser utilizado para sinalizar se SDC está habilitada ou desabilitada para ambos os modos de intrapredição de profundidade e modos de interpredição de profundidade para CU’s em toda sequência de vídeo codificado ou uma fatia. O elemento de sintaxe pode ser apresentado, por exemplo, em uma extensão de conjunto de parâmetros de vídeo (VPS), conjunto de parâmetros de sequência (SPS), conjunto de parâmetros de imagem (PPS), cabeçalho de segmento de fatia, ou de outra estrutura de dados para sinalizar informação de sintaxe de codificação de vídeo. Como um exemplo, se este elemento de sintaxe indica que SDC está habilitada para uma sequência, em seguida, um outro elemento de sintaxe pode ser sinalizado a um nível de CU para CUs na sequência, para indicar se SDC é utilizada em cada respectiva CU. Se este elemento de sintaxe indica que o SDC está desabilitada para uma sequência, então não há necessidade de sinalizar um elemento de sintaxe no nível de CU para CUs na sequência, porque SDC está desabilitada. Alternativamente, um elemento de sintaxe pode ser provido para habilitar ou desabilitar o uso de SDC para CUs em uma imagem de uma fatia.
[012] Em um exemplo, a divulgação provê um método de decodificação de dados de vídeo, o método compreendendo a recepção de um elemento de sintaxe que indica se um modo de codificação de profundidade simplificada (SDC) é utilizado para ambas intrapredição e interpredição de uma unidade de codificação de profundidade (CU) de dados de vídeo; quando a CU de profundidade é intrapredita, realizar intrapredição para gerar uma CU de profundidade predita; quando a CU de profundidade é interpredita, realizar interpredição para gerar a CU de profundidade predita; quando o elemento de sintaxe indica que o modo de SDC é utilizado, para cada partição de uma unidade de predição (PU) da CU de profundidade, receber informação que representa pelo menos um valor residual de DC para a CU de profundidade, em que o pelo menos um valor residual de DC representa uma diferença de pixel entre a partição da PU da CU de profundidade e uma partição correspondente da CU de profundidade predita; e reconstruir a CU de profundidade utilizando o pelo menos um valor residual de DC e a CU de profundidade predita.
[013] Em um outro exemplo, a divulgação provê um método de codificação de dados de vídeo, o método compreendendo quando uma CU de profundidade é intrapredita, realizar intrapredição para gerar uma CU de profundidade predita, quando a CU de profundidade é interpredita, realizar interpredição para gerar a CU de profundidade predita, quando um modo de codificação de profundidade simplificada (SDC) é utilizado, para cada partição de uma unidade de predição (PU) da CU de profundidade, gerar informação que representa pelo menos um valor residual de DC para a CU de profundidade , em que o pelo menos um valor residual de DC representa uma diferença de pixels entre a partição da PU da CU de profundidade e uma partição correspondente da CU de profundidade predita, quando o modo de SDC é utilizado, gerar um elemento de sintaxe que indica que o modo de SDC é utilizado para ambas intrapredição e interpredição de uma unidade de codificação de profundidade (CU) dos dados de vídeo, e codificar a CU de profundidade, no codificador de vídeo, com base na informação que representa pelo menos um valor residual de DC e o elemento de sintaxe.
[014] Em um outro exemplo, a invenção provê um codificador de vídeo compreendendo uma memória de armazenamento de dados de vídeo, e um ou mais processadores configurados para codificar um elemento de sintaxe que indica se um modo de codificação de profundidade simplificada (SDC) é utilizado para ambas intrapredição e interpredição de uma unidade de codificação de profundidade (CU) dos dados de vídeo, quando a CU de profundidade é intrapredita, executar intrapredição para gerar uma CU de profundidade predita; quando a CU de profundidade é interpredita, executar interpredição para gerar a CU de profundidade predita; e quando o modo de SDC é utilizado, para cada partição de uma unidade de predição (PU) da CU de profundidade, codificar informação que representa pelo menos um valor residual de DC para a CU de profundidade, em que o pelo menos um valor residual de DC representa uma diferença de pixel entre a partição da PU da CU de profundidade e uma partição correspondente da CU de profundidade predita.
[015] Em um outro exemplo, a divulgação provê um método de decodificação de dados de vídeo, o método compreendendo, quando uma unidade de codificação de profundidade (CU) de dados de vídeo é intrapredita, realizar intrapredição para gerar uma CU de profundidade predita; quando a CU de profundidade é interpredita, realizar interpredição para gerar a CU de profundidade predita; quando um modo de codificação de profundidade simplificada (SDC) é utilizado, obter uma estrutura de sintaxe compreendendo um ou mais elementos de sintaxe indicando informação que representa pelo menos um valor residual de DC para uma partição de uma unidade de predição (PU) da CU de profundidade, em que os elementos de sintaxe da estrutura de sintaxe são os mesmos para a intrapredição e a interpredição; e reconstruir a CU de profundidade utilizando o pelo menos um valor residual de DC e a CU de profundidade predita.
[016] Em um outro exemplo, a divulgação provê um método de codificação de dados de vídeo, o método compreendendo, quando uma unidade de codificação de profundidade (CU) de dados de vídeo é intrapredita, realizar intrapredição para gerar uma CU de profundidade predita; quando a CU de profundidade é interpredita, realizar interpredição para gerar a CU de profundidade predita; quando um modo de codificação de profundidade simplificada (SDC) é utilizado, codificar uma estrutura de sintaxe compreendendo um ou mais elementos de sintaxe indicando informação que representa pelo menos um valor residual de DC para uma partição de uma unidade de predição (PU) da CU de profundidade, em que os elementos de sintaxe da estrutura de sintaxe são os mesmos para a intrapredição e a interpredição; e codificar a CU de profundidade com base na informação que representa pelo menos um valor residual de DC.
[017] Em um outro exemplo, a invenção provê um codificador de vídeo compreendendo uma memória de armazenamento de dados de vídeo; quando uma unidade de codificação de profundidade (CU) de dados de vídeo é intrapredita, executar intrapredição para gerar uma CU de profundidade predita dos dados de vídeo; quando a CU de profundidade é interpredita, executar interpredição para gerar a CU de profundidade predita dos dados de vídeo; e quando um modo de codificação de profundidade simplificada (SDC) é utilizado, codificar uma estrutura de sintaxe compreendendo um ou mais elementos de sintaxe indicando informação que representa pelo menos um valor residual de DC para uma partição de uma unidade de predição (PU) da CU de profundidade, em que os elementos de sintaxe da estrutura de sintaxe são os mesmos para o modo de intrapredição e o modo de interpredição.
[018] Em um outro exemplo, a divulgação provê um método de decodificação de dados de vídeo, o método compreendendo receber um primeiro elemento de sintaxe que indica se um modo de codificação de profundidade simplificada (SDC) é habilitado para as unidades de codificação de profundidade (CU) de uma sequência inteira de codificado de dados de vídeo; receber um segundo elemento de sintaxe que indica se o modo de SDC é utilizado para ambas intrapredição e interpredição de uma das CU de profundidade da sequência; quando uma das CUs de profundidade da sequência é intrapredita, realizar intrapredição para gerar uma CU de profundidade predita; quando uma das CUs de profundidade da sequência é interpredita, realizar interpredição para gerar a CU de profundidade predita; quando o segundo elemento de sintaxe indica que o modo de SDC é utilizado, obter informação que representa pelo menos um valor residual de DC de uma partição de uma unidade de predição (PU) para a CU de profundidades da sequência; e reconstruir a partição da PU do uma das CUs de profundidade da sequência utilizando o pelo menos um valor residual de DC e a respectiva CU de profundidade predita.
[019] Em um outro exemplo, a divulgação provê um método de codificação de dados de vídeo, o método compreendendo codificar um elemento de sintaxe que indica se o modo de uma codificação de profundidade simplificada (SDC) está habilitado para as unidades de codificação de profundidade (CU) de toda uma sequência de codif. de dados de vídeo, que codifica para um segundo elemento de sintaxe que indica se o modo de SDC é utilizado para ambas intrapredição e interpredição de uma das CU de profundidade da sequência, quando uma das CUs de profundidade da sequência é intrapredita, realizar intrapredição para gerar uma CU de profundidade predita, quando uma das CUs de profundidade da sequência é interpredita, realizar interpredição para gerar a CU de profundidade predita, e em que o segundo elemento de sintaxe indica que o modo de SDC é utilizado, codificar informação que representa pelo menos um valor residual de DC de uma partição de uma unidade de predição (PU) para as uma das CUs de profundidade da sequência.
[020] Em um outro exemplo, a invenção provê um codificador de vídeo compreendendo uma memória de armazenamento de dados de vídeo; e um ou mais processadores configurados para codificar um elemento de sintaxe que indica se um modo de codificação de profundidade simplificada (SDC) está habilitado para as unidades de codificação de profundidade (CU) de uma sequência de código inteira dos dados de vídeo; codificar um segundo elemento de sintaxe que indica se o modo de SDC é utilizado para ambas intrapredição e interpredição de uma das CUs de profundidade da sequência; quando uma das CUs de profundidade da sequência é intrapredita, executar intrapredição para gerar uma CU de profundidade predita; quando uma das CUs de profundidade da sequência é interpredita, executar interpredição para gerar a CU de profundidade predita; e, quando o segundo elemento de sintaxe indica que o modo de SDC é utilizado, codificar informação que representa pelo menos um valor residual de DC de uma partição de uma unidade de predição (PU) para a uma das CUs de profundidade da sequência.
[021] Os detalhes de um ou mais aspectos da invenção são estabelecidos nos desenhos acompanhantes e na descrição abaixo. Outras características, objetos e vantagens das técnicas descritas nesta divulgação serão evidentes a partir da descrição e desenhos, e a partir das reivindicações. BREVE DESCRIÇÃO DOS DESENHOS
[022] A figura 1 é um diagrama de blocos que ilustra um sistema de codificação de vídeo exemplar que pode utilizar as técnicas desta divulgação.
[023] A figura 2 é um diagrama que ilustra modos de intrapredição utilizados na codificação de vídeo de alta eficiência (HEVC).
[024] A figura 3 é um diagrama que ilustra um exemplo de um padrão de partição wedgelet para utilização na codificação de um bloco 8x8 de amostras de pixel.
[025] A figura 4 é um diagrama que ilustra um exemplo de um padrão de partição contour para utilização na codificação de um bloco 8x8 de amostras de pixel.
[026] A figura 5 é um diagrama de blocos que ilustra um exemplo de codificador de vídeo que pode implementar as técnicas desta divulgação.
[027] A figura 6 é um diagrama de blocos que ilustra um exemplo de decodificador de vídeo que pode implementar as técnicas desta divulgação.
[028] A figura 7 é um diagrama de fluxo que ilustra a codificação de um elemento de sintaxe para indicar o uso de SDC para uma CU para ambos os modos de intrapredição de profundidade e interpredição de profundidade.
[029] A figura 8 é um diagrama de fluxo que ilustra a decodificação de um elemento de sintaxe para indicar o uso de SDC para ambos os modos de intrapredição de profundidade e interpredição de profundidade para uma CU.
[030] A figura 9 é um diagrama de fluxo que ilustra a decodificação de um elemento de sintaxe para indicar se SDC está habilitada ou desabilitada para a CU de profundidade em uma sequência de vídeo codificado inteira.
[031] A figura 10 é um diagrama de fluxo que ilustra a decodificação de uma estrutura de sintaxe única para obter dados residuais de SDC para uma partição de PU de uma CU para modos de intrapredição e interpredição.
[032] A figura 11 é um diagrama de fluxo que ilustra o uso de restrições exemplares sobre codificação de SDC no lado do decodificador.
[033] A figura 12 é um diagrama de fluxo que ilustra o uso de um outro exemplo de restrição sobre codificação de SDC no lado do decodificador.
DESCRIÇÃO DETALHADA
[034] Esta divulgação refere-se a modos de codificação de profundidade em um processo de codificação de vídeo 3D, tais como a extensão 3D-HEVC para HEVC. Mais especificamente, a divulgação descreve técnicas nas quais a sinalização de SDC aplicada a modos de intrapredição de profundidade e interpredição de profundidade é unificada. Em alguns casos, a SDC pode ser referida, alternativamente, como codificação residual simplificada ou codificação DC segmento a segmento. Codificação de profundidade simplificada, codificação residual simplificada, e codificação DC segmento a segmento serão aqui referidas como codificação de profundidade simplificada (SDC). Em qualquer caso, tal como descrito nesta divulgação, SDC pode ser aplicada a codificação de intra profundidade e inter profundidade com técnicas de sinalização unificadas.
[035] Em 3D-HEVC, ambos os modos de SDC intra e SDC inter são utilizados. No entanto, nos projetos atuais de SDC, diferentes elementos de sintaxe e modelos de contexto são utilizados para indicar o uso de SDC intra e SDC inter em 3D-HEVC, o que torna o processo de análise de unidades de codificação mais complexo. Em alguns exemplos, as técnicas descritas nesta divulgação podem resolver este problema, em parte, pela unificação de sintaxe e contexto para SDC intra e SDC inter.
[036] Em SDC, em geral, um codificador de vídeo codifica somente uma partição residual para cada partição de uma unidade de predição (PU) de uma unidade de codificação de profundidade (CU). Por conseguinte, em SDC, o codificador de vídeo pode codificar um valor residual, por exemplo, um valor residual de DC, para um conjunto de pixels associado com uma partição da PU. A PU poderia pertencer a uma CU de profundidade intracodificada ou uma CU de profundidade intercodificada.
[037] Para cada partição de uma PU, em vez de codificar as diferenças para cada pixel em uma partição, o codificador de vídeo 20 pode determinar a diferença entre um valor médio do sinal original (ou seja, um valor médio dos pixels na partição de um bloco a ser codificado) e um valor médio do sinal de predição (ou seja, um valor médio das amostras de pixel selecionadas em uma partição correspondente do bloco preditivo), utilizar esta diferença como a DC residual para todos os pixels da PU, e sinalizar esse valor residual para um decodificador de vídeo.
[038] Os valores de profundidade podem ser opcionalmente mapeados para índices usando uma Tabela de Busca de Profundidade (DLT), que pode ser construída através da análise dos quadros dentro de um primeiro período intra antes de codificar uma sequência de vídeo completa. Se DLT é utilizada, a DLT pode ser transmitida por um codificador de vídeo para um decodificador de vídeo, por exemplo, em um conjunto de parâmetros de sequência (SPS) ou outra estrutura de sintaxe, e valores de índice decodificados podem ser mapeados para os valores de profundidade pelo decodificador de vídeo baseado na DLT. Com a utilização de DLT, mais ganho de codificação pode ser observado.
[039] Sinalização de modo de intra- e interpredição pode ser realizada no nível de unidade de codificação (CU). De modo semelhante, a indicação do uso do modo de SDC pode ser sinalizada ao nível de CU. No entanto, quando uma CU (quer intracodificada ou intercodificada) está codificada com o modo de SDC, ela pode ser dividida em várias unidades de predição (PUs). Cada PU pode ser ainda dividida em várias partições. Para o modo de SDC, um valor residual de DC pode ser sinalizado para cada partição de cada PU de uma CU. Ou seja, vários valores residuais de DC podem ser providos para múltiplas respectivas partições das PUs em uma CU.
[040] Para a sinalização de residual em modos de SDC, como descrito acima, para cada partição, a diferença de um valor representativo da partição atual e seu preditor, pode ser sinalizada por um codificador de vídeo no fluxo de bits codificado. Em alguns exemplos, a diferença pode ser sinalizada sem transformada e quantização da diferença. O residual pode ser sinalizado, utilizando dois métodos diferentes, dependendo de se uma DLT é utilizada. Quando uma DLT não é utilizada, o delta entre o valor representativo de uma partição atual e seu preditor é diretamente transmitido, por exemplo, como um valor residual de DC, com sinal. Quando uma DLT é utilizada, em vez de sinalizar diretamente a diferença de valores de profundidade, a diferença de índices de DLT pode ser sinalizada, por exemplo, diferença entre um índice de DLT do valor representativo da partição atual e um índice de DLT do preditor.
[041] Em modelos existentes para SDC, diferentes elementos de sintaxe e modelos de contexto podem ser utilizados para indicar o uso de SDC para o modo de intrapredição de profundidade e modo de interpredição de profundidade, respectivamente, em 3D-HEVC. Em 3D-HEVC, a utilização de diferentes elementos de sintaxe para indicar o uso de SDC para o modo de intrapredição de profundidade e o modo de interpredição de profundidade causa o processo de análise para o complexo de unidades de codificação (CU) no lado do decodificador.
[042] Como discutido acima, a sinalização do modo de intra e interpredição pode realizada para cada CU de profundidade, enquanto que a indicação da utilização de modo a SDC é também sinalizada ao nível de CU. De acordo com vários exemplos, esta divulgação descreve técnicas para unificar a sinalização da SDC em modos de intrapredição de profundidade e interpredição de profundidade em um processo de codificação de vídeo 3D, tal como 3D-HEVC. Em vez de sinalizar separadamente uso de SDC para a CUs intrapreditas e CUs interpreditas, um único elemento de sintaxe de SDC pode ser provido para indicar o uso de uma SDC para CU, se a CU é intra ou interpredita. As técnicas podem ser realizadas por um codificador de vídeo e/ou decodificador de vídeo, isto é, um codificador de vídeo, para unificar a sinalização de SDC para modos de intrapredição de profundidade e interpredição de profundidade na codificação de vídeo 3D. A sinalização de SDC, que pode ser referida como codificação de profundidade simplificada, codificação residual simplificada ou codificação DC segmento a segmento aqui, para modos de intra e interpredição de profundidade em um processo de codificação de vídeo 3D, pode ser unificada em conformidade com esta divulgação. Vários aspectos de técnicas de unificar sinalização de SDC são descritos abaixo.
[043] Em alguns exemplos, em codificação de profundidade, um codificador de vídeo pode usar apenas um elemento de sintaxe (por exemplo, sdc_flag) para indicar o uso de SDC para ambos os modos de profundidade-intra ou profundidade-inter. Por exemplo, um codificador de vídeo pode usar o mesmo elemento de sintaxe de SDC (por exemplo, sdc_flag) para sinalizar a uso de SDC para ambos os modos de intrapredição de profundidade e interpredição de profundidade. Um decodificador de vídeo pode processar o mesmo elemento de sintaxe (por exemplo, sdc_flag) para determinar se SDC deve ser utilizado para modos de intrapredição de profundidade e interpredição de profundidade. Se o elemento de sintaxe indica que SDC deve ser utilizado, em seguida, SDC deve ser utilizado para a CU para qualquer intrapredição de profundidade ou interpredição de profundidade. Deste modo, não é necessário sinalizar diferentes elementos de sintaxe para indicar o uso de SDC para intrapredição de profundidade e interpredição de profundidade, respectivamente. Em vez disso, um único elemento de sintaxe indica uso de SDC, independentemente do modo, intra ou inter, que é utilizado para a CU. A sinalização de um elemento sintaxe para intra e interpredição pode reduzir o overhead de sinalização, promovendo a eficiência de computação e, possivelmente, reduzindo os requisitos de memória.
[044] Por exemplo, o codificador de vídeo pode usar o mesmo elemento de sintaxe para sinalizar uso de SDC para ambas intrapredição de profundidade e interpredição de profundidade, em vez de diferentes elementos de sintaxe para separadamente sinalizar uso de SDC para a intrapredição de profundidade e interpredição de profundidade. Por conseguinte, se um único elemento de sintaxe, como sdc_flag, é utilizado, um elemento de sintaxe separado, tal como inter_sdc_flag, que indica que uma unidade de codificação (CU) atual utiliza SDC para o modo de interpredição de profundidade pode ser removido. Da mesma forma, um elemento de sintaxe que indica que uma CU atual utiliza SDC para o modo de intrapredição de profundidade também pode ser removido. Por isso, independentemente de se a CU atual está codificada com um modo de intrapredição de profundidade ou modo de interpredição de profundidade, um novo elemento de sintaxe, por exemplo, sob a forma de um flag, tal como sdc_flag, é introduzido. Quando este flag é igual a 1, SDC está habilitada para o modo de intrapredição de profundidade ou interpredição de profundidade.
[045] Além disso, em alguns exemplos, na codificação de profundidade, quando a CU de profundidade atual está codificada utilizanda SDC, para cada partição, informação residual de DC que representa um valor residual de DC para cada partição de cada PU de uma CU de profundidade intercodificada ou um CU de profundidade intracodificada pode ser unificada no sentido de que ela pode ser apresentada por uma estrutura de sintaxe residual de SDC, que inclui a informação que indica o valor absoluto do valor residual de DC e o seu sinal, quer diretamente, quer através da utilização de valores do índice de DLT. Por exemplo, um codificador de vídeo pode armazenar e/ou recuperar os valores residuais gerados no modo de SDC usando a mesma estrutura de sintaxe, ou mesmo tipo de estrutura de sintaxe, para ambas as partições de PUs em CUs codificadas com modos de intrapredição de profundidade ou interpredição de profundidade. Por exemplo, um codificador de vídeo pode gerar uma estrutura de sintaxe que contém o valor residual para uma partição de uma PU de uma CU de profundidade, e um decodificador de vídeo pode obter o valor residual para a partição da PU da CU de profundidade a partir de uma tal estrutura de sintaxe, para ambos os modos de intrapredição de profundidade e interpredição de profundidade. Assim, elementos de sintaxe e estruturas de sintaxe utilizados para sinalizar SDC podem ser unificados para intra e intercodificação de profundidade.
[046] Em alternativa, ou em adição a, se uma CU de profundidade é intracodificada e SDC é utilizada, um flag (igual a 1) indicando se a CU atual contém qualquer valor residual de DC diferente de zero em qualquer uma das suas partições pode ser adicionalmente sinalizada por um codificador de vídeo e processada por um decodificador de vídeo. Se este flag for 0, o codificador de vídeo não sinaliza valores residuais de DC e um decodificador de vídeo infere os valores residuais de DC para serem iguais a zero para cada partição.
[047] Como outra alternativa, ou em adição, um flag que indica se a CU atual DC contém qualquer valor residual diferente de zero em qualquer uma das suas partições PU pode aplicar a ambas CUs intracodificada e intercodificada. Em particular, se o flag é igual a 1, o decodificador de vídeo determina que existem valores residuais de DC diferentes de zero para ambas uma CU intracodificada e uma CU intercodificada, conforme o caso. Assim, este flag pode ser utilizado com a mesma estrutura de sintaxe, ou mesmo tipo de estrutura de sintaxe, utilizada para apresentar o valor residual de DC para as partições de PUs de uma CU intracodificada ou CU intercodificada, tal como descrito acima.
[048] Como outra alternativa, ou além disso, este flag que indica se a CU atual contém qualquer valor residual de DC diferente de zero em qualquer uma das suas partições não pode ser utilizado com uma estrutura de sintaxe utilizada para apresentar o valor residual de DC por uma CU intracodificada e CU intercodificada. Neste caso, a mesma estrutura de sintaxe, ou o tipo de estrutura de sintaxe, pode ser utilizada para CU intracodificada e CU intercodificada, tal como descrito acima, mas o valor residual de DC é sinalizado sem o uso de um flag que indica se a CU atual contém qualquer valor residual de DC diferente de zero em qualquer uma das suas partições.
[049] Em alguns exemplos, porque as estruturas de sintaxe utilizadas para valores residuais de DC para SDC em modos de intrapredição de profundidade e interpredição de profundidade compartilham os mesmos elementos de sintaxe, um modelo de contexto e processo de binarização para codificação de entropia (por exemplo, codificação aritmética binária adaptativa de contexto (CABAC)) dos elementos de sintaxe relevantes também podem ser unificados, ou seja, o mesmo modelo de contexto pode ser utilizado para elementos de sintaxe que indicam o uso de SDC ou inclui valores residuais de DC para modos de intrapredição de profundidade e interpredição de profundidade da CU. Por conseguinte, a utilização dos mesmos elementos de sintaxe e/ou estruturas de sintaxe para valores residuais gerados pela SDC para ambos os modos de intra e intercodificação de profundidade pode promover a complexidade computacional reduzida, particularmente em codificação de entropia. Por exemplo, os elementos de sintaxe para sinalização de SDC podem ser codificados com o mesmo modelo de contexto e/ou processo de binarização, para ambos o modo de intrapredição de profundidade e o modo de interpredição de profundidade. Além disso, as estruturas que portam informação de sintaxe indicando elemento de sintaxe representando os valores residuais gerados pela SDC também podem ser codificadas por entropia com o mesmo modelo de conteúdo e/ou processo de binarização para intrapredição e interpredição. A utilização do mesmo modelo de contexto para modos de intrapredição de profundidade e interpredição de profundidade, por exemplo, em codificação 3D-HEVC, pode reduzir os requisitos de carga computacional e de memória associados à codificação de entropia, especialmente no lado do decodificador.
[050] Como outro exemplo, embora sinalização SDC para os modos de intra profundidade e inter profundidade possam usar a mesma estrutura de sintaxe para valores residuais de DC, o codificador e decodificador de vídeo podem ser configurados para usar diferentes instâncias da mesma estrutura de sintaxe para intracodificação de profundidade e intercodificação de profundidade, respectivamente. Cada instância da estrutura de sintaxe pode incluir os mesmos elementos de sintaxe ou mesmos tipos de elementos de sintaxe e a mesma estrutura para sinalizar o uso de SDC e o valor residual de DC, mas as instâncias da estrutura de sintaxe podem sinalizar valores para esses elementos de sintaxe separadamente para modos de intrapredição de profundidade e interpredição de profundidade, por exemplo, uma instância da estrutura de sintaxe para a intrapredição de profundidade e uma instância da estrutura de sintaxe para a interpredição de profundidade. Assim, neste exemplo, um codificador de vídeo e/ou decodificador de vídeo podem usar os mesmos contextos e/ou processos de binarização para codificação de entropia, por exemplo, codificação CABAC, das diferentes instâncias das mesmas estruturas de sintaxe, ou podem manter os contextos e/ou processos de binarização para codificação de entropia, por exemplo, codificação CABAC, das diferentes instâncias das estruturas de sintaxe separadas para uso de SDC em modos de intrapredição de profundidade e interpredição de profundidade. Em alguns exemplos, o uso de SDC para uma CU para modo inter ou intra pode ser sinalizado com um sdc_flag flag. Na estrutura de sintaxe indicou DC residual para cada partição, um valor residual de DC pode ser sinalizado, em alguns exemplos, com uma magnitude indicada por depth_dc_abs e um sinal indicado por depth_dc_sign_flag.
[051] Em alguns exemplos de acordo com esta divulgação, decodificador de vídeo pode ser configurado para aplicar uma restrição de tal forma que a codificação de modulação de código de pulso (PCM) é desabilitada quanda SDC é utilizada. Por exemplo, uma restrição no lado do decodificador pode ser aplicada de tal modo que pcm_flag não deve ser igual a 1 quanda SDC_flag é igual a 1, por exemplo, para uma dada CU de profundidade. Quanda SDC está habilitada para ambos os modos de intra e interpredição de profundidade de uma CU, PCM não é utilizada para a CU. Por conseguinte, uma tal limitação impede que o decodificador de habilitar PCM quando um elemento de sintaxe (sdc_flag), indicando o uso de SDC é igual a 1.
[052] Além disso, em alguns exemplos, um decodificador de vídeo pode aplicar uma restrição sobre SDC tal que SDC é utilizada em ambos os modos de intrapredição de profundidade e interpredição de profundidade apenas para as unidades de codificação tendo um tamanho de partição particular ou faixa de tamanhos de partição. Por exemplo, um decodificador de vídeo pode aplicar uma restrição sobre SDC no lado do decodificador tal que ambos o modo de SDC intra e modo de SDC inter são utilizados apenas para CUs com um tamanho da partição 2Nx2N. Como alternativa, o decodificador de vídeo pode aplicar uma restrição de tal forma que o modo intra de SDC é utilizado para CUs com tamanhos de partição 2Nx2N e NxN. Assim, em um exemplo, SDC pode ser utilizada para a intrapredição de profundidade e interpredição de profundidade apenas para tamanho de partição 2Nx2N. Em outro exemplo, SDC pode ser utilizada para a interpredição de profundidade somente para o tamanho da partição 2Nx2N, mas SDC pode ser utilizada para a intrapredição de profundidade apenas para tamanhos de partição 2Nx2N e NxN.
[053] Em alguns exemplos, um codificador de vídeo e/ou decodificador de vídeo pode ser configurado para utilizar um único elemento de sintaxe, tal como um flag de um bit ou um elemento de sintaxe multi-bit, para habilitar e desabilitar SDC para ambos os modos de intrapredição de profundidade e interpredição de profundidade em um processo de decodificação, por exemplo, para uma sequência de vídeo codificado inteira. Por exemplo, um tal elemento de sintaxe pode ser codificado em uma extensão de conjunto de parâmetros de vídeo (VPS), o conjunto de parâmetro de sequência (SPS), conjunto de parâmetros de imagem (PPS), cabeçalho de segmento de fatia, ou outra estrutura de dados, para indicar se SDC está habilitada para ambos os modos de intrapredição de profundidade e interpredição de profundidade. Neste exemplo, o elemento de sintaxe único indica se SDC está habilitada para ambos os modos de intra e inter de profundidade para uma sequência de vídeo codificado. Em outro exemplo, como uma alternativa, um codificador de vídeo e/ou decodificador de vídeo pode codificar um flag para indicar se a SDC está habilitada para o modo intra de profundidade está habilitado para toda a sequência vídeo codificado e, se isso for verdade, além disso, um outro flag para indicar se SDC está habilitada para modo inter de profundidade para toda a sequência de codificação de vídeo ou toda a fatia. Neste exemplo, um elemento de sintaxe é utilizado para habilitar ou desabilitar SDC para uma sequência de vídeo codificado. Se SDC está habilitada, em seguida, um outro elemento de sintaxe (por exemplo, sdc_flag) pode ser sinalizado por um codificador para indicar o uso da SDC no nível de CU para CUs dentro da sequência de vídeos codificada. Se SDC está desabilitada, então um elemento de sintaxe para indicar o uso da SDC no nível de CU não é sinalizado pelo codificador e o decodificador não recebe um tal elemento de sintaxe.
[054] Em alguns exemplos, pode ser provido um flag (por exemplo, SdcEnableFlag) para indicar SDC se está habilitada. O flag pode ter um valor que é uma função dos valores correspondentes em um VPS, SPS, PPS, ou cabeçalho de fatia. Exemplos de elementos de sintaxe de VPS que podem determinar, em parte, o valor de SdcEnableFlag incluem vps_inter_sdc_flag e vps_depth_modes_flag. Um elemento de sintaxe (sdc_flag), em seguida, pode indicar se SDC é utilizada para uma CU. Exemplos destes elementos de sintaxe são providos abaixo. Elementos de sintaxe semelhantes podem ser providos em um VPS, SPS, PPS, ou cabeçalho de segmento de fatia para habilitar ou desabilitar SDC para uma sequência inteira de vídeo codificado, imagem ou fatia, conforme aplicável.
[055] A figura 1 é um diagrama de blocos que ilustra um sistema de codificação e decodificação de vídeo exemplar 10 que pode ser configurado para utilizar várias técnicas desta divulgação para a sinalização de SDC para os modos de intrapredição de profundidade e modos de interpredição de profundidade, tal como descrito nesta divulgação. Em alguns exemplos, o codificador de vídeo 20 e/ou decodificador de vídeo 30 do sistema 10 podem ser configurados para executar a técnicas que unificam a sinalização de SDC em modos de intrapredição de profundidade e interpredição de profundidade em um processo de codificação de vídeo 3D, tal como, por exemplo, 3D-HEVC.
[056] Como mostrado na figura 1, o sistema 10 inclui um dispositivo de origem 12, que provê dados de vídeo codificados para serem decodificados em um momento posterior por um dispositivo de destino 14. Em particular, o dispositivo de origem 12 provê os dados de vídeo para o dispositivo de destino 14 através de um meio legível por computador 16. Dispositivo de origem 12 e dispositivo de destino 14 podem compreender qualquer um de uma ampla faixa de dispositivos, incluindo computadores desktop, notebook (ou seja, laptop) computadores, tablets, set-top boxes, aparelhos telefônicos, tais como os chamados “smartphones”, as assim chamadas “smartpads”, televisores, câmeras, dispositivos de exibição, reprodutores de mídia digital, consoles de jogos de vídeo, dispositivos de streaming de vídeo, ou algo semelhante. Em alguns casos, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser equipados para comunicações sem fio.
[057] Dispositivo de destino 14 pode receber os dados de vídeo codificados para serem decodificados por meio legível por computador 16. O meio legível por computador 16 pode compreender qualquer tipo de meio ou dispositivo capaz de mover os dados de vídeo codificados do dispositivo de origem 12 para o dispositivo de destino 14. Em um exemplo, meio legível por computador 16 pode compreender um meio de comunicação, tal como um canal de transmissão, para permitir que dispositivo de origem 12 transmita dados de vídeo codificados diretamente para o dispositivo de destino 14 em tempo real.
[058] 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 com fio ou sem fio, tal como um espectro de frequência de rádio (RF) ou uma ou mais linhas de transmissão físicas. O meio de comunicação pode formar parte de uma rede baseada em pacotes, 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 base, ou qualquer outro equipamento que possa ser útil para facilitar a comunicação de dispositivo de origem 12 para o dispositivo de destino 14.
[059] Em alguns exemplos, os dados codificados podem ser produzidos a partir da interface de saída 22 para um meio de armazenamento legível por computador, tal como um meio de armazenamento legível por computador não transitório, ou seja, um dispositivo de armazenamento de dados. Da mesma forma, os dados codificados podem ser acessados a partir do dispositivo de armazenamento pela interface de entrada. O dispositivo de armazenamento pode incluir qualquer um de uma variedade de meios de armazenamento de dados não transitórios distribuídos localmente ou acessados, tal 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 o armazenamento de dados de vídeo codificados. Em um outro exemplo, o dispositivo de armazenamento pode corresponder a um servidor de arquivo ou outro dispositivo de armazenamento intermediário que pode armazenar o vídeo codificado gerado pelo dispositivo de origem 12.
[060] Dispositivo de destino 14 pode acessar dados de vídeo armazenados no dispositivo de armazenamento via streaming ou download. O servidor de arquivos pode ser qualquer tipo de servidor capaz de armazenar dados de vídeo e transmitir aqueles dados de vídeo codificados para o dispositivo de destino 14. Servidores de arquivos exemplares incluem um servidor de web (por exemplo, para um site), um servidor de FTP, dispositivos de armazenamento anexado à rede (NAS), ou uma unidade de disco local. Dispositivo de destino 14 pode acessar os dados de vídeo codificados através de qualquer conexão de dados padrão, incluindo acesso à Internet. Isto pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão com fio (por exemplo, DSL, um modem por cabo, etc.), ou uma combinação de ambos, que seja adequada para acessar aos 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 ao vivo, uma transmissão de download, ou uma combinação dos mesmos.
[061] As técnicas desta divulgação não são necessariamente limitadas a aplicações sem fio ou configurações. As técnicas podem ser aplicadas a codificação de vídeo para suportar qualquer um de uma variedade de aplicações multimídia, como transmissões de televisualização através do ar, transmissões de televisualização por cabo, transmissões de televisualização por satélite, transmissões de vídeo por streaming de Internet, como streaming adaptativo dinâmico através de HTTP (DASH), vídeo digital que é codificado sobre um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados, ou outras aplicações. Em alguns exemplos, o sistema 10 pode ser configurado para suportar transmissão de vídeo de uma via ou de duas vias para suportar aplicativos como streaming de vídeo, reprodução de vídeo, broadcast de vídeo, e/ou vídeo telefonia.
[062] No exemplo da figura 1, dispositivo de origem 12 inclui fonte de vídeo 18, codificador de vídeo 20, e interface de saída 22. O dispositivo de destino 14 inclui interface de entrada 28, decodificador de vídeo 30 e dispositivo de exibição 32. De acordo com esta divulgação, codificador de vídeo 20 de dispositivo de origem 12 pode ser configurado para aplicar técnicas de codificação de profundidade com base na partição com partições não retangulares. Em outros exemplos, um dispositivo de origem e um dispositivo de destino podem incluir outros componentes ou arranjos. Por exemplo, dispositivo de origem 12 pode receber dados de vídeo de uma fonte de vídeo externa 18, como uma câmara externa. Da mesma forma, o dispositivo de destino 14 pode interagir com um dispositivo externo, em vez de incluir um dispositivo de visualização integrada.
[063] O sistema ilustrado 10 da figura 1 é meramente um exemplo. As técnicas para SDC para modos de intrapredição de profundidade podem ser realizadas por qualquer dispositivo de codificação e/ou decodificação de vídeo digital. Embora geralmente as técnicas desta divulgação sejam realizadas por um codificador de vídeo 20 e/ou decodificador de vídeo 30, as técnicas também podem ser realizadas por um codificador / decodificador de vídeo, tipicamente referidos como um "codec". Além disso, as técnicas da presente divulgação podem também ser realizadas por um pré-processador de vídeo. Dispositivo de origem 12 e o dispositivo de destino 14 são meramente exemplos de tais dispositivos de codificação nos quais o dispositivo de origem 12 gera dados de vídeo codificados para a transmissão para o dispositivo de destino 14. Em alguns exemplos, os dispositivos 12, 14 podem operar de um modo substancialmente simétrico de tal modo que cada um dos dispositivos 12, 14 inclua componentes de codificação e decodificação de vídeo. Assim, o sistema 10 pode suportar transmissão de vídeo unidirecional ou bidirecional entre dispositivos de vídeo 12, 14, por exemplo, para streaming de vídeo, reprodução de vídeo, broadcast de vídeo, ou telefonia de vídeo.
[064] Fonte de vídeo 18 de dispositivo de origem 12 pode incluir um dispositivo de captura de vídeo, tal como uma câmera de vídeo, um arquivo de vídeo contendo vídeo capturado anteriormente, e/ou uma interface de alimentação de vídeo para receber vídeo a partir de um provedor de conteúdo de vídeo. Como uma outra alternativa, a fonte de vídeo 18 pode gerar dados baseados em computação gráfica como o vídeo de origem, ou uma combinação de vídeo ao vivo, vídeo arquivado, e vídeo gerada por computador. Em alguns casos, se a fonte de vídeo 18 é uma câmera de vídeo, dispositivo de origem 12 e dispositivo de destino 14 podem formar os chamados smartphones, tablets ou telefones de vídeo. Como mencionado acima, no entanto, as técnicas descritas nesta divulgação podem ser aplicáveis à codificação de vídeo, em geral, e podem ser aplicáveis para aplicações sem fio e/ou com fio. Em cada caso, o vídeo capturado, pré-capturado, ou gerado por computador pode ser codificado por um codificador de vídeo 20. A informação de vídeo codificado pode então ser emitida pela interface de saída 22 para um meio legível por computador 16.
[065] Meios legíveis por computador 16 pode incluir meios transientes, tais como um broadcast sem fio ou broadcast de rede com fio ou mídia de armazenamento de dados (ou seja, meios de armazenamento não transitório). Em alguns exemplos, um servidor de rede (não mostrado) pode receber dados de vídeo codificados a partir do dispositivo de origem 12 e prover os dados de vídeo codificados para o dispositivo de destino 14, por exemplo, por meio de transmissão de rede. Da mesma forma, um dispositivo de computação de uma instalação de produção de disco, tal como uma unidade de estampagem de disco, pode receber dados de vídeo codificado a partir do dispositivo de origem 12 e produzir um disco contendo os dados de vídeo codificados. Portanto, meio legível por computador 16 pode ser entendido como incluindo um ou mais meios legíveis por computador de várias formas, em vários exemplos.
[066] Esta divulgação pode geralmente se referir a um codificador de vídeo 20 "sinalizando" certa informação para outro dispositivo, como decodificador de vídeo 30. Deve ser entendido, no entanto, que o codificador de vídeo 20 pode sinalizar informação associando certos elementos de sintaxe com várias porções codificadas de dados de vídeo. Ou seja, codificador de vídeo 20 pode "sinalizar" dados armazenando certos elementos de sintaxe em cabeçalhos ou em cargas úteis de várias porções codificadas de dados de vídeo. Em alguns casos, tais elementos de sintaxe podem ser codificados e armazenados (por exemplo, armazenado em meio legível por computador 16) antes de ser recebido e decodificado pelo decodificador de vídeo 30. Deste modo, o termo "sinalização" pode geralmente se referir à comunicação de sintaxe ou outros dados para decodificar os dados de vídeo comprimidos, quer essa comunicação ocorra em tempo quase real ou real que ao longo de um período de tempo, como pode ocorrer quando do armazenamento de elementos de sintaxe em um meio no momento da codificação, que pode então ser recuperado por um dispositivo de decodificação, em qualquer momento após ter sido armazenado neste meio.
[067] Interface de entrada 28 do dispositivo de destino 14 recebe informações de meio legível por computador 16. As informações de meio legível por computador 16 podem incluir informações de sintaxe definidas pelo codificador de vídeo 20, que também são utilizadas pelo decodificador de vídeo 30, que inclui elementos de sintaxe que descrevem características e/ou processamento de blocos e outras unidades codificadas, por exemplo, GOPs. O dispositivo de exibição 32 mostra os dados de vídeo decodificados para um usuário, e pode compreender qualquer um de uma variedade de dispositivos de exibição, tais como uma TUbo de raios catódicos (CRT), um display de cristal líquido (LCD), uma tela de plasma, um display de diodo emissor de luz orgânica (OLED), um dispositivo de projeção, ou outro tipo de dispositivo de exibição.
[068] Embora não mostrado na figura 1, em alguns aspectos, codificador de vídeo 20 e decodificador de vídeo 30 podem cada ser integrado com um codificador e decodificador de áudio, e podem incluir unidades MUX-DEMUX apropriadas, ou outro hardware e software, para lidar com a codificação de áudio e vídeo em um fluxo de dados comum ou fluxos de dados separados. Se for o caso, as unidades MUX- DEMUX podem estar em conformidade com o protocolo de multiplexador ITU H.223, como um exemplo, ou outros protocolos tal como o protocolo de Datagrama de Usuário (UDP).
[069] O codificador de vídeo 20 e decodificador de vídeo 30 cada um pode ser implementado como qualquer um de uma variedade de codificador adequado ou circuito decodificador, conforme o caso, tal como um ou mais microprocessadores, processadores de sinais digitais (DSPs), circuitos integrados de aplicação específica (ASIC), arranjos de porta programáveis em campo (FPGA), circuitos de lógica discreta, software, hardware, firmware ou quaisquer suas combinações. Cada um do codificador de vídeo 20 e decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, cada um dos quais pode ser integrado como parte de um codificador / decodificador de vídeo combinado (codec). Um dispositivo, incluindo um codificador de vídeo 20 e/ou decodificador de vídeo 30 pode compreender um circuito integrado, um microprocessador, e/ou um dispositivo de comunicação sem fio, tal como um telefone celular.
[070] Codificador de vídeo 20 e decodificador de vídeo 30 pode operar de acordo com um padrão de codificação de vídeo, como o padrão HEVC e, mais particularmente, a extensão 3D-HEVC do padrão HEVC, como mencionado nesta divulgação. HEVC presume várias capacidades adicionais de dispositivos de codificação de vídeo relativos a dispositivos configurados para realizar codificação de acordo com outros processos, tais como, por exemplo, ITU-T H.264/AVC. Por exemplo, enquanto H.264 provê nove modos de codificação de intrapredição, o HM pode prover até trinta e cinco modos de codificação de intrapredição.
[071] De um modo geral, HEVC especifica que uma imagem de vídeo (ou "quadro") pode ser dividida em uma sequência de blocos em árvore ou unidades de codificação maiores (LCU) que incluem tanto as amostras de luminância quanto as de crominância. Sintaxe de dados dentro de um fluxo contínuo de dados pode definir um tamanho para a LCU, que é uma unidade de codificação maior em termos de número de pixels. Uma fatia inclui um número de blocos em árvore consecutivos na ordem de codificação. Uma imagem pode ser dividida em uma ou mais fatias. Cada bloco em árvore pode ser dividido em unidades de codificação (CUs) de acordo com um quadtree. Em geral, uma estrutura de dados quadtree inclui um nó por CU, com um nó raiz correspondente ao bloco em árvore. Se uma CU é dividida em quatro sub-CUs, o nó correspondente à CU inclui quatro nós de folhas, cada um dos quais corresponde a uma das sub-CUs.
[072] Cada nó da estrutura de dados pode prover dados de sintaxe quadtree para a CU correspondente. Por exemplo, um nó no quadtree pode incluir um flag de divisualização, que indica se a CU correspondente ao nó é dividida em sub-CUs. Elementos de sintaxe para uma CU podem ser definidos recursivamente, e podem depender do fato de a CU ser dividida em sub-CUs Se uma CU não é adicionalmente dividida, ela é referida como uma folha-CU. Quatro sub-CUs de uma folha-CU também podem ser referidas como folha-CUs mesmo se não houver divisualização explícita da folha-CU original. Por exemplo, se uma CU em tamanho de 16x16 não é adicionalmente dividida, as quatro sub-CUs 8x8 irão também ser referidas como folha-CUs embora a CU 16x16 nunca tenha sido dividida.
[073] Uma CU em HEVC tem um efeito semelhante ao de 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 dividido em quatro nós filho (também referidos como sub-CUs), e cada nó filho por sua vez pode ser um nó pai e ser dividido em mais quatro nós filho. Um nó filho final, indivisível, referido como um nó folha do quadtree, compreende um nó de codificação, também referido como uma folha-CU. Sintaxe de dados associada com um fluxo de bits codificado pode definir um número máximo de vezes que um bloco em árvore pode ser dividido, referido como uma profundidade de CU máxima, e também pode definir um tamanho mínimo dos nós de codificação. Por conseguinte, um fluxo de bits pode também definir uma unidade de codificação menor (SCU). Esta descrição usa o termo "bloco" para se referir a qualquer um de uma CU, PU, ou TU, no contexto de HEVC, ou estruturas de dados semelhantes no contexto de outras normas (por exemplo, macroblocos e sub-blocos do mesmo em H.264/AVC).
[074] Uma CU inclui um nó de codificação e unidades de predição (UP) e unidades de transformada (TUs) associadas com o nó de codificação. Um tamanho da CU corresponde a um tamanho do nó de codificação e deve ser de forma quadrada. 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. Dados de sintaxe associados a uma CU podem descrever, por exemplo, o particionamento da CU em uma ou mais PUs. Modos de particionamento podem diferir entre se a CU deve ignorar ou ser codificada de modo direto, codificada de modo intrapredição, ou codificada de modo interpredição. PUs podem ser particionadas para ser não quadradas, ou incluir partições que são não retangulares na forma, no caso de codificação de profundidade, tal como descrito nesta divulgação. Sintaxe de dados associada com uma CU também pode descrever, por exemplo, particionamento da CU em uma ou mais TUs de acordo com uma quadtree. A TU pode ser quadrada ou não quadrada (por exemplo, retangular) na forma.
[075] O padrão HEVC permite transformadas de acordo com TUs, que podem ser diferentes para diferentes CUs. As TUs são tipicamente dimensionadas com base no tamanho de PUs dentro de uma determinada CU definida para uma LCU particionada, embora isso possa não ser sempre o caso. As TUs são tipicamente do mesmo tamanho ou menores do que as PUs. Em alguns exemplos, as amostras residuais correspondentes a uma CU podem ser subdivididas em unidades menores que utilizam uma estrutura quadtree conhecida como "árvore quad residual" (RQT). Os nós 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 coeficientes de transformada, que podem ser quantizados.
[076] Uma folha-CU 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 obter amostras de referência para a PU. As amostras de referência podem ser pixels de um bloco de referência. Em alguns exemplos, as amostras de referência podem ser obtidas a partir de um bloco de referência, ou geradas, por exemplo, por interpolação ou outras técnicas. Uma PU também inclui dados relacionados com a predição. Por exemplo, quando a PU é codificada por intra modo, os dados para a PU podem ser incluídos em um quadtree residual (RQT), que pode incluir dados que descrevem um modo de intrapredição para uma TU correspondente à PU. Como outro exemplo, quando a PU é codificada inter modo, 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 uma PU podem descrever, por exemplo, um componente horizontal do vetor de movimento, um componente vertical do vetor de movimento, uma resolução para o vetor de movimento (por exemplo, precisão de um quarto de pixel ou precisão de um oitavo de pixel), um quadro de referência para o qual o vetor de movimento aponta, e/ou uma lista de imagem de referência (por exemplo, lista 0, lista 1, ou lista C) para o vetor de movimento.
[077] Uma folha-CU com uma ou mais PUs também pode incluir uma ou mais unidades de transformada (TUs). As unidades de transformada podem ser especificadas utilizando uma RQT (também referida como uma estrutura quadtree de TU), como discutido acima. Por exemplo, um flag de divisualização pode indicar se uma folha-CU é dividida em quatro unidades de transformada. Em seguida, cada unidade de transformada pode ser adicionalmente dividida em outras sub-TUs. Quando uma TU não é adicionalmente dividida, ela pode ser referida como uma folha-TU. Geralmente, para intracodificação, todas as folha-TUs pertencentes a uma folha-CU compartilham o mesmo modo de intrapredição. Isto é, o mesmo modo de intrapredição é geralmente aplicado para calcular os valores preditos para todas as TUs de uma folha-CU. Para a intracodificação, um codificador de vídeo 20 pode calcular um valor residual para cada folha-TU usando o modo de intrapredição, tal como uma diferença entre a parte da CU correspondente à TU e o bloco original. Uma TU não está necessariamente limitada ao tamanho de uma PU. Assim, TUs podem ser maiores ou menores do que uma PU. Para a intracodificação, uma PU pode ser colocada com uma folha-TU correspondente para a mesma CU. Em alguns exemplos, a dimensão máxima de uma folha-TU pode corresponder ao tamanho da folha-CU correspondente.
[078] Além disso, TUs de folha-CUs também podem estar associadas com as respectivas estruturas de dados quadtree, referidas como quadtrees residuais (RQTs). Isto é, uma folha-CU pode incluir um quadtree indicando a forma como a folha-CU é dividida em TUs. O nó raiz de uma quadtree TU geralmente corresponde a uma folha-CU, enquanto o nó raiz de uma quadtree CU geralmente corresponde a um bloco em árvore (ou LCU). TUs da RQT que não são divididas são referidas como folha-TUs. Em geral, esta divulgação utiliza os termos CU e TU para se referir a uma folha-CU e a uma folha-TU, respectivamente, salvo indicação em contrário.
[079] A sequência de vídeo normalmente inclui uma série de imagens. Como aqui descrito, "imagem" e "quadro" podem ser utilizados intermutavelmente. Isto é, uma imagem de vídeo que contém dados pode ser referida como um quadro de vídeo, ou simplesmente um "quadro". Um grupo de imagens (GOP) compreende geralmente uma série de uma ou mais das imagens de vídeo. Um GOP pode incluir dados de sintaxe em um cabeçalho de GOP, um cabeçalho de uma ou mais das imagens, ou em outro local, que descreve uma série de quadros incluídos no GOP. Cada fatia de uma imagem pode incluir dados de sintaxe de fatia que descrevem 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 individuais de vídeo de modo a 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 ser diferentes em tamanho de acordo com um padrão de codificação especificado.
[080] Como exemplo, HEVC suporta predição em vários tamanhos de PU. Partindo do princípio de que o tamanho de uma CU particular é 2Nx2N, HEVC suporta intrapredição em tamanhos de PU de 2Nx2N ou NxN, e interpredição em tamanhos de PU simétrica de 2Nx2N, 2NxN, Nx2N ou NxN. Uma PU tendo um tamanho de 2Nx2N representa uma CU indivisível, porque ela é do mesmo tamanho que a CU em que ela reside. Em outras palavras, uma PU 2Nx2N é do mesmo tamanho que a sua CU. O HM também suporta particionamento assimétrico para a interpredição em tamanhos de PU de 2NxnU, 2NxnD, nLx2N e nRx2N. Em particionamento assimétrico, uma direção de uma CU não é particionada, enquanto a outra direção é particionada em 25% e 75%. A parte da CU correspondente a partição de 25% é indicada por um "n" seguido por uma indicação de "Para cima", "Para baixo", "Esquerda" ou "Direita". Assim, por exemplo, "2NxnU" refere-se a uma CU 2Nx2N que é particionada horizontalmente com uma PU 2Nx0.5N na parte superior e uma PU 2Nx1.5N na parte inferior.
[081] Nesta divulgação, "NxN" e "N por N" podem ser utilizados indiferentemente para se referirem às dimensões de pixels de um bloco de vídeo em termos de dimensões vertical e horizontal, por exemplo, pixels 16x16 ou pixels 16 por 16. Em geral, um bloco de 16x16 terá 16 pixels na direção vertical (Y = 16) e 16 elementos de imagem na direção horizontal (X = 16). Do mesmo modo, um bloco de NxN geralmente tem N pixels na direção vertical e N pixels na direção horizontal, no qual N representa um valor inteiro positivo. Os pixels de um bloco podem ser dispostos em filas e colunas. Além disso, os blocos não têm necessariamente de ter o mesmo número de pixels na direção horizontal como na direção vertical. Por exemplo, os blocos podem compreender, NxM pixels em que M não é necessariamente igual a N.
[082] Na sequência de codificação interpreditiva ou intrapreditivo utilizando a PU de uma CU, codificador de vídeo 20 pode calcular dados residuais para as TUs da CU. A PU pode compreender dados de sintaxe que descrevem um método ou modo de gerar dados de pixel preditivos no domínio espacial (também referido como o domínio do pixel) e as TUs podem compreender coeficientes no domínio da transformada após a aplicação de uma transformada, por exemplo, uma transformada de cosseno discreta (DCT), transformada de número inteiro, uma transformada de wavelet, ou uma transformada conceitualmente similar aos dados de vídeo residuais. Os dados residuais podem corresponder a diferenças de pixel entre os pixels da imagem não codificada e os valores de predição correspondendo à PUs. O codificador de vídeo 20 pode formar as TUs incluindo os dados residuais na CU, em seguida, transformar as TUs para produzir coeficientes de transformada para a CU.
[083] Na sequência de quaisquer transformadas para produzir coeficientes de transformada, codificador de vídeo 20 pode realizar quantização dos coeficientes de transformada. Quantização geralmente refere-se a um processo em que os coeficientes de transformada são quantizados para possivelmente reduzir a quantidade de dados utilizados para representar os coeficientes, provendo a compressão adicional. O processo de quantização pode reduzir a profundidade do bit associado com alguns ou todos os coeficientes. Por exemplo, um valor de n bits pode ser arredondado para baixo para um valor de m bits durante quantização, em que n é maior do que m.
[084] Após a quantização, codificador de vídeo 20 pode digitalizar os coeficientes de transformada, produzindo um vetor unidimensional da matriz bidimensional incluindo coeficientes de transformada quantizados. A varredura pode ser concebida para colocar coeficientes de energia mais elevada (e, portanto, menor frequência) na frente da matriz e para colocar coeficientes de energia mais baixa (e, portanto, maior frequência) na parte de trás da matriz.
[085] Em alguns exemplos, o codificador de vídeo 20 pode utilizar uma ordem de busca predefinida para varrer os coeficientes de transformada quantizados para produzir um vetor em série que pode ser codificado por entropia. Em outros exemplos, codificador de vídeo 20 pode executar uma varredura adaptativa. Após a varredura de coeficientes de transformada quantizados, para formar um vetor unidimensional, um codificador de vídeo 20 pode codificar por entropia o vetor unidimensional, por exemplo, de acordo com a codificação de comprimento variável adaptativa de contexto (CAVLC), codificação aritmética binária adaptativa de contexto (CABAC), codificação aritmética binária adaptativa de contexto baseada em sintaxe (SBAC), codificação de entropia de particionamento de intervalo de probabilidade (PIPE) ou outra metodologia de codificação de entropia. O codificador de vídeo 20 pode também codificar por entropia elementos de sintaxe associados com os dados de vídeo codificados para utilização pelo decodificador de vídeo 30 na decodificação dos dados de vídeo.
[086] Codificador de vídeo 20 pode ainda enviar dados de sintaxe, como dados de sintaxe baseados em blocos, dados de sintaxe baseados em imagem e dados de sintaxe baseados em GOP, para decodificador de vídeo 30, por exemplo, em um cabeçalho de imagem, um cabeçalho de bloco, um cabeçalho de segmento, ou um cabeçalho de GOP. Os dados de sintaxe de GOP podem descrever uma série de imagens no respectivo GOP, e os dados de sintaxe de imagem podem indicar um modo de codificação / predição utilizado para codificar a imagem correspondente.
[087] Codificador de vídeo 20 e/ou decodificador de vídeo 30 pode realizar codificação de predição intraimagem de dados de profundidade e codificação interpredição de dados de profundidade. Além disso, de acordo com exemplos desta divulgação, o codificador de vídeo 20 e/ou decodificador de vídeo 30 pode usar SDC para codificar os dados residuais resultantes de codificação intrapredição de profundidade de dados de vídeo e/ou codificação interpredição de profundidade dos dados de vídeo, por exemplo, de acordo para qualquer um de uma variedade de exemplos, como será descrito. Mais especificamente, um codificador de vídeo 20 e/ou decodificador de vídeo 30 pode ser configurado de acordo com as técnicas desta divulgação para sinalizar a uso de SDC para a intrapredição de profundidade e interpredição de profundidade de uma maneira mais uniforme em um processo de codificação de vídeo 3D, tal como, por exemplo, 3D-HEVC.
[088] Esta divulgação descreve técnicas para codificação de vídeo 3D baseada em codecs avançados, como Codecs de Codificação de Vídeo de Alta Eficiência (HEVC). As técnicas de codificação 3D descritas nesta divulgação incluem técnicas de codificação de profundidade relacionadas com intercodificação avançada de visualizações de profundidade em um processo de codificação de vídeo multivisualização mais profundidade, tais como a extensão 3D-HEVC para HEVC, que está atualmente em desenvolvimento. Padrões de codificação de vídeo e técnicas HEVC relacionadas a esta divulgação são revisualizações abaixo.
[089] Um projeto recente do padrão HEVC, JCTVC- L1003, Benjamin Bross, Woo-Jin Han, Jens-Ranier Ohm, Gary Sullivan, Ye-Kui Wang, Thomas Wiegand, "High Efficiency Video Coding (HEVC) text specification draft 10 (for FDIS & Last Call), "Joint Collaborative Team on Video Coding (JCT- VC) de ITU-T SG 16 WP3 e ISO/IEC JTC 1/SC 29/WG 11, 12° Encontro: Genebra, CH, 14-23 janeiro de 2013 ("HEVC WD10"), é aqui incorporado por referência na sua totalidade, e está disponível a partir do seguinte link: http://phenix.it-sudparis.eu/jct/doc_end_user/documents/ 12_Genebra/wg11/JCTVC-L1003-v34.zip
[090] Um projeto recente de 3D-HEVC é apresentado em JCTVC-F1001-v1, Gerhard Tech, Krzysztof Wegner, Ying Chen, and Sehoon Yea, "3D-HEVC Projeto Text 2", Joint Collaborative Team on 3D Video Coding Extension Development de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 6° Encontro: Genebra, CH, 25 outubro - 1 novembro 2013 ("3D-HEVC"), é aqui incorporado por referência na sua totalidade, e está disponível a partir do seguinte link: http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/ 6_Genebra/wg11/JCT3V-F1001-yl.zip
[091] Em HEVC, assumindo que o tamanho de uma unidade de codificação (CU) é 2Nx2N, codificador de vídeo 20 e o decodificador de vídeo 30 podem suportar diversas unidades de predição (PU) de tamanhos de 2Nx2N ou NxN para intrapredição, e tamanhos de PU simétrica de 2Nx2N, 2NxN, Nx2N, NxN, ou semelhante para interpredição. Um codificador de vídeo e decodificador de vídeo pode também suportar particionamento assimétrico para tamanhos de PU de 2NxnU, 2NxnD, nLx2N e nRx2N para interpredição.
[092] Para a codificação de profundidade predita em 3D-HEVC, um codificador de vídeo e um decodificador de vídeo podem ser configurados para suportar uma variedade de diferentes modos de partição codificação de profundidade para intrapredição, incluindo modos que utilizam partições não retangulares. Exemplos de codificação de profundidade com partições não retangulares incluem Wedgelet com base na partição de codificação de profundidade, codificação de profundidade baseada em partição de contour, e codificação baseada em partição de cadeia de limite de região. As técnicas para intracodificação baseada em partição de partições não retangulares, como partições wedgelet ou partição de contour, como exemplos, podem ser executadas em conjunto com um modo de codificação de profundidade simplificada (SDC) para a codificação das informações residuais resultantes de codificação de intrapredição. Além disso, para modos intra / inter convencionais em HEVC, as técnicas podem também ser realizadas em conjunto com o modo de SDC para codificação da informação residual resultante da codificação de intrapreditiva ou codificação de interpreditiva de dados de profundidade.
[093] Os dados de vídeo codificados usando técnicas de codificação de vídeo 3D podem ser processados e exibidos para produzir um efeito tridimensional. Como um exemplo, duas imagens de diferentes visualizações (isto é, correspondente a duas perspectivas de câmara tendo posições horizontais ligeiramente diferentes) podem ser exibidas de modo substancialmente simultâneo, tal que uma imagem é visualização pelo olho esquerdo do espectador, e a outra imagem é visualização pelo direito do espectador.
[094] Um efeito 3D pode ser conseguido utilizando, por exemplo, displays estereoscópicos ou displays autoestereoscópicos. Displays estereoscópicos podem ser utilizados em conjunto com óculos que filtra as duas imagens em conformidade. Por exemplo, óculos passivos podem filtrar as imagens usando lentes polarizadas, ou lentes coloridas diferentes, ou outras técnicas de filtragem óptica, para garantir que a visualização adequada veja a imagem adequada. Óculos ativos, como outro exemplo, podem rapidamente obturar lentes alternativas em coordenação com o display estereoscópico, que pode alternar entre a exibição da imagem do olho direito e a imagem do olho esquerdo. O display autoestereoscópico exibe as duas imagens, de tal modo que não são necessários quaisquer óculos. Por exemplo, display autoestereoscópico pode incluir espelhos ou prismas que estão configurados para fazer com que cada imagem seja projetada para os olhos adequados de um espectador.
[095] As técnicas desta divulgação referem-se a técnicas de codificação de dados de vídeo 3D pela codificação de dados de profundidade para suportar vídeo 3D. Em geral, o termo "textura" é utilizado para descrever valores de luminância (isto é, o brilho ou "luma") de uma imagem e valores de crominância (isto é, cor ou "croma") da imagem. Em alguns exemplos, uma imagem de textura pode incluir um conjunto de dados de luminância (Y) e dois conjuntos de dados de crominância para tons de azul (CB) e tons de vermelho (CR). Em determinados formatos, tais como croma 4: 2: 2 ou 4: 2: 0, os dados de crominância serão reduzidos em relação aos dados de luminância. Isto é, a resolução espacial de crominância pixels pode ser menor do que a resolução espacial dos pixels de luminância correspondentes, por exemplo, metade ou um quarto da resolução de luminância.
[096] A profundidade de dados geralmente descreve valores de profundidade para dados de textura correspondentes. Por exemplo, uma imagem de profundidade pode incluir um conjunto de pixels de profundidade (ou valores de profundidade) que descreve cada profundidade, por exemplo, em um componente de profundidade de uma visualização, para os correspondentes dados de textura, por exemplo, em um componente de textura da visualização. Cada pixel pode ter um ou mais valores de textura (por exemplo, luminância e crominância), e pode também ter um ou mais valores de profundidade. Uma imagem de textura e um mapa de profundidade podem, mas não precisam, ter a mesma resolução espacial. Por exemplo, o mapa de profundidade pode incluir mais ou menos pixels do que a imagem de textura correspondente. Os dados de profundidade podem ser utilizados para determinar disparidade horizontal para os dados de textura correspondentes, e, em alguns casos, também pode ser utilizada disparidade vertical.
[097] Um dispositivo que recebe os dados de textura e profundidade pode exibir uma imagem de primeira textura para uma visualização (por exemplo, uma visualização do olho esquerdo) e utilizar os dados de profundidade para modificar a primeira imagem de textura para gerar uma segunda imagem de textura para a outra visualização (por exemplo, uma visualização do olho direito) deslocando valores de pixel da primeira imagem pelos valores de disparidade horizontal determinados com base nos valores de profundidade. Em geral, disparidade horizontal (ou simplesmente "disparidade") descreve o desvio de um pixel de uma primeira visualização de um pixel correspondente na visualização direita, onde os dois pixels correspondem à mesma parte do mesmo objeto representado nas duas visualizações.
[098] Em ainda outros exemplos, dados de profundidade podem ser definidos para os pixels de uma dimensão z é perpendicular ao plano de imagem, de modo que uma profundidade associada com um dado pixel é definida em relação a um plano de disparidade zero definido para a imagem. Tal profundidade pode ser utilizada para criar disparidade horizontal para exibir o pixel, de tal modo que o elemento de imagem é exibido de forma diferente para os olhos esquerdo e direito, de acordo com o valor da profundidade de dimensão z do pixel em relação ao plano de disparidade zero. O plano de disparidade zero pode mudar para diferentes porções de uma sequência de vídeo, e a quantidade de profundidade em relação ao plano de disparidade zero, também pode mudar.
[099] Pixels localizados no plano de disparidade zero podem ser definidos de forma semelhante para os olhos direito e esquerdo. Pixels localizados em frente ao plano de disparidade zero podem ser exibidos em diferentes localizações para o olho esquerdo e direito (por exemplo, com disparidade horizontal) de modo a criar uma percepção de que o pixel parece vir para fora da imagem na direção z perpendicular ao plano da imagem. Pixels localizados atrás do plano de disparidade zero podem ser exibidos com uma ligeira desfocagem, a ligeira percepção de profundidade, ou pode ser exibida em diferentes localizações para o olho esquerdo e direito (por exemplo, com disparidade horizontal, que é oposta a de pixels localizados em frente ao plano de disparidade zero). Muitas outras técnicas podem também ser utilizadas para transmitir ou definir dados de profundidade para uma imagem.
[100] Dados de vídeo bidimensional são geralmente codificados como uma sequência de imagens discretas, cada uma das quais corresponde a um exemplo temporal particular. Ou seja, cada imagem tem um tempo de reprodução associado relativo a tempos de reprodução de outras imagens na sequência. Estas imagens podem ser consideradas imagens de textura ou imagens de textura. Na codificação de vídeo 3D baseada em profundidade, cada imagem de textura em uma sequência também pode corresponder a um mapa de profundidade. Isto é, um mapa de profundidade correspondente a uma imagem de textura descreve os dados de profundidade para a imagem de textura correspondente. Dados de vídeo multivisualização podem incluir dados para várias visualizações diferentes, onde cada uma pode incluir uma sequência respectiva de componentes de textura e componentes de profundidade correspondentes.
[101] A imagem geralmente corresponde a uma instância temporal particular. Os dados de vídeo podem ser representados por meio de uma sequência de unidades de acesso, onde cada unidade de acesso inclui todos os dados correspondentes a uma instância temporal particular. Assim, por exemplo, para os dados de vídeo multivisualização mais codificação de profundidade, imagens de textura de cada modo de exibição para uma instância temporal comum, além dos mapas de profundidade para cada uma das imagens de textura, podem ser incluídos dentro de uma unidade de acesso particular. Assim, uma unidade de acesso pode incluir várias visualizações, onde cada uma pode incluir dados para um componente de textura, que corresponde a uma imagem de textura, e os dados para um componente de profundidade, que corresponde a um mapa de profundidade.
[102] Cada unidade de acesso pode conter vários componentes ou imagens de exibição. Os componentes de visualização para uma visualização particular estão associados com id de visualização ou índice de ordem de exibição exclusivo, tal que componentes de visualização de diferentes visualizações estão associados a diferentes ids de visualização ou índices de ordem de visualização. Um componente de visualização pode incluir um componente de visualização de textura, bem como um componente de visualização de profundidade. Os componentes visualização de textura e profundidade na mesma visualização podem ter diferentes ids de camada. Um componente de visualização de textura pode ser codificado como uma ou mais fatias de textura, enquanto que o componente de visualização de profundidade pode ser codificado como uma ou mais fatias de profundidade. Multivisualização mais profundidade cria uma variedade de possibilidades de codificação, tais como intraimagem, interimagem, intravisualização, intervisualização, a predição de movimento, e semelhantes.
[103] Deste modo, os dados de vídeo 3D podem ser representados usando um formato de vídeo multivisualização mais profundidade, em que visualizações capturadas ou geradas incluem componentes de textura associados com mapas de profundidade correspondentes. Além disso, em codificação de vídeo 3D, texturas e mapas de profundidade podem ser codificados e multiplexados em um fluxo de bits de vídeo 3D. Mapas de profundidade podem ser codificados como imagens em tons de cinza, onde as amostras "luma" (isto é, pixels) dos mapas de profundidade representam valores de profundidade.
[104] Em geral, um bloco de dados de profundidade (um bloco de amostras de um mapa de profundidade, por exemplo, correspondente a pixels) pode ser referido como um bloco de profundidade. Um valor de profundidade pode ser referido como um valor de luminância está relacionado com uma amostra de profundidade. Isto é, informação de profundidade pode, geralmente, ser tratada como uma imagem de textura monocromática, em outras palavras, uma imagem de textura, incluindo valores de luminância e crominância não há valores. Em qualquer caso, os métodos intra e intercodificação convencionais podem ser aplicados por mapa de codificação de profundidade.
[105] Mapas de profundidade normalmente são caracterizados por bordas afiadas e áreas constantes, e bordas em mapas de profundidade normalmente apresentam fortes correlações com dados de textura correspondentes. Devido às diferentes estatísticas e correlações entre textura e profundidade correspondente, esquemas de codificação diferentes foram projetados para mapas de profundidade com base em um codec de vídeo 2D.
[106] Técnicas HEVC relacionados a esta divulgação são revistos abaixo. Exemplos de padrões de codificação de vídeo incluem ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC), incluindo suas extensões de Codificação de Vídeo Escalonável (SVC) e Codificação de Vídeo Multivisualização (MVC). O mais recente projeto conjunto da MVC está descrito em "codificação de vídeo avançada para serviços audiovisuais genéricos", Recomendação ITU-T H.264, Mar 2010.
[107] Além disso, Codificação de Vídeo de Alta Eficiência (HEVC), mencionado acima, é um padrão de codificação de vídeo novo e futuro, desenvolvido pela Joint Collaboration Team on Video Coding (JCT-VC) do ITU-T Video Coding Experts Group (VCEG) e ISO/IEC Motion Picture Experts Group (MPEG).
[108] A figura 2 é um diagrama que ilustra modos de intrapredição utilizados em HEVC. A figura 2 ilustra em geral as indicações de predição associadas com vários modos de intrapredição direcionais disponíveis para intracodificação em HEVC. No atual HEVC, para o componente de luminância de cada órgão de predição (PU), um método de intrapredição é utilizado com 33 modos angulares de predição (indexados 2-34), o modo DC (indexado com 1) e o modo de planar (indexado com 0), como mostrado na figura 2.
[109] No modo de planar (indexado com 0), a predição é realizada utilizando uma função chamada "plano" para determinar os valores de predição para cada um dos pixels dentro de um bloco de dados de vídeo, por exemplo, PU. De acordo com o modo de DC (indexado com 1), a predição é realizada utilizando um cálculo da média dos valores de pixel dentro do bloco para determinar os valores de predição para cada um dos pixels no bloco. De acordo com um modo de predição direcional, a predição é realizada com base em pixels reconstruídos de um bloco vizinho ao longo de uma direção particular (conforme indicado pelo modo). Em geral, a extremidade de cauda das setas mostradas na figura 2 representa um pixel relativo de pixels vizinhos a partir dos quais um valor é recuperado, enquanto a cabeça das setas representa a direção na qual o valor recuperado é propagado para formar um bloco de predição.
[110] Para modos de intrapredição HEVC, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 gera um valor preditor específico de pixel para cada pixel na PU usando os diferentes modos discutidos acima, por exemplo, utilizando amostras vizinhas da PU para modos 2 a 34. O codificador de vídeo 20 determina valores residuais para o bloco de vídeo com base nas diferenças entre os valores de profundidade reais e os valores de predição para os pixels do bloco, e provê os valores residuais de decodificador de vídeo 30. De acordo com HEVC WD10, codificador de vídeo 20 transforma os valores residuais e quantifica os coeficientes de transformada, e também pode codificar por entropia os coeficientes de transformada quantizados. O decodificador de vídeo 30 (por exemplo, após a decodificação de entropia, quantização inversa, e transformada inversa) determina valores reconstruídos para os pixels do bloco pela soma dos valores residuais para os valores de predição. Mais detalhes sobre modos de intrapredição HEVC são especificados no HEVC WD10.
[111] Em JCT-3V, duas extensões HEVC, a extensão multivisualização (MV-HEVC) e extensão de vídeo 3D (3D-HEVC) estão sendo desenvolvidas. Uma versão recente do software de referência, "3D-HTM versão 8.2", para 3D-HEVC é aqui incorporada por referência na sua totalidade, e pode ser baixada a partir do seguinte link: [3D-HTM version 8.2-dev0]: https://hevc.hhi.fraunhofer.de/svn/svn_3DVCSoftware/branche s/HTM-8.2-dev0/ A nova versão do software de referência, 3D-HTM 9.0, será apresentado no topo do 3D-HTM versão 8.2 e estará disponível em breve. O mais recente projeto de trabalho (número do documento: F 1001) está disponível a partir de: http://phenix.it-sudparis.eu/jct2/doc_end_user/documents /6_Genebra/wg11/ JCT3V-F1001-yl.zip
[112] Em 3D-HEVC, conforme definido no projeto 3D-HEVC acima referido, cada unidade de acesso contém várias imagens, e cada uma das imagens de cada visualização tem uma identificação de visualização única (id), ou índice de ordem de visualização. No entanto, a imagem profundidade e imagem de textura da mesma visualização podem ter diferentes ids de camada.
[113] Intracodificação de profundidade na codificação de vídeo 3D será agora descrita. Dados de vídeo 3D são representados usando o formato de vídeo multivisualização mais profundidade, em que visualizações capturadas (textura) estão associadas com mapas de profundidade correspondentes. Na codificação de vídeo 3D, texturas e mapas de profundidade são codificados e multiplexados em um fluxo de bits de vídeo 3D. Mapas de profundidade são codificados como um vídeo em escala de cinza, onde as amostras de luminância representam os valores de profundidade, e os métodos convencionais intra e intercodificação podem ser aplicados por mapa de codificação de profundidade.
[114] Como discutido acima, mapas de profundidade podem ser caracterizados por bordas afiadas e zonas constantes. Devido às diferentes estatísticas de amostras do mapa de profundidade, esquemas de codificação diferentes são projetados para mapas de profundidade com base em um codec de vídeo 2D.
[115] Em 3D-HEVC, a mesma definição dos modos de intrapredição é utilizada como no HEVC. Isto é, os modos intra utilizados em 3D-HEVC incluem os modos intra de HEVC. Além disso, em 3D-HEVC, Modos de Modelo de Profundidade (DMM) são introduzidos em conjunto com os modos de intrapredição HEVC para codificar uma unidade de intrapredição de uma fatia de profundidade. Para melhores representações de bordas afiadas em mapas de profundidade, o HTM atual (3D-HTM versão 8.2) aplica um método DMM para intracodificação de mapa de profundidade. Há dois novos modos intra em DMM. Em ambos os modos, um bloco de profundidade é dividido em duas regiões determinadas por um padrão de DMM, em que cada região é representada por um valor constante.
[116] O padrão DMM pode ser explicitamente sinalizado (modo DMM 1), ou predito por um bloco de textura co-localizado (modo 4 DMM). Existem dois tipos de modelos de particionamento definidos no DMM, incluindo particionamento de Wedgelet e o particionamento de Contour. A figura 3 é um diagrama que ilustra um exemplo de um padrão de partição Wedgelet para utilização na codificação de um bloco de amostras de pixel. A figura 4 é um diagrama que ilustra um exemplo de um padrão de partição Contour para utilização na codificação de um bloco de amostras de pixel.
[117] Para uma partição Wedgelet, um bloco de profundidade é dividido em duas regiões, por uma linha reta, tal como ilustrado na figura 3. Para o particionamento de Contour, um bloco de profundidade pode ser dividido em duas regiões irregulares, como mostrado na figura 4. Particionamento de Contour é mais flexível que o particionamento de Wedgelet, mas difícil de ser explicitamente sinalizado. No modo DMM 4, o padrão de particionamento de Contour é implicitamente derivado utilizando amostras luma reconstruídas do bloco de textura co-localizado.
[118] Como um exemplo, a figura 3 provê uma ilustração de um padrão Wedgelet para um bloco 8x8 40. Para uma partição Wedgelet, um bloco de profundidade, por exemplo, PU, é dividido em duas regiões 42, 44 por uma linha reta 46, com um ponto de início 48 localizado em (Xs, Ys) e um ponto final 50 localizado em (Xe, Ye), como ilustrado na figura 3, onde as duas regiões 42, 44 são também marcadas com P0 e P1, respectivamente. Cada padrão no bloco 40 consiste em uma matriz de tamanho uBxvB de rotulagem de dígito binário se a amostra correspondente pertence à região P0 ou P1 onde uB e vb representa o tamanho horizontal e vertical da PU atual respectivamente. As regiões P0 e P1 estão representadas na figura 3 por amostras brancas e sombreadas, respectivamente. Os padrões de Wedgelet são inicializados no começo de ambas codificação e decodificação.
[119] Como se mostra no exemplo da figura 4, um bloco de profundidade, como o bloco de profundidade 60, pode ser dividido em três regiões em forma irregular 62, 64A e 64B, utilizando o particionamento de Contour, onde região 62 é rotulada como P0 e as duas regiões 64A e 64B são co- rotuladas como P1, respectivamente. Apesar de pixels na região 64A não serem imediatamente adjacentes a pixels na região 64B, regiões 64A e 64B podem ser definidas para formar uma única região, para efeitos de prever uma PU do bloco de profundidade 60. Particionamento de Contour pode ser mais flexível do que o particionamento de Wedgelet, mas pode ser relativamente mais difícil sinalizar. No modo de DMM 4, no caso de 3D-HEVC, o padrão de particionamento de Contour é implicitamente derivado utilizando as amostras de luminância reconstruída do bloco de textura co-localizado.
[120] Com referência às figuras 3 e 4, cada quadrado individual dentro de blocos de profundidade 40 e 60 representam um respectivo pixel individual de blocos de profundidade 40 e 60, respectivamente. Os valores numéricos dentro dos quadrados representam se o pixel correspondente pertence à região 42 (valor "0", no exemplo da figura 3) ou a região 44 (valor de "1" no exemplo da figura 3). Sombreado também é utilizado na figura 3 para indicar se um pixel pertence à região 42 (quadrados brancos) ou a região 44 (quadrados sombreados em cinza).
[121] Como discutido acima, cada padrão (isto é, ambos Wedgelet e Contour) pode ser definido por uma matriz de tamanho uB x vB de rotulagem de dígito binário se a amostra correspondente (isto é, pixel) pertence à região P0 ou P1 (onde P0 corresponde à região 42 na figura 3 e a região 62 na figura 4, e à região P1 corresponde 44 na figura 3 e regiões 64A, 64B na figura 4), onde uB e vb representam o tamanho horizontal e vertical da PU atual, respectivamente. Nos exemplos da figura 3 e figura 4, a PU corresponde aos blocos 40 e 60, respectivamente. Codificadores de vídeo, como codificador de vídeo 20 e decodificador de vídeo 30, podem inicializar padrões Wedgelet no início de codificação, por exemplo, o início da codificação ou o início de decodificação.
[122] Para modos de intrapredição HEVC, um valor intrapreditor específico de pixel é gerado para cada pixel na PU usando amostras vizinhas da PU, conforme especificado na subcláusula 8.4.2 em HEVC WD10.
[123] Para outros modos intra de profundidade, um preditor DC específico de partição é calculado para cada partição dentro da PU usando até duas amostras vizinhas da PU. Assume-se que bPattern [x][y] é o padrão de partição da PU, em que x = 0...N - 1, y = 0...N-1 e N é a largura da PU. bPattern [x][y] indica qual pixel de partição (x, y) pertence à e bPattern [x][y] pode ser igual a 0 ou 1. Assume-se que BitDepth é a profundidade de amostras de profundidade de bits e assume-se que RecSample [x][y] é as amostras vizinhas reconstruídos da PU, com x = -1 e y = 0...N-1 (corresponde a pixels vizinhos a esquerda da PU) ou y = -1, x = 0...N-1 (corresponde a pixels vizinhos acima da PU). Em seguida, preditor DC de partição X, ou seja, DCPred [X], em que X = 0 ou 1 é derivado da seguinte forma: • Assume-se que bT = (bPattern [] []! = BPattern [NL] [])? 1: 0 • Assume-se que bL = (bPattern [] []! = BPattern [] [N- 1])? 1: 0 • Se BT é igual bL - DCPred [X] = (RecSample [-1] [] + RecSample [] [- 1]) >> 1 - DCPred [lx] = bl ? (RecSample [-1][N-1] + RecSample [N-1] [-1]) >> 1: 2BitDepth-1 • De outra forma - DCPred [X] = bl? RecSample [(N-1)] >> [-1]: RecSample [-1] [(N- 1)>> 1] - DCPred [1-X] = bl? RecSample [-1] [N-1]: RecSample [N-1] [-1]
[124] Como discutido acima, uma tabela de busca de profundidade (DLT) mapeia índices de profundidade para valores de profundidade. A DLT pode ser construída através da análise dos quadros dentro do primeiro período intra antes de codificar a sequência de vídeo completa. Na concepção atual de 3D-HEVC, todos os valores de profundidade válidos são classificados em ordem ascendente e inseridos na DLT com índices crescentes.
[125] A DLT é uma ferramenta de codificação opcional. No HTM atual, codificador 20 não vai usar DLT, se mais de metade dos valores de 0 a MAX_DEPTH_VALUE (por exemplo, 255 para amostras de profundidade de 8 bits) aparecem no mapa de profundidade original na etapa de análise. Caso contrário, a DLT será codificada em um conjunto de parâmetros de sequência (SPS) e/ou conjunto de parâmetros de vídeo (VPS). Para codificar DLT, o número de valores de profundidade válido está codificado com o primeiro código de Exp-Golomb. Em seguida, cada valor de profundidade válido também é codificado com um código de Exp-Golomb.
[126] Codificador 20 lê um número predefinido de quadros da sequência de vídeo de entrada a ser codificada e verifica todas as amostras para os valores do mapa de profundidade disponíveis. Durante este processo, o codificador 20 gera uma tabela de mapeamento que mapeia valores de profundidade para valores de profundidade válidos com base no mapa de profundidade original descompactado.
[127] O codificador 20 deriva a Tabela de Busca de Profundidade Idx2Depth(.), o Índice de Busca TableDepth2Idx(.), a Tabela de Mapeamento de Profundidade M(.) e o número de valores de profundidade válidos d_valid usando o seguinte algoritmo que analisa o mapa de profundidade D_t: 1. Inicialização • vetor booleano B(d) = FALSO para todos os valores de profundidade d • contador de índice i = 0 2. Processo de cada posição de pixel p em Dt para múltiplas instâncias de tempo t: • Assume-se que (B(Dt(p)) = VERDADEIRO para marcar valores de profundidade válidos 3. Número de contagem de valores VERDADEIROS em B(d) ¦ dváiido 4. Para cada d com B(d) = = VERDADEIRO: • Assume-se que Idx2Depth(i) = d • Assume-se que M(d) = d • Assume-se que Depth2Idx(d) = i • i = i + 1 5. Para cada d com B(d) = = FALSO: • Encontrar d'= arg min |d - d'| e B(d’) = = VERDADEIRO • Assume-se que M(d) = d’ • Assume-se que Depth2Idx(d) = Depth2Idx(d’).
[128] O mapeamento de um índice provido de volta a um valor de profundidade d é o seguinte: d = Idx2Depth[Idx]. Mapeamento de um valor da profundidade d para um índice Idx provido é como se segue: Idx = Depth2Idx[d].
[129] Modo intra de SDC (que também pode ser referido como a codificação de profundidade simplificada, codificação residual simplificada, ou codificação de DC segmento a segmento) é introduzida em 3D-HEVC em conjunto com os modos de intrapredição HEVC, modos DMM e modo de codificação de cadeia para codificar uma PU intra de uma fatia de profundidade. Na 3D-HEVC atual, SDC só é aplicada para tamanho da partição de PU de 2Nx2N. Em vez de codificar coeficientes de transformada quantizados, modos de SDC representam um bloco de profundidade com os dois tipos de informação seguintes: 1. O tipo de partição do bloco de profundidade atual, incluindo: a. Modo DMM 1 (2 partições) b. Planar (1 partição) 2. Para cada partição, um valor residual (no domínio do pixel) é sinalizado no fluxo de bits. Dois submodos são definidos em SDC, incluindo o modo SDC 1 e modo SDC 2, que correspondem ao tipo de partição de modo Planar e DMM 1, respectivamente.
[130] Codificação residual simplificada é utilizada em SDC. Na codificação residual simplificada, como descrito acima, um valor residual de DC é sinalizado para cada partição da PU, e nenhuma transformada ou quantização é aplicada.
[131] Para indicar a informação representando o valor residual de DC de cada partição, como discutido acima, dois métodos podem ser aplicados: 1. Diretamente codificar o valor residual de DC de cada partição que é calculado subtraindo o preditor, denotado por Pred, gerado por amostras vizinhas a partir do valor DC (isto é, valor médio, indicado por Aver) de partição atual na PU atual. 2. Quando DLTs são transmitidos, em vez de codificar o valor residual de DC, a diferença de índice do Aver e Pred mapeados a partir da Tabela de Busca de Índice é codificada. A diferença de índice é calculada subtraindo o índice de Pred do índice de Aver. No lado do decodificador, a soma da diferença de índice decodificado e o índice de Pred é mapeada de volta para valores de profundidade com base em DLT.
[132] Além da predição de amostra intervisualização e predição de movimento de intravisualização semelhante à codificação de textura, uma nova ferramenta, a saber codificação de profundidade intermodo simplificada (SIDC), também é empregada por 3D- HEVC.
[133] SIDC estende a idéia básica da SDC para a codificação de profundidade intermodo. Portanto, SIDC pode ser referida como "inter SDC" para abreviar no contexto seguinte. No entanto, em muitos casos, SDC será utilizada geralmente para referir-se a aplicação da SDC por intra ou intercodificação ao longo desta descrição. Inter SDC provê um método de codificação residual alternativo pelo qual o codificador 20 codifica apenas um valor residual de DC para uma PU. Transformada e quantização são ignoradas pelo codificador 20 e/ou decodificador de vídeo 30, e nenhuma residual adicional tal como árvore de transformada é necessária para ser gerada pelo codificador. Se inter SDC é utilizada é sinalizada pelo codificador 20 e analisada pelo decodificador 30 nos parâmetros de unidade de codificação gerais a nível de CU. Para inter SDC codificada por CU, um valor residual de DC é sinalizado para cada PU e é utilizado como residual para todas as amostras na PU. Por exemplo, a sinalização de SDC pode ser realizada pelo codificador 20 e recebida pelo decodificador 30 ao nível de CU, juntamente com a sinalização intra ou intermodo de profundidade. No entanto, quando uma CU é codificada com o modo de SDC, a CU pode ser dividida em várias PUs, e cada PU pode ser ainda dividida em partições, tais como, por exemplo, partições de wedgelet ou partições de Contourn. Os dados residuais de SDC podem incluir valores residuais de DC que são sinalizados para cada partição dentro de cada PU. Por conseguinte, no modo de SDC, cada partição de uma PU pode ter um valor residual de DC.
[134] Para diminuir os bits de sinalização para o modo inter SDC, codificador de vídeo 20 e/ou decodificador de vídeo 30 pode aplicar inter SDC só para CUs não ignoradas. Além disso, para evitar a possível sobreposição entre o modo inter SDC e o modo ignorar, codificador de vídeo 20 e/ou decodificador de vídeo 30 aplica o modo inter SDC somente quando o residual DC de cada PU dentro da CU é diferente de zero. O residual DC de uma PU pode ser calculado como a média da diferença entre um valor de amostra original e um valor de amostra de predição de todas as amostras dentro de uma partição da PU. Pois apenas a diferença DC entre uma partição de um bloco original e um bloco predição é sinalizado, para compensar a diferença AC, a estimativa média de movimento removido é empregada para a codificação intermodo de profundidade.
[135] A figura 5 é um diagrama de blocos ilustrando um codificador de vídeo exemplar 20 que pode ser configurado para implementar as técnicas desta divulgação. A figura 5 é provida para fins de explicação e não deve ser considerada como limitativa das técnicas como amplamente exemplificadas e descritas nesta divulgação. Para efeitos da explicação, esta divulgação descreve um codificador de vídeo 20, no contexto da codificação HEVC e, mais particularmente, 3D-HEVC. No entanto, as técnicas desta divulgação podem ser aplicáveis a outros padrões ou métodos de codificação.
[136] No exemplo da figura 5, um codificador de vídeo 20 inclui uma unidade de processamento de predição 100, uma unidade de geração residual 102, uma unidade de processamento de transformada 104, uma unidade de quantização 106, uma unidade de quantização inversa 108, uma unidade de processamento de transformada inversa 110, uma unidade de reconstrução 112, uma unidade de filtro 114, uma armazenador de imagem decodificada 116, e uma unidade de codificação de entropia 118. A unidade de processamento de predição 100 inclui uma unidade de processamento de interpredição 120 e uma unidade de processamento de intrapredição 126. A unidade de processamento de interpredição 120 inclui uma unidade de estimação de movimento (ME) 122 e uma unidade de compensação de movimento (MC) 124. Para facilidade de ilustração, os componentes da unidade de processamento de predição 100 são ilustrados e descritos como realizando a codificação de textura e codificação de profundidade. Em alguns exemplos, a codificação de textura e profundidade pode ser realizada pelos mesmos componentes da unidade de processamento de predição 100 ou componentes diferentes dentro da unidade de processamento de predição 100. Por exemplo, codificadores de textura e profundidade separados podem ser providos em algumas implementações. Além disso, diversos codificadores de textura e profundidade podem ser providos para codificar várias visualizações, por exemplo, para multivisualização mais codificação de profundidade. Em ambos os casos, unidade de processamento de predição 100 pode ser configurada para dados de textura intra ou intercodificados e dados de profundidade como parte de um processo de codificação 3D, tal como um processo de 3D-HEVC. Deste modo, unidade de processamento de predição 100 pode operar substancialmente de acordo com 3D-HEVC, sujeita a modificações e/ou adições descritas nesta divulgação, tais como as relacionadas com a sinalização de SDC por modos intra e interpredição. A unidade de processamento de predição 100 pode gerar e codificar os dados residuais para dados intracodificados ou intercodificados de profundidade utilizando técnicas de codificação residual SDC ou não-SDC, tal como descrito nesta divulgação. Quando SDC é utilizada, codificador de vídeo 20 pode codificar e sinalizar um elemento de sintaxe indicando uso de SDC para amobs modos de intra e interpredição de profundidade. Em outros exemplos, o codificador de vídeo 20 pode incluir mais, menos ou diferentes componentes funcionais.
[137] O codificador de vídeo 20 pode receber dados de vídeo. O codificador de vídeo 20 pode codificar cada CTU em uma fatia de uma imagem dos dados de vídeo. Cada uma das CTUs pode estar associada com blocos em árvores de codificação de luminância de tamanho igual, (CTBs) e correspondentes CTBs da imagem. Como parte de codificar uma CTU, unidade de processamento de predição 100 pode executar o particionamento quad-tree para dividir as CTBs da CTU blocos progressivamente menores. O bloco menor pode ser blocos de codificação de CUs. Por exemplo, a unidade de processamento de predição 100 pode dividir um CTB associado com uma CTU em quatro sub-blocos de tamanho igual, partição de um ou mais dos sub-blocos em quatro sub-sub-blocos de tamanho igual, e assim por diante.
[138] Codificador de vídeo 20 pode codificar CUs de uma CTU para gerar representações codificadas das CUs (ou seja, CUs codificadas). Como parte de um codificador de CU, unidade de processamento de predição 100 pode dividir os blocos de codificação associados com a CU entre uma ou mais PUs da CU. Assim, cada PU pode ser associada com um bloco de predição de luminância e blocos de predição de croma correspondentes.
[139] Codificador de vídeo 20 e decodificador de vídeo 30 pode suportar PUs tendo vários tamanhos. Tal como indicado acima, o tamanho de uma CU pode referir-se ao tamanho do bloco de luminância de codificação da CU e o tamanho de uma PU pode referir-se ao tamanho de um bloco de predição de luminância da PU. Supondo-se que o tamanho de uma CU particular é 2Nx2N, codificador de vídeo 20 e decodificador de vídeo 30 podem suportar tamanhos de PU de 2Nx2N ou NxN para a intrapredição e tamanhos de PU simétrica de 2Nx2N, 2NxN, Nx2N, NxN, ou similar para a interpredição. O codificador de vídeo 20 e decodificador de vídeo 30 podem também suportar particionamento assimétrico para tamanhos de PU de 2NxnU, 2NxnD, nLx2N e nRx2N para a interpredição. De acordo com aspectos desta divulgação, codificador de vídeo 20 e decodificador de vídeo 30 também suportam partições não retangulares de uma PU para a intercodificação de profundidade.
[140] Unidade de processamento de interpredição 120 pode gerar dados preditivos para uma PU realizando interpredição em cada PU de uma CU. Os dados preditivos para a PU podem incluir blocos de amostra de predição das informações de PU e movimento para a PU. Unidade de processamento de interpredição 120 pode realizar diferentes operações para uma PU de uma CU dependendo de se a PU é uma fatia I, uma fatia P ou uma fatia B. Em uma fatia I, todas as PUs são intrapreditas. Por isso, se a PU é uma fatia em que, unidade de processamento de interpredição 120 não realiza a interpredição sobre a PU. Assim, para os blocos codificados em I-modo, o bloco predito é formado usando a predição espacial dos blocos vizinhos anteriormente codificados dentro do mesmo quadro.
[141] Se uma PU está em uma fatia P, a unidade de estimação de movimento (ME) 122 pode procurar as imagens de referência em uma lista de imagens de referência (por exemplo, "RefPicList0") para uma região de referência para a PU. As imagens de referência podem ser armazenadas em armazenador de imagem decodificada 116. A região de referência para a PU pode ser uma região, dentro de uma imagem de referência, que contém blocos de amostra que melhor correspondem aos blocos de amostras de PU. A unidade de estimação de movimento (ME) 122 pode gerar um índice de referência que indica uma posição em RefPicList0 da imagem de referência, que contém a região de referência para a PU. Além disso, a unidade de estimação de movimento (ME) 122 pode gerar uma MV que indica um deslocamento espacial entre um bloco de codificação de PU e uma localização de referência associada com a região de referência. Por exemplo, o MT pode ser um vetor bidimensional que provê um deslocamento a partir das coordenadas da imagem atual decodificada para coordenadas de uma imagem de referência. A unidade de estimação de movimento (ME) 122 pode emitir o índice de referência e MV como a informação de movimento da PU. A unidade de compensação de movimento (MC) 124 pode gerar os blocos de amostras preditivos de PU com base em amostras reais ou interpoladas na localização de referência indicada pelo vetor de movimento da PU.
[142] Se uma PU está em uma fatia B, unidade de estimação de movimento 122 pode executar uni-predição ou bi- predição para a PU. Para executar uni-predição para a PU, a unidade de estimação de movimento 122 pode procurar as imagens de referência de RefPicList0 ou uma segunda lista de imagens de referência ("RefPicList1") para uma região de referência para a PU. A unidade de estimação de movimento (ME) 122 pode emitir, como a informação de movimento da PU, um índice de referência que indica uma posição em RefPicList0 ou RefPicList1 da imagem de referência que contém a região de referência, uma MV que indica um deslocamento espacial entre um bloco de amostras da PU e uma localização de referência associada com a região de referência, e um ou mais indicadores de direção de predição que indicam se a imagem de referência está em RefPicList0 ou RefPicList1. A unidade de compensação de movimento (MC) 124 pode gerar os blocos de amostras preditivos da PU com base, pelo menos em parte, em amostras reais ou interpoladas na região de referência indicada pelo vetor de movimento da PU.
[143] Para executar interpredição bidirecional para uma PU, a unidade de estimação de movimento 122 pode procurar as imagens de referência em RefPicList0 para uma região de referência para a PU e pode também procurar as imagens de referência em RefPicList1 para uma outra região de referência para a PU. A unidade de estimação de movimento (ME) 122 pode gerar índices de imagem de referência que indicam as posições em RefPicList0 e RefPicList1 das imagens de referência que contêm as regiões de referência. Além disso, a unidade de estimação de movimento (ME) 122 pode gerar MVs que indicam deslocamentos espaciais entre a localização de referência associada com as regiões de referência e um bloco de amostras de PU. A informação de movimento da PU pode incluir os índices de referência e as MVs da PU. A unidade de compensação de movimento (MC) 124 pode gerar os blocos de amostras preditivos da PU com base, pelo menos em parte, em amostras reais ou interpoladas na região de referência indicada pelo vetor de movimento da PU.
[144] A unidade de processamento de intrapredição 126 pode gerar dados preditivos para uma PU pela realização de intrapredição na PU. Os dados preditivos para a PU podem incluir blocos de amostras preditivos para a PU e vários elementos de sintaxe. A unidade de processamento de intrapredição 126 pode executar intrapredição na PU em fatias I, fatias P e fatias B.
[145] Para executar intrapredição em uma PU, unidade de processamento de intrapredição 126 pode usar vários modos de intrapredição para gerar vários conjuntos de dados preditivos para a PU, e selecionar um dos modos de intrapredição que produz codificação aceitável ou desempenho ideal, por exemplo, usando técnicas de otimização de taxa de distorção. Para usar um modo de intrapredição para gerar um conjunto de dados preditivos para a PU, unidade de processamento de intrapredição 126 pode estender amostras a partir de blocos de amostras de PUs vizinhas entre os blocos de amostras da PU em uma direção associada com o modo de intrapredição. As PUs vizinhas podem estar acima, acima e à direita, acima e à esquerda, ou à esquerda da PU, assumindo uma ordem de codificação da esquerda para a direita, de cima para baixo para PUs, CUs e CTUs. A unidade de processamento de intrapredição 126 pode usar vários números de modos de intrapredição, por exemplo, 33 modos de intrapredição direcional. Em alguns exemplos, o número de modos de intrapredição pode depender do tamanho da região associada com a PU.
[146] A unidade de processamento de predição 100 pode selecionar os dados preditivos para PUs de uma CU dentre os dados preditivos gerados pela unidade de processamento de interpredição 120 para as PUs ou os dados de predição gerados pela unidade de processamento de intrapredição 126 para as PUs. Em alguns exemplos, a unidade de processamento de predição 100 seleciona os dados preditivos para as PUs da CU com base em taxa / métricas de distorção dos conjuntos de dados preditivos. Os blocos de amostras de predição dos dados preditivos selecionados podem ser aqui referidos como os blocos de amostras preditivos selecionados.
[147] A unidade de geração residual102 pode gerar, com base no bloco de codificação luma, Cb e Cr de uma CU e nos blocos de luma, Cb e Cr preditivos selecionado das PUs da CU, blocos residuais de luma, Cb e Cr da CU. Por exemplo, a unidade de geração residual 102 pode gerar os blocos residuais da CU de tal forma que cada amostra nos blocos residuais tenha um valor igual a diferença entre uma amostra em um bloco de codificação da CU e uma amostra correspondente de um bloco de amostra preditivo selecionado correspondente de uma PU da UC.
[148] Unidade de processamento de transformada 104 pode executar o particionamento quad-tree para particionar os blocos residuais associados à CU para transformar blocos associados com TUs da CU. Assim, uma TU pode ser associada com um bloco de transformada de luminância e dois blocos de transformada de crominância. Os tamanhos e as posições dos blocos de transformada luminância e crominância de TUs de uma CU podem ou não podem basear-se nos tamanhos e posições dos blocos de predição das PUs da UC. Uma estrutura quad-tree conhecida como um "quad-tree residual" (RQT) pode incluir os nós associados com cada uma das regiões. As TUs de uma CU podem corresponder a nós folha da RQT.
[149] Unidade de processamento de transformada 104 pode gerar blocos de coeficiente de transformada para cada TU de uma CU através da aplicação de uma ou mais transformadas para os blocos de transformada da TU. Unidade de processamento de transformada 104 pode aplicar várias transformadas a um bloco de transformada associado a uma TU. Por exemplo, a unidade de processamento de transformada 104 pode aplicar uma transformada de cosseno discreta (DCT), uma transformada direcional, ou uma transformada conceitualmente similar a um bloco de transformada. Em alguns exemplos, unidade de processamento de transformada 104 não aplica transformadas a um bloco de transformada. Nestes exemplos, o bloco de transformada pode ser tratado como um bloco de coeficiente de transformada.
[150] Unidade de quantização 106 pode quantizar os coeficientes de transformada em um bloco de coeficientes. O processo de quantização pode reduzir a profundidade do bit associado com alguns ou todos os coeficientes de transformada. Por exemplo, um coeficiente de transformada de n bit pode ser arredondado para baixo para um coeficiente de transformada de m bit durante quantização, em que n é maior do que m. A unidade de quantização 106 pode quantizar um bloco de coeficientes associados com uma TU de uma CU com base em um valor de parâmetro de quantização (QP) associado com a CU. O codificador de vídeo 20 pode ajustar o grau de quantização aplicada aos blocos de coeficientes associados com uma CU, ajustando o valor QP associado com a UC. Quantização pode introduzir a perda de informações, assim coeficientes de transformada quantizados podem ter precisão menor do que os originais.
[151] A unidade de quantização inversa 108 e unidade de processamento de transformada inversa 110 pode aplicar quantização inversa e transformada inversa a um bloco de coeficientes, respectivamente, para reconstruir um bloco residual do bloco de coeficientes. A unidade de reconstrução 112 pode adicionar o bloco residual reconstruído para amostras correspondentes de um ou mais blocos de amostras de predição gerados pela unidade de processamento de predição 100 para produzir um bloco de transformada reconstruído associado a uma TU. Ao reconstruir blocos de transformada para cada uma das TU de uma CU deste modo, o codificador de vídeo 20 pode reconstruir os blocos de codificação da UC.
[152] Unidade de filtro 114 pode executar uma ou mais operações de desbloqueio para reduzir artefatos de bloqueio nos blocos de codificação associados a uma CU. armazenador de imagem decodificada 116 pode armazenar os blocos de codificação reconstruídos após a unidade de filtro 114 realizar uma ou mais operações de desbloqueio sobre os blocos de codificação reconstituídos. A unidade de interpredição 120 pode usar uma imagem de referência que contém os blocos de codificação reconstruídos para executar interpredição sobre PUs de outras imagens. Além disso, unidade de processamento de intrapredição 126 pode usar blocos de codificação reconstruídos em armazenador de imagem decodificada 116 para executar intrapredição em outras PUs na mesma imagem que a CU.
[153] A unidade de codificação de entropia 118 pode receber dados de outros componentes funcionais de um codificador de vídeo 20. Por exemplo, a unidade de codificação de entropia 118 pode receber os blocos de coeficiente da unidade de quantização 106 e pode receber elementos de sintaxe da unidade de processamento de predição 100. A unidade de codificação de entropia 118 pode efetuar uma ou mais operações de codificação de entropia sobre os dados para gerar dados codificados por entropia. Por exemplo, unidade de codificação de entropia 118 pode executar uma operação de codificação de comprimento variável adaptativa de contexto (CAVLC), uma operação CABAC, uma operação de codificação de comprimento variável-a-variável (V2V), uma operação de codificação aritmética binária adaptativa de contexto baseada em sintaxe (SBAC), uma operação de codificação de entropia de particionamento de probabilidade (PIPE), uma operação de codificação Golomb exponencial, ou outro tipo de operação de codificação de entropia sobre os dados. O codificador de vídeo 20 pode emitir um fluxo de bits, que inclui dados codificados por entropia gerados pela unidade de codificação de entropia 118. Por exemplo, a fluxo de bits pode incluir dados que representam uma RQT para uma CU.
[154] O codificador de vídeo 20 é um exemplo de um codificador de vídeo configurado para executar qualquer uma das técnicas de codificação residual simplificada para a intrapredição de profundidade ou interpredição de profundidade, tal como aqui descrito. De acordo com uma ou mais técnicas desta divulgação, uma ou mais unidades dentro do codificador de vídeo 20 podem executar uma ou mais técnicas descritas aqui como parte de um processo de codificação de vídeo. Do mesmo modo, o codificador de vídeo 20 pode executar um processo de decodificação de vídeo usando qualquer uma das técnicas desta divulgação, para reproduzir dados de vídeo utilizados como referência para os dados de vídeo codificados posteriormente. Como discutido acima, a unidade de quantização inversa 108, unidade de processamento de transformada inversa 110, e uma unidade de reconstrução 112, entre outros elementos de um codificador de vídeo 20, pode ser utilizado no processo de decodificação de vídeo. Os componentes adicionais de processamento 3D também podem ser incluídos dentro do codificador de vídeo 20.
[155] Por exemplo, a unidade de processamento de predição 100 e, mais particularmente, unidade de processamento de interpredição 120 e a unidade de processamento de intrapredição 126, pode executar um modo de SDC pela codificação de interpredição de profundidade e intrapredição de profundidade, respectivamente, os blocos de profundidade como aqui descritos. Unidade de processamento de interpredição 120 e a unidade de processamento de intrapredição 126, quando utilizadas, podem cada uma determinar um valor residual de DC para o bloco de profundidade, por exemplo, PU, ou cada partição da mesma. A unidade de processamento de predição 120 pode gerar um elemento de sintaxe e/ou estruturas de sintaxe que indicam que SDC é utilizada para uma PU atual para a intrapredição de profundidade e interpredição de profundidade de forma unificada, tal como descrito em vários exemplos desta divulgação.
[156] A unidade de processamento de intrapredição 126 ou unidade de processamento de interpredição 120 pode prover valor residual de DC (s) para o bloco de profundidade, juntamente com outras informações de sintaxe, a unidade de codificação de entropia 118, por exemplo, como ilustrado pela linha tracejada na figura 5. A unidade de processamento de intrapredição 126 ou unidade de processamento de interpredição 120 pode prover os valores residuais de DC à unidade de codificação de entropia 118 sem os valores que estão sendo processados pela unidade de processamento de transformada 104 e unidade de quantização 106. Em outros exemplos, a unidade de quantização 106 pode quantizar os valores residuais de DC antes da codificação de entropia pela unidade de codificação de entropia 118. A informação de sintaxe pode incluir várias informações, flags, ou outros elementos de sintaxe aqui descritos para a sinalização em associação com as técnicas desta divulgação.
[157] Por exemplo, a informação de sintaxe pode indicar, como exemplos, se o modo de SDC é executado para o bloco de profundidade, se uma partição com base (por exemplo, 3D-HEVC) foi utilizada o modo baseado em não partição ou (HEVC) para determinar o valor residual de DC, e qual modo de intrapredição de profundidade foi utilizado para determinar o valor residual de DC. Além disso, a informação de sintaxe pode indicar, de forma unificada, se o modo de SDC é utilizado uma CU, sem levar em conta se a intrapredição ou interpredição é utilizada para a CU, isto é, para qualquer intrapredição de profundidade ou interpredição de profundidade, conforme o caso. De acordo com o modo de SDC, codificador de vídeo 20 é configurado para determinar pelo menos um valor residual de DC para o bloco de profundidade (por exemplo, uma partição de uma PU de uma CU) com base no modo indicado dos modos de intrapredição de profundidade ou modos de interpredição de profundidade, em que o valor residual de DC representa um valor residual de uma pluralidade de pixels do bloco de profundidade, e codificar o valor ou a informação representando o valor residual de DC no fluxo de bits residual. [153] O codificador de vídeo 20 é um exemplo de um codificador de vídeo compreendendo uma memória de armazenamento de dados de vídeo, e um ou mais processadores configurados para realizar um método que compreende quando uma CU de profundidade é intrapredita, executar, no codificador de vídeo, intrapredição para gerar uma CU de profundidade predita, quando a CU de profundidade é interpredita, executar, no codificador de vídeo, interpredição para gerar a CU de profundidade predita, quando um modo de codificação de profundidade simplificada (SDC) é utilizado, para cada partição de uma unidade de predição (PU) da CU de profundidade, gerar, no codificador de vídeo, informação que representa pelo menos um valor residual de DC para a CU de profundidade, em que o valor residual de pelo menos uma DC representa uma diferença de pixel entre a partição da PU da CU de profundidade e uma partição correspondente da CU de profundidade predita, quando o modo de SDC é utilizado, gerar, em um decodificador de vídeo, um elemento de sintaxe que indica que o modo de SDC é utilizado para ambas intrapredição e interpredição de uma unidade de codificação de profundidade (CU) dos dados de vídeo, e codificar a CU de profundidade, no codificador de vídeo, com base na informação que representa pelo menos um valor residual de DC e o elemento de sintaxe. [154] O codificador de vídeo 20 é também um exemplo de um codificador de vídeo que compreende uma memória que armazena dados de vídeo, e um ou mais processadores configurados para executar um método compreendendo, quando uma unidade de codificação de profundidade (CU) dos dados de vídeo é intrapredita, executar, no codificador de vídeo, intrapredição para gerar uma CU de profundidade predita, quando a CU de profundidade é interpredita, executar, no codificador de vídeo, interpredição para gerar a CU de profundidade predita, quando um modo de codificação de profundidade simplificada (SDC) é utilizado, codificar, na codificação de vídeo, uma estrutura de sintaxe compreendendo um ou mais elementos de sintaxe indicando informação que representa pelo menos um valor residual de DC para uma partição de uma unidade de predição (PU) da CU de profundidade, em que os elementos de sintaxe da estrutura de sintaxe são os mesmos para a intrapredição e a interpredição, e codificar, no codificador de vídeo, a CU de profundidade com base nas informações representando pelo menos um valor residual de DC. [155] O codificador de vídeo 20 é também um exemplo de um codificador de vídeo compreendendo uma memória de armazenamento de dados de vídeo, e um ou mais processadores configurados para executar um método compreendendo codificar, em um codificador de vídeo, um elemento de sintaxe que indica se um modo de codificação de profundidade simplificada (SDC) está habilitado para as unidades de codificação de profundidade (CU) de toda a sequência de dados de vídeo codificados, codificar um segundo elemento de sintaxe que indica se o modo de SDC é utilizado para ambas intrapredição e interpredição de uma das CUs de profundidade da sequência, quando uma das CUs de profundidade da sequência é intrapredita, executar, no codificador de vídeo, intrapredição para gerar uma CU de profundidade predita, quando uma das CUs de profundidade da sequência é interpredita, executar, no codificador de vídeo, interpredição para gerar a CU de profundidade predita, e em que o segundo elemento de sintaxe indica quel o modo de SDC é utilizado, codificar informação representando pelo menos um valor residual de DC de uma partição de uma unidade de predição (PU) para as uma das CUs de profundidade da sequência.
[158] A figura 6 é um diagrama de blocos que ilustra um decodificador de vídeo exemplar 30 que está configurado para executar as técnicas desta divulgação. A figura 6 é provida para fins de explicação e não deve ser considerada como limitativa das técnicas como amplamente exemplificadas e descritas nesta divulgação. Para efeitos da explicação, esta divulgação descreve decodificador de vídeo 30 no contexto de codificação HEVC e, em particular, codificação 3D-HEVC. No entanto, as técnicas desta divulgação podem ser aplicáveis a outras normas ou métodos de codificação de vídeo 3D.
[159] No exemplo da figura 6, decodificador de vídeo 30 inclui uma unidade de entropia 150, uma unidade de processamento de predição 152, uma unidade de quantização inversa 154, uma unidade de processamento de transformada inversa 156, uma unidade de reconstrução 158, uma unidade de filtro 160, e um armazenador de imagem decodificada 162. A unidade de processamento de predição 152 inclui uma unidade de compensação de movimento (MC) 164 e uma unidade de processamento de intrapredição 166. Para facilidade de ilustração, os componentes da unidade de processamento de predição 152 são ilustrados e descritos como realizando tanto decodificação de decodificação de textura e profundidade. Em alguns exemplos, a decodificação de textura e profundidade pode ser executada com os mesmos componentes da unidade de processamento de predição 152 ou componentes diferentes dentro da unidade de processamento de predição 152. Por exemplo, decodificadores de textura e profundidadeseparados podem ser providos em algumas implementações. Além disso, vários decodificadores de textura e profundidade podem ser providos para decodificar várias visualizações, por exemplo, para multivisualização mais codificação de profundidade. Em ambos os casos, unidade de processamento de predição 152 pode ser configurada para dados de textura de intra ou interdecodificação e dados de profundidade como parte de um processo de codificação 3D, tal como um processo de 3D-HEVC. Deste modo, unidade de processamento de predição 152 pode operar substancialmente de acordo com o 3D-HEVC, sujeita a modificações e/ou adições descritas nesta divulgação, tais como as relacionadas com a sinalização de SDC para modos intra e interpredição. A unidade de processamento de predição 152 pode obter dados residuais a partir do fluxo de bits de vídeo codificado de dados de profundidade intradecodificados ou interdecodificados relacionados utilizando técnicas de codificação SDC ou não SDC residuais como descrito nesta divulgação, e reconstruir CUs usando dados de profundidade interpreditos ou intrapreditos e os dados residuais. Quando SDC é utilizada, decodificador de vídeo 30 pode decodificar um elemento de sintaxe indicando uso de SDC para ambos os modos de profundidade de intra e interpredição. Em outros exemplos, decodificador de vídeo 30 pode incluir mais, menos ou diferentes componentes funcionais.
[160] O decodificador de vídeo 30 pode receber um fluxo contínuo de dados. A unidade de decodificação de entropia 150 pode analisar o fluxo de bits para decodificar elementos de sintaxe de fluxo de bits. Unidade de decodificação de entropia 150 pode decodificar por entropia elementos de sintaxe codificados por entropia no fluxo de bits. Unidade de processamento de predição 152, uma unidade de quantização inversa 154, unidade de processamento de transformada inversa 156, unidade de reconstrução 158, e a unidade de filtro 160 podem gerar dados de vídeo decodificados com base nos elementos de sintaxe extraídos a partir do fluxo de bits.
[161] O fluxo de bits pode compreender uma série de unidades NAL. As unidades NAL do fluxo de bits pode incluir unidades NAL de fatia codificada. Como parte de decodificar o fluxo de bits, a unidade de decodificação de entropia 150 pode extrair e elementos de sintaxe decodificados por entropia das unidades NAL de fatia codificada. Cada uma das fatias codificadas pode incluir um cabeçalho de fatia e dados de fatias. O cabeçalho de fatia pode conter elementos de sintaxe que pertencem a uma fatia. Os elementos de sintaxe no cabeçalho da fatia podem incluir um elemento de sintaxe que identifica um PPS associado com uma imagem que contém a fatia. O PPS pode referir-se a um SPS, que pode por sua vez se refere a um VPS. Unidade de decodificação de entropia 150 pode também codificar por entropia outros elementos de decodificação que podem incluir informações de sintaxe, como mensagens SEI.
[162] Os elementos de sintaxe decodificados em qualquer cabeçalho de fatia, os conjuntos de parâmetros, ou mensagens SEI podem incluir informações aqui descritas como sendo um sinal para executar o modo de acordo com as técnicas de SDC exemplares descritas nesta divulgação. Por exemplo, os elementos de sintaxe decodificados podem indicar se o modo de SDC é executado para o bloco de profundidade para ambos os modos de intrapredição de profundidade e interpredição de profundidade, de forma unificada, conforme descrito nesta divulgação. Tal informação pode ser sintaxe provida para a unidade de processamento de predição 152 para decodificação e reconstrução de um bloco de profundidade de acordo com as técnicas descritas nesta divulgação.
[163] De um modo geral, além de decodificar elementos de sintaxe de fluxo de bits, decodificador de vídeo 30 pode executar uma operação de reconstrução de uma CU não particionada. Para executar a operação de reconstrução em uma CU não particionada, decodificador de vídeo 30 pode executar uma operação de reconstrução em cada TU da CU. Ao realizar a operação de reconstrução para cada TU da CU, decodificador de vídeo 30 pode reconstruir blocos da CU.
[164] Como parte de executar uma operação de reconstrução em uma TU de uma CU, unidade de quantização inversa 154 pode quantizar inversamente, ou seja, de- quantizar, blocos de coeficiente associado à TU. A unidade de quantização inversa 154 pode utilizar um valor QP associado com a CU da TU para determinar um grau de quantização e, do mesmo modo, um grau de quantização inversa para unidade de quantização inversa 154 para aplicar. Isto é, a taxa de compressão, isto é, a razão entre o número de bits utilizados para representar sequência original e o um comprimido, pode ser controlada ajustando o valor do QP utilizado quando se quantifica os coeficientes de transformada. A taxa de compressão pode também depender do método de codificação de entropia empregue.
[165] Após a unidade de quantização inversa 154 quantificar inversamente um bloco de coeficientes, unidade de processamento de transformada inversa 156 pode aplicar um ou mais transformadas inversa no bloco de coeficientes de forma a gerar um bloco residual associado à TU. Por exemplo, unidade de processamento de transformada inversa 156 pode aplicar uma DCT inversa, transformada de número inteiro inversa, transformada de Karhunen-Loeve inversa (KLT), uma transformada rotacional inversa, transformada direcional inversa, ou outra transformada inversa ao bloco de coeficientes.
[166] Se uma PU é codificada utilizando a intrapredição, unidade de processamento de intrapredição 166 pode executar intrapredição para gerar blocos preditivos para a PU. A unidade de processamento de intrapredição 166 pode usar um modo de intrapredição para gerar a luma preditiva, blocos Cb e Cr para a PU com base nos blocos de predição de Pus espacialmente. A unidade de processamento de intrapredição 166 pode determinar o modo de intrapredição para a PU com base em um ou mais elementos de sintaxe decodificados a partir do fluxo de bits.
[167] A unidade de processamento de predição 152 pode construir uma primeira lista de imagem de referência (RefPicList0) e uma segunda lista de imagem de referência (RefPicList1) com base em elementos de sintaxe extraídos a partir do fluxo de bits. Além disso, se uma PU é codificada utilizando interpredição, a unidade de decodificação de entropia 150 pode extrair informações de movimento para a PU. A unidade de compensação de movimento (MC) 164 pode determinar, com base na informação de movimento da PU, uma ou mais regiões de referência para a PU. A unidade de compensação de movimento (MC) 164 pode gerar, com base em amostras de blocos em um ou mais blocos de referência para a PU, luma preditiva, blocos Cb e Cr para a PU.
[168] Referência de continuação agora é feita à figura 6. A unidade de reconstrução 158 pode usar os blocos de transformada de luma, Cb e Cr associados com TUs de uma CU e a luma preditiva, blocos Cb e Cr das PUs da CU, ou seja, quer dados intrapredição ou dados interpredição, conforme o caso, para reconstruir os blocos de codificação de luma, Cb e Cr da CU. Por exemplo, a unidade de reconstrução 158 pode adicionar as amostras dos blocos de transformada de luma, Cb e Cr às amostras de blocos luma preditiva, Cb e Cr correspondentes para reconstruir os blocos de codificação de luma, Cb e Cr da CU.
[169] Unidade de filtro 160 pode executar uma operação de desbloqueio para reduzir artefatos de bloqueio associados com a blocos de codificação de luma, Cb e Cr da CU. Decodificador de vídeo 30 pode armazenar os blocos de codificação de luma, Cb e Cr da CU em armazenador de imagem decodificado 162. Armazenador imagem decodiicada 162 pode prover imagens de referência para posterior compensação de movimento, intrapredição e apresentação em um dispositivo de exibição, como o dispositivo de exibição 32 da figura 1. Por exemplo, decodificador de vídeo 30 pode realizar, com base na luminância, blocos Cb e Cr em armazenador de imagem decodiicada 162, operações de intrapredição ou interpredição na PU de outra CU. Desta forma, decodificador de vídeo 30 pode extrair, a partir do fluxo de bits, níveis de coeficientes de transformada do bloco de coeficientes de luminância significativa, quantizar inversamente os níveis de coeficiente de transformada, aplicar uma transformada aos níveis de coeficiente de transformada para gerar um bloco de transformada, gerar, com base, pelo menos em parte no bloco de transformada, um bloco de codificação, e emitir o bloco de codificação para exibição.
[170] O decodificador de vídeo 30 é um exemplo de um decodificador de vídeo configurado para executar qualquer uma das técnicas de sinalização unificada e análise de elementos de sintaxe indicando o uso de SDC para ambos o modo de intrapredição de profundidade e modo interpredição de profundidade, tal como aqui descrito. Em conformidade com uma ou mais técnicas desta divulgação, uma ou mais unidades dentro do decodificador de vídeo 30 podem executar uma ou mais técnicas descritas aqui como parte de um processo de decodificação de vídeo. Os componentes adicionais de codificação 3D também podem ser incluídos dentro do decodificador de vídeo 30.
[171] Por exemplo, unidade de processamento de predição 152 e, mais particularmente, a unidade de processamento de intrapredição 166 e a unidade de compensação de movimento (MC) 164, pode determinar se deseja executar SDC nos modos de intrapredição de profundidade e modos de interpredição de profundidade, como aplicável, de um processo de codificação de vídeo 3D, como 3D-HEVC. A unidade de decodificação de entropia 150 pode decodificar por entropia um ou mais valores residuais de DC para um bloco de profundidade, bem como informações de sintaxe aqui descritas, por exemplo, indicando se a intrapredição de profundidade ou interpredição de profundidade foi utilizada para codificar o bloco, bem como se o modo de SDC foi realizado para a intrapredição de profundidade ou interpredição de profundidade para codificar o bloco. Desta maneira, o decodificador 30 determina se deve usar SDC para decodificar uma CU atual, ou seja, um bloco de profundidade, com base em um elemento de sintaxe, como sdc_flag, e pode usar a mesma estrutura de sintaxe ou casos diferentes da estrutura de sintaxe para se obter o valor residual a ser utilizado com um bloco de profundidade interpredito ou bloco de profundidade interpredito para reconstruir a CU.
[172] A unidade de decodificação de entropia 150 pode prover o valor DC residual (s) e a informação de sintaxe para o bloco de processamento para a unidade de predição 152, como indicado pela linha tracejada na figura 6. Desta forma, o valor residual de DC (s) não precisa de ser primeiro provido a unidade de quantização inversa 154 e unidade de processamento de transformada inversa 156 para a quantização inversa e a transformada inversa. Em outros exemplos, a unidade de quantização inversa 154 pode inversamente quantizar o valor residual de DC (s), e prover valores residuais de DC de-quantizados para unidade de processamento de predição 152.
[173] A unidade de compensação de movimento (MC) 164 pode determinar os valores de predição para o bloco de profundidade com base em um modo de interpredição a profundidade, tal como indicado pela informação de sintaxe, por exemplo, de acordo com qualquer uma das técnicas aqui descritas. A unidade de compensação de movimento (MC) 164 pode utilizar blocos de profundidade reconstruídos a partir de imagens de referência armazenadas no armazenador de imagem decodificada 162 para determinar os valores de predição do bloco de profundidade interpredito. Se o modo de SDC é indicado, ou seja, para ambas a intrapredição e interpredição de profundidade, unidade de compensação de movimento (MC) 164 aplica SDC para reconstruir o bloco de profundidade. A unidade de compensação de movimento (MC) 164 pode reconstruir o bloco profundidade pela soma do valor residual de DC e os valores de predição. Em alguns exemplos, a unidade de compensação de movimento (MC) 164 pode utilizar unidade de reconstrução 158 para a soma dos valores residuais e de preditor para o bloco de profundidade interpredito. Por exemplo, a unidade de decodificação de entropia 150 pode prover o valor residual de DC (s) para a unidade de reconstrução 158, e unidade de compensação de movimento (MC) 164 pode prover os valores de predição para a unidade de reconstrução.
[174] A unidade de processamento de intrapredição 166 pode determinar os valores de predição para o bloco de profundidade com base no modo de intrapredição de profundidade indicado pela informação de sintaxe, por exemplo, de acordo com qualquer uma das técnicas aqui descritas. A unidade de processamento de intrapredição 166 pode utilizar blocos de profundidade reconstruídos armazenados no armazenador de imagem decodificada 162 para determinar os valores de predição. A unidade de processamento de intrapredição 166 pode reconstruir o bloco de profundidade pela soma do valor residual de DC (s) e os valores de predição, tal como aqui descrito. Em alguns exemplos, a unidade de processamento de intrapredição 166 pode utilizar unidade de reconstrução 158 para a soma dos valores residuais e de preditor do bloco de profundidade. Por exemplo, a unidade de decodificação de entropia 150 pode prover o valor residual de DC (s) para a unidade de reconstrução e unidade de processamento de intrapredição 166 pode prover os valores de predição para a unidade de reconstrução.
[175] O decodificador de vídeo 30 é um exemplo de um decodificador de vídeo que compreende um ou mais processadores configurados para codificar um elemento de sintaxe que indica se o modo de codificação de profundidade simplificada (SDC) é utilizado para ambas intrapredição e interpredição de uma unidade de codificação de profundidade (CU) dos dados de vídeo, quando a CU de profundidade é intrapredita, executar intrapredição para gerar uma CU de profundidade predita, quando a CU de profundidade é interpredita, executar interpredição para gerar a CU de profundidade predita, e quando o elemento de sintaxe indica que o modo de SDC é utilizado, gerar pelo menos um valor residual de DC para a CU de profundidade, em que o pelo menos um valor residual de DC representa uma diferença de pixels entre a CU de profundidade e a CU de profundidade predita. Os um ou mais processadores do decodificador de vídeo 30 podem ser configurados para decodificar o elemento de sintaxe, e reconstruir a CU de profundidade utilizando o pelo menos um valor residual de DC e a CU de profundidade predita.
[176] Além disso, o decodificador de vídeo 30 é um exemplo de um decodificador de vídeo que compreende um ou mais processadores configurados para quando uma unidade de codificação de profundidade (CU) de dados de vídeo for intrapredita, executar um modo de intrapredição para gerar uma CU de profundidade predita, quando a CU de profundidade é interpredita, executar um modo de interpredição para gerar a CU de profundidade predita, e quando um modo de profundidade de codificação simplificada (SDC) é utilizado, codificar a estrutura de sintaxe que inclui informação representando pelo menos um valor residual de DC para a CU de profundidade, em que os elementos de sintaxe da estrutura de sintaxe são os mesmos para o modo de intrapredição e o modo de interpredição. O decodificador de vídeo 30 pode ser, ainda, configurado para decodificar a estrutura de sintaxe, e reconstruir a CU de profundidade utilizando o pelo menos um valor residual de DC e a CU de profundidade predita.
[177] Em outro exemplo, o decodificador de vídeo 30 é um exemplo de um codificador de vídeo que compreende uma ou mais processadores configurados para codificar um elemento de sintaxe que indica se um modo de codificação de profundidade simplificada (SDC) é utilizado para ambas intrapredição e interpredição de unidades de codificação de profundidade (CU) de toda a sequência de dados de vídeo codificados, quando uma das CUs de profundidade da sequência é intrapredita, executar intrapredição para gerar uma CU de profundidade predita, quando uma das CUs de profundidade da sequência é interpredita, executar interpredição para gerar a CU de profundidade predita, e quando o elemento de sintaxe indica que o modo de SDC é utilizado, codificar informação que representa pelo menos um valor residual de DC para cada uma das CUs de profundidade da sequência, em que o pelo menos, um valor residual de DC representa uma diferença de pixels entre a respectiva CU de profundidade e a respectiva CU de profundidade predita. O decodificador de vídeo 30 pode ser configurado para reconstruir as CUs de profundidade utilizando o pelo menos um valor residual de DC para cada CU de profundidade e a respectiva CU de profundidade predita.
[178] Sintaxe e semântica para o projeto atual de 3D-HEVC serão agora descritas. Abaixo estão os elementos de sintaxe que indicam modos de SDC inter / intra em 3D-HEVC, onde referências de seção e tabela são feitas em relação a 3D-HEVC. H.7.3.2.1.2 Sintaxe de extensão de conjunto de parâmetro de vídeo 2 H.7.3.8.5 Sintaxe de unidade de codificação Semânticas vps_inter_sdc_flag[layerId] igual a 1 especifica que codificação inter de SDC é utilizada para a camada com nuh_layer_id igual a layerId. vps_inter_sdc_flag[layerId] igual a 0 especifica que codificação inter SDC não é utilizada para a camada com nuh_layer_id igual a layerId. Quando não está presente, o valor de vps_inter_sdc_flag[layerId] é inferido a ser igual a 0. inter_sdc_flag igual a 1 especifica que codificação de profundidade simplificada de blocos residuais é utilizado para a unidade de codificação atual. inter_sdc_flag igual a 0 especifica codificação de profundidade simplificada de blocos residuais não é utilizado para a unidade de codificação atual. Quando não está presente, inter_sdc_flag é inferido a ser igual a 0. H.7.4.9.5.1 Semânticas de parâmetro de modo de profundidade A variável Log2MaxDmmCbSize é definida igual a 5. A variável depthlntraModeSet é derivada, tal como especificada no seguinte: - Se log2CbSize é igual a 6, depthlntraModeSet é definida como igual a 0. - Caso contrário, se log2CbSize é igual a 3 e PartMode [xC] [yC] é igual a PART_NxN, depthlntraModeSet é definida igual a 1. - Caso contrário, depthlntraModeSet é definida igual a 2. depth_intra_mode [x0][y0] especifica o modo intra de profundidade da unidade de predição atual. Tabela H-2 especifica o valor da variável depthlntraModeMaxLen dependendo de depthlntraModeSet e o valor da variável DepthlntraMode e o nome associado dependendo de depth_intra_mode e depthlntraModeSet. A variável SdcFlag [x0][y0] é derivada conforme especificado no seguinte: Tabela H-2 - Especificação de DepthlntraMode e nome associado dependendo de depthlntraModeSet e depth_intra_mode e especificação de e depthlntraModeMaxLen dependendo de depthlntraModeSet wedge_full_tab_idx [x0][y0] especifica o índice do padrão wedgelet na lista padrão correspondente quando DepthlntraMode [x0][y0] é igual a INTRA_DEP_DMM_WFULL. depth_dc_flag [x0][y0] igual a 1 especifica que depth_dc_abs[x0][y0][i] e depth_dc_sign_flag[x0][y0][i] estão presentes. depth_dc_flag[x0][y0] igual a 0 especifica que depth_dc_abs[x0][y0][i] e depth_dc_sign_flag[x0][y0][i] não estão presentes. depth_dc_abs[x0][y0][i], depth_dc_sign_flag [x0][y0][i] são utilizadas para derivar DcOffset[x0][y0][i] como segue:
[179] Alguns progressos recentes relacionados com a SDC serão agora discutidos. Em JCT3V-F0126, Liu et al, "CE5 related: Generic SDC for all intra modes in 3D-HEVC," Joint Collaborative team on 3D Video Coding Extensions de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 6° Encontro: Genebra, CH, 25 outubro - 1 novembro de 2013, foi proposto que, em codificação de profundidade, codificação residual simplificada pode ser aplicada aos modos de intrapredição de profundidade adicional e aos modos de intrapredição de HEVC originais. Na codificação residual simplificada, um valor residual de DC é sinalizado para cada partição da PU, isto é, uma PU codificada com modos de intrapredição HEVC tem uma partição, de tal modo que todos os pixels dentro da PU estão na mesma partição, e uma PU codificada com modos de intrapredição de profundidade adicionais possui duas partições, amas transformada e quantização são ignoradas, e nenhum residual adicional é produzido, ou seja, a árvore de transformada não está presente no codec 3D baseado em HEVC.
[180] Como discutido acima, os modelos atuais de SDC apresentam o problema de que os diferentes elementos de sintaxe e modelos de contexto são utilizados para indicar o uso de inter ou intramodos de 3D-HEVC que faz o processo de análise de codificação de unidades mais complexas.
[181] A sinalização de codificação DC segmento- a-segmento (SDC) de modos de intrae interpredição de profundidade em 3D-HEVC pode ser unificada, de acordo com as técnicas descritas nesta divulgação. Vários aspectos, discutidos acima, também aqui são resumidos como se segue: 1. É proposto nesta divulgação que, em alguns exemplos de codificação de profundidade, apenas um elemento de sintaxe (por exemplo, sdc_flag) é utilizado para indicar o uso de SDC para ambos os modos inter ou intra. a. A inter_sdc_flag que indica a inter CU atual utiliza SDC é removida. b. A indicação de modo de SDC para o modo intra, também é removida. c. Independentemente se a unidade de codificação atual é codificada com intra ou interpredição, um novo flag, a saber sdc_flag é introduzido. Quando este flag é 1, SDC está habilitada. 2. Propõe-se nesta divulgação que, em alguns exemplos de codificação de profundidade, quando a CU atual é codificada como SDC, para cada partição, o valor residual de DC para a CU intercodificada ou CU intracodificada é unificado para estar presente por uma estrutura de sintaxe, que inclui o valor absoluto do valor residual de DC e o seu sinal. a. Em alternativa, ou em adição, se a CU está codificada com intra, um flag (igual a 1), indicando se a CU atual contém qualquer valor residual de DC diferente de zero em qualquer uma das suas partições pode ainda ser sinalizado. Se este flag é 0, valores residuais de DC não são sinalizados e inferidos para ser igual a zero para cada partição. b. Alternativamente, o flag acima aplica-se a amons intra e inter modos. c. Alternativamente, o flag acima não é utilizado para nenhum dos inter ou intra modos. 3. Além disso, propõe-se nesta divulgação que, em alguns eamples, as estruturas de sintaxe utilizadas para valores residuais de DC de modos inter e intra compartilham os mesmos elementos de sintaxe, portanto, os processos de binarização e modelo de contexto para os elementos de sintaxe relevantes são unificados, isto é, o mesmo modelo de contexto. a. Alternativamente, em alguns exemplos, embora modos intra de SDC e modos inter de SDC possam usar a mesma estrutura de sintaxe para valores residuais de DC, eles usam diferentes instâncias da estrutura de sintaxe, portanto, o contexto para elementos relacionados com valores residuais de DC são mantidos separados para modos intra de SDC e inter de SDC. 4. É proposto nesta divulgação que, em alguns exemplos, possa ser aplicada uma pressão no lado do decodificador, isto é, pcm_flag não deve ser igual a 1 quando o sdc_flag é igual a 1. 5. Além disso, propõe-se nesta divulgação que, em alguns exemplos, uma restrição sobre SDC no lado do decodificador pode ser aplicada, isto é, tanto o modo intra de SDC quanto o modo de inter de SDC são utilizados apenas para o tamanho de partição 2Nx2N. a. Alternativamente, o modo intra de SDC é utilizado para todos os tamanhos de partição incluindo 2Nx2N e NxN. b. Além disso, propõe-se nesta divulgação que, em alguns exemplos, um elemento de sintaxe é utilizado para habilitar / desabilitar modos intra e inter de SDC no processo de decodificação, para toda a sequência de vídeo codificado. Se o elemento de uma sintaxe indica que SDC está habilitado para uma sequência, em seguida, o codificador sinaliza um outro elemento de sintaxe para indicar se SDC é utilizada ao nível de CU, por exemplo, como descrito com referência à utilização de uma elemnto sdc_flag unificado no item 1 acima. a. Este elemento de sintaxe pode ser definido, em alguns exemplos, em uma extensão de conjunto de parâmetro xde vídeo, conjunto de parâmetros de sequência, conjunto de parâmetros de imagem ou cabeçalho de segmento de fatia etc. b. Alternativamente, em alguns exemplos, um flag é utilizado para indicar se a SDC em modo intra está habilitada para toda a sequência de vídeo codificado, se isso for verdade, além disso, outro flag é utilizado para indicar se a SDC em modo inter está habilitada para toda a sequência de vídeo codificado.
[182] Uma variedade de exemplos de execução é descrita abaixo. De acordo com os exemplos abaixo, as alterações são feitas a elementos de sintaxe e à semântica de 3D-HEVC. Nos elementos de sintaxe e semântica abaixo, partes pertinentes de 3D-HEVC foram alteradas para adicionar elementos de sintaxe e semântica propostos no documento JCT3V-F0126.
[183] Tabelas exemplares de sintaxe são apresentadas a seguir, seguido por semântica pertinente, em que referências de seção e tabela referem-se a referências de seção e de tabela em 3D-HEVC correspondente.
[184] Os exemplos a seguir ilustram a utilização do elemento de sintaxe sdc_flag[x0][y0] para especificar o uso da SDC no nível de CU, o uso de um elemento de sintaxe SdcEnableFlag para indicar se SDC está habilitada, e elementos de sintaxe depth_dc_abs[x0][y0][i] e depth_dc_sign_flag[x0][y0][i]para indicar valor residual de DC e sinal, respectivamente. Os elementos de sintaxe são exemplos de elementos de sintaxe descritos nesta divulgação para a sinalização de uso de SDC, status de habilitar / desabilitar de SDC e valores residuais SDC, respectivamente. Em alguns exemplos, o elemento de sintaxe SdcEnableFlag pode ser derivado pelo menos em parte a partir de um ou mais valores preditos em VPS, tal como vps_inter_sdc_flag[nuh_layer_id], e vps_depth_modes_flag[nuh_layer_id], e pode ser configurado para habilitar ou desabilitar SDC para uma sequência de vídeo codificado inteira. H.7.3.8.5 Sintaxe de unidade de codificação
[185] Alternativamente, quando ambas inter e intra SDC são apenas aplicadas a CUs com tamanho de partição igual a 2Nx2N, a seguinte sintaxe pode ser usada. H.7.3.8.5.1 Tabela de sintaxe de valor residual de DC profundidade
[186] Exemplo de semântica e o processo de decodificação irão agora ser descritos com referência a 3D-HEVC. H.7.4.9.5 Unidade de codificação de semântica sdc_flag[x0][y0] igual a 1 especifica codificação DC segmento a segmento de blocos residuais é utilizada para a unidade de codificação atual. sdc_flag[x0][y0] igual a 0 especifica blocos de codificação residuais DC segmento a segmento não é utilizado para a unidade de codificação atual. Quando não está presente, sdc_flag[x0][y0] é inferida a ser igual a 0. hevc_intra_flag[x0][y0] igual a 1 especifica que os modos intra com intraPredMode na faixa de 0 a 34 é utilizado para a unidade de predição atual. hevc_intra_flag[x0][y0] igual a 0 especifica que um outro modo intra é utilizado para a unidade de predição atual. Quando não está presente, hevc_intra_flag[x0][y0] é inferido a ser igual a 1. A variável [x0][y0] DmmFlag é derivado conforme especificado no seguinte: DmmFlag[x0] [y0] =!hevc_intra_flag[x0][y0] (H-25) depth_intra_mode [x0][y0] especifica o modo intra profundidade da unidade de predição atual. depth_intra_mode [x0][y0] igual a 0 especifica que DepthIntraMode [x0][y0] é igual INTRA_DEP_DMM_WFULL e depth_intra_mode [x0][y0] igual a 1 especifica que DepthIntraMode [x0][y0] é igual a INTRA_DEP_DMM_CPREDTEX. Quando não estiver presente, DepthIntraMode [x0][y0] é inferido para ser igual a INTRA_DEP_NONE. wedge_full_tab_idx [x0][y0] especifica o índice do padrão wedgelet na lista padrão correspondente ao DepthIntraMode [x0][y0] é igual a INTRA_DEP_DMM_WFULL. H.7.4.9.5.1 Semânticas residuais de DC de profundidade depth_dc_flag[x0][y0] igual a 1 especifica que depth_dc_abs[x0][y0][i] e depth_dc_sign_flag[x0][y0][i] estão presentes. depth_dc_flag[x0][y0] igual a 0 especifica que depth_dc_abs[x0][y0][i] e depth_dc_sign_flag[x0][y0][i] não estão presentes. Quando não está presente, depth_dc_flag[x0][y0] é inferido a ser igual a 1. depth_dc_abs[x0][y0][i], depth_dc_sign_flag[x0][y0][i] são utilizadas para derivar DcOffset [x0][y0][i] como segue: DcOffset [x0][y0][i] = (1 - 2 * depth_dc_sign_flag[x0][y0][i]) * (depth_dc_abs[x0][y0][i] - dcNumSeg +2) (-27 H) H.8.4.2 Processo de derivação para modo de intrapredição luma Entrada para este processo é uma localização de luma (xPb, yPb) especificando a amostra superior esquerda do bloco de predição luma atual relativo a amostra luma superior esquerda da imagem atual. Neste processo, o modo de intrapredição luma IntraPredModeY [xPb] [yPb] é derivado. Tabela H-3 especifica o valor do modo de intrapredição e os nomes associados. Tabela H-3 - Especificação do modo de intrapredição e nomes Associados IntraPredModeY [xPb] [yPb] rotulado 0...34 representa direções de predições como ilustrado na Figura 8 1. Se DepthIntraMode [xPb] [yPb] é igual a INTRA_DEP_DMM_WFULL, IntraPredModeY [xPb] [yPb] está definido igual a INTRA_DMM_WFULL. Caso contrário, se DepthIntraMode [xPb] [yPb] é igual a INTRA_DEP_DMM_CPREDTEX, IntraPredModeY [xPb] [yPb] está definida igual a INTRA_DMM_CPREDTEX. Caso contrário (DepthIntraMode [xPb] [yPb] é igual a INTRA_DEP_NONE), IntraPredModeY [xPb] [yPb] é derivado como as seguintes etapas ordenadas: H.8.4.4.2.1 Predição de intra amostra geral Entradas para este processo são: - uma localização de amostra (xTbCmp, yTbCmp) especificando a amostra superior esquerda do bloco de transformada atual em relação à amostra superior esquerda da imagem atual, - uma variável predModelntra especificando o modo de intrapredição, - uma variável BNT especificando o tamanho do bloco de transformada, - uma variável cldx especificando o componente de cor do bloco atual. O resultado deste processo é as amostras preditas predSamples[X][y], com x, y = 0..nTbS - 1. Definir variável bSamplePredFlag para 1. ... - Caso contrário, se predModelntra é igual a INTRA_DMM_CPREDTEX, o modo de intrapredição correspondente especificado na subcláusula H.8.4.4.2.8 é chamado com a localização (xTbY, yTbY), com a matriz de amostra P e o tamanho do bloco de transformada e nTbS e bSamplePredFlag assim como as entradas e a saída são a matriz de amostra predita predSamples. H.8.4.4.2.8 Especificação de modo de intrapredição INTRA_DMM_CPREDTEX As entradas para este processo são: - uma localização de amostra (xTb, yTb) especificando a amostra superior esquerda do bloco atual em relação à amostra superior esquerda da imagem atual, - as amostras vizinhas p[x][y], com x = 1, y = * -L.nTbS 2-1 e x = 0..nTbS * 2 - 1, y = 1, - uma variável BNT especificando o tamanho do bloco de transformada, - uma variável bSamplePredFlag especificando se gera as amostras de predição ou não, O resultado deste processo é: - as amostras preditad predSamples [x][y], com x, y = 0..nTbS - 1. - Wedgelet padrão wedgePattern [x][y], com x, y = 0..nT-1. Os valores das amostras de predição predSamples [x][y], com x, y = 0..nTbS - 1, são derivados, tal como especificado pelas seguintes etapas ordenadas: 1. A variável recTextPic é definida igual a matriz das amostras de imagem luma reconstruídas de TexturePic. 2. A variável textThresh especificando um limite para a segmentação de recTextPic é derivada, tal como especificado a seguir. - A variável sumTextPicVals é definida igual a 0. - Para x = 0..nTbS - 1 é aplicável o seguinte - Para y = 0..nTbS - 1 é aplicável o seguinte sumTextPicVals + = recTextPic [xTb + x] [yTb + y] (H-45) - A variável textThresh é definida igual a (sumTextPicVals »(2 * log2 (BNT))) 3. A variável wedgeletPattern [x][y] com x, y = 0..nTbS - 1 especificando um padrão de partição binário é derivada, tal como especificado a seguir. - Para x = 0..nTbS - 1 é aplicável o seguinte - Para y = 0..nTbS - 1 é aplicável o seguinte wedgeletPattern [x][y] = (recTextPic [xTb + x] [yTb + y]> textThresh) (H-46) 4. Quando bSamplePredFlag é igual a 1, O processo de derivação e atribuição de valores de partição de profundidade, conforme especificado na subcláusula H.8.4.4.2.9 é invocado com as amostras vizinhas p[x][y], o padrão binário wedgeletPattern [x][y], o tamanho de transformada nT, a DCOffsetAvailFlag definido igual a depth_dc_flag[xTb] [yTb], e a Desvios DC DcOffset[xTb] [yTb] [], e DcOffset [xTb] [yTb][1] como entradas e a saída é atribuída a predSamples [x][y]. H.8.4.4.3 Processo de reconstrução de valor de profundidade As entradas para este processo são: - uma localização de luma (xTb, yTb) especificando a amostra luma superior esquerda do bloco atual em relação à amostra luma superior esquerda do quadro atual, - A variável BNT especificando o tamanho do bloco de transformada, - Amostras preditas predSamples [x][y], com x, y = 0..nTbS - 1 - O modo de intrapredição predModelntra, O resultado deste processo é: - Amostras de valor de profundidade reconstruídas resSamples [x][y], com x, y = 0 .. BNT - 1. Definir variável bSamplePredFlag para 0. Dependendo de predModelntra a matriz wedgePattern [x][y] com x, y = 0..nTbS — 1 especificando o padrão de segmentação binário é derivada da seguinte forma. - Se predModelntra é igual a INTRA_DMM_WFULL, aplica-se o seguinte. wedgePattern = WedgePatternTable [Log2 (BNT)] [wedge_full_tab_idx [xTb] [yTb]] - Caso contrário, se predModelntra é igual a INTRA_DMM_CPREDTEX, subcláusula H.8.4.4.2.8 é invocada com a localização (xB, YB), amostras preditas predSamples, o tamanho do bloco de transformada nT e bSamplePredFlag como as entradas e a saída é o padrão wedgelet wedgePattern. - Caso contrário (predModelntra não é igual a INTRA_DMM_WFULL e predModelntra não é igual a INTRA_DMM_ CPREDTEX), aplica-se o seguinte. - Para x, y = 0..nTbS - 1 wedgePattern [x][y] é definida igual a 0. Dependendo de DLT_flag[nuh_layer_id] as amostras de valor de profundidade reconstruídas resSamples [x][y] são derivadas, tal como especificado no seguinte: - Se dlt_flag[nuh_layer_id] é igual a 0, aplica- se o seguinte: - Para X, Y = 0..nTbS - 1, as amostras de valor de profundidade reconstruída resSamples [x][y] são derivadas, tal como especificado no seguinte: resSamples [x][y] = predSamples [x][y] + DcOffset [xTb] [yTb] [wedgePattern [x][y]] (H-59) - Caso contrário (dlt_flag[nuh_layer_id] é igual a 1), é aplicável o seguinte: - As variáveis dcPred [] e dcPred[1] são derivadas, tal como especificado no seguinte: Se predModelntra não é igual a INTRA_DMM_WFULL e predModelntra não é igual a INTRA_DMM_CPREDTEX, se aplica o seguinte: dcPred [] = (predSamples [] [] + predSamples [][nTbS - 1] + predSamples [nTbS - 1] [] + PredSamples [nTbS - 1] [nTbS - 1] + 2) » 2 (H- 61) - Caso contrário, se predModelntra é igual a INTRA_DMM_WFULL, aplica-se o seguinte. dcPred [wedgePattern [] [] = Preds amplest [] [] (H-62) dcPred [wedgePattern [nTbS - 1] []] = predSamples [nTbS - 1] [] (H-63) dcPred [wedgePattern [] [nTbS - 1]] = predSamples [] [nTbS - 1] (H-64) dcPred [wedgePattern [nTbS - 1] [nTbS - 1]] = predSamples [nTbS - 1] [nTbS - 1] (H-65) - Caso contrário, (intraPredMode é igual a INTRA_DMM_CPREDTEX), aplica-se o seguinte. dcPred [wedgePattern [] [] =] predSamples [] [] dcPredlFound = 0; Se (wedgePattern [x][y]! = wedgePattern [] [] && dcPredlFound = = 0) { dcPred [wedgePattern [x][y]] = predSamples [x][y] dcPredlFound = 1 } - Para X, Y = 0..nTbS - 1, as amostras de valor de profundidade reconstruídas resSamples [x][y] são derivadas, tal como especificado no seguinte: dltldxPred = DepthValue2Idx [dcPred [wedgePattern [x][y]]] (H-66) dltldxResi = DcOffset [xTb] [yTb] [wedgePattern [x][y]] (H-67) resSamples [x][y] = predSamples [x][y] + Idx2DepthValue [dltldxPred + dltldxResi] - dcPred [wedgePattern [x][y]] (H-68) H.8.5.4.1 Geral Se sdc_flag é igual a 0, se aplica o seguinte, dependendo do valor da RQT_root_cbf, é aplicável o seguinte: - Se rqt_root_cbf é igual a 0 ou skip_flag[xCb] [yCb] é igual a 1, todas as amostras das matrizes (nCbSL) x (nCbSL) resSamplesL e todas as amostras das duas matrizes (nCbSC) x (nCbSC) resSamplesCb e resSamplesCr são definidas igual a 0. - Caso contrário (rqt_root_cbf é igual a 1), as seguintes etapas ordenadas se aplicam: O processo de decodificação para blocos residuais de luma conforme especificado na subcláusula H.8.5.4.2 abaixo é invocado com a localização de luma (xCb, yCb), a localização de luma (xB0, yB0) definida igual a (0, 0), a variável log2TrafoSize igual a log2CbSize, a variável trafoDepth igual a 0, a variável nCbS definida igual a nCbSL, e a matriz (nCbSL) x (nCbSL) resSamplesL como entradas, e a saída é uma versão modificada da matriz (nCbSL) x (nCbSL) resSamplesL. O processo de decodificação para blocos residuais de croma conforme especificado na subcláusula H.8.5.4.3 abaixo é invocado com a localização de luma (xCb, yCb) localização de luma (xB0, yB0) definida igual a (0, 0), a variável log2TrafoSize igual a log2CbSize, a variável trafoDepth igual a 0, a variável cldx definida igual a 1, a variável nCbS igual a nCbSC , e a matriz (nCbSC) x (nCbSC) resSamplesCb como entradas, e a saída é uma versão modificada da matriz (nCbSC) x (nCbSC) resSamplesCb. O processo de decodificação para blocos residuais de croma conforme especificado na subcláusula H.8.5.4.3 abaixo é invocado com a localização de luma (xCb, yCb), a localização de luma (xB0, yB0) definida igual a (0, 0), a variável log2TrafoSize igual a log2CbSize, a variável trafoDepth igual a 0, a variável cldx definida igual a 2, a variável nCbS igual a nCbSC, e a matriz (nCbSC) x (nCbSC) resSamplesCr como entradas, e a saída é uma versão modificada da matriz (nCbSC) x (nCbSC) resSamplesCr . - Caso contrário (sdc_flag é igual a 1), o processo de decodificação para a blocos residuais codificados de profundidade simplificada, tal como especificado na subcláusula H.8.5.4.4 é invocado com a localização de luma (xCb, yCb), a localização de luma (xB0, yB0) definida igual a (0,0), a variável log2TrafoSize definida igual a log2CbSize, a variável trafoDepth igual a 0, a variável nCbS definida igual a nCbSL e a matriz (nCbSL) x (nCbSL) resSamplesL como entradas, e a saída é uma versão modificada da matriz (nCbSL) x (nCbSL) resSamplesL. H.8.5.4.4 Processo de decoficiação para blocos residuais codificados de profundidade simplificada Para x na faixa de 0 a nCbS é aplicável o seguinte: - Para y na faixa de 0 a nCbS é aplicável o seguinte: - A variável i é derivado, tal como especificado no seguinte: - Se x é menor do que xOff e y é menor do que YOff, i é igual a 0. - Caso contrário, se x maior do que ou igual a xOff e Y é menor do que YOff, i é igual a 1. - Caso contrário, se x menor que xOff e y é maior do que ou igual a YOff, i é igual a 2. - Caso contrário, (x é maior do que ou igual a xOff e y é maior do que ou igual a YOff), i é igual a 3. - O valor da resSamples [x][y] é igual a DcOffset [xCb] [yCb] [interSdcResiIdx [i]] Tabela H-10 - Associação de ctxIdx e elementos de sintaxe para cada initializationType no processo de inicialização. Tabela H-20- Elementos de sintaxe e binarizações associadas Tabela H-22 -Atribuição de ctxInc a elementos de sintaxe com feixes codificados por contexto
[187] De acordo com outro exemplo, as mudanças são feitas para elementos de sintaxe e semântica de 3D-HEVC. Nos elementos de sintaxe e de semântica abaixo, porções pertinentes de 3D-HEVC foram alteradas para adicionar elementos de sintaxe e de semântica propostos de acordo com um exemplo desta divulgação.
[188] Tabelas de sintaxe são apresentados a seguir, seguido pela semântica pertinente. H.7.3.8.5 Sintaxe de Unidade de Codificação Geral Semântica e processo de decodificação H.7.4.9.5 Semânticas de unidade de codificação A variável SdcEnableFlag é definida igual a 0, e se aplica o seguinte: SdcEnableFlag = (vps_inter_sdc_flag[nuh_layer_id] && PredModef x0][y0] = = MODEJNTER) II (vps_depth_modes_flag[nuh_layer_id] && PredMode[x0] [y0] = MODE_INTRA && PartMode[x0] [y0] = = PART_2Nx2N && (IntraPredModeY[x0] [y0] = = INTRA_DMM_WFULL II IntraPredModeY[x0] [y0] = = INTRA_PLANAR)) (H-16) sdc_flag[x0][y0] igual a 1 especifica que blocos de codificação residuais segmento a segmento de DC é utilizado para a unidade de codificação atual. sdc_flag[x0][y0] igual a 0 especifica que blocos de codificação residuais de DC segmento a segmento não são utilizados para a unidade de codificação atual. Quando não está presente, sdc_flag[x0][y0] é inferido a ser igual a 0. H.7.4.9.5.1 Semânticas de parâmetro de modo de profundidade A variável Log2MaxDmmCbSize é definida igual a 5. As variáveis depthlntraModeSet são derivadas, tal como especificado no seguinte: - Se log2CbSize é igual a 6, depthlntraModeSet é definida como igual a 0. - Caso contrário, se log2CbSize é igual a 3 e PartMode [xC] [yC] é igual a PART_NxN, depthlntraModeSet é definida como igual a 1. - Caso contrário, depthlntraModeSet está definida igual a 2. depth_intra_mode [x0][y0] especifica o modo intra de profundidade da unidade de predição atual. Tabela H-2 especifica o valor da variável depthlntraModeMaxLen dependendo de depthlntraModeSet e o valor da variável DepthlntraMode e o nome associado dependendo da depth_intra_mode e depthlntraModeSet. A variável DmmFlag [x0][y0] é derivada conforme especificado no seguinte: DmmFlag[x0] [y0] = (DepthIntraMode [x0][y0] = = INTRA_DEP_DMM_WFULL) 1 1 (H-26) (DepthIntraMode [x0][y0] = = INTRA_DEP_DMM_CPREDTEX) Tabela H-2 - Especificação de DepthlntraMode e nome associado, dependendo de depthlntraModeSet e depth_intra_mode e especificação de e depthlntraModeMaxLen dependendo de thlntraModeSet H.7.4.9.5.2 Semânticas residuais de DC dfe profundidade depth_dc_flag[x0][y0] igual a 1 especifica que depth_dc_abs[x0][y0][i] e depth_dc_sign_flag[x0][y0][i] estão presentes. depth_dc_flag[x0][y0] igual a 0 especifica que depth_dc_abs[x0][y0][i] e depth_dc_sign_flag[x0][y0][i] não estão presentes. Quando não estiver presente, depth_dc_flag[x0][y0] é inferida para ser igual a 1. depth_dc_abs[x0][y0][i],depth_dc_sign_flag[x0][y0 ][i] são utilizadas para derivar DcOffset [x0][y0][i] como segue: DcOffset [x0][y0][i] = (1 - 2 * depth_dc_sign_flag[x0][y0][i]) * (depth_dc_abs[x0][y0][i] - dcNumSeg 2) (H - 2 7) H.8.5.4.1 Geral - Se sdc_flag é igual a 0, o seguinte aplica-se, dependendo do valor de rqt_root_cbf, aplica-se o seguinte: - Se rqt_root_cbf é igual a 0 ou skip_flag[xCb] [yCb] é igual a 1, todas as amostras da matriz (nCbSL) x (nCbSL) resSamplesL e todas as amostras das duas matrizes (nCbSC) x (nCbSC) resSamplesCb e resSamplesCr são definidas igual a 0. - Caso contrário (rqt_root_cbf é igual a 1), as seguintes etapas ordenadas se aplicam: O processo de decodificação para blocos residuais de luma conforme especificado na subcláusula H.8.5.4.2 abaixo é invocado com a localização de luma (xCb, yCb), a localização de luma (xB0, yB0) igual a (0, 0), a variável log2TrafoSize definida igual a log2CbSize, a variável trafoDepth igual a 0, a variável nCbS definida igual a nCbSL, e a matriz (nCbSL) x (nCbSL) resSamplesL como entrada, e a saída é uma versão modificada da matriz (nCbSL) x (nCbSL) resSamplesL. O processo de decodificação para blocos residuais de croma conforme especificado na subcláusula H.8.5.4.3 abaixo é invocado com a localização de luma (xCb, yCb), a localização de luma (xB0, yB0) igual a (0, 0), a variável log2TrafoSize igual a log2CbSize, a variável trafoDepth igual a 0, a variável cldx definida igual a 1, a variável nCbS definida igual a nCbSC, e a matriz (nCbSC) x (nCbSC) resSamplesCb como entradas, e a saída é uma versão modificada da matriz (nCbSC) x (nCbSC) resSamplesCb. O processo de decodificação para blocos residuais de croma conforme especificado na subcláusula H.8.5.4.3 abaixo é invocado com a localização de luma (xCb, yCb), a localização de luma (xB0, yB0) igual a (0, 0), a variável log2TrafoSize igual a log2CbSize, a variável trafoDepth igual a 0, a variável cldx definida igual a 2, a variável nCbS definida igual a nCbSC, e a (matriz nCbSC) x (nCbSC) resSamplesCr como entradas, e a saída é uma versão modificada da matriz (nCbSc) x (nCbSc) resSamplesCr. - Caso contrário (sdc_flag é igual a 1), o processo de decodificação para blocos residuais codificados de profundidade simplificada, conforme especificado na subcláusula H.8.5.4.4 é invocado com a localização de luma (xCb, yCb), a localização de luma (xB0, yB0) definida igual a (0, 0), a variável log2TrafoSize definida igual a log2CbSize, a variável trafoDepth igual a 0, a variável nCbS definida igual a nCbSL, e a matriz (nCbSL) x (nCbSL) resSamplesL como entradas, e a saída é uma versão modificada da matriz (nCbSL) x (nCbSL) resSamplesL. H.8.5.4.4 Processo de decodificação para blocos residuais codificados de profundidade simplificada Para x na faixa de 0 a nCbS é aplicável o seguinte: - Para y na faixa de 0 a nCbS é aplicável o seguinte: - A variável i é derivada, tal como especificado no seguinte: - Se x é menor do que xOff e Y é menor do que YOff, i é igual a 0. - Caso contrário, se x maior do que ou igual a xOff e y é menor do que YOff, i é igual a 1. - Caso contrário, se x menor que xOff e y é maior do que ou igual a yOff, i é igual a 2. - Caso contrário, (x é maior do que ou igual a xOff e y é maior do que ou igual a YOff), i é igual a 3. - O valor da resSamples [x][y] é igual a DcOffset [xCb] [yCb] [interSdcResiIdx [i]] Tabela H-10 - Associação de elementos ctxIdx e de sintaxe para cada initializationType no processo de inicialização Tabela H-20 - Elementos de sintaxe e binarizações associadas Tabela H-22 - Atribuição de ctxinc a elementos de sintaxe com feixes codificados por contexto
[189] As figuras 7-12 são diagramas de fluxo que ilustram vários exemplos de operações executadas por um codificador de vídeo 20 e/ou decodificador de vídeo 20 de acordo com esta divulgação. Os diagramas de fluxo são providos para fins de ilustração e não devem ser considerados como limitativos. A ordem de várias operações é apresentada para fins de ilustração e não indica necessariamente que as operações devem ser efetuadas na ordem mostrada. Além disso, em muitos casos, as operações ilustradas nas figuras 7-12 pode ser praticadas com uma outra combinação de várias combinações.
[190] A figura 7 é um diagrama de fluxo que ilustra a codificação de um elemento de sintaxe para indicar o uso de SDC para ambos os modos de intrapredição de profundidade e interpredição de profundidade, por exemplo, a um nível de CU. O codificador de vídeo 20 pode ser configurado para executar as operações da figura 7. Por exemplo, codificador de vídeo 30 pode selecionar o modo de SDC para a codificação de partições de PU de uma CU de profundidade. Em alguns exemplos, codificador de vídeo 30 pode transmitir um elemento de sintaxe para habilitar ou desabilitar o modo de SDC para a codificação de CUs de profundidade em uma sequência de vídeo codificado inteira. Em seguida, em alguns exemplos, se SDC está habilitada para a sequência, codificador de vídeo 30 pode sinalizar um elemento de sintaxe para cada CU de profundidade na sequência para indicar se SDC é selecionada para a CU de profundidade. O codificador de vídeo 30 seleciona um modo de intercodificação ou um modo intracodificado para cada CU (202) e em seguida, aplica-se interpredição da CU de profundidade (204) ou intrapredição da CU de profundidade (206).
[191] Vários tipos de intrapredição de SDC podem ser utilizados. Em alguns exemplos, para SDC, para uma intracodificada atual, em que o elemento de sintaxe indica se o modo de SDC é utilizado para a CU de profundidade atual, codificação pode incluir, quando se realiza a intrapredição para gerar a CU de profundidade predita, utilizando amostras a partir de um componente de textura que corresponde a um componente de profundidade da CU de profundidade.
[192] Para a codificação de profundidade, codificador de vídeo 30 pode usar modos de intrapredição HEVC regular ou interpredição ou DMM, tais como modos wedgelet, contour ou de particionamento planar. Em ambos os casos, o codificador de vídeo 20 pode aplicar SDC para gerar um valor residual de DC ou valores para a partição CU de profundidade ou partições (208). Por exemplo, com SDC, codificador de vídeo 20 pode codificar apenas um valor DC residual para a partição associada com cada PU da CU de profundidade. Assim, o codificador de vídeo 20 sinaliza um valor residual de DC para cada PU, e o um valor residual de DC é utilizado como o resíduo para todas as amostras da PU. A PU pode ser toda a CU ou partições individuais na CU, tais como partições definidas pelo particionamento de wedgelet ou de contour.
[193] Ainda com referência à figura 7, um codificador de vídeo 20 pode codificar um elemento de sintaxe indicando que SDC é utilizada para uma CU, se para o modo intra ou inter, ou seja, para ambas intrapredição de profundidade e interpredição de profundidade (210). Assim, em vez de sinalizar SDC de forma independente para intrapredição de profundidade e interpredição de profundidade separadamente, codificador de vídeo 20 gera um elemento de sintaxe único para uma CU que indica que SDC aplica a CU, independentemente de a CU estar codificada com intra de profundidade e interpredição de profundidade. O elemento de sintaxe pode ser um elemento de sintaxe sdc_flag. O elemento de sintaxe sdc_flag pode ser um indicador de um bit. Como exemplo, um valor de 1 indica sdc_flag SDC que deve ser utilizado para intra de profundidade e interpredição de profundidade, e um valor de 0 indica que sdc_flag SDC não deve ser utilizado para qualquer intra de profundidade e interpredição de profundidade. Mais uma vez, um outro elemento de sintaxe pode habilitar ou desabilitar SDC para uma sequência inteira. Se SDC estiver habilistada, o sdc_flag pode ser sinalizado no nível de CU. Se SDC é desabilitada para a sequência, em alguns exemplos, o sdc_flag não é sinalizado. Mais uma vez, a ativação ou desativação da SDC pode ser aplicada em uma base de sequência, imagem ou fatia, enquanto sdc_flag pode ser enviado para indicar o uso real de SDC em um nível de CU.
[194] Em alguns exemplos, codificador de vídeo 20 pode sinalizar o elemento de sintaxe de SDC sdc_flag nos parâmetros da unidade de codificação gerais a nível de CU. Deste modo, o codificador de vídeo 20 pode sinalizar o elemento de sintaxe de SDC wem uma base CU-por-CU. Em outros exemplos, como discutido acima, codificador de vídeo 20 pode sinalizar um outro elemento de sintaxe em um cabeçalho de segmento de fatia, indicando que SDC é habilitada (ou desabilitada) para todas as CUs de profundidade em um segmento de fatia. Em ainda outros exemplos, o elemento de sintaxe de SDC gerado pelo codificador de vídeo 20 pode indicar que SDC é habilitada (ou desabilitada) para todas CUs de profundidade em uma imagem inteira ou sequência de vídeo inteira. Por exemplo, codificador de vídeo 20 pode sinalizar o elemento de sintaxe de SDC habilitada / desabilitada em uma extensão de conjunto de parâmetros de vídeo (VPS), por exemplo, para 3D-HEVC, em um conjunto de parâmetros de sequência (SPS), ou em um conjunto de parâmetros de imagem (PPS). Em alguns exemplos, um ou mais elementos de sintaxe sinalizados em um cabeçalho de VPS, SPS, PPS, fatia ou semelhante podem ser utilizados para calcular um valor para habilitar desabilitar um flag que pode ser sinalizado separadamente, por exemplo, ao nível da CU. Assim, uma primeira SDC permite que elemento de sintaxe pode ser utilizado para habilitar ou desabilitar a SDC, por exemplo, para todas CUs de profundidade de uma fatia, todas as CUs de profundidade em uma imagem, ou todas as CUs de profundidade de em uma sequência de vídeo codificado inteira, e um segundo elemento de sintaxe de SDC (por exemplo, sdc_flag) pode ser configurado para indicar que SDC é realmente utilizada para ambas intrapredição de profundidade e interpredição de profundidade para cada profundidade da CU.
[195] O codificador de vídeo 20 também pode codificar uma estrutura de sintaxe com os dados residuais de SDC. Por exemplo, quando a CU de profundidade atual está codificada com SDC, para cada partição, o valor residual de DC para cada partição de cada PU de uma CU intercodificada ou uma CU intracodificada pode ser apresentado em uma estrutura de sintaxe. O valor residual de DC pode ser um deslocamento DC no domínio de valor de pixel. Esta estrutura de sintaxe única para a partição inclui os dados residuais de DC para a partição, se a partição é intra ou interpredita. Por exemplo, para qualquer intrapredição ou interpredição, a estrutura de sintaxe pode incluir um valor absoluto do valor residual de DC e o seu sinal (mais ou menos). Exemplos de elementos de sintaxe de DC incluem depth_dc_abs residual, para indicar o residual, e depth_dc_sign_flag, para indicar o sinal. Por exemplo, depth_dc_abs e depth_dc_sign_flag pode ser utilizada para derivar um valor DcOffset. Desta forma, codificador de vídeo 20 pode ser configurado para unificar os dados residuais de DC para uma CU intercodificada ou CU intracodificada para ser apresentado por uma estrutura de sintaxe. Em alguns exemplos, os dados residuais de DC na estrutura de sintaxe podem incluir o valor residual de DC e sinal. Em outros exemplos, os dados residuais de DC podem ser sinalizados com um DLT. Neste caso, os dados residuais de DC podem ser sinalizados como a diferença entre um índice de DLT de um valor original de DC e um índice de DLT de um valor DC predito, por exemplo, para uma de PU de profundidade ou partição.
[196] Como uma alternativa, ou em adição, o codificador de vídeo 20 pode ser configurado para sinalizar e codificar um flag, para uma CU intracodificada, que indica se a CU contém qualquer valor residual de DC diferente de zero em qualquer uma das suas partições. Se este flag é 0, codificador de vídeo 20 não sinaliza quaisquer valores residuais de DC para a CU intracodificada e os valores residuais de DC são inferidos pelo decodificador 30 para ser igual a zero para cada partição da CU. Como uma alternativa adicional, o flag gerado pelo codificador de vídeo 20 para indicar se a CU contém qualquer valor residual de DC diferente de zero em qualquer uma das suas partições pode aplicar-se a ambas CUs intracodifida e intercodificada.
[197] A estrutura de sintaxe gerada por um codificador de vídeo 20 e utilizada para sinalizar os valores residuais de DC para CUs intrapredita e interpreditas pode ser uma estrutura de sintaxe única, tal como descrito acima. Isto é, uma estrutura de sintaxe única pode ser gerada para cada CU de profundidade, se a CU é intrapredita ou interpredita. Desta maneira, os modos de intrapredição e interpredição podem compartilhar os mesmos elementos de sintaxe para sinalizar o valor residual de DC (s) para a partição (s) da CU de profundidade. O codificador de vídeo 20 pode codificar por entropia os elementos de sintaxe da estrutura de sintaxe usando o mesmo modelo de contexto e/ou processo de binarização para os elementos de sintaxe pertinentes, se a CU de profundidade é intrapredita ou interpredita, unificando assim o processo de codificação de entropia para intrapredição e interpredição com SDC.
[198] Em alternativa, codificador de vídeo 20 pode gerar instâncias separadas da estrutura de sintaxe, ou seja, uma estrutura de sintaxe incluindo dados residuais de DC para intrapredição e uma estrutura de sintaxe incluindo dados residuais de DC para interpredição, onde as instâncias da estrutura de sintaxe são idênticas ou substancialmente idênticas na medida em que os mesmos elementos de sintaxe estão incluídos em cada exemplo da estrutura de sintaxe. Neste caso, o codificador de vídeo 30 pode codificar por entropia as instâncias separadas da estrutura de sintaxe separadamente, e usar os contextos e, possivelmente, binarizações, que são os mesmos, ou mantidos em separado, para a instância de intrapredição da estrutura de sintaxe e a intância de interpredição da estrutura de sintaxe. Mesmo que os contextos zsejam mantidos separadamente, os modos de intra SDC e inter SDC ainda podem usar os mesmos elementos de sintaxe e a mesma estrutura de sintaxe, ainda que em diferentes instâncias, para transportar os dados residuais de DC para partições de PUs das CUs de profundidade.
[199] O codificador de vídeo 214 codifica informação de intrapredição ou interpredição para a predição de uma ou mais PUs associadas com uma CU de profundidade (214). Por exemplo, um codificador de vídeo 214 pode codificar uma indicação do modo de codificação para cada PU e qualquer outra informação para inter ou intrapredição de cada PU no lado do decodificador. Para intrapredição de SDC, por exemplo, o codificador de vídeo 20 pode codificar informações de modo de intracodificação para modos de intrapredição de HEVC, modos DMM, ou outros modos intra. Para interpredição, por exemplo, codificador de vídeo 20 pode codificar a informação de movimento para geração de Pus de profundidade interpredita e/ou partições. Codificador de vídeo 214 pode codificar por entropia o elemento de sintaxe de SDC (ou seja, indicando o uso de SDC ao nível de CU), estrutura de sintaxe (s) de SDC (ou seja, indicando valores de DC para as partições PU), e informação intra ou interpredição para uso pelo decodificador 30 na decodificação e reconstrução das CUs de profundidade como parte de um processo de decodificação 3D, tal como um processo de decodificação 3D-HEVC, no lado do decodificador.
[200] A figura 8 é um diagrama de fluxo que ilustra a decodificação de um elemento de sintaxe de SDC, tal como o elemento de sintaxe descrito acima com referência à figura 7, para indicar o uso de SDC para ambos os modos de intrapredição de profundidade e interpredição de profundidade. Em geral, a figura 8 descreve os processos ilustrados na figura 7 a partir da perspectiva do lado do decodificador do decodificador de vídeo 30. Por conseguinte, os detalhes de várias operações e sintaxe descritos com referência à figura 7 podem ser aplicados de uma maneira semelhante aos da figura 8, mas a partir da perspectiva do decodificador de vídeo 30. Como mostrado na figura 8, decodificador de vídeo 30 pode ser configurado para decodificar a informação de modo de intra e/ou interpredição para CU de profundidade para gerar informação de profundidade predita. Além disso, o decodificador de vídeo 30 pode receber e decodificar um elemento de sintaxe de SDC (por exemplo, sdc_flag) que indica se SDC deve ser utilizada para uma CU, ou seja, independentemente de se modos de interpredição de profundidade e intrapredição de profundidade são utilizados. Em outras palavras, o elemento de sintaxe é utilizado para sinalizar SDC para ambas as CUs intra e inter.
[201] Tal como discutido com referência à figura 7, em vez de receber de forma independente sinalização de SDC para intrapredição de profundidade e interpredição de profundidade separadamente, decodificador de vídeo 20 recebe um elemento de sintaxe de SDC que indica que SDC se aplica a ambas intrapredição de profundidade e interpredição de profundidade. Mais uma vez, o elemento de sintaxe de SDC pode ser um elemento de sintaxe sdc_flag, e pode de outro modo estar em conformidade com a descrição do elemento de sintaxe descrito acima com referência à figura 7. Um valor de sdc_flag de 1 pode indicar que SDC deve ser utilizada para ambas intrapredição de profundidade e interpredição de profundidade para a CU, e um valor de sdc_flag de 0 pode indicar que SDC não deve ser utilizada para qualquer intrapredição de profundidade e interpredição de profundidade para a CU.
[202] O decodificador de vídeo 30 pode receber o elemento de sintaxe de SDC nos parâmetros da unidade de codificação gerais a nível de CU. Assim, decodificador de vídeo 30 pode receber e decodificar o elemento de sintaxe de SDC em uma base CU-por-CU. Em alguns exemplos, decodificador de vídeo 30 pode receber outro elemento de sintaxe de SDC em um cabeçalho de segmento de fatia, indicando que SDC está habilitada para todas as CUs de profundidade em um segmento de fatia. Em ainda outros exemplos, decodificador de vídeo 30 pode receber um outro elemento de sintaxe de indicando que SDC está habilitada para intra e interpredição de CU de profundidade em uma sequência de vídeo codificado inteira, ou em uma imagem. Por exemplo, decodificador de vídeo 30 pode receber o elemento de sintaxe de SDC adicional (indicando se SDC está habilitada ou desabilitada) em uma extensão de conjunto de parâmetros de vídeo (VPS), por exemplo, para 3D-HEVC, em um conjunto de parâmetros de sequência (SPS), ou em um conjunto de parâmetros de imagem (PPS). Por conseguinte, decodificador de vídeo 30 pode receber um primeiro elemento de sintaxe de SDC indicando que SDC está habilitada para CU em uma sequência, imagem ou fatia, e um segundo elemento de SDC (por exemplo, sdc_flag) ao nível de CU indicando que SDC é efectivamente utilizada para uma determinada CU.
[203] Se SDC é indicada como não sendo utilizada (por exemplo, sdc_flag = 0) para intrapredição e interpredição (224), decodificador 30 decodifica o fluxo de bits para obter dados residuais de não-SDC para uso na reconstrução de Pus intra ou interpreditas. Se o elemento de sintaxe indica que SDC é utilizada (por exemplo, sdc_flag = 1) para intrapredição e interpredição (224), decodificador 30 decodifica a estrutura de sintaxe para gerar dados residuais de SDC para uma partição de uma PU de profundidade da CU atual. Isso pode ser repetido por várias partições de PUs na CU. Decodificador 30 pode receber uma pluralidade de estruturas de sintaxe, onde as estruturas de sintaxe incluem dados residuais de SDC para uma partição de PU de profundidade respectiva. Tal como descrito com referência à figura 8, a estrutura de sintaxe para cada de PU de profundidade pode ser uma estrutura de sintaxe única, se a PU de profundidade é intra- e intercodificada, ou instâncias separadas da mesma estrutura de sintaxe para PU de profundidade intra- e intercodificada, respectivamente. Quando uma CU de profundidade atual está codificada com SDC, para cada partição, um valor residual de DC para uma CU intercodificada ou uma CU intracodificada pode ser apresentado na estrutura de sintaxe. Por isso, esta estrutura de sintaxe para a partição inclui os dados residuais de DC para a partição, se a partição é intra ou interpredita.
[204] Por exemplo, para ambas intrapredição ou interpredição, a estrutura de sintaxe decodificada pelo decodificador de vídeo 30 pode incluir um valor absoluto do valor residual de DC e o seu sinal (mais ou menos). Exemplos de elementos de sintaxe residual de DC na estrutura de sintaxe incluem depth_dc_abs, para indicar o residual, e depth_dc_sign_flag, para indicar o sinal. Desta forma, usando a mesma estrutura de sintaxe, ou pelo menos os mesmos elementos de sintaxe, para transmitir dados residuais de DC para ambas intracodificação de profundidade e intercodificação de profundidade, decodificador de vídeo 30 pode ser configurado para unificar o valor residual de DC para uma CU intercodificada ou CU intracodificada. Em alguns exemplos, os dados residuais de DC na estrutura de sintaxe pode incluir o valor residual e DC do sinal. Em outros exemplos, os dados residuais de DC podem ser sinalizados com um DLT. Neste caso, os dados residuais de DC podem ser sinalizados como a diferença entre um índice de DLT de um valor original de DC e um índice de DLT de um valor de DC predito, por exemplo, para uma PU de profundidade ou partição.
[205] Em alguns exemplos, tal como descrito com referência à figura 7, nas operações da figura 8, decodificador de vídeo 30 pode ser configurado para sinalizar e decodificar um flag, para uma CU intracodificada, que indica se a CU contém qualquer valor residual de DC diferente de zero em qualquer uma das suas partições. Se este flag é 0, decodificador de vídeo 20 não analisa quaisquer valores residuais de DC para a CU intracodificada, e em vez disso infere os valores residuais de DC para serem iguais a zero para cada partição da CU. Como uma alternativa adicional, o flag de vídeo decodificado pelo decodificador 30 para indicar se a CU contém qualquer valor residual de DC diferente de zero em qualquer uma das suas partições pode aplicar-se a ambas CUs intracodificadas e intercodificada.
[206] A estrutura de sintaxe decodificada pelo decodificador de vídeo 30 pode ser uma estrutura de sintaxe única, como descrito acima. Isto é, uma estrutura de sintaxe única pode ser gerada para cada CU de profundidade, se a CU é intrapredita ou interpredita. Desta maneira, os modos de intrapredição e interpredição podem compartilhar os mesmos elementos de sintaxe para sinalizar o valor residual de DC (s) para a partição (s) da CU de profundidade. O decodificador de vídeo 20 pode decodificar por entropia a estrutura de sintaxe utilizando pelo menos uma do mesmo modelo de contexto e processo de binarização para os elementos de sintaxe pertinentes, se a CU de profundidade é intrapredita ou interpredita, unificando assim o processo de decodificação de entropia para intrapredição e interpredição com SDC. Pelo menos um dos modelos de contexto e processo de binarização utilizado para o processo de codificação de entropia adaptativa de contexto pode ser o mesmo para os mesmos elementos de sintaxe, como por exemplo, depth_dc_abs e depth_dc_sign_flag, na estrutura da sintaxe.
[207] Em alternativa, nas operações da figura 8, decodificador de vídeo 30 pode receber e decodificar instâncias separadas da estrutura de sintaxe, ou seja, uma estrutura de sintaxe incluindo dados residuais de DC para intrapredição e uma estrutura de sintaxe incluindo dados residual de DC para interpredição, onde as instâncias da estrutura de sintaxe substancialmente idênticas naqueles mesmos elementos de sintaxe estão incluídas em cada exemplo da estrutura de sintaxe, como descrito com referência à figura 7. Neste caso, decodificador de vídeo 30 pode decodificar por entropia as instâncias separadas da estrutura de sintaxe separadamente, mas com os mesmos elementos de sintaxe, e usar contextos e, possivelmente, binarizações, que são as mesmas ou mantidas separadamente para a instância de intrapredição da estrutura de sintaxe e a instância de interpredição da estrutura de sintaxe. Mais uma vez, os mesmos elementos de sintaxe, por exemplo, depth_dc_abs, para indicar o residual, e depth_dc_sign_flag, para indicar o sinal, podem ser utilizados se uma estrutura de sintaxe única ou instâncias separadas da estrutura de sintaxe são providas. Em cada caso, os mesmos elementos de sintaxe podem ser utilizados para transmitir os dados residual de SDC para ambos os modos intra e interpredição. Em alguns exemplos pelo menos um dos modelos de contexto e processo de binarização utilizado para o processo de codificação de entropia adaptativa de contexto pode ser o mesmo para os mesmos elementos de sintaxe, como por exemplo, depth_dc_abs e depth_dc_sign_flag, nos diferentes exemplos da estrutura de sintaxe. Em outros exemplos, um ou ambos os modelos de contexto e processos de binarização utilizados para o processo de codificação de entropia adaptativa de contexto pode ser diferente para os elementos de sintaxe, por exemplo, depth_dc_abs e depth_dc_sign_flag, nas diferentes instâncias da estrutura de sintaxe.
[208] No caso de codificação SDC ou não codificação não SDC, decodificador de vídeo 30 determina se o modo intra de profundidade ou modo inter de profundidade aplica-se a uma CU atual (230). Decodificador de vídeo 30 inter-prediz cada PU de profundidade (232) ou intra-prediz cada PU de profundidade (234), conforme aplicável, usando informações do modo predito no fluxo de bits de vídeo codificado. A informação de modo pode incluir, por exemplo, informação de modo de intracodificaçãodo para modos de intrapredição HEVC, modos de DMM, ou outros modos intra para geração de PUs de profundidade intrapredita e/ou partições, ou informação de modo de intercodificação e informação de movimento para geração de PUs de profundidade interpreditas e/ou partições. Usando essas informações, decodificador de vídeo 30 gera amostras preditivas para a PU de profundidade e/ou partições.
[209] O decodificador de vídeo 30 reconstrói as partições da PU da CU de profundidade usando tanto dados residuais de SDC ou dados residuais não SDC e a PU de profundidade predita. Por exemplo, no caso de codificação SDC, para uma dada PU, decodificador de vídeo 30 aplica um valor residual de DC sinalizado na estrutura de sintaxe de SDC, ou deriva o valor residual de DC a partir de um DLT com base em uma diferença do valor de índice ou outra informação provida na estrutura de sintaxe de SDC. O decodificador de vídeo 30 adiciona o valor residual de DC nas amostras preditas da partição de PU predita para reconstruir as amostras originais. Desta forma, decodificador de vídeo 30 usa o elemento de sintaxe de SDC e estrutura de sintaxe de SDC para unificar SDC intra e interdecodificação, em vez de usar elementos de sintaxe distintos e estruturas de sintaxe para a intracodificação e inter, respectivamente.
[210] A figura 9 é um diagrama de fluxo que ilustra a decodificação de um elemento de sintaxe para indicar o uso de SDC para blocos de profundidade em uma sequência de vídeo codificado inteira. De um modo geral, as operações ilustradas na figura 9 a partir da perspectiva do lado do decodificador representam um possível recurso para uso com os métodos mostrados nas figuras 7 e 8. No exemplo da figura 9, decodificador de vídeo 30 decodifica um elemento de sintaxe de SDC indicando se SDC é habilitada ou desabilitada para ambas intrapredição de profundidade e interpredição de profundidade (240). Decodificador de vídeo 30 pode receber o elemento de sintaxe de SDC, por exemplo, em uma extensão de conjunto de parâmetros de vídeo (VPS), conjunto de parâmetros de sequência (SPS), conjunto de parâmetros de imagem (PPS), ou um cabeçalho do segmento de fatia. Quando recebido no VPS ou SPS, se o elemento de sintaxe de SDC indica a ativação de SDC, decodificador de vídeo 30 deve considerar SDC para ser habilitada para todos os modos de intrapredição e interpredição para uma sequência de vídeo inteira, e deve receber um outro elemento de sintaxe no nível de CU (por exemplo, sdc_flag) indicando se SDC é utilizada para a CU. Como alternativa, quando o elemento de sintaxe de SDC é recebido em um PPS, e indica a ativação da SDC, decodificador de vídeo 30 pode receber elementos de sintaxe de SDC adicionais (por exemplo, sdc_flag) a nível de CU para todos os blocos de profundidade de uma imagem correspondente. Como uma alternativa adicional, quando o elemento de sintaxe de SDC é recebido em um cabeçalho de segmento de fatia, e indica habilitação de SDC, decodificador de vídeo 30 pode receber elementos de sintaxe de SDC adicionais (por exemplo, sdc_flag) no nível de CU para todos os blocos de profundidade de um segmento de fatia correspondendo.
[211] Se SDC é indicada como habilitada (242), no exemplo da figura 9, decodificador de vídeo interpreta SDC como sendo habilitada para modos intracodificação de profundidade e intercodificação de profundidade para toda a sequência de vídeo codificado, e pode analisar o fluxo de bits para o elemento de sintaxe sdc_flag no nível de CU para CUs na sequência. Se SDC não está habilitada (242), decodificador de vídeo 30 aplica codificação não SDC residual regular aos blocos de profundidade para toda a sequência de vídeo codificado. Desta forma, habilitar ou desabilitar SDC pode ser sinalizado uma vez, tanto para modos intra de profundidade quanto inter, e para uma sequência de vídeo codificado inteira. Assim, um elemento de sintaxe pode ser utilizado para habilitar / desabilitar ambos os modos intra e inter de SDC no processo de decodificação para toda a sequência de vídeo codificado. Alternativamente, habilitar / desabilitar SDC pode ser sinalizado uma vez com um elemento de sintaxe para todo um segmento de imagem ou uma fatia. Em cada caso, o uso de SDC real para uma CU pode ser sinalizado com um elemento de sintaxe nos parâmetros de unidade de codificação gerais a nível de CU.
[212] Em alguns exemplos, em vez de indicar com um elemento de sintaxe se SDC está habilitada para modos intra e inter para toda uma sequência de vídeo codificado ou para uma imagem ou um segmento de fatia, codificador de vídeo 20 pode codificar e decodificador de vídeo 30 pode decodificar, um único (primeiro) flag para indicar se está habilitado para modo de SDC de intrapredição de profundidade. Por exemplo, este primeiro flag pode ser utilizado para indicar se SDC está habilitada para modo intra para uma sequência de vídeo codificado inteira. Em alguns exemplos, se o primeiro flag é verdadeiro, ou seja, SDC deve ser habilitada para o modo intra para toda a sequência de vídeo codificado, um codificador de vídeo 20 codifica, e decodificador de vídeo 30 decodifica, um (segundo) flag adicional que é utilizado para indicar se SDC está habilitada para o modo inter para toda a sequência de vídeo codificado, ou seja, se SDC também é habilitada para o modo inter para toda a sequência de vídeo codificado.
[213] Se o primeiro flag não é verdadeiro, e SDC não está habilitada para o modo intra, codificador de vídeo 20 não precisa gerar e decodificador de vídeo 30 não precisa de analisar, para o segundo flag que indica se SDC está habilitada para o modo inter. Em alguns exemplos, o primeiro flag para indicar habilitação de intra SDC e um segundo flag para indicar habilitação de inter SDC pode ser provido no VPS ou SPS para toda a sequência de codificação de vídeo. Alternativamente, em alguns exemplos, primeiro flag para indicar a ativação da SDC intra e um segundo flag para indicar a ativação da SDC inter pode ser provida em PPS ou um cabeçalho de segmento de fatia. Em cada caso, o uso de SDC real para uma CU pode ser indicada no nível de CU, por exemplo, utilizanda SDC_flag.
[214] A figura 10 é um diagrama de fluxo que ilustra a decodificação de uma estrutura de sintaxe única para obter dados residuais de SDC para modos intrapredição e interpredição. No exemplo da figura 10, decodificador de vídeo 30 decodifica uma estrutura de sintaxe única de SDC para ambos os modos intraprofundidade e interprofundidade tal como descrito acima com referência às figuras 7 e 8. Como mostrado na figura 10, decodificador de vídeo 30 decodifica um elemento de sintaxe de SDC indicando se SDC é utilizado tanto para intrapredição de profundidade e interpredição de profundidade no nível de CU, por exemplo, para uma CU de profundidade. Supõe-se que o elemento de sintaxe indica que SDC é utilizado, para efeitos da figura 10, caso em que o decodificador de vídeo 30 decodifica ainda uma estrutura de sintaxe única de SDC que inclui dados residuais de SDC para uma ou mais partições de PU de uma determinada CU de profundidade.
[215] No exemplo da figura 10, e tal como descrito acima com referência às figuras 7 e 8, a estrutura de sintaxe única de SDC pode ser uma estrutura de sintaxe única enviada para ambos os modos intra ou inter de profundidade, ou instâncias separadas da mesma estrutura de sintaxe para o modo intra de profundidade ou modo inter de profundidade, respectivamente. Em cada caso, a estrutura de sintaxe utiliza os mesmos elementos de sintaxe para o modo intra de profundidade e modo inter de profundidade. Por exemplo, a estrutura de sintaxe de SDC pode incluir elementos de sintaxe que indicam um valor DC residual ou valores de sinal e (s), ou valores de diferença de índice de DLT para derivação de valor residual de DC. Exemplos dos elementos de sintaxe para indicar dados residuais de DC incluem depth_dc_abs, para indicar o residual, e depth_dc_sign_flag, para indicar o sinal.
[216] Após determinar se uma CU de profundidade é intercodificada ou intracodificada (254), decodificador de vídeo 30 inter-prediz (256) ou intra-prediz (258) amostras de referência para uma PU de profundidade atual. Decodificador de vídeo 30, em seguida, reconstrói as partições da PU da CU de profundidade utilizando os dados residuais de SDC sinalizados na estrutura de sintaxe de SDC única para o modo intra de profundidade ou o modo inter de profundidade, ou sinalizadas em uma instância separada da mesma estrutura de sintaxe de SDC para o modo intra de profundidade ou modo inter de profundidade, respectivamente. Por exemplo, decodificador de vídeo 30 adiciona o valor residual de DC às amostras preditas da PU intra ou interpredita para reconstruir as amostras originais.
[217] Se as estruturas de sintaxe utilizadas para os valores residuais gerados pela SDC compartilham os mesmos elementos de sintaxe e/ou a mesma estrutura de sintaxe, os processos de modelo de contexto e de binarização, por exemplo, por um processo de codificação de entropia de codificação aritmética binária adaptativa de contexto (CABAC) realizado pelo codificador de vídeo 20 e decodificador de vídeo 30, por elementos de sintaxe relevantes para ambos os modos de intrapredição de profundidade e interpredição de profundidade podem ser unificados. Por exemplo, os elementos de sintaxe para os valores residuais gerados pela SDC podem ser codificados por entropia por um codificador de vídeo 20 e decodificados po entropia pelo decodificador de vídeo 30, utilizando o mesmo modelo de contexto para ambos os modos de intrapredição de profundidade e o modo de interpredição de profundidade.
[218] Novamente, como uma alternativa ao uso de uma estrutura de sintaxe única de SDC, instâncias separadas da mesma estrutura de sintaxe de SDC podem ser codificadas por um codificador de vídeo 20 e decodificadas pelo decodificador de vídeo 30 para prover dados residuais de SDC para modos intra de profundidade e inter de profundidade. Um primeiro exemplo da estrutura de sintaxe de SDC pode ser codificado (isto é, codificado ou decodificado) para prover dados residuais de SDC para um modo intra de profundidade, e um segundo exemplo da estrutura de sintaxe de SDC pode ser codificado para prover dados residuais de SDC para um modo inter de profundidade. Dependendo de qual modo de profundidade (intra ou inter) é utilizado para uma CU de profundidade, decodificador de vídeo 30 decodifica e recupera elementos de sintaxe de uma instância pertinente (por exemplo, primeira instância, por exemplo, intra e segunda para inter) da estrutura de sintaxe de SDC, e usar os dados residuais de DC indicados para os elementos de sintaxe para reconstruir a CU de profundidade. Neste exemplo, os mesmos elementos de sintaxe são utilizados na estrutura de sintaxe para cada exemplo da estrutura de sintaxe. Contextos e/ou binarizações separados podem ser mantidos por codificação de entropia das instâncias separadas da estrutura de sintaxe de SDC por um codificador de vídeo 20 e um codificador de vídeo 30. Alternativamente, as instâncias separadas podem ser codificadas por entropia (por exemplo, CABAC) usando os mesmos contextos e/ou binarizações.
[219] A figura 11 é um diagrama de fluxo que ilustra a utilização de um exemplo de restrição em codificação SDC no lado do decodificador. Como mostrado na figura 11, decodificador de vídeo 30 decodifica um elemento de sintaxe SDC, como sdc_flag (262). Quando o elemento de sintaxe de SDC indica que SDC é utilizada (264), por exemplo, para uma CU, decodificador de vídeo 30 aplica uma restrição de tal forma que a modulação de código de pulso (PCM) está desativada, por exemplo, para a CU atual (266). Quanda codificação SDC não é utilizada para uma CU, PCM pode permanecer habilitada (267). Desta forma, decodificador de vídeo 30 restringe de codificar operações para excluir PCM quando SDC é sinalizada por uma CU. Com uma restrição que PCM está desativada, em alguns exemplos, decodificador de vídeo 30 não precisa analisar informação do modo PCM.
[220] A figura 12 é um diagrama de fluxo que ilustra o uso de um outro exemplo de restrição sobre codificação SDC no lado do decodificador. Como um exemplo de uma restrição adicional, decodificador de vídeo 30 pode determinar o tamanho da partição de uma CU atual (268), ou tamanhos de partição de cada CU, para serem codificados em uma sequência de fatia, ou imagem de vídeo. Em um exemplo, se o tamanho de partição de uma CU atual não é igual a 2Nx2N, decodificador de vídeo 30 desabilita SDC para a CU pertinente (272). Se o tamanho de partição é igual a 2Nx2N, SDC pode ser utilizada (270) pelo decodificador de vídeo 30. Uso de SDC depende do valor de sdc_flag para a CU. Desta forma, decodificador de vídeo 30 aplica uma restrição de tal forma que SDC só é utilizada para CUs com o tamanho das partições de 2Nx2N. Como alternativa, decodificador de vídeo 30 pode aplicar uma restrição de tal forma que SDC só é utilizada para inter CU com o tamanho das partições de 2Nx2N e inter CU com o tamanho de partições de 2Nx2N ou NxN. O codificador de vídeo 20 pode ser configurado para aplicar modos de SDC apenas para determinados tamanhos de partição, como descrito acima. Ao aplicar restrições no lado do decodificador, no entanto, pode não ser necessário para o codificador de vídeo 20, sinalizar quais CUs particulares usam a predição de modo SDC. Em vez disso, codificador de vídeo 20 pode simplesmente gerar um elemento de sintaxe de SDC para indicar se SDC é utilizada para ambos os modos intra de profundidade e inter de profundidade, e depois aplicar SDC a CUs que atendem exigências de tamanho da partição. Com esta limitação, o decodificador de vídeo 30 aplica codificação não SDC a CUs que não atendem a exigências de tamanho de partição aplicáveis.
[221] As técnicas descritas acima podem ser realizadas por um codificador de vídeo 20 (figuras 1 e 5) e/ou decodificador de vídeo 30 (figuras 1 e 6), ambos os quais podem ser geralmente referidos como um codificador de vídeo. Além disso, a codificação de vídeo pode, em geral referir-se a codificação de vídeo e/ou decodificação de vídeo, como aplicável.
[222] Embora as técnicas desta divulgação sejam geralmente descritas em relação a 3D-HEVC, as técnicas não são limitadas desta forma. As técnicas descritas acima também podem ser aplicáveis a outras normas atuais ou futuras normas de codificação de vídeo. Por exemplo, as técnicas de codificação de profundidade podem também ser aplicáveis a outras normas atuais ou futuras que requerem a codificação de um componente de profundidade, por exemplo, para codificação de vídeo 3D ou outras aplicações.
[223] Em um ou mais exemplos, as funções aqui descritas podem ser implementadas em hardware, software, firmware, ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas em ou transmitidas através de, como uma ou mais instruções de código, ou um meio legível por computador e executadas por uma unidade de processamento com base em hardware. Meios legíveis por computador podem incluir meios de armazenamento legíveis por computador, que correspondem a um meio tangível, como mídia de armazenamento de dados ou meios de comunicação, incluindo qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Deste modo, meios legíveis por computador podem geralmente correspondem a (1) um meio de armazenamento legível por computador tangível que é não transitório ou (2) um meio de comunicação, tal como um sinal ou onda de portadora. Meios de armazenamento de dados podem ser qualquer mídia disponível que pode ser acessada por um ou mais computadores ou um ou mais processadores para recuperar instruções de código, e/ou estruturas de dados para a implementação das técnicas descritas nesta divulgação. Um produto de programa de computador pode incluir um meio legível por computador.
[224] A título de exemplo, e não como limitação, tais meios de armazenamento legíveis por computador podem compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento em disco óptico, armazenamento em disco magnético, ou outros dispositivos de armazenamento magnéticos, memória flash, ou qualquer outro meio que pode ser utilizado para armazenar o código de programa desejado sob a forma de instruções ou estruturas de dados, e que pode ser acessado por um computador. Além disso, qualquer conexão é denominada adequadamente um meio legível por computador. Por exemplo, se as instruções são transmitidas de um site, servidor ou outra fonte remota utilizando um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL) ou tecnologias sem fio, tais como infravermelhos, rádio e microondas, então o cabo coaxial, cabo de fibra óptica, par trançado, DSL, ou tecnologias sem fio, tais como infravermelho, rádio e micro-ondas estão incluídos na definição de meio. Deve ser entendido, no entanto, que os meios de armazenamento legíveis por computador e mídias de armazenamento de dados não incluem conexões, ondas de portadoras, sinais ou outros meios de comunicação transitórios, mas são direcionados para meios de armazenamento tangível não transitórios. Disco e disquete, como aqui utilizado, inclui disco compacto (CD), disco laser, disco óptico, disco versátil digital (DVD), disquete e disco Blu-ray, onde disquetes geralmente reproduzem dados magneticamente, enquanto que discos reproduzem dados opticamente com lasers. Combinações dos anteriores também devem ser incluídas dentro do âmbito dos meios legíveis por computador.
[225] As instruções podem ser executadas por um ou mais processadores, tais comos um ou mais processadores de sinal digital (DSPs), microprocessadores de uso geral, circuitos integrados de aplicação específica (ASIC), arranjos de porta programáveis em campo (FPGA), ou outro equivalente integrado ou circuitos lógicos discretos. Por conseguinte, o termo "processador" tal como aqui utilizado pode referir-se a qualquer uma da estrutura precedente ou qualquer outra estrutura adequada para aplicação das técnicas aqui descritas. Além disso, em alguns aspectos, a funcionalidade aqui descrita pode ser provida dentro de módulos de hardware e/ou software dedicado configurados para para codificação e decodificação, ou incorporados em um codec combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.
[226] As técnicas da presente divulgação podem ser implementadas em uma vasta variedade de dispositivos ou aparelhos, incluindo um aparelho telefônico sem fio, um circuito integrado (IC) ou um conjunto de CIs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritos nesta divulgação para enfatizar os aspectos funcionais de dispositivos configurados para executar as técnicas divulgadas, mas não precisam necessariamente de realização por diferentes unidades de hardware. Em vez disso, tal como descrito acima, várias unidades podem ser combinadas em uma unidade de hardware codec ou providas por um conjunto de unidades de hardware interoperativo, incluindo um ou mais processadores, conforme descrito acima, em conjunto com o software e/ou firmware adequado.
[227] Vários exemplos foram descritos. Estes e outros exemplos estão dentro do âmbito das reivindicações seguintes.

Claims (15)

1. Método de decodificação de dados de vídeo, o método caracterizado por compreender: receber um elemento de sintaxe que indica se um modo de codificação de profundidade simplificada (SDC) é utilizado para ambas intrapredição e interpredição de uma unidade de codificação (CU) de profundidade de dados de vídeo; realizar predição para gerar uma CU de profundidade, a predição compreendendo um dentre: realizar intrapredição para gerar a CU de profundidade predita, com base em uma determinação de que a CU de profundidade é intrapredita; realizar interpredição para gerar a CU de profundidade predita, com base em uma determinação de que a CU de profundidade é interpredita; determinar que o elemento de sintaxe indica que o modo de SDC é usado para ambas intrapredição e interpredição de uma CU de profundidade; com base no elemento de sintaxe indicar que o modo de SDC é utilizado para ambas intrapredição e interpredição da CU de profundidade, receber para cada partição de uma unidade de predição (PU) da CU de profundidade, informação que representa pelo menos um valor residual de DC para a CU de profundidade, em que o pelo menos um valor residual de DC representa uma diferença de pixel entre a partição da PU da CU de profundidade e uma partição correspondente da CU de profundidade predita; e reconstruir a CU de profundidade utilizando o pelo menos um valor residual de DC e a CU de profundidade predita.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o elemento de sintaxe compreende um flag de um bit que é ajustado para ou um primeiro valor, que indica que o modo de SDC é utilizado para ambas intrapredição e interpredição da CU de profundidade, ou um segundo valor que indica que o modo de SDC não é utilizado para pelo menos uma dentre intrapredição ou interpredição da CU de profundidade.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o elemento de sintaxe é um primeiro elemento de sintaxe, o método adicionalmente compreendendo, obter, com base no primeiro elemento de sintaxe indicar que o modo de SDC é utilizado para ambas intrapredição e interpredição da CU de profundidade, uma estrutura de sintaxe compreendendo um ou mais segundos elementos de sintaxe indicando a informação representando o pelo menos um valor residual de DC para uma partição da PU da CU de profundidade, em que os segundos elementos de sintaxe da estrutura de sintaxe são os mesmos para a intrapredição e a interpredição da CU de profundidade.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que a obtenção da estrutura de sintaxe compreende a obtenção de uma única estrutura de sintaxe para a intrapredição e interpredição, em que a única estrutura de sintaxe compreende o segundo elemento de sintaxe indicando a informação representando o pelo menos um valor residual de DC para uma da intrapredição ou da interpredição da CU de profundidade.
5. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que a obtenção da estrutura de sintaxe compreende a obtenção de diferentes exemplos da estrutura de sintaxe para a intrapredição e a interpredição, respectivamente, cada um dos diferentes exemplos da estrutura de sintaxe incluindo os mesmos segundos elementos de sintaxe.
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que a obtenção da estrutura de sintaxe compreende decodificar por entropia os diferentes exemplos da estrutura de sintaxe utilizando um processo de decodificação de entropia adaptativa de contexto, e em que pelo menos um dos modelos de contexto ou processos de binarização utilizados para o processo de codificação de entropia adaptativa de contexto é o mesmo para os mesmos elementos de sintaxe nos diferentes exemplos da estrutura de sintaxe.
7. Método, de acordo com a reivindicação 1, caracterizado por adicionalmente compreender realizar um dentre: receber, com base no elemento de sintaxe indicar que o modo de SDC é utilizado para ambas intrepedição e interpredição da CU de profundidade, um flag que indica se existem quaisquer valores residuais de DC diferentes de zero para quaisquer partições da CU de profundidade para pelo menos uma de intrapredição ou interpredição, o método adicionalmente compreendendo, quando o flag indica que não existem valores residuais de DC diferentes de zero para quaisquer partições da CU de profundidade, ou inferir que o pelo menos um valor residual de DC é com base na informação representando o pelo menos um valor residual de DC para a CU de profundidade não ter sido recebida.
8. Método, de acordo com a reivindicação 1, caracterizado por adicionalmente compreender, desabilitar o uso de decodificação de modulação de código de impulso (PCM) para a CU de profundidade, com base no elemento de sintaxe indicar que o modo de SDC é utilizado para ambas intrapredição e interpredição da CU de profundidade.
9. Método, de acordo com a reivindicação 1, caracterizado por adicionalmente compreender restringir o uso do modo de SDC para CUs de profundidade tendo tamanhos de partição 2Nx2N.
10. Método, de acordo com a reivindicação 1, caracterizado por adicionalmente compreender restringir o uso do modo de SDC para CUs de profundidade interpreditas tendo tamanhos de partição 2Nx2N e CUs de profundidade intrapreditas tendo tamanhos de partição de 2Nx2N ou NxN.
11. Método, de acordo com a reivindicação 1, caracterizado por adicionalmente compreender usar o modo de SDC para a reconstrução de cada CU de profundidade de uma pluralidade de CUs de profundidade em uma sequência de vídeo codificado inteira, com base no elemento de sintaxe indicar que o modo de SDC é utilizado para ambas intrapredição e interpredição da CU de profundidade.
12. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a CU de profundidade é uma CU de profundidade intracodificada atual, o método adicionalmente compreendendo, utilizar amostras a partir de um componente de textura que corresponde a um componente de profundidade da CU de profundidade intracodificada atual para realizar a intrapredição para gerar a CU de profundidade predita.
13. Método de codificação de dados de vídeo, o método caracterizado por compreender: Realizar predição para gerar uma CU de profundidade predita, a predição compreendendo um dentre: intrapredição com base em uma determinação de que a CU de profundidade é intrapredita; interpredição com base em uma determinação de que a CU de profundidade é interpredita; determinar que um modo de codificação de profundidade simplificada (SDC) é utilizado para ambas a intrapredição e interpredição da CU de profundidade; com base na determinação de que o SDC é utilizado para ambas a intrapredição e interpredição da CU de profundidade, gerar para cada partição de uma unidade de predição (PU) da CU de profundidade, informação que representa pelo menos um valor residual de DC para a CU de profundidade, em que o pelo menos um valor residual de DC representa uma diferença de pixel entre a partição da PU da CU de profundidade e uma partição correspondente da CU de profundidade predita; com base na determinação de que o SDC é utilizado para ambas a intrapredição e interpredição da CU de profundidade, gerar um elemento de sintaxe que indica que o modo de SDC é utilizado para ambas intrapredição e interpredição da CU de profundidade de dados de vídeo; e codificar a CU de profundidade, usando a informação que representa pelo menos um valor residual de DC e o elemento de sintaxe.
14. Decodificador de vídeo caracterizado por compreender: uma memória que armazena de dados de vídeo incluindo um elemento de sintaxe que indica se um modo de codificação de profundidade simplificada (SDC) é utilizado para ambas intrapredição e interpredição de uma unidade de codificação de profundidade (CU) de dados de vídeo; e um ou mais processadores em comunicação com a memória configurados para: realizar predição para gerar uma CU de profundidade, a predição compreendendo um dentre: intrapredição para gerar a CU de profundidade predita, com base em uma determinação de que a CU de profundidade é intrapredita; interpredição para gerar a CU de profundidade predita, com base em uma determinação de que a CU de profundidade é interpredita; determinar que o elemento de sintaxe armazenado na memória indica que o modo de SDC é usado para ambas intrapredição e interpredição de uma CU de profundidade; com base no elemento de sintaxe indicar que o modo de SDC é utilizado para ambas intrapredição e interpredição da CU de profundidade, obter para cada partição de uma unidade de predição (PU) da CU de profundidade, informação que representa pelo menos um valor residual de DC para a CU de profundidade, em que o pelo menos um valor residual de DC representa uma diferença de pixel entre a partição da PU da CU de profundidade e uma partição correspondente da CU de profundidade predita; e reconstruir a CU de profundidade utilizando o pelo menos um valor residual de DC e a CU de profundidade predita.
15. Memória legível por computador caracterizada pelo fato de que possui instruções nela armazenadas que, quando executadas, fazem com que um computador realize o método conforme definido em qualquer uma das reivindicações 1 a 13.
BR112016013489-3A 2013-12-13 Sinalização de codificação de profundidade simplificada (sdc) para modos de inter e intrapredição em codificação de vídeo 3d BR112016013489B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/001562 WO2015085449A1 (en) 2013-12-13 2013-12-13 Signaling of simplified depth coding (sdc) for depth intra-and inter – prediction modes in 3d video coding

Publications (2)

Publication Number Publication Date
BR112016013489A2 BR112016013489A2 (pt) 2017-08-08
BR112016013489B1 true BR112016013489B1 (pt) 2023-08-01

Family

ID=

Similar Documents

Publication Publication Date Title
US11039129B2 (en) Signaling of simplified depth coding (SDC) for depth intra- and inter-prediction modes in 3D video coding
US10404999B2 (en) Residual coding for depth intra prediction modes
US10687079B2 (en) Constrained depth intra mode coding for 3D video coding
US10230983B2 (en) Simplification of delta DC residual coding in 3D video coding
US9756359B2 (en) Large blocks and depth modeling modes (DMM'S) in 3D video coding
KR101799165B1 (ko) Hevc 및 확장들에 대한 비디오 파라미터 세트
US10306265B2 (en) Simplification of segment-wise DC coding of large prediction blocks in 3D video coding
WO2015131387A1 (en) Simplified sub-prediction unit (sub-pu) motion parameter inheritence (mpi)
BR112016029720B1 (pt) Métodos de codificação e decodificação de dados de vídeo,dispositivos para codificar e decodificar dados de vídeo, e, memória legível por computador
BR112016000866B1 (pt) Processamento de compensação de iluminação para codificação de vídeo
US20140192157A1 (en) View synthesis in 3d video
WO2015131388A1 (en) Simplification of depth intra mode coding in 3d video coding
WO2015042751A1 (en) Residual coding for depth intra prediction modes
US20150063464A1 (en) Lookup table coding
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
WO2015135174A1 (en) Simplified disparity derived depth coding in three-dimensional (3d) video coding