BR112016029762B1 - Método e aparelho de decodificação de dados de vídeo, e, memória legível por computador - Google Patents

Método e aparelho de decodificação de dados de vídeo, e, memória legível por computador Download PDF

Info

Publication number
BR112016029762B1
BR112016029762B1 BR112016029762-8A BR112016029762A BR112016029762B1 BR 112016029762 B1 BR112016029762 B1 BR 112016029762B1 BR 112016029762 A BR112016029762 A BR 112016029762A BR 112016029762 B1 BR112016029762 B1 BR 112016029762B1
Authority
BR
Brazil
Prior art keywords
video
vps
layers
layer
bitstream
Prior art date
Application number
BR112016029762-8A
Other languages
English (en)
Other versions
BR112016029762A2 (pt
Inventor
Ye-Kui Wang
Fnu HENDRY
Adarsh Krishnan Ramasubramonian
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/743,613 external-priority patent/US20150373376A1/en
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112016029762A2 publication Critical patent/BR112016029762A2/pt
Publication of BR112016029762B1 publication Critical patent/BR112016029762B1/pt

Links

Abstract

SISTEMAS E MÉTODOS PARA SINALIZAR DE MODO SELETIVO DIFERENTES NÚMEROS DE ESTRUTURAS DE SINTAXE DE INFORMAÇÕES DE SINAL DE VÍDEO EM UM CONJUNTO DE PARÂMETROS. Trata-se de técnicas e sistemas para criptar e decodificar dados de vídeo. Por exemplo, um método para decodificar de dados de vídeo inclui acessar uma corrente de bits de vídeo criptada de acordo com um primeiro protocolo de codificação. A corrente de bits de vídeo criptada inclui uma ou mais camadas de aprimoramento e um conjunto de parâmetros de vídeo que definem parâmetros da corrente de bits de vídeo criptada. O método inclui adicionalmente determinar que um elemento de sintaxe indicativo de um número de estruturas de sintaxe de informações de sinal de vídeo fornecido na corrente de bits de vídeo criptada não está presente no conjunto de parâmetros de vídeo. O método inclui adicionalmente determinar se uma camada de base está incluída na corrente de bits de vídeo criptada ou dever ser recebida a partir de uma fonte externa. O método inclui adicionalmente determinar que o número de estruturas de sintaxe de informação de sinal de vídeo incluído no conjunto de parâmetros de vídeo seja um primeiro valor ou um segundo valor com (...).

Description

CAMPO
[0001] A presente revelação refere-se geralmente à codificação de vídeo e, mais especificamente, a técnicas e sistemas para sinalizar de modo seletivo diferentes números de estruturas de sintaxe de informação de sinal de vídeo em um conjunto de parâmetros.
ANTECEDENTES
[0002] Muitos dispositivos e sistemas permitem que dados de vídeo sejam processados e emitidos para consumo. Os dados de vídeo digitais incluem grandes quantidades de dados para atender as demandas de consumidores e fornecedores de vídeo. Por exemplo, os consumidores de dados de vídeo desejam vídeo da maior qualidade, com alta fidelidade, resoluções, taxas de quadro e similares. Como resultado, a grande quantidade de dados de vídeo que é exigida para atender essas demandas sobrecarregam as redes de comunicação e dispositivos que processam e armazenam os dados de vídeo.
[0003] Várias técnicas de codificação de vídeo podem ser usadas para comprimir dados de vídeo. A codificação de vídeo é realizada de acordo com um ou mais padrões de codificação de vídeo. Por exemplo, padrões de codificação de vídeo incluem codificação de vídeo de alta eficiência (HEVC), codificação de vídeo avançada (AVC), codificação de grupo de especialistas em figurações com movimento (MPEG) ou similares. A codificação de vídeo geralmente utiliza métodos de previsão (por exemplo, interprevisão, intraprevisão ou similares) que se beneficiam de redundância presente em imagens de vídeo ou sequências. Um objetivo importante das técnicas de codificação de vídeo é comprimir dados de vídeo de uma forma que usa uma taxa de bits inferior, ao mesmo tempo que evita ou minimiza degradações na qualidade de vídeo. Com a disponibilização de serviços de vídeo sempre em evolução, técnicas de criptação com melhor eficiência de codificação são necessárias.
BREVE SUMÁRIO
[0004] Em algumas modalidades, as técnicas e sistemas são descritos por informações de sinalização para conjuntos de camadas em um conjunto de parâmetros. Um conjunto de camadas inclui um conjunto de camadas de uma corrente de bits que são autocontidas de modo que as camadas em um determinado conjunto de camadas possa formar uma corrente de bits independente que representa conteúdo de vídeo. O conjunto de parâmetros pode incluir um conjunto de parâmetros de vídeo. O conjunto de parâmetros pode ser dotado de uma corrente de bits de vídeo criptada e pode definir parâmetros da corrente de bits de vídeo criptada. Um ou mais conjuntos de camadas podem ser definidos em uma parte de base do conjunto de parâmetros, e um ou mais conjuntos de camadas adicionais não definidos na parte de base pode ser definido em uma parte de extensão do conjunto de parâmetros. A parte de base do conjunto de parâmetros pode ser definida em uma edição inicial de um padrão de codificação de vídeo (por exemplo, uma primeira edição do padrão de codificação de vídeo de alta eficiência ou outro padrão de codificação), e a parte de extensão do conjunto de parâmetros pode ser definida em uma edição posterior do padrão de codificação de vídeo. As partes de base e extensão do conjunto de parâmetros podem incluir informações de sinalização que descrevem características de um ou mais conjuntos de camadas (o que inclui os conjuntos de camadas adicionais). Por exemplo, as informações de sinalização podem descrever informações de taxa (por exemplo, informações de taxa de bits, informações de taxa de figuração ou outras informações de taxa) para o um ou mais conjuntos de camadas (o que inclui os conjuntos de camadas adicionais). Em outro exemplo, as informações de sinalização podem incluir informações que indicam se uma camada em um conjunto de camadas é uma camada de saída alvo de um conjunto de camadas de saída. As modalidades são descritas no presente documento em relação à sinalização de tais informações para todos os conjuntos de camadas definidos nas partes de base e extensão do conjunto de parâmetros.
[0005] De acordo com pelo menos um exemplo de informações de sinalização em um conjunto de parâmetros para conjuntos de camadas, um método de criptação de dados de vídeo é fornecido que inclui gerar uma corrente de bits de vídeo criptada com um ou mais conjuntos de camadas e um ou mais conjuntos de camadas adicionais. Cada conjunto de camadas e um conjunto de camadas adicional incluem uma ou mais camadas, e a corrente de bits de vídeo criptada inclui um conjunto de parâmetros de vídeo que define parâmetros da corrente de bits de vídeo criptada. O um ou mais conjuntos de camadas são definidos em uma parte de base do conjunto de parâmetros de vídeo, e o um ou mais conjuntos de camadas adicionais são definidos em uma parte de extensão do conjunto de parâmetros de vídeo. O método inclui fornecer adicionalmente, no conjunto de parâmetros de vídeo, um ou mais elementos de sintaxe para informações de sinalização relacionadas ao um ou mais conjuntos de camadas e ao um ou mais conjuntos de camadas adicionais. As informações incluem informações de taxa para o um ou mais conjuntos de camadas definidos na parte de base do conjunto de parâmetros de vídeo e para o um ou mais conjuntos de camadas adicionais definidos na parte de extensão do conjunto de parâmetros de vídeo.
[0006] Em outro exemplo, um aparelho é fornecido que inclui uma memória configurada para armazenar dados de vídeo e um processador. O processador é configurado e pode gerar, a partir dos dados de vídeo, uma corrente de bits de vídeo criptada que compreende um ou mais conjuntos de camadas e um ou mais conjuntos de camadas adicionais. Cada conjunto de camadas e um conjunto de camadas adicional incluem uma ou mais camadas, e a corrente de bits de vídeo criptada inclui um conjunto de parâmetros de vídeo que define parâmetros da corrente de bits de vídeo criptada. O um ou mais conjuntos de camadas são definidos em uma parte de base do conjunto de parâmetro de vídeo e o um ou mais conjuntos de camadas adicionais são definidos em uma parte de extensão do conjunto de parâmetros de vídeo. O processador é configurado adicionalmente e pode fornecer, no conjunto de parâmetros de vídeo, um ou mais elementos de sintaxe para informações de sinalização relacionadas ao um ou mais conjuntos de camadas e o um ou mais conjuntos de camadas adicionais. As informações incluem informações de taxa para o um ou mais conjuntos de camadas definidos na parte de base do conjunto de parâmetros de vídeo e para o um ou mais conjuntos de camadas adicionais definidos na parte de extensão do conjunto de parâmetros de vídeo.
[0007] Em outro exemplo, um meio legível por computador é dotado de instruções armazenadas no mesmo que quando executadas por um processador realizam um método que inclui: gerar uma corrente de bits de vídeo criptada que compreende um ou mais conjuntos de camadas e um ou mais conjuntos de camadas adicionais, em que Cada conjunto de camadas e um conjunto de camadas adicional incluem uma ou mais camadas, sendo que a corrente de bits de vídeo criptada inclui um conjunto de parâmetros de vídeo que define parâmetros da corrente de bits de vídeo criptada, em que o um ou mais conjuntos de camadas são definidos em uma parte de base do conjunto de parâmetros de vídeo, e em que o um ou mais conjuntos de camadas adicionais são definidos em uma parte de extensão do conjunto de parâmetros de vídeo; e fornecer, no conjunto de parâmetros de vídeo, um ou mais elementos de sintaxe para informações de sinalização relacionadas ao um ou mais conjuntos de camadas e ao um ou mais conjuntos de camadas adicionais, sendo que as informações incluem informações de taxa para o um ou mais conjuntos de camadas definidos na parte de base do conjunto de parâmetros de vídeo e para o um ou mais conjuntos de camadas adicionais definidos na parte de extensão do conjunto de parâmetros de vídeo.
[0008] Em outro exemplo, um aparelho é fornecido que inclui meios para gerar uma corrente de bits de vídeo criptada que compreende um ou mais conjuntos de camadas e um ou mais conjuntos de camadas adicionais. Cada conjunto de camadas e um conjunto de camadas adicional incluem uma ou mais camadas, e a corrente de bits de vídeo criptada inclui um conjunto de parâmetros de vídeo que define parâmetros da corrente de bits de vídeo criptada. O um ou mais conjuntos de camadas são definidos em uma parte de base do conjunto de parâmetros de vídeo, e o um ou mais conjuntos de camadas adicionais são definidos em uma parte de extensão do conjunto de parâmetros de vídeo. O aparelho inclui adicionalmente meios para fornecer, no conjunto de parâmetros de vídeo, um ou mais elementos de sintaxe para informações de sinalização relacionadas ao um ou mais conjuntos de camadas e o um ou mais conjuntos de camadas adicionais. As informações incluem informações de taxa para o um ou mais conjuntos de camadas definidos na parte de base do conjunto de parâmetros de vídeo e para o um ou mais conjuntos de camadas adicionais definidos na parte de extensão do conjunto de parâmetros de vídeo.
[0009] Em outro exemplo das informações de sinalização para conjuntos de camadas em um conjunto de parâmetros, um método de decodificação de dados de vídeo é fornecido que inclui obter uma corrente de bits de vídeo criptada que compreende um ou mais conjuntos de camadas e um ou mais conjuntos de camadas adicionais. Cada conjunto de camadas e um conjunto de camadas adicional incluem uma ou mais camadas, e a corrente de bits de vídeo criptada inclui um conjunto de parâmetros de vídeo que define parâmetros da corrente de bits de vídeo criptada. O um ou mais conjuntos de camadas são definidos em uma parte de base do conjunto de parâmetros de vídeo, e o um ou mais conjuntos de camadas adicionais são definidos em uma parte de extensão do conjunto de parâmetros de vídeo. O método inclui adicionalmente decodificar um ou mais elementos de sintaxe a partir do conjunto de parâmetros de vídeo. O um ou mais elementos de sintaxe incluem informações de taxa para o um ou mais conjuntos de camadas definidos na parte de base do conjunto de parâmetros de vídeo e para o um ou mais conjuntos de camadas adicionais definidos na parte de extensão do conjunto de parâmetros de vídeo.
[0010] Em outro exemplo, um aparelho é fornecido que inclui uma memória configurada para armazenar dados de vídeo e um processador. O processador é configurado e pode obter uma corrente de bits de vídeo criptada que compreende um ou mais conjuntos de camadas e um ou mais conjuntos de camadas adicionais. Cada conjunto de camadas e um conjunto de camadas adicional incluem uma ou mais camadas, e a corrente de bits de vídeo criptada inclui um conjunto de parâmetros de vídeo que define parâmetros da corrente de bits de vídeo criptada. O um ou mais conjuntos de camadas são definidos em uma parte de base do conjunto de parâmetros de vídeo, e o um ou mais conjuntos de camadas adicionais são definidos em uma parte de extensão do conjunto de parâmetros de vídeo. O processador é configurado adicionalmente e pode decodificar um ou mais elementos de sintaxe a partir do conjunto de parâmetros de vídeo. O um ou mais elementos de sintaxe incluem informações de taxa para o um ou mais conjuntos de camadas definidos na parte de base do conjunto de parâmetros de vídeo e para o um ou mais conjuntos de camadas adicionais definidos na parte de extensão do conjunto de parâmetros de vídeo.
[0011] Em outro exemplo, um meio legível por computador é dotado de instruções armazenadas no mesmo que quando executadas por um processador realizam um método que inclui: obter uma corrente de bits de vídeo criptada que compreende um ou mais conjuntos de camadas e um ou mais conjuntos de camadas adicionais, em que Cada conjunto de camadas e um conjunto de camadas adicional incluem uma ou mais camadas, sendo que a corrente de bits de vídeo criptada inclui um conjunto de parâmetros de vídeo que define parâmetros da corrente de bits de vídeo criptada, em que o um ou mais conjuntos de camadas são definidos em uma parte de base do conjunto de parâmetros de vídeo, e em que o um ou mais conjuntos de camadas adicionais são definidos em uma parte de extensão do conjunto de parâmetros de vídeo; e decodificar um ou mais elementos de sintaxe a partir do conjunto de parâmetros de vídeo, sendo que o um ou mais elementos de sintaxe incluem informações de taxa para o um ou mais conjuntos de camadas definidos na parte de base do conjunto de parâmetros de vídeo e para o um ou mais conjuntos de camadas adicionais definidos na parte de extensão do conjunto de parâmetros de vídeo.
[0012] Em outro exemplo, um aparelho é fornecido que inclui meios para obter uma corrente de bits de vídeo criptada que compreende um ou mais conjuntos de camadas e um ou mais conjuntos de camadas adicionais. Cada conjunto de camadas e um conjunto de camadas adicional incluem uma ou mais camadas, e a corrente de bits de vídeo criptada inclui um conjunto de parâmetros de vídeo que define parâmetros da corrente de bits de vídeo criptada. O um ou mais conjuntos de camadas são definidos em uma parte de base do conjunto de parâmetros de vídeo, e o um ou mais conjuntos de camadas adicionais são definidos em uma parte de extensão do conjunto de parâmetros de vídeo. O aparelho inclui adicionalmente meios para um ou mais elementos de sintaxe a partir do conjunto de parâmetros de vídeo. O um ou mais elementos de sintaxe incluem informações de taxa para o um ou mais conjuntos de camadas definidos na parte de base do conjunto de parâmetros de vídeo e para o um ou mais conjuntos de camadas adicionais definidos na parte de extensão do conjunto de parâmetros de vídeo.
[0013] Em alguns aspectos, diferentes informações de taxa são sinalizadas para cada conjunto de camadas diferente do um ou mais conjuntos de camadas e do um ou mais conjuntos de camadas adicionais. Em alguns aspectos, as informações de taxa incluem informações de taxa de bits. Em alguns aspectos, as informações de taxa incluem informações de taxa de figuração.
[0014] Em alguns aspectos, o um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo incluem um sinalizador, sendo que o sinalizador indica se informações de taxa de bits estão disponíveis para um conjunto de camadas adicional. Em alguns aspectos, o um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo incluem um sinalizador, sendo que o sinalizador indica se informações de taxa de figuração estão disponíveis para um conjunto de camadas adicional. Em alguns aspectos, o um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo incluem um elemento de sintaxe, sendo que o elemento de sintaxe indica uma taxa de bits média para um conjunto de camadas adicional. Em alguns exemplos, o um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo incluem um elemento de sintaxe, sendo que o elemento de sintaxe indica uma taxa de bits máxima para um conjunto de camadas adicional.
[0015] Em alguns aspectos, o um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo incluem um elemento de sintaxe, sendo que o elemento de sintaxe indica se um conjunto de camadas adicional tem uma taxa de figuração constante. Em alguns aspectos, o um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo inclui um elemento de sintaxe, sendo que o elemento de sintaxe indica uma taxa média de figuração para um conjunto de camadas adicional. Em alguns aspectos, o um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo incluem um sinalizador, sendo que o sinalizador indica se uma camada em um conjunto de camadas adicional é uma camada de saída alvo de um conjunto de camadas de saída.
[0016] Em algumas modalidades, técnicas e sistemas são descritos para parâmetros de decodificador de referência hipotéticos de sinalização (HRD) em um conjunto de parâmetros apenas em certas condições. Em alguns exemplos, conjuntos de parâmetros de decodificador hipotético de referência podem ser fornecidos em um conjunto de parâmetros e usados para verificar que uma corrente de bits ou uma subcorrente de bits pode ser decodificada apropriadamente. Por exemplo, os parâmetros de decodificador hipotético de referência podem ser sinalizados em uma parte de informações de usabilidade de vídeo (VUI) de um conjunto de parâmetros de vídeo (VPS) ou VUI de VPS. A sinalização dos parâmetros de decodificador hipotético de referência nas VUI de VPS pode ser controlada por um sinalizador de comutação. Por exemplo, parâmetros de decodificador hipotético de referência podem não ser sinalizados nas VUI de VPS quando um valor do sinalizador de comutação é estabelecido em 0 em alguns exemplos, ou 1 em outros exemplos. As modalidades são descritas no presente documento para parâmetros de decodificador de referência hipotéticos de sinalização nas VUI de VPS quando certas informações são sinalizadas no VPS ou nas VUI de VPS. Por exemplo, parâmetros de decodificador hipotético de referência podem ser sinalizados nas VUI de VPS quando informações de temporização também são sinalizadas no VPS ou nas VUI de VPS. De modo similar, os parâmetros de decodificador hipotético de referência podem não ser sinalizados nas VUI de VPS quando nenhuma informação de temporização for sinalizada no VPS ou nas VUI de VPS. Em alguns aspectos, um encriptador (ou outro dispositivo, tal como um editor, emendador ou similares) pode condicionar o valor do sinalizador de comutação para ser dependente de um valor de um elemento de sintaxe que indica se informações de temporização estão presentes no VPS ou nas VUI de VPS. Por exemplo, quando o elemento de sintaxe é estabelecido em um valor (por exemplo, 0 ou 1) indica que nenhuma informação de temporização está presente, o sinalizador de comutação pode não ser sinalizado e, portanto, inferido ser certo valor o que indica que nenhum parâmetro de decodificador hipotético de referência deve ser sinalizado. Em outro exemplo quando o elemento de sintaxe é estabelecido em um valor indica que nenhuma informação de temporização está presente, o sinalizador de comutação pode ser sinalizado com o conjunto de sinalizador para o certo valor.
[0017] De acordo com pelo menos um exemplo de parâmetros de decodificador de referência hipotéticos de sinalização em um conjunto de parâmetros, um método de criptação de dados de vídeo é fornecido que inclui gerar uma corrente de bits de vídeo criptada que compreende múltiplas camadas. A corrente de bits de vídeo criptada inclui um conjunto de parâmetros de vídeo que define parâmetros da corrente de bits de vídeo criptada. O conjunto de parâmetros de vídeo inclui informações de usabilidade de vídeo. O método inclui adicionalmente determinar se informações de temporização são sinalizadas nas informações de usabilidade de vídeo do conjunto de parâmetros de vídeo. O método inclui adicionalmente determinar a possibilidade de sinalizar parâmetros de decodificador hipotético de referência nas informações de usabilidade de vídeo do conjunto de parâmetros de vídeo com base em se informações de temporização são sinalizadas nas informações de usabilidade de vídeo.
[0018] Em outro exemplo, um aparelho é fornecido que inclui uma memória configurada para armazenar dados de vídeo e um processador, sendo que o processador é configurado e pode gerar, a partir dos dados de vídeo, uma corrente de bits de vídeo criptada que compreende múltiplas camadas. A corrente de bits de vídeo criptada inclui um conjunto de parâmetros de vídeo que define parâmetros da corrente de bits de vídeo criptada. O conjunto de parâmetros de vídeo inclui informações de usabilidade de vídeo. O processador é configurado adicionalmente e pode determinar se informações de temporização são sinalizadas nas informações de usabilidade de vídeo do conjunto de parâmetros de vídeo. O processador é configurado adicionalmente e pode determinar a possibilidade de sinalizar parâmetros de decodificador hipotético de referência nas informações de usabilidade de vídeo do conjunto de parâmetros de vídeo com base em se informações de temporização são sinalizadas nas informações de usabilidade de vídeo.
[0019] Em outro exemplo, um meio legível por computador é dotado de instruções armazenadas no mesmo que quando executadas por um processador realizam um método que inclui: gerar uma corrente de bits de vídeo criptada que compreende múltiplas camadas, sendo que a corrente de bits de vídeo criptada inclui um conjunto de parâmetros de vídeo que define parâmetros da corrente de bits de vídeo criptada, em que o conjunto de parâmetros de vídeo inclui informações de usabilidade de vídeo; determinar se informações de temporização são sinalizadas nas informações de usabilidade de vídeo do conjunto de parâmetros de vídeo; e determinar a possibilidade de sinalizar parâmetros de decodificador hipotético de referência nas informações de usabilidade de vídeo do conjunto de parâmetros de vídeo com base em se informações de temporização são sinalizadas nas informações de usabilidade de vídeo.
[0020] Em outro exemplo, um aparelho é fornecido que inclui meios para gerar uma corrente de bits de vídeo criptada que compreende múltiplas camadas. A corrente de bits de vídeo criptada inclui um conjunto de parâmetros de vídeo que define parâmetros da corrente de bits de vídeo criptada. O conjunto de parâmetros de vídeo inclui informações de usabilidade de vídeo. O aparelho inclui adicionalmente meios para determinar se informações de temporização são sinalizadas nas informações de usabilidade de vídeo do conjunto de parâmetros de vídeo. O aparelho inclui adicionalmente meios para determinar a possibilidade de sinalizar parâmetros de decodificador hipotético de referência nas informações de usabilidade de vídeo do conjunto de parâmetros de vídeo com base em se informações de temporização são sinalizadas nas informações de usabilidade de vídeo.
[0021] O método, aparelhos e meio legíveis por computador descritos acima para parâmetros de decodificador de referência hipotéticos de sinalização em um conjunto de parâmetros podem incluir adicionalmente sinalizar os parâmetros de decodificador hipotético de referência nas informações de usabilidade de vídeo quando informações de temporização são sinalizadas nas informações de usabilidade de vídeo. O método, aparelhos e meio legíveis por computador descritos acima para parâmetros de decodificador de referência hipotéticos de sinalização em um conjunto de parâmetros pode incluir adicionalmente não sinalizar os parâmetros de decodificador hipotético de referência nas informações de usabilidade de vídeo quando informações de temporização não são sinalizadas nas informações de usabilidade de vídeo.
[0022] Em alguns aspectos, determinar se as informações de temporização são sinalizadas nas informações de usabilidade de vídeo do conjunto de parâmetros de vídeo inclui determinar um valor de um primeiro sinalizador nas informações de usabilidade de vídeo, sendo que o primeiro sinalizador indica se as informações de temporização são sinalizadas nas informações de usabilidade de vídeo.
[0023] O método, aparelhos e meio legível por computador descritos acima para parâmetros de decodificador de referência hipotéticos de sinalização em um conjunto de parâmetros podem incluir adicionalmente determinar um valor de um segundo sinalizador nas informações de usabilidade de vídeo com base no valor do primeiro sinalizador, sendo que o segundo sinalizador define se parâmetros de decodificador hipotético de referência são sinalizados nas informações de usabilidade de vídeo.
[0024] O método, aparelhos e meio legível por computador descritos acima para parâmetros de decodificador de referência hipotéticos de sinalização em um conjunto de parâmetros pode incluir adicionalmente fornecer, nas informações de usabilidade de vídeo, um ou mais elementos de sintaxe para informações de sinalização relacionadas à corrente de bits de vídeo criptada, sendo que as informações incluem uma condição de que o valor do segundo sinalizador é dependente do valor do primeiro sinalizador.
[0025] O método, aparelhos e meio legível por computador descritos acima para parâmetros de decodificador de referência hipotéticos de sinalização em um conjunto de parâmetros pode incluir adicionalmente fornecer, nas informações de usabilidade de vídeo, um ou mais elementos de sintaxe para informações de sinalização relacionadas à corrente de bits de vídeo criptada, sendo que as informações incluem uma restrição em relação ao valor do segundo sinalizador que deve ser estabelecido para zero quando o valor do primeiro sinalizador é igual a zero.
[0026] Em algumas modalidades, técnicas e sistemas são descritos para sinalizar de modo seletivo diferentes números de estruturas de sintaxe de informação de sinal de vídeo em um conjunto de parâmetros. Em alguns exemplos, um encriptador que criptografa dados de vídeo de acordo com um primeiro protocolo de codificação pode gerar uma corrente de bits de vídeo criptada. O encriptador pode fornecer a corrente de bits de vídeo criptada para um decodificador em um dispositivo de recebimento. Uma camada de base para dados de vídeo pode ser fornecida para o decodificador (ou outro decodificador no mesmo dispositivo de recebimento) por uma fonte externa diferente do encriptador que usa o primeiro protocolo de codificação. Por exemplo, a camada de base pode ser criptada de acordo com um segundo protocolo de codificação que é diferente do primeiro protocolo de codificação. Em tal exemplo, um encriptador que criptografa dados de vídeo com o uso do segundo protocolo de codificação pode fornecer a camada de base para o dispositivo de recebimento. Uma estrutura de sintaxe de informação de sinal de vídeo é sinalizada para cada camada de uma corrente de bits de vídeo criptada de múltiplas camadas, com uma estrutura de sintaxe de informação de sinal de vídeo separada que é sinalizada para cada camada. Em alguns casos, um número de estruturas de sintaxe de informação de sinal de vídeo para incluir em um conjunto de parâmetros (por exemplo, conjunto de parâmetros de vídeo) não é sinalizado. Em tais casos, o número de estruturas de sintaxe de informação de sinal de vídeo pode ser inferido como igual ao número de camadas na corrente de bits de vídeo criptada. As modalidades descritas no presente documento para determinar um número de estruturas de sintaxe de informação de sinal de vídeo para sinalizar no conjunto de parâmetros com base na possibilidade de a camada de base estar incluída na corrente de bits de vídeo criptada ou dever ser fornecida para o dispositivo de recebimento da fonte externa.
[0027] De acordo com pelo menos um exemplo de sinalização de modo seletivo de números de estruturas de sintaxe de informação de sinal de vídeo em um conjunto de parâmetros, um método de criptação de dados de vídeo é fornecido que inclui gerar uma corrente de bits de vídeo criptada de acordo com um primeiro protocolo de codificação. A corrente de bits de vídeo criptada inclui uma ou mais camadas de aprimoramento e um conjunto de parâmetros de vídeo que define parâmetros da corrente de bits de vídeo criptada. O método inclui adicionalmente determinar que um elemento de sintaxe indicativo de um número de estruturas de sintaxe de informação de sinal de vídeo fornecidas na corrente de bits de vídeo criptada não está presente no conjunto de parâmetros de vídeo. O método inclui adicionalmente determinar o número de estruturas de sintaxe de informação de sinal de vídeo para incluir no conjunto de parâmetros de vídeo quando a estrutura de sintaxe indicativa do número de estruturas de sintaxe de informação de sinal de vídeo fornecida na corrente de bits de vídeo criptada não está presente no conjunto de parâmetros de vídeo. O número é determinado como um primeiro valor ou um segundo valor com base em se uma camada de base está incluída na corrente de bits de vídeo criptada ou dever ser fornecida para um decodificador a partir de uma fonte externa.
[0028] Em outro exemplo, um aparelho é fornecido que inclui uma memória configurada para armazenar dados de vídeo e um processador. O processador é configurado e pode gerar, a partir dos dados de vídeo, uma corrente de bits de vídeo criptada de acordo com um primeiro protocolo de codificação. A corrente de bits de vídeo criptada inclui uma ou mais camadas de aprimoramento e um conjunto de parâmetros de vídeo que definem parâmetros da corrente de bits de vídeo criptada. O processador é configurado adicionalmente e pode determinar que um elemento de sintaxe indicativo de um número de vídeo sinalizar que estruturas de sintaxe de informações fornecidas na corrente de bits de vídeo criptada não estão presentes no conjunto de parâmetros de vídeo. O processador é configurado adicionalmente e pode determinar o número de estruturas de sintaxe de informação de sinal de vídeo para incluir no conjunto de parâmetros de vídeo quando a estrutura de sintaxe indicativa do número de estruturas de sintaxe de informação de sinal de vídeo fornecida na corrente de bits de vídeo criptada não está presente no conjunto de parâmetros de vídeo. O número é determinado como um primeiro valor ou um segundo valor com base em se uma camada de base está incluída na corrente de bits de vídeo criptada ou dever ser fornecida para um decodificador a partir de uma fonte externa.
[0029] Em outro exemplo, um meio legível por computador é dotado de instruções armazenadas no mesmo que quando executadas por um processador realizam um método que inclui: gerar uma corrente de bits de vídeo criptada de acordo com um primeiro protocolo de codificação, sendo que uma corrente de bits de vídeo criptada inclui uma ou mais camadas de aprimoramento e um conjunto de parâmetros de vídeo que define parâmetros da corrente de bits de vídeo criptada; determinar que uma estrutura de sintaxe indicativa do número de estruturas de sintaxe de informações de sinal de vídeo fornecida na corrente de bits de vídeo criptada não está presente no conjunto de parâmetros de vídeo; e determinar o número de estruturas de sintaxe de informação de sinal de vídeo para incluir no conjunto de parâmetros de vídeo quando uma estrutura de sintaxe indicativa do número de estruturas de sintaxe de informações de sinal de vídeo fornecida na corrente de bits de vídeo criptada não estiver presente no conjunto de parâmetros de vídeo, em que o número é determinado como um primeiro valor ou um segundo valor com base em se uma camada de base está incluída na corrente de bits de vídeo criptada ou dever ser fornecida para um decodificador a partir de uma fonte externa.
[0030] Em outro exemplo, um aparelho é fornecido que inclui meios para gerar uma corrente de bits de vídeo criptada de acordo com um primeiro protocolo de codificação. A corrente de bits de vídeo criptada inclui uma ou mais camadas de aprimoramento e um conjunto de parâmetros de vídeo que define parâmetros da corrente de bits de vídeo criptada. O aparelho inclui adicionalmente meios para determinar que uma estrutura de sintaxe indicativa do número de estruturas de sintaxe de informação de sinal de vídeo fornecida na corrente de bits de vídeo criptada não está presente no conjunto de parâmetros de vídeo. O aparelho inclui adicionalmente meios para determinar o número de estruturas de sintaxe de informação de sinal de vídeo para incluir no conjunto de parâmetros de vídeo quando a estrutura de sintaxe indicativa do número de estruturas de sintaxe de informação de sinal de vídeo fornecida na corrente de bits de vídeo criptada não está presente no conjunto de parâmetros de vídeo. O número é determinado como um primeiro valor ou um segundo valor com base em se uma camada de base está incluída na corrente de bits de vídeo criptada ou dever ser fornecida para um decodificador a partir de uma fonte externa.
[0031] Em alguns aspectos, o número de estruturas de sintaxe de informação de sinal de vídeo para incluir no conjunto de parâmetros de vídeo é determinado como o primeiro valor quando se determina que a camada de base está incluída na corrente de bits de vídeo criptada, em que o primeiro valor é igual a um número máximo de camadas da corrente de bits de vídeo criptada.
[0032] Em alguns aspectos, o número de estruturas de sintaxe de informação de sinal de vídeo para incluir no conjunto de parâmetros de vídeo é determinado como o segundo valor quando se determina que a camada de base deve ser fornecida para o decodificador a partir da fonte externa, em que o segundo valor é igual a um número máximo de camadas da corrente de bits de vídeo criptada menos um.
[0033] Em alguns aspectos, uma estrutura de sintaxe de informação de sinal de vídeo é atribuída a cada uma das camadas incluídas na corrente de bits de vídeo criptada, e nenhuma estrutura de sintaxe de informação de sinal de vídeo é atribuída à camada de base que deve ser fornecida ao decodificador a partir da fonte externa.
[0034] Em alguns aspectos, a camada de base fornecida a partir da fonte externa é criptada de acordo com um segundo protocolo de codificação, sendo que o segundo protocolo de codificação é diferente do primeiro protocolo de codificação. Em alguns exemplos, o primeiro protocolo de codificação inclui um protocolo de codificação de vídeo de alta eficiência, e o segundo protocolo de codificação inclui um protocolo de codificação de vídeo avançada.
[0035] Em outro exemplo de sinalização de modo seletivo de números de estruturas de sintaxe de informação de sinal de vídeo em um conjunto de parâmetros, um método de decodificação de dados de vídeo é fornecido que inclui acessar uma corrente de bits de vídeo criptada de acordo com um primeiro protocolo de codificação. A corrente de bits de vídeo criptada inclui uma ou mais camadas de aprimoramento e um conjunto de parâmetros de vídeo que definem parâmetros da corrente de bits de vídeo criptada. O método inclui adicionalmente determinar que uma estrutura de sintaxe indicativa do número de estruturas de sintaxe de informações de sinal de vídeo fornecida na corrente de bits de vídeo criptada não está presente no conjunto de parâmetros de vídeo. O método inclui adicionalmente determinar se uma camada de base está incluída na corrente de bits de vídeo criptada ou dever ser recebida a partir de uma fonte externa. O método inclui adicionalmente determinar que o número de estruturas de sintaxe de informação de sinal de vídeo incluído no conjunto de parâmetros de vídeo seja um primeiro valor ou um segundo valor com base em se a camada de base está incluída na corrente de bits de vídeo criptada ou deve ser recebida da fonte externa.
[0036] Em outro exemplo, um aparelho é fornecido que inclui uma memória configurada para armazenar dados de vídeo e um processador. O processador é configurado e pode acessar uma corrente de bits de vídeo criptada de acordo com um primeiro protocolo de codificação. A corrente de bits de vídeo criptada inclui uma ou mais camadas de aprimoramento e um conjunto de parâmetros de vídeo que definem parâmetros da corrente de bits de vídeo criptada. O processador é configurado adicionalmente e pode determinar que uma estrutura de sintaxe indicativa do número de estruturas de sintaxe de informação de sinal de vídeo fornecida na corrente de bits de vídeo criptada não está presente no conjunto de parâmetros de vídeo. O processador é configurado adicionalmente e pode determinar se a camada de base estiver incluída na corrente de bits de vídeo criptada ou dever ser recebida a partir de uma fonte externa. O processador é configurado adicionalmente e pode determinar que o número de estruturas de sintaxe de informação de sinal de vídeo incluído no conjunto de parâmetros de vídeo seja um primeiro valor ou um segundo valor com base em se a camada de base está incluída na corrente de bits de vídeo criptada ou deve ser recebida da fonte externa.
[0037] Em outro exemplo, um meio legível por computador é dotado de instruções armazenadas no mesmo que quando executadas por um processador realizam um método que inclui: acessar uma corrente de bits de vídeo criptada de acordo com um primeiro protocolo de codificação, sendo que a corrente de bits de vídeo criptada inclui uma ou mais camadas de aprimoramento e um conjunto de parâmetros de vídeo que define parâmetros da corrente de bits de vídeo criptada; determinar que uma estrutura de sintaxe indicativa do número de estruturas de sintaxe de informação de sinal de vídeo fornecida na corrente de bits de vídeo criptada não está presente no conjunto de parâmetros de vídeo; determinar se uma camada de base está incluída na corrente de bits de vídeo criptada ou dever ser recebida a partir de uma fonte externa; e determinar que o número de estruturas de sintaxe de informação de sinal de vídeo incluído no conjunto de parâmetros de vídeo seja um primeiro valor ou um segundo valor com base em se a camada de base está incluída na corrente de bits de vídeo criptada ou deve ser recebida da fonte externa.
[0038] Em outro exemplo, um aparelho é fornecido que inclui meios para acessar uma corrente de bits de vídeo criptada de acordo com um primeiro protocolo de codificação. A corrente de bits de vídeo criptada inclui uma ou mais camadas de aprimoramento e um conjunto de parâmetros de vídeo que definem parâmetros da corrente de bits de vídeo criptada. O aparelho inclui adicionalmente meios para determinar que uma estrutura de sintaxe indicativa do número de estruturas de sintaxe de informação de sinal de vídeo fornecida na corrente de bits de vídeo criptada não está presente no conjunto de parâmetros de vídeo. O aparelho inclui adicionalmente meios para determinar se uma camada de base está incluída na corrente de bits de vídeo criptada ou dever ser recebida a partir de uma fonte externa. O aparelho inclui adicionalmente meios para determinar o número de estruturas de sintaxe de informação de sinal de vídeo incluído no conjunto de parâmetros de vídeo para ser um primeiro valor ou um segundo valor com base em se a camada de base está incluída na corrente de bits de vídeo criptada ou deve ser recebida da fonte externa.
[0039] O método, aparelhos e meio legível por computador descritos acima para sinalizar de modo seletivo diferentes números de estruturas de sintaxe de informação de sinal de vídeo em um conjunto de parâmetros pode incluir adicionalmente determinar que o número de estruturas de sintaxe de informação de sinal de vídeo seja o primeiro valor quando se determina que a camada de base está incluída na corrente de bits de vídeo criptada, em que o primeiro valor é igual a um número máximo de camadas da corrente de bits de vídeo criptada.
[0040] O método, aparelhos e meio legível por computador descritos acima para sinalizar de modo seletivo diferentes números de estruturas de sintaxe de informação de sinal de vídeo em um conjunto de parâmetros pode incluir adicionalmente determinar que o número de estruturas de sintaxe de informação de sinal de vídeo seja o segundo valor quando se determina que a camada de base deve ser recebida da fonte externa, em que o segundo valor é igual a um número máximo de camadas da corrente de bits de vídeo criptada menos um.
[0041] Em alguns aspectos, uma estrutura de sintaxe de informação de sinal de vídeo é atribuída a cada uma das camadas incluídas na corrente de bits de vídeo criptada, e nenhuma estrutura de sintaxe de informação de sinal de vídeo é atribuída à camada de base que deve ser recebida da fonte externa.
[0042] Em alguns aspectos, a camada de base fornecida a partir da fonte externa é criptada de acordo com um segundo protocolo de codificação, sendo que o segundo protocolo de codificação é diferente do primeiro protocolo de codificação. Em alguns aspectos, o primeiro protocolo de codificação inclui um protocolo de codificação de vídeo de alta eficiência, e o segundo protocolo de codificação inclui um protocolo de codificação de vídeo avançada.
[0043] Em alguns aspectos, o método é executável em um dispositivo de comunicação sem fio. O dispositivo de comunicação sem fio compreende uma memória configurada para armazenar os dados de vídeo, um processador configurado para executar instruções para processar os dados de vídeo armazenados na memória, e um receptor configurado para receber a corrente de bits de vídeo criptada. Em alguns aspectos, o dispositivo de comunicação sem fio é um telefone celular e a corrente de bits de vídeo criptada é modulada de acordo com um padrão de comunicação celular.
[0044] Em alguns aspectos, o aparelho é um dispositivo de comunicação sem fio. O dispositivo de comunicação sem fio compreende um receptor configurado para receber a corrente de bits de vídeo criptada. Em alguns aspectos, o dispositivo de comunicação sem fio é um telefone celular e a corrente de bits de vídeo criptada é modulada de acordo com um padrão de comunicação celular.
[0045] Esse sumário não se destina a identificar recursos chaves ou recursos essenciais da matéria reivindicada, nem se destina a ser usado independentemente para determinar o escopo da matéria reivindicada. A matéria deve ser compreendida com referência a porções apropriadas de todo o relatório descritivo desta patente, qualquer ou todos os desenhos, e cada reivindicação.
[0046] O mencionado anteriormente, junto com outros recursos e modalidades se tornarão mais evidentes com referência ao relatório descritivo, reivindicações e desenhos anexos a seguir.
BREVE DESCRIÇÃO DOS DESENHOS
[0047] As modalidades ilustrativas da presente invenção são descritas em detalhes com referência às figuras de desenho a seguir:
[0048] A Figura 1 é um diagrama de blocos que ilustra um exemplo de um dispositivo de criptação e um dispositivo de decodificação, de acordo com algumas modalidades.
[0049] A Figura 2 é um diagrama de blocos que ilustra um exemplo de conjuntos de camadas definidos em uma parte de base e uma parte de extensão de um conjunto de parâmetros, de acordo com algumas modalidades.
[0050] A Figura 3 é um exemplo de uma estrutura de sintaxe de um conjunto de parâmetros, de acordo com algumas modalidades.
[0051] A Figura 4 é outro exemplo de uma estrutura de sintaxe de um conjunto de parâmetros, de acordo com algumas modalidades.
[0052] A Figura 5 é outro exemplo de uma estrutura de sintaxe de um conjunto de parâmetros, de acordo com algumas modalidades.
[0053] A Figura 6 é outro exemplo de uma estrutura de sintaxe de um conjunto de parâmetros, de acordo com algumas modalidades.
[0054] A Figura 7 é um fluxograma que ilustra uma modalidade de um processo de criptação de dados de vídeo para informações de sinalização para conjuntos de camadas em um conjunto de parâmetros, de acordo com algumas modalidades.
[0055] A Figura 8 é um fluxograma que ilustra uma modalidade de um processo de decodificação de dados de vídeo que inclui informações sinalizadas para conjuntos de camadas em um conjunto de parâmetros, de acordo com algumas modalidades.
[0056] A Figura 9A é outro exemplo de uma estrutura de sintaxe de um conjunto de parâmetros, de acordo com algumas modalidades.
[0057] A Figura 9B é outro exemplo de uma estrutura de sintaxe de um conjunto de parâmetros, de acordo com algumas modalidades.
[0058] A Figura 10 é um fluxograma que ilustra uma modalidade de um processo de criptação de dados de vídeo para parâmetros de decodificador de referência hipotéticos de sinalização em um conjunto de parâmetros, de acordo com algumas modalidades.
[0059] A Figura 11 é um diagrama de blocos que ilustra um ambiente com um dispositivo de criptação para fornecer dados de vídeo criptados com múltiplas camadas, de acordo com algumas modalidades.
[0060] A Figura 12 é um diagrama de blocos que ilustra um ambiente com múltiplos dispositivos de criptação para fornecer dados de vídeo criptados com múltiplas camadas, de acordo com algumas modalidades.
[0061] A Figura 13 é um exemplo de um conjunto de parâmetros com informações de sinal de vídeo para múltiplas camadas de dados de vídeo criptados, de acordo com algumas modalidades.
[0062] A Figura 14 é um fluxograma que ilustra uma modalidade de um processo de criptação de dados de vídeo para sinalizar de modo seletivo diferentes números de estruturas de sintaxe de informação de sinal de vídeo em um conjunto de parâmetros, de acordo com algumas modalidades.
[0063] A Figura 15 é um fluxograma que ilustra uma modalidade de um processo de decodificação de dados de vídeo para inferir diferentes números de estruturas de sintaxe de informação de sinal de vídeo em um conjunto de parâmetros, de acordo com algumas modalidades.
[0064] A Figura 16 é um diagrama de blocos que ilustra um exemplo de dispositivo de criptação de vídeo, de acordo com algumas modalidades.
[0065] A Figura 17 é um diagrama de blocos que ilustra um exemplo de dispositivo de decodificação de vídeo, de acordo com algumas modalidades.
DESCRIÇÃO DETALHADA
[0066] Certos aspectos e modalidades desta revelação são fornecidos abaixo. Alguns desses aspectos e modalidades podem ser aplicados independentemente e alguns podem ser aplicados em combinação como seria evidentes para aqueles indivíduos versados na técnica. Na descrição a seguir, com os propósitos de explicação, detalhes específicos são estabelecidos a fim de fornecer uma compreensão completa das modalidades da invenção. Contudo, será evidente que várias modalidades podem ser praticadas sem esses detalhes específicos. As figuras e descrição não pretendem ser restritivas.
[0067] A descrição seguinte fornece apenas modalidades exemplificativas e não se destina a limitar o escopo, aplicabilidade ou configuração da revelação. Em vez disso, a descrição a seguir das modalidades exemplificativas irá dotar aqueles indivíduos versados na técnica de uma descrição habilitadora para implantar uma modalidade exemplificativa. Deve ser entendido que várias mudanças podem ser feitas na função e disposição de elementos sem se afastar do espírito e do escopo da invenção conforme estabelecido nas reivindicações.
[0068] Os detalhes específicos são dados na descrição a seguir para fornecer um entendimento completo das modalidades. Contudo, será compreendido por um indivíduo de habilidade comum na técnica que as modalidades podem ser praticadas sem esses detalhes específicos. Por exemplo, circuitos, sistemas, redes, processes e outros componentes podem ser mostrados como componentes na forma de diagrama de blocos a fim de não obscurecer as modalidades em detalhes desnecessários. Em outros casos, circuitos, processos, algoritmos estruturas e técnicas conhecidas podem ser mostrados sem detalhes desnecessários a fim de evitar obscurecer as modalidades.
[0069] Além disso, observa-se que modalidades individuais podem ser descritas como um processo que é retratado como um fluxograma, um diagrama de fluxo, um diagrama de fluxo de dados, um diagrama estrutural ou um diagrama de blocos. Embora um fluxograma possa descrever as operações como um processo sequencial, muitas das operações podem ser realizadas em paralelo ou concomitantemente. Além disso, a ordem das operações pode ser reorganizada. Um processo é concluído quando suas operações são completadas, mas poderia ter etapas adicionais não incluídas em uma Figura. Um processo pode corresponder a um método, uma função, um procedimento, uma sub-rotina, um subprograma, etc. Quando um processo corresponde a uma função, sua conclusão pode corresponder a um retorno da função para a função de chamada ou a função principal.
[0070] O termo "meio legível por computador" inclui, mas sem limitação, dispositivos de armazenamento portáteis ou não portáteis, dispositivos de armazenamento óptico, e vários outros meios com capacidade para armazenar, conter ou carregar instrução (ou instruções) e/ou dados. Um meio legível por computador pode incluir um meio não transitório em que dados podem ser armazenados e que não inclui ondas transportadoras e/ou sinais eletrônicos transitórios que se propagam de modo sem fio ou por conexões com fio. Os exemplos de um meio não transitório podem incluir, mas sem limitação, um disco ou fita magnética, mídia de armazenamento óptico tal como disco compacto (CD) ou disco versátil digital (DVD), memória rápida, memória ou dispositivos de memória. Um meio legível por computador pode ter armazenadas no mesmo código e/ou instruções executáveis por máquina instruções que podem representar um procedimento, uma função, um subprograma, um programa, uma rotina, uma sub-rotina, um módulo, um pacote de software, uma classe ou qualquer combinação de instruções, estruturas de dados ou declarações de programa. Um segmento de código pode ser acoplado a outro segmento de código ou um circuito de hardware passando-se e/ou recebendo-se informações, dados, argumentos, parâmetros ou conteúdos de memória, informações, argumentos, parâmetros, dados, etc. podem ser passados, encaminhados ou transmitidos através de quaisquer meios adequados o que inclui compartilhamento de memória, passagem de mensagem, passagem de token, transmissão de rede ou similares.
[0071] Além disso, as modalidades podem ser implantadas por hardware, software, firmware, middleware, microcódigo, linguagens de descrição de hardware ou qualquer combinação dos mesmos. Quando implantado em software, firmware, middleware ou microcódigo, o código de programa ou segmentos de código realizam as tarefas necessárias (por exemplo, um produto de programa de computador) pode ser armazenado em um meio legível por computador ou legível por máquina. Um processador pode realizam as tarefas necessárias.
[0072] Os diversos sistemas e métodos de codificação de vídeo com o uso de encriptadores e decodificadores de vídeo são descritos no presente documento. Por exemplo, uma ou mais sistemas e métodos de codificação são direcionados para aprimorar a sinalização de diferentes informações em um conjunto de parâmetros, tal como o conjunto de parâmetros de vídeo (VPS) descrito no padrão de codificação de vídeo de alta eficiência (HEVC).
[0073] À medida que mais dispositivos e sistemas fornecem aos consumidores a capacidade de consumir dados de vídeo digitais, a necessidade de técnicas de codificação de vídeo eficientes se torna mais importante. A codificação de vídeo é necessária para reduzir exigências de armazenamento e transmissão necessárias para manejar as grandes quantidades de dados presentes nos dados de vídeo digitais. Várias técnicas de codificação de vídeo podem ser usadas para comprimir dados de vídeo em uma forma que usa uma taxa de bits inferior enquanto mantém alta qualidade de vídeo.
[0074] A Figura 1 é um diagrama de blocos que ilustra um exemplo de um sistema 100 que inclui um dispositivo de criptação 104 e um dispositivo de decodificação 112. O dispositivo de criptação 104 pode ser parte de um dispositivo de fonte, e o dispositivo de decodificação 112 pode ser parte de um dispositivo de recebimento. O dispositivo de fonte e/ou o dispositivo de recebimento podem incluir um dispositivo eletrônico, tal como um aparelho de telefone estacionário ou móvel (por exemplo, telefone inteligente, telefone celular ou similares), um computador do tipo desktop, um computador do tipo laptop ou notebook, um computador do tipo tablet, um decodificador de sinais, uma televisão, uma câmera, um dispositivo de exibição, um reprodutor de mídia digital, um console de vídeo game, um dispositivo de transmissão contínua de vídeo ou qualquer outro dispositivo eletrônico adequado. Em alguns exemplos, o dispositivo de fonte e o dispositivo de recebimento podem incluir um ou mais transceptores sem fio para comunicações sem fio. As técnicas de codificação descritas no presente documento são aplicáveis à codificação de vídeo em várias aplicações multimídia, o que inclui transmissões contínuas de vídeo (por exemplo, pela Internet), difusões ou transmissões de televisão, criptação de vídeo digital para armazenamento 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 100 pode suportar transmissão de vídeo unidirecional ou bidirecional para suportar aplicações tais como conferência por vídeo, transmissão contínua de vídeo, reprodução de vídeo, difusão de vídeo, jogos e/ou telefonia por vídeo.
[0075] O dispositivo de criptação 104 (ou encriptador) pode ser usado para criptar dados de vídeo com o uso de um padrão de codificação de vídeo ou protocolo para gerar uma corrente de bits de vídeo criptada. Os padrões de codificação de vídeo incluem ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também denominado de ISO/IEC MPEG-4 AVC), incluindo suas extensões de Codificação de Vídeo Escalável (SVC) e de Codificação de Vídeo de Múltiplas Vistas (MVC). Um padrão de codificação de vídeo mais recente, a codificação de vídeo de alta eficiência (HEVC) foi finalizada pela Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do Grupo de Especialistas em Codificação de Vídeo ITU-T (VCEG) e Grupo de Especialistas de figuração com Movimento ISO/IEC (MPEG). As várias extensões para HEVC lidam com codificação de vídeo em múltiplas camadas e são também desenvolvidas pelo JCT-VC, o que inclui a extensão de multivistas para HEVC, chamada MV-HEVC, e a extensão escalável para HEVC, chamada de SHVC ou qualquer outro protocolo de codificação.
[0076] Muitas modalidades descritas no presente documento descrevem exemplos com o uso do padrão HEVC ou extensões do mesmo. Contudo, as técnicas e sistemas descritos no presente documento podem também ser aplicáveis a outros padrões de codificação, tal como AVC, MPEG, extensões dos mesmos ou outros padrões de codificação adequados. Consequentemente, apesar de as técnicas e sistemas descritos no presente documento poderem ser descritos com referência a um padrão de codificação de vídeo particular, um indivíduo de habilidade comum na técnica irá observar que a descrição não deve ser interpretada aplicando-se apenas para aquele padrão particular.
[0077] Uma fonte de vídeo 102 pode fornecer os dados de vídeo para o dispositivo de criptação 104. A fonte de vídeo 102 pode ser parte do dispositivo de fonte, ou pode ser parte de um dispositivo diferente do dispositivo de fonte. A fonte de vídeo 102 pode incluir um dispositivo de captura de vídeo (por exemplo, uma câmera de vídeo, um telefone com câmera, um telefone com vídeo ou similares), um arquivo de vídeo que contém vídeo armazenado, um servidor de vídeo ou provedor de conteúdo que fornece dados de vídeo, uma interface de alimentação de vídeo que recebe vídeo a partir de um servidor de vídeo ou provedor de conteúdo, um sistema de gráfico de computador para gerar dados gráficos de vídeo de computador, uma combinação de tais fontes, ou qualquer outra fonte de vídeo adequada.
[0078] Os dados de vídeo a partir da fonte de vídeo 102 podem incluir uma ou mais figurações ou quadros de entrada. Uma figuração ou quadro é uma imagem fixa que é parte de um vídeo. O mecanismo encriptador 106 (ou encriptador) do dispositivo de criptação 104 criptografa os dados de vídeo para gerar uma corrente de bits de vídeo criptada. Uma corrente de bits HEVC, por exemplo, pode incluir uma sequência de unidades de dados chamada de unidades de camada de abstração de rede (NAL). Duas classes de unidades de NAL existem no padrão HEVC, o que inclui unidades de NAL de camada de codificação de vídeo (VCL) e unidades de NAL de não VCL. Uma unidade de NAL de VCL inclui uma fatia ou segmento de fatia (descrito abaixo) de dados de figuração codificados, e unidade de NAL de não VCL que inclui informações de controle que se referem a múltiplas figurações codificadas. Uma figuração codificada e unidades de NAL de não VCL (se houver) que correspondem à figuração codificada são chamadas de unidade de acesso (ALT).
[0079] As unidades de NAL podem conter uma sequência de bits que forma uma representação codificada dos dados de vídeo (a corrente de bits de vídeo criptada), tal como representações de figurações em um vídeo. O mecanismo encriptador 106 gera representações codificadas de figurações particionando-se cada figuração em múltiplas fatias. Uma fatia é independente de outras fatias de modo que as informações na fatia sejam codificadas sem depender de dados a partir de outras fatias dentro da mesma figuração. A fatia inclui um ou mais segmentos de fatia o que inclui um segmento de fatia independente e, se presente, um ou mais segmentos de fatia dependentes que dependem de segmentos de fatia anteriores. Então, as fatias são divididas em blocos de codificação em árvore (CTBs) de amostras de luma e amostras de croma. Um CTB de amostras de luma e um ou mais CTBs de amostras de croma, juntos com sintaxe para as amostras, são chamados de uma unidade de árvore de codificação (CTU). Uma CTU é a unidade básica de processamento para criptação HEVC. Uma CTU pode ser repartida em múltiplas unidades de codificação (CUs) de tamanhos variáveis. Uma CU contém arranjos de amostra luma e croma que são chamados de blocos de codificação (CBs).
[0080] Os CBS de luma e croma podem ser adicionalmente repartidos em blocos de previsão (PBs). Um PB é um bloco de amostras da luma ou um componente de croma que usa os mesmos parâmetros de movimento para interprevisão. Um PB de luma e um ou mais PBs de croma, juntos com sintaxe associada, formam uma unidade de previsão (PU). Um conjunto de parâmetros de movimento é sinalizado na corrente de bits para cada PU e é usado para interprevisão do PB de luma e do um ou mais PBs de croma. Um CB pode também ser dividido em um ou mais blocos de transformada (TBs). Um TB representa um bloco quadrado de amostras de um componente de cor em que a mesma transformada bidimensional é aplicada para codificar um sinal residual de previsão. Uma unidade de transformada (TU) representa os TBs de amostras de luma e croma e elementos de sintaxe correspondentes.
[0081] Um tamanho de uma CU corresponde a um tamanho do nó de codificação e tem um formato quadrado. Por exemplo, um tamanho de uma CU pode ser 8 x 8 amostras, 16 x 16 amostras, 32 x 32 amostras, 64 x 64 amostras, ou qualquer outro tamanho apropriado até o tamanho da CTU correspondente. A frase "N x N” é usada no presente documento para se referir a dimensões de pixel de um bloco de vídeo em termos de dimensões vertical e horizontal (por exemplo, 8 pixels x 8 pixels). Os pixels em um bloco podem estar dispostos em fileiras e colunas. Em algumas modalidades, blocos podem não ter o mesmo número de pixels em uma direção horizontal que em uma direção vertical. Os dados de sintaxe associados a uma CU podem descrever, por exemplo, a partição da CU em uma ou mais PUs. Os modos de particionamento podem diferir entre a CU ser de modo de intraprevisão criptada ou modo de interprevisão criptada. As PUs podem ser particionadas para terem formato não quadrado. Os dados de sintaxe associados a uma CU também podem descrever, por exemplo, o particionamento da CU em uma ou mais TUs de acordo com uma CTU. Uma TU pode ter formato quadrado ou não quadrado.
[0082] De acordo com o padrão HEVC, transformações podem ser realizadas com o uso de unidades de transformada (TUs). As TUs podem variar para diferentes CUs. As TUs podem ser dimensionadas com base no tamanho das PUs dentro de uma determinada CU. As TUs podem ser do mesmo tamanho ou menores do que as PUs. Em alguns exemplos, as amostras residuais que correspondem a uma CU podem ser subdivididas em unidades menores com o uso de uma estrutura de árvore quadrática conhecida como “árvore quadrática residual” (RQT). Os nós de folha da RQT podem corresponder às TUs. Os valores de diferença de pixel associados às TUs podem ser transformados para produzir coeficientes de transformada. Então, os coeficientes de transformada podem ser quantizados pelo mecanismo encriptador 106.
[0083] Uma vez que as figurações dos dados de vídeo estiverem particionadas em CUs, o mecanismo encriptador 106 prevê cada PU com o uso de um modo de previsão. Então, a previsão é subtraída a partir dos dados de vídeo originais para se obter resíduos (descritos abaixo). Para cada CU, um modo de previsão pode ser sinalizado dentro da corrente de bits com o uso de dados de sintaxe. Um modo de previsão pode incluir intraprevisão (ou previsão intrafiguração) ou interprevisão (ou previsão interfiguração). Com o uso de intraprevisão, cada PU é prevista a partir de dados de imagem vizinha na mesma figuração com o uso de, por exemplo, previsão DC para encontrar um valor médio para a PU, previsão plana para encaixar uma superfície plana à PU, previsão de direção para extrapolar a partir de dados vizinhos ou qualquer outro tipo adequado de previsão. Com o uso de interprevisão, cada PU é prevista com o uso de previsão de compensação de movimento a partir de dados de imagem em uma ou mais figurações de referência (antes ou depois da figuração atual em ordem de saída).
[0084] Uma PU pode incluir dados relacionados ao processo de previsão. Por exemplo, quando a PU é criptada com o uso de intraprevisão, a PU pode incluir dados que descrevem um modo de intraprevisão para a PU. Como outro exemplo, quando a PU é criptada com o uso de interprevisão, a PU pode incluir dados que definem um vetor de movimento para a PU. Os dados que definem o vetor de movimento para um PU podem descrever, por exemplo, um componente horizontal do vetor de movimento, um componente vertical do vetor de movimento, uma resolução para o vetor de movimento (por exemplo, precisão de um quarto de pixel ou precisão de um oitavo de pixel), uma figuração de referência para a qual o vetor de movimento aponta e/ou uma lista de figuração de referência (por exemplo, a Lista 0, a Lista 1 ou a Lista C) para o vetor de movimento.
[0085] Então, o dispositivo de criptação 104 pode realizar transformação e quantização. Por exemplo, em seguida à previsão, o mecanismo encriptador 106 pode calcular valores residuais que correspondem à PU. Os valores residuais podem compreender valores de diferença de pixel. Quaisquer dados residuais que possam restas após a previsão ser realizada são transformados com o uso de uma transformada em bloco, que pode ser com base em transformada discreta de cosseno, transformada discreta de seno, uma transformada de número inteiro, uma transformada em ondeleta ou outra função de transformada adequada. Em alguns casos, um ou mais transformadas em bloco (por exemplo, tamanhos 32 x 32, 16 x 16, 8 x 8, 4 x 4 ou similares) pode ser aplicada aos dados residuais em cada CU. Em algumas modalidades, uma TU pode ser usada para os processos de transformada e quantização implantados pelo mecanismo encriptador 106. Uma determinada CU que tem uma ou mais PUs também pode incluir uma ou mais TUs. Conforme descrito em maiores detalhes abaixo, os valores residuais podem ser transformados em coeficientes de transformada com o uso das transformadas em bloco, e depois podem ser quantizados e submetidos à varredura com o uso de TUs para produzir coeficientes de transformada em série para codificação por entropia.
[0086] Em algumas modalidades, em seguida da codificação intrapreditiva ou interpreditiva com o uso de PUs de uma CU, o mecanismo encriptador 106 pode calcular dados residuais para as TUs da CU. As PUs podem compreender dados de pixel no domínio espacial (ou domínio de pixel). As TUs podem compreender coeficientes no domínio da transformada e seguir a aplicação de uma transformada em bloco. Conforme anteriormente observado, os dados residuais podem corresponder aos valores de diferença de pixel entre pixels da figuração não criptada e valores de previsão que correspondem às PUs. O mecanismo encriptador 106 pode formar as TUs incluindo os dados residuais para a CU, e, então, transformar as TUs para produzir coeficientes de transformada para a CU.
[0087] O mecanismo encriptador 106 pode realizar quantização dos coeficientes de transformada. A quantização fornece compressão adicional quantizando-se os coeficientes de transformada para reduzir a quantidade de dados usados para representar os coeficientes. Por exemplo, a quantização pode reduzir a profundidade de bit associada com alguns ou todos os coeficientes. Em um exemplo, um coeficiente com um valor de bit n pode ser arredondado para baixo para um valor de bit m durante a quantização, sendo que n é maior do que m.
[0088] Uma vez que a quantização é realizada, a corrente de bits codificada inclui coeficientes de transformada quantizados, informações de previsão (por exemplo, modos de previsão, vetores de movimento ou similares), informações de particionamento e quaisquer outros dados adequados, tal como outros dados de sintaxe. Então, os elementos diferentes da corrente de bits codificada podem ser criptados por entropia pelo mecanismo encriptador 106. Em alguns exemplos, o mecanismo encriptador 106 pode utilizar uma ordem de varredura predefinida para realizar a varredura dos coeficientes de transformada quantizados para produzir um vetor em série que pode ser criptado por entropia. Em alguns exemplos, o mecanismo encriptador 106 pode realizar uma varredura adaptativa. Depois de realizar a varredura, os coeficientes de transformada quantizados para formar um vetor unidimensional, o mecanismo encriptador 106 pode criptar por entropia o vetor unidimensional, por exemplo, o mecanismo encriptador 106 pode usar codificação de comprimento variável adaptativa ao contexto, codificação aritmética binária adaptativa ao contexto, codificação aritmética binária adaptativa ao contexto com base em sintaxe, codificação por entropia de particionamento de intervalo de probabilidade ou outra técnica de criptação adequada.
[0089] Conforme descrito anteriormente, uma corrente de bits HEVC inclui um grupo de unidades de NAL. Uma sequência de bits que forma a corrente de bits de vídeo codificada está presente em unidades de NAL de VCL. As unidades de NAL não VCL podem conter conjuntos de parâmetros com informações de alto nível relacionadas à corrente de bits de vídeo criptada, adicionalmente às outras informações. Por exemplo, um conjunto de parâmetros pode incluir um conjunto de parâmetros de vídeo (VPS), uma sequência conjunto de parâmetros (SPS) e um conjunto de parâmetros de figuração (PPS). O objetivo dos conjuntos de parâmetros é eficiência de taxa de bits, resiliência a erro, e fornecer interfaces de camada de sistemas. Cada fatia faz referência a um único PPS, SPS, e VPS ativo para acessar informações que o dispositivo de decodificação 112 pode usar para decodificar a fatia. Um identificador (ID) pode ser codificado para cada conjunto de parâmetros, o que inclui um ID de VPS, um ID de SPS e uma ID de PPS. Um SPS inclui um ID de SPS e um ID de VPS. Um PPS inclui um ID de PPS e um ID de SPS. Cada cabeçalho de fatia inclui um ID de PPS. Com o uso dos IDs, conjuntos de parâmetros ativos podem ser identificados para uma determinada fatia.
[0090] Um PPS inclui informações que se aplicam a todas as fatias em uma determinada figuração. Devido a esse fato, todas as fatias em uma figuração se referem ao mesmo PPS. As fatias em diferentes figurações podem também se referir ao mesmo PPS. Um SPS inclui informações que se aplicam a todas as figurações em uma mesma sequência ou corrente de bits de vídeo codificada. Uma sequência de vídeo codificada é uma série de unidades de acesso que inicia com uma figuração de ponto de acesso aleatório (por exemplo, uma figuração de atualização de decodificação instantânea (IDR) ou figuração de acesso à ligação rompida (BLA), ou outra figuração de ponto de acesso aleatório adequada) e inclui todas as unidades de acesso até, mas sem incluir, a próxima figuração de ponto de acesso aleatório (ou o final da corrente de bits). As informações em um SPS não mudam tipicamente de figuração para figuração dentro de uma sequência de vídeo codificada. Todas as figurações em uma sequência de vídeo codificada usam o mesmo SPS. O VPS inclui informações que se aplicam a todas as camadas dentro de uma sequência ou corrente de bits de vídeo codificada. O VPS inclui uma estrutura de sintaxe com elementos de sintaxe que se aplicam às sequências de vídeo codificadas inteiras. Em algumas modalidades, p VPS, SPS, ou PPS podem ser transmitidos em faixa com a corrente de bits criptada. Em algumas modalidades, o VPS, SPS ou PPS pode ser transmitido fora da faixa em uma transmissão separada das unidades de NAL que contêm dados de vídeo codificados.
[0091] A saída 110 do dispositivo de criptação 104 pode enviar as unidades de NAL que constituem os dados de vídeo criptados pelo enlace de comunicações 120 para o dispositivo de decodificação 112 do dispositivo de recebimento. A entrada 114 do dispositivo de decodificação 112 pode receber as unidades de NAL. O enlace de comunicação 120 pode incluir um sinal transmitido com o uso de uma rede sem fio, uma rede com fio, ou uma combinação de uma rede com e sem fio. Uma rede sem fio pode incluir qualquer interface sem fio ou combinação de interfaces sem fio e pode incluir qualquer rede sem fio adequada (por exemplo, a Internet ou outra rede de área ampla, uma rede com base em pacote, WiFi™, radiofrequência (RF), UWB, WiFi Direta, celular, Evolução em Longo Prazo (LTE), WiMax TM ou similares). Uma rede com fio pode incluir qualquer interface com fio (por exemplo, fibra, ethernet, ethernet via rede elétrica, ethernet por cabo coaxial, linha de sinal digital (DSL) ou similares). As redes de fio e/ou sem fio podem ser implantadas com o uso de vários equipamentos, tais como estações de base, roteadores, pontos de acesso, pontes, portas de comunicação, comutadores ou similares. Os dados de vídeo criptados podem ser modulados de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio, e transmitidos para o dispositivo de recebimento.
[0092] Em alguns exemplos, o dispositivo de criptação 104 pode armazenar dados de vídeo criptados no armazenamento 108. A saída 110 pode recuperar os dados de vídeo criptados do mecanismo encriptador 106 ou a partir do armazenamento 108. O armazenamento 108 pode incluir qualquer uma dentre uma variedade de mídias de armazenamento de dados distribuídos ou acessados localmente. Por exemplo, o armazenamento 108 pode incluir um disco rígido, um disco de armazenamento, memória rápida, memória volátil ou não volátil ou qualquer outra mídia de armazenamento de digital adequada para armazenar dados de vídeo criptados.
[0093] A entrada 114 recebe os dados de vídeo criptados e pode fornecer os dados de vídeo para o mecanismo de decodificador 116 ou para o armazenamento 118 para uso posterior pelo mecanismo decodificador 116. O mecanismo decodificador 116 pode decodificar os dados de vídeo criptados por decodificação por entropia (por exemplo, com o uso de um decodificador por entropia) e extrais os elementos da sequência de vídeo codificada constituindo-se os dados de vídeo criptados. Então, o mecanismo decodificador 116 pode reescalar e realizar uma transformada inversa nos dados de vídeo criptados. Então, os resíduos são passados para um estágio de previsão do mecanismo decodificador 116. Então, o mecanismo decodificador 116 prevê um bloco de pixels (por exemplo, um PLT). Em alguns exemplos, a previsão é adicionada à saída da transformada inversa.
[0094] O dispositivo de decodificação 112 pode emitir o vídeo decodificado para um dispositivo de destino de vídeo 122, que pode incluir um visor ou outro dispositivo de saída para exibir os dados de vídeo decodificados para um consumidor do conteúdo. Em alguns aspectos, o dispositivo de destino de vídeo 122 pode ser parte do dispositivo de recebimento que inclui o dispositivo de decodificação 112. Em alguns aspectos, o dispositivo de destino de vídeo 122 pode ser parte de um dispositivo separado diferente do dispositivo de recebimento.
[0095] Em algumas modalidades, o dispositivo de criptação de vídeo 104 e/ou o dispositivo de decodificação 112 podem ser integrados com um dispositivo de criptação de áudio e dispositivo de decodificação de áudio, respectivamente. O dispositivo de criptação de vídeo 104 e/ou o dispositivo de decodificação 112 podem também incluir outros hardwares ou softwares que são necessários para implantar as técnicas de codificação descritas acima, tal como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de portas programáveis em campo (FPGAs), lógica discreta, software, hardware, firmware ou qualquer combinações dos mesmos. O dispositivo de criptação de vídeo 104 e o dispositivo de decodificação 112 podem ser integrados como parte de um encriptador/decodificador combinado (codec) em um respectivo dispositivo. Um exemplo de detalhes específicos do dispositivo de criptação 104 é descrito com referência à Figura 16. Um exemplo de detalhes específicos do dispositivo de decodificação 112 é descrito abaixo com referência à Figura 17.
[0096] Conforme observado acima, extensões para o padrão HEVC incluem a extensão de Codificação de Vídeo de Multivistas, chamada de MV-HEVC, e a extensão de Codificação de Vídeo Escalonável, chamada de SHVC. As extensões MV-HEVC e SHVC compartilham o conceito de codificação em camadas, sendo que diferentes camadas são incluídas na corrente de bits de vídeo criptada. Cada camada em uma sequência de vídeo codificada é atendida por um identificador de camada único (ID). Um ID de camada pode estar presente em um cabeçalho de uma unidade de NAL para identificar uma camada com a qual a unidade de NAL é associada. Em MV-HEVC, diferentes camadas geralmente representam diferentes vistas da mesma cena na corrente de bits de vídeo. Em SHVC, diferentes camadas escalonáveis são fornecidas que representam a corrente de bits de vídeo em diferentes resoluções espaciais (ou resolução de figuração) ou em fidelidades de reconstrução diferentes. As camadas escalonáveis podem incluir uma camada de base (com ID de camada = 0) e uma ou mais camadas de aprimoramento (com camada IDs = 1, 2,... n). A camada de base pode se conformar ao perfil da primeira versão HEVC e representa a camada mais inferior disponível em uma corrente de bits. As camadas de aprimoramento aumentaram a resolução espacial, resolução temporal ou taxa de quadro e/ou fidelidade de reconstrução (ou qualidade) em comparação à camada de base. As camadas de aprimoramento são organizadas de modo hierárquico e podem (ou não) depender das camadas inferiores. Em alguns exemplos, as diferentes camadas podem ser codificadas com o uso de um único codec padrão (por exemplo, todas as camadas são criptadas com o uso HEVC, SHVC, ou outro padrão de codificação). Em alguns exemplos, diferentes camadas podem ser codificadas com o uso de um codec de múltiplos padrões. Por exemplo, uma camada de base pode ser codificada com o uso de AVC, enquanto uma ou mais camadas de aprimoramento podem ser codificadas com o uso das extensões SHVC e/ou MV-HEVC para o padrão HEVC.
[0097] Em geral, uma camada inclui um conjunto de unidades de NAL de VCL e um conjunto de unidades de NAL de não VCL correspondente. Cada uma das unidades de NAL é atribuída um valor de ID de camada particular. As camadas podem ser hierárquicas no sentido de que uma camada pode depender de uma camada inferior. Um conjunto de camadas se refere a um conjunto de camadas representado dentro de uma corrente de bits que é autocontida, o que significa que as camadas dentro de um conjunto de camadas podem depender de outras camadas no conjunto de camadas no processo de decodificação, mas não dependem de quaisquer outras camadas para a decodificação. Consequentemente, as camadas em um conjunto de camadas podem formar uma corrente de bits independente que pode representar conteúdo de vídeo. O conjunto de camadas em um conjunto de camadas pode ser obtido a partir de outra corrente de bits pela operação de um processo de extração de subcorrente de bits. Um conjunto de camadas pode corresponder ao conjunto de camadas que deve ser decodificado quando um decodificador quer operar de acordo com certos parâmetros.
[0098] Na criptação de uma sequência de vídeo, é benéfico ter o controle sobre o estado de armazenamento temporário do decodificador para muitas aplicações. Isso se aplica para comunicações e/ou difusão. O encriptador deve fornecer os dados transmitidos de modo que os mesmos estejam disponíveis no decodificador em um tempo de decodificação da figuração correspondente. Adicionalmente, o encriptador deve garantir que a corrente de bits não estoure o armazenamento temporário da corrente de bits de entrada do decodificador assim como o armazenamento temporário da figuração em que as figurações decodificadas são armazenadas.
[0099] Um decodificador hipotético de referência (HRD) é fornecido para testar o controle sobre uma sequência de vídeo criptada. O HRD pode ser geralmente operável com sequências de vídeo criptadas de acordo com um padrão de compressão de vídeo. Os parâmetros para configuração e operação do decodificador hipotético de referência podem ser fornecidos em um conjunto de parâmetros de vídeo (VPS) e/ou em um conjunto de parâmetros de sequência (SPS). Os parâmetros de HRD podem ser fornecidos para múltiplos pontos de operação para a corrente de bits, conforme detalhado abaixo. Isso fornece informações sobre as características da corrente de bits depois de processar adicionalmente (por exemplo, extração de subcorrente de bits). O HRD pode ser aplicado em encriptadores para controlar a corrente de bits produzida e pode também ser aplicado para verificar a conformidade de uma determinada corrente de bits às exigências de especificação de padrões. Adicionalmente, a conformidade da implantação do decodificador da matéria pode ser testada contra às exigências de desempenho e temporização definidas pelo HRD. Um encriptador pode omitir seletivamente alguma ou toda a sinalização de parâmetros de HRD para uma corrente de bits, ou para algumas ou todas as camadas de uma corrente de bits. Isso pode fornecer algumas restrições relacionadas à verificação da conformidade da corrente de bits a um padrão de compressão de vídeo.
[0100] Os conjuntos de parâmetros de HRD são fornecidos (por exemplo, em uma sequência ou conjunto de parâmetros de vídeo, ou em outras mensagens) para permitir funcionalidade em múltiplas camadas, sendo que cada conjunto de parâmetros corresponde a um ponto de operação. Um ponto de operação define os parâmetros usados para extração de subcorrente de bits, e inclui uma lista de camadas alvo (um conjunto de camadas para aquele ponto de operação) e uma camada temporal mais alta alvo. Múltiplos pontos de operação podem ser aplicáveis a uma determinada corrente de bits. Um ponto de operação pode tanto incluir todas as camadas em um conjunto de camadas quanto pode ser uma corrente de bits formada como um subconjunto do conjunto de camadas. Por exemplo, um ponto de operação de uma corrente de bits pode ser associado a um conjunto de identificadores de camada e um identificador temporal. Uma lista de identificadores de chamada pode ser usada para identificar as camadas a serem incluídas no ponto de operação. A lista de identificadores de chamada pode ser incluída em um conjunto de parâmetros (por exemplo, um VPS). A lista de identificadores de chamada pode incluir uma lista de valores de identificador de camada (ID) (por exemplo, indicados por um elemento de sintaxe nuh_layer_id). Em alguns casos, os valores de ID de camada podem incluir números inteiros não negativos, e cada camada pode ser associada a um único valor de ID de camada de modo que cada valor de ID de camada identifique uma camada particular. Um ID temporal mais alto (por exemplo, identificado por uma variável TemporalId) pode ser usado para definir um subconjunto temporal. Em algumas modalidades, a lista de identificadores de chamada e um ID temporal mais alto alvo pode ser usada como entradas para extrair um ponto de operação a partir de uma corrente de bits. Por exemplo, quando uma unidade de NAL tem um identificador de camada que está incluído em um conjunto de identificadores de camada associado a um ponto de operação, e o identificador temporal da unidade de NAL é menor do que ou igual ao identificador temporal do ponto de operação, a unidade de NAL é associada ao ponto de operação. A camada de saída alvo é uma camada que deve ser emitida, e um conjunto de camadas de saída é um conjunto de camadas que é associado a um conjunto de camadas de saída alvo. Por exemplo, um conjunto de camadas de saída é um conjunto de camadas que inclui as camadas de um conjunto de camadas especificado, onde uma ou mais camadas no conjunto de camadas são indicadas para serem camadas de saída. Um ponto de operação de saída corresponde a um conjunto de camadas de saída particular. Por exemplo, um ponto de operação de saída pode incluir uma corrente de bits que é criada a partir de uma corrente de bits de entrada através da operação de um processo de extração de subcorrente de bits com a corrente de bits de entrada, um identificador temporal mais alto alvo (TemporalId), e uma lista de identificadores de camada alvo, e que é associada a um conjunto de camadas de saída.
[0101] Conforme descrito anteriormente, os conjuntos de parâmetros são dotados de uma corrente de bits de vídeo criptada (por exemplo, em uma ou mais unidades de NAL de não VCL). Os conjuntos de parâmetros contêm informações de sintaxe de alto nível que definem vários parâmetros da corrente de bits de vídeo criptada. Um exemplo de um conjunto de parâmetros inclui um conjunto de parâmetros de vídeo (VPS). O VPS pode ter duas partes, o que inclui uma parte de base (ou VPS de base) e uma parte de extensão (ou extensão de VPS). O VPS de base é definido na primeira edição do padrão HEVC, e a extensão de VPS é definida em uma edição posterior do padrão HEVC. O VPS de base pode conter informações relacionadas à camada de base HEVC (ou camada compatível). O VPS de base pode conter também informações de escalabilidade temporal, o que inclui um número máximo de camadas temporais. Um ou mais conjuntos de camadas podem ser definidos no VPS de base. Por exemplo, o VPS de base pode definir um conjunto de camadas 0 que corresponde a um conjunto de camadas que inclui a camada de base. A extensão de VPS pode conter informações relacionadas a uma ou mais camadas adicionais além da camada de base. Por exemplo, um ou mais conjuntos de camadas adicionais podem ser definidos na extensão VPS, os quais não são definidos na parte de base.
[0102] A Figura 2 ilustra um exemplo de conjuntos de camadas definidos em uma parte de base (VPS de base 202) e uma parte de extensão (extensão de VPS 204) de um conjunto de parâmetros de vídeo. O VPS de base 202 define o conjunto de camadas 0, conjunto de camadas 1, conjunto de camadas 2 e o conjunto de camadas 3. O conjunto de camadas 0 inclui a camada 0. O conjunto de camadas 1 inclui camada 0 e camada 1. O conjunto de camadas 2 inclui camada 0, camada 1 e camada 2. O conjunto de camadas 3 inclui camada 0, camada 1, camada 2 e camada 3. A extensão de VPS 204 define os conjuntos de camadas adicionais que não são definidos no VPS de base 202. Os conjuntos de camadas adicionais incluem o conjunto de camadas 4 e o conjunto de camadas 5. O conjunto de camadas adicional 4 inclui a camada 4, e o conjunto de camadas adicional 5 inclui a camada 5 e a camada 6. Em alguns exemplos, a camada 0 pode ser uma camada de base, e as camadas 1, 2, 3, 4, 5 e 6 podem ser camadas de aprimoramento. Por exemplo, a camada 0 pode ser uma camada de base com um identificador de camada (ID) igual a 0. A camada de base pode também ser denominada como uma camada compatível. A camada de base se conforma a um perfil da primeira versão HEVC, e representa a camada disponível mais inferior em uma corrente de bits. As camadas 1, 2, 3, 4, 5 e 6 podem incluir camadas de aprimoramento que tem os IDs de camada correspondentes. Por exemplo, a camada 1 tem uma camada ID igual a 1, a camada 2 tem uma camada ID igual a 2, a camada 3 tem uma camada ID igual a 3, a camada 4 tem uma camada ID igual a 4, a camada 5 tem uma camada ID igual a 5 e a camada 6 tem uma camada ID igual a 6. As camadas de aprimoramento aumentaram a resolução espacial, resolução temporal ou taxa de quadro, e/ou fidelidade de reconstrução (ou qualidade) em comparação à camada de base. Em alguns exemplos, a camada 0 pode ter uma taxa de quadro de 7,5 Hz e uma taxa de bits de 64 quilobits por segundo, a camada 1 pode ter uma taxa de quadro de 15 Hz e uma taxa de bits de 128 quilobits por segundo, a camada 2 pode ter uma taxa de quadro de 15 Hz e uma taxa de bits de 256 quilobits por segundo, a camada 3 pode ter uma taxa de quadro de 30 Hz e uma taxa de bits de 512 quilobits por segundo, a camada 4 pode ter uma taxa de quadro de 30 Hz e uma taxa de bits de 1 megabyte por segundo, a camada 5 pode ter uma taxa de quadro de 60 Hz e uma taxa de bits de 1,5 megabytes por segundo, e a camada 6 pode ter uma taxa de quadro de 60 Hz e uma taxa de bits de 2 megabytes por segundo. Em alguns exemplos, as taxas de quadro podem também ser chamadas de taxas de figuração e, portanto, as camadas diferentes 0, 1, 2, 3, 4, 5 e 6 podem também ter diferentes taxas de figuração. Um indivíduo versado na técnica irá observar que esses números são fornecidos apenas como exemplo, e que as camadas podem ter outras taxas de quadro e taxas de bits de acordo com a implantação particular.
[0103] As informações de sinalização são fornecidas no VPS que define características de um ou mais conjuntos de camadas definidas no VPS de base 202. Em alguns exemplos, as informações de sinalização podem definir informações de taxa para o um ou mais conjuntos de camadas. As informações de taxa incluem, por exemplo, informações de taxa de bits, informações de taxa de figuração ou outras informações adequadas de taxa que se aplicam às camadas em um determinado conjunto de camadas. Em um exemplo, as informações de taxa de bits para um determinado conjunto de camadas pode incluir uma taxa de bits média ou uma taxa de figuração média das camadas do determinado conjunto de camadas. Em outro exemplo, as informações de taxa de bits podem incluir uma taxa de bits máxima das camadas de um determinado conjunto de camadas. Outros exemplos de informações de taxa são fornecidos abaixo. Em alguns exemplos, as informações de sinalização podem incluir informações de saída alvo que indicam se uma camada em um conjunto de camadas é uma camada de saída alvo de um conjunto de camadas de saída. Por exemplo, as informações de saída alvo podem incluir um elemento de sintaxe output_layer_flag[i][j]. Conforme usado no presente documento, as variáveis [i] e [j] se referem à camada j- ésima do i-ésimo conjunto de camadas. As informações de taxa e as informações de saída alvo devem ser sinalizadas para todos os conjuntos de camadas (definidos nas partes de base e extensão do VPS), o que inclui os conjuntos de camadas e os conjuntos de camadas adicionais, visto que os clientes podem escolher solicitar ou consumir um conjunto de camadas adicional com base em tais informações. Contudo, com o esquema de sinalização atual definido no padrão HEVC, as informações de sinalização são apenas sinalizadas para os conjuntos de camadas que são definidos na parte de base do VPS.
[0104] O número de conjuntos de camadas que são sinalizados no VPS de base (por exemplo, VPS de base 202) é indicado por um elemento de sintaxe do VPS. Por exemplo, a Figura 3 ilustra um exemplo de uma estrutura de sintaxe 300 de uma extensão de VPS. A entrada 302 inclui o elemento de sintaxe 306 rotulado vps_num_layer_sets_minus1, que indica o número de conjuntos de camadas que são sinalizadas no VPS de base. O elemento de sintaxe 304, rotulado output_layer_flag[i][j], indica se uma camada em um conjunto de camadas é uma camada de saída alvo de um conjunto de camadas de saída. Devido ao dato do elemento de sintaxe vps_num_layer_sets_minusl 306 indicar o número de conjuntos de camadas sinalizados no VPS de base (e não os conjuntos de camadas adicionais sinalizadas na extensão de VPS), o elemento de sintaxe output_layer_flag[i][j] 304 é apenas sinalizado para aqueles conjuntos de camadas definidos no VPS de base.
[0105] O número total de conjuntos de camadas que são sinalizados no VPS de base e extensão de VPS (o que inclui os conjuntos de camadas adicionais sinalizados na extensão de VPS, se houver) é indicado por uma variável NumLayerSets que é derivada com base em elementos de sintaxe do VPS. As modalidades descritas no presente documento incluem atualizar a sinalização de informações no VPS relacionadas aos conjuntos de camadas de modo que as informações de sinalização (por exemplo, informações de taxa e informações de saída alvo) sejam sinalizadas para todos os conjuntos de camadas, o que inclui os conjuntos de camadas adicionais definidos na extensão de VPS 204. Por exemplo, conforme ilustrado na Figura 4, o elemento de sintaxe vps_num_layer_sets_minus1 306 pode ser removido a partir da extensão de VPS e uma variável NumLayerSets 406 pode ser adicionada à entrada 302 para criar uma nova estrutura de sintaxe 400. Devido ao fato de a variável NumLayerSets 406 indicar o número total de conjuntos de camadas que são sinalizadas no VPS de base e na extensão de VPS, o elemento de sintaxe output__layer_flag[i][j] 304 é sinalizado para os conjuntos de camadas definidos no VPS de base e os conjuntos de camadas adicionais definidos na extensão de VPS.
[0106] A Figura 5 ilustra outro exemplo de uma estrutura de sintaxe 500 de um VPS. A estrutura de sintaxe 500 é parte de uma porção das informações de usabilidade de vídeo (VUI) da extensão de VPS, que pode ser chamada no presente documento de VUI de VPS. A estrutura de sintaxe das VUI de VPS contém informações que são úteis para preparar o vídeo decodificado para emissão e exibição. As VUI de VPS podem incluir informações relacionadas ao vídeo criptado, tal como as informações de taxa, razão de aspecto de amostra, o espaço de cor e representação originais do vídeo criptado, informações de temporização de figuração ou outras informações. A inclusão de diferentes partes na estrutura de sintaxe das VUI é opcional e pode ser decidida conforme exigido por uma implantação ou aplicação particular. Em alguns exemplos, os valores padrão podem ser especificados para alguns ou todos os parâmetros de VUI para os casos em que os parâmetros de VUI correspondentes não foram fornecidos.
[0107] No exemplo da Figura 5, a estrutura de sintaxe 500 das VUI de VPS inclui um elemento de sintaxe bit_rate_present_flag[i][j] 504 que inclui um sinalizador que indica se as informações de taxa de bits estão disponíveis para um ou mais conjuntos de camadas sinalizados no VPS. Por exemplo, um valor de 0 ou 1 para o sinalizador pode indicar que informações de taxa de bits estão disponíveis para o um ou mais conjuntos de camadas. A estrutura de sintaxe 500 das VUI de VPS inclui adicionalmente o elemento de sintaxe pic_rate_present_flag[i][j] 506 que inclui um sinalizador que indica se informações de taxa de figuração estão disponíveis para um ou mais conjuntos de camadas sinalizados no VPS. Por exemplo, um valor de 0 ou 1 para o sinalizador pode indicar que as informações de taxa de figuração estão disponíveis para o um ou mais conjuntos de camadas. A estrutura de sintaxe 500 das VUI de VPS incluem também um elemento de sintaxe avg_bit_rate[i][j] 508 que indica uma taxa de bits média para cada conjunto de camadas do um ou mais conjuntos de camadas sinalizados no VPS. A estrutura de sintaxe 500 das VUI de VPS inclui adicionalmente um elemento de sintaxe de taxa de bits máxima 510 que indica uma taxa de bits máxima para cada conjunto de camadas do um ou mais conjuntos de camadas sinalizados no VPS. A estrutura de sintaxe 500 das VUI de VPS incluem também um elemento de sintaxe constant_pic_rate_idc[i][j] 512 que indica se um conjunto de camadas do um ou mais conjuntos de camadas sinalizados no VPS tem uma taxa de figuração constante. A estrutura de sintaxe 500 das VUI de VPS inclui adicionalmente um elemento de sintaxe avg_pic_rate[i][j] 514 que indica uma taxa de figuração média para cada conjunto de camadas do um ou mais conjuntos de camadas sinalizados no VPS. Um indivíduo de habilidade comum na técnica observará que os elementos de sintaxe 504 a 514 são exemplos, e que maios ou menos conjuntos de informações de sinalização podem estar presentes na estrutura de sintaxe 500 das VUI de VPS.
[0108] As informações fornecidas nos elementos de sintaxe 504 a 514 são sinalizadas para aqueles conjuntos de camadas que são definidos na extensão de VPS, que é fornecida na entrada 502 da estrutura de sintaxe 500. A entrada 502 inclui um elemento de sintaxe que indica o número de conjuntos de camadas que são sinalizados. A entrada 502 mostrada na Figura 5 inclui o elemento de sintaxe vps_num_layer_sets_minusl 516 que indica o número de conjuntos de camadas sinalizados no VPS de base (e não os conjuntos de camadas adicionais sinalizados na extensão de VPS). Consequentemente, as informações de taxa elementos de sintaxe 504 a 514 são apenas sinalizadas para aqueles conjuntos de camadas definidos no VPS de base. A Figura 6 ilustra um exemplo de uma estrutura de sintaxe 600 das VUI de VPS com informações atualizadas de sinalização que se relacionam a todos os conjuntos de camadas, o que inclui os conjuntos de camadas adicionais definidos na extensão de VPS. No exemplo da Figura 6, o elemento de sintaxe vps_num_layer_sets_minus1 516 é removido a partir das VUI de VPS e uma variável NumLayerSets 616 é adicionada à entrada 502 para criar a nova estrutura de sintaxe 600. Devido ao fato de a variável NumLayerSets 616 indicar o número total de conjuntos de camadas que são sinalizados no VPS de base e na extensão de VPS, as informações de taxa sinalizadas nos elementos de sintaxe 504 a 514 são sinalizadas para os conjuntos de camadas definidos no VPS de base e nos conjuntos de camadas adicionais definidos na extensão de VPS.
[0109] A Figura 7 ilustra uma modalidade de um processo 700 de criptação de dados de vídeo. O processo 700 é implantado para sinalizar informações para conjuntos de camadas (o que inclui conjuntos de camadas adicionais) definidos em um conjunto de parâmetros, tal como um conjunto de parâmetros de vídeo. Em alguns aspectos, o processo 700 pode ser realizado por um dispositivo de computação ou um aparelho, tal como o dispositivo de criptação 104 mostrado na Figura 1 ou na Figura 16. Por exemplo, o dispositivo ou aparelho de computação podem incluir um encriptador, ou um processador, microprocessador, microcomputador, ou outro componente de um encriptador que é configurado para realizar as etapas do processo 700.
[0110] O processo 700 é ilustrado como um diagrama de fluxo lógico, sendo que a operação que representa uma sequência de operações que podem ser implantadas em hardware, instruções de computador ou em uma combinação dos mesmos. No contexto das instruções de computador, as operações representam instruções executáveis por computador armazenadas em uma ou mais mídias de armazenamento legíveis por computador que, quando executadas por um ou mais processadores realizam as operações declaradas. Em geral, instruções executáveis por computador incluem rotinas, programas, objetos, componentes, estruturas de dados e similares que executam funções particulares ou implantam tipos de dados particulares. A ordem em que as operações são descritas não se destina a se interpretada como uma limitação, e qualquer número das operações descritas pode ser combinado em qualquer ordem e/ou em paralelo à implantação dos processos.
[0111] Adicionalmente, o processo 700 pode ser realizado sob o controle de um ou mais sistemas de computador configurados com instruções executáveis e pode ser implantado como código (por exemplo, instruções executáveis, um ou mais programas de computador, ou uma ou mais aplicações) executado coletivamente em uma ou mais processadores, por hardware, ou combinações dos mesmos. Conforme observado acima, o código pode ser armazenado em um meio de armazenamento legível por computador, por exemplo, na forma de um programa de computador que compreende uma pluralidade de instruções executáveis por um ou mais processadores. O meio de armazenamento legível por computador ou legível por máquina pode ser não transitório.
[0112] Em 702, o processo 700 de criptação de dados de vídeo inclui gerar uma corrente de bits de vídeo criptada que compreende um ou mais conjuntos de camadas e um ou mais conjuntos de camadas adicionais. Cada conjunto de camadas e um conjunto de camadas adicional incluem uma ou mais camadas, conforme descrito anteriormente. A corrente de bits de vídeo criptada inclui um conjunto de parâmetros de vídeo que define parâmetros da corrente de bits de vídeo criptada. O um ou mais conjuntos de camadas são definidos em uma parte de base do conjunto de parâmetros de vídeo, e o um ou mais conjuntos de camadas adicionais são definidos em uma parte de extensão do conjunto de parâmetros de vídeo. A corrente de bits de vídeo criptada pode ser criptada com o uso de uma técnica de codificação HEVC, ou outra técnica de codificação adequada. Em um exemplo, o um ou mais conjuntos de camadas definidos na parte de base do conjunto de parâmetros de vídeo (VPS) incluem o conjunto de camadas 0, o conjunto de camadas 1, o conjunto de camadas 2 e o conjunto de camadas 3 definidos no VPS de base 202 mostrados na Figura 2, e o um ou mais conjuntos de camadas adicionais incluem o conjunto de camadas 4 e o conjunto de camadas 5 definidos na extensão de VPS 204 mostrada na Figura 2. Um indivíduo de habilidade comum na técnica observará que o um ou mais conjuntos de camadas e/ou o um ou mais conjuntos de camadas adicionais podem incluir outros conjuntos de camadas diferentes daqueles mostrados nos exemplos da Figura 2.
[0113] Em 704, o processo 700 inclui fornecer, no conjunto de parâmetros de vídeo, um ou mais elementos de sintaxe para informações de sinalização relacionadas ao um ou mais conjuntos de camadas e ao um ou mais conjuntos de camadas adicionais. As informações incluem informações de taxa para o um ou mais conjuntos de camadas definidos na parte de base do conjunto de parâmetros de vídeo e para o um ou mais conjuntos de camadas adicionais definidos na parte de extensão do conjunto de parâmetros de vídeo. Consequentemente, as informações de taxa são sinalizadas tanto para os conjuntos de camadas definidos no VPS de base quanto para os conjuntos de camadas adicionais definidos na extensão de VPS. Por exemplo, as informações de taxa podem ser sinalizadas para o um ou mais conjuntos de camadas definidos na parte de base do conjunto de parâmetros de vídeo e para o um ou mais conjuntos de camadas adicionais inserindo-se a variável NumLayerSets 616 na entrada 502 das VUI de VPS. Em algumas modalidades, diferentes informações de taxa são sinalizadas para cada conjunto de camadas diferente do um ou mais conjuntos de camadas e do um ou mais conjuntos de camadas adicionais. Por exemplo, um primeiro conjunto de informações de taxa pode ser sinalizado para o conjunto de camadas 0 definido no VPS de base 202, e um segundo conjunto de informações de taxa pode ser sinalizado para o conjunto de camadas 4 definido na extensão de VPS 204.
[0114] Em algumas modalidades, as informações de taxa incluem informações de taxa de bits. Em algumas modalidades, as informações de taxa incluem informações de taxa de figuração. Em alguns exemplos, as informações de taxa podem ser incluídas em qualquer um dos elementos de sintaxe 504 a 514 mostrados na Figura 5 e na Figura 6. Por exemplo, o um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo incluem um sinalizador que indica se informações de taxa de bits estão disponíveis para um conjunto de camadas adicional. O sinalizador pode ser estabelecido em um valor de 0 ou 1 para indicar que informações de taxa de bits estão disponíveis para o conjunto de camadas adicional. O um ou mais elementos de sintaxe pode incluir também um sinalizador que indica se informações de taxa de bits estão disponíveis para um conjunto de camadas definido na parte de base do VPS. Um exemplo de tal sinalizador é o elemento de sintaxe bit_rate_present_flag[i][j] 504 mostrado na Figura 5 e na Figura 6.
[0115] Em outro exemplo, o um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo incluem um sinalizador que indica se informações de taxa de figuração estão disponíveis para um conjunto de camadas adicional. O sinalizador pode ser estabelecido em um valor de 0 ou 1 para indicar que informações de taxa de figuração estão disponíveis para o conjunto de camadas adicional. O um ou mais elementos de sintaxe pode incluir também um sinalizador que indica se informações de taxa de figuração estão disponíveis para um conjunto de camadas definido na parte de base do VPS. Um exemplo de tal sinalizador é o elemento de sintaxe pic_rate_present_flag[i][j] 506 mostrado na Figura 5 e na Figura 6.
[0116] Em outro exemplo, o um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo incluem um elemento de sintaxe que indicam uma taxa de bits média para um conjunto de camadas adicional. O um ou mais elementos de sintaxe pode incluir também um elemento de sintaxe similar que indica uma taxa de bits média para um conjunto de camadas definido na parte de base do VPS. Um exemplo de tal elemento de sintaxe é o elemento de sintaxe avg_bit_rate[i][j] 508 mostrado na Figura 5 e na Figura 6.
[0117] Em outro exemplo, o um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo incluem um elemento de sintaxe que indica uma taxa de bits máxima para um conjunto de camadas adicional. O um ou mais elementos de sintaxe pode incluir também um elemento de sintaxe similar que indica uma taxa de bits máxima para um conjunto de camadas definido na parte de base do VPS. Um exemplo de tal elemento de sintaxe é o elemento de sintaxe max_bit_rate[i][j] 510 mostrado na Figura 5 e na Figura 6.
[0118] Em outro exemplo, os um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo incluem um elemento de sintaxe que indica se um conjunto de camadas adicional tem uma taxa de figuração constante. O um ou mais elementos de sintaxe podem incluir também um elemento de sintaxe similar que indica se um conjunto de camadas definido na parte de base do VPS tem uma taxa de figuração constante. Um exemplo de tal elemento de sintaxe é o elemento de sintaxe constant_pic_rate_idc[i][j] 512 mostrado na Figura 5 e na Figura 6.
[0119] Em outro exemplo, o um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo incluem um elemento de sintaxe que indicam uma taxa de figuração média para um conjunto de camadas adicional. O um ou mais elementos de sintaxe pode incluir também um elemento de sintaxe similar que indica uma taxa de figuração média para um conjunto de camadas definido na parte de base do VPS. Um exemplo de tal elemento de sintaxe é o elemento de sintaxe avg_pic_rate[i][j] 514 mostrado na Figura 5 e na Figura 6.
[0120] Em algumas modalidades, o um ou mais elementos de sintaxe pode sinalizar informações de saída alvo tanto para os conjuntos de camadas definidos no VPS de base quanto para os conjuntos de camadas adicionais definidos na extensão de VPS. Por exemplo, o um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo incluem um sinalizador que indica se uma camada em um conjunto de camadas adicional é uma camada de saída alvo de um conjunto de camadas de saída. O sinalizador pode ser estabelecido em um valor de 0 ou 1 para indicar que a camada no conjunto de camadas adicional é uma camada de saída alvo de um conjunto de camadas de saída. O um ou mais elementos de sintaxe pode incluir também um sinalizador similar que indica se uma camada em um conjunto de camadas definido no VPS de base é uma camada de saída alvo de um conjunto de camadas de saída. Um exemplo de tal sinalizador é o elemento de sintaxe output_layer_flag[i][j] 304 mostrado na Figura 3 e na Figura 4.
[0121] A Figura 8 ilustra uma modalidade de um processo 800 de decodificação de dados de vídeo. O processo 800 é implantado para receber e decodificar informações de sinalização para conjuntos de camadas (inclui conjuntos de camadas adicionais) definido em um conjunto de parâmetros, tal como um conjunto de parâmetros de vídeo. Em alguns aspectos, o processo 800 pode ser realizado por um dispositivo de computação ou um aparelho, tal como o dispositivo de decodificação 112 mostrada na Figura 1 ou na Figura 17. Por exemplo, o dispositivo ou aparelho de computação pode incluir um decodificador, ou um processador, microprocessador, microcomputador ou outro componente de um decodificador que é configurado para realizar as etapas do processo 800.
[0122] O processo 800 é ilustrado como um diagrama de fluxo lógico, sendo que a operação do mesmo representa uma sequência de operações que podem ser implantadas em hardware, instruções de computador ou uma combinação dos mesmos, no contexto das instruções de computador, sendo que as operações representam instruções executáveis por computador armazenadas um uma ou mais mídias de armazenamento legíveis por computador que, quando executadas por um ou mais processadores, realizam as operações declaradas. Em geral, instruções executáveis por computador incluem rotinas, programas, objetos, componentes, estruturas de dados e similares que executam funções particulares ou implantam tipos de dados particulares. A ordem em que as operações são descritas não se destina a se interpretada como uma limitação, e qualquer número das operações descritas pode ser combinado em qualquer ordem e/ou em paralelo à implantação dos processos.
[0123] Adicionalmente, o processo 800 pode ser realizado sob o controle de um ou mais sistemas de computador configurados com instruções executáveis e pode ser implantado como código (por exemplo, instruções executáveis, um ou mais programas de computador, ou uma ou mais aplicações) executado coletivamente em uma ou mais processadores, por hardware, ou combinações dos mesmos. Conforme observado acima, o código pode ser armazenado em um meio de armazenamento legível por computador, por exemplo, na forma de um programa de computador que compreende uma pluralidade de instruções executáveis por um ou mais processadores. O meio de armazenamento legível por computador ou legível por máquina pode ser não transitório.
[0124] Em 802, o processo 800 de decodificar dados de vídeo inclui obter uma corrente de bits de vídeo criptada que compreende um ou mais conjuntos de camadas e um ou mais conjuntos de camadas adicionais. Cada conjunto de camadas e um conjunto de camadas adicional incluem uma ou mais camadas. A corrente de bits de vídeo criptada inclui um conjunto de parâmetros de vídeo que define parâmetros da corrente de bits de vídeo criptada. O um ou mais conjuntos de camadas são definidos em uma parte de base do conjunto de parâmetros de vídeo, e o um ou mais conjuntos de camadas adicionais são definidos em uma parte de extensão do conjunto de parâmetros de vídeo. A corrente de bits de vídeo criptada pode ser criptada com o uso de uma técnica de codificação HEVC, ou outra técnica de codificação adequada, em um exemplo, o um ou mais conjuntos de camadas definidos na parte de base do conjunto de parâmetros de vídeo (VPS) incluem o conjunto de camadas 0. O conjunto de camadas 1, o conjunto de camadas 2 e o conjunto de camadas 3 definidos no VPS de base 202 mostrados na Figura 2, e o um ou mais conjuntos de camadas adicionais incluem o conjunto de camadas 4 e o conjunto de camadas 5 definidos na extensão de VPS 204 mostrada na Figura 2.
[0125] Um indivíduo de habilidade comum na técnica observará que o um ou mais conjuntos de camadas e/ou o um ou mais conjuntos de camadas adicionais pode incluir outros conjuntos de camadas diferentes daqueles mostrados nos exemplos da Figura 2.
[0126] Em 804, o processo 800 inclui decodificar um ou mais elementos de sintaxe a partir do conjunto de parâmetros de vídeo. O um ou mais elementos de sintaxe incluem informações de taxa para o um ou mais conjuntos de camadas definidos na parte de base do conjunto de parâmetros de vídeo e para o um ou mais conjuntos de camadas adicionais definidos na parte de extensão do conjunto de parâmetros de vídeo. Em algumas modalidades, o um ou mais elementos de sintaxe incluem diferentes informações de taxa para cada conjunto de camadas diferente do um ou mais conjuntos de camadas e do um ou mais conjuntos de camadas adicionais. Por exemplo, um primeiro conjunto de informações de taxa pode ser sinalizado para o conjunto de camadas 0 definido no VPS de base 202, e um segundo conjunto de informações de taxa pode ser sinalizado para o conjunto de camadas 1 definido na extensão de VPS 204.
[0127] Em algumas modalidades, as informações de taxa incluem informações de taxa de bits. Em algumas modalidades, as informações de taxa incluem informações de taxa de figuração. Em alguns exemplos, as informações de taxa podem ser incluídas em qualquer um dos elementos de sintaxe 504 a 514 mostrados na Figura 5 e na Figura 6. Por exemplo, o um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo incluem um sinalizador que indica se informações de taxa de bits estão disponíveis para um conjunto de camadas adicional. O sinalizador pode ser estabelecido em um valor de 0 ou 1 para indicar que informações de taxa de bits estão disponíveis para o conjunto de camadas adicional. O um ou mais elementos de sintaxe pode incluir também um sinalizador que indica se informações de taxa de bits estão disponíveis para um conjunto de camadas definido na parte de base do VPS. Um exemplo de tal sinalizador é o elemento de sintaxe bit_ rate_present_flag[i][j] 504 mostrado na Figura 5 e na Figura 6.
[0128] Em outro exemplo, o um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo incluem um sinalizador que indica se informações de taxa de figuração estão disponíveis para um conjunto de camadas adicional. O sinalizador pode ser estabelecido em um valor de 0 ou 1 para indicar que informações de taxa de figuração estão disponíveis para o conjunto de camadas adicional. O um ou mais elementos de sintaxe pode incluir também um sinalizador que indica se informações de taxa de figuração estão disponíveis para um conjunto de camadas definido na parte de base do VPS. Um exemplo de tal sinalizador é o elemento de sintaxe pic_rate_present_flag[i][j] 506 mostrado na Figura 5 e na Figura 6.
[0129] Em outro exemplo, o um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo incluem um elemento de sintaxe que indica uma taxa de bits média para um conjunto de camadas adicional. O um ou mais elementos de sintaxe pode incluir também um elemento de sintaxe similar que indica uma taxa de bits média para um conjunto de camadas definido na parte de base do VPS. Um exemplo de tal elemento de sintaxe é o elemento de sintaxe avg_bit_rate[i][j] 508 mostrado na Figura 5 e na Figura 6.
[0130] Em outro exemplo, o um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo incluem um elemento de sintaxe que indica uma taxa de bits máxima para um conjunto de camadas adicional. O um ou mais elementos de sintaxe pode incluir também um elemento de sintaxe similar que indica uma taxa de bits máxima para um conjunto de camadas definido na parte de base do VPS. Um exemplo de tal elemento de sintaxe é o elemento de sintaxe max_bit_rate[i][j] 510 mostrado na Figura 5 e na Figura 6.
[0131] Em outro exemplo, o um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo incluem um elemento de sintaxe que indica se um conjunto de camadas adicional tem uma taxa de figuração constante. O um ou mais elementos de sintaxe podem incluir também um elemento de sintaxe similar que indica se um conjunto de camadas definido na parte de base do VPS tem uma taxa de figuração constante. Um exemplo de tal elemento de sintaxe é o elemento de sintaxe constant_pic_rate_idc[i][j] 512 mostrado na Figura 5 e na Figura 6.
[0132] Em outro exemplo, o um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo incluem um elemento de sintaxe que indicam uma taxa de figuração média para um conjunto de camadas adicional. O um ou mais elementos de sintaxe pode incluir também um elemento de sintaxe similar que indica uma taxa de figuração média para um conjunto de camadas definido na parte de base do VPS. Um exemplo de tal elemento de sintaxe é o elemento de sintaxe avg_pic_rate[i][j] 512 mostrado na Figura 5 e na Figura 6.
[0133] Em algumas modalidades, o um ou mais elementos de sintaxe pode sinalizar informações de saída alvo tanto para os conjuntos de camadas definidos no VPS de base quanto para os conjuntos de camadas adicionais definidos na extensão de VPS. Por exemplo, o um ou mais elementos de sintaxe no conjunto de parâmetros de vídeo incluem um sinalizador que indica se uma camada em um conjunto de camadas adicional é uma camada de saída alvo de um conjunto de camadas de saída. O sinalizador pode ser estabelecido em um valor de 0 ou 1 para indicar que a camada no conjunto de camadas adicional é uma camada de saída alvo de um conjunto de camadas de saída. O um ou mais elementos de sintaxe pode incluir também um sinalizador similar que indica se uma camada em um conjunto de camadas definido no VPS de base é uma camada de saída alvo de um conjunto de camadas de saída. Um exemplo de tal sinalizador é o elemento de sintaxe output_layer_flag[i][j] 304 mostrado na Figura 3 e na Figura 4.
[0134] Com o uso das técnicas descritas acima das informações de sinalização para conjuntos de camadas (o que inclui conjuntos de camadas adicionais) definidos em um conjunto de parâmetros, as informações de taxa e informações de saída alvo são sinalizadas para os conjuntos de camadas definidos no VPS de base e também para os conjuntos de camadas adicionais definidos na extensão de VPS.
[0135] Em modalidades adicionais, técnicas e sistemas são descritos para parâmetros de decodificador de referência hipotéticos de sinalização em um conjunto de parâmetros apenas em certas condições. Os parâmetros de decodificador hipotético de referência são fornecidos em um conjunto de parâmetros para permitir funcionalidade em múltiplas camadas. Diferentes conjuntos de parâmetros de decodificador hipotético de referência correspondem a diferentes pontos de operação. Os parâmetros de decodificador hipotético de referência podem ser usados de vários modos. Por exemplo, uma verificação de conformidade de corrente de bits pode incluir realizar um teste normativo com o uso de parâmetros de decodificador hipotético de referência. O teste normativo usa os parâmetros de decodificador hipotético de referência para verificar que uma corrente de bits ou subcorrente de bits pode ser decodificada por um decodificador hipotético de referência que é conceitualmente conectado à saída de um encriptador e que inclui um armazenamento temporário de figuração codificada, um decodificador e armazenamento temporário de figuração decodificada. O encriptador deve certificar-se que várias restrições são atendidas ao criar uma corrente de bits para atender à conformidade, o que inclui certificar-se de que as ferramentas usadas na corrente de bits são compatíveis com aquelas sinalizadas nos conjuntos de parâmetros, o que garante que o armazenamento temporário de figuração codificada do decodificador hipotético de referência não estoure nem estoure negativamente e garante que as figurações marcadas como usadas por referência não sejam usadas como referência posteriormente, ou outras exigências. Um estouro de armazenamento temporário ocorre quando excessivas unidades de dados codificados estão presentes para o armazenamento temporário de decodificador. O estouro negativo ocorre quando é o momento do decodificador processar algumas unidades de dados codificadas, mas o armazenamento temporário está vazio.
[0136] Os parâmetros de decodificador hipotético de referência podem ser sinalizados no VPS e na extensão de VPS (por exemplo, nas VUI de VPS) para diferentes pontos de operação e conjuntos de camadas associados. A sinalização dos parâmetros de decodificador hipotético de referência nas VUI de VPS pode ser controlada por um sinalizador de comutação. O valor desse sinalizador pode ser estabelecido igual a 1 ou 0 independentemente por encriptadores, em um exemplo, parâmetros de decodificador hipotético de referência podem não ser sinalizados nas VUI de VPS quando um valor do sinalizador de comutação é estabelecido em 0. Em outro exemplo, os parâmetros de decodificador hipotético de referência podem ser sinalizados nas VUI de VPS quando um valor do sinalizador de comutação é estabelecido em 1. Um indivíduo de habilidade comum na técnica observará que os parâmetros de decodificador hipotético de referência podem não ser sinalizados quando o valor é estabelecido em 1, e que os parâmetros de decodificador hipotético de referência podem ser sinalizados quando o valor é estabelecido em 0.
[0137] As modalidades são descritas no presente documento para parâmetros de decodificador de referência hipotéticos de sinalização nas VUI de VPS quando certas informações são sinalizadas no VPS e/ou nas VUI de VPS. Por exemplo, os parâmetros de decodificador hipotético de referência dependem de informações de temporização fornecidas nas VUI de VPS, na parte de base do VPS, ou tanto nas VUI de VPS quanto no VPS de base. As informações de temporização são fornecidas para permitir uma velocidade de reprodução correta de uma sequência de vídeo decodificada. A estrutura de sintaxe para parâmetros de decodificador hipotético de referência é colocada na seção de informações de temporização das VUI de VPS. Em alguns casos, as informações de temporização definem parâmetros necessários para instalar um esquema de temporização para o processo de decodificação, tal como uma taxa de relógio e o comprimento de um tique de relógio. As informações de temporização podem incluir adicionalmente um sinalizador que indica que uma contagem de ordem de figuração (que define uma relação das figurações em termos de ordenação e distância se usadas para previsão) é proporcional ao tempo de saída da figuração em relação ao começo da sequência de vídeo codificada (por exemplo, uma figuração de intra- acesso aleatório (TRAP), tal como uma figuração de atualização instantânea de decodificação (IDR) onde a contagem de ordem de figuração é reestabelecida). Com o uso da indicação fornecida pelo sinalizador, a temporização de saída de figuração pode ser diretamente derivada a partir da contagem de ordem de figuração.
[0138] As informações de decodificador hipotético de referência quando as informações de temporização não estão presentes no VPS são um uso ineficiente de bits, o que leva a processamento perdido e uso de recursos de rede. Consequentemente, os parâmetros de decodificador hipotético de referência podem ser sinalizados nas VUI de VPS quando as informações de temporização são sinalizadas também no VPS ou nas VUI de VPS. De modo similar, os parâmetros de decodificador hipotético de referência podem não ser sinalizados nas VUI de VPS quando nenhuma informação de temporização é sinalizada no VPS ou nas VUI de VPS. Em alguns aspectos, um encriptador (ou outro dispositivo, tal como um editor, emendador ou similares) pode condicionar o sinalizador de comutação para ser dependente de um valor de um elemento de sintaxe que indica se informações de temporização estão presentes no VPS ou nas VUI de VPS.
[0139] Em um exemplo, o sinalizador de comutação pode ser sinalizado ou pode não ser sinalizado dependendo da presença das informações de temporização. A Figura 9A ilustra um exemplo de uma estrutura de sintaxe 900 de VUI de VPS com um elemento de sintaxe de informações de temporização 902, rotulado vps_timing_info present_flag. O elemento de sintaxe de informações de temporização 902 indica se informações de temporização estão incluídas no VPS ou nas VUI de VPS. A estrutura de sintaxe 900 inclui adicionalmente elemento de sintaxe de sinalizador de comutação 904, rotulado vps_vui_bsp_hrd_present_flag. A presença do elemento de sintaxe de sinalizador de comutação 904 depende do valor do elemento de sintaxe de informações de temporização 902. Quando o elemento de sintaxe das informações de temporização 902 é estabelecido em um valor de 0 (indica que nenhuma informação de temporização está presente), o elemento de sintaxe de sinalizador de comutação 904 pode não ser sinalizado nas VUI de VPS (caso em que a estrutura de sintaxe 900 não inclui o elemento de sintaxe de sinalizador de comutação 904 quando as VUI de são enviadas para o decodificador). Em tal exemplo, o valor do elemento de sintaxe do sinalizador de comutação 904 é determinado pelo encriptador para ser um valor de 0, que indica que nenhum parâmetro de decodificador hipotético de referência deve ser sinalizado nas VUI de VPS. Consequentemente, o encriptador (ou outro dispositivo, tal como um editor, emendador ou similares) pode determinar não sinalizar parâmetros de decodificador hipotético de referência nas VUI de VPS. Esse exemplo é ilustrado na Figura 9A pela inclusão da condição 906 com o elemento de sintaxe das informações de temporização 902 na estrutura de sintaxe. Por exemplo, quando o elemento de sintaxe das informações de temporização 902 é estabelecido em um valor de 0 (indica que nenhuma informação de temporização está presente), o encriptador (ou outro dispositivo, tal como um editor, emendador ou similares) pode determinar não sinalizar parâmetros de decodificador hipotético de referência nas VUI de VPS. O encriptador (ou outros dispositivos) podem então remover o elemento de sintaxe de sinalizador de comutação 904 a partir da estrutura de sintaxe 900. Quando as VUI de VPS são recebidas pelo decodificador (ou outro dispositivo que recebe as VUI de VPS), o decodificador infere o valor do sinalizador de comutação como um valor de 0 com base na ausência do elemento de sintaxe de sinalizador de comutação 904. O decodificador então determina que nenhum parâmetro de decodificador hipotético de referência é sinalizado nas VUI de VPS com base no valor inferido de 0 para o sinalizador de comutação.
[0140] Em outro exemplo, um valor do sinalizador de comutação pode ser dependente da presença das informações de temporização. Por exemplo, uma restrição pode ser adicionada para expressar que quando o elemento de sintaxe de informações de temporização 902 for igual a 0, o valor do elemento de sintaxe de sinalizador de comutação 904 deve também ser igual a 0. Esse exemplo é ilustrado na Figura 9B pela ausência da condição 906 a partir da estrutura de sintaxe 900. Nesse exemplo, um elemento de sintaxe de informações de temporização indica se informações de temporização estão presentes no VPS ou as VUI de VPS são sinalizadas anteriormente no VPS ou nas VUI de VPS (não mostrados na Figura 9). Quando o elemento de sintaxe de informações de temporização (não mostrado na Figura 9) é estabelecido em um valor de 0 (indica que nenhuma informação de temporização está presente), o encriptador (ou outro dispositivo, tal como um editor, emendador ou similares) pode ser forçado para estabelecer o elemento de sintaxe de sinalizador de comutação 904 para um valor de 0, o que indica que nenhum parâmetro de decodificador hipotético de referência é sinalizado nas VUI de VPS. O encriptador (ou outro dispositivo, tal como um editor, emendador ou similares) pode determinar não sinalizar parâmetros de decodificador hipotético de referência nas VUI de VPS como resultado. Quando as VUI de VPS são recebidas pelo decodificador (ou outro dispositivo que recebe as VUI de VPS), o decodificador determina que o valor do elemento de sintaxe de sinalizador de comutação 904 é estabelecido em um valor de 0 para aprender que nenhum parâmetro de decodificador hipotético de referência é sinalizado nas VUI de VPS.
[0141] A Figura 10 ilustra uma modalidade de um processo 1000 de criptação de dados de vídeo. O processo 1000 é implantado para sinalizar parâmetros de decodificador hipotético de referência em um conjunto de parâmetros apenas em certas situações. Em alguns aspectos, o processo 1000 pode ser realizado por um dispositivo ou aparelho de computação, tal como o dispositivo de criptação 104 mostrado na Figura 1 ou na Figura 16. Por exemplo, o dispositivo ou aparelho de computação podem incluir um encriptador, ou um processador, microprocessador, microcomputador, ou outro componente de um encriptador que é configurado para realizar as etapas do processo 1000.
[0142] O processo 1000 é ilustrado como um diagrama de fluxo lógico, sendo que a operação que representa uma sequência de operações que podem ser implantadas em hardware, instruções de computador ou em uma combinação dos mesmos. No contexto das instruções de computador, as operações representam instruções executáveis por computador armazenadas em uma ou mais mídias de armazenamento legíveis por computador que, quando executadas por um ou mais processadores realizam as operações declaradas. Em geral, instruções executáveis por computador incluem rotinas, programas, objetos, componentes, estruturas de dados e similares que executam funções particulares ou implantam tipos de dados particulares. A ordem em que as operações são descritas não se destina a se interpretada como uma limitação, e qualquer número das operações descritas pode ser combinado em qualquer ordem e/ou em paralelo à implantação dos processos.
[0143] Adicionalmente, o processo 100 pode ser realizado sob o controle de um ou mais sistemas de computador configurados com instruções executáveis e pode ser implantado como código (por exemplo, instruções executáveis, um ou mais programas de computador, ou uma ou mais aplicações) que executa coletivamente em uma ou mais processadores, por hardware, ou combinações dos mesmos. Conforme observado acima, o código pode ser armazenado em um meio de armazenamento legível por computador, por exemplo, na forma de um programa de computador que compreende uma pluralidade de instruções executáveis por um ou mais processadores. O meio de armazenamento legível por computador ou legível por máquina pode ser não transitório.
[0144] Em 1002, o processo 1000 de criptação de dados de vídeo inclui gerar uma corrente de bits de vídeo criptada que compreende múltiplas camadas. A corrente de bits de vídeo criptada inclui um conjunto de parâmetros de vídeo que define parâmetros da corrente de bits de vídeo criptada. O conjunto de parâmetros de vídeo inclui informações de usabilidade de vídeo que podem ser chamadas de VUI de VPS. A corrente de bits de vídeo criptada pode ser criptada com o uso de uma técnica de codificação HEVC, ou outra técnica de codificação adequada.
[0145] Em 1004, o processo 1000 inclui determinar se informações de temporização são sinalizadas nas informações de usabilidade de vídeo do conjunto de parâmetros de vídeo. Em algumas modalidades, determinar se as informações de temporização são sinalizadas nas informações de usabilidade de vídeo do conjunto de parâmetros de vídeo inclui determinar um valor de um primeiro sinalizador nas informações de usabilidade de vídeo. O primeiro sinalizador indica se as informações de temporização são sinalizadas nas informações de usabilidade de vídeo (ou outra porção do conjunto de parâmetros de vídeo). Por exemplo, o primeiro sinalizador pode incluir um elemento de sintaxe de informações de temporização (por exemplo, elemento de sintaxe de informações de temporização 902). O elemento de sintaxe de informações de temporização pode ser verificado para determinar se as informações de temporização são sinalizadas. Por exemplo, um valor de 0 pode indicar que as informações de temporização não são sinalizadas. Em outro exemplo, um valor de 1 pode indicar que informações de temporização não são sinalizadas.
[0146] Em 1006, o processo 1000 inclui determinar a possibilidade de sinalizar parâmetros de decodificador hipotético de referência nas informações de usabilidade de vídeo do conjunto de parâmetros de vídeo com base em se informações de temporização são sinalizadas nas informações de usabilidade de vídeo (ou outra porção do conjunto de parâmetros de vídeo). Em alguns exemplos, o processo 1000 inclui sinalizar os parâmetros de decodificador hipotético de referência nas informações de usabilidade de vídeo quando informações de temporização são sinalizadas nas informações de usabilidade de vídeo (ou outra porção do conjunto de parâmetros de vídeo). O processo 1000 inclui adicionalmente não sinalizar os parâmetros de decodificador hipotético de referência nas informações de usabilidade de vídeo quando as informações de temporização não são sinalizadas nas informações de usabilidade de vídeo (ou outra porção do conjunto de parâmetros de vídeo). Por exemplo, um encriptador ou outro dispositivo de rede pode determinar não sinalizar os parâmetros de decodificador hipotético de referência nas informações de usabilidade de vídeo quando as informações de temporização estão ausentes.
[0147] Em algumas modalidades, o processo 1000 inclui determinar um valor de um segundo sinalizador nas informações de usabilidade de vídeo com base no valor do primeiro sinalizador. O segundo sinalizador define se parâmetros de decodificador hipotético de referência são sinalizados nas informações de usabilidade de vídeo. Por exemplo, o segundo sinalizador pode incluir um elemento de sintaxe de sinalizador de comutação (por exemplo, elemento de sintaxe de sinalizador de comutação 904).
[0148] Em algumas modalidades, o processo 1000 inclui fornecer, nas informações de usabilidade de vídeo, um ou mais elementos de sintaxe para informações de sinalização relacionadas à corrente de bits de vídeo criptada, sendo que as informações incluem uma condição de que o valor do segundo sinalizador seja dependente do valor do primeiro sinalizador. Por exemplo, com referência à Figura 9, quando o elemento de sintaxe de informações de temporização 902 é estabelecido em um valor de 0 (indica que nenhuma informação de temporização está presente), o elemento de sintaxe de sinalizador de comutação 904 pode não ser sinalizado nas VUI de VPS (no caso de a estrutura de sintaxe 900 não incluir o elemento de sintaxe de sinalizador de comutação 904). Então, o valor do elemento de sintaxe de sinalizador de comutação 904 é inferido pelo encriptador para ser um valor de 0, o que indica que nenhum parâmetro de decodificador hipotético de referência deve ser sinalizado nas VUI de VPS. O encriptador pode determinar não sinalizar parâmetros de decodificador hipotético de referência nas VUI de VPS.
[0149] Em algumas modalidades, o processo 1000 inclui fornecer, nas informações de usabilidade de vídeo, um ou mais elementos de sintaxe para informações de sinalização relacionadas à corrente de bits de vídeo criptada, sendo que as informações incluem uma restrição de que o valor do segundo sinalizador deve ser estabelecido em zero quando o valor do primeiro sinalizador é igual a zero. Por exemplo, conforme ilustrado na Figura 9, a condição 906 com o elemento de sintaxe de sinalizador de comutação 904 pode ser adicionada à estrutura de sintaxe 900. Com base na condição 906, quando o elemento de sintaxe de informações de temporização 902 é estabelecido em um valor de 0 (o que indica que nenhuma informação de temporização está presente), o encriptador pode estabelecer o elemento de sintaxe de sinalizador de comutação 904 para um valor de 0, o que indica que nenhum parâmetro de decodificador hipotético de referência é sinalizado nas VUI de VPS. O encriptador pode determinar não sinalizar parâmetros de decodificador hipotético de referência nas VUI de VPS como resultado.
[0150] As técnicas descritas acima evitam a sinalização das informações de decodificador hipotético de referência quando as informações de temporização não estão presentes. A sinalização de tais informações quando nenhuma informação de temporização está presente é um uso ineficiente de recursos, desperdiçando recursos de processamento e rede valiosos. O encriptador (ou outro dispositivo, tal como um editor, emendador ou similares) pode inteligentemente determinar quando sinalizar parâmetros de decodificador hipotético de referência com base na presença ou ausência de informações de temporização.
[0151] Em modalidades adicionais, técnicas e sistemas são descritos para sinalizar de modo seletivo diferentes números de estruturas de sintaxe de informações de sinal de vídeo em um conjunto de parâmetros. Por exemplo, as modalidades são descritas no presente documento para determinar um número de estruturas de sintaxe de informação de sinal de vídeo para sinalizar no conjunto de parâmetros com base na possibilidade de a camada de base estar incluída em uma corrente de bits de vídeo criptada ou dever ser fornecida par um dispositivo de decodificação a partir de uma fonte externa.
[0152] A Figura 11 ilustra um ambiente exemplificativo 1100 em que um dispositivo de criptação gera várias camadas de uma corrente de bits de vídeo criptada, o que inclui uma camada de base. O ambiente 1100 inclui um dispositivo de criptação HEVC 1102 que gera uma corrente de bits de vídeo criptada com o uso do padrão de codificação de vídeo HEVC. Um indivíduo de habilidade comum na técnica observará que as técnicas descritas no presente documento se aplicam aos outros dispositivos de criptação que podem usar diferentes padrões de codificação do que o padrão HEVC, tal como um ou mais dentre os padrões AVC e MPEG. O dispositivo de codificação HEVC 1102 pode gerar uma corrente de bits de vídeo em conformidade com HEVC que inclui uma camada de base e uma ou mais camadas de aprimoramento. Por exemplo, o dispositivo de criptação HEVC 1102 pode gerar camada de base 0 e camada de aprimoramento 1 até camada n. A camada n se refere ao fato de que o dispositivo de criptação HEVC 1102 pode gerar qualquer número de camadas de aprimoramento, conforme determinado pela implantação particular ou aplicação e conforme restringido pelo padrão HEVC.
[0153] O dispositivo de decodificação HEVC 1104 do dispositivo de recebimento 1110 pode receber as camadas de base e de aprimoramento a partir do dispositivo de criptação HEVC 1102. No exemplo da Figura 31, a camada de base é fornecida para o dispositivo de decodificação HEVC 1104 na corrente de bits HEVC. O dispositivo de criptação HEVC 1102 pode também enviar conjuntos de parâmetros, tal como um VPS para o dispositivo de decodificação HEVC 1104 com informações que permitem que o dispositivo de decodificação HEVC 1104 decodifique apropriadamente a corrente de bits de vídeo criptada. As informações podem incluir informações de sinal de vídeo, conforme descrito abaixo.
[0154] A Figura 12 ilustra um ambiente exemplificativo 1200 em que um dispositivo de criptação gera várias camadas de aprimoramento de uma corrente de bits de vídeo criptada, mas não uma camada de base. O ambiente 1200 inclui um dispositivo de criptação HEVC 102 e um dispositivo de criptação AVC 1206 que gera as correntes de bits de vídeo criptadas com o uso de diferentes padrões de codificação de vídeo. Um indivíduo de habilidade comum na técnica observará que as técnicas descritas no presente documento se aplicam a outros dispositivos de criptação que podem usar diferentes padrões de codificação do que HEVC ou AVC. O
[0155] dispositivo de criptação HEVC 1202 pode gerar uma corrente de bits de vídeo em conformidade com HEVC que inclui uma ou mais camadas de aprimoramento, mas nenhuma camada de base. Por exemplo, o dispositivo de criptação HEVC 1202 pode gerar camada de aprimoramento 1 até camada n. O dispositivo de criptação AVC 1206 pode gerar uma corrente de bits de vídeo em conformidade com AVC o que inclui apenas uma camada de base e inclui a camada de base 0. Quando o dispositivo de criptação HEVC 1202 gera a uma ou mais camadas de aprimoramento, a camada de base gerada pelo dispositivo de criptação AVC 1206 pode ser usada para referência de previsão intercamada.
[0156] Em um exemplo, o dispositivo de decodificação HEVC 1204 pode receber as camadas de aprimoramento a partir do dispositivo de criptação HEVC 1202, e o dispositivo de decodificação AVC 1208 pode receber a camada de base a partir do dispositivo de criptação AVC 1206. Em outro exemplo, uma primeira entidade de rede (por exemplo, um editor ou emendador) pode dividir as camadas de aprimoramento a partir do dispositivo de criptação HEVC 1202 junto com a camada de base a partir do dispositivo de criptação AVC 1206. A primeira entidade de rede pode realizar a divisão de uma maneira de tempo sincronizado sendo que as informações de tempo de sistema são adicionadas (por exemplo, um formato de arquivo de acordo com o formato de arquivo de mídia de base ISO). Uma segunda entidade de rede (por exemplo, um receptor, tal como dispositivo de recebimento 1210, um analisador de formato de arquivo, ou outra entidade de rede) pode passar a corrente de bits da uma ou mais camadas de aprimoramento para o dispositivo de decodificação HEVC 1204 e a corrente de bits da camada de base para o dispositivo de decodificação AVC 1208. Em qualquer um dos exemplos, a corrente de bits da camada de base não é fornecida para o dispositivo de decodificação HEVC 1204. Em vez disso, as figurações decodificadas da camada de base são fornecidas para o dispositivo de decodificação HEVC 1204 (a partir do dispositivo de decodificação AVC 1208) para referência de previsão intercamada. A partir do ponto de vista do dispositivo de decodificação HEVC 1204, a camada de base é externamente fornecida por uma fonte externa. Em algumas modalidades, o dispositivo de decodificação HEVC 1204 e o dispositivo de decodificação AVC 1208 são decodificadores separados. Em algumas modalidades, o dispositivo de decodificação HEVC 1204 e o dispositivo de decodificação AVC 1208 são parte de um decodificador de múltiplos padrões que pode decodificar correntes de bits HEVC e AVC.
[0157] Um dispositivo de criptação HEVC pode fornecer um conjunto de parâmetros de vídeo (VPS) com uma corrente de bits de vídeo em conformidade com HEVC (por exemplo, em uma ou mais unidades de NAL de não VCL). As estruturas de sintaxe de informações de sinal de vídeo são sinalizadas no VPS para cada camada de uma corrente de bits de vídeo criptada de múltiplas camadas, com uma estrutura de sintaxe de informação de sinal de vídeo separada que é sinalizada para cada camada. As estruturas de sintaxe de informação de sinal de vídeo podem ser sinalizadas nas VUI de VPS da extensão de VPS e podem ser usadas para preparar o vídeo decodificado para emissão e exibição.
[0158] As informações de sinal de vídeo contidas em uma estrutura de sintaxe de informação de sinal de vídeo pode incluir cor, características, tais como cores primárias, características de transferência, coeficientes de matriz de conversão de cor usados ou outras informações de cor adequadas. As informações de sinal de vídeo podem incluir também informações do tipo de sinal de vídeo que indicam o formato original do vídeo fonte (por exemplo, TSC, PAL, componente, SECAM, MAC, não especificado ou outro formato de vídeo adequado) e, em alguns casos, um formato de cor correspondente e especificação de formato. Em alguns casos, as informações de sinal de vídeo podem indicar localizações de amostras de croma em relação a locais de amostras de luma, o que pode ser usado para apresentar uma apresentar de cor correta durante a exibição.
[0159] A Figura 13 ilustra um exemplo de um VPS 1302 que pode ser enviado por um dispositivo de criptação HEVC junto com a corrente de bits de vídeo em conformidade com HEVC. O VPS 1302 inclui informações de sinal de vídeo para múltiplas camadas de uma corrente de bits de vídeo criptada. As informações de sinal de vídeo podem ser contidas em uma ou mais estruturas de sintaxe de informação de sinal de vídeo de uma porção de VUI de VPS 1302. Por exemplo, o VPS 1302 inclui uma estrutura de sintaxe de informação de sinal de vídeo 1304 para uma camada com ID de camada = 0 (que corresponde a uma camada de base), uma estrutura de sintaxe de informação de sinal de vídeo 1306 para uma camada de aprimoramento com ID de camada = 1, e uma estrutura de sintaxe de informação de sinal de vídeo 1308 para uma camada de aprimoramento com ID de camada = n.
[0160] Em alguns casos, um número de estruturas de sintaxe de informação de sinal de vídeo para incluir (ou que é incluído) na VPS 1302 não é explicitamente sinalizado. Por exemplo, um elemento de sintaxe (por exemplo, vps_num_video_signal_info_minus1) que indica o número de estruturas de sintaxe de informação de sinal de vídeo para incluir no VPS 1302 pode não estar presente. Em tais casos, o número de estruturas de sintaxe de informação de sinal de vídeo para incluir no VPS 1302 é inferido ser igual ao número total de camadas na corrente de bits (independentemente de se a camada de base é fornecida externamente ou incluída na corrente de bits de vídeo criptada com HEVC), o que leva a uma estrutura de sintaxe de informação de sinal de vídeo ser sinalizada para cada valor de ID de camada, e sendo que cada camada é atribuída a uma estrutura de sintaxe de informação de sinal de vídeo sinalizada de acordo com seu valor de ID de camada. Quando a camada de base é fornecida externamente (por exemplo, por um dispositivo de criptação AVC, conforme mostrado na Figura 12), uma estrutura de sintaxe de estrutura de informações de sinal é enviada a qual é inútil em relação ao decodificador HEVC, pois o decodificador HEVC não precisa da estrutura de sintaxe de informações de sinal para a camada de base.
[0161] As técnicas são descritas para atualizar a sinalização das estruturas de sintaxe de informação de sinal de vídeo no VPS (por exemplo, nas VUI de VPS) para fornecer de modo mais eficiente os dados no VPS. Por exemplo, um número de estruturas de sintaxe de informação de sinal de vídeo para sinalizar no VPS é determinado com base na possibilidade de a camada de base estar incluída na corrente de bits de vídeo criptada ou dever ser fornecida a um dispositivo de decodificação HEVC a partir de uma fonte externa. A sinalização das informações de sinal de vídeo no VPS pode ser atualizada quando o número de estruturas de sintaxe de informação de sinal de vídeo nas VUI de VPS não é explicitamente sinalizado (por exemplo, quando um elemento de sintaxe, tal como vps_num_video_signal_info_minusl, não está presente no VPS ou VUI de VPS). Por exemplo, o número de estruturas de sintaxe de informação de sinal de vídeo sinalizado no VPS é inferido para ser igual ao número máximo de camadas da corrente de bits se a camada de base estiver na corrente de bits HEVC (não fornecida externamente como mostrado na Figura 11). Nas modalidades em que a camada de base é fornecida externamente (como mostrado na Figura 12), o número de estruturas de sintaxe de informação de sinal de vídeo sinalizado no VPS é inferido ser igual ao número máximo de camadas da corrente de bits menos um. Consequentemente, quando a camada de base é fornecida a partir de uma fonte externa, o número de estruturas de sintaxe de informação de sinal de vídeo no VPS é reduzido por um.
[0162] Em algumas modalidades, as IDs de camada das camadas são mapeadas para estruturas de sintaxe de informações de sinal de vídeo em um índice para indicar que estruturas de sintaxe serão aplicadas a diferentes camadas. Em tais modalidades, quando o número de estruturas de sintaxe de informação de sinal de vídeo no VPS não for sinalizado explicitamente, o mapeamento entre o ID de camada para o índice das estruturas de sintaxe de informação de sinal de vídeo é atualizado de modo que nenhuma estrutura de sintaxe de informação de sinal de vídeo seja atribuída à camada de base. Consequentemente, uma estrutura de sintaxe de informação de sinal de vídeo é atribuída a cada uma das camadas incluídas na corrente de bits de vídeo criptada com HEVC, e nenhuma estrutura de sintaxe de informação de sinal de vídeo é atribuída à camada de base que deve ser fornecida para o decodificador a partir da fonte externa.
[0163] Mudanças no padrão HEVC para implantar as técnicas descritas acima para atualizar a sinalização das estruturas de sintaxe de informação de sinal de vídeo no VPS podem incluir:
[0164] video_signal_info_idx_present_flag igual a 1 especifica que os elementos de sintaxe vps_num_video_signal_info_minus1 e vps_video_signal_info_idx[i] estão presentes. video_signal_info_idx_present_flag igual a 0 especifica que os elementos de sintaxe vps_num_video_ signal_info_ minus1 e vps_video_signal_info_idx[i] não estão presentes.
[0165] vps_num_video_signal_info_minus1 plus 1 especifica o número das seguintes estruturas de sintaxe video_signal_info()no VPS. Quando não presente, o valor de vps_num_video_signal_info_minus1 é inferido ser igual a MaxLayersMinusl - (vps_base_layer_internal_flag ? 0: 1).
[0166] vps_video_signal_info_idx[i] especifica o índice na lista de estruturas de sintaxe video_signal_info( ) no VPS, da estrutura de sintaxe video_signal_info( ) que se aplica à camada com nuh_layer_id igual a layer_id_in_nuh[i]. Quando vps_video_signal_info_idx[i] não está presente, vps_video_signal_info_idx[i] é inferido ser igual a (video_signal_info_idx_present_flag? 0:i). O valor de vps_video_signal_info_idx[i] deve estar na faixa de 0 a vps_num_video_signal_info_minus1, inclusivo.
[0167] Quando não presente, o valor de vps_video_signal_info_idx[i] é inferido como a seguir:
[0168] Se video_signal_info_idx_present_flag for igual a 1, vps_video_signal_info_idx[i] é inferido ser igual a 0.
[0169] De outro modo, vps_video_signal_info_idx[i] é inferido ser igual a i - (vps_base_layer_internal_flag? 0: 1
[0170] vps_vui_bsp_hrd_present_flag igual a 0 especifica que nenhum parâmetro de HRD de particionamento de corrente de bits está presente nas VUI de VPS. vps_vui_bsp_hrd present_flag igual a 1 especifica que os parâmetros de HRD de particionamento estão presentes nas VUI de VPS. Quando não presente, vps_vui_bsp_hrd_present_flag é inferido ser igual a 0.
[0171] A Figura 14 ilustra uma modalidade de um processo 1400 de criptação de dados de vídeo. O processo 1400 é implantado para atualizar a sinalização das estruturas de sintaxe de informação de sinal de vídeo no VPS sinalizando-se de modo seletivo diferentes números de estruturas de sintaxe de informação de sinal de vídeo no VPS. Em alguns aspectos, o processo 1400 pode ser realizado por um dispositivo ou um aparelho de computação, tal como o dispositivo de criptação 104 mostrado na Figura 1 ou na Figura 16. Por exemplo, o dispositivo ou aparelho de computação pode incluir um encriptador, ou um processador, microprocessador, microcomputador, ou outro componente de um encriptador que é configurado para realizar as etapas do processo 1400.
[0172] O processo 1400 é ilustrado como um diagrama de fluxo lógico, sendo que a operação que representa uma sequência de operações que podem ser implantadas em hardware, instruções de computador ou em uma combinação dos mesmos. No contexto das instruções de computador, as operações representam instruções executáveis por computador armazenadas em uma ou mais mídias de armazenamento legíveis por computador que, quando executadas por um ou mais processadores realizam as operações declaradas. Em geral, instruções executáveis por computador incluem rotinas, programas, objetos, componentes, estruturas de dados e similares que executam funções particulares ou implantam tipos de dados particulares. A ordem em que as operações são descritas não se destina a se interpretada como uma limitação, e qualquer número das operações descritas pode ser combinado em qualquer ordem e/ou em paralelo à implantação dos processos.
[0173] Adicionalmente, o processo 1400 pode ser realizado sob o controle de um ou mais sistemas de computador configurados com instruções executáveis e pode ser implantado como código (por exemplo, instruções executáveis, um ou mais programas de computador, ou uma ou mais aplicações) que executa coletivamente em um ou mais processadores, por hardware, ou combinações dos mesmos. Conforme observado acima, o código pode ser armazenado em um meio de armazenamento legível por computador, por exemplo, na forma de um programa de computador que compreende uma pluralidade de instruções executáveis por um ou mais processadores. O meio de armazenamento legível por computador ou legível por máquina pode ser não transitório.
[0174] Em 1402, o processo 1400 de criptação de dados de vídeo inclui gerar uma corrente de bits de vídeo criptada de acordo com um primeiro protocolo de codificação. A corrente de bits de vídeo criptada inclui uma ou mais camadas de aprimoramento e um conjunto de parâmetros de vídeo que definem parâmetros da corrente de bits de vídeo criptada. Em algumas modalidades, a corrente de bits de vídeo criptada pode ser criptada com o uso de uma técnica de codificação HEVC, ou outra técnica de codificação adequada.
[0175] Em 1404, o processo 1400 inclui determinar que um elemento de sintaxe indicativo de um número de estruturas de sintaxe de informação de sinal de vídeo fornecido na corrente de bits de vídeo criptada não está presente no conjunto de parâmetros de vídeo. Por exemplo, um encriptador pode determinar que um elemento de sintaxe (por exemplo, vps_num_video_signal_info_minus 1) que indica o número de estruturas de sintaxe de informação de sinal de vídeo para incluir no conjunto de parâmetros de vídeo não está presente no conjunto de parâmetros de vídeo (por exemplo, o VPS ou VUI de VPS).
[0176] Em 1406, o processo 1400 inclui determinar o número de estruturas de sintaxe de informação de sinal de vídeo para incluir no conjunto de parâmetros de vídeo quando o elemento de sintaxe indicativo do número de estruturas de sintaxe de informações de sinal de vídeo fornecido na corrente de bits de vídeo criptada não está presente no conjunto de parâmetros de vídeo. O número é determinado como um primeiro valor ou um segundo valor com base em se uma camada de base está incluída na corrente de bits de vídeo criptada ou dever ser fornecida para um decodificador a partir de uma fonte externa. Em algumas modalidades, o número de estruturas de sintaxe de informação de sinal de vídeo para incluir no conjunto de parâmetros de vídeo é determinado como o primeiro valor quando se determina que a camada de base está incluída na corrente de bits de vídeo criptada, caso em que o primeiro valor é igual a um número máximo de camadas da corrente de bits de vídeo criptada.
[0177] Em algumas modalidades, o número de estruturas de sintaxe de informação de sinal de vídeo para incluir no conjunto de parâmetros de vídeo é determinado como o segundo valor quando se determina que a camada de base deve ser fornecida para o decodificador a partir da fonte externa, caso em que o segundo valor é igual a um número máximo de camadas da corrente de bits de vídeo criptada menos um. Em algumas modalidades, uma estrutura de sintaxe de informação de sinal de vídeo é atribuída a cada uma das camadas incluídas na corrente de bits de vídeo criptada, e nenhuma estrutura de sintaxe de informação de sinal de vídeo é atribuída à camada de base que deve ser fornecida para o decodificador a partir da fonte externa. Em algumas modalidades, a camada de base fornecido da fonte externa é criptada de acordo com um segundo protocolo de codificação, sendo que o segundo protocolo de codificação é diferente do primeiro protocolo de codificação. Em alguns exemplos, o primeiro protocolo de codificação inclui um protocolo de codificação de vídeo de alta eficiência, e o segundo protocolo de codificação inclui um protocolo de codificação de vídeo avançada.
[0178] A Figura 15 ilustra uma modalidade de um processo 1500 de decodificação de dados de vídeo. O processo 1500 é implantado para inferir um número de estruturas de sintaxe de informação de sinal de vídeo no VPS. Em alguns aspectos, o processo 3500 pode ser realizado por um dispositivo ou aparelho de computação, tal como o dispositivo de decodificação 112 mostrado na Figura 1 ou na Figura 17. Por exemplo, o dispositivo ou aparelho de computação pode incluir um decodificador, ou um processador, microprocessador, microcomputador, ou outro componente de um decodificador que é configurado para realizar as etapas de processar 1500.
[0179] O processo 1500 é ilustrado como um diagrama de fluxo lógico, sendo que a operação do mesmo representa uma sequência de operações que podem ser implantadas em hardware, instruções de computador ou uma combinação dos mesmos, no contexto das instruções de computador, sendo que as operações representam instruções executáveis por computador armazenadas um uma ou mais mídias de armazenamento legíveis por computador que, quando executadas por um ou mais processadores, realizam as operações declaradas. Em geral, instruções executáveis por computador incluem rotinas, programas, objetos, componentes, estruturas de dados e similares que executam funções particulares ou implantam tipos de dados particulares. A ordem em que as operações são descritas não se destina a se interpretada como uma limitação, e qualquer número das operações descritas pode ser combinado em qualquer ordem e/ou em paralelo à implantação dos processos.
[0180] Adicionalmente, o processo 1500 pode ser realizado sob o controle de um ou mais sistemas de computador configurados com instruções executáveis e pode ser implantado como código (por exemplo, instruções executáveis, um ou mais programas de computador, ou uma ou mais aplicações) executado coletivamente em uma ou mais processadores, por hardware, ou combinações dos mesmos. Conforme observado acima, o código pode ser armazenado em um meio de armazenamento legível por computador, por exemplo, na forma de um programa de computador que compreende uma pluralidade de instruções executáveis por um ou mais processadores. O meio de armazenamento legível por computador ou legível por máquina pode ser não transitório.
[0181] Em 1502, o processo 1500 de decodificar dados de vídeo inclui acessar uma corrente de bits de vídeo criptada de acordo com um primeiro protocolo de codificação. A corrente de bits de vídeo criptada inclui uma ou mais camadas de aprimoramento e um conjunto de parâmetros de vídeo que define parâmetros da corrente de bits de vídeo criptada. Em algumas modalidades, a corrente de bits de vídeo criptada pode ser criptada com o uso de uma técnica de codificação HEVC, ou outra técnica de codificação adequada.
[0182] Em 1504, o processo 1500 inclui determinar que um elemento de sintaxe indicativo de um número de estruturas de sintaxe de informação de sinal de vídeo fornecido na corrente de bits de vídeo criptada não está presente no conjunto de parâmetros de vídeo. Por exemplo, um decodificador pode determinar que um elemento de sintaxe (por exemplo, vps_num_video_signal_info_minus1) que indica o número de estruturas de sintaxe de informação de sinal de vídeo para incluir no conjunto de parâmetros de vídeo não está presente no conjunto de parâmetros de vídeo. Em 1506, o processo 1500 inclui determinar se uma camada de base é incluída na corrente de bits de vídeo criptada ou dever ser recebida a partir de uma fonte externa. Por exemplo, a determinação de se uma camada de base está incluída na corrente de bits de vídeo criptada ou dever ser recebida a partir de uma fonte externa pode ser com base em uma indicação fornecida para um decodificador. A indicação pode ser transportada através de um elemento de sintaxe do VPS. Em um exemplo, uma estrutura de sintaxe do VPS pode incluir um sinalizador com um valor (por exemplo, 1 ou 0) o que indica para o decodificador que a camada de base está incluída na corrente de bits de vídeo criptada. Em outro exemplo, a estrutura de sintaxe do VPS pode incluir um sinalizador com um valor (por exemplo, 1 ou 0) indica para o decodificador que a camada de base deve ser recebida a partir de uma fonte externa.
[0183] Em 1508, o processo 1500 inclui determinar que o número de estruturas de sintaxe de informação de sinal de vídeo incluído no conjunto de parâmetros de vídeo seja um primeiro valor ou um segundo valor com base em se a camada de base está incluída na corrente de bits de vídeo criptada ou dever ser recebida da fonte externa, em algumas modalidades. O processo 1500 inclui determinar que o número de estruturas de sintaxe de informação de sinal de vídeo seja o primeiro valor quando se determina que a camada de base está incluída na corrente de bits de vídeo criptada, caso em que o primeiro valor é igual a um número máximo de camadas da corrente de bits de vídeo criptada.
[0184] Em algumas modalidades, o processo 1500 inclui determinar que o número de estruturas de sintaxe de informação de sinal de vídeo seja o segundo valor quando se determina que a camada de base deve ser recebida da fonte externa, caso em que o segundo valor é igual a um número máximo de camadas da corrente de bits de vídeo criptada menos um. Em alguns aspectos, uma estrutura de sintaxe de informação de sinal de vídeo é atribuída a cada uma das camadas incluídas na corrente de bits de vídeo criptada, e nenhuma estrutura de sintaxe de informação de sinal de vídeo é atribuída à camada de base que deve ser recebida da fonte externa. Em algumas modalidades, a camada de base fornecido da fonte externa é criptada de acordo com um segundo protocolo de codificação, sendo que o segundo protocolo de codificação é diferente do primeiro protocolo de codificação. Em alguns exemplos, o primeiro protocolo de codificação inclui um protocolo de codificação de vídeo de alta eficiência, e em que o segundo protocolo de codificação inclui um protocolo de codificação de vídeo avançada.
[0185] Em alguns aspectos, o processo 1500 é executável em um dispositivo de comunicação sem fio. O dispositivo de comunicação sem fio pode incluir uma memória configurada para armazenar os dados de vídeo. A memória pode incluir o armazenamento 118 mostrado na Figura 1. O dispositivo de comunicação sem fio pode incluir também um processador configurado para executar instruções para processar os dados de vídeo armazenados na memória. O processador pode incluir o mecanismo decodificador 116 mostrado na Figura 1, ou outro processador adequado para processar dados de vídeo. O dispositivo de comunicação sem fio inclui também um receptor configurado para receber a corrente de bits de vídeo criptada. O receptor pode ser um receptor sem fio (não mostrado) do dispositivo de decodificação 112, ou pode ser parte de um transceptor sem fio (não mostrado) do dispositivo de decodificação 112. Em alguns aspectos, o dispositivo de comunicação sem fio é um telefone celular e a corrente de bits de vídeo criptada é modulada de acordo com um padrão de comunicação celular. Por exemplo, a corrente de bits de vídeo criptada pode ser modulada com o uso de um modulador (por exemplo, um modulador por Deslocamento em Quadratura de Fase, um modulador de chaveamento por deslocamento em quadratura de fase, modulador com multiplexação por divisão de frequência ortogonal, ou qualquer outro modulador adequado ou uma combinação dos mesmos).
[0186] As técnicas descritas acima previnem a sinalização de estruturas de sintaxe de informações de sinal de vídeo supérfluas quando a camada de base é fornecida por uma fonte externa. A sinalização de tais informações mesmo quando a camada de base é criptada de acordo com um protocolo separado leva a ineficiências devido ao fato de as estruturas de sintaxe de informações de sinal de vídeo extra não serem necessárias.
[0187] As técnicas de codificação discutidas no presente documento podem ser implantadas em um sistema de criptação e decodificação de vídeo exemplificativo (por exemplo, sistema 100). Um sistema inclui um dispositivo- fonte que fornece dados de vídeo criptados a serem decodificados em um momento posterior por um dispositivo de destino. Em particular, o dispositivo-fonte fornece os dados de vídeo para o dispositivo de destino por meio de um meio legível por computador. O dispositivo de fonte e o dispositivo de destino podem compreender qualquer um dentre uma variedade de dispositivos, o que inclui computadores do tipo desktop, computadores do tipo notebook (isto é, computadores do tipo laptop), computadores do tipo tablet, decodificadores de sinal, aparelhos de telefone tais como os chamados telefones "inteligentes", chamados painéis ”inteligentes", televisões, câmeras, dispositivos de exibição, reprodutores de mídia digital, consoles de vídeo game, dispositivo de transmissão contínua de vídeo ou similares. Em alguns casos, o dispositivo de fonte e o dispositivo de destino podem ser equipados para comunicação sem fio.
[0188] O dispositivo de destino pode receber os dados de vídeo criptados para serem decodificados por meio do meio legível por computador. O meio legível por computador pode compreender qualquer tipo de meio ou dispositivo com capacidade para mover os dados de vídeo criptados do dispositivo de fonte para o dispositivo de destino. Em um exemplo, o meio legível por computador pode compreender um meio de comunicação para habilitar o dispositivo de fonte a transmitir dados de vídeo criptados diretamente para o dispositivo de destino em tempo real. Os dados de vídeo criptados 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. 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ísicas. O meio de comunicação pode formar parte de uma rede com base 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 a partir do dispositivo- fonte para o dispositivo de destino.
[0189] Em alguns exemplos, podem ser emitidos dados criptados a partir da interface de saída para um dispositivo de armazenamento. De modo similar, podem ser acessados dados criptados a partir do dispositivo de armazenamento pela interface de entrada. O dispositivo de armazenamento pode incluir qualquer um dentre uma variedade de mídia de armazenamento de dados distribuídos ou acessados localmente tal como um disco rígido, discos de Blu-ray, DVDs, CD-ROMs, memória rápida, memória volátil ou não volátil ou qualquer outra meios de armazenamento digital adequada para armazenar dados de vídeo criptados. Em um exemplo adicional, o dispositivo de armazenamento pode corresponder a um servidor de arquivo ou outro dispositivo de armazenamento intermediário que pode armazenar o vídeo criptado gerado pelo dispositivo de fonte. O dispositivo de destino pode acessar dados de vídeo armazenados a partir do dispositivo de armazenamento por meio de transmissão ou transferência por download. O servidor de arquivos pode ser qualquer tipo de servidor com capacidade para armazenar dados de vídeo criptados e transmitir esses dados de vídeo criptados 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 anexado à rede (NAS) ou uma unidade de disco local. O dispositivo de destino pode acessar os dados de vídeo criptado através de qualquer conexão de dados padrão, incluindo uma conexão com a Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão com fio (por exemplo, DSL, modem de cabo, etc.) ou uma combinação de ambos que seja adequada para acessar dados de vídeo criptado armazenados em um servidor de arquivos. A transmissão de dados de vídeo criptados a partir do dispositivo de armazenamento pode ser uma transmissão de transferência, uma transmissão de transferência por download ou uma combinação das mesmas.
[0190] As técnicas dessa revelação não estão necessariamente limitadas a aplicações ou definições sem fio. As técnicas podem ser aplicadas à codificação de vídeo visando dar apoio a qualquer uma dentre uma variedade de aplicações de multimídia, tais como difusões de televisão aberta, transmissões de televisão a cabo, transmissões de televisão por satélite, transmissões contínuas de vídeo pela Internet, tais como transmissão contínua adaptativa dinâmica através de HTTP (DASH), vídeo digital que é criptado em uma mídia de armazenamento de dados, decodificação de vídeo digital armazenado em uma mídia de armazenamento de dados, ou outras aplicações. Em alguns exemplos, o sistema pode ser configurado para suportar transmissão de vídeo unidirecional ou bidirecional para suportar aplicações como difusão de vídeo, reprodução de vídeo, difusão de vídeo e/ou telefonia por vídeo.
[0191] Em um exemplo, o dispositivo-fonte inclui uma fonte de vídeo, um encriptador de vídeo e uma interface de saída. O dispositivo de destino pode incluir uma interface de entrada, um decodificador de vídeo e um dispositivo de exibição. O encriptador de vídeo de dispositivo de fonte pode ser configurado para aplicar as técnicas reveladas no presente documento, em outros exemplos, um dispositivo de fonte e um dispositivo de destino podem incluir outros componentes ou disposições. Por exemplo, o dispositivo-fonte pode receber dados de vídeo a partir de uma fonte de vídeo externa, como uma câmera externa. Da mesma forma, o dispositivo de destino pode fazer interface com um dispositivo de exibição externo, ao invés de incluir um dispositivo de exibição integrado.
[0192] O sistema exemplificativo acima é meramente um exemplo. Os conjuntos de técnicas para processar dados de vídeo em paralelo podem ser realizados por qualquer dispositivo de criptação e/ou decodificação de vídeo digital. Embora, de modo geral, as técnicas desta revelação sejam realizadas por um dispositivo de criptação de vídeo, as técnicas também podem ser realizadas por um encriptador/decodificador de vídeo denominado tipicamente de "CODEC". Além disso, as técnicas desta revelação também podem ser realizadas por um pré-processador de vídeo. O dispositivo-fonte 12 e o dispositivo de destino 14 são simplesmente exemplos de tais dispositivos de codificação nos quais o dispositivo-fonte 12 gera dados de vídeo codificados para transmissão para o dispositivo de destino 14. Em alguns exemplos, os dispositivos-fonte e de destino podem operar de modo substancialmente simétrico de modo que cada um dos dispositivos inclua componentes de criptação e decodificação de vídeo. Por conseguinte, os sistemas exemplificativos podem suportar transmissão de vídeo unidirecional ou bidirecional entre dispositivos de vídeo, por exemplo, para transmissão contínua de vídeo, reprodução de vídeo, radiodifusão de vídeo ou telefonia por vídeo.
[0193] A fonte de vídeo pode incluir um dispositivo de captura de vídeo, tal como, uma câmera de vídeo, um arquivo de vídeo que contém um vídeo anteriormente capturado e/ou uma interface de alimentação de vídeo para receber vídeo de um fornecedor de conteúdo de vídeo. Como uma alternativa adicional, a fonte de vídeo pode gerar dados com base em gráficos de com o vídeo de fonte, ou uma combinação de vídeo ao vivo, vídeo arquivado e vídeo gerado por computador. Em alguns casos, se a fonte de vídeo é uma câmera de vídeo, o dispositivo de fonte e o dispositivo de destino podem formar os chamados telefones com câmera ou telefones com vídeo. No entanto, conforme mencionado acima, as técnicas descritas nesta revelação podem ser aplicáveis à codificação de vídeo em geral, e podem ser aplicadas a aplicações sem fio e/ou cabeadas. Em cada caso, o vídeo capturado, pré-capturado ou gerado por computador pode ser criptado pelo encriptador de vídeo. As informações de vídeo criptadas podem, então, ser emitidas pela interface de saída para o meio legível por computador.
[0194] Conforme notado, o meio legível por computador pode incluir meios transitórios, como uma transmissão por difusão sem fio ou por difusão com fio ou meios de armazenamento (ou seja, meios de armazenamento não transitórios), como um disco rígido, unidade flash, disco compacto, disco de vídeo digital, disco Blu-ray ou outros meios legíveis por computador. Em alguns exemplos, um servidor de rede (não mostrado) pode receber dados de vídeo criptados a partir do dispositivo-fonte e fornecer os dados de vídeo criptados para o dispositivo de destino, por exemplo, por meio de transmissão de rede. De modo similar, um dispositivo de computação de uma instalação de produção de meio, como uma instalação de rotulação de disco, pode receber dados de vídeo criptados a partir do dispositivo- fonte e produzir um disco que contém os dados de vídeo criptados. Portanto, o meio legível por computador pode ser entendido como incluindo um ou mais meios legíveis por computador de certo número de formas, em vários exemplos.
[0195] A interface de entrada do dispositivo de destino recebe informações provenientes do meio legível por computador. As informações do meio legível por computador podem incluir informações de sintaxe definidas pelo encriptador de vídeo, que também é usado pelo decodificador de vídeo, que inclui elementos de sintaxe que descrevem características e/ou processamento de blocos e outras unidades codificadas, por exemplo, um grupo de figurações (GOP). Um dispositivo de exibição exibe os dados de vídeo decodificados para um usuário e pode compreender qualquer um dentre uma variedade de dispositivos de visores como um tubo de raio de cátodo (CRT), um visor de cristal líquido (LCD), um visor de plasma, um visor de diodo emissor de luz orgânico (OLED) ou outro tipo de dispositivo de exibição. Várias modalidades da invenção foram descritas.
[0196] Os detalhes específicos do dispositivo de criptação 104 e do dispositivo de decodificação 112 são mostrados na Figura 16 e na Figura 17, respectivamente. A Figura 1 6 é um diagrama de blocos que ilustra um dispositivo de criptação 104 exemplificativo que pode implantar uma ou mais das técnicas descritas nessa revelação. O dispositivo de criptação 104 pode, por exemplo, gerar as estruturas de sintaxe descritas no presente documento (por exemplo, as estruturas de sintaxe de um VPS, SPS, PPS ou outros elementos de sintaxe). O dispositivo de criptação 104 pode realizar codificação por intraprevisão e interprevisão de blocos de vídeo dentro das fatias de vídeo. Conforme descrito anteriormente, a intracodificação conta, pelo menos em parte, com previsão espacial para reduzir ou remover redundância espacial dentro de um quadro ou figuração de vídeo determinado. A intercodificação conta, pelo menos em parte, com previsão temporal para reduzir ou remover redundância temporal dentro de quadros adjacentes ou próximos de uma sequência de vídeo. O intramodo (modo I) pode se referir a qualquer um dentre os diversos modos de compressão com base espacial, intermodos, tais como previsão unidirecional (modo P) ou biprevisão (modo B), pode se referir a qualquer um dentre os diversos modos de compressão com base temporal.
[0197] O dispositivo de criptação 104 inclui uma unidade de particionamento 35, uma unidade de processamento de previsão 43, uma unidade de filtro 63, uma memória de figuração 64, um somador 50, uma unidade de processamento de transformada 52, uma unidade de quantização 54 e a unidade de criptação por entropia 56. A unidade de processamento de previsão 41 inclui unidade de estimativa de movimento 42 uma unidade de compensação de movimento 44 e uma unidade de processamento de intraprevisão 46. Para a reconstrução do bloco de vídeo, o dispositivo de criptação também inclui a unidade de quantização inversa 58, a unidade de processamento de transformada inversa 60 e o somador 62. A unidade de filtro 63 é destinada a representar um ou mais filtros em circuito como um filtro de desbloqueio, um filtro de circuito adaptativo (ALF) e um filtro de deslocamento adaptativo de amostra (SAO). Embora a unidade de filtro 63 seja mostrada na Figura 16 como sendo um filtro em circuito, em outras configurações, a unidade de filtro 63 pode ser implantada como um filtro pós-circuito. Um dispositivo de pós- processamento 57 pode realizar processamento adicional em dados de vídeo criptados gerados pelo dispositivo de criptação 104. Em alguns casos, as técnicas de revelação podem ser implantadas pelo dispositivo de criptação 104. Em outros casos, contudo, uma ou mais das técnicas dessa revelação podem ser implantadas pelo dispositivo de pós- processamento 57.
[0198] Conforme mostrado na Figura 16, o dispositivo de criptação 104 recebe dados de vídeo, e a unidade de particionamento 35 particiona os dados em blocos de vídeo. O particionamento também pode incluir um particionamento em fatias, segmentos de fatia, cascata ou outras unidades maiores, assim como o particionamento de bloco de vídeo, por exemplo, de acordo com uma estrutura de árvore quadrática de LCUs e CUs. O dispositivo de criptação 104 geralmente ilustra os componentes que codificam blocos de vídeo dentro de uma fatia de vídeo a ser criptada. A fatia pode ser dividida em múltiplos blocos de vídeo (e possivelmente em conjuntos de blocos de vídeo denominados figurações lado a lado). A unidade de processamento de previsão 41 também pode selecionar um dentre um pluralidade de modos de codificação possíveis, como um dentre uma pluralidade de modos de intracodificação ou um dentre uma pluralidade de modos de intercodificação, para o bloco de vídeo atual com base nos resultados de erro (por exemplo, taxa de codificação e o nível de distorção e similares). A unidade de processamento de previsão 41 pode fornecer o bloco intra ou intercodificado resultante para o somador 50 para gerar os dados de bloco residual e para o somador 62 para reconstruir o bloco criptado para o uso como uma figuração de referência.
[0199] A unidade de processamento de intraprevisão 46 dentro da unidade de processamento de previsão 41 pode realizar a codificação intrapreditiva do bloco de vídeo atual em relação a um ou mais blocos próximos no mesmo quadro ou fatia como o bloco atual a ser codificado para fornecer a compressão espacial. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 dentro da unidade de processamento de previsão 41 realizam codificação 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.
[0200] A unidade de estimativa de movimento 42 pode ser configurada para determinar o modo de interprevisão para uma fatia de vídeo de acordo com uma padronização predeterminada para uma sequência de vídeo. A padronização predeterminada pode designar fatias de vídeo na sequência como fatias P, fatias B ou fatias GPB. 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 propósitos de conceito. A estimativa de movimento, realizada pela unidade de estimativa de movimento 42, é o processo de geração de vetores de movimento, que estima o movimento para blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar que o deslocamento de uma unidade de previsão (PU) de um bloco de vídeo dentro de um quadro ou figuração de vídeo atual em relação a um bloco preditivo dentro de uma figuração de referência.
[0201] Um bloco preditivo é um bloco que se encontra em correspondência muito próxima à PU do bloco de vídeo a ser codificado, em termos de diferença de pixels, que pode ser determinada pelo somatório da diferença absoluta (SAD), pelo somatório da diferença quadrada (SSD) ou por outras medidas de diferença. Em alguns exemplos, o dispositivo de criptação 104 calcula valores para posições de pixel de número subinteiro de figurações de referência armazenados em memória de figuração 64, por exemplo, o dispositivo de criptação 104 pode interpolar valores de posições a um quarto de pixel, posições a um oitavo de pixel ou outras posições de pixel fracionais da figuração de referência. Portanto, a unidade de estimativa de movimento 42 pode realizar uma busca de movimento em relação a todas as posições de pixel e posições fracionadas de pixel e emitir um vetor de movimento com precisão fracionada de pixel.
[0202] A unidade de estimativa de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia intercodificada pela comparação da posição da PU em relação à 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 uma ou mais figurações de referência armazenadas na memória de figuração 64. A unidade de estimativa de movimento 42 envia o vetor de movimento calculado para a unidade de criptação por entropia 56 e a unidade de compensação de movimento 44.
[0203] A compensação de movimento, realizada pela unidade de compensação de modo 44, pode envolver obter ou gerar o bloco preditivo com base no vetor de movimento determinado pela estimativa de movimento, possivelmente realizando interpolações à precisão de subpixel. Mediante o recebimento do vetor de movimento para o PLT do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco preditivo para qual o vetor de movimento aponta em uma das listas de figurações de referência. O dispositivo de criptação 104 forma um bloco de vídeo residual subtraindo-se valores de pixel do bloco preditivo dos valores de pixel do bloco de vídeo atual que está sendo codificado, o que forma a diferença de valores de pixel. Os valores de diferença de pixel formam dados residuais para o bloco, e podem incluir tanto componentes de diferença de luma quanto de croma. O somador 50 representa o componente ou os componentes que realizam essa operação de subtração. A unidade de seleção de movimento 44 também pode gerar elementos de sintaxe associados aos blocos de vídeo e a fatia de vídeo para uso pelo dispositivo de decodificação 112 na decodificação dos blocos de vídeo da fatia de vídeo.
[0204] A unidade de intraprevisão 46 pode intraprever ou calcular um bloco atual, como uma alternativa à interprevisão realizada pela unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44, conforme descrito acima. Em particular, a unidade de processamento de intraprevisão 46 pode determinar um modo de intraprevisão a ser usado usar para criptar um bloco atual. Em alguns exemplos, a unidade de processamento de intraprevisão 46 pode codificar um bloco atual com o uso de vários modos intraprevisões, por exemplo, durante passos de codificação separados e a unidade de processamento de intraprevisão 46 pode selecionar um modo de intraprevisão apropriado para usar a partir dos modos testados. Por exemplo, a unidade de intraprevisão 46 pode calcular valores de distorção de taxa com o uso de uma análise de distorção de taxa para os vários modos de intraprevisão testados e selecionar o modo de intraprevisão que tem as melhores características de distorção de taxa entre os modos testados. A análise de distorção de taxa geralmente determina uma quantidade de distorção (ou erro) entre um bloco criptado e um bloco original não criptado que foi criptado para produzir o bloco criptado, bem como uma taxa de bits (isto é, vários bits) usados para produzir o bloco criptado. A unidade de processamento de intraprevisão 46 pode calcular razões a partir de distorções e taxas para os vários blocos criptados para determinar qual modo de intraprevisão exibe o melhor valor de distorção de taxa para o bloco.
[0205] Em qualquer caso, depois de selecionar um modo de intraprevisão para um bloco, a unidade de intraprevisão 46 pode fornecer informações que indicam o modo de intraprevisão selecionado para o bloco à unidade de criptação por entropia 56. A unidade de criptação por entropia 56 pode criptar as informações que indicam o modo de intraprevisão selecionado. O dispositivo de criptação 104 pode incluir na corrente de bits definições de dados de configuração de contextos de criptação para vários blocos assim como indicações de um modo de intraprevisão mais provável, uma tabela de índice de modo de intraprevisão, e uma tabela de índice de modo de intraprevisão modificada para usar para cada um dos contextos. Os dados de configuração de corrente de bits podem incluir uma pluralidade de tabelas de índice de modo de intraprevisão e uma pluralidade de tabelas de índice de modo de intraprevisão modificada (também chamadas de tabelas de mapeamento de palavra de código).
[0206] Após a unidade de processamento de previsão 41 gerar o bloco preditivo para o bloco de vídeo atual por meio tanto de interprevisão quanto de intraprevisão, o dispositivo de criptação 104 forma um bloco de vídeo residual subtraindo-se o bloco preditivo do bloco de vídeo atual. 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 distinta (DCT) ou uma transformada conceitualmente semelhante. A unidade de processamento de transformada 52 pode converter os dados de vídeo residuais a partir de um domínio de pixel a um domínio de transformada, como um domínio de frequência.
[0207] A unidade de processamento de transformada 52 pode enviar o coeficiente de transformada resultante para a unidade de quantização 54. A unidade de quantização 54 quantiza o coeficiente de transformada para reduzir ainda mais 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 ajustando-se 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 coeficientes de transformada quantizados. Alternativamente, a unidade de criptação por entropia 56 pode realizar a varredura.
[0208] Após a quantização, a unidade de criptação por entropia 56 cripta por entropia o coeficiente de transformada quantizado. Por exemplo, uma unidade de criptação por entropia 56 pode realizar codificação de comprimento variável adaptativa a contexto (CAVLC), codificação aritmética binária adaptativa a contexto (CABAC), codificação aritmética binária adaptativa a contexto com base em sintaxe (SBAC), codificação por entropia de particionamento de intervalo de probabilidade (PIPE) ou outra técnica de criptação por entropia. Após a criptação por entropia pela unidade de criptação por entropia 56, o corrente de bits codificado pode ser transmitido para o dispositivo de dispositivo de decodificação 112 ou arquivado para transmissão ou recuperação posterior pelo dispositivo de decodificação 112. A unidade de criptação por entropia 56 pode também codificar por entropia os vetores de movimento e os outros elementos de sintaxe para a fatia de vídeo atual que é codificada.
[0209] A unidade de quantização regredir 58 e a unidade de processamento de transformada regredir 60 aplicam quantização regredir e transformada regredir, respectivamente, para reconstruir o bloco residual no domínio de pixels, 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 adicionando-se o bloco residual a um bloco preditivo de uma dentre as figurações de referência dentro de uma lista de figurações 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 valores de pixel de número subinteiro para uso na estimativa de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de previsão de movimento compensado produzido pela unidade de compensação de movimento 44 para produzir um bloco de referência para o armazenamento na memória de quadro 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 interprever um bloco em um quadro de vídeo subsequente ou figuração.
[0210] Desse modo, o dispositivo de criptação 104 da Figura 16 representa um exemplo de um encriptador de vídeo configurado para gerar sintaxe para corrente de bits de vídeo criptada. O dispositivo de criptação 104 pode, por exemplo, gerar os conjuntos de parâmetros VPS, SPS e PPS conforme descrito acima, sendo que o dispositivo de criptação 104 pode realizar qualquer uma das técnicas descritas no presente documento, o que inclui os processos descritos acima com relação às Figuras 7, 8, 10, 14 e 15. As técnicas dessa revelação foram descrita, de um modo geral, em relação ao dispositivo de criptação 104, mas conforme mencionado acima, algumas das técnicas dessa revelação podem também ser implantadas pelo dispositivo de pós-processamento 57.
[0211] A Figura 17 é um diagrama de blocos que ilustra um dispositivo de decodificação 112 exemplificativo. O dispositivo de decodificação 112 inclui uma unidade de decodificação por entropia 80, unidade de processamento de previsão 81, unidade de quantização inversa 86, unidade de processamento de transformada inversa 88, somador 90, unidade de filtro 91 e memória de figuração 92. A unidade de processamento de previsão 81 inclui uma unidade de compensação de movimento 82 e uma unidade de processamento de intraprevisão 84. O dispositivo de decodificação 112 pode, em alguns exemplos, realizar uma passagem de decodificação geralmente recíproca à passagem de criptação descrita em relação ao dispositivo de criptação 104 proveniente da Figura 16.
[0212] Durante o processo de decodificação, o dispositivo de decodificação 112 recebe uma corrente de bits de vídeo criptada que representa blocos de vídeo de uma fatia de vídeo criptada e elementos de sintaxe associados enviados pelo dispositivo de criptação 104. Em algumas modalidades, o dispositivo de decodificação 112 pode receber uma corrente de bits de vídeo criptada a partir do dispositivo de criptação 104. Em algumas modalidades, o dispositivo de decodificação 112 pode receber a corrente de bits de vídeo criptada de uma entidade de rede 79, tal como um servidor, um elemento de rede ciente de mídia (MANE), um editor/emendador de vídeo ou outro dispositivo configurado para implantar uma ou mais das técnicas descritas acima. A entidade de rede 79 pode ou não incluir o dispositivo de criptação 104. Algumas das técnicas descritas nesta revelação podem ser implantadas por entidade de rede 79 antes de a entidade de rede 79 transmitir a corrente de bits de vídeo criptada para o dispositivo de decodificação 112. Em alguns sistemas de decodificação de vídeo, a entidade de rede 79 e o dispositivo de decodificação 112 podem ser partes de dispositivos separados, enquanto em outros casos, a funcionalidade descrita em relação à entidade de rede 79 pode ser realizada pelo mesmo dispositivo que compreende o dispositivo de decodificação 112.
[0213] A unidade de decodificação por entropia 80 do dispositivo de decodificação 112 decodifica por entropia a corrente 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 previsão 81. O dispositivo de decodificação 112 pode receber os elementos de sintaxe no nível de fatia de vídeo e/ou no nível de bloco de vídeo. A unidade de decodificação por entropia 80 pode processar e analisar tanto elementos de sintaxe de comprimento fixo quanto elementos de sintaxe de comprimento variável em um ou mais conjuntos de parâmetros, tal como VPS, SPS e PPS.
[0214] Quando a fatia de vídeo for codificada como uma fatia intracodificada (T), a unidade de processamento de intraprevisão 84 da unidade de processo de previsão 81 pode gerar dados de previsão para um bloco de vídeo da fatia de vídeo atual com base em um modo de intraprevisão sinalizado e dados provenientes de blocos decodificados anteriormente do quadro ou figuração atual. Quando o quadro de vídeo for codificado como uma fatia intercodificada (isto é, B, P ou GPB), a unidade de compensação de movimento 82 da unidade de processamento de previsã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 a partir da unidade de decodificação por entropia 80. Os blocos preditivos podem ser produzidos a partir de uma das figurações de referência dentro de uma lista de figuração de referência. O dispositivo de decodificação 112 pode construir as listas de quadro de referência, a Lista 0 e a Lista 1, com o uso de técnicas de construção padrão com base em figurações de referência armazenadas na memória de figuração 92.
[0215] A unidade de compensação de movimento 82 determina informações de previsão para um bloco de vídeo da fatia de vídeo atual analisando-se os vetores de movimento e outros elementos de sintaxe, e usa as informações de previsão para produzir os blocos preditivos para o bloco de vídeo atual em decodificação. Por exemplo, a unidade de compensação de movimento 82 usa uma parte dos elementos de sintaxe recebidos para determinar um modo de previsão (por exemplo, intra- ou interprevisão) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de interprevisão (por exemplo, fatia B, fatia P ou fatia GPB), informações de construção para uma ou mais dentre as listas de figurações de referência para a fatia, vetores de movimento para cada bloco de vídeo intercriptado da fatia, situações de interprevisão para cada bloco de vídeo intercodificado da fatia e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[0216] A unidade de compensação de movimento 82 também pode realizar interpolação com base em filtros de interpolação. A unidade de compensação de movimento 82 por usar filtros de interpolação conforme usado pelo dispositivo de criptação 104 durante a criptação dos blocos de vídeo para calcular valores interpolados 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 dispositivo de criptação 104 a partir dos elementos de sintaxe e pode usar os filtros de interpolação para produzir blocos preditivos.
[0217] A unidade de quantização inversa 86 quantiza inversamente, isto é, desquantiza, os coeficientes de transformada quantizada fornecidos na corrente 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 104 para cada bloco de vídeo na fatia de vídeo para determinar um grau de quantização e, de modo similar, um grau de quantização inversa que deve ser aplicado. A unidade processamento de transformada inversa 88 aplica uma transformada inversa (por exemplo, uma DCT inversa ou outra transformada inversa adequada), uma transformada de número inteiro inversa ou um processo de transformada inversa conceitualmente similar aos coeficientes de transformada a fim de produzir blocos residuais no domínio de pixels.
[0218] Após a unidade de compensação de movimento 82 gerar o bloco preditivo para o bloco de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe, o decodificador de vídeo 12 forma um bloco de vídeo decodificado somando-se os blocos residuais provenientes 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 em circuito (tanto no circuito de codificação quanto após o circuito de codificação) também podem ser usados para suavizar as transições de pixel, ou, de outro modo, melhorar a qualidade de vídeo. A unidade de filtro 91 é destinada a representar um ou mais filtros em circuito como um filtro de desbloqueio, um filtro de circuito adaptativo (ALF) e um filtro de deslocamento adaptativo de amostra (SAO). Embora a unidade de filtro 91 seja mostrada na Figura 17 como sendo um filtro em circuito, em outras configurações, a unidade de filtro 91 pode ser implantada como um filtro pós-circuito. Os blocos de vídeo decodificados em um quadro ou figuração determinada são, então, armazenados na memória de figuração 92, que armazena figurações de referência usadas para a compensação de movimento subsequente. A memória de figuração 92 também armazena vídeo decodificado para apresentação posterior em um dispositivo de exibição, tal como dispositivo de destino de vídeo 122 mostrado na Figura 1.
[0219] Na descrição anterior, os aspectos da aplicação são descritos com referência a modalidades específicas dos mesmos, mas aqueles indivíduos versados na técnica irão reconhecer que a invenção não se limita às mesmas. Portanto, apesar de as modalidades ilustrativas da aplicação terem sido descritas em detalhes no presente documento, deve ser compreendido que os conceitos inventivos podem ser, de outro modo, incorporados e empregados de modo variado, e que as realizações anexas se destinam a serem interpretadas para incluir tais variações, exceto conforme limitado pela técnica anterior. Os vários recursos e aspectos da invenção descrita acima podem ser usados individual ou conjuntamente. Adicionalmente, as modalidades podem ser utilizadas em qualquer número de ambientes e aplicações além daquelas descritas no presente documento sem se afastar do espírito mais amplo e do escopo do relatório descritivo. Consequentemente, o relatório descritivo e os desenhos são considerados ilustrativos em vez de restritivos. Para os propósitos de ilustração, os métodos foram descritos em uma ordem particular. Deve ser verificado que em modalidades alternativas, os métodos podem ser realizados em uma ordem diferente daquela descrita.
[0220] Quando componentes são descritos como "configurado para" realizar certas operações, tal configuração pode ser alcançada, por exemplo, projetando-se circuitos eletrônicos ou outro hardware para realizar a operação, programando-se circuitos eletrônicos programáveis (por exemplo, microprocessadores, ou outros circuitos eletrônicos adequados) para realizar a operação, ou qualquer combinação dos mesmos.
[0221] Os vários blocos lógicos ilustrativos, módulos, circuitos e etapas de algoritmos descritos em conexão com as modalidades reveladas no presente documento podem ser implantados como hardware eletrônico, software de computador ou combinações de ambos. A fim de ilustrar claramente essa intercambiabilidade de hardware e software, vários componentes, blocos, módulos, circuitos e etapas ilustrativos foram descritos acima geralmente em termos da funcionalidade dos mesmos. Se tal funcionalidade for implantada como hardware ou software, depende das restrições de projeto e pedido particulares impostas ao sistema geral. Pessoas versadas na técnica podem implantar a funcionalidade descrita em modos variáveis para cada aplicação em particular, porém tais decisões de implantação não devem ser interpretadas como que por se afastar do escopo da presente revelação.
[0222] As técnicas descritas no presente documento podem também ser implantadas em hardware eletrônico, software de computador, firmware, ou qualquer combinação dos mesmos. Tais técnicas podem ser implantadas em qualquer um dentre uma variedade de dispositivos, tais como computadores de propósito geral, aparelhos de telefone de dispositivo de comunicação sem fio ou dispositivos de circuito integrado que têm múltiplos usos incluindo a aplicação em aparelhos de telefone de dispositivo de comunicação sem fio e outros dispositivos. Quaisquer recursos descritos como módulos ou componentes podem ser implantados juntos em um dispositivo de lógica integrada ou separadamente como dispositivos de lógica distinta, porém, interoperável. Caso sejam implantadas em software, as técnicas podem ser realizadas pelo menos em parte por uma mídia de armazenamento de dados legível por computador que compreende código de programa incluindo instruções que, quando executadas, realizam um ou mais dos métodos descritos acima. A mídia de armazenamento de dados legível por computador pode formar parte de um produto de programa de computador, que pode incluir materiais de empacotamento. A mídia legível por computador pode compreender mídias de armazenamento de dados ou memória, tais como memória de acesso aleatório (RAM), tal como memória de acesso aleatório dinâmica síncrona (SDRAM), memória somente de leitura (ROM), memória de acesso aleatório não volátil (NVRAM), memória somente de leitura programável eletricamente apagável (EEPROM), memória Flash, mídias de armazenamento de dados magnéticos ou ópticos e similares. As técnicas, adicional ou alternativamente, podem ser realizadas, pelo menos em parte, por uma mídia de comunicação legível por computador que transporta ou comunica o código de programa na forma de instruções ou estruturas de dados e que podem ser acessadas, lidas e/ou executadas por um computador, tais como ondas ou sinais propagados.
[0223] O código de programa pode ser executado por um processador, que pode incluir um ou mais processadores, tais como um ou mais processadores de sinal digital (DSPs), microprocessadores de propósito geral, circuitos integrados de aplicação específica (ASICs), matrizes lógicas programáveis em campo (FPGAs) ou outro conjunto de circuitos lógico discreto ou integrado equivalente. Tal processador pode ser configurado para realizar qualquer uma dentre as técnicas descritas na presente revelação. Um processador de propósito geral pode ser um microprocessador, porém alternativamente, o processador pode ser qualquer processador, controlador, microcontrolador ou máquina de estado convencional. Um processador também pode ser implantado como uma combinação de dispositivos de computação (por exemplo, uma combinação de um DSP e um microprocessador, uma pluralidade de microprocessadores, um ou mais microprocessadores em combinação com um núcleo de DSP ou qualquer outra tal configuração). Correspondentemente, o termo "processador", conforme usado no presente documento pode se referir a qualquer uma dentre as estruturas supracitadas, qualquer combinação das estruturas supracitadas, ou qualquer outra estrutura ou aparelho adequado para a implantação das técnicas descritas no presente documento. Além disso, em alguns aspectos, a funcionalidade descrita no presente documento pode ser fornecida dentro de módulos de software ou módulos de hardware dedicados configurados para criptar e decodificar ou incorporados em um decodificador- encriptador de vídeo combinado (CODEC).

Claims (11)

1. Método de decodificação de dados de vídeo, que o método compreende: acessar um fluxo de bits de vídeo codificado de acordo com o padrão HEVC ou uma extensão do mesmo, sendo que o fluxo de bits de vídeo codificado inclui uma ou mais camadas de aperfeiçoamento e um conjunto de parâmetros de vídeo (VPS) que define parâmetros do fluxo de bits de vídeo codificado; determinar se um elemento de sintaxe vps_num_video_signal_info_minus1 indicativo de um número de estruturas de sintaxe de informações de sinal de vídeo video_signal_info() fornecido no fluxo de bits de vídeo codificado está presente no VPS; quando for determinado que vps_num_video_signal_info_minus1 não está presente no VPS; determinar se uma camada de base está incluída no fluxo de bits de vídeo codificado ou se a camada de base deve ser recebida a partir de uma fonte externa, caracterizado pelo fato de compreender adicionalmente: determinar que o número de estruturas de sintaxe de informações de sinal de vídeo video_signal_info() inclusas no VPS é um primeiro valor quando for determinado que a camada de base está inclusa no fluxo de bits de vídeo codificado, em que o primeiro valor é igual a um número máximo de camadas do fluxo de bits de vídeo codificado, ou um segundo valor quando for determinado que a camada de base deve ser recebida a partir da fonte externa, em que o segundo valor é igual a um número máximo de camadas do fluxo de bits de vídeo codificado menos um.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que uma estrutura de sintaxe de informações de sinal de vídeo video_signal_info() é atribuída a cada uma das camadas inclusas no fluxo de bits de vídeo codificado, e em que nenhuma estrutura de sintaxe de informações de sinal de vídeo video_signal_info() é atribuída à camada de base que deve ser recebida a partir da fonte externa.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a camada de base fornecida a partir da fonte externa é codificada de acordo com um segundo padrão que é diferente do padrão HEVC ou uma extensão do mesmo.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que o segundo padrão inclui o padrão de codificação de vídeo avançada AVC.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o método é executável em um dispositivo de comunicação sem fio, em que o dispositivo de comunicação sem fio compreende: uma memória configurada para armazenar os dados de vídeo; um processador configurado para executar instruções para processar os dados de vídeo armazenados na memória; e um receptor configurado para receber o fluxo de bits de vídeo codificado.
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que o dispositivo de comunicação sem fio é um telefone celular e o fluxo de bits de vídeo codificado é modulado de acordo com um padrão de comunicação de telefonia celular.
7. Memória legível por computador, caracterizada pelo fato de que tem armazenada na mesma instruções que, quando executadas por um processador, realizam o método conforme definido em qualquer uma das reivindicações 1 a 6.
8. Aparelho para decodificação de dados de vídeo, compreendendo: meios para acessar um fluxo de bits de vídeo codificado de acordo com o padrão HEVC ou uma extensão do mesmo, sendo que o fluxo de bits de vídeo codificado inclui uma ou mais camadas de aperfeiçoamento e um conjunto de parâmetros de vídeo (VPS) que define parâmetros do fluxo de bits de vídeo codificado; meios para determinar se um elemento de sintaxe vps_num_video_signal_info_minus1 indicativo de um número de estruturas de sintaxe de informações de sinal de vídeo video_signal_info() fornecido no fluxo de bits de vídeo codificado está presente no VPS; meios para determinar se uma camada de base está incluída no fluxo de bits de vídeo codificado ou se a camada de base é recebida de uma fonte externa, quando for determinado que vps_num_video_signal_info_minus1 não está presente no VPS, caracterizado pelo fato de compreender adicionalmente: meios para determinar o número de estruturas de sintaxe de informações de sinal de vídeo vídeo_signal_info() inclusas no VPS como sendo um primeiro valor quando for determinado que a camada de base está inclusa no fluxo de bits de vídeo codificado, em que o primeiro valor é igual a um número máximo de camadas do fluxo de bits de vídeo codificado, ou um segundo valor quando for determinado que a camada de base deve ser recebida a partir da fonte externa, em que o segundo valor é igual a um número máximo de camadas do fluxo de bits de vídeo codificado menos um.
9. Aparelho, de acordo com a reivindicação 8, caracterizado pelo fato de que uma estrutura de sintaxe de informações de sinal de vídeo vídeo_signal_info() é atribuída a cada uma das camadas inclusas no fluxo de bits de vídeo codificado, e em que nenhuma estrutura de sintaxe de informações de sinal de vídeo vídeo_signal_info() é atribuída à camada de base que deve ser recebida a partir da fonte externa.
10. Aparelho, de acordo com a reivindicação 8, caracterizado pelo fato de que a camada de base fornecida a partir da fonte externa é codificada de acordo com um segundo padrão, sendo que o segundo padrão é diferente do padrão HEVC ou uma extensão do mesmo.
11. Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de que o segundo padrão inclui o padrão de codificação de vídeo avançada AVC.
BR112016029762-8A 2014-06-20 2015-06-19 Método e aparelho de decodificação de dados de vídeo, e, memória legível por computador BR112016029762B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462015285P 2014-06-20 2014-06-20
US62/015,285 2014-06-20
US14/743,613 US20150373376A1 (en) 2014-06-20 2015-06-18 Systems and methods for selectively signaling different numbers of video signal information syntax structures in a parameter set
US14/743,613 2015-06-18
PCT/US2015/036615 WO2015196035A1 (en) 2014-06-20 2015-06-19 Systems and methods for selectively signaling different numbers of video signal information syntax structures in a parameter set

Publications (2)

Publication Number Publication Date
BR112016029762A2 BR112016029762A2 (pt) 2017-08-22
BR112016029762B1 true BR112016029762B1 (pt) 2024-03-19

Family

ID=

Similar Documents

Publication Publication Date Title
JP6441968B2 (ja) パラメータセットにおいて仮の参照デコーダパラメータをシグナリングするためのシステムおよび方法
BR112016029555B1 (pt) Sistemas e métodos para a realização seletiva de uma verificação de conformidade de sequência de bits
BR112015015802B1 (pt) Mensagens sei não aninhadas em codificação de vídeo
BR112016029751B1 (pt) Método e dispositivo para codificar um fluxo de bits de acordo com hevc escalonável, uma extensão 3d de hevc ou uma extensão de múltiplas vistas de hevc, e método e dispositivo para decodificar dados de vídeo de acordo com hevc escalonável, uma extensão 3d de hevc ou uma extensão de múltiplas vistas de hevc
BR112017020102B1 (pt) Processo de amostragem descendente para modo de previsão de modelo linear
BR112016022079B1 (pt) Método e aparelho para codificação e decodificação de dados de vídeo de acordo com um padrão de codificação de vídeo de alta eficiência (hevc), ou uma extensão de um padrão hevc, assim como memória legível por computador
BR112016008224B1 (pt) Escalabilidade de gama de cores com base em tabela de pesquisa tridimensional em codificação de vídeo de múltiplas camadas
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
BR112016030044B1 (pt) Codificação de vídeo de várias camadas
BR112014026745B1 (pt) Métodos para decodificar e codificar dados de vídeo, dispositivo de decodificação de vídeo para decodificar dados de vídeo e memória legível por computador
BR112016030377B1 (pt) Método e aparelho para converter informações de vídeo em código em um fluxo de bits, assim como memória legível por computador
TW202121899A (zh) 針對局部雙樹的調色板預測器更新
BR112020011099A2 (pt) intra-predição com pixels vizinhos distantes
BR112016030436B1 (pt) Mensagem de sei de ponto de recuperação em codecs de vídeo de múltiplas camadas
TW202203650A (zh) 解碼圖片緩衝器(dpb)操作和存取單元定界符(aud)
TW202341731A (zh) 自我調整膠片顆粒合成
BR112016029762B1 (pt) Método e aparelho de decodificação de dados de vídeo, e, memória legível por computador
BR112016030194B1 (pt) Codificação de vídeo de multi-camada
BR112016021476B1 (pt) Método e dispositivo para codificar dados de vídeo e memória legível por computador