BR112015007273B1 - Método e dispositivo para processar dados de vídeo de múltiplas camadas, dispositivo de codificação de vídeo e memória legível por computador - Google Patents

Método e dispositivo para processar dados de vídeo de múltiplas camadas, dispositivo de codificação de vídeo e memória legível por computador Download PDF

Info

Publication number
BR112015007273B1
BR112015007273B1 BR112015007273-9A BR112015007273A BR112015007273B1 BR 112015007273 B1 BR112015007273 B1 BR 112015007273B1 BR 112015007273 A BR112015007273 A BR 112015007273A BR 112015007273 B1 BR112015007273 B1 BR 112015007273B1
Authority
BR
Brazil
Prior art keywords
layer
value
video
layers
bit
Prior art date
Application number
BR112015007273-9A
Other languages
English (en)
Other versions
BR112015007273A2 (pt
Inventor
Ye-Kui Wang
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112015007273A2 publication Critical patent/BR112015007273A2/pt
Publication of BR112015007273B1 publication Critical patent/BR112015007273B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

SINALIZAÇÃO APRIMORADA DE IDENTIFICADORES DE CAMADA PARA PONTOS DE OPERAÇÃO DE UM CODIFICADOR DE VÍDEO. Trata-se de um dispositivo para processar dados de vídeo que recebe uma indicação de um valor de identificação (ID) de camada máximo para uma corrente de bits; recebe um sinalizador para uma primeira camada com um valor de ID de camada menor que o valor de ID de camada máximo; e, com base em um valor do sinalizador, determina se a primeira camada é incluída em um ponto de operação.

Description

[0001] Este pedido reivindica o benefício do Pedido de Patente Provisório no US 61/709.094, depositado e, 2 de outubro de 2012, cujo conteúdo total do mesmo é incorporado ao presente documento a título de referência.
CAMPO DA TÉCNICA
[0002] Esta revelação refere-se, em geral, ao processamento de dados de vídeo e, mais particularmente, ao processamento de pontos de operação utilizados em dados de vídeo.
ANTECEDENTES
[0003] Capacidades de Vídeo digital podem ser incorporadas a uma faixa ampla de dispositivos, incluindo televisões digitais, sistemas digitais de difusão direta, sistemas de difusão sem fio, assistentes digitais pessoais (PDAs), computadores do tipo laptop ou de mesa, computadores do tipo tablet, leitores digitais, câmeras digitais, dispositivos de gravação digitais, reprodutores de mídia digitais, dispositivos de jogos de vídeo, consoles de jogos de vídeo, telefones do tipo celular ou rádio satélite, os chamados "telefones inteligentes”, dispositivos de teleconferência em vídeo, dispositivos de transmissão simultânea de vídeo e similares. Os dispositivos de vídeo digital implantam conjuntos de procedimentos de codificação de vídeo, tais como aqueles descritos nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, Advanced Video Coding (AVC), o padrão High Efficiency Video Coding (HEVC) presentemente em desenvolvimento e extensões de tais padrões. Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar informações digitais de vídeo mais eficientemente implantando-se tais conjuntos de procedimentos de codificação de vídeo.
[0004] Os conjuntos de procedimentos de codificação de vídeo incluem previsão espacial (intra- imagem) e/ou previsão temporal (entre imagens) para reduzir ou remover redundância inerente em sequências de vídeo. Para codificação de vídeo baseada em bloco, uma fatia de vídeo (por exemplo, um quadro de vídeo ou uma porção de um quadro de vídeo) pode ser dividida em blocos de vídeo, que podem ser referidos também como treeblocks, unidades de codificação (CUs) e/ou nós de codificação. Os blocos de vídeo em uma fatia intracodificada (I) de uma imagem são codificados com uso de previsão espacial em relação a amostras de referência em blocos vizinhos na mesma imagem. Os blocos de vídeo em uma fatia intercodificada (P ou B) de uma imagem podem utilizar previsão espacial em relação a amostras de referência em blocos vizinhos na mesma imagem ou previsão temporal em relação a 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 previsão espacial ou temporal resulta em um bloco previsível para um bloco ser codificado. Os dados residuais representam diferenças de pixel entre o bloco original a ser codificado e o bloco previsível. Um bloco intercodificado é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência que formam o bloco previsível, e os dados residuais que indicam a diferença entre o bloco codificado e o bloco previsível. Um bloco intracodificado é codificado de acordo com um modo de intracodificação e os dados residuais. Para compressão adicional, os dados residuais podem ser transformados do domínio de pixel em um domínio de transformada, que resulta em coeficientes de transformada residuais, que pode, então, ser quantizado. Os coeficientes de transformada residuais quantizados, inicialmente dispostos em um arranjo bidimensional, podem ser submetidos à varredura a fim de produzir um vetor unidimensional de coeficientes de transformada residuais, e codificação de entropia pode ser aplicada para alcançar ainda mais compressão.
SUMÁRIO
[0006] Em geral, esta revelação descreve conjuntos de procedimentos para sinalizar identificadores de camada para pontos de operação em codificação de vídeo.
[0007] Em um exemplo, um método de processamento de dados de vídeo inclui receber uma indicação de um valor de identificação (ID) de camada máximo para uma corrente de bits; receber um sinalizador para uma primeira camada com um valor de ID de camada menor que o valor de ID de camada máximo; e, com base em um valor do sinalizador, determinar se a primeira camada é incluída em um ponto de operação.
[0008] Em outro exemplo, um dispositivo para processar dados de vídeo inclui um ou mais processadores configurados para receber uma indicação de um valor de identificação (ID) de camada máximo para uma corrente de bits; receber um sinalizador para uma primeira camada com um valor de ID de camada menor que o valor de ID de camada máximo; e, com base em um valor do sinalizador, determine se a primeira camada é incluída em um ponto de operação.
[0009] Em outro exemplo, um aparelho para processar dados de vídeo inclui meio para receber uma indicação de um valor de identificação (ID) de camada máximo para uma corrente de bits; meio para receber um sinalizador para uma primeira camada com um valor de ID de camada menor que o valor de ID de camada máximo; e, meio para determinar se a primeira camada é incluída em um ponto de operação com base em um valor do sinalizador.
[0010] Em outro exemplo, um meio de armazenamento legível por computador não transitório armazena instruções que quando executadas por um ou mais processadores fazem com que o um ou mais processadores recebam uma indicação de um valor de identificação (ID) de camada máximo para uma corrente de bits; recebam um sinalizador para uma primeira camada com um valor de ID de camada menor que o valor de ID de camada máximo; e, com base em um valor do sinalizador, determinem se a primeira camada é incluída em um ponto de operação.
[0011] Em outro exemplo, um método de codificação de dados de vídeo inclui gerar uma indicação de um valor de identificação (ID) de camada máximo para uma corrente de bits; e gerar um sinalizador para uma primeira camada com um valor de ID de camada menor que o valor de ID de camada máximo, em que um valor para o sinalizador sinaliza se a primeira camada é incluída em um ponto de operação.
[0012] Em outro exemplo, um dispositivo de codificação de vídeo inclui um codificador de vídeo configurado para gerar uma indicação de um valor de identificação (ID) de camada máximo para uma corrente de bits; e gerar um sinalizador para uma primeira camada com um valor de ID de camada menor que o valor de ID de camada máximo, em que um valor para o sinalizador sinaliza se a primeira camada é incluída em um ponto de operação.
[0013] Em outro exemplo, um aparelho para codificação de vídeo inclui meios para gerar uma indicação de um valor de identificação (ID) de camada máximo para uma corrente de bits e meios para gerar um sinalizador para uma primeira camada com um valor de ID de camada menor que o valor de ID de camada máximo, em que um valor para o sinalizador sinaliza se a primeira camada é incluída em um ponto de operação.
[0014] Em outro exemplo, um meio legível por comutador não transitório armazena instruções que quando executadas por um ou mais processadores fazem com que o um ou mais processadores gerem uma indicação de um valor de identificação (ID) de camada máximo para uma corrente de bits e gerem um sinalizador para uma primeira camada com um valor de ID de camada menor que o valor de ID de camada máximo, em que um valor para o sinalizador sinaliza se a primeira camada é incluída em um ponto de operação.
[0015] Os detalhes de um ou mais exemplos são apresentados nos desenhos anexados e na descrição abaixo. Outros recursos, objetivos e vantagens ficarão aparentes a partir da descrição e dos desenhos e a partir das reivindicações.
BREVE DESCRIÇÃO DOS DESENHOS
[0016] A Figura 1 é um diagrama de blocos que ilustra um sistema de codificação e decodificação de vídeo exemplificativo que podem utilizar os conjuntos de procedimentos descritos nesta revelação.
[0017] A Figura 2 é um diagrama de blocos que ilustra um codificador de vídeo exemplificativo que pode implantar os conjuntos de procedimentos descritos nesta revelação.
[0018] A Figura 3 é um diagrama de blocos que ilustra um decodificador de vídeo exemplificativo que pode implantar os conjuntos de procedimentos descritos nesta revelação.
[0019] A Figura 4 é um diagrama de blocos que ilustra um conjunto de dispositivos exemplificativo que forma parte de uma rede.
[0020] A Figura 5 é um fluxograma que ilustra um método exemplificativo para codificar dados de vídeo, de acordo com conjuntos de procedimentos descritos nesta revelação.
[0021] A Figura 6 é um fluxograma que ilustra um método exemplificativo para processar dados de vídeo, de acordo com conjuntos de procedimentos descritos nesta revelação.
DESCRIÇÃO DETALHADA
[0022] Esta revelação se refere à codificação de vídeo (isto é, codificação e/ou decodificação de dados de vídeo) e processamento de vídeo, e mais particularmente a sintaxe de ponto de operação utilizada em processamento de vídeo. Em geral, esta revelação descreve conjuntos de procedimentos para sinalizar identificadores de camada para pontos de operação em codificação de vídeo. Os pontos de operação se referem a subcorrentes de bits que podem ser extraídas de uma corrente de bits original que é escalável temporariamente e/ou com múltiplas camadas ou vistas. As subcorrentes de bits podem ser extraídas da corrente de bits com base em valores de identificadores de camada (isto é, IDs de camada) e sub-identificadores de camada temporais (isto é, IDs temporais) que identificam o ponto de operação da corrente de bits. Em geral, esta revelação utiliza os termos identificadores de camada e IDs de camada para se referir a identificadores de camadas e/ou vistas espaciais, enquanto que os termos sub-identificadores de camada temporais e IDs temporais se referem a identificadores de subcamadas temporais.
[0023] Os pontos de operação podem, por exemplo, ser sinalizadas em um conjunto de parâmetro, tal como um conjunto de parâmetro de vídeo (VPS), na corrente de bits. Para cada um dos pontos de operação, uma estrutura sintática de ponto de operação, gerada por um codificador de vídeo, por exemplo, especifica um conjunto de identificadores de camada utilizado para identificar unidades de camada de abstração de rede (NAL) na corrente de bits que pertencem a uma subcorrente de bits de um dado ponto de operação. Dessa maneira, um entidade de rede, tal como uma entidade de rede com reconhecimento de mídia (media aware network entity (MANE)), pode analisar cabeçalhos de unidade NAL para extrair da corrente de bits original as unidades NAL que compõem a subcorrente de bits do dado ponto de operação. Cada unidade NAL na corrente de bits pode incluir um ID de camada e um ID temporal e, analisando-se o ID de camada e o ID temporal, a MANE pode identificar as unidades NAL para um ponto de operação particular.
[0024] Os conjuntos de procedimentos desta revelação podem aprimorar a eficiência de sinalizar informações associadas aos pontos de operação aprimorando- se a sinalização de IDs de camada para pontos de operação. De acordo com um conjunto de procedimentos exemplificativo desta revelação que será explicado em detalhes maiores abaixo, um valor de identificação de camada (isto é, um ID de camada) para o maior ID de camada pode ser sinalizado, e a presença de IDs de camada adicionais pode ser sinalizada como uma série de sinalizadores. Por exemplo, suponha-se que uma corrente de bits inclui seis subcorrentes de várias resoluções temporais e espaciais, sendo que cada subcorrente tem um ID de camada. O maior valor de ID de camada pode ser sinalizado na corrente de bits. Para propósitos desse exemplo, suponha-se que o maior valor de ID de camada é 9, o que significa que há potencialmente dez camadas, com IDs de camada 0 a 9, que podem ser incluídas em um ponto de operação. O valor de ID de camadas restantes para o ponto de operação pode ser sinalizado com uso de nove sinalizadores, em que um primeiro sinalizador indica se valor de ID de camada 0 está presente, o segundo sinalizador indica se valor de ID de camada 1 está presente, e assim por diante, até um sinalizador final que indica se o valor de ID de camada 8 está presente. Assim, para sinalizar o valor de ID de camadas 2, 5 e 9, o valor 9 pode ser primeiramente sinalizado seguido pelas sequências de sinalizadores 001001000, em que o 1 para o terceiro bit indica que o valor de ID de camada 2 está presente e o 1 para o sexto bit indica que o valor de ID de camada 5 está presente. Outros conjuntos de procedimentos para sinalização de IDs de camada também serão discutidos nesta revelação.
[0025] Esta revelação utilizará, em geral, o termo codificação de vídeo para se referir à codificação de vídeo ou decodificação de vídeo. Esta revelação também utiliza o termo processamento de vídeo, que é, em geral, destinado a incluir codificação de vídeo porém também a incluir outro tipos de processamento de vídeo, tais como análise de dados de vídeo, roteamento de dados de vídeo, fatiamento de corrente de bits de vídeo e tais outros processos. Um codificador de vídeo pode, em geral, ser considerado se referir a um dispositivo que codifica e/ou decodifica dados de vídeo, enquanto um processador de vídeo ou dispositivo de processamento de vídeo pode ser considerado se referir a um dispositivo que codifica dados de vídeo porém também a um dispositivo que realiza outros processos em dados de vídeo.
[0026] A Figura 1 é um diagrama de blocos que ilustra um sistema de codificação e decodificação de vídeo exemplificativo 10 que pode utilizar os conjuntos de procedimentos para sinalizar IDs de camada descritos nesta revelação. Conforme mostrado na Figura 1, o sistema 10 inclui um dispositivo de fonte 12 que gera dados de vídeo codificados para serem decodificados em momento posterior por um dispositivo de destinação 14. Os dados de vídeo codificados podem ser roteados do dispositivo de fonte 12 para o dispositivo de destinação 14 por meio do dispositivo de rede 13, que pode fazer parte de uma rede maior de dispositivos de rede. O dispositivo de fonte 12 e o dispositivo de destinação 14 pode compreender qualquer dentre uma faixa ampla de dispositivos, que incluem computadores de mesa, computadores do tipo notebook (por exemplo, computadores do tipo laptop), computadores do tipo tablet, set-top boxes, aparelhos de telefone tais como os chamados telefones “inteligentes”, os chamados teclados “inteligentes”, televisões, câmeras, dispositivos de exibição, reprodutores de mídia digital, consoles de jogos de vídeo, dispositivo de transmissão simultânea de vídeo ou similares. Em alguns casos, o dispositivo de fonte 12 e o dispositivo de destinação 14 podem ser equipados para comunicação sem fio.
[0027] No exemplo da Figura 1, o dispositivo de fonte 12 inclui fonte de vídeo 18, o codificador de vídeo 20 e interface de saída 22. O dispositivo de destinação 14 inclui interface de entrada 28, decodificador de vídeo 30, e dispositivo de exibição 32. Em outros exemplos, o dispositivo de fonte 12 e o dispositivo de destinação 14 podem incluir outros componentes ou disposições. Por exemplo, o dispositivo de fonte 12 pode receber dados de vídeo de uma fonte de vídeo externa 18, tal como uma câmera externa. Da mesma forma, o dispositivo de destinação 14 pode fazer interface com um dispositivo de exibição externo, ao invés de incluir um dispositivo de exibição integrado.
[0028] O sistema ilustrado 10 da Figura 1 é meramente um exemplo. Os conjuntos de procedimentos desta revelação podem ser realizados por qualquer dispositivo de codificação e/ou processamento de vídeo digital. Apesar de, em geral, os conjuntos de procedimentos serem realizados por um dispositivo de codificação de vídeo ou um dispositivo de decodificação de vídeo, os conjuntos de procedimentos também podem ser realizados por um codificador/decodificador de vídeo, tipicamente referido como um "CODEC”. Ademais, os conjuntos de procedimentos desta revelação também podem ser realizados por um pré- processador de vídeo. O dispositivo de fonte 12 e o dispositivo de destinação 14 são meramente exemplos de tais dispositivos de codificação nos quais o dispositivo de fonte 12 gera dados de vídeo codificados para transmissão para o dispositivo de destinação 14. Em alguns exemplos, os dispositivos 12, 14 podem operar de uma maneira substancialmente simétrica de modo que cada um dos dispositivos 12, 14 incluam componentes de codificação e decodificação de vídeo. Logo, o sistema 10 pode suportar transmissão de vídeo de uma via ou de duas vias entre os dispositivos de vídeo 12, 14, por exemplo, para transmissão simultânea de vídeo, reprodução de vídeo, difusão de vídeo ou telefonia de vídeo.
[0029] Em um exemplo, o codificador de vídeo 20 do dispositivo de fonte 12 pode gerar uma corrente de bits de dados de vídeo. Um VPS para os dados de vídeo pode definir múltiplos pontos de operação que correspondem a subcorrentes de bits da corrente de bits. O codificador de vídeo 20 pode incluir sintaxe de ponto de operação que identifica as camadas e as subcamadas temporais para serem incluídas em pontos de operação particulares. A sintaxe de ponto de operação no VPS pode incluir uma indicação de um valor de ID de camada máximo para um ponto de operação bem como um ou mais sinalizadores. Os sinalizadores indicam se as camadas com IDs de camada menor que o ID de camada máximo são incluídas no ponto de operação. Logo, mediante recebimento do VPS com o ID de camada máximo e os sinalizadores, o dispositivo de rede 13 pode identificar as unidades NAL para o ponto de operação e rotear essas unidades NAL para o dispositivo de destinação 14. Mediante recebimento das unidades NAL, o decodificador de vídeo 30 do dispositivo de destinação 14 pode decodificar os dados de vídeo codificados. O decodificador de vídeo 30 pode analisar potencialmente a sintaxe de ponto de operação contida no VPS da mesma maneira que o dispositivo de rede 13. Por exemplo, o decodificador de vídeo 30 pode analisar a sintaxe de ponto de operação para verificar se todas as camadas esperadas são recebidas ou para determinar o conjunto de parâmetros de decodificador de referência hipotética (HRD) a aplicar.
[0030] A fonte de vídeo 18 do dispositivo de fonte 12 pode incluir um dispositivo de captura de vídeo, tal como uma câmera de vídeo, um arquivo de vídeo que contém vídeo previamente capturado e/ou uma interface de alimentação de vídeo para receber vídeo de um provedor de conteúdo de vídeo. Como uma alternativa adicional, a fonte de vídeo 18 pode gerar dados baseados em gráfico de computador como o vídeo de fonte, ou uma combinação de vídeo ao vivo, vídeo arquivado e vídeo gerado por computador. Em alguns casos, se a fonte de vídeo 18 for uma câmera de vídeo, o dispositivo de fonte 12 e o dispositivo de destinação 14 pode formar os chamados fones de câmera ou fones de vídeo. Conforme mencionado acima, no entanto, os conjuntos de procedimentos descritos nesta revelação podem ser aplicáveis à codificação de vídeo em geral e podem ser aplicados às aplicações sem fio e/ou com fio.
[0031] Em cada caso, o vídeo capturado, previamente capturado ou gerado por computador pode ser codificado por codificador de vídeo 20. Os dados de vídeo codificados podem ser transmitidos diretamente para o dispositivo de destinação 14 por meio da interface de saída 22 do dispositivo de fonte 12. Os dados de vídeo codificados também podem (ou alternativamente) ser armazenados em um dispositivo de armazenamento para acesso posterior pelo dispositivo de destinação 14 ou por outros dispositivos, para decodificação e/ou reprodução.
[0032] O enlace 16 pode incluir mídia transiente, tal como uma difusão sem fio ou transmissão em rede com fio, ou meios de armazenamento (isso é, 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 pode receber dados de vídeo codificados do dispositivo de fonte 12 e fornecer os dados de vídeo codificados ao dispositivo de destinação 14, por exemplo, por meio de transmissão em rede. De modo similar, um dispositivo de computação de a instalação de produção de meio, tal como uma instalação de estampagem de disco, pode receber dados de vídeo codificados do dispositivo de fonte 12 e produzir um disco que contém os dados de vídeo codificados. Portanto, o enlace 16 pode ser compreendido incluir um ou mais meios legíveis por computador de várias formas, em vários exemplos. O enlace 16 pode compreender qualquer tipo de meio ou dispositivo com a capacidade de mover os dados de vídeo codificados do dispositivo de fonte 12 para o dispositivo de destinação 14. Em um exemplo, o enlace 16 pode compreender um meio de comunicação para habilitar o dispositivo de fonte 12 a transmitir dados de vídeo codificados diretamente para o dispositivo de destinação 14 em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio, e transmitidos para o dispositivo de destinação 14. O meio de comunicação pode compreender qualquer meio de comunicação sem fio ou com fio, tal como um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão físicas. O meio de comunicação pode formar parte de uma rede com base em pacotes, tal como uma rede de área local, uma rede de área ampla, ou uma rede global tal como a Internet. O meio de comunicação pode incluir roteadores, comutadores, estações de base ou qualquer outro equipamento que possa ser útil para facilitar a comunicação do dispositivo de fonte 12 para o dispositivo de destinação 14.
[0033] A interface de entrada 28 do dispositivo de destinação 14 recebe informações do enlace 16, que pode ser um meio legível por computador. As informações provenientes do enlace 16 podem incluir informações de sintaxe definidas pelo codificador de vídeo 20, que também é utilizado pelo decodificador de vídeo 30, que inclui elementos de sintaxe que descrevem características e/ou processamento de blocos e outras unidades codificadas, por exemplo, GOPs. O dispositivo de exibição 32 pode ser integrado com, ou externo a, o dispositivo de destinação 14. O dispositivo de exibição 32 exibe os dados de vídeo decodificados a um usuário e pode compreender qualquer um dentre uma variedade de dispositivos de exibição tais como um tubo de raio catódico (CRT), um visor de cristal líquido (LCD), um visor de plasma, um visor de diodo emissor de luz orgânico (OLED) ou outro tipo de dispositivo de exibição.
[0034] Alternativamente, os dados codificados podem ser emitidos a partir da interface de saída 22 para um dispositivo de armazenamento 34. De modo similar, os dados codificados podem ser acessados a partir do dispositivo de armazenamento 34 pela interface de entrada. O dispositivo de armazenamento 34 pode incluir qualquer um dentre uma variedade de meios de armazenamento de dados distribuídos ou localmente acessados tais como um disco rígido, discos de Blu-ray, DVDs, CD-ROMs, memória flash, memória volátil ou não volátil ou qualquer outro digital meio de armazenamento adequado para armazenar dados de vídeo codificados. Em um exemplo adicional, o dispositivo de armazenamento 34 pode corresponder a um servidor de arquivos ou outro dispositivo de armazenamento intermediário que possa reter o vídeo codificado gerado pelo dispositivo de fonte 12. O dispositivo de destinação 14 pode acessar dados de vídeo armazenados a partir do dispositivo de armazenamento 34 por meio de transmissão simultânea ou transferência por download. O servidor de arquivos pode ser qualquer tipo de servidor com a capacidade de armazenar dados de vídeo codificados e transmitir esses dados de vídeo codificados para o dispositivo de destinação 14. Os servidores de arquivos exemplificativos incluem um servidor da web (por exemplo, para um site da web), um servidor FTP, dispositivos de armazenamento de rede anexados (NAS), ou uma unidade de disco local. O dispositivo de destinação 14 pode acessar os dados de vídeo codificados através de qualquer conexão de dados padrão, incluindo uma conexão de Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão com fio connection (por exemplo, DSL, modem a cabo, etc.), ou uma combinação de ambos que seja adequada para acessar dados de vídeo codificados armazenados em um servidor de arquivos. A transmissão de dados de vídeo codificados a partir do dispositivo de armazenamento 34 pode ser uma transmissão simultânea, uma transmissão de transferência por download ou uma combinação de ambas.
[0035] Os conjuntos de procedimentos desta revelação não são necessariamente limitados a ajustes ou a aplicações sem fio. Os conjuntos de procedimentos podem ser aplicados à codificação de vídeo em suporte de qualquer um dentre uma variedade de aplicações de multimídia, tais como difusões de televisão pelo ar, transmissões de televisão a cabo, transmissões de televisão por satélite, transmissão simultânea de vídeo, por exemplo, por meio da Internet, codificação de vídeo digital para armazenamento em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados ou outras aplicações. Em alguns exemplos, o sistema 10 pode ser configurado para suportar transmissão de vídeo de uma via ou de duas vias para suportar aplicações tais como transmissão simultânea de vídeo, reprodução de vídeo, difusão de vídeo e/ou telefonia de vídeo.
[0036] O codificador de vídeo 20 e o decodificador de vídeo 30, cada um, podem ser implantados como qualquer um dentre uma variedade de conjunto de circuitos de codificador ou decodificador adequado, tais como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de portas programáveis em campo (FPGAs), conjunto de circuitos lógico discreto, software, hardware, firmware ou qualquer combinações dos mesmos. Quando os conjuntos de procedimentos são implantados parcialmente em software, um dispositivo pode armazenar instruções para o software em um meio legível por computador não transitório adequado e executar as instruções em hardware com uso de um ou mais processadores para realizar os conjuntos de procedimentos desta revelação. Cada um dentre o codificador de vídeo 20 e o decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, sendo que qualquer um dos dois pode ser integrado como parte de um codificador/decodificador combinado (CODEC) em um dispositivo respectivo. Um dispositivo que inclui o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode compreender um circuito integrado, um microprocessador e/ou um dispositivo de comunicação sem fio, tal como um telefone celular.
[0037] O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de codificação de vídeo standard, tal como o padrão HEVC presentemente em desenvolvimento, e podem conformar ao Modelo de Teste HEVC (HM). Um rascunho do próximo padrão HEVC, referido como "HEVC Working Draft 8" ou "WD8”, é descrito no documento JCTVC-J1003_d7, Brass et al., "High efficiency video coding (HEVC) text specification draft 8”, Joint Collaborative Team on Video Coding (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 10o encontro: Estocolmo, Suécia, julho de 2012. O rascunho em andamento 8 do padrão HEVC é incorporado a título de referência em sua totalidade. Outro rascunho recente do padrão HEVC, referido como "HEVC Working Draft 10" ou "WD 10”, é descrito no documento JCTVC-L1003v34, Brass et al., "High efficiency video coding (HEVC) text specification draft 10 (for FDIS & Last Call)”, Joint Collaborative Team on Video Coding (JCT- VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 12o encontro: Genebra, CH, 14 a 23 de janeiro, 2013. O WD 10 é incorporado a título de referência em sua totalidade.
[0038] Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões de propriedade ou da indústria, tais como o padrão ITU-T H.264, alternativamente referido como MPEG-4, Part 10, Advanced Video Coding (AVC), ou extensões de tais padrões. Os conjuntos de procedimentos desta revelação, no entanto, não são limitados a qualquer padrão de codificação particular. Outros exemplos de padrões de codificação de vídeo incluem MPEG-2 e ITU-T H.263. em alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser, cada um, integrados com um codificador e decodificador de áudio e podem incluir unidades de MUX-DEMUX apropriadas, ou outro hardware e software, para administrar a codificação tanto de áudio quanto de vídeo em uma corrente de dados comum ou correntes de dados separadas. Se aplicável, as unidades de MUX-DEMUX podem conformar ao protocolo 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 Video Coding Experts Group (VCEG) de ITU-T juntamente com o Moving Image Experts Group (MPEG) de ISO/IEC como o produto de uma parceria coletiva conhecida como o Joint Video Team (JVT). Em alguns aspectos, os conjuntos de procedimentos descritos nesta revelação podem ser aplicados a dispositivos que conformam, em geral, ao padrão H.264. O padrão H.264 é descrito em ITU-T Recommendation H.264, Advanced Video Coding para serviços audiovisuais genéricos, pelo ITU-T Study Group, e datado março de 2005, que pode ser referido no presente documento como o padrão H.264 ou a especificação H.264, ou o padrão ou a especificação H.264/ AVC. O Joint Video Team (JVT) continua a trabalhar em extensões para H.264/MPEG-4 AVC.
[0040] O JCT-VC está trabalhando no desenvolvimento do padrão HEVC. Os esforços de padronização de HEVC são baseados em um modelo em evolução de um dispositivo de codificação de vídeo referido como o HEVC Test Model (HM). O HM presume várias capacidades adicionais do dispositivos de codificação de vídeo em relação a dispositivos existentes de acordo com, por exemplo, ITU-T H.264/AVC. Por exemplo, enquanto que H.264 fornece modos de codificação de intraprevisão, o HM pode fornecer até trinta e três modos de codificação de intraprevisão.
[0041] Em geral, o modelo em andamento do HM descreve que um quadro ou uma imagem de vídeo podem ser divididos em uma sequência de treeblocks ou maiores unidades de codificação (LCU) que incluem amostras tanto de luma quanto de croma. Os dados de sintaxe em uma corrente de bits podem definir um tamanho para a LCU, que é uma maior unidade de codificação em termos do número de pixels. Uma fatia inclui um número de treeblocks consecutivos em ordem de codificação. Um quadro de vídeo ou imagem pode ser dividido em uma ou mais fatias. Cada treeblock pode ser divido em unidades de codificação (CUs) de acordo com uma quadtree. Em geral, uma estrutura de dados de quadtree inclui um nó por CU, sendo que um nó de raiz corresponde à treeblock. Se uma CU for dividida em quatro sub-CUs, o nó que corresponde à CU inclui quatro nós folha, sendo que cada um dos mesmos corresponde a uma das sub-CUs.
[0042] Cada nó da estrutura de dados de quadtree pode fornecer dados de sintaxe para a CU correspondente. Por exemplo, um nó na quadtree pode incluir um sinalizador de divisão, que indica se a CU que corresponde ao nó é dividida em sub-CUs. Os elementos de sintaxe para uma CU podem ser definidos recursivamente e podem depender de se a CU é dividida em sub-CUs. Se uma CU não for adicionalmente dividida, a mesma é referida como uma CU folha. Nesta revelação, quatro sub-CUs de uma CU folha também serão referidas como CUs folha mesmo se não houver divisão explicita da CU folha original. Por exemplo, se uma CU em tamanho 16x16 não for adicionalmente dividida, as quatro sub-CUs 8x8 serão referidas como CUs folha apesar de a CU 16x16 não ter sido dividida.
[0043] Uma CU tem um propósito similar as um macrobloco do padrão H.264, com a exceção de que uma CU não tem uma distinção de tamanho. Por exemplo, uma treeblock pode ser dividida em quatro nós filhos (também referidos como sub-CUs), e cada nó filho pode, por sua vez, ser um nó parental e ser dividido em outros quatro nós filhos. Um nó filho não dividido final referido como um nó folha da quadtree, compreende um nó de codificação, também referido coo uma CU folha. Os dados de sintaxe associados a uma corrente de bits codificada pode definir um número máximo de vezes que uma treeblock pode ser dividida, referido como uma profundidade de CU máxima, e também pode definir um tamanho mínimo dos nós de codificação. Consequentemente, uma corrente de bits também pode definir uma menor unidade de codificação (SCU). Esta revelação utiliza o termo "bloco" para se referir a qualquer um dentre uma CU, uma PU ou uma TU, no contexto de HEVC, ou estruturas de dados similares no contexto de outros padrões (por exemplo, macroblocos e sub-blocos dos mesmos em H.264/ AVC).
[0044] Uma CU inclui um nó de codificação e unidades de previsão (PUs) e unidades de transformada (TUs) associadas ao nó de codificação. Um tamanho da CU corresponde a um tamanho do nó de codificação e precisa ser quadrado em formato. O tamanho da CU pode se encontrar na faixa de 8x8 pixels até o tamanho da treeblock com um máximo de 64x64 pixels ou mais. Cada CU pode conter uma ou mais PUs e uma ou mais TUs. Os Dados de sintaxe associados a uma CU podem descrever, por exemplo, a divisão da CU em uma ou mais PUs. Modos de divisão podem diferir entre se a CU é pulada ou codificada em modo direto, codificada em modo de intraprevisão ou codificada em modo de interprevisão. As PUs podem ser divididas para serem não quadradas em formato. Os dados de sintaxe associados a 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 quadrada ou não quadrada (por exemplo, retangular) em formato.
[0045] O padrão HEVC permite transformações de acordo com TUs, o que pode ser diferente para diferentes CUs. As TUs são tipicamente dimensionadas com base no de PUs em uma dada CU definida para uma LCU dividida, apesar de isso nem sempre ser o caso. As TUs são tipicamente do mesmo tamanho ou menores que as PUs. Em alguns exemplos, as amostras residuais que correspondem a uma CU podem ser subdivididas em unidades menores com uso de uma estrutura de quadtree conhecida como "quadtree residual" (RQT). Os nós folha da RQT podem ser referidos como unidades de transformada (TUs). A diferença de valores de pixel associados às TUs pode ser transformada para produzir coeficientes de transformada residuais, que podem ser quantizadas.
[0046] Uma CU folha pode incluir uma ou mais unidades de previsão (PUs). Em geral, uma PU representa uma área espacial que corresponde a toda CU correspondente ou a uma porção da mesma e pode incluir dados para recuperar uma amostra de referência para a PU. Ademais, uma PU inclui dados relacionados à previsão. Por exemplo, quando a PU é codificada em modo de intra, os dados para a PU podem ser incluídos em uma quadtree residual (RQT), que pode incluir dados que descrevem um modo de intraprevisão para uma TU que corresponde à PU. Como outro exemplo, quando a PU é codificada em modo de inter, a PU pode incluir dados que definem um ou mais vetores de movimento para a PU. Os dados que definem o vetor de movimento para uma PU pode descrever, por exemplo, um componente horizontal do vetor de movimento, um componente vertical do vetor de movimento, uma resolução para o vetor de movimento (por exemplo, precisão de um quarto de pixel ou precisão de um oitavo de pixel), uma imagem de referência para qual o vetor de movimento aponta e/ou uma imagem de lista de referência (por exemplo, Lista 0, Lista 1, ou Lista C) para o vetor de movimento.
[0047] Uma CU folha que tem uma ou mais PUs também pode incluir uma ou mais unidades de transformada (TUs). As unidades de transformada podem ser especificadas com uso de uma RQT (também referida como uma estrutura de 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 sub-TUs adicionais. Quando uma TU não é adicionalmente dividida, a mesma pode ser referida como uma TU folha. Em geral, para intracodificação, todas as TUs folha que pertencem a uma CU folha compartilham o mesmo modo de intraprevisão. Ou seja, o mesmo modo de intraprevisão é, em geral, aplicado para calcular valores previstos para todas as TUs de uma CU folha. Para intraprevisão, um codificador de vídeo pode calcular um valor residual para cada TU folha com uso do modo de intraprevisão, como uma diferença entre a porção da CU que corresponde à TU e o bloco original. Uma TU não é necessariamente limitada ao tamanho de uma PU. Logo, as TUs podem ser maiores ou menores que uma PU. Para intraprevisão, uma PU pode ser colocalizada 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.
[0048] Ademais, as TUs das CUs folha também podem ser associadas em relação a estruturas de dados de quadtree, referidas como quadtrees residuais (RQTs). Ou seja, uma CU folha pode incluir uma quadtree que indica como a CU folha é dividida em TUs. O nó de raiz de uma quadtree de TU em geral corresponde a uma CU folha, enquanto o nó de raiz de uma quadtree de CU em geral corresponde a uma treeblock (ou LCU). As TUs da RQT que não são divididas são referidas como as TUs folha. Em geral, esta revelação utiliza os termos CU e TU para se referir a CU folha e TU folha, respectivamente, a não ser que seja observado o contrário.
[0049] Uma sequência de vídeo tipicamente inclui uma série de quadros ou imagens de vídeo. Um grupo de imagens (GOP) em geral compreende 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 ouro lugar, que descreve inúmeras de imagens incluídas no GOP. Cada fatia de uma imagem pode incluir dados de sintaxe de fatia que descreve um modo de codificação para a respectiva fatia. O codificador de vídeo 20 tipicamente opera em blocos de vídeo em fatias de vídeo individuais a fim de codificar os dados de vídeo. Um bloco de vídeo pode corresponder a um nó de codificação em uma CU. Os blocos de vídeo podem ter tamanhos fixos ou variados e podem diferir em tamanho de acordo com um padrão de codificação especificado.
[0050] Como um exemplo, o HM suporta a previsão em vários tamanhos de PU. Supondo-se que o tamanho de uma CU particular é 2Nx2N, o HM suporta intraprevisão em tamanhos de PU de 2Nx2N ou NxN, e interprevisão em tamanhos de PU simétricos de 2Nx2N, 2NxN, Nx2N, ou NxN. O HM também suporta divisão assimétrica para interprevisão em tamanhos de PU de 2NxnU, 2NxnD, nLx2N, e nRx2N. Em divisão assimétrica, uma direção de uma CU não é dividida, enquanto a outra direção é dividida em 25% e 75%. A porção da CU que corresponde à divisão de 25% é indicada por um "n" seguido por uma indicação de "Cima", "Baixo”, "Esquerda” ou "Direita”. Assim, por exemplo, "2NxnU" se refere a uma CU de 2Nx2N que é dividida horizontalmente com uma PU de 2Nx0,5N no topo e uma PU de 2Nx1,5N no fundo.
[0051] Nesta revelação, "NxN" e "N por N" podem ser utilizados de modo de intercambiável para se referir às dimensões de pixel 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 em uma direção horizontal (x = 16). Da mesma forma, um bloco de NxN, em geral, tem N pixels em uma direção vertical e N pixels em uma direção horizontal, em que N representa um valor de número inteiro não negativo. Os pixels em um bloco podem ser dispostos em fileiras e colunas. Ademais, os blocos não precisam ter necessariamente o mesmo número de pixels na direção horizontal que na direção vertical. Por exemplo, os blocos podem compreender NxM pixels, em que M não é necessariamente igual a N.
[0052] Seguindo a codificação intraprevista ou interprevista com uso das PUs de uma CU, o codificador de vídeo 20 pode calcular dados residuais para as TUs da CU. As PUs pode compreender dados de sintaxe que descrevem um método ou modo de geração de dados de pixel previstos no domínio espacial (também referido como o domínio de pixel) e as TUs podem compreender coeficientes no domínio de transformada que seguem a aplicação de uma transformada, por exemplo, uma transformada discreta de cosseno (DCT), uma transformada de número inteiro, uma transformada pequena onda ou uma transformada conceitualmente similar em dados residuais de vídeo. Os dados residuais podem corresponder a diferenças de pixel entre pixels dos valores de previsão e imagem não codificados que correspondem às PUs. O codificador de vídeo 20 pode formar as TUs que incluem os dados residuais para a CU, e então transformar as TUs para produzir coeficientes de transformada residuais para a CU.
[0053] Seguindo qualquer transformada para produzir coeficientes de transformada residuais, o codificador de vídeo 20 pode realizar quantização dos coeficientes de transformada residuais. A quantização em geral se refere a um processo em que coeficientes de transformada residuais são quantizados para reduzir possivelmente a quantidade de dados utilizados para representar os coeficientes, fornecendo compressão adicional. O processo de quantização pode reduzir a profundidade de bit associada a alguns ou a todos os coeficientes. Por exemplo, um valor n-bit pode ser arredondado para baixo para um valor m-bit durante a quantização, quando n for maior que m.
[0054] Seguindo a quantização, o codificador de vídeo pode realizar varredura nos coeficientes de transformada residuais, produzindo um vetor unidimensional a partir da matriz bidimensional que inclui os coeficientes de transformada residuais quantizados. A varredura pode ser projetada para colocar coeficientes de energia mais alta (e, portanto, frequência mais baixa) na frente do arranjo e para colocar coeficientes de energia mais baixa (e, portanto, de frequência mais alta) na parte posterior do arranjo. Em alguns exemplos, o codificador de vídeo 20 pode utilizar uma ordem de varredura predefinida para realizar varredura nos coeficientes de transformada residuais quantizados para produzir um vetor em série 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 residuais quantizados para formar um vetor unidimensional, o codificador de vídeo 20 pode codificar por entropia o vetor unidimensional, por exemplo, de acordo com codificação de comprimento variável adaptável ao contexto (CAVLC), codificação aritmética binária adaptável ao contexto (CABAC), codificação aritmética binária adaptável ao contexto baseada em sintaxe (SBAC), codificação de Entropia de Divisão de Intervalo de Probabilidade (PIPE) ou outra metodologia de codificação por entropia. O codificador de vídeo 20 também pode codificar por entropia elementos de sintaxe associados aos dados de vídeo codificados para uso pelo decodificador de vídeo 30 na decodificação dos dados de vídeo.
[0055] Para realizar CABAC, o codificador de vídeo 20 pode atribuir um contexto em um modelo de contexto a um símbolo a ser transmitido. O contexto pode se referir, por exemplo, a se valores vizinhos do símbolo são não zero ou não. Para realizar CAVLC, o codificador de vídeo 20 pode selecionar um código de comprimento variável para um símbolo a ser transmitidos. Palavras código em VLC podem ser construídas de modo que códigos relativamente mais curtos correspondam a símbolos mais prováveis, enquanto códigos mais longos correspondem a símbolos menos prováveis. Dessa maneira, o uso de VLC pode alcançar uma economia de bit, por exemplo, em comparação com o uso de palavras código de comprimento igual para cada símbolo a ser transmitido. A determinação de probabilidade pode ser baseada em um contexto atribuído ao símbolo.
[0056] O codificador de vídeo 20 pode enviar adicionalmente dados de sintaxe, tais como dados de sintaxe com base em blocos, dados de sintaxe com base em quadros e dados de sintaxe com base em GOP, ao 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 de GOP. Os dados de sintaxe de GOP podem descrever inúmeros quadros no respectivo GOP, e os dados de sintaxe de quadro podem indicar um modo de codificação/previsão utilizado para codificar o quadro correspondente.
[0057] HEVC é projetado para ser genérico no sentido de que é destinado a servir, por exemplo ser compatível com, uma faixa ampla de aplicações, taxas de bit, resoluções, qualidades e serviços. Aplicações que potencialmente recebem o serviço de HEVC incluem, dentre outras coisas, meios de armazenamento digitais, difusão de televisão e comunicação em tempo real. No curso de criação de HEVC, várias exigências de aplicações típicas foram consideradas, elementos algorítmicos foram desenvolvidos e esses foram integrados a uma única sintaxe. Logo, HEVC deve facilitar o intercâmbio de dados de vídeo entre diferentes aplicações. Considerando-se a praticabilidade de implantação da sintaxe completa de HEVC, no entanto, um número limitado de subconjuntos da sintaxe também é estipulado por meio de "perfis" e "níveis”.
[0058] Um "perfil" é definido como um subconjunto de toda a sintaxe de corrente de bits que é especificada por HEVC. Dentro dos limites impostos pela sintaxe de um dado perfil, ainda é possível para exigir uma variação muito grande no desempenho de codificadores e decodificadores dependendo dos valores assumidos pelos elementos de sintaxe na corrente de bits tal como o tamanho especificado das imagens decodificadas. Em muitas aplicações, atualmente não é prático nem econômico para implantar um decodificador com a capacidade de lidar com todos os usos hipotéticos da sintaxe em um perfil particular.
[0059] A fim de lidar com esse problema, "camadas" e "níveis" podem ser especificados em cada perfil. Um nível de uma camada é um conjunto de restrições especificadas imposto a valores dos elementos de sintaxe na corrente de bits. Essas restrições podem ser limites simples sobre valores. Alternativamente, os mesmos podem assumir a forma de restrições em combinações aritméticas de valores (por exemplo, largura de imagem multiplicada por altura de imagem multiplicada pelo número de imagens decodificadas por segundo). Um nível especificado para uma camada inferior é mais restringido que um nível especificado para uma camada superior. O mesmo conjunto de níveis é definido para todos os perfis, sendo que a maioria dos aspectos da definição de cada nível é em comum ao longo de diferentes perfis. Implantações individuais podem, em restrições especificadas, suportar um nível diferente para cada perfil suportado. Em um contexto diferente, o nível é o valor de um coeficiente de transformada residual antes de colocação em escala. Os perfis e níveis são descritos em mais detalhes em Annex A de Working Draft 8 (WD8) de High Efficiency Video Coding (HEVC).
[0060] O conteúdo de vídeo codificado que conforma ao WD8 de HEVC utiliza uma sintaxe comum. A fim de alcançar um subconjunto de sintaxe completa, sinalizadores, parâmetros e outros elementos de sintaxe são incluídos na corrente de bits que sinaliza a presença ou a ausência de elementos sintáticos que ocorrem posteriormente na corrente de bits.
[0061] O WD8 de HEVC define uma subcamada como uma camada escalável temporal de uma corrente de bits escalável temporal que consiste em unidades de camada de abstração de rede (NAL) camada de codificação de vídeo (VCL) com um valor particular da variável TemporalId, e as unidades NAL não VCL associadas. O WD8 de HEVC define adicionalmente uma representação de subcamada como um subconjunto de a corrente de bits que consiste em unidades NAL de uma subcamada particular e as subcamadas inferior.
[0062] A subcláusula 10.1 de HEVC 8 descreve subconjuntos de corrente de bits e um processo de extração para gerar subcorrentes de bits. A subcláusula 10.1 é apresentada abaixo.
10.1 PROCESSO DE EXTRAÇAO DE SUBCORRENTE DE BITS
[0063] É exigência de conformidade de corrente de bits que qualquer subcorrente de bits que é incluída no produto do processo especificado nessa subcláusula com tIdTarget igual a qualquer valor na faixa de 0 a 6, inclusivo, e com targetDecLayerldSet que contém o valor 0 deva conformar a essa Recomendação | Padrão Internacional.
[0064] OBSERVAÇÃO - Uma corrente de bits em conformação contém uma ou mais unidades NAL de fatia codificada com nuh_reserved_zero_6bits igual a 0 e TemporalId igual a 0.
[0065] As entradas para esse processo são uma variável tIdTarget e uma lista de targetDecLayerldSet.
[0066] O produto desse processo é uma subcorrente de bits.
[0067] A subcorrente de bits é derivada removendo-se da corrente de bits todas as unidades NAL com TemporalId maior que tIdTarget ou nuh_reserved_zero_6bits não entre os valores em targetDecLayerldSet.
[0068] Em geral, o WD8 de HEVC descreve a extração de subcorrentes de bits da corrente de bits com base em valores de identificadores de camada e sub- identificadores de camada temporais que identificam um ponto de operação da corrente de bits.
[0069] Um ponto de operação é identificado, em geral, por um conjunto de valores de nuh_reserved_zero_6bits, denotados como OpLayerldSet, e um valor de TemporalId, denotado como OpTid, e o subconjunto de corrente de bits associado derivado como o produto do processo de extração de subcorrente de bits conforme especificado na subcláusula 10.1 do WD8 de HEVC com OpTid e OpLayerldSet como entradas é independentemente decodificável. Um modo simples de ponto de operação é considerado, em geral, ser um modo de ponto de operação em que para cada ponto de operação o OpLayerldSet inclui e somente inclui um valor particular de nuh_reserved_zero_6bits e todos os outros valores de nuh_reserved_zero_6bits menor que o valor particular de nuh_reserved_zero_6bits.
[0070] A Tabela 1 abaixo mostra um exemplo de semântica e sintaxe de carga de sequência de byte bruto de VPS (RBSP). TABELA 1
Figure img0001
Figure img0002
[0071] O elemento de sintaxe "vps_simple_op_mode_flag[i]" estabelecido igual a 1 especifica que o modo simples de ponto de operação está em uso para a i-péssima estrutura sintática operation_point_layer_ids( ). O elemento de sintaxe "vps_simple_op_mode_flag[i]" igual a 0 especifica que o modo simples de ponto de operação não está em uso para i- ésima estrutura sintática operation_point( ).
[0072] Quaisquer duas instâncias da estrutura sintática hrd_parameters(i,vps_max_sub_layers_minus1) e hrd_parameters(j, vps_max_sub_layers_minus1), em que i não é igual a j, podem não ter o mesmo conteúdo.
[0073] A Tabela 2 abaixo mostra um exemplo de sintaxe e semântica de perfil, camada e nível. TABELA 2
Figure img0003
Figure img0004
[0074] O elemento de sintaxe "sub_layer_profile_present_flag[i]" estabelecido igual a 1, quando ProfilePresentFlag é igual a 1, especifica que perfil informações estão presentes na estrutura sintática profile_tier_level( ) para a representação da subcamada com TemporalId igual a i. sub_layer_profile_present_flag[i] igual a 0 especifica que perfil informações não estão presentes na estrutura sintática profile_tier_level( ) para as representações da subcamada com TemporalId igual a i. Quando não presente, o valor de sub_layer_profile_present_flag[i] é inferido ser igual a 0.
[0075] O elemento de sintaxe "sub_layer_level_present_flag[i]" estabelecido igual a 1 especifica que informações de nível estão presentes na estrutura sintática profile_tier_level( ) para a representação da subcamada com TemporalId igual a i. sub_layer_level_present_flag[i] igual a 0 especifica que informações nível não estão presentes na estrutura sintática profile_tier_level( ) para a representação da subcamada com TemporalId igual a i.
[0076] Os elementos de sintaxe "sub_layer_profile_idc[i]" e "sub_layer_level_idc[i]" têm a mesma semântica que general_profile_idc e general_level_idc, respectivamente, porém se aplicam à representação da subcamada com TemporalId igual a i.
[0077] A Tabela 3 abaixo mostra um exemplo de sintaxe e semântica de ponto de operação. TABELA 3
Figure img0005
[0078] A estrutura sintática operation_point( opldx ) especifica o conjunto de valores de nuh_reserved_zero_6bits incluídos no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opldx- ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica.
[0079] O elemento de sintaxe "op_first_present_layer_id[opldx]”, quando vps_simple_op_mode_flag[opldx] é estabelecido igual a 0, especifica o primeiro (isto é, o 0-ésimo) valor de nuh_reserved_zero_6bits incluído no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opldx-ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica. Quando vps_simple_op_mode_flag[opldx] é igual a 1, op_first_present_layer_id[opldx] especifica o maior valor de nuh_reserved_zero_6bits incluído no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opldx- ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica.
[0080] O elemento de sintaxe "op_num_layer_id_values_minus1 [opldx]" mais 1, quando vps_simple_op_mode_flag[opldx] é igual a 0, especifica o número de valores de nuh_reserved_zero_6bits incluídos no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opldx-ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica. op_num_layer_id_values_minus1 [opldx] é menor que ou igual a 63.
[0081] O elemento de sintaxe "op_layer_id_delta_minus1 [opldx][i]" mais 1, quando vps_simple_op_mode_flag[opldx] é igual a 0, especifica a diferença entre o i-ésimo valor de nuh_reserved_zero_6bits e (i - l)-ésimo valor de nuh_reserved_zero_6bits incluídos no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opldx-ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica. O valor dop_layer_id_delta_minus1 [opldx][i] se encontra na faixa de 0 a 63, inclusivo.
[0082] A variável NumOpLayerIdsMinus1 [opldx] é derivada conforme se segue. se( vps_simple_op_mode_flag[opldx] ) NumOpLayerIdsMinus1 [opIdx] = op_first_present_layer_id[opIdx] ou NumOpLayerIdsMinus1 [opIdx] = op_num_layer_id_values_minus1 [opIdx] NumOpLayerIdsMinus1 [0] é inferida ser igual a 0.
[0083] As variáveis OpLayerId[opIdx][i], para i na faixa de 0 a NumOpLayerIdsMinus1 [opIdx], inclusivo, são derivadas conforme se segue. OpLayerId[opIdx][0] = vps_simple_op_mode_flag[opIdx] ? 0 : op_first_present_layer_id[opIdx] para( i = 1; i <= NumOpLayerIdsMinus1 [opIdx]; i++ ) se( vps_simple_op_mode_flag[opIdx] ) OpLayerId[opIdx][i] = i ou OpLayerId[opIdx][i] = OpLayerId[opIdx][i - 1] + op_clayer_id_delta_minus1 [opIdx][i] + 1
[0084] O valor de OpLayerId[0][0] é inferido ser igual a 0.
[0085] Nenhum valor de OpLayerId[opIdx][i] é igual a OpLayerId[opIdx][j] quando i não é igual a j e tanto i quanto j estão na faixa de 0 a NumOpLayerldsMinus1[opIdx], inclusivo.
[0086] Quaisquer dois conjuntos OpLayerId[opIdx1] e OpLayerId[opIdx2], em que opIdx1 não é igual a opIdx2, não incluem os mesmos conjuntos de valores de nuh_reserved_zero_6bits.
[0087] O OpLayerldSet dos pontos de operação aos quais a estrutura sintática opIdx-ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica é estabelecida para incluir e somente incluir os valores de nuh_reserved_zero_6bits iguais a OpLayerId[opIdx][i], para i na faixa de 0 a NumOpLayerldsMinus1 [opIdx], inclusivo.
[0088] Sintaxe e semântica alternativas de ponto de operação são descritas na Tabela 4 e abaixo. TABELA 4
Figure img0006
Figure img0007
[0089] A estrutura sintática operation_point( opIdx ) especifica o conjunto de valores de nuh_reserved_zero_6bits incluídos no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opldx- ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica.
[0090] O elemento de sintaxe "op_num_layer_id_values_minus1 [opIdx]" mais 1 especifica o número de valores de nuh_reserved_zero_6bits incluídos no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opldx-ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica. op_num_layer_id_values_minus1 [opIdx] é menor que ou igual a 63. Quando não está presente, o valor de op_num_layer_id_values_minus1 [opIdx] é inferido ser igual a 0.
[0091] Em correntes de bits que se conformam a este relatório descritivo, op_num_layer_id_values_minus1 [opIdx] é igual a 0. Apesar de o valor de op_num_layer_id_values_minus1 [opIdx] ser exigido ser igual a 0 nessa versão do relatório descritivo, os decodificadores permitem que outros valores apareçam na sintaxe op_num_layer_id_values_minus1 [opIdx] sintaxe.
[0092] O elemento de sintaxe "op_layer_id[opIdx][i]" especifica o i-ésimo valor de nuh_reserved_zero_6bits incluído no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opldx-ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica.
[0093] A variável NumOpLayerIdsMinus1 [opIdx] é derivada conforme se segue. se( vps_simple_op_mode_flag[opIdx] ) NumOpLayerIdsMinus1 [opIdx] = op_layer_id[opIdx][0] ou NumOpLayerIdsMinus1 [opIdx] = op_num_layer_id_values_minus1 [opIdx] NumOpLayerIdsMinus1 [0] é inferido ser igual a 0.
[0094] As variáveis OpLayerId[opIdx][i], para i na faixa de 0 a NumOpLayerIdsMinus1 [opIdx], inclusivo, são derivadas conforme se segue. para( i = 0; i <= NumOpLayerIdsMinus1 [opIdx]; i++ ) OpLayerId[opIdx][i] = vps_simple_op_mode_flag[opIdx] ? i : op_layer_id[opIdx][i]
[0095] O valor de OpLayerId[0][0] é inferido ser igual a 0.
[0096] Nenhum valor de OpLayerId[opIdx][i] é igual a OpLayerId[opIdx][j] quando i não é igual a j e tanto i quanto j estão na faixa de 0 a NumOpLayerldsMinus1 [opIdx], inclusivo.
[0097] Quaisquer dois conjuntos OpLayerId[oldx1] e OpLayerId[opIdx2], em que opldx1 não é igual a opIdx2, não incluem os mesmos conjuntos dos valores de nuh_reserved_zero_6bits.
[0098] O OpLayerldSet dos pontos de operação aos quais a estrutura sintática opldx-ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica é estabelecido para incluir e somente incluir os valores de nuh_reserved_zero_6bits iguais a OpLayerId[opldx][i], para i na faixa de 0 a NumOpLayerIdsMinus1 [opldx], inclusivo.
[0099] JCTVC-K0204 (que é incorporado ao presente documento a título de referência e disponível em http://phenix.int-evry.fr/jct/doc_end_user/documents/11 _Shanghai/wg11/JCTVC-K0204-v1.zip) forneceu uma sinalização revisada do ponto de operação conforme descrito pela seguinte sintaxe e semântica: TABELA 5
Figure img0008
[0100] O elemento de sintaxe "layer_present_in_op_flag[opldx][i]" estabelecido igual a 1 especifica que a camada i está presente no ponto de operação opldx, igual a 0 especifica que a camada i não está presente no ponto de operação opldx.
[0101] Os métodos existentes para sinalizar pontos de operação podem ter algumas falhas potenciais. Por exemplo, os métodos existentes para sinalização de pontos de operação podem ou ter elementos de sintaxe codificados por entropia com uso de codificação ue(v) conforme especificado no WD8 de HEVC ou não suportar a sinalização de valores de nuh_reserved_zero_6bits (isto é, IDs de camada) maiores que max_num_layers_minus1, que é sinalizado no conjunto de parâmetro de vídeo (VPS).
[0102] Esta revelação propõe vários conjuntos de procedimentos que podem abordar potencialmente algumas dessas falhas potenciais. Em tal conjunto de procedimentos, o maior valor do valor de nuh_reserved_zero_6bits (isto é, o maior valor de ID de camada) é primeiramente sinalizado, seguido por uma lista de sinalizadores, em que cada um especifica se a camada com um valor particular de ID de camada menor que o maior valor de ID de camada é incluída no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opldx-ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica. Em outro conjunto de procedimentos, uma lista de M sinalizadores é sinalizada, em que cada uma especifica se a camada com um possível valor particular de ID de camada é incluída no OpLayerldSet dos pontos de operação aos quais a estrutura opldx-ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica. O valor de M é igual ao número total de diferentes IDs de camada possíveis em qualquer corrente de bits. Por exemplo, M pode ser igual a 2N, em que N é o número de bits utilizados para representar nuh_reserved_zero_6bits (isto é, o ID de camada). Em ainda outro conjunto de procedimentos, o maior valor de valor de nuh_reserved_zero_6bits (isto é, o maior valor de ID de camada) é sinalizado. Se o modo simples de ponto de operação não estiver em uso, então uma lista de sinalizadores é sinalizada, sendo que cada uma especifica se a camada com um valor particular de ID de camada menor que o maior valor de ID de camada é incluída no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opldx-ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica.
[0103] Alguns exemplos detalhados dos conjuntos de procedimentos acima serão descritos agora. Os exemplos descritos abaixo são, em geral, consistentes com WD8 de HEVC e, portanto, aspectos não descritos completamente podem ser assumidos serem os mesmos que no WD8 de HEVC.
[0104] Sintaxe e semântica de ponto de operação para um primeiro exemplo são mostradas na Tabela 6 abaixo. TABELA 6
Figure img0009
[0105] A estrutura sintática operation_point( opldx ) especifica o conjunto de valores de nuh_reserved_zero_6bits incluídos no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opldx- ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica.
[0106] O elemento de sintaxe "op_max_layer_id[opldx]" especifica o maior valor de nuh_reserved_zero_6bits incluídos no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opldx- ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica. Apesar de a Tabela 6 mostrar o elemento de sintaxe "op_max_layer_id[opldx]" sendo sinalizado para cada ponto de operação, o mesmo também pode ser sinalizado em outro lugar na corrente de bits codificada tal como em um conjunto de parâmetro de sequência ou VPS.
[0107] O elemento de sintaxe "op_layer_id_incuded_flag[opldx][i]" estabelecido igual a 0 especifica que valor de nuh_reserved_zero_6bits igual a i não é incluído no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opldx-ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica. op_layer_id_incuded_flag[opIdx][i] igual a 1 especifica que valor de nuh_reserved_zero_6bits igual a i é incluído no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opIdx -ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica. A soma de todo o op_layer_id_incuded_flag[opIdx][i], para i de 0 a op_max_layer_id[opIdx]-1, inclusivo, é menor ou igual a max_num_layers_minus1.
[0108] 0A variável NumOpLayerIdsMinus1 [opIdx] e as variáveis OpLayerId[opIdx][i], para i na faixa de 0 a NumOpLayerIdsMinus1 [opIdx], inclusivo, são derivadas conforme se segue. para( i = 0, j = 0; i < op_max_layer_id[opIdx]; i++ ) se( op_layer_id_incuded_flag[opIdx][i] ) OpLayerId[opIdx][j++] = i OpLayerId[opIdx][j] = op_max_layer_id[opIdx] NumOpLayerIdsMinus1 [opIdx] = j
[0109] NumOpLayerIdsMinus1 [0] é inferida ser igual a 0. O valor de OpLayerId[0][0] é inferido ser igual a 0.
[0110] Quaisquer dois conjuntos OpLayerId[opldx1] e OpLayerId[opIdx2], em que opldx1 não é igual a opIdx2, não incluem o mesmo conjunto de valores de nuh_reserved_zero_6bits.
[0111] O OpLayerldSet dos pontos de operação aos quais a estrutura sintática opIdx-ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica é estabelecido para incluir e somente incluir os valores de nuh_reserved_zero_6bits iguais a OpLayerId[opIdx][i], para i na faixa de 0 a NumOpLayerIdsMinus1 [opIdx], inclusivo.
[0112] Referindo-se de volta ao exemplo acima, suponha que uma corrente de bits inclui seis subcorrentes de várias resoluções temporais e espaciais, em que cada subcorrente tem uma ID de camada. Para o ponto de operação identificado por opIdx, o maior valor de ID de camada pode ser sinalizado na corrente de bits como o valor do elemento de sintaxe "op_max_layer_id[opIdx]”. Para os propósitos desse exemplo, suponha que o maior valor de ID de camada é 9, de modo que op_max_layer_id[opIdx] seja igual a 9. O valor de ID de camadas restantes pode ser sinalizado com uso de nove sinalizadores, em que um primeiro sinalizador indica se valor de ID de camada 0 está presente, o segundo sinalizador indica se valor de ID de camada 1 está presente, e assim por diante. Logo, para sinalizar os valores de ID de camada 2, 5, e 10, o valor 10 pode ser primeiramente sinalizado seguido pelas sequências de sinalizadores 001001000, em que o 1 para o terceiro bit indica que valor de ID de camada 2 está presente e o 1 para o sexto bit indica que valor de ID de camada 5 está presente. Com uso da sintaxe da Tabela 6, as sequências de sinalizadores 001001000 são obtidas conforme se segue. Para i = 0, o valor do sinalizador para op_layer_ id included_ flag[opIdx][i] é 0. Para i = 1, o valor do sinalizador para op_layer_ id included_ flag[opIdx][i] é 0. Para i = 3, o valor do sinalizador para op_layer_ id included_ flag[opIdx][i] é 0. Para i = 4, o valor do sinalizador para op_layer_ id included_ flag[opIdx][i] é 0. Para i = 5, o valor do sinalizador para op_layer_ id included_ flag[opIdx][i] é 1. Para i = 6, o valor do sinalizador para op_layer_ id included_ flag[opIdx][i] é 0. Para i = 7, o valor do sinalizador para op_layer_ id included_ flag[opIdx][i] é 0. Para i = 8, o valor do sinalizador para op_layer_ id included_ flag[opIdx][i] é 0. Para i = 9, o valor de i não é menor que op_max_layer_id[opIdx], que também é igual a 9. Portanto, um decodificador de vídeo pode determinar que o último sinalizador foi recebido.
[0113] Sintaxe e semântica de ponto de operação para um segundo exemplo conjuntos de procedimentos são mostradas na Tabela 7 abaixo. TABELA 7
Figure img0010
[0114] A estrutura sintática operation_point( opIdx ) especifica o conjunto de valores de nuh_reserved_zero_6bits incluídos no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opldx- ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica.
[0115] O elemento de sintaxe "op_layer_id_incuded_flag[opIdx][i]" estabelecido igual a 0 especifica que valor de nuh_reserved_zero_6bits igual a i não é incluído no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opIdx -ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica. op_layer_id_incuded_flag[opIdx][i] igual a 1 especifica que valor de nuh_reserved_zero_6bits igual a i é incluído no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opIdx -ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica. A soma de todo o op_layer_id_incuded_flag[opIdx][i], para i de 0 a 63, inclusivo, é menor que ou igual a max_num_layers_minus1.
[0116] A variável NumOpLayerIdsMinus1 [opIdx] e as variáveis OpLayerId[opIdx][i], para i na faixa de 0 a NumOpLayerIdsMinus1 [opIdx], inclusivo, são derivadas conforme se segue. para( i = 0, j = 0; i < 64; i++ ) se( op_layer_id_incuded_flag[opIdx][i] ) OpLayerId[opIdx][j++] = i NumOpLayerIdsMinus1 [opIdx] = j
[0117] NumOpLayerIdsMinus1 [0] é inferida ser igual a 0. O valor de OpLayerId[0][0] é inferido ser igual a 0.
[0118] Quaisquer dois conjuntos OpLayerId[opldx1] e OpLayerId[opIdx2], em que opldx1 não é igual a opIdx2, não incluem o mesmo conjunto de valores de nuh_reserved_zero_6bits.
[0119] O OpLayerldSet dos pontos de operação aos quais a estrutura sintática opIdx -ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica é estabelecido para incluir e somente incluir os valores de nuh_reserved_zero_6bits iguais a OpLayerId[opIdx][i], para i na faixa de 0 a NumOpLayerIdsMinus1 [opIdx], inclusivo.
[0120] O Sintaxe e semântica de ponto de operação para um terceiro exemplo são mostradas na Tabela 8 abaixo. Nesse exemplo, a sintaxe e semântica de VPS também são mudadas, conforme mostrado na Tabela 8 e conforme descrito abaixo. TABELA 8
Figure img0011
Figure img0012
[0121] O elemento de sintaxe "vps_simple_op_mode_flag[i]" estabelecido igual a 1 especifica que o modo simples de ponto de operação está em uso para a estrutura sintática i-ésimo operation_point( ). vps_simple_op_mode_flag[i] igual a 0 especifica que o modo simples de ponto de operação não está em uso para a estrutura sintática i-ésimo operation_point( ).
[0122] Quaisquer duas instâncias da estrutura sintática hrd_parameters( i, vps_max_sub_layers_minus1 ) e hrd_parameters( j, vps_max_sub_layers_minus1 ), em que i não é igual a j, não têm o mesmo conteúdo. TABELA 9
Figure img0013
[0123] A estrutura sintática operation_point( opIdx ) mostrada na Tabela 9 especifica o conjunto de valores de nuh_reserved_zero_6bits incluídos no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opIdx -ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica.
[0124] O elemento de sintaxe "op_max_layer_id[opIdx]" especifica o maior valor de nuh_reserved_zero_6bits incluído no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opldx-ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica.
[0125] O elemento de sintaxe "op_layer_id_incuded_flag[opIdx][i]" estabelecido igual a 0, quando vps_simple_op_mode_flag[opIdx] é igual a 0, especifica que valor de nuh_reserved_zero_6bits igual a i não é incluído no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opIdx -ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica. op_layer_id_incuded_flag[opIdx][i] igual a 1, quando vps_simple_op_mode_flag[opIdx] é igual a 0, especifica que valor de nuh_reserved_zero_6bits igual a i é incluído no OpLayerldSet dos pontos de operação aos quais a estrutura sintática opIdx-ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica. A soma de todo o op_layer_id_incuded_flag[opIdx][i], para i de 0 a op_max_layer_id[opIdx]- 1, inclusivo, é menor que ou igual a max_num_layers_minus1.
[0126] A variável NumOpLayerIdsMinus1 [opIdx] e as variáveis OpLayerId[opIdx][i], para i na faixa de 0 a NumOpLayerIdsMinus1 [opIdx], inclusivo, são derivadas conforme se segue. se( vps_simple_op_mode_flag[opIdx] ) { para( i = 0; i <= op_max_layer_id[opIdx]; i++ ) OpLayerId[opIdx][i] = i NumOpLayerIdsMinus1 [opIdx] = op_max_layer_id[opIdx] } ou { para( i = 0, j = 0; i < op_max_layer_id[opIdx]; i++ ) se( op_layer_id_incuded_flag[opldx][i] ) OpLayerId[opldx][j++] = i OpLayerId[opldx][j] = max_layer_id[opldx] NumOpLayerIdsMinus1 [opldx] = j }
[0127] NumOpLayerIdsMinus1 [0] é inferida ser igual a 0. O valor de OpLayerId[0][0] é inferido ser igual a 0.
[0121] Quaisquer dois conjuntos OpLayerId[opldx1] e OpLayerId[opIdx2], em que opldx1 não é igual a opIdx2, não incluem o mesmo conjunto de valores de nuhreservedzero6bits.
[0128] O OpLayerldSet dos pontos de operação aos quais a estrutura sintática opldx-ésimo hrd_parameters( ) no conjunto de parâmetro de vídeo se aplica é estabelecido para incluir e somente incluir os valores de nuh_reserved_zero_6bits iguais a OpLayerId[opldx][i], para i na faixa de 0 a NumOpLayerIdsMinus1 [opldx], inclusivo.
[0129] A Figura 2 é um diagrama de blocos que ilustra um exemplo do codificador de vídeo 20 que pode implantar os conjuntos de procedimentos descritos nesta revelação. O codificador de vídeo 20 pode realizar intracodificação e intercodificação de blocos de vídeo em fatias de vídeo. A intracodificação conta com a previsão espacial para reduzir ou remover redundância espacial no vídeo em um dado quadro ou imagem de vídeo. A intercodificação conta com a previsão temporal para reduzir ou remover a redundância temporal no vídeo em quadros ou imagens adjacentes de uma sequência de vídeo. O modo de intra (modo I) pode se referir a qualquer um dentre vários modos de codificação com base espacial. Os modos de inter, tais como previsão unidirecional (modo P) ou bi-previsão (modo B), podem se referir a qualquer dentre vários modos de codificação com base temporal.
[0130] Conforme mostrado na Figura 2, o codificador de vídeo 20 recebe um bloco de vídeo atual em um quadro de vídeo a ser codificado. No exemplo da Figura 2, o codificador de vídeo 20 inclui a unidade de seleção de modo 40, a memória de quadro de referência 64, o somador 50, a unidade de processamento de transformada 52, a unidade de quantização 54 e a unidade de codificação por entropia 56. A unidade de seleção de modo 40, por sua vez, inclui a unidade de compensação de movimento 44, a unidade de estimativa de movimento 42, a unidade de processamento de intraprevisão 46, e a unidade de divisão 48. Para reconstrução de bloco de vídeo, o codificador de vídeo 20 também inclui a unidade de quantização inversa 58, a unidade de processamento de transformada inversa 60, e o somador 62. Um filtro de desbloqueio também pode ser incluído para filtrar limites de bloco para remover artefatos de blocagem do vídeo reconstruído. Se desejado, o filtro de desbloqueio filtraria tipicamente o produto do somador 62. Filtros adicionais (em laço ou após laço) também podem ser utilizados além do filtro de desbloqueio. Tais filtros não são mostrados por questões de brevidade, porém, se desejado, podem filtrar o produto do somador 50 (como um filtro em laço).
[0131] Durante o processo de codificação, o codificador de vídeo 20 recebe um quadro ou uma fatia de vídeo a ser codificada. O quadro ou a fatia pode ser dividida em múltiplos blocos de vídeo. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 realizam codificação de interprevisão do bloco de vídeo recebido em relação a um ou mais blocos em um ou mais quadros de referência para fornecer a previsão temporal. A unidade de processamento de intraprevisão 46 pode alternativamente realizar codificação de intraprevisão do bloco de vídeo recebido em relação a um ou mais blocos vizinhos no mesmo quadro ou na mesma fatia que o bloco a ser codificado para fornecer previsã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 de dados de vídeo
[0132] Ademais, a unidade de divisão 48 pode dividir 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 divisão 48 pode dividir inicialmente um quadro ou uma fatia em LCUs, e divida cada uma das LCUs em sub-CUs com base na análise de taxa de distorção (por exemplo, otimização de taxa de distorção). A unidade de seleção de modo 40 pode produzir adicionalmente uma estrutura de dados de quadtree indicativos de 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.
[0133] 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 fornece o bloco intracodificado ou intercodificado resultante ao somador 50 para gerar os dados de bloco residuais 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 vetores de movimento, indicadores de modo de intra, informações de divisão e outras informações de sintaxe, à unidade de codificação por entropia 56.
[0134] A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 podem ser altamente integrada, porém são ilustradas separadamente por questões conceituais. A estimativa de movimento, realizada pela unidade de estimativa de movimento 42, é o processo de geração de vetores de movimento, que faz uma estimativa de movimento para blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo em um quadro de ou uma imagem vídeo atual em relação a um bloco previsível em um quadro de referência (ou outra unidade codificada) em relação ao bloco atual sendo codificado no quadro atual (ou outra unidade codificada). Um bloco previsível é um bloco que se observa ser proximamente compatível com o bloco a ser codificado, em termos de diferença de pixel, que pode ser determinado pela soma de diferença absoluta (SAD), a soma de diferença quadrada (SSD) ou outras métricas de diferença. Em alguns exemplos, o codificador de vídeo 20 pode calcular valores para posições de número sub-inteiro de pixel de imagens de referência armazenadas na memória de quadro de referência 64. Por exemplo, o codificador de vídeo 20 pode interpolar valores de posições de um quarto de pixel, posições de um oitavo de pixel ou outras posições fracionadas de pixel da imagem de referência. Portanto, a unidade de estimativa de movimento 42 pode realizar uma busca de movimento em relação às posições de pixel e posições de pixel fracionadas e produzir um vetor de movimento com precisão de pixel fracionada.
[0135] A unidade de estimativa de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia intercodificada comparando-se a posição da PU com a posição de um bloco previsível de uma imagem de referência. A imagem de referência pode ser selecionada dentre uma primeira imagem de referência lista (Lista 0) ou uma segunda imagem de referência lista (Lista 1), sendo que cada uma das mesmas identificam uma ou mais imagens de referência armazenadas na memória de quadro de referência 64. A unidade de estimativa de movimento 42 envia o vetor de movimento calculado para a unidade de codificação por entropia 56 e a unidade de compensação de movimento 44.
[0136] A compensação de movimento, realizada pela unidade de compensação de movimento 44, pode envolver buscar ou gerar o bloco previsível com base no vetor de movimento determinado pela unidade de estimativa de movimento 42. Novamente, a unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 podem ser funcionalmente integrada, em alguns exemplos. Mediante o recebimento do vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco previsível para qual o vetor de movimento aponta em uma das listas de imagem de referência. O somador 50 forma um bloco de vídeo residual subtraindo-se valores de pixel do bloco previsível dos valores pixel do bloco de vídeo atual sendo codificado, formando valores de diferença de pixel, conforme discutido abaixo. Em geral, a unidade de estimativa de movimento 42 realiza estimativa de movimento em relação a componentes de luma, e a unidade de compensação de movimento 44 utiliza vetores de movimento calculados com base nos componentes luma tanto para componentes croma quanto para componentes luma. A unidade de seleção de modo 40 também pode gerar elementos de sintaxe associados aos blocos de vídeo e à fatia de vídeo para uso pelo decodificador de vídeo 30 na decodificação dos blocos de vídeo da fatia de vídeo.
[0137] A unidade de processamento de intraprevisão 46 pode realizar intraprevisão de um bloco atual, como uma alternativa para a interprevisão realizada pela unidade de estimativa de movimento 42 e pela unidade de compensação de movimento 44, conforme descrito acima. Em particular, a unidade de processamento de intraprevisão 46 pode determinar um modo de intraprevisão para utilizar para codificar um bloco atual. Em alguns exemplos, a unidade de processamento de intraprevisão 46 pode codificar um bloco atual com uso de vários modos de intraprevisão, Por exemplo, durante passagens de codificação separadas e a unidade de processamento de intraprevisão 46 (ou a unidade de seleção de modo 40, em alguns exemplos) pode selecionar um modo de intraprevisão apropriado para utilizar a partir dos modos testados.
[0138] Por exemplo, a unidade de processamento de intraprevisão 46 pode calcular valores de taxa de distorção com uso de uma análise de taxa de distorção para os vários modos de intraprevisão testados e selecionar o modo de intraprevisão que tem as melhores características de taxa de distorção dentre os modos de teste. A análise de taxa de distorção determina, em geral, uma quantidade de distorção (ou erro) entre um bloco codificado e um original, bloco não codificado que foi codificado par produzir o bloco codificado, bem como uma taxa de bits (ou seja, um número de bits) utilizados para produzir o bloco codificado. A unidade de processamento de intraprevisão 46 pode calcular razoes a partir das distorções e taxas para os vários blocos codificados para determinar qual modo de intraprevisão exibe o melhor valor de taxa de distorção para o bloco.
[0139] Após a seleção de um modo de intraprevisão para um bloco, a unidade de processamento de intraprevisão 46 pode fornecer informações indicativas do modo de intraprevisão selecionado para o bloco à unidade de codificação por entropia 56. A unidade de codificação por entropia 56 pode codificar as informações que indicam o modo de intraprevisão selecionado. O codificador de vídeo 20 pode incluir nos dados de configuração de corrente de bits, que podem incluir uma pluralidade de tabelas de índice de modo de intraprevisão e uma pluralidade de tabelas de índice de modo de intraprevisão (também referidas como tabelas de mapeamento de palavra código), definições de contextos de codificação para vários blocos e indicações de um modo de intraprevisão mais provável, uma tabela de índice de modo de intraprevisão, e uma tabela de índice de modo de intraprevisão modificada para utilizar em cada um dos contextos.
[0140] O codificador de vídeo 20 forma um bloco de vídeo residual subtraindo-se os dados de previsão provenientes da unidade de seleção de modo 40 do bloco original de vídeo 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 conceitualmente similar, no bloco residual, produzindo um bloco de vídeo que compreende os valores de coeficiente de transformada residual. A unidade de processamento de transformada 52 pode realizar outras transformadas que sejam conceitualmente similares à DCT. Transformadas de Pequena onda, transformadas de número inteiro, transformadas de sub-bandas ou outros tipos de transformadas também podem ser utilizadas. Em qualquer caso, a unidade de processamento de transformada 52 aplica a transformada na residual bloco, produzindo um bloco de coeficientes de transformada residuais. A transformada pode converter as informações residuais de um domínio de valor de pixel em 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 residuais resultantes à unidade de quantização 54.
[0141] A unidade de quantização 54 quantiza os coeficientes de transformada residuais para reduzir adicionalmente a taxa de bits. O processo de quantização pode reduzir a profundidade de bit associada a alguns ou a todos os coeficientes. O grau de quantização pode ser modificado ajustando-se um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54 pode realizar, então, uma varredura da matriz que incluir os coeficientes de transformada residuais quantizados. Alternativamente, a unidade de codificação por entropia 56 pode realizar a varredura.
[0142] Seguindo a quantização, a unidade de codificação por entropia 56 codifica por entropia os coeficientes de transformada residuais quantizados. Por exemplo, a unidade de codificação por entropia 56 pode realizar codificação de comprimento variável adaptável ao contexto (CAVLC), codificação aritmética binária adaptável ao contexto (CABAC), codificação aritmética binária adaptável ao contexto com base em sintaxe (SBAC), codificação por entropia de divisão de intervalo de probabilidade (PIPE) ou outro conjunto de procedimentos de codificação de entropia. No caso de codificação de entropia com base em contexto, o contexto pode ser baseado em blocos vizinhos. Seguindo a codificação de entropia pela unidade de codificação por entropia 56, a corrente de bits codificada pode ser transmitida para outro dispositivo (por exemplo, o decodificador de vídeo 30) ou arquivada para transmissão ou recuperação posterior.
[0143] A unidade de quantização inversa 58 e a unidade de processamento 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 uso posterior como um bloco referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência adicionando-se o bloco residual a um bloco previsível de um dos quadros de memória de quadro de referência 64. A unidade de compensação de movimento 44 também pode aplicar um ou mais filtros de interpolação ao bloco residual reconstruído para calcular valores de número sub-inteiro de pixel para uso na estimativa de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de previsão compensado em movimento produzido pela unidade de compensação de movimento 44 para produzir um bloco de vídeo reconstruído para armazenamento na memória de quadro de referência 64. O bloco de vídeo reconstruído pode ser utilizado pela unidade de estimativa de movimento 42 e pela unidade de compensação de movimento 44 como um bloco de referência para intercodificar um bloco em um quadro de vídeo subsequente.
[0144] A Figura 3 é um diagrama de blocos que ilustra um exemplo do decodificador de vídeo 30 que pode implantar os conjuntos de procedimentos descritos nesta revelação. No exemplo da Figura 3, decodificador de vídeo 30 inclui uma unidade de decodificação por entropia 70, a unidade de compensação de movimento 72, a unidade de processamento de intraprevisão 74, a unidade de quantização inversa 76, a unidade de processamento de transformada inversa 78, a memória de quadro de referência 82 e o somador 80. O decodificador de vídeo 30 pode, em alguns exemplos, realizar uma passagem de decodificação recíproca em geral à passagem de codificação descrita em relação ao codificador de vídeo 20, conforme mostrado na Figura 2.
[0145] Durante o processo de decodificação, o decodificador de vídeo 30 recebe uma corrente de bits de vídeo codificada que representa blocos de vídeo de uma fatia de vídeo codificada e elementos de sintaxe associados do codificador de vídeo 20. O decodificador de vídeo 30 pode receber a corrente de bits de vídeo codificada de uma entidade de rede 29. A entidade de rede 29 pode, por exemplo, ser um servidor, um elemento de rede com reconhecimento de mídia (MANE), um editor/emendador de vídeo, ou tal outro dispositivo configurado para implantar um ou mais dos conjuntos de procedimentos descritos acima. A entidade de rede 29 pode incluir um meio externo configurado para realizar os conjuntos de procedimentos desta revelação. Conforme descrito acima, alguns dos conjuntos de procedimentos descritos nesta revelação podem ser implantados pela entidade de rede 29 antes de a entidade de rede 29 transmitir a corrente de bits de vídeo codificada para o decodificador de vídeo 30. Em alguns sistemas de decodificação de vídeo, a entidade de rede 29 e o decodificador de vídeo 30 podem fazer partes de dispositivos separados, enquanto em outras instâncias a funcionalidade descrita em relação à entidade de rede 29 pode ser realizada pelo mesmo dispositivo que compreende decodificador de vídeo 30.
[0146] Em um exemplo, a entidade de rede 29 pode armazenar ou receber uma corrente de bits original de dados de vídeo que pode ser colocada em escala e/ou inclui múltiplas camadas ou vistas. Na corrente de bits original, um conjunto de parâmetro, tal como um VPS, pode incluir a sintaxe de ponto de operação discutida acima. A sintaxe de ponto de operação pode ser utilizada, pela entidade de rede 29, para identificar quais camadas estão presentes no ponto de operação. A partir da corrente de bits original, a entidade de rede 29 pode escolher um dos múltiplos pontos de operação (isto é, subcorrentes de bits) baseado na sintaxe de ponto de operação incluída no VPS e baseado no que é desejável para o decodificador de vídeo 30 ou no que foi solicitado pelo mesmo. Para a subcorrente de bits que corresponde ao ponto de operação escolhido, a entidade de rede 29 pode encaminhar para o decodificador de vídeo 30 as unidades NAL VLC e as unidades NAL não VCL que compreendem aquela corrente de bits e não encaminhar as outras unidades NAL.
[0147] Para um ponto de operação particular identificado no VPS, a entidade de rede 29 pode receber uma indicação de um valor de ID de camada máximo para uma corrente de bits e receber uma série de sinalizadores para as camadas com valor de ID de camada menor que o valor de ID de camada máximo. Com base nos valores dos sinalizadores, a entidade de rede 29 pode determinar quais camadas são incluídas no ponto de operação. Por exemplo, se o valor do ID de camada máximo for M, então a camada M é incluída no ponto de operação. Para a camada M - 1, a entidade de rede 29 recebe um sinalizador, em que um primeiro valor (por exemplo 1 ou 0) do sinalizador indica camada M - 1 é incluído no ponto de operação e um segundo valor (por exemplo 0 ou 1) do sinalizador indica que a camada M - 1 não é incluída no ponto de operação. Para a camada M - 2, a entidade de rede 29 recebe um segundo sinalizador, em que um primeiro valor (por exemplo 1 ou 0) do segundo sinalizador indica que a camada M - 2 é incluída no ponto de operação e um segundo valor (por exemplo 0 ou 1) do segundo sinalizador indica que a camada M - 2 não é incluída no ponto de operação. A entidade de rede 29 pode receber da mesma forma sinalizadores para todas as camadas restantes até a camada 0. Logo, se o valor do ID de camada máximo for M, então a entidade de rede 29 pode receber sinalizadores para todas as camadas 0 a M-1 .
[0148] A unidade de decodificação por entropia 70 do decodificador de vídeo 30 decodifica por entropia a corrente de bits fornecida pela entidade de rede 29 para gerar coeficientes quantizados, vetores de movimento ou indicadores de modo de intraprevisão, e outros elementos de sintaxe tal como a sintaxe de ponto de operação descrita acima. A unidade de decodificação por entropia 70 encaminha os vetores de movimento e outros elementos de sintaxe para a unidade de compensação de movimento 72. O decodificador de vídeo 30 pode receber os diferentes elementos de sintaxe em diferentes partes da corrente de bits codificada. Por exemplo, alguns elementos de sintaxe podem ser recebidos no nível de VPS, nível de SPS ou nível de APS, enquanto outros elementos de sintaxe são recebidos no nível de fatia de vídeo e/ou no nível de bloco de vídeo.
[0149] Quando a fatia de vídeo é codificada como uma fatia intracodificada (I), a unidade de processamento de intraprevisão 74 pode gerar dados de previsão para um bloco de vídeo da fatia de vídeo atual com base em um modo de intraprevisão sinalizados e dados de blocos previamente decodificados do quadro ou da imagem atuais. Quando o quadro de vídeo é codificado como uma fatia intercodificada (isto é, B, P ou GPB), a unidade de compensação de movimento 72 produz blocos previsíveis para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e em outros elementos de sintaxe recebidos da unidade de decodificação por entropia 70. Os blocos previsíveis podem ser produzidos a partir de uma das imagens de referência em 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, com uso de conjuntos de procedimentos de construção padrões em imagens de referência armazenadas na memória de quadro de referência 82.
[0150] A unidade de compensação de movimento 72 determina informações de previsão para um bloco de vídeo da fatia de vídeo atual analisando-se os vetores de movimento e outros elementos de sintaxe e utiliza as informações de previsão para produzir os blocos previsíveis para o bloco de vídeo atual sendo codificado. Por exemplo, a unidade de compensação de movimento 72 utiliza alguns dos elementos de sintaxe recebidos para determinar um modo de previsão (por exemplo, intra- ou interprevisão) utilizado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de interprevisão (por exemplo, fatia B ou fatia P), informações de construção para uma ou mais das listas de imagem de referência para a fatia, os vetores de movimento para cada interbloco codificado de vídeo da fatia, situação de interprevisão para cada bloco intercodificado de vídeo da fatia e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[0151] A unidade de compensação de movimento 72 também pode realizar interpolação com base em filtros de interpolação. A unidade de compensação de movimento 72 pode utilizar filtros de interpolação conforme utilizado pelo codificador de vídeo 20 durante a codificação dos blocos de vídeo para calcular valores interpolados para números sub- inteiros de pixels de blocos de referência. Nesse caso, a unidade de compensação de movimento 72 pode determinar os filtros de interpolação utilizados pelo codificador de vídeo 20 a partir dos elementos de sintaxe recebidos e pode utilizar os filtros de interpolação para produzir blocos previsíveis.
[0152] A unidade de quantização inversa 76 quantiza de modo inverso, isto é, desquantiza, os coeficientes de transformada residuais quantizados fornecidos na corrente de bits e decodificados pela unidade de decodificação por entropia 70. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização QPy calculado pelo decodificador de vídeo 30 para cada bloco de vídeo na fatia de vídeo para determinar um grau de quantização e, da mesma forma, um grau de quantização inversa que deve ser aplicado. A unidade de processamento 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 inverso conceitualmente similar, aos coeficientes de transformada residuais a fim de produzir blocos residuais no domínio de pixel.
[0153] Após a unidade de compensação de movimento 72 gerar o bloco previsível para o bloco de vídeo atual com base nos vetores de movimento e em outros elementos de sintaxe, o decodificador de vídeo 30 forma um bloco decodificado de vídeo somando-se os blocos residuais da unidade de processamento de transformada inversa 78 com os blocos previsíveis correspondentes gerados pela unidade de compensação de movimento 72. O somador 90 representa o componente ou os componentes que realizam essa operação de soma. Se desejado, um filtro de desbloqueio também pode ser aplicado para filtrar os blocos decodificados a fim de remover artefatos de blocagem. Outros filtros de laço (seja no laço de codificação ou após o laço de codificação) também podem ser utilizados para suavizar transições de pixel ou aprimorar de outra forma a qualidade de vídeo. Os blocos decodificados de vídeo em um dado quadro ou uma dada imagem são armazenados, então, na memória de quadro de referência 82, que armazena imagens de referência utilizadas para compensação de movimento subsequente. A memória de quadro de referência 82 também armazena vídeo decodificado para apresentação posterior em um dispositivo de exibição, tal como o dispositivo de exibição 32 da Figura 1.
[0154] A Figura 4 é um diagrama de blocos que ilustra um exemplo conjunto de dispositivos que fazem parte da rede 100. Nesse exemplo, a rede 100 inclui dispositivos de roteamento 104A, 104B (dispositivos de roteamento 104) e dispositivo de transcodificação 106. Os dispositivos de roteamento 104 e o dispositivo de transcodificação 106 são destinados a representar um pequeno número de dispositivos que podem fazer parte da rede 100. Outros dispositivos de rede, tais como comutadores, hubs, portas de comunicação, firewalls, pontes e outros dispositivos também podem ser incluídos na rede 100. Ademais, os dispositivos de rede adicionais podem ser fornecidos ao longo de uma trajetória de rede entre o dispositivo servidor 102 e o dispositivo cliente 108. O dispositivo servidor 102 pode corresponde ao dispositivo de fonte 12 (Figura 1), enquanto o dispositivo cliente 108 pode corresponder ao dispositivo de destinação 14 (Figura 1), em alguns exemplos.
[0155] Em geral, os dispositivos de roteamento 104 implantam um ou mais protocolos de roteamento para trocar dados de através da rede 100. Em alguns exemplos, os dispositivos de roteamento 104 podem ser configurados para realizar operações de proxy ou cache. Portanto, em alguns exemplos, os dispositivos de roteamento 104 podem ser referidos como dispositivos proxy. Em geral, os dispositivos de roteamento 104 executam protocolos de roteamento para descobrir rotas através da rede 100. Executando-se tais protocolos de roteamento, o dispositivo de roteamento 104B pode descobrir uma rota de rede a partir do próprio até o dispositivo servidor 102 por meio do dispositivo de roteamento 104A.
[0156] Os dispositivos de roteamento 104 e o dispositivo de transcodificação 106 são exemplos de dispositivos que podem implantar conjuntos de procedimentos descritos nesta revelação. Por exemplo, como parte de dados de vídeo de roteamento do dispositivo servidor 102 para o dispositivo cliente 108, os dispositivos de roteamento 104 e/ou o dispositivo de transcodificação 106 podem receber sintaxe de VPS que inclui sintaxe de ponto de operação. A sintaxe de ponto de operação pode, por exemplo, inclui um valor de ID de camada máximo para uma corrente de bits. Os dispositivos de roteamento 104 e o dispositivo de transcodificação 106 podem receber adicionalmente na sintaxe de ponto de operação um ou mais sinalizadores para as camadas com IDs de camada menor que o valor de ID de camada máximo. Com base no valor de ID de camada máximo e nos sinalizadores, os dispositivos de roteamento 104 e o dispositivo de transcodificação 106 podem determinar as camadas incluídas no ponto de operação e, logo, pode identificar as unidades NAL que compreendem a subcorrente de bits do ponto de operação.
[0157] A Figura 5 mostra um método exemplificativo de dados de vídeo de codificação de acordo com os conjuntos de procedimentos desta revelação. Os conjuntos de procedimentos da Figura 5 serão descritos com referência a um codificador de vídeo, tal como o codificador de vídeo 20. O codificador de vídeo 20 pode gerar, em uma corrente de bits de dados de vídeo codificados, uma indicação de um valor de ID de camada máximo para uma corrente de bits (152). O codificador de vídeo 20 também pode gerar um sinalizador para uma primeira camada com um valor de ID de camada menor que o valor de ID de camada máximo (154). A indicação do ID de camada máximo e do sinalizador pode, por exemplo, fazer parte da sintaxe de ponto de operação contida em um VPS.
[0158] A Figura 6 mostra um método exemplificativo de processamento de dados de vídeo de acordo com os conjuntos de procedimentos desta revelação. Os conjuntos de procedimentos da Figura 6 serão descritos com referência a um dispositivo de processamento de vídeo, que pode corresponder a um decodificador de vídeo tal como o decodificador de vídeo 30 da Figura 1 e da Figura 3 ou que pode corresponder a um dispositivo de rede ou uma entidade de rede tal como o dispositivo de rede 13 da Figura 1, a entidade de rede 29 da Figura 3 ou os dispositivos de roteamento 104 ou o dispositivo de transcodificação 106 da Figura 4. Um dispositivo de processamento de vídeo pode receber, em uma corrente de bits de dados de vídeo codificados, uma indicação de um valor de ID de camada máximo para uma corrente de bits (162). O dispositivo de processamento de vídeo também pode receber um sinalizador para uma primeira camada com um valor de ID de camada menor que o valor de ID de camada máximo (164). Com base no valor do sinalizador, o dispositivo de processamento de vídeo pode determinar se a primeira camada é incluída em um ponto de operação com base em um valor do sinalizador (166).
[0159] Deve-se reconhecer que, dependendo do exemplo, certos atos ou eventos de qualquer um dos conjuntos de procedimentos descritos no presente documento podem ser realizado em uma sequência diferente, podem ser adicionados, mesclados ou deixados de fora (por exemplo, nem todos os atos ou eventos descritos são necessários para a prática dos conjuntos de procedimentos). Ademais, em certos exemplos, atos ou eventos podem ser realizados simultaneamente, por exemplo, através processamento de múltiplos encadeamentos, processamento de interrupção ou múltiplos processadores, ao invés de sequencialmente.
[0160] Em um ou mais exemplos, as funções descritas podem ser implantadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implantadas em software, as funções podem ser armazenadas ou transmitidas em uma ou mais instruções ou código em um meio legível por computador e executadas por uma unidade de processamento baseada em hardware. Os meios legíveis por computador podem incluir meios de armazenamento legíveis por computador, que correspondem a um meio tangível tais como meios de armazenamento de dados, ou meios de comunicação que incluem qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Dessa maneira, os meios legíveis por computador podem corresponder, em geral, a (1) meios de armazenamento legíveis por computador tangíveis que não é transitório ou (2) um meio de comunicação tal como um sinal ou uma onda portadora. Os meios de armazenamento de dados podem ser qualquer mio disponível que possa ser acessado por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implantação dos conjuntos de procedimentos descritos nesta revelação. Um produto de programa de computador pode incluir um meio legível por computador.
[0161] A título de exemplo, e não limitação, tais meios de armazenamento legíveis por computador podem compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento em disco óptico, armazenamento em disco magnético ou outro dispositivos de armazenamento magnéticos, memória flash ou qualquer outro meio que possa ser utilizar 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 é apropriadamente chamada de um meio legível por computador. Por exemplo, se instruções forem transmitidas de um site da web, servidor ou outra fonte remota com uso de um cabo coaxial, cabo de fibra óptica, par torcido, linha de assinante digital (DSL) ou tecnologias sem fio tais como infravermelho, rádio e micro-onda, então o cabo coaxial, o cabo de fibra óptica, par torcido, DSL ou tecnologias sem fio tais como infravermelho, rádio e micro-ondas são incluídos na definição de meio. Deve-se compreender, no entanto, que meios de armazenamento legíveis por computador e meios de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outros meios transitórios, porém são, ao invés disso, direcionados para meios de armazenamento tangíveis não transitórios. Disco óptico e disco magnético, conforme utilizado no presente documento, inclui disco compacto (CD), disco laser, disco óptico, disco versátil digital (DVD), disquete e disco Blu-ray, em que discos magnéticos geralmente reproduzem dados de modo magnético, enquanto que discos ópticos reproduzem dados de modo óptico com lasers. Combinações dos mesmos devem ser incluídas no escopo de meios legíveis por computador.
[0162] As instruções podem ser executadas por um ou mais processadores, tais como um ou mais processadores de sinal digital (DSPs), microprocessadores de propósito geral, circuitos integrados de aplicação específica (ASICs), arranjos de lógica programável em campo (FPGAs) ou outro conjunto de circuitos lógico discreto ou integrado equivalente. Consequentemente, o termo "processador”, conforme utilizado no presente documento pode se referir a qualquer uma dentre as estruturas anteriores ou a qualquer outra estrutura adequada para implantação dos conjuntos de procedimentos descritos no presente documento. Além disso, em alguns aspectos, a funcionalidade descrita no presente documento pode ser fornecida em módulos de hardware e/ou software dedicados configurados para codificar e decodificar, ou incorporados a um codec combinado. Além disso, os conjuntos de procedimentos podem ser completamente implantados em um ou mais circuitos ou elementos lógicos.
[0163] Os conjuntos de procedimentos desta revelação podem ser implantados em uma variedade ampla de dispositivos ou aparelhos, incluindo um aparelho 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 nesta revelação enfatizar aspectos de dispositivos configurados para realizar os conjuntos de procedimentos revelados, porém não necessariamente exigem realização por diferentes unidades de hardware. Ao invés disso, conforme descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec ou fornecidas por uma coleção de unidades de hardware operativas entre si, incluindo um ou mais processadores conforme descrito acima, em conjunto com software e/ou firmware adequado.
[0164] Vários exemplos foram descritos e outros exemplos estão dentro do escopo das seguintes reivindicações.

Claims (15)

1. Método para processar dados de vídeo de múltiplas camadas, caracterizado por compreender: receber, em um conjunto de parâmetros de vídeo, um elemento de sintaxe especificando um valor de identificação (ID) de camada máximo para quaisquer unidades NAL associadas com um primeiro conjunto de camadas, em que os dados de vídeo de múltiplas camadas compreendem pelo menos dois ou mais conjuntos de camadas, em que cada um dos dois ou mais conjuntos de camadas está associado com pelo menos um fluxo de bits independentemente decodificável dos dados de vídeo de múltiplas camadas e compreende duas ou mais camadas; para o primeiro conjunto de camadas do pelo menos um conjunto de camadas, receber, no conjunto de parâmetros de vídeo, um indicador de ID incluído de camada de um-bit para uma primeira camada com um valor ID de camada menor que o valor ID de camada máximo; com base em um valor do indicador de ID incluído de camada de um-bit, determinar que a primeira camada é incluída no primeiro conjunto de camadas; receber uma pluralidade de unidades NAL, cada unidade NAL respectiva da pluralidade de unidades NAL possuindo um cabeçalho de unidade NAL que compreende um elemento de sintaxe de ID de camada que especifica uma camada à qual a respectiva unidade NAL pertence; e determinar se a unidade NAL da pluralidade de unidades NAL está incluída na primeira camada, com base em um elemento de sintaxe de ID da unidade NAL correspondente da primeira camada.
2. Método, de acordo com a reivindicação 1, caracterizado por compreender adicionalmente: receber, no conjunto de parâmetros de vídeo, um indicador de ID incluído de camada de um-bit adicional para cada valor ID de camada, diferente do valor ID de camada associado com a primeira camada, entre um valor ID de camada e o valor ID de camada máximo, em que um valor para cada indicador de ID incluído de camada de um-bit adicional indica se uma camada associada com um respectivo valor ID de camada está incluído no primeiro conjunto de camadas.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que um primeiro valor para o indicador de ID incluído de camada de um-bit indica que a primeira camada está incluída no primeiro conjunto de camadas e um segundo valor para o indicador de ID incluído de camada de um-bit indica que a primeira camada não está incluída no primeiro conjunto de camadas.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o primeiro conjunto de camadas compreende um ponto de operação.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o método é realizado por um elemento de rede ciente a mídia (MANE), e em que o método também compreende: em resposta à primeira camada ser incluída no primeiro conjunto de camadas, identificar, a partir da pluralidade de unidades NAL, uma ou mais unidades NAL com o valor ID de camada menor que o valor ID de camada máximo; extrair, dos dados de vídeo de múltiplas camadas, a uma ou mais unidades NAL com o valor ID de camada menor que o valor ID de camada máximo.
6. Dispositivo para processar dados de vídeo de múltiplas camadas, caracterizado por compreender: uma memória configurada para armazenar os dados de vídeo de múltiplas camadas; e um ou mais processadores configurados para: receber, em um conjunto de parâmetros de vídeo, um elemento de sintaxe especificando um valor de identificação (ID) de camada máximo para quaisquer unidades NAL associadas com um primeiro conjunto de camadas, em que os dados de vídeo de múltiplas camadas compreendem dois ou mais conjuntos de camadas, em que cada um dos dois ou mais conjuntos de camadas é associado com pelo menos um fluxo de dados independentemente decodificável dos dados de vídeo de múltiplas camadas e compreende duas ou mais camadas; para o primeiro conjunto de camadas do pelo menos um conjunto de camadas, receber, no conjunto de parâmetros de vídeo, um indicador de ID incluído de camada de um-bit para uma primeira camada com um valor ID de camada menor que o valor ID de camada máximo; e com base em um valor do indicador de ID incluído de camada de um-bit, determinar que a primeira camada é incluída no primeiro conjunto de camadas; receber uma pluralidade de unidades NAL, cada unidade NAL respectiva da pluralidade de unidades NAL possuindo um cabeçalho de unidade NAL que compreende um elemento de sintaxe de ID de camada que especifica uma camada à qual a respectiva unidade NAL pertence; e determinar que uma unidade NAL da pluralidade de unidades NAL está incluída na primeira camada, com base em um elemento de sintaxe de ID de camada da unidade NAL correspondente à primeira camada.
7. Dispositivo, de acordo com a reivindicação 6, caracterizado pelo fato de que o um ou mais processadores são também configurados para receber, no conjunto de parâmetros de vídeo, um indicador de ID incluído de camada de um-bit adicional para cada valor ID de camada, diferente do valor ID de camada associado com a primeira camada, entre um valor ID de camada e o valor ID de camada máximo, em que um valor para cada indicador de ID incluído de camada de um-bit adicional indica se uma camada associada com um respectivo valor ID de camada está incluído no primeiro conjunto de camadas.
8. Dispositivo, de acordo com a reivindicação 6, caracterizado pelo fato de que um primeiro valor para o indicador de ID incluído de camada de um-bit indica que a primeira camada está incluída no primeiro conjunto de camadas e um segundo valor para o indicador de ID incluído de camada de um-bit indica que a primeira camada não está incluída no primeiro conjunto de camadas.
9. Dispositivo, de acordo com a reivindicação 6, caracterizado pelo fato de que o primeiro conjunto de camadas compreende um ponto de operação.
10. Dispositivo, de acordo com a reivindicação 6, caracterizado pelo fato de que o dispositivo compreende um elemento de rede ciente a mídia (MANE), e em que os um ou mais processadores são configurados para: em resposta à primeira camada sendo incluída no primeiro conjunto de camadas, identificar, a partir da pluralidade de unidades NAL, uma ou mais unidades NAL com o valor ID de camada menor que o valor ID de camada máximo; extrair, dos dados de vídeo de múltiplas camadas, a uma ou mais unidades NAL com o valor ID de camada menor que o valor ID de camada máximo.
11. Dispositivo de codificação de vídeo, caracterizado por compreender: uma memória configurada para armazenar os dados de vídeo de múltiplas camadas; e um ou mais processadores configurados para: determinar, para os dados de vídeo de múltiplas camadas, um conjunto de camadas, em que o conjunto de camadas corresponde a pelo menos um fluxo de bits independentemente decodificável dos dados de vídeo de múltiplas camadas e compreende duas ou mais camadas; gerar, para inclusão em um conjunto de parâmetros de vídeo, um elemento de sintaxe especificando um valor de identificação (ID) de camada máximo para quaisquer unidades NAL associadas com um primeiro conjunto de camadas, em que os dados de vídeo de múltiplas camadas compreendem dois ou mais conjuntos de camadas, em que cada um dos dois ou mais conjuntos de camadas é associado com pelo menos um fluxo de bits independentemente decodificável dos dados de vídeo e compreende duas ou mais camadas; gerar, para inclusão no conjunto de parâmetros de vídeo, um indicador de ID incluído de camada de um-bit para uma primeira camada com um valor ID de camada menor que o valor ID de camada máximo, em que um valor para indicador de ID incluído de camada de um-bit sinaliza se a primeira camada estiver incluída no conjunto de camadas; e emitir um fluxo de bits codificado que compreende os dados de vídeo de múltiplas camadas.
12. Dispositivo de codificação de vídeo, de acordo com a reivindicação 11, caracterizado pelo fato de que o codificador de vídeo é também configurado para gerar, para inclusão no conjunto de parâmetros de vídeo, um indicador de ID incluído de camada de um-bit adicional para cada valor ID de camada entre um valor ID de camada e o valor ID de camada máximo, em que um valor para cada indicador de ID incluído de camada de um-bit adicional indica se uma camada associada com um respectivo valor ID de camada está incluída no conjunto de camadas.
13. Dispositivo de codificação de vídeo, de acordo com a reivindicação 11, caracterizado pelo fato de que um primeiro valor para o indicador de ID incluído de camada de um-bit indica que a primeira camada está incluída no conjunto de camadas e um segundo valor para o indicador de ID incluído de camada de um-bit indica que a primeira camada não está incluída no conjunto de camadas.
14. Dispositivo de codificação de vídeo, de acordo com a reivindicação 11, caracterizado pelo fato de que o primeiro conjunto de camadas compreende um ponto de operação.
15. Memória legível por computador caracterizada pelo fato de que possui instruções nela armazenadas que, quando executadas, fazem com que o computador realize o método tal como definido em qualquer uma das reivindicações 1-5.
BR112015007273-9A 2012-10-02 2013-10-01 Método e dispositivo para processar dados de vídeo de múltiplas camadas, dispositivo de codificação de vídeo e memória legível por computador BR112015007273B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261709094P 2012-10-02 2012-10-02
US61/709,094 2012-10-02
US14/042,416 2013-09-30
US14/042,416 US9781413B2 (en) 2012-10-02 2013-09-30 Signaling of layer identifiers for operation points
PCT/US2013/062890 WO2014055536A1 (en) 2012-10-02 2013-10-01 Improved signaling of layer identifiers for operation points of a video coder

Publications (2)

Publication Number Publication Date
BR112015007273A2 BR112015007273A2 (pt) 2017-07-04
BR112015007273B1 true BR112015007273B1 (pt) 2023-03-14

Family

ID=50385190

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112015007273-9A BR112015007273B1 (pt) 2012-10-02 2013-10-01 Método e dispositivo para processar dados de vídeo de múltiplas camadas, dispositivo de codificação de vídeo e memória legível por computador

Country Status (20)

Country Link
US (1) US9781413B2 (pt)
EP (1) EP2904789B1 (pt)
JP (1) JP6345675B2 (pt)
KR (1) KR101865453B1 (pt)
CN (1) CN104685890B (pt)
AR (1) AR094826A1 (pt)
AU (1) AU2013327493B2 (pt)
BR (1) BR112015007273B1 (pt)
CA (1) CA2884881C (pt)
DK (1) DK2904789T3 (pt)
ES (1) ES2856099T3 (pt)
HK (1) HK1209552A1 (pt)
HU (1) HUE052661T2 (pt)
IL (1) IL238026A (pt)
MY (1) MY171655A (pt)
PH (1) PH12015500613B1 (pt)
RU (1) RU2656827C2 (pt)
SG (2) SG11201501641XA (pt)
TW (2) TWI566582B (pt)
WO (1) WO2014055536A1 (pt)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9992490B2 (en) 2012-09-26 2018-06-05 Sony Corporation Video parameter set (VPS) syntax re-ordering for easy access of extension parameters
US9781413B2 (en) * 2012-10-02 2017-10-03 Qualcomm Incorporated Signaling of layer identifiers for operation points
US10419778B2 (en) * 2013-01-04 2019-09-17 Sony Corporation JCTVC-L0227: VPS_extension with updates of profile-tier-level syntax structure
US10219006B2 (en) 2013-01-04 2019-02-26 Sony Corporation JCTVC-L0226: VPS and VPS_extension updates
US10284858B2 (en) * 2013-10-15 2019-05-07 Qualcomm Incorporated Support of multi-mode extraction for multi-layer video codecs
CN105101072A (zh) 2015-05-19 2015-11-25 小米科技有限责任公司 定位的方法和装置
US10516891B2 (en) * 2015-11-20 2019-12-24 Intel Corporation Method and system of reference frame caching for video coding
US11172232B2 (en) * 2019-09-06 2021-11-09 Sharp Kabushiki Kaisha Systems and methods for signaling level information in video coding

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993201B1 (en) * 1997-07-08 2006-01-31 At&T Corp. Generalized scalability for video coder based on video objects
TWI260591B (en) * 2002-10-14 2006-08-21 Samsung Electronics Co Ltd Information storage medium with structure for multi-angle data, and recording and reproducing apparatus therefor
MX2007012564A (es) * 2005-04-13 2007-11-15 Nokia Corp Codificacion, almacenamiento y senalizacion de informacion de escalabilidad.
US20070230564A1 (en) * 2006-03-29 2007-10-04 Qualcomm Incorporated Video processing with scalability
CN101491079A (zh) * 2006-07-11 2009-07-22 汤姆逊许可证公司 用在多视角视频编码中的方法和装置
BRPI0719536A2 (pt) * 2006-10-16 2014-01-14 Thomson Licensing Método para utilização de uma unidade de camada genérica na rede de trabalho sinalizando uma reposição instantânea de decodificação durante uma operação em vídeo.
US8488677B2 (en) * 2007-04-25 2013-07-16 Lg Electronics Inc. Method and an apparatus for decoding/encoding a video signal
US20100250763A1 (en) 2009-03-31 2010-09-30 Nokia Corporation Method and Apparatus for Transmitting Information on Operation Points
US8411746B2 (en) 2009-06-12 2013-04-02 Qualcomm Incorporated Multiview video coding over MPEG-2 systems
CN101924944B (zh) 2009-06-15 2013-06-05 华为技术有限公司 可伸缩视频编码操作点选择方法、信息提供方法及设备
US8948241B2 (en) 2009-08-07 2015-02-03 Qualcomm Incorporated Signaling characteristics of an MVC operation point
US9226045B2 (en) 2010-08-05 2015-12-29 Qualcomm Incorporated Signaling attributes for network-streamed video data
US20120183077A1 (en) * 2011-01-14 2012-07-19 Danny Hong NAL Unit Header
BR112015006178B1 (pt) * 2012-09-21 2022-11-16 Nokia Technologies Oy Métodos, aparelhos e meio não transitório legível por computador para codificação e decodificação de vídeo
US9781413B2 (en) * 2012-10-02 2017-10-03 Qualcomm Incorporated Signaling of layer identifiers for operation points

Also Published As

Publication number Publication date
WO2014055536A1 (en) 2014-04-10
SG11201501641XA (en) 2015-04-29
BR112015007273A2 (pt) 2017-07-04
PH12015500613A1 (en) 2015-05-11
CN104685890A (zh) 2015-06-03
RU2015116166A (ru) 2016-11-27
HUE052661T2 (hu) 2021-05-28
KR20150065839A (ko) 2015-06-15
JP2015531570A (ja) 2015-11-02
TW201429255A (zh) 2014-07-16
MY171655A (en) 2019-10-22
SG10201702549TA (en) 2017-04-27
TWI566582B (zh) 2017-01-11
US20140092996A1 (en) 2014-04-03
TWI610557B (zh) 2018-01-01
AU2013327493A1 (en) 2015-04-16
IL238026A (en) 2017-12-31
PH12015500613B1 (en) 2015-05-11
CA2884881C (en) 2020-01-28
EP2904789A1 (en) 2015-08-12
RU2656827C2 (ru) 2018-06-06
TW201707447A (zh) 2017-02-16
CA2884881A1 (en) 2014-04-10
DK2904789T3 (da) 2021-02-15
ES2856099T3 (es) 2021-09-27
AU2013327493B2 (en) 2017-10-12
EP2904789B1 (en) 2020-11-25
HK1209552A1 (en) 2016-04-01
CN104685890B (zh) 2019-03-12
AR094826A1 (es) 2015-09-02
KR101865453B1 (ko) 2018-06-07
JP6345675B2 (ja) 2018-06-20
US9781413B2 (en) 2017-10-03

Similar Documents

Publication Publication Date Title
KR102115050B1 (ko) 비디오 시퀀스들에서 랜덤 액세스 포인트 픽처들에 대한 디코딩된 픽처 버퍼 프로세싱
AU2013324245B2 (en) Error resilient decoding unit association
AU2013324090B2 (en) Signaling layer identifiers for operation points in video coding
BR112014033008B1 (pt) Conjunto de parâmetros de vídeo para hevc e extensões
BR112015006440B1 (pt) Indicação e ativação de conjuntos de parâmetros para codificação de vídeo
ES2856099T3 (es) Señalización mejorada de identificadores de capa para puntos de operación de un codificador de vídeo
BR112014026745B1 (pt) Métodos para decodificar e codificar dados de vídeo, dispositivo de decodificação de vídeo para decodificar dados de vídeo e memória legível por computador
BR112015000601B1 (pt) Codificação de informações de temporização para codificação de vídeo
ES2842082T3 (es) Indicación de alineación de tipos de imágenes entre capas en la codificación de vídeo multicapa
BR112015016361B1 (pt) Operações de armazenamento temporário de vídeo para acesso aleatório em codificação de vídeo
BR112015006059B1 (pt) Codificação de vídeo codm comportamentos [de imagem [de ponto [de acesso aleatório melhorados
BR112016006677B1 (pt) Tipo de dependência inter-vista em mv-hevc
BR112016021476B1 (pt) Método e dispositivo para codificar dados de vídeo e memória legível por computador
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
BR112014031749B1 (pt) Acesso randômico e sinalização de imagens de referência de longo termo em codificação de vídeo
BR112015000599B1 (pt) Codificação de unidades nal sei para codificação de vídeo

Legal Events

Date Code Title Description
B15K Others concerning applications: alteration of classification

Ipc: H04N 7/00 (2011.01)

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]
B15K Others concerning applications: alteration of classification

Free format text: A CLASSIFICACAO ANTERIOR ERA: H04N 7/00

Ipc: H04N 19/30 (2014.01), H04N 19/46 (2014.01), H04N 1

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 01/10/2013, OBSERVADAS AS CONDICOES LEGAIS