BR112016022080B1 - Uso genérico de mensagens de sei de hevc para codecs de múltiplas camadas - Google Patents

Uso genérico de mensagens de sei de hevc para codecs de múltiplas camadas Download PDF

Info

Publication number
BR112016022080B1
BR112016022080B1 BR112016022080-3A BR112016022080A BR112016022080B1 BR 112016022080 B1 BR112016022080 B1 BR 112016022080B1 BR 112016022080 A BR112016022080 A BR 112016022080A BR 112016022080 B1 BR112016022080 B1 BR 112016022080B1
Authority
BR
Brazil
Prior art keywords
layer
vcl
units
nal
sei message
Prior art date
Application number
BR112016022080-3A
Other languages
English (en)
Other versions
BR112016022080A8 (pt
BR112016022080A2 (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 BR112016022080A2 publication Critical patent/BR112016022080A2/pt
Publication of BR112016022080A8 publication Critical patent/BR112016022080A8/pt
Publication of BR112016022080B1 publication Critical patent/BR112016022080B1/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 de sei de hevc para codecs de múltiplas camadas. em um exemplo, um método de criptografia de dados de vídeo inclui obter uma ou mais unidades de camada de abstração de rede (nal) de camada de criptografia de vídeo (vcl) de uma unidade de acesso e uma primeira camada de um fluxo de bits de múltiplas camadas de dados de vídeo. o método também inclui apenas criptografar uma ou mais unidades de nal de não vcl que contém uma mensagem de sei aplicável às unidades de nal de vcl da primeira camada juntamente com as unidades de nal de vcl da primeira camada de modo que na unidade de acesso o fluxo de bits não contenha quaisquer figurações criptografadas de qualquer outra camada do fluxo de bits de múltiplas camadas entre as unidades de nal de vcl da primeira camada e as unidades de nal de não vcl que contém a mensagem de sei aplicável às unidades de nal de vcl da primeira camada.

Description

[0001] Este Pedido reivindica o benefício do Pedido Provisório US 61/969.797, depositado em 24 de março de 2014, cujo todo o conteúdo é incorporado ao presente documento a título de referência.
CAMPO DA TÉCNICA
[0002] Esta revelação se refere a criptografia e compactação de vídeo, e sinalização de dados associados a vídeo compactado em um fluxo de bits.
ANTECEDENTES
[0003] As capacidades do vídeo digital podem ser incorporadas em uma ampla faixa de dispositivos, que incluem televisões digitais, sistemas de difusão direta digital, sistemas de difusão sem fio, assistentes pessoais digitais (PDAs), computadores do tipo laptop ou desktop, computadores do tipo tablet, leitores de livro eletrônico, câmeras digitais, dispositivos de gravação digital, reprodutores de mídia digital, dispositivos de jogos de vídeo, consoles de videogame, telefones celulares ou de rádio via satélite, os denominados “telefones inteligentes”, dispositivos de teleconferência por vídeo, dispositivos de fluxo contínuo de vídeo, e semelhantes. As técnicas de compactação de vídeo de implantação de dispositivos de vídeo digitais, como aquelas descritas nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação Vídeo Avançada (AVC), o padrão de Codificação de Vídeo de Alta Eficiência (HVEC) e extensões de tais padrões. Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar informações de vídeo digital de modo mais eficiente ao implantar tais técnicas de compactação de vídeo.
[0004] As técnicas de compactação de vídeo realizam predição espacial (intrafiguração) e/ou predição temporal (interfiguração) para reduzir ou remover a redundância inerente em sequências de vídeo. Para a criptografia de vídeo baseada em bloco, uma fatia de vídeo (isto é, um quadro de vídeo ou uma porção de um quadro de vídeo) pode ser dividida em blocos de vídeo, que também podem ser referidos como blocos de árvore, unidades de criptografia (CUs) e/ou nós de criptografia. Os blocos de vídeo em uma fatia intracriptografada (I) de uma figuração são codificados com o uso de predição espacial em relação às amostras de referência em blocos vizinhos na mesma figuração. Os blocos de vídeo em uma fatia intercriptografada (P ou B) de uma figuração podem usar predição espacial em relação às amostras de referência em blocos vizinhos na mesma figuração ou predição temporal em relação às amostras de referência em outras figurações de referência. As figurações podem ser referidas como os quadros, e as figurações de referência podem ser referidas como quadros de referência.
[0005] A predição espacial ou temporal resulta em um bloco preditivo para um bloco a ser codificado. Os dados residuais representam diferenças de pixel entre o bloco original a ser codificado e o bloco preditivo. Um bloco intercriptografado é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência que forma o bloco preditivo, e os dados residuais que indicam a diferença entre o bloco codificado e o bloco preditivo. Um bloco intracriptografado é codificado de acordo com um modo intracriptografia e com os dados residuais. Para a compactação adicional, os dados residuais podem ser transformados a partir do domínio de pixel em um domínio de transformada, resultando em coeficientes de transformada residuais, que podem, então, ser quantizados. Os coeficientes de transformada quantizados, inicialmente dispostos em uma matriz bidirecional, podem ser varridos a fim de produzir um vetor unidimensional de coeficientes de transformada, e a criptografia por entropia pode ser aplicada para obter ainda mais compactação.
SUMÁRIO
[0006] Os aspectos desta revelação são direcionados às técnicas para aplicar mensagens de camada de reforço complementar (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 desta revelação podem incluir alterações para e/ou restrições para uma variedade de sintaxe de mensagem de SEI estabelecida em HEVC a serem aplicadas em criptografia de vídeo de múltiplas camadas, por exemplo, com o uso de extensões para o padrão HEVC como uma extensão de Codificação de Vídeo de Múltiplas Vistas para HEVC (MV- HEVC) ou uma extensão de Codificação de Vídeo Escalonável (SVC) para HEVC (SHVC). Em algumas ocasiões, as técnicas podem aprimorar 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 criptografia de dados de vídeo inclui obter uma ou mais unidades de camada de abstração de rede (NAL) de camada de criptografia de vídeo (VCL) de uma unidade de acesso e uma primeira camada de um fluxo de bits de múltiplas camadas de dados de vídeo, e apenas criptografar uma ou mais unidades de NAL de não VCL que contêm uma mensagem de SEI aplicável às unidades de NAL de VCL da primeira camada juntamente com as unidades de NAL de VCL da primeira camada de modo que na unidade de acesso o fluxo de bits não contenha quaisquer figurações criptografadas de qualquer outra camada do fluxo de bits de múltiplas camadas entre as unidades de NAL de VCL da primeira camada e as unidades de NAL de não VCL que contêm a mensagem de SEI aplicável às unidades de NAL de VCL da primeira camada.
[0008] Em um outro exemplo, um dispositivo para criptografar dados de vídeo inclui uma memória configurada para armazenar pelo menos uma porção de um fluxo 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) de camada de criptografia de vídeo (VCL) de uma unidade de acesso e uma primeira camada do fluxo de bits de múltiplas camadas de dados de vídeo, e apenas criptografe uma ou mais unidades de NAL de não VCL que contêm uma mensagem de SEI aplicável às unidades de NAL de VCL da primeira camada juntamente com as unidades de NAL de VCL da primeira camada de modo que na unidade de acesso o fluxo de bits não contenha quaisquer figurações criptografadas de qualquer outra camada do fluxo de bits de múltiplas camadas entre as unidades de NAL de VCL da primeira camada e as unidades de NAL de não VCL que contêm a mensagem de SEI aplicável às unidades de NAL de VCL da primeira camada.
[0009] Em um outro exemplo, um aparelho para criptografar dados de vídeo inclui meios para obter uma ou mais unidades de camada de abstração de rede (NAL) de camada de criptografia de vídeo (VCL) de uma unidade de acesso e uma primeira camada de um fluxo de bits de múltiplas camadas de dados de vídeo, e meios para apenas criptografar uma ou mais unidades de NAL de não VCL que contêm uma mensagem de SEI aplicável às unidades de NAL de VCL da primeira camada juntamente com as unidades de NAL de VCL da primeira camada de modo que na unidade de acesso o fluxo de bits não contenha quaisquer figurações criptografadas de qualquer outra camada do fluxo de bits de múltiplas camadas entre as unidades de NAL de VCL da primeira camada e as unidades de NAL de não VCL que contêm a mensagem de SEI aplicável às unidades de NAL de VCL da primeira camada.
[0010] Em um outro exemplo, um meio legível por computador não transitório tem 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) de camada de criptografia de vídeo (VCL) de uma unidade de acesso e uma primeira camada de um fluxo de bits de múltiplas camadas de dados de vídeo, e apenas criptografe uma ou mais unidades de NAL de não VCL que contêm uma mensagem de SEI aplicável às unidades de NAL de VCL da primeira camada juntamente com as unidades de NAL de VCL da primeira camada de modo que na unidade de acesso o fluxo de bits não contenha quaisquer figurações criptografadas de qualquer outra camada do fluxo de bits de múltiplas camadas entre as unidades de NAL de VCL da primeira camada e as unidades de NAL de não VCL que contêm a mensagem de SEI aplicável às unidades de NAL de VCL da primeira camada.
[0011] Em um outro exemplo, um método de criptografia de dados de vídeo inclui criptografar uma ou mais unidades de camada de abstração de rede (NAL) de camada de criptografia de não vídeo (VCL) de uma camada de um fluxo de bits de múltiplas camadas, em que as uma ou mais unidades de NAL de não VCL contêm uma mensagem de SEI de hash de figuração decodificada, e determinar um conjunto de camadas do fluxo de bits de múltiplas camadas às quais a mensagem de SEI de hash de figuração decodificada é aplicável com base em um identificador de camada das uma ou mais unidades de NAL de não VCL que contêm a mensagem de SEI de hash de figuração decodificada.
[0012] Em um outro exemplo, um dispositivo para criptografar dados de vídeo inclui uma memória configurada para armazenar pelo menos uma porção de um fluxo de bits de múltiplas camadas, e um ou mais processadores configurados para criptografar um ou mais unidades de camada de abstração de rede (NAL) de não camada de criptografia de vídeo (VCL) de uma camada de um fluxo de bits de múltiplas camadas, em que as uma ou mais unidades de NAL de não VCL contém uma mensagem de SEI de hash de figuração decodificada, e para determinar um conjunto de camadas do fluxo de bits de múltiplas camadas às quais a mensagem de SEI de hash de figuração decodificada é aplicável com base em um identificador de camada das uma ou mais unidades de NAL de não VCL que contêm a mensagem de SEI de hash de figuração decodificada.
[0013] Em um outro exemplo, um aparelho para criptografar dados de vídeo inclui meios para criptografar uma ou mais unidades de camada de abstração de rede (NAL) de camada de criptografia de não vídeo (VCL) de uma camada de um fluxo de bits de múltiplas camadas, em que as uma ou mais unidades de NAL de não VCL contêm uma mensagem de SEI de hash de figuração decodificada, e meios para determinar um conjunto de camadas do fluxo de bits de múltiplas camadas às quais a mensagem de SEI de hash de figuração decodificada é aplicável com base em um identificador de camada das uma ou mais unidades de NAL de não VCL que contêm a mensagem de SEI de hash de figuração decodificada.
[0014] Em um outro exemplo, um meio legível por computador não transitório tem instruções armazenadas no mesmo que, quando executadas, fazem com que um ou mais processadores criptografe uma ou mais unidades de camada de abstração de rede (NAL) de não camada de criptografia de vídeo (VCL) de uma camada de um fluxo de bits de múltiplas camadas, em que as uma ou mais unidades de NAL de não VCL contêm uma mensagem de SEI de hash de figuração decodificada, e determine um conjunto de camadas do fluxo de bits de múltiplas camadas às quais a mensagem de SEI de hash de figuração decodificada é aplicável com base em um identificador de camada das uma ou mais unidades de NAL de não VCL que contêm a mensagem de SEI de hash de figuração decodificada.
[0015] Em um outro exemplo, um método de criptografia de dados de vídeo inclui criptografar uma ou mais unidades de camada de abstração de rede (NAL) de não camada de criptografia de vídeo (VCL) de uma camada de um fluxo de bits de múltiplas camadas de dados de vídeo, em que as uma ou mais unidades de NAL de não VCL contêm uma mensagem de SEI que tem um tipo de carga útil de SEI, e determinar um ou mais valores de sintaxe do fluxo de bits de múltiplas camadas às quais a mensagem de SEI se aplica com base no tipo de carga útil de SEI.
[0016] Em um outro exemplo, um dispositivo para criptografar dados de vídeo inclui uma memória configurada para armazenar uma camada de um fluxo de bits de múltiplas camadas, e um ou mais processadores configurados para criptografar uma ou mais unidades de camada de abstração de rede (NAL) de não camada de criptografia de vídeo (VCL) de uma camada de um fluxo de bits de múltiplas camadas de dados de vídeo, em que as uma ou mais unidades de NAL de não VCL contêm uma mensagem de SEI que tem um tipo de carga útil de SEI, e determinar um ou mais valores de sintaxe do fluxo de bits de múltiplas camadas às quais a mensagem de SEI se aplica com base no tipo de carga útil de SEI.
[0017] Em um outro exemplo, um aparelho para criptografar dados de vídeo inclui meios para criptografar uma ou mais unidades de camada de abstração de rede (NAL) de não camada de criptografia de vídeo (VCL) de uma camada de um fluxo de bits de múltiplas camadas de dados de vídeo, em que as uma ou mais unidades de NAL de não VCL contêm uma mensagem de SEI que tem um tipo de carga útil de SEI, e meios para determinar um ou mais valores de sintaxe do fluxo de bits de múltiplas camadas às quais a mensagem de SEI se aplica com base no tipo de carga útil de SEI.
[0018] Em um outro exemplo, um meio legível por computador não transitório tem instruções armazenadas no mesmo que, quando executadas, fazem com que um ou mais processadores criptografe uma ou mais unidades de camada de abstração de rede (NAL) de não camada de criptografia de vídeo (VCL) de uma camada de um fluxo de bits de múltiplas camadas de dados de vídeo, em que as uma ou mais unidades de NAL de não VCL contêm uma mensagem de SEI que tem um tipo de carga útil de SEI, e determine um ou mais valores de sintaxe do fluxo de bits de múltiplas camadas às quais a mensagem de SEI se aplica com base no tipo de carga útil de SEI.
[0019] Os detalhes da um ou mais exemplos da revelação são estabelecidos nos desenhos anexos e na descrição abaixo. Outros recursos, objetos e vantagens serão evidentes a partir da descrição, dos desenhos e das reivindicações.
BREVE DESCRIÇÃO DOS DESENHOS
[0020] A Figura 1 é um diagrama de blocos que ilustra um sistema de codificação e decodificação de vídeo exemplificativo que pode utilizar as técnicas descritas nesta revelação.
[0021] A Figura 2 é um diagrama de blocos que ilustra um codificador de vídeo exemplificativo que pode implantar as técnicas descritas nesta revelação.
[0022] A Figura 3 é um diagrama de blocos que ilustra um decodificador de vídeo exemplificativo que pode implantar as técnicas descritas nesta revelação.
[0023] A Figura 4 é um diagrama de blocos que ilustra um exemplo de uma unidade de encapsulamento em que um ou mais aspectos desta revelação poderiam ser implantados.
[0024] A Figura 5 é um diagrama de blocos que ilustra uma rede exemplificativa na qual um ou mais aspectos desta revelação poderiam ser implantados.
[0025] A Figura 6 é um diagrama de fluxo que ilustra uma operação exemplificativa de um dispositivo de processamento de vídeo configurada para criptografar uma mensagem de SEI de acordo com vários aspectos das técnicas descritas nesta revelação.
[0026] A Figura 7 é um diagrama de fluxo que ilustra uma outra operação exemplificativa de um dispositivo de processamento de vídeo configurada para criptografar uma mensagem de SEI de acordo com vários aspectos das técnicas descritas nesta revelação.
[0027] A Figura 8 é um diagrama de fluxo que ilustra uma outra operação exemplificativa de um dispositivo de processamento de vídeo configurada para criptografar uma mensagem de SEI de acordo com vários aspectos das técnicas descritas nesta revelação.
DESCRIÇÃO DETALHADA
[0028] Esta revelação inclui técnicas para aplicar mensagens de camada de reforço complementar (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 algumas ocasiões, as técnicas podem ser realizadas com extensões de múltiplas camadas para o padrão HEVC como uma extensão de Codificação de Vídeo de Múltiplas Vistas para HEVC (MV-HEVC) ou uma extensão de Codificação de Vídeo Escalonável (SVC) para HEVC (SHVC), conforme notado abaixo. As técnicas desta revelação, no entanto, não se limitam a qualquer padrão de criptografia de vídeo específico, e também podem ser ou alternativamente são usadas com outras extensões para HEVC, outros padrões de criptografia de múltiplas vistas e/ou outros padrões de vídeo de múltiplas camadas. Além disso, as técnicas desta revelação, conforme descrito abaixo, podem ser aplicadas independentemente ou em combinação.
[0029] Uma “camada” de dados de vídeo pode se referir, em geral, a uma sequência de figurações que tem pelo menos uma característica comum, como uma vista, uma taxa de quadro, uma resolução ou semelhantes. Por exemplo, uma camada pode incluir dados de vídeo associados a uma vista específica (por exemplo, em perspectiva) de dados de vídeo de múltiplas vistas. Como um outro exemplo, uma camada pode incluir dados de vídeo associados a uma camada específica de dados de vídeo escalonáveis. Assim, esta revelação pode se referir, de modo intercambiável, a uma camada e uma vista de dados de vídeo. Ou seja, uma vista dos 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 maneira semelhante, como múltiplas camadas, por exemplo, em um sistema de criptografia de múltiplas camadas. Além disso, um codec de múltiplas camadas (também referido como um criptógrafo de vídeo de múltiplas camadas ou codificador-decodificador de múltiplas camadas) pode se referir, em conjunto, a um codec de múltiplas vistas ou um codec escalonável (por exemplo, um codec configurado para codificar e/ou decodificar dados de vídeo com o uso de MV-HEVC, SHVC ou uma outra técnica de criptografia de múltiplas camadas).
[0030] Um fluxo de bits de múltiplas camadas pode incluir uma camada-base e uma ou mais camadas não base, por exemplo, em SHVC, ou uma pluralidade de vistas, por exemplo, em MV-HEVC. Em um fluxo de bits escalonável, a camada-base pode tipicamente ter um identificador de camada que é igual a zero. Uma camada não base pode ter um identificador de camada que é maior que zero, e pode fornecer dados de vídeo adicionais que não estão incluídos na camada-base. Por exemplo, uma camada não base de dados de vídeo de múltiplas vistas pode incluir uma vista adicional de dados de vídeo. Uma camada não base de dados de vídeo escalonáveis pode incluir uma camada adicional de dados de vídeo escalonáveis. Uma camada não base pode ser referida de modo intercambiável como uma camada de reforço.
[0031] Uma unidade de acesso (às vezes abreviada como AU) de um fluxo de bits de múltiplas camadas é, em geral, uma unidade de dados que inclui todos os componentes de camada (por exemplo, todas as unidades de camada de abstração de rede (AL)) para uma ocorrência temporal comum. Os componentes de camada de uma unidade de acesso são tipicamente destinados a serem produzidos juntos (isto é, produzidos de modo substancialmente simultâneo), em que a produção de uma figuração envolve, em geral, transferir figurações a partir de um armazenamento temporário de figuração decodificada (DPB) (por exemplo, armazenar figurações a partir do DPB para uma memória externa, enviar as figurações do DPB para um visor, ou semelhantes).
[0032] Um fluxo de bits que contém 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 de NAL pode ser uma estrutura de sintaxe que contém uma indicação do tipo de dados na unidade de NAL e bytes que contêm esses dados na forma de uma carga útil de sequência de bytes bruta (RBSP) interespersada conforme necessário com bits de prevenção de emulação. As unidades de NAL podem incluir unidades de NAL de camada de criptografia de vídeo (VCL) e NAL não VCL. As unidades de NAL de VCL podem incluir fatias criptografadas de figurações. Uma unidade de NAL não VCL pode encapsular um conjunto de parâmetro de vídeo (VPS), um conjunto de parâmetro de sequência (SPS), um conjunto de parâmetro de figuração (PPS), uma ou mais mensagens de informações de reforço complementares (SEI), ou outros tipos de dados.
[0033] As unidades de NAL do fluxo de bits podem ser associadas às diferentes camadas do fluxo de bits. Em SHVC, conforme notado acima, as camadas além de uma camada-base podem ser referidas como “camadas de reforço” e podem incluir dados que aprimoram a qualidade de reprodução dos dados de vídeo. Na criptografia de vídeo 3dimensional (3DV) e criptografia de múltiplas vistas, como MV-HEVC, as camadas podem incluir dados associados às diferentes vistas. Cada camada do fluxo de bits está associada a um identificador de camada diferente.
[0034] Além disso, as unidades de NAL podem incluir identificadores temporais. Cada ponto de operação de um fluxo de bits tem um conjunto de identificadores de camada e um identificador temporal. Se uma unidade de NAL especificar um identificador de camada no conjunto de identificadores de camada para um ponto de operação e o identificador temporal da unidade de NAL é menor ou igual ao identificador temporal do ponto de operação, a unidade de NAL está associada ao ponto de operação.
[0035] O mecanismo de SEI suportado tanto em H.264/AVC quanto HEVC possibilita que os codificadores de vídeo incluam tais metadados no fluxo de bits que não é necessário para corrigir a decodificação, por um decodificador de vídeo ou outro dispositivo, dos valores de amostra das figurações de saída, mas pode ser usado para várias outras finalidades, como temporização de saída de figuração, exibição, assim como detecção de perda e ocultamento. Uma unidade de NAL que encapsula uma ou mais mensagens de SEI é referida no presente documento como uma unidade de NAL de SEI. Um tipo de mensagem de SEI é uma mensagem de SEI de aninhamento escalonável. Uma mensagem de SEI de aninhamento escalonável é uma mensagem de SEI que contém uma ou mais mensagens de SEI adicionais. A mensagem de SEI de aninhamento escalonável pode ser usada para indicar se uma mensagem de SEI se aplica às camadas específicas ou subcamadas temporais de um fluxo de bits de múltiplas camadas. Uma mensagem de SEI que não está contida em uma mensagem de SEI de aninhamento escalonável é referida, no presente documento, como uma mensagem de SEI não aninhada.
[0036] Determinados tipos de mensagens de SEI contêm informações que são apenas aplicáveis aos pontos de operação específicos. Um ponto de operação de um fluxo de bits está associado a um conjunto de identificadores de camada e um identificador temporal. Uma representação de ponto de operação pode incluir cada unidade de NAL que é associada a um ponto de operação. Uma representação de ponto de operação pode ter uma taxa de quadros e/ou taxa de bits diferente de um fluxo de bits original. Isso se deve ao fato de que a representação de ponto de operação pode não incluir algumas figurações e/ou alguns dos dados do fluxo de bits original.
[0037] As mensagens de SEI de período de armazenamento temporário, mensagens de SEI de temporização de figuração e mensagens de SEI de unidade de decodificação podem ser apenas aplicáveis aos pontos de operação específicos. Assim, a fim de usar as informações em tais mensagens de SEI, um processador de vídeo pode determinar quais pontos de operação são aplicáveis às mensagens de SEI. Outros tipos de mensagens de SEI são apenas aplicáveis às camadas específicas. Assim, a fim de usar as informações em tais mensagens de SEI, o processador de vídeo pode determinar quais camadas são aplicáveis às mensagens de SEI.
[0038] O uso genérico de mensagens de SEI de HEVC no contexto de criptografia de múltiplas camadas pode apresentar diversos desafios. Por exemplo, conforme descrito em mais detalhes abaixo, a aplicação das mensagens de SEI especificadas em HEVC às múltiplas camadas pode aumentar a complexidade, criar inconsistências de sintaxe e/ou criar outros erros que façam com que um codec de vídeo de múltiplas camadas tenha uma falha.
[0039] Em alguns exemplos, as técnicas desta revelação podem fornecer soluções para resolver uma variedade de questões relacionadas ao uso genérico de mensagens de SEI de HEVC. Por exemplo, as técnicas podem incluir aplicar restrições em determinados elementos de sintaxe, de modo que um codificador de vídeo ou decodificador de vídeo criptografe automaticamente (ou determine automaticamente, sem criptografia) valores para os determinados elementos de sintaxe com base nas características de um fluxo de bits de múltiplas camadas.
[0040] A Figura 1 é um diagrama de blocos que ilustra um sistema de codificação e decodificação de vídeo exemplificativo 10 que pode utilizar as técnicas descritas nesta revelação. Conforme mostrado na Figura 1, o sistema 10 inclui um dispositivo de fonte 12 que gera dados de vídeo codificados a serem decodificados em um tempo posterior por meio de um dispositivo de destino 14. O dispositivo de fonte 12 e o dispositivo de destino 14 podem compreender qualquer um dentre uma ampla faixa de dispositivos, incluindo computadores do tipo desktop, computadores do tipo notebook (isto é, computadores do tipo laptop), computadores do tipo tablet, decodificadores de sinais, fones de telefones como os denominados telefones “inteligentes”, os denominados pads “inteligentes”, televisões, câmeras, dispositivos de exibição, reprodutores de mídia digital, consoles de videogame, dispositivo de fluxo de vídeo ou semelhantes. Em alguns casos, o dispositivo de fonte 12 e o dispositivo de destino 14 podem ser equipados para a comunicação sem fio.
[0041] O dispositivo de destino 14 pode receber os dados de vídeo codificados a serem codificados por meio de um enlace 16. O enlace 16 pode compreender qualquer tipo de meio ou dispositivo com capacidade de mover os dados de vídeo codificados do digitar de fonte 12 para o dispositivo de destino 14. Em um exemplo, o enlace 16 pode compreender um meio de comunicação para possibilitar que o dispositivo de fonte 12 transmita 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, 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 sem fio ou com fio, como um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão física. O meio de comunicação pode formar parte de uma rede baseada em pacote, como uma rede de área local, uma rede de área ampla ou uma rede global como a Internet. O meio de comunicação pode incluir roteadores, comutadores, estações-base ou qualquer outro equipamento que possa ser útil para facilitar a comunicação do dispositivo de fonte 12 para o dispositivo de destino 14.
[0042] Alternativamente, os dados codificados podem ser emitidos a partir de uma interface de saída 22 para um dispositivo de armazenamento 32. Semelhantemente, 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 uma dentre uma variedade de mídia de armazenamento de dados distribuída ou localmente acessada como um disco rígido, discos de Blu-ray, DVDs, CD-ROMs, memória flash, memória volátil ou não volátil ou qualquer outra mídia de armazenamento digital adequada para armazenar dados de vídeo codificados. Em um exemplo adicional, o dispositivo de armazenamento 32 pode corresponder a um servidor de arquivos ou um outro dispositivo de armazenamento intermediário que possa reter o vídeo codificado gerado pelo dispositivo de fonte 12. O dispositivo de destino 14 pode acessar dados de vídeo armazenados do dispositivo de armazenamento 32 por meio de fluxo ou download. O servidor de arquivos pode ser qualquer tipo de servidor com capacidade de armazenar dados de vídeo codificados e transmitir esses dados de vídeo codificados para o dispositivo de destino 14. Os servidores de arquivos exemplificativos incluem um servidor web (por exemplo, para um site da web), um servidor FTP, dispositivos de armazenamento fixado em rede (NAS) ou uma unidade 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 de Internet. Esse pode incluir um canal sem fio (por exemplo, uma conexão de 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 dados de vídeo codificados armazenados em um servidor de arquivos. A transmissão de dados de vídeo de codificado a partir do dispositivo de armazenamento 32 pode ser uma transmissão de fluxo contínuo, uma transmissão de download, ou uma combinação de ambos.
[0043] As técnicas desta revelação não se limitam necessariamente às aplicações ou configurações sem fio. As técnicas podem ser aplicadas à criptografia de vídeo em relação à qualquer uma dentre uma variedade de aplicações de multimídia, como difusões por televisão aberta, transmissões por televisão a cabo, transmissões por televisão via satélite, transmissões de vídeo por fluxo contínuo, por exemplo, por meio da Internet, codificação de vídeo digital para armazenamento em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados ou outras aplicações. Em alguns exemplos, o sistema 10 pode ser configurado para suportar a transmissão de vídeo unidirecional ou bidirecional para suportar aplicações como fluxo de vídeo, reprodução de vídeo, difusão de vídeo, e/ou telefonia por vídeo.
[0044] No exemplo da Figura 1, dispositivo de fonte 12 inclui uma fonte de vídeo 18, codificador de vídeo 20, 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 de fonte 12, a fonte de vídeo 18 pode incluir uma fonte como um dispositivo de captura de vídeo, por exemplo, uma câmera de vídeo, um arquivo de vídeo que contém 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 a fonte vídeo, 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 de fonte 12 e o dispositivo de destino 14 podem formar os denominados telefones com câmera ou telefones com vídeo. No entanto, as técnicas descritas nesta revelação podem ser aplicáveis à criptografia de vídeo em geral, e podem ser aplicadas às aplicações 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 multimídia, em que 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 diferentes modos, por exemplo, com diferentes taxas de quadros, diferentes taxas de bits, diferentes resoluções, ou outras tais diferenças. Assim, a unidade de encapsulamento 21 pode formar várias representações que têm várias características, por exemplo, taxa de bits, taxa de quadros, resolução e semelhantes.
[0046] Cada uma das representações pode corresponder aos respectivos fluxos de bits que podem ser recuperados pelo dispositivo de destino 14. A unidade de encapsulamento 21 pode fornecer uma indicação de uma faixa de identificadores de vista (IDs de vista) para vistas incluídas em cada representação, por exemplo, em uma estrutura de dados de descrição de apresentação de mídia (MPD) para o conteúdo multimídia. Por exemplo, a unidade de encapsulamento 21 pode fornecer uma indicação de um identificador de vista máximo e um identificador de vista mínimo para as vistas de uma representação. A MPD pode fornecer adicionalmente indicações de números máximos de vistas alvejados para a saída para cada uma dentre a pluralidade de representações do conteúdo multimídia. A MPD ou os dados da mesma pode, em alguns exemplos, ser armazenados em um manifesto para a(s) representação(ões).
[0047] Os dados de vídeo codificados podem ser transmitidos diretamente para o dispositivo de destino 14 por meio da interface de saída 22 do dispositivo de fonte 12. Os dados de vídeo codificados também podem (ou alternativamente) ser armazenados no dispositivo de armazenamento 32 para o acesso posterior pelo dispositivo de destino 14 ou outros dispositivos, para 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 de codificado através do enlace 16. Os dados de vídeo codificados comunicados através do enlace 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, como o decodificador de vídeo 30, na decodificação dos dados de vídeo. Tais elementos de sintaxe podem ser incluídos com os dados de vídeo codificados transmitidos em um meio de comunicação, armazenados em um meio de armazenamento, ou armazenados em um servidor de arquivos.
[0049] A unidade de desencapsulamento 29 do dispositivo de destino 14 pode representar uma unidade que desencapsula as mensagens de SEI de um fluxo de bits (ou um subconjunto de um fluxo de bits, referido como um ponto de operação no contexto de criptografia de múltiplas camadas). A unidade de desencapsulamento 29 pode realizar operações em uma ordem oposta àquelas realizadas pela unidade de encapsulamento 21 para desencapsular dados a partir do fluxo de bits codificado encapsulado, como mensagens de SEI.
[0050] O dispositivo de exibição 31 pode ser integrado com o dispositivo de destino 14 ou ser externo ao mesmo. Em alguns exemplos, o dispositivo de destino 14 pode incluir um dispositivo de exibição integrado e também pode ser configurado para fazer interface 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 exibição 31 exibe os dados de vídeo decodificados para um usuário, e pode compreender qualquer um dentre uma variedade de dispositivos de exibição como um monitor de cristal líquido (LCD), um monitor de plasma, um monitor de diodo emissor de luz orgânico (OLED) ou um 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 implantados como qualquer um dentre uma variedade de conjunto de circuitos de codificador adequado, como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados para aplicação específica (ASICs), matrizes de portas programáveis em campo (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. Quando as técnicas forem implantadas 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 pode executar as instruções em hardware com o uso de um ou mais processadores para realizar as técnicas desta revelação.Cada um dentre o codificador de vídeo 20 e o decodificador de vídeo 30 pode estar 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 respectivo dispositivo.
[0052] Embora não mostrado na Figura 1, em alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um, ser integrados com um codificador e decodificador de áudio, e pode incluir unidades de MUX-DEMUX adequadas, ou outro hardware e software, para manusear a codificação tanto de áudio quanto de vídeo em um fluxo de dados comum ou fluxos de dados separados. Caso se aplique, em alguns exemplos, as unidades de MUX-DEMUX podem se adequar ao protocolo de multiplexador ITU H.223, ou outros protocolos como o protocolo de datagrama de usuário (UDP).
[0053] Esta revelação pode se referir, em geral, a codificador de vídeo 20 “que sinaliza” determinadas informações para um outro dispositivo, como o decodificador de vídeo 30. O termo “sinalização” pode se referir, em geral, à comunicação dos elementos de sintaxe e/ou outros dados usados para decodificar os dados de vídeo compactados. Tal comunicação pode ocorrer em tempo real ou em tempo quase real. Alternativamente, tal comunicação pode ocorrer em um intervalo de tempo, como pode ocorrer quando se armazena elementos de sintaxe em um meio de armazenamento legível por computador em um fluxo de bits codificado no tempo de codificação, que, então, pode ser recuperado por um dispositivo de decodificação em qualquer momento após ser armazenado 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 compactação de vídeo, 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), extensão de Codificação de Vídeo de Múltiplas Vistas (MVC), e extensão 3DV baseada 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) desenvolvido pelo Time Colaborativo Conjunto em Codificação de Vídeo (JCT-VC) do ITU-T Grupo de Especialistas em Codificação de Vídeo (VCEG) e Grupo de Especialistas em Imagem em Movimento (MPEG) ISO/IEC. 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”, Time Colaborativo Conjunto em Codificação de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG 11, documento JCTVC-P1003_v1, 16th Meeting, San Jose, Janeiro de 2014, Wang et al., “High Efficiency Video Coding (HEVC) detect report 3”, Time Colaborativo Conjunto em Codificação de Vídeo (JCT-VC) de ITU-T SG16 WPS e ISO/IEC JTC1/SC29/WG11, documento JCTVC- P1003_v1, 16th Meeting, San Jose, Jan. 2014, que fornece um terceiro relatório defeito para a Versão 1 de HEVC.
[0055] Ademais, há esforços em andamento para produzir extensões de codificação de vídeo escalonável, codificação de múltiplas vistas, e 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 o SHVC WD atual referido no presente documento), é descrito em Chen et al, “High Efficiency Video Coding (HEVC) scalable extension draft 5”, pelo Time Colaborativo Conjunto em Codificação de Vídeo (JCT-VC) de ITU-T SG 16 WP3 e ISO/IEC JTC1/SC29/WG11, documento JCTVC-Pl 008_v4, 16th Meeting, San Jose, janeiro de 2014. Um Rascunho de Trabalho recente (WD) de MV-HEVC (referido como MV-HEVC WD7 ou o MV-HEVC WD atual referido no presente documento), é descrito em Tech et al, “MV-HEVC Draft Text 7”, pelo Time Colaborativo Conjunto em Codificação de Vídeo (JCT-VC) de ITU-T SG16WP3 e ISO/IEC JTC1/SC29/WG11, documento JCTVC-G1004_v7, 16th Meeting, San Jose, janeiro de 2014.
[0056] Em HEVC e outras especificações de criptografia de vídeo, uma sequência de vídeo inclui tipicamente uma série de figurações. As figurações também podem ser referidas como “quadros”. A figuração pode incluir três matrizes de amostra, denotadas SL, SCb e SCr. SL é uma matriz bidirecional (isto é, um bloco) de amostras luma. SCb é a matriz bidirecional de amostras de crominância Cb. SCr é uma matriz bidirecional de amostras de crominância Cr. As amostras de crominância também podem ser referidas no presente documento como amostras de “croma”. Em outras ocasiões, uma figuração pode ser monocromática e pode incluir apenas uma matriz de amostras luma.
[0057] Para gerar uma representação codificada de uma figuração, o codificador de vídeo 20 pode gerar um conjunto de unidades de árvore de criptografia (CTUs). Cada uma das CTUs pode compreender um bloco de árvore de criptografia de amostras luma, dois blocos de árvore de criptografia correspondentes de amostra de croma, e estruturas de sintaxe usadas para criptografar as amostras dos blocos de árvore de criptografia. Em figurações monocromáticas ou figurações que têm três planos de cor separados, uma CTU pode compreender um único bloco de árvore de criptografia e as estruturas de sintaxe usadas para codificar as amostras do bloco de árvore de criptografia. Um bloco de árvore de criptografia pode ser um bloco de amostras NxN. Uma CTU também pode ser referido como um “bloco de árvore” ou uma “maior unidade de criptografia” (LCU). As CTUs de HEVC podem ser amplamente análogas aos macroblocos de outros padrões, como H.264/AVC. No entanto, uma CTU não é necessariamente limitada a um tamanho específico e pode incluir uma ou mais unidades de criptografia (CUs). Uma fatia pode incluir um número inteiro de CTUs ordenadas consecutivamente em uma ordem de varredura de rastreamento.
[0058] Para gerar uma CTU criptografada, o codificador de vídeo 20 pode realizar, recursivamente, a árvore quaternária (quad-tree) nos blocos de árvore de criptografia de uma CTU para dividir os blocos de árvore de criptografia em blocos de criptografia, por isso, o nome “unidades de árvore de criptografia”. Um bloco de criptografia pode ser um bloco de amostras NxN. Uma CU pode compreender um bloco de criptografia de amostras luma e dois blocos de criptografia correspondentes de amostra de croma de uma figuração que tem uma matriz de amostra luma, uma matriz de amostra Cb e uma matriz de amostra Cr, e as estruturas de sintaxe usadas para criptografar as amostras dos blocos de criptografia. Em figurações monocromáticas ou figurações que têm três planos de cor separados, uma CU pode compreender um único bloco de criptografia e as estruturas de sintaxe usadas para codificar as amostras do bloco de criptografia.
[0059] O codificador de vídeo 20 pode particionar um bloco de criptografia de uma CU em um ou mais blocos de predição. Um bloco de predição é um bloco de amostras retangular (isto é, quadrado ou não quadrado) no qual a mesma predição é aplicada. Uma unidade de predição (PU) de uma CU pode compreender um bloco de predição de amostras luma, dois blocos de predição de amostra de croma correspondentes, e estruturas de sintaxe usadas para predizer os blocos de predição. Em figurações monocromáticas ou figurações que têm três planos de cor separados, uma PU pode compreender um único bloco de predição e as estruturas de sintaxe usadas para predizer as amostras do bloco de predição. O codificador de vídeo 20 pode gerar blocos de luma, Cb e Cr preditivos para blocos de predição luma, Cb e Cr de cada PU da CU.
[0060] O codificador de vídeo 20 pode usar a intrapredição ou a interpredição para gerar os blocos preditivos para uma PU. Se o codificador de vídeo 20 usar a intrapredição para gerar os blocos preditivos de uma PU, o codificador de vídeo 20 pode gerar os blocos preditivos da PU com base nas amostras decodificadas da figuração associada à PU. Se o codificador de vídeo 20 usar a interpredição para gerar os blocos preditivos de uma PU, o codificador de vídeo 20 pode gerar os blocos preditivos da PU com base nas amostras decodificadas de uma ou mais figurações além da figuração associada à PU.
[0061] Após o codificador de vídeo 20 gerar blocos luma, Cb e Cr preditivos para uma ou mais PUs de uma CU, o codificador de vídeo 20 pode gerar um bloco residual luma para a CU. Cada amostra no bloco residual luma da CU indica uma diferença entre uma amostra luma em um dos blocos luma preditivos da CU e uma amostra correspondente no bloco de criptografia luma original da CU. Além disso, 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 preditivos da CU e uma amostra correspondente no bloco de criptografia 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 preditivos da CU e uma amostra correspondente no bloco de criptografia Cr original da CU.
[0062] Ademais, o codificador de vídeo 20 pode usar a partição de árvore quaternária para decompor os blocos residuais luma, Cb e Cr de uma CU em um ou mais blocos de transformada luma, Cb e Cr. Um bloco de transformada é um bloco de amostras retangular (por exemplo, quadrado ou não quadrado) no qual a mesma transformada é aplicada. Uma unidade de transformada (TU) de uma CU pode compreender um bloco de transformada de amostras luma, dois blocos de transformada de amostra de croma correspondentes, e estruturas de sintaxe usadas para transformar os blocos de transformada. Assim, cada TU de uma CU pode ser associada a um bloco de transformada de luma, um bloco de transformada de Cb e um bloco de transformada de Cr. O bloco de transformada de luma associado à TU pode ser um sub-bloco do bloco residual luma da CU. O bloco de transformada de Cb pode ser um sub-bloco do bloco residual Cb da CU. O bloco de transformada de Cr pode ser um sub-bloco do bloco residual Cr da CU. Em figurações monocromáticas ou figurações que têm três planos de cor separados, uma TU pode compreender um único bloco de transformada e as estruturas de sintaxe usadas para transformar as amostras do bloco de transformada.
[0063] O codificador de vídeo 20 pode aplicar uma ou mais transformadas a um bloco de transformada de luma de uma TU para gerar um bloco de coeficiente de luma para a TU. Um bloco de coeficiente de transformada pode ser uma matriz bidimensional de coeficientes de transformada. Um coeficiente de transformada pode ser uma quantidade escalar. O codificador de vídeo 20 pode aplicar uma ou mais transformadas a um bloco de transformada de Cb de uma TU para gerar um bloco de coeficiente de Cb para a TU. O codificador de vídeo 20 pode aplicar uma ou mais transformadas a um bloco de transformada de Cr de uma TU para gerar um bloco de coeficiente de Cr para a TU.
[0064] Após a geração de um bloco de coeficiente (por exemplo, um bloco de coeficiente de luma, um bloco de coeficiente de Cb ou um bloco de coeficiente de Cr), o codificador de vídeo 20 pode quantizar o bloco de coeficiente. A quantização se refere, em geral, a um processo no qual os coeficientes de transformada são quantizados para reduzir possivelmente a quantidade de dados usados para representar os coeficientes de transformada, fornecendo mais compactação. Após o codificador de vídeo 20 quantizar um bloco de coeficiente, o codificador de vídeo 20 pode codificar por entropia os elementos de sintaxe que indicam os coeficientes de transformada quantizados. Por exemplo, o codificador de vídeo 20 pode realizar a Codificação Aritmética Binária Adaptativa a Contexto (CABAC) nos elementos de sintaxe que indicam os coeficientes de transformada quantizados.
[0065] O codificador de vídeo 20 pode produzir um fluxo de bits que inclui uma sequência de bits que forma uma representação de figurações criptografadas e dados associados. O fluxo de bits pode compreender uma sequência de unidades de camada de abstração de rede (NAL). Uma unidade de NAL é uma estrutura de sintaxe que contém uma indicação do tipo de dados na unidade de NAL e bytes que contêm esses dados na forma de uma carga útil de sequência de bytes bruta (RBSP) interespersada conforme necessário com bits de prevenção de emulação. Cada uma das unidades de NAL inclui um cabeçalho de unidade de NAL e encapsula uma RBSP. O cabeçalho de unidade de NAL pode incluir um elemento de sintaxe que indica um código tipo unidade de NAL. O código tipo unidade de NAL especificado pelo cabeçalho de unidade de NAL de uma unidade de NAL indica o tipo da unidade de NAL. Uma RBSP pode ser uma estrutura de sintaxe que contém um número inteiro de bytes que é encapsulado em uma unidade de NAL. Em algumas ocorrências, um RBSP inclui zero bit.
[0066] Diferentes tipos de unidades de NAL pode encapsular diferentes tipos de RBSPs. Por exemplo, um primeiro tipo de unidade de NAL pode encapsular um RBSP para um conjunto de parâmetro de figuração (PPS), um segundo tipo de unidade de NAL pode encapsular um RBSP para uma fatia criptografada, um terceiro tipo de unidade de NAL pode encapsular um RBSP para SEI, e assim por diante. As unidades de NAL que encapsulam as RBSPs para os dados de criptografia de vídeo (em oposição às RBSPs para conjuntos de parâmetros e mensagens de SEI) podem ser referidas como unidades de NAL de camada de criptografia de vídeo (VCL).
[0067] O decodificador de vídeo 30 pode receber um fluxo de bits gerado pelo codificador de vídeo 20. Além disso, o decodificador de vídeo 30 pode analisar o fluxo de bits para obter elementos de sintaxe a partir do fluxo de bits. O decodificador de vídeo 30 pode reconstruir as figurações dos dados de vídeo com base pelo menos em parte nos elementos de sintaxe obtidos do fluxo de bits. O processo para reconstruir os dados de vídeo pode ser recíproco, em geral, para o processo realizado pelo codificador de vídeo 20. Além disso, o decodificador de vídeo 30 pode quantizar inversamente os blocos de coeficiente associados às TUs de uma CU atual, o decodificador de vídeo 30 pode realizar as transformadas inversas nos blocos de coeficiente para reconstruir blocos de transformada associados às TUs da CU atual. O decodificador de vídeo 30 pode reconstruir os blocos de criptografia da CU atual ao adicionar as amostras dos blocos preditivos para PUs da CU atual às amostras dos blocos de transformada correspondentes das TUs da CU atual. Ao reconstruir os blocos de criptografia para cada CU de uma figuração, o decodificador de vídeo 30 pode reconstruir a figuração.
[0068] Na codificação de múltiplas vistas, pode haver múltiplas vistas da mesma cena a partir de diferentes pontos de vista. Conforme notado acima, uma unidade de acesso inclui um conjunto de figurações que corresponde à ocasião, ao mesmo tempo. Assim, os dados de vídeo podem ser conceitualizados como uma série de unidades de acesso que ocorrem com o tempo. Um “componente de vista” pode ser uma representação criptografada de uma vista em uma única unidade de acesso. Nesta revelação, uma “vista” pode se referir a uma sequência de componentes de vista associadas ao mesmo identificador de vista. Os tipos exemplificativos dos componentes de vista incluem componentes de vista de textura e componentes de vista de profundidade.
[0069] A codificação de múltiplas vistas suporta a predição intervista. A predição intervista é semelhante à interpredição usada em HEVC e pode usar os mesmos elementos de sintaxe. No entanto, quando um criptógrafo de vídeo realizar a predição intervista em uma unidade de vídeo atual (como uma PU), o codificador de vídeo 20 pode usar, como uma figuração de referência, uma figuração que está na mesma unidade de acesso que a unidade de vídeo atual, mas em uma vista diferente. Em contrapartida, a interpredição convencional usa apenas figurações em diferentes unidades de acesso como figurações de referência.
[0070] Na codificação de múltiplas vistas, uma vista pode ser referida como uma “vista-base” se um decodificador de vídeo (por exemplo, decodificador de vídeo 30) puder decodificar figurações na vista sem referência às figurações em qualquer outra vista. Quando se criptografa uma figuração em uma das vistas não base, um criptógrafo de vídeo (como codificador de vídeo 20 ou decodificador de vídeo 30) pode adicionar uma figuração em uma figuração de lista de referência se a figuração estiver em uma vista diferente, mas na ocorrência ao mesmo tempo (isto é, unidade de acesso) como a figuração que o criptógrafo de vídeo está criptografando atualmente. Como outras figurações de referência de interpredição, o criptógrafo de vídeo pode inserir uma figuração de referência de predição intervista em qualquer posição de uma lista de figuração de referência.
[0071] O mecanismo de SEI suportado tanto em H.264/AVC quanto HEVC possibilita que os codificadores de vídeo (por exemplo, codificadores de vídeo 20) incluam tais metadados no fluxo de bits que não é necessário para corrigir a decodificação dos valores de amostra das figurações de saída, mas pode ser usado para várias outras finalidades, como temporização de saída de figuração, exibição, assim como detecção de perda e ocultamento. O codificador de vídeo 20 pode usar mensagens de SEI para incluir, no fluxo de bits, metadados que não são necessários para corrigir a decodificação dos valores de amostra de figurações. No entanto, o decodificador de vídeo 30 ou outros dispositivos pode usar os metadados incluídos em mensagens de SEI para várias outras finalidades. Por exemplo, o decodificador de vídeo 30 ou um outro dispositivo pode usar os metadados em mensagens de SEI para a temporização de saída de figuração, exibição de figuração, detecção de perda e ocultamento de erro.
[0072] O codificador de vídeo 20 pode incluir uma ou mais unidades de NAL de SEI em uma unidade de acesso. Em outras palavras, qualquer número de unidades de NAL de SEI pode estar associado a uma unidade de acesso. Ademais, cada unidade de NAL de SEI pode conter uma ou mais mensagens de SEI. Ou seja, os codificadores de vídeo podem incluir qualquer número de unidades de NAL de SEI em uma unidade de acesso, e cada unidade de NAL de SEI pode conter uma ou mais mensagens de SEI. Uma unidade de NAL de SEI pode incluir um cabeçalho de unidade de NAL e uma carga útil. O cabeçalho de unidade de NAL da unidade de NAL de 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 de NAL de SEI. O segundo elemento de sintaxe especifica um identificador temporal da unidade de NAL de SEI.
[0073] Uma mensagem de SEI aninhada se refere a uma mensagem de SEI que está contida em uma mensagem de SEI de aninhamento escalonável. Uma mensagem de SEI não aninhada se refere a uma mensagem de SEI que não está contida em uma mensagem de SEI de aninhamento escalonável. A carga útil da unidade de NAL de SEI pode compreender uma mensagem de SEI aninhada ou uma mensagem de SEI não aninhada.
[0074] O padrão HEVC descreve a sintaxe e a semântica para vários tipos de mensagens de SEI. No entanto, o padrão HEVC não descreve o manuseio das mensagens de SEI devido ao fato de que as mensagens de SEI não afetam o processo de decodificação normativo. Uma razão para ter mensagens de SEI no padrão HEVC é possibilitar que os dados complementares sejam interpretados de modo idêntico em diferentes sistemas que usam HEVC. As especificações e os sistemas que usam HEVC podem exigir que os codificadores de vídeo gerem determinadas mensagens de SEI ou podem definir manuseios específicos de tipos específicos de mensagens de SEI recebidas.
[0075] A Tabela 1 abaixo lista mensagens de SEI especificadas em HEVC e descreve brevemente suas finalidades:TABELA 1 - VISÃO GERAL DAS MENSAGENS DE SEI
[0076] Uma questão potencial com o uso de mensagens de SEI de HEVC em um contexto de múltiplas camadas é que uma unidade de NAL de SEI que contém uma mensagem de SEI que se aplica a uma camada com um identificador de camada (por exemplo, conforme identificado por um elemento de sintaxe nuh_layer_id do fluxo de bits) que é igual a uma primeira camada (layerIdA para fins de exemplificação) é permitido a seguir uma unidade de NAL de VCL de uma figuração com um identificador de camada (nuh_layer_id) que é maior que a primeira camada (layerIdA) em uma unidade de acesso (AU) que contém figurações das camadas. Por exemplo, uma mensagem de SEI pode ser separada no fluxo de bits da figuração que usa a mensagem de SEI.
[0077] Em um exemplo para fins de ilustração, uma unidade de acesso pode incluir uma primeira figuração de uma primeira camada de um fluxo de bits de múltiplas camadas e uma segunda figuração de uma segunda camada de um fluxo de bits de múltiplas camadas. Em algumas ocasiões, uma mensagem de SEI que é aplicável à primeira figuração da primeira camada pode estar incluída com as unidades de NAL associadas à segunda camada. Se uma unidade de NAL de SEI for permitida a estar incluída com outras camadas de dados de vídeo, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem ter que extrair a unidade de NAL de SEI das outras camadas e armazenar a mensagem antes da criptografia da unidade de acesso.
[0078] De acordo com um primeiro aspecto desta revelação, uma unidade de NAL de SEI que contém uma mensagem de SEI que se aplica a uma camada com um identificador de camada (nuh_layer_id) que é igual a uma primeira camada (layerIdA) não é permitida a seguir qualquer unidade de NAL de VCL assim como suas unidades de NAL de não VCL associadas de uma figuração com um identificador de camada (nuh_layer_id) que é maior que a primeira camada (layerIdA) na unidade de acesso. Por exemplo, de acordo com os aspectos desta revelação, a colocação das unidades de NAL de SEI pode ser restrita de modo que uma unidade de NAL de SEI seja juntamente com a camada (ou as camadas) às quais a unidade de NAL de SEI aplicada no fluxo de bits de múltiplas camadas.
[0079] No exemplo acima, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode apenas criptografar uma ou mais unidades de NAL de não VCL que contêm uma mensagem de SEI aplicável às unidades de NAL de VCL de uma primeira camada juntamente com as unidades de NAL de VCL da primeira camada (por exemplo, criptografe sucessivamente a unidade de NAL de SEI e as unidades de NAL de VCL), de modo que o fluxo de bits não contenha quaisquer figurações criptografadas de qualquer outra camada do fluxo de bits de múltiplas camadas entre as unidades de NAL de VCL da primeira camada e as unidades de NAL de não VCL que contêm a mensagem de SEI aplicável às unidades de NAL de VCL da primeira camada. Em algumas ocasiões, ter a unidade de NAL de SEI junto em um fluxo de bits de múltiplas camadas com as figurações nas camadas às quais a unidade de NAL de SEI se aplica pode ser benéfico, por exemplo, no fato de minimizar o armazenamento ou a transmissão de sobrecarga quando se armazena e transmite unidades de NAL associadas juntas. Por exemplo, ao manter as unidades de NAL de não VCL e de VCL às quais as unidades de NAL de não VCL se aplicam juntas no fluxo de bits, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode não ter que localizar e buscar as unidades de NAL de não VCL a partir da memória antes de criptografar as unidades de NAL de VCL.
[0080] Uma segunda questão potencial com o uso de mensagens de SEI de HEVC em um contexto de múltiplas camadas é que um conjunto de camadas aplicáveis de um fluxo de bits de múltiplas camadas às quais uma mensagem de SEI de hash de figuração decodificada não é claramente especificada no padrão HEVC. A mensagem de SEI de hash de figuração decodificada fornece uma soma de verificação derivada dos valores de amostra de uma figuração decodificada. A mensagem de hash de figuração decodificada pode ser usada para detectar se uma figuração foi corretamente recebida e decodificada.
[0081] De acordo com um segundo aspecto desta revelação, o conjunto de camadas aplicáveis de uma mensagem de SEI de hash de figuração decodificada pode ser especificado para ser a camada com o identificador de camada (nuh_layer_id) que é igual ao identificador de camada (nuh_layer_id) da unidade de NAL de SEI que contém a mensagem de SEI e a mensagem de SEI de hash de figuração decodificada não é permitida a ser aninhada. Por exemplo, de acordo com os aspectos desta revelação, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem apenas criptografar uma mensagem de SEI de hash de figuração decodificada em uma unidade de NAL de SEI como uma mensagem de SEI não aninhada e a mensagem de SEI de hash de figuração decodificada se aplica apenas à camada que tem o mesmo identificador de camada (nuh_layer_id) da unidade de NAL de SEI que contém a mensagem de SEI.
[0082] No exemplo acima, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem criptografar uma ou mais unidades de NAL de não VCL (por exemplo, unidades de NAL de SEI) que contêm uma mensagem de SEI de hash de figuração decodificada, e determinar um conjunto de camadas do fluxo de bits de múltiplas camadas às quais a mensagem de SEI de hash de figuração decodificada é aplicável com base em um identificador de camada das uma ou mais unidades de NAL de não VCL que contêm a mensagem de SEI de hash de figuração decodificada. O codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem criptografar um ou mais elementos de sintaxe que indicam o identificador de camada para a unidade de NAL de SEI, como um elemento de sintaxe de nuh_layer_id, de modo que a determinação do conjunto de camadas se baseie no elemento de sintaxe. As técnicas podem, em algumas ocasiões, aumentar a resiliência de erro e/ou reduzir a sobrecarga de armazenamento associada às mensagens de SEI de hash de figuração decodificada na codificação de múltiplas camadas.
[0083] Uma terceira questão potencial com o uso de mensagens de SEI de HEVC em um contexto de múltiplas camadas é que o conjunto de camadas aplicáveis de mensagem de SEI de conjuntos de parâmetro ativo é claramente especificada no padrão HEVC. A mensagem de SEI de conjuntos de parâmetros ativos indica qual VPS está ativo para as unidades de NAL de VCL da unidade de acesso associada à mensagem de SEI. A mensagem de SEI também pode fornecer informações sobre qual SPS está ativo para as unidades de NAL de VCL da unidade de acesso associada à mensagem de SEI, e outras informações relacionadas aos conjuntos de parâmetros. Por exemplo, a mensagem de SEI pode incluir uma indicação da possibilidade da acessibilidade aleatória total ser suportada (por exemplo, quando suportada, todos os conjuntos de parâmetros necessários para a decodificação das figurações do fluxo de bits restantes quando se acessa de modo aleatório a partir do começo da sequência de vídeo criptografada atual ao descartar completamente todas as unidades de acesso anteriores na ordem de decodificação estão presentes no fluxo de bits restante e todas as figurações criptografadas no fluxo de bits restantes podem ser corretamente decodificadas), ou a possibilidade de não haver conjunto de parâmetros na sequência de vídeo criptografada atual que atualiza um outro conjunto de parâmetros do mesmo tipo que precede 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 desta revelação, uma mensagem de SEI de conjuntos de parâmetros ativos é definida para se aplicar a todas as camadas no fluxo de bits. Além disso, a mensagem de SEI de conjuntos de parâmetros ativos é restrita de ser aninhada. Nesse exemplo, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem criptografar uma ou mais unidades de NAL de não VCL de um fluxo de bits de múltiplas camadas que contêm uma mensagem de SEI de conjuntos de parâmetros ativos, e determinar que a mensagem de SEI de conjuntos de parâmetros ativos seja aplicável a todas as camadas do fluxo de bits de múltiplas camadas com base nas uma ou mais unidades de NAL de não VCL que contêm a mensagem de SEI de conjunto de parâmetro ativo. Por exemplo, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem derivar, automaticamente, do fato de que a mensagem de SEI de conjuntos de parâmetros ativos se aplica a todas as camadas do fluxo de bits de múltiplas camadas em virtude da criptografia da mensagem de SEI de conjuntos de parâmetros ativos. Em algumas ocasiões, as técnicas podem reduzir a complexidade associada às mensagens de SEI de conjuntos de parâmetros ativos na criptografia de múltiplas camadas.
[0085] Uma quarta questão potencial com o uso de mensagens de SEI de HEVC em um contexto de múltiplas camadas é que quando um elemento de sintaxe de frame_field_info_present_flag for igual a um para uma mensagem de SEI de informações de temporização de figuração, aninhada ou não aninhada, o conjunto de camadas aplicáveis não é claramente especificado para as informações de campo de quadro transportadas nos elementos de sintaxe pic_struct, source_scan_type e duplicate_flag. Por exemplo, um elemento de sintaxe de frame_field_info_present_flag que é igual a um especifica que as mensagens de SEI de temporização de figuração estão presentes para toda figuração e inclui os elementos de sintaxe pic_strut, source_scan_type, e duplicate_flag. Em geral, o elemento de sintaxe pic_struct indica se uma figuração deveria ser exibida como um quadro ou como um ou mais campos, o elemento de sintaxe source_scan_type indica um tipo de varredura (por exemplo, progressivo, interlaçado ou desconhecido), e o elemento de sintaxe duplicate_flag indica que a figuração atual é indicada para ser uma duplicata de uma figuração anterior na ordem de saída.
[0086] De acordo com um quarto aspecto desta revelação, quando o elemento de sintaxe de frame_field_info_present_flag for igual a um para uma mensagem de SEI de informações de temporização de figuração, aninhada ou não aninhada, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem automaticamente determinar que as informações de campo de quadro transportadas nos elementos de sintaxe pic_struct, source_scan_type e duplicate_flag se aplicam às camadas em todos os pontos de operação aos quais a mensagem de SEI de temporização de figuração se aplica. Dessa maneira, em algumas ocasiões, as técnicas podem reduzir a complexidade e/ou aprimorar a resiliência de erro quando se usa o elemento de sintaxe de frame_field_info_present_flag na criptografia de múltiplas camadas.
[0087] Uma quinta questão potencial com o uso de mensagens de SEI de HEVC em um contexto de múltiplas camadas é que se permite que a mensagem de SEI de conjuntos de parâmetro ativo seja aninhada em HEVC. No entanto, conforme notado acima, a mensagem de SEI de conjuntos de parâmetros ativos é aplicável a todas as camadas. Dessa maneira, o fornecimento da flexibilidade da mensagem de SEI de conjuntos de parâmetros ativos a ser aplicada às camadas de um fluxo de bits de múltiplas camadas específicas (por exemplo, com o uso de uma mensagem de SEI de aninhamento) pode aumentar, sem necessidade, a complexidade do codificador de vídeo 20 e/ou do decodificador de vídeo 30. Por exemplo, mediante o recebimento e a decodificação de uma mensagem de SEI de aninhamento escalonável, o decodificador de vídeo 30 pode ter que realizar operações adicionais (por exemplo, contra mensagens de SEI não aninhadas) para determinar as camadas aplicáveis para a mensagem de SEI de aninhamento escalonável.
[0088] De acordo com um quinto aspecto desta revelação, não se permite que uma mensagem de SEI de conjuntos de parâmetros ativos seja aninhada em uma mensagem de SEI de aninhamento escalonável. Por exemplo, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode ser restrito para criptografar uma mensagem de SEI de conjuntos de parâmetros ativos de um fluxo de bits de múltiplas camadas apenas em uma mensagem de SEI não aninhada e não em uma mensagem de SEI de aninhamento escalonável. As técnicas podem reduzir a complexidade computacional com a criptografia e com o uso de mensagens de SEI de conjuntos de parâmetros ativos. Por exemplo, retornando-se para o exemplo acima, o decodificador de vídeo 30 pode criptografar e usar a mensagem de SEI de conjuntos de parâmetros ativos sem realizar as operações adicionais associadas às mensagens de SEI de aninhamento escalonável.
[0089] Uma sexta questão potencial com o uso de mensagens de SEI de HEVC em um contexto de múltiplas camadas é que a semântica de uma mensagem de SEI aninhada tem 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 de SEI que tem um payloadType que não é igual a qualquer um dentre 0, 1, 4, 5, 130 e 133) não estão claros. Em HEVC, o bitstream_subset_flag indica se as mensagens de SEI contidas na mensagem de SEI de aninhamento escalonável se aplicam às camadas ou subcamadas específicas de um fluxo de bits de múltiplas camadas. Por exemplo, um bitstream_subset_flag que é igual a zero especifica que as mensagens de SEI contidas na mensagem de SEI de aninhamento escalonável se aplicam às camadas ou subcamadas específicas. Um bitstream_subset_flag que é igual a um especifica que as mensagens de SEI contidas na mensagem de SEI de aninhamento escalonável se aplica a um ou mais subfluxos de bits que resultam de um processo de extração de subfluxo de bits. Por isso, HEVC não especifica claramente a maneira na qual as mensagens de SEI específicas (que têm os tipos de carga útil identificados acima) são manuseados quando um conjunto de camada específico (por exemplo, um subfluxo de bits) for extraído de um fluxo de bits de múltiplas camadas, que pode criar erros e/ou ineficiências durante a criptografia de múltiplas camadas.
[0090] Quando payloadType for igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 129, 131, 132 ou 134, a mensagem de SEI é uma dentre: uma mensagem de SEI de retângulo de tela cheia que inclui dados associados à exibição em uma taxa de proporção de figuração diferente de uma taxa de proporção de figuração de figurações de saída; uma mensagem de SEI de carga útil de enchimento que inclui dados para ajustar uma taxa de bits para satisfazer restrições específicas; uma mensagem de SEI de ponto de recuperação que inclui informações para o acesso aleatório claro ou atualização de decodificação gradual; uma mensagem de SEI de informações de cena que inclui informações associadas às alterações e transições de cena; uma mensagem de SEI de captura de figuração que inclui uma indicação para rotular uma figuração decodificada associada a uma captura instantânea de imagem parada de conteúdo de vídeo; uma mensagem de SEI de início de segmento de refino progressivo que inclui informações associadas a um início de um segmento de figurações consecutivas que representam um refino progressivo de qualidade de uma figuração em vez de uma cena em movimento; uma mensagem de SEI de fim de segmento de refino progressivo que inclui informações associadas a um fim do segmento de figurações consecutivas; uma mensagem de SEI de característica de granulação do filme que inclui informações associadas a sintetização dos efeitos de granulação do filme; uma mensagem de SEI de dica pós-filtro que inclui informações associadas aos coeficientes pós-filtro sugeridos ou informações de correlação para o projeto pós-filtro; uma mensagem de SEI de informações de mapeamento de tom que inclui informações associadas ao remapeamento de um outro espaço de cores do que aqueles usados ou supostos na codificação; uma mensagem de SEI de disposição de empacotamento de quadro que inclui informações associadas ao empacotamento de vídeo estereoscópico no fluxo de bits; uma mensagem de SEI de orientação de exibição que inclui informações que especificam a inversão e/ou a rotação a ser aplicada às figurações de saída quando as figurações de saída forem exibidas; uma estrutura de mensagem de SEI informações de figurações que inclui informações que descrevem a estrutura temporal e interpredição do fluxo de bits; uma mensagem de SEI de índice de subcamada zero temporal que indica um índice de subcamada zero temporal; uma figuração decodificada tem a mensagem de SEI, ou uma mensagem de SEI de informações de atualização de região que indica se os segmentos de fatia associados à mensagem de SEI atual pertencem à região atualizada na figuração atual, respectivamente.
[0091] Quando payloadType for igual a 0, 1, 4, 5, 130 e 133, a mensagem de SEI é uma dentre: uma mensagem de SEI de período de armazenamento temporário, uma mensagem de SEI de temporização de figuração, uma mensagem de SEI de usuário registrado, uma mensagem de SEI de usuário não registrado, uma mensagem de SEI de informações de unidade de decodificação, ou uma mensagem de SEI de aninhamento escalonável, respectivamente.
[0092] De acordo com um sexto aspecto desta revelação, quando uma mensagem de SEI de aninhamento escalonável contiver uma mensagem de SEI que tem 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 de SEI que têm payloadType que não é igual a qualquer um dentre 0, 1, 4, 5, 130 e 133), o valor do elemento de sintaxe bitstream_subset_flag da mensagem de SEI de aninhamento escalonável é necessário que seja igual a 0. Por exemplo, de acordo com aspectos desta revelação, o codificador de vídeo 20 e ou o decodificador de vídeo 30 podem automaticamente determinar e/ou criptografar o elemento de sintaxe bitstream_subset_flag com base no tipo de carga útil da mensagem de SEI que está incluída em um conjunto predeterminado de mensagens de SEI. O conjunto predeterminado de mensagens de SEI pode ser mensagens de SEI que são aplicadas a uma única camada. Dessa maneira, o codificador de vídeo 20 e ou o decodificador de vídeo 30 são restritos a aplicar a mensagem de SEI incluída no conjunto identificado acima de ser aplicado a mais de uma camada em um fluxo de bits de múltiplas camadas desse modo, reduzindo potencialmente os erros e/ou ineficiências durante a criptografia de múltiplas camadas.
[0093] Uma sétima questão potencial com o uso de mensagens de SEI de HEVC em um contexto de múltiplas camadas é que não fica claro qual valor de identificador de camada (nuh_layer_id) deve ser para uma unidade de NAL de SEI que contém um período de armazenamento temporário não aninhado, temporização de figuração ou mensagem de SEI de informações de unidade de decodificação. Uma mensagem de SEI de período de armazenamento temporário fornece um atraso de remoção de armazenamento temporário de figuração criptografada inicial (CPB) e informações de deslocamento de atraso de remoção de CPB inicial para a inicialização da HRD na posição da unidade de acesso associada na ordem de decodificação. A mensagem de SEI de temporização de figuração fornece um tempo de saída de figuração e tempo de remoção de figuração/subfiguração para a operação de HRD, assim como informações relacionadas à estrutura de figuração. Uma mensagem de SEI de informações de unidade de decodificação fornece informações de atraso de remoção de CPB para uma unidade de decodificação. A mensagem pode ser usada em operações de armazenamento temporário de atraso muito baixo. Dessa maneira, as mensagens de SEI notadas acima fornecem informações que são necessárias pela HRD e a mensagem de SEI é aplicável a um conjunto de camadas (por exemplo, um conjunto autocontido de camadas também referido como um subfluxo de bits). Se tais mensagens de SEI não forem aninhadas e o identificador de camada não é zero, não fica claro às quais conjuntos de camada as mensagens se aplicam, o que pode criar erros durante a criptografia de múltiplas camadas.
[0094] De acordo com um sétimo aspecto desta revelação, o valor do identificador de camada (nuh_layer_id) para uma unidade de NAL de SEI que contém um período de armazenamento temporário não aninhado, temporização de figuração ou mensagem de SEI de informações de unidade de decodificação é necessária que seja igual a 0. Por exemplo, de acordo com os aspectos desta revelação, o codificador de vídeo 20 e ou o decodificador de vídeo 30 pode automaticamente determinar que um identificador de camada da camada tem valor zero (e/ou criptografar um valor zero do elemento de sintaxe de identificador de camada) com base nas uma ou mais unidades de NAL de não VCL que contêm a mensagem de SEI que contém um mensagem de SEI de período de armazenamento temporário não aninhado, uma mensagem de SEI de temporização de figuração ou uma mensagem de SEI de informações de unidade de decodificação. Dessa maneira, as técnicas podem reduzir potencialmente erros e/ou ineficiências durante a criptografia de múltiplas camadas.
[0095] Uma oitava questão potencial com o uso de mensagens de SEI de 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) que deve ser para uma mensagem de SEI não aninhada que tem um payloadType igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132 ou 134 (isto é, uma das mensagens de SEI que tem payloadType não igual a qualquer um dentre 0, 1, 129, 130 e 133). Por exemplo, HEVC não especifica claramente a maneira na qual as mensagens de SEI específicas (que têm os tipos de carga útil identificados acima) são manuseados para camadas específicas (que tem um identificador de camada específico) de um fluxo de bits de múltiplas camadas, que pode criar erros e/ou ineficiências durante a criptografia de múltiplas camadas.
[0096] De acordo com um oitavo aspecto desta revelação, quando uma mensagem de SEI não aninhada tiver payloadType igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132 ou 134 (isto é, uma das mensagens de SEI que tem payloadType não igual a qualquer um dentre 0, 1, 129, 130 e 133), um valor de um identificador de camada (nuh_layer_id) para a unidade de NAL de SEI que contém a mensagem de SEI não aninhada é necessário que seja igual ao identificador de camada (nuh_layer_id) das unidades de NAL de VCL associadas da unidade de NAL de SEI. Ou seja, por exemplo, o codificador de vídeo 20 e ou o decodificador de vídeo 30 podem automaticamente determinar, com base no tipo de carga útil de SEI que está incluído 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 de NAL de não VCL que contêm a mensagem de SEI é igual a um elemento de sintaxe de identificador de camada da unidades de NAL de VCL associada à mensagem de SEI.
[0097] Uma nona questão potencial com o uso de mensagens de SEI de HEVC em um contexto de múltiplas camadas é que uma mensagem de SEI de prefixo é necessária em HEVC para estar presente e preceder a primeira unidade de NAL de VCL de uma unidade de acesso em ocasiões em que há uma mensagem de SEI de prefixo do mesmo tipo entre duas unidades de NAL de VCL da unidade de acesso. Por exemplo, as mensagens de SEI de prefixo estão tipicamente are incluídas em um fluxo de bits antes das unidades de NAL de VCL às quais a mensagem de SEI se aplica. Em HEVC, a restrição na colocação de mensagens de SEI de prefixo se baseia na unidade de acesso, que pode apresentar uma questão para as unidades de acesso que têm múltiplos componentes de camada (por exemplo, unidades de acesso que têm figurações a partir de múltiplas camadas). Ou seja, algumas mensagens de SEI de prefixo podem não estar localizadas na localização adequada (por exemplo, antes das unidades de NAL de VCL às quais a mensagem de SEI se aplica) em unidades de acesso que têm múltiplos componentes de camada.
[0098] De acordo com um nono aspecto desta revelação, o codificador de vídeo 20 e ou o decodificador de vídeo 30 podem controlar a maneira na qual as mensagens de SEI de prefixo são criptografadas com base na figuração à qual as mensagens de SEI de prefixo se aplicam (por exemplo, em oposição às técnicas baseadas em unidade de acesso notadas acima). Por exemplo, de acordo com os aspectos desta revelação, uma mensagem de SEI de prefixo que se aplica a uma camada (por exemplo, layerA) que contém uma figuração é necessária que seja apresentada e preceda a primeira unidade de NAL de VCL da figuração em ocasiões em que há uma mensagem de SEI de prefixo que é do mesmo tipo e se aplica à camada (por exemplo, layerA) presente entre duas unidades de NAL de VCL da figuração.
[0099] Por exemplo, para uma unidade de acesso que inclui pelo menos uma primeira figuração e uma segunda figuração, o codificador de vídeo 20 e ou o decodificador de vídeo 30 podem ser restritos a criptografar uma ou mais unidades de NAL de não VCL que contêm uma primeira mensagem de SEI de prefixo aplicável às unidades de NAL de VCL da primeira figuração, e uma ou mais unidades de NAL de não VCL que contêm uma segunda mensagem de SEI de prefixo aplicável às unidades de NAL de VCL da segunda figuração que segue a primeira figuração no fluxo de bits. Dessa maneira, o codificador de vídeo 20 e ou o decodificador de vídeo 30 são restritos a criptografar as mensagens de SEI de prefixo em outras localizações de uma unidade de acesso, o que pode aumentar a eficiência e reduzir a sobrecarga de armazenamento para a criptografia de múltiplas camadas.
[0100] Uma décima questão potencial com o uso de mensagens de SEI de HEVC em um contexto de múltiplas camadas é que, em HEVC, uma mensagem de SEI de sufixo é necessária para estar presente e suceder (seguir) a última unidade de NAL de VCL de uma unidade de acesso quando houver uma mensagem de SEI de sufixo do mesmo tipo entre duas unidades de NAL de VCL da unidade de acesso. Por exemplo, a mensagem de SEI de sufixo está tipicamente incluída em um fluxo de bits após as unidades de NAL de VCL às quais a mensagem de SEI se aplica. Em HEVC, a restrição na colocação de mensagens de SEI de sufixo se baseia na unidade de acesso, que pode apresentar uma questão para as unidades de acesso que têm múltiplos componentes de camada (por exemplo, unidades de acesso de um fluxo de bits de múltiplas camadas). Ou seja, algumas mensagens de SEI de sufixo podem não estar localizadas na localização adequada (por exemplo, que seguem as unidades de NAL de VCL às quais a mensagem de SEI se aplica) em unidades de acesso que têm múltiplos componentes de camada.
[0101] De acordo com um décimo aspecto desta revelação, o codificador de vídeo 20 e ou o decodificador de vídeo 30 podem controlar a maneira na qual as mensagens de SEI de sufixo são criptografadas com base na figuração à qual as mensagens de SEI de sufixo se aplicam (por exemplo, em oposição às técnicas baseadas em unidade de acesso notadas acima). Por exemplo, de acordo com os aspectos desta revelação, uma mensagem de SEI de sufixo que se aplica a uma camada (por exemplo, layerA) que contém uma figuração é necessária que seja apresentada e suceda (siga) a última unidade de NAL de VCL da figuração quando houver uma mensagem de SEI de sufixo que é do mesmo tipo e se aplica à camada (por exemplo, layerA) presente entre duas unidades de NAL de VCL da figuração.
[0102] Por exemplo, para uma unidade de acesso que inclui pelo menos uma primeira figuração e uma segunda figuração, o codificador de vídeo 20 e ou o decodificador de vídeo 30 podem ser restritos a criptografar uma ou mais unidades de NAL de não VCL que contêm uma primeira mensagem de SEI de prefixo aplicável às unidades de NAL de VCL da primeira figuração, e uma ou mais unidades de NAL de não VCL que contêm uma segunda mensagem de SEI de sufixo aplicável às unidades de NAL de VCL da primeira figuração que segue a segunda figuração que segue a segunda figuração no fluxo de bits. Dessa maneira, o codificador de vídeo 20 e ou o decodificador de vídeo 30 são restritos a criptografar as mensagens de SEI de sufixo em outras localizações de uma unidade de acesso, o que pode aumentar a eficiência e reduzir a sobrecarga de armazenamento para a criptografia de múltiplas camadas.
[0103] Uma décima primeira questão potencial com o uso de mensagens de SEI de HEVC em um contexto de múltiplas camadas é que, em HEVC, o número de vezes que se permite que uma mensagem de SEI seja repetida é especificado por unidade de acesso. Por exemplo, em algumas ocasiões, uma mensagem de SEI pode ser repetida quando se criptografa uma figuração. Em um exemplo para fins de ilustração, para uma figuração que tem oito fatias, sendo que cada fatia está associada à sua própria unidade de NAL de VCL, o codificador de vídeo 20 e ou o decodificador de vídeo 30 pode repetir uma mensagem de SEI específica para cada unidade de NAL de VCL. No entanto, uma restrição baseada em unidade de acesso no número de vezes uma mensagem de SEI pode ser repetida pode apresentar uma questão na criptografia de vídeo de múltiplas camadas, devido ao fato de que uma unidade de acesso que tem múltiplos componentes de camada pode ter potencialmente muito mais fatias do que uma unidade de acesso que tem um único componente de camada (por exemplo, uma única figuração). Nesse exemplo, o desempenho de erro (e/ou outras funções impactadas pelas mensagens de SEI) pode ser adversamente afetado.
[0104] De acordo com um décimo primeiro aspecto desta revelação, o codificador de vídeo 20 e ou o decodificador de vídeo 30 podem especificar o número de vezes uma mensagem de SEI pode ser repetida em uma base por figuração. Nesse contexto, uma figuração pode ser definida como contendo as unidades de NAL de VCL de uma figuração criptografada e as unidades de NAL de não VCL que são associadas às unidades de NAL de VCL. Por isso, de acordo com os aspectos desta revelaçã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 de SEI (por exemplo, um número máximo de vezes que a mensagem de SEI pode ser repetida) com base em uma unidade de figuração que contenha as unidades de NAL de VCL de uma figuração e unidades de NAL de não VCL associadas à figuração. As técnicas podem, em algumas ocasiões, aumentar a resiliência de erro na criptografia de múltiplas camadas.
[0105] Uma décima segunda questão potencial com o uso de mensagens de SEI de HEVC em um contexto de múltiplas camadas é que um conflito que surge em ocasiões em que um elemento de sintaxe default_op_flag é igual a um, e um elemento de sintaxe bitstream_subset_flag é igual a um, mas não há conjuntos de camadas especificados por um VPS para o fluxo de bits que inclui e apenas inclui as camadas que têm valores de identificador de camada (nuh_layer_id) na faixa de 0 a nuh_layer_id da unidade de NAL de SEI atual, inclusive. Por exemplo, um elemento de sintaxe default_op_flag que é igual a um especifica que um maxTemporalId[ 0 ] é igual a nuh_temporal_id_plus1 da unidade de NAL de SEI atual e que nestingLayerIdList[ 0 ] contém todos os valores de número inteiro na faixa de 0 a nuh_layer_id da unidade de NAL de SEI atual, inclusive, em ordem crescente dos valores. Conforme notado acima, um elemento de sintaxe bitstream_subset_flag igual a um especifica que as mensagens de SEI contidas na mensagem de SEI de aninhamento escalonável se aplicam a um ou mais subfluxos de bits que resultam de um processo de extração de subfluxo de bits. Em outras palavras, pode surgir um conflito em ocasiões nas quais um conjunto de camadas de falha de um fluxo de bits de múltiplas camadas é indicado, mas a VPS não especifica um conjunto de camada específico que corresponde ao conjunto de camadas padrão.
[0106] De acordo com um décimo segundo aspecto desta revelação, quando um elemento de sintaxe bitstream_subset_flag for igual a um e nenhum dos conjuntos de camadas especificados por um VPS incluir e apenas incluir as camadas que têm valores de nuh_layer_id na faixa de 0 a nuh_layer_id da unidade de NAL de SEI atual, inclusive, o valor do elemento de sintaxe default_op_flag é necessário que seja igual a zero. Por exemplo, o codificador de vídeo 20 e ou o decodificador de vídeo 30 podem criptografar um elemento de sintaxe bitstream_subset_flag de um fluxo de bits de múltiplas camadas, e, com base no bitstream_subset_flag que é igual a um e nenhum conjunto de camadas especificado por VPS do fluxo de bits de múltiplas camadas incluindo identificadores de camada na faixa de zero para um identificador de camada da unidades de NAL de não VCL que contêm a mensagem de SEI, inclusive, para determinar que um valor de um elemento de sintaxe default_op_flag do fluxo de bits de múltiplas camadas tem valor zero. As técnicas podem aprimorar a resiliência de erro quando se usa o elemento de sintaxe default_op_flag na criptografia de múltiplas camadas.
[0107] Uma décima terceira questão potencial com o uso de mensagens de SEI de HEVC em um contexto de múltiplas camadas é que quando um elemento de sintaxe nesting_op_flag for igual a zero e um elemento de sintaxe de all_layers_flag for igual a um, 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 ] é especificada por um elemento de sintaxe de 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, conforme identificado com o uso da variável maxTemporalId[ 0 ]) quando as mensagens de SEI aninhadas forem usadas com subcamadas temporais de um fluxo de bits de múltiplas camadas, o que pode causar complicações desnecessárias.
[0108] De acordo com um décimo terceiro aspecto desta revelação, quando um elemento de sintaxe nesting_op_flag for igual a zero e um elemento de sintaxe all_layers_flag for igual a um, o codificador de vídeo 20 e o decodificador de vídeo 30 podem automaticamente criptografar um elemento de sintaxe maxTemporalId[ 0 ] para ter um valor seis, o que é o valor máximo possível para o elemento de sintaxe TemporalId. Ou seja, de acordo com os aspectos desta revelação, o codificador de vídeo 20 e ou o decodificador de vídeo 30 podem ser configurados para aplicar uma mensagem de SEI a todas as subcamadas que estão incluídas em uma camada de dados de vídeo, independente do número de subcamadas que estão incluídas. Dessa maneira, as técnicas podem reduzir a complexidade associada à criptografia de múltiplas camadas.
[0109] Uma décima quarta questão potencial com o uso de mensagens de SEI de HEVC em um contexto de múltiplas camadas é que, quando uma mensagem de SEI aninhada tiver 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 de SEI que têm payloadType não igual a qualquer um dentre 0, 1, 4, 5, 130 e 133) e a mensagem de SEI se aplica a um conjunto de camadas, o conjunto de camadas pode ser associado a um valor de maxTemporalId[ i ] que é menor que o maior valor de TemporalId no fluxo de bits. No entanto, a semântica dessas mensagens de SEI são descritas sem considerar as subcamadas, e são consequentemente inconsistentes com a semântica da mensagem de SEI de aninhamento escalonável quando a situação acima ocorrer. Essa inconsistência pode, desnecessariamente, aumentar a complexidade da criptografia de múltiplas camadas.
[0110] De acordo com um décimo quarto aspecto desta revelação, quando uma mensagem de SEI aninhada tiver 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 de SEI que tem payloadType não igual a qualquer um dentre 0, 1, 4, 5, 130 e 133), a unidade de NAL de SEI que contém a mensagem de SEI de aninhamento escalonável é necessária para ter um elemento de sintaxe TemporalId que é igual a zero e um elemento de sintaxe maxTemporalId[ i ] para todo i para 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 automaticamente determinar um valor para o elemento de sintaxe TemporalId que é igual a zero e um elemento de sintaxe maxTemporalId[ i ] for todo i que é igual a seis com base em uma mensagem de SEI que tem um tipo de carga útil em um conjunto predeterminado de tipos de carga útil (por exemplo, os tipos identificados acima). Dessa maneira, as técnicas podem reduzir a complexidade associada à criptografia de múltiplas camadas.
[0111] Uma décima quinta questão potencial com o uso de mensagens de SEI de HEVC em um contexto de múltiplas camadas é que quando um elemento de sintaxe bitstream_subset_flag for igual a um e um elemento de sintaxe nesting_op_flag for 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 o fluxo de bits de múltiplas camadas.
[0112] De acordo com um décimo quinto aspecto desta revelação, quando um elemento de sintaxe bitstream_subset_flag for igual a um e um elemento de sintaxe nesting_op_flag for igual a zero, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem ser configurados para criptografar o elemento de sintaxe nestingLayerIdList [ 0 ] para incluir e apenas inclui os valores de nuh_layer_id de um dos conjuntos de camadas especificados pelo VPS. Por exemplo, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem ser configurados para criptografar um elemento de sintaxe bitstream_subset_flag do fluxo de bits de múltiplas camadas e um elemento de sintaxe nesting_op_flag do fluxo de bits de múltiplas camadas, e, com base no elemento de sintaxe bitstream_subset_flag que tem um valor um e o elemento de sintaxe nesting_op_flag que tem um valor zero, determinar que um nestingLayerIdList[ 0 ] do fluxo de bits de múltiplas camadas inclui apenas valores de identificador de camada de um conjunto de camadas especificado em um VPS do fluxo de bits de múltiplas camadas. Dessa maneira, as técnicas podem reduzir a complexidade associada à criptografia 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 esta revelação não estabelecidos abaixo. As alterações textuais em relação ao padrão de SHVC notado acima para algumas das técnicas descritas acima são indicadas com o uso de sublinhados para identificar o material inserido e parênteses duplos ([[removidos: ]]) para indicar o material deletado abaixo:
[0114] Alterar as definições a seguir na cláusula 3 conforme segue:
[0115] 3.X unidade de acesso: Um conjunto de unidades de NAL que são associadas entre si de acordo com uma regra de classificação especificada, são consecutivas na ordem de decodificação, e contêm as unidades de NAL de VCL de todas as figurações criptografadas associadas ao mesmo tempo de saída e suas unidades de NAL de não VCL associadas.
[0116] NOTA - As figurações na mesma unidade de acesso são associadas à mesma contagem de ordem de figuração.
[0117] Adicionar as definições a seguir à cláusula 3:
[0118] 3.X partição de fluxo de bits base: Uma partição de fluxo de bits que também é, o próprio, um fluxo de bits em conformidade.
[0119] 3.X partição de fluxo de bits: Uma sequência de bits, na forma de um fluxo de unidade de NAL ou um fluxo de bytes, ou seja, um subconjunto de um fluxo de bits de acordo com uma partição.
[0120] 3.X camada de saída: Uma camada de um conjunto de camadas de saída que é emitida quando TargetOptLayerSetIdx for igual ao índice do conjunto de camadas de saída.
[0121] 3.X conjunto de camadas de saída: Um conjunto de camadas que consiste em camadas de um dos conjuntos de camadas especificados, em que uma ou mais camadas no conjunto de camadas são indicados para ser as camadas de saída.
[0122] 3.X ponto de operação de saída: Um fluxo de bits que é criado a partir de um outro fluxo de bits através da operação do processo de extração de subfluxo de bits com um outro fluxo de bits, um mais elevado TemporalId alvo, e uma lista de identificador de camada alvo como entradas, e que é associado a um conjunto de camadas de saída alvo.
[0123] 3.X unidade de figuração: Um conjunto de unidades de NAL que são associadas entre si de acordo com uma regra de classificação especificada, são consecutivas na ordem de decodificação, e contêm as unidades de NAL de VCL de uma figuração criptografada e suas unidades de NAL de não VCL associadas.
[0124] 3.X camada de saída alvo: Uma camada que deve ser emitida e é uma dentre as camadas de saída do conjunto de camadas de saída com o índice olsIdx de modo que TargetOptLayerSetIdx seja igual a olsIdx.
[0125] 3.X conjunto de camadas de saída alvo: Um conjunto de camadas de saída associado à variável TargetOptLayerSetIdx que especifica uma lista de identificador de camada de um ponto de operação de saída em uso e um conjunto de camadas de saída alvo.
[0126] [[Removido: 3.X ponto de operação: Um fluxo de bits que é criado a partir de um outro fluxo de bits através da operação do processo de extração de subfluxo de bits com um outro fluxo de bits, um mais elevado TemporalId alvo, e uma lista de identificador de camada alvo como entradas, e que é associado a um conjunto de camadas de saída alvo.
[0127] NOTA 14 - Se o mais elevado TemporalId alvo de um ponto de operação for igual ao mais alto valor de TemporalId no conjunto de camadas associado à lista de identificação de camada alvo, o ponto de operação é idêntico ao conjunto de camadas. De outro modo, é um subconjunto do conjunto de camadas.]]
C.1 GERAL
[0128] Esse anexo especifica o decodificador de referência hipotético (HRD) e seu uso para verificar o fluxo de bits e a conformidade do decodificador.
[0129] Múltiplos testes podem ser necessários para verificar a conformidade de um fluxo de bits, que é referido como o fluxo de bits sob teste. Para cada teste, as etapas a seguir se aplicam na ordem listada:
[0130] 1. Um ponto de operação de saída sob teste, denotado como TargetOp, é selecionado ao selecionar um conjunto de camadas de saída alvo identificado por TargetOutputLayerSetldx e selecionar um mais alto valor de TemporalId alvo HighestTid. O valor de TargetOutputLayerSetIdx deve estar na faixa de 0 a NumOutputLayerSets - 1, inclusive. O valor de HighgestTid 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 conforme especificado pela Equação 8-1. O ponto de operação de saída sob teste tem OptLayerIdList igual a TargetOptLayerIdList, OpLayerIdList igual a TargetDecLayerIdList, e OpTid igual a HighestTid.
[0131] Para cada ponto de operação de saída sob teste quando a operação de CPB específica um fluxo de bits for testada, o número de testes de conformidade de fluxo de bits a ser realizado é igual a n0 * n1 * (2 * 2 + n3) * n4, em que os valores de n0, n1, n2, n3 e n4 são especificados conforme segue:
MODIFICAR SUBCLÁUSULA D.3.1 CONFORME SEGUE:
[0132] É uma exigência da conformidade de fluxo de bits que quando uma mensagem de SEI de prefixo com payloadType igual a 17 (fim segmento de refino progressivo) ou 22 (dica pós-filtro) está presente em uma unidade de acesso, uma mensagem de SEI de sufixo com o mesmo valor de payloadType não deve estar presente na mesma unidade de acesso.
[0133] [[removido: Deixar que prevVclNalUnitInAu de uma unidade de NAL de SEI ou uma mensagem de SEI seja a unidade de NAL de VCL precedente na ordem de decodificação, caso haja, na mesma unidade de acesso, e nextVclNalUnitInAu de uma unidade de NAL de SEI ou uma mensagem de SEI seja a próxima unidade de NAL de VCL na ordem de decodificação, caso haja, na mesma unidade de acesso.]]
[0134] É uma exigência da conformidade de fluxo de bits que as restrições a seguir se apliquem na contenção de mensagens de SEI em unidades de NAL de SEI:
[0135] - Uma unidade de NAL de SEI que contém uma mensagem de SEI de conjuntos de parâmetros ativos deve conter apenas uma mensagem de SEI de conjuntos de parâmetros ativos e não deve conter quaisquer outras mensagens de SEI.
[0136] [[removido: Quando uma unidade de NAL de SEI que contém uma mensagem de SEI de conjuntos de parâmetros ativos estiver presente em uma unidade de acesso, deve ser a primeira unidade de NAL de SEI que segue a prevVclNalUnitInAu da unidade de NAL de SEI e precede o nextVclNalUnitInAu da unidade de NAL de SEI.]]
[0137] - Quando uma unidade de NAL de SEI contiver uma mensagem de SEI de período de armazenamento temporário não aninhada, uma mensagem de SEI de temporização de figuração não aninhada, ou uma mensagem de SEI de informações de unidade de decodificação não aninhada, a unidade de NAL de SEI não deve conter qualquer outra mensagem de SEI com payloadType não igual a 0 (período de armazenamento temporário), 1 (temporização de figuração), ou 130 (informações de unidade de decodificação).
[0138] - Quando uma unidade de NAL de SEI contiver uma mensagem de SEI de período de armazenamento temporário aninhada, uma mensagem de SEI de temporização de figuração aninhada, ou uma mensagem de SEI de informações de unidade de decodificação aninhada, a unidade de NAL de SEI não deve conter qualquer outra mensagem de SEI com payloadType não igual a 0 (período de armazenamento temporário), 1 (temporização de figuração), ou 130 (informações de unidade de decodificação) ou 133 (aninhamento escalonável).
[0139] Deixar prevVclNalUnitlnAu de uma unidade de NAL de SEI ou uma mensagem de SEI seja a unidade de NAL de VCL precedente na ordem de decodificação, caso caso haja, na mesma unidade de acesso. É uma exigência da conformidade de fluxo de bits que as restrições a seguir se apliquem:
[0140] É uma exigência da conformidade de fluxo de bits que as restrições a seguir se apliquem na ordem de mensagens de SEI:
[0141] - Quando uma unidade de NAL de SEI que contém uma mensagem de SEI de conjuntos de parâmetros nextVclNalUnitInAu da unidade de NAL de SEI.
[0142] - Quando uma mensagem de SEI de período de armazenamento temporário não aninhado estiver presente em uma unidade de acesso, a mesma não deve seguir qualquer outra mensagem de SEI que siga o prevVclNalUnitInAu da mensagem de SEI de período de armazenamento temporário e precede o nextVclNalUnitInAu da mensagem de SEI de período de armazenamento temporário, outra além de uma mensagem de SEI de conjuntos de parâmetros ativos. Quando uma mensagem de SEI de temporização de figuração não aninhada estiver presente em uma unidade de acesso, a mesma não deve seguir qualquer outra mensagem de SEI que siga o prevVclNalUnitInAu da mensagem de SEI de temporização de figuração e precede o nextVclNalUnitInAu da mensagem de SEI de temporização de figuração, outra além de uma mensagem de SEI de conjuntos de parâmetros ativos ou uma mensagem de SEI de período de armazenamento temporário não aninhada.
[0143] - Quando uma mensagem de SEI de informações de unidade de decodificação não aninhada estiver presente em uma unidade de acesso, a mesma não deve seguir qualquer outra mensagem de SEI na mesma unidade de acesso que segue o prevVclNalUnitInAu da mensagem de SEI de informações de unidade de decodificação e preceder a nextVclNalUnitInAu da mensagem de SEI de informações de unidade de decodificação, além de uma mensagem de SEI de conjuntos de parâmetros ativos, uma mensagem de SEI de período de armazenamento temporário não aninhado, ou uma mensagem de SEI de temporização de figuração não aninhada.
[0144] - Quando uma mensagem de SEI de período de armazenamento temporário aninhada, uma mensagem de SEI de temporização de figuração aninhada ou uma mensagem de SEI de informações de unidade de decodificação aninhada estiver contida em uma mensagem de SEI de aninhamento escalonável em uma unidade de acesso, a mensagem de SEI de aninhamento escalonável não deve seguir qualquer outra mensagem de SEI que segue a prevVclNalUnitInAu da mensagem de SEI de aninhamento escalonável e preceda a nextVclNalUnitInAu da mensagem de SEI de aninhamento escalonável, além de uma mensagem de SEI de conjuntos de parâmetros ativos, uma mensagem de SEI de período de armazenamento temporário não aninhado, uma mensagem de SEI de temporização de figuração não aninhada, uma mensagem de SEI de informações de unidade de decodificação não aninhada, ou outra mensagem de SEI de aninhamento escalonável que contém uma mensagem de SEI de período de armazenamento temporário, uma mensagem de SEI de temporização de figuração, ou uma mensagem de SEI de informações de unidade de decodificação.
[0145] - Quando a payloadType for igual a 0 (período de armazenamento temporário), 1 (temporização de figuração) ,ou 130(informações de unidade de decodificação) para uma mensagem de SEI, aninhada ou não aninhada, na unidade de acesso, a unidade de NAL de SEI que contém a mensagem de SEI deve preceder todas as unidades de NAL de qualquer unidade de figuração que tenha nuh layer id maior que highestAppLayerId em que highestAppLayerId é o maior valor de nuh layer id de todas as camadas em todos os pontos de operação aos quais a mensagem de SEI se aplica.
[0146] - Quando payloadType for igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132, ou 134 (isto é, uma das mensagens de SEI que têm payloadType não igual a qualquer um dentre 0, 1, 4, 5, 130, e 133) para uma mensagem de SEI, aninhada ou não aninhada, na unidade de acesso, a unidade de NAL de SEI que contém a mensagem de SEI deve preceder todas as unidades de NAL de qualquer unidade de figuração que tenha nuh layer id maior que highestAppLayerId, em que highestAppLayerId é o maior valor de nuh layer id de todas as camadas às quais a mensagem de SEI se aplica.
[0147] [[Removido: Para uma mensagem de SEI não aninhada, dependendo do valor de payloadType, t]] O que segue se aplica nos pontos de operação ou camadas aplicáveis de mensagens de SEI:
[0148] - Para uma mensagem de SEI não aninhada, quando [[removido: Se]] o payloadType for igual a 0 (período de armazenamento temporário), 1 (temporização de figuração), ou 130 (informações de unidade de decodificação), a mensagem de SEI não aninhada se aplica ao ponto de operação que tem OpTid igual ao maior valor de nuh_temporal_id_plus1 dentre todas as unidades de NAL de VCL no fluxo de bits, e que tem OpLayerIdList contendo todos os valores de nuh_layer_id em todas as unidades de VCL no fluxo de bits.
[0149] - Para uma mensagem de SEI não aninhada, [[removido: De outro modo,]] quando payloadType for igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132 ou 134 (isto é, uma das mensagens de SEI que tem payloadType não igual a qualquer um dentre 0. 1, 4, 5, [[removido: ou]] 130, e 133 [[removido: e que se permite que sejam mensagens de SEI aninhadas]]), a mensagem de SEI não aninhada se aplica à camada para a qual as unidades de NAL de VCL tem nuh_layer_id iguais à nuh_layer_id da unidade de NAL de SEI que contém a mensagem de SEI.
[0150] - Uma mensagem de SEI de conjuntos de parâmetros ativos, que não pode ser aninhada, se aplica a todas as camadas no fluxo de bits.
[0151] - Quando frame_field_info_present_flag for igual a 1 para uma mensagem de SEI de informações de temporização de figuração aninhada ou não aninhada, as informações de campo de quadro obtidas nos elementos de sintaxe pic. _struct_ _source_scan_type e duplicate_flag se aplicam a todas as camadas em todos os pontos de operação aos quais a mensagem de SEI de temporização de figuração se aplica.
[0152] É uma exigência da conformidade de fluxo de bits que as restrições a seguir se apliquem no aninhamento das mensagens de SEI:
[0153] - Uma mensagem de SEI que tem payloadType igual a 129 (conjuntos de parâmetros ativos), 132 (hash de figuração decodificada), e 133 (Um aninhamento escalonável[[removido:) mensagem de SEI]] não deve ser aninhada em uma mensagem de SEI de aninhamento escalonável.
[0154] - Quando uma mensagem de SEI de aninhamento escalonável contiver uma mensagem de SEI de período de armazenamento temporário, uma mensagem de SEI de temporização de figuração ou uma mensagem de SEI de informações de unidade de decodificação, a mensagem de SEI de aninhamento escalonável não deve conter qualquer outra mensagem de SEI com payloadType não igual a 0 (período de armazenamento temporário), 1 (temporização de figuração), ou 130 (informações de unidade de decodificação).
[0155] - Quando uma mensagem de SEI de aninhamento escalonável contiver uma mensagem de SEI de período de armazenamento temporário, uma mensagem de SEI de temporização de figuração, ou uma mensagem de SEI de informações de unidade de decodificação, o valor de bitstream subset flag da mensagem de SEI de aninhamento escalonável deve ser igual a 1. - Quando uma mensagem de SEI de aninhamento escalonável contiver uma mensagem de SEI que tem payloadType igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132, ou 134 (isto é, uma das mensagens de SEI que tem payloadType não igual a qualquer um dentre 0, 1, 4, 5, 130 e 133) , o valor de bitstream subset flag da mensagem de SEI de aninhamento escalonável deve ser igual a 0.
[0156] É uma exigência da conformidade de fluxo de bits que as restrições a seguir se apliquem aos valores de nuh_layer_id e TemporalId da unidade de NAL de SEI :
[0157] - Quando uma mensagem de SEI não aninhada tiver payloadType igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132, ou 134 (isto é, uma das mensagens de SEI que tem payloadType não igual a qualquer um dentre 0, 1, 4, 5, 129, [[removido: ou]] 130, e 133 [[removido: que são permitidos a serem mensagens de SEI aninhadas]]), a unidade de NAL de SEI que contém a mensagem de SEI não aninhada deve ter TemporalId igual ao TemporalId da unidade de acesso que contém a unidade de NAL de SEI.
[0158] - Quando uma mensagem de SEI não aninhada tiver payloadType igual a 0, 1, 129 ou 130, a unidade de NAL de SEI que contém a mensagem de SEI não aninhada deve ter nuh layer id igual a 0.
[0159] - Quando uma mensagem de SEI não aninhada tiver payloadType igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132, ou 134 (isto é, uma das mensagens de SEI que tem payloadType não igual a qualquer um dentre 0, 1, 129, 130 e 133) , a unidade de NAL de SEI que contém a mensagem de SEI não aninhada deve ter nuh layer id igual ao nuh layer id da unidade de NAL de VCL associada da unidade de NAL de SEI.
[0160] NOTA 4 - Para uma unidade de NAL de SEI que contém a mensagem de SEI de aninhamento escalonável, os valores de TemporalId e nuh layer id devem ser definidos iguais ao menor valor de TemporalId e nuh layer id, respectivamente, de todas as subcamadas ou pontos de operação aos quais as mensagens de SEI aninhadas se aplicam.
[0161] É uma exigência da conformidade de fluxo de bits que as restrições a seguir se apliquem na presença das mensagens de SEI entre duas unidades de NAL de VCL da [[removido: uma unidade de acesso]] figuração:
[0162] - Quando houver uma mensagem de SEI de prefixo que tem payloadType igual a 0, 1, 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 129, ou 131 (isto é uma das mensagens de SEI de prefixo que não são registradas por dados de usuário através de mensagem de SEI de Rec. ITU-T T.35, mensagem de SEI não registrada de dados de usuário, mensagem de SEI de informações de unidade de decodificação, mensagem de SEI de aninhamento escalonável, ou mensagem de SEI de informações de atualização de região) e se aplica a uma figuração de uma camada layerA presente entre duas unidades de NAL de VCL da [[removido: uma unidade de acesso]] figuração na ordem de decodificação, deve haver uma mensagem de SEI de prefixo que seja do mesmo tipo e se aplique à camada layerA presente na mesma unidade de acesso que precede a primeira unidade de NAL de VCL da [[removido: unidade de acesso]] figuração.
[0163] - Quando houver uma mensagem de SEI de sufixo que tenha payloadType igual a 3 (carga útil de enchimento), 17 (extremidade de segmento de refino progressivo), 22 (dica pós-filtro), ou 132 (hash de figuração decodificada) e se aplica a uma figuração de uma camada layerA presente entre duas unidades de NAL de VCL da [[removido: uma unidade de acesso]] figuração na ordem de decodificação, deve haver uma mensagem de SEI de sufixo que seja do mesmo tipo e se aplique à camada layerA presente na mesma unidade de acesso que sucede a última unidade de NAL de VCL da [[removido: unidade de acesso]] figuração.
[0164] É uma exigência da conformidade de fluxo de bits que as restrições a seguir se apliquem na repetição das mensagens de SEI:
[0165] - Para cada um dos valores de payloadType a seguir, deve haver menos que ou igual a 8 estruturas de sintaxe sei_payload( ) na [[removido: uma unidade de acesso]] uma unidade de figuração: 0, 1, 2, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 129, 131, 132 e 133.
[0166] - Deve haver menos que ou igual a 8 estruturas de sintaxe sei_payload( ) idênticas com payloadType igual a 130 em uma unidade de decodificação.
[0167] - O número de estruturas de sintaxe sei_payload( ) idênticas com payloadType igual a 134 em [[removido: uma unidade de acesso]] uma unidade de figuração deve ser menor ou igual ao número dos segmentos de fatia na [[removido: unidade de acesso]] unidade de figuração.
MODIFICAR SUBCLÁUSULA D.3.23 CONFORME SEGUE:
[0168] A mensagem de SEI de aninhamento escalonável fornece um mecanismo para associar mensagens de SEI com subconjuntos de fluxo de bits que corresponde aos vários pontos de operação ou com camadas ou subcamadas específicas.
[0169] Uma mensagem de SEI de aninhamento escalonável contém uma ou mais mensagens de SEI.
[0170] bitstream_subset_flag igual a 0 especifica que as mensagens de SEI contidas na mensagem de SEI de aninhamento escalonável se aplica às camadas ou subcamadas específicas.
[0171] bitstream_subset_flag igual a 1 especifica que as mensagens de SEI contidas na mensagem de SEI de aninhamento escalonável se aplica a um ou mais subfluxos de bits que resultam de um processo de extração de subfluxo de bits conforme especificado na cláusula 10 com entradas baseadas nos elementos de sintaxe da mensagem de SEI de aninhamento escalonável conforme especificado abaixo.
[0172] [[removido: Quando uma mensagem de SEI de período de armazenamento temporário, uma mensagem de SEI de temporização de figuração ou uma mensagem de SEI de informações de unidade de decodificação estiver contida na mensagem de SEI de aninhamento escalonável, bitstream_subset_flag deve ser igual a 1.]]
[0173] Dependendo do valor do bitstream_subset_flag, as camadas ou subcamadas, ou os pontos de operação aos quais as mensagens de SEI contidas na mensagem de SEI de aninhamento escalonável se aplicam são especificadas derivando-se as listas nestingLayedIdList[ i ] e as variáveis maxTemporalId[ i ] com base nos valores de elemento de sintaxe conforme especificado abaixo.
[0174] 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 de i na faixa de 0 a nesting_num_layers_minus1, inclusive, e que a variável maxTemporalId[0 ] é especificada por nesting_no_op_max_layers_minus1, nesting_op_flag igual a 1 especifica que a lista nestingLayerIdList[ i ] e a variável maxTemporalId[ i ] são especificadas por nesting_num_ops_minusl, default_op_flag, nesting_max_temporal_id_plus1[ i ], quando presente, e nesting_op_idx_ [ i ], quando presente.
[0175] default_op_flag igual a 1 especifica que maxTemporalId[ 0 ] é igual a nuh_temporal_id_plus1 da unidade de NAL de SEI atual menos 1 e que nestingLayerIdList[ 0 ] contém todos os valores inteiros na faixa de 0 a nuh_layer_id da unidade de NAL de SEI atual, inclusive, na ordem crescente dos valores.
[0176] Quando bitstream subset flag for igual a 1 e nenhum dos conjuntos de camadas especificados pelo VPS incluir e apenas incluir as camadas que têm valores de nuh layer id na faixa de 0 a nuh layer id da unidade de NAL de SEI atual inclusive, o valor de default op flag deve ser igual a 0.
[0177] nesting_num_ops_minus1 plus 1 minus default_op_flag especifica o número dos elementos de sintaxe a seguir nesting_op_idx[ i ]. O valor de nesting_max_temporal_id_plus1[ i ] deve estar na faixa de 0 a 1.023, inclusive.
[0178] Se nesting_op_flag for igual a 0, a variável nestingNumOps é definido igual a 1.
[0179] De outro modo, a variável nestingNumOps é definida igual a nesting_num_ops_minus1 + 1.
[0180] nesting_max_temporal_id_plus1[ i ] é usada para especificar a variável maxTemporalId[ i ]. O valor de nesting_max_temporal_id_plus1 [ i ] deve ser maior ou igual a nuh_temporal_id_plus1 da unidade de NAL de SEI atual. A variável maxTemporalId[ i ] é definida igual a nesting_max_temporal_id_plus1[ i ] — 1.
[0181] nesting_op_idx[ i ] é usado para especificar a lista nestingLayerIdList[ i ]. O valor de nesting_op_idx[ i ] deve estar na faixa de 0 a 1.023, inclusive.
[0182] A lista nestingLayerIdList[ i ] é definida igual a OpLayerIdList do nesting_op_idx[ i ]-ésimo conjunto de camadas especificado pelo VPS ativo.
[0183] 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 a nesting_num_layers_minus1, inclusive, all_layers_flag igual a 1 especifica que a lista nestingLayerIdList[ 0 ] consiste em todos os valores de nuh_layer_id presentes na unidade de acesso atual que são maiores ou iguais a nuh_layer_id da unidade de NAL de SEI atual, na ordem crescente dos valores.
[0184] Nota: Quando nuh layer id da unidade de NAL de SEI que contém a mensagem de SEI de aninhamento escalonável for maior que 0, bitstream_ _subset_flag e all_layers_flag não podem, ambos, ser iguais a 1, devido ao fato de que nesse caso o ponto de operação aplicável das mensagens de SEI aninhadas não incluiria a camada-base e consequentemente o subfluxo de bits que corresponde ao ponto de operação aplicável seria um fluxo de bits fora de conformidade.
[0185] Quando nesting op flag for igual a 0 e all layers flag for igual a 1, maxTemporalTd[ 0 ] é definido igual a 6.
[0186] nesting_no_op_max_temporal_id_plus1 minus1 especifica o valor de maxTemporalId[ 0 ] quando nesting_op_flag for igual a 0 e all_layers_flag for igual a 0. O valor de nesting_no_op_max_layers_minus1 não deve ser igual a 0.
[0187] nesting_num_layers_minus1 plus 1 especifica o número dos elementos de sintaxe nesting_layer_id[ i ] a seguir. O valor de nesting_num_layers_minus1 deve estar na faixa de 0 a 63, inclusive.
[0188] nesting_layer_id[ i ] especifica o i- ésimo valor nuh_layer_id incluído na lista nestingLayerIdList[ 0 ].
[0189] Para qualquer i e j na faixa de 0 a nesting_num_layers_minus1, inclusive, com i sendo menor que j, nesting_layer_id[ i ] deve ser menor que nesting_layer_id[ j ].
[0190] A lista nestingLayerIdList[ 0 ] é definida para consistir em nesting_layer_id[ i ] para todos os valores i na faixa de 0 a nesting_num_layers_minus1, inclusive, na ordem de crescimento dos valores de i.
[0191] Quando bitstream_subset_flag for igual a 0, o que segue se aplica:
[0192] - As mensagens de SEI contidas na mensagem de SEI de aninhamento escalonável se aplicam aos conjuntos de camadas ou subcamadas subLayerSet[ i ] para todos os valores de i na faixa de 0 a nestingNumOps - 1, inclusive, em que as unidades de NAL de VCL das camadas ou subcamadas em cada subLayerSet[ i ] definido tenha valores de nuh_layer_id que estão incluídos na lista nestingLayerIdList-Set-[ i ] e os valores de TemporalId que estão na faixa de TemporalId da unidade de NAL de SEI atual para maxTemporalId[ i ], inclusive.
[0193] - Quando uma mensagem de SEI aninhada tiver payloadType igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 45, 47, 128, 131, 132, ou 134 (isto é, uma das mensagens de SEI que tem payloadType não igual a qualquer um dentre 0, 1, 4, 5, 130 e 133) , a nuh layer id da unidade de NAL de SEI que contém a mensagem de SEI de aninhamento escalonável deve ter TemporalId igual a 0 e o maxTemporalId[ i ] para todo i deve ser igual a 6.
[0194] - Quando uma mensagem de SEI aninhada tiver payloadType igual a 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132 ou 134 (isto é, uma das mensagens de SEI que tem payloadType não igual a qualquer um dentre 0, 1, 4, 5, 130 e 133) e o valor de nestingNumOps é maior que 0, a mensagem de SEI aninhada se aplica a todas as camadas para as quais cada nuh layer id está incluída em pelo menos uma das listas nestingLayerrIdList[ i ] com i variando de 0 a nestingNumOps - 1, inclusive.
[0195] Quando bitstream_subset_flag for igual a 1, as mensagens de SEI contidas na mensagem de SEI de aninhamento escalonável se aplicam aos pontos de operação que correspondem aos subfluxos de bits subBiststream[ i ] para todos os valores de i na faixa de 0 a nestingNumOps - 1, inclusive, em que cada subfluxo de bits subBiststream[ i ] é a saída do processo de extração de subfluxo de bits da cláusula 10 com o fluxo de bits, maxTemporalId[ i ] e nestingLayerIdList [ i ] como entradas.
[0196] Quando bitstream subset flag for igual a 1 e nesting op flag for igual a 0, nestingLayerIdList [ 0 ] deve incluir e apenas incluir os valores de nuh layer id de um dos conjuntos de camadas especificados pelo VPS.
[0197] nesting_zero_bit deve ser igual a 0.
F.3 DEFINIÇÕES
[0198] Para a finalidade desse anexo, as definições a seguir se aplicam adicionalmente às definições na cláusula 3. Essas definições são ausentes na cláusula 3 ou substituem as definições na cláusula 3.
[0199] [[removido:
[0200] F.3.1 unidade de acesso: Um conjunto de unidades de NAL que são associadas entre si de acordo com uma regra de classificação especificada, são consecutivas na ordem de decodificação, e contêm as unidades de NAL de VCL de todas as figurações criptografadas associadas ao mesmo tempo de saída e suas unidades de NAL de não VCL associadas.
[0201] F.3.2 NOTA 1 - As figurações na mesma unidade de acesso são associadas à mesma contagem de ordem de figuração.]]
[0202] 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 saída e que pode incluir uma figuração que pode ser a saída quando nenhuma figuração da camada de saída estiver presente na unidade de acesso que contém a figuração.
F.7.4.3.1 SEMÂNTICA DE RBSP DE CONJUNTO DE PARÂMETRO DE VÍDEO
[0203] As especificações na subcláusula 7.4.3.1 se aplicam às modificações e adições a seguir:
[0204] - layerSetLayerIdList é substituída por layerSetLayerIdList.
[0205] - numLayersInIdList é substituída por NumLayersInIdList.
[0206] - Substituir “Cada ponto de operação é identificado pela lista de identificador de camada, denotada como OpLayerIdList, que consiste na lista de valores de nuh_layer_id de todas as unidades de NAL incluídas no ponto de operação, na ordem crescente de valores de nuh_layer_id, e uma variável OpTid, que é igual à mais alta TemporalId de todas as unidades de NAL incluídas no ponto de operação”, por “Cada ponto de operação é identificado pela lista de identificador de camada, denotada como OpLayerIdList, que consiste na lista de valores de nuh layer id de todas as unidades de NAL incluídas no ponto de operação, na ordem crescente de valores de nuh layer id, e uma variável OpTid, que é igual à mais alta TemporalId de todas as unidades de NAL incluídas no ponto de operação. Cada ponto de operação de saída é associado a um ponto de operação e identificado por uma lista de valores de nuh_layer_id de todas as figurações que devem ser emitidas, na ordem crescente dos valores de nuh_layer_id, denotados como OptLayerIdList, e o [[removido: uma variável]] OpTid do ponto de operação associado. O OpLayerIdList do ponto de operação associado a um ponto de operação associado também é referido como o OpLayerIdList do ponto de operação de saída [[removido: que é igual ao mais alto TemporalId de todas as unidades de NAL incluídas no ponto de operação. A lista de identificador de camada associada ao OptLayerIdList, denotado como OpLayerIdList, consiste na lista de valores de nuh_layer_id de todas as unidades de NAL incluídas no ponto de operação, na ordem crescente de valores de nuh_layer_id”.]]
[0207] A Figura 2 é um diagrama de blocos que ilustra um codificador de vídeo exemplificativo 20 que pode implantar as técnicas descritas nesta revelação. A Figura 2 é fornecida para fins de explicação e não deve ser considerada limitante das técnicas conforme amplamente exemplificadas e descritas nesta revelação. Para fins de explicação, esta revelação descreve o codificador de vídeo 20 no contexto de codificação HEVC. No entanto, as técnicas desta revelação podem ser aplicáveis aos outros padrões ou métodos de criptografia.
[0208] O codificador de vídeo 20 pode ser configurado para emitir vídeo para a entidade de pós- processamento 27, que é um outro dispositivo exemplificativo que pode implantar as técnicas descritas nesta revelação. A entidade de pós-processamento 27 é destinada a representar um exemplo de uma entidade de vídeo, como uma mídia elemento de rede com reconhecimento de mídia (MANE), um dispositivo de união/edição ou um outro dispositivo intermediário que pode processar os dados de vídeo codificado a partir do codificador de vídeo 20. Em algumas ocasiões, 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 dos dispositivos separados, enquanto em outras ocasiões, a funcionalidade descrita em relação à entidade de pós- processamento 27 pode ser realizada pelo mesmo dispositivo que compreende o codificador de vídeo 20.
[0209] O codificador de vídeo 20 pode realizar a intra e a intercriptografia de blocos de vídeo nas fatias de vídeo. A intracriptografia conta com uma predição espacial para reduzir ou remover a redundância espacial no vídeo em um dado quadro de vídeo ou figuração. A intercriptografia conta com a predição temporal para reduzir ou remover a redundância temporal em vídeo nos quadros ou figurações adjacentes de uma sequência de vídeo. O Intramodo (modo I) pode se referir a qualquer um dentre diversos modos de compactação com base espacial. Os Intermodos, como predição unidirecional (modo P) ou bipredição (modo B), podem se referir a qualquer um dentre os diversos modos de compactação com base temporal.
[0210] No exemplo da Figura 2, o codificador de vídeo 20 inclui uma unidade de particionamento 35, unidade de processamento de predição 41, unidade de filtro 63, memória de figuração de referência 64, somador 50, unidade de processamento de transformada 52, unidade de quantização 54, e unidade de codificação por entropia 56. A unidade de processamento de predição 41 inclui unidade de estimativa de movimento 42, unidade de compensação de movimento 44, e unidade de processamento de intrapredição 46. para a reconstrução de bloco de vídeo, o codificador de vídeo 20 também inclui unidade de quantização inversa 58, unidade de processamento de transformada inversa 60, e somador 62, a unidade de filtro 63 é destinada a representar um ou mais filtros de loop como um filtro de desbloqueio, um filtro de loop adaptativo (ALF), e um filtro de deslocamento adaptativo de amostra (SAO). Embora a unidade de filtro 63 seja mostrada na Figura 2 como sendo um filtro de loop, em outras configurações, a unidade de filtro 63 pode ser implantada como um filtro de pós-loop.
[0211] Conforme mostrado na Figura 2, o codificador de vídeo 20 recebe dados de vídeo, e a unidade de particionamento 35 particiona os dados em blocos de vídeo. Essa partição pode incluir também a partição em fatias, peças ou outras unidades maiores, assim como a partição de bloco de vídeo, por exemplo, de acordo com uma estrutura de árvore quaternária de LCUs e CUs. O codificador de vídeo 20 ilustra, em geral, os componentes que codificam os blocos de vídeo em 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 peças). A unidade de processamento de predição 41 pode selecionar um dentre uma pluralidade de modos de criptografia possíveis, como um dentre uma pluralidade de modos de intracriptografia ou um dentre uma pluralidade de modos de intercriptografia, para o bloco de vídeo atual com base nos resultados de erro (por exemplo, taxa de criptografia e o nível de distorção). A unidade de processamento de predição 41 pode fornecer o bloco intra ou intercriptografado resultante para o somador 50 para gerar dados de bloco residuais e para o somador 62 Reconstruir o bloco codificado para uso como uma figuração de referência.
[0212] A unidade de processamento de intrapredição 46 na unidade de processamento de predição 41 pode realizar a criptografia intrapreditiva do bloco de vídeo atual em relação a um ou mais blocos vizinhos no mesmo quadro ou fatia que o bloco atual a ser criptografado para fornecer compactação espacial. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 na unidade de processamento de predição 41 realizam a criptografia interpreditiva do bloco de vídeo atual em relação a um ou mais blocos preditivos em uma ou mais figurações de referência para fornecer compactação temporal.
[0213] A unidade de estimativa de movimento 42 pode ser configurada para determiar o modo de interprediçã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 as 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 gerar vetores de movimento, que estima o movimento para blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo em um quadro de vídeo atual ou figuração em relação a um bloco preditivo em uma figuração de referência.
[0214] Um bloco preditivo é um bloco que é encontrado para ser proximamente compatível com a PU do bloco de vídeo a ser criptografado em termos de diferença de pixel, que pode ser determinada através da 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 de figurações de referência armazenadas na memória de figuração de referência 64. Por exemplo, o codificador de vídeo 20 pode interpolar valores de posições de pixel de um quarto, posições de pixel de um oitavo ou outras posições de pixel fracional da figuração de referência. Portanto, a unidade de estimativa de movimento 42 pode realizar uma busca de movimento em relação às posições de pixel total e posições de pixel fracional e emitir um vetor de movimento com precisão de pixel fracional.
[0215] A unidade de estimativa de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia intercriptografada ao comparar a posição da PU com a posição de um bloco preditivo de uma figuração de referência. A figuração de referência pode ser selecionada a partir de uma primeira lista de figuração de referência (Lista 0) ou uma segunda lista de figuração de referência (Lista 1), cada uma das quais identifica um ou mais figurações de referência armazenadas na memória de figuração 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.
[0216] A compensação de movimento, realizado pela unidade de compensação de movimento 44, pode envolver buscar ou gerar o bloco preditivo com base no vetor de movimento determinado pela estimativa de movimento, possivelmente a realização de interpolação para precisão de subpixel. Mediante o recebimento do vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco preditivo para o qual o vetor de movimento aponta em uma das listas de figuração de referência. O codificador de vídeo 20 forma um bloco de vídeo residual ao subtrair os valores de pixel do bloco preditivo dos valores de pixel do bloco de vídeo atual que é criptografado, formando valores de diferença de pixel. Os valores de diferença de pixel formam dados residuais para o bloco, e podem incluir tanto componentes de diferença de fuma quanto de croma. O somador 50 representa o componente ou os 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 aos blocos de vídeo e à fatia de vídeo para uso pelo decodificador de vídeo 30 na decodificação dos blocos de vídeo da fatia de vídeo.
[0217] A unidade de processamento de intrapredição 46 pode intrapredizer um bloco atual, como uma alternativa para a interpredição realizada pela unidade de estimativa de movimento 42 e pela unidade de compensação de movimento 44, conforme descrito acima, em particular, a unidade de processamento de intrapredição 46 pode determinar um modo de intrapredição para usar para codificar um bloco atual. Em alguns exemplos, a unidade de processamento de intrapredição 46 pode codificar um bloco atual com o uso de vários modos de intrapredição, por exemplo, durante os passes de codificação separados, e a unidade de processamento de intrapredição 46 (ou unidade de seleção de modo 40, em alguns exemplos) pode selecionar um modo de intrapredição adequado para o uso a partir dos modos testados. Por exemplo, a unidade de processamento de intrapredição 46 pode calcular os valores de taxa-distorção com o uso de uma análise de taxa e distorção para os vários modos de intrapredição testados, e pode selecionar o modo de intrapredição que tem as melhores características de taxa e distorção dentre os modos testados. A análise de taxa e distorção determina, em geral, 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, assim como uma taxa de bits (ou seja, um número de bits) usada para produzir o bloco codificado, a unidade de processamento de intrapredição 46 pode calcular razões a partir das distorções e das taxas para os vários blocos codificados para determinar qual modo de intrapredição exibe o melhor valor de taxa e para o bloco.
[0218] Em qualquer caso, após selecionar um modo de intrapredição para um bloco, a unidade de processamento de intrapredição 46 pode fornecer informações indicativas do modo de intrapredição selecionado para o bloco para a unidade de codificação por entropia 56. A unidade de codificação por entropia 56 pode codificar as informações que indicam o modo de intrapredição selecionado de acordo com as técnicas desta revelação. O codificador de vídeo 20 pode incluir nos dados da configuração de fluxo de bits transmitidos, que pode incluir uma pluralidade de tabelas de índice de modo de intrapredição e uma pluralidade de tabelas de índice de modo de intrapredição modificadas (também referidas como tabelas de mapeamento de palavra-código), definições de contextos de codificação para vários blocos, e indicações de um modo de intrapredição mais provável, uma tabela de índice de modo de intrapredição, e uma tabela de índice de modo de intrapredição modificada para uso para cada um dos contextos.
[0219] Após a unidade de processamento de predição 41 gerar o bloco preditivo para o bloco atual de vídeo por meio de interpredição ou intrapredição, o codificador de vídeo 20 forma um bloco de vídeo residual ao subtrair o bloco preditivo do bloco atual de vídeo. Os dados de vídeo residuais no bloco residual podem estar incluídos em uma ou mais TUs e aplicados à unidade de processamento de transformada 52. A unidade de processamento de transformada 52 transforma os dados de vídeo residuais em coeficientes de transformada residuais com o uso de uma transformada, como uma transformada de cosseno discreta (OCT) ou uma transformada conceitualmente similar. A unidade de processamento de transformada 52 pode converter os dados de vídeo residuais a partir de um domínio de pixel em um domínio de transformada, como um domínio de frequência.
[0220] A unidade de processamento de transformada 52 pode enviar os coeficientes de transformada resultantes para a unidade de quantização 54. A unidade de quantização 54 quantiza os coeficientes de transformada para reduzir adicionalmente a taxa de bits. O processo de quantização pode reduzir a profundidade de bit associada a alguns ou todos os coeficientes. O grau de quantização pode ser modificado ao ajustar um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54 pode, então, realizar uma varredura da matriz que inclui os coeficientes de transformada quantizados. Alternativamente, a unidade de codificação por entropia 56 pode realizar a varredura.
[0221] Em seguida à quantização, a unidade de codificação por entropia 56 codifica por entropia os coeficientes de transformada quantizados. Por exemplo, a unidade de codificação por entropia 56 pode realizar a criptografia de comprimento variável adaptativa ao contexto (CAVLC), criptografia aritmética binária adaptativa ao contexto (CABAC), criptografia aritmética binária adaptativa ao contexto baseada em sintaxe (SBAC), criptografia por entropia de partição de intervalo de probabilidade (PIPE) ou uma outra técnica ou metodologia de codificação por entropia. Em seguida à codificação por entropia pela unidade de codificação por entropia 56, o fluxo de bits codificado pode ser transmitido para o decodificador de vídeo 30, ou arquivado 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 os outros elementos de sintaxe para a fatia de vídeo atual que é codificada.
[0222] A unidade de quantização inversa 58 e a unidade de processamento de transformada inversa 60 aplicam a quantização inversa e transformação inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel para uso posterior como um bloco de referência de uma figuração de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência ao adicionar o bloco residual a um bloco preditivo de uma das figurações de referência em uma das listas de figuração 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 subinteiros para uso na estimativa de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição com compensação de movimento produzido pela unidade de compensação de movimento 44 para produzir um bloco de referência para armazenamento na memória de figuração de referência 64. O bloco de referência pode ser usado pela unidade de estimativa de movimento 42 e pela unidade de compensação de movimento 44 como um bloco de referência para interpredizer um bloco em um quadro de vídeo ou figuração subsequente.
[0223] De acordo com os aspectos desta revelação, o codificador de vídeo 20 pode ser configurado para gerar um número de elementos de sintaxe, como os elementos de sintaxe associados às mensagens de SEI descritas acima, inclusive mensagens de 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 dos quinze aspectos descritos acima em relação à Figura 1. Em algumas ocasiões, o codificador de vídeo 20 pode codificar tais elementos de sintaxe com o uso da unidade de codificação por entropia 56 ou uma outra unidade responsável por codificar dados e gerar um fluxo de bits codificado. Ademais, a entidade de pós-processamento 27 da Figura 2 é um outro dispositivo exemplificativo que pode implantar as técnicas descritas nesta revelação em relação às mensagens de SEI, que incluem mensagens de SEI para codecs de múltiplas camadas.
[0224] A Figura 3 é um diagrama de blocos que ilustra um decodificador de vídeo exemplificativo 30 que pode implantar as técnicas descritas nesta revelação. A Figura 3 é fornecida para fins de explicação e não se limita às técnicas conforme amplamente exemplificadas e descritas nesta revelação. Para fins de explicação, esta revelação descreve o decodificador de vídeo 30 no contexto de codificação HEVC. No entanto, as técnicas desta revelação podem ser aplicáveis aos outros padrões ou métodos de criptografia.
[0225] No exemplo da Figura 3, o decodificador de vídeo 30 inclui uma unidade de decodificação por entropia 80, unidade de processamento de predição 81, unidade de quantização inversa 86, unidade de processamento de transformação 88, somador 91 e memória de figuração de referência 92. A unidade de processamento de predição 81 inclui a unidade de compensação de movimento 82 e a unidade de processamento de intrapredição 84. O decodificador de vídeo 30 pode, em alguns exemplos, realizar um passe de decodificação geralmente recíproco ao passe de codificação descrito em relação ao codificador de vídeo 20 da Figura 2.
[0226] Durante o processo de decodificação, o decodificador de vídeo 30 recebe um fluxo de bits de vídeo codificado que representa blocos de vídeo de uma fatia de vídeo codificada e elementos de sintaxe associados a partir do codificador de vídeo 20. O decodificador de vídeo 30 pode receber o fluxo de bits de vídeo codificado da entidade de rede 78. A entidade de rede 78 pode, por exemplo, ser um servidor, um MANE, um editor/fatiador de vídeo, ou outro tal dispositivo configurado para implantar uma ou mais das técnicas descritas acima. A entidade de rede 78 pode ou não incluir um codificador de vídeo, como codificador de vídeo 20. Algumas das técnicas descritas nesta revelação podem ser implantadas pela entidade de rede 78 antes da entidade de rede 78 que transmite o fluxo de bits de vídeo codificado 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 dos dispositivos separados, enquanto em outras ocasiões, a funcionalidade descrita em relação à entidade de rede 78 pode ser realizada pelo mesmo dispositivo que compreende o decodificador de vídeo 30.
[0227] A unidade de decodificação por entropia 80 do decodificador de vídeo 30 decodifica por entropia o fluxo de bits para gerar coeficientes quantizados, vetores de movimento e outros elementos de sintaxe. A unidade de decodificação por entropia 80 encaminha os vetores de movimento e outros elementos de sintaxe para a unidade de processamento de predição 81, o decodificador de vídeo 30 pode receber os elementos de sintaxe no nível da fatia de vídeo e/ou no nível do bloco de vídeo.
[0228] Quando a fatia de vídeo for criptografada como uma fatia intracriptografada (I), a unidade de processamento de intrapredição 84 da unidade de processamento de predição 81 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual com base em um modo de intrapredição sinalizado e dados dos blocos previamente decodificados do quadro ou da figuração atual. Quando o quadro de vídeo for criptografado como uma fatia intercriptografada (isto é, B ou P), a unidade de compensação de movimento 82 da unidade de processamento de predição 81 produz blocos preditivos para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe recebidos da unidade de decodificação por entropia 80. Os blocos preditivos podem ser produzidos a partir de uma das figurações de referência em uma das listas de figuração de referência. O decodificador de vídeo 30 pode construir as listas de quadro de referência, Lista 0 e Lista 1, com o uso de técnicas de construção padrão com base nas figurações de referência armazenadas na memória de figuração de referência 92.
[0229] A unidade de compensação de movimento 82 determina as informações de predição para um bloco de vídeo da fatia de vídeo atual ao analisar os vetores de movimento e outros elementos de sintaxe, e usa as informações de predição para produzir os blocos preditivos para o bloco atual de vídeo que é decodificado. Por exemplo, a unidade de compensação de movimento 82 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, intra ou interpredição) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de interpredição (por exemplo, fatia B ou fatia P), informações de construção para uma ou mais das listas de figuração de referência para a fatia, vetores de movimento para cada bloco de vídeo intercodificado da fatia, situação de interpredição para cada bloco de vídeo intercriptografado da fatia, e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[0230] 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 usar os filtros de interpolação usados pelo codificador de vídeo 20 durante a codificação dos blocos de vídeo para calcular os valores de interpolação para pixels subinteiros de blocos de referência. Nesse caso, a unidade de compensação de movimento 82 pode determinar os filtros de interpolação usados pelo codificador de vídeo 20 a partir dos elementos de sintaxe recebidos e do uso de filtros de interpolação para produzir os blocos preditivos.
[0231] A unidade de quantização inversa 86 quantiza inversamente, isto é, desquantiza, os coeficientes de transformada quantizados fornecidos no fluxo 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, igualmente, um grau de quantização inversa que deve ser aplicado. A unidade de processamento de transformada inversa 88 aplica uma transformada inversa, por exemplo, uma DCT inversa, uma transformada de número inteiro inversa, ou um processo de transformada inversa conceitualmente semelhante, aos coeficientes de transformada a fim de produzir os blocos residuais no domínio de pixel.
[0232] Após a unidade de compensação de movimento 82 gerar o bloco preditivo para o bloco atual de vídeo com base nos vetores de movimento e outros elementos de sintaxe, o decodificador de vídeo 30 forma um bloco de vídeo decodificado ao somar os blocos residuais da unidade de processamento de transformada inversa 88 com os blocos preditivos correspondentes gerados pela unidade de compensação de movimento 82. O somador 90 representa o componente ou os componentes que realizam essa operação de soma. Caso desejado, os filtros de loop (no loop de criptografia ou após o loop de criptografia) também podem ser usados para suavizar as transições de pixel, ou de outro modo aprimorar a qualidade do vídeo.
[0233] A unidade de filtro 91 é destinada a representar um ou mais filtros de loop como um filtro de desbloqueio, um filtro de loop adaptativo (ALF), e um filtro de deslocamento adaptativo de amostra (SAO). Embora a unidade de filtro 91 seja mostrada na Figura 3 como sendo um filtro de loop, em outras configurações, a unidade de filtro 91 pode ser implantada como um filtro de pós-loop. Os blocos de vídeo decodificados em um dado quadro ou dada figuração são, então, armazenados na memória de figuração de referência 92, que armazena figurações de referência usadas para a subsequente compensação de movimento. A memória de figuração de referência 92 também armazena o vídeo decodificado para posterior apresentação em um dispositivo de exibição, como o dispositivo de exibição 31 da Figura 1.
[0234] De acordo com os aspectos desta revelação, o decodificador de vídeo 30 pode ser configurado para analisar e decodificar um número de elementos de sintaxe, como os elementos de sintaxe associados às mensagens de SEI descritas acima, inclusive mensagens de SEI para codecs de múltiplas camadas. Por exemplo, o decodificador de vídeo 30 pode ser configurado para analisar e decodificar elementos de sintaxe de acordo com qualquer combinação dos quinze aspectos descritos acima em relação à Figura 1. Em algumas ocasiões, o decodificador de vídeo 30 pode decodificar tais elementos de sintaxe com o uso da unidade de decodificação por entropia 80 ou uma outra unidade responsável por decodificar dados a partir de um fluxo de bits codificado. Ademais, a entidade de rede 78 da Figura 3 (que pode ser um elemento de rede com reconhecimento de mídia) é um outro dispositivo exemplificativo que pode implantar as técnicas descritas nesta revelação em relação às mensagens de SEI, que incluem mensagens de SEI para codecs de múltiplas camadas.
[0235] A Figura 4 é um diagrama de blocos que ilustra a unidade de encapsulamento 21 em mais 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 de vídeo 104, e uma interface de saída 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ções de reforço complementares (SEI) 108, uma unidade de atribuição de identificador de vista (ID) 110, uma unidade de criação de representação 112, e uma unidade de criação de ponto de operação 114.
[0236] 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. Embora não mostrado no exemplo da Figura 1, o dispositivo de fonte 12 também pode incluir uma fonte de áudio e codificador de áudio para gerar dados de áudio e codificar 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 pode recuperar os dados de vídeo e áudio codificados de um meio legível por computador. Mediante o recebimento de dados de vídeo e áudio codificados, a interface de entrada de vídeo 100 e a interface de entrada de áudio 102 passa os dados de vídeo e áudio codificados para a unidade de criação de arquivo de vídeo 104 para a montagem em um arquivo de vídeo.
[0237] A unidade de criação de arquivo de vídeo 104 pode corresponder a uma unidade de controle que inclui hardware, software e/ou firmware configurado para realizar as funções e os procedimentos atribuídos aos mesmos. A unidade de controle pode realizar adicionalmente as funções atribuídas à unidade de encapsulamento 21 em geral. Para os exemplos nos quais a unidade de criação de arquivo de vídeo 104 é incorporada em software e/ou firmware, a unidade de encapsulamento 21 pode incluir um meio legível por computador que compreende 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 de SEI 108, a unidade de atribuição de ID de vista 110, a unidade de criação de representação 112 e a unidade de criação de ponto de operação 114, nesse exemplo) pode ser implantada como unidades de hardware individuais e/ou módulos de software, e podem ser funcionalmente integrados ou adicionalmente separados em subunidades adicionais.
[0238] A unidade de criação de arquivo de vídeo 104 pode corresponder a qualquer unidade de processamento ou conjunto de circuitos de processamento adequado, como, por exemplo, um ou mais microprocessadores, circuitos integrados de aplicação específica (ASICs), matrizes 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 04 pode incluir adicionalmente um meio legível por computador não transitório que armazena instruções para qualquer uma ou para todas dentre unidade de geração de mensagem de SEI 108, unidade de atribuição de ID de vista 110, unidade de criação de representação 112 e unidade de criação de ponto de operação 114, assim como um processador para executar as instruções.
[0239] Em geral, a unidade de criação de arquivo de vídeo 104 pode criar um ou mais arquivos de vídeo que incluem os 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 conteúdo multimídia que inclui duas ou mais vistas, em outros exemplos, a unidade de criação de arquivo de vídeo 104 pode criar um manifesto que armazena dados semelhantes àqueles da MPD para o conteúdo multimídia.
[0240] A unidade de geração de mensagem de SEI 108 pode representar uma unidade que gere mensagens de SEI. A unidade de geração de mensagem de SEI 108 pode, de acordo com as técnicas descritas nesta revelação, ser configurada para gerar um número de elementos de sintaxe, como os elementos de sintaxe associados às mensagens de SEI descritas acima, inclusive mensagens de SEI para codecs de múltiplas camadas. Por exemplo, a unidade de geração de mensagem de SEI 108 pode ser configurada para gerar elementos de sintaxe de acordo com qualquer combinação dos quinze aspectos descritos acima em relação à Figura 1.
[0241] A unidade de atribuição de ID de vista 110 pode atribuir identificadores de vista a cada uma das vistas do conteúdo multimídia. A unidade de criação de representação 112 pode construir uma ou mais representações para o conteúdo multimídia, cada uma das quais pode incluir uma ou mais das vistas para o conteúdo multimídia. Em alguns exemplos, a unidade de atribuição de ID de vista 110 pode incluir dados na MPD e/ou nas representações (por exemplo, dados de cabeçalho para as representações) que indicam um máximo e um mínimo dos identificadores de vista para as vistas incluídas nas representações. Além disso, a unidade de criação de representação 112 pode fornecer informações na MPD que indicam se IDs de vista maiores correspondem às vistas que têm perspectivas de câmera para a direita ou para a esquerda das perspectivas de câmera para vistas que têm IDs de vista menores.
[0242] Em alguns exemplos, a mesma camada pode ser codificada com o uso de várias características de codificação, como diferentes taxas de quadros, diferentes taxas de bits, diferentes esquemas de codificação ou outras diferenças. 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 maneira, a MPD e/ou os dados de cabeçalho para a representação pode sinalizar um conjunto de características (ou atributos) para a representação que se aplica a todas as camadas na representação. Além do mais, a unidade de criação de representação 112 pode criar múltiplas representações que inclui as mesmas camadas, apesar das 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 multimídia em representações individual. Em tais exemplos, para produzir mais do que uma camada, o dispositivo de destino 14 pode solicitar duas ou mais representações do conteúdo multimídia.
[0243] 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 multimídia. Em geral, um ponto de operação corresponde a um subconjunto de vistas em uma representação que são alvejados para a saída, em que cada uma das vistas compartilha um nível temporal comum. Como um exemplo, um ponto de operação pode ser identificado por um temporal_id_value que representa o nível temporal alvo e um conjunto de views_id_values que representa as vistas de saída alvo. Um ponto de operação pode ser associado a um subconjunto de fluxo de bits, que consiste nas vistas de saída alvo e todas as outras vistas nas quais as vistas de saída alvo dependem.
[0244] A interface de saída de vídeo 106 pode emitir o arquivo de vídeo criado. Por exemplo, a interface de saída de arquivo de saída 106 pode ser configurada para fornecer o arquivo de vídeo criado para a interface de saída 22, conforme descrito acima em relação à Figura 1.
[0245] Embora as técnicas da Figura 4 sejam descritas com a unidade de encapsulamento 21 para fins de exemplificação, deve-se compreender que as técnicas semelhantes podem ser realizadas por outras unidades de processamento de vídeo, como unidade de desencapsulamento 29 (Figura 1), codificador de vídeo 20, ou decodificador de vídeo 30. Por exemplo, a unidade de desencapsulamento 29 pode ser configurada para receber um fluxo de bits de múltiplas camadas e analisar/decodificar a sintaxe notada acima a partir do fluxo de bits de múltiplas camadas.
[0246] A Figura 5 é um diagrama de blocos que ilustra um conjunto de dispositivos exemplificativo que forma parte da rede 120. Nesse exemplo, a rede 120 inclui dispositivos de roteamento 124A, 124B (dispositivos de roteamento 124) e dispositivo de transcriptografia 126. Os dispositivos de roteamento 124 e o dispositivo de transcriptografia 126 são destinados a representar um número pequeno de dispositivos que podem formar parte da rede 120. Outros dispositivos de rede, como comutadores, cubos, portas, firewalls, pontes e outros tais dispositivos também podem estar incluídos na rede 120. Além do mais, os dispositivos de rede adicionais podem ser fornecidos ao longo de uma trajetória de rede entre dispositivo de servidor 122 e dispositivo de cliente 128. O dispositivo de servidor 122 pode corresponder ao dispositivo de fonte 12 (Figura 1), enquanto o dispositivo de cliente 128 pode corresponder ao dispositivo de destino 14 (Figura 1), em alguns exemplos.
[0247] Em geral, os dispositivos de roteamento 124 implantam um ou mais protocolos de roteamento para trocar dados de rede através da rede 120. Em alguns exemplos, os dispositivos de roteamento 124 podem ser configurados para realizar operações de proxy ou cache. Portanto, em alguns exemplos, os dispositivos de roteamento 124 podem ser referidos como dispositivos de proxy. Em geral, os dispositivos de roteamento 124 executam protocolos de roteamento para descobrir rotas através da rede 120. Ao executar tais protocolos de roteamento, o dispositivo de roteamento 124B pode descobrir uma rota de rede de si mesmo para o dispositivo de servidor 122 por meio do dispositivo de roteamento 124A. Um ou mais dos dispositivos de roteamento 124 podem compreender um MANE que usa um ou mais aspectos desta revelação.
[0248] As técnicas desta revelação podem ser implantadas por dispositivos de rede como dispositivos de roteamento 124 e dispositivo de transcriptografia 126, mas também podem ser implantadas pelo dispositivo de cliente 128. Dessa maneira, os dispositivos de roteamento 124, o dispositivo de transcriptografia 126 e o dispositivo de cliente 128 representam exemplos de dispositivos configurados para realizar as técnicas desta revelação. Além do mais, 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 exemplificativos que podem ser configurados para realizar as técnicas desta revelação.
[0249] A Figura 6 é um diagrama de fluxo que ilustra uma operação exemplificativa de um dispositivo de processamento de vídeo configurada para criptografar uma mensagem de SEI de acordo com vários aspectos das técnicas descritas nesta revelação. No exemplo da Figura 6, um dispositivo de processamento de vídeo, como codificador de vídeo 20, unidade de encapsulamento 21, unidade de desencapsulamento 29, entidade pós-processamento 27, entidade de rede 78, obtém uma ou mais unidades de NAL de VCL de uma primeira camada de um fluxo de bits de múltiplas camadas (140). Por exemplo, em ocasiões em que 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 de NAL de VCL em um fluxo de bits de múltiplas camadas ou decodificar as unidades de NAL de VCL de um fluxo 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 de NAL de VCL, o dispositivo de processamento de vídeo pode analisar e obter as unidades de NAL de VCL a partir de um fluxo de bits de múltiplas camadas.
[0250] O dispositivo de processamento de vídeo também criptografa (por exemplo, codifica ou decodifica) uma mensagem de SEI que é aplicável às unidades de NAL de VCL da primeira camada para estarem juntamente com a primeira camada no fluxo de bits de múltiplas camadas (142). Por exemplo, de acordo com os aspectos desta revelação, o dispositivo de processamento de vídeo apenas criptografa as unidades de NAL de não VCL que contêm a mensagem de SEI aplicável às unidades de NAL de VCL da primeira camada juntamente com as unidades de NAL de VCL da primeira camada, e não inclui a mensagem de SEI com outras camadas do fluxo de bits de múltiplas camadas. Por exemplo, de acordo com os aspectos desta revelação, o fluxo de bits de múltiplas camadas não contém quaisquer figurações criptografadas de qualquer outra camada do fluxo de bits de múltiplas camadas entre as unidades de NAL de VCL da primeira camada e as unidades de NAL de não VCL que contêm a mensagem de SEI aplicável às unidades de NAL de VCL da primeira camada. Dessa maneira, a mensagem de SEI permanece juntamente com a camada às quais a mensagem de SEI se aplica para as unidades de acesso que têm múltiplos componentes de camada. Em alguns exemplos, o dispositivo de processamento de vídeo pode criptografar a mensagem de SEI para ser diretamente adjacente às unidades de NAL de VCL às quais a mensagem se aplica no fluxo de bits de múltiplas camadas.
[0251] Em alguns exemplos, as unidades de NAL de VCL da primeira camada são unidades de NAL de VCL de uma primeira figuração da primeira camada e a mensagem de SEI é uma mensagem de SEI de prefixo aplicável à primeira figuração da primeira camada. Em tais exemplos, apenas a criptografia das unidades de NAL de não VCL que contêm a mensagem de SEI de prefixo juntamente com as unidades de NAL de VCL pode incluir apenas a criptografia das unidades de NAL de não VCL que precedem as unidades de NAL de VCL no fluxo de bits. Ou seja, o dispositivo de processamento de vídeo pode criptografar as unidades de NAL de não VCL que contêm a mensagem de SEI a ser localizada imediatamente antes das unidades de NAL de VCL da primeira figuração no fluxo de bits de múltiplas camadas.
[0252] Em alguns exemplos, as unidades de NAL de VCL da primeira camada são unidades de NAL de VCL de uma primeira figuração da primeira camada e a mensagem de SEI é uma mensagem de SEI de sufixo aplicável à primeira figuração da primeira camada. Em tais exemplos, apenas a criptografia das unidades de NAL de não VCL que contêm a mensagem de SEI de sufixo juntamente com as unidades de NAL de VCL pode incluir apenas a criptografia das unidades de NAL de não VCL subsequentes às unidades de NAL de VCL no fluxo de bits. Ou seja, o dispositivo de processamento de vídeo pode criptografar as unidades de NAL de não VCL que contêm a mensagem de SEI a ser localizada imediatamente em seguida às unidades de NAL de VCL da primeira figuração no fluxo de bits de múltiplas camadas.
[0253] No exemplo da Figura 6, o dispositivo de processamento de vídeo também obtém unidades de NAL de VCL de uma segunda camada do fluxo de bits de múltiplas camadas (144). Por exemplo, o dispositivo de processamento de vídeo pode criptografar (isto é, codificar ou decodificar) fatias de uma figuração de uma segunda camada do fluxo de bits de múltiplas camadas. O dispositivo de processamento de vídeo também criptografa uma mensagem de SEI que é aplicável às unidades de NAL de VCL da segunda camada para estar juntamente com as unidades de NAL de VCL da segunda camada (146). Por exemplo, conforme descrito acima, o dispositivo de processamento de vídeo pode criptografar o fluxo de bits de múltiplas camadas de modo que o fluxo de bits não contenha quaisquer figurações criptografadas de qualquer outra camada do fluxo de bits de múltiplas camadas entre as unidades de NAL de VCL da segunda camada e das unidades de NAL de não VCL que contêm a mensagem de SEI aplicável às unidades de NAL de VCL da segunda camada. Dessa maneira, a mensagem de SEI permanece juntamente com a camada às quais a mensagem de SEI se aplica para as unidades de acesso que têm múltiplos componentes de camada.
[0254] Novamente, em alguns exemplos, o dispositivo de processamento de vídeo pode criptografar uma ou mais unidades de NAL de não VCL que contêm uma segunda mensagem de SEI de prefixo aplicável às unidades de NAL de VCL da segunda figuração que segue a primeira figuração no fluxo de bits. O dispositivo de processamento de vídeo também pode criptografar uma ou mais unidades de NAL de não VCL que contêm uma segunda mensagem de SEI de sufixo aplicável às unidades de NAL de VCL da segunda figuração que segue a segunda figuração no fluxo de bits.
[0255] Em algumas ocasiões, o dispositivo de processamento de vídeo também pode determinar um parâmetro de repetição máximo para a mensagem de SEI com base em uma unidade de figuração que contém unidades de NAL de VCL de uma primeira figuração da primeira camada e unidades de NAL de não VCL associadas da primeira figuração.
[0256] Deve-se compreender que as etapas mostradas e descritas em relação à Figura 6 são fornecidas meramente como um exemplo. Ou seja, as etapas mostradas no exemplo da Figura 6 não precisam ser necessariamente realizadas na ordem mostrada na Figura 6, e menos etapas adicionais ou alternativas podem ser realizadas. Além do mais, embora as técnicas sejam geralmente descritas acima em relação a um dispositivo de processamento de vídeo, as técnicas podem ser implantadas por uma variedade de dispositivos de processamento de vídeo, como codificador de vídeo 20, unidade de encapsulamento 21, unidade de desencapsulamento 29, entidade de pós-processamento 27, entidade de rede 78, ou outras unidades de processamento.
[0257] A Figura 7 é um diagrama de fluxo que ilustra uma outra operação exemplificativa de um dispositivo de processamento de vídeo configurada para criptografar uma mensagem de SEI de acordo com vários aspectos das técnicas descritas nesta revelação. No exemplo da Figura 7, um dispositivo de processamento de vídeo, como codificador de vídeo 20, unidade de encapsulamento 21, unidade de desencapsulamento 29, entidade pós-processamento 27, entidade de rede 78, criptografa uma ou mais unidades de NAL de não VCL de uma camada de um fluxo de bits de múltiplas camadas que contém uma mensagem de SEI de hash de figuração decodificada (150). Conforme notado acima, uma mensagem de hash de figuração decodificada pode fornecer uma soma de verificação derivada dos valores de amostra de uma figuração decodificada. A mensagem de hash de figuração decodificada pode ser usada, por exemplo, por um decodificador de vídeo como o decodificador de vídeo 30, para detectar se uma figuração foi corretamente recebida e decodificada.
[0258] O dispositivo de processamento de vídeo também determina um identificador de camada associado às unidades de NAL de não VCL (152). O dispositivo de processamento de vídeo também determina um conjunto de camadas do fluxo de bits de múltiplas camadas às quais a mensagem de SEI de hash de figuração decodificada é aplicável com base em um identificador de camada das unidades de NAL de não VCL que contêm a mensagem de SEI de hash de figuração decodificada (154). De acordo com os aspectos desta revelação, o conjunto de camadas aplicáveis de uma mensagem de SEI de hash de figuração decodificada pode ser especificado para ser a camada com o identificador de camada (nuh_layer_id) que é igual ao identificador de camada (nuh_layer_id) da unidade de NAL de SEI que contém a mensagem de SEI. Ou seja, a mensagem de SEI de hash de figuração decodificada apenas se aplica à camada que tem o mesmo identificador de camada (nuh_layer_id) da unidade de NAL de SEI que contém a mensagem de SEI. Em algumas ocasiões, a mensagem de SEI de hash de figuração decodificada pode ser apenas uma mensagem de SEI não aninhada.
[0259] Em alguns exemplos, adicional ou alternativamente, o dispositivo de processamento de vídeo também pode criptografar uma ou mais segundas unidades de NAL de não VCL do fluxo de bits de múltiplas camadas. As segundas unidades de NAL de não VCL podem conter uma mensagem de SEI de conjuntos de parâmetros ativos que indica os conjuntos de parâmetros que são ativos para uma porção específica de dados de vídeo. O dispositivo de processamento de vídeo também pode determinar que a mensagem de SEI de conjuntos de parâmetros ativos é aplicável a todas as camadas do fluxo de bits de múltiplas camadas com base nas uma ou mais segundas unidades de NAL de não VCL que contêm a mensagem de SEI de conjunto de parâmetro ativo. Ou seja, o dispositivo de processamento de vídeo pode determinar que a mensagem de SEI de conjuntos de parâmetros ativos é aplicável a todas as camadas do fluxo de bits de múltiplas camadas em virtude da mensagem de SEI que é uma mensagem de SEI de conjuntos de parâmetros ativos. Em alguns exemplos, o dispositivo de processamento de vídeo pode criptografar adicionalmente um ou mais elementos de sintaxe que indicam que a mensagem de SEI de conjuntos de parâmetros ativos é aplicável a todas as camadas do fluxo de bits de múltiplas camadas. Em alguns exemplos, o dispositivo de processamento de vídeo pode criptografar apenas a mensagem de SEI de conjuntos de parâmetros ativos como uma mensagem de SEI não aninhada.
[0260] Em alguns exemplos, adicional ou alternativamente, o dispositivo de processamento de vídeo pode criptografar um ou mais elementos de sintaxe que indicam que as informações de campo de quadro estão presentes em uma mensagem de SEI de temporização de figuração do fluxo de bits de múltiplas camadas. O dispositivo de processamento de vídeo também pode aplicar as informações de campo de quadro a todas as camadas em todos os pontos de operação do fluxo de bits de múltiplas camadas aos quais a mensagem de SEI de temporização de figuração se aplica.
[0261] Deve-se compreender que as etapas mostradas e descritas em relação à Figura 7 são fornecidas meramente como um exemplo. Ou seja, as etapas mostradas no exemplo da Figura 7 não precisam ser necessariamente realizadas na ordem mostrada na Figura 7, e menos etapas adicionais ou alternativas podem ser realizadas. Além do mais, embora as técnicas sejam geralmente descritas acima em relação a um dispositivo de processamento de vídeo, as técnicas podem ser implantadas por uma variedade de dispositivos de processamento de vídeo, como codificador de vídeo 20, unidade de encapsulamento 2,1, unidade de desencapsulamento 29, entidade de pós-processamento 2,7, entidade de rede 78, ou outras unidades de processamento.
[0262] A Figura 8 é um diagrama de fluxo que ilustra uma outra operação exemplificativa de um dispositivo de processamento de vídeo configurada para criptografar uma mensagem de SEI de acordo com vários aspectos das técnicas descritas nesta revelação. No exemplo da Figura 8, um dispositivo de processamento de vídeo, como codificador de vídeo 20, unidade de encapsulamento 21, unidade de desencapsulamento 29, entidade pós-processamento 27, entidade de rede 78, pode criptografar uma ou mais unidades de NAL de não VCL de uma camada de um fluxo de bits de múltiplas camadas que contém uma mensagem de SEI que tem um tipo de carga útil de SEI (160). O dispositivo de processamento de vídeo também pode determinar a sintaxe do fluxo de bits de múltiplas camadas à qual a mensagem de 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 do fluxo de bits de múltiplas camadas às quais a mensagem de SEI se aplica com base no tipo de carga útil de SEI.
[0263] Por exemplo, de acordo com os aspectos desta revelação, a mensagem de SEI pode incluir uma mensagem de SEI de aninhamento escalonável. Nesse exemplo, o dispositivo de processamento de vídeo pode determinar, com base no tipo de carga útil de SEI que está incluído em um primeiro conjunto de tipos de carga útil, que um elemento de sintaxe bitstream_subset_flag da mensagem de SEI de aninhamento escalonável tem valor zero. 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, conforme descrito acima em relação à Figura 1, embora o conjunto possa incluir mais ou menos que aqueles identificados no exemplo.
[0264] Em um outro exemplo, a mensagem de SEI pode ser uma mensagem de SEI não aninhada. Nesse exemplo, o dispositivo de processamento de vídeo pode determinar, com base no tipo de carga útil de SEI que está incluído em um primeiro conjunto de tipos de carga útil, que um elemento de sintaxe de identificador de camada para as unidades de NAL de não VCL que contêm a mensagem de SEI é igual a um elemento de sintaxe de identificador de camada para as unidades de NAL de VCL associadas à mensagem de 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, embora o conjunto possa incluir mais ou menos daqueles identificados.
[0265] Em ainda um outro exemplo, a mensagem de SEI pode ser uma mensagem de SEI de aninhamento escalonável. Nesse exemplo, o dispositivo de processamento de vídeo pode determinar, com base no tipo de carga útil de SEI que está incluído e um primeiro conjunto de tipos de carga útil, como uma ou mais unidades de NAL de não VCL que contêm a mensagem de SEI de aninhamento escalonável tem uma 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, embora o conjunto possa incluir mais ou menos que aqueles identificados no exemplo.
[0266] De acordo com os aspectos desta revelação, adicional ou alternativamente, o dispositivo de processamento de vídeo pode criptografar uma mensagem de SEI de conjuntos de parâmetros ativos do fluxo de bits de múltiplas camadas apenas em uma mensagem de SEI não aninhada e não em uma mensagem de SEI de aninhamento escalonável.
[0267] Adicional 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 zero com base na mensagem de SEI que contém uma mensagem de SEI de período de armazenamento temporário não aninhado, uma mensagem de SEI de temporização de figuração, ou uma mensagem de SEI de informações de unidade de decodificação. Em alguns exemplos, o dispositivo de processamento de vídeo também pode criptografar um elemento de sintaxe de identificador de camada para ter um valor zero.
[0268] Adicional ou alternativamente, o dispositivo de processamento de vídeo pode criptografar um elemento de sintaxe bitstream_subset_flag do fluxo de bits de múltiplas camadas. O dispositivo de criptografia de vídeo pode, com base no elemento de sintaxe bitstream_subset_flag que é igual a um e nos conjuntos de camadas especificados por um conjunto de parâmetro de vídeo (VPS) do fluxo de bits de múltiplas camadas que inclui identificadores de camada na faixa de zero para um identificador de camada das unidades de NAL de não VCL que contêm a mensagem de SEI, inclusive, determina que um valor de um elemento de sintaxe default_op_flag do fluxo de bits de múltiplas camadas tem valor zero. Em alguns exemplos, o dispositivo de processamento de vídeo também pode criptografar um elemento de sintaxe default_op_flag para ter um valor zero.
[0269] De acordo com um aspecto adicional desta revelação, adicional ou alternativamente, o dispositivo de processamento de vídeo pode criptografar um nesting_op_flag do fluxo de bits de múltiplas camadas e um all_layers_flag do fluxo de bits de múltiplas camadas. O dispositivo de processamento de vídeo pode, com base no nesting_op_flag que tem um valor de zero e o all_layers_flag que tem um valor de um, determinar que um valor de um elemento de sintaxe de maxTemporalId[ 0 ] do fluxo de bits de múltiplas camadas é igual a sete. Em alguns exemplos, o dispositivo de processamento de vídeo também pode criptografar o elemento de sintaxe maxTemporalId][ 0 ] para ter um valor sete.
[0270] Adicional ou alternativamente, o dispositivo de processamento de vídeo pode criptografar um fluxo de elemento de sintaxe bits_subset_flag do fluxo de bits de múltiplas camadas e um elemento de sintaxe nesting_op_flag do fluxo de bits de múltiplas camadas. O dispositivo de processamento de vídeo pode, com base no elemento de sintaxe bitstream_subset_flag que tem um valor de um e o elemento de sintaxe nesting_op_flag que tem um valor de zero, determinar que um nestingLayerIdList[ 0 ] do fluxo de bits de múltiplas camadas inclui apenas valores de identificador de camada de um conjunto de camadas especificado em um VPS do fluxo de bits de múltiplas camadas. Em alguns exemplos, o dispositivo de processamento de vídeo também pode criptografar um elemento de sintaxe nestingLayerIdList [ 0 ] para incluir apenas valores de identificador de camada de um conjunto de camadas especificado em um VPS do fluxo de bits de múltiplas camadas.
[0271] Deve-se compreender que as etapas mostradas e descritas em relação à Figura 8 são fornecidas meramente como um exemplo. Ou seja, as etapas mostradas no exemplo da Figura 8 não precisam ser necessariamente realizadas na ordem mostrada na Figura 8, e menos etapas adicionais ou alternativas podem ser realizadas. Além do mais, embora as técnicas sejam geralmente descritas acima em relação a um dispositivo de processamento de vídeo, as técnicas podem ser implantadas por uma variedade de dispositivos de processamento de vídeo, como codificador de vídeo 20, unidade de encapsulamento 21, unidade de desencapsulamento 29, entidade de pós-processamento 27, entidade de rede 78, ou outras unidades de processamento.
[0272] Em um ou mais exemplos, as funções descritas podem ser implantadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implantadas em software, as funções podem ser armazenadas ou transmitidas, como uma ou mais instruções ou código, um meio legível por computador e executadas por uma unidade de processamento baseada em hardware. A mídia legível por computador pode incluir mídia de armazenamento legível por computador, que corresponde a um meio tangível como mídia de armazenamento de dados, ou mídia de comunicação que inclui qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Dessa maneira, a mídia legível por computador pode, em geral, corresponder à (1) mídia de armazenamento legível por computador tangível que é não transitória ou (2) um meio de comunicação como um sinal ou uma onda de portadora. A mídia de armazenamento de dados pode ser qualquer mídia disponível que possa ser acessada por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para a implantação das técnicas descritas nesta revelação. Um produto de programa de computador pode incluir um meio legível por computador.
[0273] Por meio de exemplo, e sem limitação, tal mídia de armazenamento legível por computador pode compreender uma RAM, ROM, EEPROM, CD-ROM ou outro armazenamento de disco óptico, armazenamento de disco magnético ou outros dispositivos de armazenamento magnético, memória flash ou qualquer outro meio que possa ser usado para armazenar o código de programa desejado na forma de instruções ou estruturas de dados e que pode ser acessado por um computador. Também, qualquer conexão é adequadamente denominada um meio legível por computador. Por exemplo, se as instruções forem transmitidas a partir de um site da web, servidor ou outra fonte remota com o uso de um cabo coaxial, cabo de fibra óptica, par torcido, linha de assinante digital (DSL) ou tecnologias sem fio como infravermelho, rádio e micro-ondas, então, o cabo coaxial, cabo de fibra óptica, par torcido, DSL ou tecnologias sem fio como infravermelho, rádio e micro-ondas estão incluídos na definição de meio. Deve-se compreender, no entanto, que a mídia de armazenamento legível por computador e a mídia de armazenamento de dados não incluem conexões, ondas de portadora, sinais, ou outra mídia transiente, mas, em vez disso, são direcionados à mídia de armazenamento tangível não transiente. O disco magnético e o disco óptico, conforme usados no presente documento, incluem disco compacto (CD), disco a laser, disco óptico, disco versátil digital (DVD), disco flexível e disco Blu- ray, em que os discos magnéticos normalmente reproduzem dados magneticamente, enquanto os discos ópticos reproduzem dados opticamente com lasers. As combinações dos supracitados também devem ser abrangidas pelo escopo de mídias legíveis por computador.
[0274] As instruções podem ser executadas por um ou mais processadores, como um ou mais processadores de sinal digital (DSPs), microprocessadores para fins gerais, circuitos integrados de aplicação específica (ASICs), matrizes lógicas programáveis em campo (FPGAs), ou outros conjuntos de circuitos lógicos discretos ou integrados equivalentes. Dessa maneira, o termo “processador”, como usado no presente documento, pode se referir a qualquer uma das estruturas anteriores ou qualquer outra estrutura adequada para implantação das técnicas descritas no presente documento. Além disso, em alguns aspectos, a funcionalidade descrita no presente documento pode ser fornecida nos módulos de software e/ou hardware dedicados configurados para codificar e decodificar, ou incorporados em um codec combinado. Também, as técnicas poderiam ser totalmente implantadas em um ou mais circuitos ou elementos lógicos.
[0275] As técnicas desta revelação podem ser implantadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um fone sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um chipset). Vários componentes, módulos ou unidades são descritos nesta revelação para enfatizar aspectos funcionais de dispositivos configurados para realizar as técnicas reveladas, mas não exigem necessariamente a realização através de diferentes unidades de hardware. Em vez disso, conforme descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec ou fornecidas por um conjunto de unidades de hardware interoperativas, que incluem um ou mais processadores conforme descrito acima, em conjunto com o software e/ou o firmware adequado.
[0276] Vários exemplos foram descritos. Esses e outros exemplos estão dentro do escopo das reivindicações a seguir.

Claims (14)

1. Método de decodificação de dados de vídeo, o método caracterizado pelo fato de que compreende: obter uma unidade de acesso de uma sequência de bits de múltiplas camadas de dados de vídeo que inclui uma primeira camada e pelo menos uma segunda camada, onde a obtenção da unidade de acesso compreende a obtenção (140) de uma ou mais unidades de camada de abstração de rede (NAL) de camada de codificação de vídeo (VCL) da primeira camada e obtenção (144) de uma ou mais unidades NAL VCL da segunda camada; e decodificar a unidade de acesso, onde a decodificação da unidade de acesso compreende a decodificação de uma ou mais primeiras unidades NAL não VCL contendo uma primeira mensagem SEI aplicável às unidades NAL VCL da primeira camada juntamente com as unidades NAL VCL da primeira camada, e a decodificação de uma ou mais segundas unidades NAL não VCL contendo uma segunda mensagem SEI aplicável às unidades NAL VCL da segunda camada juntamente com as unidades NAL VCL da segunda camada, de modo que a sequência de bits não contenha quaisquer imagens codificadas de qualquer camada além da primeira camada entre as unidades NAL VCL da primeira camada e uma ou mais primeiras unidades NAL não VCL, e não contém quaisquer imagens codificadas de qualquer camada além da segunda camada entre as unidades NAL VCL da segunda camada e uma ou mais segundas unidades NAL não VCL.
2. Método de codificação de dados de vídeo, o método caracterizado pelo fato de que compreende: obter uma unidade de acesso de uma sequência de bits de múltiplas camadas de dados de vídeo que inclui uma primeira camada e pelo menos uma segunda camada, onde a obtenção da unidade de acesso compreende a obtenção (140) de uma ou mais unidades de camada de abstração de rede (NAL) da camada de codificação de vídeo (VCL) da primeira camada e obtenção (144) de uma ou mais unidades NAL VCL da segunda camada; e codificar a unidade de acesso, onde a codificação da unidade de acesso compreende a codificação de uma ou mais primeiras unidades NAL não VCL contendo uma primeira mensagem SEI aplicável às unidades NAL VCL da primeira camada juntamente com as unidades NAL VCL da primeira camada, e a codificação de uma ou mais segundas unidades NAL não VCL contendo uma segunda mensagem SEI aplicável às unidades NAL VCL da segunda camada juntamente com as unidades NAL VCL da segunda camada, de modo que a sequência de bits não contenha quaisquer imagens codificadas de qualquer camada além da primeira camada entre as unidades NAL VCL da primeira camada e uma ou mais primeiras unidades NAL não VCL, e não contém quaisquer imagens codificadas de qualquer camada além da segunda camada entre as unidades NAL VCL da segunda camada e uma ou mais segundas unidades NAL não VCL.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a decodificação de uma ou mais das primeiras unidades NAL não VCL compreende a decodificação de uma ou mais primeiras unidades NAL não VCL diretamente adjacentes às unidades NAL VCL da primeira camada na sequência de bits de múltiplas camadas, o método compreendendo adicionalmente a decodificação de uma ou mais segundas unidades NAL não VCL diretamente adjacentes às segundas unidades NAL VCL de uma segunda camada na sequência de bits de múltiplas camadas; ou o método, de acordo com a reivindicação 2, no qual a codificação de uma ou mais primeiras unidades NAL não VCL compreende a codificação de uma ou mais primeiras unidades NAL não VCL diretamente adjacente às unidades NAL VCL da primeira camada na sequência de bits de múltiplas camadas, o método compreendendo adicionalmente a codificação de uma ou mais segundas unidades NAL não VCL diretamente adjacentes às segundas unidades NAL VCL de uma segunda camada na sequência de bits de múltiplas camadas.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que as unidades NAL VCL da primeira camada são unidades NAL VCL de uma primeira imagem da primeira camada e a primeira mensagem SEI compreende uma primeira mensagem SEI de prefixo aplicável à primeira imagem da primeira camada, e onde a decodificação de uma ou mais primeiras unidades NAL não VCL contendo a primeira mensagem SEI de prefixo juntamente com as unidades NAL VCL da primeira camada compreende a decodificação de uma ou mais primeiras unidades NAL não VCL precedendo as unidades NAL VCL da primeira camada na sequência de bits; ou o método, de acordo com a reivindicação 2, no qual as unidades NAL VCL da primeira camada são unidades NAL VCL de uma primeira imagem da primeira camada e a primeira mensagem SEI compreende uma primeira mensagem SEI de prefixo aplicável à primeira imagem da primeira camada, e onde a codificação de uma ou mais primeiras unidades NAL não VCL contendo a primeira mensagem SEI de prefixo juntamente com as unidades NAL VCL da primeira camada compreende a codificação de uma ou mais das primeiras unidades NAL não VCL precedendo as unidades NAL VCL da primeira camada na sequência de bits.
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que as unidades NAL VCL da segunda camada são unidades NAL VCL de uma segunda imagem da segunda camada e a segunda mensagem SEI compreende uma segunda mensagem SEI de prefixo aplicável às unidades NAL VCL da segunda imagem, o método compreendendo adicionalmente: decodificar ou codificar uma ou mais segundas unidades NAL não VCL seguindo a primeira imagem na sequência de bits.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que as unidades NAL VCL da primeira camada são unidades NAL VCL de uma primeira imagem da primeira camada e a primeira mensagem SEI compreende uma primeira mensagem SEI de sufixo aplicável à primeira imagem da primeira camada, e onde a decodificação de uma ou mais primeiras unidades NAL não VCL contendo a primeira mensagem SEI de sufixo juntamente com as unidades NAL VCL da primeira camada compreende a decodificação de uma ou mais unidades NAL não VCL subsequentes às unidades NAL VCL da primeira camada na sequência de bits; ou o método, de acordo com a reivindicação 2, no qual as unidades NAL VCL da primeira camada são unidades NAL VCL de uma primeira imagem da primeira camada e a primeira mensagem SEI compreende uma primeira mensagem SEI de sufixo aplicável à primeira imagem da primeira camada, e onde a codificação de uma ou mais das primeiras unidades NAL não VCL contendo a primeira mensagem SEI de sufixo juntamente com as unidades NAL VCL da primeira camada compreende a codificação uma ou mais unidades NAL não VCL subsequentes às unidades NAL VCL da primeira camada na sequência de bits.
7. Método, de acordo com a reivindicação 6, caracterizado pelo fato de que as unidades NAL VCL da segunda camada são unidades NAL VCL de uma segunda imagem da segunda camada e a segunda mensagem SEI compreende uma segunda mensagem SEI de sufixo aplicável às unidades NAL VCL da segunda imagem, o método compreendendo adicionalmente: codificar ou decodificar uma ou mais segundas unidades NAL não VCL seguindo a segunda imagem na sequência de bits.
8. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que compreende adicionalmente determinar um parâmetro de repetição máxima para cada 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, onde o parâmetro de repetição máxima para cada mensagem SEI representa um número máximo de vezes em que a mensagem SEI respectiva pode ser repetida.
9. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que compreende adicionalmente: gerar dados residuais para as unidades NAL VCL da primeira camada indicando uma diferença entre os dados de previsão e dados de vídeo reais; 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.
10. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: obter coeficientes de transformação para as unidades NAL VCL a partir de uma sequência de bits codificada; aplicar uma transformação inversa aos coeficientes de transformação para gerar dados residuais; e determinar dados de vídeo com base nos dados residuais gerados.
11. Aparelho para decodificação de dados de vídeo, o aparelho caracterizado pelo fato de que compreende: meios para obtenção de uma unidade de acesso de uma sequência de bits de múltiplas camadas de dados de vídeo que inclui uma primeira camada e pelo menos uma segunda camada, onde os meios para obtenção de unidade de acesso compreende 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) da primeira camada e obtendo uma ou mais unidades NAL VCL da segunda camada; e meios para decodificação de unidade de acesso, onde os meios de codificação da unidade de acesso compreende meios para codificação apenas de uma ou mais primeiras unidades NAL não VCL contendo uma primeira mensagem SEI aplicável às unidades NAL VCL da primeira camada juntamente com as unidades NAL VCL da primeira camada, e codificação de uma ou mais segundas unidades NAL não VCL contendo uma segunda mensagem SEI aplicável às unidades NAL VCL da segunda camada juntamente com as unidades NAL VCL da segunda camada, de modo que a sequência de bits não contenha quaisquer imagens codificadas de qualquer camada além da primeira camada entre as unidades NAL VCL da primeira camada e uma ou mais primeiras unidades NAL não VCL e não contenha quaisquer imagens codificadas de qualquer camada além da segunda camada entre as unidades NAL VCL da segunda camada e uma ou mais segundas unidades NAL não VCL.
12. Aparelho para codificação de dados de vídeo, o aparelho caracterizado pelo fato de que compreende: meios para obtenção de uma unidade de acesso de uma sequência de bits de múltiplas camadas de dados de vídeo que inclui uma primeira camada e pelo menos uma segunda camada, onde os meios para obtenção de unidade de acesso compreende 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) da primeira camada e obtendo uma ou mais unidades NAL VCL da segunda camada; e meios para codificação de unidade de acesso, onde os meios de codificação da unidade de acesso compreende meios para codificação apenas de uma ou mais primeiras unidades NAL não VCL contendo uma primeira mensagem SEI aplicável às unidades NAL VCL da primeira camada juntamente com as unidades NAL VCL da primeira camada, e codificação de uma ou mais segundas unidades NAL não VCL contendo uma segunda mensagem SEI aplicável às unidades NAL VCL da segunda camada juntamente com as unidades NAL VCL da segunda camada, de modo que a sequência de bits não contenha quaisquer imagens codificadas de qualquer camada além da primeira camada entre as unidades NAL VCL da primeira camada e uma ou mais primeiras unidades NAL não VCL e não contenha quaisquer imagens codificadas de qualquer camada além da segunda camada entre as unidades NAL VCL da segunda camada e uma ou mais segundas unidades NAL não VCL.
13. Aparelho, de acordo com a reivindicação 11 ou 12, caracterizado pelo fato de que o dispositivo compreende pelo menos um dentre: um circuito integrado; um microprocessador; ou um dispositivo de comunicação sem fio.
14. Memória legível por computador, caracterizada pelo fato de que possui instruções nela armazenadas que, quando executadas, fazem com que um computador realize o método conforme definido em qualquer uma das reivindicações 1 a 10.
BR112016022080-3A 2014-03-24 2015-03-24 Uso genérico de mensagens de sei de hevc para codecs de múltiplas camadas BR112016022080B1 (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,999 US10645404B2 (en) 2014-03-24 2015-03-23 Generic use of HEVC SEI messages for multi-layer codecs
US14/665,999 2015-03-23
PCT/US2015/022303 WO2015148550A2 (en) 2014-03-24 2015-03-24 Generic use of hevc sei messages for multi-layer codecs

Publications (3)

Publication Number Publication Date
BR112016022080A2 BR112016022080A2 (pt) 2017-08-15
BR112016022080A8 BR112016022080A8 (pt) 2021-07-13
BR112016022080B1 true BR112016022080B1 (pt) 2024-03-12

Family

ID=54143325

Family Applications (3)

Application Number Title Priority Date Filing Date
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
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
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

Family Applications Before (1)

Application Number Title Priority Date Filing Date
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 After (1)

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

Country Status (8)

Country Link
US (3) US9894370B2 (pt)
EP (3) EP3123726B1 (pt)
JP (3) JP6608386B2 (pt)
KR (3) KR102353191B1 (pt)
CN (3) CN106170982B (pt)
BR (3) BR112016022079B1 (pt)
MX (3) MX359788B (pt)
WO (3) WO2015148545A1 (pt)

Families Citing this family (53)

* 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
US9894370B2 (en) 2014-03-24 2018-02-13 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
US10687055B2 (en) 2017-03-03 2020-06-16 Qualcomm Incorporated Coding MCTS-EIS SEI messages of an access unit
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
CN113366843B (zh) 2018-12-20 2024-08-23 瑞典爱立信有限公司 恢复点的规范指示
US11889118B2 (en) * 2019-02-24 2024-01-30 Sharp Kabushiki Kaisha Systems and methods for signaling types of pictures and associated information in video coding
AU2020311890A1 (en) 2019-07-08 2022-02-03 Huawei Technologies Co., Ltd. Mixed NAL unit picture constraints in video coding
CN110446047A (zh) * 2019-08-16 2019-11-12 苏州浪潮智能科技有限公司 视频码流的解码方法及装置
CA3151829A1 (en) * 2019-08-19 2021-02-25 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Usage of access unit delimiters and adaptation parameter sets
MX2022003548A (es) * 2019-09-24 2022-06-02 Huawei Tech Co Ltd Restricciones de identificador temporal para mensajes sei.
CN116866598A (zh) * 2019-09-24 2023-10-10 华为技术有限公司 用于指定层的可伸缩嵌套式sei消息
JP7389241B2 (ja) * 2019-09-24 2023-11-29 華為技術有限公司 マルチビュースケーラビリティのためのols
WO2021061428A1 (en) 2019-09-24 2021-04-01 Futurewei Technologies, Inc. Scalable nesting sei messages for ols
KR20220065868A (ko) * 2019-09-24 2022-05-20 후아웨이 테크놀러지 컴퍼니 리미티드 Ols에 대한 hrd 적합성 테스트
KR102746657B1 (ko) * 2019-09-24 2024-12-24 후아웨이 테크놀러지 컴퍼니 리미티드 다층 비디오 비트스트림에 대한 dpb 파라미터의 시그널링 기법
EP4078950A1 (en) * 2019-12-19 2022-10-26 Telefonaktiebolaget Lm Ericsson (Publ) Film grain process
US20210195259A1 (en) * 2019-12-23 2021-06-24 Comcast Cable Communications, Llc Method and apparatus for managing redundant segmented streams
CN114868158A (zh) 2019-12-26 2022-08-05 字节跳动有限公司 层级视频中的解码图片缓冲区参数的信令通知
MX2022007502A (es) * 2019-12-26 2022-07-04 Bytedance Inc Tecnicas para implementar un orden de decodificacion dentro de una imagen codificada.
CN114868399A (zh) 2019-12-26 2022-08-05 字节跳动有限公司 条带类型和视频层的信令通知
CN113055668B (zh) * 2019-12-27 2023-06-02 腾讯美国有限责任公司 从已编码视频比特流中提取子比特流的方法和设备
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 바이트댄스 아이엔씨 파라미터 세트들에서의 서브픽처 시그널링
BR112022013594A2 (pt) 2020-01-09 2022-09-13 Bytedance Inc Método e aparelho de processamento de vídeo, método para armazenar um fluxo de bits, e, mídia legível por computador
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 파라미터의 개수 정보를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체
EP4131965A4 (en) * 2020-03-30 2024-04-24 LG Electronics, Inc. Video encoding/decoding method and apparatus for signaling dpb parameter, and computer-readable recording medium storing bitstream
EP4131966A4 (en) 2020-04-02 2024-03-06 LG Electronics, Inc. IMAGE ENCODING/DECODING METHOD AND DEVICE FOR SIGNALING DPB-RELATED INFORMATION AND PTL-RELATED INFORMATION, AND COMPUTER-READABLE RECORDING MEDIUM IN WHICH BIT STREAM IS STORED
US11706428B2 (en) * 2020-04-06 2023-07-18 Tencent America LLC Method for signaling picture header in coded video stream
TWI801883B (zh) 2020-05-22 2023-05-11 美商Ge影像壓縮有限公司 視訊編碼器、視訊解碼器、用於編碼與解碼之方法及用以實現進階視訊寫碼概念之視訊資料串流
WO2021233424A1 (en) 2020-05-22 2021-11-25 Beijing Bytedance Network Technology Co., Ltd. Handling of coded video in sub-bitstream extraction process
JP7529807B2 (ja) * 2020-05-22 2024-08-06 バイトダンス インコーポレイテッド 映像サブビットストリーム抽出処理におけるスケーラブルネスト化されたseiメッセージのハンドリング
WO2021237177A1 (en) 2020-05-22 2021-11-25 Bytedance Inc. Constraints on picture types in video bitstream processing
CN115769570A (zh) 2020-06-09 2023-03-07 字节跳动有限公司 多层视频比特流的子比特流提取
KR20230019851A (ko) 2020-06-09 2023-02-09 바이트댄스 아이엔씨 비-스케일러블 네스팅된 비디오 신택스 요소들에서의 시그널링 제약들
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
WO2022063256A1 (en) 2020-09-25 2022-03-31 Beijing Bytedance Network Technology Co., Ltd. Nested and non-nested sei messages in video bitstreams
GB2599171B (en) * 2020-09-29 2024-12-11 Canon Kk Method and apparatus for encapsulating video data into a file
US11770498B2 (en) 2020-09-29 2023-09-26 Lemon Inc. Supplemental enhancement information for multi-layer video streams
CN117178554A (zh) * 2021-04-12 2023-12-05 瑞典爱立信有限公司 消息引用
US12113974B2 (en) * 2021-09-30 2024-10-08 Nokia Technologies Oy High-level syntax for signaling neural networks within a media bitstream
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
PL1942670T3 (pl) 2004-04-28 2012-02-29 Panasonic Corp Urządzenie do generowania strumienia, sposób generowania strumienia, urządzenie do kodowania, sposób kodowania, nośnik zapisujący oraz właściwy program
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
CA2666601C (en) 2006-10-16 2014-08-05 Vidyo, Inc. 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
RU2010102823A (ru) * 2007-06-26 2011-08-10 Нокиа Корпорейшн (Fi) Система и способ индикации точек переключения временных уровней
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 符号化装置および復号装置
US9485517B2 (en) * 2011-04-20 2016-11-01 Qualcomm Incorporated Motion vector prediction with motion vectors from multiple views in multi-view 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
PT2822276T (pt) 2012-02-29 2018-12-18 Lg Electronics Inc Processo de predição inter-camadas e dispositivo que o utiliza
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
US10863170B2 (en) * 2012-04-16 2020-12-08 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding on the basis of a motion vector
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
KR102028527B1 (ko) * 2012-06-12 2019-10-04 엘지전자 주식회사 영상 디코딩 방법 및 이를 이용하는 장치
EP2866440B1 (en) * 2012-06-24 2018-08-08 Lg Electronics Inc. Image decoding method and apparatus using same
CN104604236B (zh) * 2012-07-02 2017-12-15 诺基亚技术有限公司 用于视频编码的方法和装置
IN2015MN00077A (pt) 2012-07-06 2015-10-16 Samsung Electronics Co Ltd
SG11201500846TA (en) 2012-09-26 2015-05-28 Panasonic Ip Corp America Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
KR20140043239A (ko) * 2012-09-27 2014-04-08 한국전자통신연구원 계층간 전환을 이용한 영상 부호화/복호화 방법 및 그 장치
WO2014051409A1 (ko) 2012-09-28 2014-04-03 삼성전자 주식회사 참조 픽처 정보를 이용한 병렬 처리 비디오 부호화 방법 및 장치, 병렬 처리 비디오 복호화 방법 및 장치
US9479782B2 (en) 2012-09-28 2016-10-25 Qualcomm Incorporated Supplemental enhancement information message coding
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
JP6209772B2 (ja) * 2013-01-15 2017-10-11 華為技術有限公司Huawei Technologies Co.,Ltd. シグナリングを用いたビデオデコーダ
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
WO2015009693A1 (en) 2013-07-15 2015-01-22 Sony Corporation Layer based hrd buffer management for scalable hevc
CN105706451B (zh) * 2013-10-11 2019-03-08 Vid拓展公司 Hevc扩展的高级句法
US10554990B2 (en) 2013-10-14 2020-02-04 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
JP2017500787A (ja) * 2013-11-21 2017-01-05 エルジー エレクトロニクス インコーポレイティド 信号送受信装置及び信号送受信方法
WO2015137237A1 (ja) 2014-03-14 2015-09-17 シャープ株式会社 画像復号装置
CN104935944B (zh) * 2014-03-18 2018-03-13 华为技术有限公司 一种视频数据编码、解码的方法和装置
US9894370B2 (en) 2014-03-24 2018-02-13 Qualcomm Incorporated Generic use of HEVC SEI messages for multi-layer codecs

Also Published As

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

Similar Documents

Publication Publication Date Title
BR112016022080B1 (pt) Uso genérico de mensagens de sei de hevc para codecs de múltiplas camadas
ES2839148T3 (es) Codificación de vídeo multicapa
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
BR112015007763B1 (pt) Método de decodificação e codificação de dados de vídeo, dispositivo de decodificação e codificação de vídeo e memória legível por computador
BR112015015802B1 (pt) Mensagens sei não aninhadas em codificação de vídeo
US9807419B2 (en) Recovery point SEI message in multi-layer video codecs
BR112015007502B1 (pt) Método e dispositivo de processamento de dados de vídeo, método e dispositivo para gerar um arquivo que possui um formato para conteúdo hevc contendo dados de vídeo codificado, assim como meio de armazenamento não transitório legível por computador
BR112015016052B1 (pt) Armazenamento de pista separado de vista de textura e profundidade para codificação multivista mais profundidade
BR112017017315B1 (pt) Sinalização de agrupamento de amostra em formatos de arquivo
BR112016030194B1 (pt) Codificação de vídeo de multi-camada

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