BR112016022079B1 - Método e aparelho para codificação e decodificação de dados de vídeo de acordo com um padrão de codificação de vídeo de alta eficiência (hevc), ou uma extensão de um padrão hevc, assim como memória legível por computador - Google Patents

Método e aparelho para codificação e decodificação de dados de vídeo de acordo com um padrão de codificação de vídeo de alta eficiência (hevc), ou uma extensão de um padrão hevc, assim como memória legível por computador Download PDF

Info

Publication number
BR112016022079B1
BR112016022079B1 BR112016022079-0A BR112016022079A BR112016022079B1 BR 112016022079 B1 BR112016022079 B1 BR 112016022079B1 BR 112016022079 A BR112016022079 A BR 112016022079A BR 112016022079 B1 BR112016022079 B1 BR 112016022079B1
Authority
BR
Brazil
Prior art keywords
layer
sei
sei message
video
scalable
Prior art date
Application number
BR112016022079-0A
Other languages
English (en)
Other versions
BR112016022079A8 (pt
BR112016022079A2 (pt
Inventor
Ye-Kui Wang
Adarsh Krishnan Ramasubramonian
Fnu HENDRY
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 BR112016022079A2 publication Critical patent/BR112016022079A2/pt
Publication of BR112016022079A8 publication Critical patent/BR112016022079A8/pt
Publication of BR112016022079B1 publication Critical patent/BR112016022079B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/37Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability with arrangements for assigning different transmission priorities to video input data or to video coded data
    • 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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

uso genérico de mensagens sei hevc para codecs de múltiplas camadas em um exemplo, um método de codificação de dados de vídeo inclui a codificação de uma ou mais unidades de camada de abstração de rede (nal) da camada de codificação de não vídeo (vcl) de uma camada de uma sequência de bits de múltiplas camadas de dados de vídeo, onde uma ou mais unidades nal não vcl contêm uma mensagem sei possuindo um tipo de carga útil sei. o método também inclui a determinação de um ou mais valores de sintaxe da sequência de bits de múltiplas camadas à qual a mensagem sei se aplica com base no tipo de carga útil sei.

Description

[0001] Esse pedido reivindica os benefícios do pedido de patente provisório U.S. No. 61/969.797, depositado em 24 de março de 2015, a totalidade do conteúdo do qual é incorporada aqui por referência.
Campo Técnico
[0002] Essa descrição refere-se à codificação e compressão de vídeo, e sinalização de dados associados com o vídeo comprimido em uma sequência de bits.
Fundamentos
[0003] Capacidades de vídeo digital podem ser incorporadas em uma ampla faixa de dispositivos, incluindo televisões digitais, sistemas de difusão direta digital, sistemas de difusão sem fio, assistentes digitais pessoais (PDAs), computadores laptop ou desktop, computadores tablet, leitoras de e-book, câmeras digitais, dispositivos de gravação digital, aparelhos de reprodução de mídia digital, dispositivos de jogos de vídeo, consoles de jogos de vídeo, telefones celulares ou de rádio via satélite, os chamados "smartphones", dispositivos de teleconferência de vídeo, dispositivos de sequenciamento de vídeo, e similares. Os dispositivos de vídeo digital implementam as técnicas de compressão de vídeo, tal como as descritas nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG- 4, Parte 10, Codificação de Vídeo Avançada (AVC), o padrão de Codificação de Vídeo de Alta Eficiência (HEVC), e extensões de tais padrões. Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar informação de vídeo digital de forma mais eficiente pela implementação de tais técnicas de compressão de vídeo.
[0004] As técnicas de compressão de vídeo realizam a previsão espacial (intraimagem) e/ou previsão temporal (interimagem) para reduzir ou remover a redundância inerente às sequências de vídeo. Para codificação de vídeo com base em bloco, uma fatia de vídeo (isso é, um quadro de vídeo ou uma parte de um quadro de vídeo) pode ser dividida em blocos de vídeo, que também podem ser referidos como blocos de árvore, 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 utilizando-se previsão espacial com relação às amostras de referência nos blocos vizinhos na mesma imagem. Os blocos de vídeo em uma fatia intercodificada (P ou B) de uma imagem podem utilizar previsão espacial com relação às amostras de referência nos blocos vizinhos na mesma imagem ou previsão temporal com relação às amostras de referência em outras imagens de referência. As imagens podem ser referidas como quadros, e as imagens de referência podem ser referidas quadros de referência.
[0005] A previsão espacial ou temporal resulta em um bloco de previsão para um bloco a ser codificado. Os dados residuais representam diferenças de pixel entre o bloco original a ser codificado e o bloco de previsão. Um bloco intercodificado é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência formando o bloco de previsão, e os dados residuais indicando a diferença entre o bloco codificado e o bloco de previsão. 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 a partir do domínio de pixel em um domínio de transformação, resultando em coeficientes de transformação residual, que então podem ser quantizados. Os coeficientes de transformação quantizados, inicialmente dispostos em um conjunto bidimensional, podem ser digitalizados a fim de produzir um vetor unidimensional de coeficientes de transformação, e a codificação por entropia pode ser aplicada para alcançar uma compressão ainda maior.
Sumário
[0006] Aspectos dessa descrição são direcionados às técnicas para aplicação de mensagens de camada de melhoria suplementar (SEI) que são definidas no padrão de Codificação de Vídeo de Alta Eficiência (HEVC) em um contexto de múltiplas camadas. Por exemplo, as técnicas dessa descrição podem incluir mudanças em e/ou restrições para uma variedade de conjuntos de sintaxe de mensagem SEI em HEVC a ser aplicada à codificação de vídeo de múltiplas camadas, por exemplo, utilizando-se extensões para o padrão HEVC tal como extensão de Codificação de Vídeo de Múltiplas Visualizações para HEVC (MV-HEVC) ou extensão de Codificação de Vídeo Escalonável (SVC) para HEVC (SHVC). Em alguns casos, as técnicas podem aperfeiçoar a eficiência computacional e/ou resiliência de erro de tais codecs de múltiplas camadas.
[0007] Em um exemplo, um método de codificação de dados de vídeo inclui a obtenção de uma ou mais unidades de camada de abstração de rede (NAL) da camada de codificação de vídeo (VCL) de uma unidade de acesso e uma primeira camada de uma sequência de bits de múltiplas camadas de dados de vídeo, e apenas a codificação de uma ou mais unidades NAL não VCL contendo uma mensagem SEI aplicável às unidades NAL VCL da primeira camada juntamente com as unidades NAL VCL da primeira camada de modo que dentro da unidade de acesso a sequência de bits não contenha quaisquer imagens codificadas de qualquer outra camada da sequência de bits de múltiplas camadas entre as unidades NAL VCL da primeira camada e as unidades NAL não VCL contendo a mensagem SEI aplicável às unidades NAL VCL da primeira camada.
[0008] Em outro exemplo, um dispositivo para codificação de dados de vídeo inclui uma memória configurada para armazenar pelo menos uma parte de uma sequência de bits de múltiplas camadas de dados de vídeo, e um ou mais processadores configurados para obter uma ou mais unidades de camada de abstração de rede (NAL) da camada de codificação de vídeo (VCL) de uma unidade de acesso e uma primeira camada de sequência de bits de múltiplas camadas de dados de vídeo, e apenas codificar uma ou mais unidades NAL não VCL contendo uma mensagem SEI aplicável às unidades NAL VCL da primeira camada juntamente com as unidades NAL VCL da primeira camada de modo que dentro da unidade de acesso a sequência de bits não contenha quaisquer imagens codificadas de qualquer outra camada de sequência de bits de múltiplas camadas entre as unidades NAL VCL da primeira camada e as unidades NAL não VCL contendo a mensagem SEI aplicável às unidades NAL VCL da primeira camada.
[0009] Em outro exemplo, um aparelho para codificação de dados de vídeo inclui meios para obtenção de uma ou mais unidades de camada de abstração de rede (NAL) da camada de codificação de vídeo (VCL) de uma unidade de acesso e uma primeira camada de uma sequência de bits de múltiplas camadas de dados de vídeo, e meios para codificar apenas uma ou mais unidades NAL não VCL contendo uma mensagem SEI aplicável às unidades NAL VCL da primeira camada juntamente com as unidades NAL VCL da primeira camada de modo que dentro da unidade de acesso a sequência de bits não contenha quaisquer imagens codificadas de qualquer outra camada da sequência de bits de múltiplas camadas entre as unidades NAL VCL da primeira camada e as unidades NAL não VCL contendo a mensagem SEI aplicável às unidades NAL VCL da primeira camada.
[0010] Em outro exemplo, um meio legível por computador não transitório possui instruções armazenadas no mesmo que, quando executadas, fazem com que um ou mais processadores obtenham uma ou mais unidades de camada de abstração de rede (NAL) da camada de codificação de vídeo (VCL) de uma unidade de acesso e uma primeira camada de uma sequência de bits de múltiplas camadas de dados de vídeo, e apenas uma ou mais unidades NAL não VCL contendo uma mensagem SEI aplicável às unidades NAL VCL da primeira camada juntamente com as unidades NAL VCL da primeira camada de modo que dentro da unidade de acesso a sequência de bits que não contém qualquer imagem codificada de qualquer outra camada da sequência de bits de múltiplas camadas entre as unidades NAL VCL da primeira camada e as unidades NAL não VCL contendo a mensagem SEI aplicável às unidades NAL VCL da primeira camada.
[0011] Em outro exemplo, um método de codificação de dados de vídeo inclui a codificação de uma ou mais unidades de camada de abstração de rede (NAL) da camada de codificação de não vídeo (VCL) de uma camada de uma sequência de bits de múltiplas camadas, onde uma ou mais unidades NAL não VCL contêm uma mensagem SEI hash de imagem decodificada, e determinando um conjunto de camadas da sequência de bits de múltiplas camadas à qual a mensagem SEI hash de imagem decodificada é aplicável com base em um identificador de camada de uma ou mais unidades NAL não VCL contendo a mensagem SEI hash de imagem decodificada.
[0012] Em outro exemplo, um dispositivo para codificação de dados de vídeo inclui uma memória configurada para armazenar pelo menos uma parte de uma sequência de bits de múltiplas camadas, e um ou mais processadores configurados para codificar uma ou mais unidades de camada de abstração de rede (NAL) da camada de codificação de não vídeo (VCL) de uma camada de uma sequência de bits de múltiplas camadas, onde uma ou mais unidades NAL não VCL contêm uma mensagem SEI hash de imagem decodificada, e determinam um conjunto de camadas da sequência de bits de múltiplas camadas à qual a mensagem SEI hash de imagem decodificada é aplicável com base em um identificador de camada das uma ou mais unidades NAL não VCL contendo a mensagem SEI hash de imagem decodificada.
[0013] Em outro exemplo, um aparelho para codificação de dados de vídeo inclui meios para codificar uma ou mais unidades de camada de abstração de rede (NAL) da camada de codificação de não vídeo (VCL) de uma camada de uma sequência de bits de múltiplas camadas, onde uma ou mais unidades NAL não VCL contêm uma mensagem SEI hash de imagem decodificada, e meios para determinar um conjunto de camadas da sequência de bits de múltiplas camadas à qual a mensagem SEI hash de imagem decodificada é aplicável com base em um identificador de camada de uma ou mais unidades NAL não VCL contendo a mensagem SEI hash de imagem decodificada.
[0014] Em outro exemplo, um meio legível por computador não transitório possui instruções armazenadas no mesmo que, quando executadas, fazem com que um ou mais processadores codifiquem uma ou mais unidades de camada de abstração de rede (NAL) da camada de codificação de não vídeo (VCL) de uma camada de uma sequência de bits de múltiplas camadas, onde uma ou mais unidades NAL não VCL contêm uma mensagem SEI hash de imagem decodificada, e determinam um conjunto de camadas de sequência de bits de múltiplas camadas à qual a mensagem SEI hash de imagem decodificada é aplicável com base em um identificador de camada de uma ou mais unidades NAL não VCL contendo a mensagem SEI hash de imagem decodificada.
[0015] Em outro exemplo, um método de codificação de dados de vídeo inclui a codificação de uma ou mais unidades de camada de abstração de rede (NAL) da camada de codificação de não vídeo (VCL) de uma camada de uma sequência de bits de múltiplas camadas dos dados de vídeo, onde uma ou mais unidades NAL não VCL contêm uma mensagem SEI possuindo um tipo de carga útil SEI, e determinando um ou mais valores de sintaxe da sequência de bits de múltiplas camadas à qual a mensagem SEI é aplicada com base no tipo de carga útil SEI.
[0016] Em outro exemplo, um dispositivo para codificação de dados de vídeo inclui uma memória configurada para armazenar uma camada de uma sequência de bits de múltiplas camadas, e um ou mais processadores configurados para codificar uma ou mais unidades de camada de abstração de rede (NAL) da camada de codificação de não vídeo (VCL) de uma camada de uma sequência de bits de múltiplas camadas de dados de vídeo, onde uma ou mais unidades NAL não VCL contêm uma mensagem SEI possuindo um tipo de carga útil SEI, e determinam um ou mais valores de sintaxe da sequência de bits de múltiplas camadas à qual a mensagem SEI é aplicada com base no tipo de carga útil SEI.
[0017] Em outro exemplo, um aparelho para codificação de dados de vídeo inclui meios para codificação de uma ou mais unidades de camada de abstração de rede (NAL) da camada de codificação de não vídeo (VCL) de uma camada de uma sequência de bits de múltiplas camadas de dados de vídeo, onde uma ou mais unidades NAL não VCL contêm uma mensagem SEI possuindo um tipo de carga útil SEI e meios para determinar um ou mais valores de sintaxe da sequência de bits de múltiplas camadas à qual a mensagem SEI é aplicada com base no tipo de carga útil SEI.
[0018] Em outro exemplo, um meio legível por computador não transitório possui instruções armazenadas no mesmo que, quando executadas, fazem com que um ou mais processadores codifiquem uma ou mais unidades de camada de abstração de rede (NAL) da camada de codificação de não vídeo (VCL) de uma camada de uma sequência de bits de múltiplas camadas de dados de vídeo onde as uma ou mais unidades NAL não VCL contêm uma mensagem SEI possuindo um tipo de carga útil SEI, e determinem um ou mais valores de sintaxe da sequência de bits de múltiplas camadas à qual a mensagem SEI é aplicada com base no tipo de carga útil SEI.
[0019] Os detalhes de um ou mais exemplos da descrição são apresentados nos desenhos em anexo e na descrição abaixo. Outras características, objetivos e vantagens serão aparentes a partir da descrição, desenhos e reivindicações.
Breve Descrição dos Desenhos
[0020] A figura 1 é um diagrama em bloco ilustrando um sistema de codificação e decodificação de vídeo ilustrativo que pode utilizar as técnicas descritas nessa descrição;
[0021] A figura 2 é um diagrama em bloco ilustrando um codificador de vídeo ilustrativo que pode implementar as técnicas descritas nessa descrição;
[0022] A figura 3 é um diagrama em bloco ilustrando um decodificador de vídeo ilustrativo que pode implementar as técnicas descritas nessa descrição;
[0023] A figura 4 é um diagrama em bloco ilustrando um exemplo de uma unidade de encapsulamento na qual um ou mais aspectos dessa descrição podem ser implementados;
[0024] A figura 5 é um diagrama em bloco ilustrando uma rede ilustrativa na qual um ou mais aspectos dessa descrição podem ser implementados;
[0025] A figura 6 é um fluxograma ilustrando uma operação ilustrativa de um dispositivo de processamento de vídeo configurado para codificar uma mensagem SEI de acordo com vários aspectos das técnicas descritas nessa descrição;
[0026] A figura 7 é um fluxograma ilustrando outra operação ilustrativa de um dispositivo de processamento de vídeo configurado para codificar uma mensagem SEI de acordo com vários aspectos das técnicas descritas nessa descrição;
[0027] A figura 8 é um fluxograma ilustrando outa operação ilustrativa de um dispositivo de processamento de vídeo configurado para codificar uma mensagem SEI de acordo com vários aspectos das técnicas descritas nessa descrição.
Descrição Detalhada
[0028] Essa descrição inclui técnicas para aplicação de mensagens de camada de melhoria suplementar (SEI) que são definidas no padrão de Codificação de Vídeo de Alta Eficiência (HEVC) em um contexto de múltiplas camadas. Em alguns casos, as técnicas podem ser realizadas com extensões de múltiplas camadas para o padrão HEVC tal como uma extensão de Codificação de Vídeo de Múltiplas Visualizações para HEVC (MV-HEVC) ou uma extensão de Codificação de Vídeo Escalonável (SVC) para HEVC (SHVC), como notado abaixo. As técnicas dessa descrição, no entanto, não estão limitadas a qualquer padrão de codificação de vídeo em particular, e também podem ou alternativamente podem ser utilizadas com outras extensões para HEVC, outros padrões de codificação de múltiplas visualizações e/ou outros padrões de vídeo de múltiplas camadas. Adicionalmente, as técnicas dessa descrição, como descrito abaixo, podem ser aplicadas independentemente ou em combinação.
[0029] Uma "camada" de dados de vídeo pode se referir, geralmente, a uma sequência de imagens possuindo pelo menos uma característica em comum, tal como uma vista, uma taxa de quadro, uma resolução, ou similar. Por exemplo, uma camada pode incluir dados de vídeo associados com uma vista em particular (por exemplo, perspectiva) de dados de vídeo de múltiplas visualizações. Como outro exemplo, uma camada pode incluir dados de vídeo associados com uma camada em particular de dados de vídeo escalonáveis. Dessa forma, essa descrição pode se referir de forma intercambiável a uma camada e uma vista de dados de vídeo. Isso é, uma vista de dados de vídeo pode ser referida como uma camada de dados de vídeo, e vice-versa, e uma pluralidade de vistas ou uma pluralidade de camadas escalonáveis pode ser referida, de uma forma similar, como múltiplas camadas, por exemplo, em um sistema de codificação de múltiplas camadas. Adicionalmente, um codec de múltiplas camadas (também referido como um codificador de vídeo de múltiplas camadas ou um codificador-decodificador de múltiplas camadas) pode se referir a um codec de múltiplas visualizações ou um codec escalonável (por exemplo, um codec configurado para codificar e/ou decodificar dados de vídeo utilizando MV- HEVC, SHVC, ou outra técnica de codificação de múltiplas camadas).
[0030] Uma sequência de bits de múltiplas camadas pode incluir uma camada de base e uma ou mais camadas de não base, por exemplo, em SHVC, ou uma pluralidade de vistas, por exemplo, em MV-HEVC. Em uma sequência de bits escalonável, a camada de base pode ter tipicamente um identificador de camada que é igual a zero. Uma camada de não base pode ter um identificador de camada que é superior a zero, e pode fornecer dados de vídeo adicionais que não são incluídos na camada de base. Por exemplo, uma camada de não base de dados de vídeo de múltiplas visualizações pode incluir uma vista adicional de dados de vídeo. Uma camada de não base de dados de vídeo escalonáveis pode incluir uma camada adicional de dados de vídeo escalonáveis. Uma camada de não base pode ser referida de forma intercambiável a uma camada de melhoria.
[0031] Um unidade de acesso (algumas vezes abreviada como AU) de uma sequência de bits de múltiplas camadas é, geralmente, uma unidade de dados incluindo todos os componentes de camada (por exemplo, todas as unidades de camada de abstração de rede (NAL)) para um caso temporal comum. Os componentes de camada de uma unidade de acesso são tipicamente destinados ao envio em conjunto (isso é, envio substancialmente simultâneo), onde o envio de uma imagem geralmente envolve a transferência das imagens de um armazenador de imagem decodificada (DPB) (por exemplo, armazenando imagens do DPB para uma memória externa, enviando as imagens do DPB para um monitor, ou similar).
[0032] Uma sequência de bits contendo uma representação codificada de dados de vídeo pode incluir uma série de unidades de camada de abstração de rede (NAL). Uma unidade NAL pode ser uma estrutura de sintaxe contendo uma indicação do tipo de dados na unidade NAL e bytes contendo esses dados na forma de uma carga útil de sequência de byte bruta (RBSP) intercalada como necessário com bits de prevenção de emulação. As unidades NAL podem incluir unidades NAL de camada de codificação de vídeo (VCL) e unidades NAL não VCL. As unidades NAL VCL podem incluir fatias codificadas das imagens. Uma unidade NAL não VCL pode encapsular um conjunto de parâmetros de vídeo (VPS) um conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros de imagem (PPS), uma ou mais mensagens de informação de melhoria suplementar (SEI) ou outros tipos de dados.
[0033] As unidades NAL da sequência de bits podem ser associadas com diferentes camadas de sequência de bits. Em SHVC, como notado acima, as câmaras além de uma camada de base podem ser referidas como "camadas de melhoria" e podem incluir dados que aperfeiçoam a qualidade de reprodução dos dados de vídeo. Na codificação de múltiplas visualizações e codificação de vídeo tridimensional (3DV), tal como MV-HEVC, as camadas podem incluir dados associados com diferentes vistas. Cada camada da sequência de bits é associada com um identificador de camada diferente.
[0034] Adicionalmente, unidades NAL podem incluir identificadores temporais. Cada ponto de operação de uma sequência de bits possui um conjunto de identificadores de camada e um identificador temporal. Se uma unidade NAL especificar um identificador de camada no conjunto de identificadores de camada para um ponto operacional e o identificador temporal da unidade NAL for inferior a ou igual ao identificador temporal do ponto operacional, a unidade NAL é associada com o ponto operacional.
[0035] O mecanismo SEI suportado em ambos H.264/AVC e HEVC permite que os codificadores de vídeo incluam tais metadados na sequência de bits que não são necessários para a decodificação correta, por um decodificador de vídeo ou outro dispositivo, de valores de amostra das imagens enviadas, mas podem ser utilizados para várias outras finalidades, tal como temporização de envio de imagem, exibição, além de detecção e ocultação de perda. Uma unidade NAL que encapsula uma ou mais mensagens SEI é referida aqui como uma unidade NAL SEI. Um tipo de mensagem SEI é uma mensagem SEI embutida escalonável. Uma mensagem SEI embutida escalonável é uma mensagem SEI que contém uma ou mais mensagens SEI adicionais. A mensagem SEI embutida escalonável pode ser utilizada para indicar ser uma mensagem SEI ase aplica às camadas particulares ou subcamadas temporais de uma sequência de bits de múltiplas camadas. Uma mensagem SEI que não está contida em uma mensagem SEI embutida escalonável é referida aqui como uma mensagem SEI não embutida.
[0036] Determinados tipos de mensagens SEI contêm informação que só é aplicável a pontos de operação em particular. Um ponto de operação de uma sequência de bits é associado com um conjunto de identificadores de camada e um identificador temporal. Uma representação de ponto de operação pode incluir cada unidade NAL que é associada com um ponto de operação. Uma representação de ponto de operação pode ter uma taxa de quadro e/ou taxa de bit diferente de uma sequência de bits original. Isso porque a representação do ponto de operação pode não incluir algumas imagens e/ou alguns dos dados da sequência de bits original.
[0037] Mensagens SEI de período de armazenamento, mensagens SEI de temporização de imagem, e mensagens SEI de unidade de decodificação só podem ser aplicáveis a pontos de operação em particular. Dessa forma, a fim de utilizar a informação em tais mensagens SEI, um processador de vídeo pode determinar quais os pontos de operação que são aplicáveis às mensagens SEI. Outros tipos de mensagens SEI são aplicáveis apenas às camadas em particular. Dessa forma, a fim de utilizar a informação em tais mensagens SEI, o processador de vídeo pode determinar quais camadas são aplicáveis às mensagens SEI.
[0038] O uso genérico de mensagens SEI HEVC no contexto da codificação de múltiplas camadas pode apresentar vários desafios. Por exemplo, como descrito em maiores detalhes abaixo, a aplicação das mensagens SEI específicas em HEVC para múltiplas camadas pode aumentar a complexidade, criar inconsistências de sintaxe e/ou criar outros erros que fazem com que um codec de vídeo de múltiplas camadas apresente falha de funcionamento.
[0039] Em alguns exemplos, as técnicas dessa descrição podem fornecer soluções para se resolver uma variedade de problemas relacionados com o uso genérico de mensagens SEI HEVC. Por exemplo, as técnicas podem incluir a aplicação de restrições a determinados elementos de sintaxe, de modo que um codificador de vídeo ou decodificador de vídeo codifique automaticamente (ou determine automaticamente, sem codificação) os valores para determinados elementos de sintaxe com base nas características de uma sequência de bits de múltiplas camadas.
[0040] A figura 1 é um diagrama em bloco ilustrando um sistema de codificação e decodificação de vídeo ilustrativo 10 que pode utilizar as técnicas descritas nessa descrição. Como ilustrado na figura 1, o sistema 10 inclui um dispositivo fonte 12 que gera dados de vídeo codificados a serem decodificados posteriormente por um dispositivo de destino 14. O dispositivo fonte 12 e o dispositivo de destino 14 podem compreender qualquer um dentre uma ampla faixa de dispositivos, incluindo computadores desktop, computadores notebook (isso é, laptop), computadores tablet, caixas de decodificação, aparelhos telefônicos tal como os chamados "smartphones", os chamados "smartpads", televisões, câmeras, dispositivos de exibição, aparelhos de mídia digital, consoles de jogos de vídeo, dispositivo de sequenciamento de vídeo, ou similar. Em alguns casos, o dispositivo fonte 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio.
[0041] O dispositivo de destino 14 pode receber os dados de vídeo codificados a serem decodificados através de um link 16. O link 16 pode compreender qualquer tipo de meio ou dispositivo capaz de mover os dados de vídeo codificados do dispositivo fonte 12 para o dispositivo de destino 14. Em um exemplo, o link 16 pode compreender um meio de comunicação para permitir que o dispositivo fonte 12 transmita os dados de vídeo codificados diretamente para o dispositivo de destino 14 em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio, e transmitidos para o dispositivo de destino 14. O meio de comunicação pode compreender qualquer meio de comunicação com ou sem fio, tal como um espectro de frequência de rádio (RF) ou uma ou mais linhas de transmissão físicas. O meio de comunicação pode formar parte de uma rede com base em pacote, tal como uma rede de área local, uma rede de área ampla, ou uma rede global tal como a Internet. O meio de comunicação pode incluir roteadores, comutadores, estações base, ou qualquer outro equipamento que pode ser útil para facilitar a comunicação do dispositivo fonte 12 para o dispositivo de destino 14.
[0042] Alternativamente, os dados codificados podem ser enviados a partir da interface de saída 22 para um dispositivo de armazenamento 32. De forma similar, os dados codificados podem ser acessados a partir do dispositivo de armazenamento 32 pela interface de entrada. O dispositivo de armazenamento 32 pode incluir qualquer um dentre uma variedade de meios de armazenamento de dados distribuídos ou acessados localmente tal como um disco rígido, discos Blu- Ray, DVDs, CD-ROMs, memória flash, memória volátil ou não volátil, ou qualquer outro meio de armazenamento digital adequado para armazenamento de dados de vídeo codificados. Em um exemplo adicional, o dispositivo de armazenamento 32 pode corresponder a um servidor de arquivo ou outro dispositivo de armazenamento intermediário que possa manter o vídeo codificado gerado pelo dispositivo fonte 12. O dispositivo de destino 14 pode acessar os dados de vídeo armazenados a partir do dispositivo de armazenamento 32 através de sequenciamento ou download. O servidor de arquivo pode ser qualquer tipo de servidor capaz de armazenar os dados de vídeo codificados e transmitindo esses dados de vídeo codificados para o dispositivo de destino 14. Servidores de arquivo ilustrativos incluem um servidor de rede (por exemplo, para um sítio da rede), um servidor FTP, dispositivos de armazenamento anexados à rede (NAS), ou um acionador de disco local. O dispositivo de destino 14 pode acessar os dados de vídeo codificados através de qualquer conexão de dados padrão, incluindo uma conexão com a Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão com fio (por exemplo, DSL, modem a cabo, etc.), ou uma combinação de ambos que seja adequada para acessar os dados de vídeo codificados armazenados em um servidor de arquivo. A transmissão de dados de vídeo codificados a partir do dispositivo de armazenamento 32 pode ser uma transmissão de sequenciamento, uma transmissão de download, ou uma combinação de ambas.
[0043] As técnicas dessa descrição não são necessariamente limitadas aos aplicativos sem fio ou configurações. As técnicas podem ser aplicadas à codificação de vídeo em suporte de qualquer um dentre uma variedade de aplicativos de multimídia, tal como difusões de televisão através do ar, transmissões de televisão a cabo, transmissões de televisão via satélite, transmissões de vídeo sequenciado, por exemplo, através 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 outros aplicativos. Em alguns exemplos, o sistema 10 pode ser configurado para suportar transmissão de vídeo de via única ou duas vias para suportar aplicativos tal como sequenciamento de vídeo, reprodução de vídeo, difusão de vídeo e/ou vídeo telefonia.
[0044] No exemplo da figura 1, o dispositivo fonte 12 inclui uma fonte de vídeo 18, um codificador de vídeo 20, uma unidade de encapsulamento 21, e uma interface de saída 22. Em alguns casos, a interface de saída 22 pode incluir um modulador/demodulador (modem) e/ou um transmissor. No dispositivo fonte 12, a fonte de vídeo 18 pode incluir uma fonte tal como um dispositivo de captura de vídeo, por exemplo, uma câmera de vídeo, um arquivo de vídeo contendo vídeo previamente capturado, uma interface de alimentação de vídeo para receber vídeo de um provedor de conteúdo de vídeo e/ou um sistema gráfico de computador para gerar dados gráficos de computador como o vídeo fonte, ou uma combinação de tais fontes. Como um exemplo, se a fonte de vídeo 18 for uma câmera de vídeo, o dispositivo fonte 12 e o dispositivo de destino 14 podem formar os chamados telefones de câmera ou vídeo telefones. No entanto, as técnicas descritas nessa descrição podem ser aplicáveis à codificação de vídeo em geral, e podem ser aplicados a aplicativos sem fio e/ou com fio.
[0045] O vídeo capturado, pré-capturado ou gerado por computador pode ser codificado pelo codificador de vídeo 20. A unidade de encapsulamento 21 pode formar uma ou mais representações do conteúdo de multimídia, onde cada uma das representações pode incluir uma ou mais camadas. Em alguns exemplos, o codificador de vídeo 20 pode codificar cada camada de formas diferentes, por exemplo, com diferentes taxas de quadro, diferentes taxas de bit, diferentes resoluções, ou outras diferenças. Dessa forma, a unidade de encapsulamento 21 pode formar várias representações possuindo várias características, por exemplo, taxa de bit, taxa de quadro, resolução e similar.
[0046] Cada uma das representações pode corresponder às sequências de bits respectivas que podem ser recuperadas pelo dispositivo de destino 14. A unidade de encapsulamento 21 pode fornecer uma indicação de uma faixa de identificadores de visualização (view_ids) para visualizações incluídas em cada representação, por exemplo, dentro de uma estrutura de dados de descrição de apresentação de mídia (MPD) para conteúdo de multimídia. Por exemplo, a unidade de encapsulamento 21 pode fornecer uma indicação de um identificador de visualização máxima e um identificador de visualização mínima para as visualizações de uma representação. A MPD pode fornecer adicionalmente indicações dos números máximos de visualizações alvo para envio para cada uma dentre uma pluralidade de representações do conteúdo de multimídia. A MPD ou dados da mesma podem, em alguns exemplos, ser armazenados em um manifesto para as representações.
[0047] Os dados de vídeo codificados podem ser transmitidos diretamente para o dispositivo de destino 14 através da interface de saída 22 do dispositivo fonte 12. Os dados de vídeo codificados também podem (ou podem, alternativamente) ser armazenados no dispositivo de armazenamento 32 para acesso posterior pelo dispositivo de destino 14 ou outros dispositivos, par decodificação e/ou reprodução.
[0048] O dispositivo de destino 14 inclui uma interface de entrada 28, unidade de desencapsulamento 29, um decodificador de vídeo 30, e um dispositivo de exibição 31. Em alguns casos, a interface de entrada 28 pode incluir um receptor e/ou um modem. A interface de entrada 28 do dispositivo de destino 14 recebe os dados de vídeo codificados através do link 16. Os dados de vídeo codificados comunicados através do link 16, ou fornecidos no dispositivo de armazenamento 32, podem incluir uma variedade de elementos de sintaxe gerados pelo codificador de vídeo 20 para uso por um decodificador de vídeo, tal como o codificador de vídeo 30, na decodificação de dados de vídeo. Tais elementos de sintaxe podem ser incluídos nos dados de vídeo codificados transmitidos em um meio de comunicação, armazenados em um meio de armazenamento, ou armazenados em um servidor de arquivo.
[0049] A unidade de desencapsulamento 29 do dispositivo de destino 14 pode representar uma unidade que desencapsula mensagens SEI a partir de uma sequência de bits (ou um subconjunto de uma sequência de bits, referido como um ponto de operação no contexto de codificação de múltiplas camadas). A unidade de desencapsulamento 29 pode realizar as operações em uma ordem oposta às realizadas pela unidade de encapsulamento 21 para desencapsular dados da sequência de bits codificada encapsulada, tal como mensagens SEI.
[0050] O dispositivo de exibição 31 pode ser integrado com, ou pode estar fora do dispositivo de destino 14. Em alguns exemplos, o dispositivo de destino 14 pode incluir um dispositivo de exibição integrado e também pode ser configurado para interfacear com um dispositivo de exibição externo. Em outros exemplos, o dispositivo de destino 14 pode ser um dispositivo de exibição. Em geral, o dispositivo de destino 31 exibe dados de vídeo decodificados para um usuário, e pode compreender qualquer um dentre uma variedade de dispositivos de exibição tal como um monitor de cristal líquido (LCD), um monitor de plasma, um monitor de diodo de emissão de luz orgânica (OLED), ou outro tipo de dispositivo de exibição.
[0051] O codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um, ser implementados como muitos dentre uma variedade de conjunto de circuito de codificador adequado, tal como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados específicos de aplicativo (ASICs), conjuntos de porta programável em campo (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. Quando as técnicas são implementadas parcialmente em software, um dispositivo pode armazenar instruções para o software em um meio legível por computador não transitório adequado e executar as instruções em hardware utilizando um ou mais processadores para realizar as técnicas dessa descriçã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, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador combinado (CODEC) em um dispositivo respectivo.
[0052] Apesar de não ilustrado na figura 1, em alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um, ser integrados a um codificador e decodificador de áudio, e podem incluir unidades MUX-DEMUX adequadas, ou outro hardware e software, para manusear a codificação de ambos o áudio e o vídeo em uma sequência de dados comum ou sequências de dados separadas. Se aplicável, em alguns exemplos, as unidades MUX-DEMUX podem se conformar ao protocolo multiplexador ITU H.223, ou outros protocolos tal como o protocolo de datagrama de usuário (UDP).
[0053] Essa descrição pode se referir geralmente ao codificador de vídeo 20 "sinalizando" determinada informação para outro dispositivo, tal como o decodificador de vídeo 30. O termo "sinalizando" pode se referir geralmente à comunicação de elementos de sintaxe e/ou outros dados utilizados para decodificar os dados de vídeo comprimidos. Tal comunicação pode ocorrer em tempo real ou quase real. Alternativamente, tal comunicação pode ocorrer através de uma duração de tempo, tal como podendo ocorrer quando do armazenamento de elementos de sintaxe em um meio de armazenamento legível por computador em uma sequência de bits codificada no momento da codificação, que, então, podem ser recuperados por um dispositivo de decodificação a qualquer momento depois do armazenamento nesse meio.
[0054] Em alguns exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 operam de acordo com um padrão de compressão de vídeo, tal como ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC), incluindo sua extensão de Codificação de Vídeo Escalonável (SVC), a extensão de Codificação de Vídeo de Múltiplas Visualizações (MVC) e a extensão 3DV com base em MVC. Em outros exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com a Codificação de Vídeo de Alta Eficiência (HEVC) desenvolvida pela Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do Grupo de Especialistas em Codificação de Vídeo ITU-T (VCEG) e Grupo de Especialistas em Imagem em Movimento ISO/IEC (MPEG). Um rascunho do padrão HEVC é descrito em ITU-T H.265, Codificação de Vídeo de Alta Eficiência, abril de 2014 e Wang et al., "High Efficiency Video Coding (HEVC) defect. report 3," Equipe Colaborativa Conjunta em Codificação de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, documento JCTVC-P1003_v1, 16o. Encontro, San José, janeiro de 2014, que fornece um terceiro relatório de defeito para HEVC versão 1.
[0055] Adicionalmente, existem esforços em andamento para a produção de codificação de vídeo escalonável, codificação de múltiplas visualizações, e extensões 3DV para HEVC. A extensão de codificação de vídeo escalonável de HEVC pode ser referida como SHEVC. Um Rascunho de Trabalho recente (WD) de SHVC (referido como SHVC WD5 ou SHVC WD atual doravante), é descrito em Chen et al., "High Efficiency Video Coding (HEVC) scalable extension draft 5", Equipe Colaborativa Conjunto de Codificação de Vídeo (JCT- VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, documento JCTVC-P1008_v4, 16o. Encontro, San José, janeiro de 2014. O Rascunho de Trabalho recente (WD) de MV-HEVC (referido como MV-HEVC WD7 ou MV-HEVC WD atual doravante) é descrito em Tech et al., "MV-HEVC Draft Text 7", Equipe Colaborativa Conjunta de Codificação de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, documento JCTVC-G1004_v7, 16o. Encontro, San José, janeiro de 2014.
[0056] Em HEVC e outras especificações de codificação de vídeo, uma sequência de vídeo inclui tipicamente uma série de imagens. As imagens também podem ser referidas como "quadros". Uma imagem pode incluir três conjuntos de amostras, denotados SL, SCb e SCr. SL é um conjunto bidimensional (isso é, um bloco) de amostras de luminescência. SCb é um conjunto bidimensional de amostras de crominância. SCr é um conjunto bidimensional de amostras de crominância Cr. As amostras de crominância também podem ser referidas aqui como amostras "croma". Em outros casos, uma imagem pode ser monocromática e pode incluir apenas um conjunto de amostras de luminescência.
[0057] Para gerar uma representação codificada de uma imagem, o codificador de vídeo 20 pode gerar um conjunto de unidades de árvore de codificação (CTUs). Cada uma das CTUs pode compreender um bloco de árvore de codificação de amostras de luminescência, dois blocos de árvore de codificação correspondente de amostras de crominância, e estruturas de sintaxe utilizadas para codificar as amostras dos blocos de árvore de codificação. Em imagens monocromáticas ou imagens possuindo três planos de cores separados, uma CTU pode compreender um único bloco de árvore de codificação e estruturas de sintaxe utilizadas para codificar as amostras do bloco de árvore de codificação. Um bloco de árvore de codificação pode ser um bloco de amostras N x N. Uma CTU também pode ser referida como um "bloco de árvore" ou uma "maior unidade de codificação" (LCU). As CTUs de HEVC podem ser amplamente análogas aos macro blocos de outros padrões, tal como H.264/AVC. No entanto, uma CTU não é necessariamente limitada a um tamanho particular e pode incluir uma ou mais unidades de codificação (CUs). Uma fatia pode incluir um número inteiro de CTUs ordenadas consecutivamente em uma ordem de digitalização raster.
[0058] Para se gerar uma CTU codificada, o codificador de vídeo 20 pode realizar de forma recursiva a partição de quad-tree nos blocos de árvore de codificação de uma CTU para dividir os blocos de árvore de codificação em blocos de codificação, daí o nome "unidades de árvore de codificação". Um bloco de codificação pode ser um bloco de amostras N x N. Uma CU pode compreender um bloco de codificação de amostras de luminescência e dois blocos de codificação correspondentes de amostras de crominância de uma imagem que possui um conjunto de amostras de luminescência, um conjunto de amostras Cb, e um conjunto de amostras Cr, e estruturas de sintaxe utilizadas para codificar as amostras dos blocos de codificação. Nas imagens monocromáticas ou imagens possuindo três planos de cores separados, uma CU pode compreender um único bloco de codificação e estruturas de sintaxe utilizadas para codificar as amostras do bloco de codificação.
[0059] O codificador de vídeo 20 pode dividir um bloco de codificação de uma CU em um ou mais blocos de previsão. Um bloco de previsão é um bloco retangular (isso é, quadrado ou não quadrado) de amostras nas quais a mesma previsão é aplicada. Uma unidade de previsão (PU) de uma CU pode compreender um bloco de previsão de amostras de luminescência, dois blocos de previsão correspondentes de amostras de crominância, e estruturas de sintaxe utilizadas para prever os blocos de previsão. Nas imagens monocromáticas ou imagens possuindo três planos de cores separados, uma PU pode compreender um bloco de previsão singular e estruturas de sintaxe utilizadas para prever o bloco de previsão. O codificador de vídeo 20 pode gerar blocos de luminescência, Cb e Cr de previsão para blocos de luminescência, Cb e Cr de previsão de cada PU da CU.
[0060] O codificador de vídeo 20 pode utilizar a intraprevisão ou interprevisão para gerar os blocos de previsão para uma PU. Se o codificador de vídeo 20 utilizar a intraprevisão para gerar os blocos de previsão de uma PU, o codificador de vídeo 2 pode gerar os blocos de previsão da PU com base nas amostras decodificadas da imagem associada com a PU. Se o codificador de vídeo 20 utilizar a interprevisão para gerar os blocos de previsão de uma PU, o codificador de vídeo 20 pode gerar os blocos de previsão da PU com base nas amostras decodificadas de uma ou mais imagens além da imagem associada com a PU.
[0061] Depois que o codificador de vídeo 20 gera os blocos de previsão de luminescência, Cb e Cr para uma ou mais PUs de uma CU, o codificador de vídeo 20 pode gerar um bloco residual de luminescência para a CU. Cada amostra no bloco residual de luminescência da CU indica uma diferença entre uma amostra de luminescência em um dos blocos de luminescência de previsão de CU e uma amostra correspondente no bloco de codificação de luminescência original da CU. Adicionalmente, o codificador de vídeo 20 pode gerar um bloco residual Cb para a CU. Cada amostra no bloco residual Cb da CU pode indicar uma diferença entre uma amostra Cb em um dos blocos Cb de previsão de CU e uma amostra correspondente no bloco de codificação Cb original da CU. O codificador de vídeo 20 pode gerar também um bloco residual Cr para a CU. Cada amostra no bloco residual Cr da CU pode indicar uma diferença entre uma amostra Cr em um dos blocos Cr de previsão de CU e uma amostra correspondente no bloco de codificação Cr original da CU.
[0062] Adicionalmente, o codificador de vídeo 20 pode utilizar a partição de quad-tree para decompor os blocos residuais de luminescência, Cb e Cr de uma CU em um ou mais blocos de transformação de luminescência, Cb e Cr. Um bloco de transformação é um bloco retangular (por exemplo, quadrado ou não quadrado) de amostras no qual a mesma transformação é aplicada. Uma unidade de transformação (TU) de uma CU pode compreender um bloco de transformação de amostras de luminescência, dois blocos de transformação correspondentes de amostras de crominância, e estruturas de sintaxe utilizadas para transformar as amostras de bloco de transformação. Dessa forma, Cada TU de uma CU pode ser associada com um bloco de transformação de luminescência, um bloco de transformação Cb e um bloco de transformação Cr. O bloco de transformação de luminescência associado à TU pode ser um sub-bloco do bloco residual de luminescência da CU. O bloco de transformação Cb pode ser um sub-bloco do bloco residual Cb da CU. O bloco de transformação Cr pode ser um sub-blocos do bloco residual Cr da CU. Em imagens monocromáticas ou imagens possuindo três planos de cores separados, uma TU pode compreender um único bloco de transformação e estruturas de sintaxe utilizadas para transformar as amostras do bloco de transformação.
[0063] O codificador de vídeo 20 pode aplicar uma ou mais transformações a um bloco de transformação de luminescência de uma TU para gerar um bloco de coeficiente de luminescência para a TU. Um bloco de coeficientes pode ser um conjunto bidimensional de coeficientes de transformação. Um coeficiente de transformação pode ser uma quantidade escalar. O codificador de vídeo 20 pode aplicar uma ou mais transformações a um bloco de transformação Cb de uma TU para gerar um bloco de coeficiente Cb para a TU. O codificador de vídeo 20 pode aplicar uma ou mais transformações a um bloco de transformação Cr de uma TU para gerar um bloco de coeficiente Cr para a TU.
[0064] Depois da geração de um bloco de coeficientes (por exemplo, um bloco de coeficientes de luminescência, um bloco de coeficientes Cb ou um bloco de coeficientes Cr), um codificador de vídeo 20 pode quantizar o bloco de coeficientes. A quantização se refere geralmente a um processo no qual os coeficientes de transformação são quantizados para, possivelmente, reduzir a quantidade de dados utilizada para representar os coeficientes de transformação, fornecendo compressão adicional. Depois que o codificador de vídeo 20 quantiza um bloco de coeficiente, o codificador de vídeo 20 pode codificar por entropia os elementos de sintaxe indicando os coeficientes de transformação quantizados. Por exemplo, o codificador de vídeo 20 pode realizar a Codificação Aritmética Binária Adaptativa de Contexto (CABAC) nos elementos de sintaxe indicando os coeficientes de transformação quantizados.
[0065] O codificador de vídeo 20 pode enviar uma sequência de bits que inclui uma sequência de bits que forma uma representação de imagens codificadas e dados associados. A sequência de bits pode compreender uma sequência de unidades de camada de abstração de rede (NAL). Uma unidade NAL é uma estrutura de sintaxe contendo uma indicação do tipo de dados na unidade NAL e bytes contendo esses dados na forma de uma carga útil de sequência de byte bruta (RBSP) intercalada como necessário com bits de prevenção de emulação. Cada uma das unidades NAL inclui um cabeçalho de unidade NAL e encapsula uma RBSP. O cabeçalho da unidade NAL pode incluir um elemento de sintaxe que indica um código de tipo de unidade NAL. O código de tipo de unidade NAL especificado pelo cabeçalho de unidade NAL de uma unidade NAL indica o tipo de unidade NAL. Uma RBSP pode ser uma estrutura de sintaxe contendo um número inteiro de bytes que é encapsulado dentro de uma unidade NAL. Em alguns casos, uma RBSP inclui bits zero.
[0066] Diferentes tipos de unidades NAL podem encapsular diferentes tipos de RBSPs. Por exemplo, um primeiro tipo de unidade NAL pode encapsular uma RBSP para um conjunto de parâmetros de imagem (PPS), um segundo tipo de unidade NAL pode encapsular uma RBSP para uma fatia codificada, um terceiro tipo de unidade NAL pode encapsular uma RBSP para SEI, e assim por diante. As unidades NAL que encapsulam RBSPs para dados de codificação de vídeo (em oposição a RBSPs para os conjuntos de parâmetros e mensagens SEI) podem ser referidas como unidades NAL de camada de codificação de vídeo (VCL).
[0067] O decodificador de vídeo 30 pode receber uma sequência de bits gerada pelo codificador de vídeo 20. Adicionalmente, o decodificador de vídeo 30 pode analisar a sequência de bits para obtenção de elementos de sintaxe a partir da sequência de bits. O decodificador de vídeo 30 pode reconstruir as imagens dos dados de vídeo com base pelo menos em parte nos elementos de sintaxe obtidos a partir da sequência de bits. O processo de reconstrução de dados de vídeo pode ser geralmente alternado com o processo realizado pelo codificador de vídeo 20. Adicionalmente, o decodificador de vídeo 3 pode quantizar de forma inversa os blocos de coeficiente associados com as TUs de uma CU atual. O decodificador de vídeo 30 pode realizar as transformações inversas nos blocos de coeficientes para reconstruir os blocos de transformação associados com as TUs da CU atual. O decodificador de vídeo 30 pode reconstruir os blocos de codificação da CU atual pela adição de amostras dos blocos de previsão para as PUs da CU atual a amostras correspondentes dos blocos de transformação das TUs da CU atual. Pela reconstrução dos blocos de codificação para cada CU de uma imagem, o decodificador de vídeo 30 pode reconstruir a imagem.
[0068] Na codificação de múltiplas visualizações, pode haver múltiplas visualizações da mesma cena a partir de pontos de vista diferentes. Como notado acima, uma unidade de aceso inclui um conjunto de imagens que corresponde ao mesmo momento. Dessa forma, os dados de vídeo podem ser conceitualizados como uma série de unidades de acesso ocorrendo através do tempo. Um "componente de visualização" pode ser uma representação codificada de uma visualização em uma unidade de acesso singular. Nessa descrição, uma "visualização" pode se referir a uma sequência de componentes de visualização associados com o mesmo identificador de visualização. Tipos ilustrativos dos componentes de visualização incluem componentes de visualização de textura e componentes de visualização de profundidade.
[0069] A codificação de múltiplas visualizações suporta a previsão intervisualização. A previsão intervisualização é similar à interprevisão utilizada em HEVC e pode utilizar os mesmos elementos de sintaxe. No entanto, quando um codificador de vídeo realiza a previsão intervisualização em uma unidade de vídeo atual (tal como uma PU), o codificador de vídeo 20 pode utilizar, como uma imagem de referência, uma imagem que está na mesma unidade de acesso que a unidade de vídeo atual, mas em uma visualização diferente. Em contraste, a interprevisão convencional utiliza apenas imagens em unidades de acesso diferentes como imagens de referência.
[0070] Na codificação de múltiplas visualizações, uma visualização pode ser referida como uma "visualização de base" se um decodificador de vídeo (por exemplo, o decodificador de vídeo 30) puder decodificar as imagens na visualização sem referência às imagens em qualquer outra visualização. Quando da codificação de uma imagem em uma das visualizações de não base, um codificador de vídeo (tal como o codificador de vídeo 20 ou o decodificador de vídeo 30) pode adicionar uma imagem a uma lista de imagens de referência se a imagem estiver em uma visualização diferente, mas dentro de um mesmo caso de tempo (isso é, unidade de acesso) que a imagem que o codificador de vídeo está codificando no momento. Como outras imagens de referência de interprevisão, o codificador de vídeo pode inserir uma imagem de referência de previsão intervisualização em qualquer posiçao de uma lista de imagens de referência.
[0071] O mecanismo SEI suportado em ambos H.264/AVC e HEVC permite que os codificadores de vídeo (por exemplo, o codificador de vídeo 20) incluam tais metadados na sequência de bits que não são necessários para a decodificação correta dos valores de amostra das imagens de saída, mas podem ser utilizados para várias outras finalidades, tal como temporização de saída de imagem, exibição, além de detecção e ocultação de perda. O codificador de vídeo 20 pode utilizar as mensagens SEI para incluir, na sequência de bits, os metadados que não são necessários para a decodificação correta dos valores de amostra das imagens. No entanto, o decodificador de vídeo 30 ou outros dispositivos podem utilizar os metadados incluídos nas mensagens SE para várias outras finalidades. Por exemplo, o decodificador de vídeo 30 ou outro dispositivo pode utilizar os metadados nas mensagens SEI para temporização de envio de imagem, exibição de imagem, detecção de perda e ocultação de erro.
[0072] O codificador de vídeo 20 pode incluir uma ou mais unidades NAL SEI em uma unidade de acesso. Em outras palavras, qualquer número de unidades NAL SEI pode ser associado com uma unidade de acesso. Adicionalmente, cada unidade NAL SEI pode conter uma ou mais mensagens SEI. Isso é, os codificadores de vídeo podem incluir qualquer número de unidades NAL SEI em uma unidade de acesso, e cada unidade NAL SEI pode conter uma ou mais mensagens SEI. Uma unidade NAL SEI pode incluir um cabeçalho de unidade NAL e uma carga útil. O cabeçalho de unidade NAL da unidade NAL SEI inclui pelo menos um primeiro elemento de sintaxe e um segundo elemento de sintaxe. O primeiro elemento de sintaxe especifica um identificador de camada da unidade NAL SEI. O segundo elemento de sintaxe especifica um identificador temporal da unidade NAL SEI.
[0073] Uma segunda mensagem SEI embutida se refere a uma mensagem SEI que é contida em uma mensagem SEI embutida escalonável. Uma mensagem SEI não embutida se refere a uma mensagem SEI que não é contida em uma mensagem SEI embutida escalonável. A carga útil da unidade NAL SEI pode compreender uma mensagem SEI embutida ou uma mensagem SEI não embutida.
[0074] O padrão HEVC descreve a sintaxe e a semântica para vários tipos de mensagens SEI. No entanto, o padrão HEVC não descreve o manuseio das mensagens SEI visto que as mensagens SEI não afetam o processo de decodificação normativa. Uma razão para se ter mensagens SEI no padrão HEVC é permitir que dados suplementares sejam interpretados identicamente em sistemas diferentes utilizando HEVC. As especificações e sistemas utilizando HEVC podem exigir que os codificadores de vídeo gerem determinadas mensagens SEI ou pode definir o manuseio específico de tipos particulares de mensagens SEI recebidas.
[0075] A Tabela 1, abaixo, lista as mensagens SEI especificadas em HEVC e descreve de forma breve suas finalidades:Tabela 1 - Visão Geral das mensagens SEI
[0076] Um problema em potencial com a utilização de mensagens SEI HEVC em um contexto de múltiplas camadas é que uma unidade NAL SEI contendo uma mensagem SEI que aplica a uma camada com um identificador de camada (por exemplo, como identificado por um elemento de sintaxe nuh_layer_id da sequência de bits) que é igual a uma primeira camada (layerIdA para fins de exemplo) pode seguir uma unidade NAL VCL de uma imagem com um identificador de camada (nuh_layer_id) que é superior à primeira camada (layerIdA) dentro de uma unidade de acesso (AU) que contém imagens das camadas. Por exemplo, uma mensagem SEI pode ser separada na sequência de bits a partir da imagem utilizando a mensagem SEI.
[0077] Em um exemplo para fins de ilustração, uma unidade de acesso pode incluir uma primeira imagem de uma primeira camada de uma sequência de bits de múltiplas camadas e uma segunda imagem de uma segunda camada de uma sequência de bits de múltiplas camadas. Em alguns casos, uma mensagem SEI que é aplicável à primeira imagem da primeira camada pode ser incluída com as unidades NAL associadas com a segunda camada. Se uma unidade NAL SEI puder ser incluída com outras camadas de dados de vídeo, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode precisar extrair a unidade NAL SEI das outras camadas e armazenar a mensagem antes da codificação da unidade de acesso.
[0078] De acordo com um primeiro aspecto dessa descrição, uma unidade NAL SEI contendo uma mensagem SEI que é aplicada a uma camada com um identificador de camadas (nuh_layer_id) que é igual a uma primeira camada (layerIdA) não pode seguir qualquer unidade NAL VCL além de suas unidades NAL não VCL associadas de uma imagem com um identificador de camada (nuh_layer_id) que é superior à primeira camada (layerIdA) dentro da unidade de acesso. Por exemplo, de acordo com os aspectos dessa descrição, a colocação de unidades NAL SEI pode ser restringida de modo que uma unidade NAL SEI esteja junto com a camada (ou camadas) à qual a unidade NAL SEI se aplica na sequência de bits de múltiplas camadas.
[0079] No exemplo acima, o codificador de vídeo 20 e/ou decodificador de vídeo 30 só pode codificar uma ou mais unidades NAL não VCL contendo uma mensagem SEI aplicável às unidades NAL VCL de uma primeira camada juntamente com as unidades NAL VCL da primeira camada (por exemplo, codificar sucessivamente a unidade NAL SEI e as unidades NAL VCL), de modo que a sequência de bits não contenha quaisquer imagens codificadas de qualquer outra camada da sequência de bits de múltiplas camadas entre as unidades NAL VCL da primeira camada e as unidades NAL não VCL contendo a mensagem SEI aplicável às unidades NAL VCL da primeira camada. Em alguns casos, se ter a unidade NAL SEI junto em uma sequência de bits de múltiplas camadas com as imagens nas camadas às quais a unidade NAL SEI se aplica pode ser benéfico, por exemplo, na minimização de armazenamento ou overhead de transmissão quando do armazenamento e transmissão de unidades NAL associadas em conjunto. Por exemplo, mantendo-se as unidades NAL VCL e não VCL às quais as unidades NAL não VCL se aplicam juntas na sequência de bits, o codificador de vídeo 20 e/ou decodificador de vídeo 30 podem não precisar localizar e coletar as unidades NAL não VCL da memória antes da codificação das unidades NAL VCL.
[0080] Um segundo problema em potência com a utilização das mensagens SEI HEVC em um contexto de múltiplas camadas é que um conjunto de camadas aplicáveis de uma sequência de bits de múltiplas camadas às quais uma mensagem SEI hash de imagem decodificada não é claramente especificada no padrão HEVC. A mensagem SEI hash de imagem decodificada fornece uma soma de verificação derivada dos valores de amostra de uma imagem decodificada. A mensagem hash de imagem decodificada pode ser utilizada para detectar se uma imagem foi recebida e decodificada corretamente.
[0081] De acordo com segundo aspecto dessa descrição, o conjunto de camadas aplicáveis de uma mensagem SEI hash de imagem decodificada pode ser especificado como sendo a camada com o identificador de camada (nuh_layer_id) que é igual ao identificador de camada (nuh_layer_id) da unidade NAL SEI contendo a mensagem SEI e a mensagem SEI hash de imagem decodificada não pode ser embutida. Por exemplo, de acordo com os aspectos dessa descrição, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem apenas codificar uma mensagem SEI hash de imagem decodificada em uma unidade NAL SEI como uma mensagem SEI não embutida e a mensagem SEI hash de imagem decodificada se aplica apenas à camada que possui o mesmo identificador de camada (nuh_layer_id) da unidade NAL SEI que contém a mensagem SEI.
[0082] No exemplo acima, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode codificar uma ou mais unidades NAL não VCL (por exemplo, unidades NAL SEI) contendo uma mensagem SEI hash de imagem decodificada, e determina um conjunto de camadas de sequência de bits de múltiplas camadas às quais a mensagem SEI hash de imagem decodificada é aplicável com base em um identificador de camada de uma ou mais unidades NAL não VCL contendo a mensagem SEI hash de imagem decodificada. O codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode codificar um ou mais elementos de sintaxe que indicam o identificador de camada para a unidade NAL SEI, tal como um elemento de sintaxe nuh_layer_id, de modo que a determinação do conjunto de camadas seja baseada no elemento de sintaxe. As técnicas podem, em alguns casos, aumentar a resiliência de erro e/ou reduzir o overhead de armazenamento associado com as mensagens SEI hash de imagem decodificada na codificação de múltiplas camadas.
[0083] Um terceiro problema em potencial com a utilização de mensagens SEI HEVC em um contexto de múltiplas camadas é que o conjunto de camadas aplicáveis de uma mensagem SEI de conjuntos de parâmetros ativos não é claramente especificado no padrão HEVC. A mensagem SEI de conjuntos de parâmetros ativos indica quais VPS estão ativos para as unidades NAL VCL da unidade de acesso associada com a mensagem SEI. A mensagem SEI também pode fornecer informação sobre quais SPS estão ativos para as unidades NAL VCL da unidade de acesso associada com a mensagem SEI, e outras informações relacionadas com os conjuntos de parâmetros. Por exemplo, a mensagem SEI pode incluir uma indicação de se a acessibilidade aleatória total é suportada (por exemplo, quando suportada, todos os conjuntos de parâmetros necessários para a decodificação das imagens restantes da sequência de bits quando do acesso aleatório a partir do começo da sequência de vídeo codificada atual pela eliminação completa de todas as unidades de acesso anteriores na ordem de decodificação estão presentes na sequência de bits restante e todas as imagens codificadas na sequência de bits restante podem ser corretamente decodificadas), ou se não existe qualquer conjunto de parâmetros dentro da sequência de vídeo codificada atual que atualize outro conjunto de parâmetros do mesmo tipo anterior na ordem de decodificação (por exemplo, uma atualização de um conjunto de parâmetros se refere ao uso do mesmo identificador de conjunto de parâmetros, mas com alguns outros parâmetros alterados).
[0084] De acordo com um terceiro aspecto dessa descrição, uma mensagem SEI de conjuntos de parâmetros ativos é definida para aplicação a todas as camadas na sequência de bits. Adicionalmente, a mensagem SEI de conjuntos de parâmetros ativos é impedida de ser embutida. Nesse exemplo, o codificador de vídeo 20 e/ou decodificador de vídeo 30 podem codificar uma ou mais unidades NAL não VCL de uma sequência de bits de múltiplas camadas que contêm uma mensagem SEI de conjuntos de parâmetros ativos, e determina que a mensagem SEI de conjuntos de parâmetros ativos é aplicável a todas as camadas da sequência de bits de múltiplas camadas com base em uma ou mais unidades NAL não VCL contendo a mensagem SEI de conjuntos de parâmetros ativos. Por exemplo, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem derivar automaticamente que a mensagem SEI de conjuntos de parâmetros ativos se aplica a todas as camadas da sequência de bits de múltiplas camadas em virtude da codificação da mensagem SEI de conjuntos de parâmetros ativos. Em alguns casos, as técnicas podem reduzir a complexidade associada com as mensagens SEI de conjuntos de parâmetros ativos na codificação de múltiplas camadas.
[0085] Um quarto problema em potencial com a utilização de mensagens SEI HEVC em um contexto de múltiplas camadas é que quando um elemento de sintaxe frame_field_info_present_flag é igual a um para uma mensagem SEI de informação de temporização de imagem, embutida ou não, o conjunto de camadas aplicáveis não é claramente especificado para a informação de campo de quadro portada nos elementos de sintaxe pic_struct, source_scan_type, e duplicate_flag. Por exemplo, um elemento de sintaxe frame_field_info_present que é igual a um especifica que as mensagens SEI de temporização de imagem estão presentes para cada imagem e incluem os elementos de sintaxe pic_struct, source_scan_type e duplicate_flag. Em geral o elemento de sintaxe pic_struct indica se uma imagem deve ser exibida como um quadro ou como um ou mais campos, o elemento de sintaxe source_scan_type indica um tipo de digitalização (por exemplo, progressiva, entrelaçada ou desconhecida) e o elemento de sintaxe duplicate_flag indica que a imagem atual é indicada para ser uma duplicata de uma imagem anterior na ordem de saída.
[0086] De acordo com um quarto aspecto dessa descrição, quando o elemento de sintaxe frame_field_info_present_flag é igual a um para uma mensagem SEI de informação de temporização de imagem, embutida ou não, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode determinar automaticamente que a informação de quadro-campo portada nos elementos de sintaxe pic_struct, source_scan_type, e duplicate_flag se aplica às camadas em todos os pontos de operação aos quais a mensagem SEI de temporização de imagem se aplica. Dessa forma, em alguns casos, as técnicas podem reduzir a complexidade e/ou aperfeiçoar a resiliência de erro quando da utilização do elemento de sintaxe frame_field_info_present_flag na codificação de múltiplas camadas.
[0087] Um quinto problema em potencial com a utilização de mensagens SEI HEVC em um contexto de múltiplas camadas é que uma mensagem SEI de conjuntos de parâmetros ativos pode ser embutida em HEVC. No entanto, como notado acima, a mensagem SEI de conjuntos de parâmetros ativos é aplicável a todas as camadas. De acordo, desde que a flexibilidade da mensagem SEI de conjuntos de parâmetros ativos seja aplicada às camadas particulares de uma sequência de bits de múltiplas camadas (por exemplo, utilizando-se uma mensagem SEI de embutimento) pode aumentar desnecessariamente a complexidade do codificador de vídeo 20 e/ou decodificador de vídeo 30. Por exemplo, depois do recebimento e decodificação de uma mensagem SEI de embutimento escalonável, o decodificador de vídeo 30 pode precisar realizar operações adicionais (por exemplo, em comparação com mensagens SEI não embutidas) para determinar as camadas aplicáveis para a mensagem SEI de embutimento escalonável.
[0088] De acordo com um quinto aspecto dessa descrição, uma mensagem SEI de conjuntos de parâmetros ativos não pode ser embutida em uma mensagem SEI de embutimento escalonável. Por exemplo, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem ser impedidos de codificar uma mensagem SEI de conjuntos de parâmetros ativos de uma sequência de bits de múltiplas amadas apenas em uma mensagem SEI não embutida e não em uma mensagem SEI de embutimento escalonável. As técnicas podem reduzir a complexidade computacional associada com a codificação e utilização das mensagens SEI de conjuntos de parâmetros ativos. Por exemplo, retornando-se ao exemplo acima, o decodificador de vídeo 30 pode codificar e utilizar a mensagem SEI de conjuntos de parâmetros ativos sem realizar as operações adicionais associadas com as mensagens SEI de embutimento escalonável.
[0089] Um sexto problema em potencial com a utilização de mensagens SEI HEVC em um contexto de múltiplas camadas é que as semânticas de uma mensagem SEI embutida possuindo um elemento de sintaxe bitstream_subset_flag que é igual a um e um payloadType igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132 ou 134 (por exemplo uma das mensagens SEI que possuem payloadType que não é igual a qualquer um dentre 0, 1, 4, 5, 130 e 133) não é clara. Em HEVC, bitstream_subset_flag indica se as mensagens SEI contidas na mensagem SEI de embutimento escalonável se aplicam a camadas específicas ou subcamadas de uma sequência de bits de múltiplas camadas. Por exemplo, um bitstream_subset_flag que é igual a zero especifica que as mensagens SEI contidas na mensagem SEI de embutimento escalonável se aplicam às camadas ou subcamadas específicas. Um bitstream_subset_flag que é igual a um especifica que as mensagens SEI contidas na mensagem SEI de embutimento escalonável se aplicam a uma ou mais subsequências de bit resultando de um processo de extração de subsequência de bits. Dessa forma, HEVC não especifica claramente a forma na qual as mensagens SEI em particular (possuindo os tipos de carga útil identificados acima) são manuseadas quando um conjunto de camadas em particular (por exemplo, uma subsequência de bits) é extraído de uma sequência de bits de múltiplas camadas, o que pode criar erros e/ou ineficiências durante a codificação de múltiplas camadas.
[0090] Quando payloadType é igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 129, 131, 132 ou 134, a mensagem SEI é uma dentre: uma mensagem SEI retangular de digitalização panorâmica que inclui dados associados com a exibição em uma razão de aparência de imagem diferente do que uma razão de aspecto de imagem das imagens de saída; uma mensagem SEI de carga útil de enchimento que inclui dados para o ajuste de uma taxa de bit para corresponder às restrições específicas; uma mensagem SEI de ponto de recuperação que inclui informação para o acesso aleatório limpo ou atualização de decodificação gradual; uma mensagem SEI de informação de cena que inclui a informação associada com as mudanças de cena e transições de cena; uma mensagem SEI de instantâneo de imagem que inclui uma indicação para rotular uma imagem decodificada associada como um instantâneo de imagem estática do conteúdo de vídeo; uma mensagem SEI de início de segmento de refinamento progressivo que inclui informação associada com um início de um segmento de imagens consecutivas que representam um refinamento progressivo da qualidade de uma imagem em vez de uma cena em movimento; uma mensagem SEI de final de segmento de refinamento progressivo que inclui informação associada com um final do segmento das imagens consecutivas; uma mensagem SEI de características de granularidade de filme que inclui a informação associada com a sintetização dos efeitos de granularidade do filme; uma mensagem SEI de dica pós-filtro que inclui informação associada com os coeficientes de pós- filtro sugeridos ou informação de correlação para desenho pós-filtro; uma mensagem SEI de informação de mapeamento de tom que inclui a informação associada com o remapeamento para outro espaço de cor além do utilizado ou considerado na codificação; uma mensagem SEI de disposição de empacotamento de quadro que inclui informação associada com o empacotamento de vídeo estereoscópico na sequência de bits; uma mensagem SEI de orientação de exibição que inclui a informação que especifica mudança e/ou rotação a ser aplicada às imagens de saída quando as imagens de saída são exibidas; uma estrutura de mensagem SEI de informação de imagens que inclui a informação que descreve a estrutura temporal e de interprevisão da sequência de bits; uma mensagem SEI de índice zero de subcamada temporal que indica um índice zero de subcamada temporal; uma mensagem SEI de imagem decodificada, ou uma mensagem SEI de informação de atualização de região que indica se os segmentos de fatia associados com a mensagem SEI atual pertencem à região atualizada na imagem atual, respectivamente.
[0091] Quando payloadType é igual a 0, 1, 4, 5, 130 e 133, a mensagem SEI é uma dentre: uma mensagem SEI de período de armazenamento, uma mensagem SEI de temporização de imagem, uma mensagem SEI registrada por usuário, uma mensagem SEI não registrada por usuário, uma mensagem SEI de informação de unidade de decodificação, ou uma mensagem SEI de embutimento escalonável, respectivamente.
[0092] De acordo com um sexto aspecto dessa descrição, quando uma mensagem SEI de embutimento escalonável contém uma mensagem SEI que possui payloadType que é igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132 ou 134 (por exemplo, uma das mensagens SEI que possui payloadType que não é igual a qualquer um de 0, 1, 4, 5, 130 e 133), o valor do elemento de sintaxe bitstream_subset_flag da mensagem SEI de embutimento escalonável precisa ser igual a 0. Por exemplo, de acordo com os aspectos dessa descrição, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem determinar e/ou codificar automaticamente o elemento de sintaxe bitstream_subset_flag com base no tipo de carga útil da mensagem SEI incluída em um conjunto predeterminado de mensagens SEI. O conjunto predeterminado de mensagens SEI pode ser mensagens SEI que são aplicadas a uma unidade camada. Dessa forma, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 são impedidos de aplicar a mensagem SEI incluída no conjunto identificado acima a mais de uma camada em uma sequência de bits de múltiplas camadas reduzindo, assim, potencialmente, os erros e/ou ineficiências durante a codificação de múltiplas camadas.
[0093] Um sétimo problema em potencial com a utilização de mensagens SEI HEVC em um contexto de múltiplas camadas é que não está claro qual valor de identificador de camada (nuh_layer_id) deve ser utilizado para uma unidade NAL SEI contendo uma mensagem SEI de período de armazenamento não embutido, temporização de imagem, ou de informação de unidade de decodificação. Uma mensagem SEI de período de armazenamento fornece um retardo de remoção de armazenador de imagem codificada inicial (CPB) e informação de desvio de retardo de remoção CPB inicial para inicialização de HRD na posição da unidade de acesso associada na ordem de decodificação. A mensagem SEI de temporização de imagem fornece um tempo de envio de imagem e tempo de remoção de imagem/subimagem para a operação HRD, além da informação relacionada com a estrutura da imagem. Uma mensagem SEI de informação de unidade de decodificação fornece informação de retardo de remoção CPB para uma unidade de decodificação. A mensagem pode ser utilizada em operações de armazenamento de retardo muito baixo. De acordo, as mensagens SEI notadas acima fornecem informação que é necessária pelo HRD e a mensagem SEI é aplicável a um conjunto de camadas (por exemplo, conjunto autocontido de camadas também referido como uma subsequência de bits). Se tais mensagens SEI não forem embutidas e o identificador de camada não for igual a zero, não fica claro a qual dos conjuntos de camadas a mensagem se aplica, o que pode criar erros durante a codificação de múltiplas camadas.
[0094] De acordo com um sétimo aspecto dessa descrição, o valor do identificador de camada (nuh_layer_id) para uma unidade NAL SEI contendo uma mensagem SEI de período de armazenamento não embutido, temporização de imagem, ou de informação de unidade de decodificação precisa ser igual a 0. Por exemplo, de acordo com os aspectos dessa descrição, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem determinar automaticamente que um identificador de camada da camada tem valor igual a zero (e/ou codificar um valor igual a zero para o elemento de sintaxe de identificador de camada) com base em uma ou mais unidades NAL não VCL contendo a mensagem SEI que contém uma mensagem SEI de período de armazenamento não embutida, uma mensagem SEI de temporização de imagem, ou uma mensagem SEI de informação de unidade de decodificação. Dessa forma, as técnicas podem reduzir potencialmente erros e/ou ineficiências durante a codificação de múltiplas camadas.
[0095] Um oitavo problema em potencial com a utilização de mensagens SEI HEVC em um contexto de múltiplas camadas é que não fica claro qual o valor de um elemento de sintaxe de identificador de camada (nuh_layer_id) deve ser para uma mensagem SEI não embutida possuindo payloadType igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132 ou 134 (isso é, uma das mensagens SEI que possuem payloadType diferente de qualquer um de 0, 1, 129, 130 e 133) Por exemplo, HEVC não especifica claramente a forma na qual as mensagens SEI particulares (possuindo os tipos de carga útil identificados acima) são manuseadas para as camadas particulares (possuindo um identificador de camada particular) de uma sequência de bits de múltiplas camadas, que pode criar erros e/ou ineficiências durante a codificação de múltiplas camadas.
[0096] De acordo com um oitavo aspecto dessa descrição, quando uma mensagem SEI não embutida possui payloadType igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132 ou 134 (isso é, uma das mensagens SEI que possui payloadType diferente de qualquer um dentre 0, 1, 129, 130 e 133), um valor de um identificador de camada (nuh_layer_id) para a unidade NAL SEI contendo a mensagem SEI não embutida precisa ser igual ao identificador de camada (nuh_layer_id) das unidades NAL VCL associadas com a unidade NAL SEI. Isso é, por exemplo, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem determinar automaticamente, com base no tipo de carga útil SEI sendo incluída em um primeiro conjunto de tipos de carga útil (por exemplo, os tipos de carga útil identificados acima), que um elemento de sintaxe de identificador de camada para as unidades NAL não VCL contendo a mensagem SEI é igual a um elemento de sintaxe de identificador de camada das unidades NAL VCL associadas com a mensagem SEI.
[0097] Um nono problema em potencial com a utilização de mensagens SEI HEVC em um contexto de múltiplas camadas é que uma mensagem SEI de prefixo precisa estar presente em HEVC e preceder a primeira unidade NAL VCL de uma unidade de acesso em casos nos quais existe uma mensagem SEI de prefixo do mesmo tipo entre duas unidades NAL VCL da unidade de acesso. Por exemplo, as mensagens SEI de prefixo são tipicamente incluídas em uma sequência de bits antes das unidades NAL VCL às quais a mensagem SEI se aplica. Em HEVC, a restrição na colocação de mensagens SEI de prefixo é baseada em unidade de acesso, que pode apresentar um problema para as unidades de acesso possuindo múltiplos componentes de camada (por exemplo, unidades de acesso possuindo imagens de múltiplas camadas). Isso é, algumas mensagens SEI de prefixo podem não ser localizadas no local adequado (por exemplo, antes das unidades NAL VCL às quais a mensagem SEI se aplica) nas unidades de acesso possuindo múltiplos componentes de camada.
[0098] De acordo com um nono aspecto dessa descrição, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem controlar a forma na qual as mensagens SEI de prefixo são codificadas com base na imagem à qual as mensagens SEI de prefixo se aplicam (por exemplo, em contraste com as técnicas baseadas na unidade de acesso notadas acima). Por exemplo, de acordo com os aspectos dessa descrição, uma mensagem SEI de prefixo que aplica a uma camada (por exemplo, layerA) contendo uma imagem que deve estar presente e preceder a primeira unidade NAL VCL da imagem em casos nos quais existe uma mensagem SEI de prefixo que é do mesmo tipo e se aplica à camada (por exemplo, layerA) presente entre duas unidades NAL VCL da imagem.
[0099] Por exemplo, para uma unidade de acesso que inclui pelo menos uma primeira imagem e uma segunda imagem, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode ser impedido de codificar uma ou mais unidades NAL não VCL contendo uma primeira mensagem SEI de prefixo aplicável às unidades NAL VCL da primeira imagem, e uma ou mais unidades NAL não VCL contendo uma segunda mensagem SEI de prefixo aplicável às unidades NAL VCL da segunda imagem seguindo a primeira imagem na sequência de bits. Dessa forma, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 são impedidos de codificar as mensagens SEI de prefixo em outros locais de uma unidade de acesso, o que pode aumentar a eficiência e reduzir o overhead de armazenamento para a codificação de múltiplas camadas.
[0100] Um décimo problema em potencial utilizando mensagens SEI HEVC em um contexto de múltiplas camadas é que, em HEVC, uma mensagem SEI de sufixo precisa estar presente e suceder (seguir) a última unidade NAL VCL de uma unidade de acesso quando existe uma mensagem SEI de sufixo do mesmo tipo entre duas unidades NAL VCL da unidade de acesso. Por exemplo, a mensagem SEI de sufixo é tipicamente incluída em uma sequência de bits depois das unidades NAL VCL às quais a mensagem SEI se aplica. Em HEVC, a restrição da colocação de mensagens SEI de sufixo é baseada na unidade de acesso, que pode representar um problema para as unidades de acesso possuindo múltiplos componentes de camada (por exemplo, unidades de acesso de uma sequência de bits de múltiplas camadas). Isso é, algumas mensagens SEI de sufixo podem não estar localizadas na localização adequada (por exemplo, seguindo as unidades NAL VCL às quais a mensagem SEI se aplica) em unidades de acesso possuindo múltiplos componentes de camada.
[0101] De acordo com um décimo aspecto dessa descrição, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem controlar a forma na qual as mensagens SEI de sufixo são codificadas com base na imagem à qual as mensagens SEI de sufixo se aplicam (por exemplo, em contraste com as técnicas baseadas em unidade de acesso notadas acima). Por exemplo, de acordo com os aspectos dessa descrição, uma mensagem SEI de sufixo que é aplicada a uma camada (por exemplo, layerA) contendo uma imagem precisa estar presente e suceder (seguir) a última unidade NAL VCL da imagem quando houver uma mensagem SEI de sufixo que é do mesmo tipo e se aplica à camada (por exemplo, layerA) presente entre duas unidades NAL VCL da imagem.
[0102] Por exemplo, para uma unidade de acesso que inclui pelo menos uma primeira imagem e uma segunda imagem, o codificador de vídeo 20 e/ou o decodificador de vídeo 3 podem ser impedidos de codificar uma ou mais unidades NAL não VCL contendo uma primeira mensagem SEI de sufixo aplicável às unidades NAL VCL da primeira imagem seguindo a primeira imagem, e uma ou mais unidades NAL não VCL contendo uma segunda mensagem SEI de prefixo aplicável às unidades NAL VCL da segunda imagem seguindo a segunda imagem na sequência de bits. Dessa forma, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 são impedidos de codificar as mensagens SEI de sufixo em outros locais de uma unidade de acesso, o que pode aumentar a eficiência e reduzir o overhead de armazenamento para codificação de múltiplas camadas.
[0103] Um décimo primeiro problema em potencial com utilização de mensagens SEI HEVC em um contexto de múltiplas camadas é que, em HEVC, o número de vezes em que uma mensagem SEI pode ser repetida é especificado por unidade de acesso. Por exemplo, em alguns casos, uma mensagem SEI pode ser repetida quando da codificação de uma imagem. Em um exemplo para fins de ilustração, para uma imagem possuindo oito fatias, cada fatia sendo associada com sua própria unidade NAL VCL, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem repetir uma mensagem SEI em particular para cada unidade NAL VCL. No entanto, uma restrição com base em unidade de acesso do número de vezes em que uma mensagem SEI pode ser repetida pode representar um problema na codificação de vídeo de múltiplas camadas, visto que uma unidade de acesso possuindo múltiplos componentes de camada pode ter potencialmente muitas fatias a mais do que uma unidade de acesso possuindo um componente de camada único (por exemplo, uma imagem única). Nesse exemplo, o desempenho de erro (e/ou outras funções impactadas pelas mensagens SEI) pode ser afetado de forma adversa.
[0104] De acordo com um décimo primeiro aspecto dessa descrição, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem especificar o número de vezes em que uma mensagem SEI pode ser repetida com base em imagem. Nesse contexto, uma imagem pode ser definida como contendo as unidades NAL VCL de uma imagem codificada e unidades NAL não VCL que são associadas com as unidades NAL VCL. Dessa forma, de acordo com os aspectos dessa descrição, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem determinar um parâmetro de repetição máximo para uma mensagem SEI (por exemplo, um número máximo de vezes em que a mensagem SEI pode ser repetida) com base em uma unidade de imagem que contém unidades NAL VCL de uma imagem e unidades NAL não VCL associadas da imagem. As técnicas podem, em alguns casos, aumentar a resiliência a erro na codificação de múltiplas camadas.
[0105] Um décimo segundo problema em potencial com a utilização de mensagens SEI HEVC em um contexto de múltiplas camadas é que um conflito pode surgir em casos nos quais um elemento de sintaxe default_op_flag é igual a um, e um elemento de sintaxe bitstream_subset_flag é igual a um, mas não existem conjuntos de camada especificados por um VPS para a sequência de bits que inclui e apenas inclui as camadas possuindo valores identificadores de camada (nuh_layer_id) na faixa de 0 a nuh_layer_id da unidade NAL SEI atual, inclusive. Por exemplo, um elemento de sintaxe default_op_flag que é igual a um especifica que maxTemporalId[0] é igual a nuh_temporal_id_plus1 da unidade NAL SEI atual menos 1 e que nestingLayerIdList[0] contém todos os valores inteiros na faixa de 0 até nuh_layer_id da unidade NAL SEI atual, inclusive, na ordem crescente de valores. Como notado acima, um elemento de sintaxe bitstream_subset_flag igual a um especifica que as mensagens SEI contidas na mensagem SEI de embutimento escalonável se aplicam a uma ou mais subsequências de bits resultando de um processo de extração de subsequências de bits. Em outras palavras, um conflito pode surgir em casos nos quais um conjunto de camadas padrão de uma sequência de bits de múltiplas camadas é indicado, mas VPS não especifica um conjunto de camadas em particular que corresponda ao conjunto de camadas padrão.
[0106] De acordo com um décimo aspecto dessa descrição, quando um elemento de sintaxe bitstream_subset_flag é igual a um e nenhum dos conjuntos de camadas especificados por um VPS incluem e apenas incluem as camadas possuindo os valores nuh_layer_id na faixa de 0 até nuh_layer_id da unidade NAL SEI atual, inclusive, o valor do elemento de sintaxe default_op_flag precisa ser igual a zero. Por exemplo, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem codificar um elemento de sintaxe bitstream_subset_flag de uma sequência de bits de múltiplas camadas e, com base no bitstream_subset_flag igual a um e nenhum conjunto de camadas especificado por VPS da sequência de bits de múltiplas camadas incluindo identificadores de camada na faixa de zero a um identificador de camada das unidades NAL não VCL contendo a mensagem SEI, inclusive, determina que um valor do elemento de sintaxe default_op_flag da sequência de bits de múltiplas camadas tem valor igual a zero. As técnicas podem aperfeiçoar a resiliência de erro quando da utilização do elemento de sintaxe default_op_flag na codificação de múltiplas camadas.
[0107] Um décimo terceiro problema em potencial com a utilização de mensagens SEI HEVC em um contexto de múltiplas camadas é que quando um elemento de sintaxe nesting_op_flag é igual a zero e um elemento de sintaxe all_layers_flag é igual a zum, o valor da variável maxTemporalId[0] não é especificado em HEVC. Um elemento de sintaxe nesting_op_flag que é igual a zero especifica que a lista nestingLayerIdList[0] é especificado por um elemento de sintaxe all_layers_flag e, quando presente, nesting_layer_id[i] para todos os valores i na faixa de 0 a nesting_num_layers_minus1, inclusive, e que a variável maxTemporalId[0] é especificada por nesting_no_op_max_temporal_id_plus1. Em outras palavras, HEVC não especifica as subcamadas aplicáveis (por exemplo, como identificado utilizando-se a variável maxTemporalId[0]) quando as mensagens SEI aninhadas são utilizadas com subcamadas temporais de uma sequência de bits de múltiplas camadas, o que pode causar complicações desnecessárias.
[0108] De acordo com um décimo terceiro aspecto dessa descrição, quando um elemento de sintaxe nesting_op_flag é igual a zero e um elemento de sintaxe all_layers_flag é igual a um, o codificador de vídeo 20 e o decodificador de vídeo 30 podem codificar automaticamente um elemento de sintaxe maxTemporalId[0] para ter um valor de seis, que é o valor máximo possível para o elemento de sintaxe TemporalId. Isso é, de acordo com os aspectos dessa descrição, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem ser configurados para aplicar uma mensagem SEI a todas as subcamadas que são incluídas em uma camada de dados de vídeo, independentemente do número de subcamadas que são incluídas. Dessa forma, as técnicas podem reduzir a complexidade associada com a codificação de múltiplas camadas.
[0109] Um décimo quarto problema em potencial utilizando as mensagens SEI HEVC em um contexto de múltiplas camadas é que, quando uma mensagem SEI embutida possui payloadType igual a 2, 3, 6, 8, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132 ou 134 (por exemplo, uma das mensagens SEI que possui payloadType diferente de qualquer um dentre 0, 1, 4, 5, 130 e 133) e a mensagem SEI se aplica a um conjunto de camadas, o conjunto de camadas pode ser associado com um valor maxTemporalID[i] que é inferior ao maior valor de TemporalID na sequência de bits. No entanto, a semântica dessas mensagens SEI é descrita sem se considerar as subcamadas, e são, consequentemente, inconsistentes com a semântica da mensagem SEI de embutimento escalonável quando a situação acima ocorre. Essa inconsistência pode aumentar desnecessariamente a complexidade da codificação de múltiplas camadas.
[0110] De acordo com um décimo quarto aspecto dessa descrição, quando uma mensagem SEI possui payloadType igual a 2, 3, 6, 9 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132 ou 134 (por exemplo, uma das mensagens SEI que possui payloadType diferente de qualquer um dentre 0, 1, 4, 5, 130 e 133), a unidade NAL SEI contendo a mensagem SEI de embutimento escalonável precisa ter um elemento de sintaxe TemporalId que é igual a zero e um elemento de sintaxe maxTemporalId[i] para todos os i precisa ser igual a seis, que é o valor máximo possível para o elemento de sintaxe TemporalId. Por exemplo, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem ser configurados para determinar automaticamente um valor para o elemento de sintaxe TemporalID que é igual a zero e um elemento de sintaxe maxTemporalId[i] para todos os i que é igual a seis com base em uma mensagem SEI possuindo um tipo de carga útil em um conjunto predeterminado de tipos de carga útil (por exemplo, os tipos identificados acima). Dessa forma, as técnicas podem reduzir a complexidade associada com a codificação de múltiplas camadas.
[0111] Um décimo quinto problema em potencial com a utilização de mensagens SEI HEVC em um contexto de múltiplas camadas é que quando um elemento de sintaxe bitstream_subset_flag é igual a um e um elemento de sintaxe nesting_op_flag é igual a zero, o padrão HEVC permite que um elemento de sintaxe nestingLayeridList[0] corresponda a um conjunto de camadas que não é especificado por um VPS para a sequência de bits de múltiplas camadas.
[0112] De acordo com um décimo quinto aspecto dessa descrição, quando um elemento de sintaxe bitstream_subset_flag é igual a um e um elemento sintaxe nesting_op_flag é igual a zero, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem ser configurados para codificar o elemento de sintaxe nestingLayeridList[0] para incluir e apenas incluir os valores de nuh_layer_id de um dos conjuntos de camadas especificados por VPS. Por exemplo, o codificador de vídeo 20 e/ou decodificador de vídeo 30 podem ser configurados para codificar um elemento de sintaxe bitstream_subset_flag da sequência de bits de múltiplas camadas e um elemento de sintaxe nesting_op_flag da sequência de bits de múltiplas camadas, e, com base no elemento de sintaxe bitstream_subset_flag possuindo um valor de um e o elemento de sintaxe nesting_op_flag possuindo um valor igual a zero, determinar que um nestingLayeridList[0] da sequência de bits de múltiplas camadas inclua apenas os valores de identificador de camada de um conjunto de camadas especificado em um VPS da sequência de bits de múltiplas camadas. Dessa forma, as técnicas podem reduzir a complexidade associada com a codificação de múltiplas camadas.
[0113] As técnicas descritas acima podem ser aplicadas independentemente ou aplicadas em combinação. Os exemplos detalhados que são consistentes com essa descrição são apresnetados abaixo. As mudanças de texto com relação ao padrão SHVC mencionado acima para algumas das técnicas descritas acima são indicadas utilizando-se sublinhado para identificar o material inserido e chaves duplas {[[removido:]]) para indicar o material removido, abaixo: Mudança das definições a seguir na cláusula 3 como segue: 3.X unidade de acesso: Um conjunto de unidades NAL que são associadas uma à outra de acordo com uma regra de classificação especificada, são consecutivas na ordem decrescente, e contêm unidades NAL VCL de todas as imagens codificadas associadas com o mesmo tempo de envio e suas unidades NAL não VCL associadas. NOTA - As imagens na mesma unidade de acesso são associadas com a mesma contagem de ordem de imagens. Adicionar as seguintes definições à cláusula 3: 3. X partição de sequência de bits de base: Uma partição de sequência de bits que também é uma sequência de bits em conformidade propriamente dita. 3.X partição de sequência de bits: Uma sequência de bits, na forma de uma sequência de unidades NAL ou uma sequência de bytes, que é um subconjunto de uma sequência de bits de acordo com uma partição. 3.X camada de envio: Uma camada de um conjunto de camada de envio que é enviada quando TargetOptLayerSetIdx é igual ao índice de conjunto de camada de envio. 3.X conjunto de camada de envio: Um conjunto de camadas consistindo de camadas de um dos conjuntos de camadas especificado, onde uma ou mais camadas no conjunto de camadas são indicadas como sendo camadas de envio. 3.X ponto operacional de envio: Uma sequência de bits que é criada a partir de outra sequência de bits pela operação do processo de extração de subsequências de bits com a outra sequência de bits, um TemporalID mais alto alvo, e uma lista de identificador de camada alvo como entradas, e que é associado com um conjunto de camadas de saída alvo. 3.X camada de envio alvo: Uma camada que deve ser enviada e é uma das camadas de saída do conjunto de camadas de saída com o índice olsIdx de modo que TargetOptLayerSetIdx seja igual a olsIdx. 3.X conjunto de camada de envio alvo: Um conjunto de camadas de saída associado à variável TargetOptLayerSetIdx que especifica uma lista de identificador de camada de um ponto operacional de saída em uso e um conjunto de camadas de envio alvo. [[Removido: 3.X ponto operacional: Uma sequência de bits é criada a partir de outra sequência de bits pela operaçao do processo de extração de subsequências de bits com outra sequência de bits, um TemporalID mais alto alvo, e uma lista de identificadores de camada alvo como entradas, e que é associado a um conjunto de camadas de saída alvo. NOTA 14 - Se TemporalID mais alto alvo de um ponto de operação for igual ao maior valor de TemporalID no conjunto de camadas associado com a lista de identificação de camada alvo, o ponto de operação é idêntico ao conjunto de camadas. Do contrário, é um subconjunto do conjunto de camadas.]] C.1 Geral Esse anexo especifica o decodificador de referência hipotética (HRD) e seu uso para verificar a sequência de bits e a conformidade do decodificador. Múltiplos testes podem ser necessários para se verificar a conformidade de uma sequência de bits, que é referida como sequência de bits em teste. Para cada teste, as etapas a seguir se aplicam na ordem listada: 1. Um ponto de operação de envio em teste, denotado como TargetOp, é selecionado pela seleção de um conjunto de camadas de envio alvo identificado por TargetOutputLayerSetIdx e selecionando um valor de TemporalId mais alvo, HighestTid. O valor de TargetOutputLayerSetIdx deve estar na faixa de 0 a NumOutputLayerSets - 1, inclusive. O valor de HighestTid deve estar na faixa de 0 a vps_max_sub_layers_minus1, inclusive. As variáveis TargetDecLayerSetIdx, TargetOptLayerIdList e TargetDecLayerIdList são então derivadas como especificado pela equação 8-1. O ponto de operação de envio sob teste possui OptLayerIdList igual a TargetOptLayerIdList, OpLayerIdList igual a TargetDecLayerIdList e OpTid igual a HighestTid. Para cada ponto de operação de envio sob teste quando da operação de CPB específica de sequência de bits é testada, o número de testes de conformidade de sequência de bits a ser realizado é igual a n0 * n1 * (n2 * 2 + n3) * n4, onde os valores de n0, n1, n2, n3 e n4 são especificados como segue: Modificar subcláusula D.3.1 como segue: É uma exigência da conformidade de sequência de bits que quando uma mensagem SEI de previsão com payloadType igual a 17 ([[início]] final do segmento de refinamento progressivo) ou 22 (dica pós-filtro) estiver presente em uma unidade de acesso, uma mensagem SEI de sufixo com o mesmo valor de payloadType não deve estar presente na mesma unidade de acesso. [[removido: Deixe prevVclNalUnitlnAu de uma unidade NAL SEI ou uma mensagem SEI ser a unidade NAL VCL anterior na ordem de decodificação, se alguma, na mesma unidade de acesso, e nextVclNalUnitlnAu de uma unidade NAL SEI ou uma mensagem SEI ser a próxima unidade NAL VCL na ordem de decodificação, se alguma, na mesma unidade de acesso.]] É uma exigência da conformidade de sequência de bits que as restrições a seguir se aplicam à contenção das mensagens SEI nas unidades NAL SEI: - Uma unidade NAL SEI contendo uma mensagem SEI de conjuntos de parâmetros ativos deve conter apenas uma mensagem SEI de conjuntos de parâmetros ativos e não deve conter qualquer outra mensagem SEI. [[removido: Quando uma unidade NAL SEI contendo uma mensagem SEI de conjuntos de parâmetros ativos está presente em uma unidade de acesso, deve ser a primeira unidade NAL SEI que segue prevVclNalUnitlnAu da unidade NAL SEI e precede nextVclNalUnitlnAu da unidade NAL SEI.]] - Quando uma unidade NAL SEI contém uma mensagem SEI de período de armazenamento não embutida, uma mensagem SEI de temporização de imagem não embutida, ou uma mensagem SEI de informação de unidade de decodificação não embutida, a unidade NAL SEI não deve conter qualquer mensagem SEI com payloadType diferente de 0 (período de armazenamento), 1 (temporização de imagem) ou 130 (informação de unidade de decodificação). - Quando uma unidade NAL SEI contém uma mensagem SEI de período de armazenamento embutida, uma mensagem SEI de temporização de imagem embutida, ou uma mensagem SEI de informação de unidade de decodificação embutida, a unidade NAL SEI não deve conter qualquer outra mensagem SEI com a payloadType diferente de 0 (período de armazenamento), 1 (temporização de imagem), 130 (informação de unidade de decodificação) ou 133 (embutimento escalonável). Deixemos prevVclNalUnitlnAu de uma unidade NAL SEI ou uma mensagem SEI ser a unidade NAL VCL anterior na ordem de decodificação, se alguma, na mesma unidade de acesso, e nextVclNalUnitlnAu de uma unidade NAL SEI ou uma mensagem SEI ser a próxima unidade NAL VCL na ordem de decodificação, se alguma, na mesma unidade de acesso. É uma exigência da conformidade de sequência de bits que as seguintes restrições sejam aplicadas: É uma exigência da conformidade de sequência de bits que as restrições a seguir se apliquem na ordem de mensagens SEI: - Quando uma unidade NAL SEI contendo uma mensagem SEI dos conjuntos de parâmetros ativos está presente em uma unidade de acesso, deve ser a primeira unidade NAL SEI que segue prevVclNalUnitInAu da unidade NAL SEI e precede nextVclNalUnitInAu da unidade NAL SEI. - Quando uma mensagem SEI de período de armazenamento não aninhada está presente em uma unidade de acesso, não deve seguir qualquer outra mensagem SEI que segue prevVclNalUnitInAu da mensagem SEI de período de armazenamento e precede nextVclNalUnitInAu da mensagem SEI de período de armazenamento, além de uma mensagem SEI de conjuntos de parâmetros ativos ou uma mensagem SEI de período de armazenamento não embutida. - Quando uma mensagem SEI de informação de unidade de decodificação não embutida está presente em uma unidade de acesso, não deve seguir qualquer outra mensagem SEI na mesma unidade de acesso que segue prevVclNalUnitInAu da mensagem SEI de informação de unidade de decodificação e precede nextVaclNalUnitInAu da mensagem SEI de informação de unidade de decodificação, além de uma mensagem SEI de conjuntos de parâmetros ativos, uma mensagem SEI de período de armazenamento não testada, ou uma mensagem SEI de temporização de imagem não embutida. - Quando uma mensagem SEI de período de armazenamento embutida, uma mensagem SEI de temporização de imagem embutida ou uma mensagem SEI de informação de unidade de decodificação embutida é contida em uma mensagem SEI embutida escalonável em uma unidade de acesso, a mensagem SEI de embutimento escalonável não deve seguir qualquer outra mensagem SEI que segue prevVclNalUnitInAu da mensagem SEI de embutimento escalonável e precede nextVclNalUnitInAu da mensagem SEI de embutimento escalonável, além de uma mensagem SEI dos conjuntos de parâmetros ativos, uma mensagem SEI de período de armazenamento não embutida, uma mensagem SEI de temporização de imagem não embutida, uma mensagem SEI de informação de unidade de decodificação não embutida ou outra mensagem SEI de embutimento escalonável que contenha uma mensagem SEI de período de armazenamento, uma mensagem SEI de temporização de imagem, ou uma mensagem SEI de informação de unidade de decodificação. Quando payloadType é igual a 0 (período de armazenamento), 1 (temporização de imagem), ou 130 (informação de unidade de decodificação) para uma mensagem SEI, embutida ou não, dentro da unidade de acesso, a unidade NAL SEI contendo a mensagem SEI deve preceder todas as unidades NAL de qualquer unidade de imagem que tenha nuh layer id superior a highestAppLayerId,onde highestAppLayerId é o maior valor de nuhlayerid de todas as camadas em todos os pontos operacionais aos quais a mensagem SEI se aplica. - Quando payloadType é igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132 ou 134 (isso é, uma das mensagens SEI que possuem payloadType diferente de qualquer um dentre 0, 1, 4, 5, 130 e 133) para uma mensagem SEI, embutida ou não, dentro da unidade de acesso, a unidade NAL SEI contendo a mensagem SEI deve preceder todas as unidades NAL de qualquer unidade de imagem que tenha nuh layer id superior a highestAppLayerId,onde highestAppLayerId é o maior valor de nuhlayerid de todas as camadas às quais a mensagem SEI se aplica. [[Removido: Para uma mensagem SEI não embutida, dependendo do valor de payloadType, t]] O seguinte se aplica aos pontos operacionais aplicáveis ou camadas de mensagens SEI: - Para uma mensagem SEI não embutida, quando [removido: Se]] payloadType for igual a 0 (período de armazenamento), 1 (temporização de imagem) ou 130 (informação de unidade de decodificação), a mensagem SEI não embutida se aplica ao ponto operacional que possui OpTid igual ao maior valor de nuh_temporal_id_plus1 dentre todas as unidades NAL VCL na sequência de bits, e que possui OpLayerIdList contendo todos os valores de nuh_layer_id em todas as unidades VCL na sequência de bits. - Para uma mensagem SEI não embutida, [[removido: Do contrário,]] quando payloadType é igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132 ou 134 (isso é, uma das mensagens SEI que possuem payloadType diferente de qualquer um dentre 0, 1, 4, 5, [[removido: ou]] 130, e 133 [[removido: e que podem ser mensagens SEI embutidas]]), a mensagem SEI não embutida é aplicada à camada à qual as unidades NAL VCL possuem nuh_layer_id igual a nuh_layer_id da unidade NAL SEI contendo a mensagem SEI. - Uma mensagem SEI de conjuntos de parâmetros ativos, que não pode ser embutida em todas as camadas na sequência de bits. - Quando framefieldinfopresentflag é igual a 1 para uma mensagem SEI de informação de temporização de imagem, embutida ou não embutida, a informação de campo de quadro portada nos elementos de sintaxe pic struct, source scan type, e duplicate flag se aplica a todas as camadas em todos os pontos operacionais às quais a mensagem SEI de temporização de imagem se aplica. É uma exigência da conformidade de sequência de bits que as restrições a seguir se apliquem ao embutimento das mensagens SEI: - Uma mensagem SEI que possui payloadType igual a 129 (conjuntos de parâmetros ativos), 132 (hash de imagem decodificada) e 133 (Uma mensagem SEI de embutimento escalonável [[(removido:)]] não deve ser embutida em uma mensagem SEI de embutimento escalonável. - Quando uma mensagem SEI de embutimento escalonável contém uma mensagem SEI de período de armazenamento, uma mensagem SEI de temporização de imagem, ou uma mensagem SEI de informação de unidade de decodificação, a mensagem SEI de embutimento escalonável não deve conter qualquer outra mensagem SEI com payloadType diferente de 0 (período de armazenamento), 1 (temporização de imagem) ou 130 (informação de unidade de decodificação). - Quando uma mensagem SEI de embutimento escalonável contém uma mensagem SEI de período de armazenamento, uma mensagem SEI de temporização de imagem, ou uma mensagem SEI de informação de unidade de decodificação, o valor de bitstreamsubsetflag da mensagem SEI de embutimento escalonável deve ser igual a 1. - Quando uma mensagem SEI de embutimento escalonável contém uma mensagem SEI que possui payloadType igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132 ou 134 (isso é, uma das mensagens SEI que possui payloadType diferente de qualquer um de 0, 1, 4, 5, 130 e 133), o valor de bitstreamsubsetflag da mensagem SEI de embutimento escalonável deve ser igual a 0. É uma exigência da conformidade de sequência de bits que as restrições a seguir sejam aplicadas aos valores de nuhlayerid e TemporalId das unidades NAL SEI: - Quando uma mensagem SEI não embutida possui payloadType igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132 ou 134 (isso é, uma das mensagens SEI que possui payloadType diferente de qualquer um dentre 0, 1, 4, 5, 129, [[removido: ou]] 130 e 133 [[removido: que podem ser mensagens SEI embutidas]]), a unidade NAL SEI contendo a mensagem SEI não embutida deve ter TemporalId igual a TemporalId da unidade de acesso contendo a unidade NAL SEI. - Quando uma mensagem SEI não embutida possui payloadType igual a 0, 1, 129 ou 130, a unidade NAL SEI contendo a mensagem SEI não embutida deve ter nuhlayerid igual a 0. - Quando uma mensagem SEI não embutida possui payloadType igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132 ou 134 (isso é, uma das mensagens SEI que possui payloadType diferente de qualquer um de 0, 1, 129, 130 e 133), a unidade NAL SEI contendo a mensagem SEI não embutida deve ter nuh layer id igual a nuh layer id da unidade NAL VCL associada com a unidade NAL SEI. NOTA 4 - Para uma unidade NAL SEI contendo uma mensagem SEI de embutimento escalonável, os valores de TemporalId e nuhlayer id devem ser configurados igual ao pior valor de TemporalId e nuhlayer id, respectivamente, de todas as subcamadas ou pontos de operação aos quais as mensagens SEI embutidas se aplicam. É uma exigência da conformidade de sequência de bits que as restrições a seguir se apliquem apenas à presença de mensagens SEI entre duas unidades NAL VCL de [[removido uma unidade de acesso]] imagem: - Quando existe uma mensagem SEI de prefixo que tenha payloadType igual a 0, 1, 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 129 ou 131 (isso é, uma das mensagens SEI de prefixo que não são dados de usuário registrados pela mensagem SEI Rec. ITU-T, T.35, a mensagem SEI de dados de usuário não registrados, a mensagem SEI de informação de unidade de decodificação, mensagem SEI de embutimento escalonável, ou uma mensagem SEI de informação de atualização de região) e aplica a uma imagem de uma camada layerA presente entre duas unidades NAL VCL da imagem [[removido: uma unidade de acesso]] na ordem de decodificação, deve haver uma mensagem SEI de prefixo que é do mesmo tipo e se aplica à camada layerA presente na mesma unidade de acesso que antecede a primeira unidade NAL VCL da imagem [[removido: unidade de acesso]]. - Quando existe uma mensagem SEI de sufixo que possui payloadType igual a 3 (carga útil de enchimento), 17 (extremidade de segmento de refinamento progressivo), 22 (dica pós-filtro), ou 132 (hash de imagem decodificada) e aplica a uma imagem de uma camada layerA presente entre duas unidades NAL VCL de [[removido: uma unidade de acesso]] a imagem na ordem de decodificação, deve haver uma mensagem SEI de sufixo que é do mesmo tipo e aplica à camada layerA presente na mesma unidade de acesso sucedendo a última NAL VCL da imagem [[removido: unidade de acesso]]. É uma exigência da conformidade de sequência de bits que as restrições a seguir se apliquem à repetição de mensagens SEI: - Para cada um dos valores de payloadType a seguir, deve haver menos do que ou igual a 8 estruturas de sintaxe idênticas sei_payload() dentro [[removido: uma unidade de acesso]] uma unidade de imagem: 0, 1, 2, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 129, 131, 132 e 133. - Deve haver menos que ou igual a 8 estruturas de sintaxe idênticas sei_payload() com payloadType igual a 130 dentro de uma unidade de decodificação. - O número de estruturas de sintaxe idênticas sei_payload() com payloadType igual a 134 em [[removido: uma unidade de acesso]] uma unidade de imagem deve ser inferior a ou igual ao número de segmentos de fatia na [[removido: unidade de acesso]] unidade de imagem. Modificar subcláusula D.3.23 como segue: A mensagem SEI de embutimento escalonável fornece um mecanismo para associar as mensagens SEI aos subconjuntos de sequência de bits correspondendo a vários pontos de operação ou com camadas específicas ou subcamadas. Uma mensagem SEI de embutimento escalonável contém uma ou mais mensagens SEI. bitstream_subset_flag igual a 0 especifica que as mensagens SEI contidas na mensagem SEI de embutimento escalonável se aplicam a camadas específicas ou subcamadas. bitstream_subset_flag igual a 1 especifica que as mensagens SEI contidas na mensagem SEI de embutimento escalonável se aplicam a uma ou mais subsequências de bits resultando de um processo de extração de subsequências de bits como especificado na cláusula 10 com registros baseados nos elementos de sintaxe da mensagem SEI de embutimento escalonável como especificado abaixo. [[removido: Quando uma mensagem SEI de período de armazenamento, uma mensagem SEI de temporização de imagem ou uma mensagem SEI de informação de unidade de decodificação é contida na mensagem SEI de embutimento escalonável, bitstream_subset_flag deve ser igual a 1.]] Dependendo do valor de bitstream_subset_flag, as camadas ou subcamadas, ou os pontos de operação aos quais as mensagens SEI contidas na mensagem SEI de embutimento escalonável se aplicam são especificadas pela derivação das listas nestingLayedIdList[i] e as variáveis maxTemporalId[i] com base nos valores de elemento de sintaxe como especificado abaixo. nesting_op_flag igual a 0 especifica que a lista nestingLayerIdList[0] é especificada por all_layers_flag e, quando presente, nesting_layer_id[i] para todos os valores i na faixa de 0 a nesting_num_layers_minus1, inclusive, e que a variável maxTemporalId[0] é especificada por nesting_no_op_max_temporal_id_plus1. nesting_op_flag igual a 1 especifica que a lista nestingLayerIdList[i] e a variável maxTemporalId[i] sejam especificadas por nesting_num_ops_minus1, default_op_flag, nesting_max_temporal_id_plus1[i], quando presente, e nesting_op_idx[i], quando presente. default_op_flag igual a 1 especifica que maxTemporalId[0] é igual a nuh_temporal_id_plus1 da unidade NAL SEI atual menos 1 e que nestingLayerIdList[0] contém todos os valores inteiros na faixa de 0 a nuh_layer_id da unidade NAL SEI atual, inclusive em ordem crescente de valores. Quando bitstreamsubsetflag é igual a 1 e nenhum dos conjuntos de camadas especificados pelo VPS inclui e apenas inclui as camadas possuindo valores nuhlayerid na faixa de 0 até nuh layer id da unidade NAL SEI atual, inclusive, o valor de defaultopflag deve ser igual a 0. nesting_num_ops_minus1 mais 1 menos default_op_flag especifica o número de elementos de sintaxe nesting_op_idx[i] seguinte. O valor de nesting_num_ops_minus1 deve estar na faixa de 0 a 1023, inclusive. Se nesting_op_flag for igual a 0, a variável nestingNumOps é configurada para 1. Do contrário, a variável nestingNumOps é configurada igual a nesting_num_ops_minus1 + 1. nesting_max_temporal_id_plus1[i] é utilizado para especificar a variável maxTemporalId[i]. O valor de nesting_max_temporal_id_plus1[i] deve ser superior a ou igual a nuh_temporal_id_plus1 da unidade NAL SEI atual. A variável maxTemporalId[i] é configurada igual a nesting_max_temporal_id_plus[i]-1. nesting_op_idx[i] é utilizado para especificar a lista nestingLayerIdList[i]. O valor de nesting_op_idx[i] deve estar na faixa de 0 a 1023, inclusive. A lista nestingLayerIdList[i] é configurada para ser igual a OpLayerList do conjunto de camadas nesting_op_idx[i] especificado por VPS ativo. all_layers_flag igual a 0 especifica que a lista nestingLayerIdList[0] é especificada por nesting_layer_id[i] para todos os valores de i na faixa de 0 até nesting_num_layers_minus1, inclusive. all_layers_flag igual a 1 especifica que a lista nestingLayerIdList[0] consiste de todos os valores de nuh_layer_id presentes na unidade de acesso atual que são superiores a ou iguais a nuh_layer_id da unidade NAL SEI atual, na ordem crescente dos valores. Nota: Quando nuh layer id da unidade NAL SEI contendo a mensagem SEI de embutimento escalonável é superior a 0, bitstream subset flag e all layers flag não podem, ambos, ser iguais a 1, visto que, nesse caso, o ponto de operação aplicável das mensagens SEI embutidas não incluiria a camada de base e, consequentemente, a subsequência de bits correspondendo ao ponto de operação aplicável seria uma sequência de bits em não conformidade. Quando nesting op flag é igual a 0 e alllayersflag é igual a 1, maxTemporalId[0] é configurado igual a 6. nesting_no_op_max_temporal_id_plus1 minus 1 especifica o valor de maxTemoralId[0] quando nesting_op_flag é igual a 0 e all_layers_flag é igual a 0. O valor de nesting_no_op_max_temporal_id_plus1 não deve ser igual a 0. nesting_num_layers_minus1 plus 1 especifica o número de elementos de sintaxe nesting_layer_id[i] a seguir. O valor de nesting_num_layers_minus1 deve estar na faixa de 0 a 62, inclusive. nesting_layer_id[i] especifica o valor de nuh_layer_id i incluído na lista de nestingLayerIdList[0]. Para qualquer i e j na faixa de 0 até nesting_num_layers_minus1, inclusive, com i inferior a j, nesting_layer_id[i] deve ser inferior a nesting_layer_id[j]. A lista nestingLayerList[0] é configurada para consistir de nesting_layer_id[i] para todos os valores de i na faixa de 0 até nesting_num_layers_minus1, inclusive, em ordem crescente de valores i. Quando bistream_subset_flag é igual a 0, o seguinte se aplica: - As mensagens SEI contidas na mensagem SEI de embutimento escalonável se aplicam a conjuntos de camadas ou subcamadas subLayerSet[i] para todos os valores de i na faixa de 0 a nestingNumOps - 1, inclusive, onde as unidades NAL VCL das camadas ou subcamadas em cada conjunto de subLayerSet[i] possuem valores nuh_layer_id que são incluídos na lista nestingLayerIdListSet ] e valores TemporalId que estão na faixa de TemporalId da unidade NAL SEI atual até maxTemporalId[i], inclusive. - Quando uma mensagem SEI embutida possui payloadType igual a 2, 3, 6, 9, 15, 16, 17, 19 ,22, 23, 45, 47, 128, 131, 132 ou 134 (isso é, uma das mensagens SEI que possuam payloadType diferente de qualquer um dentre 0, 1, 4, 5, 130 e 133), nuh layer id da unidade NAL SEI contendo a mensagem SEI de embutimento escalonável deve ter TemporalId igual a 0 e maxTemporalId[i] para todos os i deve ser igual a 6. - Quando uma mensagem SEI embutida possuir payloadType igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132 ou 134 (isso é, uma das mensagens SEI que possui payloadType diferente de qualquer um dentre 0, 1, 4, 5, 130 e 133) e o valor de nestingNumOps é superior a 0, a mensagem SEI embutida se aplica a todas as camadas para as quais cada nuhlayerid é incluído em pelo menos uma das listas nestingLayerIdList[i] com i variando de 0 até nestingNumOps - 1, inclusive. Quando bitstream_subset_flag é igual a 1, as mensagens SEI contidas na mensagem SEI de embutimento escalonável se aplica a pontos operacionais correspondentes às subsequências de bits subBitstream[i] para todos os valores de i na faixa de 0 para nestingNumOps-1, inclusive, onde cada subsequência de bits subBitstream[i] é a saída do processo de extração de subsequência de bits da cláusula 10 com a sequência de bits, maxTemporalId[i], e nestingLayerIdList[i] como entradas. Quando o indicador de subconjunto de sequências de bits é igual a 1 e nesting op flag é igual a 0, nestingLayerIdList[0] deve incluir e apenas incluir os valores de nuh layer id de um dos conjuntos de camadas especificados por VPS. nesting_zero_bit deve ser igual a 0. F.3 Definições Para fins desse anexo, as definições a seguir se aplicam adicional às definições na cláusula 3. Essas definições ou não estão presentes na cláusula 3 ou substituem as definições na cláusula 3. [[removido: F.3.1 unidade de acesso: Um conjunto de unidades NAL que são associados um com o outro de acordo com uma regra de classificação especificada, são consecutivas na ordem de decodificação, e contêm as unidades NAL VCL de todas as imagens codificadas associadas com o mesmo tempo de saída e suas unidades NAL não VCL associadas. F.3.2 NOTA 1 - As imagens na mesma unidade de acesso são associadas com o mesmo contador de ordem de imagem.]] F.3.1 camada de saída alternativa: Uma camada que é uma camada de referência direta ou uma camada de referência indireta de uma camada de envio e que pode incluir uma imagem que pode ser enviada quando nenhuma imagem da camada de envio está presente na unidade de acesso contendo a imagem. F.7.4.3.1 Semântica RBSP do conjunto de parâmetros de vídeo As especificações na subcláusula 7.4.3.1 se aplica às modificações e adições a seguir: - layerSetLayerIdList é substituída por LayerSetLayerIdList. - numLayersInIdList é substituído por NumLayersInIdList. - Substituir "Cada ponto operacional é identificado pela lista de identificadores de camada associada, denotada como OpLayerIdList, que consiste da lista de valores nuh_layer_id de todas as unidades NAL incluídas no ponto operacional, em ordem crescente de valores nuh_layer_id, e uma variável OpTid, que é igual ao TemporalId mais alto de todas as unidades NAL incluídas no ponto operacional" com "Cada ponto de operação é identificado pela lista de identificadores de camada associada, denotada como operação de saída é associado com um ponto de operação e identificado por uma lista de valores nuh_layer_id de todas as imagens que devem ser enviadas, em ordem crescente de valores nuh_layer_id, denotados OptLayerIdList e o [[removido: uma variável]] OpTid do ponto de operação associado. OpLayerIdList do ponto de operação associado com um ponto de operação de envio também é referido como OpLayerIdList do ponto de operação de saída [[removido: que é igual a TemporalID mais alto de todas as unidades NAL incluídas no ponto de operação. A lista de identificador de camada associada a lista OptLayerIdList, denotada como OpLayerIdList, consiste da lista de valores nuh_layers_id de todas as unidades NAL incluídos no ponto de operação, em ordem crescente de valores nuh_layer_id."]].
[0114] A figura 2 é um diagrama em bloco ilustrando um codificador de vídeo ilustrativo 20 que pode implementar as técnicas descritas nessa descrição. A figura 2 é fornecida para fins de explicação e não deve ser considerada limitadora das técnicas como amplamente exemplificado e descrito nessa descrição. Para fins de explicação, essa descrição descreve o codificador de vídeo 20 no contexto de codificação HEVC. No entanto, as técnicas dessa descrição podem ser aplicáveis a outros padrões ou métodos de codificação.
[0115] O codificador de vídeo 20 pode ser configurado para enviar vídeo para a entidade de pós- processamento 27, que é outro dispositivo ilustrativo que pode implementar as técnicas descritas nessa descrição. A entidade de pós-processamento 27 deve representar um exemplo de uma entidade de vídeo, tal como um elemento de rede ciente de mídia (MANE), um dispositivo de junção/edição ou outro dispositivo intermediário que pode processar os dados de vídeo codificados do codificador de vídeo 20. Em alguns casos, a entidade de pós-processamento 27 pode ser um exemplo de uma entidade de rede. Em alguns sistemas de codificação de vídeo, a entidade de pós-processamento 27 e o codificador de vídeo 20 podem ser partes de dispositivos separados, enquanto em outros casos, a funcionalidade descrita com relação à entidade de pós-processamento 27 pode ser realizada pelo menos dispositivo que compreende o codificador de vídeo 20.
[0116] O codificador de vídeo 20 pode realizar a intracodificação e intercodificação de blocos de vídeo dentro de fatias de vídeo. A intracodificação se baseia na previsão espacial para redução ou remoção de redundância espacial em vídeo dentro de um determinado quadro ou imagem de vídeo. A intercodificação se baseia na previsão temporal para redução ou remoção de redundância temporal em vídeo dentro de quadros ou imagens adjacentes de uma sequência de vídeo. O intramodo (modo I) pode se referir a qualquer um dos modos de compressão com base em espaço. Intermodos, tal como previsão unidirecional (modo P) ou previsão dupla (modo B), podem se referir a qualquer um dentre vários modos de compressão com base em tempo.
[0117] No exemplo da figura 2, o codificador de vídeo 20 inclui uma unidade de partição 35, uma unidade de processamento de partição 41, uma unidade de filtro 63, uma memória de imagem de referência 64, um somador 50, uma unidade de processamento de transformação 52, uma unidade de quantização 54, e uma unidade de codificação por entropia 56. A unidade de processamento por previsão 41 inclui a unidade de estimativa de movimento 42, a unidade de compensação de movimento 44 e a unidade de processamento por intraprevisão 46. Para a reconstrução de bloco de vídeo, o codificador de vídeo 20 também inclui a unidade de quantização inversa 58, a unidade de processamento de transformação inversa 60 e o somador 62. A unidade de filtro 63 deve representar um ou mais filtros de circuito tal como um filtro de desbloqueio, um filtro de circuito adaptativo (ALF), e um filtro de desvio adaptativo de amostra (SAO). Apesar de a unidade de filtro 63 ser ilustrada na figura 2 como estando em um filtro de circuito, em outras configurações, a unidade de filtro 63 pode ser implementada como um filtro pós-circuito.
[0118] Como ilustrado na figura 2, o codificador de vídeo 20 recebe dados de vídeo, e a unidade de partição 35 divide os dados em blocos de vídeo. Essa partição também pode incluir a partição em fatias, tiles ou outras unidades maiores, além de partição de bloco de vídeo, pode exemplo, de acordo com uma estrutura de quadtree de LCUs e CUs. O codificador de vídeo 20 geralmente ilustra os componentes que codificam os blocos de vídeo dentro de uma fatia de vídeo a ser codificada. A fatia pode ser dividida em múltiplos blocos de vídeo (e possivelmente em conjuntos de blocos de vídeo referidos como tiles). A unidade de processamento de previsão 41 pode selecionar um dentre uma pluralidade de possíveis modos de codificação, tal como um dentre uma pluralidade de modos de intracodificação ou um dentre uma pluralidade de modos de intercodificação, para o bloco de vídeo atual com base em resultados de erro (por exemplo, taxa de codificação e nível de distorção). A unidade de processamento de previsão 41 pode fornecer o bloco intracodificado ou intercodificado resultante para o somador 50 para gerar os dados de bloco residuais e para o somador 62 para reconstruir o bloco codificado para uso como uma imagem de referência.
[0119] A unidade de processamento de intraprevisão 46 dentro da unidade de processamento de previsão 41 pode realizar a codificação por intraprevisão do bloco de vídeo atual com relação a um ou mais blocos vizinhos no mesmo quadro ou fatia que o bloco atual a ser codificado para fornecer compressão espacial. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 dentro da unidade de processamento de previsão 41 realizam a codificação por interprevisão do bloco de vídeo atual com relação a um ou mais blocos de previsão em uma ou mais imagens de referência para fornecer a compressão temporal.
[0120] A unidade de estimativa de movimento 42 pode ser configurada para determinar o modo de interprevisão para uma fatia de vídeo de acordo com um padrão predeterminado para uma sequência de vídeo. O padrão predeterminado pode designar fatias de vídeo na sequência como fatias P ou fatias B. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 podem ser altamente integradas, mas são ilustradas separadamente para fins conceituais. A estimativa de movimento, realizada pela unidade de estimativa de movimento 42, é o processo de geração de vetores de movimento, que estima o movimento para os blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo dentro de um quadro de vídeo atual ou imagem com relação a um bloco de previsão dentro de uma imagem de referência.
[0121] Um bloco de previsão é um bloco que é considerado muito próximo da PU do bloco de vídeo a ser codificado em termos de diferença de pixel, que pode ser determinado pela soma da diferença absoluta (SAD), soma da diferença quadrada (SSD), ou outras métricas de diferença. Em alguns exemplos, o codificador de vídeo 20 pode calcular os valores para as posições de pixel subinteiro das imagens de referência armazenadas na memória de imagem de referência 64. Por exemplo, o codificador de vídeo 20 pode interpolar os 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 relativa às posições de pixel total e posições de pixel fracionado e enviar um vetor de movimento com a precisão de pixel fracionado.
[0122] A unidade de estimativa de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia intercodificada pela comparação da posição da PU com a posição de um bloco de previsão de uma imagem de referência. A imagem de referência pode ser selecionada a partir de uma primeira lista de imagens de referência (Lista0) ou uma segunda lista de imagens de referência (Lista 1), cada uma das quais identifica uma ou mais imagens de referência armazenadas na memória da imagem de referência 64. A unidade de estimativa de movimento 42 envia o vetor de movimento calculado para a unidade de codificação por entropia 56 e a unidade de compensação de movimento 44.
[0123] A compensação de movimento, realizada pela unidade de compensação de movimento 44, pode envolver a coleta ou geração de bloco de previsão com base no vetor de movimento determinado pela estimativa de movimento, possivelmente realizando interpolações com a precisão de subpixel. Depois de receber o vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco de previsão para o qual o vetor de movimento aponta em numa das listas de imagens de referência. O codificador de vídeo 20 forma um bloco de vídeo residual pela subtração de valores de pixel do bloco de previsão dos valores de pixel do bloco de vídeo atual sendo codificado, formando os valores de diferença de pixel. Os valores de diferença de pixel formam dados residuais para o bloco, e podem incluir ambos os componentes de diferença de luminescência e crominância. O somador 50 representa o componente ou componentes que realizam essa operação de subtração. A unidade de compensação de movimento 44 também pode gerar elementos de sintaxe associados com os blocos de vídeo e fatia de vídeo para uso pelo decodificador de vídeo 30 na decodificação de blocos de vídeo da fatia de vídeo.
[0124] A unidade de processamento de intraprevisão 46 pode intraprever um bloco atual, como uma alternativa para a interprevisão realizada pela unidade de estimativa de movimento 42 e unidade de compensação de movimento 44, como descrito acima. Em particular, a unidade de processamento por intraprevisão 46 pode determinar um modo de intraprevisão a ser utilizado para codificar um bloco atual. Em alguns exemplos, a unidade de processamento por intraprevisão 46 pode codificar um bloco atual utilizando vários modos de intraprevisão, por exemplo, durante passagens de codificação separadas, e a unidade de processamento por intraprevisão 46 (ou unidade de seleção de modo 40, em alguns exemplos) pode selecionar um modo de intraprevisão adequado para uso a partir dos modos testados. Por exemplo, a unidade de processamento por intraprevisão 46 pode calcular os valores de distorção de taxa utilizando uma análise de distorção de taxa para os vários modos de intraprevisão testados, e selecionar o modo de intraprevisão possuído as melhores características de distorção de taxa entre os modos testados. A análise de distorção de taxa geralmente determina uma quantidade de distorção (ou erro) entre um bloco codificado e um bloco não codificado original que foi codificado para produzir o bloco codificado, além de uma taxa de bit (isso é, um número de bits) utilizada par produzir o bloco codificado. A unidade de processamento de intraprevisão 46 pode calcular as razões a partir das distorções e taxas para os vários blocos codificados para determinação de qual modo de intraprevisão exibe o melhor valor de distorção de taxa para o bloco.
[0125] Em qualquer caso, depois da seleção de um modo de intraprevisão para um bloco, a unidade de processamento por intraprevisão 46 pode fornecer informação indicativa do modo de intraprevisão selecionado para o bloco codificar por entropia a unidade 56. A unidade de codificação por entropia 56 pode codificar a informação indicando o modo de intraprevisão selecionado de acordo com as técnicas dessa descrição. O codificador de vídeo 20 pode incluir na sequência de bits transmitida, dados de configuração 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 modificadas (também referidas como tabelas de mapeamento de palavra código), definições dos 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 uso para cada um dos contextos.
[0126] Depois que a unidade de processamento por previsão 41 gera o bloco de previsão para o bloco de vídeo atual através de interprevisão ou intraprevisão, o codificador de vídeo 20 forma um bloco de vídeo residual pela subtração do bloco de previsão do bloco de vídeo atual. Os dados de vídeo residuais no bloco residual podem ser incluídos em uma ou mais TUs e aplicados à unidade de processamento de transformação 52. A unidade de processamento de transformação 52 transforma os dados de vídeo residuais em coeficientes de transformação residual utilizando uma transformação, tal como uma transformação de cosseno discreto (DCT) ou uma transformação conceitualmente similar. A unidade de processamento de transformação 52 pode converter os dados de vídeo residuais de um domínio de pixel em um domínio de transformação, tal como um domínio de frequência.
[0127]A unidade de processamento de transformação 52 pode enviar os coeficientes de transformação resultantes para a unidade de quantização 54. A unidade de quantização 54 quantiza os coeficientes de transformação para reduzir ainda mais a taxa de bits. O processo de quantização pode reduzir a profundidade de bit associada com todos ou alguns dos coeficientes. O grau de quantização pode ser modificado pelo ajuste de um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54 pode então realizar uma digitalização da matriz incluindo os coeficientes de transformação quantizados. Alternativamente, a unidade de codificação por entropia 56 pode realizar a digitalização.
[0128] Seguindo a quantização, a unidade de codificação por entropia 56 codifica por entropia os coeficientes de transformação quantizados. Por exemplo, a unidade de codificação por entropia 56 pode realizar a codificação de comprimento variável adaptativa de contexto (CAVLC), a codificação aritmética binária adaptativa de contexto (CABAC), a codificação aritmética binária adaptativa de contexto com base em sintaxe (SBAC), a codificação por entropia de partição de intervalo de probabilidade (PIPE), ou outra metodologia ou técnica de codificação por entropia. Seguindo a codificação por entropia pela unidade de codificação por entropia 56, a sequência de bits codificada pode ser transmitida para o decodificador de vídeo 30, ou arquivada para transmissão ou recuperação posterior pelo decodificador de vídeo 30. A unidade de codificação por entropia 56 também pode codificar por entropia os vetores de movimento e outros elementos de sintaxe para a fatia de vídeo atual sendo codificada.
[0129] A unidade de quantização inversa 58 e a unidade de processamento de transformação inversa 60 aplicam a quantização inversa e a transformação inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel par auso posterior como um bloco de referência de uma imagem de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência pela adição de bloco residual a um bloco de previsão de uma das imagens de referência dentro de uma das listas de imagens de referência. 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 os valores de pixel subinteiro para uso na estimativa de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de previsão de compensação de movimento produzido pela unidade de compensação de movimento 44 para produzir um bloco de referência para o armazenamento na memória de imagem de referência 64. O bloco de referência pode ser utilizado pela unidade de estimativa de movimento 42 e unidade de compensação de movimento 44 como um bloco de referência para interprever um bloco em um quadro ou imagem de vídeo subsequente.
[0130] De acordo com aspectos dessa descrição, o codificador de vídeo 20 pode ser configurado para gerar um número de elementos de sintaxe, tal como os elementos de sintaxe associados com as mensagens SEI descritas acima, incluindo mensagens SEI para codecs de múltiplas camadas. Por exemplo, o codificador de vídeo 20 pode ser configurado para gerar elementos de sintaxe de acordo com qualquer combinação de quinze aspectos descritos acima com relação à figura 1. Em alguns casos, o codificador de vídeo 20 pode codificar tais elementos de sintaxe utilizando a unidade de codificação por entropia 56 ou outra unidade responsável pela codificação de dados e geração de uma sequência de bits codificada. Adicionalmente, a entidade de pós-processamento 27 da figura 2 é outro dispositivo ilustrativo que pode implementar as técnicas descritas nessa descrição com relação às mensagens SEI, incluindo mensagens SEI para codecs de múltiplas camadas.
[0131] A figura 3 é um diagrama em bloco ilustrando um decodificador de vídeo ilustrativo 30 que pode implementar as técnicas descritas nessa descrição. A figura 3 é fornecida para fins de explicação e não limita as técnicas como amplamente exemplificado e descrito nessa descrição. Para fins de explicação, essa descrição descreve o decodificador de vídeo 30 no contexto de codificação HEVC. No entanto, as técnicas dessa descrição podem ser aplicáveis a outros padrões ou métodos de codificação.
[0132] No exemplo da figura 3, o decodificador de vídeo 30 inclui uma unidade de decodificação por entropia 80, unidade de processamento de previsão 81, unidade de quantização inversa 86, unidade de processamento de transformação inversa 88, somador 90, unidade de filtro 91, e memória de imagem de referência 92. A unidade de processamento de previsão 81 inclui a unidade de compensação de movimento 92 e a unidade de processamento de intraprevisão 84. O decodificador de vídeo 30 pode, em alguns exemplos, realizar uma passagem de decodificação geralmente alternada com a passagem de codificação descrita com relação ao codificador de vídeo 20 da figura 2.
[0133] Durante o processo de decodificação, o decodificador de vídeo 30 recebe uma sequência de bits de vídeo codificados que representam os 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 sequência de bits de vídeo codificada da entidade de rede 78. A entidade de rede 78 pode, por exemplo, ser um servidor, um MANE, um editor/coladeira de vídeo, ou outro dispositivo similar configurado para implementar uma ou mais das técnicas descritas acima. A entidade de rede 78 pode ou não incluir um codificador de vídeo, tal como um codificador de vídeo 20. Algumas das técnicas descritas nessa descrição podem ser implementadas pela entidade de rede 78 antes de a entidade de rede 78 transmitir a sequência 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 78 e o decodificador de vídeo 30 podem ser partes de dispositivos separados, enquanto em outros casos, a funcionalidade descrita com relação à entidade de rede 78 pode ser realizada pelo mesmo dispositivo que compreende o decodificador de vídeo 30.
[0134] A unidade de decodificação por entropia 80 do decodificador de vídeo 30 decodifica por entropia a sequência de bits para gerar coeficientes quantizados, vetores de movimento e outros elementos de sintaxe. A unidade de decodificação por entropia 80 envia os vetores de movimento e outros elementos de sintaxe para a unidade de processamento por previsão 81. O decodificador de vídeo 30 pode receber elementos de sintaxe no nível de fatia de vídeo e/ou nível de bloco de vídeo.
[0135] Quando a fatia de vídeo é codificada como uma fatia intracodificada (I), a unidade de processamento por intraprevisão 84 da unidade de processamento por previsão 81 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 sinalizado e dados dos blocos decodificados previamente do quadro ou imagem atual. Quando o quadro de vídeo é codificado como uma fatia intercodificada (isso é, B ou P), a unidade de compensação de movimento 82 da unidade de processamento por previsão 81 produz blocos de previsão para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe recebidos da unidade de decodificação por entropia 80. Os blocos de previsão podem ser produzidos a partir de uma ou mais das imagens de referência dentro de uma das listas de imagens de referência. O decodificador de vídeo 30 pode construir as listas de quadros de referência, Lista 0 e Lista 1, utilizando as técnicas de construção padrão com base nas imagens de referência armazenadas na memória de imagem de referência 92.
[0136] A unidade de compensação de movimento 82 determina a informação de previsão para um bloco de vídeo da fatia de vídeo atual pela análise de vetores de movimento e outros elementos de sintaxe, e utiliza a informação de previsão para produzir os blocos de previsão para o bloco de vídeo atual sendo decodificado. Por exemplo, a unidade de compensação de movimento 82 utiliza alguns dos elementos de sintaxe recebidos para determinar um modo de previsão (por exemplo, intraprevisão 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ção de construção para uma ou mais das listas de imagens de referência para a fatia, vetores de movimento para cada bloco de vídeo intercodificado da fatia, situação de interprevisão para cada bloco de vídeo intercodificado da fatia, e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[0137] A unidade de compensação de movimento 82 também pode realizar a interpolação com base nos filtros de interpolação. A unidade de compensação de movimento 82 pode utilizar filtro de interpolação como utilizados pelo codificador de vídeo 20 durante a codificação dos blocos de vídeo para calcular os valores interpolados para os pixels subinteiros dos blocos de referência. Nesse caso, a unidade de compensação de movimento 82 pode determinar os filtros de interpolação utilizados pelo codificador de vídeo 20 a partir dos elementos de sintaxe recebidos e utilizar os filtros de interpolação para produzir os blocos de previsão.
[0138] A unidade de quantização inversa 86 quantiza de forma inversa, isso é, desquantiza, os coeficientes de transformação quantizados fornecidos na sequência de bits e decodificados pela unidade de decodificação por entropia 80. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização calculado pelo codificador de vídeo 20 para cada bloco de vídeo na fatia de vídeo para determinar um grau de quantização e, da mesma forma, um grau de quantização inversa que deve ser aplicado. A unidade de processamento de transformação inversa 88 aplica uma transformação inversa, por exemplo, uma DCT inversa, uma transformação de inteiro inversa, ou um processo de transformação inversa conceitualmente similar, aos coeficientes de transformação a fim de produzir blocos residuais no domínio de pixel.
[0139] Depois de a unidade de compensação de movimento 82 gerar o bloco de previsão para o bloco de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe, o decodificador de vídeo 30 forma um bloco de vídeo decodificado pela soma de blocos residuais a partir da unidade de processamento de transformação inversa 88 com os blocos de previsão correspondentes gerados pela unidade de compensação de movimento 82. O somador 90 representa o componente ou componentes que realizam essa operação de soma. Se desejado, os filtros de circuito (no circuito de codificação ou depois do circuito de codificação) também podem ser utilizados para suavizar as transições de pixel, ou de outra forma aperfeiçoar a qualidade de vídeo.
[0140] A unidade de filtro 91 deve representar um ou mais filtros de circuito tal como um filtro de desbloqueio, um filtro de circuito adaptativo (ALF), e um filtro de desvio adaptativo de amostra (SAO). Apesar de a unidade de filtro 91 ser ilustrada na figura 3 como estando em um filtro de circuito, em outras configurações, a unidade de filtro 91 pode ser implementada como um filtro de pós- circuito. Os blocos de vídeo decodificados em um determinado quadro ou imagem são então armazenados na memória de imagens de referência 92, que armazena as imagens de referência utilizadas para a compensação de movimento subsequente. A memória de imagens de referência 92 também armazena o vídeo decodificador para apresentação posterior em um dispositivo de exibição, tal como um dispositivo de exibição 31 da figura 1.
[0141] De acordo com os aspectos dessa descrição, o decodificador de vídeo 30 pode ser configurado para analisar e decodificar um número de elementos de sintaxe, tal como os elementos de sintaxe associados com as mensagens SEI descritas acima, incluindo mensagens SEI para codecs de múltiplas camadas. Por exemplo, o decodificador de vídeo 30 pode ser configurado para analisar e decodificar os elementos de sintaxe de acordo com qualquer combinação de quinze aspectos descritos acima com relação à figura 1. Em alguns casos, o decodificador de vídeo 30 pode decodificar tais elementos de sintaxe utilizando a unidade de decodificação por entropia 80 ou outra unidade responsável pela decodificação de dados a partir de uma sequência de bits codificada. Adicionalmente, a entidade de rede 78 da figura 3 (que pode ser um elemento de rede ciente de mídia) é outro dispositivo ilustrativo que pode implementar as técnicas descritas nessa descrição com relação às mensagens SEI, incluindo as mensagens SEI para codecs de múltiplas camadas.
[0142] A figura 4 é um diagrama em bloco ilustrando a unidade de encapsulamento 21 em maiores detalhes. No exemplo da figura 4, a unidade de encapsulamento 21 inclui uma interface de entrada de vídeo 100, uma interface de entrada de áudio 102, uma unidade de criação de arquivo 104, e uma interface de saída de arquivo de vídeo 106. A unidade de criação de arquivo de vídeo 104, nesse exemplo, inclui uma unidade de geração de mensagem de informação de melhoria suplementar (SEI) 108, uma unidade de designação de identificador de visualização (ID) 110, uma unidade de criação de representação 112, e uma unidade de criação de ponto de operação 114.
[0143] A interface de entrada de vídeo 100 e a interface de entrada de áudio 102 recebem dados de vídeo e áudio codificados, respectivamente. Enquanto não é ilustrado no exemplo da figura 1, o dispositivo fonte 12 também pode incluir uma fonte de áudio e o codificador de áudio pode gerar dados de áudio e codificar os dados de áudio, respectivamente. A unidade de encapsulamento 21 pode então encapsular os dados de áudio codificados e os dados de vídeo codificados para formar um arquivo de vídeo. A interface de entrada de vídeo 100 e a interface de entrada de áudio 102 podem receber dados de vídeo e áudio codificados à medida que os dados são codificados, ou podem recuperar os dados de vídeo e áudio codificados de um meio legível por computador. Depois de receber os dados de vídeo e áudio codificados, a interface de entrada de vídeo 100 e a interface de entrada de áudio 102 passam os dados de vídeo e áudio codificados para a unidade de criação de arquivo de vídeo 104 para montagem em um arquivo de vídeo.
[0144] A unidade de criação de arquivo de vídeo 104 pode corresponder a uma unidade de controle incluindo hardware, software, e/ou firmware configurados para realizar as funções e procedimentos atribuídos à mesma. A unidade de controle pode realizar adicionalmente as funções atribuídas à unidade de encapsulamento 21 geralmente. Para exemplos nos quais a unidade de criação de arquivo de vídeo 104 é consubstanciada em software e/ou firmware, a unidade de encapsulamento 21 pode incluir um meio legível por computador compreendendo instruções para a unidade de criação de arquivo de vídeo 104 e uma unidade de processamento para executar as instruções Cada uma das subunidades da unidade de criação de arquivo de vídeo 104 (unidade de geração de mensagem SEI 108, unidade de designação de ID de visualização 110, unidade de criação de representação 112, e unidade de criação de ponto de operação 114, nesse exemplo) pode ser implementada como unidades de hardware e/ou módulos de software individuais e podem ser funcionalmente integrados ou adicionalmente separados em subunidades adicionais.
[0145] A unidade de criação de arquivo de vídeo 104 pode corresponder a qualquer unidade de processamento adequada ou conjunto de circuitos de processamento, tal como, por exemplo, um ou mais microprocessadores, circuitos integrados específicos de aplicativo (ASICs), conjuntos de porta programável em campo (FPGAs), processadores de sinal digital (DSPs), ou qualquer combinação dos mesmos. A unidade de criação de arquivo de vídeo 104 pode incluir adicionalmente um meio legível por computador não transitório armazenando instruções para toda ou qualquer uma das unidades de geração de mensagem SEI 108, unidade de designação de ID de visualização 110, unidade de criação de representação 112, e unidade de criação de ponto de operação 114, além de um processador para executar as instruções.
[0146] Em geral, a unidade de criação de arquivo de vídeo 104 pode criar um ou mais arquivos de vídeo incluindo dados de áudio e vídeo recebidos. A unidade de criação de arquivo de vídeo 104 pode construir uma descrição de apresentação de mídia (MPD) para o conteúdo de multimídia incluindo duas ou mais visualizações. Em outros exemplos, a unidade de criação de arquivo de vídeo 104 pode criar um manifesto armazenando dados similares aos do MPD para conteúdo de multimídia.
[0147] A unidade de geração de mensagem SEI 108 pode representar uma unidade que gera mensagens SEI. A unidade de geração de mensagem SEI 108 pode, de acordo com as técnicas descritas nessa descrição, ser configurada para gerar vários elementos de sintaxe, tal como os elementos de sintaxe associados com as mensagens SEI descritas acima, incluindo mensagens SEI para codecs de múltiplas camadas. Por exemplo, a unidade de geração de mensagem SEI 108 pode ser configurada para gerar elementos de sintaxe de acordo com qualquer combinação dos quinze aspectos descritos acima com relação à figura 1.
[0148] A unidade de designação de ID de visualização 110 pode designar identificadores de visualização para cada uma das visualizações do conteúdo de multimídia. A unidade de criação de representação 112 pode construir uma ou mais representações para o conteúdo de multimídia, cada uma das quais pode incluir uma ou mais das visualizações para o conteúdo de multimídia. Em alguns exemplos, a unidade de designação de ID de visualização 110 pode incluir dados no MPD e/ou as representações (por exemplo, dados de cabeçalho para as representações) indicando um máximo e um mínimo de identificadores de visualização para visualizações incluídas nas representações. Adicionalmente, a unidade de criação de representação 112 pode fornecer informação no MPD que indica se os IDs de visualização maiores correspondem a visualizações possuindo perspectivas de câmera para a direita ou para a esquerda das perspectivas de câmera para visualizações possuindo IDs de visualização menores.
[0149] Em alguns exemplos, a mesma camada pode ser codificada utilizando várias características de codificação, tal como taxas de quadro diferentes, taxas de bits diferentes, esquemas de codificação diferentes ou outras diferenças. A unidade de criação de representação 112 pode garantir que cada camada incluída em uma representação comum seja codificada de acordo com as mesmas características de codificação. Dessa forma, o MPD e/ou os dados de cabeçalho para representação pode sinalizar um conjunto de características (ou atributos) para a representação que se aplicam a todas as camadas na representação. Ademais, a unidde de criação de representação 112 pode criar múltiplas representações incluindo as mesmas camadas, apesar de com características de codificação potencialmente diferentes. Em alguns exemplos, a unidade de criação de representação 112 pode encapsular cada camada de conteúdo de multimídia em representações individuais. Em tais exemplos, para enviar mais de uma camada, o dispositivo de destino 14 pode solicitar duas ou mais representações do conteúdo de multimídia.
[0150] A unidade de criação de ponto de operação 114 pode criar pontos de operação para uma ou mais representações do conteúdo de multimídia. Em geral, um ponto de operação corresponde a um subconjunto de visualizações em uma representação que são o alvo da saída, onde cada uma das visualizações compartilha um nível temporal comum. Como um exemplo, um ponto de operação pode ser identificado por um valor temporal_id representando o nível temporal alvo e um conjunto de valores view_id representando as visualizações de saída alvo. Um ponto de operação pode ser associado a um subconjunto de sequências de bit, que consiste de visualizações de saída alvo e todas as outras visualizações das quais as visualizações de saída alvo dependem.
[0151] A interface de saída de arquivo de vídeo 106 pode enviar o arquivo de vídeo criado. Por exemplo, a interface de saída de arquivo de vídeo 106 pode ser configurada para fornecer o arquivo de vídeo criado para enviar a interface 22, como descrito acima com relação à figura 1.
[0152] Enquanto as técnicas da figura 4 são descritas com a unidade de encapsulamento 21 para fins ilustrativas, deve-se compreender que técnicas similares podem ser realizadas por outras unidades de processamento de vídeo, tal como a unidade de desencapsulamento 29 (figura 1), o codificador de vídeo 20, ou decodificador de vídeo 30. Por exemplo, a unidade de desencapsulamento 29 pode ser configurada para receber uma sequência de bits de múltiplas camadas e analisar/decodificar a sintaxe notada acima a partir da sequência de bits de múltiplas camadas.
[0153] A figura 5 é um diagrama em bloco ilustrando um conjunto ilustrativo de dispositivos que formam parte da rede 120. Nesse exemplo, a rede 120 inclui os dispositivos de roteamento 124A, 124B (dispositivos de roteamento 124) e o dispositivo de transcodificação 126. Os dispositivos de roteamento 124 e o dispositivo de transcodificação 126 devem representar um número pequeno de dispositivos que pode formar parte da rede 120. Outros dispositivos de rede, tal como comutadores, cubos, circuitos de acesso, firewalls, pontes e outros dispositivos similares também podem ser incluídos na rede 120. Ademais, os dispositivos de rede adicionais podem ser fornecidos ao longo de um percurso de rede entre o dispositivo servidor 122 e o dispositivo de cliente 128. O dispositivo servidor 122 pode corresponder ao dispositivo fonte 12 (figura 1), enquanto o dispositivo de cliente 128 pode corresponder ao dispositivo de destino 14 (figura 1), em alguns exemplos.
[0154] Em geral, os dispositivos de roteamento 124 implementam um ou mais protocolos de roteamento para permutar dados de rede através de rede 120. Em alguns exemplos, os dispositivos de roteamento 124 podem ser configurados para realizar operações proxy ou de armazenamento temporário. Portanto, em alguns exemplos, os dispositivos de roteamento 124 podem ser referidos como dispositivos proxy. Em geral, os dispositivos de roteamento 124 executam protocolos de roteamento para descobrir as rotas através da rede 120. Pela execução de tais protocolos de roteamento, o dispositivo de roteamento 124B pode descobrir uma rota de rede de se mesmo para o dispositivo servidor 122 através do dispositivo de roteamento 124A. Um ou mais dispositivos de roteamento 124 podem compreender um MANE que utiliza um ou mais aspectos dessa descrição.
[0155] As técnicas dessa descrição podem ser implementadas pelos dispositivos de rede tal como dispositivos de roteamento 124 e o dispositivo de transcodificação 126, mas também podem ser implementadas pelo dispositivo de cliente 128. Dessa forma, os dispositivos de roteamento 124, o dispositivo de transcodificação 126, o dispositivo de cliente 128 representam exemplos de dispositivos configurados para realizar as técnicas dessa descrição. Ademais, os dispositivos da figura 1, e o codificador 20 ilustrado na figura 2 e o decodificador 30 ilustrado na figura 3, também são dispositivos ilustrativos que podem ser configurados para realizar as técnicas dessa descrição.
[0156] A figura 6 é um fluxograma ilustrando uma operação ilustrativa de um dispositivo de processamento de vídeo configurado para codificar uma mensagem SEI de acordo com vários aspectos das técnicas descritas nessa descrição. No exemplo da figura 6, um dispositivo de processamento de vídeo, tal como um codificador de vídeo 20, a unidade de encapsulamento 21, a unidade de desencapsulamento 29, a entidade pós-processamento 27, a entidade de rede 78, obtém uma ou mais unidades NAL VCL de uma primeira camada de uma sequência de bits de múltiplas camadas (140). Por exemplo, em casos nos quais o dispositivo de processamento de vídeo é um codificador de vídeo ou um decodificador de vídeo, o dispositivo de processamento de vídeo pode codificar as unidades NAL VCL em uma sequência de bits de múltiplas camadas ou decodificar as unidades NAL VCL de uma sequência de bits de múltiplas camadas. Nos exemplos nos quais o dispositivo de processamento de vídeo não é configurado para codificar ou decodificar tais unidades NAL VCL, o dispositivo de processamento de vídeo pode analisar e obter as unidades NAL VCL a partir de uma sequência de bits de múltiplas camadas.
[0157] O dispositivo de processamento de vídeo também codifica (por exemplo, codifica ou decodifica) uma mensagem SEI que é aplicável às unidades NAL VCL da primeira camada para estarem juntas com a primeira camada na sequência de bits de múltiplas camadas (142). Por exemplo, de acordo com os aspectos dessa descrição, o dispositivo de processamento de vídeo só codifica as unidades NAL não VCL contendo a mensagem SEI aplicável às unidades NAL VCL da primeira camada juntamente com as unidades NAL VCL da primeira camada, e não inclui a mensagem SEI com outras camadas da sequência de bits de múltiplas camadas. Por exemplo, de acordo com os aspectos dessa descrição, a sequência de bits de múltiplas camadas não contém quaisquer imagens codificadas de qualquer outra camada da sequência de bits de múltiplas camadas entre as unidades NAL VCL da primeira camada e as unidades NAL não VCL contendo a mensagem SEI aplicável às unidades NAL VCL da primeira camada. Dessa forma, a mensagem SEI permanece junto da camada à qual a mensagem SEI se aplica para acessar as unidades possuindo múltiplos componentes de camada. Em alguns exemplos, o dispositivo de processamento de vídeo pode codificar a mensagem SEI para ser diretamente adjacente às unidades NAL VCL à qual a mensagem se aplica na sequência de bits de múltiplas camadas.
[0158] Em alguns exemplos, as unidades NAL VCL da primeira camada são unidades NAL VCL de uma primeira imagem da primeira camada e a mensagem SEI é uma mensagem SEI de prefixo aplicável à primeira imagem da primeira camada. Em tais exemplos, apenas a codificação de unidades NAL não VCL contendo a mensagem SEI de prefixo juntamente com as unidades NAL VCL podem incluir apenas a codificação de unidades NAL não VCL antecedendo as unidades NAL VCL na sequência de bits. Isso é, o dispositivo de processamento de vídeo pode codificar as unidades NAL não VCL contendo a mensagem SEI a ser localizada imediatamente antes das unidades NAL VCL da primeira imagem na sequência de bits de múltiplas camadas.
[0159] Em alguns exemplos, as unidades NAL VCL da primeira camada são unidades NAL VCL de uma primeira imagem da primeira camada e a mensagem SEI é uma mensagem SEI de sufixo aplicável à primeira imagem da primeira camada. Em tais exemplos, apenas a codificação das unidades NAL não VCL contendo a mensagem SEI de sufixo juntamente com as unidades NAL VCL pode incluir apenas a codificação de unidades NAL não VCL subsequentes às unidades NAL VCL na sequência de bits. Isso é, o dispositivo de processamento de vídeo pode codificar as unidades NAL não VCL contendo a mensagem SEI a ser localizada imediatamente depois das unidades NAL VCL da primeira imagem na sequência de bits de múltiplas camadas.
[0160] No exemplo da figura 6, o dispositivo de processamento de vídeo também obtém unidades NAL VCL de uma segunda camada da sequência de bits de múltiplas camadas (144). Por exemplo, o dispositivo de processamento de vídeo pode codificar (isso é, codificar ou decodificar) fatias de uma imagem de uma segunda camada da sequência de bits de múltiplas camadas. O dispositivo de processamento de vídeo também codifica uma mensagem SEI que é aplicável às unidades NAL VCL da segunda camada para estar junto com as unidades NAL VCL da segunda camada (146). Por exemplo, como descrito acima, o dispositivo de processamento de vídeo pode codificar a sequência de bits de múltiplas camadas de modo que a sequência de bits não contenha quaisquer imagens codificadas de qualquer outra camada da sequência de bits de múltiplas camadas entre as unidades NAL VCL da segunda camada e as unidades NAL não VCL contendo a mensagem SEI aplicável às unidades NAL VCL da segunda camada. Dessa forma, a mensagem SEI permanece junto da camada à qual a mensagem SEI se aplica para acessar as unidades possuindo múltiplos componentes de camada.
[0161] Novamente, em alguns exemplos, o dispositivo de processamento de vídeo pode codificar uma ou mais unidades NAL não VCL contendo uma segunda mensagem SEI de prefixo aplicável às unidades NAL VCL da segunda imagem seguindo a primeira imagem na sequência de bits. O dispositivo de processamento de vídeo também pode codificar uma ou mais unidades NAL não VCL contendo uma segunda mensagem SEI de sufixo aplicável a unidades NAL VCL da segunda imagem seguindo a segunda imagem na sequência de bits.
[0162] Em alguns casos, o dispositivo de processamento de vídeo também pode determinar um parâmetro de repetição máximo para a mensagem SEI com base em uma unidade de imagem que contém unidades NAL VCL de uma primeira imagem da primeira camada e unidades NAL não VCL associadas da primeira imagem.
[0163] Deve-se compreender também que as etapas ilustradas e descritas com relação à figura 6 são fornecidas meramente como um exemplo. Isso é, as etapas ilustradas no exemplo da figura 6 não precisam ser realizadas necessariamente na ordem ilustrada na figura 6, e menos, mais ou outras etapas podem ser realizadas. Ademais, enquanto as técnicas são genericamente descritas acima com relação a um dispositivo de processamento de vídeo, as técnicas podem ser implementadas por uma variedade de dispositivos de processamento de vídeo, tal como o codificador de vídeo 20, a unidade de encapsulamento 21, a unidade de desencapsulamento 29, a entidade de pós-processamento 27, a entidade de rede 78 ou outras unidades de processamento.
[0164] A figura 7 é um fluxograma ilustrando outra operação ilustrativa de um dispositivo de processamento de vídeo configurado para codificar uma mensagem SEI de acordo com vários aspectos das técnicas descritas nessa descrição. No exemplo da figura 7, um dispositivo de processamento de vídeo, tal como o codificador de vídeo 20, a unidade de encapsulamento 21, a unidade de desencapsulamento 29, a entidade de pós-processamento 27, a entidade de rede 78, codifica uma ou mais unidades NAL não VCL de uma camada de uma sequência de bits de múltiplas camadas que contém uma mensagem SEI de hash de imagem decodificada (150). Como notado acima, uma mensagem hash de imagem decodificada pode fornecer uma soma de verificação derivada dos valores de amostra de uma imagem decodificada. A mensagem hash de imagem decodificada pode ser utilizada, por exemplo, por um decodificador de vídeo tal como o decodificador de vídeo 30, para detectar se uma imagem foi recebida e decodificada corretamente.
[0165]O dispositivo de processamento de vídeo também determina um identificador de camada associado com as unidades NAL não VCL (152). O dispositivo de processamento de vídeo também determina um conjunto de camadas da sequência de bits de múltiplas camadas às quais a mensagem SEI de hash de imagem decodificada é aplicável com base em um identificador de camada das unidades NAL não VCL contendo a mensagem SEI de hash de imagem decodificada (154). De acordo com os aspectos dessa descrição, o conjunto de camadas aplicáveis de uma mensagem SEI de hash de imagem decodificada pode ser especificado como sendo a camada com o identificador de camada (nuh_layer_id) que é igual ao identificador de camada (nuh_layer_id) da unidade NAL SEI que contém a mensagem SEI. Em alguns casos, a mensagem SEI de hash de imagem decodificada só pode ser uma mensagem SEI não embutida.
[0166] Em alguns exemplos, adicionalmente ou alternativamente, o dispositivo de processamento de vídeo pode codificar também uma ou mais segundas unidades NAL não VCL da sequência de bits de múltiplas camadas. As segundas unidades NAL não VCL podem conter uma mensagem SEI de conjuntos de parâmetros ativos que indica os conjuntos de parâmetros que estão ativos para uma parte particular de dados de vídeo. O dispositivo de processamento de vídeo também pode determinar que a mensagem SEI de conjuntos de parâmetros ativos é aplicável a todas as camadas da sequência de bits de múltiplas camadas com base em uma ou mais segundas unidades NAL não VCL contendo a mensagem SEI de conjuntos de parâmetros ativos. Isso é, o dispositivo de processamento de vídeo pode determinar que a mensagem SEI de conjuntos de parâmetros ativos é aplicável a todas as camadas da sequência de bits de múltiplas camadas em virtude da mensagem SEI ser uma mensagem SEI de conjuntos de parâmetros ativos. Em alguns exemplos, o dispositivo de processamento de vídeo pode codificar adicionalmente um ou mais elementos de sintaxe indicando que a mensagem SEI de conjuntos de parâmetros ativos é aplicável a todas as camadas da sequência de bits de múltiplas camadas. Em alguns exemplos, o dispositivo de processamento de vídeo só pode codificar a mensagem SEI dos conjuntos de parâmetros ativos como uma mensagem SEI não embutida.
[0167] Em alguns exemplos, adicionalmente ou alternativamente, o dispositivo de processamento de vídeo pode codificar um ou mais elementos de sintaxe indicando que a informação de campo de quadro está presente em uma mensagem SEI de temporização de imagem da sequência de bits de múltiplas camadas. O dispositivo de processamento de vídeo também pode aplicar a informação de campo de quadro a todas as camadas em todos os pontos de operação da sequência de bits de múltiplas camadas à qual a mensagem SEI de temporização de imagem se aplica.
[0168] Deve-se compreender que as etapas ilustradas e descritas com relação à figura 7 são fornecidas meramente como um exemplo. Isso é, as etapas ilustradas no exemplo da figura 7 não precisam ser realizadas necessariamente na ordem ilustrada na figura 7, e menos, mais ou outras etapas podem ser realizadas. Ademais, enquanto as técnicas são genericamente descritas acima com relação a um dispositivo de processamento de vídeo, as técnicas podem ser implementadas por uma variedade de dispositivos de processamento de vídeo, tal como o codificador de vídeo 20, a unidade de encapsulamento 21, a unidade de desencapsulamento 29, a entidade de pós-processamento 27, a entidade de rede 78 ou outras unidades de processamento.
[0169] A figura 8 é um fluxograma ilustrando outra operação ilustrativa de um dispositivo de processamento de vídeo configurado para codificar uma mensagem SEI de acordo com vários aspectos das técnicas descritas nessa descrição. No exemplo da figura 8, um dispositivo de processamento de vídeo, tal como o codificador de vídeo 20, unidade de encapsulamento 21, unidade de desencapsulamento 29, entidade de pós-processamento 27, entidade de rede 78, podem codificar uma ou mais unidades NAL não VCL de uma camada de uma sequência de bits de múltiplas camadas que contém uma mensagem SEI possuindo um tipo de carga útil SEI (160). O dispositivo de processamento de vídeo também pode determinar a sintaxe da sequência de bits de múltiplas camadas à qual a mensagem SEI se aplica com base no tipo de carga útil (162). Por exemplo, o dispositivo de processamento de vídeo pode determinar um ou mais valores de sintaxe da sequência de bits de múltiplas camadas à qual a mensagem SEI se aplica com base no tipo de carga útil SEI.
[0170] Por exemplo de acordo com os aspectos dessa descrição, a mensagem SEI pode incluir uma mensagem SEI de embutimento escalonável. Nesse exemplo, o dispositivo de processamento de vídeo pode determinar, com base no tipo de carga útil SEI sendo incluído em um primeiro conjunto de tipos de carga útil, que um elemento de sintaxe bitstream_subset_flag da mensagem SEI de embutimento escalonável tem valor igual a zero. Em um exemplo, o primeiro conjunto de tipos de carga útil inclui os tipos de carga útil 2, 3, 6, 9, 15, 17, 19, 22, 23, 45, 47, 128, 131, 132 e 134, como descrito acima com relação à figura 1, apesar de o conjunto poder incluir mais ou menos do que os identificados no exemplo.
[0171] Em outro exemplo, a mensagem SEI pode ser uma mensagem SEI não embutida. Nesse exemplo, o dispositivo de processamento de vídeo pode determinar, com base no tipo de carga útil SEI sendo incluído em um primeiro conjunto de tipos de carga útil, que um elemento de sintaxe de identificador de camada para as unidades NAL não VCL contendo a mensagem SEI é igual a um elemento de sintaxe de identificador de camada das unidades NAL VCL associadas com a mensagem SEI. Em um exemplo, o primeiro conjunto de tipos de carga útil inclui tipos de carga útil 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132 e 134, apesar de o conjunto poder incluir mais ou menos desses identificados.
[0072] Em outro exemplo ainda, a mensagem SEI pode ser uma mensagem SEI de embutimento escalonável. Nesse exemplo, o dispositivo de processamento de vídeo pode determinar, com base no tipo de carga útil SEI senso incluído em um primeiro conjunto de tipos de carga útil, que uma ou mais unidades NAL não VCL contendo a mensagem SEI de embutimento escalonável possui TemporalId que é igual a zero e maxTemporalId[i]que é igual a sete para todos os valores de i. Em um exemplo, o primeiro conjunto de tipos de carga útil inclui tipos de carga útil 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132 e 134, apesar de o conjunto poder incluir mais ou menos que os identificados no exemplo.
[0173] De acordo com os aspectos dessa descrição, adicionalmente ou alternativamente, o dispositivo de processamento de vídeo pode codificar uma mensagem SEI de conjuntos de parâmetros ativos da sequência de bits de múltiplas camadas em uma mensagem SEI não embutida e não em uma mensagem SEI de embutimento escalonável.
[0174] Adicionalmente ou alternativamente, o dispositivo de processamento de vídeo pode determinar que o identificador de camada da camada de dados de vídeo de múltiplas camadas tem valor igual a zero com base na mensagem SEI contendo uma mensagem SEI de período de armazenamento não embutida, uma mensagem SEI de temporização de imagem, ou uma mensagem SEI de informação de unidade de decodificação. Em alguns exemplos, o dispositivo de processamento de vídeo também pode codificar um elemento de sintaxe identificador de camada para ter um valor igual a zero.
[0175] Adicionalmente ou alternativamente, o dispositivo de processamento de vídeo pode codificar um elemento de sintaxe bitstream_subset_flag da sequência de bits de múltiplas camadas. O dispositivo de codificação de vídeo pode, com base no elemento de sintaxe bitstream_subset_flag igual a um e nenhum conjunto de camadas especificado por um conjunto de parâmetros de vídeo (VPS) da sequência de bits de múltiplas camadas incluindo os identificadores de camada na faixa de zero até um identificador de camada das unidades NAL não VCL contendo a mensagem SEI, inclusive, determinar que um valor de um elemento de sintaxe default_op_flag da sequência de bits de múltiplas camadas tem valor igual a zero. Em alguns exemplos, o dispositivo de processamento de vídeo também pode codificar o elemento de sintaxe default_op_flag para ter um valor igual a zero.
[0176] De acordo com um aspecto adicional dessa descrição, adicionalmente ou alternativamente, o dispositivo de processamento de vídeo pode codificar um nesting_op_flag da sequência de bits de múltiplas camadas e um all_layers_flag da sequência de bits de múltiplas camadas. O dispositivo de processamento de vídeo pode, com base em nesting_op_flag possuindo um valor de zero e all_layers_flag possuindo um valor de um, determinar que um valor de um elemento de sintaxe maxTemporalId[0] da sequência de bits de múltiplas camadas é igual a sete. Em alguns exemplos, o dispositivo de processamento de vídeo também pode codificar o elemento de sintaxe maxTemporalId[0] para ter um valor de sete.
[0177] Adicionalmente ou alternativamente, o dispositivo de processamento de vídeo pode codificar um elemento de sintaxe bitstream_subset_flag da sequência de bits de múltiplas camadas e um elemento de sintaxe nesting_op_flag da sequência de bits de múltiplas camadas. O dispositivo de processamento de vídeo pode, com base no elemento de sintaxe bitstream_subset_flag possuindo um valor de um e elemento de sintaxe nesting_op_flag possuindo um valor de zero, determinar que um nestingLayeridList[0] da sequência de bits de múltiplas camadas inclui apenas os valores de identificador de camada de um conjunto de camadas especificado em um VPS da sequência de bits de múltiplas camadas. Em alguns exemplos, o dispositivo de processamento de vídeo também pode codificar um elemento de sintaxe nestingLayeridList[0] para incluir apenas os valores identificadores de camada de um conjunto de camadas especificado em um VPS da sequência de bits de múltiplas camadas.
[0178] Deve-se compreender também que as etapas ilustradas e descritas com relação à figura 8 são fornecidas meramente como um exemplo. Isso é, as etapas ilustradas no exemplo da figura 8 não precisam ser necessariamente realizadas na ordem ilustrada na figura 8 e menos, mais ou outras etapas podem ser realizadas. Ademais, enquanto as técnicas são genericamente descritas acima com relação a um dispositivo de processamento de vídeo, as técnicas podem ser implementadas por uma variedade de dispositivos de processamento de vídeo, tal como um codificador de vídeo 20, uma unidade de encapsulamento 21, uma unidade de desencapsulamento 29, uma entidade de pós-processamento 27, uma entidade de rede 78, ou outras unidades de processamento.
[0179] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas em ou transmitidas como uma ou mais instruções ou código, um meio legível por computador e executadas por uma unidade de processamento com base em hardware. O meio legível por computador pode incluir o meio de armazenamento legível por computador, que corresponde a um meio tangível tal como meio de armazenamento de dados, ou meio de comunicação incluindo qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Dessa forma, o meio legível por computador pode geralmente corresponder a (1) meio de armazenamento legível por computador tangível que é não transitório ou (2) um meio de comunicação tal como um sinal ou onda portadora. O meio de armazenamento de dados pode ser qualquer meio disponível que possa ser acessado por um ou mais computadores ou um ou mais processadores para recuperar as instruções, código e/ou estruturas de dados para implementação das técnicas descritas nessa descrição. Um produto de programa de computador pode incluir um meio legível por computador.
[0180] Por meio de exemplo, e não de limitação, tal meio de armazenamento legível por computador pode compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento em disco ótico, armazenamento em disco magnético, ou outros dispositivos de armazenamento magnético, memória flash, ou qualquer outro meio que possa ser utilizado para armazenar o código de programa desejado na forma de instruções ou estruturas de dados e que possa ser acessado por um computador. Além disso, qualquer conexão é adequadamente chamada de meio legível por computador. Por exemplo, se instruções forem transmitidas de um sítio da rede, servidor ou outra fonte remota utilizando um cabo coaxial, um cabo de fibra ótica, um par torcido, linha de assinante digital (DSL) ou tecnologias sem fio tal como infravermelho, rádio e microondas, então o cabo coaxial, o cabo de fibra ótica, o par torcido, DSL ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas são incluídos na definição de meio. Deve- se compreender, no entanto, que meio de armazenamento legível por computador e meio de armazenamento de dados não incluem conexões, ondas portadoras, sinais, ou outro meio transiente, mas, em vez disso, são direcionados a meio de armazenamento tangível não transiente. Disquete e disco, como utilizados aqui, incluem disco compacto (CD), disco a laser, disco ótico, disco versátil digital (DVD), disquete e disco Blu-ray, onde disquetes normalmente reproduzem os dados magneticamente, enquanto discos reproduzem os dados oticamente com lasers. As combinações do acima também devem ser incluídas no escopo de meio legível por computador.
[0181] Instruções podem ser executadas por um ou mais processadores, tal como um ou mais processadores de sinal digital (DSPs), microprocessadores de finalidade geral, circuitos integrados específicos de aplicativo (ASICs), conjuntos lógicos programáveis em campo (FPGAs), ou outro conjunto de circuitos lógicos discretos ou integrados equivalentes. De acordo, o termo "processador", como utilizado aqui pode se referir a qualquer estrutura acima ou qualquer outra estrutura adequada para implementação das técnicas descritas aqui. Adicionalmente, em alguns aspectos, a funcionalidade descrita aqui pode ser fornecida dentro de módulos de hardware e/ou software dedicados configurados para codificar e decodificar, ou incorporados em um codec combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.
[0182] As técnicas dessa descrição podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluinod um aparelho sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos, ou unidades são descritos nessa descrição para enfatizar os aspectos funcionais dos dispositivos configurados para realizar as técnicas descritas, mas não exigem necessariamente a realização por unidades de hardware diferentes. Em vez disso, como 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 interoperacionais, incluindo um ou mais processadores como descrito acima, em conjunto com o software e/ou firmware adequado.
[0183] Vários exemplos foram descritos. Esses e outros exemplos estado dentro do escopo das reivindicações a seguir.

Claims (15)

1. Método de decodificação de dados de vídeo de acordo com um padrão de Codificação de Vídeo de Alta Eficiência (HEVC), ou uma extensão de um padrão HEVC, o método sendo CARACTERIZADO pelo fato de compreender: decodificar uma ou mais unidades de camada de abstração de rede (NAL) da camada de codificação de não vídeo (VCL) de uma sequência de bits de múltiplas camadas de dados de vídeo contendo uma ou mais unidades de acesso possuindo uma pluralidade de imagens que correspondem a um único momento, onde uma ou mais unidades NAL não VCL contêm uma mensagem SEI de embutimento escalonável, em que a mensagem SEI de embutimento escalonável contém uma ou mais mensagens SEI possuindo um tipo de carga útil SEI; e determinar um ou mais valores de sintaxe de um ou mais elementos de sintaxe da sequência de bits de múltiplas camadas à qual a mensagem SEI de embutimento escalonável se aplica com base no tipo de carga útil SEI; onde a determinação de um ou mais dos valores de sintaxe compreende determinar automaticamente, com base no tipo de carga útil SEI sendo incluído em um primeiro conjunto de tipos de carga útil, que um bitstream_subset_flag da mensagem SEI de embutimento escalonável é igual a zero, onde bitstream_subset_flag igual a zero especifica que a uma ou mais mensagens SEI contidas na mensagem SEI de embutimento escalonável se aplicam às camadas ou subcamadas especificas, e bitstream_subset_flag igual a um especifica que uma ou mais mensagens SEI contidas na mensagem SEI de embutimento escalonável se aplica a uma ou mais subsequências de bits resultando de um processo de extração de subsequência de bits.
2. Método de codificação de dados de vídeo, de acordo com um padrão de Codificação de Vídeo de Alta Eficiência (HEVC), ou uma extensão de um padrão HEVC, o método sendo CARACTERIZADO pelo fato de compreender: codificar uma ou mais unidades de camada de abstração de rede (NAL) da camada de codificação de não vídeo (VCL) de uma sequência de bits de múltiplas camadas de dados de vídeo contendo uma ou mais unidades de acesso possuindo uma pluralidade de imagens que correspondem a um único momento, onde uma ou mais unidades NAL não VCL contêm uma mensagem SEI de embutimento escalonável, em que a mensagem SEI de embutimento escalonável contém uma ou mais mensagens SEI possuindo um tipo de carga útil SEI; e determinar um ou mais valores de sintaxe de um ou mais elementos de sintaxe da sequência de bits de múltiplas camadas aos quais a mensagem SEI de embutimento escalonável se aplica com base no tipo de carga útil SEI, onde a determinação de um ou mais valores de sintaxe compreende determinar automaticamente, com base no tipo de carga útil SEI sendo incluído em um primeiro conjunto de tipos de carga útil, que um bitstream_subset_flag da mensagem SEI de embutimento escalonável é igual a zero, onde bitsream_subset_flag igual a zero especifica que a uma ou mais mensagens SEI contidas na mensagem SEI de embutimento escalonável se aplicam às camadas especificas ou subcamadas, e bitstream_subset_flag igual a um especifica que uma ou mais mensagens SEI contidas na mensagem SEI de embutimento escalonável se aplicam a uma ou mais subsequências de bits resultando de um processo de extração de subsequência de bits.
3. Método, de acordo com a reivindicação 1 ou 2, CARACTERIZADO pelo fato de que o primeiro conjunto de tipos de carga útil inclui tipos de carga útil 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132 e 134.
4. Método, de acordo com a reivindicação 1 ou 2, no CARACTERIZADO pelo fato de que a determinação de um ou mais valores de sintaxe compreende adicionalmente determinar automaticamente, com base no tipo de carga útil SEI sendo incluído no primeiro conjunto de tipos de carga útil, que a uma ou mais unidades NAL não VCL contendo a mensagem SEI de embutimento escalonável possui uma TemporalId que é igual a zero e uma maxTemporalId[i] que é igual a um valor máximo de TemporalId para todos os valores de i.
5. Método, de acordo com a reivindicação 1 ou 2, CARACTERIZADO pelo fato de compreender adicionalmente: codificar ou decodificar o elemento de sintaxe de bitstream_subset_flag da sequência de bits de múltiplas camadas; e com base no bitsream_subset_flag ser igual a um e nenhum conjunto de camada especificado por um conjunto de parâmetros de vídeo (VPS) da sequência de bits de múltiplas camadas incluindo identificadores de camada em uma faixa de zero a um identificador de camada de unidades NAL não VCL contendo a mensagem SEI, inclusive, determinar automaticamente que um valor de um elemento de sintaxe defafult_op_flag da sequência de bits de múltiplas camadas tem valor igual a zero.
6. Método, de acordo com a reivindicação 1 ou 2, CARACTERIZADO pelo fato de compreender adicionalmente: codificar ou decodificar um nesting_op_flag da sequência de bits de múltiplas camadas e um all_layers_flag da sequência de bits de múltiplas camadas; e com base no nesting_op_flag possuir um valor igual a zero e all_layers_flag possuindo um valor igual a um, determinar automaticamente que um valor de um elemento de sintaxe maxTemporalId[0] da sequência de bits de múltiplas camadas é igual a um valor máximo de TemporalId.
7. Método, de acordo com a reivindicação 1 ou 2, CARACTERIZADO pelo fato de compreender adicionalmente: codificar ou decodificar o elemento de sintaxe bitstream_subset_flag da sequência de bits de múltiplas camadas e um elemento de sintaxe nesting_op_flag da sequência de bits de múltiplas camadas; e com base no elemento de sintaxe bitsream_subset_flag possuir um valor igual a um e o elemento de sintaxe nesting_op_flag possuir um valor igual a zero, determinar automaticamente que um nestingLayeridList[0] da sequência de bits de múltiplas camadas inclui apenas os valores de identificador de camada de um conjunto de camadas especificado em um VPS da sequência de bits de múltiplas camadas.
8. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de compreender adicionalmente: gerar dados residuais para dados de vídeo de uma camada da sequência de bits de múltiplas camadas indicando uma diferença entre os dados de previsão e os dados de vídeo; aplicar uma transformação aos dados residuais para gerar os coeficientes de transformação; e gerar uma sequência de bits que inclui uma indicação dos coeficientes de transformação.
9. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de compreender adicionalmente: obter coeficientes de transformação para dados de vídeo de uma camada de sequência de bits de múltiplas camadas a partir de uma sequência de bits codificada; aplicar uma transformação inversa aos coeficientes de transformação para gerar os dados residuais; e determinar dados de vídeo com base nos dados residuais gerados.
10. Aparelho para decodificação de dados de vídeo, de acordo com um padrão de Codificação de Vídeo de Alta Eficiência (HEVC), ou uma extensão de um padrão HEVC, o aparelho sendo CARACTERIZADO pelo fato de compreender: meios para decodificação de uma ou mais unidades de camada de abstração de rede (NAL) da camada de codificação de não vídeo (VCL) de uma sequência de bits de múltiplas camadas de dados de vídeo contendo uma ou mais unidades de acesso possuindo uma pluralidade de imagens que correspondem a um único momento, onde uma ou mais unidades NAL não VCL contêm uma mensagem SEI de embutimento escalonável, em que a mensagem SEI de embutimento escalonável contém uma ou mais mensagens SEI possuindo um tipo de carga útil SEI ; e meios para determinar um ou mais valores de sintaxe de um ou mais elementos de sintaxe da sequência de bits de múltiplas camadas à qual a mensagem SEI de embutimento escalonável aplica com base no tipo de carga útil SEI, onde a determinação de um ou mais valores de sintaxe compreende determinar automaticamente, com base no tipo de carga útil SEI sendo incluído em um primeiro conjunto de tipos de carga útil, que um bitstream_subset_flag da mensagem SEI de embutimento escalonável é igual a zero, onde bitstream_subset_flag igual a zero especifica que uma ou mais mensagens SEI contidas na mensagem SEI de embutimento escalonável se aplica às camadas específicas ou subcamadas, e bitstream_subset_flag igual a um especifica que uma ou mais mensagens SEI contidas na mensagem SEI de embutimento escalonável se aplicam a uma ou mais subsequências resultando de um processo de extração de subsequências de bit.
11. Aparelho para codificação de dados de vídeo, de acordo com um padrão de Codificação de Vídeo de Alta Eficiência (HEVC), ou uma extensão de um padrão HEVC, o aparelho sendo CARACTERIZADO pelo fato de compreender: meios para codificação de uma ou mais unidades de camada de abstração de rede (NAL) da camada de codificação de não vídeo (VCL) de uma sequência de bits de múltiplas camadas de dados de vídeo contendo uma ou mais unidades de acesso possuindo uma pluralidade de imagens que correspondem a um único momento, onde uma ou mais unidades NAL não VCL contêm uma mensagem SEI de embutimento escalonável, em que a mensagem SEI de embutimento escalonável contém uma ou mais mensagens SEI possuindo um tipo de carga útil SEI; e meios para determinar um ou mais valores de sintaxe de um ou mais elementos de sintaxe da sequência de bits de múltiplas camadas à qual a mensagem SEI de embutimento escalonável aplica com base no tipo de carga útil SEI, onde a determinação de um ou mais valores de sintaxe compreende determinar automaticamente, com base no tipo de carga útil SEI sendo incluído em um primeiro conjunto de tipos de carga útil, que um bitstream_subset_flag da mensagem SEI de embutimento escalonável é igual a zero, onde bitstream_subset_flag igual a zero especifica que uma ou mais mensagens SEI contidas na mensagem SEI de embutimento escalonável se aplica às camadas específicas ou subcamadas, e bitstream_subset_flag igual a um especifica que uma ou mais mensagens SEI contidas na mensagem SEI de embutimento escalonável se aplicam a uma ou mais subsequências resultando de um processo de extração de subsequências de bit.
12. Aparelho, de acordo com a reivindicação 10 ou 11, CARACTERIZADO pelo fato de que o primeiro conjunto de tipos de carga útil inclui tipos de carga útil 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132 e 134.
13. Aparelho, de acordo com a reivindicação 10 ou 11, CARACTERIZADO pelo fato de que os meios de determinação de um ou mais valores de sintaxe compreende meios para determinar automaticamente, com base no tipo de carga útil SEI sendo incluído em um primeiro conjunto de tipos de carga útil, que uma ou mais unidades NAL não VCL contendo a mensagem SEI de embutimento escalonável possui uma TemporalId que é igual a zero e uma maxTemporalId[i] que é igual a um valor máximo de TemporalId para todos os valores de i.
14. Aparelho, de acordo com a reivindicação 10 ou 11, CARACTERIZADO pelo fato de compreender pelo menos um dentre: um circuito integrado; um microprocessador; ou um dispositivo de comunicação sem fio.
15. Memória legível por computador CARACTERIZADA pelo fato de que possui instruções nela armazenadas que, quando executadas, fazem com que um ou mais processadores realizem o método conforme definido em qualquer uma das reivindicações 1 a 9.
BR112016022079-0A 2014-03-24 2015-03-24 Método e aparelho para codificação e decodificação de dados de vídeo de acordo com um padrão de codificação de vídeo de alta eficiência (hevc), ou uma extensão de um padrão hevc, assim como memória legível por computador BR112016022079B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461969797P 2014-03-24 2014-03-24
US61/969,797 2014-03-24
US14/665,953 US9894370B2 (en) 2014-03-24 2015-03-23 Generic use of HEVC SEI messages for multi-layer codecs
US14/665,953 2015-03-23
PCT/US2015/022297 WO2015148545A1 (en) 2014-03-24 2015-03-24 Generic use of hevc sei messages for multi-layer codecs

Publications (3)

Publication Number Publication Date
BR112016022079A2 BR112016022079A2 (pt) 2017-08-15
BR112016022079A8 BR112016022079A8 (pt) 2021-07-13
BR112016022079B1 true BR112016022079B1 (pt) 2024-01-23

Family

ID=54143325

Family Applications (3)

Application Number Title Priority Date Filing Date
BR112016022200-8A BR112016022200B1 (pt) 2014-03-24 2015-03-24 Método para decodificar dados de vídeo, método e aparelho para codificar dados de vídeo e memória legível por computador
BR112016022080-3A BR112016022080B1 (pt) 2014-03-24 2015-03-24 Uso genérico de mensagens de sei de hevc para codecs de múltiplas camadas
BR112016022079-0A BR112016022079B1 (pt) 2014-03-24 2015-03-24 Método e aparelho para codificação e decodificação de dados de vídeo de acordo com um padrão de codificação de vídeo de alta eficiência (hevc), ou uma extensão de um padrão hevc, assim como memória legível por computador

Family Applications Before (2)

Application Number Title Priority Date Filing Date
BR112016022200-8A BR112016022200B1 (pt) 2014-03-24 2015-03-24 Método para decodificar dados de vídeo, método e aparelho para codificar dados de vídeo e memória legível por computador
BR112016022080-3A BR112016022080B1 (pt) 2014-03-24 2015-03-24 Uso genérico de mensagens de sei de hevc para codecs de múltiplas camadas

Country Status (8)

Country Link
US (3) US10178397B2 (pt)
EP (3) EP3123726B1 (pt)
JP (3) JP6608386B2 (pt)
KR (3) KR102353191B1 (pt)
CN (3) CN106170982B (pt)
BR (3) BR112016022200B1 (pt)
MX (3) MX359788B (pt)
WO (3) WO2015148550A2 (pt)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170272778A9 (en) * 2014-01-06 2017-09-21 Samsung Electronics Co., Ltd. Image encoding and decoding methods for preserving film grain noise, and image encoding and decoding apparatuses for preserving film grain noise
US10178397B2 (en) 2014-03-24 2019-01-08 Qualcomm Incorporated Generic use of HEVC SEI messages for multi-layer codecs
US9800898B2 (en) * 2014-10-06 2017-10-24 Microsoft Technology Licensing, Llc Syntax structures indicating completion of coded regions
EP3226561A1 (en) * 2016-03-31 2017-10-04 Thomson Licensing Method and apparatus for coding a video into a bitstream carrying region-based post processing parameters into an sei nesting message
US10554981B2 (en) * 2016-05-10 2020-02-04 Qualcomm Incorporated Methods and systems for generating regional nesting messages for video pictures
US10582201B2 (en) * 2016-05-19 2020-03-03 Qualcomm Incorporated Most-interested region in an image
US10834153B2 (en) * 2016-08-24 2020-11-10 Qualcomm Incorporated System level signaling of SEI tracks for media data streaming
US10897612B2 (en) 2017-03-03 2021-01-19 Qualcomm Incorporated Coding identifiers for motion constrained tile sets
GB2594615B (en) * 2017-03-20 2022-11-30 Canon Kk Method and apparatus for encoding and transmitting at least a spatial part of a video sequence
US11468781B2 (en) * 2017-08-11 2022-10-11 The Boeing Company Simulation of an asset including message playback using nested hash tables
CN107690069B (zh) * 2017-08-28 2021-01-01 中国科学院深圳先进技术研究院 一种数据驱动的级联视频编码方法
GB201817781D0 (en) * 2018-10-31 2018-12-19 V Nova Int Ltd Mehods, apparatuses, computer programs and computer-readable media
US11956471B2 (en) 2018-12-20 2024-04-09 Telefonaktiebolaget Lm Ericsson (Publ) Normative indication of recovery point
WO2020171230A1 (en) * 2019-02-24 2020-08-27 Sharp Kabushiki Kaisha Systems and methods for signaling types of pictures and associated information in video coding
WO2021007225A1 (en) * 2019-07-08 2021-01-14 Futurewei Technologies, Inc. Mixed nal unit picture constraints in video coding
CN110446047A (zh) * 2019-08-16 2019-11-12 苏州浪潮智能科技有限公司 视频码流的解码方法及装置
JP7419507B2 (ja) * 2019-09-24 2024-01-22 ホアウェイ・テクノロジーズ・カンパニー・リミテッド Olsのためのスケーラブルネスティングseiメッセージ
EP4022777A4 (en) * 2019-09-24 2022-11-23 Huawei Technologies Co., Ltd. DECODED PICTURE BUFFER OPERATION FOR RESOLUTION CHANGES
AU2020352913A1 (en) * 2019-09-24 2022-04-21 Huawei Technologies Co., Ltd. Signaling of DPB parameters for multi-layer video bitstreams
MX2022003550A (es) * 2019-09-24 2022-06-02 Huawei Tech Co Ltd Pruebas de conformidad hrd en ols.
CN114424527B (zh) * 2019-09-24 2023-07-11 华为技术有限公司 所有层可伸缩嵌套式sei消息的设置方法和装置
KR20220065045A (ko) * 2019-09-24 2022-05-19 후아웨이 테크놀러지 컴퍼니 리미티드 멀티뷰 스케일러빌리티를 위한 ols
US20210195259A1 (en) * 2019-12-23 2021-06-24 Comcast Cable Communications, Llc Method and apparatus for managing redundant segmented streams
JP7431330B2 (ja) 2019-12-26 2024-02-14 バイトダンス インコーポレイテッド ビデオコーディングにおけるプロファイル、層及びレイヤの指示
CN114868158A (zh) 2019-12-26 2022-08-05 字节跳动有限公司 层级视频中的解码图片缓冲区参数的信令通知
BR112022011719A2 (pt) 2019-12-26 2022-09-06 Bytedance Inc Método de processamento de vídeo, aparelho de processamento de dados de vídeo, e, mídias de armazenamento e de gravação legíveis por computador
WO2021128295A1 (en) * 2019-12-27 2021-07-01 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods for inter prediction
KR20220121804A (ko) 2019-12-27 2022-09-01 바이트댄스 아이엔씨 파라미터 세트들에서의 서브픽처 시그널링
CN113055668B (zh) * 2019-12-27 2023-06-02 腾讯美国有限责任公司 从已编码视频比特流中提取子比特流的方法和设备
WO2021142363A1 (en) 2020-01-09 2021-07-15 Bytedance Inc. Decoding order of different sei messages
DK202070130A1 (en) 2020-02-28 2021-12-21 Vkr Holding As A roof window with an opening restrictor for limiting the opening of a roof window
TWI718026B (zh) * 2020-03-13 2021-02-01 松翰科技股份有限公司 圖像指標
WO2021201541A1 (ko) * 2020-03-30 2021-10-07 엘지전자 주식회사 Dpb 파라미터의 개수 정보를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체
JP7436703B2 (ja) * 2020-03-30 2024-02-22 エルジー エレクトロニクス インコーポレイティド Dpbパラメータをシグナリングする画像符号化/復号化方法及び装置、並びにビットストリームを保存したコンピュータ可読記録媒体
KR20220162740A (ko) * 2020-04-02 2022-12-08 엘지전자 주식회사 Dpb 관련 정보 및 ptl 관련 정보를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체
US11706428B2 (en) * 2020-04-06 2023-07-18 Tencent America LLC Method for signaling picture header in coded video stream
IL304023A (en) * 2020-05-22 2023-08-01 Ge Video Compression Llc Video encoder, video decoder, encoding and decoding methods, and video data sequencing to implement advanced video coding concepts
CN115699765A (zh) 2020-05-22 2023-02-03 字节跳动有限公司 访问单元中图片信息的信令
JP2023526375A (ja) * 2020-05-22 2023-06-21 北京字節跳動網絡技術有限公司 サブピクチャサブビットストリーム抽出処理におけるスケーリングウィンドウ
WO2021237123A1 (en) 2020-05-22 2021-11-25 Bytedance Inc. Sei message handling in video sub-bitstream extraction process
CN117528004A (zh) * 2020-06-09 2024-02-06 字节跳动有限公司 多层视频比特流的子比特流提取
CA3182204A1 (en) 2020-06-09 2021-12-16 Ye-Kui Wang Signaling constraints in non-scalable nested video syntax elements
US11321878B2 (en) * 2020-06-26 2022-05-03 Sony Group Corporation Decoded tile hash SEI message for V3C/V-PCC
US11580671B2 (en) * 2020-08-17 2023-02-14 Tencent America LLC Hash-based attribute prediction for point cloud coding
US11930295B2 (en) 2020-09-17 2024-03-12 Lemon Inc. Handling of non-VCL NAL units in picture unit construction
CN116530083A (zh) * 2020-09-25 2023-08-01 抖音视界有限公司 视频比特流中的嵌套的和非嵌套的sei消息
US11962936B2 (en) 2020-09-29 2024-04-16 Lemon Inc. Syntax for dependent random access point indication in video bitstreams
WO2022220724A1 (en) * 2021-04-12 2022-10-20 Telefonaktiebolaget Lm Ericsson (Publ) Message referencing
WO2024026032A1 (en) * 2022-07-27 2024-02-01 Bytedance Inc. Enhanced signalling of sei processing order in video bitstreams

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7586924B2 (en) 2004-02-27 2009-09-08 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for coding an information signal into a data stream, converting the data stream and decoding the data stream
KR100997270B1 (ko) * 2004-04-28 2010-11-29 파나소닉 주식회사 스트림 생성 장치, 스트림 생성 방법, 및 기록 매체
US20070014346A1 (en) 2005-07-13 2007-01-18 Nokia Corporation Coding dependency indication in scalable video coding
US20070189732A1 (en) * 2006-02-10 2007-08-16 Sai Pothana System and method for reconstructing MPEG-2 start codes from AVC data
US8699583B2 (en) * 2006-07-11 2014-04-15 Nokia Corporation Scalable video coding and decoding
CA2849697A1 (en) 2006-10-16 2008-04-24 Alexandros Eleftheriadis Systems and methods for signaling and performing temporal level switching in scalable video coding
US20100142613A1 (en) * 2007-04-18 2010-06-10 Lihua Zhu Method for encoding video data in a scalable manner
US20080291999A1 (en) 2007-05-24 2008-11-27 Julien Lerouge Method and apparatus for video frame marking
US9712833B2 (en) * 2007-06-26 2017-07-18 Nokia Technologies Oy System and method for indicating temporal layer switching points
EP2257067A1 (en) * 2009-05-29 2010-12-01 Thomson Licensing Method for inserting watermark assistance data in a bitstream, method of watermarking said bitstream, device implementing the method of watermarking and bitstream comprising the watermark assistance data
JP2011066844A (ja) * 2009-09-18 2011-03-31 Toshiba Corp 並列復号装置及びプログラム並びに符号化データの並列復号方法
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
JP2012222710A (ja) 2011-04-13 2012-11-12 Hitachi Consumer Electronics Co Ltd 符号化装置および復号装置
US9247249B2 (en) * 2011-04-20 2016-01-26 Qualcomm Incorporated Motion vector prediction in video coding
US10237565B2 (en) 2011-08-01 2019-03-19 Qualcomm Incorporated Coding parameter sets for various dimensions in video coding
US9124895B2 (en) 2011-11-04 2015-09-01 Qualcomm Incorporated Video coding with network abstraction layer units that include multiple encoded picture partitions
US9554149B2 (en) * 2012-02-29 2017-01-24 Lg Electronics, Inc. Inter-layer prediction method and apparatus using same
DE102012204103A1 (de) 2012-03-15 2013-09-19 Siemens Aktiengesellschaft Hitzeschildelement für einen Verdichterluftbypass um die Brennkammer
US9351016B2 (en) * 2012-04-13 2016-05-24 Sharp Kabushiki Kaisha Devices for identifying a leading picture
EP2839660B1 (en) 2012-04-16 2020-10-07 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
US20160165230A9 (en) * 2012-04-16 2016-06-09 Texas Instruments Incorporated Color Component Checksum Computation in Video Coding
US20130278642A1 (en) * 2012-04-20 2013-10-24 Samsung Electronics Co., Ltd. Perceptual lossless display power reduction
CN103843342B (zh) 2012-06-12 2017-04-12 Lg电子株式会社 图像解码方法
EP2866440B1 (en) 2012-06-24 2018-08-08 Lg Electronics Inc. Image decoding method and apparatus using same
EP2868092A4 (en) * 2012-07-02 2016-05-04 Nokia Technologies Oy METHOD AND DEVICE FOR VIDEO CODING
EP2871567A4 (en) * 2012-07-06 2016-01-06 Samsung Electronics Co Ltd METHOD AND APPARATUS FOR ENCODING MULTILAYER VIDEO, AND METHOD AND APPARATUS FOR DECODING MULTILAYER VIDEO
RU2653236C2 (ru) * 2012-09-26 2018-05-07 Вилос Медиа Интернэшнл Лимитед Способ кодирования изображения, способ декодирования изображения, устройство кодирования изображения, устройство декодирования изображения и устройство кодирования и декодирования изображения
KR20140043239A (ko) 2012-09-27 2014-04-08 한국전자통신연구원 계층간 전환을 이용한 영상 부호화/복호화 방법 및 그 장치
US9565452B2 (en) 2012-09-28 2017-02-07 Qualcomm Incorporated Error resilient decoding unit association
WO2014051409A1 (ko) * 2012-09-28 2014-04-03 삼성전자 주식회사 참조 픽처 정보를 이용한 병렬 처리 비디오 부호화 방법 및 장치, 병렬 처리 비디오 복호화 방법 및 장치
US20140092992A1 (en) * 2012-09-30 2014-04-03 Microsoft Corporation Supplemental enhancement information including confidence level and mixed content information
CN107770546B (zh) * 2012-12-10 2020-04-10 Lg 电子株式会社 解码图像的方法和使用其的装置
US20140177706A1 (en) 2012-12-21 2014-06-26 Samsung Electronics Co., Ltd Method and system for providing super-resolution of quantized images and video
CN104919803B (zh) * 2013-01-15 2017-09-12 华为技术有限公司 一种用于解码视频比特流的方法
US9807421B2 (en) 2013-04-05 2017-10-31 Sharp Kabushiki Kaisha NAL unit type restrictions
US9591321B2 (en) 2013-04-07 2017-03-07 Dolby International Ab Signaling change in output layer sets
US9609329B2 (en) * 2013-06-25 2017-03-28 Samsung Electronics Co., Ltd Dynamic voltage/frequency scaling for video processing using embedded complexity metrics
US20150016547A1 (en) 2013-07-15 2015-01-15 Sony Corporation Layer based hrd buffer management for scalable hevc
MY178305A (en) 2013-10-11 2020-10-07 Vid Scale Inc High level syntax for hevc extensions
WO2015056158A1 (en) * 2013-10-14 2015-04-23 Nokia Technologies Oy Multi-layer hypothetical reference decoder
EP3073742A4 (en) * 2013-11-21 2017-06-28 LG Electronics Inc. Signal transceiving apparatus and signal transceiving method
JP6329246B2 (ja) 2014-03-14 2018-05-23 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 画像復号装置
CN104935944B (zh) * 2014-03-18 2018-03-13 华为技术有限公司 一种视频数据编码、解码的方法和装置
US10178397B2 (en) 2014-03-24 2019-01-08 Qualcomm Incorporated Generic use of HEVC SEI messages for multi-layer codecs

Also Published As

Publication number Publication date
KR102372120B1 (ko) 2022-03-07
EP3123726B1 (en) 2023-07-12
US20150271528A1 (en) 2015-09-24
BR112016022080A8 (pt) 2021-07-13
BR112016022079A8 (pt) 2021-07-13
MX360864B (es) 2018-11-09
JP2017510198A (ja) 2017-04-06
KR20160136327A (ko) 2016-11-29
BR112016022080B1 (pt) 2024-03-12
CN106134200A (zh) 2016-11-16
KR102353659B1 (ko) 2022-01-19
US20150271498A1 (en) 2015-09-24
US9894370B2 (en) 2018-02-13
WO2015148545A1 (en) 2015-10-01
US20150271529A1 (en) 2015-09-24
CN106170982A (zh) 2016-11-30
CN106105225B (zh) 2019-08-27
EP3123724B1 (en) 2020-02-19
BR112016022200A2 (pt) 2017-08-15
CN106134200B (zh) 2019-08-02
BR112016022200A8 (pt) 2021-07-13
JP6608386B2 (ja) 2019-11-20
MX2016011208A (es) 2016-12-16
KR102353191B1 (ko) 2022-01-18
KR20160136325A (ko) 2016-11-29
BR112016022079A2 (pt) 2017-08-15
JP6549145B2 (ja) 2019-07-24
WO2015148550A3 (en) 2016-03-17
MX367235B (es) 2019-08-09
BR112016022080A2 (pt) 2017-08-15
CN106170982B (zh) 2019-07-26
CN106105225A (zh) 2016-11-09
MX359788B (es) 2018-10-08
US10178397B2 (en) 2019-01-08
JP2017514361A (ja) 2017-06-01
MX2016011603A (es) 2016-12-12
WO2015148535A1 (en) 2015-10-01
US10645404B2 (en) 2020-05-05
WO2015148550A2 (en) 2015-10-01
JP2017513372A (ja) 2017-05-25
BR112016022200B1 (pt) 2023-12-12
EP3123724A1 (en) 2017-02-01
EP3123725A1 (en) 2017-02-01
EP3123726A2 (en) 2017-02-01
MX2016011212A (es) 2016-11-30
KR20160136326A (ko) 2016-11-29

Similar Documents

Publication Publication Date Title
BR112016022079B1 (pt) Método e aparelho para codificação e decodificação de dados de vídeo de acordo com um padrão de codificação de vídeo de alta eficiência (hevc), ou uma extensão de um padrão hevc, assim como memória legível por computador
JP6208150B2 (ja) ビデオを符号化しビデオコンテンツを記憶する方法
JP6585096B2 (ja) マルチレイヤビデオコーディング
BR112017017307B1 (pt) Método de processamento de dados de vídeo de múltiplas camadas, dispositivo de vídeo para processamento de dados de vídeo de múltiplas camadas e memória legível por computador
US9807419B2 (en) Recovery point SEI message in multi-layer video codecs
BR112015006839B1 (pt) Sinalizando identificadores de camada para pontos de operação em codificação de vídeo
BR112020011099A2 (pt) intra-predição com pixels vizinhos distantes
BR112016030194B1 (pt) Codificação de vídeo de multi-camada
BR112016021476B1 (pt) Método e dispositivo para codificar dados de vídeo e memória legível por computador

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B350 Update of information on the portal [chapter 15.35 patent gazette]
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 24/03/2015, OBSERVADAS AS CONDICOES LEGAIS