BR112015006481B1 - Momentos de remoção de armazenamento de imagem codificada independente de unidade de acesso em codificação de vídeo - Google Patents

Momentos de remoção de armazenamento de imagem codificada independente de unidade de acesso em codificação de vídeo Download PDF

Info

Publication number
BR112015006481B1
BR112015006481B1 BR112015006481-7A BR112015006481A BR112015006481B1 BR 112015006481 B1 BR112015006481 B1 BR 112015006481B1 BR 112015006481 A BR112015006481 A BR 112015006481A BR 112015006481 B1 BR112015006481 B1 BR 112015006481B1
Authority
BR
Brazil
Prior art keywords
cpb
removal
video
decoding
subpicture
Prior art date
Application number
BR112015006481-7A
Other languages
English (en)
Other versions
BR112015006481A2 (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 BR112015006481A2 publication Critical patent/BR112015006481A2/pt
Publication of BR112015006481B1 publication Critical patent/BR112015006481B1/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/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

MOMENTOS DE REMOÇÃO DE ARMAZENAMENTO DE IMAGEM CODIFICADA INDEPENDENTE DE UNIDADE DE ACESSO EM CODIFICAÇÃO DE VÍDEO. Um dispositivo de codificação de vídeo, tal como um codificador de vídeo ou um decodificador de vídeo, pode ser configurado para codificar uma duração entre o momento de remoção do armazenador de imagem codificada (CPB ) de uma primeira unidade de decodificação (DU) em uma unida de de acesso (AU) e uma segunda DU, onde a segunda DU é subsequente à primeira DU na ordem de decodificação na mesma AU que a primeira DU. O dispositivo de codificação de vídeo pode determinar adicionalmente um momento de remoção da DU com base pelo menos na duração codificada. O dispositivo de codificação também pode codificar uma mensagem de informação de melhoria suplementar (SEI) de temporização de subimagem associada com a primeira DU. O dispositivo de codificação de vídeo pode determinar adicionalmente um momento de remoção da DU com base pelo menos em parte na mensagem SEI de temporização de subimagem.

Description

[0001] Esse pedido reivindica a prioridade do pedido de patente provisório U.S. No. 61/705.119, depositado em 24 de setembro de 2012, e pedido de patente provisório U.S. No. 61/708.475, depositado em 1 de outubro de 2012, o conteúdo dos quais é incorporado por referência em sua totalidade.
Campo Técnico
[0002] Essa descrição se refere à codificação de vídeo.
Fundamentos
[0003] Capacidades de vídeo digital podem ser incorporadas em uma ampla faixa de dispositivos, incluindo televisores digitais, sistemas de difusão direta digital, sistemas de difusão sem fio, assistentes digitais pessoais (PDAs), computadores laptop ou desktop, computadores tablet, leitoras de e-book, câmeras digitais, dispositivos de gravação digital, aparelhos de mídia digital, dispositivos de jogos de vídeo, consoles de jogos de vídeo, telefones celulares ou de rádio via satélite, os chamados "smart phones", dispositivos de teleconferência de vídeo, dispositivos de sequenciamento de vídeo, e similares. Os dispositivos de vídeo digital implementam as técnicas de compressão de vídeo, tal como as descritas nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.264, ITU-T H.264/MPEG-4, parte 10, Codificação de Vídeo Avançada (AVC), o padrão de Codificação de Vídeo de Alta Eficiência (HEVC), e extensões de tais padrões. Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar informação de vídeo digital de forma mais eficiente pela implementação de tais técnicas de compressão de vídeo.
[0004] As técnicas de compressão de vídeo realizam a previsão espacial (intraimagem) e/ou temporal (interimagem) para reduzir ou remover a redundância inerente às sequências de vídeo. Para a codificação de vídeo com base em bloco, uma fatia de vídeo (isso é, um quadro de vídeo ou uma parte de um quadro de vídeo) pode ser dividida em blocos de vídeo, que também podem ser referidos como blocos de árvore, unidades de codificação (CUs) e/ou nós de codificação. Os blocos de vídeo em uma fatia intracodificada (I) de uma imagem são codificados utilizando-se a previsão espacial com relação às amostras de referência em blocos vizinhos na mesma imagem. Os blocos de vídeo em uma fatia intercodificada (P ou B) de uma imagem podem utilizar a previsão espacial com relação às amostras de referência nos blocos vizinhos na mesma imagem ou previsão temporal com relação às amostras de referência em outras imagens de referência. As imagens podem ser referidas como quadros, e as imagens de referência podem ser referidas para um quadro de referência.
[0005] A previsão espacial ou temporal resulta em um bloco de previsão para um bloco a ser codificado. Os dados residuais representam diferenças de pixel entre o bloco original a ser codificado e o bloco de previsão. Um bloco intercodificado é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência formando o bloco de previsão, e os dados residuais indicando a diferença entre o bloco codificado e o bloco de previsão. Um bloco intracodificado é codificado de acordo com um modo de intracodificação e os dados residuais. Para uma compressão adicional, os dados residuais podem ser transformados a partir do domínio de pixel para um domínio de transformação, resultando em coeficientes de transformação residuais, que então podem ser quantizados. Os coeficientes de transformação quantizados, inicialmente dispostos em um conjunto bidimensional, podem ser digitalizados a fim de produzir um vetor unidimensional dos coeficientes de transformação, e a codificação por entropia pode ser aplicada para se alcançar uma compressão ainda maior.
Sumário
[0006] Em geral, as técnicas descritas nessa descrição são relacionadas com a sinalização e a derivação de momentos de remoçao de armazenador de imagem codificada na codificação de vídeo.
[0007] Em um exemplo, as técnicas descritas nessa descrição são relacionadas com um método de decodificação de dados de vídeo. O método pode incluir a decodificação de uma duração entre a remoção do armazenador de imagem codificada (CPB) de uma primeira unidade de decodificação (DU) em uma unidade de acesso (AU) e a remoção CPB de uma segunda DU, onde a segunda DU é subsequente à primeira DU na ordem de decodificação e na mesma AU que a primeira DU. O método pode incluir adicionalmente a determinação de um tempo de remoção da primeira DU com base pelo menos em parte na duração decodificada e decodificação de dados de vídeo da primeira DU com base pelo menos em parte no tempo de remoção.
[0008] Em outro exemplo, as técnicas descritas nessa descrição são relacionadas com um método para a codificação de dados de vídeo. O método pode incluir a codificação de uma duração entre a remoção CPB de uma primeira DU em uma AU e a remoção CPB de uma segunda DU, onde a segunda DU é subsequente à primeira DU na ordem de decodificação e na mesma AU que a primeira DU. O método pode incluir adicionalmente a determinação de um tempo de remoção da primeira DU com base pelo menos em parte na duração codificada.
[0009] Em outro exemplo, um dispositivo de codificação de vídeo compreendendo um codificador de vídeo é fornecido. O codificador de vídeo é configurado para codificar uma duração entre a remoção CPB de uma primeira DU em uma AU e uma segunda DU, onde a segunda DU é subsequente à primeira DU na ordem de decodificação e na mesma AU que a primeira DU. O codificador de vídeo é adicionalmente configurado para determinar um tempo de remoção da DU com base pelo menos na duração codificada.
[0010] As técnicas descritas aqui também incluem um exemplo de um meio de armazenamento legível por computador possuindo armazenadas no mesmo instruções que, quando executadas, fazem com que um processador de um dispositivo para codificação de dados de vídeo codifique uma duração entre a remoção CPB de uma primeira DU em uma AU e uma segunda DU, onde a segunda DU é subsequente à primeira DU na ordem de decodificação e na mesma AU que a primeira DU. As instruções, quando executadas, também fazem com que o processador determine um tempo de remoção da DU com base pelo menos na duração codificada.
[0011] Em outro exemplo, as técnicas descrita nessa descrição são relacionadas com um dispositivo de codificação de vídeo. O dispositivo de codificação de vídeo pode incluir meios para a codificação de uma duração entre a remoção do armazenador de imagem codificada (CPB) de uma primeira unidade de decodificação (DU) em uma unidade de acesso (AU) e uma segunda DU, onde a segunda DU é subsequente à primeira DU na ordem de decodificação e na mesma AU que a primeira DU. O dispositivo de codificação de vídeo pode incluir adicionalmente meios para determinar um tempo de remoção da DU com base pelo menos na duração codificada.
[0012] Essas técnicas ilustrativas podem ser implementadas em conjunto ou em separado. As técnicas dessa descrição também são descritas em termos de aparelhos configurados para implementar as técnicas, além de mídia de armazenamento legível por computador armazenando instruções que fazem com que um ou mais processadores realizem as técnicas.
[0013] Os detalhes de um ou mais exemplos são apresentados nos desenhos em anexo e na descrição abaixo. Outras características, objetivos e vantagens serão aparentes a partir da descrição e dos desenhos, e das reivindicações.
Breve Descrição dos Desenhos
[0014] A figura 1 é um diagrama em bloco ilustrando um sistema de codificação e decodificação de vídeo ilustrativo que pode utilizar as técnicas descritas nessa descrição.
[0015] A figura 2 é um diagrama em bloco ilustrando um codificador de vídeo ilustrativo que pode implementar as técnicas descritas nessa descrição.
[0016] A figura 3 é um diagrama em bloco ilustrando um decodificador de vídeo ilustrativo que pode implementar as técnicas descritas nessa descrição.
[0017] A figura 4 é um diagrama conceitual ilustrando duas unidades de acesso (AUs) na ordem de decodificação consecutiva que pode ter momentos de decodificação determinados de acordo com as técnicas descritas nessa descrição.
[0018] A figura 5 é um fluxograma ilustrando um método para determinar um momento de remoção de armazenador de imagem codificada (CPB) de uma primeira unidade de decodificação (DU) em uma AU com base no momento de remoção CPB para uma segunda DU da AU de acordo com as técnicas descritas nessa descrição.
[0019] A figura 6 é um fluxograma ilustrando outro método para determinação de um momento de remoção de armazenador de imagem codificada (CPB) de uma primeira unidade de decodificação em uma unidade de acesso com base no momento de remoção CPB para uma segunda unidade de decodificação da unidade de acesso de acordo com as técnicas descritas nessa descrição.
[0020] A figura 7 é um fluxograma ilustrando um método de derivação de um tempo de remoção CPB da primeira DU com base pelo menos em parte na mensagem SEI de temporização de subimagem de acordo com as técnicas descritas nessa descrição.
[0021] A figura 8 é um fluxograma ilustrando outro método para derivar um momento de remoção CPB da primeira DU com base pelo menos em parte na codificação de uma mensagem SEI de temporização de subimagem de acordo com as técnicas descritas nessa descrição.
[0022] A figura 9 é um fluxograma ilustrando um método para decodificação do indicador de nível de sequência para o parâmetro de armazenamento de imagem codificada de nível de subimagem de acordo com as técnicas descritas nessa descrição.
[0023] A figura 10 é um fluxograma ilustrando um método de codificação de indicador de nível de sequência para o parâmetro de armazenamento de imagem codificada de nível de subimagem para as técnicas descritas nessa descrição.
[0024] A figura 11 é um fluxograma ilustrando um método de decodificação de uma DU possuindo uma definição expandida de acordo com as técnicas descritas nessa descrição.
[0025] A figura 12 é um fluxograma ilustrando um método de codificação de uma DU possuindo uma definição expandida de acordo com as técnicas descritas nessa descrição.
[0026] A figura 13 é um fluxograma ilustrando um método de decodificação do período de armazenamento de acordo com as técnicas descritas nessa descrição.
[0027] A figura 14 é um fluxograma ilustrando um método para codificação do período de armazenamento de acordo com as técnicas descritas nessa descrição.
[0028] A figura 15 é um fluxograma ilustrando um método de decodificação dos momentos de chegada e remoça nominal do armazenador de imagem codificada de acordo com as técnicas descritas nessa descrição.
[0029] A figura 16 é um fluxograma ilustrando um método de codificação dos momentos de chegada e remoção nominal do armazenador de imagem codificada de acordo com as técnicas descritas nessa descrição.
Descrição Detalhada
[0030] Essa descrição descreve as técnicas para sinalização e derivação eficiente e resiliente em termos de erro de momentos de remoção de armazenador de imagem codificada (CPB) das unidades de dados codificados na codificação de vídeo. Os momentos de remoção CPB também são conhecidos como momentos de decodificação. A descrição fornece técnicas para determinação de um momento de remoção CPB para uma unidade de decodificação (DU) de uma unidade de acesso (AU) que é independente dos momentos de remoção de qualquer outra AU. Por exemplo, momentos de remoção CPB para uma DU atual de uma AU serão sinalizados com base em uma duração entre um momento de remoção CPB de uma próxima DU em uma ordem de decodificação na AU e a DU atual ou uma duração entre o momento de remoção CPB da última DU na AU e a DU atual. Em outro exemplo, a derivação de momento de remoção CPB é especificada de tal forma que utilize a informação transportada nas mensagens de informação de melhoria suplementar de temporização de subimagem (SEI). duração entre a remoção CPB da última DU na AU na ordem de decodificação e a DU associada com uma mensagem SEI de temporização de subimagem é sinalizada.
[0031] Adicionalmente, as técnicas são fornecidas para incluir um indicador de nível de sequência que pode ser sinalizado para indicar se os parâmetros CPB de subimagem presidem em apenas uma das mensagens SEI de temporização de imagem ou em mensagens SEI de temporização de subimagem, mas nunca em ambos, de acordo com as técnicas descritas aqui. O indicador igual a 1 indica que os parâmetros de retardo de remoção CPB de nível de subimagem estão presentes nas mensagens SEI de temporização de imagem e nenhuma mensagem SEI de temporização de subimagem está presente. O indicador igual a 0 indica que os parâmetros de retardo de remoção de CPB de nível de subimagem estão presentes nas mensagens SEI de temporização de subimagem e as mensagens SEI de temporização de imagem não incluem os parâmetros de retardo de remoção de CPB de nível de subimagem.
[0032] Essa descrição também fornece técnicas para expansão de uma definição de uma unidade de decodificação. Essa descrição fornece adicionalmente as técnicas para restringir as mensagens SEI de período de armazenamento e mensagens SEI de ponto de recuperação de modo que não possam ser associadas com AUs com uma variável, TemporalId, maior que 0. A variável TemporalId é derivada de um elemento de sintaxe associado com cada AU. Essa descrição também fornece técnicas para fornecer um indicador para sinalizar se deriva os momentos de remoção CPB em um nível AU ou um nível de subimagem.
[0033] As técnicas descritas aqui podem ser aplicadas a vários padrões de codificação de vídeo. Os padrões de codificação de vídeo incluem ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC), incluindo suas extensões de Codificação de Vídeo Escalonada (SVC) e Codificação de Vídeo de Múltiplas Visualizações (MVC).
[0034] Adicionalmente, existe um novo padrão de codificação de vídeo, isso é, a Codificação de Vídeo de Alta Eficiência (HEVC), sendo desenvolvido pela Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do Grupo de Especialistas em Codificação de Vídeo ITU-T (VCEG) e Grupo de Especialistas em Imagem em Movimento ISO/IEC (MPEG). Um rascunho de trabalho recente (WD) de HEVC é o Rascunho de Trabalho 8, referido doravante como HEVC WD8. Bross et al., o Rascunho de Trabalho 8 da Especificação de Texto da Codificação de Vídeo de Alta Eficiência (HEVC), julho de 2012, Estocolmo, disponível a partir de 2 de maio de 2013 a partir de http://phenix.int- evry.fr/jct/doc end user/documentos/10 Stockholm/wg11/JCTVC -J1003-v8.zip.
[0035] O WD8 HEVC é incorporado por referência em sua totalidade aqui. Ademais, apesar de as técnicas descritas nessa descrição serem descritas com relação ao padrão HEVC, aspectos dessa descrição não estão limitados a isso e podem ser estendidos para outros padrões de codificação de vídeo, além de técnicas de codificação de vídeo proprietárias.
[0036] Um codificador de vídeo pode gerar uma sequência de bits que inclui dados de vídeo codificados. A sequência de bits pode compreender uma série de unidades de camada de abstração de rede (NAL). As unidades NAL da sequência de bits podem incluir unidades NAL de camada de codificação de vídeo (VCL) e unidades NAL não VCL. As unidades NAL VCL podem incluir fatias codificadas de imagens. Uma unidade 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ção de melhoria suplementar (SEI), ou outros tipos de dados. Um VPS é uma estrutura de sintaxe que pode contar elementos de sintaxe que aplicam a zero ou mais sequências de vídeo codificadas 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 codificadas inteiras. Um VPS singular pode ser aplicável a múltiplos SPS. Um PPS é uma estrutura de sintaxe que pode conter elementos de sintaxe que aplicam a zero ou mais imagens codificadas inteiras. Um único SPS pode ser aplicável a múltiplos PPSs. Vários aspectos de VPS, SPS e PPS podem ser formados, em geral, como definido pelo padrão HEVC.
[0037] As unidades NAL podem incluir um elemento de sintaxe que é indicativo do valor da variável temporalId. TemporalId de uma unidade NAL especifica um identificador temporal da unidade NAL. Se o identificador temporal de uma primeira unidade NAL for inferior ao identificador temporal de uma segunda unidade NAL, os dados encapsulados pela primeira unidade NAL podem ser decodificados com referência aos dados encapsulados pela segunda unidade NAL.
[0038] Cada padrão de codificação de vídeo decodificador de referência hipotética (HRD) que descreve como os dados devem ser armazenados para decodificação como os dados decodificados são armazenados para envio. HRD inclui um modelo de armazenamento de ambos o armazenador de imagem codificada (CPB) e o armazenador de imagem decodificada (DPB). CPB é um armazenador de primeiro a entrar e primeiro a sair contendo unidades de acesso na ordem de decodificação especificadas por HRD. O DPB é um armazenador que mantém as imagens decodificadas para referência, envia a reordenação, ou envia o retardo especificado pelo HRD. Os parâmetros de decodificador de referência hipotética especifica matematicamente os comportamentos do CPB e DPB. HRD pode impor diretamente restrições aos parâmetros diferentes incluindo temporizações, tamanhos de armazenador, e taxas de bit e pode impor indiretamente restrições às características de sequência de bits e estatísticas. Em alguns exemplos, um conjunto completo de parâmetros HRD pode incluir cinco parâmetros básicos: retardo de remoção CPB inicial, tamanho de CPB, taxa de bit, retardo de saída DPB inicial, e tamanho de DPB.
[0039] Em AVC e HEVC, a conformidade de sequência de bits e conformidade de decodificador são especificados como parte da especificação HRD. Apesar de o nome decodificador de referência hipotética se referir a um tipo de decodificador, HRD é tipicamente necessário no lado do codificador para conformidade de sequência de bits, enquanto não necessariamente essenciais no lado do decodificador. No entanto, aspectos dessa descrição não são limitados a isso, e HRD pode ser parte do lado do decodificador também. AVC e HEVC podem especificar dois tipos de sequência de bits ou conformidade HRD, isso é, Tipo I e Tipo II. Além disso, AVC e HEVC especificam dois tipos de conformidade com decodificador: conformidade com decodificador de temporização de saída e conformidade do decodificador com a ordem de saída.
[0040] Nos modelos AVC e HEVC HRD, a decodificação ou remoção CPB é baseada nas unidades de acesso, e os padrões assumem que a decodificação de imagem seja instantânea. Em aplicações práticas, s um decodificador de conformidade seguir de forma estrita os tempos de decodificação sinalizados (por exemplo, nas mensagens de informação de melhoria suplementar (SEI)) para iniciar a decodificação de unidades de acesso, então o momento mais cedo possível para envio de uma imagem decodificada particular é igual ao momento de decodificação dessa imagem em particular mais o tempo necessário para se decodificar essa imagem em particular. Isso é, o momento anterior para envio da imagem decodificada é o momento de decodificação mais o tempo para se decodificar a imagem. No entanto, o tempo necessário para se decodificar uma imagem no mundo real não pode ser igual a zero.
[0041] Em HEVC WD8, um decodificador de referência hipotética (HRD) é especificado no Anexo C. HRD se baseia nos parâmetros HRD, que podem ser fornecidos na sequência de bits na estrutura de sintaxe hrd_parameters() (no conjunto de parâmetros de vídeo (VPS) e/ou o conjunto de parâmetros de sequência (SPS)), as mensagens SEI de período de armazenamento e a mensagem SEI de temporização de imagem. O pedido de patente provisório U.S. No. 61/705.102, depositado em 24 de setembro de 2012 propõe a sinalização de melhoria e a seleção de parâmetros HRD.
[0042] Pode haver problemas associados com os métodos existentes para sinalização e derivação dos momentos de remoção CPB, também conhecidos como momentos de decodificação. A seguir são descritos alguns desses problemas.
[0043] Os momentos de remoção CPB de unidade de decodificação podem não ser resilientes a erro quando os momentos de remoção CPB para unidades de decodificação dentro de uma unidade de acesso dependem da informação de temporização a partir de uma unidade de acesso anterior. Uma unidade de acesso pode compreender uma ou mais unidades de decodificação. Um momento de remoção pode ser determinado para cada DU em uma AU. Um momento de remoção CPB pode ser sinalizado para a AU e para uma ou mais DUs dentro da AU. Uma mensagem SEI para uma AU pode incluir um momento de remoção CPB para a AU propriamente dita, que também corresponde ao momento de remoção CPB para a última DU dentro da AU.
[0044] O armazenador de imagem codificada pode operar em dois níveis: um nível de unidade de acesso e um nível de subimagem. Quando o CPB opera no nível de subimagem (isso é, quando SubPicCpbFlag é igual a 1), a sinalização e derivação dos momentos de remoção CPB da unidade de decodificação (DU) que são baseados nas mensagens SEI de temporização de imagem podem não ser resilientes a erro em circunstâncias nas quais a informação é perdida a partir de uma AU anterior na ordem de decodificação. Por exemplo, a informação de temporização que é sinalizada para uma AU atual inclui uma duração entre um momento de remoção CPB para uma primeira DU na AU atual e uma última DU em uma AU anterior. Dessa forma, se a informação de temporização para a última DU na AU anterior for perdida, então o decodificador não pode determinar o tempo de remoção para a primeira DU na AU atual visto que o momento de remoção para a primeira DU depende da informação de temporização perdida.
[0045] Em outras palavras, a sinalização da duração entre os momentos de remoção CPB da primeira unidade de decodificação em uma AU atual e a última DU na AU anterior na ordem de decodificação, além do uso de tal sinalização na derivação do momento de remoção CPB, torna o sistema ou codificador vulnerável à informação de temporização perdida. Por exemplo, se a informação de remoção CPB (isso é, a mensagem SEI de temporização de imagem) da AU anterior for perdida, então o momento de remoçao CPB da primeira DU na AU atual não pode ser derivado corretamente. Adicionalmente, exceto pela última DU da AU atual, para a qual o tempo de remoção CPB é derivado como igual ao da AU atual, cada um dos momentos de remoção CPB de todas as outras DUs na AU atual se baseia no tempo de remoçao CPB da DU anterior na ordem de decodificação. Dessa forma, se a perda acima ocorrer, o momento de remoção CPB de cada DU na AU atual, exceto pela última DU, não pode ser derivada corretamente.
[0046] Em contraste, as técnicas são descritas aqui que podem reduzir a vulnerabilidade do sistema ou codificador à informação de temporização perdida. Por exemplo, as técnicas são fornecidas para determinar um momento de remoção de armazenamento de imagem codificada para uma DU de uma AU que é independente dos momentos de remoção de qualquer outra unidade de acesso. Por exemplo, um codificador de vídeo sinalizará, na mensagem SEI de temporização de imagem, os momentos de remoçao CPB para uma DU de uma AU a ser recebida por um decodificador de vídeo, com base em uma duração de tempo entre uma DU atual e um momento de remoção CPB de uma próxima DU em uma ordem de decodificação na AU ou um momento de remoção CPB da última DU na AU. Dessa forma, essa descrição descreve as técnicas para sinalização e derivação mais resilientes a erro e mais eficientes de momentos de remoção CPB das unidades de dados codificadas na codificação de vídeo, visto que a informação de temporização para cada DU em uma AU não depende da informação de temporização de outra AU diferente.
[0047] Outro problema associado com os métodos existentes para sinalização e derivação dos momentos de remoção CPB é que a informação de temporização nas mensagens SEI de temporização de subimagem podem não ser utilizadas apesar de estarem presentes. Por exemplo, as mensagens SEI de temporização de subimagem, transportando informação de retardo de remoção CPB DU, podem estar presentes. No entanto, a operação CPB de nível de subimagem é especificada de uma forma que o decodificador de vídeo sempre utilize as mensagens SEI de temporização de imagem e nunca utilize as mensagens SEI de temporização de subimagem. Dessa forma, os bits utilizados para representar as mensagens SEI de temporização de subimagem podem ser desperdiçadas. Adicionalmente, o retardo de remoção CPB DU sinalizado em uma mensagem SI de temporização de subimagem é a diferença entre o momento de remoçao CPB da DU associada e o momento de remoção CPB da primeira DU da AU anterior associada com uma mensagem SEI de período de armazenamento. Enquanto isso pode ser de alguma forma resiliente a erro, pode não ser eficiente, visto que a diferença de tempo pode ser um valor significativo.
[0048] No entanto, as técnicas são fornecidas nessa descrição para especificar a derivação de momento de remoção CPB de uma forma que possa utilizar a informação transportada nas mensagens de informação de melhoria suplementar (SEI) da temporização de subimagem. Por exemplo, a derivação de tempo de remoção CPB é especificada de uma forma que possa utilizar informação transportada nas mensagens SEI de temporização de subimagem, e o codificador de vídeo pode sinalizar a duração entre a remoção CPB da última DU na AU na ordem de decodificação e a DU associada com uma mensagem SEI de temporização de subimagem, tornando a sinalização do codificador e a derivação do decodificador mais eficiente e resiliente a erro.
[0049] Outro problema associado com os métodos existentes para sinalização e derivação dos momentos de remoção CPB é que os parâmetros CPB do nível de subimagem nas mensagens SI de temporização de imagem e mensagens SEI de temporização de subimagem podem estar presentes para a mesma funcionalidade. Essa funcionalidade pode ser fornecida para suportar a operação CPB com base em subimagem. A duplicação desses parâmetros para a mesma funcionalidade pode ser ineficiente. Pode ser possível que apenas um conjunto de parâmetros CPB de nível de subimagem, em qualquer tipo de mensagem SEI, seja suficiente. As técnicas são descritas aqui e configuram um codificador de vídeo para fornecer um indicador de nível de sequência que pode ser sinalizado para indicar a presença de parâmetros CPB de subimagem em apenas uma das mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de subimagem, mas não em ambas. Utilizando-se esse indicador de nível de sequência, um decodificador d vídeo determina se descobre os parâmetros CPB de subimagem, tal como parâmetros de retardo de remoção CPB de nível de subimagem, em uma mensagem SEI de temporização de imagem, ou em uma mensagem SEI de temporização de subimagem.
[0050] Outra questão associada com os métodos existentes para sinalização e derivação dos momentos de remoção CPB é que a definição das unidades de decodificação não consideram unidades NAL não VCL com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT, na faixa de RSV_NVCL44 par RSV_NVCL47, ou na faixa de UNSPEC48 para UNSPEC63. Dessa forma, quando algumas dessas unidades NAL não VCL estão presentes, o comportamento CPB de nível de subimagem inesperado pode ocorrer. Em contraste, essa descrição fornece técnicas para expansão de uma definição de uma unidade de decodificação para incluir unidades NAL não VCL com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT, na faixa de RSV_NVCL44 para RSV_NVCL47, ou na faixa de UNSPEC48 para UNSPEC63.
[0051] Outra questão em potencial associada com os métodos existentes para sinalização e derivação de momentos de remoção CPB é que a mensagem SEI de período de armazenamento e a mensagem SEI de ponto de recuperação podem ser associadas com as AUs com qualquer valor de um valor de identificação temporal (TemporalId). Dessa forma, o decodificador pode inicializar HRD em uma AU com TemporalID maior do que 0. Nesse caso, quando a capacidade de escalonamento temporal é suportada, o momento de remoção CPB de uma AU com um valor TemporalID menor, no mesmo período de armazenamento, pode depender da informação na AU com um valor TemporalID maior. No entanto, para a capacidade de escalonamento temporal funcionar, o processo de decodificação de qualquer AU pode não depender de outra AU com um TemporalId maior. Essa descrição fornece adicionalmente técnicas para restrição das mensagens SEI de período de armazenamento e mensagens SEI de ponto de recuperação de modo que não possam ser associadas com AUs com TemporalId maior que 0.
[0052] O valor de identificação temporal (TemporalId) pode ser um valor hierárquico que indica quais imagens podem ser utilizadas para codificar a imagem atual. Em geral, uma imagem com um valor TemporalId particular pode possivelmente ser uma imagem de referência para imagens com valores TemporalId iguais ou maiores, mas não vice-versa. Por exemplo, uma imagem com um valor TemporalId igual a 1 pode possivelmente ser uma imagem de referência para imagens com valores TemporalId iguais a 1, 2, 3,..., mas não para uma imagem com um valor TemporalId igual a 0.
[0053] O valor TemporalId inferior também pode indicar a menor taxa de exibição. Por exemplo, se um decodificador de vídeo decodificar apenas imagens com os valores TemporalId iguais a 0, a taxa de exibição pode ser de 7,5 imagens por segundo. Se o decodificador de vídeo decodificar apenas imagens com valores TemporalId de 0 e 1, a taxa de exibição pode ser de 15 imagens por segundo, e assim por diante.
[0054] Uma questão em potencial adicional associada com métodos existentes para sinalização e derivação de momentos de remoção CPB está no processo de derivação de momento de remoção CPB, quando sub_pic_cpb_params_present_flag é igual a 1, a derivação do momento de remoção CPB utiliza os momentos de chegada finais e os momentos de remoçao nominal para ambos os casos dos com SubPicCpbFlag igual a 0 (quando CPB opera no nível AU) e com SubPicCpbFlag igual a 1 (quando CPB opera no nível de subimagem). No entanto, esses valores usados para momentos de chegada final e momentos de remoção nominal podem ser derivados para apenas um dos dois casos (por exemplo, para SubPicCPBFlag igual a 0 ou para SubPicCPBFlag igual a 1) e, dessa forma, não estão disponíveis para outro caso. As técnicas descritas aqui fornecem um indicador para sinalizar se o decodificador deve derivar momentos de remoção CPB em um nível AU ou um nível de subimagem. Por exemplo, o decodificador deriva os momentos de chegada CPB e momentos de remoção nominal para ambos o nível AU e o nível de subimagem independentemente do valor de SubPicCpbFlag, enquanto o decodificador deriva os momentos de remoção CPB apenas para o nível AU quando SubPicCpbFlag é igual a 0 e apenas para o nível de subimagem quando SubPicCpbFlag é igual a 1, de acordo com as técnicas descritas aqui. Como descrito aqui, um momento de remoção nominal CPB pode ser um valor padrão para o momento de remoçao CPB. Em alguns exemplos com condições típicas, o momento de remoção CPB é igual ao momento de remoção nominal CPB. No entanto, sob determinadas condições existem os mesmos são diferentes e o momento de remoçao CPB pode ser ligeiramente diferente do valor padrão.
[0055] As técnicas a seguir, descritas nessa descrição, podem solucionar os problemas descritos acima. Por exemplo, as técnicas descritas nessa descrição podem fornecer uma determinação mais resiliente a erro do momento de remoção de armazenador de imagem codificada. Adicionalmente, em adição à resiliência a erro aperfeiçoada, as técnicas podem promover eficiência de sinalização o que reduz largura de banda, overhead de sinalização, e aumenta a eficiência de codificação. Além disso, as técnicas descritas nessa descrição podem permitir uma capacidade de escalonamento temporal adequada.
[0056] Tais técnicas podem incluir, por exemplo, a determinação de um momento de remoção de armazenamento de imagem codificada para uma unidade de decodificação (DU) de uma unidade de acesso (AU) que é independente dos momentos de remoção de qualquer outra unidade de acesso. Por exemplo, os momentos de remoçao CPB para uma DU de uma AU serão sinalizados com base em uma duração entre uma DU atual e um momento de remoção CPB de uma próxima DU em uma ordem de decodificação na AU ou um momento de remoção CPB da última DU na AU. As técnicas também podem incluir a sinalização de um indicador de nível de sequência para controlar a presença de parâmetros CPB de subimagem em apenas uma das mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de subimagem de acordo com as técnicas descritas aqui. As técnicas também podem incluir a expansão de uma definição de uma unidade d decodificação. Técnicas adicionais fornecem a restrição de mensagens SEI de período de armazenamento de mensagens SEI de ponto de recuperação de modo que não possam ser associadas com AUs com uma variável, TemporalId, maior que 0. As técnicas também podem incluir o fornecimento de um indicador para sinalizar se deriva os momentos de remoção CPB em um nível AU ou um nível de subimagem.
[0057] Os detalhes da implementação dessas técnicas são descritos em maiores detalhes abaixo. Outras partes não mencionadas podem ser iguais às em WD8 HEVC.
[0058] A figura 1 é um diagrama em bloco ilustrando um sistema de codificação e decodificação de vídeo ilustrativo 10 que pode utilizar as técnicas descritas nessa descrição. Como ilustrado na figura 1, o sistema 10 inclui um dispositivo fonte 12 que gera os dados de vídeo codificados a serem decodificados posteriormente por um dispositivo de destino 14. O dispositivo fonte 12 e o dispositivo de destino 14 podem compreender qualquer um dentre uma ampla faixa de dispositivos, incluindo computadores desktop, computadores notebook (por exemplo, laptop), computadores tablet, caixas decodificadoras, aparelhos telefônicos tal como os chamados "smart phones", os chamados "smart pads", televisões, câmeras, dispositivos de exibição, aparelhos de mídia digital, consoles de jogos de vídeo, dispositivo de sequenciamento de vídeo, ou similares. Em alguns casos, o dispositivo fonte 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio.
[0059] No exemplo da figura 1, o dispositivo fonte 12 inclui uma fonte de vídeo 18, um codificador de vídeo 20, e uma interface de saída 22. Em alguns casos, a interface de saída 22 pode incluir um modulador/demodulador (modem) e/ou um transmissor. No dispositivo fonte 12, a fonte de vídeo 18 pode incluir uma fonte tal como um dispositivo de captura de vídeo, por exemplo, uma câmera de vídeo, um arquivo de vídeo contendo vídeo capturado previamente, uma interface de alimentação de vídeo para receber vídeo de um provedor de conteúdo de vídeo, e/ou um sistema gráfico de computador para gerar dados gráficos de computador como vídeo fonte, ou uma combinação de tais fontes. Como um exemplo, se a fonte de vídeo 18 for uma câmera de vídeo, o dispositivo fonte 12 e o dispositivo de destino 14 podem formar os chamados telefones de câmera ou videofones. No entanto, as técnicas descritas nessa descrição podem ser aplicáveis à codificação de vídeo em geral e podem ser aplicadas a aplicativos com ou sem fio.
[0060] O vídeo capturado, pré-capturado, ou gerado por computador pode ser codificado pelo codificador de vídeo 20. Os dados de vídeo codificados podem ser transmitidos diretamente para o dispositivo de destino 14 através da interface de saída 22 do dispositivo fonte 12. Os dados de vídeo codificados também podem (ou alternativamente) ser armazenados no dispositivo de armazenamento 32 para acesso posterior pelo dispositivo de destino 14 ou outros dispositivos, para decodificação e/ou reprodução.
[0061] 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 casos, a interface de entrada 28 pode incluir um receptor e/ou um modem. A interface de entrada 28 do dispositivo de destino 14 recebe os dados de vídeo codificados através do link 16. Os dados de vídeo codificados comunicados através do link 16, ou fornecido no dispositivo de armazenamento 32, podem incluir uma variedade de elementos de sintaxe gerados pelo codificador de vídeo 20 para uso por um decodificador de vídeo, tal como o decodificador de vídeo 30, na decodificação de dados de vídeo. Tais elementos de sintaxe podem ser incluídos com os dados de vídeo codificados transmitidos em um meio de comunicação, armazenados em um meio de armazenamento, ou armazenados em um servidor de arquivo.
[0062] O dispositivo de exibição 32 pode ser integrado com, ou externo ao dispositivo de destino 14. Em alguns exemplos, o dispositivo de destino 14 pode incluir um dispositivo de exibição integrado e também pode ser configurado para interfacear com um dispositivo de exibição externo. Em outros exemplos, o dispositivo de destino 14 pode ser um dispositivo de exibição. Em geral, o dispositivo de exibição 32 exibe os dados de vídeo decodificados para um usuário, e pode compreender qualquer um dentre uma variedade de dispositivos de exibição tal como um monitor de cristal líquido (LCD), um monitor de plasma, um monitor de matriz de pontos, um monitor de diodo de emissão de luz orgânica (OLED), tinta eletrônica, ou outro tipo de dispositivo de exibição.
[0063] O dispositivo de destino 14 pode receber os dados de vídeo codificados a serem decodificados através do link 16. O link 16 pode compreender qualquer tipo de meio ou dispositivo capaz de mover os dados de vídeo codificados do dispositivo fonte 12 para o dispositivo de destino 14. Em um exemplo, o link 16 pode compreender um meio de comunicação para permitir que o dispositivo fonte 12 transmita os dados de vídeo codificados diretamente para o dispositivo de destino 14 em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio, e transmitidos para o dispositivo de destino 14. O meio de comunicação pode compreender qualquer meio de comunicação com ou sem fio, tal como um espectro de frequência de rádio (RF) ou uma ou mais linhas de transmissão físicas. O meio de comunicação pode formar parte de uma rede com base em pacote, tal como uma rede de área local, uma rede de área ampla, ou uma rede global tal como a Internet. O meio de comunicação pode incluir roteadores, comutadores, estações base, ou qualquer outro equipamento que possa ser útil para facilitar a comunicação do dispositivo fonte 12 com o dispositivo de destino 14.
[0064] Alternativamente, os dados codificados podem ser enviados a partir da interface de saída 22 para um dispositivo de armazenamento 32. De forma similar, os dados codificados podem ser acessados a partir do dispositivo de armazenamento 32 pela interface de entrada. O dispositivo de armazenamento 32 pode incluir qualquer um dentre uma variedade de mídia de armazenamento de dados acessada localmente ou distribuída. Em um exemplo adicional, o dispositivo de armazenamento 32 pode corresponder a um servidor de arquivo e outro dispositivo de armazenamento intermediário que pode manter o vídeo codificado gerado pelo dispositivo fonte 12. O dispositivo de destino 14 pode acessar os dados de vídeo armazenados a partir do dispositivo de armazenamento 32 através do sequenciamento ou download. O servidor de arquivo pode ser qualquer tipo de servidor capaz de armazenar dados de vídeo codificados e transmitir esses dados de vídeo codificados para o dispositivo de destino 14. Servidores de arquivo ilustrativos incluem um servidor de rede (por exemplo, para um sítio de rede), um servidor FTP, dispositivos de armazenamento anexados à rede (NAS), ou um acionador de disco local. O dispositivo de destino 14 pode acessar os dados de vídeo codificados através de qualquer conexão de dados padrão, incluindo uma conexão com a Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão WiFi), uma conexão com fio (por exemplo, DSL, modem a cabo, etc.) ou uma combinação de ambas que é adequada para acessar os dados de vídeo codificados armazenados em um servidor de arquivo. A transmissão de dado de vídeo codificados a partir do dispositivo de armazenamento 32 pode ser uma transmissão de sequenciamento, uma transmissão de download, ou uma combinação de ambas.
[0065] As técnicas dessa descrição não são necessariamente limitadas a aplicativos sem fio ou configurações. As técnicas podem ser aplicadas à codificação de vídeo suportando qualquer um dentre uma variedade de aplicativos de multimídia, tal como difusões de televisão através do ar, transmissões de televisão a cabo, transmissões de televisão via satélite, transmissões de vídeo de sequenciamento, por exemplo, através da Internet, codificação de vídeo digital para armazenamento em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados, ou outros aplicativos. Em alguns exemplos, o sistema 10 pode ser configurado para suportar transmissão de vídeo de via única ou duas vias para suportar aplicativos tal como sequenciamento de vídeo, reprodução de vídeo, difusão de vídeo e/ou vídeotelefonia.
[0066] O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de compressão de vídeo, tal como o padrão de Codificação de Vídeo com Alta Eficiência (HEVC) atualmente em desenvolvimento pela Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do Grupo de Especialistas em Codificação de Vídeo ITU-T (VCEG) e Grupo de Especialistas em Imagem em Movimento ISO/IEC (MPEG). O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com WD8 HEVC. Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões da indústria ou proprietários, tal como ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC), incluindo suas extensões de Codificação de Vídeo Escalonável (SVC) e Codificação de Vídeo de Múltiplas Visões (MVC), ou extensões de tais padrões. As técnicas dessa descrição, no entanto, não estão limitadas a qualquer padrão de codificação em particular.
[0067] Em alguns exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um, ser integrados com um codificador e decodificador de áudio, e podem incluir unidades MUX-DEMUX adequadas, ou outro hardware e software, para manusear a codificação de ambos o áudio e o vídeo em uma sequência de dados comum ou sequências de dados separadas. Se aplicável, em alguns exemplos, as unidades MUX-DEMUX podem se conformar ao protocolo de multiplexador ITU H.223, ou outros protocolos tal como o protocolo de datagrama de usuário (UDP).
[0068] O codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um, ser implementados como qualquer um dentre uma variedade de conjuntos de circuito de codificador adequados, tal como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados específicos de aplicativo (ASICs), conjuntos de porta programáveis em campo (FPGAs), lógica discreta, software, hardware, firmware ou qualquer combinação dos mesmos. Quando as técnicas são implementadas parcialmente em software, um dispositivo pode armazenar instruções para software em um meio legível por computador não transitório adequado e executa as instruções em hardware utilizando um ou mais processadores para realizar as técnicas dessa descrição. Cada codificador de vídeo 20 e o decodificador de vídeo 30 podem ser incluídos em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador combinado (CODEC) em um dispositivo respectivo.
[0069] JCT-VC está funcionando no desenvolvimento do padrão HEVC. Os esforços de padronização HEVC são baseados em um modelo em evolução de um dispositivo de codificação de vídeo referido como Modelo de Teste HEVC (HM). HM presume várias capacidades adicionais dos dispositivos de codificação de vídeo com relação a dispositivos existentes de acordo com, por exemplo, ITU-T H.264/AVC. Por exemplo, ao passo que H.264 fornece nove modos de codificação por intraprevisão, HM pode fornecer tanto quanto trinta e três modos de codificação de intraprevisão.
[0070] Em geral, o modelo de trabalho de HM descreve que um quadro de vídeo ou imagem pode ser dividido em uma sequência de blocos de árvore ou unidades de codificação maiores (LCU) que incluem ambas as amostras de luminescência e crominância. Um bloco de árvore possui uma finalidade similar a um macrobloco do padrão H.264. Uma fatia inclui um número de blocos de árvore consecutivos na ordem de codificação. Um quadro de vídeo ou imagem pode ser dividido em uma ou mais fatias. Cada bloco de árvore, como um nó raiz do quadtree, pode ser dividido em quatro nós criança, e cada nó criança pode, por sua vez, um nó parente e ser dividido em outros quatro nós criança. Um nó criança final não dividido, como um nó folha do quadtree, compreende um nó de codificação, isso é, um bloco de vídeo codificado. Os dados de sintaxe associados com uma sequência de bits codificada podem definir um número máximo de vezes em que um bloco de árvore pode ser dividido, e também pode definir um tamanho mínimo de nós de codificação.
[0071] Uma CU inclui um nó de codificação e unidades de previsão (PUs) e unidades de transformação (TUs) associadas com o nó de codificação. Um tamanho da CU geralmente corresponde a um tamanho do nó de codificação e é tipicamente quadrado. O tamanho da CU pode variar de 8 x 8 pixels até o tamanho do bloco de árvore com um máximo de 64 x 64 pixels ou mais. Cada CU pode conter uma ou mais PUs e uma ou mais TUs. Os dados de sintaxe associados com uma CU podem descrever, por exemplo, a divisão da CU em uma ou mais PUs. Os modos de divisão podem diferir entre se a CU foi codificada de forma pulada ou no modo direto, codificada no modo de intraprevisão, ou codificada no modo de interprevisão. As PUs podem ser divididas para não terem o formato quadrado. Os dados de sintaxe associados com uma CU também podem descrever, por exemplo, a partição da CU em uma ou mais TUs de acordo com um quadtree. Uma TU pode ser quadrada ou não quadrada em formato.
[0072] O padrão HEVC permite as transformações de acordo com as TUs, que podem ser diferentes para CUs diferentes. As TUs são tipicamente dimensionadas com base no tamanho das PUs dentro de uma determinada CU definida para uma LCU dividida, apesar de isso nem sempre ser o caso. As TUs são tipicamente do mesmo tamanho ou menores que as PUs. Em alguns exemplos, as amostras residuais correspondentes a uma CU podem ser subdivididas em unidades menores utilizando uma estrutura de quadtree conhecida como "quadtree residual" (RQT). Os nós folha da RQT podem ser referidos como unidades de transformação (TUs). Os valores de diferença de pixel associados com as TUs podem ser transformados para produzir coeficientes de transformação, que podem ser quantizados.
[0073] Em geral, uma PU inclui dados relacionados com o processo de previsão. Por exemplo, quando a PU é codificada por intramodo, a PU pode incluir dados descrevendo um modo de intraprevisão para a PU. Como outro exemplo, quando a PU for codificada por intermodo, a PU pode incluir dados definindo um vetor de movimento para a PU. Os dados definindo o vetor de movimento para uma PU pode descrever, por exemplo, um componente horizontal do vetor de movimento, um componente vertical do vetor de movimento, um resolução para o vetor de movimento (por exemplo, uma precisão de um quarto de pixel ou uma precisão de um oitavo de pixel), uma imagem de referência à qual o vetor de movimento aponta, e/ou uma lista de imagem de referência (por exemplo, Lista 0, Lista 1, ou Lista C) para o vetor de movimento.
[0074] Em geral, uma TU é utilizada para processos de transformação e quantização. Uma determinada CU possuindo uma ou mais PUs também pode incluir uma ou mais unidades de transformação (TUs). Depois da previsão, o codificador de vídeo 20 pode calcular os valores residuais a partir do bloco de vídeo identificado pelo nó de codificação de acordo com a PU. O nó de codificação é então atualizado para fazer referência aos valores residuais em vez de o bloco de vídeo original. Os valores residuais compreendem valores de diferença de pixel que podem ser transformados em coeficientes de transformação, quantizados e digitalizados utilizando-se as transformações e outra informação de transformação especificada nas TUs para produzir os coeficientes de transformação serializados para codificação por entropia. O nó de codificação pode mais uma vez ser atualizado para fazer referência a esses coeficientes de transformação serializados. Essa descrição utiliza tipicamente o termo "bloco de vídeo" para fazer referência a um nó de codificação de uma CU. Em alguns casos específicos, essa descrição também pode utilizar o termo "bloco de vídeo" para fazer referência ao bloco de árvore, isso é, LCU ou uma CU, que inclui um nó de codificação e PUs e TUs.
[0075] Uma sequência de vídeo inclui tipicamente uma série de quadros de vídeo ou imagens. Um grupo de imagens (GOP) geralmente compreende uma série de uma ou mais imagens de vídeo. Um GOP pode incluir dados de sintaxe em um cabeçalho do GOP, um cabeçalho de uma ou mais das imagens, ou em outro lugar, que descreva um número de imagens incluídas no GOP. Cada fatia de uma imagem pode incluir dados de sintaxe de fatia que descrevem um modo de codificação para a fatia respectiva. O codificador de vídeo 20 opera tipicamente em blocos de vídeo dentro de fatias de vídeo individuais a fim de codificar os dados de vídeo. Um bloco de vídeo pode corresponder a um nó de codificação dentro de uma CU. Os blocos de vídeo podem ter tamanhos fixos ou variáveis e podem diferir de tamanho de acordo com um padrão de codificação especificado.
[0076] Como um exemplo, HM suporta a previsão em vários tamanhos de PU. Assumindo-se que o tamanho de uma CU em particular seja 2N x 2N, a HM suporta a intraprevisão em tamanhos de PU de 2N x 2N ou N x N, e interprevisão em tamanhos de PU simétricos de 2N x 2N, 2N x N, N x 2N ou N x N. HM também suporta a partição assimétrica para interprevisão em tamanhos de PU de 2N x nU, 2N x nD, nL x 2N e nR x 2N. Na partição assimétrica, uma direção de uma CU não é dividida, enquanto a outra direção é dividida em 25% e 75%. A parte da CU correspondente à partição de 25% é indicada por um "n" seguido por uma indicação de "para cima", "para baixo", "para a esquerda" ou "para a direita". Dessa forma, por exemplo, "2N x nU" se refere a uma CU 2N x 2N que é dividida horizontalmente com uma PU 2N x 0,5N em cima e uma PU 2N x 1,5N em baixo.
[0077] Nessa descrição, "N x N" e "N por N" podem ser utilizados de forma intercambiável para fazer referência às dimensões de pixel de um bloco de vídeo em termos de dimensões horizontal e vertical, por exemplo, 16 x 16 pixels ou 16 por 16 pixels. Em geral, um bloco de 16 x 16 terá 16 pixels em uma direção vertical (y = 16) e 16 pixels na direção horizontal (x = 16). Da mesma forma, um bloco N x N geralmente possui N pixels em uma direção vertical e N pixels em uma direção horizontal, onde N representa um valor inteiro não negativo. Os pixels em um bloco podem ser dispostos em fileiras e colunas. Ademais, os blocos não precisam necessariamente ter o mesmo número de pixels na direção horizontal como na direção vertical. Por exemplo, os blocos podem compreender N x M pixels, onde M não é necessariamente igual a N.
[0078] Seguindo a codificação por intraprevisão ou interprevisão utilizando as PUs de uma CU, o codificador de vídeo 20 pode calcular os dados residuais aos quais as transformações especificadas pelas TUs da CU são aplicadas. Os dados residuais podem corresponder às diferenças de pixel entre os pixels da imagem não codificada e os valores de previsão correspondentes às CUs. O codificador de vídeo 20 pode formar os dados residuais para a CU, e então transformar os dados residuais para produzir coeficientes de transformação.
[0079] Seguindo quaisquer transformações para produção de coeficientes de transformação, o codificador de vídeo 20 pode realizar a quantização dos coeficientes de transformação. A quantização geralmente se refere a um processo no qual os coeficientes de transformação são quantizados para possivelmente reduzir a quantidade de dados utilizados para representar os coeficientes, fornecendo uma compressão adicional. O processo de quantização pode reduzir a profundidade de bit associada com alguns ou todos os coeficientes. Por exemplo, um valor de bit n pode ser arredondado para baixo para um valor de bit m durante a quantização, onde n é maior que m.
[0080] Em alguns exemplos, o codificador de vídeo 20 pode utilizar uma ordem de digitalização predefinida para digitalizar os coeficientes de transformação quantizados para produzir um vetor serializado que pode ser codificado por entropia. Em outros exemplos, o codificador de vídeo 20 pode realizar uma digitalização adaptativa. Depois da digitalização dos coeficientes de transformação quantizados para formação de um vetor unidimensional, o codificador de vídeo 20 pode codificar por entropia o vetor unidimensional, por exemplo, de acordo com a codificação de comprimento variável adaptativa de contexto (CAVLC), codificação aritmética binária adaptativa de contexto (CABAC), codificação aritmética binária adaptativa de contexto com base em sintaxe (SBAC), codificação por Entropia de Partição de Intervalo de Probabilidade (PIPE) ou qualquer outra metodologia de codificação por entropia. O codificador de vídeo 20 também pode codificar por entropia os elementos de sintaxe associados com os dados de vídeo codificados para uso pelo decodificador de vídeo 30 na decodificação de dados de vídeo.
[0081] Para realizar CABAC, o codificador de vídeo 20 pode designar um contexto dentro de um modelo de contexto para um símbolo a ser transmitido. O contexto pode se referir a, por exemplo, se os valores vizinhos do símbolo são diferentes de zero ou não. Para realizar CAVLC, o codificador de vídeo 20 pode selecionar um código de comprimento variável para um símbolo a ser transmitido. Palavras código em VLC podem ser construídas de modo que códigos relativamente mais curtos correspondam a símbolos mais prováveis, enquanto códigos mais longos correspondem a símbolos menos prováveis. Dessa forma, o uso de VLC pode alcançar uma economia de bit sobre, por exemplo, a utilização de palavras código de mesmo comprimento para cada símbolo a ser transmitido. A determinação de probabilidade pode ser baseada em um contexto designado para o símbolo.
[0082] Em alguns exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para implementar uma ou mais técnicas ilustrativas descritas nessa descrição. O codificador de vídeo 20 pode codificar os dados de vídeo na forma de uma unidade de acesso que é quebrada em uma ou mais unidades de decodificação. Essas unidades de acesso podem ser temporariamente armazenadas m um armazenador de imagem codificada. O decodificador de vídeo 30 pode extrair as DUs para decodificação em uma ordem de decodificação com base na informação de temporização incluída nos elementos de sintaxe para a AU ou DU respectiva.
[0083] De acordo com as técnicas descritas nessa descrição, o termo "unidade de decodificação" pode ser definido como segue. Uma unidade de decodificação é uma unidade de acesso ou um subconjunto de uma unidade de acesso. Se o elemento de sintaxe SubPicCpbFlag for igual a 0, uma unidade de decodificação é uma unidade de acesso. Do contrário, uma DU inclui uma ou mais unidades NAL VCL em uma AU e as unidades NAL não VCL associadas. Se uma unidade NAL não VCL possuir nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT, FD_NUT na faixa de RSV_NVCL44 a RSV_NVCL47, ou na faixa de UNSPEC48 a UNSPEC63, a unidade NAL não VCL é associada com a unidade NAL VCL anterior mais recente na ordem de decodificação, do contrário, a unidade NAL não VCL é associada com a primeira unidade NAL VCL subsequente na ordem de decodificação. Para considerar corretamente as unidades NAL não VCL de acordo com as técnicas descritas aqui, a DU pode ser definida para considerar as unidades NAL não VCL com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT, na faixa de RSV_NVCL44 a RSV_NVCL47 ou na faixa de UNSPEC48 a UNSPEC63.
[0084] De acordo com as técnicas descritas nessa descrição, o termo "ponto de operação" pode ser definido como segue. Um ponto de operação é identificado por um conjunto de valores nuh_reserved_zero_6bits (denotados como OpLayerIdSet) e um valor TemporalId (denotado como OpTid) e o subconjunto de sequência de bits associado derivado como a saída do processo de extração de subsequência de bits como especificado na subcláusula 10.1 de WD8 HEVC. Os elementos de sintaxe OpTid e OPLayerIdSet podem funcionar como entradas e podem ser decodificáveis independentemente.
[0085] Alguns exemplos de sequências de bits geradas de acordo com as técnicas descritas aqui podem ter um nível de conformidade com sequência de bits. A subcláusula 10.1 de WD8 HEVC descreve que pode haver uma exigência de conformidade com sequência de bits que qualquer subsequência de bits que seja incluída na saída do processo especificado na subcláusula 10.1 com tIdTarget igual a qualquer valor na faixa de 0 a 6, inclusive, e com targetDecLayerIdSet contendo o valor 0 possa estar em conformidade com HEVC.
[0086] Em alguns exemplos, uma sequência de bits em conformidade pode conter uma ou mais unidades NAL de fatia codificada com nuh_reserved_zero_6bits igual a 0 e TemporalId igual a 0.
[0087] Os registros para o processo descrito aqui podem ser uma variável tIdTarget e uma lista targetDecLayerIdSet. As saídas incluem uma subsequência de bits. A subsequência de bits pode ser derivada pela remoção a partir da sequência de bits de todas as unidades NAL com TemporalId maior do que tIdTarget ou nuh_reserved_zero_6bits não entre os valores em targetDecLayerIdSet.
[0088] Cada unidade NAL pode ser associada com a informação de cabeçalho. Para semânticas de cabeçalho de unidade NAL, o seguinte pode ser especificado. Durante a decodificação, o decodificador 30 pode ignorar (por exemplo, remover da sequência de bits e descartar) o conteúdo de todas as unidades NAL que utilizam valores reservados de nal_unit_type. Em operações HRD como especificado no Anexo C de WD8 HEVC, dependendo do ponto de operação selecionado em teste, as unidades NAL com valores reservados de nal_unit_type podem ser considerados na derivação de momentos de chegada e remoção CPB, mas durante a decodificação podem ser ignorados com segurança (removidos e descartados).
[0089] Durante a decodificação, os decodificadores podem ignorar (por exemplo, remover da sequência de bits e descartar) todas as unidades NAL com valores de nuh reserved zero 6bits diferentes de 0. Em operações HRD como especificado no Anexo C de WD8 HEVC, dependendo do ponto de operação selecionado em teste, as unidades NAL com valores reservados de nuh_reserved_zero_6bits podem ser considerados na derivação de temporização de chegada e remoção CPB, mas durante a decodificação podem ser ignorados com segurança (removidos e descartados).
[0090] Os momentos de chegada e momentos de remoção de armazenador de imagem codificada podem ser baseados em dois níveis: um nível de unidade de acesso e um nível de subimagem. Um codificador de vídeo (por exemplo, um codificador de vídeo 20 ou decodificador de vídeo 30) pode ser configurado para derivar um momento de chegada CPB e um momento de remoção nominal CPB para ambos o nível de unidade de acesso e o nível de subimagem independentemente de um valor de um elemento de sintaxe que define se uma DU é uma AU (por exemplo, se a AU inclui apenas uma DU). O elemento de sintaxe pode ser SubPicCpbFlag, que seria sinalizado para cada AU. Como discutido acima, quando o SubPicCpbFlag é igual a 0, uma DU cria toda a AU. Do contrário, quando SubPicCpbFlag é igual a um valor diferente de zero, uma DU inclui uma ou mais unidades NAL VCL em uma AU e as unidades NAL não VCL associadas. Em alguns exemplos, o codificador de vídeo pode ser configurado para derivar também os momentos de remoção CPB para o nível AU quando o elemento de sintaxe indica que a DU é uma AU. Em alguns desses exemplos, o codificador de vídeo pode ser configurado para derivar os momentos de remoção CPB apenas para o nível AU quando o elemento de sintaxe indica que a DU é uma AU.
[0091] Em alguns exemplos, o codificador de vídeo (por exemplo, codificador de vídeo 20 ou decodificador de vídeo 30) pode ser configurado para derivar também os momentos de remoção CPB para o nível de subimagem quando o elemento de sintaxe indica que a DU não é uma AU. Em alguns desses exemplos, o codificador de vídeo pode ser configurado para derivar os momentos de remoção CPB apenas para o nível de subimagem quando o elemento de sintaxe indica que a DU não é uma AU.
[0092] O codificador de vídeo pode ser configurado para derivar o momento de chegada CPB e o momento de remoção nominal CPB quando um segundo elemento de sintaxe especifica que os parâmetros de retardo de remoção CPB de nível de subimagem estão presentes e CPB pode operar no nível AU ou nível de subimagem. O segundo elemento de sintaxe pode ser um sub_pic_cpb_params_present_flag. Quando sub_pic_cpb_params_present_flag é igual a 1, os parâmetros de retardo de remoção CPB de nível de subimagem estão presentes e CPB pode operar no nível de unidade de acesso ou nível de subimagem, e quando sub_pic_cpb_params_present_flag é igual a 0, os parâmetros de retardo de remoção CPB de nível de subimagem não estão presentes e CPB opera no nível de unidade de acesso.
[0093] Em alguns dos exemplos onde sub_pic_cpb_params_present_flag é igual 1, o codificador de vídeo pode ser configurado para determinar a variável subPicParamsPresentFlag igual a 0, e derivar a AU inicial e os momentos de chegada finais. Então, o codificador de vídeo pode ser configurado para determinar que a variável subPicParamsPresentFlag é igual a 1, e derivar a DU inicial e momentos de chegada finais para DUs dentro da AU.
[0094] Adicionalmente, em alguns exemplos, um codificador de vídeo (por exemplo, o codificador de vídeo 20 ou decodificador de vídeo 30) pode ser configurado para codificar (por exemplo, codificar ou decodificar) uma duração de tempo entre a remoção CPB de uma primeira unidade de decodificação em uma unidade de acesso e uma segunda DU na unidade de acesso. Nesse exemplo, a segunda DU é subsequente à primeira DU na ordem de decodificação e na mesma AU que a DU. O codificador de vídeo pode ser configurado para determinar um tempo de remoção da primeira DU com base pelo menos na duração codificada. Em algumas técnicas, o codificador de vídeo pode determinar o tempo de remoção da primeira DU sem codificar o retardo ou desvio de remoção CPB inicial. Em alguns exemplos, a segunda DU é imediatamente subsequente à primeira DU na unidade de acesso. Em alguns exemplos, a segunda DU é a última DU na unidade de acesso na ordem de decodificação.
[0095] O codificador de vídeo (por exemplo, codificador de vídeo 20 ou decodificador de vídeo 30) também pode se configurado para codificar os parâmetros CPB de nível de subimagem. Nesses exemplos, o codificador de vídeo pode determinar o tempo de remoção da primeira DU com base pelo menos em um dos parâmetros de duração codificada e CPB de nível de subimagem. Por exemplo, os parâmetros CPB de nível de subimagem podem ser uma mensagem SEI de temporização de subimagem que é associada com a primeira DU. Em alguns exemplos, o codificador de vídeo pode codificar a duração entre o tempo de remoção da última DU na AU na ordem de decodificação e a primeira DU na mensagem SEI de subimagem. Em alguns exemplos, o codificador de vídeo pode codificar um indicador de nível de sequência para indicar a presença dos parâmetros CPB de nível de subimagem nas mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de subimagem.
[0096] Por exemplo, o codificador de vídeo 20 pode ser configurado para codificar uma duração de tempo entre a remoção CPB de uma primeira DU em uma AU e uma segunda DU na AU. O codificador de vídeo 20 pode codificar os parâmetros CPB de nível de subimagem, tal como os parâmetros de retardo de remoção CPB de nível de subimagem, em uma dentre uma mensagem SEI de temporização de imagem ou uma mensagem SEI de temporização de subimagem. O codificador de vídeo 20 pode codificar um indicador, sub_pic_cpb_params_in_pic_timing_sei_flag, para indicar se os parâmetros CPB de nível de subimagem estão presentes na mensagem SEI de temporização de imagem ou uma mensagem SEI de temporização de subimagem.
[0097] Por exemplo, o decodificador de vídeo 30 pode decodificar uma duração de tempo entre a remoção CPB de uma primeira DU em uma AU e uma segunda DU na AU. O decodificador de vídeo 30 pode ser configurado para determinar um tempo de remoção da primeira DU com base pelo menos na duração decodificada. Em algumas técnicas, o codificador de vídeo pode determinar o tempo de remoção da primeira DU sem decodificar o retardo e desvio de remoção CPB inicial. O decodificador de vídeo 30 pode decodificar os parâmetros CPB de nível de subimagem de uma mensagem SI de temporização de imagem ou uma mensagem SEI de temporização de subimagem recebida a partir do codificador de vídeo 20. O decodificador de vido 30 pode determinar qual mensagem SEI buscar para os parâmetros CPB de nível de subimagem com base em uma presença do indicador, sub_pic_cpb_params_in_pic_timing_sei_flag.
[0098] Em algumas técnicas ilustrativas descritas nessa descrição, o valor de identificação temporal (TemporalId) da segunda DU pode não ser superior a TemporalId da primeira DU. Em alguns exemplos, TemporalId da segunda DU pode não ser superior a zero.
[0099] Por exemplo, as técnicas descritas nessa descrição podem fornecer uma determinação mais resiliente a erro de tempo de remoção de armazenador de imagem codificada. Adicionalmente, em adição à resiliência de erro aperfeiçoada, as técnicas podem promover uma eficiência de sinalização que reduz a largura de banda, overhead de sinalização, e aumenta o tempo de codificação. Além disso, as técnicas descritas nessa descrição podem permitir uma capacidade de escalonamento temporal aperfeiçoada.
[0100] A figura 2 é um diagrama em bloco ilustrando um codificador de vídeo ilustrativo 20 que pode implementar as técnicas descritas nessa descrição. O codificador de vídeo 20 pode realizar intra e intercodificação de blocos de vídeo dentro de fatias de vídeo. A intracodificação s baseia em previsão espacial para redução ou remoção de redundância espacial em vídeo dentro de um determinado quadro de vídeo ou imagem. A intercodificação s baseia na previsão temporal para redução ou remoção de redundância temporal em vídeo dentro de quadros ou imagens adjacentes de uma sequência de vídeo. O intramodo (modo I) pode se referir a qualquer um dos vários modos de compressão com base espacial. Os intermodos, tal como a previsão unidirecional (modo P) ou previsão dupla (modo B), podem se referir a qualquer um dos vários modos de compressão com base temporal.
[0101] No exemplo da figura 2, o codificador de vídeo 20 inclui uma unidade de partição 35, uma unidade de processamento de previsão 41, somador 50, unidade de processamento de transformação 52, unidade de quantização 54, e unidade de codificação por entropia 56. A unidade de processamento de previsão 41 inclui a unidade de estimativa de movimento 42, a unidade de compensação de movimento 44, e a unidade de processamento de previsão 46 Para a reconstrução de bloco de vídeo, o codificador de vídeo 20 também inclui a unidade de quantização inversa 58, unidade de processamento de transformação inversa 60, o somador 62, a unidade de filtro 64, e um armazenador de imagem decodificada (DPB) 66. O armazenador de imagem decodificada 66 também pode ser referido como uma memória de imagem de referência. Em outros exemplos, o codificador de vídeo 20 pode incluir mais, menos ou outros componentes funcionais.
[0102] Como ilustrado na figura 2, o codificador de vídeo 20 recebe dados de vídeo e a unidade de partição 35 divide os dados em blocos de vídeo. Essa partição de dados de vídeo também pode incluir a partição de dados de vídeo em fatias, tiles, ou outras unidades maiores, além de partição de bloco de vídeo, por exemplo, de acordo com uma estrutura de quadtree de LCUs e CUs. O codificador de vídeo 20 geralmente ilustra os componentes que codificam os blocos de vídeo dentro de uma fatia de vídeo a ser codificada. A fatia pode ser dividida em múltiplos blocos de vídeo (e possivelmente em conjuntos de blocos de vídeo referidos como tiles).
[0103] A unidade de processamento de previsão 41 pode selecionar um dentre uma pluralidade de possíveis modos de codificação, tal como um dentre uma pluralidade de modos de intracodificação de uma pluralidade de modos de intercodificação, para o bloco de vídeo atual com base nos resultados de erro (por exemplo, uma taxa de codificação e o nível de distorção). A unidade de processamento de previsão 41 pode fornecer o bloco intra ou intercodificado resultante para o somador 50 para gerar dados de bloco residual para o somador 62 para reconstruir o bloco codificado para uso como uma imagem de referência.
[0104] A unidade de processamento de intraprevisão 46, encontrada dentro da unidade de processamento de previsão 41, pode realizar a codificação intraprevisível do bloco de vídeo atual com relação a um ou mais blocos vizinhos no mesmo bloco ou fatia que o bloco atual a ser codificado para fornecer compressão espacial. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 dentro da unidade de processamento de previsão 41 realiza a codificação intraprevisível do bloco de vídeo atual com relação a um ou mais blocos de previsão em uma ou mais imagens de referência para fornecer compressão temporal.
[0105] A unidade de estimativa de movimento 42 pode ser configurada para determinar o modo de interprevisão para uma fatia de vídeo de acordo com um padrão predeterminado para uma sequência de vídeo. O padrão predeterminado pode designar fatias de vídeo na sequência como fatias P, fatias B, ou fatias GPB. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 podem ser integradas, mas são ilustradas separadamente para fins conceituais. A estimativa de movimento, realizada pela unidade de estimativa de movimento 42, é o processo de geração de vetores de movimento que estimam o movimento dos blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo dentro de um quadro d vídeo atual ou imagem relativa a um bloco de previsão dentro de uma imagem de referência.
[0106] Um bloco de previsão é um bloco que é considerado uma combinação muito próxima da PU do bloco de vídeo a ser codificado em termos de diferença de pixel, que pode ser determinada pela soma da diferença absoluta (SAD), soma da diferença quadrada (SSD), ou outras métricas de diferença. Em alguns exemplos, o codificador de vídeo 20 pode calcular os valores para as posições de pixel de subinteiro das imagens de referência armazenadas no armazenador de imagem decodificada 66. Por exemplo, o codificador de vídeo 20 pode interpolar os valores de posições de um quarto de pixel, posições de um oitavo de pixel, ou outras posições de pixel fracionadas da imagem de referência. Portanto, a unidade de estimativa de movimento 42 pode realizar uma busca de movimento com relação às posições de pixel inteiro e posições de pixel fracionado e enviar um vetor de movimento com a precisão de pixel fracionado.
[0107] A unidade de estimativa de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia intercodificada pela comparação da posição da PU com a posição de um bloco de previsão de uma imagem de referência. A imagem de referência pode ser selecionada a partir de uma primeira lista de imagens de referência (Lista 0) ou uma segunda lista de imagens de referência (Lista 1), cada uma das quais identifica uma ou mais imagens de referência armazenadas no armazenador de imagem decodificada 66. A unidade de estimativa de movimento 42 envia o vetor de movimento calculado para a unidade de codificação por entropia 56 e a unidade de compensação de movimento 44.
[0108] A compensação de movimento, realizada pela unidade de compensação de movimento 44, pode envolver a coleta ou geração do bloco de previsão com base no vetor de movimento determinado pela estimativa de movimento, possivelmente realizando interpolações para a precisão de subpixel. Depois do recebimento do vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco de previsão para o qual o vetor de movimento aponta em uma das listas de imagens de referência. O codificador de vídeo 20 forma um bloco de vídeo residual pela subtração de valores de pixel do bloco d previsão a partir de valores de pixel do bloco de vídeo atual sendo codificado, formando valores de diferença de pixel. Os valores de diferença de pixel formam os dados residuais para o bloco e podem incluir ambos os componentes de diferença de luminescência e crominância. O somador 50 representa o componente ou componentes que realizam essa operação de subtração. A unidade de compensação de movimento 44 também pode gerar elementos de sintaxe associados com os blocos de vídeo e a fatia de vídeo para uso pelo decodificador de vídeo 30 na decodificação dos blocos de vídeo da fatia de vídeo.
[0109] A unidade de processamento de intraprevisão 46 pode intraprever um bloco atual, como uma alternativa para a interprevisão realizada pela unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44, como descrito acima. Em particular, a unidade de processamento de intraprevisão 46 pode determinar um modo de intraprevisão para uso para codificação de um bloco atual. Em alguns exemplos, a unidade de processamento de intraprevisão 46 pode codificar um bloco atual utilizando vários modos de intraprevisão, por exemplo, durante passagens de codificação separadas, e a unidade de processamento de intraprevisão 46 (ou unidade de seleção de modo 40, em alguns exemplos) pode selecionar um modo de intraprevisão adequado para uso a partir dos modos testados. Por exemplo, a unidade de processamento de intraprevisão 46 pode calcular os valores de distorção de taxa utilizando uma análise de distorção de taxa para vários modos de intraprevisão testados, e selecionar o modo de intraprevisão possuindo as melhores características de distorção de taxa entre os modos testados. A análise de distorção de taxa geralmente determina uma quantidade de distorção (ou erro) entre um bloco codificado e um bloco não codificado original que foi codificado para produzir o bloco codificado, além de uma taxa de bit (isso é, um número de bits) utilizada para produzir o bloco codificado. A unidade de processamento por intraprevisão 46 pode calcular as razões das distorções ou taxas para vários blocos codificados para determinar qual modo de intraprevisão exibe o melhor valor de distorção de taxa para o bloco.
[0110] Em qualquer caso, depois da seleção de um modo de intraprevisão para um bloco, a unidade de processamento de intraprevisão 46 pode fornecer informação indicativa do modo de intraprevisão selecionado para o bloco para a unidade de codificação por entropia 56. A unidade de codificação por entropia 56 pode codificar a informação indicando o modo de intraprevisão selecionado de acordo com as técnicas dessa descrição. O codificador de vídeo 20 pode incluir nos dados de configuração de sequência de bits transmitidos, quais podem incluir uma pluralidade de tabelas de índice de modo de intraprevisão e uma pluralidade de tabelas de índice de modo de intraprevisão modificadas (também referidas como tabelas de mapeamento de palavra código), definições dos contextos de codificação para vários blocos, e indicações de um modo de intraprevisão mais provável, uma tabela de índice de modo de intraprevisão, e uma tabela de índice de modo de intraprevisão modificada para uso para cada um dos contextos.
[0111] Depois da unidade de processamento de previsão 41 gerar o bloco de previsão para o bloco de vídeo atual através de interprevisão ou intraprevisão, o codificador de vídeo 20 forma um bloco de vídeo residual pela subtração do bloco de previsão do bloco de vido atual. Os dados de vídeo residual no bloco residual pode ser incluído em uma ou mais TUs e aplicado à unidade de processamento de transformação 52. A unidade de processamento de transformação 52 transforma os dados de vídeo residuais em coeficientes de transformação residuais utilizando uma transformação, tal como a transformação de cosseno discreto (DCT) ou uma transformação conceitualmente similar. A unidade de processamento de transformação 52 pode converter os dados de vídeo residuais de um domínio de pixel em um domínio de transformação, tal como um domínio de frequência.
[0112] A unidade de processamento de transformação 52 pode enviar os coeficientes de transformação resultantes para a unidade de quantização 54. A unidade de quantização 54 quantiza os coeficientes de transformação para reduzir ainda a taxa de bit. O processo de quantização pode reduzir a profundidade de bit associada com alguns ou todos os coeficientes. O grau de quantização pode ser modificado pelo ajuste de um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54 pode então realizar uma digitalização da matriz incluindo os coeficientes de transformação quantizados. Alternativamente, a unidade de codificação por entropia 56 pode realizar a digitalização.
[0113] Seguindo a quantização, a unidade de codificação por entropia 56 pode codificar por entropia os coeficientes de transformação quantizados. Por exemplo, a unidade de codificação por entropia 56 pode realizar a codificação de comprimento variável adaptativo de contexto (CAVLC), a codificação aritmética binária adaptativa de contexto (CABAC), a codificação aritmética binária adaptativa de contexto com base em sintaxe (SBAC), a codificação por entropia de partição de intervalo de probabilidade (PIPE) ou outra metodologia ou técnica de codificação por entropia. Seguindo a codificação por entropia pela unidade de codificação por entropia 56, a sequência de bits codificada pode ser transmitida para o decodificador de vídeo 30, ou arquivada para transmissão posterior ou recuperação posterior pelo decodificador de vídeo 30. A unidade de codificação por entropia 56 também pode codificar por entropia os vetores de movimento e outros elementos de sintaxe para a fatia de vídeo atual sendo codificada.
[0114] A unidade de quantização inversa 58 e a unidade de processamento de transformação inversa 60 aplicam a quantização inversa e a transformação inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel para uso posterior como um bloco de referência de uma imagem de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência pela adição do bloco residual a um bloco de previsão de uma das imagens de referência dentro de uma das listas de imagem de referência. A unidade de compensação de movimento 44 também pode aplicar um ou mais filtros de interpolação ao bloco residual reconstruído para calcular os valores de pixel subinteiro para uso na estimativa de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de previsão de movimento compensado produzido pela unidade de compensação de movimento 44 para produzir um bloco de referência para armazenamento no armazenador de imagem decodificada 66. O bloco de referência pode ser utilizado pela unidade de estimativa de movimento 42 e unidade de compensação de movimento 44 como um bloco de referência para interprever um bloco em um quadro ou imagem de vídeo subsequente.
[0115] O codificador de vídeo 20 também inclui a unidade de filtro 64 que pode filtrar os limites de bloco de filtro para remover os artefatos de bloqueio do vídeo reconstruído. Isso é, a unidade de filtro 64 pode realizar uma ou mais operações de desbloqueio para reduzir os artefatos de bloqueio nos blocos de codificação associados com uma CU. A unidade de filtro 64 pode ser um filtro de desbloqueio e filtra a saída do somador 62. Filtros de circuito adicionais (em circuito ou pós circuito) também pode ser utilizado em adição à unidade de filtro 64.
[0116] O armazenador de imagem decodificada 66 pode armazenar os blocos de codificação reconstruídos depois que a unidade de filtro 64 realiza as uma ou mais operações de desbloqueio nos blocos de codificação reconstruídos. A unidade de processamento de previsão 41 pode utilizar uma imagem de referência que contém os blocos de codificação reconstruídos para realizar a interprevisão das PUs das outras imagens. Adicionalmente, a unidade de processamento intraprevisão 46 pode utilizar blocos de codificação reconstruídos no armazenador de imagem decodificada 66 para realizar a intraprevisão em outras PUs na mesma imagem que a CU.
[0117] O codificador de vídeo 20 pode gerar elementos de sintaxe relacionados com os momentos de remoção de CPB das DUs dentro de uma AU de acordo com as técnicas descritas aqui. Uma vez que esses elementos de sintaxe são gerados, o codificador de vídeo 20 codifica os mesmos em uma ou mais sequências de bit e envia as sequências de bit.
[0118] De acordo com essa descrição, a unidade de processamento de previsão 41 representa uma unidade ilustrativa para realização das funções ilustrativas descritas acima. Em outros exemplo, uma unidade além da unidade de processamento de previsão 41 pode implementar os exemplos descritos acima. Em alguns outros exemplos, a unidade de processamento de previsão 41 em conjunto com uma ou mais outras unidades de codificador de vídeo 20 pode implementar os exemplos descritos acima. Em alguns outros exemplos, um processador ou unidade de codificador de vídeo 20 pode, sozinho ou em conjunto com outras unidades do codificador de vídeo 20, implementar os exemplos descritos acima.
[0119] A figura 3 é um diagrama em bloco ilustrando um decodificador de vídeo ilustrativo 30 que pode implementar as técnicas descritas nessa descrição. No exemplo da figura 3, o decodificador de vídeo 30 inclui uma unidade de decodificação por entropia 80, uma unidade de processamento de previsão 81, uma unidade de quantização inversa 86, uma unidade de transformação inversa 88, um somador 90, e um armazenador de imagem decodificada (DPB) 92. A unidade de processamento de previsão 81 inclui a unidade de compensação de movimento 82 e a unidade de processamento de intraprevisão 84. Um armazenador de imagem codificada (CPB) 94 e ilustrada como uma entrada para o decodificador de vídeo 30. No entanto, em alguns exemplos, CPB 94 pode ser parte do decodificador de vídeo 30. O decodificador de vídeo 30 pode, em alguns exemplos, realizar uma passagem de decodificação geralmente alternada à passagem de codificação descrita com relação ao codificador de vídeo 20 a partir da figura 2.
[0120] Durante o processo de decodificação, o decodificador de vídeo 30 recebe uma sequência de bits de vídeo codificado que representa os blocos de vídeo de uma fatia de vídeo codificada e elementos de sintaxe associados a partir do codificador de vídeo 20. Os blocos de vídeo da fatia de vídeo codificada e elementos de sintaxe associados do codificador de vídeo 20 podem ser extraídos do armazenador de imagem codificada 94. O vídeo codificado a partir de CPB 94 pode incluir, por exemplo, unidades de acesso (AUs) compreendendo unidades de decodificação (DUs). Os elementos de sintaxe podem incluir variáveis e indicadores indicativos dos momentos de remoção CPB para as unidades de acesso e unidades de decodificação.
[0121] A unidade de decodificação por entropia 80 do decodificador de vídeo 30 decodifica por entropia a sequência de bits para gerar coeficientes quantizados, vetores de movimento e outros elementos de sintaxe para a unidade de processamento de previsão 81. O decodificador de vídeo 30 pode receber os elementos de sintaxe no nível de fatia de vídeo e/ou no nível de bloco de vídeo.
[0122] Quando a fatia de vídeo é codificada como uma fatia intracodificada (I), a unidade de processamento de intraprevisão 84 da unidade de processamento de previsão 81 pode gerar dados de previsão para um bloco de vídeo da fatia de vídeo atual com base em um modo de intraprevisão sinalizado e dados dos blocos decodificados previamente do quadro ou imagem atual. Quando o quadro de vídeo é codificado como uma fatia intercodificada (isso é, B, P ou GPB), a unidade de compensação de movimento 82 da unidade de processamento de previsão 81 produz blocos de previsão para um bloco de vídeo da fatia de vídeo atual nos vetores de movimento e outros elementos de sintaxe recebidos a partir da unidade de decodificação por entropia 80. Os blocos de previsão podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagens de referência. O decodificador d vídeo 30 pode construir listas de quadros de referência, Lista 0 e Lista 1, utilizando as técnicas de construção padrão com base nas imagens de referência armazenadas no armazenador de imagens decodificadas 92.
[0123] A unidade de compensação de movimento 82 determina a informação de previsão para um bloco de vídeo da fatia de vídeo atual pela análise dos vetores de movimento e outros elementos de sintaxe, e utiliza a informação de previsão para produzir os blocos de previsão para o bloco de vídeo atual sendo decodificado. Por exemplo, a unidade de compensação de movimento 82 utiliza alguns dos elementos de sintaxe recebidos para determinar um modo de previsão (por exemplo, intra ou interprevisão) utilizado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de interprevisão (por exemplo, fatia B, fatia P ou fatia GPB), informação de construção para uma ou mais das listas de imagens de referência para a fatia, vetores de movimento para cada bloco de vídeo intercodificado da fatia, situação de interprevisão para cada bloco de vídeo intercodificado da fatia, e outras informações para a decodificação de blocos de vídeo na fatia de vídeo atual.
[0124] A unidade de compensação de movimento 82 também pode realizar a interpolação com base nos filtros de interpolação. A unidade de compensação de movimento 82 pode utilizar filtros de interpolação como utilizados pelo codificador de vídeo 20 durante a codificação de blocos de vídeo para calcular os valores interpolados para os pixels subinteiros dos blocos de referência. Nesse caso, a unidade de compensação de movimento 82 pode determinar os filtros de interpolação utilizados pelo codificador de vídeo 20 a partir dos elementos de sintaxe recebidos e utilizar os filtros de interpolação para produzir blocos de previsão.
[0125] A unidade de quantização inversa 86 quantiza de forma inversa, isso é, desquantiza, os coeficientes de transformação quantizados fornecidos na sequência de bits e decodificados pela unidade de decodificação por entropia 80. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização calculado pelo codificador de vídeo 20 para cada bloco de vídeo na fatia de vídeo para determinar um grau de quantização e, da mesma forma, um grau de quantização inversa que deve ser aplicado. A unidade de processamento de transformação inversa 88 aplica uma transformação inversa, por exemplo, uma DCT inversa, uma transformação de inteiro inversa, ou um processo de transformação inversa conceitualmente similar, aos coeficientes de transformação a fim de produzir os blocos residuais no domínio de pixel.
[0126] Depois que a unidade de compensação de movimento 82 gera o bloco de previsão para o bloco de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe, o decodificador de vídeo 30 forma um bloco de vídeo decodificado pela soma dos blocos residuais a partir da unidade de processamento de transformação inversa 88 com os blocos de previsão correspondentes gerados pela unidade de compensação de movimento 82. O somador 90 representa o componente ou componentes que realizam essa operação de resumo. Se desejado, um filtro de desbloqueio também pode ser aplicado ao filtro de blocos decodificados a fim de remover os artefatos de bloqueio. Outros filtros de circuito (no circuito de codificação ou depois do circuito de codificação) também podem ser utilizados para suavizar as transições de pixel, ou de outra forma aperfeiçoar a qualidade de vídeo. Os blocos de vídeo decodificados em um determinado quadro ou imagem são então armazenados em DPB 92, que armazena as imagens de referência utilizadas para compensação de movimento subsequente. DPB 92 também armazena vídeo decodificado para apresentação posterior em um dispositivo de exibição, tal como o dispositivo de exibição 32 da figura 1.
[0127] De acordo com essa descrição, a unidade de processamento de previsão 81 representa uma unidade ilustrativa para realização das funções ilustrativas descritas acima. Em outros exemplos, uma unidade além da unidade de processamento de previsão 81 pode implementar os exemplos descritos acima. Em alguns outros exemplos, a unidade de processamento de previsão 841 em conjunto com uma ou mais outras unidades do decodificador de vídeo 30 pode implementar os exemplos descritos acima. Em alguns outros exemplos, um processador ou unidade de decodificador de vídeo 30 pode, sozinho ou em conjunto com outras unidades do decodificador de vídeo 30, implementar os exemplos descritos acima.
[0128] O decodificador de vídeo 30 pode armazenar os dados de vídeo recebidos na forma de uma sequência de bits, incluindo AUs e DUs, no armazenador de imagem codificada (CPB) 94. O decodificador de vídeo 30 pode extrair DUs e AUs do CPB 94 em momentos de remoção determinados a partir do decodificador de vídeo de elementos de sintaxe 30 recebido na sequência de bits. Os indicadores e variáveis presentes nas mensagens SEI podem informar o decodificador de vídeo 30 quando remover DUs do CPB 94. No momento de remoção determinado para uma DU atual, o decodificador de vídeo 30 extrai a DU atual do CPB 94 e decodifica a DU. Em alguns exemplos, o decodificador de vídeo 30 também extrai uma AU quando a DU atual é a última DU da AU.
[0129] A seguir é descrita a operação do CPB 94. Essa descrição pode ser aplicada independentemente a cada um dos parâmetros CPB que estão presentes e a ambos os pontos de conformidade Tipo I e Tipo II ilustrados na figura C-1 no WD8 HEVC, onde o conjunto de parâmetros CPB é selecionado como especificado na subcláusula C.1 de WD8 HEVC. A operação de CPB 94 pode incluir a temporização da chegada de sequência de bits e temporização da remoção de unidade de decodificação e decodificação da unidade de decodificação. Cada um é descrito de uma vez.
[0130] Primeiro, a temporização da chegada de sequência de bits será descrita. Para a temporização da chegada de sequência de bits, antes da inicialização HRD, CPB 94 está vazio. Em alguns exemplos, depois da inicialização, HRD pode não ser inicializado novamente pelas mensagens SEI de período de armazenamento subsequente.
[0131] Nos exemplos descritos nessa descrição, cada unidade de acesso é referida como unidade de acesso "n" onde o número "n" identifica a unidade de acesso particular. A unidade de acesso que é associada com a mensagem SEI de período de armazenamento que inicializa o CPB 94 é referida como unidade de acesso 0. O valor de n é incrementado por 1 para cada unidade de acesso subsequente na ordem de decodificação.
[0132] Cada unidade de decodificação é referida como uma unidade de decodificação "m", onde o número "m" identifica a unidade de decodificação em particular. A primeira unidade de decodificação na ordem de decodificação na unidade de acesso 0 é referida como unidade de decodificação 0. O valor de m é incrementado por 1 para cada unidade de decodificação subsequente na ordem de decodificação.
[0133] Quando sub_pic_cpb_params_present_flag é igual a 1, o processo a seguir é primeiramente invocado, com a variável subPicParamsPresentFlag configurada igual a 0, para derivação dos momentos de chegada iniciais e finais da unidade de acesso (AU) para a unidade de acesso n. Então, o processo a seguir é invocado, com subPicParamsPresentFlag determinado igual a 1, para derivação dos momentos de chegada iniciais e finais da unidade de decodificação para unidades de decodificação na unidade de acesso n.
[0134] As variáveis InitCpbRemovalDelay[SchedSelIdx] e InitCpbRemovalDelayOffset[SchedSelIdx] podem ser determinadas como segue. Se uma das três condições a seguir for verdadeira, InitCpbRemovalDelay[SchedSelIdx] e InitCpbRemovalDelayOffset[SchedSelIdx] são determinadas para valores de initial_alt_cpb_removal_delay[SchedSelIdx] e initial_alt_cpb_removal_delay_offset[SchedSlIdx] correspondendo a NalHdModeFlag, respectivamente, na mensagem SEI de período de armazenamento. A primeira condição pode ser quando a unidade de acesso 0 é uma unidade de acesso de acesso por link quebrado (BLA) para a qual a imagem codificada possui nal_unit_type igual a BLA_W_DLP ou BLA_N_LP, e o valor de rap_cpb_params_present_flag da mensagem SEI de período de armazenamento é igual a 1. A segunda condição pode ser que DefaultInitCpbParamsFlag seja igual a 0. A terceira condição pode ser que subPicParamsPresentFlag seja igual a 1. Note-se que em alguns exemplos quando sub_pic_cpb_params_present_flag é igual a 1, a sequência de vídeo codificada pode não ter imagens de acesso randômico claras (CRA) ou BLA, e dessa forma, as primeiras duas condições podem ser ambas falsas.
[0135] Do contrário, s nenhuma das três condições acima forem verdadeiras, InitCpbRemovalDelay[SchedSelIdx] e InitCpbRemovalDelayOffset[SchedSelIdx] são configuradas para valores de initial_cpb_removal_delay[SchedSelIdx] e initial_cpb_removal_delay_offset[ShedSelIdx] correspondendo a NalHrdModeFlag, respectivamente, na mensagem SEI de período de armazenamento associada selecionada como especificado na subcláusula C.1 de WD8 HEVC
[0136] Nos exemplos descritos aqui, o momento no qual o primeiro bit da unidade de decodificação m começa a entrar em CPB 94 é referido como momento de chegada inicial tai(m). O momento de chegada inicial da unidade de decodificação m é derivado como segue. Se a unidade de decodificação for a unidade de decodificação 0 (isso é, m = 0), tai(0) = 0. Isso é, a primeira unidade de decodificação chega no momento 0. Do contrário, para unidades de decodificação depois da primeira unidade de decodificação (unidade de decodificação m com m > 0), o seguinte se aplica.
[0137] Se cbr_flag [SchedSelIdx] for igual a 1, o momento de chegada inicial para a unidade de decodificação m é igual ao momento de chegada final (tai, derivada abaixo) da unidade de decodificação m -1, a unidade de decodificação anterior. A equação 1 fornece uma relação: tai(m) = taf (m-1) (1) Do contrário (por exemplo, cbr_flag [SchedSelIdx] é igual a 0), o momento de chegada inicial para a unidade de decodificação m ( por exemplo, para m > 0) é derivado pela equação ("Equação") 2: tai(m) = MAX(taf(m-1), tai,earliest) (2)
[0138] O momento de chegada da unidade de decodificação tai,earliest é derivado como segue. Se a unidade de decodificação m não for a primeira unidade de decodificação de um período de armazenamento subsequente, tai,earliest é derivado como ilustrado na equação 3:
Figure img0001
Com tr,n(m) sendo o momento de remoção nominal da unidade de decodificação m de CPB 94.
[0139] O momento de chegada final para a unidade de decodificação m é derivado com a equação 4:
Figure img0002
onde b(m) é o tamanho, em bits, da unidade de decodificação m. Se o ponto de conformidade Tipo I for aplicável, b(m) inclui a contagem de bits das unidades NAL VCL e das unidades NAL de dados de enchimento. Se o ponto de conformidade Tipo II se aplicar, b(m) inclui a contagem de todos os bits da sequência de bits Tipo II para o ponto de conformidade Tipo II. Os pontos de conformidade Tipo I e Tipo II são como ilustrado nas figuras C-1 do Anexo C de WD8 HEVC.
[0140] Os valores de SchedSelIdx, BitRate[SchedSelIdx] e CpbSize[SchedSelIdx] são restringidos como segue. Se o conteúdo das estrutura de sintaxe hrd_parameters() selecionada para a AU contendo a unidade de decodificação m e a AU anterior na ordem de decodificação (na ordem de decodificação) diferirem, um programador de distribuição (HSS) seleciona um valor de SchedSelIdx1 de SchedSelIdx dentre os valores de SchedSelIdx fornecido na estrutura de sintaxe selecionada hrd_parameters() para a unidade de acesso contendo a unidade de decodificação m que resulta em BitRate{SchedSelIdx1] ou CpbSize[SchedSelIdx1] para a unidade de acesso contendo a unidade de decodificação m. O valor de BitRate[SchedSelIdx1] ou CpbSize[SchedSelIdx1] pode diferir do valor de BitRate[SchedSelIdx0] ou CpbSize[SchedSelIdx0] para o valor SchedSelIdx0 de SchedSelIdx que estava em uso para a unidade de acesso anterior. Do contrário, se o conteúdo das estruturas de sintaxe hrd_parameters() selecionadas para as duas AUs forem iguais, HSS continua a operar com os valores anteriores SchedSelIdx, BitRate{SchedSelIdx], e CpbSize[SchedSelIdx].
[0141] Quando o HSS seleciona os valores de BitRate[SchedSelIdx] ou CpbSize[SchedSelIdx] que diferem dos da unidade de acesso anterior, o seguinte se aplica. A variável BitRate[SchedSelIdx] entra em efeito no momento tai(m). A variável CpbSize[SchedSelIdx] entra em efeito em determinadas condições.
[0142] Se o novo valor de CpbSize[SchedSelIdx] for maior do que o tamanho CPB antigo, CpbSize[SchedSelIdx] entra em efeito no momento tai(m). Do contrário, s o novo valor de CpbSize[SchedSelIdx] entrar em efeito no momento tai(m). Do contrário, s o novo valor de CpbSize[SchedSelIdx] for inferior a ou igual a o tamanho de CPB antigo, o novo valor de CpbSize[SchedSelIdx] [e inferior a ou igual a o tamanho de CPB antigo, e o novo valor de CpbSize[SchedSelIdx] entra em efeito no momento de remoção CPB da última unidade de decodificação da unidade de acesso contendo a unidade de decodificação m.
[0143] Quando SubPicCpbFlag for igual a 1, o momento de chegada CPB inicial da unidade de acesso n, tai(n), é configurado para o momento de chegada CPB inicial da primeira unidade de decodificação na unidade de acesso n. O momento de chegada CPB final da unidade de acesso n, taf(m) é determinado para o momento de chegada CPB final da última unidade de decodificação na unidade de acesso n. Quando SubPicCpbFlag é igual a 0, cada DU é uma AU, dessa forma os momentos de chegada CPB inicial e final da unidade de acesso n são os momentos de chegada CPB inicial e final da unidade de decodificação n.
[0144] Essa descrição agora se volta para a descrição da operação de CPB 94 com relação à temporização de decodificação de remoção de unidade e decodificação de unidades de decodificação.
[0145] As variáveis InitCpbRemovalDelay[SchedSelIdx] e InitCpbRemovalDelayOffst[SchedSlIdx] são utilizadas para momentos de remoção DU. Essas duas variáveis são determinadas como segue. Se qualquer um adas duas condições for verdadeira, InitCpbRemovalDelay[SchedSelIdx] e InitCpbRemovalDelayOffset[SchedSelIdx] são determinados, em uma mensagem SEI de período de armazenamento, para os valores de Initial_alt_cpb_removal_delay[SchedSelIdx] e Initial_alt_cpb_removal_delay_offst[SchedSlIdx] correspondendo a NalHrdModeFlag, respectivamente. A primeira condição é que a unidade de acesso 0 é uma unidade de acesso BLA para a qual a imagem codificada possui nal_unit_type igual a BLA_W_DLP ou BLA_N_LP, e o valor de rap_cpb_params_present_flag da mensagem SEI de período de armazenamento é igual a 1. A segunda condição é que DefaultInitCpbParamsFlag é igual a 0.
[0146] Se nenhuma das duas condições for verdadeira, InitiCpbRemovalDelay[SchedSlIdx] e InitCpbRemovalDelayOffset[SchedSlIdx] são configuradas em valores de initial_cpb_removal_delay[SchedSlIdx] e initial_cpb_removal_delay_offset[SchedSelIdx] correspondendo a NalHrdModeFlag, respectivamente, na mensagem SEI de período de armazenamento associada selecionada como especificado na subcláusula C.1 do Anexo C de WD8 HEVC.
[0147] A variável CpbRemovalDelay(m), relevante para o momento retardado de remoção da unidade de decodificação m de CPB 8 pode ser derivada como segue quando: sub_pic_cpb_params_present_flag é igual a 1. Se sub_pic_cpb_params_in_pic_timing_sei_flag for igual a 0, CpbRemovalDelay(m) é configurada para du_spt_cpb_removal_delay na mensagem SEI de temporização de subimagem associada com a unidade de decodificação m. A mensagem SEI de temporização de subimagem pode ser selecionada como especificado na subcláusula C.1 do Anexo C de WD8 HEVC.
[0148] Se du_common_cpb_removal_delay_flag for igual a 0, a variável CpbRemovalDelay(m) é configurada para o valor de du_cpb_removal_delay_minus1[i] + 1 para a unidade de decodificação m na mensagem SEI de temporização de imagem, selecionada como especificado na subcláusula C.1 do Anexo C de WD8 HEVC, associado com a unidade de acesso que contém a unidade de decodificação m. O valor de i é 0 para as primeiras unidades de decodificação consecutivas num_nalus_in_du_minus1[0] + 1 na unidade de acesso que contém a unidade de decodificação m 1 para as unidades de decodificação num_nalus_in_du_minus1[1] subsequentes na mesma unidade de acesso 2 para as unidades de decodificação num_nalus_in_du_minus1[2]+1 subsequentes na mesma unidade de acesso, etc.
[0149] Do contrário, se nem sub_pic_cpb_params_present_flag for igual a 1 nem du_common_cpb_removal_delay_flag for igual a 0, CpbRemovalDelay(m) é configurada para o valor de du_common_cpb_removal_delay_minus 1 + 1 na mensagem SEI de temporização de imagem, selecionada como especificado na subcláusula C.1 do Anexo C de WD8 HEVC, associado com a unidade de acesso que contém a unidade de decodificação m.
[0150] O momento de remoção nominal da unidade de acesso n de CPB 94 também pode ser determinado como segue. Se a unidade de acesso n for a unidade de acesso 0 (isso é, a unidade de acesso que inicializa o HRD), o momento de remoção nominal da unidade de acesso 0, do CPB 94, tr,n(0) é especificado pela equação 5:
Figure img0003
[0151] Do contrário, para a unidade de acesso n onde n é diferente de zero ou não inicializou HRD, o seguinte se aplica. Quando a unidade de acesso n é a primeira unidade de aceso de um período de armazenamento que não inicializa HRD, o momento de remoção nominal da unidade de acesso n de CPB 94, tr,n(n), é especificado pela equação 6: tr,n(n)=tr,n(nb) + tc (au_cpd_removal_delay_minus1(n)+1) (6) onde tr,n(nb) é o momento de remoção nominal da primeira unidade de acesso do período de armazenamento anterior, e au_cpd_removal_delay_minus1(n) é o valor de au_cpd_removal_delay_plus1 na mensagem SEI de temporização de imagem, selecionada como especificado em WD8 HEVC, Anexo C, subcláusula C.1 associada com a unidade de acesso n. Quando a unidade de acesso n é a primeira unidade de acesso de um período de armazenamento, nb é configurado igual a n no momento de remoção nominal tr,n(n) da unidade de acesso n. Quando a unidade de acesso n não é a primeira unidade de acesso de um período de armazenamento, tr,n(n) é fornecido pela equação 6, onde tr,n(nb) é o momento de remoçao nominal da primeira unidade de acesso do período de armazenamento atual.
[0152] Quando sub_pic_cpb_params_present_flag é igual a 1, o momento de remoção nominal para remoção da unidade de decodificação m de CPB 94 é especificado como segue, onde tr,n(n) é o momento de remoção nominal da unidade de acesso n: Se a unidade de decodificação m for a última unidade de decodificação na unidade de acesso n, o momento de remoção nominal da unidade de decodificação m tr,n(m) é determinada para tr,n(n). Isso é, a unidade de acesso e sua última unidade de decodificação são removidas de CPB 94 aproximadamente ao mesmo tempo. Do contrário (isso é, a unidade de decodificação m não é a última unidade de decodificação na unidade de acesso n), o momento de remoção nominal da unidade de decodificação m, tr,n(m) é derivada como ilustrado na Equação 7, onde tr,n(n) é o momento de remoção nominal da unidade de acesso n. se (sub_pic_cpb_params_in_pic_timing_sei_flag) tr,n(m) = tr,n(m+1) — tc,sub’ CpdRemovalDelay(m) (7) ou tr,n(m) = tr,n(n) 0 tc_sub’CpdRemovalDelay (m)
[0153] O momento de remoção da unidade de acesso n do CPB 94 é especificado como segue na equação 8 de taf(m) e tr,n(m) são o momento de chegada final e o momento de remoção nominal, respectivamente, da última unidade de decodificação na unidade de acesso n. Se (!low_delay_hrd_flag| |tr,n(n) ≥ taf(n)) tr(n) = tr,n(n) ou se (sub_pic_cpb_params_present_flag)
Figure img0004
ou
Figure img0005
[0154] Quando SubPicCpbFlag é igual a 1, o momento de remoção da unidade de decodificação m do CPB 94 é especificado como segue. Se low_delay_hrd_flag for igual a 0 ou tr,n(m) ^ taf(m), o momento de remoção da unidade de decodificação m é especificado pela equação 9: tr(m) = tr,n(m) (9) Do contrário, s a unidade de decodificação m não for a última unidade de decodificação da unidade de acesso n, o momento de remoção da unidade de decodificação m é especificado pela equação 10.
Figure img0006
Do contrário, se a unidade de decodificação m fora última unidade de decodificação da unidade de acesso n, o momento de remoção da unidade de decodificação m é especificado pela equação 11. tr(m) = tr,n(n) (11)
[0155] Em alguns exemplos, quando low_delay_hrd_flag é igual a 1 e tr,n(m) < taf(m), o tamanho da unidade de decodificação m, b(m), é tão grande que impede a remoção no momento de remoção nominal.
[0156] No momento de remoção CPB da unidade de decodificação m, a unidade de decodificação é instantaneamente decodificada. A imagem n é considerada como decodificada depois de a última unidade de decodificação da imagem ser decodificada.
[0157] As tabelas a seguir ilustram a sintaxe e semântica que podem ser utilizadas para implementar as técnicas ilustrativas descritas nessa descrição. A Tabela 1 fornece sintaxe e semântica ilustrativas para uma mensagem SEI de período de armazenamento. A Tabela 2 fornece sintaxe e semântica ilustrativas para uma mensagem SEI de temporização de imagem. A funcionalidade de CPB 94 pode ser determinada pela sintaxe e semântica das mensagens SEI. Por exemplo, o decodificador de vídeo 30 extrai DUs do CPB 94 com base pelo menos em parte nas mensagens SEI de período de armazenamento e temporização de imagem.
[0158]Uma mensagem de informação de melhoria suplementar (SEI) de período de armazenamento fornece informação do retardo de remoção CPB inicial e desvio de retardo de remoção CPB inicial. A sintaxe de mensagem SEI de período de armazenamento pode ser igual à sintaxe de mensagem SI de período de armazenamento no pedido provisório U.S. No. 61/705.102, depositado em 24 de setembro de 2012, e a semântica é alterada como segue. A sintaxe de mensagem SEI de período de armazenamento é fornecida na Tabela 1, ilustrada abaixo.
Figure img0007
Figure img0008
Tabela 1: Sintaxe de mensagem SEI de período de armazenamento
[0159] Um período de armazenamento é especificado como o conjunto de unidades de acesso entre dois casos consecutivos da mensagem SEI de período de armazenamento na ordem de decodificação.
[0160] O seguinte se aplica à sintaxe e semântica da mensagem SEI de período de armazenamento. A sequência de bits (ou uma parte da mesma) se refere ao subconjunto de sequência de bits (ou uma parte do mesmo) associado com qualquer um dos pontos de operação aos quais a mensagem SEI de período de armazenamento se aplica.
[0161] Para uma mensagem SEI de período de armazenamento, os elementos de sintaxe initial_cpb_removal_delay_length_minus1 e sub_pic_cpb_params_present_flag, e as variáveis NalHrdBpPresentFlag, VclHrdBpPresentFlag, CpbSize[SchedSelIdx], BitRate[SchedSelIdx] e CpbCnt são encontradas em ou derivadas dos elementos de sintaxe encontrados na estrutura de sintaxe hrd_parameters() e a estrutura de sintaxe sub_layer_hrd_parameters() que são aplicáveis a qualquer um dos pontos de operação aos quais a mensagem SEI de período de armazenamento se aplica.
[0162] Uma mensagem SEI de período de armazenamento pode ter dois pontos operacionais com diferentes valores OpTid, TIdA e tIdB. Possuir quaisquer dois pontos de operação com diferentes valores OpTid indica que os valores de cpb_cnt_minus1[tIdA] e cpb_cnt_minus1[tIdB] codificados nas estruturas de sintaxe hrd_parameters(), aplicáveis aos pontos de operação respectivos, são idênticos. Adicionalmente, a mensagem SEI de período de armazenamento pode ter dois pontos de operação na mensagem SI de período de armazenamento que possuem valores OpLayerIdSet diferentes, layerIdSetA e layerIdSetB. Possuindo quaisquer dois pontos de operação com diferentes valores OpLayerSet indica que os valores de nal_hrd_parameters_present_flag e vcl_hrd_parameters_present_flag, para duas estruturas de sintaxe hrd_parameters() aplicáveis aos dois pontos de operação, respectivamente, são idênticos.
[0163] Se NalHrdBpPresentFlag ou VclHrdBpPresentFlag forem iguais a 1, uma mensagem SI de período de armazenamento aplicável aos pontos de operação especificados pode estar presente em qualquer AU com TemporalId igual a 0 na sequência de vídeo codificada, e uma mensagem SEI de período de armazenamento aplicável aos pontos de operação especificados pode estar presente em cada AU de ponto de acesso aleatório (RAP), e cada AU associada com uma mensagem SEI de ponto de recuperação. Do contrário (NalHrdBpPresentFlag e VclHrdBpPresentFlag são ambos iguais a 0), nenhuma unidade de acesso na sequência de vídeo codificada pode ter uma mensagem SEI de período de armazenamento aplicável aos pontos de operação especificados.
[0164] Para algumas aplicações, a presença frequente de uma mensagem SEI de período de armazenamento pode ser desejável.
[0165] Quando uma unidade NAL SEI que contém uma mensagem SEI de período de armazenamento e possui nuh_reserved_zero_6bits igual a 0 presente, a unidade NAL SEI pode preceder, na ordem de decodificação, a primeira unidade NAL VCL na AU.
[0166] A unidade de acesso associada com uma mensagem SEI de período de armazenamento pode ter TemporalId igual a 0.
[0167] A variável CpbCnt é derivada para ser igual a cpb_cnt_minus1[tId] + 1, onde cpb_cnt_minus1[tId] é 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 aplica a e que possui OpTid igual a tId.
[0168] Os elementos de sintaxe a seguir e variáveis nas mensagens SEI de período de armazenamento podem ser definidos como segue: seq_parameter_set_id se refere ao conjunto de parâmetro de sequência ativa. O valor seq_parameter_set_id pode ser igual ao valor de seq_parameter_set_id no conjunto de parâmetro de imagem ("PPS") referido pela imagem codificada associada com a mensagem SEI de período de armazenamento. O valor de seq_parameter_set_id pode estar na faixa de 0 a 31, inclusive.
[0169] O indicador rap_cpb_params_present_flag igual a 1 específica a presença de elementos de sintaxe initial_alt_cpb_removal_delay[SchedSelIdx] e initial_alt_cpb_removal_delay_offset[SchedSelIdx]. Quando não presente, o valor de rap_cpb_params_present_flag pode ser inferido como sendo igual a 0. Quando a imagem associada não é uma imagem CRA nem uma imagem BLA, o valor de rap_cpb_params_present_flag pode ser igual a 0.
[0170] Os elementos de sequência initial_cpb_removal_delay[SchedSelIdx] e initial_alt_cpb_removal_delay[SchedSelIdx] especificam os retardos de remoção CPB padrão e inicial alternativo, respectivamente, para CPB SchedSelIdx. Os elementos de sintaxe possuem um comprimento em bits fornecido por initial_cpb_removal_delay_length_minus1+1, e estão em unidades de um relógio de 90 kHz, por exemplo. Os valores dos elementos de sintaxe podem não ser iguais a 0 e podem ser menores ou iguais a: valores de elemento de sintaxe £ 90000 CpbSize[SchedSlIdx]/BitRate[SchedSelIdx] (12) que é o equivalente em tempo ao tamanho CPB nas unidades de relógio de 90 kHz.
[0171] Os elementos de sintaxe initial_cpb_removal_delay_offset[SchedSelIdx] e initial_alt_cpb_removal_delay_offset[SchedSelIdx] especificam o padrão e os desvios de remoção CPB inicial alternativos, respectivamente, para o CPB de SchedSelIdx. Os elementos de sintaxe possuem um comprimento em bits fornecido por initial_cpb_removal_delay_length_minus1+1 e estão em unidades de um relógio de 90 kHz. Esses elementos de sintaxe podem não ser utilizados pelos decodificadores podem ser necessários apenas para o programador de distribuição (HSS) especificado no Anexo C do WD8 HEVC.
[0172] Através de toda a sequência de vídeo codificada, a soma de initial_cpb_removal_delay[SchedSelIdx] e initial_cpb_removal_delay_offset[SchedSelIdx] podem ser constantes para cada valor de SchedSelIdx, e a soma de initial_alt_cpb_removal_delay[SchedSelIdx] e initial_alt_cpb_removal_delay_offset[SchedSelIdx] pode ser constante para cada valor de SchedSelIdx.
[0173] A mensagem SEI de temporização de imagem fornece a informação de retardo de remoção CPB e retardo de saída DPB para a unidade de acesso associada com a mensagem SEI. Um exemplo da sintaxe e semântica de mensagem SEI de temporização de imagem é como segue na Tabela 2.
Figure img0009
Tabela 2: Sintaxe e semântica de mensagem SEI de temporização de imagem.
[0174] O seguinte se aplica à sintaxe e semântica d mensagem SI de temporização de imagem. Os elementos de sintaxe sub_pic_cpb_params_present_flag, sub_pic_cpb_params_in_pic_timing_sei_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 dos elementos de sintaxe encontrados na estrutura de sintaxe hrd_parameters() e estrutura de sintaxe sub_layer_hrd_parameters() aplicáveis a qualquer um dos pontos de operação aos quais a mensagem SEI de temporização de imagem se aplica.
[0175] A sequência de bits (ou uma parte da mesma) se refere ao subconjunto de sequência de bits (ou uma parte da mesma) associado com qualquer um dos pontos de operação aos quais a mensagem SEI de temporização de imagem se aplica. Note-se, no entanto, que a sintaxe da mensagem SEI de temporização de imagem pode depender do conteúdo das estruturas de sintaxe hrd_parameters() aplicáveis aos pontos de operação aos quais a mensagem SEI de temporização de imagem se aplica. Essas estruturas de sintaxe hrd_parameters() podem no conjunto de parâmetros de vídeo e/ou conjunto de parâmetros de sequência que sã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 é associada com uma unidade de acesso CRA que é a primeira unidade de acesso na sequência de bits, uma unidade de acesso IDR, ou uma unidade de acesso BLA, a menos que seja precedido por uma mensagem SEI de período de armazenamento dentro da mesma unidade de acesso, a ativação do conjunto de parâmetros de vídeo e o conjunto de parâmetros de sequência (e, para imagens IDR ou BLA que não são a primeira imagem na sequência de bits, a determinação de que a imagem codificada é uma imagem IDR ou uma imagem BLA) não ocorre até que a decodificação da primeira unidade NAL de fatia codificada da imagem codificada. Visto que a unidade NAL de fatia codificada da imagem codificada segue a mensagem SEI de temporização de imagem na ordem de unidade NAL, pode haver casos nos quais é necessário que um decodificador armazene a carga útil de sequência de byte bruto (RBSP) contendo a mensagem SEI de temporização de imagem até a determinação do conjunto de parâmetros de vídeo ativo e/ou o conjunto de parâmetros de sequência ativa, e então realiza a análise da mensagem SEI de temporização de imagem.
[0176] A presença de uma mensagem SEI de temporização de imagem na sequência de bits é especificada como segue. Se CpbDpbDelaysPresentFlag for igual a 1, uma mensagem SEI de temporização de imagem aplicável aos pontos de operação especificados pode estar presente em cada unidade de acesso da sequência de vídeo codificada. Do contrário, por exemplo, s CpbDpbDelaysPresentFlag for igual a 0, nenhuma mensagem SEI de temporização de imagem aplicável aos pontos de operação especificados pode estar presente em qualquer unidade de acesso da sequência de vídeo codificada.
[0177] Quando uma unidade NAL SEI que contém uma mensagem SEI de temporização de imagem e possui nuh_reserved_zero_6bits igual a 0 estiver presente, a unidade NAL SI pode preceder, na ordem de decodificação, a primeira unidade NAL VCL na unidade de acesso.
[0178] O elemento de sintaxe au_cpb_removal_delay_minus1 mais 1 especifica quantos tiques do relógio devem ser aguardados depois da remoção da unidade de acesso associada com a mensagem SEI do período de armazenamento mais recente em uma unidade de acesso anterior a partir de CPB, tal como CPB 94, antes da remoção do CPB 94 da unidade de acesso associada com a mensagem SEI de temporização de imagem. Esse valor também pode ser utilizado para calcular um momento de chegada mais anterior dos dados de unidade de acesso no CPB para HSS. O elemento de sintaxe é um código de comprimento fixo cujo comprimento em bits é fornecido por cpb_removal_delay_length_minus1 + 1.
[0179] O valor de cpb_removal_delay_length_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âmetros de vídeo ou conjunto de parâmetros de sequência que está ativo para a imagem codificada associada com a mensagem SEI de temporização de imagem, apesar de au_cpb_removal_delay_minus1 mais 1 especificar um número de tiques de relógio relativos ao momento de remoção da unidade de acesso anterior contendo uma mensagem SEI de período de armazenamento, que pode ser uma unidade de acesso de uma sequência de vídeo codificada diferente.
[0180] O elemento de sintaxe pic_dpb_output_delay é utilizado para computar o momento de saída DPB da imagem. pic_dpb_output_delay especifica quantos tiques de relógio devem ser aguardados depois da remoção da última unidade de decodificação em uma unidade de acesso a partir do CPB antes de a imagem decodificada ser enviada a partir de um DPB. Uma imagem pode não ser removida do DPB em seu momento de saída quando a imagem ainda é marcada como "utilizada para referência de curto termo" ou "utilizado para referência de longo termo". Em alguns exemplos, apenas um pic_dpb_output_delay é especificado para uma imagem decodificada.
[0181] O comprimento do elemento de sintaxe pic_dpb_output_delay é fornecido em bits por dpb_output_delay_length_minus1_1. Quando sps_max_dec_pic_buffering[minTid] é igual a 1, onde minTid é o mínimo de valores OpTid de todos os pontos de operação aos quais a mensagem SEI de temporização de imagem, pic_dpb_output_delay deve ser igual a 0. O momento de saída derivado de pic_dpb_output_delay de qualquer imagem que é enviada a partir de um decodificador de conformidade de temporização de saída pode preceder o momento de saída derivado de pic_dpb_output_delay de todas as imagens em qualquer sequência de vídeo codificada subsequente na ordem de decodificação. A ordem de saída de imagem estabelecida pelos valores desse elemento de sintaxe deve ser da mesma ordem que a estabelecida pelos valores de PicOderCntVal (isso é, os valores POC que indicam a ordem de saída ou exibição das imagens).
[0182] Para imagens que não são enviadas pelo processo de "bumping" visto que precedem, em ordem de decodificação, uma imagem de atualização de decodificação instantânea (IDR) ou imagem de acesso de link quebrado (BLA) com no_output_of_prior_pics_flag igual a 1 ou inferido como sendo igual a 1, os momentos de saída derivados de pic_dpb_output_delay podem ser crescentes com o valor crescente de PicOrderCntVal com relação a todas as imagens dentro da mesma sequência de vídeo codificada.
[0183] O elemento de sintaxe num_decoding_units_minus1 mais 1 especifica o número de unidades de decodificação na unidade de acesso associadas com a mensagem SEI de temporização de imagem. O valor de num_decoding_units_minus1 pode estar na faixa de 0 a PicSizeInCtbsY - 1, inclusive. O indicador du_common_cpb_removal_delay_flag sendo igual a 1 especifica que o elemento de sintaxe du_common_cpb_removal_delay_minus1 está presente. Quando du_common_cpb_removal_delay_flag sendo igual a 0 especifica que o elemento de sintaxe du_common_cpb_removal_delay_minus1 não está presente.
[0184] O elemento de sintaxe du_common_cpb_removal_delay_minus1 mais 1 especifica a duração, em unidades de tiques de relógio de subimagem (ver subcláusula E.2.1 de WD8 HEVC) entre a remoção de um CPB, tal como o CPB 94, de quaisquer duas unidades de decodificação consecutivas na ordem de decodificação na unidade de acesso associada com a mensagem SEI de temporização de imagem. Esse valor também é utilizado para calcular um momento de chegada mais anterior possível dos dados de unidade de decodificação no CPB para HSS, como especificado em WD8 HEVC, Anexo C. O elemento de sintaxe é um código de comprimento fixo cujo comprimento em bits é determinado por du_cpb_removal_delay_length_minus1 +1.
[0185] O elemento de sintaxe num_nalus_in_du_minus1[i] mais 1 especifica o número de unidades NAL na DU i da AU associada com a mensagem SEI de temporização de imagem. O valor de num_nalus_in_du_minus1[i] deve estar na faixa de 0 a PicSizeInCtbsY-1, inclusive. Por exemplo, o decodificador de vídeo 30 pode determinar quantas unidades NAL estão em uma DU atual com base na decodificação do elemento de sintaxe num_nalus_in_du_minus1[i] mais 1 a partir da mensagem SEI de temporização de imagem.
[0186] A primeira DU da AU pode incluir as primeiras unidades NAL consecutivas num_nalus_in_du_minus1[0] + 1 na ordem de decodificação na AU. A AU i (com i sendo maior que 0) da AU consiste de num_nalus_in_du_minus1[i] + 1 unidades NAL consecutivas seguindo imediatamente a última unidade NAL na DU anterior da AU, na ordem de decodificação. Pode haver pelo menos uma unidade NAL VCL em cada DU. Todas as unidades NAL não VCL associadas com uma unidade NAL VCL devem ser incluídas na mesma DU que a unidade NAL VCL. O decodificador de vídeo 30 determina as unidades NAL em uma DU com base nos elementos de sintaxe de decodificação tal como num_nalus_in_du_minus1[i].
[0187] O elemento de sintaxe du_cpb_removal_delay_minus1[i] mais 1 especifica a duração, em unidades de tiques de relógio de subimagem, entre a remoção do CPB, tal como o CPB 94, da DU (i + 1) e da DU i, na ordem de decodificação, na AU associada com a mensagem SEI de temporização de imagem. Esse valor também pode ser utilizado para calcular um momento de chegada mais anterior possível dos dados DU no CPB para HSS, como especificado em WD8 HEVC, Anexo C. O elemento de sintaxe é um código de comprimento fixo cujo comprimento em bits é fornecido por du_cpb_removal_delay_length_minus1 + 1.
[0188] Em alguns exemplos, apesar de o comprimento do elemento de sintaxe ser igual a du_common_cpb_removal_delay_minus1, o valor pode ter sido especificado com relação ao momento de remoção CPB da AU do início do período de armazenamento. Por exemplo, o decodificador de vídeo 30 pode determinar o valor de um elemento de sintaxe com relação a um momento de remoção CPB decodificado. Em alguns exemplos, pode ser possível que isso possa ser inconsistente com a semântica de du_common_cpb_removal_delay_minus1. Por exemplo, isso pode entrar potencialmente em conflito com a equação 7 (equação C-10 em WD8 HEVC, Anexo C), que define que s sub_pic_cpb_params_in_pic_timing_sei_flag for sinalizado, então tr,n(m) = tr,n(m + 1) — tc,sub CpdRemovalDelay(m).
[0189] Em alguns exemplos, du_cpb_removal_delay_minus1[i] mais 1 especifica alternativamente a duração, em unidades de tiques de relógio de subimagem, entre a remoção do CPB da AU associada com a mensagem SEI de temporização de imagem e a DU i na AU associada com a mensagem SEI de temporização de imagem. Nesse caso, a sinalização do valor para a última DU na AU pode ser evitada. Dessa forma, o decodificador de vídeo 30 não precisa determinar um valor da última DU na AU a partir da mensagem SEI de temporização de imagem visto que o momento de remoção para a última DU é o mesmo que o momento de remoção para a AU correspondente.
[0190] Alternativamente, na semântica de au_cpb_removal_delay_minus1, du_common_cpb_removal_delay_minus1 du_cpb_removal_delay_minus1[i] especificam o retardo/diferença/duração entre os "momentos de remoção CPB nominal" em vez de "tempos remoção CPB".
[0191] A Tabela 3, abaixo, fornece uma sintaxe de mensagem SEI de temporização de subimagem. A mensagem SEI de temporização de subimagem fornece informação de retardo de remoção CPB para a unidade de decodificação associada com a mensagem SEI. A sintaxe e a semântica de mensagem SEI de temporização de subimagem ilustrativa são como segue:
Figure img0010
Tabela 3: Sintaxe de mensagem SEI de temporização de subimagem.
[0192] O seguinte se aplica à sintaxe e à semântica da mensagem SEI de temporização de subimagem. Os elementos de sintaxe sub_pic_cpb_params_present_flag, sub_pic_cpb_params_in_pic_timing_sei_flg, e cpb_removal_delay_length_minus1 e a variável CpbDpbDelaysPresentFlag são encontrados em ou derivados a partir dos elementos de sintaxe encontrados na estrutura de sintaxe hrd_parameters() e a estrutura de sintaxe sub_layer_hrd_parameters() aplicáveis a qualquer um dos pontos de operação aos quais a mensagem SEI de temporização de subimagem se aplica.
[0193] A presença da mensagem SEI de temporização de subimagem na sequência de bits é especificada como segue. Se CpbDpbDelaysPresentFlag for igual a 1, sub_pic_cpb_params_present_flag é igual a 1, e sub_pic_cpb_params_in_pic_timing_sei_flag é igual a 0, uma mensagem SEI de temporização de subimagem aplicável aos pontos de operação especificados pode estar presente em cada unidade de decodificação na sequência de vídeo codificada. Do contrário, nenhuma mensagem SEI de temporização de subimagem aplicável aos pontos de operação especificados deve estar presente na sequência de vídeo codificada. Dessa forma, se o decodificador de vídeo 30 decodificar os indicadores e determinar que os valores não são determinados acima, o decodificador de vídeo 30 determina que não existem quaisquer mensagens SEI de temporização de subimagem aplicáveis aos pontos de operação especificados.
[0194] A unidade de decodificação associada com uma mensagem SEI de temporização de subimagem consiste, na ordem de decodificação, da unidade NAL SI contendo a mensagem SEI de temporização de subimagem, seguida por uma ou mais unidades NAL que não contêm uma mensagem SEI de temporização de subimagem, incluindo todas as unidades NAL subsequentes na AU até, mas não incluindo qualquer unidade NAL SEI subsequente contendo uma mensagem SEI de temporização de subimagem. Pode haver pelo menos uma unidade NAL VCL em cada DU. Todas as unidades NAL não VCL associadas com uma unidade NAL VCL podem ser incluídas na mesma DU que a unidade NAL VCL.
[0195] Em alguns exemplos, o elemento de sintaxe du_spt_cpb_removal_delay especifica a duração, em unidades de tiques de relógio de subimagem (ver subcláusula E.2.1 de WD8 HEVC) entre a remoção do CPB da última unidade de decodificação na ordem de decodificação na unidade de acesso atual contendo a mensagem SEI de temporização de subimagem e a unidade de decodificação associada com a mensagem SEI de temporização de subimagem. Esse valor também pode ser utilizado para calcular um momento de chegada mais anterior possível dos dados da unidade de decodificação no CPB para HSS, como especificado em WD8 HEVC, Anexo C. O elemento de sintaxe é representado por um código de comprimento fixo cujo comprimento em bits é fornecido por du_cpb_removal_delay_length_minus1 + 1. Quando a DU associada com a mensagem SEI de temporização de subimagem é a última DU na AU atual, o valor de du_spt_cpb_removal_delay deve ser igual a 0.
[0196] Alternativamente, em outros exemplos, o elemento de sintaxe du_spt_cpb_removal_delay especifica a duração, em unidades de tiques de relógio de subimagem (ver subcláusula E.2.1 de WD8 HEVC), entre a remoção do CPB 94 da próxima DU na ordem de decodificação na AU atual contendo a mensagem SEI de temporização de subimagem e a DU associada com a mensagem SEI de temporização de subimagem. Esse valor também pode ser utilizado para calcular um momento de chegada mais anterior possível dos dados da unidade de decodificação no CPB 94 para HSS, como especificado em WD8 HEVC, Anexo C. O elemento de sintaxe é representado por um código de comprimento fixo cujo comprimento em bits é fornecido por du_cpb_removal_delay_length_minus1 + 1. Quando a unidade de decodificação associada com a mensagem SEI de temporização de subimagem é a última unidade de decodificação na unidade de acesso atual, o valor de du_spt_cpb_removal_delay deve ser igual a 0. Alternativamente, nenhuma mensagem SEI de temporização de subimagem é associada com a última unidade de decodificação em cada unidade de acesso.
[0197] Em alguns exemplos, o elemento de sintaxe du_spt_cpb_removal_delay é alternativamente codificado como du_spt_removal_delay_minus1. O elemento de sintaxe du_spt_cpb_removal_delay_minus1 mais 1 especifica quantos tiques de relógio de subimagem esperar depois que o decodificador de vídeo 30 remove a última DU na AU associada com a mensagem SEI de período de armazenamento mais recente de uma AU anterior do CPB 94 antes de remover a DU associada com a mensagem SEI de temporização de subimagem do CPB 94. Esse valor também pode ser utilizado para calcular um momento de chegada mais anterior possível de dados da unidade de decodificação no CPB para HSS, como especificado em WD8 HEVC, Anexo C. O elemento de sintaxe é representado por um código de comprimento fixo cujo comprimento em bits é fornecido por cpb_removal_delay_length_minus1 + 1.
[0198] A Tabela 4, fornecida abaixo, descreve um exemplo de sintaxe e semântica de parâmetros HRD. Para os elementos de sintaxe para os quais a semântica não está incluída abaixo, sua semântica é igual que no pedido de patente provisório U.S. No. 61/705.102, depositado em 24 de setembro de 2012. A sintaxe e semântica dos parâmetros HRD podem ser como segue.
Figure img0011
Tabela 4: sintaxe e semântica de parâmetros HRD
[0199] O elemento de sintaxe sub_pic_cpb_params_in_pic_timing_sei_flag igual a 1 especifica que os parâmetros de retardo de remoção de CPB de nível de subimagem estão presentes nas mensagens SEI de temporização de imagem e nenhuma mensagem SEI de temporização de subimagem está presente. sub_pic_cpb_params_in_pic_timing_sei_flag igual a 0 especifica que os parâmetros de retardo de remoção CPB de nível de subimagem estão presentes nas mensagens SEI de temporização de subimagem e as mensagens SEI de temporização de imagem não incluem parâmetros de retardo de remoção de CPB de nível de subimagem.
[0200] O elemento de sintaxe sub_pic_cpb_params_present_flag igual a 1 específica que os parâmetros de retardo de remoção de CPB de nível de subimagem estão presentes e o CPB pode operar no nível de unidade de acesso ou no nível de subimagem. sub_pic_cpb_params_present_flag igual a 0 especifica que os parâmetros de retardo de remoção de CPB de nível de subimagem não estão presentes e CPB opera no nível de unidade de acesso. Quando sub_pic_cpb_params_present_flag não está presente, seu valor pode ser inferido como sendo igual a 0.
[0201] A figura 4 é um diagrama conceitual ilustrando duas unidades de acesso 100 e 102 em ordem de decodificação consecutiva que pode ter momentos de decodificação de acordo com as técnicas descritas nessa descrição. Os momentos de remoçao de armazenamento de imagem codificada ilustrativos serão discutidos em termos de AUs 100 e 102, além de como elementos de sintaxe e variáveis para mensagens SEI associadas com AUs 100 e 102. A figura 4 ilustra também uma linha de tempo 130.
[0202] Como descrito aqui, AU 100 é a unidade de acesso n e AU 102 é a unidade de acesso n + 1, onde n é anterior em tempo na ordem de decodificação à n + 1. AU 100 inclui quatro unidades de decodificação 110-1, 110-2, 110-3 e 110-4 (referidas coletivamente como "unidades de decodificação 110"). Como descrito aqui, DU 110-1 pode ser referido como DU-M, DU 110-2 como DU-M+1, DU 110-3 como DU- M+2, e DU 110-4 como DU-M+3, por exemplo. AU 102 inclui quatro unidades de decodificação 112-1, 112-2, 112-3 e 1124 (referidas coletivamente como "unidades de decodificação 112").
[0203] De forma similar, como descrito aqui, DU 112-1 pode ser referida como DU-M, DU 112-2 como DU-M + 1, DU 112-3 como DU-M + 2, e DU 112-4 como DU-M + 3, por exemplo. No entanto, qualquer unidade de acesso pode ser a "unidade de acesso n" e qualquer unidade de decodificação pode ser a "unidade de decodificação m". Em outros exemplos, AUs 100 e 102 podem ter números diferentes de DUs 110 e 112, respectivamente. Qualquer DU 110 ou 112 pode ser uma unidade de camada de abstração de rede (NAL) da camada de codificação de não vídeo (VCL) com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT, na faixa de RSV_NVCL44 a RSV_NVCL47 ou na faixa de UNSPEC48 a UNSPEC63.
[0204] Nesse exemplo, unidades de acesso 100 e 102 são armazenadas em um armazenador de imagem codificada, por exemplo, CPB 94 da figura 3. O decodificador de vídeo 30 extrai as unidades de decodificação 110 e 112 e unidades de acesso 100 e 102 do CPB 94 para decodificação em momentos determinados. Os momentos de extração de uma AU ou DU do CPB 94 são referidos como momentos de remoção de CPB. Como ilustrado na figura 4, os momentos de remoção CPB para DUs 110 na AU 100 são momentos de remoção CPB 140-1, 140-2, 140-3, e 140-4 (referidos coletivamente como "momentos de remoção CPB 140"). Da mesma forma, os momentos de remoção CPB para DUs 112 na AU 102 são momentos de remoção CPB 1421, 142-2, 142-3 e 142-4 (referidos coletivamente como "momentos de remoção de CPB 142"). O momento de remoção de CPB de uma AU pode ser igual ao momento de remoção CPB da última DU da AU. Por exemplo, o momento de remoção DPB da AU 100 é quase igual ao momento de remoção CPB da DU 110-4, momento de remoção CPB 140-4.
[0205] Em um exemplo, para cada DU 112 na AU 102, a duração entre os momentos de remoção CPB da próxima DU 112 na ordem de decodificação na AU 102 e a DU particular 112 é sinalizada. Por exemplo, DU 112-2 é uma DU atual, na ordem de decodificação, a ser extraída a partir do CPB 94 e decodificada pelo decodificador de vídeo 30. Uma duração de tempo 132 entre o momento de remoção CPB 142-2 para DU 1122 e momento de remoção CPB 142-3 para a DU 112-3, a próxima DU na ordem de decodificação, é sinalizada, por exemplo, em uma mensagem SEI associada com a unidade de acesso 102. O decodificador de vídeo 30 determina o momento de remoção CPB 142-2 para DU 112-2 com base na duração de tempo sinalizada 132. Isso é, o decodificador de vídeo 30 pode derivar o momento de remoção CPB para cada DU 112 na unidade de acesso 102 com base nos momentos de remoção para DU 112 dentro da AU 102 e não em qualquer momento de remoção para outras DUs dentro de outras AUs, tal como a AU anterior 100, na ordem de decodificação. Dessa forma, o decodificador de vídeo 30 pode ter sinalização aperfeiçoada e resiliência de erro para os momentos de remoção CPB das DUs e AUs.
[0206] O momento de remoção CPB para a DU 112-2 da AU 102 pode ser sinalizado em uma forma alternativa. Por exemplo, em uma mensagem SEI associada com AU 102, uma duração de tempo 134 entre o momento de remoção CPB 142-2 para a DU 112-2 e o momento de remoção CPB 142-4 para a última DU na AU 102, DU 112-4 é sinalizada. O decodificador de vídeo 30 determina o momento de remoção de CPB 142-2 para a DU 112-2 com base no momento de remoção de CPB sinalizado 142-4 da DU 112-4.
[0207] Em qualquer um dos exemplos acima, o decodificador de vídeo 30 determina os momentos de remoção de CPB para DUs de outras DUs dentro da mesma AU. Dessa forma, os momentos de remoção CPB para qualquer DU não dependem de qualquer outra AU além da AU da DU em particular. A perda da informação de temporização de remoção CPB na AU anterior não causa a derivação incorreta dos momentos de remoção CPB de uma AU atual. Por exemplo, a perda de momentos de remoção CPB 140 para AU 100 não afetam a determinação dos momentos de remoção CPB 142 para AU 102. Portanto, o decodificador de vídeo 30 pode ter uma sinalização e resiliência a erro aperfeiçoadas para determinação dos momentos de remoção de CPB das DUs e AUs.
[0208] O decodificador de vídeo 30 também pode determinar os momentos de remoção CPB com base pelo menos em parte nos parâmetros de CPB de nível de subimagem transportados nas mensagens SEI de temporização de subimagem. Em tal exemplo, a sinalização dos momentos de remoção CPB e derivação de momentos de remoção CPB são eficientes e resilientes a erro. Um indicador de nível de sequência pode ser sinalizado para controlar a presença de parâmetros CPB de nível de subimagem nas mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de subimagem, mas nunca em ambas. O indicador de nível de sequência pode ser sub_pic_cpb_params_present_flag, descrito acima. O indicador também pode controlar o uso de parâmetros CPB de nível de subimagem de qual tipo de mensagem SEI para operações CPB de nível de subimagem. Quando sub_pic_cpb_params_present_flag é igual a 1, os momentos de chegada CPB e os momentos de remoção CPB para ambos o nível de AU e nível de subimagem são sinalizados, independentemente do valor de SubPicCpbFlag.
[0209] Em alguns exemplos, se uma AU, tal como a AU 100, possuir TemporalId superior a 0, nenhuma mensagem SEI de período de armazenamento ou mensagem SEI de ponto de recuperação pode ser associada com a AU 100.
[0210] A figura 5 é um fluxograma que ilustra um método de determinação de um momento de remoção de armazenador de imagem codificada (CPB) de uma primeira unidade de decodificação em uma unidade de acesso com base no momento de remoção CPB para uma segunda unidade de decodificação da unidade de acesso de acordo com as técnicas descritas nessa descrição. Um decodificador de vídeo pode realizar o método da figura 5. O decodificador de vídeo pode ser o decodificador de vídeo 30 da figura 1 ou figura 3, por exemplo.
[0211] O método da figura 5 inclui a decodificação de uma duração entre a remoção de CPB de uma primeira DU em uma AU, e a remoção de CPB de uma segunda DU, onde a segunda DU é subsequente à primeira DU na ordem de decodificação e na mesma AU que a primeira DU (200). A segunda DU pode ser imediatamente subsequente à primeira DU na AU na ordem de decodificação. Alternativamente, a segunda DU pode ser uma última DU na AU na ordem de decodificação. Por exemplo, o decodificador de vídeo 30 pode receber a sequência de bits do codificador de vídeo 20 e armazenar AUs e suas respectivas DUs no CPB 94 para extração nos momentos de remoção determinados. Por exemplo, o decodificador de vídeo 30 pode decodificar uma duração entre a remoção de CPB de uma primeira DU em uma AU a partir do CPB 94 e a remoção de CPB de uma segunda DU a partir do CPB 94, onde a segunda DU é subsequente à primeira DU na ordem de decodificação e na mesma AU que a primeira DU.
[0212] O método inclui adicionalmente a determinação de um momento de remoção da primeira DU com base pelo menos em parte na duração codificada (202). Por exemplo, o decodificador de vídeo 30 pode determinar um momento de remoção de CPB para a primeira DU com base na duração decodificada entre a remoção de CPB da primeira DU em uma AU e a remoção de CPB da segunda DU. O decodificador de vídeo 30 pode extrair a DU do CPB 94 aproximadamente no momento de remoção de CPB determinado.
[0213] Em alguns exemplos, o método da figura 5 inclui adicionalmente a decodificação dos parâmetros de CPB de nível de subimagem, onde a determinação do momento de remoção da primeira DU compreende a determinação do momento de remoção da primeira DU com base pelo menos em parte na duração decodificada e parâmetros de CPB de nível de subimagem. A decodificação dos parâmetros CPB de nível de subimagem pode incluir a decodificação de uma mensagem de informação de melhoria suplementar de temporização de subimagem (SEI) que é associada com a primeira DU.
[0214] Nos exemplos onde a segunda DU é uma última DU na AU na ordem de decodificação, a codificação da mensagem SEI de subimagem inclui a decodificação da duração entre um momento de remoção da última DU e o momento de remoçao da primeira DU na mensagem SEI de temporização de subimagem. Em alguns exemplos, um indicador de nível de sequência é decodificado para determinar a presença dos parâmetros de CPB de nível de subimagem nas mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de subimagem. Por exemplo, em resposta à decodificação do indicador de nível de sequência e à determinação de que os parâmetros CPB de nível de subimagem estão presentes em uma mensagem SEI de temporização de imagem, o decodificador de vídeo 30 pode decodificar a mensagem SEI de temporização de imagem para analisar os parâmetros de CPB de nível de subimagem. Da mesma forma em resposta à decodificação do indicador de nível de sequência e à determinação de que os parâmetros de CPB de nível de subimagem estão presentes em uma mensagem SEI de temporização de subimagem, o decodificador de vídeo 30 pode decodificar a mensagem SEI de temporização de subimagem para analisar os parâmetros CPB de nível de subimagem.
[0215] Em alguns exemplos, a determinação do momento de remoção da primeira DU inclui a determinação do momento de remoção da primeira DU sem decodificação de um retardo e desvio de remoção CPB inicial. Quando a AU possui um TemporalId inferior a ou igual a 0, o método pode incluir adicionalmente a decodificação de pelo menos uma dentre uma mensagem SEI de período de armazenamento ou uma mensagem SEI de ponto de recuperação associada com a AU.
[0216] As unidades de decodificação descritas aqui podem ser qualquer unidade de decodificação, além de uma unidade de camada de abstração de rede (NAL) da camada decodificação de não vídeo (VCL) com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT, na faixa de RSV_NVCL44 para RSV_NVCL47 ou na faixa de UNSPEC48 para UNSPEC63. Dessa forma, o decodificador de vídeo 30 pode decodificar a DU de acordo com as técnicas descritas nessa descrição, incluindo unidades NAL não VCL com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT, na faixa de RSV_NVCL44 para RSV_NVCL47 ou na faixa de UNSPEC48 para UNSPEC63.
[0217] Em outro exemplo, o método inclui a derivação de pelo menos um dentre um momento de chegada CPB e um momento de remoção nominal CPB para a AU em ambos um nível de unidade de acesso e um nível de subimagem independentemente de um valor de um elemento de sintaxe que define se a primeira DU é a AU. Por exemplo, o decodificador de vídeo 30 deriva se o momento de chegada CPB ou o momento de chegada nominal CPB para a AU em ambos os níveis de unidade e subimagem, independentemente de se um valor de um elemento de sintaxe que define se a primeira DU é a AU.
[0218] Em alguns exemplos, o método inclui a derivação de pelo menos um dentre um momento de chegada CPB e um momento de remoção nominal CPB para a AU em ambos o nível de unidade de acesso e um nível de subimagem independentemente de um valor de um elemento de sintaxe que define s a primeira DU é a AU. O método pode incluir a derivação de momentos de remoção CPB padrão nível AU quando o elemento de sintaxe indica que a primeira DU é uma AU. A derivação dos momentos de remoção CPB padrão nível AU pode incluir a derivação dos momentos de remoção CPB apenas para o nível AU quando o elemento de sintaxe indica que a DU é uma AU.
[0219] O elemento de sintaxe pode ser SubPicCpbFlag, onde quando SubPicCpbFlag é igual a 0, uma DU é uma AU, do contrário, a DU inclui uma ou mais unidades de camada de abstração de rede (NAL) da camada de codificação de vídeo (VCL) em uma AU e as unidades NAL não VCL associadas. Em alguns exemplos, o elemento de sintaxe inclui um primeiro elemento de sintaxe, e onde a derivação do momento de chegada de CPB e o momento de remoção nominal CPB compreende a derivação do momento de chegada CPB e o momento de remoção nominal de CPB quando um segundo elemento de sintaxe especifica que os parâmetros de retardo de remoção CPB de nível de subimagem estão presentes e o CPB pode operar no nível de unidade de acesso ou nível de subimagem.
[0220] O segundo elemento de sintaxe pode ser sub_pic_cpb_params_present_flag, onde quando sub_pic_cpb_params_present_flag é igual 1, os parâmetros de retardo de remoção de CPB de nível de subimagem estão presentes e o CPB pode operar no nível de unidade de acesso ou nível de subimagem, e quando sub_pic_cpb_params_present_flag é igual a 0, os parâmetros de retardo de remoção de CPB de nível de subimagem não estão presentes e o CPB opera no nível de unidade de acesso. O segundo elemento de sintaxe específica que os parâmetros de retardo de remoção de CPB de nível de subimagem estão presentes e o CPB pode operar no nível de AU ou no nível de subimagem, e o método pode incluir adicionalmente a determinação de que a variável subPicParamsPresentFlag é igual a 0, derivando um momento de chegada inicial de AU e um momento de chegada final de AU, determinando que a variável subPicParamsPresentFlag é igual a 1, e derivando um momento de chegada inicial DU e um momento de chegada final DU para decodificação de unidades dentro da unidade de acesso.
[0221] Os momentos de remoção CPB para o nível de subimagem também podem ser derivados quando o elemento de sintaxe indica que a DU não é uma AU. A derivação dos momentos de remoção CPB para o nível de subimagem pode incluir a derivação dos momentos de remoção CPB apenas para o nível de subimagem quando o elemento de sintaxe indica que a DU não é uma AU. Por exemplo, o decodificador de vídeo 30 pode derivar os momentos de remoção CPB para o nível de subimagem quando o elemento de sintaxe indica que a DU não é uma AU.
[0222] A figura 6 é um fluxograma que ilustra outro método de determinação de um momento de remoção de armazenador de imagem codificada (CPB) de uma primeira unidade de decodificação em uma unidade de acesso com base no momento de remoção CPB para uma segunda unidade de decodificação da unidade de acesso de acordo com as técnicas descritas nessa descrição. Um codificador de vídeo pode realizar o método da figura 6. O codificador de vídeo pode ser o codificador de vídeo 20 da figura 1 ou figura 2, por exemplo.
[0223] O método inclui a determinação, para uma AU incluindo uma primeira unidade de decodificação DU, um momento de remoção CPB de uma segunda DU, onde a segunda DU é subsequente à primeira DU na ordem de decodificação e na mesma AU que a primeira DU (210). A segunda DU pode ser imediatamente subsequente à primeira DU na AU na ordem de decodificação. Alternativamente, a segunda DU pode ser uma última DU na AU na ordem de decodificação. Em alguns exemplos, o codificador de vídeo 20 programa um momento de remoção de CPB para a AU. Em alguns exemplos, os momentos de remoção de CPB são programados por um dispositivo externo ao codificador de vídeo 20 e a programação é fornecida para o codificador de vídeo 20.
[0224] O momento de remoção de CPB para a AU pode ser igual ao momento de remoção de CPB para a última DU na AU. Dessa forma, o codificador de vídeo 20 pode determinar o momento de remoção de CPB da segunda DU com base no momento de remoção de CPB programado da AU. Em alguns exemplos, a determinação do momento de remoção de CPB da segunda DU com base no momento de remoção de CPB programado da AU inclui a determinação de quantas DUs são incluídas na AU e a determinação de um momento programado para cada CPB. Por exemplo, o codificador de vídeo 20 pode determinar, para uma AU incluindo uma primeira unidade de decodificação DU, um momento de remoção de CPB de uma segunda DU, onde a segunda DU é subsequente à primeira DU na ordem de decodificação e na mesma AU que a primeira DU, de acordo com as técnicas descritas aqui.
[0225] O método inclui adicionalmente a determinação de uma duração entre o momento de remoção de CPB da primeira DU e o momento de remoção de CPB determinado da segunda DU (212). Por exemplo, o codificador de vídeo 20 pode determinar a duração entre o momento de remoção do CPB para a primeira DU com base em um momento de remoção de CPB programado da AU e o número de DUs na AU. Em alguns exemplos, o codificador de vídeo 20 determina a duração com base nos momentos de remoção de CPB programados para cada DU na AU.
[0226] O método inclui adicionalmente a codificação da duração determinada (214). O codificador de vídeo 20 pode codificar a duração determinada como um elemento de sintaxe, por exemplo, em um conjunto de parâmetros de CPB de nível de subimagem. Por exemplo, o método pode incluir adicionalmente a codificação de parâmetros de CPB de nível de subimagem, onde a codificação da duração determinada inclui a codificação da duração determinada como um ou mais parâmetros de CPB de nível de subimagem. A codificação dos parâmetros de CPB de nível de subimagem pode incluir a codificação de uma mensagem de informação de melhoria suplementar de temporização de imagem (SEI) associada com a primeira DU. Em um exemplo, a codificação da duração determinada como um ou mais parâmetros CPB de nível de subimagem compreende adicionalmente a codificação de duração determinada na mensagem SEI de temporização de subimagem.
[0227] Nos exemplos onde a segunda DU é uma última DU na AU na ordem de decodificação, a codificação da mensagem SEI de subimagem inclui a codificação da duração entre um momento de remoção da última DU e o momento de remoção da primeira DU na mensagem SEI de temporização de subimagem. Em alguns exemplos, um indicador de nível de sequência é codificado para indicar a presença dos parâmetros de CPB de nível de subimagem nas mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de subimagem. Em alguns exemplos, determinando o momento de remoção da primeira DU inclui a determinação do momento de remoção da primeira DU sem a codificação de um desvio e retardo de remoção de CPB inicial.
[0228] Quando a AU possui um TemporalId inferior a ou igual a 0, o método pode incluir adicionalmente a codificação de pelo menos uma dentre uma mensagem SEI de período de armazenamento ou uma mensagem SEI de ponto de recuperação associadas com a AU.
[0229] As DUs descritas aqui podem ser qualquer tipo de DU, além de uma unidade de camada de abstração de rede (NAL) da camada de codificação de não vídeo (VCL) com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT, na faixa de RSV_NVCL44 a RSV_NVCL47 ou na faixa de UNSPEC48 para UNSPEC63. O codificador de vídeo 20 pode codificar qualquer DU de acordo com as técnicas descritas nessa descrição, incluindo DUs que são unidades NAL não VCL com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT, na faixa de RSV_NVCL44 para RSV_NVCL47 ou na faixa de UNSPEC48 para UNSPEC63.
[0230] Em outro exemplo, o método inclui a derivação de pelo menos um dentre o momento de chegada CPB e um momento de remoção nominal CPB para a AU em ambos um nível de unidade de acessão e um nível de subimagem independentemente de um valor de um elemento de sintaxe que define se a primeira DU é a AU.
[0231] Em alguns exemplos, o método inclui a derivação de pelo menos um dentre o momento de chegada CPB e um momento de remoção nominal CPB para a AU em ambos um nível de unidade de acesso e um nível de subimagem independentemente de um valor de um elemento de sintaxe que define se a primeira DU é a AU. O método pode incluir a derivação dos momentos de remoção CPB para o nível AU quando o elemento de sintaxe indica que a primeira DU é uma AU. A derivação dos momentos de remoção de CPB para o nível AU pode incluir a derivação dos momentos d remoção de CPB apenas para o nível de AU quando o elemento de sintaxe indica que a DU é uma AU.
[0232] O elemento de sintaxe pode ser SubPicCpbFlag, onde quando SubPicCpbFlag é igual a 0, uma DU é uma AU, do contrário, uma DU inclui uma ou mais unidades de camada de abstração de rede (NAL) da camada de codificação de vídeo (VCL) em uma AU e unidades NAL não VCL associadas. Em alguns exemplos, o elemento de sintaxe inclui um primeiro elemento de sintaxe, e onde a derivação do tempo de chegada CPB e o de remoção nominal CPB compreende a derivação do momento de chegada CPB e o momento de remoção nominal CPB quando um segundo elemento de sintaxe específica que os parâmetros de retardo de remoção CPB de nível de subimagem estão presentes e o CPB pode operar no nível de unidade de acesso ou nível de subimagem.
[0233] O segundo elemento de sintaxe pode ser sub_pic_cpb_params_present_flag, onde quando sub_pic_cpb_params_present_flag é igual a 1, os parâmetros de retardo de remoção de CPB de nível de subimagem estão presentes e CPB pode operar no nível de unidade de acesso ou nível de subimagem, e quando sub_pic_cpb_params_present_flag é igual a 0, os parâmetros de retardo de remoção de CPB de nível de subimagem não estão presentes e CPB opera no nível de unidade de acesso. O segundo elemento de sintaxe específica que os parâmetros de retardo de remoção de CPB de nível de subimagem estão presentes e o CPB pode operar no nível de AU ou nível de subimagem, e o método pode incluir adicionalmente a configuração da variável subPicParamsPresentFlag igual a 0, derivando um momento de chegada inicial AU e um momento de chegada final AU, configurado a variável subPicParamsPresentFlag igual a 1, e derivando um momento de chegada inicial DU e um momento de chegada final DU para unidades de decodificação dentro da unidade de acesso.
[0234] Os momentos de remoção CPB para o nível de subimagem também podem ser derivados quando o elemento de sintaxe indica que a DU não é uma AU. A derivação dos momentos de remoção CPB para o nível de subimagem pode incluir a derivação dos momentos de remoção CPB apenas para o nível de subimagem quando o elemento de sintaxe indica que a DU não é uma AU. Por exemplo, o codificador de vídeo 20 pode derivar os momentos de remoção CPB para o nível de subimagem quando o elemento de sintaxe indica que a DU não é uma AU.
[0235] A figura 7 é um fluxograma ilustrando um método para derivação de um momento de remoção CPB da primeira DU com base pelo menos em parte na mensagem SEI de temporização de subimagem de acordo com as técnicas descritas nessa descrição. O método pode ser realizado por um dispositivo de decodificação de vídeo. O dispositivo de decodificação de vídeo pode ser o decodificador de vídeo 30 das figuras 1 e 3, por exemplo.
[0236] O método inclui a decodificação de uma mensagem SEI de temporização de subimagem associada com uma primeira unidade de decodificação de uma unidade de acesso (300). Por exemplo, o decodificador de vídeo 30 pode decodificar uma sequência de bits incluindo dados codificados e elementos de sintaxe correspondentes e mensagem SEI de temporização de subimagem associada com uma primeira DU de uma AU, de acordo com as técnicas descritas aqui. O decodificador de vídeo 30 pode armazenar AUs e suas DUs respectivas no CPB 94 para extração em momentos de remoção determinados. Por exemplo, o decodificador de vídeo 30 pode decodificar a mensagem SEI de temporização de subimagem associada com uma primeira DU de uma AU.
[0237] Em alguns exemplos, o método inclui a decodificação de um indicador de nível de sequência para determinar a presença de parâmetros CPB de nível de subimagem na mensagem SEI de temporização de subimagem ou uma mensagem SEI de temporização de imagem associada com a primeira DU. O método pode incluir adicionalmente a decodificação dos parâmetros CPB de nível de subimagem, onde a determinação do momento de remoção CPB da primeira DU é adicionalmente baseado pelo menos em parte nos parâmetros CPB de nível de subimagem. Em resposta ao recebimento de uma sequência de bits codificada, o decodificador de vídeo 30 pode decodificar um indicador de nível de sequência e determinar a partir do valor do indicador de nível de sequência se os parâmetros CPB de nível de subimagem são encontrados na mensagem SEI de temporização de subimagem ou na mensagem SEI de temporização de imagem. Com base no valor do indicador de nível de sequência, o decodificador de vídeo 30 pode decodificar a mensagem SEI de temporização de subimagem ou a mensagem SEI de temporização de imagem para decodificar os parâmetros CPB de nível de subimagem.
[0238] Nos exemplos nos quais o indicador de nível de sequência indica que os parâmetros CPB de nível de subimagem devem estar presentes na mensagem SEI de temporização de subimagem, a decodificação de parâmetros CPB de nível de subimagem pode incluir a decodificação da mensagem SEI de temporização de subimagem associada com a primeira DU. Nos exemplos onde a segunda DU é uma última DU na AU na ordem de decodificação, a decodificação da mensagem SEI de subimagem pode compreender adicionalmente a decodificação da duração entre um momento de remoção da última DU e o momento de remoção da primeira DU na mensagem SEI de temporização de subimagem.
[0239] O método inclui adicionalmente a decodificação d e uma duração entre a remoção do armazenador de imagem codificada (CPB) de uma segunda DU da AU na ordem de decodificação e a remoção CPB da primeira DU na mensagem SEI de subimagem, onde a duração está na mensagem SEI de temporização de subimagem (302).Por exemplo, a partir de uma sequência de bits recebida, o decodificador de vídeo 30 pode decodificar a duração entre a remoção do armazenador de imagem codificada (CPB) de uma segunda DU da AU na ordem de decodificação e a remoção CPB da primeira DU na mensagem SEI de subimagem.
[0240] O método inclui também a derivação de um momento de remoção CPB da primeira DU com base pelo menos em parte na mensagem SEI de temporização de subimagem (304). O decodificador de vídeo 30 pode extrair a primeira DU para decodificação do CPB 94 no momento de remoção CPB determinado.
[0241] Em alguns exemplos, a segunda DU é uma última DU na AU na ordem de decodificação. A segunda DU pode ser imediatamente subsequente à primeira DU na AU na ordem de decodificação. Em alguns exemplos, a determinação do momento de remoção da primeira DU compreende a determinação do momento de remoção da primeira DU sem a codificação de um retardo de remoção CPB inicial e desvio.
[0242] A DU pode ser qualquer tipo de unidade de decodificação, incluindo uma unidade de camada de abstração de rede (NAL) da camada de codificação de não vídeo (VCL) com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT na faixa de RSV_NVCL44 a RSV_NVCL47 ou na faixa de UNSPEC48 para UNSPEC63.
[0243] As técnicas descritas aqui podem fornecer uma determinação mais resiliente a erro do momento de remoção de armazenador de imagem codificada. Adicionalmente, em adição à resiliência a erro aperfeiçoada, as técnicas podem promover a eficiência de sinalização que reduz a largura de banda, overhead de sinalização, e aumenta o tempo de codificação. Além disso, as técnicas descritas nessa descrição também podem servir para capacidade de escalonamento temporal adequada.
[0244] Tais técnicas podem incluir, por exemplo, a determinação de um momento de remoção de armazenador de imagem codificada para uma DU de uma AU que é independente dos momentos d remoção de qualquer outra unidade de acesso. Por exemplo, os momentos de remoção CPB para uma DU de uma AU serão sinalizados com base em uma duração entre um momento de remoção CPB de uma próxima DU em uma ordem de decodificação na AU ou uma duração entre o momento de remoção CPB da última DU na AU. As técnicas também podem incluir sinalização de um indicador de nível de sequência para controlar a presença dos parâmetros CPB de subimagem em apenas uma das mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de subimagem de acordo com as técnicas descritas aqui. As técnicas também podem incluir a expansão de uma definição de uma unidade de decodificação. Técnicas adicionais fornecem mensagens SEI de período de armazenamento de restrição e mensagens SEI de ponto de recuperação de modo que não possam ser associadas com AUs com uma variável, TemporalId, maior do que 0. As técnicas também podem incluir o fornecimento de um indicador para sinalizar se deriva os momentos de remoção CPB em um nível AU ou um nível de subimagem.
[0245] A figura 8 é um fluxograma ilustrando outro método para derivação de um momento de remoção CPB da primeira DU com base pelo menos em parte na codificação de uma mensagem SEI de temporização de subimagem de acordo com as técnicas descritas nessa descrição. O método pode ser realizado por um dispositivo de codificação de vídeo. O dispositivo de codificação de vídeo pode ser o codificador de vídeo 20 das figuras 1 e 2, por exemplo.
[0246] O método inclui a determinação de uma duração entre o momento de remoçao do armazenador de imagem codificada (CPB) de uma primeira unidade de decodificação (DU) e uma unidade de acesso (AU) e o momento de remoção CPB de uma segunda DU na AU (310). A duração pode ser determinada, por exemplo, a partir da subtração de um momento de remoção CPB programado para a primeira DU a partir de um momento de remoção CPB programado para a segunda DU.
[0247] O método inclui adicionalmente a codificação da duração em uma mensagem de informação de melhoria suplementar (SEI) de temporização de subimagem associada com a AU (312). Por exemplo, o codificador de vídeo 20 pode codificar uma duração entre a remoção do armazenador de imagem codificada (CPB) de uma segunda DU da AU na ordem de decodificação e a remoção CPB da primeira DU na mensagem SEI de subimagem em uma sequência de bits. Por exemplo, o codificador de vídeo 20 pode codificar uma sequência de bits incluindo dados codificados e elementos de sintaxe correspondentes, a mensagem SEI de temporização de subimagem associada com a primeira DU de uma AU, de acordo com as técnicas descritas aqui.
[0248] Em alguns exemplos, o método da figura 8 inclui a codificação de um indicador de nível de sequência para indicar a presença dos parâmetros CPB de nível de subimagem na mensagem SEI de temporização de subimagem ou uma mensagem SEI de temporização de imagem associada com a primeira DU. O método pode incluir adicionalmente a codificação dos parâmetros CPB de nível de subimagem, onde a determinação do momento de remoção CPB da primeira DU é adicionalmente baseado pelo menos em parte nos parâmetros CPB de nível de subimagem. Por exemplo, o codificador de vídeo 20 pode codificar um indicador de nível de sequência para indicar a presença dos parâmetros CPB de nível de subimagem na mensagem SEI de temporização de subimagem ou uma mensagem SEI de temporização de imagem associada com a primeira DU em uma sequência de bits. O codificador de vídeo 20 pode codificar adicionalmente os parâmetros CPB de nível de subimagem na sequência de bits.
[0249] Nos exemplos nos quais o indicador de nível de sequência indica que os parâmetros CPB de nível de subimagem devem estar presentes na mensagem SEI de temporização de subimagem, a codificação de parâmetros CPB de nível de subimagem pode incluir a codificação da mensagem SEI de temporização de subimagem associada com a primeira DU. Nos exemplos onde a segunda DU é uma última DU na AU na ordem de decodificação, a codificação da mensagem SEI de subimagem pode compreender adicionalmente a codificação da duração entre um momento de remoção da última DU e o momento de remoção da primeira DU na mensagem SEI de temporização de subimagem.
[0250] Em alguns exemplos, a segunda DU é uma última DU na AU na ordem de decodificação. A segunda DU pode ser imediatamente subsequente à primeira DU na AU na ordem de decodificação. Em alguns exemplos, a determinação do momento de remoção da primeira DU compreende a determinação do momento de remoção da primeira DU sem codificação de um retardo de remoção CPB inicial e desvio.
[0251] A DU pode ser qualquer tipo de unidade de decodificação, incluindo uma unidade de camada de abstração de rede (NAL) da camada de codificação de não vídeo (VCL) com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT, na faixa de RSV_NVCL44 a RSV_NVCL47 ou na faixa de UNSPEC48 a UNSPEC63.
[0252] A figura 9 é um fluxograma ilustrando um método de decodificação de indicador de nível de sequência para o parâmetro de armazenador de imagem codificada de nível de subimagem de acordo com as técnicas descritas nessa descrição. O método pode ser realizado por um dispositivo de decodificação de vídeo. O dispositivo de decodificação de vídeo pode ser o decodificador de vídeo 30 das figuras 1 e 3, por exemplo.
[0253] O método inclui a decodificação de um indicador de nível de sequência para determinar a presença de um ou mais parâmetros CPB de nível de subimagem para uma DU de uma AU em uma mensagem SEI de temporização de imagem ou uma mensagem SEI de temporização de subimagem associada com a DU (400). Por exemplo, o decodificador de vídeo 30 decodifica um indicador de nível de sequência para determinar a presença de um ou mais parâmetros CPB de nível de subimagem. O decodificador de vídeo 30 também decodifica o indicador de nível de sequência para determinar a localização de um ou mais parâmetros CPB de nível de subimagem. O indicador de nível de sequência pode ser o sub_pic_cpb_params_present_flag. Em alguns exemplos, um ou mais parâmetros CPB de nível de subimagem estão presentes em apenas uma dentre a mensagem SEI de temporização de imagem ou a mensagem SEI de temporização de subimagem.
[0254] O método pode incluir adicionalmente a decodificação de um ou mais parâmetros CPB de nível de subimagem a partir da mensagem SEI de temporização de imagem ou a mensagem SEI de temporização de subimagem com base no indicador de nível de sequência (402). Por exemplo, em resposta ao indicador de nível de sequência indicando que um ou mais parâmetros CPB de nível de subimagem estão presentes na mensagem SEI de temporização de imagem, o decodificador de vídeo 30 decodifica a mensagem SEI de temporização de imagem para determinar um ou mais parâmetros CPB de nível de subimagem. Da mesma forma, em resposta ao indicador de nível de sequência indicando que um ou mais parâmetros CPB de nível de subimagem estão presentes na mensagem SEI de temporização de subimagem, o decodificador de vídeo 30 decodifica a mensagem SEI de temporização de subimagem para determinar um ou mais parâmetros CPB de nível de subimagem.
[0255] O método pode incluir adicionalmente a determinação de um momento de remoção CPB da DU com base pelo menos em parte em um ou mais parâmetros CPB de nível de subimagem. Em alguns exemplos, a determinação do momento de remoção CPB da DU compreende a determinação do momento de remoção CPB da DU sem decodificação de um retardo de remoção CPB inicial e desvio.
[0256] Em um exemplo no qual o indicador de nível de sequência indica que os parâmetros CPB de nível de subimagem estão presentes na mensagem SEI de temporização de subimagem, a decodificação dos parâmetros CPB de nível de subimagem pode incluir a decodificação da mensagem SEI de temporização de subimagem associada com a DU. Em outro exemplo, o método pode incluir a derivação de pelo menos um dentre um momento de chegada CPB e um momento de remoção nominal CPB para a AU em ambos o nível de unidade de acesso e um nível de subimagem independentemente de um valor de um elemento de sintaxe que define se a primeira DU é a AU. Isso é, o decodificador de vídeo 30 pode derivar pelo menos um dentre um momento de chegada CPB e um momento de remoção nominal CPB para a AU em ambos o nível de unidade de acesso e um nível de subimagem.
[0257] Em outro exemplo, a DU é uma primeira DU, e o método inclui adicionalmente a derivação de um momento de remoção CPB da primeira DU com base pelo menos em parte nos parâmetros CPB de nível de subimagem e decodificação de uma duração entre o momento de remoção CPB de uma segunda DU da AU na ordem de decodificação e o momento de remoção CPB da primeira DU. O método pode incluir adicionalmente a decodificação de dados de vídeo da primeira DU com base pelo menos em parte nos momentos de remoção CPB. Em alguns exemplos, a segunda DU é uma última DU na AU na ordem de decodificação ou imediatamente subsequente à primeira DU na AU na ordem de decodificação.
[0258] A DU pode ser qualquer DU, incluindo uma unidade NAL não VCL com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT, na faixa de RSV_NVCL44 a RSV_NVCL47 ou na faixa UNSPEC48 a UNSPEC12.
[0259] Nos exemplos onde a AU possui uma TemporalId igual a 0, o método pode incluir adicionalmente a decodificação de pelo menos uma dentre uma mensagem SEI de período de armazenamento ou uma mensagem SEI de ponto de recuperação associada com a AU. Por exemplo, o decodificador de vídeo 30 pode decodificar pelo menos uma dentre a mensagem SEI de período de armazenamento ou a mensagem SEI de ponto de recuperação associada com a AU que possui um valor TemporalID igual a 0.
[0260] A figura 10 é um fluxograma ilustrando um método para codificação do indicador de nível de sequência para o parâmetro de armazenador de imagem codificada de nível de subimagem de acordo com as técnicas descritas nessa descrição. O método pode ser realizado por um dispositivo de codificação de vídeo. O dispositivo de codificação de vídeo pode ser o codificador de vídeo 20 das figuras 1 e 2, por exemplo.
[0261] O método inclui a codificação de um ou mais parâmetros de armazenamento de imagem codificada de nível de subimagem (CPB) para uma unidade de decodificação (DU) de uma unidade de acesso (AU) em uma mensagem SEI de temporização de imagem ou uma mensagem SEI de temporização de subimagem (410). O codificador de vídeo 20 pode codificar a mensagem SEI de temporização de imagem no um ou mais parâmetros CPB de nível de subimagem. Alternativamente, o codificador de vídeo 20 pode codificar a mensagem SEI de temporização de subimagem no um ou mais parâmetros CPB de nível de subimagem.
[0262] O método inclui adicionalmente a codificação de um indicador de nível de sequência para indicar a presença de um ou mais parâmetros CPB de nível de subimagem para uma DU de uma AU em uma mensagem SEI de temporização de imagem ou mensagem SEI de temporização de subimagem associadas com a DU (412). Por exemplo, o codificador de vídeo 20 codifica um indicador de nível de sequência para indicar a presença ou localização de um ou mais parâmetros CPB de nível de subimagem. O indicador de nível de sequência pode ser sub_pic_cpb_params_present_flag. Em alguns exemplos, o codificador de vídeo 20 codifica um ou mais parâmetros CPB de nível de subimagem em apenas uma dentre a imagem SEI de temporização de imagem ou a mensagem SEI de temporização de subimagem.
[0263] O método pode incluir adicionalmente a determinação de um momento de remoção CPB da DU com base pelo menos em parte em um ou mais parâmetros CPB de nível de subimagem. Em alguns exemplos, a determinação do momento de remoção CPB da DU compreende a determinação do momento de remoção CPB da DU sem codificação de um retardo de remoção CPB inicial e desvio.
[0264] Em um exemplo, a codificação de um ou mais parâmetros CPB de nível de subimagem compreende adicionalmente a codificação de um ou mais parâmetros CPB de nível de subimagem na mensagem SEI de temporização de subimagem associada com a DU. Em tal exemplo, o codificador de vídeo 20 codifica o indicador de nível de sequência para indicar que os parâmetros CPB de nível de subimagem estão presentes na mensagem SEI de temporização de subimagem. Em outro exemplo, a codificação de um ou mais parâmetros CPB de nível de subimagem compreende adicionalmente a codificação de um ou mais parâmetros CPB de nível de subimagem na mensagem SEI de temporização de imagem associada com a DU. Nesse exemplo, o codificador de vídeo 20 codifica o indicador de nível de sequência para indicar que os parâmetros CPB de nível de subimagem estão presentes na mensagem SEI de temporização de imagem.
[0265] Em outro exemplo, a DU é uma primeira DU, e o método inclui adicionalmente a derivação de um momento de remoção CPB da primeira DU com base pelo menos em parte nos parâmetros CPB de nível de subimagem e codificando uma duração entre o momento de remoção CPB de uma segunda DU da AU na ordem de decodificação e o momento de remoção CPB da primeira DU. O método pode incluir adicionalmente a codificação de dados de vídeo da primeira DU com base pelo menos em parte nos momentos de remoção CPB. Em alguns exemplos, a segunda DU é uma última DU na AU na ordem de decodificação ou imediatamente subsequente à primeira DU na AU na ordem de decodificação.
[0266] A DU pode ser qualquer DU, incluindo uma unidade NAL não VCL com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT, na faixa de RSV_NVCL44 a RSV_NVCL47 ou na faixa de UNSPEC48 a UNSPEC12.
[0267] Nos exemplos onde a AU possui um TemporalId igual a 0, o método pode incluir adicionalmente a codificação de pelo menos uma das mensagens SEI de período de armazenamento ou uma mensagem SEI de ponto de recuperação associada com a AU. Por exemplo, o codificador de vídeo 20 pode codificar pelo menos uma dentre a mensagem SEI de período de armazenamento ou a mensagem SEI de ponto de recuperação associada com a AU que possui um valor TemporalId igual a 0.
[0268] A figura 11 é um fluxograma ilustrando um método de decodificação de uma DU possuindo uma definição expandida de acordo com as técnicas descritas nessa descrição. O método pode ser realizado por um dispositivo de decodificação de vídeo. O dispositivo de decodificação de vídeo pode ser o decodificador de vídeo 30 das figuras 1 e 2, por exemplo.
[0269] O método inclui a decodificação de uma duração entre a remoção do armazenador de imagem codificada (CPB)de uma primeira unidade de decodificação (DU) em uma unidade de acesso (AU) e a remoção CPB de uma segunda DU, onde a primeira DU compreende uma unidade de camada de abstração de rede (NAL) da camada de codificação de não vídeo (VCL) com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT, na faixa de RSV_NVCL44 a RSV_NVCL47 ou na faixa de UNSPEC48 a UNSPEC63 (500). Isso é, o decodificador de vídeo 30 pode decodificar as DUs que são uma unidade de camada de abstração de rede (NAL) da camada de codificação de não vídeo (VCL) com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT, na faixa de RSV_NVCL44 a RSV_NVCL47 ou na faixa de UNSPEC48 a UNSPEC63, em adição a outros tipos de DU definidos em WD8 HEVC.
[0270] Em alguns exemplos, a segunda DU é subsequente à primeira DU na ordem de decodificação e na mesma AU que a primeira DU. A segunda DU pode ser imediatamente subsequente à primeira DU na AU na ordem de decodificação. Em outros exemplos, a segunda DU é uma última DU na AU na ordem de decodificação.
[0271] O método inclui também a determinação de um momento de remoção da primeira DU com base pelo menos em parte na duração decodificada (502). O método inclui adicionalmente a decodificação de dados de vídeo da primeira DU com base pelo menos em parte no momento de remoção (504). Por exemplo, o decodificador de vídeo 30 determina um momento de remoção da primeira DU com base, em parte, na duração decodificada e então decodifica os dados de vídeo da primeira DU com base no momento de remoção.
[0272] Em um exemplo, o método pode incluir adicionalmente a decodificação de um ou mais parâmetros CPB de nível de subimagem, onde a determinação do momento de remoção da primeira DU compreende a determinação do momento de remoção da primeira DU com base, pelo menos em parte, na duração decodificada e nos parâmetros CPB de nível de subimagem. A decodificação de um ou mais parâmetros CPB de nível de subimagem pode incluir adicionalmente a decodificação de uma mensagem de informação de melhoria suplementar (SEI) de temporização de subimagem que é associada com a primeira DU.
[0273] Em outro exemplo onde a segunda DU é uma última DU na AU na ordem de decodificação, a decodificação da mensagem SEI de subimagem inclui a decodificação da duração entre um momento de remoção da última DU e o momento de remoção da primeira DU na mensagem SEI de temporização de subimagem. Em alguns exemplos, o decodificador de vídeo 30 decodifica um indicador de nível de sequência para determinar a presença dos parâmetros CPB de nível de subimagem nas mensagens SEI de temporização de imagem, ou nas mensagens SEI de temporização de subimagem.
[0274] Em outro exemplo, onde AU possui um TemporalId igual a 0, o decodificador de vídeo 30 pode decodificar pelo menos uma dentre uma mensagem SEI de período de armazenamento ou uma mensagem SEI de ponto de recuperação associada com a AU. O método também pode incluir a derivação de pelo menos um momento de chegada CPB e um momento de remoção nominal CPB para a AU em ambos o nível de unidade de acesso e um nível de subimagem independentemente de um valor de um elemento de sintaxe que define se a primeira DU é a AU.
[0275] A figura 12 é um fluxograma ilustrando um método para codificação de uma DU possuindo uma definição expandida de acordo com as técnicas descritas nessa descrição. O método pode ser realizado por um dispositivo de codificação de vídeo. O dispositivo de codificação de vídeo pode ser o codificador de vídeo 20 das figuras 1 e 2, por exemplo.
[0276] O método inclui a determinação, para uma AU incluindo uma primeira DU, de um momento de remoção CPB de uma segunda DU, onde a segunda DU é subsequente à primeira DU na ordem de decodificação e na mesma AU que a primeira DU, e onde a primeira DU compreende uma unidade de camada de abstração de rede (NAL) de camada de codificação de não vídeo (VCL) com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT a faixa de RSV_NVCL44 a RSV_NVCL47 ou na faixa de UNSPEC48 a UNSPEC63 (510). Isso é, o codificador de vídeo 20 pode codificar as DUs que são unidades NAL não VCL com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT, na faixa de RSV_NVCL44 a RSV_NVCL47 ou na faixa de UNSPEC48 a UNSPEC63, em adição a outros tipos DU definidos em WD8 HEVC. A segunda DU pode ser subsequente, incluindo imediatamente subsequente, à primeira DU na ordem de decodificação e na mesma AU que a primeira DU. Em outros exemplos, a segunda DU é uma última DU na AU na ordem de decodificação.
[0277] O método também inclui a determinação de uma duração entre o momento de remoção CPB da primeira DU e o momento de remoção CPB determinado da segunda DU (512). A determinação da duração entre o momento de remoção CPB da primeira DU e o momento de remoção CPB determinado da segunda DU pode ser baseada em um momento de remoção CPB programado da AU. O método inclui adicionalmente a codificação da duração determinada (514). Por exemplo, o codificador de vídeo 20 determina uma duração de tempo entre a remoção de CPB da primeira DU e uma segunda DU e então codifica a duração determinada como um elemento de sintaxe.
[0278] Em um exemplo, o método pode incluir adicionalmente a codificação de um ou mais parâmetros CPB de nível de subimagem, onde a determinação da duração determinada da primeira DU compreende a determinação do momento de remoção da primeira DU com base pelo menos em parte na duração decodificada e nos parâmetros CPB de nível de subimagem. A codificação de um ou mais parâmetros CPB de nível de subimagem pode incluir adicionalmente a codificação de uma mensagem SEI de temporização de subimagem que é associada com a primeira DU.
[0279] Em outro exemplo onde a segunda DU é uma última DU na AU na ordem de decodificação, a codificação da mensagem SEI de subimagem inclui a codificação de duração entre um momento de remoção da última DU e o momento de remoção da primeira DU na mensagem SEI de temporização de subimagem. Em alguns exemplos, o codificador de vídeo 20 codifica um indicador de nível de sequência para indicar a presença da parâmetros CPB de nível de subimagem nas mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de subimagem.
[0280] Em outro exemplo, onda a AU possui TemporalId igual a 0, o codificador de vídeo 20 pode codificar pelo menos uma dentre uma mensagem SEI de período de armazenamento ou uma mensagem SEI de ponto de recuperação associada com a AU. O método também pode incluir a derivação de pelo menos um dentre um momento de chegada CPB e um momento de remoção nominal CPB para a AU em ambos um nível de unidade de acesso e um nível de subimagem independentemente de um valor de um elemento de sintaxe que define se a primeira DU é a AU.
[0281] A figura 13 é um fluxograma ilustrando um método para decodificação de mensagens SEI de ponto de recuperação e período de armazenamento de acordo com as técnicas descritas nessa descrição. O método pode ser realizado por um dispositivo de decodificação de vídeo. O dispositivo de decodificação de vídeo pode ser o decodificador de vídeo 30 das figuras 1 e 2, por exemplo.
[0282] O método inclui a decodificação de uma mensagem SEI de período de armazenamento associada com uma AU (530). A AU possui um temporalId igual a ou inferior a 0. Isso é, a mensagem SEI de período de armazenamento é restringida de modo que não possa ser associada com uma AU possuindo um temporalId maior que 0.
[0283] O método inclui adicionalmente a decodificação de uma duração entre a remoção CPB de uma primeira DU na AU e a remoção CPB de uma segunda DU a partir da mensagem SEI de período de armazenamento (532). A segunda DU pode estar na mesma AU que a primeira DU. A segunda DU pode ser subsequente, incluindo imediatamente subsequente, à primeira DU na ordem de decodificação. Em outros exemplos, a segunda DU pode ser a ultima DU na ordem de decodificação na AU. As DUs podem ser qualquer tipo de DU aceito em WD8 HEVC e adicionalmente pode ser uma unidade NAL VCL com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT, na faixa de RSV_NVCL44 a RSV_NVCL47 ou na faixa de UNSPEC48 a UNSPEC64.
[0284] O método pode incluir adicionalmente a determinação de um momento de remoção da primeira DU com base pelo menos em parte na duração decodificada (534). Em alguns exemplos, o decodificador de vídeo 30 pode decodificar um ou mais parâmetros CPB de nível de subimagem. A determinação do momento de remoção da primeira DU pode incluir adicionalmente a determinação do momento de remoção da primeira DU com base, pelo menos em parte, na duração decodificada e parâmetros CPB de nível de subimagem. A decodificação de um ou mais parâmetros CPB de nível de subimagem pode incluir adicionalmente a decodificação de uma mensagem SEI de temporização de subimagem que é associada com a primeira DU.
[0285] O método pode incluir adicionalmente a decodificação de dados de vídeo da primeira DU com base, pelo menos em parte, no momento de remoção (536). Nos exemplos onde a segunda DU é uma última DU na AU na ordem de decodificação, a decodificação da mensagem SEI de subimagem inclui adicionalmente a decodificação da duração entre um momento de remoção da última DU e o momento de remoção da primeira DU na mensagem SEI de temporização de subimagem.
[0286] O método pode incluir adicionalmente a decodificação de um indicador de nível de sequência para determinar a presença dos parâmetros CPB de nível de subimagem nas mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de subimagem. O método também pode incluir a derivação de pelo menos um dentre um momento de chegada CPB e um momento de remoção nominal CPB para a AU em ambos o nível de unidade de acesso e um nível de subimagem independentemente de um valor de um elemento de sintaxe que define se a primeira DU é a AU.
[0287] A figura 14 é um fluxograma ilustrando um método para codificação de mensagens SEI de período de armazenamento de acordo com as técnicas descritas nessa descrição. O método pode ser realizado por um dispositivo de codificação de vídeo. O dispositivo de codificação de vídeo pode ser o codificador de vídeo 20 das figuras 1 e 2, por exemplo.
[0288] O método inclui a codificação de uma mensagem de informação de melhoria suplementar (SEI) de período de armazenamento associada com uma unidade de acesso (AU), onde a duração é codificada dentro de pelo menos uma dentre uma mensagem SEI de período de armazenamento ou mensagem SEI de ponto de recuperação (540). Visto que a AU possui uma temporalId igual a ou inferior a 0, a mensagem SEI de período de armazenamento é restringida de modo que não possa ser associada com uma AU possuindo uma temporalId maior que 0.
[0289] O método também pode incluir a codificação de uma duração entre o momento de remoção CPB da primeira DU na AU e o momento de remoção CPB de uma segunda DU a partir da mensagem SEI de período de armazenamento, onde a AU possui uma temporalId igual a 0 (542). O método pode incluir adicionalmente a determinação de um momento de remoção da primeira DU com base pelo menos em parte na duração decodificada (544). Adicionalmente, o método pode incluir a codificação de dados de vídeo da primeira DU (546).
[0290] O método pode incluir adicionalmente a determinação de uma duração entre a remoção do armazenador de imagem codificada (CPB) de uma primeira unidade de decodificação (DU) em uma unidade de acesso (AU) e remoção CPB de uma segunda DU na AU, onde a AU possui um TemporalId igual a 0. A segunda DU pode estar na mesma AU que a primeira DU. A segunda DU pode ser subsequente, incluindo imediatamente subsequente, à primeira DU na ordem de decodificação. Em outros exemplos, a segunda DU pode ser a última DU na ordem de decodificação na AU. As DUs podem ser qualquer tipo de DU aceito em WD8 HEVC e pode adicionalmente ser uma unidade NAL VCL com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT, na faixa de RSV_NVCL44 a RSV_NVCL47 ou na faixa de UNSPEC48 a UNSPEC63.
[0291] Em um exemplo, a determinação da duração entre a remoção CPB da primeira DU pode incluir a determinação de um momento de remoção da primeira e segunda DUs. O momento de remoção da primeira DU pode ser subtraído do momento de remoção da segunda DU para determinar a duração.
[0292] Em alguns exemplos, o codificador de vídeo 20 pode codificar um ou mais parâmetros CPB de nível de subimagem. A determinação do momento de remoção da primeira DU pode incluir adicionalmente a determinação do momento de remoção da primeira DU com base pelo menos em parte nos parâmetros CPB de nível de subimagem e duração codificada. A codificação de um ou mais parâmetros CPB de nível de subimagem pode incluir adicionalmente a codificação de uma mensagem SEI de temporização de subimagem que é associada com a primeira DU.
[0293] O método pode incluir a codificação de dados de vídeo da primeira DU. A codificação de dados de vídeo da primeira DU pode ser baseada pelo menos em parte no momento de remoção. Nos exemplos onde a segunda DU é uma última DU na AU na ordem de decodificação, a codificação da mensagem SEI de subimagem inclui adicionalmente a codificação da duração entre um momento de remoção da última DU e o momento de remoção da primeira DU na mensagem SEI de temporização de subimagem.
[0294] O método pode incluir adicionalmente a codificação de um indicador de nível de sequência para indicar a presença dos parâmetros CPB de nível de subimagem nas mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de subimagem. O método também pode incluir a derivação de pelo menos um dentre o momento de chegada CPB e um momento de remoção nominal CPB para a AU em ambos um nível de unidade de acesso e um nível de subimagem independentemente de um valor de um elemento de sintaxe que define se a primeira DU é a AU.
[0295] A figura 15 é um fluxograma ilustrando um método de decodificação dos momentos de remoção nominal e chegada de armazenador de imagem codificada de acordo com as técnicas descritas nessa descrição. O método pode ser realizado por um dispositivo de decodificação de vídeo. O dispositivo de decodificação de vídeo pode ser o decodificador de vídeo 30 das figuras 1 e 2, por exemplo.
[0296] O método inclui a derivação de pelo menos um momento de chegada CPB e um momento de remoção nominal CPB para uma AU em ambos um nível de unidade de acesso e um nível de subimagem independentemente de um valor de um elemento de sintaxe que define se uma DU é toda a AU. A DU pode ser associada com a AU (560). O método pode incluir o decodificador de vídeo 30 determinando um valor do elemento de sintaxe. O elemento de sintaxe pode ter a forma de SubPicCpbFlag. Em resposta ao elemento de sintaxe possuindo um valor verdadeiro (por exemplo, SubPicCpbFlag é igual a 1), o método pode incluir a derivação de um momento de remoçao CPB apenas para o nível AU. Em resposta ao elemento de sintaxe possuindo um valor falso (por exemplo, SubPicCpbFlag igual a 0), a derivação de um momento de remoção CPB apenas para o nível de subimagem. Em alguns exemplos, pelo menos um dentre um momento de chegada CPB e um momento de remoção nominal CPB são derivados apenas quando um indicador de sintaxe que indica os parâmetros CPB é derivado apenas quando um indicador de sintaxe que indica que os parâmetros CPB estão presentes possui um valor verdadeiro.
[0297] O método pode incluir adicionalmente a determinação de um momento de remoção da AU com base pelo menos em parte em um dentre o momento de chegada CPB e um momento de remoção nominal CPB (562). O método inclui adicionalmente a decodificação de dados de vídeo da AU com base pelo menos em parte no momento de remoção (564).
[0298] O método pode incluir adicionalmente a decodificação de uma duração entre a remoção CPB de uma primeira DU na AU e a remoção CPB de uma segunda DU, determinando um momento de remoção da primeira DU com base pelo menos em parte na duração decodificada, e a decodificação de dados de vídeo da primeira DU com base pelo menos em parte em pelo menos um dentre o momento de remoção, o momento de chegada CPB e o momento de remoção nominal CPB. Em alguns exemplos, a segunda DU é subsequente à primeira DU na ordem de decodificação e na mesma AU que a primeira DU. O método pode incluir adicionalmente a decodificação de um ou mais parâmetros CPB de nível de subimagem onde a determinação do momento de remoção da primeira DU compreende a determinação do momento de remoção da primeira DU com base pelo menos em parte na duração decodificada e nos parâmetros CPB de nível de subimagem.
[0299] Em alguns exemplos, o método também inclui a decodificação de um indicador de nível de sequência para determinar a sequência dos parâmetros CPB de nível de subimagem nas mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de subimagem.
[0300] As DUs podem ser qualquer tipo de DU descrita em WD8 HEVC, incluindo unidades NAL não VCL com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT, na faixa RSV_NVCL44 a RSV_NVCL47 ou na faixa de UNSPEC48 a UNSPEC63.
[0301] Em outro exemplo no qual a AU possui um TemporalId não superior a 0, o método inclui adicionalmente a decodificação de pelo menos uma dentre uma mensagem de informação de melhoria suplementar (SEI) do período de armazenamento ou uma mensagem SEI de ponto de recuperação associada com a AU.
[0302] A figura 16 é um fluxograma ilustrando um método de codificação de momentos de remoção nominal e chegada de armazenador de imagem codificada para as técnicas descritas nessa descrição. O método pode ser realizado por um dispositivo de codificação de vídeo. O dispositivo de codificação de vídeo pode ser o codificador de vídeo 20 das figuras 1 e 2, por exemplo.
[0303] O método inclui a derivação de pelo menos um dentre o momento de chegada CPB e um momento de remoção nominal CPB para uma AU em ambos um nível de unidade de acesso e um nível de subimagem independentemente de um valor de um elemento de sintaxe que define s uma DU é toda a AU. A DU pode ser associada com a AU (570). O método pode incluir o codificador de vídeo 20 determinando um valor do elemento de sintaxe. O elemento de sintaxe pode ter a forma de SubPicCpbFlag. Em resposta ao elemento de sintaxe possuindo um valor verdadeiro (por exemplo, SubPicCpbFlag é igual a 1), o codificador de vídeo 20 pode derivar um momento de remoção CPB apenas para o nível de AU. Em resposta ao elemento de sintaxe possuindo um valor falso (por exemplo, SubPicCpbFlag é igual a 0), o codificador de vídeo 20 pode derivar um momento de remoção CPB apenas para o nível de subimagem. Em alguns exemplos, pelo menos um dentre um momento de chegada CPB e um momento de remoção nominal CPB são derivados apenas quando um indicador de sintaxe que indica os parâmetros CPB estão presentes e possuem um valor verdadeiro.
[0304] O método pode incluir adicionalmente a determinação de um momento de remoção da AU com base pelo menos em parte em um dentre o momento de chegada CPB e um momento de remoção nominal CPB (572). O método inclui adicionalmente a codificação do momento de remoção determinado (574). Em alguns exemplos, a codificação do momento de remoção pode incluir a codificação de uma duração entre a remoção CPB de uma primeira DU na AU e o momento CPB de uma segunda DU, determinando um momento de remoção da primeira DU com base pelo menos em parte na duração codificada, e codificação de dados de vídeo da primeira DU com base pelo menos em parte em pelo menos um momento de remoção, o momento de chegada CPB, e o momento de remoção nominal CPB. Em alguns exemplos, a segunda DU é subsequente à primeira DU na ordem de decodificação e na mesma AU que a primeira DU. O método pode incluir adicionalmente a codificação de um ou mais parâmetros CPB de nível de subimagem, onde a determinação do momento de remoção da primeira DU compreende a determinação do momento de remoção da primeira DU com base, pelo menos em parte, nos parâmetros CPB de nível de subimagem e duração codificada. O método pode incluir adicionalmente a codificação de uma duração entre a remoção CPB de uma primeira DU na AU e remoção CPB de uma segunda DU, onde a codificação do momento de remoção compreende adicionalmente a codificação da duração.
[0305] Em alguns exemplos, o método também inclui a codificação de um indicador de nível de sequência para indicar a presença dos parâmetros CPB de nível de subimagem nas mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de subimagem.
[0306] As DUs podem ser qualquer tipo de DU descrita em WD8 HEVC, incluindo unidades NAL não VCL com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT, na faixa de RSV_NVCL44 e RSV_NVCL47 ou na faixa de UNSPEC48 a UNSPEC63.
[0307] Em outro exemplo onda a AU possui um TemporalId não superior a 0, o método inclui adicionalmente a codificação de pelo menos uma dentre a mensagem SEI de período de armazenamento ou uma mensagem SEI de ponto de recuperação associada com a AU.
[0308] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas em ou transmitidas como uma ou mais instruções ou código para um meio legível por computador e executadas por uma unidade de processamento com base em hardware. O meio legível por computador pode incluir meio de armazenamento legível por computador, que corresponde a um meio tangível tal como o meio de armazenamento de dados, ou meio de comunicação incluindo qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Dessa forma, o meio legível por computador geralmente pode corresponder a (1) meio de armazenamento legível por computador tangível que é não transitório ou (2) um meio de comunicação tal como um sinal ou onda portadora. O meio de armazenamento de dados pode ser qualquer meio disponível que possa ser acessado por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implementação das técnicas descritas nessa descrição. Um produto de programa de computador pode incluir um meio legível por computador.
[0309] Por meio de exemplo, e não de limitação, tal meio de armazenamento legível por computador pode compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento em disco ótico, armazenamento em disco magnético, ou outros dispositivos de armazenamento magnético, memória flash, ou qualquer outro meio que possa ser utilizado para armazenar código de programa desejado na forma de instruções ou estruturas de dados e que possa ser acessado por um computador. Além disso, qualquer conexão é adequadamente chamada de meio legível por computador. Por exemplo, se instruções forem transmitidas a partir de um sítio de rede, servidor ou outra fonte remota utilizando um cabo coaxial, cabo de fibra ótica, par torcido, linha de assinante digital (DSL), ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas, então o cabo coaxial, o cabo de fibra ótica, o par torcido, DSL, ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas são incluídos na definição de meio. Deve-se compreender, no entanto, que o meio de armazenamento legível por computador e o meio de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outro meio transiente, mas, em vez disso, são direcionados a meio de armazenamento tangível não transiente. Disquete e disco, como utilizados aqui, incluem disco compacto (CD), disco a laser, disco ótico, disco versátil digital (DVD), disquete e disco Blu- ray, onde disquetes normalmente reproduzem dados magneticamente, enquanto discos reproduzem os dados oticamente com lasers. As combinações do acima também devem ser incluídas no escopo da meio legível por computador.
[0310] Instruções podem ser executadas por um ou mais processadores, tal como um ou mais processadores de sinal digital (DSPs), microprocessadores de finalidade geral, circuitos integrados específicos de aplicativo (ASICs), conjuntos lógicos programáveis em campo (FPGAs), ou outros conjuntos de circuito lógicos discretos ou integrados equivalentes. De acordo, o termo "processador", como utilizado aqui pode se referir a qualquer estrutura acima ou qualquer outra estrutura adequada para implementação das técnicas descritas aqui. Adicionalmente, em alguns aspectos, a funcionalidade descrita aqui pode ser fornecida dentro de hardware dedicado e/ou módulos de software configurados para codificar e decodificar, ou incorporados em um codec combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.
[0311] As técnicas dessa descrição podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um aparelho sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos, ou unidades são descritos nessa descrição para enfatizar os aspectos funcionais dos dispositivos configurados para realizar as técnicas descritas, mas não exigem necessariamente a realização por unidades de hardware diferentes. Em vez disso, como descrito acima, várias unidades podem ser combinadas em uma unidade de hardware codec ou fornecidas por uma coleção de unidades de hardware interoperacionais, incluindo um ou mais processadores como descrito acima, em conjunto com software e/ou firmware adequado.
[0312] Vários exemplos foram descritos. Esses e outros exemplos estão dentro do escopo das reivindicações a seguir.

Claims (7)

1. Método para decodificação de dados de vídeo, os dados de vídeo compreendendo uma unidade acesso, AU, a unidade de acesso compreendendo uma pluralidade de unidades de decodificação, DUs, a pluralidade de DUs da AU incluindo uma DU que é a última na AU em ordem de decodificação e uma pluralidade de DUs que não são as últimas na AU na ordem de decodificação, o método caracterizado pelo fato de que compreende, quando um primeiro sinalizador tem um valor que indica que o parâmetros de subimagem de buffer de imagem codificada, CPB, estão presentes nos dados de vídeo: decodificar (200), para cada DU da AU que não seja a DU da AU que é a última da ordem de decodificação, um valor de duração, em termos de um número de tiques de relógio de subimagem, entre um momento de remoção nominal, CPB, (140-1, 142-1) da DU (110-1, 112-1) e um momento de remoção nominal (140-2, 142-2) de um DU (110-2, 112-2) imediatamente subsequente em ordem de decodificação, os valores de duração para as DUs sendo decodificados de uma mensagem de informação de melhoria suplementar, SEI, de temporização de imagem associada à AU quando o segundo sinalizador tem um valor que indica que os parâmetros CPB de subimagem estão presentes nas mensagens SEI de temporização de imagem e decodificados a partir de uma mensagem SEI de temporização de subimagem associada à AU quando o segundo sinalizador tem um valor que indica que os parâmetros de CPB de subimagem não estão presentes nas mensagens SEI de temporização de imagem, em que o segundo sinalizador é um sinalizador de nível de sequência; determinar (202), para cada DU da AU, um momento de remoção CPB para a DU; e para cada DU da AU, no momento de remoção CPB determinado para a DU, decodificar dados de vídeo da DU e remover a DU do CPB, em que a decodificação dos dados de vídeo é realizada com low_delay_hrd_flagh igual a 0, em que o momento de remoção CPB para a DU que é a última na AU em ordem de decodificação é definido igual a um momento de remoção nominal CPB para a AU e o momento de remoção CPB para as DUs restantes da AU são definidos iguais aos respectivos momentos de remoção nominal CPB para as DUs, em que, quando o segundo sinalizador tem um valor que indica que os parâmetros de subimagem CPB estão presentes nas mensagens SEI de temporização de imagem, o momento de remoção nominal CPB para cada DU na AU diferente da última DU na ordem de decodificação é determinado calculando o momento de remoção nominal CPB da DU imediatamente subsequente na ordem de decodificação menos um período de tempo igual ao valor da duração decodificada multiplicado pela duração do tique de relógio de uma subimagem, em que, quando o segundo sinalizador tem valor que indica que os parâmetros de subimagem CPB não estão presentes nas mensagem SEI de temporização de imagem, o momento de remoção nominal para cada DU na AU diferente da última DU na ordem de decodificação é determinado pelo cálculo da remoção nominal do momento de remoção nominal CPB para a AU menos um período de tempo igual ao valor de duração decodificada multiplicado pela duração de um tique de relógio de subimagem.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a AU possui uma TemporalId igual a 0, o método compreendendo adicionalmente: decodificar pelo menos uma de uma mensagem de informação de melhoria suplementar, SEI, de período de armazenamento em buffer ou uma mensagem SEI de ponto de recuperação associada com a AU (100, 102).
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que uma ou mais DU da AU compreende uma unidade de camada de abstração de rede, NAL, de camada de codificação de não vídeo, VCL, com nal_unit_type igual a UNSPEC0, EOS_NUT, EOB_NUT, na faixa de RSV_NVCL44 a RSV_NVCL47 ou na faixa de UNSPEC48 a UNSPEC63.
4. Dispositivo de decodificação de vídeo, os dados de vídeo compreendendo uma unidade acesso, AU, a unidade de acesso compreendendo uma pluralidade de unidades de decodificação, DUs, a pluralidade de DUs da AU incluindo uma DU que é a última na AU em ordem de decodificação e uma pluralidade de DUs que não são as últimas na AU na ordem de decodificação, o dispositivo caracterizado pelo fato de que é configurado para, quando um primeiro sinalizador tiver um valor que indica que o parâmetros de subimagem de buffer de imagem codificada, CPB, estão presentes nos dados de vídeo: decodificar (200), para cada DU da AU que não seja a DU da AU que é a última da ordem de decodificação, um valor de duração, em termos de um número de tiques de relógio de subimagem, entre um momento de remoção nominal, CPB, da DU (110-1, 112-1) e um momento de remoção nominal de um DU (110-2, 112-2) imediatamente subsequente em ordem de decodificação, os valores de duração para as DUs sendo decodificadas de uma mensagem de informação de melhoria suplementar, SEI, de temporização de imagem associada à AU quando o segundo sinalizador tem um valor que indica que os parâmetros CPB da subimagem estão presentes nas mensagens SEI de temporização de imagem e decodificados a partir de uma mensagem SEI de temporização de subimagem associada à AU quando o segundo sinalizador tem um valor que indica que os parâmetros de CPB de subimagem não estão presentes nas mensagens SEI de temporização de imagem, em que o segundo sinalizador é um sinalizador de nível de sequência; determinar (202), para cada DU da AU, um momento de remoção nominal CPB da DU; e para cada DU da AU, no momento de remoção CPB determinado para a DU, decodificar dados de vídeo da DU e remover a DU do CPB, em que a decodificação dos dados de vídeo é realizada com low_delay_hrd_flagh igual a 0, em que o momento de remoção CPB para a DU que é a última na AU em ordem de decodificação é definido igual a um momento de remoção nominal CPB para a AU e o momento de remoção CPB para as DUs restantes da AU são definidos iguais aos respectivos momentos de remoção nominal CPB para as DUs, em que, quando o segundo sinalizador tem um valor que indica que os parâmetros de subimagem CPB estão presentes nas mensagens SEI de temporização de imagem, o momento de remoção nominal CPB para cada DU na AU diferente da última DU na ordem de decodificação é determinado calculando o momento de remoção nominal CPB da DU imediatamente subsequente na ordem de decodificação menos um período de tempo igual ao valor da duração decodificado multiplicado pela duração do tique de relógio de uma subimagem, em que, quando o segundo sinalizador tem valor que indica que os parâmetros de subimagem CPB não estão presentes nas mensagem SEI de temporização de imagem, o momento de remoção nominal para cada DU na AU diferente da última DU na ordem de decodificação é determinado pelo cálculo da remoção nominal do momento de remoção nominal CPB para a AU menos um período de tempo igual ao valor de duração decodificado multiplicado pela duração de um tique de relógio de subimagem.
5. Dispositivo, de acordo com a reivindicação 4, caracterizado pelo fato de que é implementado em um ou mais circuitos integrados.
6. Dispositivo, de acordo com a reivindicação 4, caracterizado pelo fato de que é um computador de mesa, um notebook, um computador tablet, um decodificador, um aparelho de telefone, uma televisão, uma câmera, um reprodutor de mídia digital, um console de videogame ou um dispositivo de transmissão de vídeo.
7. Memória caracterizada pelo fato de que compreende instruções armazenadas na mesma, as instruções sendo executadas por um computador para realizar o método conforme definido em qualquer uma das reivindicações 1 a 3.
BR112015006481-7A 2012-09-24 2013-09-23 Momentos de remoção de armazenamento de imagem codificada independente de unidade de acesso em codificação de vídeo BR112015006481B1 (pt)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201261705119P 2012-09-24 2012-09-24
US61/705,119 2012-09-24
US201261708475P 2012-10-01 2012-10-01
US61/708,475 2012-10-01
US14/033,141 2013-09-20
US14/033,141 US9479773B2 (en) 2012-09-24 2013-09-20 Access unit independent coded picture buffer removal times in video coding
PCT/US2013/061217 WO2014047577A1 (en) 2012-09-24 2013-09-23 Access unit independent coded picture buffer removal times in video coding

Publications (2)

Publication Number Publication Date
BR112015006481A2 BR112015006481A2 (pt) 2017-07-04
BR112015006481B1 true BR112015006481B1 (pt) 2022-08-09

Family

ID=50338852

Family Applications (6)

Application Number Title Priority Date Filing Date
BR112015006486-8A BR112015006486B1 (pt) 2012-09-24 2013-09-23 Tempos de chegada e remoção nominal de buffer de imagem codificada na codificação de vídeo
BR112015006488-4A BR112015006488B1 (pt) 2012-09-24 2013-09-23 Momentos de remoção do armazenador de imagem codificada sinalizados nas mensagens de informação de melhoria suplementar de temporização de imagem e subimagem
BR112015006492-2A BR112015006492B1 (pt) 2012-09-24 2013-09-23 Indicador de nível de sequência para parâmetros de armazenador de imagem codificada de nível de subimagem
BR112015006479-5A BR112015006479B1 (pt) 2012-09-24 2013-09-23 Definição de unidade de decodificação expandida
BR112015006480-9A BR112015006480B1 (pt) 2012-09-24 2013-09-23 Método e dispositivo para determinar conformidade de fluxo de bits e memória legível por computador
BR112015006481-7A BR112015006481B1 (pt) 2012-09-24 2013-09-23 Momentos de remoção de armazenamento de imagem codificada independente de unidade de acesso em codificação de vídeo

Family Applications Before (5)

Application Number Title Priority Date Filing Date
BR112015006486-8A BR112015006486B1 (pt) 2012-09-24 2013-09-23 Tempos de chegada e remoção nominal de buffer de imagem codificada na codificação de vídeo
BR112015006488-4A BR112015006488B1 (pt) 2012-09-24 2013-09-23 Momentos de remoção do armazenador de imagem codificada sinalizados nas mensagens de informação de melhoria suplementar de temporização de imagem e subimagem
BR112015006492-2A BR112015006492B1 (pt) 2012-09-24 2013-09-23 Indicador de nível de sequência para parâmetros de armazenador de imagem codificada de nível de subimagem
BR112015006479-5A BR112015006479B1 (pt) 2012-09-24 2013-09-23 Definição de unidade de decodificação expandida
BR112015006480-9A BR112015006480B1 (pt) 2012-09-24 2013-09-23 Método e dispositivo para determinar conformidade de fluxo de bits e memória legível por computador

Country Status (23)

Country Link
US (6) US9479774B2 (pt)
EP (6) EP2898686B1 (pt)
JP (6) JP6239626B2 (pt)
KR (6) KR102244410B1 (pt)
CN (6) CN104704840B (pt)
AR (3) AR093239A1 (pt)
AU (6) AU2013317767B2 (pt)
BR (6) BR112015006486B1 (pt)
CA (6) CA2883898C (pt)
DK (2) DK2898683T3 (pt)
ES (5) ES2913456T3 (pt)
HK (6) HK1206177A1 (pt)
HU (4) HUE052209T2 (pt)
IL (6) IL237679A (pt)
MX (1) MX341441B (pt)
MY (6) MY172354A (pt)
PH (6) PH12015500479B1 (pt)
RU (6) RU2630374C2 (pt)
SG (7) SG11201501519QA (pt)
TW (6) TWI530197B (pt)
UA (2) UA116997C2 (pt)
WO (6) WO2014047577A1 (pt)
ZA (4) ZA201502382B (pt)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011199396A (ja) 2010-03-17 2011-10-06 Ntt Docomo Inc 動画像予測符号化装置、動画像予測符号化方法、動画像予測符号化プログラム、動画像予測復号装置、動画像予測復号方法、及び動画像予測復号プログラム
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
KR101781774B1 (ko) * 2012-06-25 2017-09-25 닛본 덴끼 가부시끼가이샤 비디오 디코딩 장치, 방법 및 프로그램
US9602827B2 (en) 2012-07-02 2017-03-21 Qualcomm Incorporated Video parameter set including an offset syntax element
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
US9374585B2 (en) * 2012-12-19 2016-06-21 Qualcomm Incorporated Low-delay buffering model in video coding
US9591321B2 (en) 2013-04-07 2017-03-07 Dolby International Ab Signaling change in output layer sets
KR102383006B1 (ko) * 2013-04-07 2022-04-04 돌비 인터네셔널 에이비 출력 계층 세트들에서의 시그널링 변경
US10063868B2 (en) * 2013-04-08 2018-08-28 Arris Enterprises Llc Signaling for addition or removal of layers in video coding
US9467700B2 (en) 2013-04-08 2016-10-11 Qualcomm Incorporated Non-entropy encoded representation format
US9402083B2 (en) * 2014-04-24 2016-07-26 Vidyo, Inc. Signaling conformance points using profile space
US10432951B2 (en) 2014-06-24 2019-10-01 Qualcomm Incorporated Conformance and inoperability improvements in multi-layer video coding
US11595652B2 (en) * 2019-01-28 2023-02-28 Op Solutions, Llc Explicit signaling of extended long term reference picture retention
US10623755B2 (en) * 2016-05-23 2020-04-14 Qualcomm Incorporated End of sequence and end of bitstream NAL units in separate file tracks
CN107612953B (zh) * 2016-07-12 2020-10-27 中国电信股份有限公司 增强信息生成和获取方法、装置、终端设备、平台和系统
US10999605B2 (en) 2017-01-10 2021-05-04 Qualcomm Incorporated Signaling of important video information in file formats
WO2018199672A1 (en) 2017-04-27 2018-11-01 Samsung Electronics Co., Ltd. Network slice-available area information acquisition method
CN113597768A (zh) 2019-01-28 2021-11-02 Op方案有限责任公司 扩展长期参考图片保留的在线和离线选择
JP7346585B2 (ja) * 2019-03-01 2023-09-19 フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 仮想参照デコーダ
MX2021014185A (es) * 2019-06-18 2022-01-06 Panasonic Ip Corp America Codificador, decodificador, metodo de codificacion y metodo de decodificacion.
CN114026863A (zh) * 2019-06-24 2022-02-08 交互数字Vc控股公司 使用高级语法元素发信号通知解码数据的方法和装置
WO2020263981A1 (en) * 2019-06-27 2020-12-30 Futurewei Technologies, Inc. Hypothetical reference decoder for v-pcc
US20220312042A1 (en) * 2019-08-21 2022-09-29 Sharp Kabushiki Kaisha Systems and methods for signaling buffering period information in video coding
WO2021049644A1 (ja) * 2019-09-11 2021-03-18 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法
MX2022003221A (es) * 2019-09-17 2022-04-26 Huawei Tech Co Ltd Se?alizacion de id de subimagenes en codificacion de video basada en subimagenes.
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
CN117478900A (zh) * 2019-09-24 2024-01-30 华为技术有限公司 用于实现时间可适性的图像时序和解码单元信息
WO2021061390A1 (en) * 2019-09-24 2021-04-01 Futurewei Technologies, Inc. Sei message for single layer ols
EP4028994A4 (en) * 2019-10-07 2023-01-18 Huawei Technologies Co., Ltd. VIDEO-BASED POINT CLOUD COMPRESSION (V-PCC) COMPONENT SYNCHRONIZATION
US11509938B2 (en) 2019-11-05 2022-11-22 Hfi Innovation Inc. Method and apparatus of signaling subpicture information in video coding
CN114788290A (zh) * 2019-12-05 2022-07-22 夏普株式会社 用于在视频编码中发送信号通知画面定时和解码单元信息的系统和方法
KR20220114557A (ko) 2019-12-26 2022-08-17 바이트댄스 아이엔씨 코딩된 픽처 내에서 디코딩 순서를 구현하기 위한 기술들
JP7427176B2 (ja) 2019-12-27 2024-02-05 国立研究開発法人情報通信研究機構 無線通信情報更新システム及び無線通信情報更新方法
WO2021142369A1 (en) 2020-01-09 2021-07-15 Bytedance Inc. Signalling of the wavefront parallel processing
EP4088463A4 (en) 2020-02-14 2023-05-10 Beijing Bytedance Network Technology Co., Ltd. USING GENERAL STRESS INDICATORS IN VIDEO BITSTREAMS
CN115191115A (zh) 2020-02-24 2022-10-14 字节跳动有限公司 子图片和片行信令通知之间的交互
KR20220143857A (ko) 2020-03-03 2022-10-25 바이트댄스 아이엔씨 비디오 코딩에서의 저 주파수 비-분리가능 변환 시그널링
WO2021188527A1 (en) 2020-03-17 2021-09-23 Bytedance Inc. Using video parameter set in video coding
CN115699746B (zh) * 2020-03-31 2023-10-20 Lg电子株式会社 图像编码/解码方法和发送比特流的方法
US20230156210A1 (en) * 2020-03-31 2023-05-18 Lg Electronics Inc. Image encoding/decoding method and apparatus based on picture split information and subpicture information, and recording medium storing bitstream
US11706428B2 (en) * 2020-04-06 2023-07-18 Tencent America LLC Method for signaling picture header in coded video stream
KR20230015391A (ko) 2020-05-22 2023-01-31 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 서브-비트스트림 추출에서 코딩된 비디오의 핸들링
EP4140128A4 (en) 2020-05-22 2023-08-02 ByteDance Inc. RESTRICTIONS ON IMAGE TYPES IN VIDEO BITSTREAM PROCESSING
JP2023526661A (ja) 2020-05-22 2023-06-22 バイトダンス インコーポレイテッド 適合出力サブビットストリームの生成技術
CN115943627A (zh) 2020-06-08 2023-04-07 字节跳动有限公司 对编解码视频图片中条带计数的约束
WO2021252533A1 (en) 2020-06-09 2021-12-16 Bytedance Inc. Sub-bitstream extraction of multi-layer video bitstreams
EP4150903A4 (en) * 2020-06-09 2023-11-08 ByteDance Inc. HANDLING ADDITIONAL EXTENSION INFORMATION IN A PARTIAL BITSTREAM EXTRACTION PROCEDURE FOR SUB-IMAGES
WO2021252546A1 (en) * 2020-06-09 2021-12-16 Bytedance Inc. Signaling of subpicture level and buffering information
KR20230020426A (ko) 2020-06-09 2023-02-10 바이트댄스 아이엔씨 비디오 코딩에서 서브픽처 레벨 정보 시그널링
EP3972278A1 (en) 2020-09-17 2022-03-23 Lemon Inc. Subpicture tracks in coded video
EP3972273A1 (en) 2020-09-17 2022-03-23 Lemon Inc. Handling of non-vcl nal units in picture unit construction
US11962936B2 (en) 2020-09-29 2024-04-16 Lemon Inc. Syntax for dependent random access point indication in video bitstreams
US20220109865A1 (en) * 2020-10-02 2022-04-07 Sharp Kabushiki Kaisha Systems and methods for signaling picture buffer information for intra random access point picture sub-bitstreams in video coding
US11997293B2 (en) 2021-04-15 2024-05-28 Lemon Inc. Sub-picture track level indicator
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 (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000046995A1 (en) * 1999-02-05 2000-08-10 Sony Corporation Encoding system, encoding method, decoding system, decoding method, multiplexing device, multiplexing method, display system and display method
RU2229176C2 (ru) * 2000-06-14 2004-05-20 Жуков Николай Анатольевич Тепловыделяющая сборка с микротвэлами
RU2273109C2 (ru) * 2000-09-07 2006-03-27 Сони Корпорейшн Способ и устройство обработки информации, программа и носитель записи
RU2270485C2 (ru) * 2001-03-08 2006-02-20 Сони Корпорейшн Устройство записи данных (варианты), способ записи данных (варианты), носитель записи (варианты), устройство воспроизведения данных (варианты), способ воспроизведения данных (варианты), устройство редактирования данных (варианты), способ редактирования данных (варианты)
EP1518403A4 (en) 2002-07-02 2009-03-18 Conexant Systems Inc HYPOTHETIC REFERENCE DECODER FOR COMPRESSED PICTURES AND VIDEO
US7532670B2 (en) 2002-07-02 2009-05-12 Conexant Systems, Inc. Hypothetical reference decoder with low start-up delays for compressed image and video
JP4002878B2 (ja) * 2003-01-17 2007-11-07 松下電器産業株式会社 画像符号化方法
CN1739299A (zh) * 2003-01-20 2006-02-22 松下电器产业株式会社 图像编码方法
RU2329615C2 (ru) * 2003-12-01 2008-07-20 Самсунг Электроникс Ко., Лтд. Способ масштабируемого кодирования и декодирования видеосигнала и устройство для его осуществления
EP1704720A1 (en) * 2004-01-16 2006-09-27 General Instrument Corporation Method, protocol, and apparatus for transporting advanced video coding content
US20050201471A1 (en) * 2004-02-13 2005-09-15 Nokia Corporation Picture decoding method
US8406293B2 (en) * 2004-06-27 2013-03-26 Apple Inc. Multi-pass video encoding based on different quantization parameters
JP4091582B2 (ja) * 2004-09-06 2008-05-28 株式会社東芝 動画像符号化装置、及び動画像符号化方法
US20060104356A1 (en) * 2004-11-15 2006-05-18 Microsoft Corporation Timing for decoder buffer examination
US20060143678A1 (en) 2004-12-10 2006-06-29 Microsoft Corporation System and process for controlling the coding bit rate of streaming media data employing a linear quadratic control technique and leaky bucket model
RU2377736C2 (ru) * 2005-04-13 2009-12-27 Нокиа Корпорейшн Кодирование, хранение и передача информации о масштабируемости
JP4311570B2 (ja) 2005-07-01 2009-08-12 株式会社ソニー・コンピュータエンタテインメント 再生装置、ビデオ復号装置および同期再生方法
US20070086521A1 (en) 2005-10-11 2007-04-19 Nokia Corporation Efficient decoded picture buffer management for scalable video coding
US7477692B2 (en) * 2005-12-16 2009-01-13 Tut Systems, Inc. Video encoding for seamless splicing between encoded video streams
KR100809301B1 (ko) 2006-07-20 2008-03-04 삼성전자주식회사 엔트로피 부호화/복호화 방법 및 장치
US8559510B2 (en) 2006-08-10 2013-10-15 Canon Kabushiki Kaisha Image decoding apparatus
JP2008109637A (ja) * 2006-09-25 2008-05-08 Toshiba Corp 動画像符号化装置及びその方法
MY162367A (en) 2007-01-05 2017-06-15 Thomson Licensing Hypothetical reference decoder for scalable video coding
CN101606389B (zh) * 2007-01-08 2013-06-12 汤姆森特许公司 用于视频流拼接的方法及装置
CA2675955C (en) * 2007-01-18 2013-07-23 Nokia Corporation Carriage of sei messages in rtp payload format
JP5264919B2 (ja) 2007-10-05 2013-08-14 トムソン ライセンシング マルチビュービデオ(mvc)符号化システム内にビデオユーザビリティ情報(vui)を取り込む方法及び装置
JP4577357B2 (ja) * 2007-12-27 2010-11-10 ソニー株式会社 符号化装置及び方法、並びにプログラム
US8345774B2 (en) * 2008-01-11 2013-01-01 Apple Inc. Hypothetical reference decoder
WO2010021665A1 (en) * 2008-08-20 2010-02-25 Thomson Licensing Hypothetical reference decoder
US8136736B2 (en) * 2008-12-09 2012-03-20 Vasco Data Security, Inc. Slim electronic device with detector for unintentional activation
JPWO2010092740A1 (ja) 2009-02-10 2012-08-16 パナソニック株式会社 画像処理装置、画像処理方法、プログラムおよび集積回路
JP5072893B2 (ja) * 2009-03-25 2012-11-14 株式会社東芝 画像符号化方法および画像復号化方法
JP4957823B2 (ja) 2009-04-08 2012-06-20 ソニー株式会社 再生装置および再生方法
US8948241B2 (en) * 2009-08-07 2015-02-03 Qualcomm Incorporated Signaling characteristics of an MVC operation point
US8731053B2 (en) 2009-11-18 2014-05-20 Tektronix, Inc. Method of multiplexing H.264 elementary streams without timing information coded
US9992456B2 (en) 2010-02-24 2018-06-05 Thomson Licensing Dtv Method and apparatus for hypothetical reference decoder conformance error detection
US8724710B2 (en) * 2010-02-24 2014-05-13 Thomson Licensing Method and apparatus for video encoding with hypothetical reference decoder compliant bit allocation
US9319448B2 (en) 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
CN102055981B (zh) * 2010-12-31 2013-07-03 北京大学深圳研究生院 用于视频编码器的去块滤波器及其实现方法
US9020039B2 (en) * 2011-01-06 2015-04-28 Sonic Ip, Inc. Systems and methods for encoding alternative streams of video for use in adaptive bitrate streaming
US9706227B2 (en) * 2011-03-10 2017-07-11 Qualcomm Incorporated Video coding techniques for coding dependent pictures after random access
US9069893B2 (en) 2011-03-23 2015-06-30 International Business Machines Corporation Automatic verification of determinism for parallel programs
US20130170561A1 (en) 2011-07-05 2013-07-04 Nokia Corporation Method and apparatus for video coding and decoding
US8768079B2 (en) * 2011-10-13 2014-07-01 Sharp Laboratories Of America, Inc. Tracking a reference picture on an electronic device
US9414085B2 (en) * 2012-01-20 2016-08-09 Telefonaktiebolaget Lm Ericsson (Publ) Sub-bitstream extraction
PL2843945T3 (pl) 2012-04-23 2020-07-27 Sun Patent Trust Sposób kodowania obrazów, sposób dekodowania obrazów, urządzenie do kodowania obrazów, urządzenie do dekodowania obrazów oraz urządzenie do kodowania/dekodowania obrazów
PL2865177T3 (pl) * 2012-06-25 2019-03-29 Huawei Technologies Co., Ltd. Sposób sygnalizowania obrazu stopniowego dostępu do warstwy czasowej
JP2015526006A (ja) * 2012-06-29 2015-09-07 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ ビデオ・データストリーム・コンセプト
JP6552197B2 (ja) * 2012-07-06 2019-07-31 シャープ株式会社 サブピクチャ・ベースの仮想参照デコーダ・パラメータをシグナリングする方法
WO2014007596A1 (ko) 2012-07-06 2014-01-09 삼성전자 주식회사 다계층 비디오 부호화 방법 및 장치, 다계층 비디오 복호화 방법 및 장치
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

Also Published As

Publication number Publication date
CN104662919B (zh) 2018-10-30
HUE058715T2 (hu) 2022-09-28
HK1206177A1 (en) 2015-12-31
JP2015529438A (ja) 2015-10-05
TW201415901A (zh) 2014-04-16
HK1206524A1 (en) 2016-01-08
BR112015006488A2 (pt) 2017-07-04
JP2015533059A (ja) 2015-11-16
US9479774B2 (en) 2016-10-25
IL237682A (en) 2017-08-31
CA2884302A1 (en) 2014-03-27
EP2898683B1 (en) 2021-08-11
EP2898681A1 (en) 2015-07-29
KR101760195B1 (ko) 2017-07-20
TW201424394A (zh) 2014-06-16
EP2898686A1 (en) 2015-07-29
PH12015500537B1 (en) 2015-05-04
KR101743850B1 (ko) 2017-06-05
MY182448A (en) 2021-01-25
WO2014047586A1 (en) 2014-03-27
CA2884286A1 (en) 2014-03-27
AU2013317761A1 (en) 2015-03-19
AU2013317764B2 (en) 2017-08-24
KR102149072B1 (ko) 2020-08-27
TWI581611B (zh) 2017-05-01
HK1206527A1 (en) 2016-01-08
AU2013317764A1 (en) 2015-03-19
BR112015006492A2 (pt) 2017-07-04
IL237680A0 (en) 2015-04-30
RU2015115513A (ru) 2016-11-20
BR112015006480B1 (pt) 2022-08-09
CA2884289C (en) 2020-06-16
SG10201707888PA (en) 2017-10-30
CA2884447A1 (en) 2014-03-27
MY169387A (en) 2019-03-26
JP2015533056A (ja) 2015-11-16
AU2013317758A1 (en) 2015-04-23
WO2014047584A1 (en) 2014-03-27
AU2013317758B2 (en) 2017-07-06
US9648352B2 (en) 2017-05-09
RU2015115465A (ru) 2016-11-20
PH12015500580B1 (en) 2015-05-11
KR102244410B1 (ko) 2021-04-23
TW201424396A (zh) 2014-06-16
EP2898687B1 (en) 2022-04-20
PH12015500511B1 (en) 2015-04-27
JP6121539B2 (ja) 2017-04-26
US20140086332A1 (en) 2014-03-27
CN104662915A (zh) 2015-05-27
HK1207776A1 (en) 2016-02-05
CA2883898C (en) 2018-08-28
KR20150060856A (ko) 2015-06-03
KR20150060857A (ko) 2015-06-03
RU2627098C2 (ru) 2017-08-03
JP6239626B2 (ja) 2017-11-29
US9491456B2 (en) 2016-11-08
PH12015500537A1 (en) 2015-05-04
AU2013317767B2 (en) 2017-02-23
KR101773268B1 (ko) 2017-08-31
CA2884302C (en) 2018-11-06
EP2898685B1 (en) 2020-12-02
AR093286A1 (es) 2015-05-27
BR112015006479A2 (pt) 2017-07-04
IL237681B (en) 2018-08-30
IL237682A0 (en) 2015-04-30
CA2884447C (en) 2020-02-18
MY171506A (en) 2019-10-16
TW201424395A (zh) 2014-06-16
PH12015500593B1 (en) 2015-05-11
TW201419859A (zh) 2014-05-16
CA2884289A1 (en) 2014-03-27
EP2898684B1 (en) 2019-05-01
ZA201502641B (en) 2017-11-29
ES2884724T3 (es) 2021-12-10
AU2013317765A1 (en) 2015-03-19
EP2898686B1 (en) 2021-04-07
MY172354A (en) 2019-11-21
IL237696A (en) 2017-09-28
MX341441B (es) 2016-08-18
MY181871A (en) 2021-01-11
KR101788416B1 (ko) 2017-10-19
BR112015006479B1 (pt) 2022-08-09
ES2855129T3 (es) 2021-09-23
HUE044912T2 (hu) 2019-11-28
JP2015533060A (ja) 2015-11-16
EP2898685A1 (en) 2015-07-29
KR20150063454A (ko) 2015-06-09
BR112015006481A2 (pt) 2017-07-04
WO2014047577A1 (en) 2014-03-27
TWI574549B (zh) 2017-03-11
CN104662916B (zh) 2019-01-11
ZA201502382B (en) 2019-10-30
DK2898685T3 (da) 2021-02-22
CN104662917A (zh) 2015-05-27
JP6092398B2 (ja) 2017-03-08
JP6239627B2 (ja) 2017-11-29
BR112015006486B1 (pt) 2022-08-09
BR112015006488B1 (pt) 2022-08-09
ES2739225T3 (es) 2020-01-29
CA2884286C (en) 2018-11-06
WO2014047580A1 (en) 2014-03-27
TWI555382B (zh) 2016-10-21
AR093239A1 (es) 2015-05-27
BR112015006492B1 (pt) 2022-08-02
CN104704840B (zh) 2019-04-05
PH12015500479A1 (en) 2015-04-20
CA2884298A1 (en) 2014-03-27
ES2913456T3 (es) 2022-06-02
AU2013317765B2 (en) 2017-08-03
US20140086340A1 (en) 2014-03-27
PH12015500593A1 (en) 2015-05-11
RU2646378C2 (ru) 2018-03-02
BR112015006486A2 (pt) 2017-07-04
KR20150060854A (ko) 2015-06-03
RU2015115521A (ru) 2016-11-20
WO2014047582A1 (en) 2014-03-27
SG11201501520YA (en) 2015-04-29
IL237680B (en) 2018-05-31
EP2898681B1 (en) 2021-07-28
IL237679A0 (en) 2015-04-30
AU2013317763A1 (en) 2015-03-19
CN104662918A (zh) 2015-05-27
AU2013317767A1 (en) 2015-03-19
RU2015115518A (ru) 2016-11-20
SG11201501580RA (en) 2015-04-29
KR20150063455A (ko) 2015-06-09
RU2628215C2 (ru) 2017-08-15
CN104662917B (zh) 2018-02-16
AR093287A1 (es) 2015-05-27
CN104662915B (zh) 2018-04-10
PH12015500479B1 (en) 2015-04-20
DK2898683T3 (da) 2021-09-20
US9654802B2 (en) 2017-05-16
IL237681A0 (en) 2015-04-30
HK1208581A1 (en) 2016-03-04
PH12015500511A1 (en) 2015-04-27
CN104662919A (zh) 2015-05-27
RU2015115466A (ru) 2016-11-20
PH12015500510B1 (en) 2015-04-27
US20140086342A1 (en) 2014-03-27
US20140086343A1 (en) 2014-03-27
PH12015500580A1 (en) 2015-05-11
AU2013317763B2 (en) 2017-12-07
MX2015003694A (es) 2015-06-15
US20140086341A1 (en) 2014-03-27
ZA201502492B (en) 2017-11-29
CA2883898A1 (en) 2014-03-27
SG11201501518XA (en) 2015-04-29
JP2015533057A (ja) 2015-11-16
ES2885527T3 (es) 2021-12-14
HK1207928A1 (en) 2016-02-12
MY181707A (en) 2021-01-04
CN104704840A (zh) 2015-06-10
EP2898684A1 (en) 2015-07-29
PH12015500510A1 (en) 2015-04-27
RU2641475C2 (ru) 2018-01-17
TWI569626B (zh) 2017-02-01
HUE055800T2 (hu) 2021-12-28
AU2013317761B2 (en) 2017-12-07
UA114930C2 (uk) 2017-08-28
EP2898687A1 (en) 2015-07-29
IL237679A (en) 2017-09-28
UA116997C2 (uk) 2018-06-11
JP6224109B2 (ja) 2017-11-01
EP2898683A1 (en) 2015-07-29
KR20150060855A (ko) 2015-06-03
US20140086344A1 (en) 2014-03-27
RU2628196C2 (ru) 2017-08-15
SG11201501576RA (en) 2015-05-28
WO2014047583A1 (en) 2014-03-27
IL237697A (en) 2017-08-31
BR112015006480A2 (pt) 2017-07-04
US9479773B2 (en) 2016-10-25
RU2015115463A (ru) 2016-11-20
US9503753B2 (en) 2016-11-22
CN104662916A (zh) 2015-05-27
JP2015533058A (ja) 2015-11-16
TWI530197B (zh) 2016-04-11
SG11201501578QA (en) 2015-04-29
CN104662918B (zh) 2018-04-06
TWI524779B (zh) 2016-03-01
HUE052209T2 (hu) 2021-04-28
CA2884298C (en) 2020-04-28
ZA201502491B (en) 2017-06-28
SG11201501519QA (en) 2015-04-29
TW201415902A (zh) 2014-04-16
RU2630374C2 (ru) 2017-09-07

Similar Documents

Publication Publication Date Title
BR112015006481B1 (pt) Momentos de remoção de armazenamento de imagem codificada independente de unidade de acesso em codificação de vídeo
BR112014024849B1 (pt) Armazenamento em buffer de vídeo de baixo retardo em codificação de vídeo
BR112015016361B1 (pt) Operações de armazenamento temporário de vídeo para acesso aleatório em codificação de vídeo

Legal Events

Date Code Title Description
B15K Others concerning applications: alteration of classification

Ipc: H04N 7/00 (2011.01)

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 23/09/2013, OBSERVADAS AS CONDICOES LEGAIS