BR112017007798B1 - Design de descritor hrd e modelo de buffer de fluxo de dados para transporte de extensões hevc - Google Patents
Design de descritor hrd e modelo de buffer de fluxo de dados para transporte de extensões hevc Download PDFInfo
- Publication number
- BR112017007798B1 BR112017007798B1 BR112017007798-1A BR112017007798A BR112017007798B1 BR 112017007798 B1 BR112017007798 B1 BR 112017007798B1 BR 112017007798 A BR112017007798 A BR 112017007798A BR 112017007798 B1 BR112017007798 B1 BR 112017007798B1
- Authority
- BR
- Brazil
- Prior art keywords
- hrd
- parameter
- hevc
- video
- syntax
- Prior art date
Links
Abstract
DESIGN DE DESCRITOR DE HRD E MODELO DE BUFFER DE FLUXO DE DADOS PARA TRANSPORTE DE EXTENSÕES DE HEVC. Um dispositivo de processamento de vídeo obtém um fluxo de dados compreendendo uma pluralidade de fluxos elementares e um temporizador de Codificação de Vídeo de Alta Eficiência (HEVC) e descritor de Decodificador de Referência Hipotética (HRD). O temporizador de HEVC e descritor de HDR compreende um elemento de sintaxe de índice de programação de entrega. O dispositivo de processamento de vídeo pode identificar, com base em um conjunto de parâmetros, um elemento de sintaxe em um arranjo de elementos de sintaxe em um conjunto de parâmetro de vídeo (VPS). O conjunto de parâmetros pode compreender um parâmetro tendo um valor igual a um valor do elemento de sintaxe de índice de programação alvo. O dispositivo de processamento de vídeo pode identificar, com base no índice especificado pelo elemento de sintaxe identificado, uma estrutura de sintaxe de parâmetros HRD particular em uma pluralidade de estruturas de sintaxe de parâmetros HRD como sendo aplicável a um fluxo elementar particular.
Description
[0001] Este pedido reivindica o benefício do Pedido de Patente Provisória dos EUA N ° 62/064,414, depositado em 15 de outubro de 2014, cujo conteúdo total é incorporado por referência.
[0002] Esta descrição refere-se a codificação e decodificação de vídeo.
[0003] As capacidades de vídeo digital podem ser incorporadas em uma vasta faixa de dispositivos, incluindo televisões digitais, sistemas de radiodifusão direta digital, sistemas de radiodifusão sem fios, assistentes digitais pessoais (PDAs), computadores portáteis ou de tabela, computadores tablet, leitores de livros eletrônicos, câmeras, dispositivos de gravação digital, leitores multimídia digitais, dispositivos de jogos de vídeo, consoles de jogos de vídeo, telefones celulares ou de satélite, chamados "telefones inteligentes", dispositivos de teleconferência de vídeo, dispositivos de streaming de vídeo e afins. Os dispositivos de vídeo digital implementam técnicas de compressão de vídeo, tais como as descritas nos padrões definidos por MPEG-2, MPEG-4, UIT-T H.263, UIT-T H.264/MPEG-4, Parte 10, Codificação de Vídeo Avançada AVC), o padrão de Codificação de Vídeo de Alta Eficiência (HEVC), e extensões de tais padrões. Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar informação de vídeo digital de forma mais eficiente implementando tais técnicas de compressão de vídeo.
[0004] As técnicas de compressão de vídeo realizam uma previsão espacial (intra-imagem) e/ou uma previsão temporal (inter-imagem) para reduzir ou remover redundância inerente em sequências de vídeo. Para a codificação de vídeo baseada em blocos, uma fatia de vídeo (ou seja, uma moldura de vídeo ou uma parte de uma moldura de vídeo) pode ser dividida em blocos de vídeo. Os blocos de vídeo em uma porção intra-codificada (I) de uma imagem são codificados utilizando a previsão espacial relativamente a amostras de referência em blocos vizinhos na mesma imagem. Os blocos de vídeo em uma fatia inter-codificada (P ou B) de uma imagem podem usar a previsão espacial com respeito a amostras de referência em blocos vizinhos na mesma imagem ou previsão temporal em relação a amostras de referência em outras imagens de referência. As imagens podem ser referidas como quadros.
[0005] A previsão espacial ou temporal resulta em um bloco preditivo para um bloco sendo codificado. Os dados residuais representam diferenças de pixel entre o bloco original sendo codificado e o bloco preditivo. Um bloco inter-codificado é codificado de acordo com um vector de movimento que aponta para um bloco de amostras de referência que formam o bloco preditivo e os dados residuais indicam a diferença entre o bloco codificado e o bloco preditivo. Um bloco intra-codificado é codificado de acordo com um modo intra-codificador e os dados residuais. Para compressão adicional, os dados residuais podem ser transformados a partir do domínio de pixel para um domínio de transformação, resultando em coeficientes residuais, que então podem ser quantificados.
[0006] Em geral, esta descrição refere-se à concepção de um descritor para sinalização de informação relacionada com o Decodificador Hipotético de Referência (HRD) e ao desenho de um modelo de buffer de Transporte MPEG- 2 (TS) para transporte de extensões HEVC. Tal como aqui descrito, um dispositivo de processamento de vídeo pode determinar um conjunto de parâmetros HRD aplicáveis a um fluxo elementar em um fluxo de dados do Grupo de Especialistas em Imagem em Movimento (MPEG)-2.
[0007] Em um aspecto, esta descrição descreve um método de processamento de dados de vídeo, compreendendo o método: a obtenção de um fluxo de dados compreendendo uma pluralidade de fluxos elementares e descritor de temporização de Codificação de Vídeo de Alta Eficiência (HEVC) e Decodificador Hipotético de Referência (HRD), em que o temporizador HEVC e o descritor HRD compreendem um elemento de sintaxe de índice de agenda de destino que indica um índice de um cronograma de distribuição; Identificar, com base em um conjunto de parâmetros, um elemento de sintaxe em um arranjo de elementos de sintaxe em um conjunto de parâmetros de vídeo (VPS), em que: o VPS compreende uma pluralidade de estruturas de sintaxe de parâmetros HRD, em que cada estrutura de sintaxe de parâmetros HRD respectiva da pluralidade de estruturas de sintaxe de parâmetros HRD compreende um respectivo conjunto de parâmetros HRD, cada elemento de sintaxe respectivo do arranjo de elementos de sintaxe especifica um índice de uma estrutura de sintaxe de parâmetros HRD na pluralidade de estruturas de sintaxe de parâmetros HRD e o conjunto de parâmetros compreende um parâmetro tendo Um valor igual a um valor do elemento de sintaxe do índice de planejamento de destino; E identificando, com base em um índice especificado pelo elemento de sintaxe identificado, uma estrutura de sintaxe de parâmetros HRD particular na pluralidade de estruturas de sintaxe de parâmetros HRD como sendo aplicáveis a um determinado fluxo elementar que é parte do ponto de operação, a pluralidade de fluxos elementares incluindo O fluxo elementar particular.
[0008] Em um outro aspecto, esta descrição descreve um método de processamento de dados de vídeo, compreendendo o método: a geração de um conjunto de parâmetros de vídeo (VPS) que inclui um arranjo de elementos de sintaxe e uma pluralidade de estruturas de sintaxe de parâmetros de Decodificador hipotético de referência (HRD) (HRD) em que: cada estrutura de sintaxe de parâmetros HRD respectiva da pluralidade de estruturas de sintaxe de parâmetros HRD compreende um respectivo conjunto de parâmetros HRD e cada elemento de sintaxe respectivo do arranjo de elementos de sintaxe especifica um índice de uma estrutura de sintaxe de parâmetros HRD na pluralidade de parâmetros HRD Estruturas de sintaxe; Gerar um descritor de temporização de Codificação de Vídeo de Alta Eficiência (HEVC) e HRD compreendendo um elemento de sintaxe de índice de programação de destino que indica um índice de uma programação de entrega; e gerar um fluxo de dados compreendendo uma pluralidade de fluxos elementares e descritor de temporização de Codificação de Vídeo de Alta Eficiência (HEVC) e HRD, em que um conjunto de parâmetros identifica um elemento de sintaxe no arranjo de elementos de sintaxe que especifica um índice de uma estrutura de sintaxe de parâmetros HRD particular aplicável ao fluxo elementar particular, a estrutura de sintaxe de parâmetros HRD particular sendo uma de uma pluralidade de estruturas de sintaxe de parâmetros HRD, a estrutura de sintaxe de parâmetros HRD sendo parte de um ponto de operação, o conjunto de parâmetros compreende um parâmetro com um valor igual a Um valor do elemento de sintaxe do índice de planejamento de destino.
[0009] Em outro aspecto, esta descrição descreve um dispositivo para processar dados de vídeo, compreendendo o dispositivo: uma memória configurada para armazenar os dados de vídeo; E um ou mais processadores configurados para: obter um fluxo de dados que compreende uma pluralidade de fluxos elementares e descritor de temporização de Codificação de Vídeo de Alta Eficiência (HEVC) e Decodificador Hipotético de Referência (HRD), em que o descritor de temporização HEVC e HRD compreendem um elemento de sintaxe de índice de programação alvo que indica um índice de um cronograma de distribuição, compreendendo as sequências elementares representações codificadas dos dados de vídeo; Identificar, com base em um conjunto de parâmetros, um elemento de sintaxe em um arranjo de elementos de sintaxe em um conjunto de parâmetros de vídeo (VPS), em que: o VPS compreende uma pluralidade de elementos de HRD, em que cada estrutura de sintaxe de parâmetros HRD respectiva da pluralidade de estruturas de sintaxe de parâmetros HRD compreende um respectivo conjunto de parâmetros HRD, cada elemento de sintaxe respectivo do arranjo de elementos de sintaxe especifica um índice de uma estrutura de sintaxe de parâmetros HRD na pluralidade de Estruturas de sintaxe de parâmetros HRD, e o conjunto de parâmetros compreende um parâmetro com um valor igual a um valor do elemento de sintaxe de índice de programação alvo; E identificar, com base em um índice especificado pelo elemento de sintaxe identificado, uma estrutura de sintaxe de parâmetros HRD particular na pluralidade de estruturas de sintaxe de parâmetros HRD como sendo aplicável a um determinado fluxo elementar que é parte do ponto de operação, a pluralidade de fluxos elementares incluindo O fluxo elementar particular.
[00010] Em outro aspecto, esta descrição descreve um dispositivo para processar dados de vídeo, compreendendo o dispositivo: uma memória configurada para armazenar os dados de vídeo; e um ou mais processadores configurados para: gerar um conjunto de parâmetros de vídeo (VPS) que inclui um arranjo de elementos de sintaxe e uma pluralidade de estruturas de sintaxe de parâmetros de Decodificador Hipotético de Referência (HRD), em que: cada estrutura de sintaxe de parâmetros HRD respectiva da pluralidade de Estrutura de sintaxe de parâmetros HRD compreende um respectivo conjunto de parâmetros HRD e cada elemento de sintaxe respectivo do arranjo de elementos de sintaxe especifica um índice de uma estrutura de sintaxe de parâmetros HRD na pluralidade de estruturas de sintaxe de parâmetros HRD; gerar um cronograma de codificação de vídeo de alta eficiência (HEVC) e um descritor de HRD compreendendo um elemento de sintaxe de índice de programação de destino que indica um índice de uma programação de entrega; E gerar um fluxo de dados que compreende uma pluralidade de fluxos elementares e o descritor de temporização de Codificação de Vídeo de Alta Eficiência (HEVC) e HRD, a pluralidade de fluxos elementares compreendendo uma representação codificada dos dados de vídeo, em que um conjunto de parâmetros identifica um elemento de sintaxe no arranjo de elementos de sintaxe que especifica um índice de uma estrutura de sintaxe de parâmetros HRD particular aplicável ao fluxo elementar particular, sendo a estrutura de sintaxe de parâmetros HRD particular uma da pluralidade de estruturas de sintaxe de parâmetros HRD, sendo a estrutura de sintaxe de HRD particular parte de uma operação, o conjunto de parâmetros compreende um parâmetro com um valor igual a um valor do elemento de sintaxe de índice de programação de destino.
[00011] Em outro aspecto, esta descrição descreve um dispositivo para processar dados de vídeo, o dispositivo compreendendo: meios para obter um fluxo de dados que compreende uma pluralidade de fluxos elementares e um Descritor de Temporização de codificação de vídeo de alta eficiência (HEVC) e Decodificador Hipotético de Referência (HRD), em que o descritor de temporização HEVC e HRD compreende um elemento de sintaxe de índice de programação de destino que indica um índice de uma programação de entrega; Meios para identificar, com base em um conjunto de parâmetros, um elemento de sintaxe em um arranjo de elementos de sintaxe em um conjunto de parâmetros de vídeo (VPS), em que: o VPS compreende uma pluralidade de estruturas de sintaxe de parâmetros HRD, em que cada estrutura de sintaxe de parâmetros HRD respectiva da pluralidade de estruturas de sintaxe de parâmetros HRD compreende um respectivo conjunto de parâmetros HRD, cada elemento de sintaxe respectivo do arranjo de elementos de sintaxe especifica um índice de uma estrutura de sintaxe de parâmetros HRD na pluralidade de estruturas de sintaxe de parâmetros HRD e o conjunto de parâmetros compreende um Parâmetro tendo um valor igual a um valor do elemento de sintaxe de índice de programação de destino; e meios para identificar, com base em um índice especificado pelo elemento de sintaxe identificado, uma estrutura de sintaxe de parâmetros HRD particular na pluralidade de estruturas de sintaxe de parâmetros HRD como sendo aplicável a um fluxo elementar particular que é parte do ponto de operação, a pluralidade de elementos elementares Incluindo o fluxo elementar particular.
[00012] Em um outro aspecto, esta descrição descreve um dispositivo para processar dados de vídeo, compreendendo o dispositivo: meios para gerar um conjunto de parâmetros de vídeo (VPS) que inclui um arranjo de elementos de sintaxe e uma pluralidade de estruturas de sintaxe de parâmetros de Decodificador hipotético de referência (HRD), em que: cada estrutura de sintaxe de parâmetros HRD respectiva da pluralidade de estruturas de sintaxe de parâmetros HRD compreende um conjunto respectivo de parâmetros HRD e cada elemento de sintaxe respectivo do arranjo de elementos de sintaxe especifica um índice de uma estrutura de sintaxe de parâmetros HRD na pluralidade de Estruturas de sintaxe de parâmetros HRD; Meios para gerar um descritor de temporização de Codificação de Vídeo de Alta Eficiência (HEVC) e Decodificador Hipotético de Referência (HRD) compreendendo um elemento de sintaxe de índice de programação de destino que indica um índice de uma programação de entrega; e meios para gerar um fluxo de dados compreendendo uma pluralidade de fluxos elementares e o descritor de temporização de Codificação de Vídeo de Alta Eficiência (HEVC) e HRD, em que um conjunto de parâmetros identifica um elemento de sintaxe no arranjo de elementos de sintaxe que especifica um índice de um HRD particular Estrutura de sintaxe de parâmetros HRD aplicável ao fluxo elementar particular, sendo a estrutura de sintaxe de parâmetros HRD particular uma das estruturas de sintaxe de parâmetros HRD, sendo a estrutura de sintaxe de parâmetros HRD particular parte de um ponto de operação, o conjunto de parâmetros compreende um parâmetro com um valor Igual a um valor do elemento de sintaxe do índice de planejamento de destino.
[00013] Em outro aspecto, esta divulgação descreve um meio de armazenamento legível por computador tendo armazenado no mesmo instruções que, quando executadas, fazem com que um ou mais processadores de um dispositivo para: obter um fluxo de dados compreendendo uma pluralidade de fluxos elementares e um descritor de temporização de Codificação de Vídeo de Alta Eficiência (HEVC) e Decodificador Hipotético de Referência (HRD), em que o descritor de temporização HEVC e HRD compreende um elemento de sintaxe de índice de programação de destino que indica um índice de uma programação de entrega; Identificar, com base em um conjunto de parâmetros, um elemento de sintaxe em um arranjo de elementos de sintaxe em um conjunto de parâmetros de vídeo (VPS), em que: o VPS compreende uma pluralidade de estruturas de sintaxe de parâmetros HRD, em que cada respectiva estrutura de sintaxe de parâmetros HRD da pluralidade de estruturas de sintaxe de parâmetros HRD compreende um respectivo conjunto de parâmetros HRD, cada elemento de sintaxe respectivo do arranjo de elementos de sintaxe especifica um índice de uma estrutura de sintaxe de parâmetros HRD na pluralidade de estruturas de sintaxe de parâmetros HRD e o conjunto de parâmetros compreende um parâmetro tendo Um valor igual a um valor do elemento de sintaxe do índice de planejamento de destino; e identificar, com base em um índice especificado pelo elemento de sintaxe identificado, uma estrutura de sintaxe de parâmetros HRD particular na pluralidade de estruturas de sintaxe de parâmetros HRD como sendo aplicável a um determinado fluxo elementar que é parte do ponto de operação, a pluralidade de fluxos elementares incluindo O fluxo elementar particular.
[00014] Em outro aspecto, esta divulgação descreve um meio de armazenamento legível por computador tendo armazenado no mesmo instruções que, quando executadas, provocam um ou mais processadores de um dispositivo para: gerar um conjunto de parâmetros de vídeo (VPS) que inclui um arranjo de elementos de sintaxe e uma pluralidade de estruturas de sintaxe de parâmetros de Decodificador Hipotético de Referência (HRD), em que: cada estrutura de sintaxe de parâmetros HRD respectiva da pluralidade de estruturas de sintaxe de parâmetros HRD compreende um respectivo conjunto de parâmetros HRD e cada elemento de sintaxe respectivo do arranjo de elementos de sintaxe especifica um índice de uma estrutura de sintaxe de parâmetros HRD na pluralidade de estruturas de sintaxe de parâmetros HRD; gerar um cronograma de codificação de vídeo de alta eficiência (HEVC) e um descritor de HRD compreendendo um elemento de sintaxe de índice de programação de destino que indica um índice de uma programação de entrega; e gerar um fluxo de dados que compreende uma pluralidade de fluxos elementares e o descritor de temporização de Codificação de Vídeo de Alta Eficiência (HEVC) e HRD, em que um conjunto de parâmetros identifica um elemento de sintaxe no arranjo de elementos de sintaxe que especifica um índice de uma determinada sintaxe de parâmetros HRD Estrutura de sintaxe de parâmetros HRD particular, a estrutura de sintaxe de parâmetros HRD particular sendo parte de um ponto de operação, o conjunto de parâmetros compreende um parâmetro com um valor igual a Um valor do elemento de sintaxe do índice de planejamento de destino.
[00015] Os detalhes de um ou mais exemplos da divulgação são apresentados nos desenhos anexos e na descrição abaixo. Outras características, objetos e vantagens serão evidentes a partir da descrição, desenhos e reivindicações.
[00016] A FIG. 1 é um diagrama de blocos que ilustra um sistema de codificação de vídeo de exemplo que pode utilizar as técnicas descritas nesta divulgação.
[00017] A FIG. 2 é um diagrama conceitual que ilustra extensões de modelo de decodificador de destino de sistema de transporte (T-STD) para operação de buffer de imagem codificada específica de partição de fluxo de bits (CPB).
[00018] A FIG. 3 é um diagrama de blocos que ilustra um codificador de vídeo de exemplo que pode implementar as técnicas descritas nesta divulgação.
[00019] A FIG. 4 é um diagrama de blocos que ilustra um decodificador de vídeo de exemplo que pode implementar as técnicas descritas nesta descrição.
[00020] A FIG. 5 é um fluxograma que ilustra um exemplo de operação de um codificador de vídeo, de acordo com uma técnica desta descrição.
[00021] A FIG. 6 é um fluxograma que ilustra uma operação de exemplo de um decodificador de vídeo, de acordo com uma técnica desta descrição.
[00022] A FIG. 7 é um fluxograma que ilustra um exemplo de operação de um codificador de vídeo para determinar um valor de um parâmetro, de acordo com uma técnica desta descrição.
[00023] Padrões de codificação de vídeo específicos especificam um modelo de armazenamento em buffer, que pode ser referido como um Decodificador Hipotético de Referência (HRD). O HRD descreve como os dados devem ser armazenados em armazenamento em buffer para a decodificação e como os dados decodificados são armazenados em armazenamento em buffer para a saída. Por exemplo, o HRD descreve a operação de um buffer de imagem codificado ("CPB"), um buffer de imagem decodificado ("DPB") e um processo de decodificação de vídeo. O CPB é um buffer de primeiro a entrar primeiro a sair contendo unidades de acesso em uma ordem de decodificação especificada pelo HRD. O DPB é uma reserva de buffer (p.ex., armazenar) imagens decodificadas para referência, reordenação de saída ou atraso de saída, conforme especificado pelo HRD. Os comportamentos da CEC e DPB podem ser matematicamente especificados. O HRD pode impor diretamente restrições de tempo, tamanhos de buffer e taxas de bits. Além disso, o HRD pode indiretamente impor restrições a várias características de fluxo de bits e estatísticas. Embora o HRD seja nomeado como algum tipo de decodificador, os codificadores de vídeo normalmente usam o HRD para garantir a conformidade do fluxo de bits, enquanto os decodificadores de vídeo normalmente não precisam do HRD. Em outras palavras, o HRD é normalmente usado para testar fluxo de bits. Em Codificação de Vídeo de Alta Eficiência (HEVC), um conjunto de parâmetros de vídeo (VPS) contém um conjunto de estruturas de sintaxe de parâmetros HRD. Cada uma das estruturas de sintaxe de parâmetros HRD contém parâmetros HRD para controlar o funcionamento do HRD.
[00024] HEVC escalável (SHVC) e HEVC de múltiplas vistas (MV-HEVC) são extensões de HEVC para codificação de vídeo escalável e codificação de vídeo multivista. Em SHVC e MV-HEVC, um fluxo de bits pode compreender uma pluralidade de camadas. Consequentemente, SHVC e MV-HEVC podem ser referidos coletivamente como "HEVC em camadas" ou "L-HEVC". Em SHVC, há uma camada base e uma ou mais camadas de melhoria. As camadas de melhoria podem aumentar a qualidade visual e/ou taxa de quadros de dados de vídeo codificados no fluxo de bits. Em MV-HEVC, cada camada pode corresponder a uma vista diferente. Cada camada pode ser associada a um identificador de camada diferente (por exemplo, nuh_layer_id). Em SHVC e MV-HEVC, as camadas de um fluxo de bits podem ser divididas em "partições" de acordo com um esquema de particionamento. Assim, cada partição pode compreender uma ou mais camadas de um fluxo de bits. Além disso, em SHVC e MV-HEVC, cada partição pode referir-se a uma das estruturas de sintaxe de parâmetros HRD em um VPS. Assim, os parâmetros HRD contidos pela estrutura de sintaxe dos parâmetros HRD para uma partição podem controlar a operação do HRD quando se utiliza o HRD para testar a partição.
[00025] Além disso, algumas imagens dentro de uma camada podem ser decodificadas sem referência a outras imagens dentro da mesma camada. Assim, as unidades de camada de abstração de rede (NAL) que encapsulam dados de certas imagens de uma camada podem ser removidas do fluxo de bits sem afetar a decodificação de outras imagens na camada. A remoção de unidades NAL que encapsulam dados de tais imagens pode reduzir a taxa de quadros do fluxo de bits. Um subconjunto de imagens dentro de uma camada que podem ser decodificadas sem referência a outras imagens dentro da camada podem ser aqui referidas como uma "sub-camada" ou uma "sub-camada temporal". As unidades NAL podem incluir elementos de sintaxe de id temporal. O elemento de sintaxe de id temporal de uma unidade NAL especifica um identificador temporal da unidade NAL. O identificador temporal de uma unidade NAL identifica uma sub-camada com a qual a unidade NAL está associada. Assim, cada subcamada de um fluxo de bits pode estar associada a um identificador temporal diferente. Se o identificador temporal de uma primeira unidade NAL for menor que o identificador temporal de uma segunda unidade NAL, os dados encapsulados pela primeira unidade NAL podem ser decodificados sem referência aos dados encapsulados pela segunda unidade NAL.
[00026] O termo "sub-partição HEVC" refere-se a uma sub-partição HEVC base ou a uma sub-partição HEVC enhancement. O termo "sub-partição de base HEVC" é um sub- fluxo de bits de vídeo HEVC que está em conformidade com o padrão HEVC e contém todas as unidades NAL de camada de codificação de vídeo (VCL) de uma ou mais camadas até um TemporalId mais alto alvejado identificado por um ponto de operação HEVC alvo em que a lista de identificador de camada alvo inclui o valor nu_layer_id igual a 0. Um sub-fluxo de bits (por exemplo, um sub-fluxo de bits de vídeo HEVC) é um fluxo de bits resultante de um processo (por exemplo, um processo de extração de fluxo de bits secundário) nas unidades NAL em um fluxo de bits que não pertencem a um conjunto de objetivos, determinadas por uma lista de identificadores de camada alvo mais elevada e uma lista de identificadores de camada de destino, são removidas do fluxo de bits, com o fluxo de bits secundário de saída constituído pelas unidades NAL no fluxo de bits que pertence ao conjunto de destino. O termo "sub-divisão de aumento HEVC" refere-se a uma ou mais camadas HEVC, ou a um subconjunto de vídeo temporário HEVC temporal ou subconjunto temporal de vídeo HEVC, do qual a agregação de camada HEVC com uma subpartição de base HEVC e zero ou mais subpartições HEVC, de acordo com a lista de camadas do ponto de operação da camada mais alta e TemporalId maior incluído deste sub-fluxo de bits de vídeo, resulta em um fluxo de vídeo em camadas HEVC válido.
[00027] A especificação de Sistemas MPEG-2 descreve como os fluxos de dados multimídia (vídeo e áudio) comprimidos podem ser multiplexados em conjunto com outros dados para formar um fluxo de dados único adequado para transmissão ou armazenamento digital. A especificação dos Sistemas MPEG-2 define o conceito de um fluxo elementar. Especificamente, um fluxo elementar é um componente codificado digitalmente (possivelmente comprimido por MPEG) de um programa. Por exemplo, o vídeo codificado ou parte de áudio do programa pode ser um fluxo elementar. Além disso, em uma extensão da especificação dos Sistemas MPEG-2 para o transporte de extensões HEVC (por exemplo, L-HEVC), cada respectiva subpartição HEVC corresponde a um respectivo fluxo elementar em um fluxo de dados MPEG-2. As unidades de camada de abstração de rede (NAL) de dados de vídeo L-HEVC, tais como unidades NAL contendo VPSs, podem corresponder a um ou mais fluxos elementares em um fluxo de dados MPEG-2.
[00028] Um fluxo de dados MPEG-2 pode também incluir um conjunto de descritores que transmitem informação sobre um programa ou um fluxo elementar componente de um programa. Por exemplo, um fluxo de dados MPEG-2 pode incluir para cada fluxo elementar respectivo correspondente a uma sub-partição HEVC, um fluxo de dados MPEG-2 pode compreender um descritor de hierarquia para a sub-partição HEVC. O descritor de hierarquia para uma sub-partição HEVC pode incluir um índice de camada de hierarquia que define um índice exclusivo da sub-partição HEVC em uma tabela de hierarquias de camada de codificação. Adicionalmente, o conjunto de descritores pode incluir um cronograma HEVC e um descritor HRD. O cronograma HEVC e o descritor HRD podem fornecer parâmetros de tempo e HRD aplicáveis.
[00029] Contudo, não está claro no padrão HEVC ou na especificação de Sistemas MPEG-2 para transporte de extensões HEVC cuja estrutura de sintaxe de parâmetros HRD é aplicável a qual sub-divisão HEVC. Em outras palavras, não é especificado como determinar qual estrutura de sintaxe de parâmetros HRD usar ao usar o HRD para testar uma sub- partição HEVC. Determinar qual estrutura de sintaxe dos parâmetros HRD é aplicável a uma sub-partição pode ser útil porque no fluxo de bits HEVC, quando a informação de HRD está presente, pode haver um ou mais conjuntos de HRD. Além disso, pode ser desejável determinar que estrutura de sintaxe de parâmetros HRD é aplicável a uma subpartição porque cada um dos conjuntos de HRD pode conter informação que é necessária para o modelo de buffer MPEG-2.
[00030] Esta descrição descreve técnicas para determinar estruturas de sintaxe de parâmetros HRD aplicáveis para sub-partições HEVC. Por exemplo, tal como aqui descrito, um decodificador de vídeo pode receber um fluxo de dados MPEG-2 compreendendo uma pluralidade de fluxos elementares e um descritor de temporização HEVC e HRD. Os fluxos elementares podem compreender representações codificadas dos dados de vídeo. Neste exemplo, o cronograma HEVC e o descritor HRD compreendem um elemento de sintaxe de índice de planejamento de destino que indica um índice de um cronograma de remessa. Além disso, o decodificador de vídeo pode identificar, com base em um conjunto de parâmetros, um elemento de sintaxe em um arranjo de elementos de sintaxe em um VPS. Neste exemplo, o VPS compreende uma pluralidade de estruturas de sintaxe de parâmetros HRD. Cada estrutura de sintaxe de parâmetros HRD respectiva da pluralidade de estruturas de sintaxe de parâmetros HRD inclui um conjunto respectivo de parâmetros HRD. Além disso, neste exemplo, cada elemento de sintaxe respectivo do arranjo de elementos de sintaxe especifica um índice associado a uma estrutura de sintaxe de parâmetros HRD entre a pluralidade de estruturas de sintaxe de parâmetros HRD. O conjunto de parâmetros pode incluir um parâmetro com um valor igual ao valor do elemento de sintaxe de índice de programação de destino.
[00031] Além disso, em alguns exemplos, o conjunto de parâmetros pode incluir um primeiro, segundo terceiro, quarto e quinto parâmetros. O primeiro parâmetro especifica um índice de conjunto de camadas de saída de destino de um ponto de operação. O segundo parâmetro especifica um índice de esquema de particionamento de destino do ponto de operação. O terceiro parâmetro especifica um identificador temporal mais alto do ponto de operação. O decodificador de vídeo pode identificar, com base em um índice especificado pelo elemento de sintaxe identificado, uma estrutura de sintaxe de parâmetros HRD particular na pluralidade de estruturas de sintaxe de parâmetros HRD como sendo aplicável a um determinado fluxo elementar particular que é parte do ponto de operação, a pluralidade dos fluxos elementares incluindo um fluxo elementar particular.
[00032] A FIG. 1 é um diagrama de blocos que ilustra um sistema de codificação de vídeo de exemplo 10 que pode utilizar as técnicas desta descrição. Tal como aqui utilizado, o termo "codificador de vídeo" refere-se genericamente a codificadores de vídeo e decodificadores de vídeo. Nesta descrição, os termos “codificação de vídeo” Ou “codificação” podem referenciar genericamente a codificação de vídeo ou decodificação de vídeo.
[00033] Conforme ilustrado na FIG. 1, o sistema de codificação de vídeo 10 inclui um dispositivo de fonte 12 e um dispositivo de destino 14. O dispositivo de fonte 12 gera dados de vídeo codificados. Em conformidade, o dispositivo de fonte 12 pode ser referido como um dispositivo de codificação de vídeo ou um aparelho de codificação de vídeo. O dispositivo de destino 14 pode decodificar os dados de vídeo codificados gerados pelo dispositivo de fonte 12. De acordo com isto, o dispositivo de destino 14 pode ser referido como um dispositivo de decodificação de vídeo ou um aparelho de decodificação de vídeo. O dispositivo de fonte 12 e o dispositivo de destino 14 podem ser exemplos de dispositivos de codificação de vídeo ou aparelhos de codificação de vídeo. Esta divulgação pode utilizar o termo "dispositivo de processamento de vídeo" para se referir a um dispositivo que processa dados de vídeo. O dispositivo de fonte 12 e o dispositivo de destino 14 são exemplos de dispositivos de processamento de vídeo. Outros tipos de dispositivos de processamento de vídeo incluem dispositivos que multiplexam e demultiplexam dados de mídia, como fluxos de dados MPEG-2.
[00034] O dispositivo de fonte 12 e o dispositivo de destino 14 podem compreender uma vasta faixa de dispositivos, incluindo computadores de secretária, dispositivos de computação móvel, computadores portáteis (por exemplo, computadores portáteis), computadores de tabela, decodificadores, telefones como os chamados telefones "Inteligentes", televisores, câmeras, dispositivos de exibição, reprodutores de mídia digital, consoles de jogos de vídeo, computadores no carro ou similares.
[00035] O dispositivo de destino 14 pode receber dados de vídeo codificados do dispositivo de fonte 12 através de um canal 16. O canal 16 pode compreender um ou mais meios ou dispositivos capazes de mover os dados de vídeo codificados do dispositivo de fonte 12 para o dispositivo de destino 14. Em um exemplo, O canal 16 pode compreender um ou mais meios de comunicação que permitem ao dispositivo fonte 12 transmitir dados de vídeo codificados diretamente para o dispositivo de destino 14 em tempo real. Neste exemplo, o dispositivo de fonte 12 pode modular os dados de vídeo codificados de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fios, e pode transmitir os dados de vídeo modulados para o dispositivo de destino 14. Um ou mais meios de comunicação podem incluir meios de comunicações com fios e/ou sem fios, tais como um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão físicas. Um ou mais meios de comunicação podem fazer parte de uma rede baseada em pacotes, tal como uma rede de área local, uma rede de área alargada ou uma rede global (por exemplo, a Internet). O um ou mais meios de comunicação podem incluir roteadores, comutadores, estações de base ou outro equipamento que facilite a comunicação do dispositivo de fonte 12 para o dispositivo de destino 14.
[00036] Em outro exemplo, o canal 16 pode incluir um meio de armazenamento que armazena dados de vídeo codificados gerados pelo dispositivo fonte 12. Neste exemplo, o dispositivo de destino 14 pode acessar ao meio de armazenamento, por exemplo, através do acesso ao disco ou do acesso ao cartão. O meio de armazenamento pode incluir uma variedade de meios de armazenamento de dados de acesso local tais como Discos Blu-ray, DVDs, CD-ROMs, memória flash ou outros meios de armazenamento digital adequados para armazenar dados de vídeo codificados.
[00037] Em um outro exemplo, o canal 16 pode incluir um servidor de arquivos ou outro dispositivo de armazenamento intermediário que armazena dados de vídeo codificados gerados pelo dispositivo de fonte 12. Neste exemplo, o dispositivo de destino 14 pode acessar a dados de vídeo codificados armazenados no servidor de arquivos ou outro dispositivo de armazenamento intermediário através de transmissão em sequência ou transferência. O servidor de arquivos pode ser um tipo de servidor capaz de armazenar dados de vídeo codificados e transmitir os dados de vídeo codificados para o dispositivo de destino 14. Servidores de arquivo de exemplo incluem servidores web (por exemplo, para um site), servidores de protocolo de transferência de arquivos (FTP), dispositivos de Armazenamento ligados à rede (NAS), e unidades de disco locais.
[00038] O dispositivo de destino 14 pode acessar os dados de vídeo codificados através de uma ligação de dados padrão, tal como uma ligação à Internet. Tipos de exemplo de conexões de dados podem incluir canais sem fio (por exemplo, conexões Wi-Fi), conexões com fio (por exemplo, DSL, modem a cabo, etc.) ou combinações de ambas apropriadas para acessar dados de vídeo codificados armazenados em um servidor de arquivos. A transmissão de dados de vídeo codificados a partir do servidor de arquivos pode ser uma transmissão em fluxo contínuo, uma transmissão de transferência ou uma combinação de ambos.
[00039] As técnicas desta descrição não estão limitadas a aplicações ou configurações sem fios. As técnicas podem ser aplicadas à codificação de vídeo para suportar uma variedade de aplicações multimídia, tais como transmissões de televisão por cabo, transmissões de televisão por cabo, transmissões de televisão por satélite, transmissões de vídeo em fluxo contínuo, por exemplo, através da Internet, codificação de dados de vídeo para Armazenamento em um meio de armazenamento de dados, decodificação de dados de vídeo armazenados em um meio de armazenamento de dados, ou outras aplicações. Em alguns exemplos, de codificação vídeo do sistema 10 pode ser configurado para suportar uma ou vias de transmissão de vídeo de duas vias para suportar aplicações tais como a transmissão de vídeo, a reprodução do vídeo, a transmissão de vídeo, e/ou de telefonia de vídeo.
[00040] Sistema de codificação [0040] vídeo 10 ilustrado na FIG. 1 é meramente um exemplo e as técnicas da presente memória descritiva podem aplicar-se a configurações de codificação de vídeo (por exemplo, de codificação de vídeo ou de decodificação de vídeo) que não incluem necessariamente qualquer comunicação de dados entre os dispositivos de codificação e decodificação. Em outros exemplos, os dados são recuperados a partir de uma memória local, transmitido através de uma rede, ou algo semelhante. Um dispositivo de codificação de vídeo pode codificar e armazenar dados para a memória, e/ou um dispositivo de decodificação de vídeo pode recuperar e decodificar dados a partir da memória. Em muitos exemplos, a codificação e decodificação é realizada por dispositivos que não se comunicam uns com os outros, mas simplesmente codificam dados para a memória e/ou recuperar e decodificar os dados da memória.
[00041] No exemplo da FIG. 1, o dispositivo de fonte 12 inclui uma fonte de vídeo 18, um codificador de vídeo 20, e uma interface de saída 22. Em alguns exemplos, a relação da saída 22 pode incluir um modulador/desmodulador (modem) e/ou um transmissor. Fonte de vídeo 18 pode incluir um dispositivo de captura de vídeo, por exemplo, uma câmara de vídeo, um arquivo de vídeo que contém dados de vídeo capturadas anteriormente, uma interface de alimentação de vídeo para receber dados de vídeo a partir de um provedor de conteúdo de vídeo, e/ou um sistema de computação gráfica para gerar dados de vídeo, ou uma combinação de tais fontes de dados de vídeo.
[00042] Codificador de vídeo 20 pode codificar os dados de vídeo a partir de fonte de vídeo 18. Em alguns exemplos, o dispositivo de fonte 12 transmite diretamente os dados de vídeo codificados para o dispositivo de destino 14 através de uma interface de saída 22. Em outros exemplos, os dados de vídeo codificados também podem ser armazenados em um meio de armazenamento ou um servidor de arquivos para acesso posterior pelo dispositivo de destino 14 para decodificação e/ou reprodução.
[00043] No exemplo da FIG. 1, o dispositivo de destino 14 inclui uma interface de entrada 28, um decodificador de vídeo 30, e um dispositivo de visualização 32. Em alguns exemplos, a interface de entrada 28 inclui um receptor e/ou um modem. A interface de entrada 28 pode receber dados de vídeo codificados ao longo do canal 16. O dispositivo de visualização 32 pode ser integrado com ou pode ser externo ao dispositivo de destino 14. Em geral, o dispositivo de visor 32 exibe dados decodificados de vídeo. O dispositivo de visualização 32 pode compreender uma variedade de dispositivos de exibição, tal como um visor de cristal líquido (LCD), uma tela de plasma, um diodo emissor de luz orgânico visor (OLED), ou outro tipo de dispositivo de exibição.
[00044] Codificador de vídeo 20 e decodificador de vídeo 30 cada um pode ser implementado como qualquer um de uma variedade de circuitos adequados, tais como um ou mais microprocessadores, processadores de sinal digitais (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de portas de campo programável (FPGAs), lógica discreta, hardware, ou quaisquer combinações dos mesmos. Se as técnicas são implementadas parcialmente em software, um dispositivo pode armazenar instruções para o software em um meio adequado, não transitório de leitura por computador de armazenamento e podem executar as instruções em hardware utilizando um ou mais processadores para executar as técnicas desta revelação. Qualquer um dos anteriores (incluindo o hardware, software, uma combinação de hardware e software, etc.) pode ser considerado como sendo um ou mais processadores. Cada um codificador de vídeo 20 e decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, cada um dos quais pode ser integrado como parte de um codificador combinado/decodificador (CODEC) em um respectivo dispositivo.
[00045] Esta divulgação pode, em geral referem- se a um codificador de vídeo 20 "sinalização" ou "Transmitir" certa informação para outro dispositivo, tal como decodificador de vídeo 30. O termo "sinalização" ou "transmissão" pode geralmente se referem à comunicação de elementos de sintaxe e/ou outros dados usados para decodificar os dados de vídeo comprimido. Essa comunicação pode ocorrer em tempo quase real ou real. Alternativamente, esta comunicação pode ocorrer ao longo de um período de tempo, tal como pode ocorrer quando o armazenamento de elementos de sintaxe para um meio de armazenamento legível por computador, em um fluxo de bits codificada, no momento da codificação, que pode então ser recuperado por um dispositivo de decodificação, em qualquer momento após sendo armazenado a este meio.
[00046] As técnicas descritas na presente memória descritiva podem ser utilizáveis com várias normas de codificação de vídeo, incluindo as técnicas de codificação de vídeo que não estão relacionados com um padrão de codificação de vídeo específica. Exemplos das normas de codificação de vídeo incluem ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou a norma ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecida como a norma ISO/IEC MPEG-4 AVC), incluindo a sua Codificação de Vídeo Escalável (SVC) e extensões de Codificação de Vídeo de Multi-vista (MVC). Em alguns exemplos, o codificador de vídeo 20 e do decodificador de vídeo 30 operam de acordo com um padrão de compressão de vídeo, tais como a norma HEVC mencionada acima. Em adição à base padrão HEVC, existem esforços contínuos para a produção de codificação escalável vídeo, multi-vídeo vista de codificação, e extensões de codificação 3D para HEVC. Recentemente, o projeto de um novo padrão de vídeo de codificação, chamado de Codificação de Vídeo em Alta Eficiência (HEVC), uma extensão multi-vista a HEVC, chamado MV-HEVC, e uma extensão escalável para HEVC, chamado SHVC, foram finalizados pela Equipe de Colaboração Conjunta sobre Codificação de Vídeo (JCT-VC) de Grupo de Especialistas de Codificação de vídeo ITU-T (VCEG) e Grupo de Especialistas de Imagem em Movimento ISO/IEC (MPEG). O padrão HEVC pode também ser referido como Rec. ITU-T H.265|ISO/IEC 23008-2.
[00047] Um HEVC projeto de especificação intitulado "Projeto de codificação de vídeo de alta eficiência (HEVC) versão 2, extensões de faixa de formato combinado (RExt), escalabilidade (SHVC), e extensões multivista (MV-HEVC)" para JCT-VC de UIT SG -T 16 WP 3 e ISO/IEC JTC 1/SC 29/GT 11 18a Reunião: Sapporo, JP, 30 junho-9 julho de 2014 (JCTVC-R1013_v6), (referido daqui em diante como "JCTVC-R1013" ou "Rec. ITU-T H.265|ISO/IEC 23008-2") está disponível a partir de http://phenix.int-evry.fr/j ct/doc_end_user/documentos/18_Sapporo/WG 11/JCT VC-R1013 - v6.zip. MV-HEVC é incorporado como Anexo G de Rec. ITU-T H.265|ISO/IEC 23008-2. SHVC é incorporado como anexo H de Rec. ITU-T H.265|ISO/IEC 23008-2.
[00048] Um projeto de especificação MV-HEVC intitulado "MV-HEVC projeto de texto 9" para Equipe Colaborativa de Junção de Extensões de Codificação de Vídeo 3D Codificação extensões de SG ITU-T 16 WP 3 e ISO/IEC JTC 1/SC 29/GT 11 9a Reunião: Sapporo, JP, 3-09 julho de 2014 (JCT3V-I1002-V7), o que pode ser referido como "MV-HEVC Draft Text 9", está disponível a partir de http://phenix.int-evry. fr/jct3v/doc_end_user/documents/9_Sapporo/wg11/JCT3V-11002- v7.zip.
[00049] A especificação de projeto SHVC intitulado "codificação de vídeo de alta eficiência (HEVC) escalável extensão Projeto 7" para JCT-VC de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/GT 11 Reunião 18: Sapporo, JP, 30 junho - 9 julho de 2014 (JCTVC-R1008v7), o que pode ser referido como "SHVC projeto de texto 7", está disponível a partir http://phenix.int- evry.fr/jct/doc_end_user/documents/18_Sapporo/wg11/JCTVC- R1008-v7.zip.
[00050] Em HEVC e outras normas de codificação de vídeo, uma sequência de vídeo inclui tipicamente uma série de imagens. As imagens também podem ser referidas como "quadros". Um quadro pode incluir uma ou mais conjuntos de amostra. Por exemplo, uma imagem pode incluir três conjuntos de amostra, denotados SL, SCb e SCr. SL é um arranjo bidimensional (isto é, um bloco) de amostras de luminância. Scb é um arranjo bi-dimensional de amostras de crominância Cb. SCr é um arranjo bi-dimensional de amostras de crominância Cr. amostras de crominância também pode ser aqui referida como amostra "croma". Em outros casos, uma imagem pode ser monocromática e pode incluir apenas um conjunto de amostras de luminância.
[00051] Para gerar uma representação codificada de uma imagem, o codificador de vídeo 20 pode gerar um conjunto de unidades de árvores de codificação (CTU). Cada um dos CTUs pode ser um bloco de codificação árvore de amostras de luminância, duas correspondentes que codificam os blocos de árvores de amostras de crominância, e estruturas de sintaxe utilizada para codificar as amostras de blocos de árvores de codificação. Um bloco de árvore de codificação pode ser um bloco de amostras de NxN. A CTU também pode ser referida como um "bloco árvore" ou uma “maior unidade de codificação" (LCU). As CTUs de HEVC podem ser amplamente análogas aos macroblocos de outros padrões, tais como o H.264/AVC. No entanto, uma CTU não é necessariamente limitada a um tamanho particular, e pode incluir uma ou mais unidades de codificação (CUs). Uma fatia pode incluir um número inteiro de CTUs ordenados consecutivamente em uma ordem de leitura, tal como uma ordem de exploração de quadro.
[00052] Para gerar uma CTU codificada, o codificador de vídeo 20 pode executar de forma recursiva particionamento quad-tree sobre os blocos de árvores de codificação de um CTU para dividir os blocos de codificação da árvore em blocos de codificação, daí o nome de "unidades de árvore de codificação". Um bloco de codificação é um bloco de amostras de NxN. Uma CU pode ser um bloco de codificação de amostras de luminância e dois blocos de codificação correspondente de amostras de crominância de uma imagem que tem um arranjo de amostra de luminância, um arranjo de amostra Cb e um arranjo de amostra de Cr, e estruturas de sintaxe utilizada para codificar as amostras de blocos de codificação. Em imagens monocromáticas ou imagens que têm três planos de cores distintas, uma CU pode compreender um único bloco de estruturas e de sintaxe de codificação utilizados para codificar as amostras do bloco codificante.
[00053] Codificador de vídeo 20 pode particionar um bloco de codificação de uma CU em um ou mais blocos de previsão. Um bloco de previsão pode ser retangular (por exemplo, quadrada ou não-quadrado) bloco de amostras sobre a qual é aplicada a mesma previsão. Uma unidade de previsão (PU) de uma CU pode ser um bloco de previsão de amostras de luminância, dois blocos de previsão correspondentes de amostras de crominância de uma imagem, e as estruturas de sintaxe usados para prever as amostras de blocos de previsão. Codificador de vídeo 20 pode gerar luminância preditiva, blocos Cb e Cr de luminância, blocos de previsão Cb e Cr de cada PU da UC. Em imagens monocromáticas ou imagens que têm três planos de cores distintos, uma PU pode compreender um único bloco de estruturas de previsão e de sintaxe usados para prever o bloco de previsão.
[00054] Codificador de vídeo 20 pode utilizar a previsão intra ou previsão inter para gerar os blocos preditivos para uma PU. Se o codificador de vídeo 20 utiliza previsão intra para gerar os blocos preditivos de uma PU, codificador de vídeo 20 pode gerar os blocos preditivos de PU com base em amostras decodificadas da imagem associada com a PU.
[00055] Se o codificador de vídeo 20 utiliza previsão inter para gerar os blocos preditivos de uma PU, codificador de vídeo 20 pode gerar os blocos preditivos de PU com base em amostras decodificadas de um ou mais outros do que a imagem associada com a PU imagens. Codificador de vídeo 20 pode usar uni-previsão ou bi-previsão para gerar os blocos preditivos de uma PU. Quando o codificador de vídeo 20 usa uni-previsão para gerar os blocos preditivos para uma PU, a PU pode ter um único vetor de movimento (MV). Quando o codificador de vídeo 20 usa bi-previsão para gerar os blocos preditivos para uma PU, a PU pode ter dois MVS.
[00056] Depois de um codificador de vídeo 20 gera blocos preditivos (por exemplo, luminância preditiva, blocos Cb e Cr) para um ou mais UP de uma CU, codificador de vídeo 20 pode gerar um bloco residual da CU. Cada uma das amostras em um bloco residual da CU indica uma diferença entre uma amostra em um bloco preditivo para uma PU da CU e uma amostra correspondente de um bloco de codificação da CU. Por exemplo, o codificador de vídeo 20 pode gerar um bloco residual de luminância da UC. Cada uma das amostras no bloco de luminância residual da CU indica uma diferença entre uma amostra de luminância em um bloco de luminância preditivo de uma PU da CU e uma amostra correspondente no bloco de codificação de luminância da UC. Além disso, o codificador de vídeo 20 pode gerar um bloco Cb residual da CU. Cada uma das amostras no bloco Cb residual da CU pode indicar uma diferença entre uma amostra Cb em um bloco Cb preditivo de uma PU da CU e uma amostra correspondente no bloco Cb de codificação da CU. Codificador de vídeo 20 pode também gerar um bloco residual Cr da CU. Cada uma das amostras no bloco residual Cr da CU pode indicar uma diferença entre uma amostra de Cr em um bloco de Cr preditivo para um PU da CU e uma amostra correspondente no bloco de codificação Cr da CU.
[00057] Além disso, o codificador de vídeo 20 pode usar particionamento quad-tree para decompor os blocos residuais (por exemplo, luminância, blocos Cb e Cr residuais) de uma CU em um ou mais blocos de transformada (por exemplo, luminância, Cb e Cr blocos de transformada). Um bloco de transformada pode ser um bloco retangular de amostras em que a mesma transformação é aplicada. Uma unidade de transformação (TU) de uma CU pode ser um bloco de transformada de amostras de luminância, correspondendo dois blocos de transformada de amostras de crominância, e estruturas de sintaxe usados para transformar a amostras de bloco de transformada. Assim, cada unidade de tradução de uma CU pode ser associada com um bloco de transformada de luminância, um bloco de transformada Cb e Cr de um bloco de transformada. O bloco de luminância transformar associada com a TU pode ser um sub-bloco do bloco de luminância residual da UC. O bloco de transformada Cb pode ser um sub- bloco do bloco Cb residual da CU. O bloco de Cr transformada pode ser um sub-bloco do bloco residual Cr da CU. Em imagens monocromáticas ou imagens que têm três planos de cores distintas, uma TU pode compreender um único bloco de transformada e estruturas de sintaxe usadas para transformar as amostras do bloco de transformada.
[00058] Codificador de vídeo 20 pode aplicar um ou mais transformações para um bloco de transformada para uma TU para gerar um bloco de coeficientes para o TU. Por exemplo, o codificador de vídeo 20 pode aplicar um ou mais transformações para um bloco de transformada de luminância para uma TU para gerar um bloco de coeficientes de luminância para o TU. codificador de vídeo 20 pode aplicar um ou mais transformações para um bloco de transformada Cb de uma TU para gerar um bloco de coeficientes Cb para a TU. codificador de vídeo 20 pode aplicar um ou mais transformações para um bloco de transformada de Cr uma TU para gerar um bloco de coeficientes para o Cr TU. Um bloco de coeficientes pode ser um arranjo bi-dimensional de coeficientes de transformada. Um coeficiente de transformada pode ser uma quantidade escalar.
[00059] Depois de gerar um bloco de coeficientes (por exemplo, um bloco de coeficientes de luminância, um bloco de coeficientes Cb ou um bloco de coeficientes de Cr), o codificador de vídeo 20 pode quantificar o bloco de coeficientes. Quantização geralmente refere-se a um processo em que os coeficientes de transformada são quantizados para possivelmente reduzir a quantidade de dados utilizados para representar os coeficientes de transformada, proporcionando a compressão adicional. Depois de um codificador de vídeo 20 quantifica um bloco de coeficientes, um codificador de vídeo 20 pode entropia elementos de sintaxe indicando codificam os coeficientes de transformada quantificados. Por exemplo, o codificador de vídeo 20 pode executar a Codificação Aritmética Binária de Contexto Adaptativo (CABAC) sobre os elementos de sintaxe indicando coeficientes de transformada quantificados. Codificador de vídeo 20 pode emitir os elementos de sintaxe codificados por entropia em um fluxo de bits.
[00060] Codificador de vídeo 20 pode emitir um fluxo de bits que inclui os elementos de sintaxe codificados por entropia. O fluxo de bits pode incluir uma sequência de bits, que forma uma representação de imagens codificadas e dados associados. O fluxo de bits pode compreender uma sequência de unidades de camada de abstração de rede (NAL). Cada uma das unidades NAL inclui um cabeçalho de unidade NAL e encapsula uma carga sequência de bytes brutos (PAAB). O cabeçalho da unidade NAL pode incluir um elemento de sintaxe que indica um código de tipo de unidade NAL. O código do tipo de unidade NAL especificado pelo cabeçalho unidade NAL de uma unidade NAL indica o tipo da unidade NAL. Um PAAB pode ser uma estrutura de sintaxe contendo um número inteiro de bytes que está encapsulado dentro de uma unidade NAL. Em alguns casos, um PAAB inclui bits zero.
[00061] Diferentes tipos de unidades NAL podem encapsular diferentes tipos de RBSPs. Por exemplo, diferentes tipos de unidades NAL podem encapsular diferentes RBSPs para conjuntos de parâmetros de vídeo (VPSs), conjuntos de parâmetros sequência (SPSS), conjuntos de parâmetros de imagem (EPP), fatias codificado, informação reforço suplementar (SEI), e assim por diante. Por exemplo, um primeiro tipo de unidade NAL podem encapsular uma PAAB para um PPS, um segundo tipo de unidade NAL podem encapsular uma PAAB para uma fatia codificada, um terceiro tipo de unidade NAL podem encapsular uma PAAB para Suplementar de Enriquecimento de Informação (SEI), e assim por diante. Unidades NAL que encapsulam RBSPs para codificação de dados de vídeo (em oposição a RBSPs para conjuntos de parâmetros e mensagens SEI) podem ser referidas como unidades NAL de camada de codificação de vídeo (VCL). Por exemplo, JCTVC- R1013 define o termo unidade de VCL NAL é um termo coletivo para o segmento de fatia codificada de unidades NAL e o subconjunto de unidades NAL que têm reservados valores do tipo unidade final que são classificados como unidades NAL VCL em JCTVC-R1013. SEI contém informação que não é necessária para decodificar as amostras de imagens codificadas a partir de unidades de VCL NAL.
[00062] No exemplo da FIG. 1, decodificador de vídeo 30 recebe um fluxo de bits gerado pelo codificador de vídeo 20. Além disso, o decodificador de vídeo 30 pode analisar o fluxo de bits para obter elementos de sintaxe de fluxo de bits. Decodificador de vídeo 30 pode reconstruir as imagens dos dados de vídeo com base, pelo menos em parte, os elementos de sintaxe obtidos a partir do fluxo de bits. O processo para reconstruir os dados de vídeo pode ser geralmente recíproco para o processo executado pelo codificador de vídeo 20. Por exemplo, um decodificador de vídeo 30 pode utilizar a previsão intra ou previsão inter para determinar blocos preditivos do pus de uma CU atual. Além disso, o decodificador de vídeo 30 pode inverter blocos de coeficiente de quantização para TUs da CU atual. O decodificador de vídeo 30 pode executar transformadas inversas sobre os blocos de coeficiente para reconstruir blocos de transformada para o TUs da CU atual. O decodificador de vídeo 30 pode reconstruir os blocos de codificação da CU atual, adicionando as amostras dos blocos preditivos para a UP da CU atual de amostras de blocos de transformada para as TUs da CU atual correspondente. Ao reconstruir os blocos de codificação para cada CU de uma imagem, um decodificador de vídeo 30 pode reconstruir a imagem.
[00063] Tal como brevemente acima indicado, as unidades NAL podem encapsular RBSPs para conjuntos de parâmetros de vídeo (VPSs), conjuntos de parâmetros de sequência (SPSS), conjuntos de parâmetros de imagem (EPP). Um VPS é uma estrutura de sintaxe que compreende elementos de sintaxe que se aplicam a zero ou mais sequências de vídeo codificados inteiras (CVS). Um SPS é também uma estrutura de sintaxe que compreende elementos de sintaxe que se aplicam a zero ou mais inteiro CVS. Um SPS pode incluir um elemento de sintaxe que identifica um VPS que é ativo quando a SPS é ativo. Assim, os elementos de sintaxe de um VPS podem ser mais geralmente aplicáveis do que os elementos de sintaxe de um SPS. Um PPS é uma estrutura de sintaxe que compreende elementos de sintaxe que se aplicam a zero ou mais imagens codificadas. Um PPS pode incluir um elemento de sintaxe que identifica um SPS que é ativo quando o PPS é ativo. Um cabeçalho de fatia de uma fatia pode incluir um elemento de sintaxe indica que um PPS que é ativo quando a fatia está sendo codificada.
[00064] Em codificação multi-vista, pode haver várias vistas da mesma cena a partir de diferentes pontos de vista. No contexto de multi-vista de codificação, o termo "unidade de acesso" pode ser usado para se referir ao conjunto de imagens que correspondem ao mesmo instante de tempo. Assim, os dados de vídeo pode ser conceitualizados como uma série de unidades de acesso que ocorrem ao longo do tempo. Um "componente de vista" pode ser uma representação codificada de uma vista em uma única unidade de acesso. Na presente memória descritiva, uma "visão" pode referir-se a uma sequência de componentes de visão associada com o mesmo identificador de vista. Em alguns exemplos, um componente de visualização pode ser um componente de vista de textura (isto é, uma imagem de textura) ou um componente de vista profundidade (isto é, uma imagem de profundidade).
[00065] Em MV-HEVC e SHVC, um codificador de vídeo pode gerar um fluxo de bits que inclui uma série de unidades NAL. Diferentes unidades NAL do fluxo de bits pode ser associada com diferentes camadas de fluxo de bits. Uma camada pode ser definida como um conjunto de unidades de VCL NAL e associada unidades não-VCL NAL que tenham o mesmo identificador camada. Uma camada pode ser equivalente a uma vista em codificação de vídeo multi-vista. Em codificação de vídeo mutli-vista, uma camada pode conter todos os componentes de vista da mesma camada com diferentes casos de tempo. Cada componente pode ser vista uma imagem codificada da cena de vídeo pertencente a uma visão específica a um instante de tempo específico. Em alguns exemplos de codificação de vídeo multi-vista ou 3-dimensional, uma camada pode conter todas as imagens codificadas em profundidade de uma visão específica ou imagens de textura codificada de uma visão específica. Em outros exemplos de codificação de vídeo 3D, uma camada pode conter ambas as componentes de vista da textura e profundidade vista componentes de uma visão específica. Da mesma forma, no contexto da codificação de vídeo expansível, uma camada geralmente corresponde a imagens codificadas que têm características diferentes de vídeo de imagens codificadas em outras camadas. Tais características de vídeo geralmente incluem resolução espacial e nível de qualidade (por exemplo, relação sinal-ruído). Em HEVC e suas extensões, escalabilidade temporal pode ser alcançado dentro de uma camada através da definição de um grupo de imagens com um nível temporal, em particular como uma sub-camada. Tais características de vídeo geralmente incluem resolução espacial e nível de qualidade (por exemplo, relação sinal- ruído). Em HEVC e suas extensões, escalabilidade temporal pode ser alcançado dentro de uma camada através da definição de um grupo de imagens com um nível temporal, em particular como uma sub-camada. Tais características de vídeo geralmente incluem resolução espacial e nível de qualidade (por exemplo, relação sinal-ruído). Em HEVC e suas extensões, escalabilidade temporal pode ser alcançado dentro de uma camada através da definição de um grupo de imagens com um nível temporal, em particular como uma sub-camada.
[00066] Para cada camada respectiva da sequência de bits, dados de uma camada inferior pode ser decodificado sem referência a dados em qualquer camada superior. Na codificação de vídeo expansível, por exemplo, dados de uma camada de base pode ser decodificado sem referência a dados em uma camada de intensificação. Em geral, as unidades NAL só podem encapsular os dados de uma única camada. Assim, as unidades NAL encapsulando dados de mais alta camada restante do fluxo de dados pode ser removido a partir do fluxo de bits sem afetar a Decodificação de dados nas camadas restantes do fluxo de bits. Codificação de multi-vista, as camadas mais elevadas podem incluir componentes de vista adicional. Em SHVC, as camadas mais elevadas podem incluir a relação sinal-ruído (SNR) de dados de melhoramento, de melhoria dados espaciais, e/ou dados do de melhoria temporais. Em MV-HEVC e SHVC, uma camada pode ser referida como uma "camada de base", se um decodificador de vídeo pode decodificar imagens na camada sem referência a dados de qualquer outra camada. A camada de base pode estar em conformidade com a especificação de base HEVC (por exemplo, Rec. ITU-T H.265|ISO/IEC 23008-2).
[00067] Na codificação de vídeo expansível, camadas que não a camada de base pode ser referida como "camadas de melhoria" e pode fornecer informações que melhora a qualidade visual dos dados de vídeo decodificados a partir do fluxo de bits. A codificação de vídeo escalável pode melhorar a resolução espacial, a relação sinal-para-ruído (isto é, a qualidade) ou taxa temporal. Na codificação escalável de vídeo (por exemplo, SHVC), uma “representação de camada" pode ser uma representação codificada de uma camada espacial em uma única unidade de acesso. Para facilitar a explicação, essa divulgação pode referir-se a ver os componentes e/ou representações camada como "componentes de vista/representações de camada" ou simplesmente "imagens".
[00068] Codificação de multi-vista suporta previsão inter-vista. Previsão inter-vista é semelhante à previsão inter utilizada na HEVC e podem utilizar os mesmos elementos de sintaxe. No entanto, quando um codificador de vídeo realiza a previsão inter de vista em uma unidade de vídeo atual (tal como um PU), o codificador de vídeo 20 pode usar-se, como uma imagem de referência, que é uma imagem da mesma unidade de acesso como a unidade de vídeo atual, mas em uma vista diferente. Em contraste, previsão inter convencional utiliza apenas imagens em diferentes unidades de acesso como imagens de referência.
[00069] Em várias vistas de codificação, uma vista pode ser referida como uma "visão de base", se um decodificador de vídeo (por exemplo, decodificador de vídeo 30) pode decodificar imagens na visão sem referência a imagens em qualquer outro ponto de vista. Ao codificar uma imagem de um dos pontos de vista não-base, um codificador de vídeo (por exemplo, um codificador de vídeo 20 ou decodificador de vídeo 30) pode adicionar uma imagem de uma lista de imagem de referência, se a imagem é de um ponto de vista diferente, mas dentro de um mesmo instante de tempo (ou seja, acesso à unidade) como a imagem de que o codificador de vídeo está atualmente a codificação. Como outras inter-imagens de referência de previsão, o codificador vídeo pode inserir uma imagem de referência de previsão inter vista em qualquer posição de uma lista de imagem de referência.
[00070] Por exemplo, as unidades NAL podem incluir cabeçalhos (ou seja, NAL cabeçalhos de unidades) e cargas (por exemplo, RBSPs). Os cabeçalhos de unidades NAL pode incluir nuh_reserved_zero_6bits elementos de sintaxe, que também podem ser referidos como elementos de sintaxe nuh_layer_id. Unidades NAL que têm elementos de sintaxe nuh_layer_id que especificam valores diferentes pertencem a diferentes "camadas" de um fluxo de bits. Assim, codificação de multi-vista, MV-HEVC, SVC, ou SHVC, o elemento de sintaxe nuh_layer_id da unidade NAL especifica um identificador de camada (isto é, um ID de camada) da unidade NAL. O elemento de sintaxe nuh_layer_id de uma unidade NAL é igual a 0, se a unidade NAL refere-se a uma camada de base de codificação de multi-vista, MV-HEVC ou SHVC. Os dados em uma camada de base de um fluxo de bits podem ser decodificados sem referência a dados em qualquer outra camada do fluxo de bits. Se a unidade NAL não diz respeito a uma camada de base codificação de multi-vista, MV-HEVC ou SHVC, o elemento de sintaxe nuh_layer_id pode ter um valor diferente de zero. Codificação de multi-vista, as diferentes camadas de um fluxo contínuo de dados podem corresponder a diferentes pontos de vista. Em SVC ou SHVC, outros do que a camada de base camadas podem ser referidos como "camadas de melhoria" e pode fornecer informações que melhora a qualidade visual dos dados de vídeo decodificados a partir do fluxo de bits.
[00071] Além disso, algumas imagens dentro de uma camada podem ser recebidas sem referência a outras imagens dentro da mesma camada. Assim, as unidades NAL encapsulando dados de certas imagens de uma camada pode ser removido a partir do fluxo de bits sem afetar a decodificação de outras imagens na camada. Remoção de unidades NAL encapsulando dados de tais imagens pode reduzir a taxa de fotogramas do fluxo de bits. Um subconjunto de imagens dentro de uma camada que pode ser decodificado, sem referência a outras imagens no interior da camada pode ser aqui referido como uma "sub-camada" ou uma "sub-camada temporal."
[00072] Unidades NAL podem incluir elementos de sintaxe temporal_id. O elemento de sintaxe temporal_id de uma unidade NAL especifica um identificador temporal da unidade NAL. O identificador temporal de uma unidade NAL identifica uma sub-camada temporal com os quais a unidade NAL está associado. Assim, cada sub-camada temporal de um fluxo de bits pode ser associado a um identificador temporais diferentes. Se o identificador de tempo de uma primeira unidade NAL é menos do que o identificador no tempo de uma segunda unidade NAL, os dados encapsulados pela primeira unidade de NAL podem ser decodificados sem referência aos dados encapsulados pela segunda unidade NAL.
[00073] Um fluxo de bits pode ser associado com uma pluralidade de pontos de operação. Em alguns exemplos, cada ponto de operação de um fluxo de bits pode ser associado com um conjunto de identificadores de camada (isto é, um conjunto de valores nuh_reserved_zero_6bits) e um identificador temporal. O conjunto de identificadores de camada pode ser denotado como OpLayerldSet e o identificador temporal pode ser denotado como TemporallD. Se identificador camada de uma unidade NAL está no conjunto de identificadores de camada de um ponto de operação e identificador temporal do NAL unidade é menor do que ou igual ao identificador temporal do ponto de operação, a unidade NAL está associado com o ponto de operação. Assim, um ponto de operação pode ser criado um fluxo de bits a partir de um outro fluxo de bits por operação do processo de extração de sub-fluxo de bits com um outro fluxo de bits, um alvo mais alto TemporalId, e uma lista de identificador de camada de destino como entradas para o processo de extração de sub-fluxo de bits. O ponto de operação, o qual também pode ser referido como uma representação de ponto de operação, podem incluir cada unidade NAL que está associada com o ponto de operação. Em alguns exemplos, o ponto de operação não inclui unidades NAL VCL que não estão associados com o ponto de operação.
[00074] Os conjuntos de parâmetros, tais VPSs, SPSS, e EPP pode incluir estruturas de sintaxe de extensão específicos para extensões para o padrão HEVC. Por exemplo, conjuntos de parâmetros podem incluir extensões específicas para SHVC, MV-HEVC, e assim por diante. As estruturas de sintaxe de extensão podem incluir elementos de sintaxe aplicáveis para extensões para o padrão HEVC. A Tabela 1, abaixo, mostra uma porção da extensão VPS definido no projeto de texto SHVC 7 e MV-HEVC Projeto de texto 9. TABELA 1
[00075] No exemplo da Tabela 1, acima, e outras tabelas de sintaxe da presente memória descritiva, os elementos de sintaxe com que descritor de tipo (v) pode ser de comprimento variável inteiro sem sinal codificado utilizando ordem 0 exponencial de Golomb (Exp-Golomb) codificando com primeiro bit esquerdo. No exemplo da Tabela 1 e as tabelas seguintes, os elementos de sintaxe tem descritores da forma de u(n), onde n é um número inteiro não negativo, são valores sem sinais de comprimento n.
[00076] A porção da extensão VPS definidos na Tabela 1 inclui elementos de sintaxe definindo um ou mais conjuntos de camadas de saída (OLSs). Um conjunto de camadas de saída é um conjunto de camadas que consistem em camadas de um dos conjuntos de camadas especificadas na VPS, onde uma ou mais camadas no conjunto de camadas são indicadas como sendo as camadas de saída. Particularmente, o elemento de sintaxe layer_set_idx_for_ols_minus1 [i], mais 1, especifica um índice do conjunto de camadas de saída i-ésimo. O output_layer_flag [i] [j] elemento de sintaxe igual a 1 especifica que a camada j-ésima nas i-ésimas OLS é uma camada de saída. O elemento de sintaxe output_layer_flag [i][j] igual a 0 especifica que a camada j-ésima nas i-ésimas OLS não é uma camada de saída.
[00077] Um conjunto de camadas de saída pode ter um ou mais esquemas de particionamento. Um esquema de particionamento de um conjunto de camadas de saída divide camadas na camada de saída definido em uma ou mais partições. Cada camada em um conjunto de camadas de saída pertence exatamente uma partição em um esquema de particionamento.
[00078] Pelo menos algum vídeo padrões de codificação especificar modelos de vídeo de armazenamento em buffer. Em H.264/AVC e HEVC, um modelo de armazenamento em buffer é referido como um "decodificador de referência hipotético" ou "HRD." No projeto de especificação HEVC, o HRD é descrito no anexo C. O HRD descreve como os dados sendo armazenados em buffer para decodificação e como os dados decodificado armazenados em buffer para emissão. Por exemplo, o HRD descreve o funcionamento de um buffer de imagem codificada ("CPB"), um buffer de imagem decodificada ("DPB"), e um processo de decodificação de vídeo. O CPB é um buffer primeiro a entrar e primeiro a sair contendo unidades de acesso em uma ordem de decodificação indicada pelo DRH. O DPB é um buffer que prende imagens decodificadas para referência, reordenamento de saída, ou atraso de saída especificados pelo DRH. Os comportamentos do CPB e DPB podem ser matematicamente especificados. O HRD pode impor restrições diretamente em sincronismo, tamanhos de memória intermédia, e taxas de bits. Além disso, o HRD pode indiretamente impor restrições sobre várias características fluxo de bits e estatísticas.
[00079] Em H.264/AVC e HEVC, conformidade de fluxo de bits e conformidade de decodificador são especificados como partes da especificação HRD. Em outras palavras, o modelo HRD especifica testes para determinar se um fluxo de bits está de acordo com um padrão e ensaios para determinar se um decodificador em conformidade com a norma. Embora o HRD é nomeado como algum tipo de decodificador, codificadores de vídeo normalmente usam o HRD para garantir a conformidade fluxo de bits, enquanto decodificadores de vídeo geralmente não precisa do HRD.
[00080] H.264/AVC e HEVC ambos especificam dois tipos de fluxo de bits ou conformidade de HRD, ou seja, tipo I e tipo II. Um fluxo de bits de Tipo I é um fluxo de unidade NAL contendo apenas as unidades NAL VCL e unidade NAL de dados de enchimento para todas as unidades de acesso no fluxo de bits. Em pelo menos alguns exemplos, uma unidade de fluxo NAL é uma sequência de unidades NAL. Um fluxo de bits de Tipo II é um fluxo unidade NAL que contém, para além das unidades de VCL NAL e dados de enchimento unidades NAL para todas as unidades de acesso no fluxo de bits, pelo menos, um do seguinte: unidades adicionais não-VCL NAL que não unidades NAL de dados de enchimento; e todos os elementos de sintaxe leading_zero_8bits, zero_byte, start_coded_prefix_one_3bytes, e trailing_zero_8bits que se formam um fluxo de bytes a partir do fluxo de unidade NAL.
[00081] Quando um dispositivo realiza um teste de conformidade de fluxo de bits, que determina se um fluxo de bits corresponde a uma norma de codificação de vídeo, o dispositivo pode selecionar um ponto de operação do fluxo de bits. O dispositivo pode, então, determinar um conjunto de parâmetros HRD aplicáveis ao ponto de operação selecionado. O dispositivo pode utilizar o conjunto de parâmetros HRD aplicáveis para o ponto de operação selecionado para configurar o comportamento do HRD. Mais particularmente, o dispositivo pode utilizar o conjunto de parâmetros aplicáveis de HRD para configurar o comportamento dos componentes em particular da HRD, tal como um programador hipotético de fluxo (HSS), a CPB, um processo de decodificação, o DPB, e assim por diante. Subsequentemente, o HSS pode injetar dados vídeo codificados do fluxo de bits no CEC do HRD de acordo com um horário específico. Além disso, o dispositivo pode invocar um processo de decodificação que decodifica os dados de vídeo codificados no CEC. A saída pode processo de decodificação decodificado fotos para o DPB. À medida que o dispositivo se move de dados através da HRD, o dispositivo pode determinar se um determinado conjunto de restrições permanece satisfeito. Por exemplo, o dispositivo pode determinar se uma condição de sobrefluxo ou subfluxo ocorre no CEC ou DPB enquanto o HRD está decodificando o ponto de operação selecionado. O dispositivo pode selecionar e processar cada ponto de operação do fluxo de dados desta maneira. Se nenhum ponto de operação do fluxo de bits faz com que as restrições sejam violadas, o dispositivo pode determinar que o fluxo de bits está em conformidade com o padrão de vídeo de codificação.
[00082] Tanto o H.264/AVC e HEVC especificam dois tipos de conformidade de decodificador, nomeadamente conformidade de decodificador de temporização de saída e conformidade de decodificador de ordem de saída. Um decodificador alegando a conformidade com um perfil específico, alinhamento e nível é capaz de decodificar com sucesso todos os fluxos de bits que estejam em conformidade com os requisitos de conformidade fluxo de bits de um padrão de codificação de vídeo, tais como HEVC.
[00083] Quando um dispositivo realiza um teste de conformidade de decodificador para determinar se um decodificador sob teste (DUT) está em conformidade com um padrão de codificação de vídeo, o dispositivo pode fornecer, tanto para o HRD e o DUT, um fluxo contínuo de dados que está em conformidade com o padrão de codificação de vídeo. O HRD pode processar o fluxo de bits da maneira descrita acima no que diz respeito ao fluxo de bits de teste de conformidade. O dispositivo pode determinar que o DUT está em conformidade com o padrão de codificação de vídeo, se a ordem das imagens decodificadas saída pelo DUT coincide com a ordem de imagens decodificadas saída pelo DRH. Além disso, o dispositivo pode determinar que o DUT está em conformidade com o padrão de codificação de vídeo, se o temporizador com a qual as saídas DUT imagens decodificadas corresponde o temporizador com a qual a DRH emite as imagens decodificadas.
[00084] Na remoção H.264/AVC e modelos HEVC HRD, decodificação ou CPB pode ser unidade de acesso (UA) com base. Ou seja, o HRD é assumido para decodificar unidades de acesso completo de uma só vez e remover unidades de acesso completas do CPB. Além disso, nos modelos H.264/AVC e HEVC HRD, presume-se que a decodificação de imagem é instantânea. Codificador de vídeo 20 pode sinalizar, em mensagens SEI de temporização de imagem, tempos de decodificação para iniciar a decodificação de unidades de acesso. Em aplicações práticas, se um decodificador de vídeo conforme segue estritamente a decodificação vezes um sinal para iniciar a decodificação de unidades de acesso, o mais cedo possível para a saída de uma determinada imagem decodificada é igual ao tempo de decodificação dessa imagem em particular, mais o tempo necessário para decodificar esse particular cenário. No entanto, no mundo real, o tempo necessário para decodificar uma imagem não pode ser igual a zero.
[00085] Parâmetros HRD podem controlar vários aspectos do HRD. Em outras palavras, HRD pode invocar os parâmetros HRD. Os parâmetros HRD podem incluir um atraso inicial CEC remoção, um tamanho CEC, uma taxa de bits, um atraso inicial de saída DPB, e um tamanho de DPB. Codificador de vídeo 20 pode sinalizar estes parâmetros HRD em uma estrutura de sintaxe hrd_parameters() especificada em um VPS e/ou um SPS. VPSs individuais e/ou SPSs podem incluir múltiplas estruturas de sintaxe hrd_parameters() para diferentes conjuntos de parâmetros HRD. Em alguns exemplos, o codificador de vídeo 20 pode sinalizar parâmetros HRD em mensagens SEI do Período de buffer ou as mensagens SEI de temporização de imagem. A Tabela 2, abaixo, representa uma sintaxe de exemplo para uma estrutura de sintaxe hrd_parameters() em HEVC. Tabela 2 - Parâmetros HRD
[00086] Na Tabela 2, cpb_cnt_minus1 [i] + 1 especifica o número de especificações de CEC alternativos no fluxo de bits do CVS quando HighestTid é igual a i. O valor de cpb cnt minus1 [I] está no intervalo de 0 a 31, inclusive. Quando não está presente, o valor de cpb_cnt_minus1 [i] é inferido sendo igual a 0.
[00087] Além disso, um VPS pode incluir uma informação de vídeo usabilidade (VUI) estrutura de sintaxe. Em Rec. ITU-T H.265 | ISO/IEC 23008-2, a estrutura de sintaxe VUI em um VPS é denotado vps_vui (). A estrutura de sintaxe VPS VUI inclui uma estrutura de sintaxe de parâmetros HRD de fluxo de dados VUI. Em Rec. ITU-T H.265|ISO/IEC 23008-2, a estrutura de sintaxe de parâmetros HRD de fluxo de bits em VUI um VPS é denotado vps_vui_bsp_hrd_params (). A Tabela 3, abaixo, é uma tabela para a estrutura de sintaxe vps_vui_bsp_hrd_params () em Rec. ITU-T H.265 | ISO/IEC 23008-2. TABELA 3 - Estrutura de Sintaxe de Parâmetros VPS VUI BSP HRD
[00088] Na Tabela 3, acima, bsp_hrd_idx [h] [i] [T] [j] [k] especifica o índice das estruturas de sintaxe hrd_parameters () nos VPS para a programação de entrega j- ésima especificada para o partição fluxo de bits k-ésima do esquema de particionamento de ordem i para o h-ésima OLS quando HighestTid é igual a t. Como indicado acima, uma partição fluxo de bits é uma sequência de bits, sob a forma de um fluxo de unidade NAL ou um fluxo de bytes, que é um subconjunto de um fluxo de bits de acordo com um esquema de partição que divide as camadas em uma camada de saída definido em uma ou mais partições. O comprimento do bsp_hrd_idx [h] [i] [T] [j] [k] elemento de sintaxe é Cell(log2(vps_num_hrd_parameters + vps_num_add_hrd_params))bits. O valor de bsp_hrd_idx[h][i][t][j][k] está na faixa de 0 a + vps_num_hrd_parameters vps_num_add_hrd_params - 1, inclusive. Quando vps_num_hrd_parameters + vps_num_add_hrd_params é igual a 1, o valor de bsp_hrd_idx [h][i][T][j][k] é inferido sendo igual a 0.
[00089] HEVC e outros padrões de codificação de vídeo especificar perfis, níveis e níveis. Perfis, séries, e os níveis de especificar restrições sobre os fluxos de bits e, portanto, limites sobre as capacidades necessárias para decodificar os fluxos de bits. Perfis de camadas, e os níveis também podem ser utilizados para indicar pontos de interoperabilidade entre as implementações do decodificador individuais. Cada perfil especifica um subconjunto de recursos algorítmicos e limites que é suportado por todos os decodificadores de vídeo em conformidade com esse perfil. Codificadores de vídeo não são obrigados a fazer uso de todos os recursos suportados em um perfil.
[00090] Cada nível de uma camada pode especificar um conjunto de limites para os valores que os elementos de sintaxe e variáveis possam ter. O mesmo conjunto de definições de níveis e de alinhamento pode ser utilizado com todos os perfis, mas implementações individuais podem suportar uma camada diferente e dentro de uma camada de um nível diferente para cada perfil de suporte. Para qualquer determinado perfil, um nível de uma camada pode geralmente corresponder a uma capacidade de carga de processamento e de memória do decodificador específico. Capacidades de decodificadores de vídeo pode ser especificada em termos da capacidade para decodificar fluxos de vídeo em conformidade com os condicionalismos de perfis particulares, séries e níveis. Para cada tal perfil, a camada, e nível suportado para esse perfil pode também ser expressa. Alguns decodificadores de vídeo podem não ser capaz de decodificar perfis particulares, camadas ou níveis.
[00091] Em HEVC, perfis, alinhamentos, e os níveis podem ser sinalizados pela estrutura de sintaxe profile_tier_level () estrutura de sintaxe. A estrutura de sintaxe profile_tier_level () pode ser incluída em um VPS e/ou um SPS. A estrutura de sintaxe profile_tier_level () pode incluir um elemento de sintaxe general_profile_idc, um elemento de sintaxe general_tier_flag, e um elemento de sintaxe general_level_idc. O elemento de sintaxe general_profile_idc pode indicar um perfil para o qual um CVS conforma. O elemento de sintaxe general_tier_flag pode indicar um contexto de alinhamento para interpretação do elemento de sintaxe general_level_idc. O elemento de sintaxe general_level_idc pode indicar um nível ao qual um CVS conforma. Outros valores para estes elementos de sintaxe podem ser reservados.
[00092] As capacidades do decodificador de vídeo podem ser especificadas em termos da capacidade para decodificar fluxos de vídeo em conformidade com os condicionalismos de perfis, séries e níveis. Para cada tal perfil, a camada e nível suportado para esse perfil podem também ser expressos. Em alguns exemplos, os decodificadores de vídeo não se inferir que um valor reservado do elemento de sintaxe general_profile_idc entre os valores especificados no HEVC indica capacidades intermediárias entre os perfis especificados. No entanto, os decodificadores de vídeo podem se inferir que um valor reservado do elemento de sintaxe general_level_idc associado com um valor particular do elemento de sintaxe general_tier_flag entre os valores especificados no HEVC indica capacidades intermediárias entre os níveis especificados de camada.
[00093] A especificação de sistemas MPEG-2 descreve como fluxos de dado multimídia (vídeo e áudio) podem ser multiplexados em conjunto com outros dados, para formar o fluxo de dados únicos adequado para a transmissão ou armazenamento digital. A mais recente especificação de MPEG- 2 TS é a H.222.0 recomendação ITU-T, versão 2012 de junho (aqui, "MPEG-2 TS"), em que o suporte de Codificação de Vídeo Avançada (AVC) e extensões AVC são fornecidos. Recentemente, a alteração do MPEG-2 TS para HEVC tem sido desenvolvida. O último documento é "Texto da ISO/IEC 13818-1: 2013/Rascunho da Alteração 3 - Transporte de vídeo HEVC mais de Sistemas MPEG-2," no documento de saída MPEG N13656, julho de 2013 (doravante, "documento N13656" ou "HEVC especificação TS ").
[00094] A especificação de Sistemas MPEG-2 define o conceito de um fluxo elementar. Especificamente, um fluxo elementar é um único componente digitalmente codificado (possivelmente MPEG-comprimidos) de um programa. Por exemplo, o vídeo codificado ou parte de áudio do programa pode ser um fluxo elementar. Um fluxo elementar é primeiramente convertido em um fluxo elementar em pacotes (PES) antes de ser multiplexados em um fluxo de programa ou fluxo de transporte. Dentro do mesmo programa, fluxo de ID é utilizado para distinguir os pacotes-PES pertencentes a um fluxo elementar de outro.
[00095] Cada um respectivo fluxo elementar tem um tipo de identificador de fluxo, que identifica um tipo de sequência do respectivo fluxo elementar. Um fluxo elementar com um tipo de fluxo igual a 0x24 é um fluxo de vídeo HEVC ou um vídeo temporal, sub-fluxo de bits HEVC ou uma sub-base de partição HEVC. Tal como definido no documento N13656, um fluxo de vídeo HEVC é um fluxo de bytes, tal como especificado em Rec. ITU-T H. 265 | ISO/IEC 23008-2 Anexo B. Um HEVC vídeo temporal, sub-fluxo de bits é um fluxo contínuo de dados que compreende uma sub-camada temporal HEVC com TemporallD igual a 0 e zero ou mais HEVC temporais sub- camadas com TemporallD não igual a 0. Como definido em documento N13656, uma base de subpartição HEVC é um sub- fluxo de bits de vídeo HEVC que também é um fluxo de bits conforme especificado em Rec. ITU-T H.265|ISO/IEC 23008-2, que contém todas as unidades NAL VCL e as unidades associadas não-NAL VCL de uma ou mais camadas até uma TemporalId maior alvo identificada por um ponto de operação HEVC alvo do que a lista de identificadores camada alvo inclui o valor nuh_layer_id igual a 0.
[00096] Um fluxo elementar com um tipo de fluxo igual a 0x27 é uma sub-partição de melhoria de HEVC que inclui TemporalId 0 de um fluxo de vídeo HEVC em conformidade com um ou mais perfis definidos no Anexo L de ITU-T Rec. H.265 | ISO/IEC 23008-2. Tal como definido no documento N13656, um acessório subpartição HEVC é uma ou mais camadas HEVC, ou um vídeo temporal, sub-fluxo de bits HEVC ou HEVC subconjunto vídeo temporais dos mesmos, das quais a agregação camada HEVC com uma base de subpartição HEVC e zero ou mais outros HEVC sub-divisórias, de acordo com a lista de camadas do ponto de operação da camada mais alta e a mais alta TemporalId incluído este vídeo sub-fluxo de bits, resulta em um fluxo de vídeo em camadas HEVC válido. Um subconjunto de vídeo temporal, HEVC compreende um ou mais sub-camadas temporais HEVC. Um subconjunto de vídeo temporal, HEVC difere de um vídeo temporal, sub-fluxo de bits HEVC em que um subconjunto de vídeo temporal, HEVC não incluem, necessariamente, uma sub-camada temporal HEVC com TemporallD igual a 0.
[00097] Tal como definido no documento N13656, agregação de camada de HEVC é agregação de componente de camada sucessiva HEVC de todos os componentes da camada de HEVC em uma sequência de vídeo HEVC. Tal como definido no documento N 13656, componentes da camada HEVC são unidades VCL NAL e os associados unidades não-NAL VCL de uma unidade de acesso HEVC que pertencem a um sub-partição HEVC. Além disso, tal como definido no documento N13656, agregação de componente camada HEVC é a concatenação de todos os componentes da camada de HEVC com o mesmo tempo de saída de todas as sub-partições HEVC indicadas em uma lista de camada HEVC na ordem indicada pela lista camada HEVC, resultando em uma unidade de acesso válido, como definido no Anexo F da Rec. ITU-T H.265|ISO/IEC 23008-2.
[00098] Tal como utilizado no contexto do MPEG- 2 TS, o termo "sub-partição HEVC" refere-se a uma sub-base de partição HEVC ou uma sub-partição de melhoria de HEVC. O mesmo conceito pode ser referido como uma "partição" no contexto de SHVC e MV-HEVC. Tal como definido na especificação HEVC TS, o termo "sub-partição de base HEVC" é um vídeo sub-fluxo de bits HEVC que está em conformidade com o padrão HEVC e contém todas as unidades VCL NAL de uma ou mais camadas até um TemporalId alvo mais alto identificado por um HEVC alvo de ponto de operação de que a lista de identificadores de camada alvo inclui o valor nuh_layer_id igual a 0. Além disso, tal como definido na especificação HEVC TS, o termo "sub-partição de melhoria de HEVC" refere- se a uma ou mais camadas HEVC, ou um vídeo temporal HEVC, sub-fluxo de bits ou HEVC subconjunto vídeo temporais dos mesmos, de que a agregação camada HEVC com uma sub-partição base de HEVC e zero ou mais outros sub-partições HEVC, de acordo com a lista de camadas do ponto de operação da camada mais alta e a TemporalId mais alta incluída neste sub-fluxo de bits de vídeo, resulta em um fluxo de vídeo em camadas de HEVC válido.
[00099] Um fluxo elementar com um tipo de fluxo igual a 0x28 é uma sub-partição de melhoria temporal HEVC de um fluxo de vídeo HEVC em conformidade com um ou mais perfis definidos no Anexo G de ITU-T Rec. H.265|ISO/IEC 23008-2. Tal como definido no documento N13656, uma sub-partição de melhoria temporal HEVC é um subconjunto de vídeo temporal HEVC do mesmo conjunto de camadas HEVC como outra Sub- partição de melhoria de HEVC do mesmo fluxo de vídeo HEVC que contém uma ou mais sub-camadas complementares temporais, como especificado em Rec. ITU-T H.265 | ISO/IEC 23008-2. Na presente descrição, uma sub-camada temporal complementar é uma Sub-partição de melhoria de HEVC temporal que fornece (taxa de quadro) com a subpartição principal. Por exemplo, assumir uma camada tem duas sub-camadas (Tid 0 e Tid 1). Neste exemplo, é possível transportar as duas sub-camadas temporais em dois fluxos elementares (ou duas sub-partição) em que o Tid 0 é na sub-partição principal e Tid é 1 em sub- partição de melhoria temporal.
[000100] Além disso, um fluxo elementar com um tipo de fluxo igual a 0x29 é uma sub-partição de melhoria HEVC que inclui TemporalId 0 de um fluxo de vídeo HEVC em conformidade com um ou mais perfis definidos no anexo H de ITU-T Rec. H.265 | ISO/IEC 23008-2. Um fluxo elementar com um tipo de fluxo igual a 0x2A é uma sub-partição de melhoria temporal de HEVC de um fluxo de vídeo HEVC em conformidade com um ou mais perfis definidos no anexo H de ITU-T Rec. H.265|ISO/IEC 23008-2.
[000101] Como indicado brevemente acima, a especificação de sistemas MPEG-2 define os conceitos de um fluxo de programa e um fluxo de transporte. Fluxos de programa e fluxos de transporte são dois multiplexes alternativas visando aplicações diferentes. Fluxos de programa são tendenciosos para o armazenamento e exibição de um único programa a partir de um serviço de armazenamento digital e um fluxo de programa é destinado ao uso em ambientes livres de erros porque é bastante suscetível a erros. Em contraste, fluxos de transporte são destinados para a entrega simultânea de uma série de programas em canais potencialmente sujeitos a erros. Em geral, um fluxo de transporte é um multiplexador concebido para aplicações multi-programa como a radiodifusão, de modo que um único fluxo de transporte pode acomodar muitos programas independentes. Um fluxo de programa simplesmente compreende os fluxos elementares que lhe pertencem e geralmente contém pacotes de comprimento variável.
[000102] Em um fluxo de programa, pacotes-PES que são derivados a partir dos fluxos elementares que contribuem são organizados em 'pacotes'. Um pacote compreende um cabeçalho de pacote, um cabeçalho de sistema opcional, e qualquer número de pacotes-PES tomadas a partir de qualquer um dos fluxos elementares contribuindo (isto é, os fluxos elementares do fluxo de programa), em qualquer ordem. O cabeçalho do sistema contém um resumo das características do fluxo de programa, tais como: a taxa máxima de dados do fluxo de programa, o número de contribuição de vídeo e fluxos elementares de áudio do fluxo de programa, e informações de temporização adicionais. Um decodificador, tal como decodificador 30, pode utilizar a informação contida em um cabeçalho do sistema para determinar se ou não o decodificador é capaz de decodificar o fluxo de programa.
[000103] Um fluxo de transporte compreende uma sucessão de pacotes de transporte. Pacotes de transporte são um tipo de pacotes-PES. Cada um dos pacotes de transporte é de 188 bytes de comprimento. O uso de pacotes de comprimento fixo, de curta duração em fluxos de transporte significa que os fluxos de transporte não são tão sensíveis a erros como fluxos de programa. Além disso, o processamento do pacote de transporte através de um processo de proteção de erros padrão, tais como a codificação Reed-Solomon pode dar a cada 188 bytes de comprimento proteção de erro adicional pacote de transporte. A melhoria da resiliência de erro de um fluxo de transporte significa que o fluxo de transporte tem uma chance melhor de sobreviver canais sujeitos a erros, tais como aqueles encontrados em um ambiente de broadcast. Dado o aumento da resiliência de erro de fluxos de transporte e a capacidade de realizar muitos programas simultâneos em um fluxo de transporte, pode parecer que fluxos de transporte são claramente o melhor dos dois multiplexadores (p.ex., fluxos de programa e fluxos de transporte). No entanto, o fluxo de transporte é um multiplexador mais sofisticado do que o fluxo de programa e é, portanto, mais difícil de criar e demultiplexador.
[000104] O primeiro byte de um pacote de transporte é um byte de sincronização, o qual é 0x47. Um fluxo de transporte único que pode levar muitos programas diferentes, cada um composto por muitos fluxos elementares empacotados. Além disso, um pacote de transporte inclui um campo de 13 bits do pacote Identificador (PID). O campo PID é utilizado para distinguir os pacotes de transporte que contém os dados de um fluxo elementar de pacotes de transporte que transportam dados dos outros fluxos elementares. É da responsabilidade do multiplexador garantir que cada fluxo elementar seja atribuído um valor PID único. O último byte de um pacote de transporte é o campo de contagem de continuidade. O valor do campo de contagem de continuidade é incrementado entre pacotes de transporte sucessivos pertencentes ao mesmo fluxo elementar. Incrementando o valor do campo de contagem de continuidade permite um decodificador, como decodificador 30, para detectar a perda ou ganho de um pacote de transporte e potencialmente ocultar erros que poderiam resultar da perda ou ganho de um pacote de transporte.
[000105] Apesar de um fluxo elementar a que um pacote de transporte pertence pode ser determinado com base em um valor de PID do pacote de transporte, um decodificador pode precisar ser capaz de determinar quais fluxos elementares pertencem a qual programa. Assim, informações específicas de programa especifico explicitam a relação entre programas e fluxos elementares componentes. Por exemplo, as informações específicas de programa podem especificar uma relação entre um programa e fluxos elementares pertencentes ao programa. As informações específicas do programa de um fluxo de transporte podem incluir uma tabela de mapa de programa (PMT), uma tabela de associação de programas (PAT), uma tabela de acesso condicionado, e uma tabela de informações da rede.
[000106] Cada programa realizado em um fluxo de transporte está associado a uma Tabela de Mapa de Programa (PMT). A PMT é permitida para incluir mais de um programa. Por exemplo, vários programas executados em um fluxo de transporte podem ser associados com a mesma PMT. A PMT associado a um programa dá detalhes sobre o programa e os fluxos elementares que compõem o programa. Por exemplo, um programa com o número 3 pode conter o vídeo com PID 33, áudio Inglês com PID 57, áudio chinês com PID 60. Em outras palavras, neste exemplo, a PMT pode especificar que um fluxo elementar cujos pacotes de transporte incluem campos PID com valores igual a 33 contém vídeo de um programa com um número (por exemplo, número de programa) igual a 3, que um fluxo elementar cujos pacotes de transporte incluem campos PID com valores iguais a 57 contém Inglês áudio do programa com o número 3,e que um fluxo elementar cujos pacotes de transporte incluem campos PID com valores iguais a 60 contém áudio chinesa do programa com o número 3.
[000107] Uma PMT de base pode ser embelezada com alguns dos muitos descritores especificados dentro das especificações dos sistemas MPEG-2. Em outras palavras, uma PMT pode incluir um ou mais descritores. Os descritores transmitem mais informações sobre um programa ou fluxos elementares que compõem o programa. Os descritores podem incluir parâmetros de codificação de vídeo, parâmetros de codificação de áudio, informações de identificação do idioma, informações pan-and-scan, detalhes de acesso condicional, informações sobre direitos autorais e assim por diante. A emissora ou outro usuário pode definir descritores privados adicionais, se necessário. Em componentes fluxos elementares relacionados de vídeo, pode haver também um descritor de hierarquia. O descritor de hierarquia fornece informações identificando os elementos de programa contendo componentes de vídeo hierarquicamente codificados, áudio e fluxos privados. Os fluxos privados podem incluir metadados, como um fluxo de informações específico de programa. Em geral, um elemento de programa é um dos dados ou fluxos elementares que estão incluídos em um programa (isto é, um fluxo elementar de componente do programa). Em fluxos de transporte MPEG-2, os elementos do programa são geralmente empacotados. Em MPEG-2 fluxos de programa, os elementos do programa não são empacotados.
[000108] Informações específicas do programa de um fluxo de programa podem incluir um mapa de fluxo de programa (PSM). Um PSM de um fluxo de programa fornece uma descrição dos fluxos elementares no fluxo de programa e as relações dos fluxos elementares para o outro. Quando transportado em um fluxo de transporte esta estrutura não deve ser modificada. O PSM está presente como um pacote PES quando o valor stream_id é 0xBC.
[000109] Conforme indicado acima, a informação específica-programa de um fluxo de transporte pode incluir uma tabela de associação de programa (PAT). A PAT de um fluxo de transporte contém uma lista completa de todos os programas disponíveis no fluxo de transporte. A PAT sempre tem o valor de PID 0. Em outras palavras, os pacotes de transporte que têm valores de PID igual a 0 contêm o PAT. O PAT lista cada respectivo programa de um fluxo de transporte juntamente com o valor PID dos pacotes de transporte que contêm a tabela de programas Mapa associado com o respectivo programa. Por exemplo, no exemplo acima descrito da PMT, a PAT pode incluir informações especificando que a PMT que especifica os fluxos elementares de programa número 3 tem um PID 1001 e pode incluir informação especificando que outro PMT tem outro PID de 1002. Em outras palavras, neste exemplo, PAT pode especificar que os blocos de transporte cujos campos PID têm valores iguais a 1001 contém a PMT de programa número 3 e a PAT pode especificar que os blocos de transporte cujos campos PID têm valores iguais a 1002 conter a PMT de outro programa.
[000110] Além disso, como indicado acima, a informação específica-programa de um fluxo de transporte pode incluir uma tabela de informação de rede (NIT). O número zero do programa, especificado em uma PAT de um fluxo de transporte, tem um significado especial. Especificamente, número de programa 0 pontos para a NIT. A NIT de um fluxo de transporte é opcional e quando estiver presente, a NIT fornece informações sobre a rede física que transporta o fluxo de transporte. Por exemplo, a NIT pode fornecer informações como as frequências de canal, dados do transponder de satélite, as características de modulação, originador de serviço, nome do serviço e os detalhes de redes alternativas disponíveis.
[000111] Conforme indicado acima, a informação específica de programa de um fluxo de transporte pode incluir uma tabela de acesso condicionado (CAT). Em alguns exemplos, uma CAT deve estar presente se qualquer fluxo elementar dentro de um fluxo de transporte é embaralhado. A CAT fornece detalhes sobre o sistema (s) lutando em uso e fornece os valores de PID dos pacotes de transporte que contêm as informações de gerenciamento de acesso e direito condicional. O MPEG-2 não especifica o formato desta informação.
[000112] Tal como acima indicado, uma PMT pode incluir um ou mais descritores que transmitem informações em torno de um programa ou fluxo elementar de componente de um programa. O um ou mais descritores em uma PMT podem incluir um descritor de hierarquia. Em fluxo de transporte MPEG-2 (TS), o descritor de hierarquia é concebido para assinalar a hierarquia dos sub-fluxos de bits em diferentes fluxos elementares. O descritor de hierarquia fornece informações para identificar os elementos do programa contendo componentes de vídeo hierarquicamente codificados, áudio e fluxos privados, tais como camadas em L-HEVC. Tabela 2-49, abaixo, mostra uma sintaxe de um descritor de hierarquia. Os parágrafos seguintes Tabela 2-49 descrevem a semântica dos campos do descritor de hierarquia. Tabela 2-49 - Descritor de hierarquia
[000113] temporal_scalability_flag - Um sinalizador de 1 bit, que, quando configurado para '0' indica que o elemento de programa associado aumenta a taxa de quadro do fluxo de bits resultante do elemento de programa referenciado pelo hierarchy_embedded_layer_index. O valor de “1” para esta sinalização é reservado.
[000114] spatial_scalability_flag - Um sinalizador de 1 bit, que, quando configurado para '0' indica que o elemento de programa associado aumenta a resolução espacial do fluxo de bits resultante do elemento de programa referenciado pelo hierarchy_embedded_layer_index. O valor de “1” para esta sinalização é reservado.
[000115] quality_scalability_flag - Um sinalizador de 1 bit, o qual quando ajustado para ‘0' indica que o elemento de programa associado melhora a qualidade SNR ou a fidelidade da sequência de bits resultante do elemento referenciado pelo hierarchy_embedded_layer_index. O valor de “1” para esta sinalização é reservado.
[000116] hierarchy_type - A relação hierárquica entre a camada de hierarquia associada e a sua camada incorporada de hierarquia é definida na Tabela 2-50 (mostrada abaixo). Se escalabilidade aplica-se em mais de uma dimensão, este campo deve ser definido para o valor de '8' ("Escalabilidade Combinada"), e as sinalizações temporal_scalability_flag, spatial_scalability_flag e quality_scalability_flag devem ser definidas consequentemente. Para sub-fluxos de bits de vista de base MVC, este campo deve ser ajustado para o valor de '9' (sub- fluxo de bits de vídeo MVC") e as sinalizações temporal_scalability_flag, spatial_scalability_flag e quality_scalability_flag deve ser definido para ‘1’. Para sub-fluxos de bits de vista de base MVC, o campo de tipo de hierarquia deve ser definido como o valor de '15' e os sinalizadores temporal_scalability_flag, spatial_scalability_flag e quality_scalability_flag serão definidos.
[000117] hierarchy_layer_index - O índice de camada de hierarquia é um campo de 6 bits que define um único índice do elemento de programa associado em uma tabela de codificação de camada hierarquias. Índices deve ser único dentro de uma única definição do programa. Para sub-fluxos de bits de vídeo de fluxos de vídeo AVC em conformidade com um ou mais perfis definidos no anexo G da Rec. ITU-T H.264|ISO/IEC 14496-10, este é o índice de elemento de programa, o qual é atribuído de uma forma que o fluxo de bits de pedido será correto se associada vídeo escalável codificação representações dependência do vídeo sub-fluxos de bits da mesma unidade de acesso são remontados em ordem de índice de camada de hierarquia crescente. Para MVC vídeo sub-fluxos de bits de fluxos de vídeo AVC em conformidade com um ou mais perfis definidos no anexo H de Rec. ITU-T H.264 | ISO/IEC 14496-10, este é o índice de elemento de programa, o qual é atribuído de uma forma que o fluxo de bits de pedido será correto se subconjuntos de componente de vista MVS associado de sub-fluxos de bits de vídeo MVC da mesma unidade de acesso são reagrupados no aumento da ordem de índice de camada de hierarquia.
[000118] tref_present_flag - Um sinalizador de 1 bit, que, quando configurado para '0' indica que o campo de TREF podem estar presentes nos cabeçalhos dos pacotes PES no fluxo elementar associado. O valor de ‘1’ para esta sinalização é reservado.
[000119] hierarchy_embedded_layer_index - O hierarchy_embedded_layer_index é um campo de 6 bits que define o índice de camada de hierarquia do elemento de programa que deve ser acedida e estar presente na ordem de decodificação antes de decodificação do fluxo elementar associado com este descritor de hierarquia. O campo de índice de camada de hierarquia incorporado é indefinido se o valor do tipo de hierarquia é 15.
[000120] hierarchy_channel - O canal de hierarquia é um campo de 6 bits que indica o número de canal destina-se para o elemento de programa associados em um conjunto ordenado de canais de transmissão. O canal de transmissão mais robusto é definido pelo valor mais baixo deste campo no que diz respeito à definição geral hierarquia transmissão. Um dado canal de hierarquia pode ao mesmo tempo ser atribuída a vários elementos do programa.
[000121] A Tabela 2-50, abaixo, descreve o significado dos valores do campo de tipo de hierarquia de um descritor de hierarquia. Tabela 2-50 - valores de campo hierarchy_type
[000122] No projeto de L-HEVC TS, o perfil, camada, e informação de nível (referido como informações PTL) e a informação de ponto de operação são sinalizadas no descritor de extensão HEVC e HEVC descritor de ponto de operação. As tabelas de sintaxe dos dois descritores são mostradas nas tabelas a seguir. Tabela Amd7-1 - descritor de extensão HEVC Tabela Amd7-2 - descritor de ponto de operação HEVC
[000123] Recentemente, a alteração do formato MPEG-2 TS para transporte de HEVC em camadas têm sido iniciada. O último documento é "Texto da ISO/IEC 13818-1: 2013/Estudo da PDAM 7 - Carregamento em camadas HEVC," em MPEG wl4562 documento, julho de 2014 (aqui, "L-HEVC TS projeto"). No projeto de L-HEVC TS, o modelo de depósito intermediário atual é descrito como se segue. Quando há, pelo menos, um fluxo com um valor do tipo de fluxo na faixa de 0x27 a 0x2A em uma ITU-T Rec. H.222.0|ISO/IEC 13818-1 programa, e quando sub_pic_hrd_params_present_flag na estrutura de sintaxe de parâmetros HRD ativo é estabelecido igual a um, a fim de sinalizar a operação de buffer de imagem codificada específica de partição de fluxo de bits (CPB), o decodificador alvo do sistema de transporte (T-STD) modelo tal como descrito em 2.4.2 é estendido, tal como ilustrado na FIG. 2 e, tal como especificado abaixo. FIG. 2 é um diagrama conceitual que ilustra uma ampliação do modelo T- STD para operação CEC-fluxo de bits-partição específica.
[000124] As seguintes notações adicionais são usadas para descrever as extensões t-STD e são ilustradas na FIG. 2.
[000125] t (i) indica o tempo em segundos no qual o byte de ordem i do fluxo de transporte entra no decodificador alvo do sistema
[000126] 1 é um índice para os Sub-partições HEVC recebidos de fluxo tipo 0x27 ou 0x29 (que incluem TemporalId 0). A ordem de sub-partições HEVC é indicada pelo descritor de ponto de operação HEVC, se existente, caso contrário, a ordem é dada por as dependências indicados pelos descritores de hierarquia. O mesmo índice também se aplica a HEVC de melhoria temporal, sub-partições correspondente. Aqui, 1 começa a partir de N, que está associada com a sub-base de partição HEVC, e corre-se a (n + m), onde m é especificado abaixo.
[000127] m representa o número de sub-partições de HEVC de stream_type 0x27 ou 0x29.
[000128] HI é o número de HEVC recebido correspondendo a subpartições de melhoria temporal do 1- ésimo recebido HEVC sub-partição do stream_type 0x27 ou 0x29, associado por descritores de hierarquia com a mesma sub- partição de base HEVC.
[000129] ESl,k é o fluxo elementar recebido que contém o HEVC k-ésimo correspondendo a subpartição de melhoria temporal do 1-ésimo da subpartição HEVC recebida de stream_type 0x27 ou 0x29, ou a subpartição HEVC 1-ésima de stream_type 0x27 ou 0x29 se k é igual a 0.
[000130] ESn+m,Hm é o fluxo elementar recebido que contém o subpartição HEVC do mais alto ponto de operação HEVC no conjunto de fluxos elementares recebidos.
[000131] PIDn+m,Hm é o valor do identificador de pacotes, que identifica ES n+m,Hm.
[000132] j é um índice para a saída de unidades HEVC de acesso.
[000133] Ci(j) é o componente de j-ésima camada de HEVC do 1-ésima subpartição HEVC recebida de fluxo tipo 0x27 ou 0x29 ou subpartição de HEVC correspondente de melhoria temporal.
[000134] An(j) é a unidade de acesso HEVC j-ésima da representação temporal completa de HEVC.
[000135] tdn (j) é o tempo de decodificação de An(j) no decodificador alvo do sistema.
[000136] tri(j) é o valor de TREF, se disponível no cabeçalho PES ligado a Cl(j), então o tempo de decodificação de An(j) no decodificador alvo do sistema.
[000137] TBl,k é o buffer de transporte de fluxo elementar ESl,k.
[000138] TBSl,k é o tamanho do buffer de transporte TBl,k, medido em bytes.
[000139] MBl,k é o buffer de multiplexagem por fluxo elementar ESl,k.
[000140] MBSl,k é o tamanho do buffer de multiplexagem MBl,k, medido em bytes.
[000141] EBl é o buffer de fluxo elementar para o sub-fluxo de bits de vídeo temporal HEVC recebido ESl,0 e os subconjuntos de vídeo temporal HEVC recebido ESl,l a ESl,H. NOTA XI - Cada EB1 de buffer contém uma ou mais partições como especificado no Anexo F daITU-T Rec. H.265 | ISO/IEC 23008-2.
[000142] EBSl é o tamanho do buffer de fluxo elementar EBl, medido em bytes.
[000143] Rxl,k é a taxa de transferência do k-ésimo buffer de transporte TBl,k para o buffer de multiplex k-ésimo MBl,k tal como especificado abaixo.
[000144] Rbxl,k é a taxa de transferência da memória intermediária multiplex k-ésimo MBl,k para o buffer de fluxo elementar EBl como especificado abaixo. NOTA X2 - O índice n, onde utilizado, indica que os fluxos elementares recebidos e tampões associados pertencem a uma sub-partição certa de base HEVC, distinguindo-se estes fluxos elementares e armazenamentos temporários associados de outros fluxos elementares e buffers, mantendo a consistência com a notação na FIG . 2 e outras extensões de t-STD.
[000145] No que diz respeito ao TBl,k, a MBl,k, a gerenciamento de buffer EBI, o seguinte aplica-se: • Há um buffer de transporte TBSl,k para cada fluxo elementar recebido ESl,k, onde o tamanho TBSI, k é fixado para 512 bytes. • Há um buffer de multiplex MBl,k para cada fluxo elementar recebido ESl,k, onde o tamanho MBSI, k do armazenamento em buffer multiplex MBl,k é constrangido como se segue: MBSn,k = BSmux + BSoh + CpbBrNalFactor x MaxCPB [camada, nível] - cpb_size (medido em bytes) Onde BSoh, sobrecarga de buffer de pacotes, e BSmux, buffer multiplex adicional, são, tal como especificado na cláusula 2.17.2 do documento N13656; MaxCPB [camada, nível] e MaxBR [camada, nível] são retirados da camada de especificação e nível de HEVC para a camada e o nível do ponto de operação HEVC associada com ESl,k; cpb_size é tomado a partir dos parâmetros HRD sub- camada, tal como especificado no Anexo F da Rec. ITU-T H.265|ISO/IEC 23008-2, incluído no ponto de operação HEVC associada com ESl,k. • Há um buffer de fluxo elementar Ebl para os HI + 1 fluxos elementares do conjunto de fluxos recebidos ESl,0 elementares para ESlm,HI, com um tamanho total EBSl EBSl = tamanho CEC (medido em bytes) onde o cpb_size é tomado a partir dos parâmetros HRD sub-camada, tal como especificado em Anexo F da Rec. ITU-T H.265|ISO/IEC 23008-2, incluído no ponto de operação HEVC associada com ESl,H. • Transferência de TBl,k para MBl,k é aplicado como se segue: • Quando não há dados em TBl,k então Rxl,k é igual a zero. • Caso contrário, Rxl,k = bit_rate onde a taxa de bit é CpbBrNalFactor/CpbBrVclFactor x BitRate [i] de fluxo de dados para o CPB para o formato de fluxo de bytes e Taxa de bits [i] é como definido na Rec. ITU-T H.265 | ISO/IEC 23008-2 quando sub-camada parâmetros HRD estão presentes nas VPS para o vídeo sub-partição HEVC em ESkk. • Transferência de MBl,k para EBl é aplicado como se segue: • Se o HEVC-timing_and_HRD_desciptor está presente com hrd_management_valid_flag ajustado a ‘1’ para sub-fluxo de bits de vídeo HEVC então a transferência de dados de MBl,k a EBl deve seguir o esquema definido HRD para chegada de dados no CPB de fluxo elementar ESl,H como odefinido no Anexo C do Rec. ITU-T H.265 I ISO/IEC 23008-2. • Caso contrário, o método de vazamento deve ser usado para transferir dados de MBl,k para EBl da seguinte forma: Rbxn,k = CpbBrNalFactor x MaxBR [camada, nível] onde MaxBR [camada, nível] é como definido para o formato de fluxo de bytes na especificação camada e nível de em Rec. ITU T H.265 | ISO/IEC 23008-2 (Tabela A.2) para a camada e o nível do ponto de operação HEVC resultante da remontagem (até) a o sub-fluxo de bits em camadas HEVC associado no fluxo elementar ESl,k. Se há dados de carga útil do pacote PES em MBl,k e EBl que não são completos, a carga útil do pacote PES é transferida de MBl,k para EBl a uma taxa igual a Rbxl,k. Se EBl está cheio, os dados não são removidos MBl,k. Quando um byte de dados é transferido da MBl,k para EBl, todos os bytes de cabeçalho do pacote PES que estão em MBl,k e precedem aquele byte são instantaneamente removidos e descartados. Quando não existe uma carga útil do pacote PES de dados presente no MBl,k, nenhum dado é removido do MBl,k. Todos os bytes de dados de carga útil de pacote PES entram EBl instantaneamente deixando MBl,k.
[000146] A concepção do MPEG-2 TS para transporte de extensões HEVC descritos no Pedido de Patente US Provisória 62/062.681, depositado em 10 outubro de 2014, está relacionada.
[000147] Em adição aos descritores indicados acima, os descritores podem incluir um ou mais de temporização HEVC e descritores HRD. Um descritor de temporização HEVC e HRD fornece temporização e parâmetros HRD para um fluxo de vídeo HEVC, um vídeo temporal, sub- fluxo de bits HEVC, ou um subconjunto de vídeo temporal, HEVC. Tabela 2-110, a seguir, é uma tabela de sintaxe para um descritor de temporização HEVC e HRD, tal como definido no documento 13656 N. Tabela 2-110 - HEVC tempo e descritor HRD
[000148] Na Tabela 2-110, hrd_management_valid_flag é uma sinalização de um bit é apenas definida para utilização em fluxos de transporte. Quando o descritor de temporização HEVC e HRD está associada a um fluxo de vídeo HEVC ou com uma maior representação de sub-camada temporal HEVC transportado em um fluxo de transporte, em seguida, aplica-se o seguinte. Se o hrd_management_valid_flag é definido como '1’, então SEI de Período de buffer e mensagens SEI de temporização de imagem, conforme definido no Anexo C do Rec. ITU-T H.265 | ISO/IEC 23008-2, devem estar presentes no fluxo de vídeo HEVC associado ou representação de sub-camada temporal mais alta de HVEC. Estas mensagens SEI de Período de buffer deverão ser codificadas nal_initial_cpb_removal_delay e valores nal_initial_cpb_removal_delay_offset e podem, adicionalmente, transportar valores nal_initial_alt_removal_delay e nal_initial_alt_cpb_removal_delay_offset para o NAL HRD. Se o hrd_management_valid_flag é definido como ‘1’, em seguida, a transferência de cada byte de MBn para EBn no T-STD tal como definido em 2.17.2 do documento N13656 ou a transferência de MBn,k para EBn no T-STD tal como definido em 2,17. 3 do documento N13656 deve estar de acordo com a programação de entrega para aquele byte no CEC no NAL HRD, como determinado a partir da nal_initial_cpb_removal_delay codificada e nal_initial_cpb_removal_delay_offset ou do nal_initial_alt_cpb_removal_delay codificada e valores nal_initial_alt_cpb_removal_delay_offset para SchedSelIdx igual a cpb_cnt_minus1 como especificado no Anexo C Rec. ITU-T H.265|ISO/IEC 23008-2. Quando o hrd_management_valid_flag é definido como '0', o método de vazamento deve ser utilizado para a transferência de MBn para EBn na T-STD conforme definido no 2.17.2 do documento N13656 ou a transferência do MBn,k para EBn na T-STD conforme definido no 2.17.3 do documento N13656.
[000149] Assim, na versão do descritor de temporização HEVC e HRD especificado em N13656, o valor de SchedSelIdx é estabelecido igual a cpb_cnt_minus1. Em operações HRD, um programador de fluxo hipotético proporciona fluxos de bits de teste de acordo com uma programação de entrega indicado por SchedSelIdx.
[000150] Como referido acima, no fluxo de temporização HEVC e descritor HRD, o valor de SchedSelIdx é estabelecido igual a cpb_cnt_minus1. No entanto, na especificação HEVC não existe apenas um valor (isto é, não apenas um único valor) de cpb_cnt_minus1, mas um conjunto de valores, um valor respectivo para cada sub-camada temporal. Assim, é claro que, pelo menos, um dos valores está sendo utilizado. Além disso, para qualquer valor particular de cpb_cnt_minus1 que é maior que 0, pode haver vários prazos de entrega, não é claro por que sempre o último cronograma de entrega é sempre escolhido (ou seja, selecionado). Por fim, no desenho final do SHVC/MV-HEVC HRD, a programação de entrega para um determinado conjunto de camada de saída é uma combinação de diferentes prazos de entrega para as diferentes camadas.
[000151] Para ultrapassar este problema, propõe- se nesta descrição que o valor de SchedSelIdx (ou seja, um índice de seleção programação) é explicitamente sinalizada em um descritor de temporização HEVC e HRD. Por exemplo, um elemento de sintaxe target_schedule_idx pode ser assinalado em um instante de tempo HEVC e descritor HRD. Em uma alternativa, o valor de SchedSelIdx é sinalizado dentro de um descritor de ponto de operação HEVC para cada ponto de operação. Assim, em um exemplo, um dispositivo de processamento de vídeo (por exemplo, dispositivo de fonte 12, o codificador de vídeo 20) sinaliza explicitamente um valor de um índice de seleção programação em um instante de tempo HEVC e descritor HRD, ou em um descritor de ponto de operação HEVC para cada ponto de operação. Da mesma forma, em um exemplo, decodificador de vídeo 30 (ou dispositivo de destino 14) pode obter um valor de um índice de seleção programação que é explicitamente sinalizada em: um descritor de temporização HEVC e HRD, ou um descritor de ponto de operação HEVC para cada ponto de operação.
[000152] Nas especificações SHVC/MV-HEVC, pode haver uma ou mais estruturas de sintaxe de parâmetros HRD e cada partição de um fluxo de bits refere-se a uma das estruturas de sintaxe de parâmetros HRD. Para o transporte de L-HEVC sobre os sistemas MPEG-2, os parâmetros atualmente HRD aplicáveis para cada sub-partição HEVC não estão claramente especificados. Em outras palavras, não está claro quais parâmetros HRD aplicam a subpartições HEVC particulares. Uma estrutura de sintaxe de parâmetros HRD aplicável a uma sub-partição HEVC é utilizada na realização de operações HRD envolvendo a sub-partição HEVC.
[000153] Para ultrapassar este problema, esta divulgação sugere que o parâmetro HRD aplicável para uma partição é atribuída a um conjunto de parâmetros HRD cujo índice é indicado pelo elemento de sintaxe bsp_hrd_idx[TargetOlsIdx][TargetPsIdx][HighestTid][SchedSel CombIdx][partiti onIdx] especificado na tabela de sintaxe vps_vui_bsp_hrd_params (p.ex., uma tabela de sintaxe de parâmetros HRD de partição de fluxo de bits de usabilidade de vídeo de conjunto de parâmetro de vídeo) de SHVC Draft Text 7 ou MV-HEVC Draft Text 9. Aqui, o termo partição é usado no contexto SHVC/MV-HEVC. Por exemplo, o decodificador de vídeo 30 pode determinar que um parâmetro HRD aplicável para uma partição de um fluxo de bits é atribuído a um parâmetro HRD com um índice indicado por um elemento sintático especificado em um conjunto de parâmetros de vídeo. Tabela do SHVC esboço especificação ou MV-HEVC esboço especificação. Da mesma forma, um dispositivo de processamento de vídeo pode gerar, em um conjunto de parâmetros de vídeo, uma tabela de sintaxe de parâmetros HRD da especificação de rascunho SHVC ou uma especificação de rascunho MV-HEVC, um elemento de sintaxe que indica um índice para um parâmetro HRD aplicável atribuído a uma partição de um fluxo de bits, a partição correspondente a um parâmetro HRD aplicável.
[000154] Assim, em alguns exemplos, um dispositivo de processamento de vídeo, tal como o codificador de vídeo 20, pode gerar um VPS que inclua um conjunto de elementos de sintaxe (por exemplo, Bsp_hrd_idx [TargetOlsIdx] [TargetPsIdx] [HighestTid] [SchedSelCombIdx] [partitio nIdx]) e uma pluralidade de estruturas de sintaxe de parâmetros HRD (por exemplo, hrd_parameters ()). Cada estrutura de sintaxe de parâmetros HRD respectiva da pluralidade de estruturas de sintaxe de parâmetros HRD compreende um conjunto respectivo de parâmetros HRD. Cada elemento de sintaxe respectivo do conjunto de elementos de sintaxe especifica um índice de uma estrutura de sintaxe de parâmetros HRD na pluralidade de estruturas de sintaxe de parâmetros HRD.
[000155] Além disso, o dispositivo de processamento de vídeo pode gerar uma temporização HEVC e descritor de HRD compreendendo um elemento de sintaxe de índice de programação alvo (por exemplo, target_schedule_idx) indicando um índice de uma programação de entrega. O dispositivo de processamento de vídeo pode gerar um fluxo de dados, tal como um fluxo de dados MPEG-2, compreendendo uma pluralidade de fluxos elementares e o temporizador HEVC e o descritor HRD. Um conjunto de parâmetros (por exemplo, bsp_hrd_idx [TargetOlsIdx] [TargetPsIdx] [HighestTid]) identifica um elemento de sintaxe no conjunto de elementos de sintaxe que especifica um índice da estrutura de sintaxe de parâmetros HRD específica identificada como sendo aplicável ao fluxo elementar particular. Neste exemplo, a estrutura de sintaxe específica de parâmetros HRD é uma da pluralidade de estruturas de sintaxe de parâmetros HRD e a estrutura de sintaxe de parâmetros HRD particular é parte de um ponto de operação. O conjunto de parâmetros pode incluir um parâmetro (p.ex., SchedSelCombIdx) igual tendo um valor igual a um valor do elemento de sintaxe de índice de planejamento de destino. Além disso, em alguns exemplos, o conjunto de parâmetros inclui um segundo parâmetro (p.ex., partitionIdx) cujo valor é determinado da maneira mostrada no exemplo da FIG. 7. Adicionalmente, o conjunto de parâmetros pode incluir um terceiro, quarto e quinto parâmetro. O terceiro parâmetro (por exemplo, TargetOlsIdx) especifica uma camada de saída de destino definir o índice de um ponto de operação. O quarto parâmetro (por exemplo, TargetPsIdx) especifica um índice de esquema de particionamento de destino do ponto de operação e o quinto parâmetro (por exemplo, HighestTid) especifica um identificador temporal mais alto do ponto de operação.
[000156] Em um exemplo semelhante, o decodificador vídeo 30 pode receber fluxo de dados, tal como um fluxo de dados MPEG-2, compreendendo uma pluralidade de fluxos elementares e um descritor de temporização HEVC e HRD. O descritor de temporização HEVC e HRD compreende um elemento de sintaxe de índice de planejamento de destino (por exemplo, target_schedule_idx) indicando um índice de um cronograma de entrega. Além disso, o decodificador de vídeo 30 pode identificar, com base em um conjunto de parâmetros, um elemento de sintaxe em um conjunto de elementos de sintaxe em um VPS. O VPS compreende uma pluralidade de estruturas de sintaxe de parâmetros HRD (por exemplo, hrd_parameters ()). Cada estrutura de sintaxe de parâmetros HRD respectiva da pluralidade de estruturas de sintaxe de parâmetros HRD compreende um conjunto respectivo de parâmetros HRD. Cada elemento de sintaxe respectivo do conjunto de elementos de sintaxe especifica um índice de uma estrutura de sintaxe de parâmetros HRD na pluralidade de estruturas de sintaxe de parâmetros HRD. O conjunto de parâmetros pode incluir um parâmetro (por exemplo, SchedSelCombIdx) com um valor igual a um valor do elemento de sintaxe de índice de programação de destino. Além disso, em alguns exemplos, o conjunto de parâmetros inclui um segundo parâmetro (p.ex., partitionIdx) cujo valor é determinado da maneira mostrada no exemplo da FIG. 7. Adicionalmente, o conjunto de parâmetros pode incluir um terceiro, quarto e quinto parâmetro. O terceiro parâmetro (por exemplo, TargetOlsIdx) especifica uma camada de saída de destino definir o índice de um ponto de operação. O quarto parâmetro (por exemplo, TargetPsIdx) especifica um índice de esquema de particionamento de destino do ponto de operação e o quinto parâmetro (por exemplo, HighestTid) especifica um identificador temporal mais alto do ponto de operação. Além disso, neste exemplo, o decodificador de vídeo 30 pode identificar, com base em um índice especificado pelo elemento de sintaxe identificado, uma estrutura de sintaxe de parâmetros HRD particular na pluralidade de estruturas de sintaxe de parâmetros HRD como sendo aplicável a um determinado fluxo elementar que é parte do Ponto de operação. A pluralidade de fluxos elementares inclui o fluxo elementar particular.
[000157] Na reunião de Sapporo dos grupos JCT-VC e JCT-3V, foi acordado que as informações de perfil, camada e nível (PTL) estão associadas com cada camada, em vez de com cada conjunto de camadas de saída ou ponto de operação. Esta decisão tem um impacto na concepção do modelo de buffer no projeto TS L-HEVC devido a dois factos a seguir. Primeiro, atualmente um fluxo elementar é uma sub-partição HEVC (por exemplo, subpartição de base HEVC, sub-partição de aprimoramento HEVC ou subdivisão temporal HEVC) e uma ou mais camadas podem ser transportadas dentro de um fluxo elementar. Em segundo lugar, cada fluxo elementar no modelo de buffer passa pelo Transporte Armazenamento em buffer (TBn), o Buffer de multiplexação (MBn) e o Armazenamento em buffer Elementar (EBn).
[000158] Atualmente, o tamanho de MBn é calculado com base na seguinte equação: MBSn,k = BSmux + BSoh + CpbBrNalFactor x MaxCPB [alinhamento, nível] - cpb_size (medido em bytes) Onde BSmux, BSoh e MaxCPB[alinhamento, nível] dependem de informação PTL. Na equação acima, BSoh, temporário de armazenamento de sobrecarga de pacotes, e BSmux, temporário de multiplex adicional de armazenamento, são como especificados na cláusula 2.17.2 do documento N13656. MaxCPBftier, nível] e MaxBPv [alinhamento, nível] são retirados da especificação de nível e nível de HEVC para a camada e nível de ESl,k o ponto de operação HEVC associado com ESl,k. O tamanho cpb é obtido a partir dos parâmetros HRD da subcamada dentro dos hrd_parameters() aplicáveis, conforme especificado no Anexo F da Rec. UIT-T H.265|ISO/IEC 23008-2, para o ponto de operação HEVC associado com ESl,k. Quando um fluxo elementar tem mais de uma camada, há mais de um conjunto de informações PTL disponíveis. Como resultado, não está claro a partir de qual conjunto de informações PTL deve ser calculado ou derivado o valor de BSmux, BSoh e MaxCPB[alinhamento, nível].
[000159] Para ultrapassar este problema, esta divulgação propõe restringir (isto é, restringir ou exigir) que cada fluxo elementar (isto é, uma sub-partição HEVC) contenha não mais do que uma camada. Por exemplo, um dispositivo de processamento de vídeo (p.ex., dispositivo de fonte 12, codificador de vídeo 20) pode gerar um fluxo de dados (por exemplo, um fluxo de programa MPEG-2 ou fluxo de transporte) compreendendo um ou mais fluxos elementares. Neste exemplo, o fluxo de dados está sujeito a uma restrição que cada um dos um ou mais fluxos elementares não contém mais do que uma camada. Em um exemplo semelhante, o decodificador vídeo 30 pode decodificar dados de vídeo de um fluxo de dados (por exemplo, um fluxo de programa MPEG-2 ou fluxo de transporte) compreendendo um ou mais fluxos elementares. Neste exemplo, o fluxo de dados está sujeito a uma restrição que cada um dos um ou mais fluxos elementares não contém mais do que uma camada.
[000160] Conforme descrito acima, o temporizador HEVC e o descritor HRD fornecem parâmetros de tempo e HRD. O atual cronograma HEVC e descritor HRD não especifica se o cronograma HEVC atual e descritor HRD é um descritor de nível de programa ou um descritor de nível de elemento de programa. Ambos os seguintes são possíveis. Primeiro, o tempo HEVC e HRD descritor pode ser sinalizado como um programa de nível de descritor. Quando temporizador de HEVC e HRD descritor é sinalizado como um programa de nível descritor, deve haver apenas uma instância de que a HRD cronograma e HRD descritor como esta única instância da HEVC temporização e HRD descritor se aplica a todos os fluxos elementares com stream_type 0x24, 0x25, 0x27 ~ 0x2A. Em segundo lugar, o tempo HEVC e HRD descritor é sinalizado como um programa de nível de elemento descritor. O descritor se aplica apenas a um fluxo elementar específico. Isto permite a possibilidade de que o temporizador HEVC e o descritor HRD estejam presentes para alguns fluxos elementares e não presentes para alguns outros fluxos elementares. Embora tal cenário seja possível, parece não haver vantagem de tal sinalização granular mais fina.
[000161] Para ultrapassar este problema, a divulgação propõe o seguinte. Quando presente, o temporizador HEVC e o descritor HRD devem ser sinalizados como descritores de nível de programa. Quando presente, deve haver no máximo um cronograma HEVC e um descritor HRD para uma Rec. UIT-T. H.222.0|ISO/IEC 13818-1. Assim, em alguns exemplos, um dispositivo de processamento de vídeo (p.ex., dispositivo de fonte 12, codificador de vídeo 20) gera, em um fluxo de dados MPEG-2 de acordo com a Recomendação UIT-T H.222.0, um descritor HRV HEVC e um descritor HRD como um Descritor de nível de programa, em que é necessário que haja no máximo um cronograma HEVC e um descritor HRD no fluxo de dados MPEG-2. Em um exemplo semelhante, o decodificador de vídeo 30 obtém, a partir de um fluxo de dados MPEG-2 de acordo com a norma ITU-T Recomendação H.222.0, um descritor HRV HEVC e um descritor de nível de programa, em que é necessária a condição de conformação de fluxo de bits) que há no máximo um cronograma HEVC e descritor HRD no fluxo de dados MPEG-2.
[000162] Na descrição da temporização HEVC e do descritor HRD no documento N13656, é especificado que se o hrd_management_valid_flag for igual a '1’, então as mensagens SEI de período de temporização de armazenamento e de temporização de imagem estarão presentes no fluxo de vídeo HEVC associado ou representação de sub-camada temporal maior de HEVC. Contudo, não há mais descrição no documento de N 13656 da presença dessas mensagens SEI. Um problema que pode ocorrer é que as mensagens SEI estão presentes mas podem ser aplicáveis a apenas alguns ou mesmo nenhum dos pontos de operação definidos no descritor de ponto de operação HEVC. Conforme observado acima, o hrd_management_valid_flag é especificado na temporização HEVC e no descritor HRD.
[000163] Para evitar o problema anterior, esta divulgação propõe que se especifique que se hrd_management_valid_flag for igual a 1, então as mensagens SEI de Período de buffer e as mensagens SEI de temporização de imagem aplicáveis para cada um dos pontos de operação sinalizado em um descritor de ponto de operação HEVC deve estar presente no fluxo de vídeo HEVC.
[000164] Assim, para superar este problema, propõe-se ter uma restrição (isto é, uma restrição ou exigência) tal que se hrd_management_valid_flag de um descritor de temporização HEVC e HRD for igual a 1, as mensagens SEI do período temporário e as mensagens SEI de tempo de imagem aplicáveis para cada um dos pontos de operação sinalizados no descritor de operação HEVC devem estar presentes no fluxo de vídeo HEVC. Assim, em alguns exemplos, um dispositivo de processamento de vídeo (p.ex., dispositivo de fonte 12, codificador de vídeo 20) gera um fluxo de programa ou fluxo de transporte que está sujeito a uma restrição tal que se hrd_management_valid_flag de um descritor de temporização HEVC e HRD for Igual a 1, as mensagens SEI de período de temporização de armazenamento e de tempo de imagem SEI aplicáveis para cada ponto de operação sinalizado em um descritor de operação HEVC estarão presentes no fluxo de vídeo HEVC. Em alguns exemplos, o decodificador de vídeo 30 (ou dispositivo de destino 14) decodifica dados de vídeo de um fluxo de programa ou fluxo de transporte que está sujeito a uma restrição tal que se o hrd_management_valid_flag da temporização HEVC e o descritor HRD for igual a 1, as mensagens SEI e de sincronização de imagens SEI aplicáveis para cada ponto de operação sinalizado em um descritor de operação HEVC devem estar presentes no fluxo de vídeo HEVC.
[000165] Em JCTVC-R1013, o termo "unidade de decodificação" é definido como uma unidade de acesso se SubPicHrdFlag é igual a 0 ou um subconjunto de uma unidade de acesso de outro modo, que consiste em uma ou mais unidades de VCL NAL em uma unidade de acesso e o associado unidades não-VCL NAL. Se o processo de decodificação é invocado em um teste de fluxo de bits de conformidade como descrito na seção de C.1 JCTVC-R1013, quando sub_pic_hrd_params_present_flag na estrutura de sintaxe selecionada hrd_parameters () é igual a 1, a CEC está programada para operar, quer ao nível da unidade de acesso (no caso em que o SubPicHrdFlag variável é definido igual a 0) ou ao nível de sub-imagem (caso em que o SubPicHrdFlag variável é definido como igual a 1). Caso contrário, SubPicHrdFlag é estabelecido igual a 0 e o CPB está programado para operar a nível da unidade de partição. Caso contrário, se o processo de decodificação não é invocado em um teste de conformidade de fluxo de bits, conforme especificado na cláusula de C.1 JCTVC-R1013, SubPicHrdFlag é estabelecido igual a (SubPicHrdPreferredFlag && sub_pic_hrd_params_present_flag). O SubPicHrdPreferredFlag variável é especificado quer por meios externos, ou, quando não especificado por meios externos, definido como igual a 0.
[000166] O modelo de buffer atual no projeto de L-HEVC TS não suporta um modelo de buffer de atraso ultrabaixo. Os dados em termos de bytes são retirados do buffer de fluxo elementar (EB) com base na data e hora dada decodificação (DTS), que está ligado a um nível de unidade de acesso, isto é, há apenas um valor de DTS para toda a unidade de acesso. Como tal, todos os dados (ou seja, todos os bytes) associado com uma dada unidade de acesso é removido do fluxo elementar calculada com base nos dados DTS. Tal método significa que o modo de atraso ultrabaixo em que está previsto que os dados sejam removidos do CEC antes de toda a unidade de acesso está disponível no CEC não é suportada.
[000167] Para ultrapassar este problema, esta divulgação propõe o seguinte: • Fornecer uma definição da unidade de decodificação nos sistemas MPEG-2. • Para cada programa que contém um fluxo de vídeo, sinalizando uma indicação da granularidade da unidade de decodificação (por exemplo, unidade de acesso, coleção de fotos dentro de uma unidade de acesso, imagem, fatia, segmento de fatia). • Cada pacote PES que pertence à mesma unidade de acesso pode ter um diferente DTS; no entanto DTS de pacotes PES que pertencem à mesma unidade de decodificação tem de ser o mesmo. • Remoção de fotos a partir de um buffer de fluxo elementar é baseado no valor DTS.
[000168] Uma solução alternativa para a técnica acima pode ser como se segue. A remoção de dados de fluxo elementar leva em conta a presença de informações mensagens decodificação unidade SEI quando eles estão presentes no fluxo de vídeo.
[000169] Tal como acima indicado, de acordo com uma técnica desta descrição, para cada programa que contém uma sequência de vídeo, uma indicação da granularidade da unidade de decodificação é sinalizada. Assim, em um exemplo, um dispositivo de processamento de vídeo (por exemplo, dispositivo de destino 14, decodificador de vídeo 30) recebe um fluxo de dados e obtém-se, para cada programa de fluxo de dados que contém uma sequência de vídeo, uma indicação de uma granularidade de uma unidade de decodificação. Em um exemplo semelhante, um dispositivo de processamento de vídeo (por exemplo, dispositivo de fonte 12, o codificador de vídeo 20) pode gerar um fluxo de dados que inclui, para cada programa de fluxo de dados que contém uma sequência de vídeo, uma indicação de uma granularidade de uma unidade de decodificação. Nestes exemplos, a granularidade da unidade de decodificação pode ser um dos seguintes: uma unidade de acesso, uma coleção de fotos dentro de uma unidade de acesso, uma imagem, uma fatia, ou um segmento de fatia.
[000170] Além disso, como indicado acima, de acordo com uma técnica desta descrição, cada pacote PES que pertence à mesma unidade de acesso podem ter diferentes DTS enquanto ETEDs de pacotes PES que pertencem à mesma unidade de decodificação tem de ser os mesmos. Assim, em pelo menos alguns exemplos, cada pacote PES que pertence à mesma unidade de acesso podem ter diferentes ETEDs e ETEDs de pacotes PES que pertencem à mesma unidade de decodificação são obrigadas sendo as mesmas.
[000171] Além disso, como indicado acima, de acordo com uma técnica desta descrição, a remoção de imagens a partir de um buffer de fluxo elementar pode ser baseada no valor de DTS. Assim, em um tal exemplo, um decodificador de vídeo pode armazenar dados em uma memória intermédia e remover os dados a partir da memória intermédia antes de uma unidade de acesso de toda a dados está disponível na memória armazenamento em buffer.
[000172] Esta divulgação propõe várias técnicas. Algumas destas técnicas podem ser aplicadas de forma independente e alguns deles podem ser aplicados em combinação.
[000173] A fig. 3 é um diagrama de blocos ilustrando um codificador de vídeo exemplo 20 que podem implementar as técnicas desta revelação. FIG. 3 é proporcionada para fins de explicação e não devem ser considerados como limitativos das técnicas como amplamente exemplificadas e descritas na presente memória descritiva. Para efeitos da explicação, esta divulgação descreve um codificador de vídeo 20 no contexto de codificação HEVC. No entanto, as técnicas da presente memória descritiva podem ser aplicadas a outras normas ou métodos de codificação. Codificador de vídeo 20 representa um exemplo de um dispositivo que pode ser configurado para executar a técnicas desta revelação.
[000174] No exemplo da FIG. 3, o codificador de vídeo 20 inclui uma unidade de processamento de previsão 100, uma memória de dados de vídeo 101, uma unidade de geração residual 102, uma unidade de processamento de transformada 104, uma unidade de quantificação 106, uma unidade de quantificação inversa 108, uma unidade de processamento de transformação inversa 110, 112, uma unidade de filtro 114, uma imagem decodificada armazenada temporariamente 116 e uma unidade de codificação de entropia 118. A unidade de processamento de previsão 100 inclui uma unidade de processamento inter-previsão 120 e uma unidade de processamento intra-previsão 126. A unidade de processamento inter-previsão 120 inclui uma unidade de estimativa de movimento e uma unidade de compensação de movimento (não ilustrada). Noutros exemplos, o codificador de vídeo 20 pode incluir mais, menos ou diferentes componentes funcionais.
[000175] A memória de dados de vídeo 101 pode armazenar dados de vídeo a serem codificados pelos componentes do codificador de vídeo 20. Os dados de vídeo armazenados na memória de dados de vídeo 101 podem ser obtidos, por exemplo, da fonte de vídeo 18. A imagem decodificada armazenada temporariamente 116 pode ser uma memória de imagem de referência que armazena dados de vídeo de referência para utilização na codificação de dados de vídeo pelo codificador de vídeo 20, por exemplo, nos modos de codificação intra ou inter-codificação. A memória de dados de vídeo 101 e a imagem decodificada armazenada temporariamente 116 podem ser formadas por qualquer um de uma variedade de dispositivos de memória, tais como memória de acesso aleatório dinâmico (DRAM), incluindo DRAM síncrona (SDRAM), RAM magnético resistiva (MRAM), RAM resistiva (RRAM), ou outros tipos de dispositivos de memória. A memória de dados de vídeo 101 e a memória de imagem decodificada temporária 116 podem ser proporcionadas pelo mesmo dispositivo de memória ou dispositivos de memória separados. Em vários exemplos, a memória de dados de vídeo 101 pode estar no chip com outros componentes do codificador de vídeo 20, ou fora do chip relativamente a esses componentes.
[000176] O codificador vídeo 20 recebe dados de vídeo. O codificador de vídeo 20 pode codificar cada CTU em uma porção de uma imagem dos dados de vídeo. Cada uma das CTUs pode estar associada com blocos de árvore de codificação de luma de tamanho igual (CTB) e CTBs correspondentes da imagem. Como parte da codificação de uma CTU, a unidade de processamento de previsão 100 pode executar a divisão de quatro árvores para dividir as CTB da CTU em blocos progressivamente menores. O bloco menor pode ser blocos de codificação de CUs. Por exemplo, a unidade de processamento de previsão 100 pode dividir uma CTB associada a uma CTU em quatro sub-blocos de tamanho igual, particionar um ou mais dos sub-blocos em quatro sub-sub-blocos de tamanho igual, e assim por diante.
[000177] O codificador de vídeo 20 pode codificar CUs de uma CTU para gerar representações codificadas das CUs (isto é, CUs codificadas). Como parte da codificação de uma CU, a unidade de processamento de previsão 100 pode dividir os blocos de codificação associados com a CU entre uma ou mais PUs da CU. Assim, cada PU pode ser associado com um bloco de previsão de luma e blocos de previsão de croma correspondentes. O codificador de vídeo 20 e o descodificador de vídeo 30 podem suportar PUs com vários tamanhos. Conforme indicado acima, o tamanho de uma CU pode referir-se ao tamanho do bloco de codificação luma da CU e o tamanho de uma PU pode referir-se ao tamanho de um bloco de previsão de luma do PU. Assumindo que o tamanho de uma CU particular é 2Nx2N, o codificador de vídeo 20 e o decodificador de vídeo 30 podem suportar tamanhos de PU de 2Nx2N ou NxN para previsão intra e tamanhos de PU simétricos de 2Nx2N, 2NxN, Nx2N, NxN ou similares para inter previsão. O codificador de vídeo 20 e o decodificador vídeo 30 podem também suportar a partição assimétrica para tamanhos PU de 2NxnU, 2NxnD, nLx2N e nRx2N para inter previsão.
[000178] A unidade de processamento inter- previsão 120 pode gerar dados preditivos para um PU executando inter previsão em cada PU de um CU. Os dados preditivos para o PU podem incluir blocos preditivos da PU e informação de movimento para o PU. A unidade de processamento inter-previsão 120 pode executar operações diferentes para um PU de uma UC dependendo se a PU está em uma fatia I, uma fatia P ou uma fatia B. Em uma fatia I, todas as PUs são intra-previstas. Assim, se a PU estiver em uma fatia I, a unidade de processamento inter-previsão 120 não realiza inter previsão no PU. Assim, para os blocos codificados no modo I, o bloco previsto é formado usando a previsão espacial de blocos vizinhos previamente codificados dentro do mesmo quadro. Se um PU estiver em uma porção P, a unidade de processamento inter-previsão 120 pode utilizar a inter previsão unidirecional para gerar um bloco preditivo do PU. Se uma PU está em uma fatia B, a unidade de processamento inter-previsão 120 pode utilizar uma inter previsão unidirecional ou bidirecional para gerar um bloco preditivo da PU.
[000179] A unidade de processamento de intra- previsão 126 pode gerar dados preditivos para um PU executando a previsão intra no PU. Os dados preditivos para o PU podem incluir blocos preditivos do PU e vários elementos de sintaxe. A unidade de processamento de intra-previsão 126 pode executar a previsão intra em PUs em fatias de I, fatias de P e fatias de B.
[000180] Para realizar a previsão intra em uma PU, a unidade de processamento intra-previsão 126 pode utilizar múltiplos modos de previsão intra para gerar múltiplos conjuntos de dados preditivos para o PU. A unidade de processamento intra-previsão 126 pode utilizar amostras de blocos de amostra de PUs vizinhas para gerar um bloco preditivo para um PU. As PUs vizinhas podem estar acima, acima e à direita, acima e à esquerda, ou à esquerda do PU, assumindo uma ordem de codificação de cima para baixo da esquerda para a direita para PUs, CUs e CTUs. A unidade de processamento de intra-previsão 126 pode usar vários números de modos de previsão intra, por exemplo, 33 modos de previsão intra-direcional. Em alguns exemplos, o número de modos intra-preditivos pode depender do tamanho da região associada ao PU.
[000181] A unidade de processamento de previsão 100 pode selecionar os dados preditivos para PUs de uma CU entre os dados preditivos gerados pela unidade de processamento inter-previsão 120 para as PUs ou os dados preditivos gerados pela unidade 126 de processamento intra- previsão para as PUs. Em alguns exemplos, a unidade 100 de processamento de previsão seleciona os dados preditivos para as PUs da CU com base nas métricas de taxa/distorção dos conjuntos de dados preditivos. Os blocos preditivos dos dados preditivos selecionados podem ser aqui referidos como os blocos preditivos selecionados.
[000182] A unidade de geração residual 102 pode gerar, com base nos blocos de codificação (por exemplo, blocos de codificação luma, Cb e Cr) para um CU e os blocos preditivos selecionados (por exemplo, luma preditiva, blocos Cb e Cr) para as PUs da CU, blocos residuais (por exemplo, luma, blocos residuais Cb e Cr) para a UC. Por exemplo, a unidade de geração residual 102 pode gerar os blocos residuais da CU de modo que cada amostra nos blocos residuais tenha um valor igual a uma diferença entre uma amostra em um bloco de codificação da CU e uma amostra correspondente em um bloco de previsão selecionado correspondente De um PU da CU.
[000183] A unidade de processamento de transformação 104 pode executar a divisão em quatro quadros para dividir os blocos residuais associados a uma CU em blocos de transformação associados a TUs da CU. Assim, uma TU pode estar associada a um bloco de transformada de luma e dois blocos de transformada de croma. Os tamanhos e posições dos blocos de transformação de luma e de croma de TUs de uma UC podem ou não ser baseados nos tamanhos e posições de blocos de previsão das PUs da UC. Uma estrutura quad-tree conhecida como "quad-tree residual" (RQT) pode incluir nós associados a cada uma das regiões. As TUs de uma CU podem corresponder a nós de folhas da RQT.
[000184] A unidade de processamento de transformação 104 pode gerar blocos de coeficientes de transformação para cada TU de uma CU através da aplicação de uma ou mais transformações nos blocos de transformação da TU. A unidade de processamento de transformação 104 pode aplicar várias transformações a um bloco de transformação associado a uma TU. Por exemplo, a unidade de processamento de transformação 104 pode aplicar uma transformada de cosseno discreta (DCT), uma transformada direcional ou uma transformada conceitualmente semelhante a um bloco de transformação. Em alguns exemplos, a unidade de processamento de transformação 104 não aplica transformações a um bloco de transformação. Em tais exemplos, o bloco de transformação pode ser tratado como um bloco de coeficiente de transformação.
[000185] A unidade de quantificação 106 pode quantificar os coeficientes de transformada em um bloco de coeficientes. O processo de quantização pode reduzir a profundidade de bits associados com alguns ou todos os coeficientes de transformada. Por exemplo, um coeficiente de transformada de n bits pode ser arredondado para baixo para um coeficiente de transformada de m bits durante a quantização, onde n é maior que m. A unidade de quantificação 106 pode quantificar um bloco de coeficientes associado a uma TU de uma CU com base em um valor de parâmetro de quantificação (QP) associado à CU. O codificador de vídeo 20 pode ajustar o grau de quantificação aplicado aos blocos de coeficientes associados a uma CU ajustando o valor de QP associado à CU. A quantização pode introduzir perda de informação, assim os coeficientes de transformada quantificados podem ter uma precisão menor do que os originais.
[000186] A unidade de quantificação inversa 108 e a unidade de processamento de transformada inversa 110 podem aplicar a quantificação inversa e as transformações inversas a um bloco de coeficientes, respectivamente, para reconstruir um bloco residual a partir do bloco de coeficientes. A unidade de reconstrução 112 pode adicionar o bloco residual reconstruído a amostras correspondentes a partir de um ou mais blocos de previsão gerados pela unidade de processamento de previsão 100 para produzir um bloco de transformada reconstruído associado a uma TU. Ao reconstruir os blocos de transformação para cada TU de uma UC desta forma, o codificador de vídeo 20 pode reconstruir os blocos de codificação da CU.
[000187] A unidade de filtro 114 pode executar uma ou mais operações de desbloqueio para reduzir os artefatos de bloqueio nos blocos de codificação associados a uma CU. A imagem descodificada armazenada temporariamente 116 pode armazenar os blocos de codificação reconstruídos depois que a unidade de filtro 114 executa uma ou mais operações de desbloqueio nos blocos de codificação reconstruídos. A unidade de processamento inter-previsão 120 pode usar uma imagem de referência que contém os blocos de codificação reconstruídos para executar inter previsão em PUs de outras imagens. Além disso, a unidade de processamento intra-previsão 126 pode utilizar blocos de codificação reconstruídos na imagem descodificada armazenada temporariamente 116 para realizar a previsão intra em outras PUs na mesma imagem que a CU.
[000188] A entropia unidade de codificação 118 pode receber dados de outros componentes funcionais do codificador de vídeo 20. Por exemplo, a entropia que codifica unidade 118 pode receber os blocos de coeficiente de unidade de quantificação 106 e pode receber elementos de sintaxe de unidade de processamento de previsão 100. A entropia unidade de codificação 118 pode efetuar uma ou mais operações de entropia que codifica sobre os dados para gerar dados codificados por entropia. Por exemplo, a unidade de codificação de entropia 118 pode executar uma operação de C ABAC, uma operação de codificação de comprimento variável (CAVLC) de contexto-adaptativo, uma operação (V2V) de codificação de comprimento variável-a-variável, uma operação de codificação aritmética binária de contexto-adaptável à base de sintaxe (SBAC), uma probabilidade intervalo Particionamento entropia (PIPE) operação de codificação, uma operação que codifica exponencial-Golomb, ou outro tipo de entropia que codifica para operação sobre os dados. Codificador de vídeo 20 pode emitir um fluxo de bits, que inclui dados codificados por entropia gerada pela unidade de codificação de entropia 118. Por exemplo, o fluxo de bits pode incluir dados que representam uma RQT para uma CU.
[000189] A FIG. 4 é um diagrama de blocos que ilustra um decodificador de vídeo exemplo 30 que é configurado para implementar as técnicas desta revelação. FIG. 4 é proporcionado para fins de explicação e não é limitativo sobre as técnicas como amplamente exemplificadas e descritas na presente memória descritiva. Para efeitos da explicação, esta divulgação descreve decodificador de vídeo 30 no contexto de HEVC codificação. No entanto, as técnicas da presente memória descritiva podem ser aplicadas a outras normas ou métodos de codificação.
[000190] No exemplo da FIG. 4, decodificador de vídeo 30 inclui uma entropia decodificar unidade 150, a memória de dados de vídeo 151, uma unidade de processamento de previsão 152, uma unidade de quantificação inversa 154, uma transformada inversa unidade de processamento 156, uma unidade de reconstrução 158, uma unidade de filtro 160, e uma imagem decodificada armazenamento em buffer unidade de processamento 162. Previsão 152 inclui uma unidade de unidade 164 e uma parte intra-previsão de processamento de compensação de movimento 166. Em outros exemplos, decodificador de vídeo 30 pode incluir mais, menos ou diferentes componentes funcionais.
[000191] Memória de dados de vídeo 151 pode armazenar dados de vídeo, tal como um fluxo de bits de vídeo codificado, para ser decodificado pelos componentes de decodificador de vídeo 30. Os dados de vídeo armazenados na memória de dados de vídeo 151, por exemplo, a partir do canal 16, por exemplo, a partir de uma fonte de vídeo local, tal como uma câmara, através de uma comunicação de rede com ou sem fios de dados de vídeo, ou acedendo a meios de armazenamento de dados físicos. Memória de dados de vídeo 151 pode formar uma imagem codificada no armazenamento em buffer (CEC) que armazena os dados codificados de vídeo a partir de um fluxo de bits de vídeo codificado. Armazenamento em buffer de imagem decodificada 162 pode ser uma memória de imagem de referência, que armazena dados de referência de vídeo para utilização na decodificação de dados de vídeo pelo decodificador de vídeo 30, por exemplo, em modos intra ou inter-codificante. Memória de dados de vídeo 151 e o armazenamento em buffer de imagem decodificada 162 pode ser formado por qualquer um de uma variedade de dispositivos de memória, tais como memória dinâmica de acesso aleatório (DRAM), incluindo DRAM síncrona (SDRAM), memória RAM magnetoresistiva (MRAM), RAM resistiva (RRAM), ou outros tipos de dispositivos de memória. Memória de dados de vídeo 151 e o armazenamento em buffer de imagem decodificada 162 pode ser fornecido pelo mesmo dispositivo de memória ou dispositivos de memória separados. Em vários exemplos, memória de dados de vídeo 151 pode ser em chip com outros componentes do decodificador de vídeo 30, ou no exterior do chip em relação a esses componentes.
[000192] CPB 151 recebe e armazena os dados codificados de vídeo (por exemplo, unidades NAL) de um fluxo de bits. Unidade de decodificação de entropia 150 pode receber dados de vídeo codificados (por exemplo, unidades NAL) do CPB e analisar as unidades NAL para obter elementos de sintaxe. Entropia unidade de decodificação 150 pode decodificar elementos de sintaxe entropia codificado por entropia das unidades NAL. Unidade de processamento 152, uma unidade de quantificação inversa 154, unidade de processamento de transformada inversa 156, unidade de reconstrução 158, e a unidade de filtro 160 pode gerar dados de vídeo decodificados com base nos elementos de sintaxe extraídos a partir do fluxo de bits. Entropia unidade de decodificação 150 pode executar um processo geralmente recíproca para que a entropia da unidade de codificação de 118.
[000193] Além disso a obtenção de elementos de sintaxe de fluxo de bits, decodificador de vídeo 30 pode executar uma operação de reconstrução de uma CU não particionado. Para realizar a operação de reconstrução de uma CU, decodificador de vídeo 30 pode executar uma operação de reconstrução em cada UT da CU. Ao realizar a operação de reconstrução para cada UT da CU, decodificador de vídeo 30 pode reconstruir blocos residuais da CU.
[000194] No âmbito da realização de uma operação de reconstrução de uma TU de uma CU, unidade de quantificação inversa 154 pode inverter quantização, ou seja, de- quantização, blocos de coeficiente associado com a TU. unidade de quantificação inversa 154 pode utilizar um valor QP associado com o CU do TU para determinar um grau de quantização e, do mesmo modo, um grau de quantização inversa para a unidade de quantificação inversa 154 para aplicar. Isto é, a taxa de compressão, isto é, a razão entre o número de bits utilizados para representar a sequência original e o um comprimido, pode ser controlada ajustando o valor do QP utilizado quando se quantifica os coeficientes de transformada. A taxa de compressão pode também depender do método de codificação empregue entropia.
[000195] Depois da unidade de quantificação inversa 154 quantificar inversamente um bloco de coeficientes, a unidade de processamento de transformação inversa 156 pode aplicar uma ou mais transformações inversas ao bloco de coeficientes para gerar um bloco residual associado à TU. Por exemplo, a unidade de processamento de transformação inversa 156 pode aplicar uma DCT inversa, uma transformada inteira inversa, uma transformada de Karhunen- Loeve inversa (KLT), uma transformada de rotação inversa, uma transformada direcional inversa ou outra transformada inversa para o bloco de coeficientes.
[000196] Se uma PU é codificada utilizando uma previsão intra, a unidade de processamento intra-previsão 166 pode executar a previsão intra para gerar blocos preditivos da PU. A unidade de processamento de intra- previsão 166 pode usar um modo de previsão intra para gerar os blocos de previsão do PU com base em amostras de blocos espacialmente vizinhos. A unidade de processamento de intra- previsão 166 pode determinar o modo intra-preditivo para o PU com base em um ou mais elementos de sintaxe obtidos a partir do fluxo de bits.
[000197] Se um PU for codificado utilizando inter previsão, a unidade de descodificação de entropia 150 pode determinar informação de movimento para o PU. A unidade de compensação de movimento 164 pode determinar, com base na informação de movimento do PU, um ou mais blocos de referência. A unidade de compensação de movimento 164 pode gerar, com base no um ou mais blocos de referência, blocos preditivos (por exemplo, luminância preditiva, blocos Cb e Cr) para a PU.
[000198] A unidade de reconstrução 158 pode utilizar blocos de transformação (por exemplo, blocos de transformação Luma, Cb e Cr) para TUs de uma CU e os blocos preditivos (por exemplo, blocos luma, Cb e Cr) das PUs da CU, ou seja, dados de intra-previsão ou dados de inter- previsão, conforme aplicável, para reconstruir os blocos de codificação (por exemplo, blocos de codificação luma, Cb e Cr) para a UC. Por exemplo, a unidade de reconstrução 158 pode adicionar amostras dos blocos de transformação (por exemplo, blocos de transformação Luma, Cb e Cr) a amostras correspondentes dos blocos preditivos (por exemplo, blocos preditivos luma, Cb e Cr) para reconstruir os blocos de codificação (por exemplo, Luma, blocos de codificação Cb e Cr) da CU.
[000199] A unidade de filtro 160 pode executar uma operação de desbloqueio para reduzir os artefatos de bloqueio associados aos blocos de codificação da CU. O descodificador de vídeo 30 pode armazenar os blocos de codificação da CU na imagem descodificada armazenada temporariamente 162. A imagem descodificada armazenada temporária 162 pode fornecer imagens de referência para subsequente compensação de movimento, intra-previsão e apresentação em um dispositivo de visualização, tal como o dispositivo de visualização 32 da FIG. Por exemplo, o descodificador vídeo 30 pode executar, com base nos blocos na imagem descodificada no armazenamento em buffer 162, operações de previsão intra ou inter previsão para PUs de outras UCs.
[000200] Deve entender-se que todas as técnicas aqui descritas podem ser utilizadas individualmente ou em combinação. Deve reconhecer-se que, dependendo do exemplo, certos atos ou acontecimentos de qualquer das técnicas aqui descritas podem ser realizados em uma sequência diferente, podem ser adicionados, fundidos ou deixados de fora completamente (por exemplo, nem todos os atos ou eventos descritos são necessários para a prática das técnicas). Além disso, em certos exemplos, atos ou eventos podem ser executados concomitantemente, p.ex., através de processamento multi-ameaças, processamento de interrupção, ou processadores múltiplos, em vez de sequencialmente. Além disso, embora certos aspectos desta descrição sejam descritos como sendo realizados por um único módulo ou unidade para fins de clareza, deve ser entendido que as técnicas desta descrição podem ser realizadas por uma combinação de unidades ou módulos associados a um codificador de vídeo.
[000201] Alguns aspectos desta descrição foram descritos com respeito ao padrão HEVC para fins de ilustração. No entanto, as técnicas descritas nesta descrição podem ser úteis para outros processos de codificação de vídeo, incluindo outros processos de codificação de vídeo padrão ou proprietários ainda não desenvolvidos.
[000202] As técnicas descritas acima podem ser realizadas pelo codificador de vídeo 20 (Figuras 1 e 3) e/ou pelo vídeo decodificador 30 (Figuras 1 e 4), ambos os quais podem ser geralmente referidos como codificadores de vídeo. Da mesma forma, a codificação de vídeo pode se referir à codificação de vídeo ou decodificação de vídeo, conforme aplicável.
[000203] Esta seção seguinte desta descrição descreve um exemplo de implementação das técnicas descritas noutra parte nesta descrição. O texto sugerido para implementar as propostas acima é mostrado abaixo. O texto removido é mostrado como texto em itálico entre colchetes duplos (por exemplo, [[texto]]), enquanto o texto adicional é mostrado como texto sublinhado. 5.1 A modificação para temporização de HEVC e descritor HRD Substitui o conteúdo da seção 2.6.97 do projeto TS L-HEVC atual com o seguinte:
[000204] Para um fluxo de vídeo HEVC, o temporizador HEVC e o descritor HRD proporcionam os parâmetros de tempo e HRD aplicáveis, tal como definido no Anexo C da Rec. UIT-T H.265|ISO/IEC 23008-2. Deve haver no máximo uma instância de descritor de temporização HEVC e HRD e deve ser incluído no grupo de elementos de dados imediatamente após o campo program_info_length na seção program_map, a menos que o fluxo de vídeo HEVC carregue o parâmetro VPS com o vps_timing_info_present_flag definido como T.
[000205] A ausência do cronograma HEVC e do descritor HRD no PMT para um fluxo de vídeo HEVC ou um fluxo de vídeo HEVC remontado sinaliza o uso do método de vazamento no T-STD. Mas tal uso também pode ser sinalizado pelo hrd_management_valid_flag definido como '0' no cronograma HEVC e descritor HRD. Se a taxa de transferência para o armazenamento em buffer EB1 pode ser determinada a partir de parâmetros HRD contidos em um fluxo de vídeo HEVC ou um fluxo de vídeo AVC remontado a partir do sub-fluxo de bits de vídeo, então o temporizador AVC e descritor HRD com o hrd_management_valid_flag definido A ‘1’ devem ser incluídos no PMT para aquele fluxo de vídeo HEVC ou para o fluxo de vídeo HEVC remontado. (Ver Tabela 2- 103septiens.) Tabela 2-103septiens - temporizador de HVEC e descritor HRD
[000206] Substitui o conteúdo da seção 2.6.98 do atual projeto de L-HEVC TS com o seguinte:
[000207] hrd_management_valid_flag - Este sinalizador de 1 bit é definido apenas para uso em fluxos de transporte. Quando o cronograma HEVC e o descritor HRD estão associados a um fluxo de vídeo HEVC [para com uma representação de sub-camada temporal mais elevada de HEVC]] transportados em um fluxo de transporte, aplica-se o seguinte.
[000208] Se o hrd_management_valid_flag for igual a T, então as mensagens SEI de Armazenamento em buffer e de Tempo de Imagem, conforme definido no Anexo C da Rec. ITU-T H.265|ISO/IEC 23008-2, estarão presentes no fluxo de vídeo HEVC associado [[ou a representação da subcapa temporal mais elevada de HEVC]] e cada ponto de operação sinalizado no descritor de operação HEVC deverá ter mensagens de SEI de Tempo de Armazenamento em buffer e Mensagens SEI de temporização de imagem aplicáveis. Estas mensagens SEI de Período de buffer devem conter valores codificados nal_initial_cpb_removal_delay e nal_initial _cpb _removal _offset e podem além disso transportar valores nal_initial_alt_removal_delay e nal_initial_alt_cpb_removal_ojfset para o NAL HRD. Se hrd_management_valid_flag é definido como ‘1’, então a transferência de cada byte de MBn para EBn na T-STD como definido em 2.17.2 do documento N13656 ou a transferência de MBn para EBn na T-STD como definido em 2.17. 3 do documento N13656 ou a transferência de cada byte de MBn para EBn na T- STD como definido em 2.17.4 do documento N 13656 deve ser de acordo com o cronograma de entrega para esse byte no CPB no NAL HRD, conforme determinado a partir dos valores codificados nal_initial_cpb_removal_delay e nal_initial _cpb_removal_offset ou a partir dos valores codificados nal_initial_alt_cpb_removal_delay e nal_initial_alt _cpb _removal _offset para SchedSelIdx igual atarget_schedule_idx como especificado no Anexo C Rec. ITU-T H.265 | ISO/IEC 23008-2. Quando o hrd_management_valid_flag é definido como ‘0’, o método de vazamento deve ser usado para a transferência de MBn para EBn no T-STD tal como definido em 2.17.[[3]]4.
[000209] Quando descritor de temporização HEVC e HRD está presente e o valor de hrd_management_valid_flag é igual a 1, o parâmetro HRD aplicável para a ESA fluxo elementar que é parte do ponto de operação OPA é a estrutura de sintaxe bsp_hrd_idx[TargetOlsIdx][TargetPsIdx][HighestTid][SchedSel CombIdx][partitionIdx]-th_hrd_parameters() no VPS ativo do fluxo de vídeo HEVC onde:
[000210] - TargetOlsIdx é igual ao target_ols de opA,
[000211] - TargetPsIdx é igual ao target_partitioning_scheme de opA,
[000212] - HighestTid é igual ao max_temporal_id de opA,
[000213] - SchedSelCombIdx é igual ao target_schedule_idx
[000214] - partitionIdx é igual a idxA que é definido como segue:
[000215] Deixe listA ser a lista de fluxo elementar com stream_tvpe igual a 0x24, 0x27 ou 0x29 que está contido em opA em ordem ascendente de acordo com o seu valor de índice de camada de hierarquia presente no descritor de hierarquia ou descritor de extensão de hierarquia. Se ESA é membro da lista A, iDXA é o índice de ESA na lista A, de outro modo, iDXA é o índice de ESB em listA onde AEE é uma melhoria temporais cortesia de ESB.
[000216] target_schedule_idx - Este campo de 5 bits indica o índice de programação de entrega que é atribuído para SchedSelIdx. Quando o valor de hrd_management_valid_flag é igual a 0, em seguida, o significado do target_schedule_idx não está definido.
[000217] picture_and_timing_info_present_flag - Este sinalizador de 1 bit quando definido como ‘1’ indica que a 90kHz_flag e parâmetros para mapeamento preciso de um relógio de sistema 90kHz estão incluídos neste descritor.
[000218] 90kHz_flag - Esta sinalização de um bit quando definido como ‘1’ indica que a frequência da base de tempo é HEVC 90 kHz.
[000219] N, K - Para obter um fluxo de vídeo HEVC [[HEVC ou mais alta sub-camada temporais de representação]], a frequência da base de tempo é definida por HEVC o elemento de sintaxe vui_time_scale nos parâmetros VUI, tal como definido no Anexo E da Rec. ITU-T H.265|ISO/IEC 23008-2. A relação entre o time_scale HEVC e o STC deve ser definida pelos parâmetros de N e K em este descritor da seguinte forma. time_scale = (Nx system_clock_frequency)/K
[000220] Se a 90kHz_flag é definido como T, em seguida, N é igual a 1 e K é igual a 300. Se a 90kHz_flag é definido como ‘0’, em seguida, os valores de N e K são fornecidos pelos valores codificados de N e K campos.
[000221] NOTA - Isto permite o mapeamento do tempo expresso em unidades de escala de tempo de 90 unidades kHz, conforme necessário para o cálculo do PTS e DTS marcas de tempo, por exemplo em decodificadores para unidades de acesso HEVC para os quais não PTS ou DTS é codificado no cabeçalho PES.
[000222] num_units_in_tick - Este campo de 32 bits é codificado exatamente da mesma forma como o campo vui_num_units_in_tick em parâmetros VUI no anexo E do Rec. ITU-T H.265|ISO/IEC 23008-2. A informação fornecida por este campo é aplicável a todo o fluxo de vídeo HEVC [[ou HEVC maior representação de sub-camada temporal]] para que o temporizador e HEVC descritor HRD está associado.
[000223] A fig. 5 é um fluxograma que ilustra um exemplo de operação de um codificador de vídeo, de acordo com uma técnica da presente memória descritiva. Os fluxogramas da presente divulgação são fornecidos como exemplos. Em outros exemplos da presente memória descritiva, pode ter mais, menos ou diferentes ações, e/ou as ações podem ser efetuados em uma ordem diferente ou em paralelo.
[000224] No exemplo da FIG. 5, um codificador de vídeo 20 gera um VPS que inclui um arranjo de elementos de sintaxe (por exemplo, bsp_hrd_idx [TargetOlsIdx] [TargetPsIdx] [HighestTid] [] [SchedSelCombIdx partitio nIdx]) e uma pluralidade de parâmetros HRD estruturas de sintaxe (200). Cada respectiva estrutura de sintaxe de parâmetros HRD da pluralidade de estruturas de sintaxe de parâmetros HRD (por exemplo, hrd_parameters ()) compreende um conjunto respectivo de parâmetros HRD. Cada elemento de sintaxe respectivo do arranjo de elementos de sintaxe especifica um índice de uma estrutura parâmetros sintaxe HRD na pluralidade de estruturas de sintaxe de parâmetros HRD.
[000225] Além disso, no exemplo da FIG. 5, um codificador de vídeo 20 gera um descritor de tempo e HEVC HRD que compreende um elemento de sintaxe de índice de programação alvo (por exemplo, a target_schedule_idx) indicando um índice de uma programação de entrega (202). Além disso, o codificador de vídeo 20 pode gerar um fluxo de dados (por exemplo, um fluxo de dados MPEG-2), que compreende uma pluralidade de fluxos elementares e o timing HEVC e descritor HRD (204). Um conjunto de parâmetros identifica um elemento de sintaxe no arranjo de elementos de sintaxe que especifica um índice de uma determinada estrutura de sintaxe de parâmetros HRD identificado como sendo aplicável para o fluxo elementar particular. Neste exemplo, a estrutura de sintaxe de parâmetros HRD particular, é um de uma pluralidade de estruturas de sintaxe de parâmetros HRD e os parâmetros HRD particulares da estrutura de sintaxe faz parte de um ponto de operação. O conjunto de parâmetros podem incluir um parâmetro (por exemplo, SchedSelCombIdx) que tem um valor igual a um valor do elemento de sintaxe de índice de programação alvo. Além disso, em alguns exemplos, o conjunto de parâmetros inclui um segundo parâmetro (por exemplo, partitionIdx), cujo valor é determinado da maneira mostrada no exemplo da FIG. 7. Além disso, o conjunto de parâmetros podem incluir um terceiro, quarto e quinto parâmetro. O terceiro parâmetro (por exemplo, TargetOlsIdx) especifica um índice de conjunto de camada de saída alvo de um ponto de operação. O quarto parâmetro (por exemplo, TargetPsIdx) especifica um índice de esquema de particionamento alvo do ponto de operação, e o quinto parâmetro (por exemplo, HighestTid) especifica um identificador de mais alto ponto temporal da operação.
[000226] A FIG. 6 é um fluxograma que ilustra um exemplo de operação de um descodificador de vídeo, de acordo com uma técnica desta descrição. No exemplo da FIG. 6, o descodificador de vídeo 30 obtém um fluxo de dados (por exemplo, um fluxo de dados MPEG-2) compreendendo uma pluralidade de fluxos elementares e um descritor de temporização HEVC e HRD (250). O descritor de temporização HEVC e HRD compreendem um elemento de sintaxe de índice de planejamento de destino (por exemplo, target_schedule_idx) que indica um índice de uma programação de entrega.
[000227] Além disso, no exemplo da FIG. 6, o decodificador de vídeo 30 identifica, com base num conjunto de parâmetros, um elemento de sintaxe numa matriz de elementos de sintaxe (por exemplo, bsp_hrd_idx [TargetOlsIdx] [TargetPsIdx] [HighestTid] [SchedSelCombIdx] [partitio nIdx]) em um VPS (252). No exemplo da FIG. 6, o VPS inclui uma pluralidade de estruturas de sintaxe de parâmetros HRD (p.ex., hrd_parameters ()). Cada estrutura de sintaxe de parâmetros HRD respectiva da pluralidade de estruturas de sintaxe de parâmetros HRD compreende um conjunto respectivo de parâmetros HRD (por exemplo, nal_hrd_parameters_present_flag, vcl_hrd_parameters_present_flag, etc.). Cada elemento de sintaxe respectivo da matriz de elementos de sintaxe especifica um índice de uma estrutura de sintaxe de parâmetros HRD na pluralidade de estruturas de sintaxe de parâmetros HRD. O conjunto de parâmetros pode incluir um parâmetro (por exemplo, SchedSelCombIdx) com um valor igual a um valor do elemento de sintaxe de índice de programação de destino. Além disso, em alguns exemplos, o conjunto de parâmetros inclui um segundo parâmetro (p.ex., partitionIdx) cujo valor é determinado da maneira mostrada no exemplo da FIG. 7. Adicionalmente, o conjunto de parâmetros pode incluir um terceiro, quarto e quinto parâmetro. O terceiro parâmetro (por exemplo, TargetOlsIdx) especifica um índice de conjunto de camadas de saída de destino de um ponto de operação. O quarto parâmetro (por exemplo, TargetPsIdx) especifica um índice de esquema de particionamento de destino do ponto de operação e o quinto parâmetro (por exemplo, HighestTid) especifica um identificador temporal mais alto do ponto de operação.
[000228] Adicionalmente, no exemplo da FIG. 6, o decodificador de vídeo 30 identifica, com base num índice especificado pelo elemento de sintaxe identificado, uma estrutura de sintaxe de parâmetros HRD particular na pluralidade de estruturas de sintaxe de parâmetros HRD como sendo aplicável a um fluxo elementar particular que é parte do ponto de operação (254). A pluralidade de fluxos elementares inclui o fluxo elementar particular.
[000229] A FIG. 7 é um fluxograma que ilustra um exemplo de operação de um codificador de vídeo para determinar um valor de um parâmetro, de acordo com uma técnica desta descrição. No exemplo da FIG. 7, o codificador de vídeo (por exemplo, codificador de vídeo 20 ou decodificador de vídeo 30) determina uma lista de fluxos elementares na pluralidade de fluxos elementares que têm tipos de corrente iguais a 0x24, 0x27 ou 0x29 e que estão num ponto de operação (300). Conforme indicado acima, um fluxo elementar com um tipo de fluxo igual a 0x24 é um fluxo de vídeo HEVC ou um subvirtual de bits temporal de vídeo HEVC ou uma sub-partição de base HEVC. Um fluxo elementar com um tipo de fluxo igual a 0x27 é uma subdivisão de realce HEVC que inclui TemporalId 0 de um fluxo de vídeo HEVC de acordo com um ou mais perfis definidos no Anexo G da Rec. UIT-T. H.265 | ISO / IEC 23008-2. Um fluxo elementar com um tipo de fluxo igual a 0x29 é uma subdivisão de realce de HEVC que inclui TemporalId 0 de um fluxo de vídeo HEVC de acordo com um ou mais perfis definidos no Anexo H da Rec. H.265|ISSO/IEC 23008-2.
[000230] No exemplo da FIG. 7, a lista está em ordem crescente de acordo com os valores de índice de camada de hierarquia para os fluxos elementares na lista. Em casos onde o codificador de vídeo é um codificador de vídeo, o codificador de vídeo pode, como parte da geração do fluxo de dados, incluir, no fluxo de dados, para cada fluxo elementar respectivo da pluralidade de fluxos elementares, um descritor de hierarquia ou uma extensão de hierarquia Descritor que compreende um valor de índice de camada de hierarquia (por exemplo, hierarchy_layer_index) para o respectivo fluxo elementar. Nos casos em que o codificador de vídeo é um descodificador de vídeo, o decodificador de vídeo pode, como parte da obtenção do fluxo de dados, obter, para cada respectivo fluxo elementar da pluralidade de fluxos elementares, um descritor de hierarquia ou um descritor de extensão de hierarquia compreendendo uma camada de hierarquia para o respectivo fluxo elementar.
[000231] Além disso, no exemplo da FIG. 7, o codificador de vídeo pode determinar se o fluxo elementar particular é um membro da lista (302). Se o fluxo elementar particular for um membro da lista ("SIM" de 302), o codificador de vídeo pode determinar que o valor do parâmetro é o índice do fluxo elementar particular na lista (304). Se o fluxo elementar particular não for um membro da lista ("NO" de 302), o codificador de vídeo pode determinar que o valor do parâmetro é o índice de um dos fluxos elementares na lista (306). O fluxo elementar particular é um realce temporal complementar do fluxo elementar na lista.
[000232] Embora as combinações particulares de vários aspectos das técnicas estão descritas acima, estas combinações são fornecidas meramente para ilustrar exemplos das técnicas descritas na presente memória descritiva. Por conseguinte, as técnicas desta revelação não devem ser limitadas a estes exemplos de combinações e pode abranger qualquer combinação concebível dos vários aspectos das técnicas descritas nesta revelação.
[000233] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware, ou qualquer combinação dos mesmos. Se implementado em software, as funções podem ser armazenadas em ou transmitidos através de, como uma ou mais instruções de código, ou um meio de leitura por computador e executado por uma unidade de processamento com base em hardware. Meios legíveis por computador podem incluir meios de armazenamento de leitura por computador, o que corresponde a um suporte material, tais como meios de armazenamento de dados ou meios de comunicação, incluindo qualquer meio que facilite a transferência de um programa de computador a partir de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Deste modo, meios legíveis por computador podem corresponder geralmente a (1) meios de armazenamento legível por computador tangível que é não transitório ou (2) um meio de comunicação, tal como uma onda portadora ou sinal. Meios de armazenamento de dados pode ser qualquer material disponível que pode ser acedida por um ou mais computadores ou um ou mais processadores para recuperar instruções de código, e/ou estruturas de dados para a implementação das técnicas descritas na presente memória descritiva. Um produto de programa de computador pode incluir um meio legível por computador.
[000234] A título de exemplo, e não como limitação, tais meios de armazenamento legíveis por computador podem compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento em disco óptico, armazenamento em disco magnético ou outros dispositivos de armazenamento magnético, memória flash, ou qualquer outro meio que possa ser utilizado para armazenar o código de programa desejado sob a forma de instruções ou estruturas de dados, e que pode ser acedido por um computador. Além disso, qualquer conexão é denominada corretamente um meio legível por computador. Por exemplo, se as instruções são transmitidas de um site, servidor ou outra fonte remota utilizando um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL) ou tecnologias sem fios tais como infravermelhos, rádio e microondas, então o cabo coaxial, cabo de fibra óptica, o par torcido, DSL, ou tecnologias sem fios, tais como infravermelho, rádio e micro-ondas estão incluídos na definição de forma. Deve ser entendido, no entanto, que os meios de armazenamento legíveis por computador e mídias de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outros meios de comunicação transitórios, mas são direcionados para não-transitória, mídia de armazenamento tangível. Disco e disco, como aqui utilizado, inclui disco compacto (CD), disco laser, disco óptico, disco versátil digital (DVD), disquete e disco Blu- ray, onde discos geralmente reproduzem dados magneticamente, enquanto que os discos reproduzem dados opticamente com lasers. Combinações dos anteriores também devem ser incluídos no âmbito da mídia legível por computador inclui disco compacto (CD), disco laser, disco óptico, disco versátil digital (DVD), disquete e disco Blu-ray, onde discos geralmente reproduzem dados magneticamente, enquanto que os discos reproduzem dados opticamente com lasers. Combinações dos anteriores também devem ser incluídos no âmbito da mídia legível por computador inclui disco compacto (CD), disco laser, disco óptico, disco versátil digital (DVD), disquete e disco Blu-ray, onde discos geralmente reproduzem dados magneticamente, enquanto que os discos reproduzem dados opticamente com lasers. Combinações dos anteriores também devem ser incluídos no âmbito da mídia legível por computador.
[000235] As instruções podem ser executadas por um ou mais processadores, tais como um ou mais processadores de sinal digital (DSP), microprocessadores de uso geral, a aplicação específica de circuitos integrados (ASIC), conjuntos de campo lógicas programáveis (FPGA) ou outro equivalente integrado ou circuitos lógicos discretos. Por conseguinte, o termo "processador" tal como aqui utilizado pode referir-se a qualquer da estrutura anterior ou qualquer outra estrutura adequada para aplicação das técnicas aqui descritas. Além disso, em alguns aspectos, a funcionalidade aqui descrita pode ser fornecida dentro de módulos de hardware e/ou software dedicado configurados para a codificação e decodificação, ou incorporada em um codec combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.
[000236] As técnicas da presente divulgação podem ser implementadas em uma vasta variedade de dispositivos ou aparelhos, incluindo um monofone sem fios, um circuito integrado (IC) ou um conjunto de CIs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades estão descritos na presente memória descritiva para realçar os aspectos funcionais de dispositivos configurados para executar as técnicas divulgadas, mas não precisam necessariamente de realização por diferentes unidades de hardware. Em vez disso, tal como descrito acima, várias unidades podem ser combinadas em uma unidade de hardware codec ou fornecida por um conjunto de unidades de hardware interoperativo, incluindo um ou mais processadores, conforme descrito acima, em conjunto com o software e/ou firmware adequado.
[000237] Vários exemplos foram descritos. Estes e outros exemplos estão dentro do âmbito das reivindicações seguintes.
Claims (15)
1. Método de processamento de dados de vídeo, caracterizado pelo fato de que compreende: obter um fluxo de dados compreendendo uma pluralidade de fluxos elementares e um descritor de temporização de Codificação de Vídeo de Alta Eficiência, HEVC, e Decodificador Hipotético de Referência, HRD, em que o descritor de temporização HEVC e HRD compreende um elemento de sintaxe de índice de programação alvo indicando um índice de uma programação de entrega; identificar, com base em um conjunto de parâmetros, um elemento de sintaxe em um arranjo de elementos de sintaxe em um conjunto de parâmetro de vídeo, VPS, em que: o VPS compreende uma pluralidade de estruturas de sintaxe de parâmetros HRD, em que cada estrutura de sintaxe de parâmetros HRD respectiva dentre a pluralidade de estruturas de sintaxe de parâmetros HRD compreende um conjunto respectivo de parâmetros HRD, cada elemento de sintaxe respectivo do arranjo de elementos de sintaxe especifica um índice de uma estrutura de sintaxe de parâmetros HRD na pluralidade de estruturas de sintaxe de parâmetros HRD, e o conjunto de parâmetros compreende um parâmetro tendo um valor igual a um valor do elemento de sintaxe de índice de programação alvo; e identificar, com base em um índice especificado pelo elemento de sintaxe identificado, uma estrutura de sintaxe de parâmetros HRD particular na pluralidade de estruturas de sintaxe de parâmetros HRD como sendo aplicável a um fluxo elementar particular que é parte de um ponto de operação, a pluralidade de fluxos elementares incluindo o fluxo elementar particular.
2. Método de processamento de dados de vídeo, caracterizado pelo fato de que compreende: gerar um conjunto de parâmetros de vídeo, VPS, que inclui um arranjo de elementos de sintaxe e uma pluralidade de estruturas de sintaxe de parâmetros de Decodificador Hipotético de Referência, HRD, em que: cada estrutura de sintaxe de parâmetros HRD respectiva dentre a pluralidade de estruturas de sintaxe de parâmetros HRD compreende um conjunto respectivo de parâmetros HRD, e cada respectivo elemento de sintaxe do arranjo de elementos de sintaxe especifica um índice de uma estrutura de sintaxe de parâmetros HRD na pluralidade de estruturas de sintaxe de parâmetros HRD; gerar um descritor de temporização de Codificação de Vídeo de Alta Eficiência, HEVC, e Decodificador Hipotético de Referência, HRD, que compreende um elemento de sintaxe de índice de programação alvo indicando um índice de uma programação de entrega; e gerar um fluxo de dados que compreende uma pluralidade de fluxos elementares e descritor de temporização de Codificação de Vídeo de Alta Eficiência, HEVC, e Decodificador Hipotético de Referência, HRD, em que um conjunto de parâmetros identifica um elemento de sintaxe no arranjo de elementos de sintaxe que especifica um índice de uma estrutura de sintaxe de parâmetros HRD particular aplicável ao fluxo elementar particular, a estrutura de sintaxe de parâmetros HRD particular sendo um dentre a pluralidade de estruturas de sintaxe de parâmetros HRD, a estrutura de sintaxe de parâmetros HRD particular sendo parte de um ponto de operação, e o conjunto de parâmetros compreende um parâmetro que possui um valor igual a um valor do elemento de sintaxe de índice de programação alvo, a pluralidade de fluxos elementares incluindo o fluxo elementar particular.
3. Dispositivo para processamento de dados de vídeo, caracterizado pelo fato de que compreende: uma memória configurada para armazenar os dados de vídeo; e um ou mais processadores configurados para: obter um fluxo de dados que compreende uma pluralidade de fluxos elementares e um descritor de temporização de Codificação de Vídeo de Alta Eficiência, HEVC, e Decodificador Hipotético de Referência, HRD, em que o descritor de temporização HEVC e HRD compreende um elemento de sintaxe de índice de programação alvo indicando um índice de uma programação de entrega, os fluxos elementares compreendendo representações codificadas dos dados de vídeo; identificar, com base em um conjunto de parâmetros, um elemento de sintaxe em um arranjo de elementos de sintaxe de um conjunto de parâmetros de vídeo, VPS, em que: o VPS compreende uma pluralidade de estruturas de sintaxe de parâmetros HRD, em que cada respectiva estrutura de sintaxe de parâmetros HRD dentre a pluralidade de estruturas de sintaxe de parâmetros HRD compreende um conjunto respectivo de parâmetros HRD, cada respectivo elemento de sintaxe do arranjo de elementos de sintaxe especifica um índice de uma estrutura de sintaxe de parâmetros HRD na pluralidade de estruturas de sintaxe de parâmetros HRD, e o conjunto de parâmetros compreende um parâmetro que tem um valor igual a um valor do elemento de sintaxe de índice de programação alvo; e identificar, com base em um índice especificado pelo elemento de sintaxe identificado, uma estrutura de sintaxe de parâmetros HRD particular na pluralidade de estruturas de sintaxe de parâmetros HRD como sendo aplicável a um fluxo elementar particular que faz parte do ponto de operação, a pluralidade de fluxos elementares incluindo o fluxo elementar particular.
4. Dispositivo, de acordo com a reivindicação 3, caracterizado pelo fato de que: o parâmetro é um primeiro parâmetro, o conjunto de parâmetros inclui um segundo parâmetro, e os um ou mais processadores são configurados de modo que, como parte de obtenção do fluxo de dados, os um ou mais processadores obtém, para cada fluxo elementar respectivo dentre a pluralidade de fluxos elementares, um descritor de hierarquia ou um descritor de extensão de hierarquia compreendendo um valor de índice de camada de hierarquia para o respectivo fluxo elementar; e o um ou mais processadores configurados adicionalmente para: determinar uma lista de fluxos elementares na pluralidade de fluxos elementares que têm tipos de fluxo iguais a 0x24, 0x27, ou 0x29 e que se encontram no ponto de operação, a lista sendo por ordem ascendente de acordo com o valor do índice de camada de hierarquia para os fluxos elementares na lista; e determinar um valor do segundo parâmetro de tal forma que: se o fluxo elementar particular é um membro da lista, o valor do segundo parâmetro é um índice do fluxo elementar particular na lista, e se o fluxo elementar particular não é um membro da lista, o valor do segundo parâmetro é um índice de um dos fluxos elementares na lista, em que o fluxo elementar particular é uma melhoria temporal complementar do fluxo elementar na lista.
5. Dispositivo, de acordo com a reivindicação 4, caracterizado pelo fato de que o conjunto de parâmetros inclui um terceiro, quarto e quinto parâmetros, o terceiro parâmetro especificando um índice de conjunto de camadas de saída alvo do ponto de operação, o quarto parâmetro especificando um índice de esquema de particionamento alvo do ponto de operação, o quinto parâmetro especificando um maior identificador temporal do ponto de operação.
6. Dispositivo, de acordo com a reivindicação 3, caracterizado pelo fato de que o fluxo de dados é um fluxo de programa ou de um fluxo de transporte e está sujeito a uma restrição que cada um dentre a pluralidade de fluxos elementares contenha não mais do que uma camada.
7. Dispositivo, de acordo com a reivindicação 3, caracterizado pelo fato de que o fluxo de dados é um fluxo de programa ou fluxo de transporte e está sujeito a uma restrição de modo que se um hrd_management_valid_flag do descritor de temporização HEVC e HRD for igual a 1, então mensagens de Informação de Melhoria Suplementar, SEI, de período de armazenamento em buffer e mensagens SEI de temporização de imagem aplicáveis para cada ponto de operação sinalizado em um descritor de operação HEVC devem estar presente em um fluxo de vídeo HEVC.
8. Dispositivo, de acordo com a reivindicação 3, caracterizado pelo fato de que o descritor de temporização HEVC e HRD é um descritor de nível de programa, em que é exigido que exista no mínimo um descritor de temporização HEVC e HRD no fluxo de dados.
9. Dispositivo para processar dados de vídeo, o dispositivo caracterizado pelo fato de que compreende: uma memória configurada para armazenar os dados de vídeo; e um ou mais processadores configurados para: gerar um conjunto de parâmetros de vídeo, VPS, que inclui um arranjo de elementos de sintaxe e uma pluralidade de estruturas de sintaxe de parâmetros de Decodificador Hipotético de Referência, HRD, em que: cada estrutura de sintaxe de parâmetros HRD respectiva dentre a pluralidade de estruturas de sintaxe de parâmetros HRD compreende um respectivo conjunto de parâmetros HRD; e cada elemento de sintaxe respectivo do arranjo de elementos de sintaxe especifica um índice de uma estrutura de sintaxe de parâmetros HRD na pluralidade de estruturas de sintaxe de parâmetros HRD; gerar um descritor de temporização de Codificação de Vídeo de Alta Eficiência, HEVC, e HRD compreendendo um elemento de sintaxe de índice de programação alvo que indica um índice de uma programação de entrega; e gerar um fluxo de dados que compreende uma pluralidade de fluxos elementares e o descritor de temporização de Codificação de Vídeo de Alta Eficiência, HEVC, e HRD, a pluralidade de fluxos elementares compreendendo uma representação codificada dos dados de vídeo, em que um conjunto de parâmetros identifica um elemento de sintaxe no arranjo de elementos de sintaxe que especifica um índice de uma estrutura de sintaxe de parâmetros HRD particular aplicável a um fluxo elementar particular, a estrutura de sintaxe de parâmetros HRD particular sendo uma dentre a pluralidade de estruturas de sintaxe de parâmetros HRD, a estrutura de sintaxe de parâmetros HRD particular sendo parte de um ponto de operação, e o conjunto de parâmetros compreende um parâmetro possuindo um valor igual a um valor do elemento de sintaxe de índice de programação alvo, a pluralidade de fluxos elementares incluindo o fluxo elementar particular.
10. Dispositivo, de acordo com a reivindicação 9, caracterizado pelo fato de que o parâmetro é um primeiro parâmetro, o conjunto de parâmetros inclui um segundo parâmetro, e o um ou mais processadores são configurados para: incluir, no fluxo de dados, para cada fluxo elementar respectivo dentre a pluralidade de fluxos elementares, um descritor de hierarquia ou um descritor de extensão de hierarquia compreendendo um valor de índice de camada de hierarquia para o respectivo fluxo elementar; e determinar uma lista de fluxos elementares na pluralidade de fluxos elementares que possuem tipos de fluxo iguais a 0x24, 0x27 ou 0x29 e que estão no ponto de operação, a lista estando em ordem crescente de acordo com o valor de índice de camada de hierarquia para os fluxos elementares na lista; e determinar um valor do segundo parâmetro tal que: se o fluxo elementar particular for um membro da lista, o valor do segundo parâmetro é o índice do fluxo elementar particular na lista; e se o fluxo elementar particular não for um membro da lista, o valor do segundo parâmetro é um índice de um dos fluxos elementares na lista, em que o fluxo elementar particular é uma melhoria temporal complementar do fluxo elementar na lista.
11. Dispositivo, de acordo com a reivindicação 10, caracterizado pelo fato de que o conjunto de parâmetros incluir um terceiro, quarto e quinto parâmetro, o terceiro parâmetro especificando um índice de conjunto de camadas de saída alvo de um ponto de operação, o quarto parâmetro especificando um índice de esquema de particionamento alvo do ponto de operação, o quinto parâmetro especificando um identificador temporal mais alto do ponto de operação.
12. Dispositivo, de acordo com a reivindicação 9, caracterizado pelo fato de que o fluxo de dados é sujeito a uma restrição que cada um dentre a pluralidade de fluxos elementares contenha não mais do que uma camada.
13. Dispositivo, de acordo com a reivindicação 9, caracterizado pelo fato de que o fluxo de dados está sujeito a uma restrição de tal modo que se um hrd_management_valid_flag do descritor de temporização HEVC e HRD for igual a 1, então mensagens de Informação de Melhoria Suplementar, SEI, de período de armazenamento em buffer e mensagens SEI de temporização de imagem aplicáveis para cada ponto de operação sinalizado em um descritor de operação HEVC devem estar presentes em um fluxo de vídeo HEVC.
14. Dispositivo, de acordo com a reivindicação 9, caracterizado pelo fato de que o descritor de temporização HEVC e HRD é um descritor de nível de programa, em que é exigido que haja no máximo um descritor de temporização HEVC e HRD no fluxo de dados.
15. Memória caracterizada pelo fato de que compreende instruções armazenadas na mesma, as instruções sendo executadas por um computador para realizar o método conforme definido na reivindicação 1 ou 2.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462064414P | 2014-10-15 | 2014-10-15 | |
US62/064,414 | 2014-10-15 | ||
US14/883,256 US20160112724A1 (en) | 2014-10-15 | 2015-10-14 | Hrd descriptor and buffer model of data streams for carriage of hevc extensions |
US14/883,256 | 2015-10-14 | ||
PCT/US2015/055712 WO2016061334A1 (en) | 2014-10-15 | 2015-10-15 | Design of hrd descriptor and buffer model of data streams for carriage of hevc extensions |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112017007798A2 BR112017007798A2 (pt) | 2017-12-19 |
BR112017007798B1 true BR112017007798B1 (pt) | 2023-08-15 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10171842B2 (en) | HRD descriptor and buffer model of data streams for carriage of HEVC extensions | |
AU2015204790B2 (en) | Carriage of HEVC extension bitstreams and buffer model with MPEG-2 systems | |
DK2904798T3 (en) | VIDEO DATA FILE FORMAT | |
EP3363204B1 (en) | Support of random access and switching of layers and sub-layers in multi-layer video files | |
BR112016025107B1 (pt) | Dispositivo e método para codificar dados de vídeo e memória legível por computador | |
BR112018007529B1 (pt) | Alinhamento de grupo de amostra de ponto de operação em formato de arquivo de fluxos de bits de multicamada | |
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 | |
KR101906136B1 (ko) | Hevc 확장들의 캐리지를 위한 동작 포인트들의 시그널링 | |
BR112017007798B1 (pt) | Design de descritor hrd e modelo de buffer de fluxo de dados para transporte de extensões hevc | |
BR112017017281B1 (pt) | Sinalização de pontos de operação para conduzir extensões de hevc | |
BR112016015903B1 (pt) | Método e dispositivo de decodificação de dados de vídeo, e, memória legível por computador | |
BR112016008953B1 (pt) | Condução de dados de fluxo de bits com extensão- padrão de codificação de vídeo com o uso de sistemas de mpeg-2 |