BR112014017159B1 - Conjuntos de parâmetros de codificação e cabeçalhos de unidade nal para codificação de vídeo - Google Patents
Conjuntos de parâmetros de codificação e cabeçalhos de unidade nal para codificação de vídeo Download PDFInfo
- Publication number
- BR112014017159B1 BR112014017159B1 BR112014017159-9A BR112014017159A BR112014017159B1 BR 112014017159 B1 BR112014017159 B1 BR 112014017159B1 BR 112014017159 A BR112014017159 A BR 112014017159A BR 112014017159 B1 BR112014017159 B1 BR 112014017159B1
- Authority
- BR
- Brazil
- Prior art keywords
- video
- encoding
- vps
- layers
- video data
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
CONJUNTOS DE PARÂMETROS DE CODIFICAÇÃO E CABEÇALHOS DE UNIDADE NAL PARA CODIFICAÇÃO DE VÍDEO Em um exemplo, um codificador de vídeo, tal como um codificador de vídeo ou decodificador de vídeo, é configurado para codificar um conjunto de parâmetros de vídeo (VPS) para uma ou mais camadas de dados de vídeo, em que cada uma da uma ou mais camadas de dados de vídeo se referem ao VPS, e codificar a uma ou mais camadas de dados de vídeo com base ao menos em parte no VPS. O codificador de vídeo pode codificar o VPS para os dados de vídeo em conformidade com Codificação de Vídeo de Alta Eficiência, Codificação de Vídeo de Múltiplas Vistas, Codificação de Vídeo Escalável ou outros padrões de codificação de vídeo ou extensões de padrões de codificação de vídeo. O VPS pode incluir dados especificando parâmetros para sequências correspondentes de dados de vídeo dentro de várias camadas diferentes (por exemplo, vistas, camadas de qualidade ou semelhante). Os parâmetros do VPS podem prover indicações de como os dados de vídeo correspondentes são codificados.
Description
[0001] Esse pedido reivindica o benefício de: Pedido Provisional dos Estados Unidos N° de Série 61/586.777, depositado em 14 de janeiro de 2012; Pedido Provisional dos Estados Unidos N° de Série 61/587.070, depositado em 16 de janeiro de 2012; Pedido Provisional dos Estados Unidos N° de Série 61/588.629, depositado em 19 de janeiro de 2012; Pedido Provisional dos Estados Unidos N° de Série 61/637.195, depositado em 23 de abril de 2012; e Pedido Provisional dos Estados Unidos N° de Série 61/637.774, depositado em 24 de abril de 2012, cada um dos quais é aqui incorporado integralmente mediante referência respectiva.
[0002] Es sa revelação se refere à codificação de vídeo.
[0003] Capacidades de vídeo digital podem ser incorporadas em uma ampla gama de dispositivos, incluindo televisões digitais, sistemas digitais de difusão direta, sistemas de difusão sem fio, assistentes pessoais digitais (PDAs), computadores de mesa ou laptop, computadores tablet, leitores de livro eletrônico, câmeras digitais, dispositivos digitais de gravação, dispositivos de reprodução de mídia digital, dispositivo de videogame, consoles de videogame, telefones de rádio via satélite ou celulares, os assim chamados ”smartphones”, dispositivos de teleconferência de vídeo, dispositivos de fluxo contínuo de vídeo, e semelhantes. Os dispositivos de vídeo digital implementam técnicas de compactação de vídeo tais como aquelas descritas nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação Avançada de Vídeo (AVC), o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento, e extensões de tais padrões. Um esboço de trabalho recente do padrão HEVC referido está disponível em http://phenix.int- evry.fr/jct/doc_end_user/documents/7_Geneve/wg11/JCTVC- G1103-v3.zip. Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar informação de vídeo digital mais especificamente mediante implementação de tais técnicas de compactação de vídeo.
[0004] Técnicas de compactação de vídeo realizam predição espacial (imagem intra) e/ou predição temporal (imagem inter) para reduzir ou remover a redundância inerente nas sequências de vídeo. Para codificação de vídeo baseada em bloco, uma fatia de vídeo (isto é, um quadro de vídeo ou uma porção de um quadro de vídeo) pode ser dividida em blocos de vídeo, os quais também podem ser referidos como treeblocks, unidades de codificação (CUs) e/ou modos de codificação. Os blocos de vídeo em uma fatia codificada intra (I) de uma imagem são codificados utilizando a predição espacial com relação às amostras de referência em blocos vizinhos na mesma imagem. Os blocos de vídeo em uma fatia codificada inter (P ou B) de uma imagem podem usar predição espacial com relação às amostras de referência em blocos vizinhos na mesma imagem ou predição temporal com relação às amostras de referência em outras imagens de referência. As imagens podem ser referidas como quadros, e as imagens de referência podem ser referidas como quadros de referência.
[0005] A predição espacial ou temporal resulta em um bloco preditivo para um bloco a ser codificado. Dados residuais representam diferenças de pixel entre o bloco original a ser codificado e o bloco preditivo. Um bloco codificado inter é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência formando o bloco preditivo, e os dados residuais indicando a diferença entre o bloco codificado e o bloco preditivo. Um bloco intra codificado é codificado de acordo com um modo de codificação intra e os dados residuais. Para compactação adicional, os dados residuais podem ser transformados a partir do domínio de pixel para um domínio de transformada, resultando em coeficientes de transformada residuais, os quais podem ser então quantizados. Os coeficientes quantizados, inicialmente arranjados em um arranjo bidimensional, podem ser varridos para produzir um vetor unidimensional dos coeficientes de transformada, e codificação de entropia pode ser empregada para se obter ainda mais compactação.
[0006] Em geral, essa revelação descreve as técnicas para codificação de conjuntos de parâmetros e unidades de camada de abstração de rede (NAL) para codificação de vídeo. Essas técnicas podem ser aplicadas aos dados codificados de camada única, tal como os dados de vídeo bidimensionais, assim como aos dados de vídeo de codificação de vídeo escalável (SVC) e dados de vídeo de codificação de vídeo de múltiplas vistas (MVC). Assim, os conjuntos de parâmetros e as unidades NAL podem ser mutuamente compatíveis entre vários tipos de dados de vídeo. Por exemplo, um codificador de vídeo, tal como um encodificador de vídeo ou decodificador de vídeo, pode codificar um conjunto de parâmetros de vídeo (VPS) que define parâmetros para uma ou mais camadas de dados de vídeo. As camadas podem corresponder, por exemplo, às camadas SVC (tendo várias taxas de quadro, resoluções espaciais e/ou níveis de qualidade) e/ou vistas de dados MVC (por exemplo, sequências de imagens de uma cena capturada a partir de várias perspectivas de câmera relação a um eixo horizontal).
[0007] Em um exemplo, um método de codificar dados de vídeo inclui codificar um conjunto de parâmetros de vídeo (VPS) para uma ou mais camadas de dados de vídeo, em que cada uma da uma ou mais camadas de dados de vídeo se referem ao VPS, e codificar a uma ou mais camadas de dados de vídeo com base ao menos em partes no VPS.
[0008] Em outro exemplo, um dispositivo para codificar dados de vídeo inclui um codificador de vídeo, tal como um encodificador de vídeo ou decodificador de vídeo, que é configurado para codificar um conjunto de parâmetros de vídeo (VPS) para uma ou mais camadas de dados de vídeo, em que cada uma da uma ou mais camadas de dados de vídeo se referem ao VPS, e codificar a uma ou mais camadas de dados de vídeo com base ao menos em parte no VPS.
[0009] Em outro exemplo, um dispositivo para codificar dados de vídeo inclui meios para codificar um conjunto de parâmetros de vídeo (VPS) para uma ou mais camadas de dados de vídeo, em que cada uma da uma ou mais camadas de dados de vídeo se referem ao VPS, e meio para codificar a uma ou mais camadas de dados de vídeo com base ao menos em parte no VPS.
[0010] Em outro exemplo, um meio de armazenamento legível por computador tem nele armazenadas instruções que, quando executadas, fazem com que um processador codifique um conjunto de parâmetros de vídeo (VPS) para uma ou mais camadas de dados de vídeo, em que cada uma da uma ou mais camadas de dados de vídeo se referem ao VPS, e codificar a uma ou mais camadas de dados de vídeo com base ao menos em parte no VPS.
[0011] Os detalhes de um ou mais exemplos são apresentados nos desenhos anexos e na descrição abaixo. Outras características, objetivos e vantagens serão evidentes a partir da descrição e desenhos e a partir das reivindicações.
[0012] A Figura 1 é um diagrama de blocos ilustrando um sistema de codificação e decodificação de vídeo exemplar que pode utilizar técnicas para codificar conjuntos de parâmetros e unidades de camada de abstração de rede (NAL) para uma ou mais camadas de dados de vídeo.
[0013] A Figura 2 é um diagrama de blocos ilustrando um exemplo de codificador de vídeo 20 que pode implementar técnicas para codificar conjuntos de parâmetros e unidades NAL para uma ou mais camadas de dados de vídeo.
[0014] A Figura 3 é um diagrama de blocos ilustrando um exemplo de decodificador de vídeo 30 que pode implementar técnicas para codificar conjuntos de parâmetros e unidades NAL para uma ou mais camadas de dados de vídeo.
[0015] A Figura 4 é um diagrama conceptual ilustrando um padrão de predição MVC exemplar.
[0016] A Figura 5 é um diagrama conceptual ilustrando um conjunto de parâmetros de vídeo (VPS) e vários conjuntos de parâmetros de camada (LPSs).
[0017] A Figura 6 é um diagrama conceptual ilustrando um conjunto de parâmetros de agrupamento exemplar (GPS) e relações do GPS com outros conjuntos de parâmetros e cabeçalhos de fatias.
[0018] A Figura 7 é um fluxograma ilustrando um método exemplar para codificar dados de vídeo de acordo com as técnicas dessa revelação.
[0019] A Figura 8 é um fluxograma ilustrando um método exemplar para decodificar dados de vídeo de acordo com as técnicas dessa revelação.
[0020] A Figura 9 é um fluxograma ilustrando um método exemplar de codificar dados de vídeo com base ao menos em parte em um número de camadas temporais como sinalizado em um VPS.
[0021] A Figura 10 é um fluxograma ilustrando um método exemplar de codificar dados de vídeo com base ao menos em parte em um número de imagens a serem gravadas em uma ou mais camadas e imagens a serem armazenadas em um armazenador temporário de imagens decodificadas.
[0022] A Figura 11 é um fluxograma ilustrando um método exemplar de codificar dados de vídeo com base ao menos em parte em parâmetros de decodificador de referência hipotética (HRD) sinalizados em um VPS.
[0023] A Figura 12 é um fluxograma ilustrando um método exemplar de codificar dados de vídeo com base ao menos em parte nos dados de extensão sinalizados em um VPS.
[0024] Em geral, essa revelação descreve a codificação de dados de vídeo utilizando um conjunto de parâmetros de vídeo (VPS). Os dados de vídeo podem ser categorizados hierarquicamente como incluindo uma pluralidade de camadas, uma sequência de imagens dentro de uma determinada camada, uma imagem dentro de uma sequência, fatias dentro de uma imagem, e blocos (por exemplo, macro blocos ou unidades de árvore de codificação) dentro de uma fatia. Conjuntos de parâmetros de sequência (SPSs) podem ser usados para sinalizar parâmetros que mudam de forma infreqüente para uma sequência de imagens, e os conjuntos de parâmetros de imagem (PPSs) podem ser usados para sinalizar parâmetros que mudam de forma infreqüente para imagens individuais.
[0025] De acordo com as técnicas dessa revelação, um VPS pode sinalizar parâmetros que mudam de forma infreqüente para uma pluralidade de sequências através de camadas respectivas. Isto é, um VPS pode incluir parâmetros para um conjunto de sequências co-localizadas temporalmente de diferentes camadas. Diferentes camadas podem incluir, por exemplo, diferentes vistas para dados de vídeo de múltiplas vistas, diferentes camadas de qualidade, diferentes camadas de resolução espacial, camadas temporalmente escaláveis (isto é, camadas que permitem diferentes taxas de quadro), e semelhantes. Dessa maneira, um VPS pode ser provido para uma pluralidade de diferentes camadas, de tal modo que o VPS sinaliza parâmetros que são comuns a cada uma das respectivas camadas (por exemplo, sequências respectivas dentro das camadas respectivas). Pode-se dizer que um fluxo de bits inclui cada uma da pluralidade de camadas, e as camadas respectivas podem formar fluxos de bits secundários respectivos. Além disso, um fluxo de bits secundário pode corresponder a uma combinação de duas ou mais camadas.
[0026] Es sa revelação descreve vários exemplos de dados que podem ser incluídos em um VPS. Tais dados podem incluir, em alguns exemplos, uma indicação de um número de camadas secundárias (por exemplo, um número máximo de subcamadas) dentro das camadas correspondentes. Por exemplo, um VPS pode incluir dado que sinaliza um número de camadas temporais e/ou um número máximo de camadas temporais (por exemplo, um identificador de camada temporal mais elevada).
[0027] Como outro exemplo, um VPS pode incluir adicionalmente ou alternativamente, dados substancialmente similares a quaisquer dados previamente sinalizados em um SPS (isto é, sinalizados em SPSs convencionais). Dessa maneira, quando sequências de duas ou mais camadas de um fluxo de bits incluem parâmetros substancialmente similares ou idênticos, um codificador de vídeo pode codificar um VPS para sinalizar parâmetros para as sequências das camadas, mais propriamente do que codificar de forma redundante tais dados em SPSs respectivos para as várias sequências entre as diferentes camadas.
[0028] Um VPS pode, adicionalmente ou alternativamente, incluir dados definindo informação de utilidade de vídeo (VUI), tal como informação de representação de vídeo, parâmetros de decodificador de referência hipotética (HRD), e/ou informação de restrição de fluxo de bits. Informação de restrição de fluxo de bits pode incluir restrições sobre faixa de vetor de movimento, tamanho de armazenador temporário de imagem decodificada (DPB) (por exemplo, em termos de um número de imagens a serem mantidas pelo DPB), número de quadros de reordenamento (isto é, uma indicação de um número de quadros a serem reordenados a partir da ordem de decodificação para a ordem de exibição), tamanhos de blocos codificados (por exemplo, macro blocos (MBs) ou unidades de árvore de codificação), e tamanhos de imagens codificadas. Um VPS pode prover ainda dados para uma ou mais extensões VPS, de tal modo que o VPS pode ser estendido mediante padrões futuros ou extensões para o padrão HEVC vindouro.
[0029] A Figura 1 é um diagrama de blocos ilustrando um sistema de codificação e decodificação de vídeo 10 exemplar que pode utilizar técnicas para codificar conjuntos de parâmetro e unidades de camada de abstração de rede (NAL) para uma ou mais camadas de dados de vídeo. Como mostrado na figura 1, o sistema 10 inclui um dispositivo de fonte 12, que gera os dados de vídeo codificados para serem decodificados posteriormente por um dispositivo de destino 14. Dispositivo de origem 12 e dispositivo de destino 14 pode compreender qualquer de uma ampla gama de dispositivos, incluindo computadores desktop, notebook (ou seja, laptop) computadores, tablets, conversores de sinal de frequência, aparelhos de telefone, tais como os chamados telefones “inteligentes”, os chamados blocos “inteligentes”, televisores, câmeras, dispositivos de vídeo, players de mídia digitais, consolas de jogos de vídeo, dispositivo de streaming de vídeo, ou semelhantes. Em alguns casos, o dispositivo de fonte 12 e do dispositivo de destino 14 pode ser equipado para comunicações sem fio.
[0030] O dispositivo de destino 14 pode receber os dados de vídeo codificados para serem decodificadas através de um meio legível por computador 16. O meio legível por computador 16 pode compreender qualquer tipo de meio ou dispositivo capaz de mover os dados de vídeo codificados a partir do dispositivo de origem 12 a um dispositivo de destino 14. Em um exemplo, a conexão de 16 pode compreender um meio de comunicação para permitir dispositivo de fonte 12 para transmitir dados de vídeo codificados diretamente para o dispositivo de destino 14, em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio, e transmitida para o dispositivo de destino 14. O meio de comunicação pode incluir qualquer meio de comunicação com ou sem fio, como uma freqüência de rádio (RF) de espectro ou uma ou mais linhas de transmissão física. O meio de comunicação pode fazer parte de uma rede baseada em pacotes, como uma rede de área local, uma rede de área ampla, ou uma rede global como a Internet. O meio de comunicação pode incluir roteadores, switches, estações de base, ou qualquer outro equipamento que pode ser útil para facilitar a comunicação do dispositivo de fonte 12 para o dispositivo de destino 14.
[0031] Em alguns exemplos, os dados codificados podem ser produzidos a partir de interface de saída de 22 a um dispositivo de armazenamento. Da mesma forma, os dados codificados podem ser acessados a partir do dispositivo de armazenamento pela interface de entrada. O dispositivo de armazenamento pode incluir qualquer um de uma variedade de meios de armazenamento de dados distribuídos ou localmente acessados, como um disco rígido, os discos Blu-ray, DVDs, CD-ROMs, memória flash, memória volátil ou não-volátil, ou qualquer outro armazenamento digital adequado mídias para armazenamento de dados de vídeo codificados. Num outro exemplo, o dispositivo de armazenamento pode corresponder a um servidor de arquivos ou outro dispositivo de armazenamento intermediário que pode segurar o vídeo codificado gerado pelo dispositivo de fonte 12. Dispositivo de destino 14 pode acessar dados de vídeo armazenados de dispositivo de armazenamento via fluxo contínuo ou download. O servidor de arquivos pode ser qualquer tipo de servidor capaz de armazenar dados de vídeo codificados e transmitir esses dados de vídeo codificado para o dispositivo de destino 14. Servidores de arquivos exemplares incluem um servidor web (por exemplo, para um sítio de rede), um servidor de FTP, dispositivos de armazenamento anexado à rede (NAS), ou uma unidade de disco local. Dispositivo de destino 14 pode acessar os dados de vídeo codificados 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 Wi-Fi), uma conexão com fio (por exemplo, DSL, modem a cabo, etc.), ou uma combinação de ambos que é adequado para o acesso a dados de vídeo codificados armazenados em um servidor de arquivos. A transmissão de dados vídeo codificados a partir do dispositivo de armazenamento 32 pode ser uma transmissão de fluxo contínuo, uma transmissão de download, ou uma combinação de ambas.
[0032] As técnicas dessa revelação não são necessariamente limitadas às aplicações ou cenários sem fio. As técnicas podem ser aplicadas à codificação de vídeo em suporte de qualquer uma de uma variedade de aplicações de multimídia, tal como transmissões de televisão aberta, transmissões de televisão a cabo, transmissões de televisão via-satélite, transmissões de vídeo de fluxo contínuo de Internet, tal como fluxo contínuo 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 em via única ou em duas vias para suportar aplicações tais como fluxo contínuo de vídeo, reprodução de vídeo, transmissão de vídeo e/ou telefonia de vídeo.
[0033] No exemplo da Figura 1, o dispositivo de origem 12 inclui a fonte de vídeo 18, codificador de vídeo 20, e interface de saída 22. O dispositivo de destino 14 inclui interface de entrada 28, decodificador de vídeo 30, e dispositivo de exibição 32. De acordo com essa revelação, o codificador de vídeo 20 do dispositivo de origem 12 pode ser configurado para aplicar técnicas para codificar conjuntos de parâmetros e unidades NAL para uma ou mais camadas de dados de vídeo. Em outros exemplos, um dispositivo de origem e um dispositivo de destino podem incluir outros componentes ou arranjos. Por exemplo, o dispositivo de origem 12 pode receber os dados de vídeo a partir de uma fonte de vídeo externa 18, tal como uma câmera externa. Similarmente, o dispositivo de destino 14 pode estabelecer interface com um dispositivo de exibição externo, mais propriamente do que incluir um dispositivo de exibição integrado.
[0034] O sistema ilustrado 10 da Figura 1 é apenas um exemplo. As técnicas para codificar conjuntos de parâmetros e unidades NAL para uma ou mais camadas de dados de vídeo pode ser realizada mediante qualquer dispositivo de codificação e/ou decodificação de vídeo digital. Embora geralmente as técnicas dessa revelação sejam 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, tipicamente referido como um “CODEC”. Além disso, as técnicas dessa revelação também podem ser realizadas por um pré-processador de vídeo. O dispositivo de origem 12 e o dispositivo de destino 14 são apenas exemplos de tais dispositivos de codificação nos quais o dispositivo de origem 12 gera dados de vídeo codificados para transmissão para o dispositivo de destino 14. Em alguns exemplos, os dispositivos 12, 14 podem operar de uma maneira substancialmente simétrica de tal modo que cada um dos dispositivos 12, 14 inclui componentes de codificação e de decodificação de vídeo. Portanto, o sistema 10 pode suportar transmissão de vídeo de via única ou de duas vias entre os dispositivos de vídeo 12, 14, por exemplo, para fluxo contínuo de vídeo, reprodução de vídeo, transmissão de vídeo, ou telefonia de vídeo.
[0035] A fonte de vídeo 18 do 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 previamente capturado, e/ou uma interface de alimentação de vídeo para receber vídeo a partir de um provedor de conteúdo de vídeo. Como uma alternativa adicional, a fonte de vídeo 18 pode gerar dados de computador baseados em gráfico 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 for uma câmera de vídeo, o dispositivo de origem 12 e o dispositivo de destino 14 podem formar os assim chamados telefones de câmera ou telefones de vídeo. Como mencionado acima, contudo, as técnicas descritas nessa revelação podem ser aplicadas à codificação de vídeo em geral, e podem ser aplicadas às aplicações sem fio e/ou cabeadas. Em todo caso, o vídeo capturado, pré-capturado, ou gerado por computador 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.
[0036] O meio legível por computador 16 pode incluir meios transientes, tal como uma transmissão de rede cabeada de fusão sem fio, ou meios de armazenamento (isto é, meios de armazenamento não transitório), tal como um disco rígido, unidade flash, disco compacto, disco de vídeo digital, disco Blu-ray, ou outros meios legíveis por computador. Em alguns exemplos, um servidor de rede (não mostrado) pode receber os dados de vídeo codificado a partir do dispositivo de origem 12 e fornecer os dados de vídeo codificado para o dispositivo de destino 14, por exemplo, por intermédio de transmissão de rede. Similarmente, um dispositivo de computação de uma instalação de produção de meio, tal como uma instalação de estampagem de disco, pode receber os dados de vídeo codificados 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 como incluindo um ou mais meios legíveis por computador de várias formas, em vários exemplos.
[0037] A interface de entrada 28 do dispositivo de destino 14 recebe informação a partir do meio legível por computador 16. A informação do meio legível por computador 16 pode incluir informação de sintaxe definida pelo codificador de vídeo 20, que também é usada pelo decodificador de vídeo 30, que inclui elementos de sintaxe que descrevem as características e/ou processamento de blocos e outras unidades codificadas, por exemplo, GOPs. O dispositivo de exibição 32 exibe os dados de vídeo decodificados a um usuário, e pode compreender qualquer um de uma variedade de dispositivos de exibição, tal como um tubo de raios catódicos, um dispositivo de exibição de cristal líquido (LCD), um display de plasma, um display de diodo de emissão de luz orgânica (OLED), ou outro tipo de dispositivo de exibição.
[0038] O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de compactação de vídeo, tal como o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento, e pode estar de acordo com o Modelo de Teste HEVC (HM). Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões patenteados ou da indústria, tal como o padrão ITU-T H.264, referido alternativamente como Codificação de Vídeo Avançada (AVC) Parte 10, MPEG-4, ou extensões de tais padrões. As técnicas dessa revelação, contudo, não são limitadas a qualquer padrão de codificação específico. Outros exemplos de padrões de compactação de vídeo incluem MPEG-2 e ITU-T H.263. Embora não seja mostrado na Figura 1, em alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser individualmente integrados com um codificador de áudio e decodificador de áudio, e podem incluir unidades MUX-DEMUX apropriadas, ou outro hardware e software, para lidar com a codificação tanto de áudio como de vídeo em um fluxo de dados comum ou em fluxos de dados separados. Se aplicável, as unidades MUX-DEMUX podem se adaptar ao protocolo de multiplexador ITU H.223, ou outros protocolos tal como o protocolo de datagrama de usuário (UDP).
[0039] O padrão ITU-T H.264/MPEG-4 (AVC) foi formulado pelo ITU-T Video Coding Experts Group (VCEG) em conjunto com o ISSO/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 nessa revelação podem ser aplicadas aos dispositivos que geralmente se adaptam ao padrão H.264. O padrão H.264 é descrito em ITU-T Recommendation H.264, Advanced Video Coding for generic audiovisual services, pelo ITU-T Study Group, com data de março de 2005, que pode ser referido aqui como padrão H.264 ou especificação H.264, ou o padrão ou especificação H.264/AVC. O Joint Video Team (JVT) continua a trabalhar nas extensões para H.264/MPEG-4 AVC.
[0040] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser individualmente implementados como qualquer um de uma variedade de circuitos adequados de codificador, tal como um ou mais micro processadores, processadores de sinais digitais (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de portas programáveis no campo (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. Quando as técnicas são implementadas parcialmente em software, um dispositivo pode armazenar as instruções para o software em um meio legível por computador não transitório, adequado e executar as instruções em hardware utilizando um ou mais processadores para realizar as técnicas dessa revelação. 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, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador combinado (CODEC) em um dispositivo respectivo.
[0041] O JCT-VC está trabalhando no desenvolvimento do padrão HEVC. Os esforços de padronização HEVC são baseados em um modelo de evolução de um dispositivo de codificação de vídeo referido como o modelo de teste HEVC (HM). O HM presume vários recursos adicionais de codificação de vídeo de dispositivos relativo a dispositivos existentes de acordo com, por exemplo, ITU-T H.264/AVC. Por exemplo, enquanto H.264 oferece nove modos de codificação predição intra, a HM pode fornecer até trinta e três modos de codificação de predição intra.
[0042] Em geral, o modelo de funcionamento do HM descreve que um quadro de vídeo ou imagem pode ser dividido em uma sequência de blocos-árvore ou unidades de codificação maiores (LCU) que incluem amostras de luminância e também de crominância. Os dados de sintaxe dentro de um fluxo de bits podem definir um tamanho para a LCU, que é uma unidade de codificação maior em termos do número de pixel. Uma fatia inclui um número de blocos- árvore consecutivos na ordem de codificação. Um quadro de vídeo ou imagem pode ser dividido em uma ou mais fatias. Cada bloco-árvore pode ser dividido em unidades de codificação (CUs) de acordo com um quadtree. Em geral, uma estrutura de dados quadtree inclui um nó por CU, com um nó raiz correspondendo ao bloco-árvore. Se uma CU é dividida em quatro CUs secundárias, o nó correspondendo à CU inclui quatro nós folha, cada um dos quais corresponde a uma das CUs secundárias.
[0043] Cada nó da estrutura de dados de quadtree pode prover dados de sintaxe para a CU correspondente. Por exemplo, um nó na quadtree pode incluir um sinalizador de divisão, indicando se a CU correspondendo ao nó é dividida em sub-CUs. Os elementos de sintaxe para uma CU podem ser definidos de forma recursiva, e podem depender de se a CU é dividida em sub-CUs. Se uma CU não for dividida adicionalmente, ela é referida como uma CU folha. Nessa revelação, 4 sub-CUs de uma CU folha também serão referidas como CUs folha embora não haja divisão explícita da Cu folha. Por exemplo, se uma CU em tamanho 16x16 não for dividida adicionalmente, as quatro sub-Cus 8x8 também serão referidas como CUs folha embora a CU 16x16 nunca tenha sido dividida.
[0044] Uma CU tem uma finalidade similar a de um macro bloco do padrão H.264, exceto que uma CU não tem uma distinção de tamanho. Por exemplo, um bloco-árvore pode ser dividido em quatro nós filho (também referido como CUs secundárias), e cada nó filho pode, por sua vez, ser um nó pai e ser dividido em outros quatro nós filho. Um nó-filho não dividido, final, referido como um nó folha do quadtree, compreende um nó de codificação, também referido com CU folha. Dados de sintaxe associados com um fluxo de bits codificado podem definir um número máximo de vezes que um bloco árvore pode ser dividido, referido como uma profundidade de CU máxima, e também pode definir um tamanho mínimo dos nós de codificação. Consequentemente, um fluxo de bits também pode definir uma unidade de codificação menor (SCU). Essa revelação utiliza o termo “bloco” para se referir a qualquer uma de uma CU, PU ou TU, no contexto de HEVC, ou estruturas de dados similares no contexto de outros padrões (por exemplo, macro blocos ou seus blocos secundários em H.264/AVC).
[0045] Uma CU inclui um nó de codificação e unidades de predição (PUs) e unidades de transformada (TUs) associadas com o nó de codificação. Um tamanho da CU corresponde a um tamanho do nó de codificação e deve ser de formato quadrado. O tamanho da CU pode variar de 8x8 pixels até o tamanho do bloco-árvore com um máximo de 64x64 pixels ou superior. Cada CU pode conter uma ou mais PUs e uma ou mais TUs. Os dados de sintaxe associados com uma CU podem descrever, por exemplo, a divisão da CU em uma ou mais PUs. Os modos de divisão podem diferir entre se a CU é codificada no modo de pulo ou direto, codificada no modo de predição intra, ou codificada no modo de predição inter. As PUs podem ser divididas de modo a ser de formato não quadrado. Os dados de sintaxe associados com uma CU também podem descrever, por exemplo, a divisão da CU em uma ou mais TUs de acordo com uma quadtree. Uma TU pode ser de formato quadrado ou não quadrado (por exemplo, retangular).
[0046] O padrão HEVC permite transformações de acordo com as TUs, que podem ser diferentes para diferentes UCs. Os TUs são tipicamente medidos com base no tamanho da UP dentro de uma determinada CU definida para uma LCU dividida, embora isso possa não ser sempre o caso. Os TUs normalmente são do mesmo tamanho ou menor do que as PUs. Em alguns exemplos, as amostras residuais correspondendo a uma CU podem ser subdivididas em unidades de menores usando uma estrutura quadtree conhecido como “quadtree residual” (RQT). Os nós folha da RQT pode ser referido como transformar unidades (TUS). Os valores de diferença de pixel associados com as unidades de tradução podem ser transformadas para produzir coeficientes de transformada, que podem ser quantificados.
[0047] Uma CU folha pode incluir uma ou mais unidades de predição (PUs). Em geral, uma PU representa uma área espacial correspondendo a toda ou a uma porção da CU correspondente, e pode incluir dados para recuperar uma amostra de referência para a PU. Além disso, uma PU inclui dados relacionados à predição. Por exemplo, quando a PU é codificada no modo intra, os dados para a PU podem ser incluídos em uma quadtree residual (RQT), que pode incluir os dados descrevendo um modo de predição intra ou uma TU correspondendo à PU. Como outro exemplo, quando a PU é codificada no modo inter, a PU pode incluir os dados definindo um ou mais vetores de movimento para a PU. Os dados que definem o vetor de movimento para um PU podem descrever, por exemplo, um componente horizontal do vetor de movimento, um componente vertical do vetor de movimento, uma resolução para o vetor de movimento (por exemplo, um quarto de precisão de pixel ou um oitavo de pixel precisão), uma imagem de referência a que os pontos de movimento do vetor, e/ou uma lista de imagens de referência (por exemplo, lista 0, Lista 1 ou Lista C) para o vetor de movimento.
[0048] Uma CU folha tendo uma ou mais PUs também pode incluir uma ou mais unidades de transformada (TUs). As unidades de transformada podem ser especificadas utilizando uma RQT (também referida como uma estrutura quadtree de TU), conforme discutido acima. Por exemplo, um sinalizador de divisão pode indicar se uma CU folha é dividida em quatro unidades de transformada. Então, cada unidade de transformada pode ser dividida adicionalmente em TUs secundárias adicionais. Quando uma TU não é dividida adicionalmente, ela pode ser referida como uma TU folha. Geralmente, para codificação intra, todas as TUs folha, que pertencem a uma CU folha, compartilham o mesmo modo de predição intra. Isto é, o mesmo modo de predição intra é geralmente aplicado para calcular valores preditivos para todas as TUs de uma CU folha. Para codificação intra, um codificador de vídeo pode calcular um valor residual para cada TU folha utilizando o modo de predição intra, como uma diferença entre a porção da CU correspondendo à TU e o bloco original. Uma TU não é necessariamente limitada ao tamanho de uma PU. Assim, as TUs podem ser maiores ou menores do que uma PU. Para codificação intra, uma PU pode ser co-localizada com uma TU folha correspondente para a mesma CU. Em alguns exemplos, o tamanho máximo de uma TU folha pode corresponder ao tamanho da CU folha correspondente.
[0049] Além disso, as TUs das CUs folha também podem ser associadas com estruturas de dados quadtree respectivas, referidas como quadtrees residuais (RQTs). Isto é, uma CU folha pode incluir uma quadtree indicando como a CU folha é dividida em TUs. O nó raiz de um quadtree de TU geralmente corresponde a uma CU folha, enquanto que o nó raiz de uma quadtree de CU geralmente corresponde a um bloco-árvore (ou LCU). As TUs da RQT que não são divididas são referidas como TUs folha. Em geral, essa revelação utiliza os termos CU e TU para se referir à CU folha e TU folha, respectivamente, a menos que de outro modo observado.
[0050] Uma seqüência de vídeo, normalmente inclui uma série de imagens ou imagens de vídeo. Um grupo de imagens (GOP) compreende geralmente uma série de uma ou mais das imagens de vídeo. Um GOP pode incluir dados de sintaxe em um cabeçalho do GOP, um cabeçalho de uma ou mais das imagens, ou em outro lugar, que descreve uma série de imagens incluídas no GOP. Cada fatia de uma imagem pode incluir dados de sintaxe de fatia que descrevem um modo de codificação para a respectiva fatia. O codificador de vídeo 20 normalmente opera em blocos de vídeo dentro fatias de vídeo individuais, para codificar os dados de vídeo. Um bloco de vídeo pode corresponder a um nó de codificação dentro de uma CU. Os blocos de vídeo podem ter tamanhos fixados ou variados, e podem variar em tamanho de acordo com um padrão de codificação especificado.
[0051] Como um exemplo, o HM suporta predição em vários tamanhos de PU. Assumindo-se que o tamanho de uma CU particular é 2Nx2N, o HM suporta predição intra em tamanhos de PU de 2Nx2N ou NxN, e predição inter em tamanhos simétricos PU de 2Nx2N, 2NxN, Nx2N, ou NxN. O HM também suporta divisão assimétrica para predição inter em tamanhos PU de 2NxnU, 2NxnD, nLx2N e nRx2N. Na divisão assimétrica, uma direção de uma CU não está dividida, enquanto a outra direção é dividida em 25% e 75%. A porção da CU correspondendo à porção de 25% é indicada por um “n” seguido por uma indicação de “acima”, “abaixo”, “esquerda” ou “direita”. Assim, por exemplo, “2NxnU” refere-se a uma CU 2Nx2N dividida horizontalmente com uma PU de 2Nx0,5N na parte superior e uma PU de 2Nxl,5 N na parte inferior.
[0052] Nessa revelação, “NxN” e “N por N” pode ser utilizado indiferentemente para designar as dimensões de pixels de um bloco de vídeo, em termos de dimensões vertical e horizontal, por exemplo, 16x16 pixels ou 16 por 16 pixels. Em geral, um bloco de 16x16 terá 16 pixels em uma direção vertical (Y = 16) e 16 pixels na direção horizontal (x = 16). Da mesma forma, um bloco NxN geralmente tem N pixels na direção vertical e N pixels na direção horizontal, onde N representa um valor inteiro não negativo. Os pixels de um bloco podem ser dispostos em filas e colunas. Além disso, os blocos não necessitam, necessariamente, ter o mesmo número de pixels na direção horizontal como na direção vertical. Por exemplo, os blocos podem compreender NxM pixels, em que M não é necessariamente igual a N.
[0053] Após codificação intra preditiva ou inter preditiva usando as PUs de uma CU, o codificador de vídeo 20 pode calcular dados residuais para as TUs da CU. Os PUs podem compreender dados de pixel no domínio espacial (também referido como o domínio do pixel) e as TUs podem compreender coeficientes no domínio de transformada após a aplicação de uma transformada, por exemplo, uma transformada discreta de coseno (DCT), transformada de número inteiro, transformada de ondaleta, ou transformada conceitualmente semelhante aos dados de vídeo residuais. Os dados residuais podem corresponder a diferenças de pixel entre pixels da imagem não codificada e valores de predição correspondentes às UPs. O codificador de vídeo 20 pode formar as TUs incluindo os dados residuais para a CU, e depois transformar as TUs para produzir coeficientes de transformada para a UC.
[0054] Depois de qualquer transformada para produzir coeficientes de transformada, o codificador de vídeo 20 pode realizar quantização dos coeficientes de transformada. Quantização geralmente refere-se a um processo em que os coeficientes de transformada são quantizados para possivelmente reduzir a quantidade de dados utilizados para representar os coeficientes, proporcionando a compactação adicional. O processo de quantização pode reduzir a profundidade do bit associado com alguns ou todos os coeficientes. Por exemplo, um valor de n bits pode ser arredondado para um valor de m bits durante quantização, onde n é maior do que m.
[0055] Em seguida à quantização, o codificador de vídeo pode realizar a varredura dos coeficientes de transformada, produzindo um vetor unidimensional a partir da matriz bidimensional incluindo os coeficientes de transformada quantizada. A varredura pode ser projetada para colocar coeficientes de energia superior (e, portanto, de frequência inferior) na frente do arranjo e colocar coeficientes de energia inferior (e, portanto, de frequência superior) na parte posterior do arranjo. Em alguns exemplos, o codificador de vídeo 20 pode utilizar uma ordem de varredura predefinida para realizar a varredura dos coeficientes de transformada quantizada para produzir um vetor serializado que pode ser codificado por entropia. Em outros exemplos, o codificador de vídeo 20 pode realizar uma varredura adaptativa. Após a varredura dos coeficientes de transformada quantizada para formar um vetor unidimensional, o codificador de vídeo 20 pode codificar por entropia o vetor unidimensional, por exemplo, de acordo com uma codificação de comprimento variável de contexto adaptativo (CAVLC), codificação aritmética binária de contexto adaptativo (CABAC), codificação aritmética binária de contexto adaptativo baseado em sintaxe (SBAC), codificação de Entropia de Divisão de Intervalo de Probabilidade (PIPE) ou outra metodologia de codificação de entropia. O codificador de vídeo 20 também pode codificar por entropia os elementos de sintaxe associados com os dados de vídeo codificado para uso pelo decodificador de vídeo 30 na decodificação dos dados de vídeo.
[0056] Para realizar CABAC, o codificador de vídeo 20 pode atribuir um contexto dentro de um modelo de contexto a um símbolo a ser transmitido. O contexto pode se relacionar, por exemplo, ao fato de se os valores adjacentes do símbolo são ou não diferentes de zero. Para realizar CAVLC, o codificador de vídeo 20 pode selecionar um código de comprimento variável para um símbolo a ser transmitido. As palavras-chave na codificação de comprimento variável (VLC) podem ser construídas de tal modo que códigos relativamente mais curtos correspondem aos símbolos mais prováveis, enquanto que códigos mais longos correspondem aos símbolos menos prováveis. Desse modo, o uso de VLC pode atingir uma economia de bits, por exemplo, utilizando palavras-chave de comprimento igual para cada símbolo a ser transmitido. A determinação de probabilidade pode se basear em um contexto atribuído ao símbolo.
[0057] De acordo com as técnicas dessa revelação, um codificador de vídeo, tal como o codificador de vídeo 20 ou o decodificador de vídeo 30, pode ser configurado para codificar um conjunto de parâmetros de vídeo (VPS) para ma ou mais camadas de dados de vídeo, e para codificar a uma ou mais camadas de dados de vídeo com base ao menos em parte no VPS. As Tabelas, 2 e 5, descritas em mais detalhe abaixo, incluem conjuntos exemplares de elementos de sintaxe de um VPS. Cada uma da uma ou mais camadas de dados de vídeo pode se referir ao VPS, isto é, o mesmo VPS. Em outras palavras, o VPS também pode se aplicar a todas as camadas de um conjunto comum de dados de vídeo, por exemplo, todas as camadas SVC e/ou todas as vistas de dados de vídeo MVC.
[0058] O VPS pode incluir várias categorias de informação. Por exemplo, o VPS pode incluir descrição de contador de dimensão de amostra (SDCD). Isto é, para cada dimensão, o codificador de vídeo pode sinalizar um conjunto de índices. Possíveis dimensões incluem cnt_p: número de camadas de prioridade contidas na sequência de vídeo codificado; cnt_d: quantas camadas de dependência diferente no fluxo de bits, múltiplas camadas com a mesma resolução e profundidade de bit podem pertencer a diferentes camadas de dependência; cnt_t: quantas camadas temporais no fluxo de bits; cnt_q: número máximo de camadas de qualidade para qualquer camada de dependência no fluxo de bits; e cnt_v: número máximo de vistas. As configurações de profundidade de bit podem incluir 8 bits ou 12 bits e podem ser diferentes para os diferentes componentes de cor. Os formatos de amostragem croma podem incluir 4:0:0, 4:2:0 e 4:4:4.
[0059] O VPS também pode incluir um índice de amostra para mapeamento de característica. Se para cada dimensão, o indicador de característica não for igual a um índice variando de 0 até o contador de dimensão de amostra menos 1, um loop pode ser introduzido para especificar o indicador de característica para cada índice de característica. O mapeamento pode incluir, para cada índice de dependência, uma resolução espacial específica com valor de profundidade de bit específico e formato de amostra de croma específico. Observar que isso poderia ser omitido, se houver sempre uma tabela de consulta fixa no decodificador, por exemplo, 0 pode corresponder a 4:2:0, 1 pode corresponder a 4:4:4, e 2 pode corresponder a 4:0:0. O mapeamento pode adicionalmente ou alternativamente incluir: para cada índice temporal/id, uma taxa de quadro específica ou taxa de quadro média; para cada índice de visualização, um id de visualização específico; para cada índice de profundidade de bit, um par de valores de profundidade de bit específicos para luma e croma; e para cada formato de amostragem croma, um indicador de formato de amostragem croma específico.
[0060] O VPS também pode incluir parâmetros de controle e sinalizadores de habilitação/desabilitação de ferramenta, tal como o seguinte: um pcm_bit_depth_luma_minus1, um pcm_bit_depth_chroma_minus1, um loop_filter_across_slice_flag, um pcm_loop_filter_disable_flag, um temporal_id_nesting_flag, um ou mais elementos de sintaxe relacionados a bloco de pixel, um chroma_pred_from_luma_enabled_flag, um sample_adaptive_offset_enabled_flag, um adaptive_loop_filter_enabled_flag, e um inter_4x4_enabled_flag.
[0061] O VPS também pode incluir uma ou mais descrições de ponto de operação. Os pontos de operação geralmente descrevem um subconjunto de um número total de vistas de dados de vídeo incluídos em um fluxo de bits. Um ponto de operação pode incluir um número específico de vistas visadas para saída, assim como outras vistas que podem ser usadas para referência ao decodificar, emitir, ou ambos. Um fluxo de bits pode incluir um ou mais pontos de operação descritos pelas descrições de ponto de operação. As descrições de ponto de operação podem incluir informação definindo um número de pontos de operação máximos, dependência entre diferentes camadas ou vistas, perfil e nível para cada ponto de operação, taxa de bits para cada ponto de operação, dependência entre pontos de operação, para cada ponto de operação, outras restrições, para cada ponto de operação, informação de usabilidade de vídeo (VUI) ou parte de VUI, e/ou para cada camada ou vista, VUI ou parte de VUI. Além disso, ou na alternativa, as descrições de ponto de operação podem incluir, para cada ponto de operação, representação de unidade de camada de abstração de rede (NAL) de camada de codificação de vídeo (VCL) de vídeo de ponto de operação. Em alguns exemplos, a representação de unidade VCL NAL de ponto de operação pode incluir, para cada dimensão, três possíveis opções: (1) um valor de índice específico: por exemplo, para resolução espacial, para profundidade de bit para formato de amostragem croma; (2) uma faixa do valor de índice: por exemplo, para camadas temporais, 0 para o id de camada temporal mais elevada, para camadas de qualidade, 0 para o ID de camada de qualidade mais alta; ou (3) uma lista de valores de índice, por exemplo, para vistas, uma lista de valores de índice de vista.
[0062] Em alguns exemplos, o VPS pode incluir dados indicativos de um número máximo de camadas temporais entre as camadas de um fluxo de bits. Isto é, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode ser configurado para codificar um VPS incluindo dados indicativos de um número máximo de camadas temporais para um fluxo de bits correspondente. Por exemplo, o codificador de vídeo 20 pode determinar um número máximo de camadas temporais e codificar o VPS para incluir dados representando o número máximo determinado de camadas temporais, ao passo que o decodificador de vídeo 30 pode decodificar o VPS para determinar o número máximo de camadas temporais. O codificador de vídeo 20 e o decodificador de vídeo 30 também podem codificar dados de vídeo do fluxo de bits com base no número máximo determinado de camadas temporais. Por exemplo, o número máximo de camadas temporais pode influenciar um número de identificadores temporais que são necessários para representar as várias camadas temporais. Como outro exemplo, o número máximo de camadas temporais pode influenciar a forma na qual o codificador de vídeo 20 e o decodificador de vídeo 30 codificam os identificadores de imagem de referência, por exemplo, utilizando valores de contagem de ordem de imagem (POC).
[0063] Ainda como outro exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para codificar os dados de uma camada temporal específica utilizando apenas os dados de referência até e incluindo a mesma camada temporal. Em outras palavras, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para evitar codificar os dados de uma camada temporal específica utilizando os dados de referência de uma camada temporal mais elevada. Dessa maneira, o decodificador de vídeo 30 pode ser assegurado de decodificar com exatidão os dados de vídeo de um determinado conjunto de camadas temporais mesmo após a extração de fluxo de bits secundário. Isto é, se a extração de fluxo secundário de bits for realizada, algumas camadas temporais, acima da camada mais alta, do fluxo secundário de bits, extraído, não estarão disponíveis para referência. Mediante codificação dos dados de cada camada temporal, apenas com referência aos dados de camadas em ou abaixo da camada atual, erros podem ser evitados que de outro modo poderiam resultar de ter os dados em uma camada específica dependendo dos dados a partir de uma camada superior, que seriam perdidos como resultado da extração de fluxo de bits secundário.
[0064] Em alguns exemplos, o VPS, adicionalmente ou alternativamente, inclui dados indicativos de qualquer uma ou das duas imagens a serem reordenadas em uma ou mais camadas de um fluxo de bits e/ou um número de imagens a serem armazenadas em um armazenador temporário de imagens decodificadas (DPB). Como observado acima, tais dados podem ser referidos como informação de restrição de fluxo de bits. Consequentemente, o dispositivo de destino 14 pode determinar as capacidades do decodificador de vídeo 30 e usar a informação de restrição de fluxo de bits para determinar se o fluxo de bits correspondente é apropriado para ser decodificado pelo decodificador de vídeo 30, ou se o dispositivo de destino 14 deve selecionar conteúdo alternativo (por exemplo, a partir de um provedor de conteúdo baseado em rede, supondo que múltiplas versões do conteúdo estejam disponíveis).
[0065] Além disso, o codificador de vídeo 20 e o decodificador de vídeo 30 podem utilizar a informação de restrição de fluxo de bits durante a codificação dos dados de vídeo. Por exemplo, o codificador de vídeo 20 pode garantir que a informação de restrição de fluxo de bits não seja violada. Isto é, supondo que a informação de restrição de fluxo de bits indique que no máximo N imagens devem ser armazenadas em um DPB, o codificador de vídeo 20 pode garantir que não mais do que N imagens sejam incluídas em qualquer combinação de uma ou mais listas de imagem de referência em qualquer momento determinado. Como outro exemplo, supondo que a informação de reordenamento de imagem indique que uma imagem deve ser mudada em no máximo M imagens, o codificador de vídeo 20 pode garantir que nenhuma imagem seja deslocada em mais do que M imagens. O deslocamento das imagens dessa maneira corresponde geralmente à diferença entre a ordem de decodificação e a ordem de exibição de uma imagem. O decodificador de vídeo 30, similarmente, pode usar tal informação durante a codificação, por exemplo, para realizar gerenciamento DPB, tal como descarregamento de DPB. O codificador de vídeo 20 e o decodificador de vídeo 30 também podem utilizar informação de restrição de fluxo de bits, tal como o número máximo de imagens a ser armazenado no DPB e/ou o número de imagens a serem reordenadas, ao codificar valores de identificador de imagem de referência.
[0066] Em alguns exemplos, o VPS, adicionalmente ou alternativamente, inclui dados indicativos de parâmetros de decodificador de referência hipotético (HRD). Os parâmetros HRD incluem, por exemplo, os dados descrevendo os momentos nos quais os dados devem ser removidos a partir de um armazenador temporário de imagens codificadas (CPB). Nos decodificadores, tal como o decodificador de vídeo 30, o CTB representa um armazenador temporário no qual os dados de vídeo codificados são armazenados até que os dados estejam prontos para a decodificação. Os decodificadores tal como o decodificador de vídeo 30 também podem incluir um armazenador temporário de imagem decodificada (DPB), no qual os dados de vídeo decodificado são armazenados, por exemplo, para serem usados como dados de referência para dados inter preditos e para reordenamento das imagens a partir de uma ordem de decodificação para uma ordem de exibição.
[0067] Os parâmetros HRD podem incluir dados indicando quando imagens específicas devem ser removidas do CPB, e decodificados. Assim, o codificador de vídeo 20 pode codificar os parâmetros HRD do VPS para indicar quando as imagens podem ser removidas do CPB e decodificadas, enquanto o decodificador de vídeo 30 pode decodificar os parâmetros HRD do VPS para determinar quando remover as imagens a partir do CPB. Similarmente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem codificar imagens de acordo com os parâmetros HRD, por exemplo, em uma ordem de codificação indicada pelos parâmetros HRD. Dessa maneira, o codificador de vídeo 20 e/ou decodificador de vídeo 30 pode ser configurado para codificar um VPS incluindo os parâmetros HRD, e codificar os dados de vídeo correspondendo ao VPS com base ao menos em parte nos parâmetros HRD.
[0068] O VPS também pode incluir os dados de extensão indicando se o VPS foi estendido, por exemplo, para prover dados para uma ou mais ferramentas adicionais de codificação. Tais ferramentas de codificação podem ser ferramentas que são diferentes daquelas de um padrão de codificação de vídeo correspondente, tal como, por exemplo, ITU-T H.264/AVC ou o padrão HEV vindouro. Além disso, tais ferramentas de codificação podem exigir dados de configuração. Esses dados de configuração podem ser providos nos dados de extensão de um VPS. Dessa maneira, ao codificar os dados de vídeo utilizando tais ferramentas de codificação, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem codificar um VPS indicando se os dados de extensão estão presentes, e se estiverem, os dados de extensão do VPS. Além disso, quando tais dados de extensão estiverem presentes, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode executar as ferramentas de codificação correspondentes para codificar os dados de vídeo utilizando os dados de extensão.
[0069] Vários padrões de codificação de vídeo definem a sintaxe correspondente, semântica e processo de decodificação para fluxo de bits livre de erro, qualquer um dos quais se ajusta a certo perfil ou nível. Os padrões de codificação de vídeo não especificam o codificador, mas o codificador tem a tarefa de garantir que os fluxos de bit gerados estejam de acordo com o padrão para um decodificador. No contexto de padrões de codificação de vídeo, um “perfil” corresponde a um subconjunto de algoritmos, aspectos, ou ferramentas e restrições que se aplicam aos mesmos. Conforme definido pelo padrão H.264, por exemplo, um “perfil” é um subconjunto da sintaxe de fluxo de bits inteira que é especificada pelo padrão H.264. Um “nível” corresponde às limitações do consumo de recurso de decodificador, tal como, por exemplo, memória de decodificador e computação, que são relacionadas à resolução das imagens, taxa de bits, e taxa de processamento de blocos. Um perfil pode ser sinalizado com um valor profile_idc (indicador de perfil), enquanto que um nível pode ser sinalizado com um valor level_idc (indicador de nível). De acordo com as técnicas dessa revelação, informação de nível e perfil pode ser especificada em descrições de ponto de operação, como discutido acima.
[0070] Em alguns exemplos, cada camada ou vista de um fluxo de bits se refere ao conjunto de parâmetros de vídeo (VPS), e um Conjunto de Parâmetros de Sequência em Camada (LPS) pode estar ativo para cada camada. Um LPS pode ser mantido o mais leve possível mediante referência ao VPS no desenho. O LPS pode incluir qualquer uma ou toda informação discutida abaixo. O LPS pode incluir uma indicação de dimensão de amostra que indica, para cada dimensão, um índice para cada dimensão. Por exemplo, se em um VPS, um índice para resolução espacial 0 for atribuído a uma característica espacial de 320x240 e um índice para resolução espacial 1 for atribuído a 640x480, e a camada atual deve ser atribuída com resolução de 640x480, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode codificar um elemento de sintaxe com um valor de 1 para a camada atual. Isto é, o codificador de vídeo 20 pode sinalizar um valor de 1 para o elemento de sintaxe para especificar a resolução de 640x480, ao passo que o codificador de vídeo 30 pode determinar que uma camada atual com um elemento de sintaxe tendo um valor de 1 tenha uma resolução de 640x480, com base no valor de 1 para o elemento de sintaxe.
[0071] O LPS também pode incluir parâmetros de controle e sinalizadores de habilitação/desabilitação de ferramenta. Por exemplo, os parâmetros de controle e os sinalizadores de habilitação/desabilitação de ferramenta podem incluir um pcm_bit_depth_luma_minus1, um pcm_bit_depth_chroma_minus1, um loop_filter_across_slice_flag, um pcm_loop_filter_disable_flag, um ou mais elementos de sintaxe relacionados a bloco de pixels, um chroma_pred_from_luma_enable_flag, uma sample_adaptive_offset_enabled_flag, um adaptive_loop_filter_enabled_flag e uma hierarquia de unidade de codificação (CU).
[0072] O LPS pode incluir ainda informação de outros tipos de conjuntos de parâmetros que se aplicam a uma fatia, um grupo de fatias, uma imagem, ou várias imagens. Cada um desses conjuntos de parâmetro pode se referir a um conjunto específico de parâmetros de imagem (PPS).
[0073] O codificador de vídeo, tal como o codificador de vídeo 20 e o decodificador de vídeo 30, podem ser configurados para garantir e/ou determinar que um PPS não se refira a um LPS ou a um VPS. Assim, o codificador de vídeo pode garantir que cada PPS de um fluxo de bits não se refira a um LPS ou a um VPS. A análise de um PPS pode ser independente. Quando um PPS inclui um ou mais dos mesmos elementos de sintaxe que aqueles de um VPS ou de um LPS, os elementos de sintaxe do PPS podem sobrescrever aqueles do VPS ou LPS.
[0074] Um codificador de vídeo pode adicionalmente ser configurado para codificar um conjunto de parâmetros de agrupamento (GPS) que agrupa em conjunto todos os conjuntos de parâmetro. O codificador de vídeo pode codificar uma pluralidade de diferentes grupos dentro do GPS, cada um tendo identificadores (IDs) GPS individuais. Cada um dos grupos no GPS pode incluir uma combinação diferente de conjuntos de parâmetros. Dessa maneira, um cabeçalho de fatia precisa incluir apenas uma referência a um id de GPS correspondente, e não precisa incluir uma indicação de um tipo de conjunto de parâmetros. O Pedido de Patente Provisional dos Estados Unidos N° 61/590.702, depositado em 25 de janeiro de 2012 também descreve as técnicas nas quais diferentes tipos de conjuntos de parâmetros são agrupados em conjunto e apenas o ID do Agrupamento de Conjunto de Parâmetros RBSP é sinalizado no cabeçalho de fatia em maior detalhe.
[0075] Conforme discutido acima, o codificador de vídeo, tal como o codificador de vídeo 20 ou o decodificador de vídeo 30, pode ser configurado para codificar um conjunto de parâmetros de vídeo e/ou um conjunto de parâmetros de agrupamento. Exemplos de um conjunto de parâmetros de vídeo são discutidos em maior detalhe com relação à Figura 5, enquanto que exemplos de um conjunto de parâmetros de agrupamento são discutidos em maior detalhe com relação à Figura 6.
[0076] O codificador de vídeo 20 pode adicionalmente enviar os dados de sintaxe, tal como dados de sintaxe baseados em bloco, dados de sintaxe baseados em quadro, e dados de sintaxe baseados em GOP, para o decodificador de vídeo 30, por exemplo, em um cabeçalho de quadro, um cabeçalho de bloco, um cabeçalho de fatia, ou um cabeçalho GOP. Os dados de sintaxe GOP podem descrever um número de quadros no GOP respectivo, e os dados de sintaxe de quadro podem indicar um modo de codificação/predição usado para codificar o quadro correspondente.
[0077] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser implementados independentemente como qualquer um de uma variedade de circuitos de codificador ou decodificador adequado, conforme aplicável, tal como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de portas programáveis no campo (FPGAs), circuitos lógicos discretos, software, hardware, firmware ou quaisquer combinações dos mesmos. Cada codificador de vídeo 20 e decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador de vídeo combinado (CODEC). Um dispositivo incluindo 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.
[0078] A Figura 2 é um diagrama de blocos ilustrando um exemplo do codificador de vídeo 20 que pode implementar técnicas para codificar os conjuntos de parâmetro e unidades NAL para uma ou mais camadas de dados de vídeo. O codificador de vídeo 20 pode realizar codificação, intra e inter, dos blocos de vídeo dentro das fatias de vídeo. A codificação intra se baseia em predição espacial para reduzir ou remover a redundância espacial em vídeo dentro de um determinado quadro de vídeo ou imagem. Codificação inter baseia-se em predição temporal para reduzir ou remover a redundância temporal em vídeo dentro de quadros adjacentes ou imagens de uma sequência de vídeo. Modo intra (modo I) pode se referir a qualquer um de vários modos de codificação de base espacial. Os modos inter, tal como predição unidirecional (modo P) ou predição bidirecional (modo B), pode se referir a qualquer um dos vários modos de codificação de base temporal.
[0079] Conforme mostrado na Figura 2, o codificador de vídeo 20 recebe um bloco de vídeo atual dentro de um quadro de vídeo a ser codificado. No exemplo da Figura 2, o codificador de vídeo 20 inclui a unidade de seleção de modo 40, memória de imagem de referência 64, somador 50, unidade de processamento de transformada 52, unidade de quantização 54, e unidade de codificação de entropia 56. A unidade de seleção de modo 40, por sua vez, inclui unidade de compensação de movimento 44, unidade de estimação de movimento 42, unidade de predição intra 46, e unidade de partição 48. Para reconstrução de bloco de vídeo, o codificador de vídeo 20 também inclui unidade de quantização inversa 58, unidade de transformada inversa 60, e somador 62. Um filtro de desblocagem (não mostrado na Figura 2) pode também ser incluído para filtrar os limites de bloco para remover artefatos de blocagem a partir do vídeo reconstruído. Se desejado, o filtro de desblocagem tipicamente filtraria a saída do somador 62. Filtros adicionais (em loop ou pós-loop) também podem ser usados além do filtro de desblocagem. Tais filtros não são mostrados para brevidade, mas se desejado podem filtrar a saída do somador 60 (como um filtro em loop).
[0080] Durante o processo de codificação, o codificador de vídeo 20 recebe um quadro ou fatia de vídeo a ser codificado. O quadro ou fatia pode ser dividido em múltiplos blocos de vídeo. A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 realizam codificação inter preditiva do bloco de vídeo recebido em relação a um ou mais blocos em um ou mais quadros de referência para prover predição temporal. A unidade de predição intra 46 pode alternativamente realizar codificação preditiva intra do bloco de vídeo recebido em relação a um ou mais blocos vizinhos no mesmo quadro ou fatia que o bloco a ser codificado para prover predição espacial. O codificador de vídeo 20 pode realizar múltiplas passagens de codificação, por exemplo, para selecionar um modo de codificação apropriado para cada bloco dos dados de vídeo.
[0081] Além disso, a unidade de partição 48 pode dividir os blocos de dados de vídeo em sub-blocos, com base na avaliação de esquemas de divisão anteriores em passagens de codificação anteriores. Por exemplo, a unidade de partição 48 pode inicialmente dividir um quadro ou fatia em LCUs, e dividir cada uma das LCUs em sub-CUs com base em análise de distorção de taxa (por exemplo, otimização de distorção de taxa). A unidade de seleção de modo 40 pode adicionalmente produzir uma estrutura de dados quadtree indicativa da divisão de uma LCU em sub-CUs. As CUs de nó folha do quadtree podem incluir uma ou mais PUs e uma ou mais TUs.
[0082] A unidade de seleção de modo 40 pode selecionar um dos modos de codificação, intra ou inter, por exemplo, com base nos resultados de erro, e proporciona o bloco codificado intra ou inter resultante ao somador 50 para gerar dados residuais de bloco e ao somador 62 para reconstruir o bloco codificado para uso como um quadro de referência. A unidade de seleção de modo 40 também fornece elementos de sintaxe, tais como os vetores de movimento, indicadores de modo intra, informação de parâmetros, e outra tal informação de sintaxe, à unidade de codificação de entropia 56.
[0083] A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 podem ser altamente integradas, porém são ilustradas separadamente para propósitos conceptuais. A estimação de movimento, realizada pela unidade de estimação de movimento 42, é o processo de gerar vetores de movimento, os quais estimam o movimento para os blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo dentro de um quadro de vídeo atual ou imagem em relação a um bloco preditivo dentro de um quadro de referência (ou outra unidade codificada) relativa ao bloco atual sendo codificado dentro do quadro atual (ou outra unidade codificada). Um bloco preditivo é um bloco que combina estreitamente com o bloco a ser codificado, em termos de diferença de pixel, o que pode ser determinado pela soma da diferença absoluta (SAD), soma da diferença ao quadrado (SSD), ou outra métrica de diferença. Em alguns exemplos, o codificador de vídeo 20 pode calcular valores para posições de pixel de sub-inteiro de imagens de referência armazenadas na memória de imagem de referência 64. Por exemplo, o codificador de vídeo 20 pode interpolar valores de posições de um quarto de pixel, posições de um oitavo de pixel, ou outras posições fracionárias de pixel da imagem de referência. Portanto, a unidade de estimação de movimento 42 pode realizar uma busca de movimento em relação às posições de pixel integral e posições fracionárias de pixel e produzir um vetor de movimento, com exatidão fracionária de pixel.
[0084] A unidade de estimação de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia codificada inter, mediante comparação da posição da PU em relação à posição de um bloco preditivo de uma imagem de referência. A imagem de referência pode ser selecionada a partir de uma primeira lista de imagens de referência (Lista 0) ou de uma segunda lista de imagens de referência (Lista 1), cada uma das quais identifica uma ou mais imagens de referência armazenadas na memória de imagens de referência 64. A unidade de estimação de movimento 42 envia o vetor de movimento calculado para a unidade de codificação de entropia 56 e unidade de compensação de movimento 44.
[0085] A compensação de movimento, realizada pela unidade de compensação de movimento 44, pode envolver buscar ou gerar o bloco preditivo com base no vetor de movimento determinado pela unidade de estimação de movimento 42. Outra vez, a unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 podem ser integradas funcionalmente, 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 aponta o vetor de movimento em uma das listas de imagem de referência. O somador 50 forma um bloco de vídeo residual mediante subtração de valores de pixel do bloco preditivo a partir dos valores de pixel do bloco de vídeo atual sendo codificado, formando valores de diferença de pixel, como discutido abaixo. Em geral, a unidade de estimação de movimento 42 realiza estimação de movimento em relação aos componentes de luma, e a unidade de compensação de movimento 44 utiliza vetores de movimento calculados com base nos componentes de luma para ambos, os componentes croma e os componentes de luma. A 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 pelo decodificador de vídeo 30 na decodificação dos blocos de vídeo da fatia de vídeo.
[0086] A unidade de predição intra 46 pode predizer no modo intra um bloco atual, como uma alternativa à predição inter realizada pela unidade de estimação de movimento 42 e unidade de compensação de movimento 44, conforme descrito acima. Especificamente, a unidade de predição intra 46 pode determinar um modo de predição intra para ser usado para codificar um bloco atual. Em alguns exemplos, a unidade de predição intra 46 pode codificar um bloco atual utilizando vários modos de predição intra, por exemplo, durante passagens separadas de codificação, e a unidade de predição intra 46 (ou unidade de seleção de modo 40, em alguns exemplos) pode selecionar um modo de predição intra apropriado para usar a partir dos modos testados.
[0087] Por exemplo, a unidade de predição intra 46 pode calcular os valores de distorção de taxa utilizando uma análise de distorção de taxa para os vários modos de predição intra, testados, e selecionar o modo de predição intra, tendo as melhores características de distorção de taxa dentre os modos testados. A análise de distorção de taxa geralmente determina uma quantidade de distorção (ou erro) entre um bloco codificado e um bloco original, não codificado que foi codificado para produzir o bloco codificado, assim como uma taxa de bits (isto é, um número de bits) usada para produzir o bloco codificado. A unidade de predição intra 46 pode calcular as proporções a partir das distorções e taxas para os vários blocos codificados para determinar qual modo de predição intra, apresenta o melhor valor de distorção de taxa para o bloco.
[0088] Após sel ecionar um modo de predição intra para um bloco, a unidade de predição intra 46 pode prover informação indicativa do modo de predição intra selecionado para o bloco à unidade de codificação de entropia 56. A unidade de codificação de entropia 56 pode codificar a informação indicando o modo de predição intra selecionado. O codificador de vídeo 20 pode incluir no fluxo de bits transmitido os dados de configuração, os quais podem incluir uma pluralidade de tabelas de índice de modo de predição intra e uma pluralidade de tabelas de índice de modo de predição, modificadas (também referidas como tabelas de mapeamento de palavra-chave), definições de contextos de codificação para vários blocos, e indicações de um modo de predição intra mais provável, uma tabela de índice de modo de predição intra, e uma tabela de índice de modo de predição intra, modificada para usar para cada um dos contextos.
[0089] O codificador de vídeo 20 forma um bloco de vídeo residual mediante subtração dos dados de predição a partir da unidade de seleção de modo 40 a partir do bloco de vídeo original sendo codificado. O somador 50 representa o componente ou os componentes que realizam essa operação de subtração. A unidade de processamento de transformada 52 aplica uma transformada, tal como uma transformada discreta de cosseno (DCT) ou uma transformada similar de forma conceptual, ao bloco residual, produzindo um bloco de vídeo compreendendo valores de coeficiente de transformada residual. A unidade de processamento de transformada 52 pode realizar outras transformadas que são similares de forma conceptual à DCT. Transformadas de ondaleta, transformadas de inteiros, transformadas de subbanda, ou outros tipos de transformadas também poderiam ser usados.
[0090] Em todo caso, a unidade de processamento de transformada 52 aplica a transformada ao bloco residual, produzindo um bloco de coeficientes de transformada residual. A transformada pode converter a informação residual a partir de um domínio de valor de pixel para um domínio de transformada, tal como um domínio de frequência. A unidade de processamento de transformada 52 pode enviar os coeficientes de transformada resultantes para a unidade de quantização 54. A unidade de quantização 54 quantiza os coeficientes de transformada para reduzir ainda mais a taxa de bits. O processo de quantização pode reduzir a profundidade de bits associada a alguns ou a todos os coeficientes. O grau de quantização pode ser modificado mediante ajuste de um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54 pode então realizar uma varredura da matriz incluindo os coeficientes de transformada, quantizados. Alternativamente, a unidade de codificação de entropia 56 pode realizar a varredura.
[0091] Após a quantização, a unidade de codificação de entropia 56 codifica por entropia os coeficientes de transformada quantizados. Por exemplo, a unidade de codificação de entropia 56 pode realizar codificação de comprimento variável de contexto adaptativo (CAVLC), codificação aritmética binária de contexto adaptativo (CABAC), codificação aritmética binária de contexto adaptativo baseado em sintaxe (SBAC), codificação de entropia de divisão de intervalo de probabilidade (PIPE) ou outra técnica de codificação de entropia. No caso de codificação de entropia baseado em contexto, o contexto pode se basear em blocos adjacentes. Após a codificação de entropia pela unidade de codificação de entropia 56, o fluxo de bits codificado pode ser transmitido para outro dispositivo (por exemplo, o decodificador de vídeo 30) ou arquivado para posterior transmissão ou recuperação.
[0092] A unidade de quantização inversa 58 e a unidade de transformada inversa 60 aplicam quantização inversa e transformação inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel, por exemplo, para posterior uso como um bloco de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência mediante adição do bloco residual a um bloco preditivo de um dos quadros de um armazenamento de quadro de referência na memória 64. A unidade de compensação de movimento 44 também pode aplicar um ou mais filtros de interpolação ao bloco residual reconstruído para calcular valores de pixel de sub-inteiro para uso em estimação de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição de movimento compensado produzido pela unidade de compensação de movimento 44 para produzir um bloco de vídeo reconstruído para armazenamento no meio de armazenamento de quadro de referência da memória 64. O bloco de vídeo reconstruído pode ser usado pela unidade de estimação de movimento 42 e pela unidade de compensação de movimento 44 como um bloco de referência para codificação inter de um bloco em um quadro de vídeo subsequente.
[0093] O codificador de vídeo 20 pode ser adicionalmente configurado para codificar um conjunto de parâmetros de vídeo (VPS), um conjunto de parâmetros de camada (LPS) e/ou um conjunto de parâmetros de agrupamento, de acordo com as técnicas dessa revelação, assim como um conjunto de parâmetros de sequência (SPS), conjunto de parâmetros de imagem (PPS), conjunto de parâmetros de adaptação (APS), ou outras tais estruturas de dados de sinalização. Mais especificamente, a unidade de codificação de entropia 56 pode ser configurada para codificar qualquer uma ou todas essas estruturas de dados. Até o ponto em que os parâmetros dessas várias estruturas de dados podem impactar o desempenho de codificação, a unidade de seleção de modo 40 pode selecionar parâmetros apropriados e passar os parâmetros para a unidade de codificação de entropia 56 para inclusão, por exemplo, dentro de um VPS. Outros parâmetros, tal como um número de camadas temporais, um número de imagens a serem reordenadas e um número de imagens a serem armazenadas em um armazenador temporário de imagens decodificadas, podem ser selecionados por um usuário, por exemplo, um administrador. Em outros exemplos, certos parâmetros, tal como os parâmetros HRD, podem surgir através do processo de codificação.
[0094] A unidade de codificação de entropia 56 pode codificar um VPS para incluir qualquer um ou todos os vários tipos de dados descritos por essa revelação. O codificador de vídeo 20 também pode codificar os dados de acordo com os parâmetros do VPS. Mais especificamente, o codificador de vídeo 20 pode codificar sequências de imagens entre uma ou mais camadas de dados de vídeo aos quais corresponde o VPS de acordo com os parâmetros do VPS.
[0095] Dessa maneira, o codificador de vídeo 20 da Figura 2 representa um exemplo de um codificador de vídeo configurado para codificar um conjunto de parâmetros de vídeo (VPS) para uma ou mais camadas de dados de vídeo, em que cada uma ou mais camadas de dados de vídeo se refere ao VPS, e codificar uma ou mais camadas de dados de vídeo com base ao menos em parte no VPS.
[0096] Embora descrito geralmente com relação a um codificador de vídeo, a codificação de um VPS pode ser realizada por outros dispositivos, por exemplo, um elemento de rede com conhecimento de mídia (MANE). Um MANE pode corresponder a um elemento de rede entre um dispositivo de origem (tal como o dispositivo de origem 12 da Figura 1) e um dispositivo de destino (tal como o dispositivo de destino 14). O MANE pode ser configurado para codificar um VPS de acordo com as técnicas dessa revelação. O MANE pode gerar o VPS utilizando dados ou outras estruturas de dados recebidas pelo MANE, por exemplo, conjuntos de parâmetros de sequência.
[0097] A Figura 3 é um diagrama de blocos ilustrando um exemplo de decodificador de vídeo 30 que pode implementar técnicas para codificar conjuntos de parâmetros e unidades NAL para uma ou mais camadas de dados de vídeo. No exemplo da Figura 3, o decodificador de vídeo 30 inclui uma unidade de decodificação de entropia 70, unidade de compensação de movimento 72, unidade de predição intra 74, unidade de quantização inversa 76, unidade de transformação inversa 78, memória de imagem de referência 82 e somador 80. A memória de imagem de referência 82 também pode ser referida como um “armazenador temporário de imagem decodificada”, ou DPB. O decodificador de vídeo 30 pode, em alguns exemplos, realizar uma passagem de decodificação geralmente recíproca à passagem de codificação descrita com relação ao codificador de vídeo 20 (Figura 2). A unidade de compensação de movimento 72 pode gerar dados de predição com base nos vetores de movimento recebidos a partir da unidade de decodificação de entropia 70, enquanto a unidade de predição intra 74 pode gerar dados de predição com base nos indicadores de modo de predição intra recebidos a partir da unidade de decodificação de entropia 70.
[0098] Durante o processo de decodificação, o decodificador de vídeo 30 recebe um fluxo de bits de vídeo codificado que representa os blocos de vídeo de uma fatia de vídeo codificada e elementos de sintaxe associados a partir do codificador de vídeo 20. A unidade de decodificação de entropia 70 do decodificador de vídeo 30 decodifica por entropia o fluxo de bits para gerar coeficientes quantizados, vetores de movimento, e outros elementos de sintaxe. A unidade de decodificação de entropia 70 envia os vetores de movimento e outros elementos de sintaxe para a unidade de compensação de movimento 72. O decodificador de vídeo 30 pode receber os elementos de sintaxe no nível de fatia de vídeo e/ou no nível de bloco de vídeo.
[0099] Quando a fatia de vídeo é codificada como uma fatia codificada intra (I), a unidade de predição intra 74 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual com base em um modo de predição intra sinalizado e dados a partir de blocos previamente decodificados do quadro ou imagem atual. Quando o quadro de vídeo é codificado como uma fatia codificada inter (isto é, B, P ou GPB), a unidade de compensação de movimento 72 produz blocos preditivos para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe recebidos a partir da unidade de decodificação de entropia 70. Os blocos preditivos podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagem de referência. O decodificador de vídeo 30 pode construir as listas de quadro de referência, Lista 0 e Lista 1, utilizando técnicas de construção padrão com base nas imagens de referência armazenadas na memória de imagem de referência 82.
[00100] A unidade de compensação de movimento 72 determina a informação de predição para um bloco de vídeo da fatia de vídeo atual mediante análise dos vetores de movimento e outros elementos de sintaxe, e utiliza a informação de predição para produzir os blocos preditivos para o bloco de vídeo atual sendo decodificado. Por exemplo, a unidade de compensação de movimento 72 utiliza alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, predição intra ou inter) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de predição inter (por exemplo, fatia B, fatia P, ou fatia GPB), informação 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 codificado inter, da fatia; status de predição inter para cada bloco de vídeo codificado inter, da fatia, e outra informação para decodificar os blocos de vídeo na fatia de vídeo atual.
[00101] A unidade de compensação de movimento 72 também pode realizar interpolação com base nos filtros de interpolação. A unidade de compensação de movimento 72 pode usar filtros de interpolação conforme usado pelo codificador de vídeo 20 durante a codificação dos blocos de vídeo para calcular os valores interpolados para pixels de inteiro secundário de blocos de referência. Nesse caso, a unidade de compensação de movimento 72 pode determinar os filtros de interpolação usados pelo codificador de vídeo 20 a partir dos elementos de sintaxe recebidos e usar os filtros de interpolação para produzir os blocos preditivos.
[00102] A unidade de quantização inversa 76 quantiza de forma inversa, isto é, desquantiza, os coeficientes de transformada quantizados providos no fluxo de bits e decodificados pela unidade de decodificação de entropia 80. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização QPY calculado pelo decodificador de vídeo 30 para cada bloco de vídeo na fatia de vídeo para determinar um grau de quantização e, similarmente, um grau de quantização inversa que deve ser aplicado. A unidade de transformada inversa 78 aplica uma transformada inversa, por exemplo, uma DCT inversa, uma transformada de número inteiro inversa, ou um processo de transformada inversa semelhante de forma conceptual, aos coeficientes de transformada para produzir blocos residuais no domínio de pixel.
[00103] Após a unidade de compensação de movimento 72 gerar o bloco preditivo para o bloco de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe, o decodificador de vídeo 30 forma um bloco de vídeo decodificado pela soma dos blocos residuais da unidade de transformada inversa 78 com os blocos preditivos correspondentes gerados pela unidade de compensação de movimento 72. O somador 90 representa o componente, ou componentes, que realiza essa operação de soma. Se desejado, um filtro de desblocagem também pode ser aplicado para filtrar os blocos decodificados para remover os artefatos de blocagem. Outros filtros de circuito fechado (no circuito fechado de codificação ou após o circuito fechado de codificação) também podem ser usados para transições suaves de pixel, ou de outro modo para aperfeiçoar a qualidade de vídeo. Os blocos de vídeo decodificados em um determinado quadro ou imagem são então armazenados na memória de imagem de referência 82, que armazena as imagens de referência usadas para compensação de movimento subsequente. A memória de imagem de referência 82 também armazena o vídeo decodificado para apresentação posterior em um dispositivo de exibição, tal como o dispositivo de exibição 32 da Figura 1.
[00104] De acordo com as técnicas dessa revelação, o decodificador de vídeo 30 pode decodificar um conjunto de parâmetros de vídeo (VPS), um conjunto de parâmetros de camada (LPS), e/ou um conjunto de parâmetros de agrupamento, de acordo com as técnicas dessa revelação, assim como um conjunto de parâmetros de sequência (SPS), conjunto de parâmetros de imagem (PPS), conjunto de parâmetros de adaptação (APS), ou outras tais estruturas de dados de sinalização. Mais especificamente, a unidade de decodificação de entropia 70 pode ser configurada para decodificar qualquer uma ou todas essas estruturas de dados. Mediante decodificação dessas várias estruturas de dados, a unidade de decodificação de entropia 70 pode determinar os parâmetros a serem usados para decodificar dados de vídeo correspondentes. Por exemplo, o decodificador de vídeo 30 pode decodificar sequências correspondentes de dados de vídeo de uma ou mais camadas utilizando parâmetros de um VPS decodificado.
[00105] Embora não mostrado na Figura 3, o de decodificador de vídeo 30 pode adicionalmente incluir um armazenador temporário de imagens codificadas (CPB). O CPB normalmente seria fornecido antes da unidade de decodificação de entropia 70. Alternativamente, o CPB pode ser acoplado à unidade de decodificação de entropia 70 para armazenamento temporário, ou na saída da unidade de decodificação de entropia 70 para armazenar dados decodificados por entropia até que tais dados devam ser decodificados. Em geral, o CPB armazena os dados de vídeo codificados até que os dados de vídeo codificados devam ser decodificados, por exemplo, conforme indicado pelos parâmetros HRD, os quais o codificador de vídeo 30 pode extrair de um VPS decodificado. Similarmente, outros elementos do decodificador de vídeo 30 podem ser configurados para decodificar os dados de vídeo utilizando, por exemplo, o VPS. Por exemplo, o decodificador de vídeo 30 pode decodificar identificadores temporais para imagens de várias camadas temporais, dados indicando um número de imagens a serem reordenadas e/ou armazenadas na memória d imagem de referência 82 (representando um DPB).
[00106] Além disso, o decodificador de vídeo 30 pode incluir unidades de processamento adicionais para processar os dados de vídeo de acordo com as várias ferramentas de codificação providas pelas extensões de um padrão de codificação de vídeo. Alternativamente, elementos existentes de decodificador de vídeo 30 mostrados na Figura 3 podem ser configurados para executar as ferramentas de codificação de tais extensões. A unidade de decodificação de entropia 70 pode ser configurada para decodificar os dados de extensão VPS e prover tais dados de extensão às unidades configuradas para executar as ferramentas de codificação providas pelas extensões.
[00107] Des sa maneira, o decodificador de vídeo 30 da Figura 3 representa um exemplo de um decodificador de vídeo configurado para codificar um conjunto de parâmetros de vídeo (VPS) para uma ou mais camadas de dados de vídeo, em que cada uma da uma ou mais camadas de dados de vídeo se refere ao VPS, e codificar a uma ou mais camadas de dados de vídeo com base ao menos em parte no VPS.
[00108] Embora descrito geralmente com relação a um decodificador de vídeo, a decodificação de um VPS pode ser realizada por outros dispositivos, por exemplo, um elemento de rede com conhecimento de mídia (MANE). O MANE pode ser configurado para decodificar um VPS de acordo com as técnicas dessa revelação. O MANE pode adicionalmente gerar outros dados de conjunto de parâmetros, tal como um ou mais conjuntos de parâmetro de sequência, utilizando os dados do VPS. Dessa maneira, o MANE pode prover compatibilidade retroativa com padrões anteriores, tal como ITU-T H.264/AVC.
[00109] A Figura 4 é um diagrama conceptual ilustrando um padrão de predição MVC exemplar. A codificação de vídeo de múltiplas vistas (MVC) é uma extensão de ITU-T H.264/AVC. Uma técnica similar pode ser aplicada ao HEV. No exemplo da Figura 4, oito vistas (tendo IDs de vista “S0” a “S7”) são ilustradas, e doze locais temporais (“T0” a “T11”) são ilustrados para cada vista. Isto é, cada fileira na Figura 4 corresponde a uma vista, enquanto que cada coluna indica um local temporal.
[00110] Uma estrutura de predição MVC típica (incluindo tanto a predição de imagem inter dentro de cada vista como a predição de vista inter) para codificação de vídeo de múltiplas vistas é mostrada na Figura 4, onde as predições são indicadas pelas setas, o objeto apontado utilizando o objeto apontado a partir da referência de predição. Em MVC, a predição entre vistas é suportada pela compensação de movimento de disparidade, que pode usar a sintaxe da compensação de movimento AVC/H.264, mas permite que uma imagem em uma vista diferente seja usada como uma imagem de referência.
[00111] A codificação de duas vistas também poderia ser suportada por MVC, e uma das vantagens de MVC é que um codificador MVC poderia considerar mais do que duas vistas como uma entrada de vídeo 3D e um decodificador MVC pode decodificar tal representação de múltiplas vistas. Assim, qualquer meio de renderização com decodificador MVC pode ser configurado para receber conteúdo de vídeo 3D com mais do que duas vistas.
[00112] Embora MVC tenha uma assim chamada vista de base que pode ser decodificada pelos decodificadores AVC/H.264 e um par de vistas, estéreo, poderia ser suportado também por MVC, uma vantagem de MVC é que ele poderia suportar um exemplo que utiliza mais do que duas vistas como uma entrada de vídeo 3D e decodificar esse vídeo 3D representado pelas múltiplas vistas. Um meio de renderização de um cliente tendo um decodificador MVC pode esperar conteúdo de vídeo 3D com múltiplas vistas.
[00113] Uma ordem de decodificação MVC típica é referida como codificação de tempo em primeiro lugar. Uma unidade de acesso pode incluir imagens codificadas de todas as vistas para uma instância de tempo de saída. Por exemplo, cada uma das imagens do tempo T0 pode ser incluída em uma unidade de acesso comum, cada uma das imagens de tempo T1 pode ser incluída em uma segunda unidade de acesso comum, e assim por diante. A ordem de decodificação não é necessariamente idêntica à ordem de saída ou de exibição.
[00114] Os quadros na Figura 4 são indicados na interseção de cada fileira e de cada coluna na Figura 4 utilizando um bloco sombreado incluindo uma letra, designando se o quadro correspondente é codificado intra (isto é, um quadro I), ou codificado inter 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 o quadro apontado para utiliza o objeto apontado a partir de, para referência de predição. Por exemplo, o quadro P da vista S2 no local temporal T0 é predito a partir do quadro Ida vista S0 no local temporal T0.
[00115] Como com a codificação de vídeo de vista única, os quadros de uma sequência de vídeo de codificação de vídeo de múltiplas vistas podem ser codificados de forma preditiva com relação aos quadros em diferentes locais temporais. Por exemplo, o quadro B da vista S0 no local temporal T1 tem uma seta apontada para ele a partir do quadro I da vista S0 no local temporal T0, indicando que o quadro B é predito a partir do quadro I. Adicionalmente, contudo, no contexto de codificação de vídeo de múltiplas vistas, os quadros podem ser preditos em vista inter. Isto é, um componente de vista pode usar os componentes de vista em outras vistas para referência. Em MVC, por exemplo, predição entre vistas é realizada como se o componente de vista em outra vista fosse uma referência de predição inter. As referências entre vistas, potenciais são sinalizadas na extensão MVC de Conjunto de Parâmetros de Sequência (SPS) e podem ser modificadas pelo processo de construção de lista de imagens de referência, que possibilita o ordenamento flexível das referências de predição inter ou de predição entre vistas.
[00116] Na extensão MVC de H.264/AVC, como um exemplo, a predição entre vistas é suportada por compensação de movimento de disparidade, que utiliza a sintaxe da compensação de movimento H.264/AVC, mas permite que uma imagem em uma vista diferente seja usada como uma imagem de referência. A codificação de duas vistas pode ser suportada por MVC, que é geralmente referido como vistas estereoscópicas. Uma das vantagens de MVC é que um codificador MVC poderia considerar mais do que duas vistas como uma entrada de vídeo 3D e um decodificador MVC pode decodificar tal representação de múltiplas vistas. Assim, um dispositivo de renderização com um decodificador MVC pode esperar conteúdos de vídeo 3D com mais do que duas vistas.
[00117] Em MVC, a predição entre vistas (IVP) é permitida entre as imagens na mesma unidade de acesso (isto é, com a mesma instância de tempo). Uma unidade de acesso é, geralmente, uma unidade de dados incluindo todos os componentes de vista (por exemplo, todas as unidades NAL) para uma instância temporal comum. Assim, em MVC, a predição entre vistas é permitida entre as imagens na mesma unidade de acesso. Ao codificar uma imagem em uma das vistas não base, a imagem pode ser adicionada em uma lista de imagens de referência, se ela estiver em uma vista diferente, mas com a mesma instância de tempo (por exemplo, o mesmo valor POC, e desse modo na mesma unidade de acesso). Uma imagem de referência de predição entre vistas pode ser colocada em uma posição de uma lista de imagens de referência, exatamente como qualquer imagem de referência de predição inter.
[00118] No contexto de codificação de vídeo de múltiplas vistas, há dois tipos de vetores de movimento. Um deles é o vetor de movimento normal apontando para imagens de referência temporal, e o modo de predição inter correspondente e referido como predição de movimento compensado (MCP). O outro é o vetor de movimento de disparidade apontando para imagens em uma vista diferente, e o modo de predição entre vistas correspondente é referido como predição de disparidade compensada (DCP).
[00119] Em HEVC convencional, há dois modos para a predição de parâmetros de movimento: um deles é o modo de fusão, e o outro é a predição de vetor de movimento, avançada (AMVP). No modo de fusão, uma lista de candidatos de parâmetros de movimento (imagens de referência, e vetores de movimento) é construída onde os candidatos podem ser de blocos vizinhos espaciais ou temporais. Os blocos espacialmente e temporalmente adjacentes podem formar uma lista de candidatos, isto é, um conjunto de candidatos a partir do qual a informação de predição de movimento pode ser selecionada. Consequentemente, o codificador de vídeo 20 pode codificar os parâmetros de movimento escolhidos como informação de predição de movimento mediante codificação de um índice para a lista de candidatos. Após o decodificador de vídeo 30 ter decodificado o índice, todos os parâmetros de movimento do bloco correspondente onde os pontos de índice podem ser herdados, no modo de fusão.
[00120] Em AMVP, em conformidade com HEVC convencional, uma lista de candidatos de preditores de vetor de movimento para cada hipótese de movimento é derivada com base no índice de referência codificado. Essa lista inclui vetores de movimento de blocos adjacentes que são associados com o mesmo índice de referência assim como um preditor de vetor de movimento temporal o qual é derivado com base nos parâmetros de movimento do bloco adjacente do bloco co-localizado em uma imagem de referência temporal. Os vetores de movimento escolhidos são sinalizados mediante transmissão de um índice para a lista de candidatos. Além disso, os valores de índice de referência e diferenças de vetor de movimento também são sinalizados.
[00121] A Figura 4 provê vários exemplos de predição entre vistas. Quadros de vista S1, no exemplo da Figura 4, são ilustrados como sendo preditos a partir dos quadros em diferentes locais temporais da vista S1, assim como preditos entre vistas a partir dos quadros de vistas S0 e S2 nos mesmos locais temporais. Por exemplo, o quadro B da vista S1 no local temporal T1 é predito a partir de cada um dos quadros B da vista S1 nos locais temporais T0 e T2, assim como os quadros B das vistas S0 e S2 no local temporal T1.
[00122] No exemplo da Figura 4, letra “B” e letra “b” têm a finalidade de indicar diferentes relações hierárquicas entre os quadros, mais propriamente do que metodologias de codificação, diferentes. Em geral, os quadros “B” maiúsculo são relativamente superiores na hierarquia de predição do que os quadros “b” minúsculo. A Figura 4 ilustra também variações na hierarquia de predição utilizando diferentes níveis de sombreamento, onde uma quantidade maior de quadros de sombreamento (isto é, relativamente mais escuros) são superiores na hierarquia de predição do que aqueles quadros que têm menos sombreamento (isto é, relativamente mais claros). Por exemplo, todos os quadros I na Figura 4 são ilustrados com sombreamento total, enquanto que os quadros P têm um sombreamento de certo modo mais claro, e os quadros B (e quadros b minúsculo) têm vários níveis de sombreamento em relação uns aos outros, mas sempre mais claros do que o sombreamento dos quadros P e os quadros I.
[00123] Em geral, a hierarquia de predição é relacionada aos índices de ordem de vista, em que os quadros relativamente mais claros na hierarquia de predição devem ser decodificados antes de decodificar os quadros que são relativamente inferiores na hierarquia, de tal modo que aqueles quadros relativamente superiores na hierarquia podem ser usados como quadros de referência durante a decodificação dos quadros relativamente inferiores na hierarquia. Um índice de ordem de vista é um índice que indica a ordem de decodificação dos componentes de vista em uma unidade de acesso. Os índices de ordem de vista são implícitos na extensão SPS MVC, conforme especificado no Anexo H de H.264/AVC (o aperfeiçoamento de MVC). No SPS, para cada índice i, o view_id correspondente é sinalizado. Em alguns exemplos, a decodificação dos componentes de vista deve seguir a ordem ascendente do índice de ordem de vista. Se todas as vistas estiverem presentes, então os índices de ordem de vista estão em uma ordem consecutiva de 0 para num_views_minus_1.
[00124] Des sa maneira, os quadros usados como quadros de referência podem ser decodificados antes da decodificação dos quadros que são decodificados com referência aos quadros de referência. Um índice de ordem de vista é um índice que indica a ordem de decodificação dos componentes de vista em uma unidade de acesso. Para cada índice de ordem de vista i, o view_id correspondente é sinalizado. A decodificação dos componentes de vista segue a ordem ascendente dos índices de ordem de vista. Se todas as vistas forem apresentadas, então o conjunto de índices de ordem de vista pode compreender um conjunto consecutivamente ordenado de 0 até 1 menos o número completo de vistas.
[00125] Para certos quadros em níveis iguais da hierarquia, a ordem de decodificação pode não importar em relação uns aos outros. Por exemplo, o quadro I da vista S0 no local temporal T0 é usado como um quadro de referência para o quadro P da vista S2 no local temporal T0, o qual é por sua vez usado como um quadro de referência para o quadro P da vista S4 no local temporal T0. Consequentemente, o quadro I da vista S0 no local temporal T0 deve ser decodificado antes do quadro P da vista S2 no local temporal T0, o qual deve ser decodificado antes do quadro P da vista S4 no local temporal T0. Contudo, entre as vistas S1 e S3, uma ordem de decodificação não importa, porque as vistas S1 e S3 não se baseiam uma na outra para predição, mas em vez disso são preditas apenas a partir das vistas que são superiores na hierarquia de predição. Além disso, a vista S1 pode ser decodificada antes da vista S4, desde que a vista S1 seja decodificada após as vistas S0 e S2.
[00126] Dessa maneira, um ordenamento hierárquico pode ser usado para descrever as vistas S0 a S7. Deixemos a notação SA>SB significar que a vista SA deve ser decodificada antes da vista SB. Utilizando essa notação, S0>S2>S4>S6>S7, no exemplo da Figura 4. Também, com relação ao exemplo da Figura 4, S0>S1, S2>S1, S2>S3, S4>S3, S4>S5 e S6>S5. Qualquer ordem de decodificação para as vistas que não violam essas exigências é possível. Consequentemente, muitas ordens de decodificação diferentes são possíveis, apenas com certas limitações.
[00127] De acordo com as técnicas dessa revelação, cada uma das vistas S0-S7 pode ser considerada uma camada respectiva de um fluxo de bits correspondente. Assim, um VPS pode descrever parâmetros do fluxo de bits aplicável a qualquer uma ou a todas as vistas S0-S7, enquanto que conjuntos de parâmetros de camadas individuais podem ser providos para qualquer uma ou para todas as vistas S0-S7. Além disso, um conjunto de parâmetros de agrupamento pode ser provido para um grupo de conjuntos de parâmetro, de tal modo que fatias dentro das imagens individuais das vistas S0-S7 podem se referir simplesmente ao identificador de um conjunto de parâmetros de agrupamento.
[00128] Conforme mostrado na Figura 4, um componente de vista pode utilizar os componentes de vista em outras vistas para referência. Isso é referido como predição entre vistas. Em MVC, predição entre vistas é realizada como se o novo componente de vista em outra vista fosse uma referência de predição inter. O codificador de vídeo 20 e o decodificador de vídeo 30 podem codificar as potenciais referências entre vistas na extensão MVC de Conjunto de Parâmetros de Sequência (SPS) (conforme mostrado no exemplo da Tabela 1). O codificador de vídeo 20 e o decodificador de vídeo 30 podem adicionalmente modificar as potenciais referências entre vistas mediante execução do processo de construção de lista de imagens de referência, que pode possibilitar ordenamento flexível das referências de predição inter ou de predição entre vistas. TABELA 1
[00129] Na extensão SPS MVC mostrada na Tabela 1, para cada vista, o número de vistas que podem ser usadas para formar a lista 0 de imagens de referência e a lista 1 de imagens de referência é sinalizado. A relação de predição para uma imagem de âncora, conforme sinalizado na extensão SPS MVC, pode ser diferente da relação de predição para uma imagem não âncora (sinalizada na extensão SPS MVC) na mesma vista.
[00130] Os padrões de codificação de vídeo incluem ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC), incluindo suas extensões de Codificação Escalável de Vídeo (SVC) e Codificação de Vídeo de Múltiplas Vistas (MVC).
[00131] Além disso, há um novo padrão de codificação de vídeo, isto é, Codificação de Vídeo de Alta Eficiência (HEVC), sendo desenvolvido pelo Joint Collaboration Team em Video Coding (JCT-VC) de ITU-T Video Coding Experts Group (VCEG) e ISO/IEC Motion Picture Experts Group (MPEG). Um esboço de Trabalho Recente (WD) de HEVC, e referido como HEVC WD4, em seguida, está disponível a partir de http://phenix.int- evry.fr/jct/doc_end_user/documents/6_Torino/wg11/JCTVC- F803-v3.zip, denotado como HEVC WD4d1.
[00132] O mecanismo de conjuntos de parâmetros de imagem e de sequência desacopla a transmissão de informação que muda de forma infreqüente a partir da transmissão dos dados de blocos codificados. Os conjuntos de parâmetros de imagem e sequência podem, em algumas aplicações, ser conduzido “fora de banda” utilizando um mecanismo de transporte confiável. Uma carga útil de sequência de bytes brutos (RBSP) de conjunto de parâmetros de imagem pode incluir parâmetros que podem ser referidos pelas unidades de camada de abstração de rede (NAL) de fatia codificada de uma ou mais imagens codificadas. Um conjunto de parâmetros de sequência RBSP pode incluir parâmetros que podem ser referidos por um ou mais RBSPs de conjunto de parâmetros de imagem ou uma ou mais unidades NAL de informação de aperfeiçoamento suplementar (SEI) contendo uma mensagem SEI de período de armazenamento temporário. Um RBSP de conjunto de parâmetros de sequência pode incluir parâmetros que podem ser referidos por um ou mais RBSPs de conjunto de parâmetros de imagem ou uma ou mais unidades NAL de SEI contendo uma mensagem SEI de período de armazenamento temporário.
[00133] O conjunto de parâmetros de sequência pode incluir um conjunto opcional de parâmetros denominado informação de usabilidade de vídeo (VUI). VUI pode incluir as seguintes três categorias de informação opcional: informação de representação de vídeo, informação de Decodificador de Referência Hipotética (HRD), e informação de restrição de fluxo de bits. A informação de representação de vídeo inclui a relação de aspecto, mudanças de fase croma de informação relacionada à transformada de espaço de cor em relação à taxa de quadro e luma. HRD inclui parâmetros de armazenamento temporário de vídeo para as sequências de vídeo codificado. Informação de restrição de fluxo de bits inclui restrições sobre faixa de vetor de movimento, tamanho de armazenador temporário de imagem decodificada (DPB), e número de quadros de reordenamento e os tamanhos codificados de blocos (por exemplo, macroblocos ou unidades de codificação (CUs)) e imagens.
[00134] HEVC WD5 inclui o conjunto de parâmetros de adaptação de suporte (APS). O conceito de conjunto de parâmetros de adaptação (APS) também pode ser encontrado em JCTVC-F47, disponível a partir de http://phenix.int- evry.fr/jct/doc_end_user/documents/6_Torino/wg11/JCTVC- F747-v4.zip.
[00135] Um cabeçalho de unidade NAL unificado pode ser usado para fluxos de bits não escaláveis HEVC assim como fluxos de bits escaláveis em conformidade com potenciais extensões escaláveis ou de múltiplas vistas de HEVC. Um cabeçalho de unidade NAL unificado pode diferir do cabeçalho de unidade NAL de HEVC atual nos seguintes aspectos: pode haver um comprimento de cabeçalho de unidade NAL fixo para uma sequência integral de vídeo codificado, enquanto que o comprimento pode variar através de diferentes sequências de vídeo codificado, e codificação eficiente dos elementos de sintaxe de capacidade de escalação no cabeçalho de unidade NAL, e quando um elemento de sintaxe específico não é necessário ele não precisa estar presente. Em tal modelo, um conjunto de parâmetros ou tipo de unidade NAL diferente pode ser usado para o fluxo de bits integral.
[00136] A Figura 5 é um diagrama conceptual ilustrando o conjunto de parâmetros de vídeo (VPS) e vários conjuntos de parâmetros de camada (LPSs). As elipses após o segundo LPS na Figura 5 servem para indicar que pode haver qualquer número N de VPSs, onde N é um número inteiro. Por exemplo, cada camada (por exemplo, cada camada SVC ou cada vista MVC) pode ter um LPS correspondente. Um codificador de vídeo, tal como codificador de vídeo 20 ou o decodificador de vídeo 30, pode ser configurado para codificar um VPS e um ou mais LPSs, tal como aqueles ilustrados na Figura 5.
[00137] A Tabela 2 abaixo provê uma sintaxe de carga útil de sequência de bytes brutos (RBPS) exemplar para um VPS. TABELA 2
[00138] Os codificadores de vídeo podem ser configurados de tal modo que uma sequência de vídeo codificado (por exemplo, um fluxo de bits incluindo uma ou mais camadas) pode ter apenas um conjunto de parâmetros de vídeo ativo (VPS). O VPS pode ser encapsulado dentro de uma unidade NAL de um tipo específico. Por exemplo, o nal_unit_type para um VPS RBSP pode ser 10. Semânticas exemplares para o VPS da Tabela 2 são descritas abaixo:
[00139] Nesse exemplo, video_para_set_id identifica um conjunto de parâmetros de vídeo (VPS) correspondente.
[00140] Nesse exemplo, cnt_p especifica o número máximo de valores priority_id presentes na sequência de vídeo codificado correspondente.
[00141] Nesse exemplo, cnt_d especifica o número máximo de camadas de dependência presentes na sequência de vídeo codificado correspondente. Múltiplas vistas com a mesma resolução podem ser consideradas como pertencendo à mesma camada de dependência. Duas camadas de dependência podem ter a mesma resolução espacial.
[00142] Nesse exemplo, cnt_t especifica o número máximo de camadas temporais presentes na sequência de vídeo codificada.
[00143] Nesse exemplo, cnt_q especifica o número máximo de camadas de qualidade presentes em uma camada de dependência na sequência de vídeo codificada.
[00144] Nesse exemplo, cnt_v especifica o número máximo de vistas presentes na sequência de vídeo codificada.
[00145] Nesse exemplo, cnt_f especifica o número de bits usados para representar o elemento de sintaxe reserved_flags no cabeçalho de unidade NAL.
[00146] Nesse exemplo, pic_width_in_luma_samples[i] e pic_height_in_luma_samples[i] especificam, respectivamente, a largura e a altura da resolução de camada de dependência de ordem i em unidades de amostras de luma.
[00147] Nesse exemplo, bit_depth_luma_minus8[ i ] plus 8 e bit_depth_chroma_minus8[ i ] especificam a profundidade de bit dos componentes de luma e de croma da representação de profundidade de bit de ordem i.
[00148] Nesse exemplo, chroma_format_idc[ i ] especifica o formato de amostra de croma da representação de formado de amostra de croma de ordem i. Por exemplo, um valor igual a 0 pode indicar 4:2:0; um valor igual a 1 pode indicar 4:4:4, um valor igual a 2 pode indicar 4:2:2; e um valor igual a 3 pode indicar 4:0:0.
[00149] Nesse exemplo, average_frame_rate[ i ] identifica a taxa média de quadros da representação de camada temporal de ordem i, em unidades de quadros por 256 segundos.
[00150] Nesse exemplo, view_id[ 1 ] especifica o identificador de vista da vista de ordem i, a qual tem um índice de ordem de vista igual a i. Quando não presente, o valor de view_id[ 0 ] pode ser inferido como sendo 0. vps_extension_flag igual a 0 especifica que nenhum elemento de sintaxe vps_extension_data_flag está presente na estrutura de sintaxe RBSP de conjunto de parâmetros de vídeo. vps_extension_flag pode ser igual a 0 em fluxos de bit em conformidade com o padrão HEVC vindouro. O valor de 1 para vps_extension_flag pode ser reservado, por exemplo, para uso futuro por ITU-T | ISO/IEC. Decodificadores, tal como decodificador de vídeo 30, pode ignorar todos os dados que vêm após o valor 1 para vps_extension_flag em uma unidade NAL de conjunto de parâmetros de vídeo.
[00151] Nesse exemplo, vps_extension_data_flag pode ter qualquer valor. Isso não afeta a conformidade com os perfis especificados no padrão HEVC vindouro, mas permite desenvolvimento adicional do padrão vindouro.
[00152] Out ros elementos de sintaxe no VPS podem ter as mesmas semânticas que os elementos de sintaxe com os mesmos nomes no SPC do esboço de trabalho HEVC atual. Esses elementos de sintaxe podem ser empregados para sequência de vídeo codificado que se refere a esse VPS, a menos que sobregravados por conjuntos de parâmetros de nível inferior.
[00153] Em alguns exemplos, um 3DV_flag pode ser sinalizado adicionalmente no VPS para indicar se a profundidade está presente na sequência de vídeo codificado.
[00154] Em alguns exemplos, os parâmetros VUI são sinalizados no LPS.
[00155] Em alguns exemplos, os elementos de sintaxe cnt_p, cnt_t, cnt_d, cnt_q, e cnt_v especificam os números de bits usados para codificar priority_id, temporal_id, dependency_id, quality_id e view_idx, respectivamente, e os números máximos de valores priority_id, camadas temporais, camadas de dependência, camadas de qualidade, e vistas presentes nas sequências de vídeo codificado também podem ser sinalizadas no VPS.
[00156] Em alguns exemplos, outro tipo de unidade NAL pode ser introduzido para conter os elementos de sintaxe cnt_p, cnt_t, cnt_d, cnt_q, cnt_v e cnt_f. Esse novo tipo de unidade NAL também pode incluir um identificador (ID), e o ID pode ser referido no VPS.
[00157] Em alguns exemplos, os elementos de sintaxe a partir de log2_max_pic_order_cnt_lsb_minus4 a inter_4x4_enabled_flag na Tabela 2 não são sinalizados no VPS, mas em vez disso, o codificador de vídeo 20 e o decodificador de vídeo 30 podem codificar esses elementos de sintaxe no LPS.
[00158] Em alguns exemplos, a estrutura de sintaxe operation_point_desription() da Tabela 2 não é incluída no VPS; em vez disso, o codificador de vídeo 20 e o decodificador de vídeo 30, ou outros elementos (por exemplo, interface de saída 22 e/ou interface de entrada 28), podem codificar o conteúdo na estrutura de sintaxe operation_point_desription() em uma mensagem de informação de aperfeiçoamento sumplementar (SEI).
[00159] Em alguns exemplos, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem codificar os parâmetros de informação de usabilidade de vídeo (VUI) no VPS. Por exemplo, um VPS pode incluir os dados especificando informação de restrição de fluxo de bits, tal como restrições em relação à faixa de vetores de movimento, tamanho DPB, número de quadros de reordenamento, e tamanhos de blocos codificados (por exemplo, macroblocos ou CUs) e imagens. Dessa maneira, um VPS pode especificar informação indicando um tamanho DPB exigido para que um decodificador de vídeo (tal como o decodificador de vídeo 30) decodifique apropriadamente um fluxo de bits correspondente, isto é, um fluxo de bits incluindo o VPS. Similarmente, um VPS pode especificar informação de reordenamento de imagem, isto é, um número de imagens que podem preceder uma determinada imagem na ordem de decodificação e que vem após a imagem determinada na ordem de saída (isto é, ordem de exibição).
[00160] Adicionalmente ou alternativamente, um VPS pode incluir os dados especificando informação de decodificador de referência hipotética (HRD). Conforme observado acima, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode codificar (isto é, sinalizar) parâmetros VUI, os quais podem incluir informação HRD, no VPS. Assim, um VPS pode incluir os dados descrevendo, por exemplo, pontos de operação de um fluxo de bits correspondente. Por exemplo, um VPS pode incluir os dados descrevendo um ou mais de um número de pontos máximos de operação, dependências entre diferentes camadas ou vistas, informação de nível e perfil para cada ponto de operação, representação de unidade VCL NAL de ponto de operação para cada ponto de operação, taxa de bits para cada ponto de operação, dependência entre pontos de operação, restrições para cada ponto de operação, VUI ou VUI parcial para cada ponto de operação, e/ou VUI ou VUI parcial para cada camada ou vista.
[00161] Um VPS também pode incluir, para cada dimensão: um valor de índice específico, uma faixa de valores de índice, ou uma lista de valores de índice. Por exemplo, quando um VPS inclui os dados descrevendo um valor de índice específico, o valor de índice pode corresponder, para resolução espacial, à profundidade de bit para formato de amostragem de croma. Como outro exemplo, quando um VPS inclui uma faixa de valores de índice, para camadas temporais, a faixa pode compreender zero (0) para o ID de camada temporal mais elevada, e para camadas de qualidade, a faixa pode compreender zero (0) para o ID de camada de qualidade mais elevada. Como ainda outro exemplo, quando um VPS inclui os dados descrevendo uma lista de valores de índice, a lista pode compreender uma lista de valores de índice de vista para múltiplas vistas.
[00162] Em alguns exemplos, o codificador de vídeo 20 pode codificar (isto é, sinalizar), e o decodificador de vídeo pode decodificar, um ou mais parâmetros de formato de representação (largura, altura, profundidade de bit, etc.), e pode haver diferentes conjuntos de parâmetros de formato de representação. Uma camada ou ponto de operação pode então se referir a um índice de tal conjunto de parâmetros de formato de representação. Um exemplo do modelo de sintaxe para tal conjunto é mostrado na Tabela 3 abaixo. TABELA 3
[00163] Em alguns exemplos, o ref_format_idx pode, em vez disso, ser sinalizado no conjunto de parâmetros de camada.
[00165] Exemplos das semânticas para os elementos de sintaxe da Tabela 4 são discutidos abaixo:
[00166] Nesse exemplo, num_operation_point_minus1 plus 1 especifica o número máximo de pontos de operação que estão presentes na sequência de vídeo codificado e para os quais a informação de ponto de operação é sinalizada pelos seguintes elementos de sintaxe.
[00167] Nesse exemplo, op_profile_level_idc[ i ], operation_point_id[ i ], priority_id[ i ], num_target_output_views_minus1[ i ], frm_rate_info_present_flag[ i ], avg_bitrate[ i ], max_bitrate[ i ], max_bitrate_calc_window[ i ], constant_frm_rate_idc[ i ] e num_directly_dependent_views[ i ] podem ter as mesmas semânticas que os elementos de sintaxe com os mesmos nomes na mensagem SEI de informação de escalabilidade de vista de H.264.
[00168] Nesse exemplo, quality_id[i] e dependency_id [i] podem ter as mesmas semânticas que os elementos de sintaxe com os mesmos nomes na mensagem SEI de informação de escalabilidade de H.264.
[00169] Nesse exemplo, directly_dependent_view_idx [i][j] especifica o índice de vista da vista de ordem j da qual a vista de saída alvo do ponto de operação atual é diretamente dependente dentro da representação do ponto de operação atual.
[00170] Nesse exemplo, num_ref_views[ i ] especifica o número de componentes de vista para predição entre vistas na lista de imagens de referência, inicial RefPicList0 e RefPicList1 na decodificação dos componentes de vista com índice de ordem de vista igual a i. Nesse exemplo, o valor de num_ref_views[ i ] não deve ser maior do que Min(15, num_views_minus1). Em alguns exemplos, o valor de num_ref_views[ 0 ] é igual a 0.
[00171] Nesse exemplo, ref_view_idx[ i ][ j ] especifica o índice de ordem de vista do componente de vista de ordem j para predição entre vistas na lista de imagem de referência inicial RefPicList0 e RefPicList1 na decodificação de um componente de vista com índice de ordem de vista igual a i. Nesse exemplo, o valor de ref_view_idx[ i ][ j ] deve estar na faixa de 0 a 31, inclusive.
[00172] Em alguns exemplos, como uma alternativa, alguns dos elementos de sintaxe, na mensagem SEI de informação de escalabilidade (por exemplo, conforme descrito em H.264), por exemplo, os elementos de sintaxe relacionados à informação de dependência de camada, podem ser incluídos na estrutura de sintaxe operation_points_description() da Tabela 4.
[00173] Em alguns exemplos, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode codificador (isto é, sinalizar) alguns parâmetros VUI na estrutura de sintaxe operation_points_description() da Tabela 4.
[00174] A Tabela 5 abaixo fornece sintaxe alternativa para um conjunto de parâmetros de vídeo: TABELA 5
[00175] Exemplos das semânticas para sintaxe do conjunto de parâmetros de vídeo da Tabela 5 são discutidos abaixo. Em geral, os elementos de sintaxe similarmente denominados que não são discutidos abaixo podem ter as mesmas semânticas como discutido acima com relação à Figura 2. As semânticas para outros elementos de sintaxe podem ser como a seguir:
[00176] Nesse exemplo, bit_equal_to_one é igual a 1 (isto é, um valor “1” binário).
[00177] Nesse exemplo, extention_type igual a 0 indica que múltiplas camadas de vista podem estar presentes no fluxo de bits. Nesse exemplo, extention_type igual a 1 especifica que múltiplas camadas de dependência e/ou qualidade podem estar presentes no fluxo de bits.
[00178] Nesse exemplo, num_rep_formats_minus1 plus 1 especifica o número máximo de diferentes conjuntos de formatos de representação suportados por esse conjunto de parâmetros de vídeo, um formato de representação inclui um formato de croma e profundidade de bit (isto é, os conjuntos de valores de bit_depth_luma_minus8, bit_depth_chroma_minus8, e chroma_format_idc values), informação de janela de corte e resolução de imagem na sequência de vídeo codificado. O valor de num_rep_formats_minus1 pode estar na faixa de 0 a X, inclusive. O codificador de vídeo 20 e o decodificador de vídeo 30 podem codificar o conjunto de formato de croma e profundidade de bit para a camada base mediante bit_depth_luma_minus8, bit_depth_chroma_minus8 e chroma_format_idc, e conjuntos de formatos de croma e profundidade de bit são sinalizados para camadas de aperfeiçoamento por intermédio do segundo conjunto de elementos de sintaxe bit_depth_luma_minus8[ i ], bit_depth_chroma_minus8[ i ] e chroma_format_idc[ i ].
[00179] O codi ficador de vídeo 20 e o decodificador de vídeo 30 podem codificar o primeiro conjunto de formato de representação mediante bit_depth_luma_minus8, bit_depth_chroma_minus8, chroma_format_idc, pic_width_in_luma_samples, pic_height_in_luma_samples, pic_cropping_flag, pic_crop_left_offset, pic_crop_right_offset, pic_crop_top_offset e pic_crop_bottom_offset.
[00180] Nesse exemplo, bit_depth_luma_minus8[ i ], bit_depth_chroma_minus8[ i ] e chroma_format_idc[ i ] especificam, respectivamente, o conjunto de ordem i de valores bit_depth_luma_minus8, bit_depth_chroma_minus8 e chroma_format_idc na sequência de vídeo codificado.
[00181] Nesse exemplo, pic_width_in_luma_samples[ i ] e pic_height_in_luma_samples[ i ] especificam, respectivamente, a largura e a altura de cada imagem decodificada em unidades de amostras de luma utilizando o formato de representação de ordem i.
[00182] Nesse exemplo, pic_cropping_flag[ i ] pic_crop_left_offset[ i ], pic_crop_right_offset[ i ], pic_crop_top_offset[ i ] e pic_crop_bottom_offset[ i ] especificam, para o conjunto de ordem i de formatos de representação, as amostras das imagens na sequência de vídeo codificado que são emitidas a partir do processo de decodificação, em termos de uma região retangular especificada em coordenadas de imagem para emissão.
[00183] Nesse exemplo, rep_format_idx[ i ] especifica o índice de valores para o conjunto de formatos de croma e profundidade de bit, adicionais que se aplicam à camada com layer_id igual a i. Os valores de bit_depth_luma_minus8, bit_depth_chroma_minus8 e chroma_format_idc para a camada com layer_id igual a i podem ser iguais a bit_depth_luma_minus8[ rep_format_idx[ i ] ], bit_depth_chroma_minus8[ rep_format_idx[ i ] ] e chroma_format_idc[ rep_format_idx[ i ] ], respectivamente. O valor de rep_format_idx[ i ] deve estar na faixa de 0 a X, inclusive.
[00184] Nesse exemplo, dependency_id[ i ] especifica um identificador de dependência para a camada com layer_id igual a i. dependency_id[ i ] pode estar na faixa de 0 a X inclusive. Quando não presente, dependency_id[ i ] pode ser inferido como sendo 0. Quando num_directly_dependent_layers[ i ] é maior do que 0, dependency_id[ i ] pode ser igual ou maior do que o identificador de dependência de qualquer camada da qual depende a camada com layer_id igual a i.
[00185] Nesse exemplo, quality_id[ i ] especifica um identificador de igualdade para a camada com layer_id igual a i. quality_id[ i ] pode estar na faixa de 0 a X inclusive. Quando não presente, quality_id[ i ] pode ser inferido como sendo 0. Quando num_directly_dependent_layers[ i ] é maior do que 0, quality_id[ i ] pode ser igual ou maior do que o identificador de qualidade de qualquer camada da qual depende a camada com layer_id igual a i e que tenha identificador de dependência igual a dependency_id[ i ].
[00186] Nesse exemplo, num_short_term_ref_pic_sets especifica o número de conjuntos de imagens de referência de curto prazo que são especificados no conjunto de parâmetros de vídeo. O valor de num_short_term_ref_pic_sets pode estar na faixa de 0 a 64, inclusive.
[00187] Nesse exemplo, depth_included_flag igual a 1 indica que o ponto de operação 3DV atual contém profundidade. Nesse exemplo, depth_included_flag igual a 0 indica que o ponto de operação 3DV atual não contém profundidade.
[00188] As sintaxes exemplares para o elemento de dependência de vista da Tabela 5 são providas na Tabela 6 abaixo: TABELA 6
[00189] A Tabela 7 abaixo define um conjunto exemplar de dados no qual a dependência de vista de cada vista não base é diretamente sinalizada no nível de sequência. TABELA 7
[00190] Nesse exemplo, num_ref_views[ i ] especifica o número de componentes de vista para predição entre vistas na lista de imagens de referência, inicial RefPicList0 e RefPicList1 na decodificação de componentes de vista no índice de ordem de vista igual a i. Nesse exemplo, o valor de num_ref_views[ i ] não é maior do que Min(15, num_views_minus1). Nesse exemplo, o valor de num_ref_views[ 0 ] é igual a 0.
[00191] Nesse exemplo, ref_view_idx[ i ][ j ] especifica o índice de ordem de vista do componente de vista de ordem j para predição entre vistas na lista de imagens de referência, inicial RefPicList0 e RefPicList1 na decodificação de um componente de vista com índice de ordem de vista igual a i. Nesse exemplo, o valor de ref_view_idx[ i ][ j ] está na faixa de 0 a 31, inclusive.
[00192] Conforme observado acima, um tipo específico de unidade NAL (por exemplo, tipo de unidade NAL 10) pode ser usado para encapsular um conjunto de parâmetros de vídeo. A sintaxe de unidade NAL pode ser modificada como mostrado no exemplo da Tabela 8 abaixo. TABELA 8
[00193] Nesse exemplo, os elementos dentro do enunciado “if(nal_unit_type != 10)” são adicionados, em relação à sintaxe de unidade NAL convencional. Nesse exemplo, o número de bits usados para sinalizar os elementos de sintaxe priority_id, temporal_id, dependency_id, quality_id e view_idx é Ceil(log2(cnt_p)), Ceil(log2(cnt_t)), Ceil(log2(cnt_d)), Ceil(log2(cnt_q)) e Ceil(log2(cnt_v)), respectivamente. Similarmente, nesse exemplo, quando qualquer um dos elementos de sintaxe priority_id, temporal_id, dependency_id, quality_id e view_idx não estiver presente, o valor desse elemento de sintaxe é inferido como sendo igual a 0.
[00194] Exceto como definido acima com relação ao número de bits e as inferências que podem ser formuladas, as semânticas para os elementos de sintaxe da Tabela 8 podem ser definidas como a seguir. As semânticas de priority_id, dependency_id, e quality_id podem ser conforma definido na extensão SVC de ITU-T H.264/AVC. As semânticas de temporal_id podem ser como definido em WD4 de HEVC. Nesse exemplo, reserved_one_bit é igual a 1. O valor 0 para reserved_one_bit pode ser especificado por extensões futuras do padrão HEVC. Decodificadores, tal com o decodificador de vídeo 30, podem ser configurados para ignorar o valor de reserved_one_bit.
[00195] Nesse exemplo, view_idx especifica o índice de ordem de vista para uma vista. A semântica de view_idx pode ser a mesma que o elemento de sintaxe “índice de ordem de vista” como especificado na extensão MVC de ITU-T H.264/AVC.
[00196] Nesse exemplo, cada bit de reserved_flags é igual a 1. Outros valores para reserved_flags podem ser especificados por extensões futuras do padrão HEVC vindouro. Decodificadores, tal como decodificador de vídeo 30, podem ser configurados para ignorar o valor de reserved_flags, a menos que sejam configurados para operar em conformidade com uma extensão que atribui semânticas aos bits de reserved_flags. Nesse exemplo, o número de bits usados para representar reserved_flags é reserved_flags_len.
[00197] Nesse exemplo, cada bit de reserved_bits é igual a 1. Outros valores para reserved_bits podem ser especificados pela extensão futura do padrão HEVC vindouro. Decodificadores, tal como decodificador de vídeo 30, podem ser configurados para ignorar o valor de reserved_bits, outra vez a menos que configurados de acordo com tal extensão futura. O número de bits usados para representar reserved_bits, nesse exemplo, é ((m+7 >>3) << 3)-m.
[00198] A Tabela 9 abaixo fornece sintaxe exemplar para um conjunto de parâmetros de camada. A mesma sintaxe pode ser usada para cada um dos LPSs da Figura 5, em alguns exemplos. TABELA 9
[00199] Exemplos das semânticas para a sintaxe LPS da Tabela 9 são descritos abaixo. Diferentes camadas (por exemplo, diferentes vistas em NVC ou diferentes camadas em SVC) podem se referir a diferentes LPSs. Diferentes camadas de qualidade na mesma camada de dependência podem compartilhar a mesma LPS. Diferentes camadas temporais na mesma camada de dependência podem compartilhar a mesma LPS. Alternativamente, diferentes vistas podem se referir a um mesmo LPS, e diferentes camadas de dependência podem se referir a um mesmo LPS.
[00200] Nesse exemplo, depth_flag igual a 1 especifica que o LPS se aplica às representações de profundidade identificadas pelos valores de temporal_id, dependency_id, quality_id e view_idx da unidade LPS NAL. Depth_flag igual a 0 especifica que o LPS se aplica às representações de textura identificadas pelos valores de temporal_id, dependency_id, quality_id e view_idx da unidade LPS NAL.
[00201] Nesse exemplo, layer_para_set_id especifica o ID do conjunto atual de parâmetros de camada (LPS). Diferentes conjuntos de parâmetros de camada com os mesmos valores de dependency_id e view_idx, respectivamente, compartilham um espaço de valor para layer_para_set_id, significando que diferentes LPSs com diferente combinação de depencey_id e view_idx podem ter o mesmo valor de layer_para_set_id.
[00202] Alternativamente, todos os LPSs podem compartilhar um espaço de valor, significando que cada LPS tem um valor distinto de layer_para_set_id.
[00203] Nesse exemplo, vps_id identifica o conjunto de parâmetros de vídeo ao qual se refere esse conjunto de parâmetros de camada.
[00204] Nesse exemplo, lps_extension_flag igual a 0 especifica que nenhum elemento de sintaxe lps_extension_data_flag está presente na estrutura de sintaxe RBSP de conjunto de parâmetros de camada. Nesse exemplo, lps_extension_flag pode ser igual a 0 em fluxos de bit em conformidade com o padrão HEVC vindouro. O valor de 1 para lps_extension_flag é reservado para uso futuro por ITU-T | ISO/IEC. Os decodificadores, tal como o decodificador de vídeo 30, podem ignorar todos os dados que vêm após o valor 1 para lps_extension_flag em uma unidade NAL de conjunto de parâmetros de camada.
[00205] Nesse exemplo, lps_extension_data_flag pode ter qualquer valor, e não afeta a conformidade com os perfis especificados no padrão HEVC vindouro.
[00206] Outros elementos de sintaxe podem ter as mesmas semânticas que os elementos de sintaxe com os mesmos nomes no SPS do HEVC WD, mas aplicando-se apenas às imagens que se referem a esse LPS.
[00207] Um LPS pode ser contido em uma unidade NAL, cujo cabeçalho pode ser definido de acordo com a Tabela 8 acima. Os elementos de sintaxe seguintes têm as seguintes semânticas modificadas quando eles são associados com um LPS.
[00208] Nesse exemplo, priority_id é igual ao valor mínimo dos valores priority_id e todas as unidades NAL referentes a esse LPS.
[00209] Nesse exemplo, temporal_idé igual ao valor mínimo do temporal_id de todas as unidades NAL referentes a esse LPS.
[00210] Nesse exemplo, dependency_id é igual ao dependency_id de todas as unidades NAL referentes a esse LPS.
[00211] Nesse exemplo, quality_id é igual ao valor mínimo de quality_id de todas as unidades NAL referentes a esse LPS.
[00212] Nesse exemplo, v_idx é o índice de vista do LPS atual. Todas as imagens com referência a esse LPS podem ter um id de vista de view_id[v_idx].
[00213] Alternativamente, os elementos de sintaxe acima podem ser sinalizados diretamente na tabela de sintaxe de conjunto de parâmetros de camada, conforme mostrado no exemplo da Tabela 10. A tabela de sintaxe mais detalhada pode ser projetada de acordo com a Tabela 9 abaixo. Nesse caso, esses elementos de sintaxe não estão no cabeçalho de unidade NAL do LPS e a análise do LPS pode ser dependente do VPS com um ID igual a vps_id. TABELA 10
[00214] Um LPS nesse caso, não precisa ter um cabeçalho de unidade NAL duplicando os elementos de sintaxe acima. Supondo que o tipo de unidade NAL de uma unidade NAL encapsulando um LPS seja, por exemplo, 5, a sintaxe de cabeçalho de unidade NAL pode ser ligeiramente modificada como mostrado na Tabela 11, o que adiciona a exceção “&& nal_unit_type != 5” na afirmação “se” da Tabela 8: TABELA 11
[00215] Em outros exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem codificar os elementos de sintaxe relacionados às características escaláveis utilizando codificação de comprimento fixo, conforme mostrado no exemplo da Tabela 12 abaixo. TABELA 12
[00216] A Tabela 13 abaixo proporciona um exemplo de sintaxe para um conjunto de parâmetros de imagem (PPS) de acordo com as técnicas dessa revelação. Nesse exemplo, o conjunto de parâmetros de imagem não precisa sinalizar um “seq_parameter_set_id”, contrário ao PPS do HEVC convencional. TABELA 13
[00217] Exemplos das semânticas para o PPS da Tabela 3 são descritos abaixo.
[00218] Nesse exemplo, pps_extension_flag igual a 0 especifica que nenhum elemento de sintaxe pps_extension_data_flag está presente na estrutura de sintaxe RBSP de conjunto de parâmetros de imagem. Nesse exemplo, pps_extension_flag é igual a 0 em fluxos de bit em conformidade com o padrão HEVC vindouro. O valor de 1 para pps_extension_flag pode ser reservado para uso futuro por ITU-T | ISO/IEC. Decodificadores, tal como o decodificador de vídeo 30, podem ignorar todos os dados que seguem o valor 1 para pps_extension_flag em uma unidade NAL de conjunto de parâmetros de imagem.
[00219] Nesse exemplo, pps_extension_data_flag pode ter qualquer valor. Isso não afeta necessariamente a conformidade aos perfis especificados no padrão HEVC vindouro. Semânticas para valores de pps_extension_data_flag podem ser atribuídas adicionalmente em desenvolvimentos adicionais do padrão HEVC ou extensões do padrão sem conflitar com as técnicas dessa revelação.
[00220] Nas técnicas dessa revelação, nenhum ID de conjunto de parâmetros de sequência ou ID de conjunto de parâmetros de camada precisa ser sinalizado no PPS. Alguns outros elementos de sintaxe em PPS podem ser movidos para LPS. Isto é, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem ser configurados para codificar um ou mais LPSs incluindo dados similares aos elementos de sintaxe mostrados na Tabela 13.
[00221] A Figura 6 é um diagrama conceptual ilustrando um conjunto de parâmetros de agrupamento (GPS) exemplar e relações dos GPS com outros conjuntos de parâmetro e cabeçalhos de fatia. Nesse exemplo, os outros conjuntos de parâmetro incluem LPSs, SPSs, PPSs, conjuntos de parâmetros de adaptação (APSs) do tipo 0 (por exemplo, APSs sinalizando parâmetros de filtro de loop adaptativo (ALF)), APSs do tipo 1 (por exemplo, APSs sinalizando uma matriz de quantização), e outros conjuntos de parâmetros. Nesse exemplo, o GPS inclui uma modalidade de diferentes grupos, cada um deles tendo um ID de GPS único (também referido como um ID de grupo), onde cada grupo indica um conjunto específico de cada um dos vários conjuntos de parâmetro pelo ID de conjunto de parâmetros. Dessa maneira, os cabeçalhos de fatia precisam apenas especificar um group_id para especificar cada um dos conjuntos de parâmetro correspondendo ao grupo tendo aquele group_id.
[00222] As Tabelas, 14 e 15, abaixo proporcionam exemplos alternativos de sintaxe para um RBSP de conjunto de parâmetros de agrupamento. TABELA 14 TABELA 15
[00223] Os codificadores de vídeo, tal como o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para codificar um conjunto de parâmetros de agrupamento de acordo com, por exemplo, a Tabela 14 ou Tabela 15. Exemplos de semânticas para a sintaxe dos conjuntos de parâmetros de agrupamento são providos abaixo.
[00224] Nesse exemplo, number_signalled_para_set_groups_minus1 plus 1 especifica o número de grupos de parâmetros sinalizados. Esse valor pode estar na faixa de 0 a 30, inclusive.
[00225] Nesse exemplo, para_set_group_id[ i ] especifica o ID do grupo de conjunto de parâmetros, sinalizado de ordem i. O valor de para_set_group_id[ i ] deve estar na faixa de 0 a 31, inclusive.
[00226] Nesse exemplo, para_set_type_id[ i ][ j ] especifica o ID do tipo de conjunto de parâmetros de ordem j para o grupo de conjunto de parâmetros de ordem i.
[00227] Nesse exemplo, lps_id[ i ] indica o ID do conjunto de parâmetros de camada referido pelo grupo de conjunto de parâmetros com um ID de grupo de para_set_group_id[ i ]. Os valores de dependency_id e view_idx de um LPS com layer_para_set_id igual a lps_id[ i ] podem ser idênticos aos valores de dependency_id e view_idx, respectivamente, da unidade NAL do grupo de conjunto de parâmetros.
[00228] Os valores de dependency_id e view_idx de um RBSP de agrupamento de conjunto de parâmetros estão presentes no cabeçalho de unidade NAL desse RBSP nos exemplos das Tabelas 14 e 15, e os valores de dependency_id e view_idx de um LPS podem estar presentes seja no cabeçalho de unidade NAL desse LPS ou na tabela de sintaxe do LPS.
[00229] Alternativamente, os valores de dependency_id e view_idx de um LPS com layer_para_set_id igual a lps_id[ i ], podem não ser idênticos aos valores de dependency_id e view_idx, respectivamente, da unidade NAL de grupo de conjunto de parâmetros.
[00230] Nesse exemplo, pps_id[ i ] indica o ID do conjunto de parâmetros de imagem referido pelo grupo de conjunto de parâmetros com um ID de grupo de para_set_group_id[ i ].
[00231] Nesse exemplo, aps_id[ i ] indica o ID do conjunto de parâmetros de adaptação referido pelo grupo de conjunto de parâmetros com um ID de grupo de para_set_group_id[ i ].
[00232] Nesse exemplo, gps_extension_flag igual a 0 especifica que nenhum elemento de sintaxe gps_extension_data_flag está presente na extremidade de sintaxe RBSP de agrupamento de conjunto de parâmetros. Gps_extension_flag pode ser igual a 0 em fluxos de bit em conformidade com o padrão HEVC vindouro. O valor de 1 para gps_extension_flag pode ser reservado para uso futuro pelo ITU-T | ISO/IEC. Decodificadores, tal como o decodificador de vídeo 30, podem ignorar todos os dados que vêm após o valor 1 para gps_extension_flag em uma unidade NAL de agrupamento de conjunto de parâmetros. Em geral, gps_extension_data_flag pode ter qualquer valor. Isso não precisa afetar a conformidade aos perfis especificados no padrão HEVC vindouro.
[00233] Em alguns exemplos, para_set_type_id[ i ][ j ] pode em vez disso ser aps_id[ i ][ j ], com semânticas similares como aps_id[ i ], conforme descrito acima.
[00234] Conforme mostrado na Figura 6, em vez de se referir ao ID de conjunto de parâmetros de imagem no cabeçalho de fatia, de acordo com as técnicas dessa revelação, o cabeçalho de fatia pode se referir a um ID de grupo de conjunto de parâmetros, desse modo se referindo indiretamente a um LPS, a um PPS, e a um APS de cada tipo (por exemplo, APSs proporcionando parâmetros ALF e matrizes de quantização).
[00235] Um codificador de vídeo pode ativar um conjunto de parâmetros de vídeo ou um conjunto de parâmetros de camada quando uma unidade VCL NAL (contendo uma fatia codificada) se refere ao conjunto de parâmetros, indiretamente, por exemplo, com base no ponto fundamental do modelo H.264/AVC.
[00236] Em alguns exemplos, os conjuntos de parâmetros podem ser ativados por um tipo específico de unidade NAL, mais propriamente do que por uma fatia codificada. Por exemplo, um tipo de unidade NAL desse tipo específico (unidade NAL de ativação de conjuntos de parâmetros), se presente no fluxo de bits, pode ativar um e exatamente um VPS. Nas várias alternativas, em adição, tal tipo de unidade NAL pode ativar ao menos um LPS. Além disso, tal tipo de unidade NAL pode ativar ao menos um PPS. Além disso, tal tipo de unidade NAL pode ativar ao menos um APS. Uma unidade de ativação de conjuntos de parâmetros pode ser um RBSP de conjunto de parâmetros de agrupamento. Uma unidade NAL de ativação de conjuntos de parâmetros (PSA) pode ser aplicável a uma sequência de vídeo codificado. Uma unidade PSA NAL pode ser considerada uma unidade não VCL NAL, isto é, não diretamente relevante para um codificador de vídeo. A sintaxe de cabeçalho de unidade NAL da unidade PSA NAL pode ser a mesma que aquela da unidade VPS NAL.
[00237] Em alguns exemplos, uma unidade PSA NAL, se presente em uma unidade de acesso, pode preceder a primeira unidade VCL NAL da unidade de acesso. Pode haver ao menos uma unidade PSA NAL na primeira unidade de acesso de uma sequência de vídeo codificada, por exemplo, uma imagem IDR. As múltiplas unidades PSA NAL na mesma sequência de vídeo codificado podem conter o mesmo ID de VPS; assim, nenhum conjunto de parâmetros de vídeo diferente precisa ser ativado dentro da mesma sequência de vídeo codificado. Uma unidade PSA NAL, se presente em uma unidade de acesso, pode preceder qualquer LPS, PPS, APS ou unidade SEI NAL, se presente. Uma unidade VPS NAL, se presente em uma unidade de acesso, pode preceder qualquer unidade LPS, PPS, APS ou SEI NAL, se presente. Nas várias alternativas, adicionalmente, uma unidade PSA NAL, se presente em qualquer unidade de acesso, pode preceder uma unidade VPS NAL, se presente.
[00238] Em alguns exemplos, os codificadores de vídeo; tal como o codificador de vídeo 20 e o decodificador de vídeo 30; podem ser configurados para utilizar a sintaxe da Tabela 16 para um conjunto de parâmetros de sequência (SPS), em oposição à sintaxe de SPS convencional de, por exemplo, HEVC. TABELA 16
[00239] Os SPS exemplares da Tabela 16 eliminam profile_idc, reserved_zero_8bits, level_idc, chroma_format_idc, separate_colour_plane_flag e condicional correspondente “se”, max_temporal_layers_minus1, pic_width_in_luma_samples, pic_height_in_luma_samples, pic_cropping_flag, pic_crop_left_offset, pic_crop_right_offset, pic_crop_top_offset, e pic_crop_bottom_offset e instrução condicional correspondente “se”, bit_depth_luma_minus8, bit_depth_chroma_minus8, num_short_term_ref_pic_sets, e short_term_ref_pic_set(i) e instrução condicional correspondente “se” a partir da sintaxe SPS convencional. Além disso, o SPS exemplar da Tabela 16 adiciona um video_parameter_set_id e rep_format_idx. As semânticas para outros elementos de sintaxe restantes podem ser a mesma, conforme definido em HEVC convencional. As semânticas para os elementos adicionados video_parameter_set_id e rep_format_idx podem ser definidas como a seguir:
[00240] Nesse exemplo, video_parameter_set_id identifica o conjunto de parâmetros de vídeo (VPS) referido pelo SPS atual. Alternativamente, video_parameter_set_id não precisa ser sinalizado, e um GPS pode ser usado para vincular um SPS a um VPS específico.
[00241] Nesse exemplo, rep_format_idx especifica o índice para o formato de representação sinalizado no conjunto de parâmetros de vídeo, referido.
[00242] Ainda como outra alternativa, a Tabela 17 fornece outro exemplo de sintaxe para um conjunto de parâmetros de agrupamento. Supõe-se que, nesse exemplo, o elemento de sintaxe de ID de conjunto de parâmetros de vídeo não esteja presente na sintaxe SPS, conforme descrito acima. TABELA 17
[00243] As semânticas para os elementos de sintaxe da Tabela 17 podem ser definidas como a seguir:
[00244] Nesse exemplo, gps_id especifica o identificador de um conjunto de parâmetros de grupo (GPS).
[00245] Nesse exemplo, vps_id especifica o identificador do conjunto de parâmetros de vídeo referido pelo GPS.
[00246] Nesse exemplo, sps_id especifica o identificador do conjunto de parâmetros de sequência referido pelo GPS.
[00247] Nesse exemplo, pps_id especifica o identificador do conjunto de parâmetros de sequência de imagem referido pelo GPS.
[00248] Nesse exemplo, num_ref_aps_ids especifica o número dos elementos de sintaxe ref_aps_id[ i ] seguintes. O valor de num_ref_aps_ids deve estar na faixa de 0 a 4, inclusive.
[00249] Nesse exemplo, ref_aps_id[ i ] identifica o conjunto de parâmetros de adptação referenciado pelo conjunto de parâmetros de grupo.
[00250] O mesmo valor do ref_aps_id[ i ] pode estar presente no loop mais do que uma vez, e assim, mais do que um tipo de parâmetros APS a partir do mesmo APS pode ser referenciado pelo mesmo GPS e pode ser aplicado às fatias codificadas com referência ao GPS.
[00251] Nesse exemplo, ref_aps_param_type[ i ] especifica o tipo dos parâmetros APS incluídos no conjunto de parâmetros de adaptação de ordem i referenciados pelo conjunto de parâmetros de grupo. O valor de ref_aps_parame_type[ i ] pode estar na faixa de 0 a 3, inclusive. Os valores de 0 a 3, inclusive, para ref_aps_parame_type[ i ] correspondem aos tipos de parâmetro APS da lista de escalação, filtro de desblocagem, deslocamento adaptativo de amostra (SÃO), e ALF, respectivamente. Os valores de ref_aps_parame_type[ i ] para quaisquer dos valores diferentes de i não devem ser idênticos, em alguns exemplos.
[00252] Nesse exemplo, gps_extension_flag igual a 0 especifica que nenhum elemento de sintaxe gps_extension_data_flag está presente na estrutura de sintaxe RBSP de agrupamento de conjunto de parâmetros. gps_extension_flag pode ser igual a 0 em fluxos de bit em conformidade com o padrão HEVC vindouro. O valor de 1 para gps_extension_flag pode ser reservado para uso futuro pelo ITU-T | ISO/IEC. Decodificadores, tal como decodificador de vídeo 30, pode ignorar todos os dados que vêm após o valor 1 para gps_extension_flag em uma unidade NAL de agrupamento de conjunto de parâmetros.
[00253] Nesse exemplo, gps_extension_data_flag pode ter qualquer valor. O mesmo não precisa afetar a conformidade aos perfis especificados no padrão HEVC vindouro.
[00254] Codificadores de vídeo, tal como o codificador de vídeo 20 e o decodificador de vídeo 30, podem aplicar o processo seguinte para ativar conjuntos de parâmetros para fluxos de bits de camada única ou de vista única, quando o GPS é especificado de acordo com a Tabela 17, ou está substancialmente em conformidade com o exemplo da Tabela 17.
[00255] Um RBSP de conjunto de parâmetros de adaptação pode incluir parâmetros que podem ser referidos pelas unidades NAL de fatia codificada de uma ou mais imagens codificadas indiretamente através de um ou mais conjuntos de parâmetros de grupo aos quais recorrem às unidades NAL de fatia codificada. Cada RBSP de conjunto de parâmetros de adaptação pode ser inicialmente considerado não ativo no início da operação do processo de decodificação. No máximo um RBSP de conjunto de parâmetros de adaptação pode ser considerado ativo para cada tipo de parâmetros APS em qualquer momento determinado durante a operação do processo de decodificação, e a ativação de qualquer RBSP de conjunto de parâmetros de adaptação, específico para um tipo específico de parâmetros APS resulta na desativação do RBSP de conjunto de parâmetros de adaptação previamente ativo (se houver) para aquele tipo específico de parâmetros APS.
[00256] Quando um RBSP de conjunto de parâmetros de adaptação (com um valor específico de aps_id) não está ativo para um tipo específico de parâmetros APS e é referido por uma unidade NAL de fatia codificada para aquele tipo específico de parâmetros APS (utilizando o valor de aps_id) indiretamente através de um conjunto de parâmetros de grupo referido pela unidade NAL de fatia codificada, o mesmo pode ser ativado para aquele tipo específico de parâmetros APS. Esse RBSP de conjunto de parâmetros de adaptação é denominado RBSP de conjunto de parâmetros de adaptação, ativo para aquele tipo específico de parâmetros APS até que ele seja desativado pela ativação de outro RBSP de conjunto de parâmetros de adaptação para aquele tipo específico de parâmetros APS. Um RBSP de conjunto de parâmetros de adaptação, com aquele valor específico de aps_id pode estar disponível para o processo de decodificação antes de sua ativação.
[00257] UM RBSP de conjunto de parâmetros de imagem pode incluir parâmetros que podem ser referidos pelas unidades NAL de fatia codificada de uma ou mais imagens codificadas indiretamente através de um ou mais conjuntos de parâmetros de grupo referidos pelas unidades NAL de fatia codificada. Cada RBSP de conjunto de parâmetros de imagem pode ser inicialmente considerado não ativo no início da operação do processo de decodificação. No máximo um RBSP de conjunto de parâmetros de imagem pode ser considerado ativo em um determinado momento durante a operação do processo de decodificação, e a ativação de qualquer RBSP de conjunto de parâmetros de imagem, específico, resulta na desativação do RBSP de conjunto de parâmetros de imagem previamente ativo (se houver)
[00258] Quando um RBSP de conjunto de parâmetros de imagem (com um valor específico de pic_parameter_set_id) não está ativo e é referido por uma unidade NAL de fatia codificada (utilizando o valor de pic_parameter_set_id) indiretamente através de um conjunto de parâmetros de grupo referido pela unidade NAL de fatia codificada, ele pode ser ativado. RBSP de conjunto de parâmetros de imagem é denominado RBSP de conjunto de parâmetros de imagem, ativo até que ele seja desativado pela ativação de outro RBSP de conjunto de parâmetros de imagem. Um RBSP de conjunto de parâmetros de imagem, com esse valor específico de pic_parameter_set_id, pode estar disponível para o processo de decodificação antes de sua ativação.
[00259] 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 pode ter o mesmo conteúdo que aquele do RBSP de conjunto de parâmetros de imagem, ativo para a imagem codificada a menos que ele venha após a última unidade VCL NAL da imagem codificada e preceda a primeira unidade VCL NAL de outra imagem codificada.
[00260] Um RBSP de conjunto de parâmetros de sequência pode incluir parâmetros que podem ser referidos pelas unidades NAL de fatia codificada de uma ou mais imagens codificadas indiretamente através de um ou mais conjuntos de parâmetros de grupo referidos pelas unidades NAL de fatia codificada, ou pode ser referido por uma ou mais unidades SEI NAL contendo uma mensagem SEI de período de armazenamento temporário. Cada RBSP de conjunto de parâmetros de sequência pode ser inicialmente considerado como não ativo no início da operação do processo de decodificação. No máximo um RBSP de conjunto de parâmetros de sequência pode se considerado ativo em qualquer momento determinado durante a operação do processo de decodificação, e a ativação de qualquer RBSP de conjunto de parâmetros de sequência, específico resulta na desativação do RBSP de conjunto de parâmetros de sequência previamente ativo (se houver).
[00261] Quando um RBSP de conjunto de parâmetros de sequência (com um valor específico de seq_parameter_set_id) não já estiver ativo e se ele for referido por uma unidade NAL de fatia codificada indiretamente através de um conjunto de parâmetros de grupo referido pela unidade NAL de fatia codificada (utilizando o valor de seq_parameter_set_id) ou for referido por uma unidade SEI NAL contendo uma mensagem SEI de período de armazenamento temporário (utilizando o valor de seq_parameter_set_id), ele pode ser ativado. Esse RBSP de conjunto de parâmetros de sequência é denominado RBSP de conjunto de parâmetros de sequência ativa até que ele seja desativado pela ativação de outro RBSP de conjunto de parâmetros de sequência. Um RBSP de conjunto de parâmetros de sequência, com esse valor específico de seq_parameter_set_id e contido dentro de uma unidade de acesso com temporal_id igual a 0, pode estar disponível ao processo de decodificação antes de sua ativação. Um RBSP de conjunto de parâmetros de sequência, ativado deve permanecer ativo pela sequência de vídeo codificada inteira.
[00262] Um RBSP de conjunto de parâmetros de vídeo pode incluir parâmetros que podem ser referidos pelas unidades NAL de fatia codificada de uma ou mais imagens codificadas indiretamente através de um ou mais conjuntos de parâmetros de grupo referidos pelas unidades NAL de fatia codificada, ou podem ser referidos por uma ou mais unidades SEI NAL contendo uma mensagem SEI de período de armazenamento temporário. Cada RBSP de conjunto de parâmetros de vídeo pode ser inicialmente considerado como não ativo no início da operação do processo de decodificação. No máximo um RBSP de conjunto de parâmetros de vídeo pode ser considerado ativo em qualquer momento determinado durante a operação do processo de decodificação, e a ativação de qualquer RBSP de conjunto de parâmetros de vídeo, específico resulta na desativação do RBSP de conjunto de parâmetros de vídeo, previamente ativo (se houver).
[00263] Quando um RBSP de conjunto de parâmetros de vídeo (com um valor específico de video_parameter_set_id) já não estiver ativo e for referido por uma unidade NAL de fatia codificada indiretamente através de um conjunto de parâmetros de grupo referido pela unidade NAL de fatia codificada (utilizando aquele valor de video_parameter_set_id) ou for referido por uma unidade SEI NAL contendo uma mensagem SEI de período de armazenamento temporário (utilizando aquele valor de video_parameter_set_id), ele pode ser ativado. Esse RBSP de conjunto de parâmetros de vídeo é denominado RBSP de conjunto de parâmetros de vídeo, ativo até que ele seja desativado pela desativação de outro RBSP de conjunto de parâmetros de vídeo. Um RBSP de conjunto de parâmetros de vídeo, com esse valor específico de video_parameter_set_id e contido dentro de uma unidade de acesso com temporal_id igual a 0, deve estar disponível ao processo de decodificação antes de sua ativação. Um RBSP de conjunto de parâmetros de vídeo ativado deve permanecer ativo pela sequência de vídeo codificada inteira.
[00264] Qualquer unidade NAL de conjunto de parâmetros de sequência contendo o valor de seq_parameter_set_id para o RBSP de conjunto de parâmetros de sequência ativo para uma sequência de vídeo codificada pode ter o mesmo conteúdo que aquele do RBSP de conjunto de parâmetros de sequência ativa para a sequência de vídeo codificada a menos que ele venha após a última unidade de acesso da sequência de vídeo codificada e preceda à primeira unidade VCL NAL e a primeira unidade SEI NAL contendo uma mensagem SEI de período de armazenamento temporário (quando presente) de outra sequência de vídeo codificado.
[00265] Qualquer unidade NAL de conjunto de parâmetros de vídeo contendo o valor de seq_parameter_set_id para o RBSP de conjunto de parâmetros de vídeo, ativo para uma sequência de vídeo codificado pode ter o mesmo conteúdo que aquele do RBSP de conjunto de parâmetros de vídeo, ativo para a sequência de vídeo codificado a menos que ele venha após a última unidade de acesso da sequência de vídeo codificado e possa preceder a primeira unidade VCL NAL e a primeira unidade SEI NAL contendo a mensagem SEI de período de armazenamento temporário (quando presente) de outra sequência de vídeo codificado.
[00266] Todas as restrições que são expressas na relação entre os valores dos elementos de sintaxe (e os valores de variáveis derivadas desses elementos de sintaxe) em conjuntos de parâmetros de vídeo, conjuntos de parâmetros de sequência, conjuntos de parâmetros de imagem e conjuntos de parâmetros de adaptação e outros elementos de sintaxe são expressões de restrições que podem se aplicar apenas aos conjuntos de parâmetros de vídeo, ativos, ao conjunto de parâmetros de sequência, ativo, ao conjunto de parâmetros de imagem, ativo, e ao conjunto de parâmetros de adaptação, ativo para cada tipo específico de parâmetros APS. Se qualquer RBSP de conjunto de parâmetros de vídeo estiver presente que não estiver ativado no fluxo de bits, seus elementos de sintaxe podem ter valores que não se adaptariam às restrições especificadas se ele fosse ativado mediante referência em um fluxo de bits de outro modo compatível. Se qualquer RBSP de conjunto de parâmetros de sequência estiver presente que não esteja ativado no fluxo de bits, seus elementos de sintaxe podem ter valores que se adaptariam às restrições especificadas se fossem ativados mediante referência em um fluxo de bits de outro modo em conformidade. Se qualquer RBSP de conjunto de parâmetros de imagem estiver presente que jamais é ativado no fluxo de bits, seus elementos de sintaxe podem ter valores que se ajustariam às restrições especificadas se fossem ativados mediante referência em um fluxo de bits de outro modo em conformidade. Se qualquer RBSP de conjunto de parâmetros de adaptação estiver presente que nunca é ativado no fluxo de bits, seus elementos de sintaxe podem ter valores que se ajustariam às restrições especificadas se fossem ativados mediante referência em um fluxo de bits de outro modo em conformidade.
[00267] Durante a operação do processo de decodificação, os valores dos parâmetros do conjunto ativo de parâmetros de vídeo, do conjunto ativo dos parâmetros de sequência, do conjunto ativo dos parâmetros de imagem e do conjunto ativo de parâmetros de adaptação para cada tipo de parâmetros APS pode ser considerado em vigor. Para interpretação das mensagens SEI, os valores dos parâmetros do conjunto de parâmetros de vídeo, do conjunto de parâmetros de sequência, do conjunto de parâmetros de imagem e do conjunto de parâmetros de adaptação que estão ativos para operação do processo de decodificação para as unidades VCL NAL da imagem codificada na mesma unidade de acesso podem ser considerados em vigor a menos que de outro modo especificado nas semânticas de mensagem SEI.
[00268] A Figura 7 é um fluxograma ilustrando um método exemplar para codificar dados de vídeo de acordo com as técnicas dessa revelação. Embora descrito com relação ao codificador de vídeo 20, deve ser entendido que outros dispositivos de codificação de vídeo podem ser configurados para realizar o método da Figura 7.
[00269] Inicialmente, nesse exemplo, o codificador de vídeo 20 recebe um fluxo de bits incluindo uma ou mais camadas de dados brutos de vídeo (100). Por exemplo, a fonte de vídeo 18 (Figura 1) pode prover dados de vídeo de múltiplas vistas ao codificador de vídeo 20. Alternativamente, o codificador de vídeo 20, ou um seu pré- processador, pode dividir um fluxo de bits de vídeo bruto em uma pluralidade de várias camadas, por exemplo, camadas de resolução espacial, camadas de qualidade, camadas temporais, ou semelhantes. Em ainda outro exemplo, um fluxo de bits pode ser dividido em uma combinação de várias camadas, por exemplo, qualquer combinação de vistas, camadas de resolução espacial, camadas de qualidade, camadas temporais ou semelhantes.
[00270] O codificador de vídeo 20 pode determinar um ou mais parâmetros comuns para sequências correspondentes entre um conjunto de camadas (102). Sequências correspondentes podem ser sequências que têm localizações temporais correspondentes em diferentes camadas. Isto é, uma primeira sequência, tendo um tempo de início (em termos de tempo de exibição) de T1 e um tempo de término (em termos de tempo de exibição) de T2, e uma segunda sequência, também tendo um tempo de início de T1 e um tempo de término de T2, podem ser considerados como se correspondendo mutuamente. Especificamente, a primeira sequência pode formar parte de uma primeira camada, e a segunda sequência pode formar parte de uma segunda camada diferente. Uma “sequência” pode incluir uma série de imagens consecutivas na ordem de decodificação, por exemplo, começando com uma imagem de renovação de decodificação instantânea (IDR) e terminando imediatamente antes de uma imagem IDR subsequente na ordem de decodificação. Em geral, os parâmetros podem corresponder a um conjunto de sequências correspondentes de uma ou mais camadas, por exemplo, N camadas, onde N é um número inteiro. O codificador de vídeo 20 pode então codificar um VPS incluindo dados para os parâmetros determinados (104). Por exemplo, o codificador de vídeo 20 pode codificar um VPS correspondendo a um dos exemplos da Tabela 2 ou da Tabela 5.
[00271] O codificador de vídeo 20 também pode determinar parâmetros comuns para uma sequência dentro de uma camada (106). A sequência pode compreender uma das sequências correspondendo a outras sequências em outras camadas para as quais o VPS foi codificado. O codificador de vídeo 20 pode codificar um conjunto de parâmetros de sequência (SPS) incluindo os parâmetros comuns para a sequência (108). Assim, deve ser entendido que os VPS e o SPS são estruturas de dados separadas e correspondendo a diferentes tipos de dados de vídeo. Enquanto um VPS pode corresponder a um conjunto de sequências correspondentes entre uma pluralidade de camadas, o SPS corresponde a uma sequência em uma camada. O SPS pode se ajustar substancialmente a um SPS de H.264/AVC, o SPS de H.264/AVC como estendido pelo MVC (ilustrado na Tabela 1 acima), o padrão HEVC vindouro, ou o exemplo da Tabela 16 descrito acima. Além disso, o codificador de vídeo 20 pode codificar um conjunto de parâmetros de imagem (PPS) para uma imagem na sequência (110). O PPS pode se ajustar substancialmente a um SPS de H.264/AVC, o padrão HEVC vindouro, ou o exemplo da Tabela 13 descrito acima. Embora o método da Figura 7 mostre a codificação de apenas um PPS, deve ser entendido que múltiplos PPSs podem ser codificados. Uma ou mais imagens podem se referir ao mesmo PPS.
[00272] O codificador de vídeo 20 pode então determinar se a camada recente para a qual um SPS e PPSs foram codificados é a última camada (112). Se a última camada ainda não tiver sido endereçada (derivação “NÃO” de 112), o codificador de vídeo 20 pode selecionar uma próxima camada e codificar um SPS e um ou mais PPSs para a próxima camada, por exemplo, de acordo com as etapas 106-110. Após a última camada ter sido endereçada (derivação “SIM” de 112), o codificador de vídeo 20 pode codificar os dados de vídeo das várias camadas com base nos dados do VPS, SPS e PPS. Vários exemplos de codificação de dados de vídeo com base ao menos em parte em um VPS são descritos em maior detalhe abaixo com relação às Figuras 9-12.
[00273] Embora não mostrado no exemplo da Figura 7, em alguns exemplos, o codificador de vídeo 20 pode adicionalmente codificar um ou mais LPSs e/ou um ou mais GPSs, conforme descrito acima. Os LPSs podem se ajustar substancialmente aos exemplos da Tabela 9, Tabela 10 ou Tabela 12, enquanto o GPS pode se ajustar substancialmente aos exemplos da Tabela 14, Tabela 15 ou Tabela 17. Em tais exemplos, o codificador de vídeo 20 codifica os dados de vídeo também com base ao menos em parte nos LPSs e/ou outros GPSs.
[00274] Dessa maneira, o método da Figura 7 representa um exemplo de um método incluindo a codificação de um conjunto de parâmetros de vídeo (VPS) para uma ou mais camadas de dados de vídeo, em que cada uma da uma ou mais camadas de dados de vídeo se referem ao VPS, e a codificação da uma ou mais camadas de dados de vídeo com base ao menos em parte no VPS.
[00275] A Figura 8 é um fluxograma ilustrando um método exemplar para decodificar os dados de vídeo de acordo com as técnicas dessa revelação. Embora descrito com relação ao decodificador de vídeo 30, deve ser entendido que outros dispositivos de decodificação de vídeo podem ser configurados para realizar o método da Figura 8.
[00276] Inicialmente, o decodificador de vídeo 30 recebe um fluxo de bits incluindo um VPS, um ou mais SPSs, e um ou mais PPSs para camadas de dados de vídeo codificado (120). O decodificador de vídeo 30 pode então decodificar o VPS, o qual inclui parâmetros comuns para sequências correspondentes entre uma ou mais camadas (122). Similarmente, o decodificador de vídeo 30 pode decodificar um conjunto de parâmetros de sequência incluindo parâmetros comuns para uma sequência de uma camada (124). Além disso, o decodificador de vídeo 30 pode decodificar um conjunto de parâmetros de imagem incluindo parâmetros para uma imagem da sequência (126). Como discutido acima, uma ou mais imagens pode se referir ao mesmo PPS e, portanto, os parâmetros do PPS podem ser considerados comuns para uma ou mais imagens. Similarmente, o decodificador de vídeo 30 pode decodificar uma pluralidade de PPSs para a sequência, embora não mostrado na Figura 8.
[00277] Além disso, o decodificador de vídeo 30 pode determinar se a camada mais recente foi a última camada a ser endereçada (128). Se a camada mais recente não foi a última camada (derivação “NÃO” de 128), o decodificador de vídeo 30 pode prosseguir para decodificar um SPS e um ou mais PPSs para uma camada subsequente de acordo com as etapas 124 e 126. Por outro lado, se a camada mais recente era a última camada (derivação “SIM” de 128), o decodificador de vídeo 30 pode prosseguir para decodificar os dados de vídeo das camadas com base no VPS, SPSs e PPSs (130). Exemplos de codificação de dados de vídeo com base ao menos em parte em um VPS são discutidos em maior detalhe com relação às Figuras 9-12.
[00278] Embora não mostrado no exemplo da Figura 8, em alguns exemplos, o decodificador de vídeo 30 pode adicionalmente decodificar um ou mais LPSs e/ou um ou mais GPSs, como descrito acima. O LPSs pode estar em conformidade substancialmente com os exemplos da Tabela 9, Tabela 10 ou Tabela 12, enquanto que o GPS pode estar em conformidade substancialmente com os exemplos da Tabela 14, Tabela 15 ou Tabela 17. Em tais exemplos, o decodificador de vídeo 30 decodifica os dados de vídeo também com base ao menos em parte no LPSs e/ou no GPSs.
[00279] Dessa maneira, o método da Figura 8 representa um exemplo de um método incluindo a codificação de um conjunto de parâmetros de vídeo (VPS) para uma ou mais camadas de dados de vídeo, em que cada uma da uma ou mais camadas de dados de vídeo se referem ao VPS, e a codificação de uma ou mais camadas de dados de vídeo com base ao menos em parte no VPS.
[00280] A Figura 9 é um fluxograma ilustrando o método exemplar de codificação de dados de vídeo com base ao menos em parte em um número de camadas temporais conforme sinalizado em um VPS. O método da Figura 9 pode ser realizado pelo codificador de vídeo 20 e/ou pelo decodificador de vídeo 30. Para propósitos de exemplo, o método da Figura 9 é descrito com relação ao decodificador de vídeo 30.
[00281] Nesse exemplo, o decodificador de vídeo 30 codifica (isto é, decodifica) um VPS indicando um número de camadas temporais nos dados de vídeo (150), por exemplo, de uma ou mais camadas as quais corresponde o VPS. Por exemplo, o decodificador de vídeo 30 pode decodificar “cnt_t” conforme descrito com relação à Tabela 2 acima. Como outro exemplo, o decodificador de vídeo 30 pode decodificar num_temporal_layers_minus1, como descrito com relação à Tabela 5 acima.
[00282] Com base nessa indicação, nesse exemplo, o decodificador de vídeo 30 decodifica os identificadores temporais para cada uma das camadas temporais (152). Similarmente, o decodificador de vídeo 30 pode determinar valores de identificador de imagem de referência com base no número de camadas temporais (154). Por exemplo, o decodificador de vídeo 30 pode ser configurado para determinar que, para uma imagem atual na camada N, a imagem atual não utilizará imagens na ou acima da camada N+1 para referência. Portanto, o decodificador de vídeo 30 pode determinar identificadores para potenciais imagens de referência em camadas na ou abaixo da camada N. Além disso, o decodificador de vídeo 30 pode decodificar os dados de imagens em camada temporal N utilizando dados de referência das camadas até (e incluindo) a camada N (156). Assim, a Figura 9 representa um exemplo de um método incluindo os dados de codificação de um VPS indicativo de um número máximo de camadas temporais em uma ou mais camadas de dados de vídeo, e codificação da uma ou mais camadas com base ao menos em parte no VPS.
[00283] A Figura 10 é um fluxograma ilustrando um método exemplar de codificar dados de vídeo com base ao menos em parte em um número de imagens a serem reordenadas em uma ou mais camadas e imagens a serem armazenadas em um armazenador temporário de imagens decodificadas. O método da Figura 10 pode ser realizado pelo codificador de vídeo 20 e/ou decodificador de vídeo 30. Com o propósito de exemplo, o método da Figura 10 é descrito com relação ao decodificador de vídeo 30.
[00284] Nesse exemplo, o decodificador de vídeo 30 decodifica um VPS indicando um número de imagens que devem ser reordenadas em uma ou mais camadas de dados de vídeo e um número de imagens que devem ser armazenadas em um armazenador temporário de imagem decodificada (por exemplo, memória de imagem de referência 82) em um tempo determinado (160). Por exemplo, o decodificador de vídeo 30 pode decodificar um elemento de sintaxe do VPS correspondendo substancialmente a num_reorder_pics como descrito com relação à Tabela 16 acima e/ou informação de restrição de fluxo de bits que especifica um tamanho DPB. Em outros exemplos, o VPS poderia incluir apenas um ou o outro, e não necessariamente ambos, do número de imagens a serem reordenadas e o número de imagens a serem armazenadas no armazenador temporário de imagem decodificada. O decodificador de vídeo 30 pode então gerenciar o armazenador temporário de imagem decodificada (por exemplo, memória de imagem de referência 82) com base no número de imagens que devem ser reordenadas e/ou armazenadas (162). Por exemplo, o decodificador de vídeo 30 pode remover as imagens a partir da memória de imagem de referência 82 quando mais do que o número de imagens que devem ser armazenadas estiverem armazenadas na memória de imagens de referência 82.
[00285] O decodificador de vídeo 30 também pode determinar os valores de identificador de imagem de referência com base no número de imagens no DPB (isto é, na memória de imagem de referência 82) (164). Adicionalmente, o decodificador de vídeo 30 pode decodificar os dados de imagens com base nos valores de identificador de imagem de referência (166). Assim, o método da Figura 10 representa um exemplo de um método incluindo os dados de codificação de um VPS indicativo de um número de imagens a serem armazenadas em um armazenador temporário de imagens decodificadas (DPB) durante a decodificação de uma ou mais camadas e um método incluindo a codificação de dados de um VPS indicativo de um número de quadros a serem reordenados em pelo menos uma de uma ou mais camadas.
[00286] A Figura 11 é um fluxograma ilustrando um método exemplar de codificar dados de vídeo com base ao menos em parte em parâmetros de decodificador de referência hipotética (HRD) sinalizados em um VPS. O método da Figura 11 pode ser realizado pelo codificador de vídeo 20 e/ou pelo decodificador de vídeo 30. Para fins de exemplo, o método da Figura 11 é descrito com relação ao decodificador de vídeo 30.
[00287] Nesse exemplo, o decodificador de vídeo 30 decodifica um VPS indicando parâmetros HRD (170). O decodificador de vídeo 30 pode adicionalmente determinar os tempos de remoção para imagens a partir de um armazenador temporário de imagem codificada (CPB) com base nos parâmetros HRD (172). O decodificador de vídeo 30 pode então remover os dados a partir do CPB com base nos tempos de remoção determinados (174), e decodificar os dados removidos a partir do CPB. Consequentemente, o método da Figura 11 representa um exemplo de um método incluindo dados de codificação de um VPS indicativo de um ou mais parâmetros de decodificador de referência hipotética (HRD), e codificação de dados de uma ou mais camadas com base nos parâmetros HDR.
[00288] A Figura 12 é um fluxograma ilustrando um método exemplar de codificação de dados de vídeo com base ao menos em parte nos dados de extensão sinalizados em um VPS. O método da Figura 12 pode ser realizado pelo codificador de vídeo 20 e/ou pelo decodificador de vídeo 30. Com o propósito de exemplo, o método da Figura 12 é descrito com relação ao decodificador de vídeo 30.
[00289] O decodificador de vídeo 30, nesse exemplo, decodifica os dados de um VPS indicando se o VPS inclui dados de extensão (180). Por exemplo, o decodificador de vídeo 30 pode decodificar um vps_extension_flag do VPS. O decodificador de vídeo 30 determina então se os dados indicam que o VPS inclui dados de extensão (182). Se os dados indicarem que o VPS inclui os dados de extensão (derivação “SIM” de 182), o decodificador de vídeo 30 codifica os dados de extensão VPS para uma ou mais ferramentas de codificação de extensão (184), e decodifica os dados de vídeo utilizando as ferramentas de codificação de extensão e os dados de extensão (186). Por outro lado, se os dados de indicarem que o VPS não inclui os dados de extensão (derivação “NÃO” de 182), o decodificador de vídeo 30 pode decodificar os dados de vídeo utilizando ferramentas de codificação convencionais (188). Dessa maneira, o método da Figura 12 representa um exemplo de um método incluindo a codificação de dados de um VPS indicativo de se o VPS inclui uma extensão além de um padrão correspondente, e quando o VPS inclui a extensão, os dados para a extensão, assim como os dados de vídeo de codificação com base nos dados de extensão do VPS.
[00290] Deve ser reconhecido que dependendo do exemplo, certos aspectos ou eventos de quaisquer das técnicas descritas aqui podem ser realizados em uma sequência diferente, podem ser adicionados, fundidos ou deixados de fora completamente (por exemplo, nem todas as ações ou eventos descritos são necessariamente para a prática das técnicas). Além disso, em certos exemplos, ações ou eventos podem ser realizados simultaneamente, por exemplo, através de processamento encadeado múltiplo, processamento de interrupção ou múltiplos processadores, mais propriamente do que seqüencialmente.
[00291] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implementada em software, as funções podem ser armazenadas no, ou transmitidas através do, como uma ou mais instruções ou código, meio legível por computador e executadas por uma unidade de processamento baseado em hardware. Meios legíveis por computador podem incluir meios de armazenamento legíveis por computador, os quais correspondem a um meio tangível; tal como os meios de armazenamento de dados, ou meios de comunicação incluindo qualquer meio que facilita a transferência de um programa de computador de um local para outro, por exemplo, de acordo com um protocolo de comunicação. Dessa maneira, meios legíveis por computador geralmente podem corresponder a (1) meios de armazenamento tangíveis legíveis por computador os quais são não transitórios ou (2) um meio de comunicação tal com um sinal ou onda portadora. Os meios de armazenamento de dados podem ser quaisquer meios disponíveis que podem ser acessados por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implementação das técnicas descritas nessa revelação. Um produto de programa de computador pode incluir um meio legível por computador.
[00292] Como um exemplo, e não como limitação, tais meios de armazenamento legíveis por computador podem compreender RAM, ROM, EEPROM, CD-ROM ou qualquer outro meio de armazenamento de dados de estado sólido, ótico ou magnético, incluindo armazenamento de disco ótico, armazenamento de disco magnético, ou outros dispositivos de armazenamento magnético, ou qualquer outro meio que possa ser usado para armazenar código de programa desejado na forma de instruções ou estruturas de dados e que possam ser acessados por um computador. Além disso, qualquer conexão é propriamente denominada meio legível por computador. Por exemplo, se as instruções forem transmitidas a partir de um sítio de rede, servidor, ou outra fonte remota utilizando um cabo coaxial, cabo de fibras óticas, par de fios torcidos, linha de assinante digital (DSL), ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas, então o cabo axial, cabo de fibras óticas, par de fios torcidos, DSL, ou tecnologias sem fio tais como infravermelho, rádio e micro-ondas são incluídos na definição de meio. Deve ser entendido, contudo, que meios de armazenamento tangíveis legíveis por computador e meios de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outros meios transientes, mas em vez disso são dirigidos aos meios de armazenamento não transientes, tangíveis. Disco magnético e disco ótico, conforme aqui usado, incluem disco compacto (CD), disco a laser, disco ótico, disco digital versátil (DVD), disquete e disco Blu-ray, onde discos magnéticos normalmente reproduzem os dados magneticamente, enquanto que os discos óticos reproduzem os dados oticamente com laseres. Combinações dos mencionados acima também devem ser incluídas no escopo de meios legíveis por computador.
[00293] Instruções podem ser executadas por um ou mais processadores, tal como um ou mais processadores de sinal digital (DSPs), microprocessadores de uso geral, circuitos integrados de aplicação específica (ASICs), arranjos lógicos programáveis no campo (FPGAs), ou outros circuitos lógicos integrados ou discretos equivalentes. Consequentemente, o termo ”processador”, conforme aqui usado pode se referir a qualquer uma da estrutura precedente ou qualquer outra estrutura adequada para implementação das técnicas aqui descritas. Além disso, em alguns aspectos, a funcionalidade aqui descrita pode ser provida dentro de módulos de hardware e/ou software, dedicados configurados para codificar e decodificar, ou incorporados em um codec combinado. Além disso, as técnicas poderiam ser completamente implementadas em um ou mais circuitos ou elementos lógicos.
[00294] Ainda em outros exemplos, essa revelação considera um meio legível por computador compreendendo uma estrutura de dados nele armazenada, em que a estrutura de dados inclui um fluxo de bits codificado consistente com essa revelação. Especificamente, o fluxo de bits codificado pode incluir uma ou mais camadas de dados de vídeo, e um parâmetro de vídeo (VPS) para a uma ou mais camadas de dados de vídeo, em que cada uma da uma ou mais camadas de dados de vídeo se referem ao VPS e a uma ou mais camadas de dados de vídeo são codificadas com base ao menos em parte no VPS.
[00295] As técnicas dessa revelação podem ser implementadas em uma ampla variedade de dispositivos ou equipamentos, incluindo um aparelho telefônico sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chip). Vários componentes, módulos ou unidades são descritos nessa revelação para enfatizar os aspectos funcionais de dispositivos configurados para realizar as técnicas reveladas, mas não requerem necessariamente a realização por diferentes unidades de hardware. Mais propriamente, conforme descrito acima, as várias unidades podem ser combinadas em uma unidade de hardware de codec ou providas por um grupo de unidades de hardware interoperativas, incluindo um ou mais processadores conforme descrito acima, em conjunto com software e/ou firmware adequado.
[00296] Vários exemplos foram descritos. Esses e outros exemplos estão abrangidos pelo escopo das reivindicações a seguir.
Claims (15)
1. Método para codificar dados de vídeo, o método caracterizado por compreender: codificar (104, 122) um conjunto de parâmetros de vídeo, VPS, para uma pluralidade de camadas de dados de vídeo, em que cada uma dentre a pluralidade de camadas de dados de vídeo se refere ao VPS, e em que codificar o VPS compreende: codificar dados do VPS indicativos de um número de quadros a serem reordenados em pelo menos uma da pluralidade de camadas de dados de vídeo; codificar dados do VPS indicativos de um número de imagens a serem armazenadas em um armazenador temporário de imagens decodificadas, DPB, durante decodificação da pluralidade de camadas de dados de vídeo; e codificar dados do VPS indicativos de um número máximo de camadas temporais na pluralidade de camadas de dados de vídeo; codificar (114, 130) a pluralidade de camadas de dados de vídeo com base ao menos em parte no VPS.
2. Método, de acordo com a reivindicação 1, caracterizado por codificar o VPS também compreender pelo menos um dentre: codificar dados do VPS indicativos de um ou mais conjuntos de parâmetros de decodificador de referência hipotética, HRD; ou codificar dados do VPS indicativos de se o VPS inclui uma extensão além de um padrão correspondente, e quando o VPS inclui a extensão, dados para a extensão.
3. Método, de acordo com a reivindicação 1, caracterizado por codificar a pluralidade de camadas de dados de vídeo compreender pelo menos um dentre: codificar a pluralidade camadas de dados de vídeo de acordo com a Codificação de Vídeo de Alta Eficiência, HEVC; ou codificar a pluralidade de camadas de dados de vídeo de acordo com ao menos uma entre Codificação de Vídeo de Múltiplas Vistas, MVC, e Codificação de Vídeo Escalável, SVC.
4. Método, de acordo com a reivindicação 1, caracterizado por codificar o VPS compreender codificar informação especificando, para uma ou mais dimensões da pluralidade de camadas de dados de vídeo, uma ou mais de um número de camadas de prioridade na pluralidade de camadas de dados de vídeo, um número de camadas de dependência na pluralidade de camadas de dados de vídeo, um número de camadas temporais na pluralidade de camadas de dados de vídeo, um número máximo de camadas de qualidade para qualquer uma das camadas de dependência na pluralidade de camadas de dados de vídeo, e um número máximo de vistas na pluralidade de camadas de dados de vídeo e preferivelmente, em que quando um subconjunto da pluralidade de camadas de dados de vídeo tem a mesma resolução espacial e a mesma profundidade de bit, cada uma das camadas do subconjunto correspondendo a uma camada diferente das camadas de dependência.
5. Método, de acordo com a reivindicação 4, caracterizado por codificar o VPS compreender codificar informação definindo um mapeamento de um índice de amostra para um indicador de características, e em que codificar a informação definindo o mapeamento compreende pelo menos um dentre: codificar informação que especifica um indicador de característica respectivo para cada um de uma pluralidade de índices de características quando um indicador de característica que define características de uma dimensão da pluralidade de camadas de dados de vídeo não estiver dentro de uma faixa de índices a partir de zero para um contador de dimensão de amostra menos 1, em que o contador é definido por um índice; ou codificar uma ou mais de uma resolução espacial respectiva para cada um de uma pluralidade de índices de dependência, uma taxa de quadros para cada um de uma pluralidade de índices temporais, um identificador de vista para cada um de uma pluralidade de índices de vista, um par de valores de profundidade específica para luminância e crominância para cada um de uma pluralidade de índices de profundidade de bit, e um indicador de formato de amostragem de crominância específico para cada um da pluralidade de formatos de amostragem de crominância.
6. Método, de acordo com a reivindicação 1, caracterizado por codificar o VPS compreender codificar informação definindo parâmetros de controle e um ou mais sinalizadores de habilitação/desabilitação de ferramenta e preferivelmente, em que os parâmetros de controle e o um ou mais sinalizadores de habilitação/desabilitação de ferramenta compreendem um ou mais de um pcm_bit_depth_luma_minus1, um pcm_bit_depth_chroma_minus1, um loop_filter_across_slice_flag, um pcm_loop_filter_disable_flag, um temporal_id_nesting_flag, um ou mais elementos de sintaxe relacionados a bloco de pixels, um chroma_pred_from_luma_enabled_flag, um sample_adaptive_offset_enabled_flag, um adaptive_loop_filter_enabled_flag, e um inter_4x4_enabled_flag.
7. Método, de acordo com a reivindicação 1, caracterizado por codificar o VPS compreender codificar informação definindo um ou mais descritores de ponto de operação, e preferivelmente, em que codificar a informação definindo um ou mais descritores de ponto de operação compreende codificar informação definindo um ou mais de um número de pontos máximos de operação, dependência entre diferentes camadas ou vistas, perfil e nível para cada um dos pontos de operação, para cada ponto de operação, representação de unidade de camada de abstração de rede, NAL, de camada de codificação de vídeo de ponto de operação, VCL, para cada dimensão um ou mais de um valor de índice específico, uma faixa de valores de índice potenciais para a dimensão, e uma lista de valores de índice, taxa de bits para cada um dos pontos de operação, dependência entre os pontos de operação, restrições para cada um dos pontos de operação, informação de usabilidade de vídeo, VUI, para cada um dos pontos de operação, e VUI para cada uma da pluralidade de camadas de dados de vídeo.
8. Método, de acordo com a reivindicação 1, caracterizado por compreender ainda codificar um conjunto de parâmetros de sequência em camadas, LPS, respectivo para cada uma da pluralidade de camadas de dados de vídeo, em que codificar a pluralidade de camadas de dados de vídeo com base ao menos em parte no VPS compreende codificar a pluralidade de camadas de dados de vídeo com base ao menos em parte no VPS e no LPS respectivo e preferivelmente, em que codificar os LPSs respectivos para cada uma da pluralidade de camadas de dados de vídeo compreende pelo menos um dentre: codificar informação definindo uma indicação de dimensão de amostra que indica, para cada dimensão, um índice para cada dimensão; codificar informação definindo parâmetros de controle e sinalizadores de habilitação/desabilitação de ferramenta, em que os parâmetros de controle e o um ou mais sinalizadores de habilitação/desabilitação de ferramenta compreendem um ou mais de um pcm_bit_depth_luma_minus1, um pcm_bit_depth_chroma_minus1, um loop_filter_across_slice_flag, um pcm_loop_filter_disable_flag, um ou mais elementos de sintaxe relacionados a bloco chroma_pred_from_luma_enabled_flag, sample_adaptive_offset_enabled_flag, de pixels, um um um adaptive_loop_filter_enabled_flag, e unidade de codificação (CU); ou uma hierarquia de codificar informação definindo a informação de um ou mais de outros conjuntos de parâmetros que se aplicam a ao menos uma de uma fatia, um grupo de fatias, uma imagem, e várias imagens com referência a um conjunto de parâmetros de imagens comuns, PPS.
9. Método, de acordo com a reivindicação 1, caracterizado por compreender ainda codificar um ou mais conjuntos de parâmetros de imagem, PPSs, de tal modo que os PPSs não se referem ao VPS, não se referem aos conjuntos de parâmetros de sequência em camadas, LPSs, da pluralidade de camadas de dados de vídeo e preferivelmente, em que codificar a pluralidade de camadas de dados de vídeo com base ao menos em parte no VPS compreende codificar a pluralidade de camadas de dados de vídeo com base ao menos em parte no VPS, no PPSs, e no LPSs, de tal modo que quando um elemento de sintaxe de um dos PPSs conflita com o VPS ou com um respectivo dos LPSs, codificar uma camada correspondente da pluralidade de camadas de dados de vídeo com base no elemento de sintaxe de um dos PPSs.
10. Método, de acordo com a reivindicação 1, caracterizado por compreender ainda codificar um conjunto de parâmetros de agrupamento, GPS, que agrupa todos os conjuntos de parâmetros, incluindo o VPS, para a pluralidade de camadas de dados de vídeo em conjunto e preferivelmente, em que codificar o GPS compreende codificar informação definindo um identificador do GPS, o método compreendendo ainda codificar informação de um cabeçalho de fatia correspondendo ao identificador do GPS.
11. Método, de acordo com a reivindicação 1, caracterizado por codificar a pluralidade de camadas de dados de vídeo compreender decodificar a pluralidade de camadas de dados de vídeo, e em que codificar o VPS compreende analisar o VPS.
12. Método, de acordo com a reivindicação 1, caracterizado por codificar a pluralidade de camadas de dados de vídeo compreender codificar a pluralidade de camadas de dados de vídeo, e em que codificar o VPS compreende construir o VPS.
13. Dispositivo para codificar dados de vídeo, o dispositivo caracterizado por compreender: mecanismos para codificar (20, 30) um conjunto de parâmetros de vídeo, VPS, para uma pluralidade de camadas de dados de vídeo, em que cada uma dentre a pluralidade de camadas de dados de vídeo se refere ao VPS, e em que os mecanismos para codificar o VPS compreendem: mecanismos para codificar dados do VPS indicativos de um número de quadros a serem reordenados em pelo menos uma da pluralidade de camadas de dados de vídeo; mecanismos para codificar dados do VPS indicativos de um número de imagens a serem armazenadas em um armazenador temporário de imagens decodificadas, DPB, durante decodificação da pluralidade de camadas de dados de vídeo; e mecanismos para codificar dados do VPS indicativos de um número máximo de camadas temporais na pluralidade de camadas de dados de vídeo; mecanismos para codificar (20, 30) a pluralidade de camadas de dados de vídeo com base ao menos em parte no VPS.
14. Dispositivo, de acordo com a reivindicação 13, caracterizado pelos mecanismos para codificar o VPS também compreenderem pelo menos um dentre: mecanismos para codificar dados do VPS indicativos de um ou mais conjuntos de parâmetros de decodificador de referência hipotética, HRD; ou mecanismos para codificar dados do VPS indicativos de se o VPS inclui uma extensão além de um padrão correspondente, e quando o VPS inclui a extensão, dados para a extensão, e em que mecanismos para codificar a pluralidade de camadas de dados de vídeo compreendem mecanismos para codificar a pluralidade de camadas de dados de vídeo de acordo com a Codificação de Vídeo de Alta Eficiência, HEVC, a Codificação de Vídeo de Múltiplas Vistas, MVC, e a Codificação de Vídeo Escalável, SVC.
15. Memória caracterizada por compreender instruções armazenadas na mesma que, quando executadas, fazem com que um processador execute o método conforme definido em qualquer uma das reivindicações 1 a 12.
Applications Claiming Priority (12)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261586777P | 2012-01-14 | 2012-01-14 | |
US61/586,777 | 2012-01-14 | ||
US201261587070P | 2012-01-16 | 2012-01-16 | |
US61/587,070 | 2012-01-16 | ||
US201261588629P | 2012-01-19 | 2012-01-19 | |
US61/588,629 | 2012-01-19 | ||
US201261637195P | 2012-04-23 | 2012-04-23 | |
US61/637,195 | 2012-04-23 | ||
US201261637774P | 2012-04-24 | 2012-04-24 | |
US13/738,377 | 2013-01-10 | ||
US13/738,377 US9451252B2 (en) | 2012-01-14 | 2013-01-10 | Coding parameter sets and NAL unit headers for video coding |
PCT/US2013/021227 WO2013106705A2 (en) | 2012-01-14 | 2013-01-11 | Coding parameter sets and nal unit headers for video coding |
Publications (3)
Publication Number | Publication Date |
---|---|
BR112014017159A2 BR112014017159A2 (pt) | 2017-06-13 |
BR112014017159A8 BR112014017159A8 (pt) | 2017-07-04 |
BR112014017159B1 true BR112014017159B1 (pt) | 2022-12-06 |
Family
ID=48779946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112014017159-9A BR112014017159B1 (pt) | 2012-01-14 | 2013-01-11 | Conjuntos de parâmetros de codificação e cabeçalhos de unidade nal para codificação de vídeo |
Country Status (19)
Country | Link |
---|---|
US (1) | US9451252B2 (pt) |
EP (1) | EP2803193B1 (pt) |
JP (1) | JP6117243B2 (pt) |
KR (1) | KR101760165B1 (pt) |
CN (1) | CN104054345B (pt) |
AU (1) | AU2013207799B2 (pt) |
BR (1) | BR112014017159B1 (pt) |
CA (1) | CA2860776C (pt) |
DK (1) | DK2803193T3 (pt) |
ES (1) | ES2633651T3 (pt) |
HU (1) | HUE032097T2 (pt) |
IL (1) | IL233228A (pt) |
MY (1) | MY167149A (pt) |
PH (1) | PH12014501447A1 (pt) |
RU (1) | RU2633117C2 (pt) |
SG (2) | SG11201403325SA (pt) |
SI (1) | SI2803193T1 (pt) |
TW (1) | TWI517692B (pt) |
WO (1) | WO2013106705A2 (pt) |
Families Citing this family (140)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8761502B1 (en) | 2011-09-30 | 2014-06-24 | Tribune Broadcasting Company, Llc | Systems and methods for identifying a colorbar/non-colorbar frame attribute |
US20130114710A1 (en) * | 2011-11-08 | 2013-05-09 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding video by prediction using reference picture list, and method and apparatus for decoding video by performing compensation using reference picture list |
US9451252B2 (en) | 2012-01-14 | 2016-09-20 | Qualcomm Incorporated | Coding parameter sets and NAL unit headers for video coding |
KR20130116782A (ko) * | 2012-04-16 | 2013-10-24 | 한국전자통신연구원 | 계층적 비디오 부호화에서의 계층정보 표현방식 |
WO2013162450A1 (en) * | 2012-04-24 | 2013-10-31 | Telefonaktiebolaget L M Ericsson (Publ) | Encoding and deriving parameters for coded multi-layer video sequences |
GB2501535A (en) * | 2012-04-26 | 2013-10-30 | Sony Corp | Chrominance Processing in High Efficiency Video Codecs |
US9602827B2 (en) | 2012-07-02 | 2017-03-21 | Qualcomm Incorporated | Video parameter set including an offset syntax element |
WO2014005305A1 (en) * | 2012-07-04 | 2014-01-09 | Intel Corporation | Inter-view filter parameters re-use for three dimensional video coding |
EP2871567A4 (en) * | 2012-07-06 | 2016-01-06 | Samsung Electronics Co Ltd | METHOD AND APPARATUS FOR ENCODING MULTILAYER VIDEO, AND METHOD AND APPARATUS FOR DECODING MULTILAYER VIDEO |
US9992490B2 (en) * | 2012-09-26 | 2018-06-05 | Sony Corporation | Video parameter set (VPS) syntax re-ordering for easy access of extension parameters |
BR112015006323A2 (pt) * | 2012-09-28 | 2017-07-04 | Sony Corp | dispositivo e método de processamento de imagem |
US9706199B2 (en) * | 2012-09-28 | 2017-07-11 | Nokia Technologies Oy | Apparatus, a method and a computer program for video coding and decoding |
US20150237372A1 (en) * | 2012-10-08 | 2015-08-20 | Samsung Electronics Co., Ltd. | Method and apparatus for coding multi-layer video and method and apparatus for decoding multi-layer video |
US9936196B2 (en) * | 2012-10-30 | 2018-04-03 | Qualcomm Incorporated | Target output layers in video coding |
KR20140087971A (ko) | 2012-12-26 | 2014-07-09 | 한국전자통신연구원 | 계층적 비디오 부호화에서 다중참조계층을 적용한 화면간 부/복호화 방법 및 그 장치 |
US9848202B2 (en) * | 2012-12-28 | 2017-12-19 | Electronics And Telecommunications Research Institute | Method and apparatus for image encoding/decoding |
US10219006B2 (en) | 2013-01-04 | 2019-02-26 | Sony Corporation | JCTVC-L0226: VPS and VPS_extension updates |
US10419778B2 (en) | 2013-01-04 | 2019-09-17 | Sony Corporation | JCTVC-L0227: VPS_extension with updates of profile-tier-level syntax structure |
EP2966864A4 (en) * | 2013-04-05 | 2016-10-19 | Samsung Electronics Co Ltd | METHOD AND DEVICE FOR DECODING A MULTILAYER VIDEO AND METHOD AND DEVICE FOR CODING MULTILAYER VIDEOS |
US9591321B2 (en) | 2013-04-07 | 2017-03-07 | Dolby International Ab | Signaling change in output layer sets |
SG10201913539SA (en) | 2013-04-07 | 2020-02-27 | Dolby Int Ab | Signaling change in output layer sets |
US9565437B2 (en) | 2013-04-08 | 2017-02-07 | Qualcomm Incorporated | Parameter set designs for video coding extensions |
US10075735B2 (en) * | 2013-07-14 | 2018-09-11 | Sharp Kabushiki Kaisha | Video parameter set signaling |
US9100631B2 (en) * | 2013-08-05 | 2015-08-04 | Cable Television Laboratories, Inc. | Dynamic picture quality control |
US9426465B2 (en) * | 2013-08-20 | 2016-08-23 | Qualcomm Incorporated | Sub-PU level advanced residual prediction |
CN104427323B (zh) * | 2013-08-23 | 2016-08-10 | 鸿富锦精密工业(深圳)有限公司 | 基于深度的三维图像处理方法 |
US20150078457A1 (en) * | 2013-09-13 | 2015-03-19 | Qualcomm Incorporated | Representation format signaling in multi-layer video coding |
US10104362B2 (en) * | 2013-10-08 | 2018-10-16 | Sharp Kabushiki Kaisha | Image decoding device, image coding device, and coded data |
US9648333B2 (en) * | 2013-10-11 | 2017-05-09 | Vid Scale, Inc. | High level syntax for HEVC extensions |
US20160227227A1 (en) * | 2013-10-11 | 2016-08-04 | Sharp Kabushiki Kaisha | Color information and chromaticity signaling |
KR20150043222A (ko) * | 2013-10-12 | 2015-04-22 | 삼성전자주식회사 | 멀티 레이어 비디오 부호화 방법 및 그 장치, 멀티 레이어 비디오 복호화 방법 및 그 장치 |
KR102275639B1 (ko) | 2013-10-14 | 2021-07-08 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 비디오 및 영상 코딩 및 디코딩에 대한 기본 색상 인덱스 맵 모드의 특징 |
US9936207B2 (en) * | 2013-10-14 | 2018-04-03 | Qualcomm Incorporated | Indication of parallel processing in video coding |
KR102290091B1 (ko) * | 2013-10-14 | 2021-08-18 | 한국전자통신연구원 | 다계층 기반의 영상 부호화/복호화 방법 및 장치 |
KR102257269B1 (ko) | 2013-10-14 | 2021-05-26 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 비디오 및 이미지 코딩 및 디코딩을 위한 인트라 블록 카피 예측 모드의 피쳐 |
WO2015056158A1 (en) * | 2013-10-14 | 2015-04-23 | Nokia Technologies Oy | Multi-layer hypothetical reference decoder |
CN105659602B (zh) | 2013-10-14 | 2019-10-08 | 微软技术许可有限责任公司 | 用于视频和图像编码的帧内块复制预测模式的编码器侧选项 |
WO2015056566A1 (ja) * | 2013-10-15 | 2015-04-23 | ソニー株式会社 | 画像処理装置および方法 |
WO2015078304A1 (en) | 2013-11-27 | 2015-06-04 | Mediatek Singapore Pte. Ltd. | Method of video coding using prediction based on intra picture block copy |
US9854270B2 (en) * | 2013-12-19 | 2017-12-26 | Qualcomm Incorporated | Device and method for scalable coding of video information |
CN104754358B (zh) * | 2013-12-27 | 2019-02-19 | 中兴通讯股份有限公司 | 码流的生成和处理方法、装置及系统 |
WO2015103462A1 (en) * | 2014-01-02 | 2015-07-09 | Vidyo, Inc. | Overlays using auxiliary pictures |
US10469863B2 (en) | 2014-01-03 | 2019-11-05 | Microsoft Technology Licensing, Llc | Block vector prediction in video and image coding/decoding |
US10390034B2 (en) | 2014-01-03 | 2019-08-20 | Microsoft Technology Licensing, Llc | Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area |
US9749642B2 (en) | 2014-01-08 | 2017-08-29 | Microsoft Technology Licensing, Llc | Selection of motion vector precision |
US9774881B2 (en) * | 2014-01-08 | 2017-09-26 | Microsoft Technology Licensing, Llc | Representing motion vectors in an encoded bitstream |
US10567804B2 (en) | 2014-01-08 | 2020-02-18 | Qualcomm Incorporated | Carriage of HEVC extension bitstreams and buffer model with MPEG-2 systems |
US9826232B2 (en) * | 2014-01-08 | 2017-11-21 | Qualcomm Incorporated | Support of non-HEVC base layer in HEVC multi-layer extensions |
US11284103B2 (en) | 2014-01-17 | 2022-03-22 | Microsoft Technology Licensing, Llc | Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning |
US10542274B2 (en) | 2014-02-21 | 2020-01-21 | Microsoft Technology Licensing, Llc | Dictionary encoding and decoding of screen content |
US10368091B2 (en) | 2014-03-04 | 2019-07-30 | Microsoft Technology Licensing, Llc | Block flipping and skip mode in intra block copy prediction |
US20150264099A1 (en) * | 2014-03-14 | 2015-09-17 | Sharp Laboratories Of America, Inc. | Systems and methods for constraining a bitstream |
AU2015228999B2 (en) * | 2014-03-14 | 2018-02-01 | Interdigital Vc Holdings, Inc. | Systems and methods for RGB video coding enhancement |
JP6150134B2 (ja) * | 2014-03-24 | 2017-06-21 | ソニー株式会社 | 画像符号化装置および方法、画像復号装置および方法、プログラム、並びに記録媒体 |
US9402083B2 (en) * | 2014-04-24 | 2016-07-26 | Vidyo, Inc. | Signaling conformance points using profile space |
WO2015165030A1 (en) | 2014-04-29 | 2015-11-05 | Microsoft Technology Licensing, Llc | Encoder-side decisions for sample adaptive offset filtering |
WO2015192353A1 (en) | 2014-06-19 | 2015-12-23 | Microsoft Technology Licensing, Llc | Unified intra block copy and inter prediction modes |
US10356415B2 (en) | 2014-06-20 | 2019-07-16 | Qualcomm Incorporated | Systems and methods for constraining representation format parameters for a parameter set |
CN105874800B (zh) * | 2014-09-17 | 2019-05-10 | 联发科技股份有限公司 | 句法解析装置和句法解析方法 |
EP3202150B1 (en) | 2014-09-30 | 2021-07-21 | Microsoft Technology Licensing, LLC | Rules for intra-picture prediction modes when wavefront parallel processing is enabled |
US10306269B2 (en) * | 2014-10-10 | 2019-05-28 | Qualcomm Incorporated | Operation point for carriage of layered HEVC bitstream |
US20160112724A1 (en) * | 2014-10-15 | 2016-04-21 | Qualcomm Incorporated | Hrd descriptor and buffer model of data streams for carriage of hevc extensions |
CN106105221B (zh) * | 2015-01-09 | 2021-05-04 | 索尼公司 | 图像处理设备、图像处理方法以及记录介质 |
US9591325B2 (en) | 2015-01-27 | 2017-03-07 | Microsoft Technology Licensing, Llc | Special case handling for merged chroma blocks in intra block copy prediction mode |
WO2016123001A1 (en) | 2015-01-27 | 2016-08-04 | Dolby International Ab | Predictive image encoding and decoding with pixel group based quantization |
US10148969B2 (en) * | 2015-02-11 | 2018-12-04 | Qualcomm Incorporated | Of sample entry and operation point signalling in a layered video file format |
US11418812B2 (en) * | 2015-02-11 | 2022-08-16 | Qualcomm Incorporated | Placement of parameter sets and sync samples in video coding |
CN106664405B (zh) | 2015-06-09 | 2020-06-09 | 微软技术许可有限责任公司 | 用调色板模式对经逸出编码的像素的稳健编码/解码 |
US20170006283A1 (en) * | 2015-06-30 | 2017-01-05 | Microsoft Technology Licensing, Llc | Computationally efficient sample adaptive offset filtering during video encoding |
WO2017008263A1 (en) | 2015-07-15 | 2017-01-19 | Mediatek Singapore Pte. Ltd. | Conditional binary tree block partitioning structure |
US10547860B2 (en) * | 2015-09-09 | 2020-01-28 | Avago Technologies International Sales Pte. Limited | Video coding with trade-off between frame rate and chroma fidelity |
US10003822B2 (en) * | 2016-02-10 | 2018-06-19 | Primacomp, Inc. | Error-resilient coder of image sequences and video |
US11405611B2 (en) | 2016-02-15 | 2022-08-02 | Qualcomm Incorporated | Predicting filter coefficients from fixed filters for video coding |
JP6969541B2 (ja) * | 2016-04-12 | 2021-11-24 | ソニーグループ株式会社 | 送信装置および送信方法 |
US10356800B2 (en) * | 2016-05-09 | 2019-07-16 | Qualcomm Incorporated | Scalable numerology with symbol boundary alignment for uniform and non-uniform symbol duration in wireless communication |
US10271069B2 (en) | 2016-08-31 | 2019-04-23 | Microsoft Technology Licensing, Llc | Selective use of start code emulation prevention |
US10506230B2 (en) * | 2017-01-04 | 2019-12-10 | Qualcomm Incorporated | Modified adaptive loop filter temporal prediction for temporal scalability support |
WO2018198487A1 (en) * | 2017-04-25 | 2018-11-01 | Sharp Kabushiki Kaisha | Systems and methods for signaling quality information for regions in virtual reality applications |
CN117201818A (zh) | 2017-05-26 | 2023-12-08 | Sk电信有限公司 | 对视频数据进行编码或解码的方法和发送比特流的方法 |
KR102435881B1 (ko) * | 2017-05-26 | 2022-08-24 | 에스케이텔레콤 주식회사 | 영상 부호화 또는 복호화하기 위한 장치 및 방법 |
US10986349B2 (en) | 2017-12-29 | 2021-04-20 | Microsoft Technology Licensing, Llc | Constraints on locations of reference blocks for intra block copy prediction |
WO2019172202A1 (ja) * | 2018-03-05 | 2019-09-12 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置及び符号化方法 |
GB2588004B (en) | 2018-06-05 | 2023-03-01 | Beijing Bytedance Network Tech Co Ltd | Interaction between IBC and affine |
WO2019244117A1 (en) | 2018-06-21 | 2019-12-26 | Beijing Bytedance Network Technology Co., Ltd. | Unified constrains for the merge affine mode and the non-merge affine mode |
CN113115046A (zh) | 2018-06-21 | 2021-07-13 | 北京字节跳动网络技术有限公司 | 分量相关的子块分割 |
US10628276B2 (en) | 2018-06-29 | 2020-04-21 | International Business Machines Corporation | Unit test framework for testing code in a gateway service |
CN108898321B (zh) * | 2018-07-09 | 2021-08-24 | 西北工业大学 | 一种基于语义模板的制造技术问题标准冲突参数获取方法 |
CN110944196B (zh) | 2018-09-24 | 2023-05-30 | 北京字节跳动网络技术有限公司 | 简化的基于历史的运动矢量预测 |
WO2020094150A1 (en) | 2018-11-10 | 2020-05-14 | Beijing Bytedance Network Technology Co., Ltd. | Rounding in current picture referencing |
KR102660160B1 (ko) | 2018-11-22 | 2024-04-24 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 서브 블록 기반 인터 예측을 위한 조정 방법 |
US10812818B2 (en) | 2018-12-14 | 2020-10-20 | Tencent America LLC | Network abstraction unit layer type classes in network abstraction layer unit header |
CN113228666B (zh) | 2018-12-31 | 2022-12-30 | 华为技术有限公司 | 支持视频编解码中的自适应分辨率改变 |
WO2020142483A1 (en) * | 2018-12-31 | 2020-07-09 | Futurewei Technologies, Inc. | Explicit address signaling in video coding |
CN113366833A (zh) | 2019-02-01 | 2021-09-07 | 北京字节跳动网络技术有限公司 | 对环路整形的限制 |
CN113366841B (zh) | 2019-02-01 | 2024-09-20 | 北京字节跳动网络技术有限公司 | 配置用于视频编解码的依赖于亮度的色度残差缩放 |
KR102661416B1 (ko) * | 2019-02-27 | 2024-04-25 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 인코더, 디코더 및 대응하는 방법 |
US11395006B2 (en) * | 2019-03-06 | 2022-07-19 | Tencent America LLC | Network abstraction layer unit header |
CN113574889B (zh) | 2019-03-14 | 2024-01-12 | 北京字节跳动网络技术有限公司 | 环路整形信息的信令和语法 |
KR20210118951A (ko) * | 2019-03-15 | 2021-10-01 | 엘지전자 주식회사 | 크로마 포맷에 대한 정보를 시그널링 하는 방법 및 장치 |
KR20210139272A (ko) * | 2019-03-23 | 2021-11-22 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 적응적 루프 필터링 파라미터 세트들에 대한 제한들 |
CN113796074A (zh) * | 2019-03-25 | 2021-12-14 | 联发科技股份有限公司 | 用于视频编解码的量化矩阵计算和表示的方法和装置 |
US11917143B2 (en) * | 2019-04-03 | 2024-02-27 | Lg Electronics Inc. | Adaptive loop filter-based video or image coding |
KR20210130235A (ko) | 2019-04-15 | 2021-10-29 | 엘지전자 주식회사 | 스케일링 리스트 파라미터 기반 비디오 또는 영상 코딩 |
CN113728627B (zh) * | 2019-04-26 | 2023-09-19 | 北京字节跳动网络技术有限公司 | 用于环路内重构的参数的预测 |
KR102653570B1 (ko) * | 2019-05-12 | 2024-04-02 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 참조 픽처 리샘플링을 위한 신호 |
BR112021023469A2 (pt) * | 2019-05-24 | 2022-01-18 | Digital Insights Inc | Método de codificação de vídeo e aparelho usando conjunto de parâmetros adaptativos |
US11032548B2 (en) * | 2019-06-24 | 2021-06-08 | Tencent America LLC | Signaling for reference picture resampling |
KR20220042125A (ko) | 2019-08-10 | 2022-04-04 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 서브픽처 디코딩에서의 버퍼 관리 |
EP3997877A4 (en) | 2019-08-13 | 2023-05-24 | Beijing Bytedance Network Technology Co., Ltd. | MOTION ACCURACY IN SUBBLOCK-BASED INTERPREDICTION |
CN114586350A (zh) | 2019-08-29 | 2022-06-03 | Lg 电子株式会社 | 基于交叉分量自适应环路滤波的图像编译装置和方法 |
CA3241768A1 (en) | 2019-08-29 | 2021-03-04 | Lg Electronics Inc. | Device and method for coding video on basis of filtering |
CN114762330A (zh) | 2019-09-22 | 2022-07-15 | 北京字节跳动网络技术有限公司 | 视频的子图片编码和解码 |
JP2022549011A (ja) * | 2019-09-24 | 2022-11-22 | 華為技術有限公司 | ビデオコーディングにおけるピクチャーヘッダーのシグナリング |
KR20220065044A (ko) * | 2019-09-24 | 2022-05-19 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 공간 및 snr 확장성을 위한 ols |
CN115209153B (zh) | 2019-09-24 | 2023-06-06 | 华为技术有限公司 | 编码器、解码器及对应方法 |
JPWO2021117813A1 (pt) * | 2019-12-13 | 2021-06-17 | ||
WO2021134015A1 (en) | 2019-12-26 | 2021-07-01 | Bytedance Inc. | Profile, tier and layer indication in video coding |
EP4062634A4 (en) * | 2019-12-26 | 2022-12-28 | ByteDance Inc. | LIMITATIONS ON SIGNALING HYPOTHETICAL REFERENCE DECODER PARAMETERS IN VIDEO BITSTREAMS |
JP7568350B2 (ja) * | 2019-12-26 | 2024-10-16 | バイトダンス インコーポレイテッド | ビデオコーディングにおける復号パラメータセット |
CN114902567A (zh) | 2019-12-27 | 2022-08-12 | 字节跳动有限公司 | 视频编解码中的子图像信令 |
US11343524B2 (en) * | 2019-12-27 | 2022-05-24 | Tencent America LLC | Method for adaptation parameter set reference and constraints in coded video stream |
US11356698B2 (en) | 2019-12-30 | 2022-06-07 | Tencent America LLC | Method for parameter set reference constraints in coded video stream |
EP4074052A4 (en) | 2020-01-09 | 2023-05-31 | ByteDance Inc. | PROCESSING OF FILLER DATA UNITS IN VIDEO STREAMS |
RU2730422C1 (ru) * | 2020-01-14 | 2020-08-21 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Московский автомобильно-дорожный государственный технический университет (МАДИ) | Способ пространственного кодирования и передачи цифровой информации |
CN115280771A (zh) * | 2020-01-15 | 2022-11-01 | Lg电子株式会社 | 基于滤波相关信息信令的图像编码设备和方法 |
KR20220110299A (ko) * | 2020-01-15 | 2022-08-05 | 엘지전자 주식회사 | 인루프 필터링 기반 영상 코딩 장치 및 방법 |
WO2021145726A1 (ko) * | 2020-01-15 | 2021-07-22 | 엘지전자 주식회사 | 적응적 루프 필터링 기반 영상 코딩 장치 및 방법 |
BR112022015242A2 (pt) * | 2020-02-04 | 2022-09-20 | Huawei Tech Co Ltd | Codificador, decodificador e métodos correspondentes sobre sinalização de sintaxe de alto nível |
EP4101166A1 (en) * | 2020-02-06 | 2022-12-14 | Interdigital Patent Holdings, Inc. | Systems and methods for encoding a deep neural network |
EP4304174A3 (en) | 2020-03-11 | 2024-03-20 | Beijing Bytedance Network Technology Co., Ltd. | Adaptive loop filtering |
US11509920B2 (en) | 2020-03-27 | 2022-11-22 | Tencent America LLC | Indication of max sublayer numbers in multilayered video stream |
WO2021197433A1 (en) * | 2020-04-01 | 2021-10-07 | Mediatek Inc. | Method and apparatus for signaling slice partition information in image and video coding |
JP2023524201A (ja) * | 2020-04-21 | 2023-06-09 | ドルビー ラボラトリーズ ライセンシング コーポレイション | ビデオ・コーディングにおける制約処理及び適合性試験のためのセマンティクス |
EP4140140A4 (en) | 2020-05-21 | 2023-07-05 | ByteDance Inc. | PROGRESSIVE DECODING REFRESH SIGNALING AND REFERENCE PICTURE LISTS |
US11431998B2 (en) * | 2020-05-22 | 2022-08-30 | Tencent America LLC | Systems and methods for decoding based on inferred video parameter sets |
CN115668949A (zh) * | 2020-05-26 | 2023-01-31 | 字节跳动有限公司 | 编解码视频中的帧间层参考图片的标识 |
WO2021244419A1 (en) | 2020-05-31 | 2021-12-09 | Beijing Bytedance Network Technology Co., Ltd. | Constraint signaling using general constraint information syntax element |
US11770549B2 (en) * | 2020-06-10 | 2023-09-26 | Sony Group Corporation | Video data encoding and decoding circuity applying constraint data |
GB2599171A (en) * | 2020-09-29 | 2022-03-30 | Canon Kk | Method and apparatus for encapsulating video data into a file |
WO2022226523A1 (en) * | 2021-04-23 | 2022-10-27 | Bytedance Inc. | Method, device, and medium for video processing |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7302490B1 (en) | 2000-05-03 | 2007-11-27 | Microsoft Corporation | Media file format to support switching between multiple timeline-altered media streams |
US20040006575A1 (en) | 2002-04-29 | 2004-01-08 | Visharam Mohammed Zubair | Method and apparatus for supporting advanced coding formats in media files |
EP1385337A1 (en) | 2002-07-22 | 2004-01-28 | Deutsche Thomson-Brandt Gmbh | Method and apparatus for storing and transmitting audio-visual data |
US7336720B2 (en) | 2002-09-27 | 2008-02-26 | Vanguard Software Solutions, Inc. | Real-time video coding/decoding |
US7724818B2 (en) | 2003-04-30 | 2010-05-25 | Nokia Corporation | Method for coding sequences of pictures |
US20050254575A1 (en) | 2004-05-12 | 2005-11-17 | Nokia Corporation | Multiple interoperability points for scalable media coding and transmission |
KR20050113501A (ko) | 2004-05-29 | 2005-12-02 | 삼성전자주식회사 | 에이치 264 비디오 디코더를 위한 구문 분석기 |
US9560367B2 (en) | 2004-09-03 | 2017-01-31 | Nokia Technologies Oy | Parameter set and picture header in video coding |
DE102004042819A1 (de) | 2004-09-03 | 2006-03-23 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zum Erzeugen eines codierten Multikanalsignals und Vorrichtung und Verfahren zum Decodieren eines codierten Multikanalsignals |
US20060233247A1 (en) | 2005-04-13 | 2006-10-19 | Visharam Mohammed Z | Storing SVC streams in the AVC file format |
US8208564B2 (en) | 2005-06-24 | 2012-06-26 | Ntt Docomo, Inc. | Method and apparatus for video encoding and decoding using adaptive interpolation |
KR20080066784A (ko) | 2005-10-11 | 2008-07-16 | 노키아 코포레이션 | 규모가변적 비디오 코딩을 위한 효율적 디코딩 화상 버퍼관리 |
JP5213064B2 (ja) | 2006-03-29 | 2013-06-19 | トムソン ライセンシング | マルチビュービデオ符号化方法及びその装置 |
KR100934674B1 (ko) | 2006-03-30 | 2009-12-31 | 엘지전자 주식회사 | 비디오 신호를 디코딩/인코딩하기 위한 방법 및 장치 |
EP1985121A4 (en) | 2006-11-17 | 2010-01-13 | Lg Electronics Inc | METHOD AND DEVICE FOR DECODING / CODING A VIDEO SIGNAL |
EP2103136B1 (en) | 2006-12-21 | 2017-11-01 | Thomson Licensing | Methods and apparatus for improved signaling using high level syntax for multi-view video coding and decoding |
JP5535646B2 (ja) * | 2007-01-05 | 2014-07-02 | トムソン ライセンシング | スケーラブル映像符号化用の仮想リファレンスデコーダ |
US9344362B2 (en) | 2007-01-12 | 2016-05-17 | University-Industry Cooperation Group Of Kyung Hee University | Packet format of network abstraction layer unit, and algorithm and apparatus for video encoding and decoding using the format, QOS control algorithm and apparatus for IPV6 label switching using the format |
US20100266042A1 (en) | 2007-03-02 | 2010-10-21 | Han Suh Koo | Method and an apparatus for decoding/encoding a video signal |
US8548261B2 (en) | 2007-04-11 | 2013-10-01 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding multi-view image |
BR122012013077A2 (pt) | 2007-04-18 | 2015-07-14 | Thomson Licensing | Sinal tendo parâmetros de decodificação para codificação de vídeo de múltiplas vistas |
US20090003431A1 (en) | 2007-06-28 | 2009-01-01 | Lihua Zhu | Method for encoding video data in a scalable manner |
BR122012021950A2 (pt) * | 2007-10-05 | 2015-08-04 | Thomson Licensing | Aparelho para incorporação de informação de usabilidade de vídeo (vui) em um sistema de codificação de vídeo com múltiplos visualizações (mvc) |
CA2650151C (en) * | 2008-01-17 | 2013-04-02 | Lg Electronics Inc. | An iptv receiving system and data processing method |
EP2286595A1 (en) | 2008-06-16 | 2011-02-23 | Dolby Laboratories Licensing Corporation | Rate control model adaptation based on slice dependencies for video coding |
US8683515B2 (en) | 2008-11-25 | 2014-03-25 | Cisco Technology, Inc. | Receiver for accelerating channel change time |
US20100132007A1 (en) | 2008-11-25 | 2010-05-27 | Cisco Technology, Inc. | Accelerating channel change time with external picture property markings |
TW201032597A (en) | 2009-01-28 | 2010-09-01 | Nokia Corp | Method and apparatus for video coding and decoding |
WO2010102650A1 (en) | 2009-03-13 | 2010-09-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Technique for bringing encoded data items into conformity with a scalable coding protocol |
US20120050475A1 (en) | 2009-05-01 | 2012-03-01 | Dong Tian | Reference picture lists for 3dv |
US9774882B2 (en) | 2009-07-04 | 2017-09-26 | Dolby Laboratories Licensing Corporation | Encoding and decoding architectures for format compatible 3D video delivery |
US8462797B2 (en) | 2009-11-30 | 2013-06-11 | Alcatel Lucent | Method of priority based transmission of wireless video |
US9094658B2 (en) | 2010-05-10 | 2015-07-28 | Mediatek Inc. | Method and apparatus of adaptive loop filtering |
US10034009B2 (en) | 2011-01-14 | 2018-07-24 | Vidyo, Inc. | High layer syntax for temporal scalability |
US9113172B2 (en) | 2011-01-14 | 2015-08-18 | Vidyo, Inc. | Techniques for describing temporal coding structure |
US20120230430A1 (en) | 2011-03-10 | 2012-09-13 | Stephan Wenger | Parameter Set Maintenance in Video Coding |
AU2012225513B2 (en) | 2011-03-10 | 2016-06-23 | Vidyo, Inc. | Dependency parameter set for scalable video coding |
CA2829290C (en) | 2011-03-10 | 2017-10-17 | Vidyo, Inc. | Render-orientation information in video bitstream |
US9635355B2 (en) | 2011-07-28 | 2017-04-25 | Qualcomm Incorporated | Multiview video coding |
US10237565B2 (en) | 2011-08-01 | 2019-03-19 | Qualcomm Incorporated | Coding parameter sets for various dimensions in video coding |
US20130094774A1 (en) * | 2011-10-13 | 2013-04-18 | Sharp Laboratories Of America, Inc. | Tracking a reference picture based on a designated picture on an electronic device |
US20130114694A1 (en) | 2011-11-08 | 2013-05-09 | Qualcomm Incorporated | Parameter set groups for coded video data |
US20130195201A1 (en) | 2012-01-10 | 2013-08-01 | Vidyo, Inc. | Techniques for layered video encoding and decoding |
US9451252B2 (en) | 2012-01-14 | 2016-09-20 | Qualcomm Incorporated | Coding parameter sets and NAL unit headers for video coding |
KR20130119379A (ko) | 2012-04-23 | 2013-10-31 | 삼성전자주식회사 | 다시점 비디오 예측을 위한 참조리스트를 이용하는 다시점 비디오 부호화 방법 및 그 장치, 다시점 비디오 예측을 위한 참조리스트를 이용하는 다시점 비디오 복호화 방법 및 그 장치 |
US9602827B2 (en) | 2012-07-02 | 2017-03-21 | Qualcomm Incorporated | Video parameter set including an offset syntax element |
US20140218473A1 (en) | 2013-01-07 | 2014-08-07 | Nokia Corporation | Method and apparatus for video coding and decoding |
US9565437B2 (en) | 2013-04-08 | 2017-02-07 | Qualcomm Incorporated | Parameter set designs for video coding extensions |
-
2013
- 2013-01-10 US US13/738,377 patent/US9451252B2/en active Active
- 2013-01-11 DK DK13700835.5T patent/DK2803193T3/en active
- 2013-01-11 AU AU2013207799A patent/AU2013207799B2/en active Active
- 2013-01-11 CN CN201380005237.2A patent/CN104054345B/zh active Active
- 2013-01-11 TW TW102101271A patent/TWI517692B/zh active
- 2013-01-11 BR BR112014017159-9A patent/BR112014017159B1/pt active IP Right Grant
- 2013-01-11 RU RU2014133415A patent/RU2633117C2/ru active
- 2013-01-11 SI SI201330712T patent/SI2803193T1/sl unknown
- 2013-01-11 CA CA2860776A patent/CA2860776C/en active Active
- 2013-01-11 ES ES13700835.5T patent/ES2633651T3/es active Active
- 2013-01-11 JP JP2014552328A patent/JP6117243B2/ja active Active
- 2013-01-11 MY MYPI2014701914A patent/MY167149A/en unknown
- 2013-01-11 SG SG11201403325SA patent/SG11201403325SA/en unknown
- 2013-01-11 SG SG10201605700SA patent/SG10201605700SA/en unknown
- 2013-01-11 EP EP13700835.5A patent/EP2803193B1/en active Active
- 2013-01-11 WO PCT/US2013/021227 patent/WO2013106705A2/en active Search and Examination
- 2013-01-11 KR KR1020147022571A patent/KR101760165B1/ko active IP Right Grant
- 2013-01-11 HU HUE13700835A patent/HUE032097T2/en unknown
-
2014
- 2014-06-18 IL IL233228A patent/IL233228A/en active IP Right Grant
- 2014-06-23 PH PH12014501447A patent/PH12014501447A1/en unknown
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR112014017159B1 (pt) | Conjuntos de parâmetros de codificação e cabeçalhos de unidade nal para codificação de vídeo | |
KR101799165B1 (ko) | Hevc 및 확장들에 대한 비디오 파라미터 세트 | |
BR112014002479B1 (pt) | Conjuntos de parâmetros de codificação para várias dimensões em codificação de vídeo | |
BR112015016230B1 (pt) | Sinalização condicional de informação de temporização de contagem de ordem de imagens para temporização de vídeo em codificação de vídeo | |
BR112016000866B1 (pt) | Processamento de compensação de iluminação para codificação de vídeo | |
BR112016000870B1 (pt) | Operações de buffer de imagem decodificada para codificação de vídeo | |
BR112015006839B1 (pt) | Sinalizando identificadores de camada para pontos de operação em codificação de vídeo | |
BR112015025639B1 (pt) | Alinhamento poc de camada cruzada para fluxos de bits de várias camadas que podem incluir imagens irap não alinhadas | |
BR112014006842B1 (pt) | Método e dispositivo para codificar dados de vídeo e mídia de armazenamento não transitório legível por computador | |
CA2922408C (en) | Inter-view dependency type in mv-hevc | |
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 | |
BR112016011818B1 (pt) | Projeto de valor de poc para codificação de vídeo de multicamada | |
BR112016029356B1 (pt) | Método para decodificar e codificar e dispositivo para decodificar dados de vídeo de acordo com um padrão de codificação de vídeo de alta eficiência (hevc) | |
BR112016021476B1 (pt) | Método e dispositivo para codificar dados de vídeo e memória legível por computador | |
BR112016013141B1 (pt) | Design de valor poc para codificação de vídeo de multicamadas | |
BR112014033011B1 (pt) | Conjunto de parâmetros de vídeo para hevc e extensões | |
BR112016029306B1 (pt) | Método e dispositivo para decodificar, bem como, método e dispositivo para codificar dados de vídeo de acordo com um padrão de codificação de vídeo de alta eficiência (hevc) uma extensão multivista do mesmo ou uma extensão escalonável do mesmo, e, memória legível por computador |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B06F | Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette] | ||
B06U | Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette] | ||
B350 | Update of information on the portal [chapter 15.35 patent gazette] | ||
B09A | Decision: intention to grant [chapter 9.1 patent gazette] | ||
B16A | Patent or certificate of addition of invention granted [chapter 16.1 patent gazette] |
Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 11/01/2013, OBSERVADAS AS CONDICOES LEGAIS |