BR112015006451B1 - Método e dispositivo para processar dados de vídeo de acordo com o padrão de codificação de vídeo de alta eficiência e memória legível por computador - Google Patents

Método e dispositivo para processar dados de vídeo de acordo com o padrão de codificação de vídeo de alta eficiência e memória legível por computador Download PDF

Info

Publication number
BR112015006451B1
BR112015006451B1 BR112015006451-5A BR112015006451A BR112015006451B1 BR 112015006451 B1 BR112015006451 B1 BR 112015006451B1 BR 112015006451 A BR112015006451 A BR 112015006451A BR 112015006451 B1 BR112015006451 B1 BR 112015006451B1
Authority
BR
Brazil
Prior art keywords
hrd
bitstream
operating point
parameters
image
Prior art date
Application number
BR112015006451-5A
Other languages
English (en)
Other versions
BR112015006451A2 (pt
Inventor
Ye-Kui Wang
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112015006451A2 publication Critical patent/BR112015006451A2/pt
Publication of BR112015006451B1 publication Critical patent/BR112015006451B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

PARÂMETROS DE DECODIFICADOR DE REFERÊNCIA HIPOTÉTICO EM CODIFICAÇÃO DE VÍDEO. Um dispositivo de computação seleciona, dentre um conjunto de parâmetros de decodificador de referência hipotético (DRH) em um conjunto de parâmetros de vídeo e um conjunto de parâmetros HRD em um conjunto de parâmetros de sequência, um conjunto de parâmetros HRD aplicável a um ponto de operação particular de um fluxo de bits. O dispositivo de computação realiza, com base, pelo menos em parte, no conjunto de parâmetros HRD aplicável ao ponto de operação particular, uma operação de HRD em um subconjunto de fluxo de bits associado ao ponto de operação particular.

Description

[0001] Este pedido reivindica o benefício do Pedido de Patente Provisório dos US No. 61/705.102, depositado em 24 de setembro de 2012. Todo o conteúdo do qual é aqui incorporado por referência.
Campo Técnico
[0002] Esta descrição refere-se à codificação e decodificação de vídeo (ou seja, codificação e/ou decodificação de dados de vídeo).
Fundamentos
[0003] Capacidades de vídeo digitais podem ser incorporadas em uma ampla gama de dispositivos, incluindo televisores digitais, sistemas de transmissão digital direta, sistemas de transmissão sem fio, assistentes digitais pessoais (PDAs), computadores desktop ou computadores laptop, tablets, e-books, câmeras digitais, dispositivos de registro digital, reprodutores de mídia digital, dispositivos de videogame, consoles de videogames, telefones celulares ou rádio por satélite, os invocados "smartphones", dispositivos de vídeo teleconferência, dispositivos de streaming de vídeo, e semelhantes. Dispositivos de vídeo digital implementam técnicas de compressão de vídeo, tais como aquelas descritas nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG- 4, Parte 10, Codificação de Vídeo Avançada (AVC), Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento, e a extensão de tais padrões. Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar informações de vídeo digital de forma mais eficiente através da implementação de tais técnicas de compressão de vídeo.
[0004] Técnicas de compressão de vídeo realizam predição espacial (intraimagem) e/ou predição temporal (interimagem) para reduzir ou eliminar a redundância inerente em sequências de vídeo. Para a codificação de vídeo baseada em bloco, uma fatia de vídeo (isto é, um quadro de vídeo ou uma porção de um quadro de vídeo) pode ser dividida em blocos de vídeo. Blocos de vídeo em uma fatia intracodificada (I) de uma imagem são codificados usando a predição espacial em relação às amostras de referência em blocos vizinhos no mesmo quadro. Blocos de vídeo em uma fatia intercodificada (P ou B) de uma imagem podem usar a predição espacial em relação às amostras de referência em blocos vizinhos na mesma imagem ou predição temporal com relação às amostras de referência em outras imagens de referência. As imagens podem ser referidas como quadros, e imagens de referência podem ser referidas como quadros de referência.
[0005] Predição espacial ou temporal resulta em um bloco de predição para um bloco a ser codificado. Dados residuais representam diferenças de pixel entre o bloco original a ser codificado e o bloco preditivo. Um bloco intercodificada é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência que forma o bloco de predição, e os dados residuais indicam a diferença entre o bloco codificado e o bloco preditivo. Um bloco intracodificado é codificado de acordo com um modo de intracodificação e os dados residuais. Para a compressão adicional, os dados residuais podem ser transformados do domínio de pixel para um domínio da transformada, resultando em coeficientes residuais, que então podem ser quantificados. Os coeficientes quantificados, inicialmente dispostos em uma matriz bidimensional, podem ser varridos, a fim de produzir um vetor unidimensional de coeficientes, e codificação de entropia pode ser aplicada para conseguir ainda mais compressão.
[0006] Um fluxo de bits de codificação de multivista pode ser gerado por vistas de codificação, por exemplo, a partir de múltiplas perspectivas. Alguns padrões de vídeo tridimensionais (3D) têm sido desenvolvidos os quais fazem uso de aspectos codificação de multivista. Por exemplo, vistas diferentes podem transmitir vistas do olho esquerdo e direito para suportar vídeo 3D. Alternativamente, alguns processos de codificação de vídeo 3D podem aplicar a assim chamada multivista mais codificação de profundidade. Em multivista mais codificação de profundidade, fluxo de bits de vídeo 3D pode conter não só componentes de vista de textura, mas também componentes de vista de profundidade. Por exemplo, cada vista pode compreender uma componente de vista de textura e um componente de vista de profundidade.
Sumário
[0007] De um modo geral, esta divulgação descreve sinalização e seleção de parâmetros de decodificador de referência hipotético (HRD) de codificação de vídeo. Mais especificamente, um dispositivo de computação pode selecionar, dentre um conjunto de parâmetros de decodificador de referência hipotético (DRH) em um conjunto de parâmetros de vídeo (VPS) e um conjunto de parâmetros HRD em um conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros HRD aplicável a um ponto de operação particular de um fluxo de bits. O dispositivo de computação realiza, com base, pelo menos em parte, no conjunto de parâmetros HRD aplicável ao ponto de operação particular, uma operação de HRD em um subconjunto de fluxo de bits associado com o ponto de operação particular.
[0008] Em um exemplo, esta divulgação descreve um método de processamento de dados de vídeo. O método compreende a seleção, dentre um conjunto de parâmetros HRD em um VPS e um conjunto de parâmetros HRD em um SPS, um conjunto de parâmetros HRD aplicável a um ponto de operação particular de um fluxo de bits. O método também compreende a realização, com base, pelo menos em parte, no conjunto de parâmetros HRD selecionados aplicável ao ponto de operação particular, uma operação de HRD em um subconjunto de fluxos de bits associado com o ponto de operação particular.
[0009] Em um outro exemplo, esta divulgação descreve um dispositivo que compreende um ou mais processadores configurados para selecionar, dentre um conjunto de parâmetros HRD em um VPS e um conjunto de parâmetros HRD em um SPS, um conjunto de parâmetros HRD aplicável a um ponto de operação particular de um fluxo de bits. Os um ou mais processadores também são configurados para realizar, com base, pelo menos em parte, no conjunto de parâmetros HRD selecionados aplicável ao ponto de operação particular, uma operação de HRD em um subconjunto de fluxo de bits associado com o ponto de operação particular.
[0010] Em um outro exemplo, esta divulgação descreve um dispositivo que compreende meios para selecionar, dentre um conjunto de parâmetros HRD em um VPS e um conjunto de parâmetros HRD em um SPS, um conjunto de parâmetros HRD aplicável a uma operação de ponto particular de um fluxo de bits. O dispositivo também compreende meios para efetuar, com base, pelo menos em parte, no conjunto de parâmetros HRD selecionados aplicável ao ponto de operação particular, uma operação de HRD em um subconjunto de fluxo de bits associado com o ponto de operação particular.
[0011] Em um outro exemplo, esta divulgação descreve um meio de armazenamento de dados legíveis por computador tendo armazenadas nele instruções que, quando executadas por um ou mais processadores de um dispositivo, configuram o dispositivo para selecionar, dentre um conjunto de parâmetros HRD em um VPS e um conjunto de parâmetros HRD em um SPS, um conjunto de parâmetros HRD aplicável a um ponto de operação particular de um fluxo de bits. Além disso, as instruções, quando executadas, configuram o dispositivo para realizar, com base, pelo menos em parte, no conjunto de parâmetros HRD selecionados aplicável ao ponto de operação particular, uma operação de HRD em um subconjunto de fluxo de bits associado com o ponto de operação particular.
[0012] Os detalhes de um ou mais exemplos da invenção são estabelecidos nos desenhos acompanhantes e na descrição abaixo. Outras características, objetos e vantagens serão evidentes a partir da descrição, desenhos e reivindicações.
Breve Descrição Dos Desenhos
[0013] A figura 1 é um diagrama de blocos que ilustra um sistema de codificação de vídeo exemplar que pode utilizar as técnicas descritas nesta divulgação.
[0014] A figura 2 é um diagrama de blocos ilustrando um codificador de vídeo exemplar que pode implementar as técnicas descritas nesta divulgação.
[0015] A figura 3 é um diagrama de blocos que ilustra um decodificador de vídeo exemplar que pode implementar as técnicas descritas nesta divulgação.
[0016] A figura 4 é um fluxograma que ilustra um exemplo de operação de um dispositivo, de acordo com uma ou mais das técnicas desta descrição.
[0017] A figura 5 é um fluxograma que ilustra um exemplo de operação de um dispositivo, de acordo com uma ou mais das técnicas desta descrição.
[0018] A figura 6 é um fluxograma que ilustra um exemplo de operação de decodificador de referência hipotético (HRD) de um dispositivo, de acordo com uma ou mais das técnicas desta descrição.
Descrição Detalhada
[0019] Um codificador de vídeo pode gerar um fluxo de bits, que inclui dados de vídeo codificados. O fluxo de bits pode compreender uma série de unidades de camada de abstração de rede (NAL). As unidades de NAL do fluxo de bits podem incluir camadas de unidades de NAL de camada de codificação de vídeo (VCL) e NAL não-VCL. As unidades de NAL VCL podem incluir fatias de imagens codificadas. A unidade de NAL não-VCL pode incluir um conjunto de parâmetros de vídeo (VPS), um conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros de imagem (PPS), informações de reforço suplementar (SEI), ou outros tipos de dados. Um VPS é uma estrutura de sintaxe que pode conter elementos de sintaxe que se aplicam a zero ou mais sequências de vídeo codificados inteiras. Um SPS é uma estrutura de sintaxe que pode conter elementos de sintaxe que se aplicam a zero ou mais sequências de vídeo codificado inteiras. Um único VPS pode ser aplicável a múltiplos SPS. Um PPS é uma estrutura de sintaxe que pode conter elementos de sintaxe que se aplicam a zero ou mais imagens codificadas inteiras. Um único SPS pode ser aplicável a múltiplos PPS. Vários aspectos do VPS, SPS e PPS podem ser formados, em geral, tal como definido pela norma HEVC.
[0020] Um dispositivo, tal como um dispositivo de rede de entrega de conteúdo (CDN), um Elemento de Rede de Reconhecimento de Mídia (MANE), ou um decodificador de vídeo, pode extrair um subfluxo de bits do fluxo de bits. O dispositivo pode realizar o processo de extração de subfluxo de bits, removendo certas unidades de NAL do fluxo de bits. O subfluxo de bits resultante inclui as unidades de NAL não removidas restantes do fluxo de bits. Como exemplos, dados de vídeo decodificados a partir do subfluxo de bits podem ter uma taxa de quadro mais baixa e/ou podem representar menos vistas do que o fluxo de bits original.
[0021] Padrões de codificação de vídeo podem incluir vários recursos para suportar o processo de extração de subfluxo de bits. Por exemplo, os dados de vídeo do fluxo de bits podem ser divididos em um conjunto de camadas. Para cada uma das camadas, os dados em uma camada inferior podem ser decodificados sem referência a dados em qualquer camada superior. Uma unidade de NAL individual encapsula somente dados de uma única camada. Assim, as unidades de NAL encapsulando dados de camada mais alta restante da sequência de bits podem ser removidas do fluxo de bits sem afetar a decodificação de dados nas camadas restantes inferiores do fluxo de bits. Em codificação de vídeo escalável (SVC), as camadas superiores podem incluir dados de reforço que melhoram a qualidade das imagens em camadas inferiores (escalabilidade de qualidade), ampliam o formato espacial de imagens em camadas inferiores (escalabilidade espacial), ou aumentam a taxa temporal de imagens em camadas inferiores (escalabilidade temporal). Em codificação de multivista (MVC) e codificação de vídeo tridimensional (3DV), as camadas superiores podem incluir vistas adicionais.
[0022] Unidades de NAL podem incluir cabeçalhos e cargas úteis. Os cabeçalhos das unidades de NAL incluem elementos de sintaxe nuh_reserved_zero_6bits. O elemento de sintaxe nuh_reserved_zero_6bits de uma unidade de NAL é igual a 0, se a unidade de NAL refere-se a uma camada de base em codificação de multivista, codificação 3DV, ou SVC. 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 de NAL não se relaciona com uma camada de base em codificação de multivista, 3DV, ou SVC, o elemento de sintaxe nuh_reserved_zero_6bits pode ter um valor diferente de zero. Especificamente, se uma unidade de NAL não se relaciona a uma camada de base em codificação de multivista, 3DV, ou SVC, o elemento de sintaxe nuh_reserved_zero_6bits da unidade de NAL especifica um identificador de camada da unidade de NAL.
[0023] 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 de NAL encapsulando dados de certas imagens de uma camada podem ser removidas do fluxo de bits sem afetar a decodificação de outras imagens na camada. Por exemplo, as imagens com valores de contagem de ordem de imagem (POC) pares podem ser decodificáveis sem referência a imagens com valores POC ímpares. Remover unidades de NAL encapsulando dados de tais imagens pode reduzir a taxa de quadros do fluxo de bits. Um subconjunto de imagens dentro de uma camada que pode ser decodificada sem referência a outras imagens no interior da camada pode ser aqui referido como uma subcamada.
[0024] Unidades de NAL podem incluir elementos de sintaxe temporal_id. O elemento de sintaxe temporal_id de uma unidade de NAL especifica um identificador temporal da unidade de NAL. Se o identificador temporal de uma primeira unidade de NAL é menor do que o identificador temporal de uma segunda unidade de NAL, os dados encapsulados pela primeira unidade de NAL podem ser decodificados sem referência aos dados encapsulados pela segunda unidade de NAL.
[0025] Cada ponto de operação de um fluxo de bits está 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 um identificador de camada de unidade de NAL está no conjunto de um ponto de operação de identificadores de camada e identificador temporal da unidade de NAL é menor do que ou igual a identificador temporal do ponto de operação, a unidade de NAL está associada com o ponto de operação. Uma representação de ponto de operação é um subconjunto de fluxo de bits que é associado com um ponto de operação. A representação de ponto de operação pode incluir cada unidade de NAL que está associada com o ponto de operação. A representação de ponto de operação não inclui unidades de NAL VCL que não estão associadas com o ponto de operação.
[0026] Uma fonte externa pode especificar um conjunto de identificadores de camada de destino para um ponto de operação. Por exemplo, um dispositivo, como um dispositivo de CDN ou um MANE, pode especificar o conjunto de identificadores de camada de destino. Neste exemplo, o dispositivo pode utilizar o conjunto de identificadores de camada de destino para identificar um ponto de operação. O dispositivo pode então extrair a representação de ponto de operação para o ponto de operação e encaminhar a representação de ponto de operação, em vez do fluxo de bits original, para um dispositivo de cliente. Extrair e encaminhar a representação de ponto de operação para o dispositivo de cliente pode reduzir a taxa de bits do fluxo de bits.
[0027] Além disso, padrões de codificação de vídeo especificam modelos de armazenamento em buffer de vídeo. Um modelo armazenamento em buffer de vídeo pode também ser referido como um "decodificador de referência hipotético" ou um "HRD." O HRD descreve como os dados devem ser armazenados em buffer para decodificação e como dados decodificados são armazenados em buffer para emissão. Por exemplo, o HRD descreve a operação de um buffer de imagem codificada ("CPB") e um buffer de imagem decodificada ("DPB") em um decodificador de vídeo. O CPB é um buffer first-in first-out contendo unidades de acesso em ordem de decodificação especificada pelo DRH. O DPB é um buffer que mantém imagens decodificadas para referência, reordenamento de emissão, ou retardo de emissão especificadas pelo DRH.
[0028] Um codificador de vídeo pode sinalizar um conjunto de parâmetros de DRH. Os parâmetros HRD controlam vários aspectos do DRH. Os parâmetros HRD incluem um retardo de remoção de CPB inicial, um tamanho de CPB, uma taxa de bits, um retardo de emissão de DPB inicial, e um tamanho de DPB. Estes parâmetros HRD são codificados em uma estrutura de sintaxe Hrd_parameters( ) especificada em um VPS e/ou um SPS. Os parâmetros HRD também podem ser especificados em uma mensagem de informação de reforço suplementar (SEI) de período de armazenamento em buffer ou uma mensagem de SEI de temporização de imagem.
[0029] Como explicado acima, uma operação de ponto de operação pode ter uma taxa de quadro diferente e/ou taxa de bits do que um fluxo de bits original. Isto é porque a representação de ponto de operação não pode incluir algumas imagens e/ou alguns dos dados do fluxo de bits original. Por isso, se o decodificador de vídeo remover dados do CPB e/ou do DPB a uma taxa particular, quando do processamento do fluxo de bits original e, se o decodificador de vídeo remover dados do CPB e/ou do DPB com a mesma taxa de processamento quando de uma representação de ponto de operação, o decodificador de vídeo pode remover muitos ou poucos dados do CPB e/ou do DPB. Deste modo, o codificador vídeo pode sinalizar diferentes conjuntos de parâmetros HRD para diferentes pontos de operação. Na emergente No padrão de Codificação de Vídeo de Alta Eficiência (HEVC), o codificador de vídeo pode sinalizar conjuntos de parâmetros HRD em um VPS ou o codificador de vídeo pode sinalizar conjuntos de parâmetros HRD em um SPS. Um rascunho do padrão HEVC futuro, referido como "Projeto de Trabalho 8 de HEVC" é descrito em Bross et al, "Codificação de Vídeo de Alta Eficiência (HEVC) text especification draft 8", Joint Collaborative Team on Video Codign (JCT-VC) de ITU-T SGI 6 WP3 e ISO/IEC JTC1/SC29/WG11, 10° Encontro, Estocolmo, Suécia, em julho de 2012, que a partir de 08 maio de 2013, está disponível em http: //phenix.int- evry.fr/jct/doc_end_user/documentos/10_Stockholm/WG11/JCTVC -J1003-v8.zip.
[0030] Em algumas versões de HEVC, apenas os conjuntos de parâmetros HRD no VPS são selecionados para operações de DRH. Isto é, embora os parâmetros HRD possam ser fornecidos em SPS, os conjuntos de parâmetros HRD no SPS não são selecionados por decodificadores de vídeo de HEVC para operações de DRH. Decodificadores de vídeo sempre analisam e decodificam o VPS de um fluxo de bits. Assim, decodificadores de vídeo sempre analisam e decodificam os conjuntos de parâmetros HRD do VPS. Isso é verdade independentemente de se o fluxo de bits inclui unidades de NAL de camada não-base. Assim, se o fluxo de bits inclui unidades de NAL de camada não-base, que pode ser um desperdício de recursos computacionais para analisar e lidar com os conjuntos de parâmetros HRD no SPS. Além disso, se os conjuntos de parâmetros HRD estão presentes no VPS, os conjuntos de parâmetros HRD no SPS podem ser bits desperdiçados.
[0031] De acordo com as técnicas desta divulgação, um codificador de vídeo pode gerar um fluxo de bits que inclui um SPS que é aplicável a uma sequência de imagens. O SPS inclui um conjunto de parâmetros de DRH. O conjunto de parâmetros HRD é aplicável a cada ponto de operação do fluxo de bits que tem um conjunto de identificadores de camada que correspondem a um conjunto de identificadores de camada de destino. Assim, os conjuntos de parâmetros HRD no SPS não são desperdiçados, mas pode ser utilizados para operações de RH. Por exemplo, um dispositivo pode selecionar, dentre um conjunto de parâmetros HRD em um VPS e um conjunto de parâmetros HRD em um SPS, um conjunto de parâmetros HRD aplicável a um ponto de operação particular. O dispositivo pode realizar, com base, pelo menos em parte, no conjunto de parâmetros HRD aplicável ao ponto de operação em particular, um teste de conformidade de fluxo de bits que testa se um subconjunto de fluxo de bits associado com o ponto de operação em particular está em conformidade com um padrão de codificação de vídeo.
[0032] Um dispositivo, tal como um codificador de vídeo, um decodificador de vídeo, ou outro tipo de dispositivo, tal como um dispositivo de CDN ou MANE, pode realizar um teste de conformidade de fluxo de bits em uma representação de ponto de operação para um ponto de operação. O teste de conformidade de fluxo de bits pode verificar que a representação de ponto de operação está em conformidade com um padrão de codificação de vídeo, como HEVC. Como mencionado acima, um conjunto de identificadores de camada de destino e um identificador temporal pode ser usado para identificar o ponto de operação. O conjunto de identificadores de camada de destino pode ser denotado como "TargetDecLayerldSet." O identificador temporal pode ser denotado como "TargetDecHighestTid." Problematicamente, Projeto de Trabalho 8 de HEVC não especifica como TargetDecLayerldSet ou TargetDecHighestTid são definidos ao realizar um teste de conformidade de fluxo de bits.
[0033] De acordo com uma ou mais técnicas desta divulgação, um dispositivo pode realizar um processo de decodificação, como parte da realização de um teste de conformidade de fluxo de bits. A realização do processo de decodificação compreende realizar um processo de extração fluxo de bits para decodificar, a partir de um fluxo de bits, uma representação de ponto de operação de um ponto de operação definido por um conjunto alvo de identificadores de camada e um identificador temporal maior alvo. O conjunto alvo de identificadores de camada (isto é, TargetDecLayerldSet) contém valores de elementos de sintaxe de identificador de camada (por exemplo, elementos de sintaxe nuh_reserved_zero_6bits) presentes na representação de ponto de operação. O conjunto alvo de identificadores de camada é um subconjunto de valores de elementos de sintaxe de identificador de camada de fluxo de bits. O identificador temporal maior alvo (isto é, TargetDecHighestTid) é igual a um identificador temporal grande presente na representação de ponto de operação. O identificador temporal maior alvo é menor do que ou igual a um identificador temporal grande presente no fluxo de bits. A realização do processo de decodificação pode também compreender decodificação de unidades de NAL da representação de ponto de operação.
[0034] Em HEVC, um SPS pode incluir uma matriz de elementos de sintaxe denotados como sps_max_dec_pic_buffering [i], onde i varia de 0 até o número máximo de camadas temporais no fluxo de bits. sps_max_dec_pic_buffering [i] indica que o tamanho máximo exigido do DPB quando um identificador temporal maior (HighestTid) é igual a i. sps_max_dec_pic_buffering [i] indica o tamanho desejado em termos de unidades de buffers de armazenamento de imagem.
[0035] Além disso, em HEVC, um SPS pode incluir uma matriz de elementos de sintaxe denotado sps_max_num_reorder_pics [i], onde i varia de 0 até o número máximo de camadas temporais no fluxo de bits. sps_max_num_reorder_pics [i] indica um número máximo permitido de imagens anteriores a qualquer imagem em ordem de decodificação e posterior àquela imagem em ordem de emissão quando o identificador temporal maior (HighestTid) é igual a i.
[0036] Em HEVC, um conjunto de parâmetros de DRH pode incluir uma matriz de elementos de sintaxe denotados cpb_cnt_minus1 [i], onde i varia de 0 até o número máximo de camadas temporais no fluxo de bits. cpb_cnt_minus1 [i] especifica o número de especificações de CPB alternativas no fluxo de bits da sequência de vídeo codificado quando um identificador temporal maior (HighestTid) é igual a i, em que uma especificação de CPB alternativa se refere a uma operação de CPB particular com um conjunto particular de parâmetros de CPB.
[0037] Em Projeto de Trabalho 8 de HEVC, sps_max_dec_pic_buffering [i], sps_max_num_reorder_pics [i], e cpb_cnt_minus1 [i] não são devidamente selecionados em operações de RH, operações de conformidade de fluxo de bits e restrições de nível. Isto é, pelo menos em parte, porque Projeto de Trabalho 8 de HEVC não especifica o que se entende pelo identificador temporal maior (HighestTid).
[0038] De acordo com uma ou mais técnicas desta divulgação, um dispositivo, tal como um codificador de vídeo, um decodificador de vídeo, ou outro dispositivo, pode determinar um identificador temporal maior de um subconjunto de fluxo de bits associado a um ponto de operação selecionado de um fluxo de bits. Além disso, o dispositivo pode determinar, com base no identificador temporal maior, um elemento de sintaxe particular dentre uma matriz de elementos de sintaxe (por exemplo, sps_max_dec_pic_buffering [], sps_max_num_reorder_pics [], ou cpb_cnt_minus1 []). O dispositivo pode realizar uma operação que utiliza o elemento de sintaxe particular para determinar a conformidade de fluxo de bits para um padrão de codificação de vídeo ou para determinar a conformidade de um decodificador de vídeo para o padrão de codificação de vídeo.
[0039] A figura 1 é um diagrama de blocos que ilustra um exemplo de sistema de codificação de vídeo 10 que pode utilizar as técnicas desta divulgação. Tal como aqui utilizado, o termo "codificador de vídeo" refere-se genericamente a ambos os codificadores de vídeo e decodificadores de vídeo. Nesta divulgação, os termos "codificação de vídeo" ou "codificação" podem referir-se genericamente a codificação de vídeo ou decodificação de vídeo.
[0040] Como mostrado na figura 1, sistema de codificação de vídeo 10 inclui um dispositivo de origem 12 e um dispositivo de destino. O dispositivo de origem 12 gera dados de vídeo codificados. Por conseguinte, o dispositivo de origem 12 pode ser referido como um dispositivo de codificação de vídeo ou um aparelho de codificação de vídeo. Dispositivo de destino 14 pode decodificar os dados de vídeo codificados, gerados pelo dispositivo de origem 12. Consequentemente, o dispositivo de destino 14 pode ser referido como um dispositivo de decodificação de vídeo ou um aparelho de decodificação vídeo. Dispositivo de origem 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.
[0041] Dispositivo de origem 12 e dispositivo de destino 14 podem incluir uma vasta gama de dispositivos, incluindo computadores desktop, dispositivos de computação móvel, computadores notebook (por exemplo, laptop), tablets, set-top boxes, aparelhos de telefone, tal como o invocado "smartphone", televisores, câmeras, dispositivos de exibição, reprodutores de mídia digital, consoles de videogame, computadores em carro, ou semelhante.
[0042] Dispositivo de destino 14 pode receber dados de vídeo codificados provenientes do dispositivo de origem 12 através de um canal 16. O canal 16 pode compreender uma ou mais mídias ou dispositivos capazes de mover os dados de vídeo codificados do dispositivo de origem 12 para o dispositivo de destino 14. Em um exemplo, o canal 16 pode incluir um ou mais meios de comunicação que permitem que dispositivo de origem 12 transmita dados de vídeo codificados diretamente para o dispositivo de destino 14 em tempo real. Neste exemplo, o dispositivo de origem 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 fio, e pode transmitir os dados de vídeo modulados para o dispositivo de destino 14. Os um ou mais meios de comunicação podem incluir meios de comunicação sem fio e/ou com fio, tais como um espectro de frequência de rádio (RF) ou uma ou mais linhas de transmissão físicas. Os um ou mais meios de comunicação podem formar parte de uma rede baseada em pacotes, tais como uma rede de área local, uma rede de área ampla, ou uma rede global (por exemplo, a Internet). Os um ou mais meios de comunicação podem incluir roteadores, comutadores, estações base, ou outros equipamentos que facilitam a comunicação de dispositivo de origem 12 para o dispositivo de destino 14.
[0043] Em outro exemplo, canal 16 pode incluir um meio de armazenamento que armazena dados codificados de vídeo gerados pelo dispositivo de origem 12. Neste exemplo, o dispositivo de destino 14 pode acessar o meio de armazenamento, por exemplo, através do acesso ao disco ou acesso ao cartão. O meio de armazenamento pode incluir uma variedade de meios de armazenamento de dados localmente acessados, tais como discos Blu-ray, DVDs, CD-ROMs, memória flash, ou outros meios de armazenamento digital adequados para o armazenamento de dados de vídeo codificados.
[0044] Em um outro exemplo, 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 origem 12. Neste exemplo, o dispositivo de destino 14 pode acessar dados de vídeo codificados armazenados no servidor de arquivos ou outro dispositivo de armazenamento intermediário via streaming ou download. 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 arquivos exemplarem incluem servidores de web (por exemplo, para um website), servidores de protocolo de transferência de arquivos (FTP), dispositivos de armazenamento anexados à rede (NAS), e unidades de disco locais. No exemplo da figura 1, o canal 16 inclui um dispositivo adicional 21. Em alguns exemplos, o dispositivo adicional 21 é um dispositivo de CDN, um MANE, ou outro tipo de dispositivo.
[0045] Dispositivo de destino 14 pode acessar os dados de vídeo codificados por meio de uma conexão de dados padrão, como uma conexão com a Internet. Tipos exemplares de conexões de dados podem incluir canais sem fio (por exemplo, conexões Wi-Fi), conexões com fio (por exemplo, linha de assinante digital (DSL), modem a cabo, etc.), ou combinações de ambos que são adequadas para o acesso a 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 arquivo pode ser uma transmissão de streaming, uma transmissão de download, ou uma combinação de ambos.
[0046] As técnicas desta divulgação não se limitam a aplicações ou configurações sem fio. As técnicas podem ser aplicadas a codificação de vídeo em apoio a uma variedade de aplicações multimídia, como transmissões de televisão através do ar, transmissões de televisão por cabo, transmissões de televisão por satélite, transmissões de vídeo por streaming, 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, sistema de codificação de vídeo 10 pode ser configurado para suportar transmissão de vídeo de uma via ou duas vias para suportar aplicações tais como streaming de vídeo, reprodução de vídeo, transmissão de vídeo e/ou vídeo telefonia.
[0047] A figura 1 é apenas um exemplo e as técnicas desta divulgação podem aplicar-se a configurações de codificação de vídeo (por exemplo, codificação de vídeo ou decodificação de vídeo) que não necessariamente incluem 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, transmitidos através de uma rede, ou algo semelhante. Um dispositivo de codificação de vídeo pode codificar e armazenar dados na memória, e/ou um dispositivo de decodificação de vídeo pode recuperar e decodificar os dados da memória. Em muitos exemplos, a codificação e decodificação são realizadas por meio de dispositivos que não se comunicam um com o outro, mas simplesmente codificam dados para a memória e/ou recuperam e decodificam dados a partir da memória.
[0048] No exemplo da figura 1, o dispositivo de origem 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 interface de saída 22 pode inclui um modulador / demodulador (modem) e/ou um transmissor. Fonte de vídeo 18 pode incluir um dispositivo de captura de vídeo, por exemplo, uma câmera de vídeo, um arquivo de vídeo que contém dados de vídeo capturados 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.
[0049] O codificador de vídeo 20 pode codificar dados de vídeo a partir de fonte de vídeo 18. Em alguns exemplos, dispositivo de origem 12 transmite diretamente os dados de vídeo codificados para o dispositivo de destino 14 via 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.
[0050] No exemplo da figura 1, o dispositivo de destino 14 inclui uma interface de entrada 28, um decodificador de vídeo 30, e um dispositivo de exibiçã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 sobre o canal 16. O dispositivo de exibição 32 pode ser integrado ou pode ser externo ao dispositivo de destino 14. Em geral, o dispositivo de exibição 32 exibe dados de vídeo decodificados. O dispositivo de vídeo 32 pode incluir uma variedade de dispositivos de exibição, tais como uma tela de cristal líquido (LCD), uma tela de plasma, uma tela de diodo emissor de luz orgânica (OLED), ou outro tipo de dispositivo de exibição.
[0051] O codificador de vídeo 20 e o decodificador de vídeo 30 cada um pode ser implementado como qualquer um de uma variedade de circuitos adequados, tais como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjo de porta programável em campo (FPGA), lógica discreta, hardware, ou quaisquer combinações. Se as técnicas são parcialmente implementadas em software, um dispositivo pode armazenar instruções para o software em um meio de armazenamento não transitório legível por computador adequado, e pode realizar as instruções em hardware usando um ou mais processadores para realizar as técnicas desta divulgação. Qualquer um dos anteriores (incluindo o hardware, software, uma combinação de hardware e software, etc.) pode ser considerado um ou mais processadores. Cada um do 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 / decodificador combinado (CODEC) em um respectivo dispositivo.
[0052] Essa divulgação pode geralmente se referir ao codificador de vídeo 20 "sinalizando" certas informações para outro dispositivo, como um decodificador de vídeo 30 ou dispositivo adicional 21. O termo "sinalização" pode geralmente se referir à comunicação dos elementos de sintaxe e/ou outros dados utilizados para decodificar os dados de vídeo comprimidos. Essa comunicação pode ocorrer em tempo quase real ou real. Alternativamente, tal comunicação pode ocorrer ao longo de um período de tempo, tal como pode ocorrer quando ao armazenar elementos de sintaxe em meio armazenamento legível por computador, em um fluxo de bits codificado, no momento da codificação, que pode então ser recuperado por um dispositivo de decodificação, em qualquer momento após ser armazenado neste meio.
[0053] Em alguns exemplos, codificador de vídeo 20 e decodificador de vídeo 30 funcionam de acordo com um padrão de compressão de vídeo, tais como ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC), incluindo a sua extensão de Codificação de Vídeo Escalonável (SVC), extensão de Codificação de Vídeo Multivista (MVC), e/ou extensão 3DV baseada em MVC. Em alguns casos, qualquer fluxo de bits em conformidade com 3DV com base em MVC sempre contém um subfluxo de bits que é compatível com um perfil de MVC, por exemplo, o perfil de alta estéreo. Além disso, há um esforço contínuo para gerar uma extensão de codificação de vídeo tridimensional (3DV) para H.264 / AVC, ou seja, com base em AVC 3DV. Em outros exemplos, codificador de vídeo 20 e o decodificador de vídeo 30 pode funcionar de acordo com a ITU-T H.261, ISO / IEC MPEG-1 Visual, ITU-T H.262 ou ISO / IEC MPEG-2 Visual, ITU-T H. 263, ISO / IEC MPEG-4 Visual, e ITU-T H.264, ISO / IEC Visual.
[0054] Em outros exemplos, codificador de vídeo 20 e decodificador de vídeo 30 podem operar de acordo com o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento pela Equipe de Colaboração Conjunta sobre codificação de vídeo (JCT-VC) do ITU-T Video Coding Experts Group (VCEG) e ISO / IEC Motion Picture Experts Group (MPEG). O rascunho do padrão HEVC futuro, conhecido como "Projeto de Trabalho HEVC 9" é descrito em Bross et al, "High Efficiency Video Coding (HEVC) text specification draft 9", Joint Collaborative Team on Video Coding (JCT-VC) de ITU-T SG16 WP3 e ISO / IEC JTC1 / SC29 / WG11, 11° Encontro, Shanghai, China, em outubro de 2012, que a partir de 08 maio de 2013, está disponível a partir de http://phenix.int- evry.fr/jct/docenduser/documents/11Shanghai/WG11/JCTVC- K1003-V 13.zip. Além disso, há esforços em curso para produzir SVC, codificação de multivista, e extensões 3DV para HEVC. A extensão 3DV de HEVC pode ser referida como 3DV baseado em HEVC ou 3D-HEVC.
[0055] Em HEVC e outros padrões de codificação de vídeo, uma sequência de vídeo, normalmente inclui uma série de imagens. As imagens também podem ser referidas como "quadros". A imagem pode incluir três matrizes de amostra, denotado SL, SCb e SCr é uma matriz bidimensional (ou seja, um bloco) de amostras de luminância. SCb é uma matriz bidimensional de amostras de crominância Cb. SCr é uma matriz bidimensional de amostras de crominância Cr. Amostras de crominância também podem ser aqui referidas como amostras de "croma". Em outros casos, a imagem pode ser monocromática e só pode incluir uma variedade de amostras de luminância.
[0056] Para gerar uma representação codificada de uma imagem, codificador de vídeo 20 pode gerar um conjunto de unidades de árvore de codificação (CTU). Cada uma das CTUs pode ser um bloco de árvore de codificação de amostras de luminância, dois blocos de árvore de codificação correspondentes de amostras de crominância, e estruturas de sintaxe utilizadas para codificar as amostras de blocos de árvores de codificação. Um bloco de árvore de codificação pode ser um bloco NxN de amostras. Uma CTU pode também ser referida como um "bloco de árvore" ou uma "unidade de codificação maior" (LCU). A CTU de HEVC pode ser amplamente análoga aos macroblocos das outras normas, 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 ordenadas consecutivamente em uma varredura de raster.
[0057] Para gerar uma CTU codificada, codificador de vídeo 20 pode de forma recursiva realizar o particionamento quad-tree sobre os blocos de árvores de codificação de uma CTU para dividir o bloco da árvore de codificação em blocos de codificação, daí o nome "unidades de árvore de codificação". Um bloco de codificação é um bloco NxN de amostras. Uma CU pode ser um bloco de codificação de amostras de luminância e dois blocos de codificação correspondentes de amostras de crominância de uma imagem que tem uma matriz de amostra de luminância, uma matriz de amostra de Cb e uma matriz de amostra de Cr, e estruturas de sintaxe utilizadas para codificar as amostras de blocos de codificação. Codificador de vídeo 20 pode particionar blocos de codificação de uma CU em um ou mais blocos de predição. Um bloco de predição pode ser um bloco retangular (isto é, quadrado ou não quadrado) de amostras em que a mesma predição é aplicada. Uma unidade de predição (PU) de uma CU pode ser um bloco de predição de amostras de luminância, dois blocos de predição de amostras correspondentes de croma de uma imagem, e as estruturas de sintaxe usadas para predizer as amostras de blocos de predição. Codificador de vídeo 20 pode gerar luma preditiva, blocos Cb e Cr para luma, blocos de predição Cb e Cr de cada PU da CU.
[0058] Codificador de vídeo 20 pode utilizar a intrapredição ou interpredição para gerar os blocos preditivos para a PU. Se o codificador de vídeo 20 usa intrapredição para gerar os blocos preditivos de uma PU, codificador de vídeo 20 pode gerar os blocos preditivos da PU com base em amostras decodificadas da imagem associada a PU.
[0059] Se o codificador de vídeo 20 usa interpredição para gerar os blocos preditivos de uma PU, codificador de vídeo 20 pode gerar os blocos preditivos da PU com base em amostras decodificadas de uma ou mais imagens diferentes da imagem associada a PU. Codificador de vídeo 20 pode utilizar unipredição ou bipredição para gerar os blocos preditivos de uma PU. Quando o codificador de vídeo 20 usa unipredição para gerar os blocos preditivos para a PU, a PU pode ter um único vetor de movimento. Quando o codificador de vídeo 20 usa bipredição para gerar os blocos preditivos para a PU, a PU pode ter dois vetores de movimento.
[0060] Depois de o codificador de vídeo 20 gerar luma preditiva, blocos Cb e Cr para uma ou mais de PUs de uma CU, codificador de vídeo 20 pode gerar um bloco residual de luma para a CU. Cada amostra no bloco residual de luma da CU indica uma diferença entre uma amostra luma em um dos blocos de luma preditiva da CU e uma amostra correspondente no bloco de codificação luma original da CU. Além disso, o codificador de vídeo 20 pode gerar um bloco residual Cb para a CU. Cada amostra no bloco residual de Cb da CU pode indicar uma diferença entre uma amostra Cb em um dos blocos Cb preditivos da CU e uma amostra correspondente no bloco de codificação de Cb original da CU. O codificador de vídeo 20 pode também gerar um bloco residual Cr para a CU. Cada amostra no bloco residual de Cr da CU pode indicar uma diferença entre uma amostra de Cr em um dos blocos de Cr preditivos da CU e uma amostra correspondente no bloco de codificação de Cr original da CU.
[0061] Além disso, o codificador de vídeo 20 pode utilizar o particionamento quad-tree para decompor os blocos residuais luma, Cb e Cr de uma CU em um ou mais blocos de transformada de luma, Cb e Cr. Um bloco de transformada pode ser um bloco retangular de amostras em que a mesma transformada é aplicada. Uma unidade de transformada (TU) de uma CU pode ser um bloco de transformada de amostras de luminância, dois blocos de transformada correspondente de amostras de crominância, e estruturas de sintaxe usadas para transformar as amostras de bloco de transformada. Assim, cada TU de uma CU pode ser associada com um bloco de transformada de luminância, um bloco de transformada de Cb, e um bloco de transformada de Cr. O bloco de transformada de luma associado a TU pode ser um sub-bloco do bloco residual de luma da CU. O bloco de transformada de Cb pode ser um sub-bloco do bloco residual de Cb da CU. O bloco de transformada de Cr pode ser um sub-bloco do bloco residual de Cr da CU.
[0062] O codificador de vídeo 20 pode aplicar uma ou mais transformadas para os blocos de transformada de luma de uma TU para gerar um bloco de coeficientes de luma para a TU. Um bloco de coeficientes pode ser uma matriz bidimensional de coeficientes de transformada. Um coeficiente de transformada pode ser uma quantidade escalar. Codificador de vídeo 20 pode aplicar uma ou mais transformadas para blocos de transformada de Cb de uma TU para gerar um bloco de coeficientes de Cb para a TU. Codificador de vídeo 20 pode aplicar uma ou mais transformadas para os blocos de transformada de Cr de uma TU para gerar um bloco de coeficientes de Cr para a TU.
[0063] Depois de gerar um bloco de coeficientes (por exemplo, um bloco de coeficientes de luma, um bloco de coeficientes de Cb ou um bloco de coeficiente 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 utilizada para representar os coeficientes de transformada, proporcionando a compressão adicional. Depois de codificador de vídeo 20 quantificar um bloco de coeficientes, codificador de vídeo 20 pode codificar por entropia elementos de sintaxe que indicam os coeficientes de transformada quantificados. Por exemplo, o codificador de vídeo 20 pode realizar Codificação Aritmética Binária Adaptativa de Contexto (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.
[0064] Codificador de vídeo 20 pode emitir um fluxo de bits que inclui 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). Uma unidade de NAL pode ser uma estrutura de sintaxe contendo uma indicação do tipo de dados a seguir e os bytes que contêm dados sob a forma de uma carga útil de sequência de bytes em bruto (RBSP) intercalados como necessário com bytes de prevenção de emulação. Isto é, cada uma das unidades de NAL pode incluir um cabeçalho de unidade de NAL e encapsular um RBSP. O cabeçalho de unidade de NAL pode incluir um elemento de sintaxe que indica um código de nal_unit_type. O código do nal_unit_type especificado pelo cabeçalho de uma unidade de NAL indica o tipo da unidade de NAL. Um RBSP pode ser uma estrutura de sintaxe contendo um número inteiro de bytes que se encontra encapsulado no interior de uma unidade de NAL. Em alguns casos, um RBSP inclui zero bits.
[0065] Diferentes tipos de unidades de NAL podem encapsular diferentes tipos de RBSPs. Por exemplo, um primeiro nal_unit_type pode encapsular uma RBSP em um conjunto de parâmetros de imagem (PPS), um segundo nal_unit_type pode encapsular uma RBSP em uma fatia codificada, um terceiro nal_unit_type pode encapsular uma RBSP em SEI, e assim por diante. Unidades de NAL que encapsulam RBSPs para dados de codificação de vídeo (em oposição a RBSPs para conjuntos de parâmetros e mensagens SEI) podem ser referidas como unidades de NAL de camada de codificação de vídeo (VCL).
[0066] O decodificador de vídeo 30 pode receber um fluxo de bits gerado pelo codificador de vídeo 20. Além disso, o decodificador de vídeo 30 pode analisar o fluxo de bits para decodificar os elementos de sintaxe provenientes do fluxo de bits. Decodificador de vídeo 30 pode reconstruir as imagens dos dados de vídeo com base, pelo menos, em parte, nos elementos de sintaxe decodificados a partir do fluxo de bits. O processo para reconstruir os dados de vídeo pode ser geralmente recíproco ao processo realizado pelo codificador de vídeo 20. Por exemplo, decodificador de vídeo 30 pode utilizar vetores de movimento de PUs para determinar os blocos preditivos para as PUs de uma CU atual. Além disso, o decodificador de vídeo 30 pode quantizar inversamente blocos de coeficiente de transformada associados a TUs da CU atual. O decodificador de vídeo 30 pode realizar transformadas inversas nos blocos de coeficiente de transformada para reconstruir blocos de transformada associados a 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 PUs da CU atual para as amostras correspondentes de blocos de transformada das TUs da CU atual. Ao reconstruir os blocos de codificação para cada CU de uma imagem, decodificador de vídeo 30 pode reconstruir a imagem.
[0067] Em codificação de multivista, pode haver múltiplas vistas da mesma cena a partir de diferentes pontos de vista. O termo "unidade de acesso" é utilizado para se referir ao conjunto de imagens que correspondem ao mesmo instante de tempo. Assim, os dados de vídeo podem 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. Nesta divulgação, uma "vista" pode se referir a uma sequência de componentes de vista associada ao mesmo identificador de vista.
[0068] Codificação de multivista suporta predição intervista. Predição intervista é semelhante a interpredição usada em H.264 / AVC e HEVC e pode usar os mesmos elementos de sintaxe. No entanto, quando um codificador de vídeo realiza a predição intervista sobre uma unidade de vídeo atual (tal como uma PU), o codificador de vídeo 20 pode utilizar, como imagem de referência, uma imagem que está na mesma unidade de acesso que a unidade de vídeo atual, mas em uma vista diferente. Em contraste, interpredição convencional utiliza apenas imagens em diferentes unidades de acesso como imagens de referência.
[0069] Em codificação de multivista, a vista pode ser referida como uma "vista de base" se um decodificador de vídeo (por exemplo, decodificador de vídeo 30) puder decodificar imagens na vista sem referência a imagens em qualquer outra vista. Ao codificar uma imagem em um das vista não-base, um codificador de vídeo (como o codificador de vídeo 20 ou decodificador de vídeo 30) pode adicionar uma imagem em uma lista de imagens de referência se a imagem estiver em uma vista diferente, mas dentro de uma mesma instância tempo (ou seja unidade de acesso) que a imagem que o codificador de vídeo está atualmente codificando. Como outras imagens de referência de interpredição, o codificador de vídeo pode inserir uma imagem de referência de predição intervista em qualquer posição de uma lista de imagens de referência.
[0070] Padrões de codificação de vídeo especificam modelos de armazenamento em buffer de vídeo. Em H.264 / AVC e HEVC, um modelo de armazenamento em buffer é referido como um "decodificador de referência hipotético" ou "HRD." Em Projeto de Trabalho 8 de HEVC, o HRD é descrito no Anexo C.
[0071] O HRD descreve como os dados devem ser armazenados em buffer para decodificação e como dados decodificados são armazenados em buffer para emissão. Por exemplo, o HRD descreve a operação de um buffer de imagem codificada ("CPB"), um buffer de imagem decodificada ("DPB"), e um decodificador de vídeo. O CPB é um buffer first-in first-out contendo unidades de acesso em uma ordem de decodificação especificada pelo DRH. O DPB é um buffer que mantém imagens decodificadas para referência, emite reordenamento, ou emite retardo especificado pelo DRH. Os comportamentos do CPB e DPB podem ser matematicamente especificados. O HRD pode impor restrições diretamente em temporização, tamanhos de buffer, e taxas de bits. Além disso, a HRD pode indiretamente impor restrições sobre várias características e estatísticas de fluxo de bits.
[0072] Em H.264 / AVC e HEVC, conformidade de fluxo de bits e conformidade de decodificador são especificadas como partes da especificação de HRD. Em outras palavras, o modelo HRD especifica testes para determinar se um fluxo de bits corresponde a um padrão e testes para determinar se um decodificador está em conformidade com o padrão. Embora o HRD seja nomeado algum tipo de decodificador, codificadores de vídeo normalmente usam o HRD para garantir a conformidade de fluxo de bits, enquanto decodificadores de vídeo, normalmente, não precisam de DRH.
[0073] Ambos H.264 / AVC e HEVC especificam dois tipos de conformidade de fluxo de bits ou HRD, a saber tipo I e tipo II. Um fluxo de bits Tipo I é um fluxo de unidade de NAL contendo apenas as unidades de NAL VCL e unidade de NAL de dados preenchedores para todas as unidades de acesso no fluxo de bits. Um fluxo de bits do tipo II é um fluxo de unidade de NAL que contém, além das unidades de NAL VCL e unidades de NAL de dados preenchedores para todas as unidades de acesso no fluxo de bits, pelo menos, uma das seguintes: unidades de NAL não VCL adicionais diferentes das unidades de NAL de dados preenchedores; e todos os elementos de sintaxe leading_zero_8bits, zero_bytes, start_coded_prefix_one_3bytes, e trailing_zero_8bits que formam um fluxo de bytes a partir do fluxo de unidade de NAL.
[0074] Quando um dispositivo realiza um teste de conformidade de fluxo de bits que determina se um fluxo de bits está em conformidade com um padrão de codificação de vídeo, o dispositivo pode selecionar um ponto de operação do fluxo de bits. Em seguida, o dispositivo pode determinar um conjunto de parâmetros HRD aplicável ao ponto de operação selecionado. O dispositivo pode utilizar o conjunto de parâmetros HRD aplicável para o ponto de operação selecionado para configurar o comportamento do DRH. Mais particularmente, o dispositivo pode utilizar o conjunto de parâmetros HRD aplicável para configurar o comportamento de componentes particulares do HRD, tal como um programador de fluxo hipotético (HSS), o CPB, um processo de decodificação, o DPB, e assim por diante. Subsequentemente, o HSS pode injetar dados de vídeo codificado do fluxo de bits no CPB do HRD de acordo com um programa específico.
[0075] Além disso, o dispositivo pode invocar um processo de decodificação que decodifica os dados de vídeo codificado no CPB. O processo de decodificação pode emitir imagens decodificadas para o DPB. Como os movimentos do dispositivo de dados através do 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 CPB ou DPB enquanto o HRD está decodificando a representação de ponto de operação do ponto de operação selecionado. O dispositivo pode selecionar e processar cada ponto de operação da sequência de bits 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 codificação de vídeo.
[0076] Ambos H.264 / AVC e HEVC especificam dois tipos de conformidade de decodificador, ou seja, emite conformidade de decodificador de temporização e emite ordem de conformidade de decodificador. Um decodificador alegando conformidade com um perfil específico, camada e nível é capaz de decodificar com sucesso todos os fluxos de bits que estão em conformidade com os requisitos de conformidade de fluxo de bits de um padrão de codificação de vídeo, tais como HEVC. Nesta divulgação, um "perfil" pode referir-se a um subconjunto da sintaxe de fluxo de bits. "Camadas" e "níveis" podem ser especificados dentro de cada perfil. O nível de uma ordem pode ser um conjunto específico de restrições impostas aos valores dos elementos de sintaxe no fluxo de bits. Estas restrições podem ser limites simples sobre valores. Em alternativa, elas podem assumir a forma de restrições sobre combinações aritméticas dos valores (por exemplo, largura de imagem multiplicada pela altura de imagem multiplicada pelo número de imagens decodificadas por segundo). Um nível especificado para um nível inferior é mais limitado do que um nível especificado para um nível mais elevado.
[0077] Quando um dispositivo realiza um teste de conformidade de decodificador para determinar se um decodificador sob teste (DUT) se conforma com um padrão de codificação de vídeo, o dispositivo pode fornecer ambos o HRD o DUT e um fluxo de bits 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 teste de conformidade de fluxo de bits. 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 emitidas pelo DUT combina com a ordem de imagens decodificadas emitidas 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 a temporização com que o DUT emite imagens decodificadas corresponde a temporização com a qual o HRD emite imagens decodificadas.
[0078] Além de testes de conformidade de fluxo de bits e testes de conformidade de decodificador, os dispositivos podem usar parâmetros HRD para outros fins. Por exemplo, os retardos de remoção de CPB iniciais podem ser usados para guiar um sistema para estabelecer um retardo end-to-end inicial apropriado e os tempos de emissão de DPB podem ser usados para derivar de marcas de tempo de protocolo em tempo real (RTP) quando fluxo de bits de dados de vídeo é transportado através de RTP.
[0079] Nos modelos H.264 / AVC e HEVC HRD, decodificação ou remoção de CPB pode ser baseado em unidade de acesso. Isto é, o DRH é assumido para decodificar unidades de acesso completo de uma só vez e remover unidades de acesso completo do CPB. Além disso, nos modelos H.264 / AVC e HEVC HRD, supõe-se que decodificação de imagem seja instantânea. Codificador de vídeo 20 pode sinalizar, em mensagens SEI de temporização de imagem, os tempos de decodificação para começar a decodificação de unidades de acesso. Em aplicações práticas, se um decodificador de vídeo em conformidade segue estritamente os tempos de decodificação sinalizados para iniciar a decodificação de unidades de acesso, o tempo mais anterior possível para emitir uma imagem decodificada particular é igual ao tempo de decodificação daquela imagem particular mais o tempo necessário para a decodificação daquela imagem particular. Contudo, no mundo real, o tempo necessário para a decodificação de uma imagem não pode ser igual a zero.
[0080] Parâmetros HRD podem controlar vários aspectos do HRD. Em outras palavras, o HRD pode contar com os parâmetros HRD. Os parâmetros HRD podem incluir um retardo de remoção de CPB inicial, um tamanho de CPB, uma taxa de bits, um retardo de emissão de DPB inicial, 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 conjunto de parâmetros de vídeo (VPS) e/ou um conjunto de parâmetros de sequência (SPS). VPS individual e/ou SPS pode incluir várias estruturas de sintaxe hrd_parameters () para diferentes conjuntos de parâmetros de DRH. Em alguns exemplos, codificador de vídeo 20 pode sinalizar parâmetros HRD em mensagens SEI de período de armazenamento em buffer ou mensagens SEI de temporização de imagem.
[0081] Conforme explicado acima, um ponto de operação de um fluxo de bits está associado com um conjunto de identificadores de camada (isto é, um conjunto de valores nuh_reserved_zero_6bits) e um identificador temporal. Uma representação de ponto de operação pode incluir cada unidade de NAL que está associada com o ponto de operação. Uma representação de ponto de operação pode ter uma taxa de quadro diferente e/ou taxa de bits do que um fluxo de bits original. Isto é porque a representação de ponto de operação não pode incluir algumas imagens e/ou alguns dos dados do fluxo de bits original. Assim, se o decodificador de vídeo 30 era para remover dados do CPB e/ou o DPB a uma taxa particular ao processar o fluxo de bits original e se o decodificador de vídeo 30 era para remover dados do CPB e/ou do DPB no mesmo ritmo durante o processamento de uma representação de ponto de operação, decodificador de vídeo 30 pode remover muitos dados ou poucos dados do CPB e/ou do DPB. Assim, codificador de vídeo 20 pode sinalizar diferentes conjuntos de parâmetros HRD para diferentes pontos de operação. Por exemplo, codificador de vídeo 20 pode incluir, em um VPS, várias estruturas de sintaxe hrd_parameters () que incluem parâmetros HRD para diferentes pontos de operação.
[0082] Em Projeto de Trabalho 8 de HEVC, o conjunto de parâmetros HRD inclui opcionalmente um conjunto de informações que é comum para todas as subcamadas. Em outras palavras, o conjunto de parâmetros HRD pode incluir opcionalmente uma matriz de elementos de sintaxe comuns que são aplicáveis aos pontos de operação, que incluem quaisquer subcamadas temporais. Uma subcamada temporal é uma camada escalável temporal de um fluxo de bits escalável temporal, que consiste em unidades de NAL VCL com um determinado valor de Temporalld e as unidades de NAL não-VCL associadas. Além do conjunto de informação comum, os conjuntos de parâmetros HRD podem incluir uma matriz de elementos de sintaxe que são específicos para subcamadas temporais individuais. Por exemplo, a estrutura de sintaxe hrd_parameters () pode incluir opcionalmente um conjunto de informação que é comum para todas as subcamadas e sempre inclui informações específicas da subcamada. Uma vez que o conjunto de informações comuns é comum a vários conjuntos de parâmetros HRD, pode não ser necessário sinalizar o conjunto de informações comuns em vários conjuntos de parâmetros HRD. Pelo contrário, no Projeto de Trabalho 8 de HEVC, as informações comuns podem estar presentes em um conjunto de parâmetros HRD quando o conjunto de parâmetros HRD é o primeiro conjunto de parâmetros HRD em um VPS ou as informações comuns podem estar presentes em um conjunto de parâmetros HRD quando o conjunto de parâmetros HRD está associado com o primeiro índice de ponto de operação. Por exemplo, Projeto de Trabalho 8 de HEVC suporta a presença de informações comuns quando ou a estrutura de sintaxe hrd_parameters () é a primeira estrutura de sintaxe hrd_parameters () no VPS ou quando a estrutura de sintaxe hrd_parameters () está associada com um primeiro ponto de operação.
[0083] Tabela 1, abaixo, é uma estrutura de sintaxe exemplar para a estrutura de sintaxe hrd_parameters () em HEVC. TABELA 1 - Parâmetros HRD
Figure img0001
Figure img0002
Figure img0003
[0084] No exemplo da Tabela 1, acima, e outras tabelas de sintaxe desta divulgação, os elementos de sintaxe com o descritor de tipo ue(v) pode ser inteiros de comprimento variável não sinalizados codificados usando 0- ésima ordem exponencial Golomb (Exp-Golomb) codificando com primeiro bit esquerdo. No exemplo da Tabela 1 e as tabelas seguintes, os elementos de sintaxe tendo descritores de forma u(n), onde n é um número inteiro não negativo, são valores não sinalizados de comprimento n.
[0085] No exemplo de sintaxe da Tabela 1, os elementos de sintaxe no "se (commonlnfPresentFlag) {...} "bloco são as informações comuns dos conjuntos de parâmetros HRD. Em outras palavras, a informação comum do conjunto de parâmetros HRD pode incluir os elementos de sintaxe timing_info_present_flag, num_units_in_tick, time_scale, nal_hrd_parameters_present_flag, vcl_hrd_parameters_present_flag, sub_pic_cpb_params_present_flag, tick_divisor_minus2, du_cpb_removal_delay_length_minus1, bit_rate_scale, cpb_size_scale, initial_cpb_removal_delay_length_minus1, cpb_removal_delay_length_minus1, and dpb_output_delay_length_minus1.
[0086] Além disso, no exemplo da Tabela 1, os elementos de sintaxe fixed_pic_rate_flag[i], pic_duration_in_tc_minus1[i], low_delay_hrd_flag[i], and cpb_cnt_minus1[i] podem ser um conjunto de parâmetros HRD específicos de subcamada. Em outras palavras, este elemento de sintaxe da estrutura de sintaxe hrd_parameters () só pode ser aplicado a pontos de operação, que incluem uma subcamada específica. Assim, os parâmetros HRD de uma estrutura de sintaxe hrd_parameters () podem incluir, além da informação comum opcionalmente incluída, um conjunto de parâmetros HRD específico de subcamadas, que é específico para uma subcamada em particular do fluxo de bits.
[0087] O elemento de sintaxe fixed_pic_rate_flag [i] pode indicar que, quando HighestTid é igual a i, a distância temporal entre os tempos de emissão de HRD de quaisquer duas imagens consecutivas na ordem de emissão é limitada uma maneira específica. HighestTid pode ser uma variável que identifica uma maior subcamada temporal (por exemplo, de um ponto de operação). O elemento de sintaxe pic_duration_in_tc_minus1 [i] pode especificar, quando HighestTid é igual a i, a distância temporal, em ticks de relógio, entre os tempos de emissão de HRD de quaisquer imagens consecutivas na ordem de emissão na sequência de vídeo codificado. O elemento de sintaxe low_delay_hrd_flag [i] pode especificar o modo de operação de HRD, quando HighestTid é igual a i, conforme especificado no anexo C do Projeto de Trabalho 8 de HEVC. O elemento de sintaxe cpb_cnt_minus1 [i] pode especificar o número de especificações de CPB alternativas no fluxo de bits da sequência de vídeo codificado quando HighestTid é igual a i.
[0088] O codificador de vídeo 20 pode utilizar mensagens SEI para incluir, no fluxo de bits, metadados que não são necessários para a correta decodificação dos valores de amostras de imagens. No entanto, decodificador de vídeo 30 ou outros dispositivos podem utilizar os metadados incluídos nas mensagens SEI para vários outros fins. Por exemplo, decodificador de vídeo 30 pode utilizar os metadados em mensagens SEI para temporização de emissão de imagem, exibição de imagem, detecção de perda, e ocultação de erro.
[0089] O codificador de vídeo 20 pode incluir uma ou mais unidades de NAL SEI em uma unidade de acesso. Em outras palavras, qualquer número de unidades de NAL SEI pode ser associado a uma unidade de acesso. Além disso, cada unidade de NAL SEI pode conter uma ou mais mensagens de SEI. O padrão HEVC descreve a sintaxe e semântica para vários tipos de mensagens SEI. No entanto, o padrão HEVC não descreve o manuseio das mensagens SEI porque as mensagens SEI não afetam o processo de decodificação normativa. Uma das razões ter mensagens SEI no padrão HEVC é permitir que dados adicionais sejam interpretados de forma idêntica em diferentes sistemas usando HEVC. Especificações e sistemas que utilizam HEVC podem exigir codificadores de vídeo para gerar certas mensagens SEI ou pode definir um tratamento específico de tipos particulares de mensagens SEI recebidas. A Tabela 2, abaixo, lista as mensagens SEI especificadas em HEVC e descreve brevemente os seus fins. TABELA 2 - Vista Geral de Mensagens SEI
Figure img0004
Figure img0005
Figure img0006
[0090] Há vários problemas ou deficiências com as técnicas existentes para a sinalização de parâmetros HRD e seleção de parâmetros HRD e outros parâmetros. Por exemplo, em Projeto de Trabalho 8 de HEVC, apenas os conjuntos de parâmetros HRD nos VPS são selecionados para operações de DRH. Ou seja, embora os parâmetros HRD possam ser fornecidos em SPS, os conjuntos de parâmetros HRD em SPS não são selecionados por decodificadores de vídeo HEVC para operações de DRH. Decodificadores de vídeo sempre analisam e decodificam os VPS de um fluxo de bits. Assim, decodificadores de vídeo sempre analisam e decodificam os conjuntos de parâmetros HRD do VPS.
[0091] Isto é verdade, independentemente de o fluxo de bits incluir unidades de NAL de camada não-base. Por exemplo, apenas a estrutura de sintaxe hrd_parameters () codificada no VPS pode ser selecionada para operações de RH, e estrutura de sintaxe hrd_parameters () possivelmente presente no SPS nunca pode ser selecionada. Isso pode exigir a análise e manipulação do VPS, mesmo quando a decodificação de um fluxo de bits que não contém nuh_reserved_zero_6bits maior que 0 (isto é, a fluxo de bits contém apenas a camada de base em uma multivista, 3DV, ou extensão SVC de HEVC).
[0092] Assim, se o fluxo de bits inclui unidades de NAL de camada não-base, isto pode ser um desperdício de recursos computacionais para analisar e lidar com os conjuntos de parâmetros HRD no SPS. Além disso, se os conjuntos de parâmetros HRD estão presentes no VPS, os conjuntos de parâmetros HRD em SPS podem ser bits desperdiçados. Por exemplo, se uma estrutura de sintaxe hrd_parameters () está presente no SPS, os bits codificados para a estrutura de sintaxe podem ser meramente um desperdício de bits.
[0093] De acordo com uma ou mais das técnicas da presente divulgação, o codificador de vídeo 20 pode gerar um fluxo de bits que inclui um SPS que é aplicável a uma sequência de imagens. O SPS inclui um conjunto de parâmetros de DRH. O conjunto de parâmetros HRD é aplicável a cada ponto de operação do fluxo de bits que tem um conjunto de identificadores de camada que corresponde a um conjunto de identificadores de camada de destino. Assim, os conjuntos de parâmetros HRD no SPS não são desperdiçados, mas podem ser utilizados para operações de RH. Por exemplo, a pontos de operação para que aquela estrutura de sintaxe hrd_parameters () codificada em um SPS que pode ser claramente especificada, por exemplo, para ser os pontos de operação para os quais apenas um valor de nuh_reserved_zero_6bits (ou seja, ID de camada em uma multivista, 3DV ou extensão de codificação de vídeo expansível) está presente no fluxo de bits.
[0094] Por exemplo, um dispositivo, como codificador de vídeo 20 ou decodificador de vídeo 30, pode selecionar, dentre um conjunto de parâmetros HRD em um conjunto de parâmetros de vídeo e um conjunto de parâmetros HRD em um SPS, um conjunto de parâmetros HRD aplicável a um ponto de operação particular. Neste exemplo, o dispositivo pode realizar, com base, pelo menos em parte, no conjunto de parâmetros HRD aplicável para o ponto de operação em particular, um teste de conformidade de fluxo de bits que testa se um subconjunto de fluxo de bits associado com o ponto de operação particular está em conformidade com um padrão de codificação de vídeo. O teste de conformidade de fluxo de bits pode verificar que a representação de ponto de operação está em conformidade com um padrão de codificação de vídeo, como HEVC.
[0095] Nesta divulgação, um ponto de operação pode ser identificado por um conjunto de valores nuh_reserved_zero_6bits, denotados como OpLayerldSet, e um valor Temporalld, denotado como OpTid. O subconjunto de fluxo de bits associado derivado a partir da saída do processo de extração de subfluxo de bits, conforme especificado na subcláusula 10.1 do Projeto de Trabalho 8 de HEVC com OpTid e OpLayerldSet como entradas é independentemente decodificável. Subcláusula 10.1 do Projeto de Trabalho 8 de HEVC descreve uma operação para extrair um subfluxo de bits (isto é, uma representação de ponto de operação) a partir do fluxo de bits. Especificamente, subcláusula 10.1 do Projeto de Trabalho 8 de HEVC determina que o subfluxo de bits é derivado removendo todas as unidades de NAL de fluxo de bits com identificadores temporais (por exemplo, TemporallD) maior do que tldTarget ou identificadores de camada (por exemplo, nuh_reserved_zero_6bits) não entre os valores em targetDecLayerldSet. tldTarget e targetDecLayerldSet são parâmetros do processo de extração de fluxo de bits.
[0096] Em um outro problema ou deficiência exemplares com as técnicas existentes para a sinalização de parâmetros de RH, um dispositivo, tal como um codificador de vídeo, um decodificador de vídeo, ou outro tipo de dispositivo, pode realizar um teste de conformidade de fluxo de bits em uma representação de ponto de operação para um ponto de operação. Como mencionado acima, um conjunto de identificadores de camada de destino e um identificador temporal podem ser usados para identificar o ponto de operação. O conjunto de identificadores de camada de destino pode ser denotado como "TargetDecLayerldSet." O identificador temporal pode ser denotado como "TargetDecHighestTid." Problematicamente, Projeto de Trabalho 8 de HEVC não especifica como TargetDecLayerldSet ou TargetDecHighestTid são definidos ao realizar um teste de conformidade de fluxo de bits. Por exemplo, quando o processo de decodificação é invocado para um teste de conformidade de fluxo de bits, a semântica dos elementos de sintaxe não é claramente especificada assim como os valores de TargetDecLayerldSet e TargetDecHighestTid não estão configurados corretamente.
[0097] Uma ou mais técnicas desta divulgação indicam como TargetDecLayerldSet e TargetDecHighestTid são definidos ao realizar um teste de conformidade de fluxo de bits. Por exemplo, o processo de decodificação geral para um fluxo de bits (ou representação de ponto de operação) é modificado de tal modo que, se o fluxo de bits (ou representação de ponto de operação) é decodificado em um teste de conformidade de fluxo de bits, TargetDecLayerldSet é definido como especificado na subcláusula C.1 do padrão de HEVC. Do mesmo modo, o processo de decodificação para um fluxo de bits geral (ou representação de ponto de operação) pode ser modificado de tal modo que, se o fluxo de bits (ou representação de ponto de operação) é decodificado em um teste de conformidade de fluxo de bits, TargetDecHighestTid é definido como especificado na subcláusula C1 do Projeto de Trabalho 8 de HEVC. Em outras palavras, o dispositivo pode determinar um conjunto de identificador de camada de destino do ponto de operação particular, que contém cada identificador de camada presente no subconjunto de fluxo de bits e o conjunto de identificador de camada do ponto de operação particular é um subconjunto de identificador de camada presente no fluxo de bits. Além disso, o dispositivo pode determinar um identificador temporal alvo do ponto de operação particular que é igual a um identificador temporal grande presente no subconjunto de fluxo de bits e o identificador de destino temporal do ponto de operação particular é menor ou igual a identificador temporal maior presente no fluxo de bits.
[0098] Na subcláusula C.1 do Projeto de Trabalho 8 de HEVC, TargetDecLayerldSet é definido para targetOpLayerldSet. targetOpLayerldSet contém o conjunto de valores para nuh_reserved_zero_6bits presente na representação de ponto de operação do ponto de operação sob teste. targetOpLayerldSet é um subconjunto dos valores para nuh_reserved_zero_6bits presente no fluxo de bits em teste.
[0099] Além disso, a variável TargetDecHighestTid identifica a subcamada temporal mais alta para ser decodificada. A subcamada temporal é uma camada temporal escalável de um fluxo de bits temporal escalável, que consiste em unidades de NAL VCL com um valor particular de Temporalld e as unidades de NAL não-VCL associado. Na subcláusula C.1 do padrão HEVC, TargetDecHighestTid está definido para targetOpTid. targetOpTid é igual a id_temporal maior presente na representação de ponto de operação do ponto de operação em teste e é inferior ou igual a id_temporal maior presente no fluxo de bits em teste. Assim, quando o processo de decodificação é invocado para um teste de conformidade de fluxo de bits, os valores de TargetDecLayerldSet e TargetDecHighestTid são definidos para o conjunto de valores nuh_reserved_zero_6bits e o maior valor Temporalld presente no subfluxo de bits correspondente ao ponto de operação em teste para o teste de conformidade de fluxo de bit específico.
[0100] Deste modo, um dispositivo (tal como o codificador de vídeo 20, decodificador de vídeo 30, dispositivo adicional 21, ou outro dispositivo) pode, de acordo com uma ou mais técnicas desta divulgação, realizar um processo de decodificação, como parte de uma realização de teste de conformidade de fluxo de bits. A realização do processo de decodificação pode compreender a realização de um processo de extração de fluxo de bits para extrair, a partir de um fluxo de bits, uma representação de ponto de operação de um ponto de operação definido por um conjunto alvo de identificadores de camada e um identificador temporal maior alvo. O conjunto alvo de identificadores de camada (isto é, TargetDecLayerldSet) contém valores de elementos de sintaxe de identificador de camada (por exemplo, elementos de sintaxe nuh_reserved_zero_6bits) presentes na representação de ponto de operação. O conjunto alvo de identificadores de camada é um subconjunto de valores de elementos de sintaxe de identificador de camada do fluxo de bits. O identificador temporal maior alvo (isto é, TargetDecHighestTid) é igual a um identificador temporal grande presente na representação de ponto de operação. O identificador temporal maior alvo é menor do que ou igual a um identificador temporal grande presente no fluxo de bits. A realização do processo de decodificação também compreende decodificação de unidades de NAL da representação de ponto de operação.
[0101] O processo de decodificação não é sempre realizado como parte da realização de um teste de conformidade de fluxo de bits. Em vez disso, o processo de decodificação pode ser um processo geral para decodificar um fluxo de bits. Quando o processo de decodificação não é realizado como parte de teste de conformidade de um fluxo de bits, uma fonte externa pode especificar TargetDecLayerldSet e TargetDecHighestTid para um ponto de operação. A fonte externa pode ser qualquer fonte de informação fora do fluxo de bits. Por exemplo, um dispositivo CDN pode de forma programável determinar e especificar TargetDecLayerldSet e TargetDecHighestTid com base na configuração de um decodificador de vídeo particular. O dispositivo que realiza o processo de decodificação pode usar o TargetDecLayerldSet externamente especificado e TargetDecHighestTid para extrair a representação de ponto de operação do fluxo de bits. O dispositivo de realização do processo de decodificação pode então decodificar unidades de NAL da representação de ponto de operação extraído.
[0102] Assim, quando o processo de decodificação não é realizado como parte do teste de conformidade de fluxo de bits, o dispositivo que realiza o processo de decodificação pode receber, a partir de uma fonte externa, um conjunto alvo de identificadores de camada e um identificador temporal maior alvo. O conjunto alvo de identificadores de camada contém os valores de elementos de sintaxe de identificador de camada presentes em uma representação de ponto de operação. O identificador temporal maior alvo é igual a um identificador temporal grande presente na segunda representação de ponto de operação. Além disso, o dispositivo que realiza o processo de decodificação pode realizar o processo de extração de fluxo de bits para extrair, a partir do fluxo de bits, a representação de ponto de operação. O dispositivo que realiza o processo de decodificação pode então decodificar unidades de NAL da representação de ponto de operação.
[0103] Em outros casos, uma fonte externa não especifica TargetDecLayerldSet ou TargetDecHighestTid. Em tais casos, o processo de decodificação pode ser realizado em todo o fluxo de bits. Por exemplo, o dispositivo pode realizar o processo de extração de fluxo de bits para extrair, a partir do fluxo de bits, uma representação de ponto de operação. Neste exemplo, 0 é o único valor de elementos de sintaxe de identificador de camada (isto é, nuh_reserved_zero_6bits) presente na representação de ponto de operação. Além disso, neste exemplo, o identificador temporal maior presente no fluxo de bits é igual a um identificador temporal grande presente na representação de ponto de operação. Neste exemplo, o dispositivo que realiza o processo de decodificação pode decodificar unidades de NAL da representação de ponto de operação.
[0104] Conforme indicado acima, um SPS pode incluir uma matriz de elementos de sintaxe denotados como sps_max_dec_pic_buffering [i], onde i varia de 0 até o número máximo de camadas temporais no fluxo de bits. sps_max_dec_pic_buffering [i] indica o tamanho requerido máximo do DPB quando um identificador temporal maior (HighestTid) é igual a i. sps_max_dec_pic_buffering [i] indica o tamanho desejado em termos de unidades de buffers de armazenamento de imagem. Além disso, um SPS pode incluir uma matriz de elementos de sintaxe denotados por sps_max_num_reorder_pics [i], onde i varia de 0 até o número máximo de camadas temporais no fluxo de bits. sps_max_num_reorder_pics [i] indica um número máximo permitido de imagens anteriores a qualquer imagem em ordem de decodificação e posteriores aquela imagem em ordem de emissão quando o identificador temporal maior (HighestTid) é igual a i. Além disso, um conjunto de parâmetros HRD pode incluir uma matriz de elementos de sintaxe denotados cpb_cnt_minus1 [i], onde i varia de 0 até o número máximo de camadas temporais no fluxo de bits. cpb_cnt_minus1 [i] especifica o número de especificações de CPB alternativas no fluxo de bits da sequência de vídeo codificado, quando um identificador temporal maior (HighestTid) é igual a i.
[0105] Porque Projeto de Trabalho 8 de HEVC não especifica o que é pretendido pelo identificador temporal maior (HighestTid), sps_max_dec_pic_buffering [i], sps_max_num_reorder_pics [i], e cpb_cnt_minus1 [i] do Projeto de Trabalho 8 de HEVC não são devidamente selecionados em operações de RH, operações de conformidade de fluxo de bits e restrições de nível. Em outras palavras, os parâmetros sps_max_num_reorder_pics [i], sps_max_dec_pic_buffering [i], e cpb_cnt_minus1 [i] nas operações de RH, requisitos de conformidade de fluxo de bits e restrições de nível não são devidamente selecionados.
[0106] De acordo com uma ou mais técnicas desta divulgação, sps_max_dec_pic_buffering [i] é definido tal que sps_max_dec_pic_buffering [i] indica o tamanho máximo exigido do DPB quando TargetDecHighestTid é igual a i. TargetDecHighestTid é determinado da forma descrita acima. Isso pode estar em contraste com Projeto Trabalho 8 de HEVC, onde HighestTid não está definido. O valor de sps_max_dec_pic_buffering [i] deve estar na faixa de 0 a MaxDpbSize (conforme especificado na subcláusula A.4 de Projeto Trabalho 8 de HEVC), inclusive. Quando i é maior do que 0, sps_max_dec_pic_buffering [i] é igual a ou maior do que sps_max_dec_pic_buffering [i - 1]. O valor de sps_max_dec_pic_buffering [i] deve ser inferior ou igual a vps_max_dec_pic_buffering [i] para cada valor de i.
[0107] Da mesma forma, de acordo com uma ou mais técnicas desta divulgação, sps_max_num_reorder_pics [i] é definido de tal forma que sps_max_num_reorder_pics [i] indica o número máximo permitido de imagens anteriores a qualquer imagem em ordem de decodificação e posteriores aquela imagem em ordem de emissão quando TargetDecHighestTid é igual a i. TargetDecHighestTid é determinado da forma descrita acima. O valor de sps_max_num_reorder_pics [i] deve estar na faixa de 0 a sps_max_dec_pic_buffering [i], inclusive. Quando i é maior do que 0, sps_max_num_reorder_pics [i] deve ser igual ou superior a sps_max_num_reorder_pics [i - 1]. O valor de sps_max_num_reorder_pics [i] deve ser inferior ou igual a vps_max_num_reorder_pics [i] para cada valor de i.
[0108] Além disso, de acordo com uma ou mais técnicas desta divulgação, cpb_cnt_minus1 [i] pode especificar o número de especificações de CPB alternativas no fluxo de bits da sequência de vídeo codificado quando TargetDecHighestTid é igual a i, onde i varia de 0 ao número máximo de camadas temporais no fluxo de bits. TargetDecHighestTid é determinado da forma descrita acima. O valor de cpb_cnt_minus1 [i] está na faixa de 0 a 31, inclusive. Quando low_delay_hrd_flag [i] é igual a 1, cpb_cnt_minus1 [i] é igual a 0. Quando cpb_cnt_minus1 [i] não está presente, cpb_cnt_minus1 [i] é inferido a ser igual a 0.
[0109] Assim, de acordo com uma ou mais técnicas desta divulgação, um dispositivo pode determinar, com base em um identificador temporal maior, um elemento de sintaxe particular dentre uma matriz de elementos de sintaxe. O identificador temporal maior é definido de tal modo que o identificador temporal maior identifica sempre uma camada temporal maior para ser decodificada. Assim, sps_max_num_reorder_pics [i], sps_max_dec_pic_buffering [i], e cpb_cnt_minus1 [i] nas operações de RH, requisitos de conformidade de fluxo de bits e restrições de nível são consistentemente selecionados com i igual ao valor claramente especificado de TargetDecHighestTid.
[0110] Deste modo, um dispositivo (tal um codificador de vídeo 20, decodificador de vídeo 30, dispositivo adicional 21, ou outro dispositivo) pode realizar uma operação de HRD para determinar a conformidade de um fluxo de bits a um padrão de codificação de vídeo ou para determinar conformidade de um decodificador de vídeo ao padrão de codificação de vídeo. Como parte de realizar a operação de HRD, o dispositivo pode determinar um identificador temporal maior de um subconjunto de fluxo de bits associado com um ponto de operação selecionado do fluxo de bits. Além disso, o dispositivo pode determinar, com base no identificador temporal maior, um elemento de sintaxe particular dentre uma matriz de elementos de sintaxe (por exemplo, sps_max_num_reorder_pics [i], sps_max_dec_pic_buffering [i], ou cpb_cnt_minus1 [i]). Além disso, o dispositivo pode utilizar o elemento de sintaxe particular na operação de HRD.
[0111] Além disso, em Projeto Trabalho 8 de HEVC, cada uma das estruturas de sintaxe hrd_parameters () no VPS podem ser associadas com uma estrutura de sintaxe operation_point_layer_ids () com base em qual uma estrutura de sintaxe hrd_parameters () é selecionada para ser utilizada nas operações de RH. Correspondente a cada estrutura de sintaxe hrd_parameters () selecionada, também pode ser necessário um conjunto de mensagens SEI de período de armazenamento em buffer e mensagens SEI de temporização de imagem nas operações de DRH. No entanto, não há nenhuma maneira de associar uma mensagem SEI de período de armazenamento em buffer ou mensagem SEI de temporização de imagem a uma estrutura de sintaxe hrd_parameters () para a qual a estrutura de sintaxe operation_point_layer_ids () associada inclui vários valores de nuh_reserved_zero_6bits (ou seja, múltiplos IDs de camada em uma multivista, 3DV ou extensão de codificação de vídeo escalável do HEVC).
[0112] Uma solução para este problema pode ser aplicar a mensagem SEI de aninhamento escalável de codificação de multivista, conforme especificado no Anexo H do H.264 / AVC ou similar. No entanto, a mensagem SEI de aninhamento escalável de codificação de multivista ou mensagens SEI similares podem ter as seguintes desvantagens. Em primeiro lugar, uma vez que as unidades de NAL SEI em H.264 / AVC só tem um cabeçalho de unidade de NAL de um byte, não pode haver nenhuma maneira de usar a informação transportada em nuh_reserved_zero_6bits e temporal_id_plusl no cabeçalho de unidade de NAL da unidade de NAL SEI HEVC para a associação de um período de armazenamento em buffer ou mensagem SEI de temporização de imagem aos pontos de operação. Em segundo lugar, cada mensagem SEI aninhada só pode ser associada com um ponto de operação.
[0113] Um ou mais técnicas desta divulgação pode fornecer um mecanismo para especificar claramente os pontos de operação para que uma mensagem SEI de período de armazenamento em buffer, mensagem SEI de temporização de imagem ou mensagem SEI de temporização de subimagem se aplica, por meio da estrutura de sintaxe applicable_operation_points () que pode ser realizada em um mensagem SEI de período de armazenamento em buffer, mensagem SEI de temporização de imagem, ou mensagem SEI de temporização de subimagem. O mecanismo pode permitir utilizar a informação transportada nos elementos de sintaxe nuh_reserved_zero_6bits e temporal_id_plusl no cabeçalho de unidades de NAL de unidade de NAL SEI, e pode permitir o compartilhamento da informação transportada em uma mesma mensagem SEI de período de armazenamento em buffer, temporização de imagem ou temporização de subimagem por múltiplos pontos de operação.
[0114] A figura 2 é um diagrama de blocos ilustrando um codificador de vídeo exemplar 20 que pode implementar as técnicas desta divulgação. A figura 2 é proporcionada para fins de explicação e não deve ser considerada como limitativa das técnicas como amplamente exemplificadas e descritas nesta divulgação. Para efeitos da explicação, esta divulgação descreve o codificador de vídeo 20, no contexto da codificação de HEVC. No entanto, as técnicas desta divulgação podem ser aplicadas a outras normas ou métodos de codificação.
[0115] No exemplo da figura 2, o codificador de vídeo 20 inclui uma unidade de processamento de predição 100, uma unidade de geração residual 102, uma unidade de processamento de transformada 104, uma unidade de quantização 106, uma unidade de quantização inversa 108, uma unidade de processamento de transformada inversa 110, uma unidade de reconstrução 112, uma unidade de filtro 114, um buffer de imagem decodificada 116, e uma unidade de codificação de entropia 118. Unidade de processamento de predição 100 inclui uma unidade de processamento de interpredição 120 e uma unidade de processamento de intrapredição 126. A unidade de processamento de interpredição 120 inclui uma unidade de estimativa de movimento 122 e uma unidade de compensação de movimento 124. Em outros exemplos, o codificador de vídeo 20 pode incluir mais, menos ou diferentes componentes funcionais.
[0116] O codificador de vídeo 20 pode receber dados de vídeo. Codificador de vídeo 20 pode codificar cada CTU em uma fatia de uma imagem dos dados de vídeo. Cada uma das CTUs pode ser associada com blocos de árvores de codificação de luma de tamanho igual (CTBS) e CTBs correspondentes da imagem. Como parte de codificar uma CTU, unidade de processamento de predição 100 pode realizar o particionamento quad-tree para dividir as CTBs da CTU em blocos progressivamente menores. O bloco menor pode ser blocos de codificação de CUs. Por exemplo, a unidade de processamento de predição 100 pode dividir uma CTB associada com uma CTU em quatro sub-blocos de tamanho igual, dividir um ou mais sub-blocos em quatro sub-sub-blocos de tamanho igual, e assim por diante.
[0117] Codificador de vídeo 20 pode codificar CUs de uma CTU para gerar representações codificada das CUs (ou seja, CUs codificadas). Como parte de codificar uma CU, unidade de processamento de predição 100 pode particionar os blocos de codificação associados a CU entre uma ou mais PUs da CU. Assim, cada PU pode ser associada com um bloco de predição de luminância e blocos de predição de crominância correspondentes. Codificador de vídeo 20 e decodificador de vídeo 30 podem de suportar PUs tendo vários tamanhos. O tamanho de uma CU pode referir-se ao tamanho do bloco de codificação de luminância da CU e o tamanho de uma PU pode referir-se ao tamanho de um bloco de predição de luminância da PU. Supondo-se que o tamanho de uma CU particular é 2Nx2N, codificador de vídeo 20 e decodificador de vídeo 30 podem de suportar tamanhos de PU de 2Nx2N ou NxN para a intrapredição e tamanhos simétricos de PU de 2Nx2N, 2NxN, Nx2N, NxN, ou similar para a interpredição. Codificador de vídeo 20 e decodificador de vídeo 30 podem também suportar particionamento assimétrico para tamanhos de PU de 2NxnU, 2NxnD, nLx2N e nRx2N para interpredição.
[0118] Unidade de processamento de interpredição 120 pode gerar dados preditivos de uma PU realizando interpredição em cada PU de uma CU. Os dados preditivos para a PU podem incluir blocos preditivos da informação de PU e de movimento para a PU. Unidade de processamento de interpredição 12 pode realizar diferentes operações para uma PU de uma CU dependendo de se a PU é uma fatia em I, uma fatia P ou uma fatia B. Em uma fatia I, todas as UP são intrapreditas. Por isso, se a PU é uma fatia em que, a unidade de processamento de interpredição 120 não realiza interpredição sobre a PU. Assim, para os blocos codificados em modo I, o bloco preditivo é formado utilizando predição espacial a partir de blocos vizinhos previamente codificados no âmbito do mesmo quadro.
[0119] Se uma PU está em uma fatia P, a unidade de estimativa de movimento 122 pode procurar as imagens de referência em uma lista de imagens de referência (por exemplo, "RefPicListO") para uma região de referência para a PU. A região de referência para a PU pode ser uma região, dentro de uma imagem de referência, que contém blocos de amostras que mais estreitamente correspondem aos blocos de predição da PU. Unidade de estimativa de movimento 122 pode gerar um índice de referência que indica uma posição em RefPicListO da imagem de referência, contendo a região de referência para a PU. Além disso, a unidade de estimativa de movimento 122 pode gerar um vetor de movimento que indica um deslocamento espacial entre um bloco de predição da PU e uma localização de referência associada com a região de referência. Por exemplo, o vetor de movimento pode ser um vetor bidimensional que proporciona um deslocamento a partir das coordenadas na imagem atual para as coordenadas de uma imagem de referência. Unidade de estimativa de movimento 122 pode emitir o índice de referência e o vetor de movimento como a informação de movimento da PU. A unidade de compensação de movimento 124 pode gerar os blocos preditivos da PU com base em amostras reais ou interpoladas na localização de referência indicada pelo vetor de movimento da PU.
[0120] Se uma PU está em uma fatia B, unidade de estimativa de movimento 122 pode realizar unipredição ou bipredição para a PU. Para realizar unipredição para a PU, a unidade estimativa de movimento 122 pode procurar as imagens de referência de RefPicListO ou uma segunda lista de imagens de referência ("RefPicListl") para uma região de referência para a PU. Unidade de estimativa de movimento 122pode emitir, como a informação de movimento da PU, um índice de referência que indica uma posição em RefPicListO ou RefPicListl da imagem de referência que contém a região de referência, um vetor de movimento que indica um deslocamento espacial entre um bloco de amostras da PU e uma localização de referência associada com a região de referência, e um ou mais indicadores de direção de predição que indicam se a imagem de referência está em RefPicListO ou RefPicListl. Unidade de compensação de movimento 124 pode gerar os blocos preditivos de PU com base, pelo menos em parte, nas amostras reais ou interpoladas na região de referência indicada pelo vetor de movimento da PU.
[0121] Para realizar interpredição bidirecional para uma PU, a unidade de estimativa de movimento 122 pode procurar as figuras de referência em RefPicListO para uma região de referência para a PU e pode também procurar as figuras de referência em RefPicListl para outra região de referência para a PU. A unidade de estimativa de movimento 122 pode gerar índices de referência que indicam as posições em RefPicListO e RefPicListl das imagens de referência que contêm as regiões de referência. Além disso, a unidade de estimativa de movimento 122 pode gerar os vetores de movimento que indicam deslocamentos espaciais entre a localização de referência associada com as regiões de referência e um bloco de amostras de PU. A informação relativa ao movimento da PU pode incluir os índices de referência e os vetores de movimento da PU. Unidade de compensação de movimento 124 pode gerar os blocos preditivos da PU com base, pelo menos em parte, nas amostras reais ou interpoladas na região de referência indicada pelo vetor de movimento da PU.
[0122] A unidade de processamento de intrapredição 126 pode gerar dados preditivos de uma PU realizando intrapredição na PU. Os dados preditivos para a PU podem incluir blocos preditivos para a PU e vários elementos de sintaxe. Unidade de processamento de intrapredição 126 pode realizar intrapredição em PUs em fatias I, fatias P e fatias B.
[0123] Para realizar intrapredição em uma PU, unidade de processamento de intrapredição 126 pode usar vários modos de intrapredição para gerar múltiplos conjuntos de dados preditivos para a PU. Para usar um modo de intrapredição para gerar um conjunto de dados preditivos para a PU, unidade de processamento de intrapredição 126 pode estender amostras dos de blocos de amostras de PUs vizinhas até os blocos de amostras da PU em uma direção associada com o modo de intrapredição. As PUs vizinhas podem estar acima, acima e a direita, acima e a esquerda, ou a esquerda da PU, assumindo uma esquerda para direita, de cima para baixo em ordem de codificação para PUs, CUs, e CTUs. A unidade de processamento de intrapredição 126 pode usar vários números de modos de intrapredição, por exemplo, 33 modos de intrapredição direcionais. Em alguns exemplos, o número de modos de intrapredição pode depender do tamanho da região associada com a PU.
[0124] A unidade de processamento de predição 100 pode selecionar os dados preditivos para PUs de uma CU entre os dados preditivos gerados pela unidade de processamento de interpredição 120 para as PUs ou os dados preditivos gerados pela unidade de processamento de intrapredição 126 para as PUs. Em alguns exemplos, unidade de processamento de predição 100 seleciona os dados preditivos para as PUs da CU com base em métricas de distorção / taxa dos conjuntos de dados preditivos. Os blocos preditivos dos dados preditivos selecionadas podem ser aqui referidos como os blocos preditivos selecionados.
[0125] A unidade de geração residual 102 pode gerar, com base nos de blocos de codificação de luma, Cb e Cr de uma CU e os blocos de luma, Cb e Cr preditivos selecionados das PUs da CU, blocos residuais de luma, Cb e Cr da CU. Por exemplo, a unidade de geração residual 102 pode gerar os blocos residuais da CU de tal forma que cada amostra nos blocos residuais tem um valor igual a diferença entre uma amostra de um bloco de codificação da CU e uma amostra correspondente de um bloco preditivo selecionado correspondente de uma PU da UC.
[0126] A unidade de processamento de transformada 104 pode realizar o particionamento quad-tree para particionar os blocos residuais associados a CU em blocos de transformada associados com TUs da CU. Assim, uma TU pode ser associada com um bloco de transformada de luma e dois blocos de transformada de croma. Os tamanhos e as posições dos blocos de transformada de luminância e crominância das TUs de uma CU podem ou não podem ser baseados nos tamanhos e posições dos blocos de predição de PUs da UC. Uma estrutura quad-tree conhecida como uma "quad-tree residual" (RQT) pode incluir os nós associados com cada uma das regiões. As TUs de uma CU podem corresponder a nós de folha da RQT.
[0127] A unidade de processamento de transformada 104 pode gerar blocos de coeficientes de transformada para cada TU de uma CU, aplicando uma ou mais transformadas para os blocos de transformar da TU. A unidade de processamento de transformada 104 pode aplicar várias transformadas para um bloco de transformada associado a uma TU. Por exemplo, a unidade de processamento de transformada 104 pode aplicar uma transformada de cosseno discreta (DCT), uma transformada direcional, ou uma transformada conceitualmente semelhante a um bloco de transformada. Em alguns exemplos, unidade de processamento de transformada 104 não aplica transformadas a um bloco de transformada. Nestes exemplos, o bloco de transformada pode ser tratado como um bloco de coeficiente de transformada.
[0128] A unidade de quantização 106 pode quantificar os coeficientes de transformada em um bloco de coeficientes. O processo de quantização pode reduzir a profundidade do bit associado com alguns ou todos os coeficientes de transformada. Por exemplo, um coeficiente de transformada de n-bit pode ser arredondado para um coeficiente de transformada de m-bit durante a quantização, onde n é maior do que m. A unidade de quantização 106 pode quantizar um bloco de coeficientes associados com uma TU de uma CU com base em um valor de parâmetro de quantização (QP) associado com a CU. Codificador de vídeo 20 pode ajustar o grau de quantização aplicado aos blocos de coeficientes associados com uma CU, ajustando o valor QP associado com a CU. Quantização pode apresentar perda de informações, assim coeficientes de transformada quantificados podem ter precisão menor do que os originais.
[0129] A unidade de quantização inversa 108 e a unidade de processamento de transformada inversa 110 podem aplicar quantização inversa e transformada inversa em 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 preditivos gerados pela unidade de processamento de predição 100 para produzir um bloco de transformada reconstruído associado a uma TU. Ao reconstituir blocos de transformada para cada TU de uma CU deste modo, o codificador de vídeo 20 pode reconstruir os blocos de codificação da CU.
[0130] A unidade de filtro 114 pode realizar uma ou mais operações de remoção de blocos para reduzir os artefatos de bloqueio nos blocos de codificação associados com uma CU. Buffer de imagem decodificada 116 pode armazenar os blocos de codificação reconstruídos após a unidade de filtro 114 realizar uma ou mais operações de remoção de blocos sobre os blocos de codificação reconstituídos. A unidade de interpredição 120 pode usar uma imagem de referência que contém os blocos de codificação reconstruídos para realizar interpredição sobre PUs de outras imagens. Além disso, a unidade de processamento de intrapredição 126 pode usar blocos de codificação reconstruídos em buffer de imagem decodificada 116 para realizar a intrapredição em outras PUs na mesma imagem como a CU.
[0131] A unidade de codificação de entropia 118 pode receber dados de outros componentes funcionais do codificador de vídeo 20. Por exemplo, a unidade de codificação de entropia 118 pode receber blocos de coeficiente da unidade de quantização 106 e pode receber elementos de sintaxe da unidade de processamento de predição 100. Unidade de codificação de entropia 118 pode realizar um ou mais operações de codificação de entropia sobre os dados para gerar dados codificados por entropia. Por exemplo, a unidade de codificação de entropia 118 pode realizar uma operação de codificação de comprimento variável adaptativa de contexto (CAVLC), uma operação CABAC, uma operação de codificação de comprimento variável-para-variável (V2V), uma operação de codificação de comprimento variável adaptativa de contexto baseada em sintaxe (SBAC) operação, uma operação de codificação por entropia de particionamento de intervalo de probabilidade (PIPE), uma operação de codificação Golomb Exponencial, ou outro tipo de operação de codificação de entropia nos dados. Codificador de vídeo 20 pode emitir um fluxo de bits que inclui dados codificados por entropia gerados pela unidade de codificação de entropia 118. Por exemplo, o fluxo de bits pode incluir dados que representam uma RQT para uma CU.
[0132] Como indicado em outras partes desta divulgação, codificador de vídeo 20 pode sinalizar um VPS no fluxo de bits. No Projeto de Trabalho 8 de HEVC, elementos de sintaxe particulares do VPS (ou seja, vps_max_dec_pic_buffering [i], vps_max_num_reorder_pics [i], e vps_max_latency_increase [i]) são definidos com referência a um valor de HighestTid, que não está definido. De acordo com uma ou mais das técnicas desta descrição, estes elementos de sintaxe do VPS podem ser definidos por referência a um valor de TargetDecHighestTid, que é definido tal como TargetDecHighestTid descrito em outro local nesta descrição. A Tabela 3, abaixo, ilustra uma sintaxe de um VPS de acordo com uma ou mais das técnicas desta descrição. TABELA 3 - VPS
Figure img0007
[0133] As partes em itálico da Tabela 3 e outras descrições de tabelas de sintaxe ou semântica em toda esta divulgação podem indicar diferenças de Projeto Trabalho 8 de HEVC. De acordo com uma ou mais técnicas desta divulgação, a semântica para os seguintes elementos de sintaxe de VPS pode ser alterada da seguinte forma. A semântica para outros elementos de sintaxe de VPS pode permanecer a mesma que no Projeto de Trabalho 8 de HEVC. vps_max_dec_pic_buffering [i] especifica o tamanho necessário do buffer de imagem decodificada em unidades de buffers de armazenamento de imagem, quando TargetDecHighestTid é igual a i. O valor de vps_max_dec_pic_buffering [i] deve estar na faixa de 0 a MaxDpbSize (conforme especificado na subcláusula A.4), inclusive. Quando i é maior do que 0, vps_max_dec_pic_buffering [i] é igual a ou maior do que vps_max_dec_pic_buffering [i - 1]. vps_max_num_reorder_pics [i] indica o número máximo permitido de imagens anteriores a qualquer imagem em ordem de decodificação e posteriores aquela imagem em ordem de emissão quando TargetDecHighestTid é igual a i. O valor de vps_max_num_reorder_pics [i] deve estar na faixa de 0 a vps_max_dec_pic_buffering [i], inclusive. Quando i é maior do que 0, vps_max_num_reorder_pics [i] deve ser igual ou superior a vps_max_num_reorder_pics [i - 1]. vps_max_latency_increase [i] não igual a 0 é usado para calcular o valor de MaxLatencyPictures [i], conforme especificado pela configuração MaxLatencyPictures [i] para vps_max_num_reorder_pics [i] + vps_max_latency_increase [i]. Quando vps_max_latency_increase [i] não é igual a 0, o valor de MaxLatencyPictures [i] especifica o número máximo de imagens que podem preceder qualquer imagem da sequência de vídeo codificado em ordem de emissão e após aquela imagem em ordem de decodificação quando TargetDecHighestTid é igual a i. Quando vps_max_latency_increase [i] é igual a 0, nenhum limite correspondente é expresso. O valor de vps_max_latency_increase [i] deve estar na faixa de 0 a 2 32 - 2, inclusive.
[0134] Como mostrado acima, a semântica de vps_max_dec_buffering [i], vps_max_num_reorder_pics [i], e vps_max_latency_increase [i] pode ser definida com referência à TargetDecHighestTid. Em contraste, Projeto de Trabalho 8 de HEVC define vps_max_dec_pic_buffering [i], vps_max_num_reorder_pics [i], e vps_max_latency_increase [i] com referência a HighestTid, onde HighestTid não está definido.
[0135] Como se mostra no exemplo de sintaxe da Tabela 3, o VPS inclui pares de estruturas de sintaxe operation_point_layer_ids () e estruturas de sintaxe hrd_parameters (). As estruturas de sintaxe hrd_parameters () incluem elementos de sintaxe que especificam conjuntos de parâmetros de DRH. Uma estrutura de sintaxe operation_point_layer_ids () inclui elementos de sintaxe que identificam um conjunto de pontos de operação. O conjunto de parâmetros HRD especificado em uma estrutura de sintaxe hrd_parameters () pode ser aplicável aos pontos de operação identificados pelos elementos de sintaxe na estrutura de sintaxe operation_point_layer_ids () correspondentes. A Tabela 4, abaixo, proporciona uma sintaxe exemplar de uma estrutura de sintaxe operation_point_layer_ids (). TABELA 4 - Operação Ponto IDs Camada
Figure img0008
[0136] Seção 7.4.4 do Projeto de Trabalho 8 de HEVC descreve a semântica de uma estrutura de sintaxe op_point. De acordo com as uma ou mais técnicas desta divulgação, seção 7.4.4 do Projeto de Trabalho 8 de HEVC pode ser alterada como se segue para fornecer semântica para a estrutura de sintaxe operation_point_layer_ids () da Tabela 4. A estrutura de sintaxe operation_point_layer_ids (opldx) especifica o conjunto de valores nuh_reserved_zero_6bits incluídos no OpLayerldSet dos pontos de operação para o qual a estrutura de sintaxe opldx-ésimo hrd_parameters () no conjunto de parâmetros de vídeo se aplica. op_num_layer_id_values_minus1 [opldx] mais 1 especifica o número de valores nuh_reserved_zero_6bits incluídos no OpLayerldSet dos pontos de operação para o qual a estrutura de sintaxe opldx-ésima hrd_parameters () no conjunto de parâmetros de vídeo se aplica. op_num_layer_id_values_minus1 [opldx] deve ser inferior ou igual a 63. Nos fluxos de bits em conformidade com esta especificação, op_num_layer_id_values_minus1 [opldx] será igual a 0. Embora o valor de op_num_layer_id_values_minus1 [opldx] seja requerido para ser igual a 0 nesta versão desta Especificação, decodificadores devem permitir que outros valores apareçam na sintaxe op_num_layer_id_values_minus1 [opldx]. op_layer_id [opldx] [i] especifica o valor de i- ésimo de nuh_reserved_zero_6bits incluídos no OpLayerldSet dos pontos de operação para o qual a estrutura de sintaxe opldx-ésimo hrd_parameters () no conjunto de parâmetros de vídeo se aplica. Nenhum valor de op_layer_id [opldx] [i] será igual a op_layer_id [opldx] [j] quando i não for igual a j e tanto i como j estão na faixa de 0 a op_num_layer_id_minus1, inclusive. op_layer_id [0] [0] é inferido para ser igual a 0.
[0137] Como indicado acima, o elemento de sintaxe op_num_layer_id_values_minus [opldx], mais 1, especifica o número de valores nuh_reserved_zero_6bits incluídos no OpLayerldSet dos pontos de operação para os quais a estrutura de sintaxe opldx-ésima hrd_parameters () no conjunto de parâmetros de vídeo se aplica. Em contraste, Projeto de Trabalho 8 de HEVC fornece o elemento de sintaxe op_num_layer_id_values_minus1 [opldx], mais 1, especifica o número de valores nuh_reserved_zero_6bits incluído no ponto de operação identificado por opldx. Do mesmo modo, no exemplo da Tabela 4, o elemento de sintaxe op_layer_id [opIdx] [i] especifica o i-ésimo valor de nuh_reserved_zero_6bits incluído no OpLayerldSet dos pontos de operação para os quais a estrutura de sintaxe opldx-ésima hrd_parameters () no conjunto de parâmetros de vídeo se aplica. Em contraste, Projeto de Trabalho 8 de HEVC determina que o elemento de sintaxe op_layer_id [opIdx] [i] especifica o i-ésimo valor de nuh_reserved_zero_6bits incluído no ponto de operação identificado por opldx.
[0138] Seção 7.4.2.2 do Projeto de Trabalho 8 de HEVC descreve semântica para o SPS. De acordo com uma ou mais das técnicas desta descrição, as seguintes alterações podem ser feitas na seção 7.4.2.2 de Projeto de Trabalho 8 de HEVC. A semântica para outros elementos de sintaxe de SPS pode ser o mesmo que no Projeto de Trabalho 8 de HEVC: sps_max_dec_pic_buffering [i] especifica o tamanho máximo exigido do buffer de imagem decodificada em unidades de buffers de armazenamento de imagem quando TargetDecHighestTid é igual a i. O valor da sps_max_dec_pic_buffering [i] deve estar na faixa de 0 a MaxDpbSize (conforme especificado na subcláusula A.4), inclusive. Quando i é maior do que 0, sps_max_dec_pic_buffering [i] é igual a ou maior do que sps_max_dec_pic_buffering [i - 1]. O valor de sps_max_dec_pic_buffering [i] deve ser inferior ou igual a vps_max_dec_pic_buffering [i] para cada valor de i. sps_max_num_reorder_pics [i] indica o número máximo permitido de imagens anteriores a qualquer imagem em ordem de decodificação e posteriores aquela imagem em ordem de emissão quando TargetDecHighestTid é igual a i. O valor de sps_max_num_reorder_pics [i] deve estar na faixa de 0 a sps_max_dec_pic_buffering [i], inclusive. Quando i é maior do que 0, sps_max_num_reorder_pics [i] deve ser igual ou superior a sps_max_num_reorder_pics [i - 1]. O valor da sps_max_num_reorder_pics [i] deve ser inferior ou igual a vps_max_num_reorder_pics [i] para cada valor de i. sps_max_latency_increase [i] não é igual a 0 é usado para calcular o valor de MaxLatencyPictures [i], conforme especificado pela configuração MaxLatencyPictures [i] igual a sps_max_num_reorder_pics [i] + sps_max_latency_increase [i]. Quando sps_max_latency_increase [i] não é igual a 0, o valor de MaxLatencyPictures [i] especifica o número máximo de imagens que podem preceder qualquer imagem na sequência de vídeo codificado em ordem de saída e após aquela imagem em ordem de decodificação quando TargetDecHighestTid é igual a i. Quando sps_max_latency_increase [i] é igual a 0, não há limite correspondente é expresso. O valor de sps_max_latency_increase [i] deve estar na faixa de 0 a 2 32 - 2, inclusive. O valor da sps_max_latency_increase [i] deve ser inferior ou igual a vps_max_latency_increase [i] para cada valor de i.
[0139] Como mostrado acima, a semântica de sps_max_dec_pic_buffering [i], sps_max_num_reorder_pics [i], e sps_max_latency_increase [i] é definida em termos de TargetDecHighestTid. TargetDecHighestTid é determinado como descrito em outro local nesta descrição. Em contraste, Projeto de Trabalho 8 de HEVC define a semântica de sps_max_dec_pic_buffering [i], sps_max_num_reorder_pics [i], e sps_max_latency_increase [i] com referência a HighestTid, que não está definido.
[0140] Seção 7.4.5.1 do Projeto de Trabalho 8 de HEVC descreve semânticas de cabeçalho de fatia gerais. De acordo com uma ou mais das técnicas desta descrição, as alterações seguintes podem ser feitas na seção 7.4.5.1 de Projeto de Trabalho 8 de HEVC. Outras porções da seção 7.4.5.1 de Projeto de trabalho 8 de HEVC podem permanecer as mesmas. no_output_of_prior_pics_flag especifica como as imagens previamente decodificadas no buffer de imagem decodificada são tratadas após a decodificação de uma imagem IDR ou uma BLA. Vide Anexo C. Quando a imagem atual é uma imagem CRA, ou a imagem atual é uma imagem IDR ou BLA que é a primeira imagem no fluxo de bits, o valor de no_output_of_prior_pics_flag não tem efeito sobre o processo de decodificação. Quando a imagem atual é uma imagem IDR ou BLA que não é a imagem no fluxo de bits, e o valor de pic_width_in_luma_samples ou pic_heigth_in_luma_samples ou sps_max_dec_pic_buffering [TargetDecHighestTid] derivado do conjunto de parâmetros de sequência ativo é diferente do valor de pic_width_in_luma_samples ou pic_heigth_in_luma_samples ou sps_max_decj3ic_buffering [TargetDecHighestTid] derivado do conjunto de parâmetros de sequência ativo para a imagem precedente, no_output_of_prior_pics_flag igual a 1 pode (mas não deve) ser inferido pelo decodificador, independentemente do valor real de no_output_of_prior_pics_flag.
[0141] Como mostrado acima, a semântica de no_output_of_prior_pics_flag é definida com referência a sps_max_dec_pic_buffering [TargetDecHighestTid]. TargetDecHighestTid é determinado como descrito em outro local nesta descrição. Em contraste, Projeto de Trabalho 8 de HEVC define a semântica de no_output_of_prior_pics_flags com referência a sps_max_dec_pic_buffering [HighestTid], onde HighestTid não está definido.
[0142] Seção 8.1 do Projeto de Trabalho 8 de HEVC descreve um processo de decodificação geral. De acordo com uma ou mais das técnicas desta descrição, o processo de decodificação geral do Projeto de trabalho 8 de HEVC pode ser alterado como se segue. A entrada deste processo é um fluxo de bits e a saída é uma lista de imagens decodificadas. O conjunto TargetDecLayerldSet, que especifica o conjunto de valores para nuh_reserved_zero_6bits de unidades de NAL VCL a ser decodificado, está especificado abaixo: - Se alguns elementos externos não especificados nesta Especificação estão disponíveis para definir TargetDecLayerldSet, TargetDecLayerldSet é definido pelos elementos externos. - Caso contrário, se o processo de decodificação é invocado em um teste de conformidade de fluxo de bits conforme especificado na subcláusula C1, TargetDecLayerldSet é definido conforme especificado na subcláusula C1. - Caso contrário, TargetDecLayerldSet contém apenas um valor para nuh_reserved_zero_6bits, que é igual a 0. A variável TargetDecHighestTid, que identifica a maior subcamada temporal para ser decodificada, está especificada como se segue: - Se alguns elementos externos não especificados nesta Especificação estão disponíveis para definir TargetDecHighestTid, TargetDecHighestTid é definido pelos elementos externos. - Caso contrário, se o processo de decodificação é invocado em um teste de conformidade de fluxo de bits conforme especificado na subcláusula C1, TargetDecHighestTid é definido conforme especificado na subcláusula C1. - Caso contrário, TargetDecHighestTid é definido para sps _max _sub Jayers jninusl. O processo de extração de subfluxo de bits, conforme especificado em subcláusula 10.1 é aplicado com TargetDecHighestTid e TargetDecLayerldSet como entradas e a saída é atribuída a um fluxo de bits referido como BitstreamToDecode. O que se segue aplica-se a cada imagem codificada (referida como a imagem em curso, que é designada pela variável CurrPic) em BitstreamToDecode. Dependendo do valor de chroma_format_idc, o número de matrizes de amostra da imagem atual é como se segue. - Se chroma_format_idc é igual a 0, a imagem atual é composta por uma amostra de matriz SL . - Caso contrário (chroma_format_idc não é igual a 0), a imagem atual consiste em três conjuntos de amostras SL, SCb, SCr O processo de decodificação para a imagem atual leva os elementos de sintaxe e variáveis maiúsculas de cláusula 7 como entrada. Ao interpretar a semântica de cada elemento de sintaxe em cada unidade de NAL e "fluxo de bits" ou parte dele (por exemplo, uma sequência de vídeo codificado) está envolvida, o fluxo de bits ou parte deste significa BitstreamToDecode ou parte dele. O processo de decodificação é especificado de modo a que todos os decodificadores devem produzir resultados numericamente idênticos. Qualquer processo de decodificação que produz resultados idênticos com o processo aqui descrito está de acordo com os requisitos do processo de decodificação da presente especificação. Quando a imagem atual é uma imagem CRA, é aplicável o seguinte: - Se alguns elementos externos não especificados nesta Especificação estão disponíveis para definir a variável HandleCraAsBlaFlag para um valor, HandleCraAsBlaFlag está definido para o valor fornecido pelos elementos externos. - Caso contrário, o valor do HandleCraAsBlaFlag é definido como 0. Quando a imagem atual é uma imagem CRA e HandleCraAsBlaFlag é igual a 1, o seguinte se aplica durante os processos de análise e decodificação para cada fatia de unidade de NAL codificada: - O valor de nal_unit_type é definido para BLA_W_LP. - O valor da no_output_of_prior_pics_flag é definido como 1. NOTA 1 - Implementações de decodificador podem optar por definir o valor de no_output_of_prior_pics_flag para 0 quando o ajuste não afeta a decodificação da imagem atual e as imagens seguintes na ordem de decodificação, por exemplo, quando há sempre um buffer de armazenamento de imagens disponível quando necessário. Cada imagem referida nesta cláusula é uma imagem completa codificada. Dependendo do valor de separate_colour_plane_flag, o processo de decodificação é estruturado da seguinte forma. - Se separate_colour_plane_flag é igual a 0, o processo de decodificação é invocado uma única vez com a imagem atual sendo a saída. - Caso contrário (separate_colour_plane_flag é igual a 1), o processo de decodificação é invocado três vezes. As entradas para o processo de decodificação são todas unidades de NAL da imagem codificada com valor idêntico de colour_plane_id. O processo de decodificação de unidades de NAL com um valor particular de colour_plane_id é especificado como se apenas uma sequência de vídeo codificado com formato de cor monocromática com esse valor particular de colour_plane_id estivesse presente no fluxo de bits. A saída de cada um dos três processos de decodificação é atribuída para as três matrizes de amostra de imagem atual com as unidades de NAL com colour_plane_id igual a 0, sendo atribuídas a SL , as unidades de NAL com colour_plane_id igual a 1 sendo atribuídas a SCb, e as unidades de NAL com colour_plane_id igual a 2 sendo atribuída a SCr. NOTA 1 - A variável ChromaArrayType é derivada como 0 tal como quando separate_colour_plane_flag é igual a 1 e chroma_format_idc é igual a 3. No processo de decodificação, o valor dessa variável é avaliado resultando em operações idênticas as de imagens monocromáticas com chroma_format_idc sendo igual a 0. O processo de decodificação funciona da seguinte forma para a imagem atual CurrPic: 1. A decodificação de unidades de NAL é especificada na subcláusula 8.2. 2. Os processos na subcláusula 8.3 especificam processos de decodificação utilizando elementos de sintaxe na camada de fatia e acima: - Variáveis e funções relacionadas com a contagem da ordem da imagem são derivadas na subcláusula 8.3.1 (que só precisa ser invocada para a primeira fatia de uma imagem). - O processo de decodificação de conjunto de imagem de referência na subcláusula 8.3.2 é invocado, em que imagens de referência podem ser marcadas como "não utilizadas para referência" ou "usadas para referência de longo prazo" (que só precisam ser invocadas para a primeira fatia de uma imagem). - Quando a imagem atual é uma imagem BLA ou é uma imagem CRA que é a primeira imagem no fluxo de bits, o processo de decodificação para gerar imagens de referência indisponíveis especificadas na subcláusula 8.3.3 é invocado (que só precisa ser invocado para a primeira fatia de uma imagem). - PicOutputFlag é definido da seguinte forma: - Se a imagem atual é uma imagem TFD e a imagem RAP anterior em ordem de decodificação é uma imagem BLA ou é uma imagem CRA que é a primeira imagem codificada no fluxo de bits, PicOutputFlag é definido igual a 0. - Caso contrário, PicOutputFlag é definido igual para pic_output_flag. - No início do processo de decodificação para cada fatia P ou B, o processo de decodificação para a lista de imagem de referência construções especificadas na subcláusula 8.3.4 é invocado para derivação da lista de imagem de referência 0 (RefPicListO), e quando a decodificação de um fatia B, lista de imagem de referência 1 (RefPicListl). - Depois de todas as fatias de imagem atual terem sido decodificadas, a imagem decodificada é marcada como "usada para referência de curto prazo". 3. Os processos nas subcláusulas 8.4, 8.5, 8.6, e 8.7 especificam processos de decodificação que utilizam elementos de sintaxe na camada de unidade de árvore de codificação e acima.
[0143] Como indicado em outras partes desta divulgação, no Projeto de Trabalho 8 de HEVC, quando o processo de decodificação é invocado para o teste de conformidade de fluxo de bits, a semântica dos elementos de sintaxe não está claramente especificada como os valores de TargetDecLayerldSet e TargetDecHighestTid não está configurado corretamente. As modificações apresentadas anteriormente para o processo de decodificação geral podem resolver esse problema. Como mostrado acima, quando o processo de decodificação geral é invocado para um teste de conformidade de fluxo de bits, os valores de TargetDecLayerldSet e TargetDecHighestTid são definidos conforme especificado na subcláusula C.1. Tal como descrito abaixo, uma versão modificada da subcláusula C.1 pode definir TargetDecLayerldSet para o conjunto de valores presentes no subfluxo de bits correspondente ao ponto de operação sob teste nuh_reserved_zero_6bits. A versão modificada da subcláusula C.1 pode definir TargetDecHighestTid para o maior valor Temporalld presente no subfluxo de bits correspondente ao ponto de operação sob teste.
[0144] Deste modo, um dispositivo, como decodificador de vídeo 30, pode realizar um processo de decodificação, como parte da realização de um teste de conformidade de fluxo de bits. A realização do processo de decodificação pode compreender realizar um processo de extração de fluxo de bits para extrair, a partir de um fluxo de bits, uma representação de ponto de operação de um ponto de operação definido por um conjunto alvo de identificadores de camada e um identificador temporal maior alvo. O conjunto alvo de identificadores de camada pode conter valores de elementos de sintaxe de identificador de camada presentes na representação de ponto de operação, o conjunto alvo de identificadores de camada sendo um subconjunto de valores de elementos de sintaxe de identificador de camada do fluxo de bits. O identificador temporal maior alvo pode ser igual a um identificador temporal grande presente na representação de ponto de operação, o identificador temporal maior alvo, sendo menor do que ou igual a um identificador temporal grande presente no fluxo de bits. Além disso, o dispositivo pode decodificar unidades de NAL da representação de ponto de operação.
[0145] Como indicado nas modificações para a seção 8.1, o processo de decodificação não é necessariamente realizado como parte do teste de conformidade de fluxo de bits. Em alguns casos em que o processo de decodificação não é realizado como parte de um teste de conformidade de fluxo de bits, um dispositivo pode realizar o processo de extração de fluxo de bits para extrair, a partir do fluxo de bits, uma representação de ponto de operação de um ponto de operação. Neste caso, 0, pode ser o único valor de elementos de sintaxe de identificador de camada (por exemplo, nuh_reserved_zero_6bits) presente na representação de ponto de operação, e o identificador temporal maior presente no fluxo de bits é igual a um identificador temporal grande presente na representação de ponto de operação do ponto de operação. O dispositivo pode decodificar unidades de NAL da representação de ponto de operação do segundo ponto de operação.
[0146] Em alternativa, o dispositivo pode receber, a partir de uma fonte externa, um conjunto alvo de identificadores de camada e um identificador temporal maior alvo. O conjunto alvo de identificadores de camada pode conter valores de elementos de sintaxe de identificador de camada presentes em uma representação de ponto de operação de um ponto de operação que é definido pelo conjunto alvo de identificadores de camada e o identificador temporal maior alvo. O identificador temporal maior alvo pode ser igual a um identificador temporal maior presente na representação de ponto de operação do ponto de operação. Além disso, o dispositivo pode realizar o processo de extração de fluxo de bits para extrair, a partir do fluxo de bits, a representação de ponto de operação do ponto de operação. Além disso, o dispositivo pode decodificar unidades de NAL da representação de ponto de operação do ponto de operação.
[0147] Além disso, de acordo com uma ou mais das técnicas da presente divulgação, o processo de extração de subfluxo de bits descrito na subcláusula 10.1 do Projeto de Trabalho 8 de HEVC pode ser alterado como se segue. É requisito de conformidade de subfluxo que qualquer subfluxo de bits que está incluído na saída do processo especificado nesta subcláusula com tldTarget igual a qualquer valor na faixa de 0 a 6, inclusive, e com layerldSetTarget contendo apenas o valor 0 está em conformidade com a presente especificação. NOTA - Um fluxo de bits de conformidade contém uma ou mais unidades de NAL de fatia codificada com nuh_reserved_zero_6bits igual a 0 e Temporalld igual a 0. As entradas para este processo são uma variável tldTarget e um conjunto layerldSetTarget. Emissão deste processo é uma subfluxo de bits. O subfluxo de bits é derivado removendo todas as unidades de NAL de fluxo de bits com Temporalld maior do que tldTarget ou nuh_reserved_zero_6bits não entre os valores em layerldSetTarget.
[0148] Na subcláusula 10.1 do Projeto de Trabalho 8 de HEVC, o nome da variável targetDecLayerldSet é usada onde layerldSetTarget é usada acima. As mudanças mostradas acima na subcláusula 10.1 do Projeto de Trabalho HEVC para usar layerldSetTarget podem servir para esclarecer de que pode haver uma distinção entre o conjunto de identificadores de camada utilizado no processo de extração de subfluxo de bits e targetDecLayerldSet, que, conforme já descrito nesta divulgação, tem uma definição particular.
[0149] Além disso, de acordo com uma ou mais técnicas desta divulgação, as especificações de camada e nível gerais de seção A.4.1 do Projeto de Trabalho 8 de HEVC podem ser alteradas da seguinte maneira. Nesta divulgação, um "perfil" pode referir-se a um subconjunto da sintaxe de fluxo de bits. "Camadas" e "níveis" podem ser especificados dentro de cada perfil. Um nível de uma camada pode ser um conjunto específico de restrições impostas aos valores dos elementos de sintaxe no fluxo de bits. Estas restrições podem ser limites simples sobre valores.
[0150] Em alternativa, as restrições podem assumir a forma de restrições sobre combinações aritméticas de valores (por exemplo, largura de imagine multiplicada por altura de imagem multiplicada pelo número de imagens decodificadas por segundo). Um nível especificado para um nível inferior é mais limitado do que um nível especificado para um nível mais elevado. De acordo com um exemplo dessa divulgação, a seção "Especificações de nível gerais" (ou seja, seção A.4.1) do Projeto de Trabalho 8 de HEVC é reintitulada "Camada Geral e Especificações de Nível", e o texto é alterado da seguinte forma. Tabela A-1 pode ser a mesma que no Projeto de Trabalho 8 de HEVC. Para fins de comparação de capacidades de camadas, a camada com a general_tier_flag igual a 0, deve ser considerada para ser uma camada inferior do que a camada com general_tier_flag igual a 1. Para fins de comparação das capacidades de nível, para uma camada específica, um nível mais baixo tem um valor inferior de general_level_idc. O que se segue é especificado para expressar as restrições neste anexo. - Deixe a unidade de acesso n ser a n-ésima unidade de acesso, em ordem de decodificação, com a primeira unidade de acesso ser a unidade de acesso 0 (ou seja, a 0-ésima unidade de acesso). - Deixe a imagem n ser a imagem codificada ou a imagem decodificada correspondente da unidade de acesso n. - Deixe a variável fR ser definida como 1 ^ 300. Fluxos de bits de conformidade com um perfil em um nível especificado devem obedecer as seguintes restrições para cada teste de conformidade de fluxo de bits conforme especificado no Anexo C: a) O tempo de remoção nominal da unidade de acesso n (com n > 0) a partir da CPB como especificado na subcláusula C.2.2 satisfaz a restrição de que tr,n(n)-tr(n-1) é igual a ou maior do que Max (PicSizelnSamplesY ^ MaxLumaSR, fR) para o valor de PicSizelnSamplesY de imagem n - 1, onde MaxLumaSR é o valor especificado na Tabela A-1 que se aplica a imagem N - 1. b) A diferença entre os tempos de saída consecutivos de imagens de DPB, conforme especificado na subcláusula C.3.2 satisfaz a restrição que Ato,dpb(n)>=Max(PicSizelnSamplesY ^ MaxLumaSR, fR) para o valor de PicSizelnSamplesY de imagem n, onde MaxLumaSR é o valor especificado na Tabela A-1 para a imagem n, desde que n imagem seja uma imagem que é emitida e não é a última imagem do fluxo de bits que é emitida. c) PicSizeInSamplesY <= MaxLumaPS, onde MaxLumaPS is specified in Table A-1. d) pic_width_in_luma_samples <= Sqrt( MaxLumaPS * 8 ) e) pic_height_in_luma_samples <= Sqrt( MaxLumaPS * 8 ) f) sps_max_dec_pic_buffering[ TargetDecHighestTid ] <= MaxDpbSize, onde MaxDpbSize é derivado como especificado pelo seguinte: se ( PicSizeInSamplesY <= ( MaxLumaPS >> 2 ) ) MaxDpbSize = Min( 4 * MaxDpbPicBuf, 16 ) mesmo se ( PicSizeInSamplesY <= ( MaxLumaPS >> 1 ) ) MaxDpbSize = Min( 2 * MaxDpbPicBuf, 16 ) mesmo se ( PicSizeInSamplesY <= ( MaxLumaPS << 1) / 3 ) MaxDpbSize = Min( (3 * MaxDpbPicBuf) >> 1, 16 ) mesmo se ( PicSizeInSamplesY <= ( ( 3 * MaxLumaPS ) >> 2 ) ) MaxDpbSize = Min( (4 * MaxDpbPicBuf) / 3, 16 ) mesmo MaxDpbSize = MaxDpbPicBuf onde MaxLumaPS é pespecificado na Tabela A-1 e MaxDpbPicBuf é igual a 6. Tabela A-1 especifica os limites para cada nível de cada camada. A utilização da coluna de parâmetro MinCR Tabela A-1 é especificada na subcláusula A.4.2. Uma camada e nível a que o fluxo de bits se conforma deve ser indicada pelos elementos de sintaxe general_tier_flag e general_level_idc como se segue. - general_tier_flag igual a 0 indica a conformidade com a camada principal e general_tier_flag igual a 1 indica a conformidade com a camada elevada, de acordo com as especificações de restrição de nível da Tabela A-1. general_tier_flag deve ser igual a 0 para níveis abaixo do nível 4 (correspondente às entradas na Tabela A1 marcadas com "-"). Exceto MaxBR e MaxCPB na Tabela A1 limites de nível são comuns tanto para ambas a camada principal e camada elevada. - general_level_idc deve ser igual ao valor de 30 vezes o número nível especificado na Tabela A1.
[0151] Tal como indicado no item (f) acima, os fluxos de bits em conformidade com um perfil em um nível especificado obedecem a restrição de que sps_max_dec_pic_buffering [TargetDecHighestTid] <= MaxDpbSize. TargetDecHighestTid pode ser definido da maneira descrita em outro local nesta descrição. Em contraste, Projeto de Trabalho 8 de HEVC indica para item (f) que os fluxos de bits em conformidade com um perfil em um nível especificado obedecem a restrição de que sps_max_dec_pic_buffering [Sps_max_temporal_layers_minus1] <= MaxDpbSize. Como indicado em outras partes desta divulgação, os parâmetros sps_max_dec_pic_buffering [i] não podem ser devidamente selecionados em restrições de nível. Substituindo sps_max_temporal_layers_minus1 com TargetDecHighestTid com o índice i de sps_max_dec_pic_buffering [i] pode, de acordo com uma ou mais técnicas desta divulgação, garantir que as restrições de nível sejam constantemente selecionadas com i igual ao valor claramente especificado de TargetDecHighestTid.
[0152] Deste modo, um processo de decodificação de um HRD pode decodificar, a partir de um SPS, uma matriz de elementos de sintaxe (por exemplo, sps_max_dec_pic_buffering []) onde cada um dos elementos de sintaxe na matriz indica um tamanho máximo requerido de um DPB do DRH. Além disso, quando um dispositivo realiza uma operação de HRD, o dispositivo pode determinar, com base no identificador temporal maior alvo (por exemplo, TargetDecHighestTid), um elemento de sintaxe particular na matriz (por exemplo, sps_max_dec_pic_buffering [TargetDecHighestTid]). Além disso, o dispositivo pode determinar que o fluxo de bits não está em conformidade com o padrão de codificação de vídeo, quando um valor de elemento de sintaxe particular é maior do que um tamanho máximo de DPB (por exemplo, MaxDpbSize).
[0153] Além disso, de acordo com um ou mais exemplos de técnicas desta divulgação, seção A.4.2 do Projeto de Trabalho 8 de HEVC pode ser alterada como se segue. Seção A.4.2 do Projeto de Trabalho 8 de HEVC descreve limites de nível específicos do perfil para o perfil principal. Tabela A-2 pode permanecer a mesma no Projeto de Trabalho 8 de HEVC. Fluxos de bits correspondam ao perfil principal em um nível especificado e nível obedece às seguintes restrições para os testes de conformidade de fluxo de bits, conforme especificado no Anexo C: a) o número de fatias (com dependent_slice _fag iguais a 0 ou 1) em uma imagem é inferior ou igual a MaxSlicesPerPicture, onde MaxSlicesPerPicture está especificado na Tabela Al. b) Para os parâmetros VCL DRH, BitRate [SchedSelldx] <= * cpbBrVclFactor MaxBR e CpbSize [SchedSelldx] <= * cpbBrVclFactor MaxCPB para pelo menos um valor de SchedSelldx, onde cpbBrVclFactor está especificado na Tabela A-2 e BitRate[SchedSelldx] e CpbSize [SchedSelldx] são dados como se segue. - Se vcl_hrd_parameters_present_flag é igual a 1, BitRate [SchedSelldx] e CpbSize [SchedSelldx] são dados pelas Equações E-45 e E-46, respectivamente, utilizando os elementos de sintaxe que são selecionados conforme especificado na subcláusula C1 - Caso contrário (vcl_hrd_parameters_present_flag é igual a 0), BitRate [SchedSelldx] e CpbSize [SchedSelldx] são inferidos, conforme especificado na subcláusula E.2.3 para parâmetros HRD VCL. MaxBR MaxCPB e estão especificados na Tabela A1 em unidades de cpbBrVclFactor bits/s e cpbBrVclFactor bits, respectivamente. O fluxo de bits deve satisfazer estas condições durante pelo menos um valor de SchedSelldx na faixa de 0 a cpb_cnt_minus1 [TargetDecHighestTid], inclusive. c) Para os parâmetros NAL HRD, BitRate [SchedSelldx] <= * cpbBrNalFactor MaxBR e CpbSize [SchedSelldx] <= * cpbBrNalFactor MaxCPB para pelo menos um valor de SchedSelldx, onde cpbBrNalFactor está especificado na Tabela A-2 e BitRate[SchedSelldx] e CpbSize [SchedSelldx] são dados como se segue. - Se nal_hrd_parameters_present_flag é igual a 1, BitRate [SchedSelldx] e CpbSize [SchedSelldx] são dados pelas Equações E-45 e E-46, respectivamente, utilizando os elementos de sintaxe que são selecionados conforme especificado na subcláusula C1 - Caso contrário (nal_hrd_parameters_present_flag é igual a 0), BitRate [SchedSelldx] e CpbSize [SchedSelldx] são inferidos, conforme especificado na subcláusula E.2.3 para parâmetros HRD NAL. MaxBR e MaxCPB estão especificadas na Tabela A1 em unidades de cpbBrNalFactor bits/s e cpbBrNalFactor bits, respectivamente. O fluxo de bits deve satisfazer estas condições durante pelo menos um valor de SchedSelldx na faixa de 0 a cpb_cnt_minus1 [TargetDecHighestTid], inclusive. d) A soma das variáveis NumBytesInNALunit para unidade de acesso 0 é menor do que ou igual a 1.5 * (Max (PicSizelnSamplesY, FR * MaxLumaSR) + MaxLumaSR * (tr(0)- t r,n (0))) ^ MinCR para o valor de PicSizelnSamplesY de imagem 0, onde MaxLumaPR e MinCR são os valores especificados no ‘Tabela A1 que se aplicam a imagem 0. e) A soma das variáveis NumBytesInNALunit para unidade de acesso n com n > 0 é menor do que ou igual a 1,5 * MaxLumaSR * (tr(n) - tr(n - 1)) ^ MinCR, onde MaxLumaSR e MinCR são os valores especificados na Tabela A-1 que se aplicam a imagem n. f) Para o nível 5 e níveis mais elevados, a variável CtbSizeY deve ser igual a 32 ou 64. g) O valor de NumPocTotalCurr deve ser inferior ou igual a 8. h) O valor de num_tile_columns_minus1 deve ser inferior a MaxTileCols e num_tile_rouws_minus1 deve ser inferior a MaxTileRows, onde MaxTileCols e MaxTileRows são os especificados na Tabela A1.
[0154] Como indicado em outras partes desta divulgação, os parâmetros cpb_cnt_minus1 [i] podem não ser devidamente selecionados em restrições de nível. Projeto de Trabalho 8 de HEVC especifica que "o fluxo de bits deve satisfazer estas condições durante pelo menos um valor de SchedSelldx na faixa de 0 a cpb_cnt_minus1, inclusive ..." Especificando TargetDecHighestTid com o índice i de cpb_cnt_minus1 [i] pode, de acordo com uma ou mais técnicas desta divulgação, garantir que as restrições de nível sejam constantemente selecionadas com i igual ao valor claramente especificado de TargetDecHighestTid.
[0155] Além disso, de acordo com uma ou mais das técnicas da presente divulgação, a subcláusula C.1 geral no Anexo C do Projeto de Trabalho 8 de HEVC pode ser modificada. Os valores de C1 e C-2 de da subcláusula C.1 de Projeto de trabalho 8 de HEVC pode permanecer o mesmo como no HEVC WD8. O texto da subcláusula C.1 de Projeto de Trabalho 8 de HEVC pode ser alterado da seguinte maneira. Este anexo especifica o decodificador de referência hipotético (HRD) e seu uso para verificar fluxo de bits e conformidade de decodificador. Dois tipos de fluxos de bits estão sujeitos a conformidade de HRD verificando por esta Especificação. O primeiro tipo de fluxo de bits, denominada de fluxo de bits Tipo I, é um fluxo de unidade de LNA contendo apenas as unidades de NAL VCL e unidades de NAL com nal_unit_type igual a FD_NUT (unidades de NAL de dados de enchimento) para todas as unidades de acesso no fluxo de bits. O segundo tipo de fluxo de bits, chamado um fluxo de bits tipo II, contém, além das unidades de NAL VCL dados de enchimento e unidades de NAL de dados de enchimento para todas as unidades de acesso no fluxo de bits, pelo menos um dos seguintes: - unidades de NAL não-VCL adicionais diferentes das unidades de NAL de dados de enchimento, - todos elementos de sintaxe leading_zero_8bits, byte zero, start_code_prefix_one_3bytes, e trailing_zero_8bits que formam um fluxo de bytes do fluxo de unidade de NAL (conforme especificado no anexo B). Figura C-1 mostra os tipos de pontos de conformidade de fluxo de bits verificados pelo DRH. Os elementos de sintaxe das unidades de NAL não VCL (ou seus valores padrão para alguns dos elementos de sintaxe), necessários para HRD são especificados nas subcláusulas semânticas da cláusula 7, Anexos D e E. Dois tipos de parâmetros HRD (parâmetros NAL HRD e parâmetros DRH VCL) são usados. Os parâmetros HRD são sinalizados através da estrutura de sintaxe de conjunto de parâmetros de vídeo ou por meio de informações de usabilidade de vídeo conforme especificado nas subcláusulas E.1 e E.2, que faz parte da estrutura de sintaxe de conjunto de parâmetros de sequência. Vários testes podem ser necessários para verificar a conformidade de um fluxo de bits. Para cada teste, as etapas a seguir aplicam-se, pela ordem indicada: 1. Um ponto de operação em teste, denominado TargetOp, é selecionado. TargetOp é identificado por OpLayerldSet igual a targetOpLayerldSet e OpTid igual a targetOpTid. targetOpLayerldSet contém o conjunto de valores para nuh_reserved_zero_6bits presentes no subconjunto de fluxo de bits associado com TargetOp e deve ser um subconjunto de valores de nuh_reserved_zero_6bits presentes no fluxo de bits em teste. targetOpTid é igual ao maior Temporalld presente no subconjunto de fluxo de bits associado com TargetOp e deve ser inferior ou igual a greatestTemporalld presente no fluxo de bits em teste. 2. TargetDecLayerldSet é definido como targetOpLayerldSet, TargetDecHighestTid é definido como targetOpTid, e BitstreamToDecode é definido para a saída do processo de extração de subfluxo de bits, conforme especificado em subcláusula 10.1 com TargetDecHighestTid e TargetDecLayerldSet como entradas. 3. A estrutura de sintaxe hrd_parameters()e a estrutura de sintaxe sub_layer_hrd_parameters() aplicável a TargetOp são selecionadas. Se TargetDecLayerldSet contém apenas o valor 0, a estrutura de sintaxe hrd_parameters () no conjunto de parâmetros de sequência ativo é selecionada. Caso contrário, a estrutura de sintaxe hrd_parameters () que está no conjunto de parâmetro de sequência ativo (ou fornecida por meio de um elemento externo) e para o qual o conjunto de valores especificados por op_layer_id [opldx] [i] para i na faixa de 0 a op_num_layer_id_values_minus I [opldx], inclusive, é idêntico ao TargetDecLayerldSet é selecionado. Dentro da estrutura de sintaxe hrd_parameters() selecionada, se BitstreamToDecode é um fluxo de bits Tipo I, a estrutura de sintaxe sub_layer_hrd_parameters (TargetDecHighestTid) que se segue imediatamente à condição "se vcl_hrdParameters_present_flag)" é selecionado (neste caso a variável NalHrdModeFlag é definida igual a 0), caso contrário, (BitstreamToDecode é um fluxo de bits Tipo II), a estrutura de sintaxe sub_layer_hrd_parameters (TargetDecHighestTid) que que segue imediatamente a condição "Se (vcl_hrd_parameters_present_flag)" (neste caso, a variável NalHrdModeFlag é definida igual a 0) ou a condição "se nal_hrd__parameters_present_flag)" (neste caso, a variável NalHrdModeFlag é definida igual a 1) é selecionado, e todas as unidades de NAL não-VCL exceto para unidades de NAL de dados de enchimento são descartadas a partir de BitstreamToDecode no primeiro caso, e o resultado é atribuído a BirstreamToDecode. 4. Uma unidade de acesso associada a uma mensagem SEI de período de armazenamento em buffer aplicável a TargetOp é selecionada como o ponto de inicialização de HRD e referida como unidade de acesso 0. 5. Mensagens SEI, incluindo informações de tempo são selecionadas. A mensagem SEI de período de armazenamento em buffer que é codificada na unidade de acesso 0 e se aplica a TargetOp, como indicado pela estrutura de sintaxe applicable_operation_points(), é selecionada. Para cada unidade de acesso em BitstreamToDecode a partir de unidade de acesso 0, a mensagem SEI de temporização de imagem que está associada com a unidade de acesso e aplica-se a TargetOp, como indicado pela estrutura de sintaxe applicabel_operation _points(), é selecionada, e quando SubPicCpbFlag é igual a I e sub_pic_cpb_param_in_pic_timing_sei_flag é igual a 0, as mensagens SEI de temporização de subimagem que estão associadas com unidades de decodificação na unidade de acesso e se aplicam a TargetOp, como indicado pelas estruturas de sintaxe applicable_operation_points(), são selecionados. 6. Um valor de SchedSelldx é selecionado. O SchedSelldx selecionado deve estar na faixa de 0 a cpb_cnt_minus1 [TargetDecHighestTid], inclusive, onde cpb_cnt_minus1 [TargetDecHighestTid] é encontrado na estrutura de sintaxe sub_layer_hrd_parameters (TargetDecHighestTid) como selecionado acima. 7. O retardo de remoção de CPB inicial e desvio de retardo é selecionado e unidades de acesso de TFD associadas a unidade de acesso 0 podem ser descartadas de BitstreamToDecode. Se a imagem codificada em unidade de acesso 0 tem nal_unit_type igual CRA_NUT ou BLA_W_LP, e rap_cpb_params_present_flag na mensagem SEI de período de armazenamento em buffer selecionada é igual a 1, ou o retardo inicial de remoção de CPB padrão e desvio de retardo representado por initial_cpb_removal_delay [SchedSelldx] e initial_cpb_removal_delay_offset [SchedSelldx] correspondente a NalHrdModeFlag (neste caso a variável DefaultlnitCpbParamsFlag é definida igual a 1) ou o retardo de remoção de CPB inicial alternativo e desvio de retardo representado por initial_alt_cpb_removal_delay [SchedSelldx] e initial_alt_cpb_removal_delay_offset [SchedSelldx] correspondente a NalHrdModeFlag (neste caso, a variável DefaultlnitCpbParamsFlag é definida igual a 0) é selecionada, e unidades de acesso de TFD associada a unidade de acesso 0 são descartadas a partir de BitstreamToDecode neste último caso, e o resultado é atribuído a BitstreamToDecode. Caso contrário, o retardo de remoção de CPB inicial e desvio de retardo de padrão é selecionada (neste caso a variável DefaultlnitCpbParamsFlag é definida igual a 1). O número de testes de conformidade de fluxo de bits realizados é igual a N1 * N2 * N3 * (N4 * 2 + N5), onde os valores de N1, N2, N3, N4 e N5, são os seguintes. - N1 é o número de pontos de operação contidos no fluxo de bits em teste. - Se BitstreamToDecode é um fluxo de bits tipo I, N2 é igual a 1, de outra forma (BitstreamToDecode é um fluxo de bits Tipo II) N2 é igual a 2. - N3 é igual a cpb_cnt_minus1 [TargetDecHighestTid J + I. - N4 é o número de unidades de acesso associadas com as mensagens SEI de período de armazenamento em buffer aplicáveis a TargetOp em BitstreamToDecode, onde a imagem codificada em cada uma dessas unidades de acesso tem nal_unit_type igual a CRA_NUT ou BLA_W_LP, e a mensagem SEI de período de armazenamento em buffer associada aplicável a TargetOp tem rap_cpb_params_present_flag igual a 1. - N5 é o número de unidades de acesso associadas com as mensagens SEI de período de armazenamento em buffer aplicáveis a TargetOp em BitstreamToDecode, onde a imagem codificada em cada uma destas unidades de acesso tem nal_unit_type não igual a um de CRA_NUT e BLA_W_LP, ou o mensagem SEI de período de armazenamento em buffer associada aplicável a TargetOp tem rap_cpb_params_present_flag igual a 0. Quando BitstreamToDecode é um fluxo de bits tipo II, se a estrutura de sintaxe sub_layer_hrd_parameters (TargetDecHighestTid) que se segue imediatamente a condição "se (vcl_hrd_parameters_present_flag)" é selecionado, o teste é realizado no ponto de conformidade Tipo I mostrado na Figura C-1, e apenas as unidades de NAL de dados de enchimento e VCL são contadas para a taxa de bits de entrada e armazenamento CPB; caso contrário (a estrutura de sintaxe sub_layer_parameters_hrd (TargetDecHighestTid) que se segue imediatamente a condição "se nal_hrd_parameters_present_flag)" é selecionado, os testes são realizados no ponto de conformidade Tipo II mostrado na Figura C-1, e todas as unidades de NAL (de um fluxo de unidades de NAL tipo II) ou todos os bytes (de um fluxo de bytes) são contados para a taxa de bits de entrada e armazenamento CPB. NOTA 3 - Parâmetros de NAL HRD estabelecidos por um valor de SchedSelldx para o ponto de conformidade Tipo II mostrado na Figura C-1 são suficientes para estabelecer também conformidade VCL HRD para o ponto de conformidade Tipo I mostrado na Figura C-1 para os mesmos valores de InitCpbRemovalDelay [SchedSelldx], BitRate [SchedSelldx], e CpbSize [SchedSelldx] para o caso VBR (cbr_flag [SchedSelldx] igual a 0). Isso ocorre porque o fluxo de dados para o ponto de conformidade tipo I é um subconjunto do fluxo de dados para o ponto de conformidade Tipo II e porque, para o caso de VBR, o CPB é permitido tornar-se vazio e ficar vazio até o momento que uma próxima imagem é programada para começar a chegar. Por exemplo, quando a decodificação de uma sequência de vídeo codificado em conformidade com um ou mais dos perfis especificados no Anexo A, utilizando o processo de decodificação especificado nas cláusulas 2-9, quando os parâmetros HRD NAL são fornecidos para o ponto conformidade Tipo II que não só estão dentro dos limites estabelecidos para os parâmetros HRD NAL para conformidade de perfil no item c) da subcláusula A.4.2 mas também se enquadram dentro dos limites estabelecidos para os parâmetros HRD VCL para a conformidade de perfil no item b) da subcláusula A.4.2, conformidade do VCL HRD para a ponto de conformidade Tipo I é também assegurada estando dentro dos limites do item b) da subcláusula A.4.2. Todos os conjuntos de parâmetros de vídeo, conjuntos de parâmetros de sequência de conjuntos de parâmetros de imagens referidos nas unidades de NAL VCL e do período de armazenamento em buffer correspondente e mensagens SEI de temporização de imagem devem ser encaminhados ao HRD, em tempo hábil, ou no fluxo de bits (por unidades de NAL não-VCL), ou por outros meios não especificados nesta Especificação. Nos anexos C, D, e E, a especificação para "presença" de unidades de NAL não-VCL também é satisfeita quando essas unidades de NAL (ou apenas algumas delas) são encaminhadas para os decodificadores (ou para o HRD) por outros meios não especificados pela presente especificação. Para efeitos de bits de contagem, apenas os bits apropriados que estão, na verdade, presentes no fluxo de bits são contados. NOTA 1 - Como um exemplo, a sincronização de uma unidade de NAL não-VCL, transmitida por meios diferentes de presença no fluxo de bits, com as unidades de NAL que estão presentes no fluxo de bits, pode ser conseguida indicando dois pontos no fluxo de bits, entre os quais a unidade de NAL não-VCL estaria presente no fluxo de bits, tinha o codificador decidido transmiti-la no fluxo de bits. Quando o conteúdo de uma unidade de NAL não-VCL é transportado para o aplicativo, por meios diferentes da presença no fluxo de bits, a representação do conteúdo da unidade de NAL não-VCL não é necessária para usar a mesma sintaxe tal como especificado nesta divulgação. NOTA 2 - Quando a informação de HRD está contida dentro do fluxo de bits, é possível verificar a conformidade de um fluxo de bits com os requisitos desta subcláusula com base apenas nas informações contidas no fluxo de bits. Quando a informação de HRD não está presente no fluxo de bits, como é o caso para todos fluxos de bits Tipo I "autônomos", conformidade só pode ser verificada quando os dados de HRD são fornecidos por outros meios não especificados nesta Especificação. O HRD contém um buffer de imagem codificada (CPB), um processo de decodificação instantânea, um buffer de imagem decodificada (DPB), e saída de corte, como mostrado na Figura C-2. Para cada teste de conformidade de fluxo de bits, o tamanho de CPB (número de bits) é CpbSize [SchedSelldx], conforme especificado pela equação E-46, onde SchedSelldx e os parâmetros HRD são selecionados como especificado acima nesta subcláusula. O tamanho de DPB (número de buffers de armazenamento de imagem) é sps_max_dec_pic_buffering [TargetDecHighestTid]. A variável SubPicCpbPreferredFlag é quer especificada por elementos externos, ou quando não especificada por elementos externos, ajustada para 0. A variável SubPicCpbFlag é derivada como segue: SubPicCpbFlag = SubPicCpbPreferredFlag && sub_pic_cpb_params_present_flag (C- 1) Se SubPicCpbFlag é igual a 0, o CPB opera a nível da unidade de acesso e cada unidade de decodificação é uma unidade de acesso. Caso contrário, o CPB opera a nível de subimagem e cada unidade de decodificação é um subconjunto de uma unidade de acesso. O HRD opera como se segue. Dados associados com as unidades de decodificação que fluem para o CPB de acordo com um programa de chegada especificado são entregues pelo HSS. Os dados associados com cada unidade de decodificação são removidos e decodificados instantaneamente pelo processo de decodificação instantânea no tempo de remoção de CPB da unidade de decodificação. Cada imagem decodificada é colocada no DPB. Uma imagem decodificada é removida do DPB como especificado na subcláusula C.3.1 ou subcláusula C.5.2. A operação do CPB para cada teste de conformidade de fluxo de bits é especificada na subcláusula C.2. A operação de decodificador instantânea é especificada nas cláusulas 2-9. A operação do DPB para cada teste de conformidade de fluxo de bits é especificada na subcláusula C.3. A saída de corte para cada teste de conformidade de fluxo de bits é especificada na subcláusula C.3.2 e subcláusula C.5.2. Informações de HSS e HRD sobre o número de programações de entrega enumerados e suas taxas de bits associadas e tamanhos de buffer são especificadas nas subcláusulas E.1.1, E.1.2, E.2.1 e E.2.2. O HRD é inicializado como especificado pela mensagem SEI de período de armazenamento em buffer, conforme especificado nas subcláusulas D1.1 e D.2.1. O tempo de remoção de unidades de decodificação do CPB e tempo de saída de imagens decodificado do DPB são especificados na mensagem SEI de temporização de imagem especificada nas subcláusulas D.1.2 e D.2.1. Todas as informações de temporização relativas a uma unidade de decodificação específica devem chegar antes do tempo de remoção de CPB da unidade de decodificação. Os requisitos para conformidade de fluxo de bits são especificados na subcláusula C.4, e o HRD é utilizado para verificar a conformidade de decodificadores, conforme especificado na subcláusula C.5. NOTA 3 - Enquanto a conformidade é garantida sob o pressuposto de que todas as taxas de imagem e relógios usados para gerar o conjunto de fluxo de bits combinam exatamente com os valores sinalizados no fluxo de bits, em um sistema real cada um destes pode variar do valor sinalizado ou especificado. Toda a aritmética neste anexo é feita com valores reais, de modo que nenhum erro de arredondamento pode se propagar. Por exemplo, o número de bits de um CPB imediatamente antes ou depois da remoção de uma unidade de decodificação não é necessariamente um número inteiro. A variável tc é derivada da seguinte forma e é chamada de um tique do relógio: tc = num_units_in_tick_ ^ time_scale (C1) A variável tc_sub é derivada da seguinte forma e é chamada de um tique de relógio de subimagem: tc_sub = tc + (tick_divisor_minus2 + 2) (C-2) O que se segue é especificado para expressar as restrições constantes do presente anexo: - Deixe unidade de acesso n ser a n-ésima unidade de acesso, em ordem de decodificação com a primeira unidade de acesso sendo a unidade de acesso 0 (ou seja, a 0-ésima unidade de acesso). - Deixe imagem n ser a imagem codificada ou a imagem decodificada da unidade de acesso n. - Deixa unidade de decodificação m ser a m-ésima unidade de decodificação em ordem de decodificação com a primeira unidade de decodificação sendo a unidade de decodificação 0.
[0156] As modificações para seção C.1 de Projeto de Trabalho 8 de HEVC acima podem esclarecer os testes de conformidade de fluxo de bits. Como indicado acima, quando o processo de decodificação é invocada para o teste de conformidade de fluxo de bits do Projeto de Trabalho 8 de HEVC, a semântica dos elementos de sintaxe não está claramente especificada assim como os valores de TargetDecLayerldSet e TargetDecHighestTid não estão configurados corretamente. As modificações para seção C.1 clareiam as definições de TargetDecLayerldSet e TargetDecHighestTid.
[0157] Tal como mostrado nas modificações acima para seção C.1 do Projeto de trabalho 8 de HEVC, um dispositivo pode realizar uma operação de HRD (tal como um teste de conformidade de fluxo de bits), que seleciona um ponto de operação, determina um conjunto alvo de identificadores de camada (TargetDecLayerldSet) do ponto de operação e identificador temporal maior (TargetDecHighestTid). Além disso, na operação de HRD, o dispositivo pode selecionar um conjunto de parâmetros HRD aplicável para o ponto de operação e usar o conjunto selecionado de parâmetros HRD para configurar um HRD que realiza o processo de decodificação. O conjunto de parâmetros HRD aplicável para o ponto de operação particular pode incluir parâmetros que especificam um retardo de remoção de CPB inicial, um tamanho de CPB, uma taxa de bits, um retardo inicial de saída de DPB, um tamanho de DPB, e assim por diante. A operação de HRD pode incluir a realização de um processo de decodificação.
[0158] Em alguns exemplos, o dispositivo pode selecionar, dentre um ou mais conjuntos de parâmetros HRD (por exemplo, estruturas de sintaxe hrd_parameters ()) em um VPS e um conjunto de parâmetros HRD em um SPS, o conjunto de parâmetros aplicável de HRD para o ponto de operação. Em alguns exemplos, o dispositivo pode determinar que o conjunto de parâmetros HRD no SPS é aplicável ao ponto de operação particular quando um conjunto de identificador de camada do ponto de operação contém um conjunto de todos os identificadores de camadas presentes em uma sequência de vídeo codificado associada com o SPS. Além disso, em alguns exemplos, o dispositivo pode selecionar o conjunto de parâmetros HRD do SPS em resposta à determinação de que o identificador de conjunto da camada alvo (por exemplo, TargetDecLayerldSet) do ponto de operação contém apenas o valor 0. Em alguns exemplos, o dispositivo pode selecionar um conjunto de parâmetros HRD no SPS em resposta à determinação de que um conjunto de identificadores de camada (por exemplo, op_layer_id [] []) é idêntico ao conjunto identificador de camada alvo (por exemplo, TargetDecLayerldSet) do ponto de operação.
[0159] Além disso, como mostrado nas modificações acima para a seção C.1 do Projeto de Trabalho 8 de HEVC e outras partes desta divulgação, o dispositivo pode decodificar, a partir de um SPS, a matriz de elementos de sintaxe (sps_max_dec_pic_buffering []) que cada uma indica o tamanho requerido máximo de um DPB do HRD. O dispositivo pode determinar, com base no identificador temporal maior alvo, um elemento de sintaxe particular na matriz (isto é, sps_max_dec_pic_buffering [TargetDecHighestTid]). Tal como acima indicado, um número de buffers de armazenamento de imagem no DPB é indicado pelo elemento de sintaxe particular (isto é, o tamanho DPB (número de buffers de armazenamento de imagem) é sps_max_dec_pic_buffering [TargetDecHighestTid]).
[0160] Além disso, um processo de decodificação pode decodificar uma estrutura de sintaxe de parâmetros HRD (hrd_parameters ()), que inclui o conjunto selecionado de parâmetros HRD. O conjunto selecionado de parâmetros HRD inclui uma matriz de elementos de sintaxe (cbp_cnt_minus1 []) que cada uma indica o número de especificações de CPB alternativos no fluxo de bits. As modificações para seção C1 do Projeto de Trabalho 8 de HEVC esclarecem que quando um dispositivo realiza uma operação de HRD, o dispositivo pode selecionar, com base no identificador temporal maior alvo (TargetDecHighestTid), um elemento de sintaxe particular na matriz (cpb_cnt_minus1 [TargetDecHighestTid]) e pode selecionar um índice de seleção de programador (SchedSelldx) em uma faixa de 0 a um valor do elemento de sintaxe particular. O dispositivo pode determinar, com base, pelo menos em parte, no índice de seleção de programador, um retardo de remoção de CPB inicial de um CPB do DRH.
[0161] Seção C.2.1 de Projeto de Trabalho 8 de HEVC refere-se a remoção de imagens do DPB para conformidade de fluxo de bits. De acordo com um ou mais exemplos de técnicas desta divulgação, de seção C.2.1 Projeto de Trabalho 8 de HEVC pode ser alterado como se segue: As especificações nesta subcláusula aplicam-se de forma independente a cada conjunto de parâmetros de DPB selecionados conforme especificado na subcláusula C.1 A remoção de imagens do DPB antes decodificação da imagem atual (mas depois de analisar o cabeçalho de fatia de a primeira fatia da imagem atual) acontece instantaneamente no momento de remoção de CPB da primeira unidade de decodificação de unidade de acesso n (que contém a imagem atual) e prossegue da seguinte forma. O processo de decodificação para conjunto de imagem de referência, conforme especificado na subcláusula 8.3.2 é invocado. Se a imagem atual é um IDR ou uma imagem BLA, é aplicável o seguinte: 1. Quando a Imagem IDR ou BLA não é a primeira imagem decodificada e o valor de pic_width_in_luma_samples ou pic_heigth_in_luma_samples ou sps_max_dec_pic_buffering [TargetDecHighestTid] derivado do conjunto de parâmetros de sequência ativo é diferente do valor de pic_width_in_luma ou pic_heigth_in_luma_samples ou sps_max_dec_pic_buffering [TargetDecHighestTid] derivado do conjunto de parâmetro de sequência que estava ativo para a imagem anterior, respectivamente, no_output_of_prior_pics_flag é inferido a ser igual a 1 pelo HRD, independentemente do valor real de no_output_of_prior_pics_flag. NOTA - Implementações de decodificador devem tentar lidar com mudanças de imagem ou tamanho de DPB mais levemente do que o HRD no que diz respeito a mudanças em pic_width_in_luma_samples, pic_heigth_in_luma_samples, ou sps_max_dec_pic_buffering [TargetDecHighestTid]. 2. Quando no_output_of_prior_pics_flag é igual a 1 ou é inferido a ser igual a 1, todos os buffers de armazenamento de imagens no DPB são esvaziados sem emissão das imagens que eles contêm, e plenitude de DPB é definido como 0. Todas as imagens de k no DPB, para as quais ambas as seguintes condições forem verdadeiras, são removidas do DPB: - Imagem k é marcada como "fora de uso por referência", - Imagem k tem PicOutputFlag igual a 0 ou seu tempo de saída do DPB é inferior ou igual ao tempo de remoção de CPB da primeira unidade de decodificação (denotada como unidade de decodificação m), da imagem atual n; ou seja, to,dpb(k) <= tr (m) Quando uma imagem é removida do DPB, a plenitude DPB é diminuída em um.
[0162] Conforme indicado em outras partes desta divulgação, os parâmetros sps_max_dec_pic_buffering [i] podem não ser devidamente selecionados em operações de DRH. Projeto de Trabalho 8 de HEVC apenas indica sps_max_dec_pic_buffering [i] em vez de sps_max_dec_pic_buffering [TargetDecHighestTid], como mostrado acima. Projeto de Trabalho 8 de HEVC não indica a semântica do índice i na seção C.2.1. Especificar TargetDecHighestTid com o índice i de sps_max_dec_pic_buffering [i] pode, de acordo com uma ou mais técnicas desta divulgação, garantir que i igual ao valor especificado claramente de TargetDecHighestTid é usado em sps_max_dec_pic_buffering [i] ao realizar a operação de HRD de remover imagensdo DPB.
[0163] Tal como mostrado nas modificações acima a seção C.2.1 de Projeto de trabalho 8 de HEVC, um dispositivo pode decodificar, a partir de um SPS ativo para uma imagem atual, uma primeira matriz de elementos de sintaxe (sps_max_dec_pic_buffering []) que indicam, cada um, no máximo tamanho requerido de um DPB do HRD. Além disso, o dispositivo pode decodificar, a partir de um SPS ativo para uma imagem anterior, uma segunda matriz de elementos de sintaxe (sps_max_dec_pic_buffering []) onde cada um indica um tamanho máximo requerido do DPB do DRH. O dispositivo pode determinar, com base no identificador temporal maior alvo (TargetDecHighestTid), um primeiro elemento de sintaxe na primeira matriz (sps_max_dec_pic_buffering [TargetDecHighestTid]). Além disso, o dispositivo pode determinar, com base no identificador temporal maior alvo, um segundo elemento de sintaxe na segunda matriz (Sps_max_dec_pic_buffering [TargetDecHighestTid]). Quando a imagem em curso é uma imagem de renovação de decodificação instantânea (IDR) ou uma imagem de acesso de link quebrado (BLA) e um valor do primeiro elemento de sintaxe é diferente de um valor do segundo elemento de sintaxe, o dispositivo pode inferir um valor de um terceiro elemento de sintaxe (no_output_of_prior_pics_fiag), independentemente do valor indicado pelo terceiro elemento de sintaxe. O terceiro elemento de sintaxe pode especificar como as imagens previamente decodificadas no DPB são tratadas após a decodificação de uma imagem IDR ou imagem BLA.
[0164] Uma imagem IDR pode ser uma imagem de ponto de acesso aleatório (RAP) para que cada segmento de fatia tem um nal_unit_type igual a IDR_W_LP ou IDR_N_LP. Uma imagem IDR contém apenas fatias I, e pode ser a primeira imagem no fluxo de bits, em ordem de decodificação, ou pode aparecer mais tarde no fluxo de bits. Uma imagem IDR tendo nal_unit_type igual a IDR_N_LP não têm imagens líderes associadas presentes no fluxo de bits. Uma imagem líder é uma imagem que precede a imagem RAP associada na ordem de saída. Uma imagem IDR tendo nal_unit_type igual a IDR_W_LP não tem imagens marcadas para descarte (TFD) associadas presentes no fluxo de bits, mas pode ter imagens DLP associadas no fluxo de bits.
[0165] Uma imagem BLA é uma imagem RAP para a qual cada segmento de fatia tem nal_unit_type igual a BLA_W_TFD, BLA_W_DLP ou BLA_N_LP. Uma imagem BLA tendo nal_unit_type igual a BLA_W_TFD pode ter imagens TFD associadas presentes no fluxo de bits. Um imagem BLA tendo nal_unit_type igual a BLA_N_LP não têm imagens líderes associadas presentes no fluxo de bits. A imagem BLA tendo nal_unit_type igual a BLA_W_DLP não têm imagens TFD associadas presentes no fluxo de bits, mas pode ter imagens DLP associadas no fluxo de bits.
[0166] Seção C.3 do Projeto de Trabalho 8 de HEVC descreve as operações de conformidade de fluxo de bits. De acordo com um ou mais exemplos de técnicas desta divulgação, seção C.3 do Projeto de Trabalho 8 de HEVC pode ser modificada como segue: Um fluxo de bits de dados codificados em conformidade com esta especificação deve cumprir todos os requisitos especificados nesta subcláusula. O fluxo de bits deve ser construído de acordo com a sintaxe, semântica e restrições especificadas nesta Especificação fora do presente anexo. A primeira imagem codificada em um fluxo de bits deve ser uma imagem RAP, ou seja, uma imagem IDR, uma imagem CRA, ou uma imagem BLA. Para cada imagem atual que é decodificada, deixar as variáveis maxPicOrderCnt e minPicOrderCnt serem iguais ao máximo e mínimo, respectivamente, dos valores PicOrderCntVal das seguintes imagens: - A imagem atual. - A imagem anterior, em ordem de decodificação que tem Temporalld igual a 0. - As imagens de referência de curto prazo no conjunto de imagem de referência da imagem atual. - Todas as imagens n que tem PicOutputFlag igual a 1 e tr (n) < tr (currPic) e, do,dbp (n)> = tr (currPic), onde currPic é a imagem atual. Todas as seguintes condições devem ser cumpridas para cada um dos testes de conformidade de fluxo de bits: 1. Por cada unidade de acesso n, com n > 0, associado a uma mensagem SEI de período de armazenamento em buffer, com Δtg,90(n) determinado por Δtg,90(n) = 90000 * (tr,n(n) - taf{n - 1)) (C-18), o valor de InitCpbRemovalDelay [SchedSelldx] deve ser restringido como se segue. - Se cbr_flag [SchedSelldx] é igual a 0, InitCpbRemovalDelay [SchedSelldx] <= Ceil(Δtg,90(n)) (C-19) - Caso contrário (cbr_flag [SchedSelldx] é igual a 1), Floor (Δtg,90(n)) <= InitCpbRemovalDelay [SchedSelldx] <= Ceil (Δtg,90(n)) (C-20) NOTA 4 - O número exato de bits no CPB no momento de remoção de cada imagem pode depender de qual mensagem SEI de período de armazenamento em buffer é selecionada para inicializar o DRH. Codificadores devem levar isso em consideração para garantir que todas as restrições especificadas sejam obedecidas, independentemente de qual mensagem SEI de período de armazenamento em buffer é selecionada para inicializar o HRD, assim como o HRD pode ser inicializado em qualquer uma das mensagens SEI de período de armazenamento em buffer. 2. Um sobrefluxo de CPB é especificado como a condição na qual o número total de bits no CPB é maior do que o tamanho de CPB. O CPB nunca deve exceder. 3. Um subfluxo de CPB é especificado como a condição em que o tempo nominal de remoção de CPB de unidade de decodificação m tr,n(m) é menor que o tempo de chegada de CPB final da unidade de decodificação m taf(m) em, pelo menos, um valor de m. Quando low_delay_hrd_flag é igual a 0, o CPB nunca deve estar abaixo do fluxo. 4. Quando low_delay_hrd_flag é igual a 1, um subfluxo de CPB pode ocorrer na unidade de decodificação m. Neste caso, o tempo de chegada de CPB final da unidade de acesso n contendo unidade de decodificação mat(n) deve ser maior do que o tempo de remoção de CPB nominal da unidade de acesso n contendo unidade de decodificação mtr,n(n). 5. Os tempos de remoção nominais de imagens do CPB (a partir da segunda imagem em ordem de decodificação), devem satisfazer as restrições sobre tr,n (n) e tr(n), expressas nas subcláusulas A.4.1 a A.4.2. 6. Para cada imagem atual que é decodificada, depois de invocação do processo para a remoção de imagens do DPB, conforme especificado na subcláusula C.3.1, o número de imagens decodificadas no DPB, incluindo todas as imagens n que são marcadas como "usado para referência" ou que têm PicOutputFlag igual a 1 e t0,dpb(n) > = tr (currPic), onde currPic é a imagem atual, deve ser inferior ou igual a Máx (0, sps_max_dec _pic_bufferingf TargetDecHighestTid J - I). 7. Todas as imagens de referência devem estar presentes no DPB quando necessário para a predição. Cada imagem que tem OutputFlag igual a 1 deve estar presente no DPB no tempo de saída de DPB a menos que seja removido do DPB antes do tempo de saída por um dos processos referidos na subcláusula C.3. 8. Para cada imagem atual que é decodificada, o valor de maxPicOrderCnt - minPicOrderCnt deve ser inferior a MaxPicOrderCntLsb / 2. 9. O valor de A to,dpb(n) como dado pela Equação C-17, que é a diferença entre o tempo de saída de uma imagem e aquele da primeira imagem que seguinte, em ordem de saída e tendo PicOutputFlag igual a 1, deve satisfazer a restrição expressa na subcláusula A.4.1 para o perfil, camada e nível especificado no fluxo de bits usando o processo de decodificação especificado nas cláusulas 2-9.
[0167] Conforme indicado em outras partes desta divulgação, os parâmetros sps_max_dec_pic_buffering [i] podem não ser devidamente selecionados em operações de conformidade de fluxo de bits. No item 6 da seção C.3, Projeto de Trabalho 8 de HEVC indica que "o número de imagens decodificadas no DPB ... deve ser inferior ou igual a Min (0, sps_max_dec_pic_buffering [Temporalld] - 1)", onde Temporalld não está definido, especificar TargetDecHighestTid com o índice i de sps_max_dec_pic_buffering [i] pode, de acordo com uma ou mais técnicas desta divulgação, garantir que i igual ao valor claramente especificado. TargetDecHighestTid é usado em sps_max_dec_pic_buffering [i] ao realizar as operações de conformidade de fluxo de bits.
[0168] Quando um dispositivo realiza um processo de decodificação, como parte de uma operação de HRD, o dispositivo pode decodificar, a partir de um SPS, uma matriz de elementos de sintaxe (sps_max_dec_pic_buffering []), que indicam, cada um tamanho máximo requerido de um DPB do DRH. Além disso, como parte da realização da operação de HRD, o dispositivo pode determinar, com base no identificador temporal maior alvo (TargetDecHighestTid), um elemento de sintaxe particular na matriz. Além disso, como mostrado nas modificações acima na seção C.3 do Projeto de trabalho 8 de HEVC, o dispositivo pode determinar, com base, pelo menos em parte, no fato de que um número de imagens decodificadas no DPB é menor do que ou igual ao máximo de 0 e um valor do elemento de sintaxe particular menos 1, se o fluxo de bits se conforma com o padrão de codificação de vídeo.
[0169] Seção C.4 de Projeto de Trabalho 8 de HEVC descreve conformidade de decodificador. De acordo com um ou mais exemplos de técnicas desta divulgação, seção C.4 do Projeto de Trabalho 8 de HEVC pode ser alterada como se segue: Um decodificador em conformidade com esta especificação deve cumprir todos os requisitos especificados nesta subcláusula. Um decodificador alegando conformidade com um perfil específico, nível e grau, deve ser capaz de decodificar com sucesso todos os fluxos de bits que estão em conformidade com os requisitos de conformidade de fluxo de bits especificados na subcláusula C.4, na forma especificada no anexo A, desde que todos os conjuntos de parâmetros de vídeo, conjuntos de parâmetros de sequência e conjuntos de parâmetros de imagem referidos nas unidades de NAL VCL, e período de armazenamento em buffer adequado e mensagens SEI de temporização de imagem sejam encaminhados para o decodificador, em tempo hábil, ou no fluxo de bits (por unidades de NAL não-VCL), ou por elementos externos não especificados por esta Especificação. Quando um fluxo de bits contém elementos de sintaxe que possuem valores que são especificados como reservados e é especificado que os decodificadores devem ignorar valores dos elementos de sintaxe ou unidades de NAL contendo os elementos de sintaxe com os valores reservados, e o fluxo de bits é que se conforma, caso contrário com esta especificação, um decodificador de conformidade deverá decodificar o fluxo de bits, da mesma maneira como iria decodificar um fluxo de bits conforme e ignorar os valores dos elementos de sintaxe ou unidades de NAL contendo os elementos de sintaxe com os valores reservados como especificado. Existem dois tipos de conformidade que podem ser reivindicados por um decodificador: conformidade de temporização de saída e conformidade de ordem de saída. Para verificar a conformidade de um decodificador, fluxos de bits de teste em conformidade com o perfil alegado, camada e nível, conforme especificado pela subcláusula C.4 são entregues por um programador de fluxo hipotético (HSS), ambos para o HRD e o decodificador em teste (DUT). Todas as imagens de saída pelo DRH devem também ser emitidas pelo DUT e, para cada imagem emitida pelo DRH, os valores de todas as amostras que são emitidos pelo DUT para a imagem correspondente é igual aos valores das amostras emitidas pelo HRD. Para a conformidade de decodificador de temporização de saída, o HSS opera como descrito acima, com prazos de entrega selecionados apenas do subconjunto de valores de SchedSelldx para o qual a taxa de bits e tamanho de CPB são restritos, conforme especificado no anexo A para o perfil especificado, camada e nível, ou com programações de entrega "interpoladas", conforme especificado abaixo para as quais a taxa de bits e tamanho de CPB são restritos, conforme especificado no Anexo A. O mesmo programa de entrega é usado tanto para o HRD quanto para DUT. Quando os parâmetros de DRH e as mensagens SEI de período de armazenamento em buffer estão presentes com cpb_cnt_minus1 [TargetDecHighestTid] maior que 0, o decodificador deve ser capaz de decodificar o fluxo de bits como entregue a partir do HSS operar usando um programa de entrega "interpolado" especificado como tendo pico de taxa de bits r , tamanho de CPB c(r), e retardo de remoção de CPB inicial (f(r) ^ r) como se segue: α = ( r - BitRate[ SchedSelIdx - 1 ] ) + ( BitRate[ SchedSelIdx ] - BitRate[ SchedSelIdx - 1 ] ), (C- 22) c( r ) = α * CpbSize[ SchedSelIdx ] + (1 - α) * CpbSize[ SchedSelIdx-1 ], (C-23) f( r ) = α*InitCpbRemovalDelay[ SchedSelIdx ] * BitRate[ SchedSelIdx ] + ( 1 - α ) *InitCpbRemovalDelay[ SchedSelIdx - 1 ] * BitRate[ SchedSelIdx - 1 ](C-24) para qualquer SchedSelIdx > 0 e r tal que BitRate[ SchedSelIdx - 1 ] <= r <= BitRate[ SchedSelIdx ] tal que r e c (r) estão dentro dos limites especificados no Anexo A para a taxa máxima de bits e tamanho do buffer para o perfil especificado, camada e nível. NOTA 1 - InitCpbRemovalDelay [SchedSelldx] pode ser diferente de um período de armazenamento em buffer para outro e têm de voltar a ser calculado. Para conformidade de decodificador de temporização de saída de decodificador, um HRD como descrito acima é utilizado e a temporização (em relação ao tempo de entrega do primeiro bit) de saída de imagem é a mesma para ambos HRD e o DUT até a um retardo fixo. Para conformidade de decodificador de ordem de saída, é aplicável o seguinte. - O HSS apresenta o fluxo de bits BitstreamToDecode para o DUT "por exigência" do DUT, o que significa que o HSS proporciona os bits (na ordem de decodificação) só quando o DUT requer mais bits para prosseguir com o seu processamento. NOTA 2 - Isto significa que, para este teste, o buffer de imagem codificada do DUT pode ser tão pequeno quanto o tamanho da maior unidade de decodificação. - Um HRD modificado conforme descrito a seguir é usado, e o HSS entrega o fluxo de bits para o HRD por uma das programações especificadas no fluxo de bits BitstreamToDecode de tal forma que a taxa de bits e tamanho de CPB são restritos, conforme especificado no Anexo A. A ordem das imagens de saída deve ser a mesma para ambos HRD e o DUT. - Para conformidade de decodificador de ordem de saída, o tamanho do CPB é CpbSizef SchedSelldx], conforme especificado pela equação E-46, onde SchedSelldx e os parâmetros HRD são selecionados conforme especificado acima na subcláusula C.l. O tamanho é DPB sps_max_dec_pic_buffering[TargetDecHighestTid]. Tempo de remoção do CPB para o HRD é igual ao tempo de chegada de bit final e decodificação é imediata. A operação do DPB deste HRD é como descrita nas subcláusulas C.5.1 a C.5.3.
[0170] Como indicado em outras partes desta divulgação, os parâmetros cpb_cnt_minus1 [i] e sps_max_dec_pic_buffering [i] podem não ser devidamente selecionados nos requisitos de conformidade de decodificador. Por exemplo, a seção C.4 de Projeto de Trabalho 8 de HEVC não especifica um índice para cpb_cnt_minus1. Especificar TargetDecHighestTid com o índice i de cpb_cnt_minus1 [i] e sps_max_dec_pic_buffering [i] pode, de acordo com uma ou mais técnicas desta divulgação, assegurar que as operações de conformidade de decodificador são constantemente realizadas com i igual ao valor claramente especificado de TargetDecHighestTid.
[0171] Além disso, a seção C.4.2 de Projeto de Trabalho 8 de HEVC descreve a remoção de imagens do DPB para conformidade de decodificador. De acordo com um ou mais exemplos de técnicas desta divulgação, o título da seção C.4.2 pode ser alterado de "remoção de imagens do DPB" para "emissão e remoção de imagens do DPB." O texto da seção C.4.2 de Projeto de Trabalho 8 de HEVC pode ser alterado da seguinte forma: A emissão e remoção de imagens a partir do DPB antes de decodificar a imagem atual (mas após a análise do cabeçalho de fatia da primeira fatia da imagem em curso) ocorre instantaneamente quando a primeira unidade de decodificação da unidade de acesso contendo a imagem atual é removida do CPB e prossegue da seguinte forma. O processo de decodificação de conjunto de imagem de referência, conforme especificado na subcláusula 8.3.2 é invocado. - Se a imagem atual é uma imagem IDR ou uma BLA, é aplicável o seguinte. 1. Quando a Imagem IDR ou BLA não é a primeira imagem decodificada e o valor de pic_width_in_luma_samples ou pic_heigth_in_luma_samples ou sps_max_dec _pic_buffering [TargetDecHighestTid] derivado do conjunto de parâmetros de sequência ativo é diferente do valor de pic_width_in_luma_samples ou pic_heigth_in_luma_samples ou sps_max_dec_pic_buffering [TargetDecHighestTid] derivado do conjunto de parâmetro de sequência que estava ativo para a imagem anterior, respectivamente, no_output_of_prior_pics_flag é inferido para ser igual a 1 pela HRD, independentemente do valor real de no_output_of_prior_pics_flag. NOTA - Implementações de decodificador devem tentar lidar com mudanças de imagem ou tamanho de DPB mais levemente do que o HRD no que diz respeito às mudanças em pic_width_in_luma_samples, pic_heigth_in_luma_samples ou sps_max_dec_pic_buffering [TargetDecHighestTid]. 2. Quando no_output_of_prior_pics_flag é igual a 1 ou é inferido a ser igual a 1, todos os buffers de armazenamento de imagens no DPB são esvaziados sem emissão das imagens que eles contêm. 3. Quando no_output_of_prior_pics_flag não é igual a 1 e não está inferido para ser igual a 1, buffers de armazenamento de imagem contendo uma imagem que está marcada como "não é necessário para emissão" e "sem uso para referência" são esvaziados (sem emissão), e todos os buffers de armazenamento de imagem não vazios no DPB são esvaziados invocando repetidamente o processo de "colisão" especificado na subcláusula C.5.2.1. Caso contrário (a imagem atual não é uma imagem IDR ou uma BLA), buffers de armazenamento de imagem contendo uma imagem que é marcada como "não é necessário para emissão" e "sem uso para referência" são esvaziados (sem emissão). Quando uma ou mais das seguintes condições forem verdadeiras, o processo de "colisão" especificado na subcláusula C.5.2.1 é invocado repetidamente até que haja um buffer de armazenamento de imagem vazio para armazenar a imagem atual decodificada. 1 .O número de imagens no DPB que são marcadas como "necessárias para emissão" é maior do que sps_max_num_reorder_pics [TargetDecHighestTid]. 2 . O número de imagens no DPB é igual a sps_max_dec_pic_buffering [TargetDecHighestTid]. Processo de "Colisão" O processo de "colisão" é invocado nos seguintes casos. - A imagem atual é uma imagem IDR ou uma BLA e no_output_of_prior_pics_flag não é igual a 1 e não é inferido a ser igual a 1, tal como especificado em subcláusula C.5.2. - A imagem atual não é uma imagem IDR ou uma BLA, e o número de imagens no DPB que estão marcadas "necessárias para emissão" é maior do que sps_max_num_reorder_pics [TargetDecHighestTid], conforme especificado na subcláusula C.5.2. - A imagem atual não é uma imagem IDR ou BLA e o número de imagens no DPB é igual a sps_max_dec _pic_buffering [TargetDecHighestTid], conforme especificado na subcláusula C.5.2. O processo de "colisão" consiste nos seguintes passos ordenados: 1. A imagem que é a primeiro para emissão é selecionada como a que tem o menor valor de PicOrderCntVal de todas as imagens no DPB marcadas como "necessária para emissão". 2. A imagem é cortada, usando o retângulo de corte especificado no parâmetro de sequência ativa estabelecido para a imagem, a imagem recortada é emitida, e a imagem é marcada como "não é necessária para emissão". 3. Se o buffer de armazenamento de imagens, que incluiu a imagem que foi recortada e emitida contém uma imagem marcada como "fora de uso para referência", o buffer de armazenamento de imagens é esvaziado.
[0172] Conforme indicado em outras partes desta divulgação, os parâmetros sps_max_dec_pic_buffering [i] e sps_max_num_reorder_pics [i] não podem ser adequadamente selecionados em operações de HRD, como a remoção de imagens do DPB. Especificar TargetDecHighestTid com o índice i de sps_max_dec_pic_buffering [i] e sps_max_num_reorder_pics [i] pode, de acordo com uma ou mais técnicas desta divulgação, garantir que i igual ao valor claramente especificado de TargetDecHighestTid é usado em sps_max_dec_pic_buffering [i] e sps_max_num_reorder_pics [i] ao realizar a operação de HRD de remover as imagens do DPB.
[0173] Quando um dispositivo realiza um processo de decodificação, durante uma operação de HRD, o dispositivo pode decodificar, a partir de um SPS, uma matriz de elementos de sintaxe (sps_max_dec_pic_buffering []) que cada um indica um tamanho requerido máximo de um DPB do DRH. Além disso, quando o dispositivo realiza a operação de HRD, o dispositivo pode determinar, com base no identificador temporal maior alvo, um elemento de sintaxe particular na matriz (sps_max_dec_pic_buffering [TargetDecHighestTid]). Além disso, o dispositivo pode realizar um processo de colisão que esvazia um ou mais buffers de armazenamento de imagens do DPB quando a imagem atual não é uma imagem IDR ou uma imagem BLA e o número de imagens no DPB marcado como necessário para emissão é maior do que a valor do elemento de sintaxe particular.
[0174] Da mesma forma, quando um dispositivo realiza um processo de decodificação, durante uma operação de HRD, o dispositivo pode decodificar, a partir de um SPS, uma matriz de elementos de sintaxe (sps_max_dec_pic_buffering []) que cada um indica um tamanho requerido máximo de um DPB do DRH. Além disso, quando o dispositivo realiza a operação de HRD, o dispositivo pode determinar, com base no identificador temporal maior alvo, um elemento de sintaxe particular na matriz (sps_max_dec_pic_buffering [TargetDecHighestTid]). Além disso, o dispositivo pode realizar um processo de colisão que esvazia um ou mais buffers de armazenamento de imagem do DPB quando a imagem atual não é uma imagem IDR ou uma imagem BLA eo número de imagens no DPB é igual indicado pelo elemento de sintaxe particular.
[0175] Além disso, de acordo com uma ou mais técnicas desta divulgação, uma estrutura de sintaxe applicable_operation_points () e a semântica associada podem ser adicionados a HEVC Trabalho Projeto 8. Tabela 5, abaixo, mostra um exemplo da sintaxe da estrutura de sintaxe applicable_operation_points (). TABELA 5 - Pontos de operação aplicáveis
Figure img0009
[0176] A estrutura de sintaxe applicable_operation_point () apresentada na Tabela 5 especifica os pontos de operação a que se aplica a mensagem SEI associada a esta estrutura de sintaxe. A mensagem SEI associada a uma estrutura de sintaxe applicable_operation_point () (também referida como a mensagem SEI associada) é a mensagem SEI que contém a estrutura de sintaxe applicable_operation_point (). A mensagem SEI associada a uma estrutura de sintaxe applicable_operation_point () pode ser uma mensagem SEI de período de armazenamento em buffer, uma mensagem SEI de temporização de imagem ou uma mensagem SEI de temporização de subimagem.
[0177] Um ponto de operação padrão pode ser definido como o ponto de operação, identificado por OpLayerldSet contendo valores de 0 a nuh_reserved_zero_6bits, inclusive, onde nuh_reserved_zero_6bits é codificado no cabeçalho de unidade de NAL da unidade de NAL SEI contendo a mensagem SEI associada, e OpTid é igual ao valor Temporalld da unidade de NAL SEI contendo a mensagem associada SEI. Alternativamente, o ponto de operação padrão pode ser definido como o ponto de operação identificado por OpLayerldSet contendo apenas o nuh_reserved_zero_6bits no cabeçalho da unidade de NAL da unidade de NAL SEI contendo a mensagem SEI associada, e OpTid é igual ao valor Temporalld da unidade de NAL SEI contendo a mensagem SEI associada. Alternativamente, o ponto de operação padrão pode ser definido como o ponto de operação identificado por OpLayerldSet contendo apenas o valor 0, e OpTid é igual ao valor Temporalld da unidade de NAL SEI contendo a mensagem SEI associada.
[0178] Se default_op_applicable_flag é igual a 1, pontos de operação a que a mensagem SEI associada aplica são o ponto de operação padrão e os pontos de operação num_applicable_ops_minus1 identificados por OpLayerldSet como especificado por operation_point_layer_ids (i) e OpTid igual a op_temporal_id [i], com i na faixa de 0 a num_applicable_ops_minus1, inclusive. Caso contrário (default_op_applicable_flag é igual a 0), os pontos de operação a que se aplica a mensagem SEI associada podem ser os pontos de operação num_applicable_ops_minus1 + 1 identificados por OpLayerldSet conforme especificado pelo operation_point_layer_ids (I) e OpTid igual op_temporal_id [i], com i na faixa de 0 a num_applicable_ops_minus1 + 1, inclusive.
[0179] Além disso, no exemplo de sintaxe da Tabela 5, o elemento de sintaxe num_applicable_ops_minus1, mais 1, especifica o número de pontos de operação a que se aplica a mensagem SEI associada. O valor de num_applicable_ops_minus1 pode estar na faixa de 0 a 63, inclusive. No exemplo da Tabela 5, o elemento de sintaxe default_applicable_flag igual a 1, indica que a mensagem SEI associada se aplica ao ponto de operação padrão. O elemento de sintaxe default_op_applicable_flag igual a 0 especifica que a mensagem SEI associada não se aplica ao ponto de operação padrão. O elemento de sintaxe op_temporal_id [i] especifica o i-ésimo valor OpTid explicitamente sinalizado na estrutura de sintaxe applicable_operation_point (). O valor de op_temporal_id [i] pode estar na faixa de 0 a 6, inclusive.
[0180] Como indicado acima, o Projeto de Trabalho 8 de HEVC não fornece nenhuma maneira de associar uma mensagem SEI de período de armazenamento em buffer ou mensagem SEI de temporização de imagem a uma estrutura de sintaxe hrd_parameters () para a qual a estrutura de sintaxe operation_point_layer_ids () associada inclui vários valores de nuh_reserved_zero_6bits (ou seja, vários IDs de camada em uma multivista, 3DV ou extensão de codificação de vídeo escalável do HEVC). A inclusão da estrutura de sintaxe applicable_operation_point () pode resolver pelo menos parcialmente este problema. A estrutura de sintaxe applicable_operation_point () pode especificar claramente os pontos de operação para a qual uma mensagem SEI de período de armazenamento em buffer, uma mensagem SEI de temporização de imagem ou uma mensagem SEI de temporização de subimagem se aplica. Isso pode permitir o uso da informação portada nos elementos de sintaxe nuh_reserved_zero_6bits e temporal_id_plusl no cabeçalho de unidades de NAL de unidade de NAL SEI, e pode permitir o compartilhamento da informação transportada em uma mesma mensagem SEI de período de armazenamento em buffer, temporização de imagem ou temporização de subimagem para processamento de dados de vídeo associado com múltiplos pontos de funcionamento.
[0181] Seção D.1.1 de Projeto de Trabalho 8 de HEVC descreve a sintaxe de mensagens SEI de período de armazenamento em buffer. De acordo com uma ou mais técnicas exemplares desta divulgação, a sintaxe de mensagem SEI de período de armazenamento em buffer pode ser alterada como mostrado na Tabela 6, abaixo. As alterações para a sintaxe de mensagem SEI de período de armazenamento em buffer podem permitir que mensagens SEI de período de armazenamento em buffer incluiam estruturas de sintaxe applicable_operation_points (). TABELA 6 - Período de Armazenamento em Buffer
Figure img0010
Figure img0011
[0182] Seção D.2.1 do Projeto de Trabalho 8 de HEVC descreve a semântica dos elementos de sintaxe de mensagens SEI de período de armazenamento em buffer. De acordo com uma ou mais das técnicas da presente divulgação, a semântica da estrutura de sintaxe buffering_period (payloadSize) pode ser alterada como se segue. Ass semântica para os elementos de sintaxe mencionados não são as mesmas que no Projeto de Trabalho 8 de HEVC. A mensagem SEI de período de armazenamento em buffer fornece informações de retardo de remoção de CPB inicial e desvio de retardo de remoção de CPB inicial. O seguinte se aplica para mensagem SEI de período de armazenamento em buffer sintaxe e semântica: - Os elementos de sintaxe inicial_cpb_removal_delay_length_minus1 e jparams sub_pic_cpb_present_flag, e as variáveis NalHrdBpPresentFlag, VclHrdBpPresentFlag, CpbSize[SchedSelldx], BitRate[SchedSelldx], e CpbCnt são encontrados em ou derivados de elementos de sintaxe encontrados na estrutura de sintaxe hrd_parameters () e a estrutura de sintaxe sub_layer_hrd_parameters () aplicável a qualquer um dos pontos de operação que a mensagem SEI de período de armazenamento em buffer se aplica. - Qualquer dos dois pontos de operação que a mensagem SEI de período de armazenamento em buffer se aplica para ter diferentes valores OpTid tldA e tldB indicam que os valores de cpb_cnt_minus1 [tldA] e cpb_cnt minus1 [tldB] codificados na estrutura de sintaxe (s) hrd_parameters () aplicável aos dois pontos de operação são idênticos. - Qualquer dos dois pontos de operação que a mensagem SEI de período de armazenamento em buffer se aplica para ter diferentes valores OpLayerldSet, layerldSetA e layerldSetB indicam que os valores de nal_hrd__parameters_present_flag e vcl_hrd_parameters_present_flag, respectivamente, para as duas estrutras de sintaxe hrd_parameters ()aplicáveis aos dois pontos de operação são idênticos. - O fluxo de bits (ou uma parte dele) refere-se ao subconjunto de fluxo de bits (ou uma parte dele) associado a qualquer um dos pontos de operação, a mensagem SEI de período de armazenamento em buffer se aplica. Se NalHrdBpPresentFlag ou VclHrdBpPresentFlag são iguais a 1, uma mensagem SEI de período de armazenamento em buffer aplicável para os pontos de operação especificados podem estar presentes em qualquer unidade de acesso na sequência de vídeo codificado, e uma mensagem SEI de período de armazenamento em buffer aplicável para os pontos de operação especificados devem estar presentes em cada unidade de acesso RAP, e em cada unidade de acesso associada a uma mensagem SEI de ponto de recuperação. Caso contrário (NalHrdBpPresentFlag e VclHrdBpPresentFlag são ambos iguais a 0), nenhuma unidade de acesso na sequência de vídeo codificado deve ter uma mensagem SEI de período de armazenamento em buffer de aplicável para os pontos de operação especificados. NOTA - Para algumas aplicações, presença frequente de uma mensagem SEI de período de armazenamento em buffer pode ser desejável. Quando uma unidade de NAL SEI que contém uma mensagem SEI de período de armazenamento em buffer e tem nuh_reserved_zero_6bits iguais a 0 está presente, a unidade de NAL SEI deve preceder, em ordem de decodificação, a primeira unidade de NAL VCL na unidade de acesso. Um período de armazenamento em buffer é especificado como o conjunto de unidades de acesso entre duas instâncias da mensagem SEI de período de armazenamento em buffer consecutivas, em ordem de decodificação. A variável CpbCnt é derivada para ser igual a cpb_cnt_minus1 [tld] + 1, onde cpb_cnt_minus1 [tld] está codificada na estrutura de sintaxe hrd_parameters () que é aplicável a qualquer um dos pontos de operação que a mensagem SEI de período de armazenamento em buffer se aplica e tem OpTid igual a tld. seq_parameter_set_id refere-se ao conjunto de parâmetros de sequência ativo. O valor de seq_parameter_seq_id deve ser igual ao valor do seq_parameter_seq_id no conjunto de parâmetros de imagem referenciado pela imagem codificada associada a mensagem SEI de período de armazenamento em buffer. O valor de seq_parameter_set_id deve estar na faixa de 0 a 31, inclusive. rap_cpb_params_present_flag igual a 1, indica a presença dos elementos de sintaxe initial_alt_cpb_removal_delay [SchedSelldx] e initial_alt_cpb_removal_delay_offset [SchedSelldx]. Quando não está presente, o valor de alt_cpb_params_present_flag é inferido a ser igual a 0. Quando a imagem associada não é nem uma imagem de PCR, nem uma imagem de BLA, o valor de alt_cpb_params_present_flag deve ser igual a 0. initial_cpb_removal_delay [SchedSelldx] e initial_alt_cpb_removal_delay [SchedSelldx] especificam os retardos de remoção de CPB iniciais padrão e alternativos, respectivamente, para o SchedSelldx-ésimo CPB. Os elementos de sintaxe tem um comprimento em bits dado por initial_cpb_removal_delay_length_minus1 + 1, e são expressos em unidades de um relógio de 90 kHz. Os valores dos elementos de sintaxe não devem ser iguais a 0 e devem ser inferiores ou igual a 90000 * (CpbSize [SchedSelIdx] ^ BitRate[SchedSelldx]), o equivalente a tempo do tamanho de CPB em unidades de relógio de 90 kHz. initial_cpb_removal_delay_offset [SchedSelldx] e initial_alt_cpb_removal_delay_offset [SchedSelldx] especificam retardos de remoção de CPB iniciais padrão e alternativos, respectivamente, para o SchedSelldx-ésimo CPB. Os elementos de sintaxe tem um comprimento em bits dado por initial_cpb_removal_delay_length_minus1 + 1 e são em unidades de um relógio de 90 kHz. Estes elementos de sintaxe não são utilizados por decodificadores e podem ser necessários apenas para o programador de entrega (HSS) especificado no Anexo C.
[0183] A mensagem SEI de período de armazenamento em buffer pode incluir parâmetros HRD (por exemplo, initial_cpb_removal_delay [SchedSelldx], initial_cpb_removal_delay_offset [SchedSelldx], initial_alt_cpb_removal_delay [SchedSelldx] e initial_alt_cpb_removal_delay_offset [SchedSelldx]). Como indicado acima, o Projeto de Trabalho 8 de HEVC não fornece nenhuma maneira de associar uma mensagem SEL de período de armazenamento, a uma estrutura de sintaxe hrd_parameters () em um VPS para o qual a estrutura de sintaxe operation_point_layer_ids ()associada inclui vários valores de nuh_reserved_zero_6bits (ou seja, várias identificações de camada em uma multivista, 3DV ou extensão de codificação de vídeo escalável do HEVC). Assim, de acordo com uma ou mais técnicas desta divulgação, o elemento de sintaxe applicable_operation_points () na mensagem SEL de período de armazenamento em buffer especifica os pontos de operação a que se aplica a mensagem SEL de período de buffering.
[0184] Seção D.1.2 do Projeto de Trabalho 8 de HEVC indica a sintaxe de mensagens SEI de temporização de imagem. De acordo com uma ou mais das técnicas desta descrição, a sintaxe da mensagem SEI de temporização de imagem pode ser alterada como mostrado na Tabela 7, abaixo. As alterações na sintaxe de mensagem SEI de temporização de imagem podem permitir que mensagem SEI de temporização de imagem incluam estruturas de sintaxe applicable_operation_points (). TABELA 7 - Mensagem SEI de temporização de imagem
Figure img0012
[0185] Além disso, as semânticas da mensagem SEI de temporização de imagem podem ser alteradas da seguinte forma. A semântica para os elementos de sintaxe da estrutura de sintaxe pic_timing (payloadSize) mencionada abaixo não pode ser a mesma que aquelas no Projeto de Trabalho 8 de HEVC. A mensagem SEI de temporização de imagem fornece informações de retardo de remoção de CPB e retardo de saída de DPB para a unidade de acesso associada com a mensagem SEI. O seguinte se aplica a sintaxe e semântica mensagem SEI de temporização de imagem: - Os elementos de sintaxe sub_pic_cpb _params_present_flag, cpb_removal_delay_length_minus1, dpb_output_delay_length_minus1, e du_cpb_removal_delay_length_minus1, e a variável CpbDpbDelaysPresentFlag são encontrados em ou derivados de elementos de sintaxe encontrados na estrutura de sintaxe hrd_parameters () e a estrutura de sintaxe sub_layer_hrd_parameters ()aplicável a qualquer um dos pontos de operação que a mensagem SEI de temporização de imagem se aplica. - O fluxo de bits (ou uma parte dele) refere-se ao subconjunto de fluxo de bits (ou uma parte dele) associado a qualquer um dos pontos de operação que a mensagem SEI de temporização de imagem se aplica. NOTA I - A sintaxe da mensagem SEI de temporização de imagem é dependente do teor das estruturas de sintaxe hrd_parameters () aplicáveis aos pontos de operação que a mensagem SEI de temporização de imagem se aplica. Estas estruturas de sintaxe hrd_parameters () estão no conjunto de parâmetros de vídeo e/ou no conjunto de parâmetros de sequência que estão ativos para a imagem codificada associada com a mensagem SEI de temporização de imagem. Quando a mensagem SEI de temporização de imagem está associada com uma unidade de acesso de CRA que é a primeira unidade de acesso no fluxo de bits, uma unidade de acesso de IDR, ou uma unidade de acesso de BLA, a menos que seja precedida por uma mensagem SEI de período de armazenamento em buffer dentro da mesma unidade de acesso, a ativação do conjunto de parâmetros de vídeo e conjunto de parâmetro de sequência (e, para imagens IDR ou BLA que não são a primeira imagem no fluxo de bits, a determinação de que a imagem codificada é uma imagem IDR ou uma imagem BLA) não ocorre até a decodificação da primeira unidade de NAL de fatia codificada da imagem codificada. Uma vez que a unidade de NAL de fatia codificada da imagem codificada segue a mensagem SEI de temporização de imagem, em ordem de unidade de NAL, pode haver casos em que é necessário para um decodificador armazenar o RBSP que contém a mensagem SEI de temporização de imagem até a determinação do conjunto de parâmetros de vídeo ativo e/ou do conjunto de parâmetros de sequência ativo, e em seguida, realizar a análise da mensagem SEI de temporização de imagem. A presença de mensagem SEI de temporização de imagem no fluxo de bits está especificada abaixo. - Se CpbDpbDelaysPresentFlag é igual a 1, uma mensagem SEI de temporização de imagem aplicável para os pontos de operação especificados deve estar presente em cada unidade de acesso da sequência de vídeo codificado. - Caso contrário (CpbDpbDelaysPresentFlag é igual a 0), nenhuma mensagem SEI de temporização de imagem aplicável aos pontos de operação especificados deve estar presente em qualquer unidade de acesso da sequência de vídeo codificado. Quando uma unidade de NAL SEI que contém uma mensagem SEI de temporização de imagem e tem nuh_reserved_zero_6bits igual a 0 está presente, a unidade de NAL SEI deve preceder, em ordem de decodificação, a primeira unidade de NAL VCL na unidade de acesso. au_cpb_removal_delay_minus1 mais 1 especifica, quando o HRD opera a nível da unidade de acesso, quantos pulsos de relógio esperar após a remoção do CPB da unidade de acesso associada com a mensagem SEI de período de armazenamento em buffer mais recente em uma unidade de acesso anterior antes de remover do buffer os dados de acesso da unidade associada à mensagem SEI de temporização de imagem. Este valor é também usado para calcular um tempo mais precoce possível de chegada de dados da unidade de acesso no CPB para o HSS. O elemento de sintaxe é um código de comprimento fixo, cujo comprimento em bits é dado por cpb_removal_delay_length_minus1 + 1. NOTA 2 - O valor de cpb_removal_delay_legth_minus1 que determina o comprimento (em bits) do elemento de sintaxe au_cpb_removal_delay_minus1 é o valor de cpb_removal_delay_length_minus1 codificado no conjunto de parâmetro de vídeo ou conjunto de parâmetro de sequência que é ativo para a imagem codificada associada com a mensagem SEI de temporização de imagem, embora au_cpb_removal_delay_minus1 mais 1 especifique um número de pulsos de relógio em relação ao tempo de remoção da unidade de acesso anterior contendo uma mensagem SEI de período de armazenamento em buffer, que pode ser uma unidade de acesso de uma sequência de vídeo codificado diferente. pic_dpb_output_delay é usado para calcular o tempo de saída DPB da imagem. Ele especifica quantos pulsos de relógio esperar após a remoção da última unidade de decodificação em uma unidade de acesso a partir do CPB antes que a imagem decodificada seja emitida do DPB. NOTA 3 - A imagem não é removida do DPB no tempo de saída quando ela ainda é marcada como "usada para referência de curto prazo" ou "usada para referência de longo prazo". NOTA 4 - Apenas um pic_dpb_output_delay é especificado para uma imagem decodificada. O comprimento do elemento de sintaxe pic_dpb_output_delay é dado em bits por dpb_output_delay_length_minus1 + 1. Quando sps_max_dec_pic_buffering [minTid] é igual a 1, onde minTid é o mínimo dos valores OpTid de todos os pontos de operação que a mensagem SEI de temporização de imagem se aplica, pic_dpb_output_delay é igual a 0. O tempo de emissão derivado de pic_dpb_output_delay de qualquer imagem que é emitida de um decodificador de conformidade de temporização de emissão deve preceder o tempo de emissão derivado do pic_dpb_output_delay de todas as imagens em qualquer sequência de vídeo codificado posterior, em ordem de decodificação. A ordem de saída da imagem estabelecida pelos valores deste elemento de sintaxe deve ser a mesma ordem estabelecida pelos valores da PicOrderCntVal. Para imagens que não são emitidas pelo processo de "colisão", porque elas precedem, em ordem de decodificação, uma imagem IDR ou BLA com no_output_of_prior_pics_flag igual a 1 ou inferido a ser igual a 1, os tempos de saída derivados de pic_dpb_output_delay isão aumentar com o aumento do valor de PicOrderCntVal em relação a todas as imagens dentro da mesma sequência de vídeo codificado. du_common_cpb_removal_delay_flag igual a 1 especifica que o elemento de sintaxe du_common_cpb_removal_delay_minus1 está presente. du_common_cpb_removal_delay_flag igual a 0 especifica que o elemento de sintaxe du_common_cpb_removal_delay_minus1 não está presente. du_common_cpb_removal_delay_minus1 mais 1 especifica quantos pulsos de relógio de subimagem (vide subcláusula E.2.1) aguardar, antes da remoção do CPB de cada unidade de decodificação na unidade de acesso associada com a mensagem SEI de temporização de imagem, após a remoção do CPB da unidade de decodificação anterior, em ordem de decodificação. Este valor também é utilizado para calcular um menor espaço de tempo possível de chegada de dados da unidade de decodificação para o CPB para o HSS, conforme especificado no Anexo C. O elemento de sintaxe é um código de tamanho fixo, cujo comprimento em bits é dado por du_cpb_removal_delay_length_minus1 + 1.
[0186] Como indicado acima, Projeto de Trabalho 8 de HEVC não fornece nenhuma maneira de associar uma mensagem SEI de temporização de imagem a uma estrutura de sintaxe hrd_parameters () em um VPS a qual a estrutura de sintaxe operation_point_layer_ids () associada inclui vários valores de nuh_reserved_zero_6bits (ou seja, vários Ids de camada em uma multivista, 3DV ou extensão de codificação de vídeo escalável do HEVC). Assim, de acordo com uma ou mais técnicas desta divulgação, o elemento de sintaxe applicable_operation_points () na mensagem SEI de temporização de imagem especifica os pontos de operação a que se aplica a mensagem SEI de período de armazenamento em buffer.
[0187] Além disso, de acordo com uma ou mais das técnicas desta descrição, a sintaxe da mensagem SEI de temporização de subimagem pode ser alterada como mostrado na Tabela 8, abaixo. As alterações para a sintaxe de mensagem SEI de temporização de subimagem podem permitir que mensagens SEI de temporização de subimagem incluam estruturas de sintaxe applicable_operation_points (). Em Projeto de Trabalho 8 de HEVC, a mensagem SEI de temporização de subimagem não inclui a estrutura de sintaxe applicable_operation_points (). TABELA 8 - Mensagem SEI de Temporização de Subimagem
Figure img0013
[0188] Seção D.2.2.2 de Projeto de Trabalho 8 de HEVC descreve a semântica das mensagens SEI de temporização de subimagem. De acordo com uma ou mais técnicas desta divulgação, seção D.2.2.2 de Projeto de Trabalho 8 de HEVC pode ser modificado como segue: A mensagem SEI de temporização de subimagem fornece informações CPB retardo de remoção para a unidade de decodificação associada à mensagem SEI. O seguinte se aplica para sintaxe e semântica de mensagem SEI de temporização de subimagem: - Os elementos de sintaxe sub_pic_cpb _params_present_flag e cpb_removal_delay_length_minus1, e a variável CpbDpbDelaysPresentFlag são encontrados em ou derivados de elementos de sintaxe encontrados nas estrutura de sintaxe hrd_parameters () e a estrutura de sintaxe sub_parameters _layer_hrd () aplicável a qualquer uma dos pontos de operação que a mensagem SEI de temporização de subimagem se aplica. - O fluxo de bits (ou uma parte dele) refere-se ao subconjunto de fluxo de bits (ou uma parte dele) associado a qualquer um dos pontos de operação que a mensagem SEI de temporização de subimagem se aplica. A presença da mensagem SEI de temporização de subimagem no fluxo de bits está especificada abaixo. - Se CpbDpbDelaysPresentFlag é igual a 1 e sub_pic_cpb_params_present_flag é igual a 1, uma mensagem SEI de temporização de subimagem aplicável para os pontos de operação especificados pode estar presente em cada unidade de decodificação da sequência de vídeo codificado. - Caso contrário (CpbDpbDelaysPresentFlag é igual a 0 ou sub_pic_cpb_params_present_flag é igual a 0), nenhuma mensagem SEI de temporização de subimagem aplicável aos pontos de operação especificados deverá estar presente na sequência de vídeo codificado. A unidade de decodificação associada com uma mensagem SEI de temporização de subimagem consiste, em ordem de decodificação, na unidade de NAL SEI contendo a mensagem SEI de temporização de subimagem, seguido por uma ou mais unidades de NAL que não contêm uma mensagem SEI de temporização de subimagem , incluindo todas as unidades de NAL subsequentes na unidade de acesso até, mas não incluindo qualquer unidade SEI NAL subsequente contendo uma mensagem SEI de temporização de subimagem. Haverá pelo menos uma unidade de NAL VCL em cada unidade de decodificação. Todas as unidades de NAL VCL não associadas a uma unidade de NAL VCL devem ser incluídas na mesma unidade de decodificação. du_spt_cpb_removal_delay_minus1 mais 1 especifica quantos pulsos de relógio de subimagem esperar após a remoção do CPB da última unidade de decodificação na unidade de acesso associada com a mensagem SEI de período de armazenamento em buffer mais recente em uma unidade de acesso anterior antes de remover do CPB a unidade de decodificação associada com a mensagem SEI de temporização de subimagem. Este valor também é utilizado para calcular um menor espaço de tempo possível de chegada de dados da unidade de decodificação para o CPB para o HSS, conforme especificado no Anexo C. O elemento de sintaxe é representado por um código de tamanho fixo, cujo comprimento em bits é dado por cpb_removal_delay_length_minus1 + 1. NOTA - O valor de cpb_removal_delay_length_minus1 que determina o comprimento (em bits) do elemento de sintaxe du_spt_cpb_removal_delay_minus1 é o valor de cpb_removal_delay_length_minus1 codificado no conjunto de parâmetro de vídeo ou conjunto de parâmetro de sequência que é ativo para a unidade de acesso contendo a unidade de decodificação associada a mensagem SEI de temporização de subimagem, embora du_spt_cpb_removal_delay_minus1 mais 1 especifique um número de pulsos de relógio subimagem em relação ao tempo de remoção da última unidade de decodificação na unidade de acesso anterior contendo uma mensagem SEI de período de armazenamento em buffer, que pode ser uma unidade de acesso de uma sequência de vídeo codificado diferente.
[0189] Seção E.2.2 do Projeto de Trabalho 8 de HEVC descreve a semântica dos parâmetros HRD. De acordo com uma ou mais das técnicas desta descrição, a seção E.2.2 de Projeto de Trabalho 8 de HEVC pode ser alterada como se segue. A semântica para os elementos de sintaxe de parâmetros HRD não mencionada abaixo pode ser a mesma que aquelas no Projeto de Trabalho 8 de HEVC. A estrutura de sintaxe hrd_parameters () fornece parâmetros HRD usados nas operações de DRH. Quando a estrutura de sintaxe hrd_parameters () é incluída em um conjunto de parâmetros de vídeo, o conjunto de número de valores nuh_reserved_zero_6bits incluídos no OpLayerldSet dos pontos de operação a que se aplica a estrutura de sintaxe ou é especificado pela correspondente estrutura de sintaxe operation_point_layer_ids() no conjunto de parâmetros de vídeo ou implicitamente derivados, conforme especificado na subcláusula 7.4.4. Quando a estrutura de sintaxe hrd_parameters () está incluída em um conjunto de parâmetros de sequência, os pontos de operação aplicáveis são todos os pontos de operação com OpLayerldSet contendo apenas o valor 0. Em alternativa, quando a estrutura de sintaxe hrd_parameters () está incluída em um conjunto de parâmetros de sequência, os pontos de operação aplicáveis são todos os pontos de operação com OpLayerldSet idêntico a TargetDecLayerldSet. É uma exigência de conformidade de fluxo de bits que, para toda a estrutura de sintaxe hrd_parameters () na sequência de vídeo codificado (no conjunto de parâmetro de vídeo ou conjunto de parâmetro de sequência), não deve existir mais de um deles que se aplica a um único ponto de operação. Como alternativa, é necessário que não haja mais do que uma estrutura de sintaxe hrd_parameters () em um conjunto de parâmetros de vídeo que se aplica ao mesmo ponto de operação. Como alternativa, é necessário que um conjunto de parâmetros de vídeo, que não inclui estrutura de sintaxe hrd_parameters () que se aplica a pontos de operação com OpLayerldSet contendo apenas o valor 0. du_cpb_removal_delay_length_minus1 mais 1 especifica o comprimento, em bits, de elementos de sintaxe du_cpb_removal_delay_minus1 [i] e du_common_cpb_removal_delay_minus1 da mensagem SEI de temporização de imagem. cpb_removal_delay_length_minus1 mais 1 especifica o comprimento, em bits, do elemento de sintaxe au_cpb_removal_delay_minus1 na imagem SEI de temporização de imagem e o elemento de sintaxe du_spt_cpb_removal_delay_minus1 na mensagem SEI de temporização de subimagem. Quando o elemento de sintaxe cpb_removal_delay_length_minus1 não está presente, é inferido a ser igual a 23. dpb_output_delay_length_minus1 mais 1 especifica o comprimento, em bits, do elemento de sintaxe pic_dpb_outpup_delay_ na mensagem SEI de temporização de imagem. Quando o elemento de sintaxe dpb_output_delay_length_minus1 DPB não está presente, é inferido a ser igual a 23. fixed_pic_rate_flag [i] igual a 1 indica que, quando TargetDecHighestTid é igual a i, a distância temporal entre os tempos de emissão de HRD de quaisquer duas imagens consecutivas na ordem de saída é limitada como se segue. fixed_pic_rate_flag [i] igual a 0 indica que quaisquer tais restrições não se aplicam à distância temporal entre as programações de saída de HRD de quaisquer duas imagens consecutivas, em ordem de saída. Quando fixed_pic_rate_flag [i] não está presente, é inferido para ser igual a 0. Quando TargetDecHighestTid é igual a i e fixed_pic_rate_flag [i] é igual a 1 para uma sequência de vídeo codificado contendo imagem de n, o valor calculado para Δto,dpb(n) como especificado na equação C-17 é igual ao tc * (pic_duration_in_tcs_minus1 [i] + 1), em que tc é como especificado na Equação C-1 (utilizando o valor de tc para a sequência de vídeo codificado contendo imagem n) quando uma ou mais dos seguintes condições para a seguinte imagem nn que é especificada para uso na Equação C-17: - imagem nn está na mesma sequência de vídeo codificado que a imagem n. - imagem nn está em uma sequência de vídeo codificado diferente e fixed_pic_rate_flag [i] é igual a 1, na sequência de vídeo codificado contendo nn imagem, o valor de num_units_in_tick ^ time_scale é o mesmo para ambas as sequências de vídeo codificado, e o valor de pic_duration_in_tc_minus1 [i] é o mesmo para ambas as sequências de vídeo codificado. pic_duration_in_tc_minus1 [i] mais 1 especifica, quando TargetDecHighestTid é igual a i, a distância temporal em pulsos de relógio, entre os tempos de emissão de HRD de quaisquer duas imagens consecutivas em ordem de saída na sequência de vídeo codificado. O valor de pic_duration_in_tc_minus1 [i] deve estar na faixa de 0 a 2047, inclusive. low_delay_hrd_flag [i] especifica o modo operacional de HRD, quando TargetDecHighestTid é igual a i, conforme especificado no anexo C. Quando fixed_pic_rate_flag [i] é igual a 1, low_delay_hrd_flag [i] será igual a 0. NOTA 3 - Quando low_delay_hrd_flag [i] é igual a 1, são permitidas "grandes imagens" que violam os tempos nominais de remoção de CPB devido ao número de bits usados por uma unidade de acesso. Espera-se, mas não é obrigatório, que tais "grandes imagens" ocorram apenas ocasionalmente. cpb_cnt_minus1 [i] mais 1 especifica o número de especificações de CPB alternativas no fluxo de bits da sequência de vídeo codificado quando TargetDecHighestTid é igual a i. O valor de cpb_cnt_minus1 [i] deve estar na faixa de 0 a 31, inclusive. Quando low_delay_hrd_flag [i] é igual a 1, cpb_cnt_minus1 [i] será igual a 0. Quando cpb_cnt_minus1 [i] não está presente, é inferido para ser igual a 0.
[0190] Como descrito em outras partes desta divulgação, em Projeto de Trabalho 8 de HEVC, apenas as estruturas de sintaxe hrd_parameters () em um VPS podem ser selecionadas para operações de HRD enquanto estruturas de sintaxe hrd_parameters () em um SPS nunca são selecionadas. As mudanças mostradas acima à semântica da estrutura de sintaxe hrd_parameters () esclarecem que quando a estrutura de sintaxe hrd_parameters () está incluída em um SPS, pontos de operação a que a estrutura de sintaxe hrd_parameters () é aplicável podem ser todos os pontos de operação com OpLayerldSet idêntico a TargetDecLayerldSet. Como indicado acima, no processo de decodificação geral modificado, se um meio externo está disponível para definir TargetDecLayerldSet, TargetDecLayerldSet pode ser especificado por um meio externo. Caso contrário, se o processo de decodificação é invocado em um teste de conformidade de fluxo de bits, TargetDecLayerldSet pode ser o conjunto de identificadores de camada de um ponto de operação em teste. Caso contrário, TargetDecLayerldSet pode conter apenas um identificador de camada (isto é, apenas um valor de nuh_reserved_zero_6bits), que é igual a 0. Em um exemplo, os elementos externos podem ser um API que faz parte de uma implementação de terminal e que proporciona uma função para definir o valor de TargetDecLayerldSet. Neste exemplo, a implementação de terminal pode compreender um decodificador e implementação de certas funções que não fazem parte da implementação do decodificador.
[0191] Desta forma, um dispositivo (como codificador de vídeo 20, decodificador de vídeo 30, dispositivo adicional 21, ou outro dispositivo) pode selecionar, dentre um conjunto de parâmetros HRD em um conjunto de parâmetros de vídeo e um conjunto de parâmetros HRD em um SPS, um conjunto de parâmetros HRD aplicável a um ponto de operação particular. Além disso, o dispositivo pode realizar, com base, pelo menos em parte, no conjunto de parâmetros HRD aplicável ao ponto de operação particular, um teste de conformidade de fluxo de bits que testa se um subconjunto de fluxo de bits associado com o ponto de operação em particular está em conformidade com um padrão de codificação de vídeo.
[0192] Como indicado acima, seção E.2.2 do Projeto de Trabalho 8 de HEVC pode ser modificada para indicar que, quando a estrutura de sintaxe hrd_parameters () está incluída em um conjunto de parâmetros de sequência, os pontos de operação aplicáveis são todos os pontos de operação com OpLayerldSet idêntico a TargetDecLayerldSet. Além disso, como descrito acima, TargetDecLayerldSet é definido para targetOpLayerldSet, que contém o conjunto de valores de nuh_reserved_zero_6bits presentes no subconjunto de fluxo de bits associado com TargetOp. TargetOp é o ponto de operação em teste em uma operação de HRD. Além disso, as operações de HRD (por exemplo, um teste de conformidade de fluxo de bits e um teste de conformidade de decodificador) podem invocar o processo de decodificação geral.
[0193] Como explicado acima, a seção 8.1 do Projeto de Trabalho 8 de HEVC pode ser modificada para estabelecer que o processo de extração de subfluxo de bits, conforme especificado na subcláusula 10.1 é aplicado com TargetDecHighestTid e TargetDecLayerldSet como entradas e a saída é atribuída a um fluxo de bits referido como BitstreamToDecode. Assim, os únicos valores de nuh_reserved_zero_6bits presentes no BitstreamToDecode são os valores de nuh_reserved_zero_6bits em TestDecLayerldSet (isto é, o conjunto de valores de nuh_reserved_zero_6bits presentes no subconjunto de fluxo de bits associado com TargetOp). Seção 8.1 explica ainda que ao interpretar a semântica de cada elemento de sintaxe em cada unidade de NAL e "fluxo de bits" ou parte dele (por exemplo, uma sequência de vídeo codificado) está envolvido, o fluxo de bits ou parte dele significa BitstreamToDecode ou parte dele.
[0194] Por isso, ao interpretar a seção que descreve a semântica de parâmetros HRD (por exemplo, a seção E.2.2 do Projeto de Trabalho 8 de HEVC), o termo "sequência de vídeo codificado" significa uma parte de BitstreamToDecode. TargetDecLayerldSet é equivalente ao conjunto de todos os valores de nuh_reserved_zero_6bits presentes em BitstreamToDecode. Segue-se que a frase na seção que descreve a semântica de parâmetros HRD "quando a estrutura de sintaxe hrd_parameters () está incluída em um conjunto de parâmetros de sequência, os pontos de operação aplicáveis são todos os pontos de operação com OpLayerldSet idêntico a TargetDecLayerldSet" é equivalente a "quando a estrutura de sintaxe hrd_parameters () está incluída em um conjunto de parâmetros de sequência, os pontos de operação aplicáveis são todos os pontos de operação com OpLayerldSet idênticos ao conjunto de valores de nuh_reserved_zero_6bits presentes no BitstreamToDecode".
[0195] Devido a uma "sequência de vídeo codificado" ser uma parte de BitstreamToDecode, o conjunto de nuh_reserved_zero_6bits presente na sequência de vídeo codificado é um subconjunto do conjunto de nuh_reserved_zero_6bits presente no BitstreamToDecode. Assim, a frase "quando os estrutura de sintaxe hrd_parameters () está incluída em um conjunto de parâmetros de sequência, os pontos de operação aplicáveis são todos os pontos de operação com OpLayerldSet idêntico ao conjunto de valores de nuh_reserved_zero_6bits presentes no BitstreamToDecode" implica necessariamente "quando a estrutura de sintaxe hrd_parameters () está incluída em um conjunto de parâmetros sequência, os pontos de operação aplicáveis são todos os pontos de operação com OpLayerldSet contendo todos os valores de nuh_reserved_zero_6bits presentes na sequência de vídeo codificado". Em outras palavras, se o conjunto de nuh_reserved_zero_6bits de um ponto de operação é idêntico ao conjunto de nuh_reserved_zero_6bits presente no BitstreamToDecode, então, o conjunto de nuh_reserved_zero_6bits do ponto de operação necessariamente contém todos os valores de nuh_reserved_zero_6bits presentes em uma sequência de vídeo codificado do BitstreamToDecode. Nesta frase, "a sequência de vídeo codificado" pode referir- se a uma sequência de vídeo codificado associada com o SPS particular.
[0196] Quando da realização de uma operação de HRD, o dispositivo pode determinar, dentre as estruturas de sintaxe hrd_parameters () indicadas em um VPS e uma estrutura de sintaxe hrd_parameters() indicada em um SPS, uma estrutura de sintaxe hrd_parameters () aplicável a TargetOp. A estrutura de sintaxe hrd_parameters ()particular no VPS é aplicável a TargetOp se o conjunto de id de camada de TargetOp corresponder a um conjunto de identificadores de camada especificados no VPS para a estrutura de sintaxe hrd_parameters () particular. A estrutura de sintaxe hrd_parameters () no SPS pode ser aplicável a TargetOp se o conjunto de id de camada de TargetOp (ist é, TargetDecHighestTid) (ou seja, o conjunto de nuh_reserved_zero_6bits presente em BitstreamToDecode) conter todos os nuh_reserved_zero_6bits presentes na sequência de vídeo codificado para SPS (que é um subconjunto do conjunto de nuh_reserved_zero_6bits em BitstreamToDecode). Como o conjunto de nuh_reserved_zero_6bits de TargetOp pode necessariamente conter todos valores de nuh_reserved_zero_6bits presentes na sequência de vídeo codificado associada com o SPS, a estrutura de sintaxe hrd_parameters () no SPS pode sempre ser aplicável a TargetOp. No entanto, nem todos os SPSs têm estruturas de sintaxe hrd_parameters (). Se um SPS tem uma estrutura de sintaxe hrd_parameters () e o conjunto de nuh_reserved_zero_6bits presente em BitstreamToDecode contém todos nuh_reserved_zero_6bits presentes na sequência de vídeo codificado de SPS, então, a estrutura de sintaxe hrd_parameters () do RPU deve ser usada. Como nem todos os SPSs têm estruturas de sintaxe hrd_parameters (), o VPS ainda pode ser selecionado.
[0197] Além disso, como mostrado acima as modificações na seção E.2.2 do Projeto de Trabalho 8 de HEVC, quando um dispositivo realiza um teste de conformidade de fluxo de bits, o decodificador de vídeo pode determinar que o fluxo de bits não se conforma com a codificação de vídeo padrão quando, para todos conjuntos de parâmetros HRD em uma sequência de vídeo codificado, mais do que um conjunto de parâmetros HRD aplica-se ao mesmo ponto de operação. Além disso, quando o dispositivo realiza um teste de conformidade de fluxo de bits, o decodificador de vídeo pode determinar que o fluxo de bits não está em conformidade com o padrão de codificação de vídeo, quando mais de um conjunto de parâmetros HRD no VPS aplica-se ao mesmo ponto de operação. Além disso, quando o dispositivo realiza o teste de decodificação de fluxo de bits, o dispositivo pode determinar que o fluxo de bits não está em conformidade com o padrão de codificação de vídeo quando o VPS inclui um conjunto de parâmetros HRD que se aplica a pontos de operação com conjuntos de id de camada que contém apenas o valor 0.
[0198] A figura 3 é um diagrama de blocos que ilustra um decodificador de vídeo exemplar 30 que é configurado para implementar as técnicas desta divulgação. A figura 3 é proporcionada para fins de explicação e não é limitativa sobre as técnicas como amplamente exemplificadas e descritas nesta divulgação. Para efeitos da explicação, esta divulgação descreve o decodificador de vídeo 30 no contexto de codificação de HEVC. No entanto, as técnicas desta divulgação podem ser aplicadas a outras normas ou métodos de codificação.
[0199] No exemplo da figura 3, decodificador de vídeo 30 inclui uma unidade de entropia 150, uma unidade de processamento de predição 152, uma unidade de quantização inversa 154, uma unidade de processamento de transformada inversa 156, uma unidade de reconstrução 158, uma unidade de filtro 160, e um buffer de imagem decodificada 162. A unidade de decodificação de predição 152 inclui uma unidade de compensação de movimento 164 e uma unidade de processamento intrapredição 166. Em outros exemplos, decodificador de vídeo 30 pode incluem mais, menos ou diferentes componentes funcionais.
[0200] Um buffer de imagem codificada (CPB) 151 pode receber e armazenar dados de vídeo codificado (por exemplo, unidades de NAL) de um fluxo de bits. A unidade de decodificação de entropia 150 pode receber unidades de NAL do CPB 151 e analisar as unidades de NAL para decodificar os elementos de sintaxe. A unidade de decodificação de entropia 150 pode decodificar por entropia os elementos de sintaxe codificados por entropia nas unidades de NAL. Unidade de processamento de predição 152, unidade de quantização inversa 154, unidade de processamento de transformada inversa 156, unidade de reconstrução 158, e unidade de filtro 160 podem gerar dados de vídeo decodificados com base nos elementos de sintaxe extraídos do fluxo de bits.
[0201] As unidades de NAL do fluxo de bits podem incluir unidades de NAL de fatia codificada. Como parte de decodificar o fluxo de bits, unidade de decodificação de entropia 150 pode extrair e elementos de sintaxe de decodificação de entropia das unidades de NAL de fatia codificada. Cada uma das fatias codificadas pode incluir um cabeçalho de fatia e dados de fatia. O cabeçalho de fatia pode conter elementos de sintaxe que pertencem a uma fatia. Os elementos de sintaxe no cabeçalho de fatia podem incluir um elemento de sintaxe que identifica um PPS associado a uma imagem que contém a fatia.
[0202] Além de decodificar elementos de sintaxe do fluxo de bits, decodificador de vídeo 30 pode realizar uma operação de reconstrução em uma CU não particionada. Para realizar a operação de reconstrução de uma CU não particionada, decodificador de vídeo 30 pode realizar uma operação de reconstrução em cada TU da CU. Ao realizar a operação de reconstrução para cada TU da CU, decodificador de vídeo 30 pode reconstruir blocos residuais da CU.
[0203] Como parte de realizar uma operação de reconstrução em uma TU de uma UC, unidade de quantização inversa 154 pode quantizar inversamente, ou seja, de- quantizar, blocos de coeficiente associados à TU. Unidade de quantização inversa 154 pode utilizar um valor QP associado com a CU da TU para determinar um grau de quantização e, do mesmo modo, um grau de quantização inversa para a unidade de quantização inversa 154 para aplicar. Isto é, a taxa de compressão, isto é, a razão entre o número de bits utilizados para representar sequência original e a comprimida, 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 de entropia utilizado.
[0204] Após a unidade de quantização inversa 154 quantificar inversamente um bloco de coeficientes, unidade de processamento de transformada inversa 156 pode aplicar uma ou mais transformadas inversa ao bloco de coeficientes de forma a gerar um bloco residual associado com a TU. Por exemplo, a unidade de processamento de transformada inversa 156 pode aplicar uma DCT inversa, transformada de inteiro inversa, uma transformada inversa Karhunen-Loeve (KLT), uma transformada rotacional inversa, uma transformada direcional inversa, ou outra transformada inversa ao bloco de coeficientes.
[0205] Se uma PU é codificada usando intrapredição, unidade de processamento de intrapredição 166 pode realizar intrapredição para gerar blocos preditivos para a PU. Unidade de processamento intra-predição 166 pode usar um modo de intrapredição para gerar blocos preditivos de luma, Cb e Cr para a PU com base nos blocos de predição de PUs espacialmente vizinhas. Unidade de processamento de intrapredição 166 pode determinar o modo de intrapredição para a PU com base em um ou mais elementos de sintaxe de fluxo de bits decodificados.
[0206] A unidade de processamento de predição 152 pode construir uma primeira lista de referência de imagem (RefPicListO) e uma segunda lista de referência de imagem (RefPicListl) com base em elementos de sintaxe extraídos do fluxo de bits. Além disso, se a PU é codificada utilizando interpredição, a unidade de decodificação de entropia 150 pode extrair informação de movimento para a PU. Unidade de compensação de movimento 164 pode determinar, com base na informação de movimento da PU, uma ou mais regiões de referência para a PU. A unidade de compensação de movimento 164 pode gerar, com base em amostras de blocos em um ou mais blocos de referência para a PU, blocos preditivos de luma, Cb e Cr para a PU.
[0207] Unidade de reconstrução 158 pode usar os blocos de transformada luma, Cb e Cr associados com TUs de uma CU e os blocos preditivos de luma, Cb e Cr das PUs da CU, ou seja, quer dados intrapredição ou dados de interpredição, conforme o caso, para reconstruir os de blocos de codificação de luma, Cb e Cr da CU. Por exemplo, a unidade de reconstrução 158 pode adicionar as amostras dos blocos de transformada luma, Cb e Cr de amostras dos blocos de predição correspondentes de luma, Cb e Cr para reconstruir os blocos de codificação de luma, Cb e Cr da CU.
[0208] A unidade de filtro 160 pode realizar uma operação de desbloqueio para reduzir blocos bloqueando artefatos associados com os blocos de codificação luma, Cb e Cr da UC. Decodificador de vídeo 30 pode armazenar os blocos de codificação luma, Cb e Cr da CU em buffer de imagem decodificada 162. Buffer de imagem decodificada 162 pode fornecer imagens de referência para posterior compensação de movimento, intrapredição e apresentação em um dispositivo de exibição, como o dispositivo de exibição 32 da figura 1. Por exemplo, decodificador de vídeo 30 pode realizar, com base em blocos de luma, Cb e Cr no buffer de imagem decodificado 162, intrapredição ou operações de interpredição na PU de outras CUs. Desta forma, decodificador de vídeo 30 pode decodificar, a partir do fluxo de bits, transformar os níveis de coeficiente do bloco de coeficientes de luminância significativa, quantificar inversamente os níveis de coeficiente de transformada os, aplicar uma transformada para transformar os níveis de coeficiente para gerar um bloco de transformada, gerar, com base, pelo menos em parte no bloco de transformada, um bloco de codificação, e emitir o bloco de codificação para exibição.
[0209] A figura 4 é um fluxograma que ilustra um exemplo de operação de um dispositivo 200, de acordo com uma ou mais das técnicas desta descrição. Operação 200 pode ser realizada pelo codificador de vídeo 20, decodificador de vídeo 30, dispositivo adicional 21, ou outro dispositivo. Conforme ilustrado no exemplo da figura 4, o dispositivo pode selecionar, dentre um conjunto de parâmetros HRD hipotéticos (por exemplo, estruturas de sintaxe hrd_parameters) em um VPS e um conjunto de parâmetros HRD em um SPS, um conjunto de parâmetros HRD aplicável a um ponto de operação particular de um fluxo de bits (202). Além disso, o dispositivo pode realizar, com base, pelo menos em parte, no conjunto de parâmetros HRD aplicável ao ponto de operação em particular, uma operação de HRD em um subconjunto de fluxo de bits associado com o ponto de operação em particular (204). Por exemplo, o dispositivo pode realizar um teste de conformidade ou um fluxo de bits de teste da conformidade de decodificador.
[0210] A figura 5 é um fluxograma que ilustra um exemplo de operação de um dispositivo 250, de acordo com uma ou mais das técnicas desta descrição. Operação 200 pode ser realizada pelo codificador de vídeo 20, decodificador de vídeo 30, dispositivo adicional 21, ou outro dispositivo. Conforme ilustrado no exemplo da figura 5, o dispositivo pode realizar 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 (252). O dispositivo pode realizar um processo de decodificação, como parte da realização de um teste de conformidade de fluxo de bits (254).
[0211] Tal como ilustrado no exemplo da figura 5, quando se realiza o processo de decodificação, o dispositivo pode realizar um processo de extração de fluxo de bits para extrair, a partir do fluxo de bits, uma representação de ponto de operação de um ponto de operação definido por um conjunto de identificadores de camada de destino e um identificador temporal maior alvo (256). O conjunto alvo de identificadores de camada pode conter valores de elementos de sintaxe de identificador de camada presentes na representação de ponto de operação. O conjunto alvo de identificadores de camada pode ser um subconjunto de valores de elementos de sintaxe de identificador de camada de fluxo de bits. O identificador temporal maior alvo pode ser igual a um identificador temporal grande presente na representação de ponto de operação, o identificador temporal maior alvo, sendo menor do que ou igual a um identificador temporal grande presente no fluxo de bits. Além disso, o dispositivo pode decodificar unidades de NAL da representação de ponto de operação (258).
[0212] A figura 6 é um fluxograma que ilustra um exemplo de operação de HRD 300 de um dispositivo, de acordo com uma ou mais das técnicas desta descrição. Operação de HRD 300 pode ser realizada pelo codificador de vídeo 20, decodificador de vídeo 30, dispositivo adicional 21, ou outro dispositivo. Outros dispositivos podem incluir um verificador de conformidade de fluxo de bits que leva um fluxo de bits como entrada, e gera uma indicação de que o fluxo de bits de entrada é um fluxo de bits conformando ou não. Em alguns exemplos, a operação de HRD 300 pode determinar a conformidade de um fluxo de bits a um padrão de codificação de vídeo. Em outros exemplos, a operação de HRD 300 pode determinar a conformidade de um decodificador para um padrão de codificação de vídeo. Como parte da realização de HRD operação 300, o dispositivo pode determinar um identificador temporal maior de um subconjunto de fluxo de bits associado com um ponto de operação selecionado de um fluxo de bits (302). Além disso, o dispositivo pode determinar, com base no identificador temporal maior, um elemento de sintaxe particular dentre uma matriz de elementos de sintaxe (por exemplo, sps_max_num_reorder_pics [i], sps_max_dec_pic_buffering [i], e cpb_cnt_minus1 [i]) (304). O dispositivo pode utilizar o elemento de sintaxe particular na operação de HRD (306).
[0213] 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 transmitidas através de, como uma ou mais instruções de código, ou um meio legível por computador e realizado por uma unidade de processamento com base em hardware. Meios legíveis por computador podem incluir meios de armazenamento legíveis por computador, que correspondem a um meio tangível, tais como meios de armazenamento de dados ou meios de comunicação, incluindo qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Deste modo, meios legíveis por computador podem geralmente corresponder a (1) um meio de armazenamento legível por computador tangível que é não transitório ou (2) um meio de comunicação, tal como uma onda de portadora ou sinal. Meios de armazenamento de dados podem ser qualquer material disponível que pode ser acessado por um ou mais computadores ou um ou mais processadores para recuperar as instruções de código, e/ou estruturas de dados para a realização das técnicas descritas nesta divulgação. Um produto de programa de computador pode incluir um meio legível por computador.
[0214] 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éticos, memória flash, ou qualquer outro meio que possa ser utilizado para armazenar o código do programa desejado sob a forma de instruções ou estruturas de dados, e que pode ser acessado por um computador. Além disso, qualquer ligação está corretamente denominada um meio legível por computador. Por exemplo, se as instruções são transmitidas de um site, servidor ou outra fonte remota através de um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL), ou tecnologias sem fio tais como o infravermelho, rádio e microondas, então, o cabo coaxial, cabo de fibra óptica, par torcido, DSL, ou tecnologias sem fios, tais como infravermelho, rádio e micro-ondas estão incluídos na definição de meio. 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 meios de armazenamento tangíveis, não transitória. Disco e disquete, como aqui utilizados, incluem disco compacto (CD), disco laser, disco óptico, disco digital versátil (DVD), disquete e disco Blu-ray, onde disquetes geralmente reproduzem dados magneticamente, enquanto que discos reproduzem dados opticamente com lasers. Combinações dos anteriores também devem ser incluídas dentro do âmbito dos meios legível por computador.
[0215] As instruções podem ser realizadas por um ou mais processadores, como um ou mais processadores de sinais digitais (DSPs), microprocessadores de uso geral, circuitos integrados de aplicação específica (ASIC), arranjos de lógica programáveis em campo (FPGA), ou outro integrado equivalente ou circuitos lógicos discretos. Por conseguinte, o termo "processador", tal como aqui utilizado pode referir-se a qualquer uma das estruturas precedentes 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 dedicados 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.
[0216] As técnicas da presente divulgação podem ser implementadas em uma vasta variedade de dispositivos ou aparelhos, incluindo um aparelho telefônico sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritos nesta divulgação para realçar os aspectos funcionais de dispositivos configurados para realizar 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 ou codec fornecido por um conjunto de unidades de hardware interoperativos, incluindo um ou mais processadores, conforme descrito acima, em conjunto com o software e/ou firmware adequado.
[0217] Vários exemplos foram descritos. Estes e outros exemplos estão dentro do âmbito das seguintes reivindicações.

Claims (15)

1. Método para processar dados de vídeo de acordo com o padrão de Codificação de Vídeo de Alta Eficiência, HEVC, o método caracterizado pelo fato de que compreende: selecionar, um conjunto de parâmetros de decodificador de referência hipotético, HRD, dentre um ou mais conjuntos de parâmetros de decodificador de referência hipotético, HRD, em um conjunto de parâmetros de vídeo, VPS, em um fluxo de bits e um conjunto de parâmetros HRD em um conjunto de parâmetros de sequência, SPS, no fluxo de bits como um conjunto de parâmetros HRD aplicável a um ponto de operação particular de um fluxo de bits compreendendo dados de vídeo codificados, em que selecionar o conjunto de parâmetros HRD aplicável ao ponto de operação particular compreende determinar que o conjunto de parâmetros HRD no SPS é aplicável ao ponto de operação particular quando um conjunto de identificadores de camada do ponto de operação particular contém um conjunto de todos os identificadores de camada presentes em um subconjunto de fluxos de bit que deve ser decodificado ou que está sob teste e, caso contrário, determinar que um dentre os um ou mais conjuntos de parâmetros HRD no VPS é aplicável ao ponto de operação particular; e realizar, com base, pelo menos em parte, no conjunto de parâmetros HRD selecionado aplicável ao ponto de operação particular, uma operação de HRD no subconjunto de fluxo de bits.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o conjunto de parâmetros HRD aplicável ao ponto de operação particular inclui parâmetros que especificam um retardo de remoção de buffer de imagem de codificação, CPB, inicial, um tamanho de CPB, uma taxa de bits, um retardo de emissão de buffer de imagem de decodificação, DPB, inicial e um tamanho de DPB.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: determinar um conjunto de identificadores de camada alvo do ponto de operação particular, que contém cada identificador de camada presente no subconjunto de fluxo de bits, em que o conjunto de identificadores de camada alvo do ponto de operação particular é um subconjunto de identificadores de camada presentes no fluxo de bits; e determinar um identificador temporal alvo do ponto de operação particular, que é igual a um maior identificador temporal presente no subconjunto de fluxo de bits, em que o identificador temporal alvo do ponto de operação particular, é menor ou igual ao maior identificador temporal presente no fluxo de bits.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que selecionar o conjunto de parâmetros HRD compreende selecionar o conjunto de parâmetros HRD no SPS em resposta à determinação de que um conjunto de identificadores de camada especificados no SPS é idêntico ao conjunto de identificadores de camada alvo do ponto de operação particular.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que realizar a operação HRD compreende realizar um teste de conformidade de fluxo de bits, que determina se o fluxo de bits está em conformidade com um padrão de codificação de vídeo.
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que realizar o teste de conformidade de fluxo de bits compreende determinar que o fluxo de bits não está em conformidade com o padrão de codificação de vídeo quando, para todos os conjuntos de parâmetros HRD em uma sequência de vídeo codificado, mais de um conjunto de parâmetros HRD se aplicam ao mesmo ponto de operação.
7. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que realizar o teste de conformidade de fluxo de bits compreende determinar que o fluxo de bits não está em conformidade com o padrão de codificação de vídeo, quando mais de um conjunto de parâmetros HRD no VPS se aplicam ao mesmo ponto de operação.
8. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que realizar o teste de conformidade de fluxo de bits compreende determinar que o fluxo de bits não está em conformidade com o padrão de codificação de vídeo, quando o VPS inclui um conjunto de parâmetros HRD que se aplica a pontos de operação tendo conjuntos de identificadores de camada contendo apenas o valor 0.
9. Dispositivo para processar dados de vídeo de acordo com o padrão de Codificação de Vídeo de Alta Eficiência, HEVC, caracterizado pelo fato de que compreende: meios para selecionar, um conjunto de parâmetros de decodificador de referência hipotético, HRD, dentre um ou mais conjuntos de parâmetros de decodificador de referência hipotético, HRD, em um conjunto de parâmetros de vídeo, VPS, em um fluxo de bits e um conjunto de parâmetros HRD em um conjunto de parâmetros de sequência, SPS, no fluxo de bits como um conjunto de parâmetros HRD aplicável a um ponto de operação particular de um fluxo de bits compreendendo dados de vídeo codificados, em que os meios para selecionar compreendem meios para determinar que o conjunto de parâmetros HRD no SPS é aplicável ao ponto de operação particular quando um conjunto de identificadores de camada do ponto de operação particular contém um conjunto de todos os identificadores de camada presentes em um subconjunto de fluxos de bit que deve ser decodificado ou que está sob teste, e, caso contrário, determinar que um dentre os um ou mais conjuntos de parâmetros HRD no VPS são aplicáveis ao ponto de operação particular; e meios para realizar, com base, pelo menos em parte, no conjunto de parâmetros HRD selecionado aplicável ao ponto de operação particular, uma operação HRD em um subconjunto de fluxo de bits.
10. Dispositivo, de acordo com a reivindicação 9, caracterizado pelo fato de que o conjunto de parâmetros HRD aplicável ao ponto de operação particular inclui parâmetros que especificam um retardo de remoção de buffer de imagem de codificação, CPB, inicial, um tamanho de CPB, uma taxa de bits, um retardo de saída de buffer de imagem decodificada, DPB, inicial, e um tamanho de DPB.
11. Dispositivo, de acordo com a reivindicação 9, caracterizado pelo fato de que compreende adicionalmente: meios para determinar um conjunto de identificadores de camada alvo do ponto de operação particular, que contém cada identificador de camada presente no subconjunto de fluxo de bits, em que o conjunto de identificadores de camada alvo do ponto de operação particular é um subconjunto de identificadores de camada presente no fluxo de bits, e meios para determinar um identificador temporal alvo do ponto de operação particular que é igual a um maior identificador temporal presente no subconjunto de fluxo de bits, em que o identificador temporal alvo do ponto de operação particular é menor ou igual ao maior identificador temporal presente no fluxo de bits.
12. Dispositivo, de acordo com a reivindicação 11, caracterizado pelo fato de que os meios para selecionar o conjunto de parâmetros HRD no SPS em resposta à determinação de que um conjunto de identificadores de camada especificados no SPS é idêntico ao conjunto de identificadores de camada alvo do ponto de operação particular.
13. Dispositivo, de acordo com a reivindicação 9, caracterizado pelo fato de que os meios para realizar um teste de conformidade de fluxo de bits que determina se o fluxo de bits se conforma a um padrão de codificação de vídeo.
14. Dispositivo, de acordo com a reivindicação 13, caracterizado pelo fato de que os meios para determinar que o fluxo de bits não está em conformidade com o padrão de codificação de vídeo, quando: para todos os conjuntos de parâmetros HRD em uma sequência de vídeo codificado, mais de um conjunto de parâmetros HRD se aplicam ao mesmo ponto de operação; e/ou mais de um conjunto de parâmetros HRD no VPS se aplicam ao mesmo ponto de operação; e/ou o VPS inclui um conjunto de parâmetros HRD que se aplica a pontos de operação tendo conjuntos de identificadores de camada contendo apenas o valor 0.
15. Memória legível por computador caracterizada pelo fato de que compreende instruções armazenadas na mesma, as instruções sendo executáveis por um computador para realizar o método conforme definido em qualquer uma das reivindicações 1 a 8.
BR112015006451-5A 2012-09-24 2013-09-18 Método e dispositivo para processar dados de vídeo de acordo com o padrão de codificação de vídeo de alta eficiência e memória legível por computador BR112015006451B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261705102P 2012-09-24 2012-09-24
US61/705,102 2012-09-24
US13/918,041 2013-06-14
US13/918,041 US10021394B2 (en) 2012-09-24 2013-06-14 Hypothetical reference decoder parameters in video coding
PCT/US2013/060412 WO2014047183A1 (en) 2012-09-24 2013-09-18 Hypothetical reference decoder parameters in video coding

Publications (2)

Publication Number Publication Date
BR112015006451A2 BR112015006451A2 (pt) 2017-07-04
BR112015006451B1 true BR112015006451B1 (pt) 2022-09-13

Family

ID=50338834

Family Applications (3)

Application Number Title Priority Date Filing Date
BR112015006451-5A BR112015006451B1 (pt) 2012-09-24 2013-09-18 Método e dispositivo para processar dados de vídeo de acordo com o padrão de codificação de vídeo de alta eficiência e memória legível por computador
BR112015006452-3A BR112015006452B1 (pt) 2012-09-24 2013-09-18 Parâmetros de decodificador de referência hipotético em codificação de vídeo
BR112015006450-7A BR112015006450B1 (pt) 2012-09-24 2013-09-18 Teste de conformidade de fluxo de its em codificação de vídeo

Family Applications After (2)

Application Number Title Priority Date Filing Date
BR112015006452-3A BR112015006452B1 (pt) 2012-09-24 2013-09-18 Parâmetros de decodificador de referência hipotético em codificação de vídeo
BR112015006450-7A BR112015006450B1 (pt) 2012-09-24 2013-09-18 Teste de conformidade de fluxo de its em codificação de vídeo

Country Status (24)

Country Link
US (3) US9351005B2 (pt)
EP (3) EP2898680B1 (pt)
JP (3) JP6258333B2 (pt)
KR (3) KR101706878B1 (pt)
CN (3) CN104662913B (pt)
AR (3) AR093284A1 (pt)
AU (3) AU2013318108B2 (pt)
BR (3) BR112015006451B1 (pt)
CA (3) CA2884280C (pt)
DK (1) DK2898680T3 (pt)
ES (1) ES2758503T3 (pt)
HK (3) HK1206525A1 (pt)
HU (1) HUE045592T2 (pt)
IL (3) IL237404A (pt)
MY (3) MY182240A (pt)
PH (3) PH12015500477A1 (pt)
PT (1) PT2898680T (pt)
RU (3) RU2613737C2 (pt)
SG (4) SG11201501416PA (pt)
SI (1) SI2898680T1 (pt)
TW (3) TWI504238B (pt)
UA (2) UA116996C2 (pt)
WO (3) WO2014047175A1 (pt)
ZA (2) ZA201502304B (pt)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8971656B2 (en) * 2009-12-10 2015-03-03 Sk Telecom Co., Ltd. Encoding/decoding method and apparatus using a tree structure
EP2813075A1 (en) * 2012-02-08 2014-12-17 Thomson Licensing Method and apparatus for using an ultra-low delay mode of a hypothetical reference decoder
JP6552197B2 (ja) 2012-07-06 2019-07-31 シャープ株式会社 サブピクチャ・ベースの仮想参照デコーダ・パラメータをシグナリングする方法
US9351005B2 (en) 2012-09-24 2016-05-24 Qualcomm Incorporated Bitstream conformance test in video coding
US9479774B2 (en) 2012-09-24 2016-10-25 Qualcomm Incorporated Buffering period and recovery point supplemental enhancement information messages
US9992490B2 (en) 2012-09-26 2018-06-05 Sony Corporation Video parameter set (VPS) syntax re-ordering for easy access of extension parameters
US20140092961A1 (en) * 2012-09-28 2014-04-03 Sharp Laboratories Of America, Inc. Signaling decoder picture buffer information
KR101729425B1 (ko) * 2012-09-28 2017-04-21 텔레폰악티에볼라겟엘엠에릭슨(펍) 비디오 시퀀스의 픽처의 디코딩 및 인코딩
US9154785B2 (en) 2012-10-08 2015-10-06 Qualcomm Incorporated Sub-bitstream applicability to nested SEI messages in video coding
US9374585B2 (en) * 2012-12-19 2016-06-21 Qualcomm Incorporated Low-delay buffering model in video coding
US10219006B2 (en) 2013-01-04 2019-02-26 Sony Corporation JCTVC-L0226: VPS and VPS_extension updates
US10419778B2 (en) * 2013-01-04 2019-09-17 Sony Corporation JCTVC-L0227: VPS_extension with updates of profile-tier-level syntax structure
US9402076B2 (en) * 2013-01-07 2016-07-26 Qualcomm Incorporated Video buffering operations for random access in video coding
KR102383006B1 (ko) 2013-04-07 2022-04-04 돌비 인터네셔널 에이비 출력 계층 세트들에서의 시그널링 변경
US9591321B2 (en) 2013-04-07 2017-03-07 Dolby International Ab Signaling change in output layer sets
TWI676389B (zh) 2013-07-15 2019-11-01 美商內數位Vc專利控股股份有限公司 至少一種色彩轉換之編碼方法和編碼器、解碼器、顯示裝置、編碼視訊訊號、電腦程式製品及處理器可讀式媒體
US20160227227A1 (en) * 2013-10-11 2016-08-04 Sharp Kabushiki Kaisha Color information and chromaticity signaling
WO2015053596A1 (ko) * 2013-10-12 2015-04-16 삼성전자 주식회사 멀티 레이어 비디오의 복호화 및 부호화를 위한 버퍼 관리 방법 및 장치
WO2015053597A1 (ko) * 2013-10-12 2015-04-16 삼성전자 주식회사 멀티 레이어 비디오 부호화 방법 및 장치, 멀티 레이어 비디오 복호화 방법 및 장치
US20150103895A1 (en) * 2013-10-13 2015-04-16 Sharp Laboratories Of America, Inc. Electronic devices for signaling multiple initial buffering parameters
WO2015056179A1 (en) * 2013-10-15 2015-04-23 Nokia Technologies Oy Video encoding and decoding using syntax element
US20170026655A1 (en) * 2014-01-02 2017-01-26 Sharp Kabushiki Kaisha Parameter set signaling
US10547834B2 (en) * 2014-01-08 2020-01-28 Qualcomm Incorporated Support of non-HEVC base layer in HEVC multi-layer extensions
WO2015125489A1 (en) * 2014-02-24 2015-08-27 Sharp Kabushiki Kaisha Restrictions on signaling
US10250895B2 (en) * 2014-03-14 2019-04-02 Sharp Kabushiki Kaisha DPB capacity limits
US9794626B2 (en) * 2014-05-01 2017-10-17 Qualcomm Incorporated Partitioning schemes in multi-layer video coding
JP2017522792A (ja) * 2014-06-18 2017-08-10 シャープ株式会社 スライス・タイプおよびデコーダ適合性
US9918091B2 (en) 2014-06-20 2018-03-13 Qualcomm Incorporated Systems and methods for assigning a minimum value to a syntax structure in a parameter set
US10264286B2 (en) 2014-06-26 2019-04-16 Qualcomm Incorporated Bitstream conformance constraints in scalable video coding
WO2016098056A1 (en) * 2014-12-18 2016-06-23 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
US20160234522A1 (en) * 2015-02-05 2016-08-11 Microsoft Technology Licensing, Llc Video Decoding
SG11201706160UA (en) 2015-02-27 2017-09-28 Sonic Ip Inc Systems and methods for frame duplication and frame extension in live video encoding and streaming
US20160330453A1 (en) * 2015-05-05 2016-11-10 Cisco Technology, Inc. Parameter Set Header
US10003813B2 (en) * 2015-06-25 2018-06-19 Samsung Electronics Co., Ltd. Method and system for decoding by enabling optimal picture buffer management
KR102604196B1 (ko) * 2015-09-23 2023-11-21 애리스 인터내셔널 아이피 리미티드 전송 스트림들 내의 하이 다이내믹 레인지 및 와이드 컬러 가무트 콘텐츠의 시그널링
US10582201B2 (en) * 2016-05-19 2020-03-03 Qualcomm Incorporated Most-interested region in an image
MX2021008000A (es) 2018-12-31 2021-10-22 Huawei Tech Co Ltd Un codificador de video, un decodificador de video y metodos correspondientes.
CN111435989B (zh) * 2019-01-15 2023-11-17 华为技术有限公司 视频编码、解码方法、装置及计算机存储介质
US11159795B2 (en) * 2019-03-04 2021-10-26 Tencent America LLC Max transform size control
WO2020232355A1 (en) * 2019-05-16 2020-11-19 Bytedance Inc. Intra block copy for screen content coding
US11303913B2 (en) * 2019-06-19 2022-04-12 Qualcomm Incorporated Decoded picture buffer indexing
US20220239949A1 (en) * 2019-06-20 2022-07-28 Nokia Technologies Oy An apparatus, a method and a computer program for video encoding and decoding
EP3977746A4 (en) * 2019-07-05 2022-08-03 Huawei Technologies Co., Ltd. BITSTREAM EXTRACTION FOR VIDEO CODING WITH SIGNALING IDENTIFIERS
WO2021049644A1 (ja) * 2019-09-11 2021-03-18 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法
CN114762330A (zh) * 2019-09-22 2022-07-15 北京字节跳动网络技术有限公司 视频的子图片编码和解码
WO2021061390A1 (en) * 2019-09-24 2021-04-01 Futurewei Technologies, Inc. Sei message for single layer ols
BR112022005394A2 (pt) * 2019-09-24 2022-06-21 Huawei Tech Co Ltd Simplificação de dependência de mensagem sei em codificação de vídeo
EP4022929A4 (en) * 2019-09-24 2022-11-23 Huawei Technologies Co., Ltd. ENCODER, DECODER SUPPORTING LOWER LAYER FRAMES
US20220394255A1 (en) * 2019-10-06 2022-12-08 Hyundai Motor Company Method and device for performing an inverse transform on transform coefficients of a current block
MX2022004141A (es) * 2019-10-07 2022-04-26 Huawei Tech Co Ltd Evitación de señalización redundante en flujos de bits de video multicapa.
CN110636372B (zh) * 2019-10-08 2022-02-25 未来电视有限公司 视频解码方法、视频播放装置、电子设备及存储介质
JP7482220B2 (ja) 2019-10-18 2024-05-13 北京字節跳動網絡技術有限公司 サブピクチャのパラメータセットシグナリングにおける構文制約
WO2021122365A1 (en) * 2019-12-19 2021-06-24 Telefonaktiebolaget Lm Ericsson (Publ) Output process disable indicator
KR20220115958A (ko) 2019-12-26 2022-08-19 바이트댄스 아이엔씨 코딩된 비트스트림들에서의 비디오 계층들의 시그널링에 대한 제약들
WO2021134018A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Signaling of decoded picture buffer parameters in layered video
JP2023508680A (ja) 2019-12-27 2023-03-03 バイトダンス インコーポレイテッド ビデオコーディングにおけるサブピクチャシグナリング
WO2021142369A1 (en) 2020-01-09 2021-07-15 Bytedance Inc. Signalling of the wavefront parallel processing
JP2023514136A (ja) * 2020-02-21 2023-04-05 アリババ グループ ホウルディング リミテッド クロマ信号を処理するための方法
US11743503B2 (en) * 2020-05-14 2023-08-29 Qualcomm Incorporated Reference picture list constraints and signaling in video coding
WO2021235802A1 (ko) * 2020-05-18 2021-11-25 엘지전자 주식회사 픽처 출력 관련 정보 기반 영상 또는 비디오 코딩
KR20230015391A (ko) * 2020-05-22 2023-01-31 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 서브-비트스트림 추출에서 코딩된 비디오의 핸들링
US11523137B2 (en) * 2020-06-09 2022-12-06 FG Innovation Company Limited Device and method for decoding video data using general constraints information
CN115918067A (zh) 2020-06-12 2023-04-04 字节跳动有限公司 多层视频编解码的图片标头约束
US11729427B2 (en) * 2020-09-17 2023-08-15 Lemon Inc. Chroma format and bit depth indication in coded video
EP4047824A1 (en) * 2021-02-17 2022-08-24 STMicroelectronics Austria GmbH Method for managing communication between contactless devices, and corresponding system
US11930222B1 (en) * 2021-03-30 2024-03-12 Amazon Technologies, Inc. Encoding video for film grain synthesis
EP4138401A1 (en) * 2021-08-17 2023-02-22 Nokia Technologies Oy A method, an apparatus and a computer program product for video encoding and video decoding
WO2024049269A1 (ko) * 2022-09-03 2024-03-07 엘지전자 주식회사 Hrd 파라미터를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체
US11695965B1 (en) 2022-10-13 2023-07-04 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video coding using a coded picture buffer

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1518403A4 (en) * 2002-07-02 2009-03-18 Conexant Systems Inc HYPOTHETIC REFERENCE DECODER FOR COMPRESSED PICTURES AND VIDEO
MY134659A (en) 2002-11-06 2007-12-31 Nokia Corp Picture buffering for prediction references and display
US20050254575A1 (en) 2004-05-12 2005-11-17 Nokia Corporation Multiple interoperability points for scalable media coding and transmission
US8615038B2 (en) 2004-12-06 2013-12-24 Nokia Corporation Video coding, decoding and hypothetical reference decoder
US20070086521A1 (en) 2005-10-11 2007-04-19 Nokia Corporation Efficient decoded picture buffer management for scalable video coding
RU2406254C2 (ru) 2006-03-29 2010-12-10 Квэлкомм Инкорпорейтед Видеообработка с масштабируемостью
US20070230564A1 (en) * 2006-03-29 2007-10-04 Qualcomm Incorporated Video processing with scalability
CA2858458C (en) 2006-10-16 2019-04-16 Nokia Corporation System and method for implementing efficient decoded buffer management in multi-view video coding
CN100530122C (zh) 2006-12-12 2009-08-19 中兴通讯股份有限公司 保证嵌入式系统中数据一致性的方法
MY162367A (en) 2007-01-05 2017-06-15 Thomson Licensing Hypothetical reference decoder for scalable video coding
WO2008127536A2 (en) 2007-04-12 2008-10-23 Thomson Licensing Methods and apparatus for video usability information (vui) for scalable video coding (svc)
KR101615967B1 (ko) 2007-04-17 2016-04-28 톰슨 라이센싱 멀티뷰 비디오 코딩을 위한 가설의 참조 디코더
US20100142613A1 (en) 2007-04-18 2010-06-10 Lihua Zhu Method for encoding video data in a scalable manner
US20090003431A1 (en) * 2007-06-28 2009-01-01 Lihua Zhu Method for encoding video data in a scalable manner
SI3264780T1 (sl) 2007-04-18 2020-08-31 Dolby International Ab Kodirni sistemi, pri katerih se uporablja dodatni niz sekvenčnih parametrov za skalabilno kodiranje videa ali večpogledno kodiranje
US8396082B2 (en) * 2007-06-05 2013-03-12 Core Wireless Licensing S.A.R.L. Time-interleaved simulcast for tune-in reduction
US8059788B2 (en) 2007-06-27 2011-11-15 Avaya Inc. Telephone software testing system and method
JP5264919B2 (ja) 2007-10-05 2013-08-14 トムソン ライセンシング マルチビュービデオ(mvc)符号化システム内にビデオユーザビリティ情報(vui)を取り込む方法及び装置
US8345774B2 (en) * 2008-01-11 2013-01-01 Apple Inc. Hypothetical reference decoder
TWI473016B (zh) 2008-07-16 2015-02-11 Sisvel Internat S A 用以處理多視圖視訊位元串流之方法與裝置及電腦可讀媒體
EP2392138A4 (en) 2009-01-28 2012-08-29 Nokia Corp METHOD AND APPARATUS FOR VIDEO ENCODING AND DECODING
US8767832B2 (en) 2009-03-10 2014-07-01 Mediatek Inc. Method and apparatus for processing a multimedia bitstream
JP5267886B2 (ja) 2009-04-08 2013-08-21 ソニー株式会社 再生装置、記録媒体、および情報処理方法
US8948241B2 (en) * 2009-08-07 2015-02-03 Qualcomm Incorporated Signaling characteristics of an MVC operation point
US8724710B2 (en) 2010-02-24 2014-05-13 Thomson Licensing Method and apparatus for video encoding with hypothetical reference decoder compliant bit allocation
US9131033B2 (en) 2010-07-20 2015-09-08 Qualcomm Incoporated Providing sequence data sets for streaming video data
EP2664151A4 (en) 2011-01-14 2016-01-20 Vidyo Inc HIGH-COATED SYNTAX FOR TIMELY SCALABILITY
US20120183077A1 (en) * 2011-01-14 2012-07-19 Danny Hong NAL Unit Header
US20130170561A1 (en) 2011-07-05 2013-07-04 Nokia Corporation Method and apparatus for video coding and decoding
US9635355B2 (en) 2011-07-28 2017-04-25 Qualcomm Incorporated Multiview video coding
US10237565B2 (en) 2011-08-01 2019-03-19 Qualcomm Incorporated Coding parameter sets for various dimensions in video coding
CN103907347B (zh) 2011-08-31 2018-01-30 诺基亚技术有限公司 多视图视频编码和解码
US20130287093A1 (en) * 2012-04-25 2013-10-31 Nokia Corporation Method and apparatus for video coding
US20140003534A1 (en) 2012-07-02 2014-01-02 Sony Corporation Video coding system with temporal scalability and method of operation thereof
RU2612577C2 (ru) 2012-07-02 2017-03-09 Нокиа Текнолоджиз Ой Способ и устройство для кодирования видеоинформации
US9380289B2 (en) * 2012-07-20 2016-06-28 Qualcomm Incorporated Parameter sets in video coding
US9479774B2 (en) 2012-09-24 2016-10-25 Qualcomm Incorporated Buffering period and recovery point supplemental enhancement information messages
US9351005B2 (en) 2012-09-24 2016-05-24 Qualcomm Incorporated Bitstream conformance test in video coding
US9661341B2 (en) 2013-01-07 2017-05-23 Microsoft Technology Licensing, Llc Syntax and semantics for buffering information to simplify video splicing
US20140301477A1 (en) 2013-04-07 2014-10-09 Sharp Laboratories Of America, Inc. Signaling dpb parameters in vps extension and dpb operation

Also Published As

Publication number Publication date
PH12015500508A1 (en) 2015-04-27
US20140086303A1 (en) 2014-03-27
CN104662913B (zh) 2018-07-20
JP2015533052A (ja) 2015-11-16
KR101706878B1 (ko) 2017-02-14
SG10201702329SA (en) 2017-04-27
US9241158B2 (en) 2016-01-19
CN104641648B (zh) 2018-09-25
IL237405A0 (en) 2015-04-30
IL237453A (en) 2016-07-31
WO2014047175A1 (en) 2014-03-27
CA2884277C (en) 2017-07-04
AR093284A1 (es) 2015-05-27
TW201417584A (zh) 2014-05-01
KR20150063432A (ko) 2015-06-09
ZA201502639B (en) 2017-09-27
AU2013318108B2 (en) 2017-09-14
TWI536809B (zh) 2016-06-01
CA2884277A1 (en) 2014-03-27
MY170158A (en) 2019-07-09
CA2884278A1 (en) 2014-03-27
JP6258333B2 (ja) 2018-01-10
PH12015500478A1 (en) 2015-04-20
AU2013318190A1 (en) 2015-03-19
PH12015500477B1 (en) 2015-04-20
SG11201501416PA (en) 2015-05-28
RU2649297C2 (ru) 2018-03-30
ZA201502304B (en) 2017-11-29
BR112015006450A2 (pt) 2017-07-04
SG11201501414WA (en) 2015-05-28
CN104662913A (zh) 2015-05-27
AU2013318190B2 (en) 2017-07-13
HK1206525A1 (en) 2016-01-08
PT2898680T (pt) 2019-12-02
AU2013318193A1 (en) 2015-03-19
HUE045592T2 (hu) 2020-01-28
BR112015006452B1 (pt) 2022-09-13
JP6009679B2 (ja) 2016-10-19
AU2013318108A1 (en) 2015-03-19
CN104662914A (zh) 2015-05-27
RU2015115522A (ru) 2016-11-20
IL237405B (en) 2018-06-28
UA113334C2 (xx) 2017-01-10
SI2898680T1 (sl) 2019-12-31
HK1207229A1 (en) 2016-01-22
CA2884278C (en) 2017-10-17
US9351005B2 (en) 2016-05-24
RU2642359C2 (ru) 2018-01-24
JP6092397B2 (ja) 2017-03-08
EP2898678A1 (en) 2015-07-29
RU2613737C2 (ru) 2017-03-21
SG11201501421YA (en) 2015-04-29
TWI533671B (zh) 2016-05-11
CN104641648A (zh) 2015-05-20
RU2015115519A (ru) 2016-11-20
US20140086336A1 (en) 2014-03-27
MY181727A (en) 2021-01-05
KR20150063430A (ko) 2015-06-09
KR101669778B1 (ko) 2016-10-27
PH12015500508B1 (en) 2015-04-27
BR112015006450B1 (pt) 2022-09-13
IL237404A (en) 2017-01-31
AR093238A1 (es) 2015-05-27
TW201424393A (zh) 2014-06-16
RU2015115439A (ru) 2016-11-20
JP2015533053A (ja) 2015-11-16
EP2898679A1 (en) 2015-07-29
AR093285A1 (es) 2015-05-27
HK1206526A1 (en) 2016-01-08
PH12015500477A1 (en) 2015-04-20
WO2014047183A1 (en) 2014-03-27
EP2898680B1 (en) 2019-08-21
BR112015006451A2 (pt) 2017-07-04
DK2898680T3 (da) 2019-11-11
TW201429254A (zh) 2014-07-16
CA2884280C (en) 2019-11-26
IL237404A0 (en) 2015-04-30
CN104662914B (zh) 2018-04-20
MY182240A (en) 2021-01-18
US20140086331A1 (en) 2014-03-27
IL237453A0 (en) 2015-04-30
UA116996C2 (uk) 2018-06-11
TWI504238B (zh) 2015-10-11
US10021394B2 (en) 2018-07-10
AU2013318193B2 (en) 2017-06-01
EP2898680A1 (en) 2015-07-29
WO2014047178A1 (en) 2014-03-27
JP2015533054A (ja) 2015-11-16
ES2758503T3 (es) 2020-05-05
PH12015500478B1 (en) 2015-04-20
KR101965027B1 (ko) 2019-04-02
CA2884280A1 (en) 2014-03-27
KR20150063431A (ko) 2015-06-09
BR112015006452A2 (pt) 2017-07-04

Similar Documents

Publication Publication Date Title
BR112015006451B1 (pt) Método e dispositivo para processar dados de vídeo de acordo com o padrão de codificação de vídeo de alta eficiência e memória legível por computador
BR112016025100B1 (pt) Método e dispositivo para decodificar dados de vídeo de várias camadas, assim como memória legível por computador
JP2015533053A5 (pt)
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

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 18/09/2013, OBSERVADAS AS CONDICOES LEGAIS