BR112014012952B1 - Remoção de componente de profundidade para codificação de vídeo tridimensional compatível com codificação de vídeo de multivisualização - Google Patents

Remoção de componente de profundidade para codificação de vídeo tridimensional compatível com codificação de vídeo de multivisualização Download PDF

Info

Publication number
BR112014012952B1
BR112014012952B1 BR112014012952-5A BR112014012952A BR112014012952B1 BR 112014012952 B1 BR112014012952 B1 BR 112014012952B1 BR 112014012952 A BR112014012952 A BR 112014012952A BR 112014012952 B1 BR112014012952 B1 BR 112014012952B1
Authority
BR
Brazil
Prior art keywords
component
depth
video
texture
view
Prior art date
Application number
BR112014012952-5A
Other languages
English (en)
Other versions
BR112014012952A2 (pt
Inventor
Ying Chen
Ye-Kui Wang
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/689,508 external-priority patent/US10158873B2/en
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112014012952A2 publication Critical patent/BR112014012952A2/pt
Publication of BR112014012952B1 publication Critical patent/BR112014012952B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

REMOÇÃO DE COMPONENTE DE PROFUNDIDADE PARA CODIFICAÇÃO DE VÍDEO TRIDIMENSIONAL COMPATÍVEL COM CODIFICAÇÃO DE VÍDEO DE MULTIVISUALIZAÇÃO. Em geral, as técnicas são descritas para codificar separadamente componentes de profundidade e textura de dados de vídeo. Um dispositivo de codificação de vídeo configurado para codificar os dados de vídeo pode executar as técnicas. O dispositivo de codificação de vídeo pode compreender um armazenador de imagem decodificada e um processador configurado para armazenar um componente de profundidade no armazenador de imagem decodificada, analisar uma dependência de visualização para determinar se o componente de profundidade é utilizado para a predição de intervisualização e remover o componente de profundidade do armazenador de imagem decodificada, em resposta à determinação de que o componente de profundidade não é utilizado para a predição de intervisualização. para o processamento de dados de vídeo, incluindo um componente de visualização composto por um componente de profundidade e um componente de textura.

Description

[0001] Esta divulgação reivindica prioridade ao Pedido Provisório U.S. No. 61/565,376 depositado em 30 de novembro de 2011, Pedido Provisório U.S. No. 61/565,938 depositado em 1 de Dezembro 2011, Pedido Provisório U.S. No. 61/579,631 depositado em 22 de dezembro de 2011, e Pedido Provisório U.S. No. 61/584,009 depositado em 6 de janeiro de 2012, o conteúdo de cada um dos quais é aqui incorporado por referência na sua totalidade.
Campo Técnico
[0002] Esta divulgação refere-se à codificação de vídeo e, mais particularmente, à codificação de vídeo tridimensional (3DVC).
Fundamentos
[0003] Capacidades de vídeo digitais podem ser incorporadas em uma ampla gama de dispositivos, incluindo televisores digitais, sistemas de broadcast digital direta, sistemas de broadcast sem fio, assistentes digitais pessoais (PDAs), computadores laptop ou desktop, computadores tablet, e-books, digital câmeras, dispositivos de gravação digital, reprodutores de mídia digital, dispositivos de jogos de vídeo, videogames, telefones celulares ou de rádio por satélite, os chamados "smart fones", dispositivos de videoconferência, dispositivos de streaming de vídeo, e assim por diante. Dispositivos de vídeo digitais implementam técnicas de compressão de vídeo, tais como aquelas descritas nos padrões definidos pelo 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 Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em fase de desenvolvimento e extensão de tais padrões. Os dispositivos de vídeo pode transmitir, receber, codificar, decodificar e/ou armazenar informações de vídeo digital de forma mais eficiente através da implementação de tais técnicas de compressão de vídeo.
[0004] As técnicas de compressão de vídeo executam predição espacial (intraimagem) e/ou predição temporal (interimagem) para reduzir ou remover a redundância inerente em sequências de vídeo. Para a codificação de vídeo baseada em bloco, uma fatia de vídeo (isto é, uma imagem de vídeo, ou uma porção de uma imagem de vídeo) pode ser dividida em blocos de vídeo, que também podem ser referidos como blocos em árvore, unidades de codificação (CUs) e/ou 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 na mesma imagem. Blocos de vídeo em uma fatia intercodificada (P ou B) de uma imagem pode usar predição espacial em relação a amostras de referência em blocos vizinhos da mesma imagem ou predição temporal com relação a amostras de referência em outras imagens de referência. As imagens podem ser referidas como quadros e imagens de referência podem ser referidas como quadros de referência.
[0005] Predição espacial ou temporal resulta em um bloco preditivo para um bloco a ser codificado. Dados residuais representam as 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 formam o bloco preditivo, e os dados residuais 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 do domínio de pixel para um domínio de transformada, resultando em coeficientes de transformada residuais, que então podem ser quantizados. Os coeficientes de transformada quantizados, inicialmente dispostos em uma matriz bidimensional, podem ser varridos, a fim de produzir um vetor unidimensional de coeficientes de transformada, e codificação por entropia pode ser aplicada para conseguir ainda mais compressão.
Sumário
[0006] De um modo geral, esta divulgação descreve técnicas para codificação de vídeo tridimensional (3DVC). Mais particularmente, esta divulgação descreve técnicas para a realização de 3DVC usando uma extensão 3DVC do padrão H.264/Codificação de Vídeo Avançada (AVC). A extensão 3DVC define uma tecnologia de codificação de vídeo para codificação de múltiplas visualizações de dados de vídeo com dados de profundidade. Cada visualização pode corresponder a uma perspectiva, ou ângulo diferente, em que os dados de vídeo correspondentes de uma cena comum foram capturados. No contexto da 3DVC, cada visualização pode conter uma visualização de textura e uma visualização de profundidade. A representação codificada de uma visualização em um caso de tempo é um componente de visualização. Um componente de visualização pode conter um componente de visualização de profundidade e um componente de visualização de textura. As técnicas desta divulgação geralmente se referem a habilitar manipulação de ambos os componentes de textura e componentes de profundidade de uma visualização para 3DVC ao codificar dados de vídeo de multivisualizações mais dados de profundidade. As técnicas podem promover compatibilidade de 3DVC com MVC.
[0007] Em um exemplo, um método de codificação de dados de vídeo que inclui um componente de visualização que compreende um componente de profundidade e um componente de textura compreende a ativação de um conjunto de parâmetros como um conjunto de parâmetros de textura para o componente de textura do componente de visualização e codificação do componente de textura do componente de visualização com base no conjunto de parâmetros de textura ativado.
[0008] Em um outro exemplo, um dispositivo de codificação de vídeo para a codificação de dados de vídeo que inclui um componente de visualização composto por um componente de profundidade e um componente de textura compreende um processador configurado para ativar um conjunto de parâmetros como um conjunto de parâmetros de textura para o componente da textura do componente de visualização, e codificar o componente de textura do componente de visualização com base no conjunto de parâmetros de textura ativado.
[0009] Em um outro exemplo, um dispositivo de codificação de vídeo para a codificação de dados de vídeo que inclui um componente de visualização composto por um componente de profundidade e um componente de textura compreende meios para ativar um conjunto de parâmetros como um conjunto de parâmetros de textura para o componente de textura do componente de visualização e meios para codificar o componente de textura do componente de visualização com base no conjunto de parâmetros de textura ativado.
[0010] Em um outro exemplo, um meio de armazenamento legível por computador, não transitório tem armazenadas nele instruções que, quando executadas, fazem com que um ou mais processadores de um dispositivo de codificação de vídeo ativem um conjunto de parâmetros como um conjunto de parâmetros de textura para o componente de textura do componente de visualização, e codifiquem o componente de textura do componente de visualização com base no conjunto de parâmetros de textura ativado.
[0011] Em um outro exemplo, um método de processamento de dados de vídeo que inclui um componente de visualização compreende um componente de profundidade e um componente de textura é descrito. O método compreende a determinação de uma mensagem de informação de reforço suplementar que se aplica ao processar o componente de visualização de dados de vídeo, e a determinação de uma mensagem de informação de reforço suplementar aninhada que se aplica ao componente de profundidade do componente de visualização em adição à mensagem de informação de reforço suplementar.
[0012] Em um outro exemplo, um dispositivo para o processamento de dados de vídeo, incluindo um componente de visualização composto por um componente de profundidade e um componente de textura é descrito. O dispositivo compreende um processador configurado para determinar uma mensagem de informação de reforço suplementar que se aplica ao processar o componente de visualização de dados de vídeo, e determinar uma mensagem de informação de reforço suplementar aninhada que se aplica em adição à mensagem de informação de reforço suplementar ao processar o componente de profundidade do componente de visualização.
[0013] Em um outro exemplo, um dispositivo para o processamento de dados de vídeo, incluindo um componente de visualização composto por um componente de profundidade e um componente de textura é descrito. O dispositivo compreende meios para determinar uma mensagem de informação de reforço suplementar que se aplica ao processar o componente de visualização de dados de vídeo, e meios para determinar uma mensagem de informação de reforço suplementar aninhada que se aplica em adição à mensagem de informação de reforço suplementar ao processar o componente de profundidade do componente de visualização.
[0014] Em um outro exemplo, um meio de armazenamento legível por computador, não transitório tem armazenadas nele instruções que, quando executadas, fazem com que um ou mais processadores de um dispositivo para o processamento de dados de vídeo que inclui um componente de visualização composto por um componente de profundidade e um componente de textura determinem uma mensagem de informação de reforço suplementar que se aplica ao processar um componente de visualização dos dados de vídeo, em que o componente de visualização inclui tanto um componente de profundidade quanto um componente de textura e determinem uma mensagem de informação de reforço suplementar aninhada que se aplica em adição à mensagem de informação de reforço suplementar ao processar o componente de profundidade do componente de visualização.
[0015] Em um outro exemplo, um método para a codificação de vídeo compreende armazenar um componente de profundidade em um armazenador (buffer) de imagem decodificada, analisar uma dependência de visualização para determinar se o componente de profundidade é utilizado para predição de intervisualização e remover o componente de profundidade do armazenador de imagem decodificada em resposta à determinação de que o componente de profundidade não é utilizado para predição de intervisualização.
[0016] Em um outro exemplo, um dispositivo de codificação de vídeo configurado para codificar os dados de vídeo compreende um armazenador de imagem decodificada e um processador configurado para armazenar um componente de profundidade no armazenador de imagem decodificada, analisar uma dependência de visualização para determinar se o componente de profundidade é utilizado predição de intervisualização e remover o componente de profundidade do armazenador de imagem decodificada em resposta à determinação de que o componente de profundidade não é utilizado para a predição de intervisualização.
[0017] Em um outro exemplo, um dispositivo de codificação de vídeo para a codificação de dados de vídeo inclui meios para armazenar um componente de profundidade em um armazenador de imagem decodificada, meios para analisar uma dependência de visualização para determinar se o componente de profundidade é utilizado para predição de intervisualização, e meios para remover o componente de profundidade do armazenador de imagem decodificada em resposta à determinação de que o componente de profundidade não é utilizado para a predição de intervisualização.
[0018] Em um outro exemplo, um meio de armazenamento legível por computador, não transitório tem armazenadas nele instruções que, quando executadas, fazem com que um ou mais processadores de um dispositivo de codificação de vídeo armazenem um componente de profundidade em um armazenador de imagem decodificada, analisem uma dependência de visualização para determinar se o componente de profundidade é utilizado para predição de intervisualização, e remover o componente de profundidade do armazenador de imagem decodificada em resposta à determinação de que o componente de profundidade não é utilizado para a predição de intervisualização.
[0019] Em um outro exemplo, um método de processamento de dados de vídeo que inclui um componente de visualização que compreende um ou mais componentes de profundidade e um ou mais componentes de textura, o método compreende a determinação da primeira informação de nível de sequência que descreve as características dos componentes de profundidade, e a determinação da segunda informação de nível de sequência que descreve as características de um ponto de operação dos dados de vídeo.
[0020] Em um outro exemplo, um dispositivo de codificação de vídeo para o processamento de dados de vídeo, incluindo um componente de visualização que compreende um ou mais componentes de profundidade e um ou mais componentes de textura é descrito. O dispositivo de codificação de vídeo compreende um ou mais processadores configurados para determinar a primeira informação de nível de sequência que descreve as características dos componentes de profundidade, e determinar a segunda informação de nível de sequência que descreve as características de um ponto de operação dos dados de vídeo.
[0021] Em um outro exemplo, um dispositivo de codificação de vídeo para o processamento de dados de vídeo, incluindo um componente de visualização que compreende um ou mais componentes de profundidade e um ou mais componentes de textura é descrito. O dispositivo de codificação de vídeo compreende meios para determinar a primeira informação de nível de sequência que descreve as características dos componentes de profundidade e meios para determinar segunda informação de nível de sequência que descreve as características de um ponto de operação dos dados de vídeo.
[0022] Em outro exemplo, um meio de armazenamento legível por computador não transitório tem armazenadas nele instruções que, quando executadas, fazem com que um ou mais processadores de um dispositivo de codificação de vídeo determinem as primeira informação de nível de sequência que descreve características de um ou mais componentes de profundidade de dados de vídeo, em que os dados de vídeo incluem um componente de visualização que compreende um ou mais componentes de profundidade e um ou mais componentes de textura e determinem a segunda informação de nível de sequência que descreve as características de um ponto de operação dos dados de vídeo.
[0023] Os detalhes de um ou mais aspectos da divulgação são estabelecidos nos desenhos acompanhantes e na descrição abaixo. Outras características, objetos e vantagens das técnicas descritas nesta especificação serão evidentes a partir da descrição e desenhos, e a partir das reivindicações.
Breve Descrição dos Desenhos
[0024] A figura 1 é um diagrama de blocos que ilustra um sistema de codificação e decodificação de vídeo exemplar que pode utilizar as técnicas descritas nesta especificação.
[0025] A figura 2 é um diagrama de blocos que ilustra o codificador de vídeo mostrado no exemplo da figura 1 em maior detalhe.
[0026] A figura 3 é um diagrama de blocos que ilustra o decodificador de vídeo mostrado no exemplo da figura 1 em maior detalhe.
[0027] A figura 4 é um diagrama de blocos que ilustra a unidade de encapsulamento mostrado no exemplo da figura 1 em maior detalhe.
[0028] A figura 5 é um diagrama conceitual ilustrando um padrão de predição de Codificação de Vídeo de Multivisualização (MVC) exemplar.
[0029] A figura 6 é um diagrama de fluxo ilustrando a operação de um dispositivo de codificação de vídeo na implementação de ativação conjunto de parâmetros para o 3DVC compatível com MVC de acordo com vários aspectos das técnicas descritas nesta divulgação.
[0030] A figura 7 é um diagrama de fluxo que ilustra a operação exemplar de processamento de dados de vídeo de multivisualizações para gerar mensagens de informação de reforço suplementar aninhada (SEI) para 3DVC compatível com MVC de acordo com as técnicas descritas nesta especificação.
[0031] A figura 8 é um diagrama de fluxo que ilustra a operação exemplar de um dispositivo de codificação de vídeo na remoção em separado de componentes de textura e profundidade de um armazenador de imagem decodificada para 3DVC compatível com MVC de acordo com as técnicas descritas nesta especificação.
[0032] A figura 9 é um diagrama de fluxo que ilustra a operação exemplar de dispositivo de codificação de vídeo ao determinar a informação de nível de sequência para 3DVC compatível com MVC de acordo com as técnicas descritas nesta especificação.
Descrição Detalhada
[0033] De acordo com certos sistemas de codificação de vídeo, estimação de movimento e compensação de movimento podem ser usadas para reduzir a redundância temporal em uma sequência de vídeo, de modo a conseguir a compressão de dados. Neste caso, um vetor de movimento pode ser gerado que identifica um bloco preditivo de dados de vídeo, por exemplo, um bloco de outra imagem de vídeo ou fatia, que pode ser utilizado para predizer os valores do bloco de vídeo atual a ser codificado. Os valores do bloco de vídeo preditivo são subtraídos dos valores do bloco de vídeo atual para produzir um bloco de dados residuais. Informações de movimento (por exemplo, um vetor de movimento, índices de vetor de movimento, direções de predição, ou outras informações) são comunicadas a partir de um codificador de vídeo para um decodificador de vídeo, juntamente com os dados residuais. O decodificador pode localizar o mesmo bloco preditivo (com base no vetor de movimento) e reconstruir o bloco de vídeo codificado pela combinação dos dados residuais, com os dados do bloco preditivo.
[0034] Codificação de Vídeo de Multivisualização (MVC) é um processo de codificação de vídeo para codificação de múltiplas visualizações de dados de vídeo. Em geral, cada visualização corresponde a uma perspectiva ou ângulo diferente, em que correspondentes dados de vídeo de uma cena comum foram capturados. A codificação de vídeo tridimensional (3DVC) pode ser realizada utilizando MVC mais codificação de profundidade. A extensão 3DVC com o padrão H.264/AVC ITU-T está atualmente em desenvolvimento. Um projeto de trabalho de uma emenda ao padrão H.264/AVC para adicionar a extensão 3DVC é descrito em "WD on MVC Extensions for inclusion of Depth Maps", ISO/IEC/JTC1/SC29/WG11/N12351, Genebra, Suíça, Novembro de 2011 ("3DVC WD"). A extensão 3DVC, também conhecida como extensões MVC para a inclusão de mapas de profundidade, define as técnicas para codificação de visualizações para suportar a exibição de dados de vídeo 3D.
[0035] Por exemplo, em vídeo 3D, duas visualizações (por exemplo, visualizações do olho esquerdo e direito de um espectador humano) podem ser exibidas simultaneamente ou quase simultaneamente usando diferentes polarizações da luz, e um espectador pode usar óculos polarizados passivos, de forma que cada dos olhos do espectador recebe uma respectiva visualização de uma das visualizações. Alternativamente, o espectador pode usar óculos ativos que comporta cada olho de forma independente, e um display pode rapidamente alternar entre as imagens de cada olho em sincronização com os óculos.
[0036] Embora cada visualização (por exemplo, visualizações do olho esquerdo e direito) pode ser codificada individualmente, em 3DVC, uma das visualizações é reconstruída a partir da outra visualização usando um componente de profundidade da visualização. Por esta razão, esta forma de 3DVC também pode ser referida como codificação de vídeo de multivisualização mais profundidade (MVC + D). Para ilustrar, um mapa de profundidade de uma imagem específica de uma visualização (onde esta imagem particular de uma visualização pode ser referida como um "componente de visualização" da visualização) pode ser calculado como a diferença entre a visualização do olho esquerdo e a visualização do olho direito. O codificador pode codificar a visualização do olho esquerdo, por exemplo, como um chamado "componente de textura" do componente de visualização e o mapa de profundidade pode ser codificado como um assim chamado "componente de profundidade" do componente de visualização.
[0037] O decodificador pode então decodificar o componente de textura do componente de visualização e o componente de profundidade do componente de visualização e reconstruir a visualização do olho direito do componente de textura (o que representa a visualização do olho esquerdo), utilizando o componente de profundidade. Através da codificação de apenas uma visualização e um mapa de profundidade correspondente desta maneira, 3DVC pode de forma mais eficiente codificar amas as visualizações do olho direito e olho esquerdo em comparação com a codificação de ambas a visualização do olho esquerdo e a visualização do olho direito de forma independente como visualizações separadas dos dados 3DVC.
[0038] Quando da codificação dos componentes de textura e profundidade de uma visualização, o codificador de vídeo normalmente lida ou não processa os componentes de textura e profundidade como componentes de visualização sem prover qualquer maneira pela qual distinguir entre os componentes de textura e profundidade. Ou seja, 3DVC provê a manipulação ou codificação de componentes de visualização sem prover uma maneira pela qual processar individualmente os componentes de textura separadamente a partir de componentes de profundidade do mesmo componente de visualização. Esta falta de distinção em 3DVC pode resultar em menor eficácia de codificação e/ou qualidade inferior de dados de vídeo reconstruído.
[0039] Por exemplo, um componente de profundidade pode atualmente ser obrigado a ser especificado na mesma resolução como um componente de textura correspondente de modo a acomodar a manipulação conjunta deste componente de visualização. Um componente de profundidade poder resolução (em comparação com a resolução do componente de textura) pode, contudo, resultar em reprodução de vídeo de três dimensões (3D) em que um melhor vídeo 3D mais imersivo pode resultar que melhor imita qual o sistema visual que o espectador espera. Além disso, um componente de profundidade de baixa resolução (em comparação com a resolução do componente de textura) pode prover a mesma ou experiência 3D imersiva semelhante, em certos casos, mas quando consumir menos bits quando codificado e, assim, aumenta a eficiência da codificação. Ao falhar em permitir a manipulação separada de componentes de profundidade e textura, 3DVC pode reduzir a eficiência de codificação e/ou provê menor qualidade de dados de vídeo reconstruídos (muitas vezes, em termos, da experiência de visualização).
[0040] As técnicas desta divulgação geralmente se referem a permitir a manipulação separada ou independente de componentes de textura e componentes de profundidade de uma visualização durante o processamento ou codificação de dados de vídeo 3DVC. Por exemplo, esta divulgação propõe sinalização de tamanho da imagem de uma sequência de mapa de profundidade em um conjunto de parâmetros de sequência (SPS). Estas técnicas de sinalização podem ser aplicadas por um codificador e usadas por um decodificador, durante o processo de codificação de decodificação de vídeo e/ou. As técnicas descritas estão relacionadas com a codificação de imagens de conteúdo de vídeo. As imagens codificadas podem ter um tamanho unitário, tal como um bloco de uma altura e uma largura selecionada, que pode ser sinalizado como elementos de sintaxe de um conjunto de parâmetros de sequência, de acordo com as técnicas desta divulgação. Elementos de sintaxe para sequências de visualização de textura e sequências de profundidade de mapa podem ser sinalizadas em um conjunto de parâmetros de sequência.
[0041] Mais especificamente, as técnicas envolvem sinalização de informações de sintaxe quando uma sequências de mapa de profundidade tem uma resolução diferente da sequência de visualização de textura correspondente. 3DVC pode incluir codificação de múltiplas visualizações com uma sequências de mapa de profundidade para cada visualização. Essas sequências de mapa de profundidade podem ter uma resolução diferente das sequências de visualização de textura. Neste caso, o componente de visualização de profundidade e o componente de visualização de textura não podem compartilhar o mesmo conjunto de parâmetros de sequência (SPS), quando as unidades de camada de abstração de rede (NAL) de textura e profundidade são simplesmente multiplexadas juntas. Pode não ser possível indicar diferentes níveis, com ou sem profundidade, na extensão de SPS MVC atual. No princípio do projeto AVC, pode não ser possível ativar mais de um conjunto de parâmetros de sequência, que contém o tamanho da imagem. Assim, com dois tamanhos de imagem diferentes podem resultar na ativação de vários conjuntos de parâmetros sequência.
[0042] As técnicas da presente divulgação, podem ser usadas para indicar uma sequência de 3DVC baseada em AVC e MVC estéreo, quando a sequência de 3DVC inclui um mapa de profundidade, com uma resolução espacial diferente de uma visualização de textura correspondente. Ao permitir essa manipulação independente, os vários aspectos das técnicas descritas nesta divulgação podem promover a economia de bits (ou, em outras palavras, uma codificação mais eficiente de dados de vídeo de multivisualização) e/ou melhoria da qualidade de dados de vídeo reconstruído (que por sua vez pode ser medido em termos de uma experiência de visualização percebida).
[0043] A descrição que se segue deve ser entendida como sendo, no contexto de 3DVC, em que a referência a MVC é entendida como referência a MVC no que se refere a MVC mais codificação de profundidade na extensão 3DVC. Ou seja, dado que MVC é uma extensão de H.264, e 3DVC é uma extensão adicional de H.264 que faz uso de MVC, 3DVC incorpora ou de outra maneira pode ser considerada como "sucessível" de todos os aspectos da MVC. 3DVC pode aumentar ou adicionar a MVC quando adequado, na forma aqui descrita para prover um fluxo de bits compatível com MVC que também inclui mapas de profundidade para os decodificadores de vídeo que suportam 3DVC. Em outras palavras, em alguns exemplos, as técnicas podem proporcionar a geração de um fluxo de bits de 3DVC que é compatível com o MVC (ou, em outras palavras, capazes de serem decodificados por um decodificador de vídeo que não suporta 3DVC, mas que suporta MVC). Enquanto as seguintes técnicas são cada uma descrita no contexto de 3DVC, estas técnicas podem ser estendidas em alguns casos, a outras formas de codificação de dados de vídeo 3D com ambos os componentes de visualização de textura e componentes de visualização de profundidade.
[0044] A figura 1 é um diagrama de blocos que ilustra um exemplo de um sistema de decodificação e codificação de vídeo 10, que pode utilizar técnicas de predição de vetor de movimento em codificação de multivisualização. Como mostrado na figura 1, o sistema 10 inclui um dispositivo de origem 12, que provê dados de vídeo codificado para serem decodificados posteriormente 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. O dispositivo de origem 12 e dispositivo de destino 14 podem compreender qualquer um de uma ampla gama de dispositivos, incluindo computadores desktop, computadores notebook (ou seja, laptop), tablets, computadores slate, set-top boxes, aparelhos telefônicos, tais como os chamados telefones “inteligentes”, assim chamados portáteis (pads) "inteligentes", televisores, câmeras, dispositivos de exibição, reprodutores de mídia digital, consoles de jogos de vídeo, dispositivo de streaming de vídeo, ou semelhantes. Em alguns casos, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio.
[0045] Dispositivo de destino 14 pode receber os dados de vídeo codificado para serem decodificados via meio legível por computador 16. Meio legível por computador 16 pode compreender qualquer tipo de meio ou dispositivo capaz de transferir os dados de vídeo codificado de dispositivo de origem 12 para o dispositivo de destino 14. Em um exemplo, o meio legível por computador 16 pode incluir um meio de comunicação para permitir que dispositivo de origem 12 transmita dados de vídeo codificado diretamente para o dispositivo de destino 14, em tempo real ou em tempo quase real.
[0046] Os dados de vídeo codificado podem ser modulados de acordo com um padrão de comunicação, como um protocolo de comunicação sem fio, e transmitidos para o dispositivo de destino 14. O meio de comunicação pode incluir qualquer meio de comunicação com ou sem fio, tal como um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão físicas. O meio de comunicação pode fazer 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 do dispositivo de origem 12 com o dispositivo de destino 14.
[0047] Em alguns exemplos, os dados codificados podem ser emitidos do transmissor 24 do dispositivo de origem 24 para um dispositivo de armazenamento. Da mesma forma, os dados codificados podem ser acessados a partir do dispositivo de armazenamento pelo receptor 26 do dispositivo de destino 14. O dispositivo de armazenamento pode incluir qualquer um de uma variedade de meios de armazenamento de dados distribuídos ou localmente acessados, tal como um disco rígido, os discos Blu-ray, DVDs, CD-ROM, memória flash, memória volátil ou não volátil, ou qualquer outra mídia de armazenamento digital adequada para o armazenamento de dados de vídeo codificado. 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.
[0048] Dispositivo de destino 14 pode acessar dados de vídeo armazenados a partir do dispositivo de armazenamento via streaming ou download. O servidor de arquivos pode ser qualquer tipo de servidor capaz de armazenar dados de vídeo codificado e transmitir os dados de vídeo codificado para o dispositivo de destino 14. Exemplos de servidores de arquivos incluem um servidor de web (por exemplo, para um site), um servidor de FTP, dispositivos de armazenamento conectados à rede (NAS), ou uma unidade de disco local. Dispositivo de destino 14 pode acessar os dados de vídeo codificado por meio de qualquer conexão de dados padrão, incluindo acesso à Internet. Isto pode incluir um canal sem fio (por exemplo, uma conexão WiFi), uma conexão com fio (por exemplo, DSL, modem cabeado, etc.), ou uma combinação de ambos que seja adequada para o acesso a dados de vídeo codificado armazenados em um servidor de arquivos. A transmissão de dados de vídeo codificado do dispositivo de armazenamento pode ser uma transmissão de fluxo contínuo, uma transmissão de download, ou uma combinação dos mesmos.
[0049] As técnicas da presente divulgação não são necessariamente limitadas a aplicações ou configurações sem fio. As técnicas podem ser aplicadas a codificação de vídeo em suporte a qualquer um de uma variedade de aplicações multimídia, como transmissões através do ar de TV, transmissões de televisão por cabo, transmissões de televisão por satélite, transmissões de streaming de vídeo de Internet, como streaming adaptativo dinâmico sobre HTTP (DASH), vídeo digital, que é codificado em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados ou outras aplicações. Em alguns exemplos, o sistema 10 pode ser configurado para suportar transmissão de vídeo de uma ou duas vias para suportar aplicações como streaming de vídeo, reprodução de vídeo, transmissão de vídeo e/ou telefonia com vídeo.
[0050] No exemplo da figura 1, o dispositivo de origem 12 inclui uma fonte de vídeo 18, um codificador de vídeo 20, uma unidade de encapsulamento 21, e uma interface de saída 22. O dispositivo de destino 14 inclui interface de entrada 28, unidade de desencapsulamento 29, decodificador de vídeo 30, e um dispositivo de exibição 32. Em alguns exemplos, o dispositivo de origem 12 e o dispositivo de destino 14 podem incluir outros componentes ou arranjos. Por exemplo, o dispositivo de origem 12 pode receber dados de vídeo a partir de uma fonte de vídeo externa 18, tal como uma câmara externa. Da mesma forma, o dispositivo de destino 14 pode interagir com um dispositivo de exibição externo, em vez de incluir o dispositivo de exibição integrado 32.
[0051] O sistema ilustrado 10 da figura 1 é meramente um exemplo. As técnicas para a predição de vetor de movimento em codificação de multivisualização (incluindo 3DVC) podem ser realizadas por qualquer dispositivo de codificação e/ou decodificação de vídeo digital. Apesar de geralmente as técnicas desta divulgação serem realizadas por um dispositivo de codificação de vídeo, as técnicas também podem ser realizadas por um codificador / decodificador de vídeo, normalmente referido 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 simplesmente exemplos de tais dispositivos de codificação, em que dispositivo de origem 12 gera dados de vídeo codificado 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 inclui componentes de codificação e decodificação de vídeo. Assim, o sistema 10 pode suportar uma transmissão de vídeo de uma ou duas vias entre dispositivos de vídeo 12, 14, por exemplo, para streaming de vídeo, reprodução de vídeo, transmissão de vídeo, ou telefonia com vídeo.
[0052] A 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 transmissão de vídeo para receber vídeo de um provedor de conteúdo de vídeo. Como uma outra alternativa, fonte de vídeo 18 pode gerar dados de gráficos em computador como o vídeo de origem, ou uma combinação de vídeo ao vivo, vídeo arquivado, e vídeo gerado por computador. Em alguns casos, se a fonte de vídeo 18 é uma câmera de vídeo, dispositivo de origem 12 e dispositivo de destino 14 pode formar os chamados celulares com câmeras ou telefones com vídeo. Como mencionado acima, no entanto, as técnicas descritas nesta especificação podem ser aplicadas para codificação de vídeo, em geral, e podem ser aplicadas para aplicações sem fio e/ou com fio. Em cada caso, o vídeo gerado pelo computador capturado, ou pré-capturado pode ser codificado pelo 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.
[0053] A fonte de vídeo 24 pode geralmente oferecer uma pluralidade de visualizações de uma cena para codificador de vídeo 28. Fonte de vídeo 24 também pode prover informações indicativas de locais de perspectivas de câmera para as visualizações. Fonte de vídeo 24 pode prover essas informações para codificador de vídeo 28, ou pode prover as informações diretamente para a unidade de encapsulamento 21.
[0054] Unidade de encapsulamento 21 pode utilizar a informação indicativa de locais relativos de perspectivas de câmera para as visualizações para atribuir identificadores de visualização para visualizações de conteúdo multimídia. Unidade de encapsulamento 21 pode formar uma ou mais representações do conteúdo multimídia, onde cada uma das representações pode incluir uma ou mais visualizações. Em alguns exemplos, codificador de vídeo 20 pode codificar cada visualização de diferentes maneiras, por exemplo, com diferentes taxas de quadros, diferentes taxas de bits, diferentes resoluções, ou outras tais diferenças. Assim, a unidade de encapsulamento 21 pode formar várias representações tendo várias características, como por exemplo, taxa de bits, taxa de quadros, resolução e assim por diante.
[0055] Cada uma das representações pode corresponder aos respectivos fluxos de bits que podem ser recuperados pelo dispositivo de destino 14. Unidade de encapsulamento 21 pode prover uma indicação de um intervalo de identificadores de visualização (view_ids) para visualizações incluídas em cada representação, por exemplo, dentro de uma estrutura de dados de descrição de apresentação de mídia (MPD) para o conteúdo multimídia. Por exemplo, a unidade de encapsulamento 21 pode prover uma indicação de um identificador de visualização máximo e um identificador de visualização mínimo para as visualizações de uma representação. O MPD pode prover mais indicações de número máximo de visualizações direcionadas para a saída de cada um de uma pluralidade de representações do conteúdo multimídia. O MPD ou de dados do mesmo pode, em alguns exemplos, ser armazenado em um manifesto para a representação (s).
[0056] Meio legível por computador 16 pode incluir mídia transitória, tal como uma transmissão sem fio ou transmissão de rede com fio, ou mídia de armazenamento (isto é, mídia de armazenamento não transitória), tal como um disco rígido, unidade flash, disco compacto digital, disco de vídeo digital, discos Blu-ray, ou outros meios legíveis por computador. Em alguns exemplos, um servidor de rede (não mostrado) pode receber dados de vídeo codificado a partir do dispositivo de origem e 12 prover os dados de vídeo codificado 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 meio, tais como um mecanismo 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 codificado. Portanto, o meio legível por computador 16 pode ser entendido para incluir um ou mais meios legíveis por computador de várias formas, em vários exemplos.
[0057] Interface de entrada 28 do dispositivo de destino 14 recebe informações do 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 é usado 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. Unidade de desencapsulamento 29 do dispositivo de destino 14 pode representar uma unidade que desencapsula mensagens SEI de um fluxo de bits (ou de um subconjunto de um fluxo de bits designado por um "ponto de operação", no contexto do MVC). Unidade de desencapsulamento 29 pode executar operações em uma ordem oposta aquelas realizadas pela unidade de encapsulamento 29 a desencapsula dados do fluxo de bits codificado encapsulado, tal como mensagens SEI. Dispositivo de exibição 32 mostra dados de vídeo decodificado para um usuário, e pode compreender qualquer um de uma variedade de dispositivos de exibição, tais como um tubo de raios catódicos (CRT), um visor de cristal líquido (LCD), uma tela de plasma, um diodo emissor de luz orgânica (OLED), ou outro tipo de dispositivo de exibição.
[0058] Codificador de vídeo 20 e decodificador de vídeo 30 cada um pode ser implementado como qualquer um de uma variedade de conjunto de circuitos de codificador ou decodificador adequado, conforme o caso, como um ou mais microprocessadores, processadores de sinais digitais (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de portas programáveis em campo (FPGA), conjunto de circuitos de lógica discreta, software, hardware, firmware ou qualquer combinação destes. 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, ou podem ser integrados como parte de um codificador / decodificador de vídeo combinado (CODEC). Um dispositivo, incluindo o 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.
[0059] Embora não mostrado na figura 1, em alguns aspectos, codificador de vídeo 20 e decodificador de vídeo 30 pode cada um ser integrado com um codificador e decodificador de áudio, e pode incluir unidades apropriadas MUX-DEMUX, 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 de acordo com o protocolo multiplexador ITU H.223, ou outros protocolos, como o Protocolo de Datagrama de Usuário (UDP).
[0060] No exemplo mostrado na figura 1, o sistema 10 também inclui rede de distribuição de servidor / conteúdo 34 tendo roteador 36. Em alguns exemplos, o dispositivo de origem 12 pode se comunicar com a rede de distribuição do servidor / conteúdo 34 através de uma variedade de meios de transmissão ou de armazenamento sem fio e/ou com fio, como descrito acima. Além disso, enquanto mostrado separadamente no exemplo da figura 1, em alguns exemplos, o dispositivo de origem 12 e de rede de distribuição de servidor / conteúdo 34 compreendem o mesmo dispositivo. Rede de distribuição de servidor / conteúdo 34 pode armazenar uma ou mais versões de dados de vídeo codificado (a partir do codificador de vídeo 20 do dispositivo de origem 12), e pode tornar tais dados de vídeo codificado disponíveis para acesso pelo dispositivo de destino 14 e pelo decodificador de vídeo 30. Em alguns exemplos, o roteador 36 pode ser responsável por prover dados de vídeo codificado para o dispositivo de destino 14 em um formato solicitado.
[0061] Codificador de vídeo 20 e decodificador de vídeo 30 podem funcionar de acordo com um padrão de codificação de vídeo, como o Padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento, e podem estar de acordo com o modelo de teste HEVC (HM). Alternativamente, codificador de vídeo 20 e decodificador de vídeo 30 podem funcionar de acordo com outras normas de propriedade ou da indústria, tais como o padrão ITU-T H.264, alternativamente conhecido como MPEG-4 Parte 10, Codificação de Vídeo Avançada (AVC), ou extensões dessas normas, incluindo a extensão MVC e/ou extensão 3DVC para H.264. As técnicas da presente divulgação, no entanto, não estão limitadas a qualquer padrão de codificação particular. Outros exemplos de padrões de codificação de vídeo MPEG-2 incluem e ITU-T H.263.
[0062] O H.264/MPEG-4 (AVC) ITU-T foi formulado pelo ITU-T Video Coding Experts Group (VCEG) em conjunto com o padrão ISO / IEC Moving Picture Experts Group (MPEG), como o produto de uma parceria coletiva conhecida como Joint Video Team (JVT). Em alguns aspectos, as técnicas descritas nesta especificação podem ser aplicadas a dispositivos que geralmente se conformam com o padrão H.264. O padrão H.264 é descrito em ITU-T Recommendation H.264, Advanced Video Coding for generic audiovisual services pelo UIT-T Study Group, e datado de março de 2005, o que pode ser aqui referido como o padrão H.264 ou especificação H.264, ou o padrão ou especificação H.264/AVC. H.264/AVC inclui extensões de codificação de vídeo escalável (SVC) e extensões MVC. Além disso, há desenvolvimento adicional para prover uma extensão 3DVC, fazendo uso de MVC, com a inclusão de mapas de profundidade. O Joint Video Team (JVT) continua a trabalhar em extensões para H.264/MPEG-4 AVC. Embora descrito dentro do contexto de 3DVC, as técnicas descritas nesta especificação podem ser implementadas no que diz respeito a outros algoritmos de codificação de vídeo, capazes de codificação e decodificação de vídeo 3D envolvendo ambos os componentes de textura e profundidade.
[0063] Codificador de vídeo 20 pode enviar dados de sintaxe, tal como os dados de sintaxe baseados em blocos, dados de imagem baseados em blocos, e os dados de sintaxe baseados em GOP, um decodificado de vídeo 30, por exemplo, em um cabeçalho de imagem, um cabeçalho de bloco, uma cabeçalho de fatia, ou um cabeçalho GOP. Os dados de sintaxe 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 usado para codificar a imagem correspondente.
[0064] Em alguns exemplos, o codificador de vídeo 20 pode gerar e o decodificador de vídeo 30 pode receber certos conjuntos de parâmetros, que podem ser usados quando da decodificação de dados de vídeo. Por exemplo, conjuntos de parâmetros podem conter informações de cabeçalho de nível de sequência (em conjuntos de parâmetros de sequência (SPS)) e raramente alterando informações de cabeçalho de nível de sequência (em conjuntos de parâmetros de imagem (PPS)). Com conjuntos de parâmetros (por exemplo, PPS e SPS), raramente mudando informação não precisa ser repetida para cada sequência (por exemplo, a sequência de imagens) ou imagem; daí a eficiência de codificação pode ser melhorada. Além disso, a utilização de conjuntos de parâmetros pode permitir a transmissão fora-de-banda de informação de cabeçalho importante, evitando a necessidade de transmissões redundantes para resiliência de erro. Nos exemplos de transmissão fora-de-banda, unidades NAL de conjunto de parâmetros podem ser transmitidas em um canal diferente de outras unidades NAL, como unidades NAL de Informação de Reforço Suplementar (SEI).
[0065] Unidades SEI NAL (referidas como mensagens SEI) podem conter informações que não são necessárias para decodificar as amostras de imagens codificadas das unidades NAL de camada de codificação de vídeo (VCL), mas podem ajudar em processos relacionados com a decodificação, exibição, resiliência de erro, e outros fins. Mensagens SEI podem estar contidas em unidades não-VCL NAL. Mensagens SEI podem ser incluídas na parte normativa de algumas especificações padrão e, portanto, nem sempre são obrigatórias para a implementação de decodificador compatível padrão. Mensagens SEI podem ser mensagens SEI de nível de sequência ou mensagens SEI de nível de imagem. Algumas informações sobre o nível de sequência podem estar contidas em mensagens SEI, tais como mensagens SEI de informação escalabilidade no exemplo de SVC e mensagens SEI de informação de visualização de escalabilidade em MVC. Mensagens SEI de informações de escalabilidade de visualização também podem prover informações sobre o nível de sequência para a extensão 3DVC para H.264. Unidade de encapsulamento 21 pode formar estas mensagens SEI e prover essas mensagens SEI para rede de distribuição de servidor / conteúdo 34 para uso em negociação, como um exemplo, a entrega de dados de vídeo codificado.
[0066] A unidade de encapsulamento 30 pode formar unidades NAL compreendendo um cabeçalho que identifica um programa ao qual NAL pertence, bem como uma carga útil, por exemplo, dados de áudio, dados de vídeo, ou dados que descrevem o transporte ou fluxo de programa aos quais a unidade NAL corresponde. Por exemplo, em H.264/AVC, uma unidade NAL inclui um cabeçalho de 1 byte e uma carga útil de tamanhos variados. Em um exemplo, um cabeçalho de unidade NAL compreende um elemento Priority_id, um elemento temporal_id, um elemento anchor_pic_flag, um elemento view_id, um elemento non_idr_flag, e um elemento inter_view_flag. Em MVC convencional, a unidade NAL definida por H.264 é mantida, com exceção de unidades NAL de prefixo e unidades NAL de fatia codificadas por MVC, o que inclui um cabeçalho de unidade de MVC NAL de 4 byte e a carga útil de unidade NAL.
[0067] Em alguns exemplos, codificador de vídeo 20 pode codificar um fluxo de bits de 3DVC que está de acordo com a extensão 3DVC de H.264, usando MVC, além de informações de profundidade. O mais recente projeto comum de MVC está descrito em “Advanced vídeo conding for generic audiovisual services”, ITU-T Recommendation H.264, Março de 2010, enquanto um projeto de trabalho de 3DVC é descrito em “WD on MVC Extensions for Inclusion of Depth Maps”, ISO/IEC/JTC1/SC29/WG11/N12351, Genebra, Suíça, Novembro de 2011, descrito acima. Novamente, a referência nesta divulgação a MVC deve ser entendida como uma referência a MVC mais profundidade dentro do contexto de 3DVC. Isto é, MVC é referido nesta especificação no que diz respeito a 3DVC no sentido de que 3DVC incorpora ou “constrói” MVC.
[0068] Na extensão 3DVC para H.264, a visualização inclui textura e profundidade. A parte de textura de uma visualização é chamada a visualização de textura e a parte de profundidade de uma visualização é chamada a visualização de profundidade. A parte de textura de uma visualização em uma unidade de acesso, ou seja, uma visualização de textura em uma unidade de acesso, é nomeada o componente de visualização de textura. A parte de profundidade de uma visualização em uma unidade de acesso, ou seja, uma visualização de profundidade em uma unidade de acesso, é nomeada o componente de visualização de profundidade. O termo componente de visualização é uma visualização em uma unidade de acesso e coletivamente refere-se tanto a componente de visualização de textura quanto a componente de visualização de profundidade na mesma unidade de acesso.
[0069] Nas extensões de H.264 / AVC, elementos de sintaxe podem ser adicionados na extensão de cabeçalho de unidade NAL para estender o cabeçalho de unidade NAL de um byte para quatro bytes para descrever as características de uma unidade NAL VCL em múltiplas dimensões. Assim, uma unidade NAL VCL na extensão MVC pode incluir um cabeçalho de unidade NAL mais longo do que o cabeçalho de unidade NAL no padrão H.264/AVC. A extensão MVC para H.264/AVC pode ser referida nesta divulgação como "MVC / AVC".
[0070] Uma unidade NAL MVC / AVC pode incluir um cabeçalho de unidade NAL de um byte, que inclui o tipo de unidade NAL, assim como uma extensão de cabeçalho de unidade NAL MVC / AVC. Como um exemplo, a extensão do cabeçalho de unidade NAL MVC / AVC pode incluir os elementos de sintaxe na seguinte tabela: SINTAXE DE EXTENSÃO DE CABEÇALHO DE UNIDADE NAL
[0071] Na tabela acima, o elemento idr_flag pode indicar se a unidade NAL pertence a uma atualização de decodificador instantânea (IDR) ou uma imagem view_IDR (V- IDR) que pode ser utilizada como um ponto de acesso aleatório de GOP fechado. Por exemplo, uma imagem IDR e todas as imagens sucessivas a imagem IDR em ambas uma ordem de visualização e ordem de fluxo de bits pode ser corretamente decodificada sem decodificar imagens anteriores em qualquer ordem de fluxo de bits ou ordem de visualização.
[0072] O elemento priority_id pode ser usado com um processo de adaptação de fluxo de bits, que varia o fluxo de bits de acordo com mudanças nas condições da rede e/ou capacidades de decodificador de vídeo 30 e/ou dispositivo de exibição 32 (por exemplo, como o processo de adaptação de única passagem). O elemento view_id pode ser usado para indicar o identificador de visualização para a visualização a qual a unidade NAL pertence, que pode ser usada no interior de um decodificador de MVC, por exemplo, para a predição de intervisualização do lado de fora de um decodificador, por exemplo, para processamento. Em alguns casos, o view_id pode ser igual a um id de câmera predefinido, e pode ser relativamente grande. O elemento temporal_id pode ser utilizado para indicar o nível temporal da unidade NAL atual, que pode corresponder a uma velocidade de quadro particular.
[0073] O elemento anchor_pic_flag pode ser utilizado para indicar se a unidade NAL pertence a uma imagem âncora, que pode ser utilizada como um ponto de acesso aleatório de GOP aberto. Por exemplo, as imagens âncoras e todas as imagens sucessivas à imagem âncora na ordem de visualização podem ser corretamente decodificadas sem decodificar imagens anteriores na ordem de decodificação (ou seja, ordem de fluxo de bits) e, portanto, podem ser usadas como pontos de acesso aleatório. Imagens âncoras e imagens não âncoras podem ter diferentes dependências de visualização, as quais podem ser sinalizadas em um SPS.
[0074] Isto é, como descrito aqui, uma dependência de visualização pode geralmente se referir a uma visualização a partir da qual uma visualização atualmente sendo codificada depende. Em outras palavras, dependências de visualização podem se estabelecer a partir de quais visualizações uma visualização atualmente sendo codificada pode ser predita. De acordo com alguns exemplos, dependência de visualização pode ser sinalizada na extensão de SPS MVC. Nesses exemplos, toda predição de intervisualização pode ser feita dentro do escopo especificado pela extensão de SPS MVC. O elementointer_view_flag pode ser usado para indicar se a unidade NAL é utilizada para predição de intervisualização para unidades NAL em outras visualizações.
[0075] Para transportar as informações de cabeçalho de unidade NAL (que podem ser de quatro bytes) para a visualização base de um fluxo de bits MVC, uma unidade NAL prefixo pode ser definida em MVC. No contexto da MVC, a unidade de acesso de visualização base pode incluir as unidades NAL VCL de uma instância de tempo atual de uma visualização particular, bem como uma unidade NAL prefixo para a unidade de acesso de visualização base, que pode conter apenas o cabeçalho da unidade NAL. Se a unidade NAL prefixo não é necessária para a decodificação (por exemplo, tal como a decodificação de uma única visualização), um decodificador pode ignorar e/ou descartar a unidade de prefixo NAL.
[0076] No que diz respeito a uma extensão de SPS MVC / AVC, o SPS MVC pode indicar visualizações que podem ser utilizadas para fins de predição de intervisualização. Por exemplo, as referências de intervisualização potenciais podem ser sinalizadas e extensão de SPS MVC / AVC, podendo ser modificadas pelo processo de construção de lista de imagem de referência, que permite a ordenação flexível da interpredição ou referências de predição de intervisualização. Um exemplo MVC / AVC SPS é apresentado na tabela abaixo: EXEMPLO DE SPS MVC (
[0077] De acordo com alguns exemplos, dependência de visualização pode ser sinalizada na Extensão de SPS MVC. Toda predição de intervisualização pode ser feita dentro do escopo especificado pela extensão de SPS MVC. Ou seja, SPS pode estabelecer quais visualizações podem ser referidas para fins de predição por uma visualização atualmente sendo codificada. Na Tabela 2 acima, o elemento num_anchor_refs_10[i] pode especificar o número de componentes de visualização para predição de intervisualização na lista de imagem de referência inicializada para Lista 0 (por exemplo, RefPicList0).
[0078] Além disso, o elemento anchor_ref_10[i][j] pode especificar o view_id do j-ésimo componente de visualização para a predição de intervisualização no RefPicList0 inicializado. O elemento num_anchor_refs_ll[i] pode especificar o número de componentes de visualização para predição de intervisualização na lista de imagem de referência inicializada para lista um (por exemplo, RefPicList1). O elemento anchor_refs_ll[i][j] pode especificar o view_id do j-ésimo componente de visualização para a predição de intervisualização no RefPicList1 inicializado.
[0079] O elemento num_non_anchor_refs_10[i] pode especificar o número de componentes de visualização para predição de intervisualização no RefPicList0 inicializado. O elemento non_anchor_ref_10[i][j] pode especificar o view_id do j-ésimo componente de visualização para a predição de intervisualização no RefPicList0 inicializado. O elemento num_non_anchor_refs_ll[i] pode especificar o número de componentes de visualização para predição de intervisualização no RefPicList1 inicializado. O elemento non_anchor_ref_11[i][j] pode especificar o view_id do j- ésimo componente de visualização para a predição de intervisualização no RefPicList inicializado.
[0080] A lista de imagem de referência inicializada, ou "inicial", pode ser a mesma ou diferente de uma lista de imagens de referência final utilizada para fins de componentes de visualização de predição de intervisualização. Ou seja, certos candidatos de referência (isto é, imagens de referência que podem ser usadas para a predição de intervisualização) podem ser removidos de uma lista inicial de imagem de referência (por exemplo, imagens redundantes). Além disso, tal como descrito em maior detalhe abaixo, os candidatos de referência podem ser reordenados de uma lista inicial de imagem de referência para formar a lista de imagem de referência final.
[0081] Neste exemplo, de acordo com MVC, dependências de visualização para imagens âncora e imagens não âncora são mantidas em separado e sinalizadas. Ou seja, um codificador de vídeo pode determinar um total de quatro listas de imagem de referência (por exemplo, lista 0, imagens não âncoras; Lista 1, imagens não âncoras; lista 0, imagens âncoras; Lista 1, imagens âncoras). Além disso, como mostrado na Tabela 2 acima, a sinalização separada é necessária para indicar uma dependência de visualização para decodificador de vídeo 30. Ou seja, SPS deve incluir a lista 0 e lista 1 separadas sinalizando para ambos os anchor refs e non achor refs.
[0082] Além disso, de acordo com a Tabela 2, a dependência de intervisualização não âncora para os componentes de visualização é um subconjunto daquele para componentes de visualização âncora. Isto é, por exemplo, um componente de visualização de uma visualização âncora pode ser predito a partir de mais do que uma outra visualização, tais como visualização 3 e 4. Uma visualização não âncora, no entanto, só pode ser predita a partir de imagens de visualização 3 (um subconjunto da visualização âncora). Desta forma, as dependências de visualização para componentes de visualização âncora e não âncora podem ser mantidos separados.
[0083] Além disso, na Tabela 2, o num_level_values_signalled pode especificar o número de valores de nível sinalizados para a sequência de vídeo codificado. O elemento level_idc [i] pode especificar o valor do i-ésimo nível sinalizado para a sequência de vídeo codificada. O elemento num_applicable_ops_minus1 [i] mais 1 pode especificar o número de pontos de operação aos quais o nível indicado pelo level_idcl[i] se aplica. O elemento applicable_op_temporal_id [i] [j] pode especificar o temporal_id do j-ésimo ponto de operação ao qual o nível indicado pelo level_idc [i] se aplica.
[0084] O elemento applicable_op_num_target_views_minus1 [i] [j] pode especificar o número de visualizações alvo de saída para o j-ésimo ponto de operação ao qual o nível indicado pelo level_idc [i] se aplica. O elemento applicable_op_target_view_id [i] [j] [k] pode especificar a k-ésima visualização de saída alvo para o j-ésimo ponto de operação ao qual o nível indicado pelo level_idc [i] se aplica. O elemento applicable_op_num_views_minus1 [i] [j] pode especificar o número de visualizações, incluindo as visualizações que são dependentes das visualizações de saída alvo, mas que não pertencem às visualizações de saída alvo, no j-ésimo ponto de operação ao qual o nível indicado pelo level_idc [i] se aplica.
[0085] Assim, no SPS para MVC, o número de visualizações que podem ser utilizadas para formar lista 0 de imagem de referência e lista 1 de imagem de referência pode ser sinalizado para cada visualização. Além disso, a relação de predição para uma imagem âncora, como sinalizado no SPS para MVC, pode ser diferente da relação de predição para a imagem não âncora (sinalizado no SPS do MVC) da mesma visualização.
[0086] Tal como descrito em maior detalhe abaixo, codificador de vídeo 20 e decodificador de vídeo 30 podem flexivelmente organizar referências de predição de visualização e temporais na construção de listas de imagem de referência. Permitir arranjo flexível provê não apenas o ganho potencial de eficiência de codificação, mas também resiliência de erros, porque a seção de imagens de referência e mecanismos de imagens redundantes podem ser estendidos para a dimensão de visualização. Codificador de vídeo 20 e/ou decodificador de vídeo 30 podem, em um exemplo, construir uma lista de imagens de referência de acordo com as seguintes etapas: 1) Inicializar a lista de imagens de referência para imagens de referência temporais (isto é, intravisualização), de modo que imagens de referência de outras visualizações não são consideradas. 2) Adicionar as imagens de referência de intervisualização ao final da lista na ordem em que as imagens ocorrem na extensão de SPS MVC. 3) Aplicar um processo de reordenação de lista de imagens de referência (RPLR) em ambas as imagens de referência de intravisualização e intervisualização. Imagens de referência de intervisualização podem ser identificadas nos comandos RPLR pelos valores de índice, conforme especificado na extensão de SPS MVC.
[0087] No MVC, codificador de vídeo 20 e/ou decodificador de vídeo 30 pode, ao decodificar dados de vídeo de multivisualização, ativar zero ou um conjunto de parâmetros de imagem (PPS) como PPS ativo e zero ou mais visualização PPS (VPPS) como o VPPS ativo, onde cada VPPS ativo está ativo especificamente para um valor de índice de ordem de visualização particular particular menor do que um valor de índice de ordem de visualização máximo. Ou seja, codificador de vídeo 20 e/ou decodificador de vídeo 30 podem ativar um PPS que se aplica a cada componente de visualização dos dados de vídeo de multivisualizações dentro de uma unidade de acesso. Codificador de vídeo 20 e/ou decodificador de vídeo 30 também podem ativar um VPPS que só se aplica a um subconjunto dos componentes de visualização na unidade de acesso. Em alguns casos, o VPPS pode incluir um ou mais elementos de sintaxe que sobrepõem uma ou mais elementos de sintaxe especificados no PPS para as visualizações as quais o VPPS foi ativado. Em alguns casos, o VPPS pode incluir um ou mais elementos de sintaxe que melhore um ou mais elementos de sintaxe especificados no PPS para essas visualizações as quais o VPPS foi ativado.
[0088] Além disso, em MVC, codificador de vídeo 20 e/ou decodificador de vídeo 30 podem, ao decodificar dados de vídeo de multivisualização, ativar zero ou um conjunto de parâmetros de sequência MVC (SPS) como o SPS MVC ativo zero ou mais SPS de visualização (VSPS) como o VSPS ativo, onde cada VSPS ativo está ativo especificamente para um valor de índice de ordem de visualização particular menor do que um valor de índice de ordem de visualização máximo. Ou seja, codificador de vídeo 20 e/ou decodificador de vídeo 30 podem ativar um SPS que se aplica a cada componente de visualização dos dados de vídeo de multivisualizações dentro de uma ou mais unidades de acesso. Codificador de vídeo 20 e/ou decodificador de vídeo 30 também podem ativar um VSPS que só se aplica a um subconjunto dos componentes de visualização em uma ou mais unidades de acesso. Em alguns casos, o VSPS pode incluir um ou mais elementos de sintaxe que sobrepõem um ou mais elementos de sintaxe especificados no SPS para as visualizações as quais o VSPS foi ativado. Em alguns casos, o VSPS pode incluir um ou mais elementos de sintaxe que melhora um ou mais elementos de sintaxe especificados no SPS para as visualizações as quais o VSPS foi ativado.
[0089] Além disso, MVC provê funcionalidade para analisar ou extrair várias assim chamadas porções de operação de um único fluxo de bits. Cada ponto de operação pode representar uma combinação diferente de visualizações dos dados de vídeo de multivisualizações codificados em diferentes taxas de quadros temporais e resoluções espaciais. Em outras palavras, um ponto de operação pode se referir a uma codificação de dados de vídeo de multivisualizações em três dimensões, incluindo a dimensão de visualização (que reflete o número de visualizações), a dimensão temporal (refletindo uma taxa de quadro) e dimensão espacial (refletindo resolução espacial).
[0090] Um ponto de operação pode ser identificado por um valor temporal_id que representa o nível temporal alvo e um conjunto de valores view_id que representam as visualizações de saída alvo. Um ponto de operação está associado a um subconjunto de fluxo de bits, que consiste nas visualizações de saída alvo e todas as outras visualizações que as visualizações de saída alvo dependem, que é derivada usando o processo de extração de subfluxo de bits, conforme especificado na subcláusula H.8.5.3 da extensão de codificação de vídeo tridimensional (3DVC) de H.264/AVC com tldTarget igual ao valor temporal_id e viewIdTargetList que consiste no conjunto de valores view_id como entradas. Mais do que um ponto de operação pode ser associado com o mesmo subconjunto de fluxo de bits. Quando 3DVC afirma que "um ponto de operação é decodificado", refere-se à decodificação de um subconjunto de fluxo de bits correspondente ao ponto de operação e emissão subsequente das visualizações de saída alvo. Em outras palavras, cada ponto de operação está representado com várias visualizações alvo emitidas em um determinado nível temporal e/ou resolução espacial ou nível.
[0091] Na extensão MVC do conjunto de parâmetros de sequência, diferentes pontos de operação podem ser sinalizados com valores level_idc. Os seguintes elementos de sintaxe são nomeados elementos de sintaxe de definições de nível.
[0092] Para cada level_idc sinalizado na extensão de SPS MVC, um novo level_idc_depth é sinalizado na extensão de SPS de vídeo 3D (3DV). Então, presume-se que todos os pontos de operação MVC têm o mesmo level_idc [i], após a inclusão de componentes de profundidade e construção de pontos de operação 3DVC, os pontos de operação 3DVC terão o mesmo nível de level_idc_depth [i]. Um projeto de sintaxe detalhado é mostrado a seguir.
[0093] Além disso, MVC provê que um componente de visualização pode ser removido do armazenador de imagem decodificada (DPB) se o componente de visualização não é mais usado para referência de intervisualização e o componente de visualização não é usado para emissão, ao decodificar um componente de visualização na mesma unidade de acesso que o componente de visualização a ser removido.
[0094] Atualmente, 3DVC não provê nenhuma maneira pela qual a distinção entre componentes de textura e profundidade de um componente de visualização, onde o termo "componente de visualização" refere-se a uma imagem de uma visualização especificada por dados de vídeo de multivisualização 3D. Como resultado, quando se codifica os componentes de textura e profundidade de uma visualização, o codificador de vídeo tipicamente controla ou de outra maneira processa ambos os componentes de textura e profundidade como componentes de visualização de um modo semelhante ao descrito acima em relação ao MVC, sem prover qualquer maneira pela qual distinguir entre componentes de textura e profundidade. Ou seja, 3DVC provê atualmente manipulação ou codificação de componentes de visualização sem prover uma maneira pela qual processar individualmente os componentes de textura e componentes de profundidade separadamente. Esta falta de distinção em 3DVC pode resultar em menor eficácia de codificação e/ou qualidade inferior de dados de vídeo reconstruído.
[0095] Por exemplo, um componente de profundidade pode atualmente ser obrigado a ser especificado na mesma resolução como um componente de textura correspondente de modo a acomodar a manipulação conjunta deste componente de visualização. Um componente de profundida de resolução mais elevada (em comparação com a resolução do componente de textura) pode, contudo, resultar em reprodução de vídeo tridimensional (3D) em que um melhor vídeo 3D mais imersivo pode resultar que melhor imita o sistema visual que o espectador espera. Além disso, um componente de baixa resolução de profundidade (em comparação com a resolução do componente de textura) pode prover a mesmo ou semelhante experiência de 3D imersiva, em certos casos, mas consumir menos bits quando codificado e, assim, aumenta a eficiência da codificação. Ao falhar para permitir manipulação separada de componentes de profundidade e textura, 3DVC pode reduzir a eficiência de codificação e/ou prover menor qualidade de dados de vídeo reconstruído (muitas vezes, em termos, da experiência de visualização).
[0096] As técnicas desta divulgação geralmente se referem a permitir manipulação separada ou independente de componentes de textura e componentes de profundidade de uma visualização quando do processamento ou codificação de dados de vídeo 3D. Por exemplo, uma extensão 3DVC de conjunto de parâmetros de sequência (SPS) pode ser adicionada aos perfis relacionados a 3DVC. Dentro desta extensão de SPS 3DVC, um ou mais dos seguintes pode ser sinalizado: o tamanho de imagem das sequências de mapa de profundidade, o tamanho da imagem a ser exibida pelas sequências de mapa de profundidade, e os níveis dos pontos de dos pontos de operação com imagens de mapa de profundidade levadas em consideração, onde cada um do nível específico corresponde a um nível que já foi definido na extensão de SPS MVC. O tamanho da imagem a ser exibida pode ser uma imagem decodificada emitida por um dispositivo de exibição.
[0097] Em um codec 3DVC, um componente de visualização de cada um dos dados de vídeo de uma instância de tempo específica podem incluir um componente de visualização de textura e um componente de visualização de profundidade. O componente de visualização de textura pode incluir componentes de luminância (Y) e componentes crominância (Cb e Cr). Componentes de luminância (brilho) e de crominância (cor) são coletivamente aqui referidos como componentes de "textura". O componente de profundidade pode ser a partir de um mapa de profundidade da imagem. No processamento de imagens 3D, mapas de profundidade incluem componentes de profundidade e podem ser usados para gerar exibições virtuais de uma perspectiva de visualização fornecida. Elementos de sintaxe para componentes de componentes de profundidade e de textura podem ser sinalizados com a unidade de bloco codificado. Unidades de bloco codificado, também conhecidas simplesmente como "blocos codificados" nesta divulgação, podem corresponder a macroblocos em ITU-T H.264 / AVC (Codificação de Vídeo Avançada).
[0098] Esta divulgação descreve técnicas que podem ser aplicadas por um codificador e usadas por um decodificador, durante a fase de interpredição de uma codificação de vídeo e/ou o processo de decodificação. As técnicas descritas estão relacionadas a codificar conteúdo de vídeo tridimensional ("3D"). O conteúdo de vídeo 3D pode ser representado, por exemplo, como o vídeo de multivisualização mais blocos codificados de profundidade (“MVD”). Mais especificamente, as técnicas envolvem a recepção de pelo menos uma imagem bidimensional tendo componentes de visualização de textura e componentes de visualização de profundidade. Alguns componentes de visualização de textura e informações de profundidade podem ser codificados em um único bloco codificado ou como blocos separados. Uma imagem pode ser dividida em fatias de imagens. Elementos de sintaxe para codificação de componentes de visualização de textura e componentes de visualização de profundidade podem ser sinalizados em um conjunto de parâmetros de sequência. Componentes de visualização de profundidade podem ou não podem ser preditos a partir dos componentes de visualização da textura.
[0099] No contexto do padrão de codificação de vídeo, um "perfil" corresponde a um subconjunto de algoritmos, recursos ou ferramentas e restrições que lhes são aplicáveis. Tal como definido pelo padrão H.264, por exemplo, um "perfil" é um subconjunto de toda a sintaxe de fluxo de bits que é especificada pelo padrão H.264. Um "nível" corresponde às limitações do consumo de recursos de decodificação, como, por exemplo, a memória do decodificador e computação, que estão relacionados com a resolução das imagens, taxa de bits e taxa de processamento de macrobloco (MB). Um perfil pode ser sinalizado com um valor de profile_idc (indicador de perfil), enquanto um nível pode ser sinalizado com um valor de nível level_idc (indicador de nível).
[0100] No padrão H.264 / AVC, unidades de Camanda de Abstração de Rede (NAL) são definidas para prover uma representação de vídeo "amigos da rede" para lidar com aplicações tais como telefonia com vídeo, armazenamento ou transmissão de vídeo. Unidades NAL podem ser categorizadas para unidades NAL de Camada de Codificação de Vídeo (VCL) e unidades NAL não-VCL. Unidades VCL podem conter um mecanismo de compressão do núcleo e compreendem bloco, macrobloco (MB), e níveis de fatia. Outras unidades NAL são unidades NAL não-VCL.
[0101] Para a codificação de vídeo 2D, cada unidade NAL pode conter um um cabeçalho de unidade NAL de um byte e uma carga útil de tamanho variável. Cinco bits podem ser usados para especificar o tipo de unidade NAL. Três bits podem ser usados para nal_ref_idc, o que indica quão importante a unidade NAL é em termos de ser referenciada por outras imagens (unidades externas). Por exemplo, definir nal_ref_idc igual a 0 significa que a unidade NAL não é utilizada para a interpredição. Como H.264/AVC pode ser expandido para incluir a codificação de vídeo 3D, tais como o padrão de codificação de vídeo expansível (SVC), o cabeçalho NAL pode ser semelhante ao do cenário 2D. Por exemplo, um ou mais bits no cabeçalho de unidade NAL podem ser usados para identificar que a unidade NAL é uma unidade NAL de quatro componentes.
[0102] Cabeçalhos de unidades NAL podem também ser usados para as unidades NAL MVC. No entanto, em MVC, a estrutura de cabeçalho de unidade NAL pode ser retida com exceção de unidades NAL prefixo e unidades NAL MVC de fatia codificada. As técnicas da presente divulgação proporcionam um tipo de unidade NAL diferente, que pode ser usada para sinalizar um super SPS.
[0103] A tabela seguinte provê um exemplo de uma sintaxe RBSP de conjunto de parâmetros de sequência, de acordo com um aspecto da presente divulgação. Somente para fins ilustrativos, para exemplos associados com esta tabela, pode-se presumir que a textura e profundidade tem o mesmo valor view_id e o nal_unit_type é utilizada para distinguir a textura e profundidade. Abaixo, os itens em negrito representam itens que foram adicionados, atualizados ou alterados de acordo com exemplos dessa divulgação, em comparação com as versões atuais ou anteriores do projeto de trabalho para a extensão 3DVC para MVC. Além disso, a referência a anexos, como o anexo G na tabela abaixo, referem-se aos anexos do padrão de codificação de vídeo H.264. De acordo com a tabela mostrada acima, 3dvc_vui_parameter_present_flag igual a 1 indica que 3dvc_vui_parameters_extension () está presente. Quando 3dvc_vui_parameter_present_flag é igual a 0, o flag indica que 3dvc_vui_parameters_extension () não está presente. Por exemplo, 3dvc_vui_parameter_present_flag indica que uma extensão incorporando algumas das técnicas desta descrição está presente em um conjunto de parâmetros de sequência.
[0104] Em alguns exemplos, um SPS de subconjunto com perfis MVC (por exemplo, estéreo elevado ou multivisualização elevada) pode ter o mesmo SPS_id que o do SPS de subconjunto com perfis 3DV, de modo que os componentes de visualização de textura irão referir-se a um mesmo SPS_id tendo um conteúdo diferente em perfis diferentes. Por exemplo, um SPS de subconjunto com MVC pode corresponder a um ponto de operação que só tem textura. Tendo o mesmo SPS id que o de um SPS de subconjunto com perfis 3DV pode permitir um ponto de operação que incluiu apenas textura para ser extraída por um decodificador ou um dispositivo de rede, tal como um elemento de rede ciente de mídia (MANE).
[0105] Perfil Elevado de Multivisualização suporta um número arbitrário de visualizações. Perfil Elevado de Estéreo suporta vídeo estereoscópico de duas visualizações. Em outros exemplos, as técnicas aqui descritas podem ser aplicadas a outros exemplos utilizando perfis MVC.
[0106] A tabela a seguir provê um exemplo de elementos de sintaxe de extensão para a extensão 3DVC de conjunto de parâmetros de sequência.
[0107] Em um exemplo, a extensão 3DVC do conjunto de parâmetros de sequência especifica relações de dependência de intervisualização das visualizações adicionais com uma resolução maior do que as outras visualizações na sequência de vídeo codificada. Os componentes de visualização de textura das outras visualizações, com uma resolução mais baixa pertencem a um subfluxo de bits que está de acordo com o Anexo H. A extensão 3DVC de conjunto de parâmetros de sequência também especifica a dependência dos componentes de visualização de profundidade. As visualizações de resolução elevada podem ter dupla largura, altura idêntica ou dupla altura ou largura idêntica das outras visualizações. Em alguns exemplos, as visualizações de alta resolução só podem ter dupla largura, altura idêntica ou dupla altura ou largura idêntica das outras visualizações.
[0108] Um chroma_format_idc para componentes de visualização de profundidade é inferido a ser igual a 4:0:0.
[0109] O elemento de sintaxe disable_depth_inter_view_flag pode ter a mesma semântica que no flag com o mesmo nome em m22583. O elemento de sintaxe depth_pic_width_in_mbs_minus1 mais 1 especifica a largura de cada imagem de componente de visualização de profundidade em unidades de macroblocos. A variável para a largura da imagem de componentes de visualização de profundidade em unidades de macroblocos pode ser derivada como: PicWidthlnMbs = pic_width_in_mbs_minus1 + 1 (1)
[0110] Uma variável para largura da imagem de componentes de visualização de profundidade para um componente de luminância é derivada como: PicWidthlnSamplesL PicWidthlnMbs = * 16 (2)
[0111] Em alguns exemplos, o elemento de sintaxe depth_pic_height_in_map_units_minus1 mais 1 especifica a altura em unidades de mapa de grupo de fatia de um quadro decodificado de componentes de visualização de profundidade. As variáveis PicHeightlnMapUnits e PicSizelnMapUnits são derivadas como: PicHeightInMapUnits = pic_height_in_map_units_minus1 + 1 (3) PicSizeInMapUnits = PicWidthInMbs * PicHeightInMapUnits
[0112] Em alguns exemplos, quando o elemento de sintaxe depth_frame_cropping_flag é igual a 1, depth_frame_cropping_flag especifica que o parâmetros de desvio de corte de quadro seguem o próximo no conjunto de parâmetros de sequência para componentes de visualização de profundidade. depth_frame_cropping_flag igual a 0 especifica que os parâmetros de desvio de corte de quadro não estão presentes para componentes de visualização de profundidade.
[0113] Os elementos de sintaxe depth_frame_crop_left_offset, depth_frame_crop_right_offset, depth_frame_crop_top_offset, e depth_frame_crop_bottom_offset, podem especificar as amostras das imagens dos componentes de visualização de profundidade na sequência de vídeo codificado que é produzido a partir do processo de decodificação, em termos de uma região retangular especificada nas coordenadas de quadro para saída. Esses desvios podem definir uma janela de corte para as imagens dos componentes de visualização de profundidade decodificados.
[0114] Em alguns exemplos, o elemento de sintaxe level_idc_depth [i] especifica o valor do i-ésimo nível sinalizado para a sequência de vídeo codificado com componentes de visualização de profundidade.
[0115] É possível extrair uma ou mais visualizações de um fluxo de bits MVC para produzir um subfluxo de bits. Um subfluxo de bits com um determinado conjunto razoável de visualizações de saída alvo é conhecido como um ponto de operação. Por causa de dependências de visualização, o conjunto de visualizações de saída alvo pode ser um subconjunto de visualizações contidas em um subfluxo de bits. As visualizações de saída alvo também podem ser idênticas às visualizações contidas no subfluxo de bits. No entanto, se um provedor de serviço não tem a intenção de suportar um ponto de operação com um grande número de visualizações, o número de visualizações de saída alvo pode ser um subconjunto de visualizações contidas. Note-se que as visualizações contidas são as visualizações a serem decodificadas.
[0116] Um ponto de operação é identificado por um valor temporal_id representando um nível temporal alvo e um conjunto de valores view_id que representam as visualizações de saída alvo. Um ponto de operação está associado a um subconjunto de fluxo de bits, que consiste nas visualizações de saída alvo e todas as outras visualizações que as visualizações de saída alvo dependem, que é derivado usando o processo de extração de subfluxo de bits conforme especificado na subcláusula H.8.5.3 com tldTarget igual ao valor temporal_id e viewIdTargetList que consiste no conjunto de valores view_id como entradas. Mais do que um ponto de operação pode ser associado com o mesmo subconjunto de fluxo de bits. Quando o 3DVC afirma que "um ponto de operação é decodificado", refere-se à decodificação de um subconjunto de fluxo de bits correspondente ao ponto de operação e saída subsequente das visualizações de saída alvo.
[0117] De acordo com as técnicas aqui descritas, a construção dos pontos de operação para a extensão de SPS 3DVC pode ser a mesma que a na extensão de SPS MVC, exceto que os componentes de visualização de profundidade estão associados. Em outras palavras, para cada ponto de operação sinalizado na extensão de SPS MVC tendo nível igual a level_idc [i], um ponto de operação correspondente é habilitado na extensão de SPS 3DVC, com a mesma coleção de visualizações de saída alvo e valor temporal_id, mas ainda inclui, para cada componente de visualização que inclui uma componente de profundidade, um nível de level_idc_depth [i].
[0118] Em alternativa, os valores level_idc sinalizados na extensão de SPS MVC do SPS atual com um perfil 3DV, são sempre para pontos de operação que contêm unidades NAL de profundidade, assim o elemento de sintaxe level_idc_depth [i] não é sinalizado, em alguns casos para 3DVC. Por exemplo, quando os valores de sinalização level_idc no SPS com um perfil 3DV incluindo a extensão de SPS MVC, de acordo com as técnicas aqui descritas, o elemento de sintaxe level_idc_depth [i] é não sinalizado, porque os valores de level_idc são para os pontos de operação que contêm unidades NAL de profundidade.
[0119] A tabela a seguir apresenta exemplos de semântica para uma extensão de parâmetros de Informação de Usabilidade de Vídeo 3DVC (VUI). Na tabela exemplar mostrada diretamente acima, depth_present_flag [i] igual a 1 indica que o ponto de operação atual inclui componente de visualização de profundidade para cada visualização. depth_present_flag [i] igual a 0 indica que o ponto de operação atual não inclui qualquer componente de visualização de profundidade.
[0120] Outros elementos de sintaxe podem ter a mesma semântica como os da extensão de parâmetros MVC VUI com os mesmos nomes.
[0121] Em alternativa, depth_present_idc [i] pode ser sinalizado. O elemento depth_present_idc [i] igual a 1 pode indicar que um ponto de operação atual inclui componente de visualização de profundidade para cada visualização. Em alguns exemplos, estabelecer depth_present_idc [i] igual a 0 ou 2 pode indicar que o ponto de operação atual inclui apenas componentes de visualização de textura. Em outros exemplos, estabelecer depth_present_idc [i] igual a 0 pode indicar que o ponto de operação atual não inclui qualquer componente de visualização de profundidade. Em outros exemplos, estabelecer depth_present_idc [i] igual a 2 pode indicar que o ponto de operação atual não inclui qualquer componente de visualização de profundidade.
[0122] Em outro exemplo, um componente de visualização de profundidade e um componente de visualização de textura, mesmo pertencendo a mesma visualização, podem ter diferentes valores view_id sinalizado. No entanto, os componentes de visualização de profundidade ainda podem compartilhar a mesma dependência de visualização que a textura. Em alguns exemplos, a extensão de SPS 3DVC contém um mapeamento dos valores view_id.
[0123] A tabela a seguir provê um outro exemplo de uma extensão de SPS 3DVC.
[0124] O elemento de sintaxe view_id_depth [i] especifica o view_id da visualização de profundidade com VOIdx igual a i, que pertence à visualização com visualização de textura tendo um view_id igual a view_id [i].
[0125] Em um outro exemplo, manter todos os outros aspectos os mesmos, os valores de level_idc_depth pode ser sinalizado na mesma maneira como os valores de level_idc sinalizado na extensão de SPS MVC.
[0126] Em outro exemplo, os componentes de visualização de profundidade podem compartilhar um seq_parameter_set_data() diferente. Como tal, a largura e a altura dos componentes de visualização de profundidade são sinalizadas. Em um exemplo, o parâmetro de sintaxe seq_parameter_set_data() pode incluir chorma_format_idc, que pode ser 4:0:0 em alguns exemplos. Nestes exemplos, a relação de predição de visualização de profundidade ainda pode compartilhar a mesma relação de predição que a relação de predição de visualização de textura.
[0127] A tabela a seguir provê um exemplo de elementos de sintaxe para uma sintaxe RBSP de conjunto de parâmetros de sequência de subconjunto para quando os componentes de visualização de profundidade compartilham o mesmo seq_parameter_set_data(), de acordo com um aspecto da presente divulgação.
[0128] A tabela a seguir provê um exemplo de sintaxe de extensão 3dVC de conjunto de parâmetros de sequência para quando os componentes de visualização de profundidade compartilham o mesmo seq_parameter_set_data (), de acordo com um aspecto da presente divulgação.
[0129] Em alguns exemplos, a semântica de alguns dos elementos de sintaxe mostrados em algumas das tabelas anteriores pode ser semelhante ou a mesma que a dos elementos de sintaxe análogos descritos no que diz respeito a outras destas tabelas.
[0130] Em um outro exemplo, pode ser proporcionado um novo tipo de unidade NAL. O tipo de unidade NAL pode ter um valor, tal como 15, que é usado para sinalizar um super SPS para o perfil 3DV. As três tabelas seguintes podem corresponder a elementos de sintaxe para um super SPS para o perfil 3DV. Em alguns exemplos, um super SPS pode sinalizar ambos os componentes de componentes de profundidade e de textura.
[0131] A tabela a seguir provê um exemplo de uma super sintaxe RBSP de conjunto de parâmetros de sequência. A sintaxe de extensão de SPS 3DVC da tabela a seguir pode ser sinalizada com o novo tipo de unidade NAL.
[0132] A tabela seguinte provê um exemplo de uma sintaxe de extensão de SPS 3DVC, de acordo com as técnicas aqui descritas. A sintaxe de extensão de SPS 3DVC da tabela a seguir pode ser sinalizada com o novo tipo de unidade NAL.
[0133] A tabela seguinte provê um exemplo de uma sintaxe de extensão de parâmetros 3DVC VUI, de acordo com as técnicas aqui descritas. A sintaxe de extensão de parâmetros 3DVC VUI da tabela a seguir pode ser sinalizada com o novo tipo de unidade NAL.
[0134] Em alguns exemplos, a semântica de alguns dos elementos de sintaxe mostrados nas tabelas anteriores pode ser semelhante ou a mesma que a dos elementos de sintaxe análogos descritos no que diz respeito a outras das tabelas anteriores. Os níveis definidos na extensão de SPS MVC podem ser aplicados aos pontos de operação, tendo unidades NAL de profundidade em consideração. No perfil relacionado a 3DV, um SPS, um SPS de subconjunto, e um super SPS podem ser ativados simultaneamente.
[0135] Como resultado, MVC pode ser prorrogado por meio de 3DVC para prover a manipulação separada de componentes de profundidade e textura. Ao permitir essa manipulação independente, os vários aspectos das técnicas descritas nesta divulgação podem promover a economia de bits (ou, em outras palavras, uma codificação mais eficiente de dados de vídeo de multivisualização) e/ou melhoria da qualidade de dados de vídeo reconstruído (que por sua vez pode ser medido em termos de uma experiência de visualização percebida).
[0136] Por exemplo, vários aspectos das técnicas descritas nesta especificação podem permitir que um dispositivo de codificação de vídeo (que pode representar um termo utilizado nesta especificação para se referir a qualquer dispositivo que inclui um codificador de vídeo e/ou um decodificador de vídeo, tais como dispositivo de origem 12 e/ou dispositivo de destino 14) ative um conjunto de parâmetros como um conjunto de parâmetros de textura para o componente de textura do componente de visualização com base em, pelo menos, um valor de índice de ordem de visualização atribuído ao componente de visualização dos dados de vídeo de multivisualizações. O índice de ordem de visualização pode descrever o modo de decodificação de um componente de visualização correspondente de uma unidade de acesso. O índice de ordem de visualização pode ser utilizado com um valor de contagem de ordem de imagem (POC) ou um valor de quadro para identificar um componente de visualização de um fluxo de bits. Este aspecto das técnicas pode, portanto, proporcionar um conjunto de parâmetros, tais como PPS ou SPS, que é ativado para o componente de textura de um componente de visualização e não se aplica ao componente de profundidade correspondente do mesmo componente de visualização. A este respeito, o dispositivo de codificação de vídeo pode codificar apenas o componente da textura do componente de visualização, e não o componente de profundidade do componente de visualização com base no conjunto de parâmetros de textura ativado.
[0137] Além disso, o dispositivo de codificação de vídeo pode ativar um conjunto de parâmetros para o componente de profundidade do componente de visualização baseado pelo menos no valor de índice de ordem de visualização atribuído ao componente de visualização dos dados de vídeo de multivisualização. Isto é, em alguns casos, o dispositivo de codificação de vídeo pode ativar um conjunto de parâmetros específicos de textura para o componente de textura de um componente de visualização e, em seguida, ativar ainda outro parâmetro estabelecido especificamente para o componente de profundidade do mesmo componente de visualização. Como resultado, o dispositivo de codificação de vídeo pode codificar o componente de profundidade do componente de visualização com base no conjunto de parâmetros ativado para o componente de profundidade do componente de visualização, e não o conjunto de parâmetros de textura ativado. O dispositivo de codificação de vídeo pode codificar o componente de textura com base no conjunto de parâmetros de textura ativado. Deste modo, as técnicas podem promover a ativação independente de conjuntos de parâmetros, como por exemplo, um PPS ou SPS, para componentes de textura e de profundidade de um componente de visualização, proporcionando um modo pelo qual facilita a manipulação separada ou processamento de componentes de profundidade e textura de uma visualização 3DVC compatível com MVC.
[0138] Vários aspectos das técnicas descritas nesta especificação podem também promover a manipulação separada de componentes de profundidade e textura, permitindo que um dispositivo de codificação de vídeo determine uma mensagem de informação suplementar aninhada (SEI) que se aplica a ambos os componentes de textura e profundidade de um componente de visualização ou apenas a um componente de profundidade do componente de visualização. O termo "mensagem SEI aninhada" refere-se a uma mensagem SEI que incorpora várias porções de outra mensagem SEI de tal modo que uma mensagem SEI aninhada é efetivamente "encaixada", no âmbito de uma outra mensagem SEI. Ao permitir que uma mensagem SEI aninhada se aplique somente a um componente de profundidade, esses aspectos das técnicas podem voltar a promover a manipulação separada de componentes de textura e profundidade.
[0139] Um dispositivo de codificação de vídeo (isto é, o dispositivo de origem 12 e/ou dispositivo de destino 14, no exemplo da figura 1) pode realizar estes aspectos das técnicas para determinar uma mensagem de informação de reforço suplementar que se aplica a codificação do componente de visualização dos dados de vídeo de multivisualização. Esta mensagem SEI pode ser referida como uma mensagem SEI pai para refletir que ela se aplica a um determinado componente de visualização e define o âmbito de quaisquer mensagens SEI aninhadas. O dispositivo de codificação de vídeo pode, então, determinar uma mensagem de informação de reforço suplementar aninhada que se aplica em adição a mensagem de informação de reforço suplementar quando da codificação do componente de profundidade do componente de visualização. Esta mensagem SEI aninhada pode identificar a mensagem SEI pai e indica que esta mensagem SEI aninhada só se aplica ao componente de profundidade do componente de visualização ao qual se aplica a mensagem SEI pai. O dispositivo de codificação de vídeo pode então processar o componente de profundidade do componente de visualização baseado na mensagem de informação de reforço suplementar e a mensagem de informação de reforço suplementar aninhada.
[0140] Normalmente, a mensagem SEI aninhada inclui um flag ou outro identificador que indica se a mensagem SEI aninhada se aplica a ambos os componentes de textura e profundidade do componente de visualização ou apenas ao componente de profundidade. Assim, em alguns casos, o dispositivo de codificação de vídeo pode determinar que a mensagem de informação de reforço suplementar aninhada se aplica em conjunto com a mensagem de informação de reforço suplementar quando só o processamento do componente de profundidade do componente de visualização e processa apenas o componente de profundidade do componente de visualização e não o componente da textura do componente de visualização com base na mensagem de informação de reforço suplementar e na mensagem de informação de reforço suplementar aninhada. Em alternativa, o dispositivo de codificação de vídeo pode determinar que a mensagem de informação de reforço suplementar aninhada se aplica em adição à mensagem de informação de reforço suplementar quando ao processar o componente de textura do componente de visualização e processa o componente de textura do componente de visualização com base na mensagem de informação de reforço suplementar e na mensagem de informação de reforço suplementar aninhada. Novamente, esses aspectos das técnicas novamente facilitam a manipulação separada ou processamento de componentes de profundidade e textura do componente de visualização.
[0141] Outros aspectos das técnicas descritas nesta especificação podem promover a manipulação separada de componentes de profundidade e textura, permitindo que um dispositivo de codificação de vídeo remova separadamente componentes de textura e profundidade de um armazenador de imagem decodificada. O armazenador de imagem decodificada refere-se a uma memória ou outro meio legível por computador capaz de armazenar imagens de referência para utilização na codificação de uma componente de visualização atual. Porque as técnicas estabelecidas nesta divulgação permitem a manipulação separada de componentes de textura e profundidade, um dispositivo de codificação de vídeo pode codificar um componente de textura de um componente de visualização usando imagens de referência diferentes das usadas quando da codificação de um componente de profundidade da mesma visualização contrário ao componente convencional MVC onde um componente de visualização (e, portanto, componentes de profundidade e textura desse componente de visualização) foi codificado usando as mesmas imagens de referência. Como resultado, pode haver casos em que os componentes de profundidade de um componente de visualização de referência podem ser removidos do armazenador de imagem decodificada antes dos componentes de textura do mesmo componente de visualização de referência, e um componente de textura de um componente de visualização de referência pode ser removido do armazenador de imagem decodificada antes do componente de profundidade do mesmo componente de visualização de referência.
[0142] Em operação, um dispositivo de codificação de vídeo pode executar as técnicas descritas nesta especificação ao armazenar um componente de profundidade em um armazenador de imagem decodificada e analisar uma dependência de visualização para determinar se o componente de profundidade é utilizado para a predição de intervisualização. O dispositivo de codificação de vídeo pode, em seguida, remover o componente de profundidade do armazenador de imagem decodificada em resposta à determinação de que o componente de profundidade não é utilizado para a predição de intervisualização. Isto é, o dispositivo de codificação de vídeo pode remover o componente de profundidade de um componente de visualização de referência do armazenador de imagem decodificada sem remover o componente de textura do mesmo componente de visualização de referência, em resposta à determinação de que o componente de profundidade não é utilizado para a predição de intervisualização. O dispositivo de codificação de vídeo pode, antes da remoção do componente de profundidade, validar este componente de profundidade como sendo elegível para remoção através da determinação de que o componente de profundidade não pertence a uma visualização de saída alvo e que o componente de profundidade está associado com um código de identificação de referência de camada de abstração de rede que tem um valor igual a zero (o que significa que o conteúdo da unidade NAL encapsulando o componente de profundidade não é usado para construir imagens de referência para a predição de interimagem).
[0143] Os aspectos adicionais das técnicas descritas nesta especificação podem também permitir ou de outro modo facilitar a manipulação separada dos componentes de profundidade e textura. Por exemplo, em termos de pontos de operação, as técnicas podem ativar um dispositivo de codificação de vídeo para gerar uma mensagem SEI que inclui um primeiro elemento de sintaxe, um segundo elemento de sintaxe, e um terceiro elemento de sintaxe, em que o primeiro elemento de sintaxe indica se um ponto de operação contém um componente de profundidade. Quando o ponto de operação contém um componente de profundidade, o dispositivo de codificação de vídeo pode definir o segundo elemento de sintaxe para indicar uma série de componentes de profundidade em que uma visualização de saída alvo do ponto de operação depende diretamente e definir os terceiros elementos de sintaxe para identificar os componentes de profundidade dos quais a visualização de saída alvo do ponto de operação depende diretamente.
[0144] Em alguns casos, os pontos de operação podem incluir um primeiro subconjunto de pontos de operação e um segundo subconjunto de pontos de operação, em que cada ponto de operação, no primeiro subconjunto contém apenas um componente de textura e cada ponto de operação do segundo subconjunto contém um componente de profundidade. O dispositivo de codificação de vídeo pode então determinar que um identificador de perfil é igual a um valor particular, que é associado com a codificação de vídeo 3D e gerar, em resposta à determinação de que o identificador de perfil é igual ao valor dado, um SPS de subconjunto de tal modo que o SPS de subconjunto inclui uma primeira extensão de SPS e uma segunda extensão de SPS. A primeira extensão de SPS pode indicar o primeiro subconjunto e os níveis aos quais os pontos de operação do primeiro subconjunto pertencem. A segunda extensão de SPS pode indicar o segundo subconjunto e os níveis aos quais os pontos de operação no segundo subconjunto pertencem. Desta forma, as técnicas podem permitir que pontos de operações sejam definidos separadamente para componentes de textura e profundidade e por nível.
[0145] Este aspecto das técnicas pode aproveitar a manipulação independente de componentes de profundidade e de textura para permitir que pontos de operação sejam mais facilmente extraídos de um fluxo de bits para codificação de vídeo de multivisualização. Ao sinalizar se um ponto de operação inclui a profundidade, um decodificador de vídeo, como decodificador de vídeo 30, pode determinar qual ponto de operação acomoda melhor as habilidades de decodificador de vídeo 30. Por exemplo, decodificador de vídeo 30 pode ser otimizado para executar codificação de vídeo de multivisualização usando visualizações que não incluem profundidade, preferindo dados de vídeo de multivisualizações onde tanto a perspectivas do olho esquerdo quanto a do direito são fornecidas como imagens separadas. Decodificador de vídeo 30 pode, alternativamente, ser otimizado para dados de vídeo de multivisualizações baseados em profundidade, mas só pode acomodar uma única visualização, em vez de duas ou mais visualizações. Por sinalização quando os dados de vídeo de multivisualização codificada incluem profundidade, e quando, incluindo a profundidade, o número de componentes de profundidade em que as visualizações do ponto de operação de saída alvo dependem diretamente, decodificador de vídeo 30 pode selecionar um ponto de operação que acomoda as capacidades ou otimizações de decodificador de vídeo 30.
[0146] Além disso, um dispositivo de codificação de vídeo pode realizar aspectos das técnicas descritas nesta especificação para indicar os níveis a que os pontos de operação pertencem, em que pelo menos alguns dos pontos de operação incluem componentes de profundidade. O dispositivo de codificação de vídeo pode então determinar que um identificador de perfil é igual a um valor particular, que é associado com a codificação de vídeo 3D e gerar, em resposta à determinação de que o identificador de perfil é igual ao valor dado, um SPS de subconjunto de tal modo que o SPS de subconjunto inclui uma extensão de SPS MVC que sinaliza os pontos de operação e os níveis a que os pontos de operação pertencem. Cada um dos pontos de operação, no presente exemplo, pode especificar uma ou mais visualizações de saída, em que cada uma das visualizações de saída contém um componente de textura e um componente de profundidade.
[0147] Em ainda outros casos, o dispositivo de codificação de vídeo pode executar as técnicas descritas nesta especificação para gerar, em um SPS, um elemento de sintaxe que indica várias visualizações a serem decodificadas para um ponto de operação de um processo de MVC, onde cada uma das visualizações tem um de um número de componentes de textura e um de um número de componentes de profundidade. O dispositivo de codificação de vídeo pode então sinalizar, no SPS, o número de componentes de textura a ser decodificado para o ponto de operação e o número de componentes de profundidade a ser decodificado para o ponto de operação. Mais uma vez, em virtude de facilitar a manipulação separada dos componentes de profundidade e textura, as técnicas podem proporcionar a sinalização de como estes componentes de profundidade e textura são utilizados para formar pontos de operação.
[0148] A figura 2 é um diagrama de blocos que ilustra um exemplo de codificador de vídeo 20, que pode aplicar as técnicas descritas nesta especificação para a codificação de dados de vídeo de multivisualizações. Codificador de vídeo 20 recebe dados de vídeo a serem codificados. No exemplo da figura 2, codificador de vídeo 20 inclui uma unidade de seleção de modo 40, somador 50, unidade de processamento de transformada 52, unidade de quantização 54, unidade de codificação por entropia 56, e memória de imagem de referência 64. A unidade de seleção de modo 40, por sua vez, inclui a unidade de estimação de movimento / disparidade 42, unidade de compensação de movimento 44, unidade de intra-predição 46, e a unidade de partição 48.
[0149] Para a reconstrução de bloco de vídeo, o codificador de vídeo 20 também inclui a unidade de quantização inversa 58, unidade de processamento de transformada inversa 60, e somador 62. Um filtro de desbloqueio (não mostrado na figura 2) pode também ser incluído para filtrar os limites de bloco para remover artefatos de bloqueio do vídeo reconstruído. Se for o caso, o filtro de desbloqueio tipicamente filtra a saída do somador 62. Filtros de loop adicionais (em loop ou pós- loop) também podem ser usados em adição ao filtro de desbloqueio. Tais filtros não são apresentados para fins de brevidade, mas se for o caso, podem filtrar a saída do somador 50 (como um filtro in-loop).
[0150] A unidade de seleção de modo 40 pode receber dados de vídeo em bruto na forma de blocos a partir de uma ou mais visualizações. A unidade de seleção de modo 40 pode selecionar um dos modos de codificação, intra ou inter, por exemplo, com base em resultados de erro, e provê o bloco intra ou intercodificado resultante para o somador 50 para gerar dados de blocos residuais e para somador 62 reconstruir o bloco codificado para ser utilizado como imagem de referência. Unidade de seleção de modo 40 também provê elementos de sintaxe, como vetores de movimento, indicadores de intramodo, informações de partição, e outras informações de sintaxe, para a unidade de codificação por entropia 56.
[0151] Unidade de estimação de movimento / disparidade 42 e unidade de compensação de movimento 44 podem ser altamente integradas, mas são ilustradas separadamente para fins conceituais. Estimação de movimento, realizada pela unidade de estimação de movimento / disparidade 42, é o processo de geração de vetores de movimento, que estimam movimento para blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo dentro de uma imagem atual em relação a um bloco preditivo dentro de uma imagem de referência (ou outra unidade de codificação) em relação ao bloco atual a ser codificado na imagem atual (ou outra unidade de codificação).
[0152] Um bloco preditivo é um bloco que se encontra para corresponder de perto ao bloco a ser codificado, em termos de diferença de pixels, o que pode ser determinado pela soma da diferença absoluta (SAD), soma de diferença quadrada (SSD), ou outro métricas de diferença. Em alguns exemplos, o codificador de vídeo 20 pode calcular os valores para as posições de pixel subinteiros de imagens de referência armazenadas na memória de imagem de referência 64, que também pode ser referida como um armazenador de imagem de referência. Por exemplo, codificador de vídeo 20 pode interpolar valores das posições de um quarto de pixel, posições de um oitavo de de pixel, ou outras posições de pixel fracionários da imagem de referência. Portanto, a unidade de estimação de movimento / disparidade 42 pode executar uma busca de movimento em relação às posições de pixel inteiro posições de pixel fracionário e emitir um vetor de movimento com precisão de pixel fracionário.
[0153] A unidade de estimação de movimento / disparidade 42 calcula vetores de movimento para uma PU de um bloco de vídeo em uma fatia intercodificada comparando a posição da PU com a posição de um bloco preditivo de imagem de referência. Unidade de estimação de movimento / disparidade 42 pode também ser configurada para realizar a predição de intervisualização, no caso em que a unidade de estimação de movimento / disparidade 42 pode calcular vetores de deslocamento entre blocos de uma imagem de visualização (por exemplo, visualização 0) e blocos correspondentes de uma imagem de visualização de referência (por exemplo, visualização 1). Em geral, os dados de um vetor de movimento / disparidade podem incluir uma lista de imagens de referência, um índice na lista de imagens de referência (ref_idx), um componente horizontal, e um componente vertical. A imagem de referência pode ser selecionada a partir de uma primeira lista de imagens de referência (Lista 0), uma segunda lista de imagens de referência (Lista 1), ou uma lista de imagem de referência combinada (Lista C), cada uma das quais identifica uma ou mais imagens de referência armazenadas na memória de imagem de referência 64. Com relação à lista combinada, codificador de vídeo 20 alternadamente seleciona entradas a partir de duas listas (isto é, lista 0 e lista 1) a serem inseridas (em anexo) na lista combinada. Quando uma entrada já é colocada na lista combinada, verificando o número de POC, codificador de vídeo 20 pode não inserir a entrada novamente. Para cada lista (isto é, lista 0 ou lista 1), codificador de vídeo 20 pode selecionar as entradas com base na ordem crescente do índice de referência.
[0154] A unidade de estimação de movimento / disparidade 42 pode gerar e enviar um vetor de movimento / disparidade que identifica o bloco preditivo da imagem de referência para a unidade de codificação por entropia 56 e para a unidade de compensação de movimento 44. Ou seja, a unidade de estimação de movimento / disparidade 42 pode gerar e enviar dados de vetor de movimento que identificam a lista de imagens de referência que contém o bloco de predição, um índice para a lista de imagens de referência que identifica a imagem do bloco preditivo, e um componente horizontal e vertical para localizar o bloco de predição dentro da imagem identificada.
[0155] A compensação de movimento, realizada pela unidade de compensação de movimento 44, pode envolver buscar ou gerar o bloco preditivo baseado no vetor de movimento / disparidade determinado pela unidade de estimação de movimento / disparidade 42. Novamente a unidade de estimação de movimento / disparidade 42 e a unidade de compensação de movimento 44 podem ser funcionalmente integradas, em alguns exemplos. Ao receber o vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco preditivo para o qual o vetor de movimento aponta em uma das listas de imagem de referência.
[0156] Somador 50 forma um bloco de vídeo residual, subtraindo os valores de pixel do bloco preditivo dos valores de pixel do bloco de vídeo atual a ser codificado, formando os valores de diferença de pixels, como discutido abaixo. Em geral, a unidade de estimação de movimento / disparidade 42 realiza estimação de movimento em relação às componentes luma e unidade de compensação de movimento 44 usa vetores de movimento calculados com base nas componentes luma para ambas componentes croma e componentes luma. Unidade de seleção de modo 40 também pode gerar elementos de sintaxe associados com os blocos de vídeo e a fatia de vídeo para uso no decodificador de vídeo 30 na decodificação dos blocos de vídeo da fatia de vídeo.
[0157] A unidade de intra-predição 46 pode intrapredizer um bloco atual, como uma alternativa para a interpredição realizada pela unidade de estimação de movimento / disparidade 42 e a unidade de compensação de movimento 44, conforme descrito acima. Em particular, a unidade de intra-predição 46 pode determinar um modo de intra-predição a ser usado para codificar um bloco atual. Em alguns exemplos, a unidade de intra-predição 46 pode codificar um bloco atual utilizando vários modos de intra- predição, por exemplo, durante passagens de codificação separada, e a unidade de intra-predição 46 (ou unidade de seleção de modo 40, em alguns exemplos) pode selecionar um modo de intra-predição apropriado para usar a partir dos modos testados.
[0158] Por exemplo, a unidade de intra-predição 46 pode calcular os valores das taxas de distorção usando uma análise da taxa de distorção para os vários modos de intra-predição testados, e selecionar o modo de intra- predição tendo as melhores características de taxa de distorção entre os modos testados. A análise da frequência de distorção determina geralmente uma quantidade de distorção (ou de erro) entre um bloco codificado e um bloco original, não codificado que foi codificado para produzir o bloco codificado, bem como uma taxa de bits (isto é, um número de bits) usada para produzir o bloco codificado. Unidade de intra-predição 46 pode calcular as razões das distorções e as taxas para os vários blocos codificados para determinar qual modo de intra-predição apresenta o melhor valor da taxa de distorção para o bloco.
[0159] Depois de selecionar um modo de intra- predição para um bloco, a unidade de intra-predição 46 pode prover informações indicativas do modo de intra-predição selecionado para o bloco para a unidade de codificação por entropia 56. A unidade de codificação por entropia 56 pode codificar a informação indicando o modo de intra-predição selecionado. O codificador de vídeo 20 pode incluir nos dados de configuração de fluxo de bits transmitido, que pode incluir uma pluralidade de tabelas de índice de modo de intra-predição e uma pluralidade de tabelas de índice de modo de intra-predição modificadas (também referidas como tabelas de mapeamento das palavras de código), as definições de contextos de codificação para vários blocos, e indicações de um modo de intra-predição mais provável, uma tabela de índice de modo de intra-predição, e uma tabela de índice de modo de intra-predição modificada para usar para cada um dos contextos.
[0160] Codificador de vídeo 20 forma um bloco de vídeo residual subtraindo os dados de predição da unidade de seleção de modo 40 do bloco de vídeo original que está sendo codificado. Somador 50 representa o componente ou componentes que realiza esta operação de subtração. A unidade de processamento de transformada 52 aplica uma transformada, tal como uma transformação de cosseno discreta (DCT) ou uma transformada conceitualmente semelhante, ao bloco residual, produzindo um bloco de vídeo residual compreendendo valores de coeficiente de transformada. A unidade de processamento de transformada 52 pode realizar outras transformadas que são conceitualmente semelhantes a DCT. Transforma de Wavelet, transforma de número inteiro, transformadas de sub-banda ou outros tipos de transformadas poderiam também ser usadas. Em todo o caso, unidade de processamento de transformada 52 aplica a transformada ao bloco residual, produzindo um bloco de coeficientes de transformada residuais. A transformada pode converter a informação residual de um domínio de valores de pixel para um domínio de transformada, tal como um domínio de frequências.
[0161] Unidade de processamento de transformada 52 pode enviar os coeficientes de transformada resultantes para a unidade de quantização 54. A unidade de quantização 54 quantifica os coeficientes de transformada para reduzir ainda mais a taxa de bits. O processo de quantização pode reduzir a profundidade do bit associado com alguns ou todos os coeficientes. O grau de quantização pode ser modificado ajustando um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54 pode, em seguida, realizar uma varredura da matriz incluindo os coeficientes de transformada quantizados. Alternativamente, a unidade de codificação por entropia 56 pode realizar a varredura.
[0162] Após a quantização, a unidade de codificação por entropia 56 codifica por entropia coeficientes de transformada quantificados. Por exemplo, a unidade de codificação por entropia 56 pode realizar 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 por entropia de Particionamento de Intervalo de Probabilidade (PIPE) ou outra técnica de codificação por entropia. No caso de codificação por entropia com base em contexto, o contexto pode ser baseado em blocos vizinhos. Após a codificação por entropia pela unidade de codificação por entropia 56, o fluxo de bits codificado pode ser transmitido para outro dispositivo (por exemplo, decodificador de vídeo 30) ou arquivado para transmissão ou posterior recuperação.
[0163] Unidade de quantização inversa 58 e unidade de processamento de transformada inversa 60 aplica quantização inversa e transformada inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel, por exemplo, para utilização posterior como um bloco de referência. Unidade de compensação de movimento 44 pode calcular um bloco de referência, adicionando o bloco residual a um bloco preditivo de uma das imagens da memória de imagem de referência 64. A unidade de compensação de movimento 44 também pode aplicar um ou mais filtros de interpolação ao bloco residual reconstruído para calcular valores de pixels subinteiros para uso na estimação de movimento. Somador 62 adiciona o bloco residual reconstruído ao bloco preditivo de movimento compensado produzido pela unidade de compensação de movimento 44, para produzir um bloco de vídeo reconstruído para armazenamento na memória de imagem de referência 64. O bloco de vídeo reconstruído pode ser usado pela unidade de estimação de movimento / disparidade 42 e unidade de compensação de movimento 44 como um bloco de referência para intercodificar um bloco em uma imagem subsequente.
[0164] O codificador de vídeo 20 pode gerar vários elementos de sintaxe, como descrito acima, que podem ser codificados pela unidade de codificação por entropia 56 ou outra unidade de codificação do codificador de vídeo 20. Em alguns exemplos, o codificador de vídeo 20 pode gerar e codificar os elementos de sintaxe para um fluxo de bits de 3DVC, como descrito acima, onde de novo este fluxo de bits de 3DVC pode ser compatível de forma retroativa com o MVC. Isto é, um decodificador de vídeo que suporta MVC, mas que não suporta 3DVC ainda pode decodificar o fluxo de bits codificado 3DVC de acordo com as técnicas descritas nesta especificação, [explicar / ilustrar?]
[0165] Codificador de vídeo 20 pode ativar um conjunto de parâmetros como um conjunto de parâmetros de textura para o componente de textura do componente de visualização com base pelo menos em um valor de índice de ordem de visualização atribuído ao componente de visualização dos dados de vídeo de multivisualização. Em outras palavras, codificador de vídeo 20 pode ativar um conjunto de parâmetros, como um PPS ou SPS, apenas para a componente de textura de um componente de visualização de tal forma que este conjunto de parâmetros de textura não se aplica ao componente de profundidade correspondente do mesmo componente de visualização. A este respeito, codificador de vídeo 20 pode codificar apenas o componente de textura do componente de visualização e não o componente de profundidade do componente de visualização com base no conjunto de parâmetros de textura ativado.
[0166] Em particular, a unidade de seleção de modo 40 do codificador de vídeo 20 pode ativar um conjunto de parâmetros selecionando um modo, por exemplo, a predição de intravisualização (que pode envolver predição de interimagem temporal onde as imagens todas correspondem a mesma visualização) predição de intervisualização ou intra- predição. A unidade de seleção de modo 40 pode analisar cada uma das iterações de codificação de uma imagem, onde cada iteração pode envolver diferentes parâmetros. Ao selecionar uma iteração de codificação de uma imagem, unidade de seleção de modo 40 pode efetivamente ativar um conjunto de parâmetros para uma determinada sequência de imagens, visualização, componente de visualização, componente de profundidade e/ou componente de textura. Além disso, a unidade de seleção de modo 40 pode ativar diferentes conjuntos de parâmetros desta forma para componentes de textura e profundidade que cada um pertence ao mesmo componente de visualização da forma descrita abaixo mais detalhadamente.
[0167] Além disso, a unidade de seleção de modo 40 pode ativar um conjunto de parâmetros para o componente de profundidade do componente de visualização baseado pelo menos no valor de índice de ordem de visualização atribuído ao componente de visualização dos dados 3DVC. Isto é, em alguns casos, a unidade de seleção de modo 40 pode ativar um conjunto de parâmetros específicos de textura para o componente de textura de um componente de visualização e, em seguida, ativar ainda outro parâmetro estabelecido especificamente para o componente de profundidade do mesmo componente de visualização. Como resultado, a unidade de seleção de modo 40 pode codificar o componente de profundidade do componente de visualização com base no conjunto de parâmetros ativado para o componente de profundidade do componente de visualização e não o conjunto de parâmetros de textura ativado. Unidade de seleção de modo 40 pode codificar o componente de textura com base no conjunto de parâmetros de textura ativado. Deste modo, as técnicas podem promover a ativação independente de conjuntos de parâmetros, como por exemplo, um PPS ou SPS, para componentes de textura e de profundidade de um componente de visualização, proporcionando um modo pelo qual facilita a manipulação separada ou processamento de componentes de profundidade e textura em 3DVC.
[0168] Codificador de vídeo 20 pode também remover componentes de textura e profundidade separadamente de um armazenador de imagem decodificada, que é mostrado como a memória de imagem de referência 64 no exemplo da figura 2. Porque as técnicas estabelecidas nesta divulgação permitem a manipulação separada de componentes de textura e profundidade, codificador de vídeo 20 pode codificar um componente de textura de um componente de visualização usando imagens de referência diferentes daquelas usadas quando da codificação de um componente de profundidade da mesma visualização contrário ao componente 3DVC convencional onde um componente de visualização (e, portanto, componentes de profundidade e a textura desse componente de visualização) foi codificado usando as mesmas imagens de referência. Como resultado, pode haver casos em que os componentes de profundidade de um componente de visualização de referência podem ser removidos do armazenador de imagem decodificada antes de componentes de textura do mesmo componente de visualização de referência, e um componente de textura de um componente de visualização de referência pode ser removido do armazenador de imagem decodificada antes do componente de profundidade do mesmo componente de visualização de referência.
[0169] Em operação, a unidade de seleção de modo 40 do codificador de vídeo 20 pode ser configurada para executar as técnicas descritas nesta especificação. A unidade de seleção de modo 40 pode armazenar um componente de profundidade na memória de imagem de referência 64 e analisar uma dependência de visualização para determinar se o componente de profundidade é usado para predição de intervisualização. Unidade de seleção de modo 40 pode, em seguida, remover o componente de profundidade da memória de imagem de referência 64, em resposta à determinação de que o componente de profundidade não é usado para a predição de intervisualização. Isto é, a unidade de seleção de modo 40 pode remover o componente de profundidade de um componente de visualização de referência da memória de imagem de referência 64 sem remover o componente de textura do mesmo componente de visualização de referência, em resposta à determinação de que o componente de profundidade não é utilizado para a predição de intervisualização. Unidade de seleção de modo 40 pode, antes de remover o componente de profundidade, validar este componente de profundidade como sendo elegível para remoção, determinando que o componente de profundidade não pertence a uma visualização de saída alvo e que o componente de profundidade está associado a um código de identificação de referência de camada de abstração de rede que tem um valor igual a zero (o que significa que o conteúdo da unidade NAL encapsulando o componente de profundidade não é usado para construir imagens de referência para a predição de interimagem).
[0170] A figura 3 é um diagrama de blocos que ilustra um exemplo de decodificador de vídeo 30 que pode implementar as técnicas descritas nesta especificação para decodificar um fluxo de bits de multivisualização. No exemplo da figura 3, decodificador de vídeo 30 inclui uma unidade de decodificação por entropia 80, unidade de predição 81 tendo unidade de compensação de movimento 82 e unidade de intra-predição 84, unidade de quantização inversa 86, unidade de transformada inversa 88, somador 90, e memória de imagem de referência 92.
[0171] Durante o processo de decodificação, decodificador de vídeo 30 recebe um fluxo de bits de vídeo codificado que representa blocos de vídeo de uma fatia de vídeo codificado e elementos de sintaxe associados a partir do codificador de vídeo 20. A unidade de decodificação por entropia 80 do decodificador de vídeo 30 decodifica por entropia o fluxo de bits para gerar coeficientes quantizados, vetores de movimento, e outros elementos de sintaxe. Unidade de decodificação por entropia 80 encaminha os vetores de movimento e outros elementos de sintaxe para a unidade de predição 81. O decodificador de vídeo 30 pode receber os elementos de sintaxe no nível de fatia de vídeo e/ou no nível de bloco de vídeo.
[0172] Por exemplo, decodificador de vídeo 30 pode receber várias unidades NAL possuindo um cabeçalho de unidade NAL que identifica um tipo de dados armazenados na unidade NAL (por exemplo, dados VCL e dados não-VCL). Os conjuntos de parâmetros podem conter as informações do cabeçalho de nível de sequência, como um SPS, PPS, ou outro conjunto de parâmetros descritos acima.
[0173] De acordo com aspectos da presente divulgação, decodificador de vídeo 30 pode ativar um conjunto de parâmetros como um conjunto de parâmetros de textura para o componente de textura do componente de visualização com base em, pelo menos, um valor de índice de ordem de visualização atribuído ao componente de visualização dos dados 3DVC. Mais especificamente, a unidade de decodificação por entropia 80 pode analisar os conjuntos de parâmetros do fluxo de bits, decodificar os conjuntos de parâmetros e prover os conjuntos de parâmetros decodificados para os outros componentes do decodificador de vídeo 30, como a unidade de predição 81, a unidade de quantização inversa 86 e unidade de processamento de transformada inversa 88. Cada um desses componentes pode referir-se aos conjuntos de parâmetros atualmente ativos e, neste sentido, o decodificador de vídeo 30 ativa o conjunto de parâmetros para cada componente do decodificador de vídeo 30.
[0174] Em qualquer caso, o índice de ordem de visualização pode, como mencionado acima, descrever a ordem de decodificação de um componente de visualização correspondente de uma unidade de acesso. O índice de ordem de visualização pode ser utilizado com um valor de contagem de ordem de imagem (POC) ou um valor de quadro para identificar um componente de visualização de um fluxo de bits. Este aspecto das técnicas pode, portanto, proporcionar um conjunto de parâmetros, tais como PPS ou SPS, que é ativado para o componente de textura de um componente de visualização e não se aplica ao componente de profundidade correspondente do mesmo componente de visualização. A este respeito, o decodificador de vídeo 30 pode decodificar apenas o componente de textura do componente de visualização e não o componente de profundidade do componente de visualização com base no conjunto de parâmetros de textura ativado.
[0175] Além disso, o decodificador de vídeo 30 pode ativar um conjunto de parâmetros para o componente de profundidade do componente de visualização baseado pelo menos no valor de índice de ordem de visualização atribuído ao componente de visualização dos dados 3DV. Isto é, em alguns casos, o dispositivo de codificação de vídeo pode ativar um conjunto de parâmetros específicos de textura para o componente de textura de um componente de visualização e, em seguida, ativar ainda outro parâmetro estabelecido especificamente para o componente de profundidade do mesmo componente de visualização. Como resultado, o decodificador de vídeo 30 pode codificar o componente de profundidade do componente de visualização com base no conjunto de parâmetros ativado para o componente de profundidade do componente de visualização e não o conjunto de parâmetros de textura ativado. Decodificador de vídeo 30 pode decodificar o componente de textura com base no conjunto de parâmetros de textura ativado. Deste modo, as técnicas podem promover a ativação independente de conjuntos de parâmetros, como por exemplo um PPS ou SPS, para componentes de textura e de profundidade de um componente de visualização, proporcionando um modo pelo qual facilitar a manipulação separada ou processamento de componentes de profundidade e textura em 3DVC.
[0176] Em detalhe, este aspecto das técnicas pode permitir um codificador de vídeo (que pode, em geral referem-se a um ou ambos de um codificador de vídeo e/ou um decodificador de vídeo) para ativar um conjunto de parâmetros separado para cada um de um componente de profundidade e um componente de textura. O mecanismo de conjunto de parâmetros de sequência e imagem pode efetivamente separar a transmissão de informação que raramente muda da transmissão de dados de macrobloco codificado. Conjuntos de parâmetros de sequência e imagem podem, em algumas aplicações, ser transportados fora de banda usando um mecanismo de transporte confiável. Uma carga útil de sequência de byte bruto de conjunto de parâmetros de imagem, (ou "RBSP", que é uma outra maneira mais formal para se referir a um conjunto de parâmetros de imagem) inclui parâmetros que podem ser referidos pela unidades NAL de fatia codificadas de um ou mais componentes de textura ou profundidade dos um ou mais componentes de visualização. Um RBSP de conjunto de parâmetros de sequência inclui parâmetros que podem ser referidos por um ou mais conjunto de parâmetros de imagem ou um ou mais mensagens SEI de período de armazenamento.
[0177] Quando da decodificação de um fluxo de bits de 3DVC contendo visualizações de profundidade, a qualquer momento dado durante a operação do processo de decodificação, decodificador de vídeo 30 pode ativar zero ou um conjunto de parâmetros de imagem ativo, zero ou mais conjuntos de parâmetros de imagem de textura ativos, e zero ou mais conjuntos de parâmetros de imagem de visualização ativos. Cada conjunto de parâmetros de imagem ativo de textura ativo está ativo especificamente para um valor de índice de ordem de visualização particular menor ou igual ao valor de índice de ordem de visualização máximo, e cada conjunto de parâmetros de imagem de visualização ativo está ativo especificamente para um valor de índice de ordem de visualização particular que é menor que o valor de índice de ordem de visualização máximo.
[0178] Da mesma forma, em um dado momento durante a operação do processo de decodificação, decodificador de vídeo 30 pode ativar zero ou um conjunto parâmetro de sequência de MVC ativo, zero ou mais conjuntos de parâmetros de sequência de MVC de textura ativo, e zero ou mais conjuntos de parâmetros de sequência de MVC de visualização ativo. Cada conjunto de parâmetros de sequência de MVC de textura ativo está ativo especificamente para um valor de índice de ordem de visualização particular menor ou igual ao valor de índice de ordem de visualização máximo, e cada conjuntos de parâmetros de sequência de MVC de visualização ativo está ativo especificamente para um valor de índice de ordem de visualização particular que é menor que o valor de índice de ordem de visualização máximo.
[0179] Neste sentido, a ativação do conjunto de parâmetros para 3DVC geralmente é semelhante à ativação de conjuntos de parâmetros em MVC, exceto para essas diferenças aqui apontadas (que envolvem casos de como lidar com componentes de visualização de profundidade que atualmente não são suportados no MVC). Além disso, o MVC provê para um número de bits reservado em cada conjunto de parâmetros para que os elementos de sintaxe adicionais direcionados para extensões usando MVC, tal como 3DVC, podem utilizar para especificar os elementos de sintaxe específicos de 3DVC. Ao prover esses bits reservados, os conjuntos de parâmetros mantêm compatibilidade de forma precursora com MVC, embora esses bits de reserva possam ser utilizados para especificar elementos de sintaxe não relacionados ou não especificados na extensão MVC para H.264/AVC. Por esta razão, mesmo que o conjunto de parâmetros MVC possa incluir elementos de sintaxe adicionais não relacionados com o MVC, esses conjuntos de parâmetros são chamados de conjuntos de parâmetros MVC dados os bits reservados presentes nos conjuntos de parâmetros MVC.
[0180] O processo de ativação detalhado para conjuntos de parâmetros de sequência e imagens é como segue. Decodificador de vídeo 30 considera, inicialmente, cada RBSP de conjunto de parâmetros de imagem como não ativo no início da operação do processo de decodificação. No máximo, decodificador de vídeo 30 ativa um RBSP de conjunto de parâmetros de imagem como o RBSP de conjunto de parâmetros de imagem ativo em qualquer momento durante a operação do processo de decodificação. Quando qualquer RBSP de conjunto de parâmetros de imagem particular torna-se o RBSP de conjunto de parâmetros de imagem ativo, decodificador de vídeo 30 efetivamente desativa o RBSP de conjunto de parâmetros de imagem ativo anteriormente (se houver).
[0181] Além do RBSP de conjunto de parâmetros de imagem ativo, decodificador de vídeo 30 pode ativar zero ou mais RBSPs de conjunto de parâmetros de imagem especificamente para componentes de textura (com um valor de índice de ordem de visualização particular ("VOIdx") menor ou igual a valor de índice de ordem de visualização máxima ("VOIdxMax")) que pertence às visualizações de saída alvo ou que podem ser referidos usando predição de intervisualização na decodificação de componentes de textura pertencentes às visualizações de saída alvo. Tal um RBSP de conjunto de parâmetros de imagem é referido como o RBSP de conjunto de parâmetros de imagem ativo para o valor particular de VOIdx. As restrições no RBSPs de conjunto de parâmetros de imagem ativos também se aplicam aos RBSPs de conjunto de parâmetros de imagem de visualização ativos para um valor particular de VOIdx.
[0182] Além disso, o decodificador de vídeo 30 pode ativar zero ou mais RBSPs de conjunto de parâmetros de imagem especificamente para componentes de visualização (com um valor particular de VOIdx menor do que VOIdxMax) que pertencem às visualizações de saída alvo ou que possam ser referidos através de predição de intervisualização em componentes de profundidade de decodificação pertencentes às visualizações de saída alvo. Tal RBSP de conjunto de parâmetros de imagem é referido como o RBSP de conjunto de parâmetros de imagem ativo para o valor particular de VOIdx. As restrições de RBSPs de conjunto de parâmetros de imagem ativos também se aplicam aos RBSPs de conjunto de parâmetros de imagem de visualização ativos para um valor particular de VOIdx menor do que VOIdxMax.
[0183] Quando um RBSP de conjunto de parâmetros de imagem (com um valor particular de pic_parameter_set_id) não é o RBSP de conjunto de parâmetros de imagem ativo e o RBSP de conjunto de parâmetros de imagem é referido por uma unidade NAL de fatia codificada pertencente a um componente de profundidade e com VOIdx igual VOIdxMax (usando esse valor de pic_parameter_set_id), o decodificador de vídeo 30 pode ativar o RBSP de conjunto de parâmetros de imagem. Uma unidade de fatia NAL codificada pertencente a um componente de profundidade pode ter um nal_unit_type igual a 21. Este RBSP de conjunto de parâmetros de imagem é chamado o RBSP de conjunto de parâmetros de imagem ativo até que o RBSP de conjunto de parâmetros de imagem é desativado quando um outro RBSP de conjunto de parâmetros de imagem torna-se o RBSP de conjunto de parâmetros de imagem ativo. Um RBSP de conjunto de parâmetros de imagem, com esse valor particular de pic_parameter_set_id, deve estar disponível para o processo de decodificação antes da ativação do RBSP de conjunto de parâmetros de imagem.
[0184] Quando um RBSP de conjunto de parâmetros de imagem (com um valor particular de pic_parameter_set_id) não é o conjunto de parâmetros de imagem de visualização ativo para um valor particular de VOIdx menor do que VOIdxMax e o RBSP de conjunto de parâmetros de imagem é referido por uma unidade NAL de fatia de codificada pertencente a um componente de profundidade (ou seja, com o nal_unit_type igual a 21) e com o valor particular de VOIdx (utilizando o valor de pic_parameter_set_id), decodificador de vídeo 30 ativa o RBSP de conjunto de parâmetros de imagem para componentes de visualização com o valor particular de VOIdx. Este RBSP de conjunto de parâmetros de imagem é chamado de RBSP de conjunto de parâmetros de imagem de visualização ativo para o valor particular de VOIdx até que o RBSP de conjunto de parâmetros de imagem é desativado quando um outro RBSP de conjunto de parâmetros de imagem torna-se o RBSP de conjunto de parâmetros de imagem de visualização ativo para o valor particular de VOIdx. Um RBSP de conjunto de parâmetros de imagem, com esse valor particular de pic_parameter_set_id, deve estar disponível para o processo de decodificação antes da ativação do RBSP de conjunto de parâmetros de imagem.
[0185] Quando um RBSP de conjunto de parâmetros de imagem (com um valor particular de pic_parameter_set_id) não é o conjunto de parâmetros de textura da imagem ativa para um valor particular de VOIdx inferior ou igual a VOIdxMax e o RBSP de conjunto de parâmetros de imagem é referido por uma unidade NAL de fatia codificada pertencente a um componente de textura (isto é, com o nal_unit_type igual a 1, 5 ou 20) e com o valor particular de VOIdx (usando esse valor de pic_parameter_set_id), decodificador de vídeo 30 ativa o RBSP de conjunto de parâmetros de imagem para componentes de profundidade com o valor particular de VOIdx. Este RBSP de conjunto de parâmetros de imagem é chamado de o RBSP de conjunto de parâmetros de imagem ativo para o valor particular de VOIdx até que o RBSP de conjunto de parâmetros de imagem é desativado quando um outro RBSP de conjunto de parâmetros de imagem torna-se o RBSP de conjunto de parâmetros de imagem de textura ativo para o valor particular de VOIdx. Um RBSP de conjunto de parâmetros de imagem, com esse valor particular de pic_parameter_set_id, deve estar disponível para o processo de decodificação antes da ativação do RBSP de conjunto de parâmetros de imagem.
[0186] Qualquer unidade NAL de conjunto de parâmetros de imagem contendo o valor de pic_parameter_set_id para o RBSP de conjunto de parâmetros de imagem ativo para uma imagem codificada deve ter o mesmo conteúdo que o RBSP de conjunto de parâmetros de imagem ativo para esta imagem codificada a menos que a unidade NAL de conjunto de parâmetros de imagem siga a última unidade NAL VCL desta imagem codificada e preceda a primeira unidade NAL VCL de outra imagem codificada. Qualquer unidade NAL de conjunto de parâmetros de imagem contém o valor do pic_parameter_set_id para o RBSP de conjunto de parâmetros de imagem de visualização ativo para um valor particular de VOIdx menor do que VOIdxMax para uma imagem codificada deve ter o mesmo conteúdo que o RBSP de conjunto de parâmetros de imagem de visualização ativo para o valor particular de VOIdx para esta imagem codificada a menos que o unidade NAL de conjunto de parâmetros de imagem siga a última unidade NAL VCL da imagem codificada e preceda a primeira unidade NAL VCL de outra imagem codificada. Qualquer unidade NAL de conjunto de parâmetros de imagem que contém o valor de pic_parameter_set_id para o RBSP de conjunto de parâmetros de imagem ativo para um valor particular de VOIdx para uma imagem codificada deve ter o mesmo conteúdo que o RBSP de conjunto de parâmetros de imagem ativo para o valor particular de VOIdx para esta imagem codificada a menos que a unidade NAL de conjunto de parâmetros de imagem siga a última unidade NAL VCL da imagem codificada e preceda a primeira unidade NAL VCL de outra imagem codificada.
[0187] O decodificador de vídeo 30 inicialmente determina que cada RSBP de conjunto de parâmetros de sequência MVC não está ativo no início da operação do processo de decodificação. Novamente, referência aos conjuntos de parâmetros de sequência MVC refere-se a conjuntos de parâmetros de sequência MVC dentro do contexto de 3DVC, que herdou ou de outra maneira adopta MVC e, portanto, incorpora conjuntos de parâmetros de sequência MVC (embora estes conjuntos de parâmetros possam ser modificados através da adição de elementos de sintaxe específicos de 3DVC adicionais). No máximo, o decodificador 30 de vídeo determina que um RSBP de conjunto de parâmetros de sequência MVC é o RSBP de conjunto de parâmetros de sequência MVC ativo em qualquer momento durante a operação do processo de decodificação. Quando qualquer RSBP de conjunto de parâmetros de sequência MVC particular torna-se o RSBP de conjunto de parâmetros de sequência MVC ativo, decodificador de vídeo 30 desativa o RSBP de conjunto de parâmetros de sequência MVC previamente ativo (se houver).
[0188] O RSBP de conjunto de parâmetros de sequência MVC ativo é um RSBP de conjunto de parâmetros de sequência ou um subconjunto de RSBP de conjunto de parâmetros de sequência. RSBP de conjunto de parâmetros de sequências são ativados por unidades NAL de fatia codificada com nal_unit_type igal a 1 ou 5 ou armazenando mensagens SEI periódicas que não saõ incluídas em uma mensagem aninhada SEI escalável MVC ou uma mensagem aninhada SEI escalável 3DV. Os conjuntos de parâmetros de sequência de subconjunto são ativados por unidades NAL de extensão MVC de fatia codificada (nal_unit_type igual a 21) ou armazenando mensagens SEI periódicas que são incluídas em uma mensagem aninhada SEI escalável. Um RSBP de conjunto de parâmetros de sequência e um RSBP de conjunto de parâmetros de sequência de subconjunto podem ter o mesmo valor de seq_parameter_set_id.
[0189] Além do RSBP de conjunto de parâmetros de sequência MVC ativo, decodificador de vídeo 30 pode ativar zero ou mais RSBPs de conjunto de parâmetros de sequência MVC especificamente para componentes de visualização (com um valor particular de VOIdx menor do que VOIdxMax) que pertencem às visualizações de saída alvo ou que podem ser referidos através de predição de intervisualização na decodificação de componentes de visualização pertencentes às visualizações de saída alvo. Tal RSBP de conjunto de parâmetros de sequência MVC é referido como o RSBP de conjunto de parâmetros de sequência MVC de visualização ativo para o valor particular de VOIdx. As restrições sobre RSBPs de conjunto de parâmetros de sequência MVC ativos também se aplicam a RSBPs de conjunto de parâmetros de sequência MVC de visualização ativos para um valor particular de VOIdx menor do que VOIdxMax.
[0190] Além disso, o decodificador de vídeo 30 pode ativar zero ou mais RSBPs de conjunto de parâmetros de sequência MVC especificamente para componentes de textura (com um valor particular de VOIdx menor ou igual a VOIdxMax) que pertencem às visualizações de saída alvo ou que podem ser referidos através de predição de intervisualização em componentes de textura de decodificação pertencentes às visualizações de saída alvo. Tal RSBP de conjunto de parâmetros de sequência MVC é referido como o RSBP de conjunto de parâmetros de sequência MVC de textura ativo para o valor particular de VOIdx. As restrições sobre RSBPs de conjunto de parâmetros de sequência MVC ativos também se aplicam a RSBPs de conjunto de parâmetros de sequência MVC de textura ativos para um valor particular de VOIdx.
[0191] Para a seguinte descrição, a mensagem SEI periódica de armazenamento de ativação é especificada como segue. - Se VOIdxMax é igual a VOIdxMin e a unidade de acesso contém uma mensagem SEI periódica de armazenamento não incluída em uma mensagem SEI aninhada escalável MVC e não incluída em uma mensagem SEI aninhada escalável 3DVC, esta mensagem SEI periódica de armazenamento é a mensagem SEI periódica de armazenamento de ativação. - Caso contrário, se VOIdxMax não é igual a VOIdxMin e a unidade de acesso contém uma mensagem SEI periódica de armazenamento incluída em uma mensagem SEI aninhada escalável 3DVC e associada ao ponto de operação sendo decodificado, esta mensagem SEI periódica de armazenamento é a mensagem SEI periódica de armazenamento de ativação. - Caso contrário, a unidade de acesso não contém uma mensagem SEI periódica de armazenamento de ativação.
[0192] Quando um RBSP de conjunto de parâmetros de sequência (nal_unit_type é igual a 7) com um valor particular de seq_parameter_set_id não é já o RBSP de conjunto de parâmetros de sequência MVC ativo e o RBSP de conjunto de parâmetros de sequência é referido por ativação de um RBSP de conjunto de parâmetros de imagem (usando esse valor de seq_parameter_set_id) e o RBSP de conjunto de parâmetros de imagem é ativado por uma unidade NAL de fatia codificada com o nal_unit_type igual a 1 ou 5 (o RBSP de conjunto de parâmetros de imagem torna-se o RBSP de conjunto de parâmetros de imagem ativo e VOIdxMax é igual a VOIdxMin e não há nenhum componente de profundidade na unidade de acesso) e a unidade de acesso não contém um uma mensagem SEI períodica de armazenamento de ativação, o decodificador de vídeo 30 pode ativar o RBSP de conjunto de parâmetros de sequência. Este RBSP de conjunto de parâmetros de sequência é chamado o RSBP de conjunto de parâmetros de sequência MVC ativo até que o RBSP de conjunto de parâmetros de sequência é desativado quando um outro RSBP de conjunto de parâmetros de sequência MVC torna-se o RSBP de conjunto de parâmetros de sequência MVC ativo. Um RBSP de conjunto de parâmetros de sequência, com esse valor particular de seq_parameter_set_id, deve estar disponível para o processo de decodificação antes da ativação do RBSP de conjunto de parâmetros de sequência.
[0193] Quando um RBSP de conjunto de parâmetros de sequência (nal_unit_type é igual a 7) com um valor particular de seq_parameter_set_id não é já o RBSP de conjunto de parâmetros de sequência MVC ativo e o RBSP de conjunto de parâmetros de sequência é referido por uma mensagem SEI periódica de armazenamento de ativação (usando esse valor de seq_parameter_set_id) que não está incluído em uma mensagem SEI aninhada escalável 3DV e VOIdxMax é igual a VOIdxMin e não há nenhum componente de profundidade na unidade de acesso, decodificador de vídeo 30 ativa o RBSP de conjunto de parâmetros de sequência. Este RBSP de conjunto de parâmetros de sequência é chamado o RSBP de conjunto de parâmetros de sequência MVC ativo até que o RBSP de conjunto de parâmetros de sequência é desativado quando um outro RSBP de conjunto de parâmetros de sequência MVC torna-se o RSBP de conjunto de parâmetros de sequência MVC ativo. Um RBSP de conjunto de parâmetros de sequência, com esse valor particular de seq_parameter_set_id, deve estar disponível para o processo de decodificação antes da ativação do RBSP de conjunto de parâmetros de sequência.
[0194] Quando um RBSP de conjunto de parâmetros de sequência de subconjunto (nal_unit_type é igual a 15) com um valor particular de seq_parameter_set_id não é já o RBSP de conjunto de parâmetros de sequência MVC ativo e o RBSP de conjunto de parâmetros de sequência de subconjunto é referido pela ativação de um RBSP de conjunto de parâmetros de imagem (usando esse valor de seq_parameter_set_id) e o RBSP de conjunto de parâmetros de imagem é ativado por uma unidade NAL de fatia codificada com o nal_unit_type igual a 21 e com VOIdx igual VOIdxMax (o RBSP de conjunto de parâmetros de imagem torna-se o RBSP de conjunto de parâmetros de imagem ativo) e a unidade de acesso não contém um uma mensagem SEI periódica de armazenamento de ativação, o decodificador de vídeo 30 pode ativar o RBSP de conjunto de parâmetros de sequência de subconjunto. Este RBSP de conjunto de parâmetros de sequência de subconjunto é chamado o RSBP de conjunto de parâmetros de sequência MVC ativo até que o RBSP de conjunto de parâmetros de sequência de subconjunto é desativado quando um outro RSBP de conjunto de parâmetros de sequência MVC torna-se o RBSP de conjunto de parâmetros de sequência MVC ativo. Um RBSP de conjunto de parâmetros de sequência de subconjunto, com esse valor particular de seq_parameter_set_id, deve estar disponível para o processo de decodificação antes de sua ativação.
[0195] Quando um RBSP de conjunto de parâmetros de sequência de subconjunto (nal_unit_type é igual a 15) com um valor particular de seq_parameter_set_id não é já o RBSP de conjunto de parâmetros de sequência MVC ativo e o RBSP de conjunto de parâmetros de sequência de subconjunto é referido por uma mensagem SEI periódica de armazenamento de ativação (usando esse valor de seq_parameter_set_id), que está incluída em uma mensagem SEI aninhada escalável 3DV, decodificador de vídeo 30 ativa a RBSP de conjunto de parâmetros de sequência de subconjunto. Este RBSP de conjunto de parâmetros de sequência de subconjunto é chamado o RSBP de conjunto de parâmetros de sequência MVC ativo até que o RBSP de conjunto de parâmetros de sequência de subconjunto é desativado quando um outro RSBP de conjunto de parâmetros de sequência MVC torna-se o RSBP de conjunto de parâmetros de sequência MVC ativo. Um RBSP de conjunto de parâmetros de sequência de subconjunto, com esse valor particular de seq_parameter_set_id, deve estar disponível para o processo de decodificação antes da ativação do RBSP de conjunto de parâmetros de sequência de subconjunto.
[0196] Para a seguinte descrição, a mensagem SEI periódica de armazenamento de textura de ativação para um valor particular de VOIdx está especificada abaixo. - Se a unidade de acesso contém uma ou mais de uma mensagem SEI periódica de armazenamento incluída em uma mensagem SEI aninhada escalável MVC e associada a um ponto de operação para o qual o maior VOIdx no subconjunto de fluxo de bits associado é igual ao valor particular de VOIdx, a primeiro dessas mensagens SEI periódica de armazenamento, em ordem de decodificação, é a mensagem SEI periódica de armazenamento de textura de ativação para o valor particular de VOIdx. - Caso contrário, se a unidade de acesso contém uma mensagem SEI periódica de armazenamento não incluída em uma mensagem SEI aninhada escalável MVC ou uma mensagem SEI aninhada escalável 3DV, esta mensagem SEI periódica de armazenamento é a mensagem SEI periódica de armazenamento de textura de ativação para o valor particular de VOIdx igual para VOIdxMin. - Caso contrário, a unidade de acesso não contém uma mensagem SEI periódica de armazenamento de textura de ativação para o valor particular de VOIdx.
[0197] Quando um RBSP de conjunto de parâmetros de sequência (nal_unit_type é igual a 7) com um valor particular de seq_parameter_set_id não é o RBSP de conjunto de parâmetros de sequência MVC de textura ativo para VOIdx igual VOIdxMin e o RBSP de conjunto de parâmetros de sequência é referido pela ativação de um RBSP de conjunto de parâmetros de imagem (usando esse valor de seq_parameter_set_id) e o RBSP de conjunto de parâmetros de imagem é ativado por uma unidade NAL de fatia codificada com o nal_unit_type igual a 1 ou 5 (o RBSP de conjunto de parâmetros de imagem torna-se o RBSP de conjunto de parâmetros de imagem de textura ativo para VOIdx igual VOIdxMin), decodificador de vídeo 30 pode ativar o RBSP de conjunto de parâmetros de sequência para componentes da textura com VOIdx igual VOIdxMin. Este RBSP de conjunto de parâmetros de sequência é chamado de RBSP de conjunto de parâmetros de sequência MVC de textura ativo para VOIdx igual VOIdxMin até que o RBSP de conjunto de parâmetros de sequência é desativado quando um outro RSBP de conjunto de parâmetros de sequência MVC torna-se o RBSP de conjunto de parâmetros de sequência MVC de textura ativo para VOIdx igual VOIdxMin. Um RBSP de conjunto de parâmetros de sequência, com esse valor particular de seq_parameter_set_id, deve estar disponível para o processo de decodificação antes da ativação do RBSP de conjunto de parâmetros de sequência.
[0198] Quando um RBSP de conjunto de parâmetros de sequência (nal_unit_type é igual a 7) com um valor particular de seq_parameter_set_id já não é o RBSP de conjunto de parâmetros de sequência MVC de textura ativo para VOIdx igual VOIdxMin e o RBSP de conjunto de parâmetros de sequência é referido por um mensagem SEI periódica de armazenamento de textura de ativação (usando esse valor de seq_parameter_set_id), que não está incluída em uma mensagem SEI aninhada escalável MVC ou uma mensagem SEI aninhada escalável 3DV, decodificador de vídeo 30 pode ativar o RBSP de conjunto de parâmetros de sequência para componentes da textura com VOIdx igual VOIdxMin. Este RBSP de conjunto de parâmetros de sequência é chamado de RBSP de conjunto de parâmetros de sequência MVC de textura ativo para VOIdx igual VOIdxMin até que o RBSP de conjunto de parâmetros de sequência é desativado quando um outro RSBP de conjunto de parâmetros de sequência MVC torna-se o RBSP de conjunto de parâmetros de sequência MVC de textura ativo para VOIdx igual. Um RBSP de conjunto de parâmetros de sequência, com esse valor particular de seq_parameter_set_id, deve estar disponível para o processo de decodificação antes da ativação do RBSP de conjunto de parâmetros de sequência.
[0199] Quando um RBSP de conjunto de parâmetros de sequência de subconjunto (nal_unit_type é igual a 15) com um valor particular de seq_parameter_set_id não é já o RBSP de conjunto de parâmetros de sequência MVC de textura ativo para um valor particular de VOIdx menor ou igual a VOIdxMax e o RBSP de conjunto de parâmetros de sequência de subconjunto é referido pela ativação de um RBSP de conjunto de parâmetros de imagem (usando esse valor de seq_parameter_set_id) e o RBSP de conjunto de parâmetros de imagem é ativado por uma unidade NAL de extensão MVC de fatia codificada (nal_unit_type igual a 20), com o valor particular de VOIdx (o RBSP de conjunto de parâmetros de imagem torna-se o RBSP de conjunto de parâmetros de imagem de textura ativo para o valor particular de VOIdx), decodificador de vídeo 30 pode ativar o RBSP de conjunto de parâmetros de sequência de subconjunto para componentes de textura com o valor particular de VOIdx. Este RBSP de conjunto de parâmetros de sequência de subconjunto é chamado de RBSP de conjunto de parâmetros de sequência MVC de textura ativo para o valor particular de VOIdx até que o RBSP de conjunto de parâmetros de sequência de subconjunto é desativado quando um outro RSBP de conjunto de parâmetros de sequência MVC torna-se o RBSP de conjunto de parâmetros de sequência MVC de textura ativo para o valor particular de VOIdx. Um RBSP de conjunto de parâmetros de sequência de subconjunto, com esse valor particular de seq_parameter_set_id, deve estar disponível para o processo de decodificação antes da ativação do RBSP de conjunto de parâmetros de sequência de subconjunto.
[0200] Quando um RBSP de conjunto de parâmetros de sequência de subconjunto (nal_unit_type é igual a 15) com um valor particular de seq_parameter_set_id não é já o RBSP de conjunto de parâmetros de sequência MVC de textura ativo para um valor particular de VOIdx menor ou igual a VOIdxMax e o RBSP de conjunto de parâmetros de sequência de subconjunto é referido por um mensagem SEI periódica de armazenamento de textura de ativação (usando esse valor de seq_parameter_set_id), que está incluída em uma mensagem SEI aninhada escalável MVC e associada com o valor particular de VOIdx, decodificador de vídeo 30 pode ativar este RBSP de conjunto de parâmetros de sequência de subconjunto para componentes da textura com o valor particular de VOIdx. Este RBSP de conjunto de parâmetros de sequência de subconjunto é chamado de RBSP de conjunto de parâmetros de sequência MVC de textura ativo para o valor particular de VOIdx até que o RBSP de conjunto de parâmetros de sequência de subconjunto é desativado quando um outro RSBP de conjunto de parâmetros de sequência MVC torna-se o RBSP de conjunto de parâmetros de sequência MVC de textura ativo para o valor particular de VOIdx. Um RBSP de conjunto de parâmetros de sequência de subconjunto, com esse valor particular de seq_parameter_set_id, deve estar disponível para o processo de decodificação antes da ativação do RBSP de conjunto de parâmetros de sequência de subconjunto.
[0201] Para a seguinte especificação, a mensagem SEI periódica de armazenamento de visualização de ativação para um valor particular de VOIdx está especificada abaixo. - Se a unidade de acesso contém uma ou mais de uma mensagem SEI periódica de armazenamento incluída em uma mensagem SEI aninhada escalável 3DVC e associada a um ponto de operação para o qual o maior VOIdx no subconjunto de fluxo de bits associado é igual ao valor particular de VOIdx, a primeira dessas mensagens SEI periódica de armazenamento, em ordem de decodificação, é a mensagem SEI periódica de armazenamento de visualização de ativação para o valor particular de VOIdx. - Caso contrário, a unidade de acesso não contém uma mensagem SEI periódica de armazenamento de visualização de ativação para o valor particular de VOIdx.
[0202] Quando um RBSP de conjunto de parâmetros de sequência de subconjunto (nal_unit_type é igual a 15) com um valor particular de seq_parameter_set_id já não é o RBSP de conjunto de parâmetros de sequência de MVC de visualização ativo para um valor particular de VOIdx menor do que VOIdxMax e o RBSP de conjunto de parâmetros de sequência de subconjunto é referido pela ativação de um RBSP de conjunto de parâmetros de imagem (usando esse valor de seq_parameter_set_id) e o RBSP de conjunto de parâmetros de imagem é ativado por uma unidade NAL de fatia codificada com o nal_unit_type igual a 21 e com a valor particular de VOIdx (o RBSP de conjunto de parâmetros de imagem torna-se o RBSP de conjunto de parâmetros de imagem de visualização ativo para o valor particular de VOIdx), decodificador de vídeo 30 ativa o RBSP de conjunto de parâmetros de sequência de subconjunto para componentes de visualização com o valor particular de VOIdx. Este RBSP de conjunto de parâmetros de sequência de subconjunto é chamado de RBSP de conjunto de parâmetros de sequência MVC de visualização ativo para o valor particular de VOIdx até que o RBSP de conjunto de parâmetros de sequência de subconjunto é desativado quando um outro RSBP de conjunto de parâmetros de sequência MVC torna-se o RBSP de conjunto de parâmetros de sequência MVC de visualização ativo para o valor particular de VOIdx ou ao decodificar uma unidade de acesso com VOIdxMax inferior ou igual ao valor determinado de VOIdx. Um RBSP de conjunto de parâmetros de sequência de subconjunto, com esse valor particular de seq_parameter_set_id, deve estar disponível para o processo de decodificação antes da ativação do RBSP de conjunto de parâmetros de sequência de subconjunto.
[0203] Quando um RBSP de conjunto de parâmetros de sequência de subconjunto (nal_unit_type é igual a 15) com um valor particular de seq_parameter_set_id já não é RBSP de conjunto de parâmetros de sequência de MVC de visualização ativo para um valor particular de VOIdx menor do que VOIdxMax e o RBSP de conjunto de parâmetros de sequência de subconjunto é referido por uma mensagem SEI periódica de armazenamento de visualização de ativação (usando esse valor de seq_parameter_set_id), que está incluída em uma mensagem SEI aninhada escalável 3DV e associada com o valor particular de VOIdx, decodificador de vídeo 30 ativa este RBSP de conjunto de parâmetros de sequência de subconjunto para componentes de visualização com o valor particular de VOIdx. Este RBSP de conjunto de parâmetros de sequência de subconjunto é chamado de RBSP de conjunto de parâmetros de sequência MVC de visualização ativo para o valor particular de VOIdx até que o RBSP de conjunto de parâmetros de sequência de subconjunto é desativado quando um outro RSBP de conjunto de parâmetros de sequência MVC torna-se o RBSP de conjunto de parâmetros de sequência MVC de visualização ativo para o valor particular de VOIdx ou ao decodificar uma unidade de acesso com VOIdxMax inferior ou igual ao valor determinado de VOIdx. Um RBSP de conjunto de parâmetros de sequência de subconjunto, com esse valor particular de seq_parameter_set_id, deve estar disponível para o processo de decodificação antes da ativação do RBSP de conjunto de parâmetros de sequência de subconjunto.
[0204] Um RBSP de conjunto de parâmetros de sequência de MVC que inclui um valor de profile_idc não especificado no anexo A ou no anexo H ou no anexo I proposto para H.264/AVC não deve ser referido por ativação de um RBSP de conjunto de parâmetros de sequência como o RBSP de conjunto de parâmetros de imagem ativo ou RBSP de conjunto de parâmetros de sequência de visualização ativo ou RBSP de conjunto de parâmetros de sequência de textura ativo (usando esse valor de parâmetro seq conjunto ID), referido por uma mensagem SEI periódica de armazenamento (usando esse valor de seq_parameter_set_id). Uma RBSP de conjunto de parâmetros de sequência de MVC incluindo um valor de profile_idc não especificado no anexo A ou no anexo H ou no anexo I proposto para H.264/AVC é ignorado na decodificação para os perfis especificados no Anexo A ou no anexo H ou propostos no anexo I do H.264/AVC.
[0205] É uma exigência de conformidade de fluxo de bits que as seguintes restrições sejam obedecidas: - Para cada valor particular de VOIdx, todas as unidades NAL de fatia codificada (com nal_unit_type igual a 1, 5, 20, ou 21) de uma sequência de vídeo codificado referem-se ao mesmo valor do seq_parameter_set_id (através do RBSP de conjunto de parâmetros de sequência que é referido pelo valor de pic_parameter_set_id). - O valor de seq_parameter_set_id em uma mensagem SEI periódica de armazenamento que não está incluída em uma mensagem SEI aninhada escalável MVC deve ser idêntico ao valor de seq_parameter_set_id no RBSP de conjunto de parâmetros de sequência que é referido pela unidades NAL de fatia codificada com o nal_unit_type igual a 1 ou 5 (através do valor de pic_parameter_set_id) na mesma unidade de acesso. - O valor do seq_parameter_set_id em uma mensagem SEI periódica de armazenamento que está incluída em uma mensagem SEI aninhada escalável MVC e está associada a um valor particular de VOIdx deve ser idêntico ao valor do seq_parameter_set_id no RBSP de conjunto de parâmetros de imagem que é referido a unidades NAL de fatia codificada com o nal_unit_type igual a 1, 5 ou 20, com o valor particular de VOIdx (através do valor de pic_parameter_set_id) na mesma unidade de acesso. - O valor do seq_parameter_set_id em uma mensagem SEI periódica de armazenamento que está incluída em uma mensagem SEI aninhada escalável 3DVC e está associada a um valor particular de VOIdx deve ser idêntico ao valor do seq_parameter_set_id no RBSP de conjunto de parâmetros de imagem que é referiso a unidades NAL de fatia codificada com nal_unit_type igual a 21 com o valor particular de VOIdx (através do valor da pic_parameter_set_id) na mesma unidade de acesso.
[0206] Os RBSPs de conjunto de parâmetros de sequência MVC de visualização ativos para diferentes valores de VOIdx podem ser o mesmo RSBP de conjunto de parâmetros de sequência MVC. O RBSP de conjunto de parâmetros de sequência de MVC ativo e um RBSP de conjunto de parâmetros de sequência MVC de visualização ativo para um valor particular de VOIdx pode ser o mesmo RSBP de conjunto de parâmetros de sequência MVC.
[0207] Os RBSPs de conjunto de parâmetros de sequência MVC de textura ativo para diferentes valores de VOIdx podem ser o mesmo RSBP de conjunto de parâmetros de sequência MVC. O RBSP de conjunto de parâmetros de sequência de MVC ativo e um RBSP de conjunto de parâmetros de sequência MVC de textura ativo para um valor particular de VOIdx pode ser o mesmo RSBP de conjunto de parâmetros de sequência MVC. Um RBSP de conjunto de parâmetros de sequência MVC de visualização ativo para um valor particular de VOIdx e um RBSP de conjunto de parâmetros de sequência MVC de textura ativo para um valor particular de VOIdx pode ser o mesmo RSBP de conjunto de parâmetros de sequência MVC.
[0208] Quando o RBSP de conjunto de parâmetros de sequência MVC ativo para uma imagem codificada é um RBSP de conjunto de parâmetros de sequência, qualquer RBSP de conjunto de parâmetros de sequência na sequência de vídeo codificada contendo esta imagem codificada e com o valor de seq_parameter_set_id para o RBSP de conjunto de parâmetros de sequência MVC ativo terá o mesmo conteúdo que o do RBSP de conjunto de parâmetros de sequência MVC ativo.
[0209] Quando o RBSP de conjunto de parâmetros de sequência MVC ativo para uma imagem codificada é um RBSP de conjunto de parâmetros de sequência de subconjunto, qualquer RBSP de conjunto de parâmetros de sequência de subconjunto na sequência de vídeo codificada contendo esta imagem codificada e com o valor de seq_parameter_set_id para o RSBP de conjunto de parâmetros de sequência MVC ativo terão o mesmo conteúdo que o do RSBP de conjunto de parâmetros de sequência MVC ativo.
[0210] Para cada valor particular de VOIdx, é aplicável o seguinte: Quando o RSBP de conjunto de parâmetros de sequência MVC de textura ativo para uma imagem codificada é um RBSP de conjunto de parâmetros de sequência, qualquer RBSP de conjunto de parâmetros de sequência na sequência de vídeo codificada contendo esta imagem codificada e com o valor de seq_parameter_set_id para o RSBP de conjunto de parâmetros de sequência MVC de textura ativo deve ter o mesmo conteúdo que o do RBSP de conjunto de parâmetros de sequência MVC de textura ativo. Quando o RBSP de conjunto de parâmetros de sequência MVC de textura ativo para uma imagem codificada é um RBSP de conjunto de parâmetros de sequência de subconjunto, qualquer RBSP de conjunto de parâmetros de sequência de subconjunto na sequência de vídeo codificado que contém essa imagem codificada e com o valor do seq_parameter_set_id para o RBSP de conjunto de parâmetros de sequência MVC de textura ativo terão o mesmo conteúdo que o do RBSP de conjunto de parâmetros de sequência MVC de textura ativo. O RBSP de conjunto de parâmetros de sequência MVC de visualização ativo para uma imagem codificada é um RBSP de conjunto de parâmetros de sequência de subconjunto e qualquer RBSP de conjunto de parâmetros de sequência de subconjunto na sequência de vídeo codificado que contém essa imagem codificada e com o valor do seq_parameter_set_id para o RBSP de conjunto de parâmetros de sequência MVC de visualização ativo terão o mesmo conteúdo que o do RBSP de conjunto de parâmetros de sequência MVC de visualização ativo.
[0211] Se os RBSPs de conjunto de parâmetros de sequência ou RSBPs de conjunto de parâmetros de sequência MVC são transmitidos dentro do fluxo de bits, essas restrições impõem uma restrição de ordem nas unidades NAL que contêm os RBSPs de conjunto de parâmetros de sequência ou RBSPs de conjunto de parâmetros de sequência MVC, respectivamente. Caso contrário (RBSPs de conjunto de parâmetros de sequência ou RBSPs de conjunto de parâmetros de sequência MVC são transmitidos por outros meios não especificados neste Padrão de Recomendação | Internacional para o padrão de codificação de vídeo H.264), que deve estar disponível para o processo de decodificação em tempo hábil de modo que essas restrições sejam obedecidas.
[0212] Quando presente, um RBSPs de extensão de conjunto de parâmetros de sequência inclui parâmetros que têm uma função semelhante às de um RBSP de conjunto de parâmetros de sequência. Para fins de estabelecimento de restrições sobre os elementos de sintaxe do RBSP de extensão de conjunto de parâmetros de sequência e para fins de apuração de ativação de um RBSP de extensão de conjunto de parâmetros de sequência, o RBSP de extensão de conjunto de parâmetros de sequência deve ser considerado parte do RBSP de conjunto de parâmetros de sequência anterior com o mesmo valor de seq_parameter_set_id. Quando um RBSP de conjunto de parâmetros de sequência está presente que não é seguido por um RBSP de extensão de conjunto de parâmetros de sequência com o mesmo valor do seq_parameter_set_id antes da ativação do RBSP de conjunto de parâmetros de sequência, o RBSP de extensão de conjunto de parâmetros de sequência e seus elementos de sintaxe devem ser considerados não presentes para o RSBP de conjunto de parâmetros de sequência MVC ativo. O RBSPs de extensão de conjunto de parâmetros de sequência só se aplicam quando a visualização de textura base, que está de acordo com um ou mais dos perfis especificados no anexo A, de uma sequência de vídeo codificado em conformidade com um ou mais perfis especificados no Anexo I é decodificada. RBSPs de conjunto de parâmetros de sequência de subconjunto não devem ser seguidos por um RBSP de extensão de conjunto de parâmetros de sequência.
[0213] RBSPs de extensão de conjunto de parâmetros de sequência não são considerados como parte de um RBSP de conjunto de parâmetros de sequência de subconjunto e RBSPs de conjunto de parâmetros de sequência de subconjunto não devem ser seguidos por um RBSP de extensão de conjunto de parâmetros de sequência.
[0214] Para componentes de visualização com VOIdx igual VOIdxMax, todas as restrições que são expressas na relação entre os valores dos elementos de sintaxe (e os valores de variáveis derivados de tais elementos de sintaxe) em conjuntos de parâmetros de sequência MVC e os conjuntos de parâmetros de imagem e outros elementos de sintaxe são expressões de restrições que se aplicam apenas ao conjunto de parâmetros de sequência de MVC ativo e o conjunto de parâmetros de sequência ativo. Para componentes de visualização com um valor particular de VOIdx menor do que VOIdxMax, todas as restrições que são expressas na relação entre os valores dos elementos de sintaxe (e os valores de variáveis derivados de tais elementos de sintaxe) no conjuntos de parâmetros de sequência MVC e os conjuntos de parâmetros de imagem e outros elementos de sintaxe são expressões de restrições que se aplicam somente ao conjunto de parâmetros de sequência MVC de visualização ativo e o conjunto de parâmetros de imagem de visualização ativo para o valor particular de VOIdx.
[0215] Se qualquer RSBP de conjunto de parâmetros de sequência MVC tendo profile_idc igual ao valor de um dos valores profile_idc especificados no Anexo A, Anexo H ou no anexo I está presente isto é nunca é ativado no fluxo de bits (ou seja, a RBSP de conjunto de parâmetros de sequência de MVC nunca se torna o conjunto de parâmetros de sequência de MVC ativo ou um conjunto de parâmetros de sequência de MVC de visualização ativo), elementos de sintaxe do RSBP de conjunto de parâmetros de sequência MVC terão valores que estejam de acordo com as restrições especificadas se o RSBP de conjunto de parâmetros de sequência MVC foi ativado por referência em um fluxo de bits que se conforma de outra forma. Se qualquer RBSP de conjunto de parâmetros de imagem está presente que nunca é ativado no fluxo de bits (ou seja, o RBSP de conjunto de parâmetros de imagem nunca se torna o conjunto de parâmetros de imagem ativa ou um conjunto de parâmetros de imagem de visualização ativa), elementos de sintaxe do RBSP de conjunto de parâmetros de imagem terão valores que estejam em conformidade com as restrições especificadas se o RBSP de conjunto de parâmetros de imagem foi ativado por referência em um fluxo de bits de que se conforma de outra forma.
[0216] Durante a operação do processo de decodificação, para componentes de visualização com VOIdx igual VOIdxMax, os valores dos parâmetros do conjunto de parâmetros de sequência ativo e do conjunto de parâmetros de sequência MVC ativo devem ser considerados em vigor (ou seja, em um exemplo, aplicado quando da decodificação). Para componentes de visualização com um valor particular de VOIdx menor do que VOIdxMax, os valores dos parâmetros do conjunto de parâmetros de imagem de visualização ativo e o conjunto de parâmetros de sequência MVC de visualização ativo para o valor particular de VOIdx será considerado em vigor. Para interpretação de mensagens SEI que se aplicam a toda a unidade de acesso ou ao componente de visualização com VOIdx igual VOIdxMax, os valores dos parâmetros do conjunto de parâmetros de imagem de visualização ativa e o conjunto de parâmetros de sequência MVC ativo para a mesma unidade de acesso serão considerado em vigor salvo disposição em contrário na semântica de mensagem SEI. Para interpretação de mensagens SEI que se aplicam a componentes de visualização com um valor particular de VOIdx menor do que VOIdxMax, os valores dos parâmetros de conjuntos de parâmetros de imagem de visualização ativo e o conjunto de parâmetros de sequência MVC de visualização ativo para o valor particular de VOIdx para a mesma unidade de acesso deve ser considerado em vigor, salvo disposição em contrário na semântica de mensagem SEI.
[0217] Para qualquer SPS MVC ativo ou SPS MVC de visualização ativa, parte dos elementos de sintaxe na extensão de SPS MVC se aplica apenas à visualização de profundidade referente a este SPS, enquanto as outras partes dos elementos de sintaxe na extensão de SPS MVC coletivamente aplicam-se tanto a visualização de profundidade referente a este SPS quanto às correspondentes visualizações de textura. Mais especificamente, a informação de dependência de visualização da extensão de SPS MVC se aplica apenas às visualizações de profundidade, e as definições de nível se aplicam coletivamente a pontos de operação, cada um dos quais contém ambas as visualizações de profundidade e suas correspondentes visualizações de textura.
[0218] Em alguns casos, as técnicas desta divulgação podem permitir que decodificador de vídeo 30 ative, durante a codificação de um fluxo de bits que contém visualizações de profundidade, um conjunto de parâmetros de imagem de textura (PPS), ou um conjunto de parâmetros de sequência de MVC de textura (SPS) para um valor de índice de ordem de visualização.
[0219] Em alguns casos, o decodificador de vídeo 30 pode ativar, durante a codificação do fluxo de bits, um PPS ativo, ativar, durante a codificação do fluxo de bits, um PPS de visualização ativo para o valor de índice de visualização, ativar, durante a codificação do fluxo de bits, um SPS MVC de visualização ativa para o valor de índice de ordem de visualização e ativar, durante a codificação do fluxo de bits, um SPS MVC ativo.
[0220] Em alguns casos, a ativação do PPS de textura pode envolver a ativação, para componentes de profundidade que especificam o valor de índice de ordem de visualização, uma carga útil de sequência de bytes em bruto de PPS (RBSP), quando o PPS RBSP não é um PPS ativo de textura para o valor de índice de ordem de visualização e o PPS RBSP é referido por uma unidade de Camada de Rede de Abstração (NAL) de fatia codificada que tanto pertence a um componente de textura e que especifica o valor de índice para visualização, ativando o PPS RBSP. O decodificador de vídeo 30 também pode ativar o PPS de textura e a SPS MVC de textura como descrito acima.
[0221] Em qualquer caso, quando a fatia de vídeo é codificada como uma fatia intracodificada (I), a unidade de intra-predição 84 da unidade de predição 81 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual, com base em um modo de intra-predição sinalizado e dados de blocos anteriormente decodificados da imagem atual em visualização dos conjuntos de parâmetros ativos. Quando a imagem é codificada como uma fatia intercodificada (ou seja, B, P ou PB geral (GPB)), a unidade de compensação de movimento 82 da unidade de predição 81 produz blocos de predição para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe recebidos de unidade de decodificação por entropia 80, novo tendo em conta os conjuntos de parâmetros ativos. Os blocos preditivos podem ser produzidos a partir de uma das imagens de referência dentro das listas de imagem de referência. Decodificador de vídeo 30 pode construir as listas de imagem de referência, lista 0 e lista 1 (ou uma lista combinada, lista c) usando técnicas de construção padrão com base em imagens de referência armazenadas na memória de imagem de referência 92.
[0222] Unidade de compensação de movimento 82 determina a informação de predição para um bloco de vídeo da fatia de vídeo atual ao analisar os vetores de movimento e outros elementos de sintaxe, e usa as informações de predição para produzir os blocos de predição para o bloco de vídeo atual que está sendo decodificado. Por exemplo, a unidade de compensação de movimento 82 utiliza algum dos elementos de sintaxe recebidos para determinar o modo de predição (por exemplo, intra ou interpredição) utilizado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de interpredição (por exemplo, fatia B, fatia P, ou fatia GPB), informações de construção para uma ou mais das listas de imagem de referência para a fatia, vetores de movimento para cada bloco de vídeo intercodificado da fatia, estado de interpredição para cada bloco de vídeo intercodificado da fatia, e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[0223] A unidade de quantização inversa 86 quantifica inversamente, ou seja, desquantifica, coeficientes de transformada quantificados providos no fluxo de bits e decodificados pela unidade de decodificação por entropia 80. O processo de quantização inversa pode incluir a utilização de um parâmetro de quantização calculado pelo codificador de vídeo 20 para cada bloco de vídeo na fatia de vídeo para determinar um grau de quantização e, do mesmo modo, um grau de quantização inversa que deve ser aplicado.
[0224] A unidade de processamento de transformada inversa 88 aplica uma transformada inversa, por exemplo, uma transformada discreta de cosseno inversa, uma transformada inversa de número inteiro, ou um processo de transformada inversa conceitualmente semelhante, aos coeficientes de transformada, a fim de produzir blocos residuais no domínio do pixel. A unidade de processamento de transformada inversa 88 pode determinar a maneira pela qual transformadas foram aplicadas aos dados residuais.
[0225] Após a unidade de compensação de movimento 82 gerar o bloco preditivo para o bloco de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe, decodificador de vídeo 30 forma um bloco de vídeo decodificado pela soma dos blocos residuais de unidade de processamento de transformada inversa 88 com os blocos preditivos correspondentes gerados pela unidade de compensação de movimento 82. Somador 90 representa o componente ou componentes que executam esta operação de soma. Se desejado, um filtro de desbloqueio também pode ser aplicado para filtrar os blocos decodificados, a fim de remover artefatos de bloqueio. Outros filtros de loop (ou no loop de codificação ou depois do loop de codificação) também podem ser usados para suavizar as transições de pixel, ou de outra forma melhorar a qualidade do vídeo. Os blocos de vídeo decodificados em uma dada imagem são então armazenados na memória de imagem de referência 92, que armazena imagens de referência utilizadas para a compensação de movimento subsequente. Memória de imagem de referência 92 também armazena vídeo decodificado para apresentação posterior em um dispositivo de exibição, tal como dispositivo de exibição 32 da figura 1.
[0226] Outros aspectos das técnicas descritas nesta especificação podem promover a manipulação separada de componentes de profundidade e textura, permitindo que um dispositivo de codificação de vídeo remova separadamente componentes de textura e profundidade de um armazenador de imagem decodificada. O armazenador de imagem decodificada refere-se a uma memória ou outro meio legível por computador capaz de armazenar imagens de referência para utilização na codificação de uma componente de visualização atual. O armazenador de imagem decodificada é mostrado como memória de imagem de referência 92 no exemplo da figura 3. Porque as técnicas estabelecidas nesta divulgação permitem a manipulação separada de componentes de textura e profundidade, decodificador de vídeo 30 pode decodificar um componente de textura de um componente de visualização usando imagens de referência diferentes daquelas usadas quando da codificação de um componente de profundidade do mesmo componente de visualização contrário ao 3DVC convencional onde um componente de visualização (e, portanto, componentes de profundidade e textura desse componente de visualização) foi codificado usando as mesmas imagens de referência dado o tratamento de visualizações em MVC. Como resultado, pode haver casos em que os componentes de profundidade de um componente de visualização de referência podem ser removidos do armazenador de imagem decodificada antes de componentes de textura do mesmo componente de visualização de referência, e um componente de textura de um componente de visualização de referência pode ser removido do armazenador de imagem decodificada antes do componente de profundidade do mesmo componente de visualização de referência.
[0227] Em operação, o decodificador de vídeo 30 pode executar as técnicas descritas nesta especificação ao armazenar um componente de profundidade na memória de imagem de referência 92, e analisar uma dependência de visualização para determinar se o componente de profundidade é utilizado para a predição de intervisualização. O decodificador de vídeo 30 pode, então, remover o componente de profundidade da memória de imagem de referência 92, em resposta à determinação de que o componente de profundidade não é utilizado para a predição de intervisualização. Isto é, o decodificador de vídeo 30 pode remover o componente de profundidade de um componente de visualização de referência da memória de imagem de referência 92 sem remover o componente de textura do mesmo componente de visualização de referência, em resposta à determinação de que o componente de profundidade não é utilizado para a predição de intervisualização. O decodificador de vídeo 30 pode, antes da remoção do componente de profundidade, validar este componente de profundidade como sendo elegível para remoção através da determinação de que o componente de profundidade não pertence a uma visualização de saída alvo e que o componente de profundidade está associado com um código de identificação de referência de camada de abstração de rede possuindo um valor igual a zero (o que significa que o conteúdo da unidade NAL encapsulando o componente de profundidade não é usado para construir imagens de referência para a predição de interimagem).
[0228] Ou seja, em 3DVC (que por sua vez pode também ser referido como MVC mais profundidade ou MVC + D), a porção de textura ou profundidade de cada visualização tem os seus próprios processos de preparação de imagem de referência. Os componentes de textura e profundidade pertencentes às visualizações de saída alvo podem ser emitidos simultaneamente.
[0229] Para um componente de profundidade que não pertence a uma visualização de saída alvo e tem nal_ref_idc igual a 0, decodificador de vídeo 30 pode remover o componente de profundidade do DPB uma vez que o componente de profundidade nunca é usado para referência de intervisualização, ao analisar a dependência de visualização sinalizada na extensão de SPS MVC do SPS de subconjunto contendo um perfil 3DV e atualmente está ativado como o RBSP de conjunto de parâmetros de sequência MVC de visualização ativo. Novamente, a referência a MVC nesta descrição refere-se a MVC no contexto de 3DVC, que como mencionado acima, é uma proposta de extensão do H.264.
[0230] Por exemplo, as técnicas desta divulgação podem permitir que um codificador de vídeo (que pode referir-se a ambos ou a qualquer um de codificador de vídeo 20 e/ou decodificador de vídeo 30) para armazenar um componente de profundidade em um armazenador de imagem decodificada, o componente de profundidade não pertencente a uma visualização de saída alvo e com um nal_ref_idc igual a 0. Além disso, um codificador de vídeo pode analisar uma dependência de visualização para determinar se o componente de profundidade nunca é utilizado para fazer referência de intervisualização. Além disso, o codificador de vídeo pode compreender a remoção de um componente de profundidade de um armazenador de imagem decodificada em resposta à determinação de que o componente de profundidade nunca é usado para referência de intervisualização. A dependência de visualização pode ser sinalizada em um conjunto de parâmetros de sequência MVC (SPS) de extensão de um SPS de subconjunto, o SPS de subconjunto contendo um perfil 3DV, o SPS de subconjunto sendo atualmente ativado como um conjunto de parâmetros de sequência de MVC de visualização ativo. O codificador de vídeo pode codificar o componente de profundidade. Alternativamente, o codificador de vídeo pode decodificar o componente de profundidade.
[0231] Embora vários aspectos das técnicas estejam descritos acima em relação a um codificador de vídeo 20 ou decodificador de vídeo 30, as técnicas podem em alguns casos serem implementadas tanto pelo codificador de vídeo 20 quanto pelo decodificador de vídeo 30 de uma forma igual ou recíproca. Como resultado, as técnicas podem ser geralmente aplicadas por um codificador de vídeo, que pode representar um termo utilizado nesta especificação para se referir a ambos ou apenas a um do codificador de vídeo 20 e decodificador de vídeo 30. Estas técnicas não devem, portanto, ser limitadas a este respeito, mas em geral podem ser implementadas por qualquer codificador de vídeo.
[0232] A figura 4 é um diagrama de blocos que ilustra a unidade de encapsulamento 21 em mais detalhe. No exemplo da figura 4, a unidade de encapsulamento 21 inclui uma interface de entrada de vídeo 100, uma interface de entrada de áudio 102, uma unidade de criação de arquivo de vídeo 104, e uma interface de saída de arquivo de vídeo 106. A unidade de criação de arquivo de vídeo 104, neste exemplo, inclui uma unidade de geração de mensagem de informação de reforço suplementar (SEI) 108, uma unidade de atribuição de identificador (ID) de visualização 110, uma unidade de criação de representação 112, e uma unidade de criação de ponto de operação 114.
[0233] A interface de entrada de vídeo 100 e a interface de entrada de áudio 102 recebem vídeo codificado e dados de áudio, respectivamente. Embora não seja mostrado no exemplo da figura 1, o dispositivo de origem 12 pode também incluir uma fonte de áudio e um codificador de áudio para gerar os dados de áudio e codificar os dados de áudio, respectivamente. Unidade de encapsulamento 21 pode encapsular os dados de áudio codificado e os dados de vídeo codificado, para formar um arquivo de vídeo. A interface de entrada de vídeo 100 e a interface de entrada de áudio 102 podem receber vídeo codificado e dados de áudio como os dados são codificados, ou podem recuperar vídeo codificado e dados de áudio a partir de um meio legível por computador. Ao receber vídeo codificado e dados de áudio, interface de entrada de vídeo 100 e interface de entrada de áudio 102 passam o vídeo codificado e dados de áudio para a unidade de criação de arquivo de vídeo 104 para montagem em um arquivo de vídeo.
[0234] A unidade de criação de arquivo de vídeo 104 pode corresponder a uma unidade de controle, incluindo hardware, software e/ou firmware configurado para executar as funções e procedimentos atribuídos aos mesmos. A unidade de controle pode adicionalmente realizar as funções atribuídas à unidade de encapsulamento 21 em geral. Para exemplos em que unidade de criação de arquivo de vídeo 104 é incorporada em software e/ou firmware, a unidade de encapsulamento 21 pode incluir um meio legível por computador compreendendo instruções para a unidade de criação de arquivo de vídeo 104 e uma unidade de processamento para executar as instruções. Cada uma das subunidades da unidade de criação de arquivo de vídeo 104 (unidade de geração de mensagem SEI 108, unidade de atribuição de ID de visualização 110, unidade de criação de representação 112, e a unidade de criação de ponto de operação 114, neste exemplo) pode ser implementada como unidades individuais de hardware e/ou módulos de software, e pode ser funcionalmente integrada ou ainda separada em subunidades adicionais.
[0235] Unidade de criação de arquivo de vídeo 104 pode corresponder a qualquer unidade de processamento adequado ou circuito de processamento, como, por exemplo, um ou mais microprocessadores, circuitos integrados de aplicação específica (ASICs), matrizes de portas programáveis em campo (FPGA), processadores de sinais digitais (DSPs), ou qualquer combinação destes. Unidade de criação de arquivo de vídeo 104 pode incluir ainda um meio legível por computador não transitório armazenando instruções para qualquer uma ou todas da unidade de geração de mensagem SEI 108, unidade de atribuição de ID de visualização 110, unidade de criação de representação 112, e unidade de criação de ponto de operação 114, bem como um processador para executar as instruções.
[0236] Em geral, a unidade de criação de arquivo de vídeo 104 pode criar um ou mais arquivos de vídeo, incluindo os dados de áudio e vídeo recebidos. Unidade de criação de arquivo de vídeo 104 pode construir uma descrição de apresentação de mídia (MPD) para conteúdo multimídia, incluindo duas ou mais visualizações. Em outros exemplos, a unidade de criação de arquivo de vídeo 104 pode criar dados de armazenamento de manifesto semelhantes ao do MPD para o conteúdo multimídia. Unidade de geração de mensagem SEI 108 pode representar uma unidade que gera mensagens SEI. Unidade de atribuição de ID de visualização 110 pode atribuir identificadores de visualização para cada um das visualizações do conteúdo multimídia. Unidade de criação de representação 112 pode construir uma ou mais representações para o conteúdo multimídia, cada uma das quais pode incluir um ou mais das visualizações para o conteúdo multimídia. Em alguns exemplos, unidade de atribuição de ID de visualização 110 pode incluir dados no MPD e/ou as representações (por exemplo, dados de cabeçalho para as representações), indicando um máximo e um mínimo de identificadores de visualização para visualizações incluídas nas representações. Além disso, a unidade de criação de representação 112 pode prover informações no MPD que indicam se IDs de visualização maiores correspondem às visualizações tendo perspectivas de câmera para a direita ou perspectivas de câmera para a esquerda para visualizações com IDs de visualização menores.
[0237] Em alguns exemplos, a mesma visualização pode ser codificada usando várias características de codificação, como diferentes taxas de quadros, diferentes taxas de bits, diferentes esquemas de codificação, ou outras diferenças. Unidade de criação de representação 112 pode garantir que cada visualização incluída em uma representação comum seja codificada de acordo com as mesmas características de codificação. Desta forma, o MPD e/ou dados de cabeçalho para a representação podem sinalizar de um conjunto de características (ou atributos) para a representação que se aplica a todas as visualizações na representação. Além disso, a unidade de criação de representação 112 pode criar várias representações, incluindo as mesmas visualizações, embora com características potencialmente diferentes de codificação. Em alguns exemplos, unidade de criação de representação 112 pode encapsular cada visualização de conteúdo multimídia nas representações individuais. Nesses exemplos, para emitir mais de uma visualização, dispositivo de destino 14 pode solicitar duas ou mais representações do conteúdo multimídia.
[0238] Unidade de criação do ponto de operação 114 pode criar pontos de operação para uma ou mais representações do conteúdo multimídia. Em geral, um ponto de operação corresponde a um subconjunto de visualizações em uma representação que e direcionada para a saída, onde cada uma das visualizações compartilha um nível temporal comum. Conforme definido pela especificação H.264/AVC: Um ponto de operação é identificado por um valor temporal_id que representa o nível temporal alvo e um conjunto de valores view_id que representa as visualizações de saída alvo. Um ponto de operação está associado a um subconjunto de fluxo de bits, que consiste das visualizações de saída alvo e todas as outras visualizações que as visualizações de saída alvo dependem, que é derivado através do processo de extração de subfluxo de bits, conforme especificado em H.8.5.3 subcláusula com tldTarget igual ao valor temporal_id e viewIdTargetList que consiste no conjunto de valores de view_id como entradas. Mais do que um ponto de operação pode ser associado ao mesmo subconjunto de fluxo de bits. Quando a especificação declara "um ponto de operação é decodificado" refere-se à decodificação de um subconjunto de fluxo de bits correspondente ao ponto de operação e emissão subsequente das visualizações de saída alvo.
[0239] A unidade de geração de mensagem SEI 108 pode, de acordo com as técnicas descritas nesta especificação, determinar uma mensagem de informação suplementar aninhada (SEI) que se aplica a ambos os componentes de textura e profundidade de um componente de visualização ou apenas a um componente de profundidade do componente de visualização. Ao permitir que uma mensagem SEI aninhada se aplique somente a um componente de profundidade, esses aspectos das técnicas podem voltar a promover a manipulação separada de componentes de textura e profundidade.
[0240] A unidade de geração de mensagem SEI 108 pode realizar estes aspectos das técnicas para determinar uma mensagem de informação de reforço suplementar que se aplica a codificação do componente de visualização dos dados de vídeo de multivisualizações. A unidade de geração de mensagem SEI 108 pode, então, determinar uma mensagem de informação de reforço suplementar aninhada que se aplica em adição à mensagem de informação de reforço suplementar quando processa o componente de profundidade do componente de visualização. Unidade de geração de mensagem SEI 108 pode, em seguida, codifica o componente de profundidade do componente de visualização com base na mensagem de informação de reforço suplementar e na mensagem de informação de reforço suplementar aninhada.
[0241] Normalmente, a mensagem SEI aninhada inclui um flag ou outro identificador que indica se a mensagem SEI aninhada se aplica a ambos os componentes de textura e profundidade do componente de visualização ou apenas ao componente de profundidade. Assim, em alguns casos, a unidade de geração de mensagem SEI 108 pode determinar que a mensagem de informação de reforço suplementar aninhada se aplica em adição à mensagem de informação de reforço suplementar apenas quando o processamento do componente de profundidade do componente de visualização e processa apenas o componente de profundidade do componente e visualização não o componente de textura do componente de visualização com base na mensagem de informação de reforço suplementar e na mensagem de informação de reforço suplementar aninhada. Em alternativa, a unidade de geração de mensagem SEI 108 pode determinar que a mensagem de informação de reforço suplementar aninhada se aplica em adição à mensagem de informação de reforço suplementar ao processar o componente de textura do componente de visualização e codifica o componente de textura do componente de visualização com base na mensagem de informação de reforço suplementar e na mensagem de informação de reforço suplementar aninhada. Novamente, esses aspectos das técnicas novamente facilitam o tratamento separado ou processamento de componentes de profundidade e textura do componente de visualização.
[0242] Este flag pode ser definido para uma mensagem SEI referida como uma "mensagem SEI de aninhada escalável 3DV", que pode representar uma mensagem SEI para aninhar mensagens SEI para pontos de operação que contenham componentes de profundidade. A tabela a seguir ilustra um exemplo de sintaxe de mensagem SEI aninhada escalável 3DV.
[0243] Na tabela acima, sei_view_applicability_flag [i] igual a 1 indica que a mensagem SEI aninhada se aplica tanto ao componente de textura quanto ao componente de profundidade da visualização com view_id igual sei_view_id [i]. sei_view_applicability_flag [i] igual a 0 indica que a mensagem SEI aninhada se aplica apenas ao componente de profundidade da visualização com view_id igual a sei_view_id [i].
[0244] Na tabela acima, sei_op_view_applicability_flag [i] igual a 1 indica que a mensagem SEI aninhada se aplica tanto ao componente de textura quanto ao componente de profundidade da visualização com view_id igual a sei_op_view_id [i]. sei_op_view_applicability_flag [i] igual a 0 indica que a mensagem SEI aninhada se aplica apenas ao componente de profundidade da visualização com view_id igual a sei_op_view_id [i].
[0245] A semântica de outros elementos de sintaxe de mensagem SEI aninhada escalável 3DV é a mesma que a semântica da mensagem SEI aninhada escalável MVC.
[0246] Em alternativa, quando uma mensagem SEI está aninhada por um componente de visualização, a mensagem SEI pode ser aninhada, tanto para o componente de textura e o componente de profundidade deste componente de visualização. Neste caso, a unidade de geração de mensagens SEI 108 define a sintaxe da mensagem SEI aninhada escalável 3DV semelhante à sintaxe da mensagem SEI aninhada escalável MVC, e a semântica da mensagem SEI aninhada escalável 3DV semelhante a semântica de mensagem SEI aninhada escalável MVC. Na semântica da mensagem SEI aninhada escalável 3DV, conforme definido anteriormente, um componente de visualização pode incluir (e pode consistir em) um componente de textura e um componente de profundidade. No contexto da proposta de Anexo I, que pode referir-se a extensão 3DVC para H.264/AVC, a semântica da mensagem SEI aninhada escalável MVC é alterada da seguinte forma. A semântica da mensagem SEI aninhada escalável MVC se aplica com todas as ocorrências de "componentes de visualização" sendo substituídas por "componentes de textura". A tabela a seguir apresenta a sintaxe da mensagem SEI aninhada escalável MVC.
[0247] Para adicionalmente facilitar a manipulação de componentes separados de profundidade e textura, a unidade de geração de mensagem SEI 108 pode gerar uma mensagem SEI referida como uma mensagem SEI de escalabilidade de visualização 3D que inclui um primeiro elemento de sintaxe, um segundo elemento de sintaxe, e um terceiro elemento de sintaxe, em que o primeiro elemento de sintaxe indica se um ponto de operação contém um componente de profundidade. Quando o ponto de operação contém um componente de profundidade, a unidade de geração de mensagens SEI 108 pode definir o segundo elemento de sintaxe para indicar uma série de componentes de profundidade em que uma visualização de saída alvo do ponto de operação depende diretamente e definir os terceiros elementos de sintaxe para identificar os componentes de profundidade em que a visualização de saída alvo do ponto de operação depende diretamente.
[0248] Em alguns casos, os pontos de operação podem incluir um primeiro subconjunto de pontos de operação e um segundo subconjunto de pontos de operação, em que cada ponto de operação, no primeiro subconjunto contém apenas um componente de textura e cada ponto de operação do segundo subconjunto contém um componente de profundidade. Unidade de geração de mensagem SEI 108 pode então determinar que um identificador de perfil é igual a um valor particular, que é associado com a codificação de vídeo 3D e gerar, em resposta à determinação de que o identificador de perfil é igual ao valor dado, um SPS de subconjunto de tal modo que o SPS de subconjunto inclui uma primeira extensão de SPS e uma segunda extensão de SPS. A primeira extensão de SPS pode indicar o primeiro subconjunto e os níveis aos quais os pontos de operação do primeiro subconjunto pertencem. A segunda extensão de SPS pode indicar o segundo subconjunto e os níveis aos quais pontos de operação no segundo subconjunto pertencem. Desta forma, as técnicas podem permitir que pontos de operações sejam definidos separadamente para componentes de textura e profundidade e por nível.
[0249] Desta forma, um dispositivo de codificação de vídeo pode determinar a primeira informação de nível de sequência descrevendo características dos componentes de profundidade e determinar a segunda informação de nível de sequência descrevendo características de um ponto de operação dos dados de vídeo. Em alguns exemplos, a primeira informação de nível de sequência compreende um conjunto de parâmetros de sequência de codificação de vídeo tridimensional que especifica uma dependência de visualização dos componentes de profundidade. Além disso, o dispositivo de codificação de vídeo pode determinar uma lista de imagens de referência que identifica uma ou mais imagens de referência para os componentes de profundidade indicados no conjunto de parâmetros de sequência de codificação de vídeo tridimensional.
[0250] Em alguns exemplos, o segundo nível de informação inclui uma segunda informação de nível de sequência inclui um conjunto de parâmetros de sequência de codificação de vídeo tridimensional descrito, para o ponto de operação, uma lista de visualizações de saída alvo, várias visualizações de textura a serem decodificadas ao decodificar o ponto de operação, e várias visualizações de profundidade a serem decodificadas para quando decodificar o ponto de operação, onde o número de visualizações de textura a serem decodificadas é forma diferente do número de visualizações de profundidade. Em alguns exemplos, o dispositivo de codificação de vídeo pode ainda atingir, para cada uma das visualizações de saída alvo especificadas na lista de visualizações de saída alvo, os um ou mais componentes de profundidade, quando disponível.
[0251] Em alguns exemplos, o dispositivo de codificação de vídeo pode especificar uma mensagem SEI de informação de escalabilidade de codificação de vídeo tridimensional como parte dos dados de vídeo, em que mensagem SEI de informação de escalabilidade de codificação de vídeo tridimensional inclui uma descrição do ponto de operação sem os componentes de profundidade ou uma descrição do ponto de operação com os componentes de profundidade. Em alguns casos, a mensagem SEI inclui uma indicação de que o ponto de operação inclui os componentes de profundidade. Além disso, em alguns exemplos, a mensagem SEI inclui uma indicação de que o ponto de operação inclui os componentes de profundidade e visualizações de profundidade diretamente dependentes com visualizações de textura diretamente dependentes para a decodificação do ponto de operação.
[0252] Este aspecto das técnicas pode aproveitar a manipulação independente dos componentes de profundidade e de textura para permitir que pontos de operação sejam mais facilmente extraídos de um fluxo de bits para codificação de vídeo de multivisualização. Ao sinalizar se um ponto de operação inclui profundidade, um decodificador de vídeo, como decodificador de vídeo 30, pode determinar qual ponto de operação acomoda melhor as habilidades do decodificador de vídeo 30. Por exemplo, decodificador de vídeo 30 pode ser otimizado para executar codificação de vídeo de multivisualização usando visualizações que não incluem profundidade, preferindo dados de vídeo de multivisualizações onde ambas as perspectivas do olho esquerdo e direito são fornecidas como imagens separadas. Decodificador de vídeo 30 poder também ser otimizado para dados de vídeo de multivisualizações baseado em profundidade, mas só pode acomodar uma única visualização, em vez de duas ou mais visualizações. Por sinalização quando os dados de vídeo de multivisualização codificada incluem profundidade, e quando, incluindo a profundidade, o número de componentes de profundidade em que as visualizações do ponto de operação de saída alvo dependem diretamente, decodificador de vídeo 30 pode selecionar um ponto de operação que acomoda as capacidades ou otimizações de decodificador de vídeo 30.
[0253] Em operação, uma mensagem SEI de informação de escalabilidade de visualização 3D, em um exemplo, pode ter os elementos de sintaxe especificados como mostrado na tabela a seguir.
[0254] Em alternativa, mensagem SEI de informação de escalabilidade de visualização 3D pode ter elementos de sintaxe, tal como definido na tabela a seguir.
[0255] A semântica de outros elementos de sintaxe de mensagem SEI de escalabilidade de visualização 3DV é a mesma que a semântica da mensagem SEI de informação de escalabilidade de visualização MVC. Os elementos de sintaxe nas SEI de informação de escalabilidade de visualização têm a mesma semântica que no anexo H, mas se aplicam a pontos de operação que podem potencialmente conter componentes de profundidade.
[0256] Nas tabelas acima, op_with_depth_flag [i] igual a 1 indica que o ponto de operação atual contém visualizações de profundidade. op_with_depth_flag [i] igual a 0 indica que o ponto de operação atual não contém quaisquer visualizações de profundidade. num_diretly_dependent_views [i] e diretly_dependent_view_id [i] [j] aplicam-se apenas aos componentes de textura de um ponto de operação, se o ponto de operação contém textura e profundidade (op_with_depth_flag [i] igual a 0). Alternativamente, os nomes dos dois elementos de sintaxe são alterados para num_diretly_dependent_texture_views [i] e diretly_dependent_texture_view_id [i] [j], respectivamente, com a mesma semântica como acima. A semântica de outros elementos de sintaxe de mensagem SEI de escalabilidade de visualização 3DV é a mesma que a semântica da mensagem SEI de informação de escalabilidade de visualização MVC.
[0257] Nas tabelas acima, num_diretly_dependent_depth_views [i] especifica o número de visualizações de profundidade que a visualização de saída alvo do ponto de operação atual é diretamente dependente dentro da representação do ponto de operação atual. O valor de num_diretly_dependent_depth_views [i] deve estar na faixa de 0 a 16, inclusive.
[0258] Nas tabelas acima, directly_dependent_depth_view_id [i] [j] especifica a id de visualização da j-ésima visualização de profundidade que a visualização de profundidade da visualização de saída alvo do ponto de operação atual é diretamente dependente dentro da representação do ponto de operação atual. O valor de diretly_dependent_depth_view_id [i] [j] deve estar no intervalo de 0 a 1023, inclusive.
[0259] Em outros exemplos, apenas os pontos de operação de profundidade podem ser sinalizados nesta mensagem SEI e, assim, uma indicação op_texture_depth_idc [i] é adicionada, como mostrado na tabela a seguir.
[0260] Na tabela abaixo, op_texture_depth_idc [i] igual a 0 indica que os pontos de operação atuais contêm apenas componentes de textura. O elemento de sintaxe op_texture_depth_idc [i] igual a 1 indica que o ponto de operação atual contém ambos os componentes de textura e componentes de profundidade. O elemento de sintaxe op_texture_depth_idc [i] igual a 2 indica que o ponto de operação atual contém apenas componentes de profundidade. Num_diretly_dependent_views [i] e diretly_dependent_view_id [i] [j] aplicam-se apenas aos componentes de textura de um ponto de operação, se o ponto de operação contém textura (op_texture_depth_idc [i] igual a 0 ou 1). Num_diretly_dependent_views [i] e diretly_dependent_view_id [i] [j] aplicam-se apenas aos componentes de profundidade de um ponto de operação, se o ponto de operação contém apenas textura (op_texture_depth_idc [i] igual a 2).
[0261] Em alguns exemplos, de acordo com as técnicas da divulgação, um codificador de vídeo pode gerar uma mensagem SEI que inclui um primeiro elemento de sintaxe, um segundo elemento de sintaxe, e terceiros elementos de sintaxe. O primeiro elemento de sintaxe indica se um ponto de operação contém um componente de profundidade. Se o ponto de operação contém uma visualização de profundidade, o segundo elemento de sintaxe indica um número de componentes de profundidade em que uma visualização de saída alvo do ponto de operação depende diretamente, e os terceiros elementos de sintaxe identificam os componentes de profundidade em que a visualização do ponto de operação de saída alvo depende diretamente. Um codificador de vídeo pode codificar os componentes de profundidade.
[0262] Em alguns exemplos, o codificador de vídeo pode gerar a mensagem SEI de tal modo que a mensagem SEI inclui um quarto elemento de sintaxe e quinto elementos de sintaxe. Se o ponto de operação tem componentes de textura e profundidade, o quarto elemento de sintaxe indica quantos componentes de textura estão associados com o ponto de operação e o quinto elemento de sintaxe identifica os componentes de textura em que a visualização de saída alvo do ponto de operação depende diretamente.
[0263] Como alternativa, o codificador de vídeo pode sinalizar pontos de operação apenas de profundidade na mensagem SEI. Por exemplo, o codificador de vídeo pode gerar a mensagem SEI de tal modo que o primeiro elemento de sintaxe indica se o ponto de operação contém apenas componentes de textura, contém ambos os componentes de textura e componentes de profundidade, ou contém apenas componentes de profundidade.
[0264] Além disso, em alguns exemplos, as técnicas da presente divulgação podem proporcionar um decodificador de vídeo que recebe uma mensagem SEI que inclui um primeiro elemento de sintaxe, um segundo elemento de sintaxe, e terceiros elementos de sintaxe. O primeiro elemento de sintaxe indica se um ponto de operação contém um componente de profundidade. Se o ponto de operação contém uma visualização de profundidade, o segundo elemento de sintaxe indica um número de componentes de profundidade em que uma visualização de saída alvo do ponto de operação depende diretamente, e os terceiros elementos de sintaxe identificam os componentes de profundidade em que a visualização do ponto de operação de saída alvo depende diretamente. O decodificador de vídeo pode decodificar os componentes de profundidade.
[0265] Além disso, a mensagem SEI pode incluir um quarto elemento de sintaxe e quinto elemento de sintaxe. Se o ponto de operação tem componentes de textura e profundidade, o quarto elemento de sintaxe indica quantos componentes de textura estão associados com o ponto de operação e o quinto elemento de sintaxe identifica os componentes de textura em que a visualização de saída alvo do ponto de operação depende diretamente.
[0266] Em alternativa, a mensagem SEI pode sinalizar pontos de operação apenas de profundidade na mensagem SEI. Por exemplo, o primeiro elemento de sintaxe pode indicar se o ponto de operação contém apenas componentes de textura, contém ambos os componentes de textura e componentes de profundidade, ou contém apenas componentes de profundidade.
[0267] No que diz respeito aos pontos de operação e adaptar ou modificar pontos de operação para potencialmente prover manipulação separada de componentes de textura e profundidade, vários aspectos das técnicas descritas nesta divulgação podem prover sinalização de níveis de pontos de operação que contenham componentes de profundidade, em quatro diferentes maneiras: 1) reutilizando os elementos de sintaxe de SPS, 2) utilizando elementos de sintaxe semelhantes em extensão de SPS 3DVC, 3) adicionando mais elementos de sintaxe na extensão de SPS 3DVC, e 4) utilizando um conjunto alternativo de mais elementos de sintaxe na extensão de SPS 3DVC.
[0268] Com relação à primeira forma, ou seja, reutilizando os elementos de sintaxe SPS, os elementos de sintaxe nas definições de nível na extensão de SPS MVC são usados para indicar os pontos de operação que contêm componentes de profundidade. Cada ponto de operação sinalizado na extensão de SPS MVC como parte do subgrupo SPS contém um profile_idc pertencente a um dos perfis de vídeo 3D. Cada ponto de operação especifica várias visualizações de produção, cada uma das quais contém um componente de textura e um componente de profundidade. Unidade de criação de ponto de operação 114 pode implementar esta primeira forma para facilitar o tratamento separado dos componentes de profundidade e textura.
[0269] Com relação à segunda forma, ou seja, usando elementos de sintaxe semelhantes em extensão SPS 3DV, as elementos de sintaxe nas definições de nível de extensão de SPS MVC ainda pode ser usado para indicar os pontos de operação que contenham apenas componentes de textura. Em uma extensão de SPS 3DVC da SPS de subconjunto, as definições de nível semelhantes são adicionados, indicando os pontos de operação que contenham componentes de profundidade. Unidade de criação de ponto de operação 114 pode implementar esta segunda maneira de facilitar o tratamento separado dos componentes profundidade e textura. As tabelas de sintaxe a seguir ilustram os elementos de sintaxe semelhantes.
[0270] Na tabela sintaxe acima, cada ponto de operação tem num_target_views_minus1 [i] [j] + 1 visualizações, cada um dos quais contém um componente de textura e um componente de profundidade. Assim, a semântica dos elementos de sintaxe é a mesma que aquelas na extensão de SPS MVC, exceto que cada uma contém um componente de textura e um componente de profundidade, ou equivalentemente, cada componente de visualização contém tanto um componente de textura quanto um componente de profundidade.
[0271] Com relação à terceira via, ou seja, a adição de mais elementos de sintaxe na extensão SPS 3DV, a extensão SPS 3DV pode adicionar mais pontos de operação contendo componentes de textura que precisam ser sinalizados em cima dos pontos de operação sinalizados na extensão de SPS MVC. Neste caso, a unidade de criação de ponto de operação 114 pode incluir um parâmetro adicional para indicar se o ponto de operação atual contém um componente de profundidade ou não, como se mostra na tabela seguinte sintaxe.
[0272] Na tabela acima, applicable_op_with_depth_flag [i] [j] igual a 1 indica que, no ponto de operação atual (identificado por i e j), cada visualização de saída alvo contém um componente de textura e um componente de profundidade, este flag igual a 0 indica que no ponto de operação atual contém apenas textura para cada visualização de saída alvo. A semântica de outros elementos de sintaxe da mensagem SEI aninhada escalável 3DVC é a mesma que a semântica da mensagem SEI aninhada escalável MVC.
[0273] No que diz respeito a quarta via, ou seja, usando um conjunto alternativo de mais elementos de sintaxe na extensão SPS 3DV, pode haver profundidade apenas em pontos de operação. Neste caso, a unidade de criação de ponto de operação 114 pode adicionar uma indicação de 2 bits para sinalizar três casos diferentes para cada ponto de operação: apenas textura, apenas profundidade e ambas textura e profundidade. A tabela a seguir ilustra esses novos elementos de sintaxe sendo adicionados à extensão de SPS 3DVC: seq_parameter_set_3dvc_extension( ) { C Descritor
[0274] Na tabela acima, applicable_op_with_texture_depth_idc [i] [j] igual a 0 indica que no ponto de operação atual (identificado por i e j), cada visualização de saída alvo contém um componente de textura e um componente de profundidade, applicable_op_with_texture_depth_idc [i] [j] igual a 1 indica que o ponto de operação atual contém apenas textura para cada visualização de saída alvo, pplicable_op_with_texture_depth_idc [i] [j] igual a 2 indica que o ponto de operação atual contém apenas profundidade para cada visualização de saída alvo. Alternativamente, applicable_op_with_texture_depth_idc [i] [j] pode ser codificado como ue(v).
[0275] Em alguns casos, para um ponto de operação 3DV, duas dependências de visualização diferentes podem ser sinalizadas em, por exemplo, um SPS MVC de textura ativa e um SPS MVC de visualização ativa, porque as visualizações de profundidade podem ter diferentes dependências de intervisualização. Um exemplo é que pode não haver dependência de intervisualização em tudo para a profundidade. Neste caso, a semântica de applicable_op_num _views_minus1 [i] [j] não é clara. No contexto de MVC, applicable_op_num_views_minus1 [i] [j] especifica o número de visualizações a serem decodificadas por um ponto de operação específico.
[0276] Em alguns exemplos, a mesma dependência de exibição pode ser assumida para a textura e profundidade. Se dependências de visualização de textura e profundidade são as mesmas, a semântica deste elemento de sintaxe (ou seja, applicable_op_num_views_minus1 [i] [j]) pode ser mantida alinhada com o número de visualizações a serem decodificadas, no entanto, está implícito que cada visualização contém textura e profundidade.
[0277] Em alguns exemplos, os números precisos de visualizações a serem decodificadas para ambas textura e profundidade são sinalizadas. A tabela a seguir ilustra os elementos de sintaxe de uma extensão 3DVC de conjunto de parâmetros de sequência que incorpora este aspecto das técnicas:
[0278] Na tabela acima, applicable_op_num_views_minus1 [i] [j] mais 1 especifica o número de visualizações de textura necessárias para decodificar as visualizações de saída alvo correspondentes ao j-ésimo ponto de operação a que se aplica ao nível indicado pela level_idc [i]. Applicable_op_num_views_depth_minus1 [i] [j] mais 1 especifica o número de visualizações de profundidade necessárias para decodificar as visualizações de saída alvo correspondentes ao j-ésimo ponto de operação ao qual o nível indicado pela level_idc [i] se aplica. Alternativamente, applicable_op_num_views_depth_minus1 [i] [j] não é adicionado, mas a semântica do applicable_op_num_views_minus1 [i] [j] é alterada. Applicable_op_num_views_minus1 [i] [j] mais 1 especifica o número de visualizações de textura mais o número de visualizações de profundidade necessárias para decodificar as visualizações de saída alvo correspondentes ao j-ésimo ponto de operação ao qual o nível indicado por level_idc [i] se aplica.
[0279] Em alguns casos, as técnicas desta divulgação proveem sinalização, em um conjunto de parâmetros de sequência, de várias visualizações de textura a serem decodificadas por um ponto de operação e várias visualizações de profundidade a serem decodificadas para o ponto de operação. Sinalizar o número de visualizações de textura e o número de visualizações de profundidade pode compreender gerar, no conjunto de parâmetros de sequência, um elemento de sintaxe que indica várias visualizações a serem decodificadas para o ponto de operação, cada uma das visualizações com uma das visualizações de textura e uma das visualizações de profundidade. Sinalizar o número de visualizações de textura e o número de visualizações de profundidade pode compreender gerar, no conjunto de parâmetros de sequência, um primeiro elemento de sintaxe e um segundo elemento de sintaxe, o primeiro elemento de sintaxe que especifica o número de visualizações de textura a serem decodificadas para o ponto de operação, e o segundo elemento de sintaxe que especifica o número de visualizações de profundidade a serem decodificadas para o ponto de operação. Sinalizar o número de visualizações de textura e o número de visualizações de profundidade pode compreender gerar, no conjunto de parâmetros de sequência, um elemento de sintaxe que indica o número de visualizações de textura a serem decodificadas para o ponto de operação mais o número de visualizações de profundidade a serem decodificadas para o ponto de operação.
[0280] Em alguns exemplos, as técnicas desta divulgação podem prover receber um conjunto de parâmetros de sequência que sinaliza várias visualizações de textura a serem decodificadas por um ponto de operação e várias visualizações de profundidade a serem decodificadas pelo ponto de operação. Nesses exemplos, o conjunto de parâmetros de sequência pode incluir um elemento de sintaxe que indica várias visualizações a serem decodificadas para o ponto de operação, cada uma das visualizações com uma das visualizações de textura e uma das visualizações de profundidade. O conjunto de parâmetros de sequência pode incluir um primeiro elemento de sintaxe e um segundo elemento de sintaxe, o primeiro elemento de sintaxe que especifica o número de visualizações de textura a serem decodificadas para o ponto de operação, e o segundo elemento de sintaxe que especifica o número de visualizações de profundidade a serem decodificadas para o ponto de operação. O conjunto de parâmetros de sequência pode incluir um elemento de sintaxe que indica o número de visualizações de textura a serem decodificadas para o ponto de operação mais o número de visualizações de profundidade a serem decodificadas para o ponto de operação.
[0281] Embora vários aspectos das técnicas sejam descritos acima como sendo realizados pela unidade de encapsulamento 21, as técnicas podem ser executadas de uma maneira igual ou recíproca pela unidade de desencapsulamento 29. Além disso, diversos aspectos das técnicas descritas acima como sendo realizadas pela unidade de encapsulamento 21 podem, também, em outras implementações, ser realizados pelo codificador de vídeo 20 (com decodificador de vídeo 30 executando operações iguais ou recíprocas, como aquelas que estão sendo realizadas pelo codificador de vídeo 20). Assim, enquanto uma aplicação particular, é mostrada nos exemplos das figura 1-3, as técnicas não devem ser limitadas a este exemplo, mas podem aplicar-se a outras implementações que proveem o tratamento separado de componentes de textura e profundidade de um componente de visualização especificado pelos dados de vídeo de multivisualizações.
[0282] A figura 5 é um diagrama conceitual que ilustra um exemplo de padrão de predição MVC. A seguinte descrição de MVC novamente refere-se a 3DVC no sentido de que 3DVC incorpora MVC mais profundidade. Por conseguinte, a descrição de MVC e as várias predições providas pelo MVC são descritas para prover um contexto para a compreensão de 3DVC e as técnicas descritas nesta especificação que se relacionam com 3DVC.
[0283] No exemplo da figura 5, oito visualizações são ilustradas, e doze localizações temporais são ilustradas para cada visualização. Em geral, cada fila na figura 5 corresponde a uma visualização, enquanto cada coluna indica uma localização temporal. Cada um das visualizações pode ser identificada utilizando um identificador de ponto de visualização ("view_id"), que pode ser usado para indicar uma localização da câmara em relação às outras visualizações. No exemplo mostrado na figura 5, os IDs de visualização são indicados como "S0" a "S7", embora também possam ser usados IDs de visualização numéricos. Além disso, cada uma das localizações temporais pode ser identificada usando um valor de contagem de ordem de imagem (POC), o que indica uma ordem das imagens de visualização. No exemplo mostrado na figura 4, os valores de POC são indicados como "T0" até "T11."
[0284] Embora MVC tenha uma assim chamada visualização base que é decodificada por decodificadores H.264/AVC e um par de visualização estéreo pode ser suportado por MVC, MVC pode suportar mais de duas visualizações como uma entrada de vídeo 3D. Assim, um renderizador de um cliente tendo um decodificador MVC pode esperar conteúdo de vídeo 3D com várias visualizações.
[0285] Imagens na figura 5 são indicadas utilizando um bloco sombreado incluindo uma letra, designando se a imagem correspondente é intracodificada (isto é, um quadro I), ou intercodificada em uma direção (isto é, como um quadro P) ou em múltiplas direções (isto é, como um quadro B). Em geral, as predições são indicadas por setas, onde as apontadas para a imagem utilizam o ponto de referência do objeto para predição. Por exemplo, o quadro P de visualização S2 na localização temporal está predito a partir do quadro I de visualização S0 na localização temporal. Cada uma das imagens mostradas na figura 5 pode ser referida como um componente de visualização.
[0286] Como com codificação de vídeo de única visualização, imagens de uma sequência de vídeo de multivisualização podem ser preditivamente codificadas com relação a imagens em diferentes localizações temporais. Por exemplo, o quadro b de visualização S0 na localização temporal, T1 tem uma seta apontada para ele a partir do quadro I de visualização S0 na localização temporal, indicando que a quadro b está predito a partir do quadro I. Além disso, no entanto, no contexto da codificação de vídeo de multivisualização, as imagens podem ser preditas por intervisualização. Ou seja, um componente de visualização pode usar os componentes de visualização em outras visualizações para referência. No MVC, por exemplo, a predição de intervisualização é realizada como se o componente de visualização em outra visualização fosse uma referência de interpredição. As potenciais referências de intervisualização podem ser sinalizadas na extensão de SPS MVC e podem ser modificadas pelo processo de construção de lista de imagem de referência, que permite a ordenação flexível das referências de predição de interpredição ou intervisualização.
[0287] A figura 5 provê vários exemplos de predição de intervisualização. Imagens de visualização S1, no exemplo da figura 5, são ilustradas como sendo preditas a partir de imagens em diferentes localizações temporais de visualização S1, bem como a intervisualização predita a partir de imagens de imagens de visualizações de visualizações S0 e S2 nas mesmas localizações temporais. Por exemplo, o quadro b de visualização S1 na localização temporal T1 é predito a partir de cada um dos quadros b de visualização S1 em localizações temporais e T2, bem como os quadros b de visualizações S0 e S2 na localização temporal T1.
[0288] No exemplo da figura 5, as letras maiúscula "B" e minúscula "b" pretendem indicar diferentes relações hierárquicas entre as imagens, ao invés de diferentes metodologias de codificação. Em geral, quadros com letra maiúscula "B" são relativamente mais elevados na hierarquia da predição dos quadros com "b" minúsculos. A figura 5 também ilustra as variações na hierarquia de predição utilizando diferentes níveis de sombreamento, onde uma maior quantidade de sombreamento (isto é, relativamente mais escuro) imagens são mais elevadas na hierarquia de predição que essas imagens com menos sombreado (isto é, relativamente mais leves). Por exemplo, todos os quadros I na figura 5 estão ilustrados com sombreamento completo, enquanto quadros P tem um sombreado um pouco mais leve, e quadros b (e quadro b minúsculas) tem vários níveis de sombreamento em relação ao outro, mas sempre mais leves do que o sombreado dos quadros P e os quadros I.
[0289] Em geral, a hierarquia de predição está relacionada a índices de ordem de visualização, em que imagens relativamente mais elevadas na hierarquia de predição devem ser decodificadas antes de decodificação de imagens que são relativamente mais baixas na hierarquia, de modo que essas imagens relativamente mais elevadas na hierarquia podem ser usadas como imagens de referência durante a decodificação das imagens relativamente mais baixas na hierarquia. Um índice de ordem de visualização é um índice que indica a ordem de decodificação de componentes de visualização em uma unidade de acesso. Os índices de ordem de visualização podem ser implícitos em um conjunto de parâmetros, como um SPS.
[0290] Desta forma, as imagens utilizadas como imagens de referência podem ser decodificadas antes de decodificar as imagens que são codificadas com referência às imagens de referência. Um índice de ordem de visualização é um índice que indica a ordem de decodificação de componentes de visualização em uma unidade de acesso. De acordo com MVC / AVC, para cada índice de ordem de visualização i, o correspondente view_id é sinalizado. A decodificação dos componentes de visualização segue a ordem crescente dos índices de ordem de visualização. Se todas as visualizações são apresentadas, então, o conjunto de índices de ordem de visualização compreende um conjunto consecutivamente ordenado de zero para uma menor do que o número total de visualizações.
[0291] Em alguns casos, um subconjunto de um fluxo contínuo de dados inteiro pode ser extraído de modo a formar um subfluxo de bits, que ainda está em conformidade com MVC. Existem muitos possíveis subfluxos de bits que aplicações específicas podem exigir, com base em, por exemplo, um serviço provido por um servidor, a capacidade, suporte e capacidades de decodificadores de um ou mais clientes, e/ou a preferência de um ou mais clientes. Por exemplo, um cliente pode exigir apenas três visualizações, e pode haver dois cenários. Em um exemplo, um cliente pode exigir uma experiência de visualização suave e pode preferir visualizações com valores view_id S0, S1, e S2, enquanto que outro cliente pode requerer escalabilidade de visualização e prefere visualizações com valores view_id S0, S2 e S4. Ambos os subfluxos de bits podem ser decodificados como fluxos de bits de MVC independentes e podem ser suportados simultaneamente.
[0292] Enquanto que a figura 5 mostra oito visualizações (S0-S7), como notado acima, a extensão MVC / AVC suporta até 1024 visualizações e usa view_id de um cabeçalho de unidade NAL para identificar a visualização a que uma unidade NAL pertence. Um índice de ordem de visualização pode ser sinalizado como parte de um cabeçalho de unidade NAL. Ou seja, para efeitos de comparação, um índice de ordem de visualização pode substituir o view_id que é sinalizado no cabeçalho da unidade NAL da extensão MVC / AVC. Ordem de visualização geralmente descreve a ordenação das visualizações em uma unidade de acesso, e um índice de ordem de visualização identifica uma visualização particular, tendo em ordem de visualização da unidade de acesso. Ou seja, um índice de ordem de visualização descreve a ordem de decodificação de um componente de visualização correspondente de uma unidade de acesso.
[0293] Assim, um SPS pode prover uma relação entre viw_ids para as visualizações e índices de ordem de visualização para as visualizações. Usando o índice de ordem de visualização e os dados no SPS, codificador de vídeo 20 e decodificador de vídeo 30 podem substituir o_id de 10 bits de MVC / AVC no cabeçalho de unidade NAL pelo índice de ordem de visualização, que pode levar a uma economia de bits sobre o esquema MVC / AVC.
[0294] Um exemplo de SPS que provê uma relação entre view_ids para as visualizações e índices de ordem de visualização é fornecido na tabela abaixo: EXTENSÃO DE MVC DE CONJUNTO DE PARÂMETROS DE SEQUÊNCIA
[0295] O SPS mostrados na tabela acima especifica relações de dependência de intervisualização para uma sequência de vídeo codificado. O SPS também especifica valores de nível para um subconjunto de pontos de operação para a sequência de vídeo codificado. Todos os SPSs que são referidos por uma sequência de vídeo codificado devem ser idênticos. No entanto, algumas visualizações identificadas por view_id [i] podem não estar presentes na sequência de vídeo codificado. Além disso, algumas visualizações ou subconjuntos temporais descritos pela RPU podem ter sido removidos da sequência de vídeo codificada original e, assim, podem não estar presentes na sequência de vídeo codificado. As informações contidas no SPS, no entanto, podem sempre aplicar-se às visualizações restantes e subconjuntos temporais.
[0296] Na tabela acima, o elemento de sintaxe num_viw_minus1 mais 1 especifica o número máximo de visualizações codificadas na sequência de vídeo codificado. O valor de num_view_minus1 pode estar no intervalo de 0 a 31, inclusive. Em alguns casos, o número real de visualizações na sequência de vídeo codificado pode ser inferior a num_view_minus1 mais 1. O elemento view_id A [i] especifica o identificador de visualização da visualização com um índice de ordem de visualização igual a i. O elemento view_level [i] especifica o nível de visualização da visualização com um índice de ordem de visualização igual a i. Em alguns exemplos, todos os componentes de visualização com um nível de visualização até um valor predefinido (VL) podem ser decodificados sem decodificar qualquer componente de visualização com um nível de visualização maior do que VL.
[0297] O elemento num_ref_views [i] especifica o número de componentes de visualização para predição de intervisualização na lista de imagens de referência inicial RefPicList0 e RefPicList1 ao decodificar componentes de visualização com índice de ordem de visualização igual a i. O valor do elemento num_ref_views [i] não pode ser maior do que o Min(15, num_views_minus1). O valor de num_ref_views [0], pode ser igual a 0. Além disso, o elemento ref_view_idx [i] [j] pode especificar o índice de ordem de visualização do j-ésimo componente de visualização para a predição de intervisualização na lista de imagem de referência inicial RefPicList0 e RefPicList1 ao decodificar um componente de visualização com índice de ordem de visualização igual a i. O valor de ref_view_idx [i] [j] pode estar no intervalo de 0 a 31, inclusive.
[0298] A figura 6 é uma operação ilustrando diagrama de fluxo de um dispositivo de codificação de vídeo na implementação de ativação de conjunto de parâmetros de acordo com vários aspectos das técnicas descritas nesta divulgação. Inicialmente, um dispositivo de codificação de vídeo, como decodificador de vídeo 30, pode determinar um valor de índice de ordem atribuído a um componente de visualização de dados de vídeo de multivisualizações (130). Este valor de índice de ordem está descrito acima em mais detalhe com relação à figura 5. Conforme descrito acima, o decodificador de vídeo 30 pode então ativar um conjunto de parâmetros como um conjunto de parâmetros de textura para o componente de textura do componente de visualização com base, pelo menos, no valor de índice de ordem de visualização determinado atribuído ao componente de visualização dos dados de vídeo de multivisualizações (132). Depois de ativar este conjunto de parâmetros de textura, codificador de vídeo 30 pode, em seguida, codificar o componente de textura do componente de visualização com base no conjunto de parâmetros de textura ativo (134).
[0299] Em alguns casos, decodificador de vídeo 30 codifica apenas o componente de textura do componente de visualização e não o componente de profundidade do componente de visualização com base no conjunto de parâmetros de textura ativo. Em alguns casos, de decodificador de vídeo 30 ativa um outro conjunto de parâmetros para o componente de profundidade do componente de visualização com base, pelo menos, no valor de índice de ordem de visualização atribuído ao componente de visualização dos dados de vídeo de multivisualização e decodifica o componente de profundidade do componente de visualização baseado no conjunto de parâmetros ativado para o componente de profundidade do componente de visualização, e não conjunto de parâmetros de textura ativado da maneira descrita acima. Assim, embora não explicitamente indicados no exemplo da figura 6 conjuntos de parâmetros adicionais podem ser ativados individualmente para o componente de profundidade, que decodificador de vídeo 30 pode, em seguida, usar para decodificar o componente de profundidade, mas não o componente de textura.
[0300] Em alguns dos casos acima descritos, decodificador de vídeo 30 pode ativar um conjunto de parâmetros de sequência para codificar o componente de visualização dos dados de vídeo de multivisualizações com base, pelo menos, no valor de índice de ordem de visualização atribuído ao componente de visualização dos dados de vídeo de multivisualização. Além disso, como mencionado acima, o decodificador de vídeo 30 pode ativar um conjunto de parâmetros de sequência como o conjunto de parâmetros de textura de sequência para o componente de textura do componente de visualização com base, pelo menos, no valor de índice de ordem de visualização atribuído ao componente de visualização dos dados de vídeo de multivisualizações, tal que um ou mais elementos de sintaxe especificados pelo conjunto deparâmetro sequência de textura ou substitui ou aumenta um ou mais elementos de sintaxe especificados pelo conjunto de parâmetros de sequência ativado.
[0301] Em alguns dos exemplos acima descritos, decodificador de vídeo 30 pode ativar um conjunto de parâmetros como o conjunto de parâmetros de imagem de textura para o componente de textura do componente de visualização com base, pelo menos, no valor de índice de ordem de visualização atribuído ao componente de visualização dos dados de vídeo de multivisualizações de tal forma que um ou mais elementos de sintaxe especificados pelo conjunto de parâmetros de imagem de textura ou substitui ou aumenta um ou mais elementos de sintaxe especificados pelo conjunto de parâmetros de sequência ativado.
[0302] Em alguns dos exemplos acima descritos, decodificador de vídeo 30 pode ativar um conjunto de parâmetros de imagem como um conjunto de parâmetros de imagem de visualização para o componente de visualização dos dados de vídeo de multivisualização com base, pelo menos no valor de índice de ordem de visualização atribuído ao componente de visualização dos dados de vídeo de multivisualização. Além disso, o decodificador de vídeo 30 pode, em seguida, ativar o conjunto de parâmetros como o conjunto de parâmetros de textura pela ativação de um conjunto de parâmetros de imagem como o conjunto de parâmetros de imagem de textura para o componente de textura do componente de visualização baseado pelo menos no valor de índice de ordem de visualização atribuído ao componente de visualização dos dados de vídeo de multivisualizações de tal forma que um ou mais elementos de sintaxe especificados pelo conjunto de parâmetros de imagem de textura ou substitui ou aumenta um ou mais elementos de sintaxe especificados pelo conjunto de parâmetros de imagem de visualização ativado.
[0303] Em alguns exemplos, o decodificador de vídeo 30 pode, em seguida, ativar o conjunto de parâmetros como o conjunto de parâmetros de textura pela ativação de um ou mais de um conjunto de parâmetros de sequência e um parâmetro de imagem como um conjunto de parâmetros de sequência de textura e um conjunto de parâmetros de imagem de textura, respectivamente, para o componente de textura do componente de visualização baseado pelo menos no valor de índice de ordem de visualização atribuído ao componente de visualização dos dados de vídeo de multivisualização.
[0304] Deve também ser entendido que as etapas mostradas e descritas em relação à figura 6 são providas meramente como um exemplo. Isto é, as etapas mostradas no exemplo da figura 6 não têm necessariamente de ser realizadas na ordem mostrada na figura 6, e menos etapas adicionais ou alternativas podem ser realizadas. Além disso, embora as técnicas sejam descritas acima com relação a um codificador de vídeo particular, ou seja, o decodificador de vídeo 30, as técnicas podem ser aplicadas por qualquer codificador de vídeo, incluindo o codificador de vídeo 20.
[0305] A figura 7 é um diagrama de fluxo que ilustra a operação exemplar de processamento de dados de vídeo de multivisualizações para gerar mensagens SEI aninhadas de acordo com as técnicas descritas nesta especificação. Embora descritas em relação a uma determinada unidade abaixo, ou seja, a unidade de encapsulamento 21, as técnicas podem geralmente ser realizadas por qualquer dispositivo de codificação de vídeo, incluindo o dispositivo de destino 14 e mais particularmente a unidade de desencapsulamento 29 do dispositivo de destino 14.
[0306] Inicialmente, a unidade de encapsulamento 21 recebe dados de vídeo de multivisualizações codificados e invoca a unidade de geração de mensagem SEI 108, que determina uma mensagem de informação de reforço suplementar (SEI) que se aplica ao processar o componente de visualização dos dados de vídeo de multivisualizações da maneira descrita acima (140). A unidade de geração de mensagem SEI 108 pode, tal como descrito acima, também determinar se uma mensagem SEI aninhada se aplica a ambos os componentes de textura e profundidade do componente de visualização ou apenas ao componente de profundidade do componente de visualização (141). Ao determinar que a mensagem SEI aninhada se aplica apenas ao componente de profundidade ("NÃO" 141), a unidade de geração de mensagens SEI 108 pode determinar uma mensagem de informação de reforço suplementar aninhada que se aplica apenas ao componente de profundidade do componente de visualização, além da mensagem de informação de reforço suplementar (142). No entanto, ao determinar que a mensagem SEI aninhada se aplica a ambos os componentes de profundidade e textura ("SIM" 141), a unidade de geração de mensagens SEI 108 pode determinar uma mensagem de informação de reforço suplementar aninhada que se aplica tanto ao componente de textura quanto ao componente de profundidade do componente de visualização em conjunto com a mensagem de informação de reforço suplementar (143). Unidade de criação de arquivo de vídeo 104 pode, então, gerar um arquivo de vídeo, que inclui tanto a mensagem SEI quanto a mensagem SEI aninhada (144).
[0307] Em alguns casos, a unidade de encapsulamento 21 gera este arquivo de vídeo e provê este arquivo de vídeo para o roteador 36 ou outro dispositivo, tal como um servidor de vídeo da rede de distribuição de conteúdo 34 (ambos os quais são descritos acima, em relação ao exemplo da figura 1). Este dispositivo pode então processar o componente de profundidade do componente de visualização baseado na mensagem de informação de reforço suplementar e na mensagem de informação de reforço suplementar aninhada.
[0308] Em alguns exemplos, a unidade de encapsulamento 21 determina a mensagem de informação de reforço suplementar aninhada que se aplica em adição à mensagem de informação de reforço suplementar pai, quando apenas codifica o componente de profundidade do componente de visualização. O roteador 36 neste caso pode então processar apenas o componente de profundidade do componente de visualização e não o componente de textura do componente de visualização baseado na mensagem de informação de reforço suplementar pai e na mensagem de informação de reforço suplementar aninhada.
[0309] Como mencionado acima, a unidade de encapsulamento 21 pode determinar se a mensagem de informação de reforço suplementar aninhada se aplica em adição à mensagem de informação de reforço suplementar ao codificar o componente de textura do componente de visualização. Como resultado, o roteador 36 pode, neste caso, processar o componente de textura do componente de visualização com base na mensagem de informação de reforço suplementar e na mensagem de informação de reforço suplementar aninhada com base na determinação de saber se a mensagem de informação de reforço suplementar aninhada se aplica em adição à mensagem de informação de reforço suplementar ao codificar o componente de textura do componente de visualização.
[0310] Quando se determina que a mensagem de reforço suplementar aninhada se aplica em adição à mensagem de informação de reforço suplementar ao processar o componente de textura do componente de visualização, o roteador 36 pode identificar um flag na mensagem de informação de reforço suplementar aninhada que especifica ou não se a mensagem de informação de reforço suplementar aninhada se aplica apenas ao componente de profundidade ou a ambos o componente de visualização e o componente de profundidade e determina que a mensagem de reforço suplementar aninhada se aplica em adição à mensagem de informação de reforço suplementar ao codificar o componente de textura do componente de visualização baseado no flag identificado. O flag pode compreender um ou mais de um flag de aplicabilidade de visualização de informação de reforço suplementar e um flag de aplicabilidade de visualização operacional de informação de reforço suplementar.
[0311] Em alguns casos, quando se determina se a mensagem de informação de reforço suplementar aninhada se aplica em adição à mensagem de informação de reforço suplementar ao processar o componente de textura do componente de visualização, o roteador 36 pode determinar que a mensagem de informação de reforço suplementar aninhada se aplica em adição à mensagem de informação de reforço suplementar, ao processar ambos o componente de profundidade do componente e o componente de visualização de textura do componente de visualização. O roteador 36 pode, neste caso, processar o componente de textura do componente de visualização baseado na mensagem de informação de reforço suplementar e na mensagem de informação de reforço suplementar aninhada.
[0312] Em alguns casos, para determinar se a mensagem de informação de reforço suplementar aninhada se aplica em adição à mensagem de informação de reforço suplementar ao codificar o componente de textura do componente de visualização, o roteador 36 pode determinar que a mensagem de informação de reforço suplementar aninhada só se aplica em adição à mensagem de informação de reforço suplementar quando da codificação do componente de profundidade do componente de visualização e não o componente de textura do componente de visualização. Como resultado, o roteador 36 pode processar o componente de textura do componente de visualização baseado na mensagem de informação de reforço suplementar e não com base na mensagem de informação de reforço suplementar aninhada.
[0313] Deve também ser compreendido que a figura 7 provê apenas um exemplo. Isto é, as etapas mostradas no exemplo da figura 7 não tem necessariamente de ser realizadas na ordem mostrada na figura 7, e poucas etapas adicionais ou alternativas podem ser realizadas.
[0314] A figura 8 é um diagrama de fluxo que ilustra a operação exemplar de dispositivo de codificação de vídeo na remoção em separado de componentes de textura e profundidade a partir de um armazenador de imagem decodificada, de acordo com as técnicas descritas nesta especificação. O exemplo mostrado na figura 8 é geralmente descrito como sendo realizado pelo decodificador de vídeo 30 (figuras 1 e 3). No entanto, deve ser entendido que o processo descrito em relação à figura 8 pode ser realizado por uma variedade de outros processadores, unidades de processamento, unidades de codificação com base em hardware, tais como codificadores / decodificadores (codecs), e semelhantes.
[0315] Em geral, o decodificador de vídeo 30 pode armazenar um componente de profundidade e um componente de textura de um componente de visualização (especificado por dados de vídeo de multivisualização) em um armazenador de imagem decodificada, o qual é mostrado como memória de imagem de referência 92 no exemplo da figura 3 (150). O decodificador de vídeo 30 pode, então, analisar uma dependência de visualização apenas para determinar se o componente de profundidade é utilizado para a predição de intervisualização (em que tal dependência de visualização pode ser refletida acima em relação ao exemplo da figura 5; 152). O decodificador de vídeo 30 pode analisar essa dependência de visualização apenas para o componente de profundidade e analisar separadamente uma dependência de visualização ao tentar remover o componente de textura associado da memória de imagem de referência 92. Em alguns casos, a dependência de visualização é sinalizada em uma extensão de conjunto de parâmetros de sequência de codificação de vídeo de multivisualização de um conjunto de parâmetros de sequência de subconjunto. O conjunto de parâmetros de sequência de subconjunto pode conter um perfil de vídeo tridimensional e é ativado como um conjunto de parâmetros de sequência de codificação de vídeo de multivisualização ativo quando se analisa a dependência de visualização. Em todo o caso, de decodificador de vídeo 30 pode então remover o componente de profundidade da memória de imagem de referência 92 sem remover o componente de textura em resposta à determinação de que o componente de profundidade não é utilizado para a predição de intervisualização (154).
[0316] Antes de remover este componente de profundidade, o decodificador de vídeo 30 pode qualificar o componente de profundidade como elegível para a remoção, determinando que o componente de profundidade não pertence a uma visualização de saída alvo e está associado a um código de identificação de referência de camada de abstração de rede com um valor igual a zero. Como um resultado de potencialmente prover manipulação separada de componentes de profundidade e de textura, o decodificador de vídeo 30 pode determinar uma ou mais imagens de referência para o componente de profundidade, que são diferentes do componente de textura. Isto é, o decodificador de vídeo 30 pode determinar as uma ou mais imagens de referência para o componente de profundidade ao, pelo menos, determinar uma lista de imagem de referência, que identifica uma ou mais imagens de referência para o componente de profundidade e determinar uma lista de imagem de referência que identifica uma ou mais imagens de referência adicionais para o componente de textura, em que as uma ou mais imagens de referência determinadas para o componente de textura são diferentes das uma ou mais imagens de referência determinadas para o componente de profundidade.
[0317] Para a determinação da lista de imagem de referência para o componente de profundidade, o decodificador de vídeo 30 pode determinar a lista de imagem de referência para o componente de profundidade e o componente de textura com base em marcações de componentes de profundidade e de textura pelo codificador de vídeo 20, que são usadas para identificar a lista de referência de imagem para o componente de profundidade separadamente marcando o componente de textura. Em alguns casos, um ou mais elementos de sintaxe podem ser usados para marcar separadamente o componente de profundidade com a lista de imagem de referência determinada para o componente de profundidade e um ou mais elementos de sintaxe são utilizados para marcar separadamente o componente de textura com a lista de imagem de referência determinada para o componente de textura.
[0318] Em alguns casos, o decodificador de vídeo 30 pode determinar que o componente de profundidade e o componente de textura pertencem a uma visualização de saída alvo para serem emitidos para exibição e, simultaneamente, ou quase simultaneamente, emitir o componente de profundidade e textura do componente.
[0319] Deve entender ser entendido que as etapas mostradas e descritas em relação ao exemplo da figura 8 são providas meramente como um exemplo. Isto é, as etapas mostradas no exemplo da figura 8 não têm necessariamente de ser realizadas na ordem mostrada na figura 8, e menos etapas adicionais ou alternativas podem ser realizadas.
[0320] A figura 9 é um diagrama de fluxo que ilustra a operação exemplar de dispositivo de codificação de vídeo para determinar a informação de nível de sequência para 3DVC compatível com MVC de acordo com as técnicas descritas nesta especificação. O exemplo mostrado na figura 8 é geralmente descrito como sendo realizado pelo decodificador de vídeo 30 (Figuras 1 e 3). No entanto, deve ser entendido que o processo descrito em relação à figura 8 pode ser realizado por uma variedade de outros processadores, unidades de processamento, unidades de codificação com base em hardware, tais como codificadores / decodificadores (codecs), e semelhantes.
[0321] Como descrito acima, o decodificador de vídeo 30 pode determinar a primeira informação de nível de sequência descrevendo características dos componentes de profundidade e determinar a segunda informação de nível de sequência descrevendo características de um ponto de operação dos dados de vídeo (160, 162). Além disso, o decodificador de vídeo 30 pode determinar uma lista de imagens de referência que identifica uma ou mais imagens de referência para os componentes indicados no conjunto de parâmetros de sequência de codificação de vídeo tridimensional.
[0322] Em alguns exemplos, o segundo nível de informação inclui uma segunda informação de nível de sequência que inclui um conjunto de parâmetros de sequência de codificação de vídeo tridimensional que descreveu, para o ponto de operação, uma lista de visualizações de saída alvo, várias visualizações de textura a serem decodificadas ao decodificar o ponto de operação, e várias visualizações de profundidade a serem decodificadas ao decodificar o ponto de operação, onde o número de visualizações de textura a serem decodificadas é de forma diferente do número de visualizações de profundidade. Em alguns exemplos, decodificador de vídeo 30 pode adicionalmente mirar, para cada uma das visualizações de saída alvo especificada na lista de visualizações de saída alvo, os um ou mais componentes de profundidade quando disponíveis.
[0323] Em alguns exemplos, decodificador de vídeo 30 pode especificar uma mensagem SEI de informação de escalabilidade de codificação de vídeo tridimensional como parte dos dados de vídeo, na qual mensagem SEI de informação de escalabilidade de codificação de vídeo tridimensional inclui uma descrição do ponto de operação sem os componentes de profundidade ou uma descrição do ponto de operação com os componentes de profundidade. Em alguns casos, a mensagem SEI inclui uma indicação de que o ponto de operação inclui os componentes de profundidade. Além disso, em alguns exemplos, a mensagem SEI inclui uma indicação de que o ponto de operação inclui os componentes de profundidade e visualizações de profundidade diretamente dependentes com visualizações de textura diretamente dependentes para a decodificação do ponto de operação.
[0324] Deve entender-se que as etapas mostradas e descritas em relação ao exemplo da figura 9 são providas meramente como um exemplo. Isto é, as etapas mostradas no exemplo da figura 9 não têm necessariamente de ser realizadas na ordem mostrada na figura 9, e menos etapas adicionais ou alternativas podem ser realizadas.
[0325] Enquanto certos elementos de sintaxe descritos com relação a esta divulgação proveram nomes exemplares para fins de explicação, deve ser entendido que os conceitos descritos nesta especificação são mais geralmente aplicáveis a todos os elementos de sintaxe, independentemente do nome. Por exemplo, enquanto certos aspectos referem-se a um "índice de ordem de visualização", "view_order_index" ou "view_idx", deve ser entendido que a um tal elemento de sintaxe pode ser dado um nome alternativo em um padrão de codificação futuro.
[0326] Enquanto certas técnicas desta divulgação são descritas em relação à norma H.264, deve ser entendido que as técnicas não são necessariamente limitadas a um padrão de codificação particular. Isto é, as técnicas mais geralmente referem-se a alcançar eficiências de codificação em 3DVC, por exemplo, por meio de unidades NAL mais curtas e/ou menos complexas e conjuntos de parâmetros, como descrito acima.
[0327] Deve ser entendido que, dependendo do exemplo, certos atos ou eventos de qualquer um dos métodos aqui descritos podem ser realizados em uma sequência diferente, podem ser adicionados, fundidos, ou deixados de fora (por exemplo, nem todos os fatos descritos ou eventos são necessários para a prática do método). Além disso, em alguns exemplos, os atos ou eventos podem ser realizados ao mesmo tempo, por exemplo, através do processamento multisequenciado, processamento de interrupção, ou múltiplos processadores, em vez de sequencialmente. Além disso, enquanto certos aspectos da presente divulgação são descritos como sendo realizados por um único módulo ou unidade para fins de clareza, deve-se compreender que as técnicas da presente divulgação podem ser realizadas por uma combinação de unidades ou módulos associados com um codificador de vídeo.
[0328] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware, ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas ou transmitidas como uma ou mais instruções ou código em um meio legível por computador e executadas por uma unidade de processamento baseada em hardware. Mídia legível por computador pode incluir meios de armazenamento legíveis por computador, que correspondem a um meio tangível, tal como mídia de armazenamento de dados ou mídia de comunicação, incluindo qualquer meio que facilita a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação.
[0329] Deste modo, mídia legível por computador pode geralmente corresponder a (1) mídia de armazenamento legível por computador tangível que é não transitória ou (2) um meio de comunicação, tal como um sinal, ou onda de portadora. Mídia de armazenamento de dados pode ser qualquer mídia disponível que pode ser acessada por um ou mais computadores ou um ou mais processadores para recuperar as instruções, 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.
[0330] A título de exemplo, e não como limitação, tais meios de armazenamento legíveis por computador podem incluir RAM, ROM, EEPROM, CD-ROM ou outro armazenamento em disco óptico, armazenamento em disco magnético, ou outros dispositivos de armazenamento magnético, memória flash, ou qualquer outro meio que pode ser usado para armazenar 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 é corretamente considerada um meio legível por computador. Por exemplo, se as instruções são transmitidas a partir de um site, servidor, ou outra fonte remota usando um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL) ou tecnologias sem fio, como infravermelho, rádio e micro-ondas, 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.
[0331] Deve ser entendido, contudo, que meios de armazenamento legíveis por computador e meios de armazenamento de dados não incluem conexões, ondas de portadoras, sinais, ou outros meios transitórios, mas são direcionados para meios de armazenamento tangíveis não transitórios. Disco e disquete, como aqui utilizado, inclem 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 os discos reproduzem dados opticamente com lasers. Combinações dos anteriores também devem ser incluídas no âmbito de meios legíveis por computador.
[0332] As instruções podem ser executadas por um ou mais processadores, tais como um ou mais processadores de sinais digitais (DSPs), microprocessadores de uso geral, circuitos integrados de aplicação específica (ASIC), arranjo de lógicos programáveis em campo (FPGA), ou outro equivalente integrado ou conjunto de circuitos lógicos discretos. Por conseguinte, o termo "processador", tal como aqui utilizado pode referir-se a qualquer uma da estrutura anterior ou em qualquer outra estrutura adequada para a aplicação das técnicas aqui descritas. Além disso, em alguns aspectos, a funcionalidade aqui descrita pode ser fornecida dentro de um hardware dedicado e/ou módulos de software configurados para a codificação e decodificação, ou incorporada em um codec combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.
[0333] 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 ICs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritos nesta divulgação para enfatizar aspectos funcionais de dispositivos configurados para executar as técnicas divulgadas, mas não necessariamente, a realização de diferentes unidades de hardware. Em vez disso, tal como descrito acima, várias unidades podem ser combinadas em uma unidade de hardware codec ou fornecidas por um conjunto de unidades de hardware interoperativos, incluindo um ou mais processadores, como descrito acima, em conjunto com o software e/ou firmware adequado.
[0334] Vários aspectos da divulgação têm sido descritos. Estes e outros aspectos estão dentro do âmbito das seguintes reivindicações.

Claims (15)

1. Método para a codificação de vídeo, o método CARACTERIZADO por compreender: armazenar (150) um componente de profundidade em um armazenador de imagem decodificada, analisar (152) uma dependência de visualização para determinar se o componente de profundidade é utilizado para a predição de intervisualização, em que a dependência de visualização é associada ao componente de profundidade e está separada de uma dependência de visualização para quaisquer componentes de textura, em que o componente de profundidade é associado com um componente de visualização de uma visualização de dados de vídeo, e em que um componente de textura é também associado com o componente de visualização; remover (154) o componente de profundidade independentemente do componente de textura do armazenador de imagem decodificada em resposta à determinação de que dependência de visualização associada com o componente de profundidade não é utilizado para a predição de intervisualização; e codificar, com base no componente de textura, os dados de vídeo.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo componente de profundidade estar associado com um componente de visualização de uma visualização de dados de vídeo, em que um componente de textura também está associado com o componente de visualização, e em que a remoção do componente de profundidade compreende a remoção do componente de profundidade do armazenador de imagem decodificada sem remover o componente de textura em resposta à determinação de que o componente de profundidade não é utilizado para a predição de intervisualização.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo componente de profundidade não pertencer a visualização de saída alvo e é uma imagem de referência não marcada, ou uma imagem marcada como “não utilizada para referência".
4. Método, de acordo com a reivindicação 1, CARACTERIZADO pela dependência de visualização ser sinalizada em uma extensão de conjunto de parâmetro de sequência de codificação de vídeo de um conjunto de parâmetro de sequência de subconjunto, e em que o conjunto de parâmetro de sequência de subconjunto contém um perfil de vídeo tridimensional e é ativado como um conjunto de parâmetro de sequência de codificação de vídeo de visualização ativo ao analisar a dependência de visualização.
5. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo componente de profundidade estar associado com um componente de visualização de uma visualização de dados de vídeo, em que um componente de textura também está associado com o componente de visualização, e em que o método adicionalmente compreende a determinação de uma ou mais imagens de referência para o componente de profundidade, que são diferentes do componente de textura.
6. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo componente de profundidade estar associado com um componente de visualização de uma visualização de dados de vídeo, em que um componente de textura também está associado com o componente de visualização, e em que o método adicionalmente compreende: determinar, com um decodificador de vídeo, que o componente de profundidade e textura componente de textura pertence a uma visualização de saída alvo para ser emitido para exibição; e simultaneamente, com o decodificador de vídeo, emitir o componente de profundidade e componente de textura.
7. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo componente de profundidade e o componente de textura terem diferentes resoluções e preferivelmente em que os dados de vídeo em conformidade com uma extensão de codificação de vídeo tridimensional para um padrão de H.264/ Codificação de Vídeo Avançada e é compatível com uma extensão de codificação de vídeo de multivisualização para o padrão H.264/ Codificação de Vídeo Avançada.
8. Dispositivo de codificação de vídeo para a codificação de dados de vídeo, o dispositivo de codificação de vídeo CARACTERIZADO por compreender: meios para armazenament o (64) de um componente de profundidade em um armazenador de meios para analisar imagem decodificada; (40) uma dependência de visualização para determinar se o componente de profundidade é utilizado para a predição de intervisualização; meios para remover (40) o componente de profundidade independentemente do componente de textura do armazenador de imagem decodificada em resposta à determinação de que dependência de visualização associada com o componente de profundidade não é utilizado para a predição de intervisualização, em que a dependência de visualização é associada ao componente de profundidade e está separada de uma dependência de visualização para quaisquer componentes de textura, em que o componente de profundidade é associado com um componente de visualização de uma visualização de dados de vídeo, e em que um componente de textura é também associado com o componente de visualização; e meios para codificar, com base no componente de textura, os dados de vídeo.
9. Dispositivo de codificação de vídeo, de acordo com a reivindicação 8, CARACTERIZADO pelo componente de profundidade estar associado com um componente de visualização de uma visualização de dados de vídeo, em que um componente de textura também está associado com o componente de visualização, e em que os meios para a remoção do componente de profundidade compreendem meios para a remoção do componente de profundidade do armazenador de imagem decodificada sem remover o componente de textura em resposta à determinação de que o componente de profundidade não é utilizado para a predição de intervisualização.
10. Dispositivo de codificação de vídeo, de acordo com a reivindicação 8, CARACTERIZADO pelo componente de profundidade não pertencer à visualização de saída alvo e é uma imagem de referência não marcada, ou uma imagem marcada como “não utilizada para referência”.
11. Dispositivo de codificação de vídeo, de acordo com a reivindicação 8, CARACTERIZADO pela dependência de visualização ser sinalizada em uma extensão de conjunto de parâmetro de sequência de codificação de vídeo de um conjunto de parâmetro de sequência de subconjunto, e em que o conjunto de parâmetro de sequência de subconjunto contém um perfil de vídeo tridimensional e é ativado como um conjunto de parâmetro de sequência de codificação de vídeo de visualização ativo ao analisar a dependência de visualização.
12. Dispositivo de codificação de vídeo, de acordo com a reivindicação 8, CARACTERIZADO pelo componente de profundidade estar associado com um componente de visualização de uma visualização de dados de vídeo, em que um componente de textura também está associado com o componente de visualização, e em que a codificação de vídeo do dispositivo adicionalmente compreende meios para determinar uma ou mais imagens de referência para o componente de profundidade que são diferentes do componente de textura.
13. Dispositivo de codificação de vídeo, de acordo com a reivindicação 8, CARACTERIZADO pelo componente de profundidade estar associado com um componente de visualização de uma visualização de dados de vídeo, em que um componente de textura também está associado com o componente de visualização, em que o dispositivo de codificação de vídeo compreende um decodificador de vídeo, e em que o decodificador de vídeo adicionalmente compreende: meios para determinar que o componente de profundidade e o componente de textura pertencem a visualização de saída alvo para ser emitido para exibição; e meios para emitir simultaneamente a componente de profundidade e componente de textura.
14. Dispositivo de codificação de vídeo, de acordo com a reivindicação 8, CARACTERIZADO pelo componente de profundidade e o componente de textura terem diferentes resoluções e preferivelmente em que os dados de vídeo estão de acordo com uma extensão de codificação de vídeo tridimensional para um padrão H.264/ codificação de vídeo avançada e é compatível com a extensão de codificação de vídeo de multivisualização para o padrão H.264/ codificação de vídeo avançada.
15. Memória CARACTERIZADA por compreender instruções que, quando executadas, fazem com que um ou mais processadores de dispositivo de codificação de vídeo executem o método conforme definido em qualquer uma das reivindicações 1 a 7.
BR112014012952-5A 2011-11-30 2012-11-30 Remoção de componente de profundidade para codificação de vídeo tridimensional compatível com codificação de vídeo de multivisualização BR112014012952B1 (pt)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201161565376P 2011-11-30 2011-11-30
US61/565,376 2011-11-30
US201161565938P 2011-12-01 2011-12-01
US61/565,938 2011-12-01
US201161579631P 2011-12-22 2011-12-22
US61/579,631 2011-12-22
US201261584009P 2012-01-06 2012-01-06
US61/584,009 2012-01-06
US13/689,508 US10158873B2 (en) 2011-11-30 2012-11-29 Depth component removal for multiview video coding (MVC) compatible three-dimensional video coding (3DVC)
US13/689,508 2012-11-29
PCT/US2012/067312 WO2013082438A1 (en) 2011-11-30 2012-11-30 Depth component removal for multiview video coding (mvc) compatible three-dimensional video coding (3dvc)

Publications (2)

Publication Number Publication Date
BR112014012952A2 BR112014012952A2 (pt) 2017-06-13
BR112014012952B1 true BR112014012952B1 (pt) 2023-05-30

Family

ID=

Similar Documents

Publication Publication Date Title
US10158873B2 (en) Depth component removal for multiview video coding (MVC) compatible three-dimensional video coding (3DVC)
CN105637885B (zh) 一种处理多层视频数据的方法、视频装置和计算机可读数据存储媒体
KR101822247B1 (ko) Hevc 및 확장들에 대한 비디오 파라미터 세트
BR112014001799B1 (pt) Codificação de vídeo de múltiplas visualizações
US20160330459A1 (en) Method for encoding video and apparatus therefor, and method for decoding video and apparatus therefor using effective parameter delivery
BR112015006440B1 (pt) Indicação e ativação de conjuntos de parâmetros para codificação de vídeo
BR112014017159B1 (pt) Conjuntos de parâmetros de codificação e cabeçalhos de unidade nal para codificação de vídeo
BR112016000870B1 (pt) Operações de buffer de imagem decodificada para codificação de vídeo
BR112016014227B1 (pt) Dispositivo e método para codificação escalável de informação de vídeo
BR112014001860B1 (pt) Método e aparelho para decodificar e codificar dados de vídeo, e memória legível por computador
BR112015008574B1 (pt) Métodos para decodificar e codificar dados de vídeo, dispositivos para decodificar e codificar dados de vídeo, e, memória legível por computador
BR112015016678B1 (pt) Síntese de visualização em vídeo 3d
BR112014012952B1 (pt) Remoção de componente de profundidade para codificação de vídeo tridimensional compatível com codificação de vídeo de multivisualização
BR112016021476B1 (pt) Método e dispositivo para codificar dados de vídeo e memória legível por computador
BR112016029856B1 (pt) Método e aparelho para codificar dados de vídeo
BR112016029790B1 (pt) Método para decodificar dados de vídeo, aparelho e memória legível por computador
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