BR112015006486B1 - Tempos de chegada e remoção nominal de buffer de imagem codificada na codificação de vídeo - Google Patents
Tempos de chegada e remoção nominal de buffer de imagem codificada na codificação de vídeo Download PDFInfo
- Publication number
- BR112015006486B1 BR112015006486B1 BR112015006486-8A BR112015006486A BR112015006486B1 BR 112015006486 B1 BR112015006486 B1 BR 112015006486B1 BR 112015006486 A BR112015006486 A BR 112015006486A BR 112015006486 B1 BR112015006486 B1 BR 112015006486B1
- Authority
- BR
- Brazil
- Prior art keywords
- cpb
- sub
- removal
- video
- current
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods 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/196—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/31—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/423—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy 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
TEMPOS DE CHEGADA E REMOÇÃO NOMINAL DE BUFFER DE IMAGEM CODIFICADA NA CODIFICAÇÃO DE VÍDEO. Um dispositivo de codificação de vídeo, tal decodificador de vídeo podendo ser configurado para derivar pelo menos um dentre um tempo de chegada ao buffer de imagem codificada (CPB) e um tempo de remoção nominal para uma unidade de acesso (AU) em ambos um nível de unidade de acesso e um nível de sub-imagem independentemente de um valor de um elemento de sintaxe que define se uma unidade de decodificação (DU) é toda a AU. O dispositivo de codificação de vídeo pode ser adicionalmente configurado para determinar um tempo de remoção da AU com base pelo menos em parte em um dentre um tempo de chegada ao CPB e um tempo de remoção nominal do CPB e para decodificar os dados de vídeo da AU com base pelo menos em parte no tempo de remoção.
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.
[0002] Essa descrição se refere à codificação de vídeo.
[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 predição espacial (intra-imagem) e/ou temporal (inter-imagem) 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 intra-codificada (I) de uma imagem são codificados utilizando-se a predição espacial com relação às amostras de referência em blocos vizinhos na mesma imagem. Os blocos de vídeo em uma fatia inter-codificada (P ou B) de uma imagem podem utilizar a predição espacial com relação às amostras de referência nos blocos vizinhos na mesma imagem ou predição temporal com relação às amostras de referência em outras imagens de referência. As imagens podem ser referidas como quadros, e as imagens de referência podem ser referidas para um quadro de referência.
[0005] A predição espacial ou temporal resulta em um bloco de prediçã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 predição. Um bloco inter-codificado é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência formando o bloco de predição, e os dados residuais indicando a diferença entre o bloco codificado e o bloco de predição. Um bloco intra-codificado é 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 transformada, resultando em coeficientes de transformada residuais, que então podem ser quantizados. Os coeficientes de transformada quantizados, inicialmente dispostos em um conjunto bidimensional, podem ser digitalizados a fim de produzir um vetor unidimensional dos coeficientes de transformada, e a codificação por entropia pode ser aplicada para se alcançar uma compressão ainda maior.
[0006] Em geral, as técnicas descritas nessa descrição são relacionadas com a sinalização e a derivação de tempos de remoção de buffer 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 para decodificar dados de vídeo. O método pode incluir decodificar uma duração entre a remoção do buffer 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 a primeira DU na ordem de decodificação e na mesma AU que a primeira DU. O método pode incluir adicionalmente determinar um tempo de remoção da primeira DU com base pelo menos em parte na duração decodificada e na 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 codificar dados de vídeo. O método pode incluir codificar 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 determinar 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 compreende um codificador de vídeo é provido. 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 instruções armazenadas neste que, quando executadas, fazem com que um processador de um dispositivo para codificar 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 descritas 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 mecanismos para codificar uma duração entre a remoção do buffer 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 mecanismos 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 apensos 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.
[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 tempos 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 tempo de remoção de buffer de imagem codificada (CPB) de uma primeira unidade de decodificação (DU) em uma AU com base no tempo 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 tempo de remoção de buffer de imagem codificada (CPB) de uma primeira unidade de decodificação em uma unidade de acesso com base no tempo 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 sub-imagem de acordo com as técnicas descritas nessa descrição.
[0021] A figura 8 é um fluxograma ilustrando outro método para derivar um tempo de remoção CPB da primeira DU com base pelo menos em parte na codificação de uma mensagem SEI de temporização de sub-imagem 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 sub-imagem 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 sub-imagem 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 tempos de chegada e remoça nominal do buffer 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 tempos de chegada e remoção nominal do buffer de imagem codificada de acordo com as técnicas descritas nessa descrição.
[0030] Essa descrição descreve as técnicas para sinalização e derivação eficiente e resiliente em termos de erro de tempos de remoção de buffer de imagem codificada (CPB) das unidades de dados codificados na codificação de vídeo. Os tempos de remoção CPB também são conhecidos como tempos de decodificação. A descrição fornece técnicas para determinação de um tempo de remoção CPB para uma unidade de decodificação (DU) de uma unidade de acesso (AU) que é independente dos tempos de remoção de qualquer outra AU. Por exemplo, tempos de remoção CPB para uma DU atual de uma AU serão sinalizados com base em uma duração entre um tempo 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 tempo de remoção CPB da última DU na AU e a DU atual. Em outro exemplo, a derivação de tempo 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 sub-imagem (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 sub-imagem é 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 sub- imagem presidem em apenas uma das mensagens SEI de temporização de imagem ou em mensagens SEI de temporização de sub-imagem, 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 sub- imagem estão presentes nas mensagens SEI de temporização de imagem e nenhuma mensagem SEI de temporização de sub-imagem está presente. O indicador igual a 0 indica que os parâmetros de retardo de remoção de CPB de nível de sub- imagem estão presentes nas mensagens SEI de temporização de sub-imagem 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 sub-imagem.
[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 tempos de remoção CPB em um nível AU ou um nível de sub-imagem.
[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 geralmente inclui uma especificação quanto a um 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 buffer de imagem codificada (CPB) e o buffer de imagem decodificada (DPB). CPB é um buffer de primeiro a entrar e primeiro a sair contendo unidades de acesso na ordem de decodificação especificadas por HRD. O DPB é um buffer 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 específica matematicamente os comportamentos do CPB e DPB. HRD pode impor diretamente restrições aos parâmetros diferentes incluindo temporizações, tamanhos de buffer, 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 tempo mais cedo possível para envio de uma imagem decodificada particular é igual ao tempo de decodificação dessa imagem em particular mais o tempo necessário para se decodificar essa imagem em particular. Isso é, o tempo anterior para envio da imagem decodificada é o tempo 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 tempos de remoção CPB, também conhecidos como tempos de decodificação. A seguir são descritos alguns desses problemas.
[0043] Os tempos de remoção CPB de unidade de decodificação podem não ser resilientes a erro quando os tempos 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 tempo de remoção pode ser determinado para cada DU em uma AU. Um tempo 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 tempo de remoção CPB para a AU propriamente dita, que também corresponde ao tempo de remoção CPB para a última DU dentro da AU.
[0044] O buffer de imagem codificada pode operar em dois níveis: um nível de unidade de acesso e um nível de sub-imagem. Quando o CPB opera no nível de sub-imagem (isso é, quando SubPicCpbFlag é igual a 1), a sinalização e derivação dos tempos 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 tempo 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 tempo 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 tempos 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 tempo 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 tempo de remoção 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 tempos de remoção CPB de todas as outras DUs na AU atual se baseia no tempo de remoção CPB da DU anterior na ordem de decodificação. Dessa forma, se a perda acima ocorrer, o tempo 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 tempo de remoção de armazenamento de imagem codificada para uma DU de uma AU que é independente dos tempos 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 tempos de remoção 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 tempo de remoção CPB de uma próxima DU em uma ordem de decodificação na AU ou um tempo 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 tempos 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 tempos de remoção CPB é que a informação de temporização nas mensagens SEI de temporização de sub-imagem podem não ser utilizadas apesar de estarem presentes. Por exemplo, as mensagens SEI de temporização de sub-imagem, transportando informação de retardo de remoção CPB DU, podem estar presentes. No entanto, a operação CPB de nível de sub- imagem é 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 sub-imagem. Dessa forma, os bits utilizados para representar as mensagens SEI de temporização de sub-imagem podem ser desperdiçadas. Adicionalmente, o retardo de remoção CPB DU sinalizado em uma mensagem SI de temporização de sub-imagem é a diferença entre o tempo de remoção CPB da DU associada e o tempo 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 ter um valor significativo.
[0048] No entanto, as técnicas são fornecidas nessa descrição para especificar a derivação de tempo 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 sub-imagem. 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 sub-imagem, 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 sub- imagem, 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 tempos de remoção CPB é que os parâmetros CPB do nível de sub-imagem nas mensagens SI de temporização de imagem e mensagens SEI de temporização de sub-imagem podem estar presentes para a mesma funcionalidade. Essa funcionalidade pode ser fornecida para suportar a operação CPB com base em sub- imagem. 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 sub- imagem, 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 sub-imagem em apenas uma das mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de sub-imagem, 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 sub- imagem, tal como parâmetros de retardo de remoção CPB de nível de sub-imagem, em uma mensagem SEI de temporização de imagem, ou em uma mensagem SEI de temporização de sub- imagem.
[0050] Outra questão associada com os métodos existentes para sinalização e derivação dos tempos 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 sub-imagem 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 tempos 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 tempo 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 tempos de remoção CPB está no processo de derivação de tempo de remoção CPB, quando sub_pic_cpb_params_present_flag é igual a 1, a derivação do tempo de remoção CPB utiliza os tempos de chegada finais e os tempos de remoção 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 sub-imagem). No entanto, esses valores usados para tempos de chegada final e tempos 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 tempos de remoção CPB em um nível AU ou um nível de sub-imagem. Por exemplo, o decodificador deriva os tempos de chegada CPB e tempos de remoção nominal para ambos o nível AU e o nível de sub- imagem independentemente do valor de SubPicCpbFlag, enquanto o decodificador deriva os tempos de remoção CPB apenas para o nível AU quando SubPicCpbFlag é igual a 0 e apenas para o nível de sub-imagem quando SubPicCpbFlag é igual a 1, de acordo com as técnicas descritas aqui. Como descrito aqui, um tempo de remoção nominal CPB pode ser um valor padrão para o tempo de remoção CPB. Em alguns exemplos com condições típicas, o tempo de remoção CPB é igual ao tempo de remoção nominal CPB. No entanto, sob determinadas condições existem os mesmos são diferentes e o tempo de remoção 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 tempo de remoção de buffer 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 escalabilidade temporal adequada.
[0056] Tais técnicas podem incluir, por exemplo, a determinação de um tempo de remoção de armazenamento de imagem codificada para uma unidade de decodificação (DU) de uma unidade de acesso (AU) que é independente dos tempos de remoção de qualquer outra unidade de acesso. Por exemplo, os tempos de remoção CPB para uma DU de uma AU serão sinalizados com base em uma duração entre uma DU atual e um tempo de remoção CPB de uma próxima DU em uma ordem de decodificação na AU ou um tempo 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 sub-imagem em apenas uma das mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de sub-imagem 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 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 tempos de remoção CPB em um nível AU ou um nível de sub-imagem.
[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 de origem 12 que gera os dados de vídeo codificados a serem decodificados posteriormente por um dispositivo de destino 14. O dispositivo de origem 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 de origem 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio.
[0059] No exemplo da figura 1, o dispositivo de origem 12 inclui uma fonte de vídeo 18, um codificador de vídeo 20, e uma interface de saída 22. Em alguns casos, a interface de saída 22 pode incluir um modulador/demodulador (modem) e/ou um transmissor. No dispositivo de origem 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 de origem 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 de origem 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 de origem 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 de origem 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 de origem 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 de origem 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ídeo-telefonia.
[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 intra-predição, HM pode fornecer tanto quanto trinta e três modos de codificação de intra- prediçã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 predição (PUs) e unidades de transformada (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 intra-predição, ou codificada no modo de inter-prediçã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 transformadas 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 transformada (TUs). Os valores de diferença de pixel associados com as TUs podem ser transformados para produzir coeficientes de transformada, que podem ser quantizados.
[0073] Em geral, uma PU inclui dados relacionados com o processo de predição. Por exemplo, quando a PU é codificada por intra-modo, a PU pode incluir dados descrevendo um modo de intra-predição para a PU. Como outro exemplo, quando a PU for codificada por inter-modo, 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 transformada e quantização. Uma determinada CU possuindo uma ou mais PUs também pode incluir uma ou mais unidades de transformada (TUs). Depois da prediçã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 transformada, quantizados e digitalizados utilizando-se as transformadas e outra informação de transformada especificada nas TUs para produzir os coeficientes de transformada 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 transformada 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 prediçã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 intra-predição em tamanhos de PU de 2N x 2N ou N x N, e inter-prediçã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 inter- prediçã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 intra-predição ou inter-predição utilizando as PUs de uma CU, o codificador de vídeo 20 pode calcular os dados residuais aos quais as transformadas 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 prediçã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 transformada.
[0079] Seguindo quaisquer transformadas para produção de coeficientes de transformada, o codificador de vídeo 20 pode realizar a quantização dos coeficientes de transformada. A quantização geralmente se refere a um processo no qual os coeficientes de transformada 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 transformada 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 transformada 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 buffer 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 sub-clá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 sub- clá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 sub-clá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 tempos 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 tempos de chegada e tempos de remoção de buffer de imagem codificada podem ser baseados em dois níveis: um nível de unidade de acesso e um nível de sub- imagem. 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 tempo de chegada CPB e um tempo de remoção nominal CPB para ambos o nível de unidade de acesso e o nível de sub-imagem 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 tempos 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 tempos 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 tempos de remoção CPB para o nível de sub-imagem 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 tempos de remoção CPB apenas para o nível de sub-imagem 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 tempo de chegada CPB e o tempo 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 sub-imagem estão presentes e CPB pode operar no nível AU ou nível de sub-imagem. 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 sub-imagem estão presentes e CPB pode operar no nível de unidade de acesso ou nível de sub-imagem, e quando sub_pic_cpb_params_present_flag é igual a 0, os parâmetros de retardo de remoção CPB de nível de sub-imagem 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 tempos 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 tempos 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 sub-imagem. 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 sub-imagem. Por exemplo, os parâmetros CPB de nível de sub-imagem podem ser uma mensagem SEI de temporização de sub-imagem 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 sub-imagem. 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 sub- imagem nas mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de sub-imagem.
[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 sub-imagem, tal como os parâmetros de retardo de remoção CPB de nível de sub- imagem, em uma dentre uma mensagem SEI de temporização de imagem ou uma mensagem SEI de temporização de sub-imagem. 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 sub-imagem estão presentes na mensagem SEI de temporização de imagem ou uma mensagem SEI de temporização de sub-imagem.
[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 sub-imagem de uma mensagem SI de temporização de imagem ou uma mensagem SEI de temporização de sub-imagem 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 sub-imagem 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 buffer 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 escalabilidade 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 inter- codificação de blocos de vídeo dentro de fatias de vídeo. A intracodificação se baseia em prediçã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 inter- codificação se baseia na prediçã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 intra- modo (modo I) pode se referir a qualquer um dos vários modos de compressão com base espacial. Os inter-modos, tal como a predição unidirecional (modo P) ou prediçã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 predição 41, somador 50, unidade de processamento de transformada 52, unidade de quantização 54, e unidade de codificação por entropia 56. A unidade de processamento de predição 41 inclui a unidade de estimativa de movimento 42, a unidade de compensação de movimento 44, e a unidade de processamento de prediçã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, a unidade de processamento de transformada inversa 60, o somador 62, a unidade de filtro 64, e um buffer de imagem decodificada (DPB) 66. O buffer 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 prediçã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 inter-codificaçã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 predição 41 pode fornecer o bloco intra ou inter-codificado 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 intra- predição 46, encontrada dentro da unidade de processamento de predição 41, pode realizar a codificação intra-predita 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 predição 41 realiza a codificação intra-predita do bloco de vídeo atual com relação a um ou mais blocos de prediçã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 inter- prediçã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 predição dentro de uma imagem de referência.
[0106] Um bloco de prediçã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 sub- inteiro das imagens de referência armazenadas no buffer 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 inter-codificada pela comparação da posição da PU com a posição de um bloco de prediçã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 buffer 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 predição com base no vetor de movimento determinado pela estimativa de movimento, possivelmente realizando interpolações para a precisão de sub-pixel. 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 prediçã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 prediçã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 intra- predição 46 pode intra-predizer um bloco atual, como uma alternativa para a inter-prediçã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 intra-predição 46 pode determinar um modo de intra-predição para uso para codificação de um bloco atual. Em alguns exemplos, a unidade de processamento de intra-predição 46 pode codificar um bloco atual utilizando vários modos de intra-predição, por exemplo, durante passagens de codificação separadas, e a unidade de processamento de intra-predição 46 (ou unidade de seleção de modo 40, em alguns exemplos) pode selecionar um modo de intra-predição adequado para uso a partir dos modos testados. Por exemplo, a unidade de processamento de intra- prediçã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 intra-predição testados, e selecionar o modo de intra-prediçã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 intra-predição 46 pode calcular as razões das distorções ou taxas para vários blocos codificados para determinar qual modo de intra- prediçã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 intra-predição para um bloco, a unidade de processamento de intra-predição 46 pode fornecer informação indicativa do modo de intra-prediçã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 intra-prediçã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 intra-predição e uma pluralidade de tabelas de índice de modo de intra- prediçã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 intra-predição mais provável, uma tabela de índice de modo de intra-predição, e uma tabela de índice de modo de intra- predição modificada para uso para cada um dos contextos.
[0111] Depois da unidade de processamento de predição 41 gerar o bloco de predição para o bloco de vídeo atual através de inter-predição ou intra-predição, o codificador de vídeo 20 forma um bloco de vídeo residual pela subtração do bloco de prediçã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 transformada 52. A unidade de processamento de transformada 52 transforma os dados de vídeo residuais em coeficientes de transformada residuais utilizando uma transformada, tal como a transformada de cosseno discreto (DCT) ou uma transformada conceitualmente similar. A unidade de processamento de transformada 52 pode converter os dados de vídeo residuais de um domínio de pixel em um domínio de transformada, tal como um domínio de frequência.
[0112] A unidade de processamento de transformada 52 pode enviar os coeficientes de transformada resultantes para a unidade de quantização 54. A unidade de quantização 54 quantiza os coeficientes de transformada para reduzir 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 transformada 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 transformada 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 transformada inversa 60 aplicam a quantização inversa e a transformada 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 prediçã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 sub-inteiro para uso na estimativa de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição de movimento compensado produzido pela unidade de compensação de movimento 44 para produzir um bloco de referência para armazenamento no buffer 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 inter-predizer 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 buffer 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 predição 41 pode utilizar uma imagem de referência que contém os blocos de codificação reconstruídos para realizar a inter-predição das PUs das outras imagens. Adicionalmente, a unidade de processamento intra-predição 46 pode utilizar blocos de codificação reconstruídos no buffer de imagem decodificada 66 para realizar a intra-prediçã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 tempos 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 prediçã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 predição 41 pode implementar os exemplos descritos acima. Em alguns outros exemplos, a unidade de processamento de prediçã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 predição 81, uma unidade de quantização inversa 86, uma unidade de transformada inversa 88, um somador 90, e um buffer de imagem decodificada (DPB) 92. A unidade de processamento de predição 81 inclui a unidade de compensação de movimento 82 e a unidade de processamento de intra-predição 84. Um buffer 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 buffer 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 tempos 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 prediçã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 intra-codificada (I), a unidade de processamento de intra-predição 84 da unidade de processamento de predição 81 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual com base em um modo de intra- predição sinalizado e dados dos blocos decodificados previamente do quadro ou imagem atual. Quando o quadro de vídeo é codificado como uma fatia inter-codificada (isso é, B, P ou GPB), a unidade de compensação de movimento 82 da unidade de processamento de predição 81 produz blocos de prediçã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 prediçã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 buffer de imagens decodificadas 92.
[0123] A unidade de compensação de movimento 82 determina a informação de prediçã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 predição para produzir os blocos de prediçã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 predição (por exemplo, intra ou inter-predição) utilizado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de inter-prediçã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 inter- codificado da fatia, situação de inter-predição para cada bloco de vídeo inter-codificado 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 sub-inteiros 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 predição.
[0125] A unidade de quantização inversa 86 quantiza de forma inversa, isso é, desquantiza, os coeficientes de transformada 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 transformada inversa 88 aplica uma transformada inversa, por exemplo, uma DCT inversa, uma transformada de inteiro inversa, ou um processo de transformada inversa conceitualmente similar, aos coeficientes de transformada 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 prediçã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 transformada inversa 88 com os blocos de prediçã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 prediçã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 predição 81 pode implementar os exemplos descritos acima. Em alguns outros exemplos, a unidade de processamento de prediçã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 buffer de imagem codificada (CPB) 94. O decodificador de vídeo 30 pode extrair DUs e AUs do CPB 94 em tempos 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 tempo 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 sub-clá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 tempos 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 tempos 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 sub-cláusula C.1 de WD8 HEVC.
[0136] Nos exemplos descritos aqui, o tempo no qual o primeiro bit da unidade de decodificação m começa a entrar em CPB 94 é referido como tempo de chegada inicial tai(m). O tempo 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 tempo 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 tempo de chegada inicial para a unidade de decodificação m é igual ao tempo 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 tempo 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 tempo 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: Com tr,n(m) sendo o tempo de remoção nominal da unidade de decodificação m de CPB 94.
[0139] O tempo de chegada final para a unidade de decodificação m é derivado com a equação 4: 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 tempo 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 tempo tai(m). Do contrário, s o novo valor de CpbSize[SchedSelIdx] entrar em efeito no tempo 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 tempo 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 tempo de chegada CPB inicial da unidade de acesso n, tai(n), é configurado para o tempo de chegada CPB inicial da primeira unidade de decodificação na unidade de acesso n. O tempo de chegada CPB final da unidade de acesso n, taf(m) é determinado para o tempo 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 tempos de chegada CPB inicial e final da unidade de acesso n são os tempos 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 tempos 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 sub-cláusula C.1 do Anexo C de WD8 HEVC.
[0147] A variável CpbRemovalDelay(m), relevante para o tempo 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 sub-imagem associada com a unidade de decodificação m. A mensagem SEI de temporização de sub-imagem pode ser selecionada como especificado na sub-clá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 sub-clá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 sub-clá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 tempo 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 tempo de remoção nominal da unidade de acesso 0, do CPB 94, tr,n(0) é especificado pela equação 5:
[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 tempo 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 tempo 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, sub-clá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 tempo 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 tempo de remoção nominal da primeira unidade de acesso do período de armazenamento atual.
[0152] Quando sub_pic_cpb_params_present_flag é igual a 1, o tempo de remoção nominal para remoção da unidade de decodificação m de CPB 94 é especificado como segue, onde tr,n(n) é o tempo 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 tempo 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 tempo 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 tempo 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 tempo 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 tempo de chegada final e o tempo 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) ou
[0154] Quando SubPicCpbFlag é igual a 1, o tempo 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 tempo 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 tempo de remoção da unidade de decodificação m é especificado pela equação 10. Do contrário, se a unidade de decodificação m fora última unidade de decodificação da unidade de acesso n, o tempo 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 tempo de remoção nominal.
[0156] No tempo 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. 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 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. 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 para os 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 tempo 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 tempo 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 tempo 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 tempo 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 tempo 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 tempo 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 tempos 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 sub-imagem (ver sub-clá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 tempo 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 sub-imagem, 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 tempo 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 tempo 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 tempo 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 sub-imagem, 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 tempo de remoção para a última DU é o mesmo que o tempo de remoção para a AU correspondente.
[0190] Alternativamente, na semântica de au_cpb_removal_delay_minus1, du_common_cpb_removal_delay_minus1 e du_cpb_removal_delay_minus1[i] especificam o retardo/diferença/duração entre os "tempos 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 sub-imagem. A mensagem SEI de temporização de sub-imagem 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 sub-imagem ilustrativa são como segue: Tabela 3: Sintaxe de mensagem SEI de temporização de sub- imagem.
[0192] O seguinte se aplica à sintaxe e à semântica da mensagem SEI de temporização de sub-imagem. 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 sub-imagem se aplica.
[0193] A presença da mensagem SEI de temporização de sub-imagem 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 sub-imagem 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 sub-imagem 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 sub-imagem aplicáveis aos pontos de operação especificados.
[0194] A unidade de decodificação associada com uma mensagem SEI de temporização de sub-imagem consiste, na ordem de decodificação, da unidade NAL SI contendo a mensagem SEI de temporização de sub-imagem, seguida por uma ou mais unidades NAL que não contêm uma mensagem SEI de temporização de sub-imagem, 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 sub-imagem. 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 sub-imagem (ver sub-clá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 sub-imagem e a unidade de decodificação associada com a mensagem SEI de temporização de sub-imagem. Esse valor também pode ser utilizado para calcular um tempo 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 sub-imagem é 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 sub-imagem (ver sub-clá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 sub-imagem e a DU associada com a mensagem SEI de temporização de sub- imagem. Esse valor também pode ser utilizado para calcular um tempo 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 sub-imagem é 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 sub-imagem é 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 sub-imagem 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 sub- imagem do CPB 94. Esse valor também pode ser utilizado para calcular um tempo 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. 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 sub-imagem estão presentes nas mensagens SEI de temporização de imagem e nenhuma mensagem SEI de temporização de sub-imagem 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 sub-imagem estão presentes nas mensagens SEI de temporização de sub-imagem 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 sub-imagem.
[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 sub- imagem estão presentes e o CPB pode operar no nível de unidade de acesso ou no nível de sub-imagem. 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 sub- imagem 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 tempos de decodificação de acordo com as técnicas descritas nessa descrição. Os tempos de remoção 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 buffer 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 tempos determinados. Os tempos de extração de uma AU ou DU do CPB 94 são referidos como tempos de remoção de CPB. Como ilustrado na figura 4, os tempos de remoção CPB para DUs 110 na AU 100 são tempos de remoção CPB 140-1, 140-2, 1403, e 140-4 (referidos coletivamente como "tempos de remoção CPB 140"). Da mesma forma, os tempos de remoção CPB para DUs 112 na AU 102 são tempos de remoção CPB 142-1, 142-2, 142-3 e 142-4 (referidos coletivamente como "tempos de remoção de CPB 142"). O tempo de remoção de CPB de uma AU pode ser igual ao tempo de remoção CPB da última DU da AU. Por exemplo, o tempo de remoção DPB da AU 100 é quase igual ao tempo de remoção CPB da DU 110-4, tempo de remoção CPB 140-4.
[0205] Em um exemplo, para cada DU 112 na AU 102, a duração entre os tempos 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 tempo de remoção CPB 142-2 para DU 112-2 e tempo 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 tempo 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 tempo de remoção CPB para cada DU 112 na unidade de acesso 102 com base nos tempos de remoção para DU 112 dentro da AU 102 e não em qualquer tempo 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 tempos de remoção CPB das DUs e AUs.
[0206] O tempo 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 tempo de remoção CPB 142-2 para a DU 112-2 e o tempo 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 tempo de remoção de CPB 142-2 para a DU 112-2 com base no tempo 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 tempos de remoção de CPB para DUs de outras DUs dentro da mesma AU. Dessa forma, os tempos 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 tempos de remoção CPB de uma AU atual. Por exemplo, a perda de tempos de remoção CPB 140 para AU 100 não afetam a determinação dos tempos 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 tempos de remoção de CPB das DUs e AUs.
[0208] O decodificador de vídeo 30 também pode determinar os tempos de remoção CPB com base pelo menos em parte nos parâmetros de CPB de nível de sub-imagem transportados nas mensagens SEI de temporização de sub- imagem. Em tal exemplo, a sinalização dos tempos de remoção CPB e derivação de tempos 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 sub-imagem nas mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de sub-imagem, 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 sub-imagem de qual tipo de mensagem SEI para operações CPB de nível de sub-imagem. Quando sub_pic_cpb_params_present_flag é igual a 1, os tempos de chegada CPB e os tempos de remoção CPB para ambos o nível de AU e nível de sub-imagem 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 tempo de remoção de buffer de imagem codificada (CPB) de uma primeira unidade de decodificação em uma unidade de acesso com base no tempo 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 tempos 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 tempo 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 tempo 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 tempo 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 sub-imagem, onde a determinação do tempo de remoção da primeira DU compreende a determinação do tempo 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 sub- imagem. A decodificação dos parâmetros CPB de nível de sub- imagem pode incluir a decodificação de uma mensagem de informação de melhoria suplementar de temporização de sub- imagem (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 sub-imagem inclui a decodificação da duração entre um tempo de remoção da última DU e o tempo de remoção da primeira DU na mensagem SEI de temporização de sub-imagem. 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 sub-imagem nas mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de sub-imagem. 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 sub- imagem 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 sub-imagem. 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 sub-imagem estão presentes em uma mensagem SEI de temporização de sub-imagem, o decodificador de vídeo 30 pode decodificar a mensagem SEI de temporização de sub- imagem para analisar os parâmetros CPB de nível de sub- imagem.
[0215] Em alguns exemplos, a determinação do tempo de remoção da primeira DU inclui a determinação do tempo 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 tempo de chegada CPB e um tempo de remoção nominal CPB para a AU em ambos um nível de unidade de acesso e um nível de sub-imagem 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 tempo de chegada CPB ou o tempo de chegada nominal CPB para a AU em ambos os níveis de unidade e sub-imagem, 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 tempo de chegada CPB e um tempo de remoção nominal CPB para a AU em ambos o nível de unidade de acesso e um nível de sub-imagem 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 tempos 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 tempos de remoção CPB padrão nível AU pode incluir a derivação dos tempos 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 tempo de chegada de CPB e o tempo de remoção nominal CPB compreende a derivação do tempo de chegada CPB e o tempo 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 sub-imagem estão presentes e o CPB pode operar no nível de unidade de acesso ou nível de sub- imagem.
[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 sub-imagem estão presentes e o CPB pode operar no nível de unidade de acesso ou nível de sub-imagem, 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 sub-imagem 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 sub- imagem estão presentes e o CPB pode operar no nível de AU ou no nível de sub-imagem, e o método pode incluir adicionalmente a determinação de que a variável subPicParamsPresentFlag é igual a 0, derivando um tempo de chegada inicial de AU e um tempo de chegada final de AU, determinando que a variável subPicParamsPresentFlag é igual a 1, e derivando um tempo de chegada inicial DU e um tempo de chegada final DU para decodificação de unidades dentro da unidade de acesso.
[0221] Os tempos de remoção CPB para o nível de sub-imagem também podem ser derivados quando o elemento de sintaxe indica que a DU não é uma AU. A derivação dos tempos de remoção CPB para o nível de sub-imagem pode incluir a derivação dos tempos de remoção CPB apenas para o nível de sub-imagem quando o elemento de sintaxe indica que a DU não é uma AU. Por exemplo, o decodificador de vídeo 30 pode derivar os tempos de remoção CPB para o nível de sub- imagem 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 tempo de remoção de buffer de imagem codificada (CPB) de uma primeira unidade de decodificação em uma unidade de acesso com base no tempo 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 tempo 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 tempo de remoção de CPB para a AU. Em alguns exemplos, os tempos 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 tempo de remoção de CPB para a AU pode ser igual ao tempo de remoção de CPB para a última DU na AU. Dessa forma, o codificador de vídeo 20 pode determinar o tempo de remoção de CPB da segunda DU com base no tempo de remoção de CPB programado da AU. Em alguns exemplos, a determinação do tempo de remoção de CPB da segunda DU com base no tempo 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 tempo 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 tempo 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 tempo de remoção de CPB da primeira DU e o tempo 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 tempo de remoção do CPB para a primeira DU com base em um tempo 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 tempos 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 sub-imagem. Por exemplo, o método pode incluir adicionalmente a codificação de parâmetros de CPB de nível de sub-imagem, 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 sub-imagem. A codificação dos parâmetros de CPB de nível de sub-imagem 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 sub-imagem compreende adicionalmente a codificação de duração determinada na mensagem SEI de temporização de sub-imagem.
[0227] Nos exemplos onde a segunda DU é uma última DU na AU na ordem de decodificação, a codificação da mensagem SEI de sub-imagem inclui a codificação da duração entre um tempo de remoção da última DU e o tempo de remoção da primeira DU na mensagem SEI de temporização de sub- imagem. 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 sub-imagem nas mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de sub-imagem. Em alguns exemplos, determinando o tempo de remoção da primeira DU inclui a determinação do tempo 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 tempo de chegada CPB e um tempo de remoção nominal CPB para a AU em ambos um nível de unidade de acessão e um nível de sub-imagem 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 tempo de chegada CPB e um tempo de remoção nominal CPB para a AU em ambos um nível de unidade de acesso e um nível de sub-imagem 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 tempos 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 tempos de remoção de CPB para o nível AU pode incluir a derivação dos tempos 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 tempo de chegada CPB e o tempo 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 sub-imagem estão presentes e o CPB pode operar no nível de unidade de acesso ou nível de sub-imagem.
[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 sub-imagem estão presentes e CPB pode operar no nível de unidade de acesso ou nível de sub-imagem, 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 sub-imagem 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 sub-imagem estão presentes e o CPB pode operar no nível de AU ou nível de sub-imagem, e o método pode incluir adicionalmente a configuração da variável subPicParamsPresentFlag igual a 0, derivando um tempo de chegada inicial AU e um tempo de chegada final AU, configurado a variável subPicParamsPresentFlag igual a 1, e derivando um tempo de chegada inicial DU e um tempo de chegada final DU para unidades de decodificação dentro da unidade de acesso.
[0234] Os tempos de remoção CPB para o nível de sub-imagem também podem ser derivados quando o elemento de sintaxe indica que a DU não é uma AU. A derivação dos tempos de remoção CPB para o nível de sub-imagem pode incluir a derivação dos tempos de remoção CPB apenas para o nível de sub-imagem quando o elemento de sintaxe indica que a DU não é uma AU. Por exemplo, o codificador de vídeo 20 pode derivar os tempos de remoção CPB para o nível de sub- imagem 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 tempo de remoção CPB da primeira DU com base pelo menos em parte na mensagem SEI de temporização de sub-imagem 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 sub-imagem 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 sub-imagem 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 tempos de remoção determinados. Por exemplo, o decodificador de vídeo 30 pode decodificar a mensagem SEI de temporização de sub-imagem 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 sub- imagem na mensagem SEI de temporização de sub-imagem 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 sub-imagem, onde a determinação do tempo de remoção CPB da primeira DU é adicionalmente baseado pelo menos em parte nos parâmetros CPB de nível de sub-imagem. 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 sub-imagem são encontrados na mensagem SEI de temporização de sub-imagem 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 sub-imagem ou a mensagem SEI de temporização de imagem para decodificar os parâmetros CPB de nível de sub-imagem.
[0238] Nos exemplos nos quais o indicador de nível de sequência indica que os parâmetros CPB de nível de sub-imagem devem estar presentes na mensagem SEI de temporização de sub-imagem, a decodificação de parâmetros CPB de nível de sub-imagem pode incluir a decodificação da mensagem SEI de temporização de sub-imagem 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 sub-imagem pode compreender adicionalmente a decodificação da duração entre um tempo de remoção da última DU e o tempo de remoção da primeira DU na mensagem SEI de temporização de sub-imagem.
[0239] O método inclui adicionalmente a decodificação d e uma duração entre a remoção do buffer 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 sub-imagem, onde a duração está na mensagem SEI de temporização de sub-imagem (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 buffer 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 sub-imagem.
[0240] O método inclui também a 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 sub-imagem (304). O decodificador de vídeo 30 pode extrair a primeira DU para decodificação do CPB 94 no tempo 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 tempo de remoção da primeira DU compreende a determinação do tempo 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 tempo de remoção de buffer 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 tempo de remoção de buffer de imagem codificada para uma DU de uma AU que é independente dos tempos d remoção de qualquer outra unidade de acesso. Por exemplo, os tempos de remoção CPB para uma DU de uma AU serão sinalizados com base em uma duração entre um tempo de remoção CPB de uma próxima DU em uma ordem de decodificação na AU ou uma duração entre o tempo 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 sub-imagem em apenas uma das mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de sub-imagem 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 tempos de remoção CPB em um nível AU ou um nível de sub-imagem.
[0245] A figura 8 é um fluxograma ilustrando outro método para derivação de um tempo de remoção CPB da primeira DU com base pelo menos em parte na codificação de uma mensagem SEI de temporização de sub-imagem 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 tempo de remoção do buffer de imagem codificada (CPB) de uma primeira unidade de decodificação (DU) e uma unidade de acesso (AU) e o tempo 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 tempo de remoção CPB programado para a primeira DU a partir de um tempo 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 sub-imagem associada com a AU (312). Por exemplo, o codificador de vídeo 20 pode codificar uma duração entre a remoção do buffer 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 sub-imagem 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 sub-imagem 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 sub- imagem na mensagem SEI de temporização de sub-imagem 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 sub-imagem, onde a determinação do tempo de remoção CPB da primeira DU é adicionalmente baseado pelo menos em parte nos parâmetros CPB de nível de sub-imagem. 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 sub- imagem na mensagem SEI de temporização de sub-imagem 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 sub-imagem 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 sub-imagem devem estar presentes na mensagem SEI de temporização de sub-imagem, a codificação de parâmetros CPB de nível de sub-imagem pode incluir a codificação da mensagem SEI de temporização de sub-imagem 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 sub-imagem pode compreender adicionalmente a codificação da duração entre um tempo de remoção da última DU e o tempo de remoção da primeira DU na mensagem SEI de temporização de sub-imagem.
[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 tempo de remoção da primeira DU compreende a determinação do tempo 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 buffer de imagem codificada de nível de sub-imagem 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 sub-imagem para uma DU de uma AU em uma mensagem SEI de temporização de imagem ou uma mensagem SEI de temporização de sub-imagem 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 sub-imagem. 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 sub-imagem. 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 sub-imagem estão presentes em apenas uma dentre a mensagem SEI de temporização de imagem ou a mensagem SEI de temporização de sub-imagem.
[0254] O método pode incluir adicionalmente a decodificação de um ou mais parâmetros CPB de nível de sub- imagem a partir da mensagem SEI de temporização de imagem ou a mensagem SEI de temporização de sub-imagem 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 sub-imagem 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 sub-imagem. 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 sub-imagem estão presentes na mensagem SEI de temporização de sub-imagem, o decodificador de vídeo 30 decodifica a mensagem SEI de temporização de sub-imagem para determinar um ou mais parâmetros CPB de nível de sub-imagem.
[0255] O método pode incluir adicionalmente a determinação de um tempo de remoção CPB da DU com base pelo menos em parte em um ou mais parâmetros CPB de nível de sub-imagem. Em alguns exemplos, a determinação do tempo de remoção CPB da DU compreende a determinação do tempo 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 sub- imagem estão presentes na mensagem SEI de temporização de sub-imagem, a decodificação dos parâmetros CPB de nível de sub-imagem pode incluir a decodificação da mensagem SEI de temporização de sub-imagem associada com a DU. Em outro exemplo, o método pode incluir a derivação de pelo menos um dentre um tempo de chegada CPB e um tempo de remoção nominal CPB para a AU em ambos o nível de unidade de acesso e um nível de sub-imagem 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 tempo de chegada CPB e um tempo de remoção nominal CPB para a AU em ambos o nível de unidade de acesso e um nível de sub-imagem.
[0257] Em outro exemplo, a DU é uma primeira DU, e o método inclui adicionalmente a derivação de um tempo de remoção CPB da primeira DU com base pelo menos em parte nos parâmetros CPB de nível de sub-imagem e decodificação de uma duração entre o tempo de remoção CPB de uma segunda DU da AU na ordem de decodificação e o tempo 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 tempos 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 buffer de imagem codificada de nível de sub-imagem 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 sub-imagem (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 sub-imagem (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 sub-imagem. Alternativamente, o codificador de vídeo 20 pode codificar a mensagem SEI de temporização de sub-imagem no um ou mais parâmetros CPB de nível de sub-imagem.
[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 sub-imagem para uma DU de uma AU em uma mensagem SEI de temporização de imagem ou mensagem SEI de temporização de sub-imagem 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 sub-imagem. 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 sub-imagem em apenas uma dentre a imagem SEI de temporização de imagem ou a mensagem SEI de temporização de sub-imagem.
[0263] O método pode incluir adicionalmente a determinação de um tempo de remoção CPB da DU com base pelo menos em parte em um ou mais parâmetros CPB de nível de sub-imagem. Em alguns exemplos, a determinação do tempo de remoção CPB da DU compreende a determinação do tempo 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 sub-imagem compreende adicionalmente a codificação de um ou mais parâmetros CPB de nível de sub-imagem na mensagem SEI de temporização de sub-imagem 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 sub-imagem estão presentes na mensagem SEI de temporização de sub-imagem. Em outro exemplo, a codificação de um ou mais parâmetros CPB de nível de sub-imagem compreende adicionalmente a codificação de um ou mais parâmetros CPB de nível de sub-imagem 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 sub-imagem 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 tempo de remoção CPB da primeira DU com base pelo menos em parte nos parâmetros CPB de nível de sub-imagem e codificando uma duração entre o tempo de remoção CPB de uma segunda DU da AU na ordem de decodificação e o tempo 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 tempos 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 3, por exemplo.
[0269] O método inclui a decodificação de uma duração entre a remoção do buffer 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 tempo 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 tempo de remoção (504). Por exemplo, o decodificador de vídeo 30 determina um tempo 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 tempo 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 sub-imagem, onde a determinação do tempo de remoção da primeira DU compreende a determinação do tempo 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 sub- imagem. A decodificação de um ou mais parâmetros CPB de nível de sub-imagem pode incluir adicionalmente a decodificação de uma mensagem de informação de melhoria suplementar (SEI) de temporização de sub-imagem 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 sub-imagem inclui a decodificação da duração entre um tempo de remoção da última DU e o tempo de remoção da primeira DU na mensagem SEI de temporização de sub-imagem. 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 sub- imagem nas mensagens SEI de temporização de imagem, ou nas mensagens SEI de temporização de sub-imagem.
[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 tempo de chegada CPB e um tempo de remoção nominal CPB para a AU em ambos o nível de unidade de acesso e um nível de sub-imagem 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 tempo 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 tempo de remoção CPB da primeira DU e o tempo de remoção CPB determinado da segunda DU (512). A determinação da duração entre o tempo de remoção CPB da primeira DU e o tempo de remoção CPB determinado da segunda DU pode ser baseada em um tempo 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 sub-imagem, onde a determinação da duração determinada da primeira DU compreende a determinação do tempo 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 sub-imagem. A codificação de um ou mais parâmetros CPB de nível de sub-imagem pode incluir adicionalmente a codificação de uma mensagem SEI de temporização de sub- imagem 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 sub-imagem inclui a codificação de duração entre um tempo de remoção da última DU e o tempo de remoção da primeira DU na mensagem SEI de temporização de sub- imagem. 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 sub-imagem nas mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de sub-imagem.
[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 tempo de chegada CPB e um tempo de remoção nominal CPB para a AU em ambos um nível de unidade de acesso e um nível de sub- imagem 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 tempo 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 sub- imagem. A determinação do tempo de remoção da primeira DU pode incluir adicionalmente a determinação do tempo de remoção da primeira DU com base, pelo menos em parte, na duração decodificada e parâmetros CPB de nível de sub- imagem. A decodificação de um ou mais parâmetros CPB de nível de sub-imagem pode incluir adicionalmente a decodificação de uma mensagem SEI de temporização de sub- imagem 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 tempo 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 sub- imagem inclui adicionalmente a decodificação da duração entre um tempo de remoção da última DU e o tempo de remoção da primeira DU na mensagem SEI de temporização de sub- imagem.
[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 sub- imagem nas mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de sub-imagem. O método também pode incluir a derivação de pelo menos um dentre um tempo de chegada CPB e um tempo de remoção nominal CPB para a AU em ambos o nível de unidade de acesso e um nível de sub-imagem 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 tempo de remoção CPB da primeira DU na AU e o tempo 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 tempo 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 buffer 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 tempo de remoção da primeira e segunda DUs. O tempo de remoção da primeira DU pode ser subtraído do tempo 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 sub-imagem. A determinação do tempo de remoção da primeira DU pode incluir adicionalmente a determinação do tempo de remoção da primeira DU com base pelo menos em parte nos parâmetros CPB de nível de sub-imagem e duração codificada. A codificação de um ou mais parâmetros CPB de nível de sub- imagem pode incluir adicionalmente a codificação de uma mensagem SEI de temporização de sub-imagem 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 tempo 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 sub-imagem inclui adicionalmente a codificação da duração entre um tempo de remoção da última DU e o tempo de remoção da primeira DU na mensagem SEI de temporização de sub-imagem.
[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 sub- imagem nas mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de sub-imagem. O método também pode incluir a derivação de pelo menos um dentre o tempo de chegada CPB e um tempo de remoção nominal CPB para a AU em ambos um nível de unidade de acesso e um nível de sub-imagem 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 tempos de remoção nominal e chegada de buffer 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 tempo de chegada CPB e um tempo de remoção nominal CPB para uma AU em ambos um nível de unidade de acesso e um nível de sub-imagem 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 tempo de remoção 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 tempo de remoção CPB apenas para o nível de sub-imagem. Em alguns exemplos, pelo menos um dentre um tempo de chegada CPB e um tempo 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 tempo de remoção da AU com base pelo menos em parte em um dentre o tempo de chegada CPB e um tempo 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 tempo 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 tempo 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 tempo de remoção, o tempo de chegada CPB e o tempo 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 sub- imagem onde a determinação do tempo de remoção da primeira DU compreende a determinação do tempo 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 sub-imagem.
[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 sub- imagem nas mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de sub-imagem.
[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 tempos de remoção nominal e chegada de buffer 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 tempo de chegada CPB e um tempo de remoção nominal CPB para uma AU em ambos um nível de unidade de acesso e um nível de sub-imagem 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 tempo 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 tempo de remoção CPB apenas para o nível de sub- imagem. Em alguns exemplos, pelo menos um dentre um tempo de chegada CPB e um tempo 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 tempo de remoção da AU com base pelo menos em parte em um dentre o tempo de chegada CPB e um tempo de remoção nominal CPB (572). O método inclui adicionalmente a codificação do tempo de remoção determinado (574). Em alguns exemplos, a codificação do tempo 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 tempo CPB de uma segunda DU, determinando um tempo 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 tempo de remoção, o tempo de chegada CPB, e o tempo 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 sub- imagem, onde a determinação do tempo de remoção da primeira DU compreende a determinação do tempo de remoção da primeira DU com base, pelo menos em parte, nos parâmetros CPB de nível de sub-imagem 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 tempo 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 sub- imagem nas mensagens SEI de temporização de imagem ou nas mensagens SEI de temporização de sub-imagem.
[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 óptica, par trançado, linha de assinante digital (DSL), ou tecnologias sem fio tais como infravermelho, rádio e microondas, então o cabo coaxial, o cabo de fibra óptica, o par trançado, DSL, ou tecnologias sem fio tal como infravermelho, rádio e microondas 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 apensas.
Claims (5)
1. Método para decodificar dados de vídeo usando um buffer de imagem codificada CPB, os dados de vídeo compreendendo uma ou mais unidades de acesso AU, cada uma das uma ou mais AUs compreendendo uma ou mais unidades de decodificação DU, CARACTERIZADO pelo fato de que o método compreende: determinar um valor de um primeiro indicador , o valor do primeiro indicador sinalizando se, ou um buffer de imagem codificado de nível de sub-imagem CPB, ou parâmetros de retardo de remoção, estão presentes em mensagens de informação de aperfeiçoamento suplementar SEI de temporização de imagem, e nenhuma mensagem SEI sem temporização de sub-imagem estando presente, ou que parâmetros de retardo de remoção de nível de sub-imagem CPB estão presentes em mensagens SEI em temporização de sub- imagem e as mensagens SEI de temporização de imagens não incluem parâmetros de retardo de remoção CPB de nível de sub-imagem, onde o primeiro indicador é um indicador de nível de sequência; determinar um valor de um segundo indicador, o CPB operando no nível AU quando o valor do segundo indicador é 0 e o CPB opera num nível de sub-imagem quando o nível do segundo indicador é 1; derivar (560), independente do valor determinado da segunda indicador, um tempo de chegada CPB para uma unidade de acesso atual AU e um tempo CPB de remoção nominal para a AU atual no nível AU, em que a AU atual inclui dois ou mais DUs incluindo um DU atual, que não é a última DU pela ordem de docodificação da AU atual; e quando o valor do segundo indicador é igual a 1: i) se o primeiro indicador indica que os parâmetros de retardo de remoção CPB de nível sub-imagem não estão presentes nas mensagens SEI de temporização de imagem, então obter um valor de retardo de remoção para a DU atual de um ou mais parâmetros CPB de retardo de remoção em uma mensagem SEI de temporização em nível de sub-imagem associada com a DU atual e estabelecer (562) um tempo de remoção nominal para a DU atual igual ao tempo de remoção nominal para a AU atual menos a duração do tique de um relógio de sub-imagem multiplicado com o valor CPB de retardo de remoção, ii) se o primeiro indicador indica que os parâmetros de retardo de remoção CPB de nível de sub-imagem estão presentes nas mensagens SEI de temporização de imagem, então obter um valor CPB de retardo de remoção para a DU atual de um ou mais parâmetros CPB de retardo de remoção em uma mensagem SEI de temporização de imagem associada com a DU atual e estabelecer (562) o tempo de remoção nominal para a DU atual para ser igual ao tempo de remoção nominal para um DU imediatamente subsequente na ordem de decodificação menos a duração de um tique de relógio de nível de sub-imagem multiplicado com o valor CPB de retardo de remoção, iii) estabelecer um tempo de remoção CPB da DU atual para o tempo de remoção CPB nominal da DU atual, onde ou um indicador HRD de baixo retardo é igual a zero, ou o tempo de remoção nominal da DU atual é maior que ou igual a um tempo de chegada CPB final da DU atual, iv) decodificar (564) a DU atual e remover a DU atual do CPB no tempo de remoção CPB da DU atual.
2. Dispositivo (14) para decodificar dados de vídeo usando um buffer de imagem codificada CPB, os dados de vídeo compreendendo uma ou mais unidades de acesso AU, cada uma das uma ou mais AUs compreendendo uma ou mais unidades de decodificação DU, CARACTERIZADO pelo fato de que compreende: meios para determinar um valor de um primeiro indicador, o valor deste primeiro indicador sinalizando se ou um buffer de imagem codificado de nível de sub-imagem CPB, ou parâmetros de retardo de remoção estão presentes em mensagens de informação de aperfeiçoamento suplementar SEI de temporização de imagem, e nenhuma mensagem SEI sem temporização de sub-imagem estando presente, ou que parâmetros de retardo de remoção de nível de sub-imagem CPB estão presentes em mensagens SEI em temporização de sub- imagem e as mensagens SEI de temporização de imagens não incluem parâmetros de retardo de remoção CPB de nível de sub-imagem, onde o primeiro indicador é uma indicador de nível de sequência; meios para determinar um valor de um segundo indicador, o CPB operando no nível AU quando o valor do segundo indicador é 0 e o CPB opera num nível de sub-imagem quando o nível do segundo indicador é 1; meios para derivar (560), independente do valor determinado do segundo indicador, um tempo de chegada CPB para uma unidade de acesso AU atual e um tempo CPB de remoção nominal para a AU atual no nível AU, em que a AU atual inclui duas ou mais DUs incluindo uma DU atual, que não é a última DU pela ordem de docodificação da AU atual; e quando o valor do segundo indicador é igual a 1, meios para: i) se o primeiro indicador indica que os parâmetros de retardo de remoção CPB de nível sub-imagem não estão presentes nas mensagens SEI de temporização de imagem, então obter um valor de retardo de remoção para a DU atual de um ou mais parâmetros CPB de retardo de remoção em uma mensagem SEI de temporização em nível de sub-imagem associada com a DU atual e estabelecer (562) um tempo de remoção nominal para a DU atual para ser igual ao tempo de remoção nominal para a AU atual menos a duração do tique de um relógio de sub-imagem multiplicado com o valor CPB de retardo de remoção, ii) se o primeiro indicador indica que os parâmetros de retardo de remoção CPB de nível de sub-imagem estão presentes nas mensagens SEI de temporização de imagem, então obter um valor CPB de retardo de remoção para a DU atual de um ou mais parâmetros CPB de retardo de remoção em uma mensagem SEI de temporização de imagem associada com a DU atual e estabelecer (562) o tempo de remoção nominal para a DU atual para ser igual ao tempo de remoção nominal para um DU imediatamente subsequente na ordem de decodificação menos a duração de um tique de relógio de nível de sub-imagem multiplicado com o valor CPB de retardo de remoção, iii) estabelecer um tempo de remoção CPB da DU atual para o tempo de remoção CPB nominal da DU atual, onde ou um indicador hrd de baixo retardo é igual a zero, ou o tempo de remoção nominal da DU atual é maior que ou igual a um tempo de chegada CPB final da DU atual, iv) decodificar (564) a DU atual e remover a DU atual do CPB no tempo de remoção CPB da DU atual.
3. Disositivo de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que é implementado em um ou mais circuitos integrados.
4. Disositivo de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que o dispositivo é um computador desktop, um computador tipo notebook, um computador tipo tablet, uma caixa decodificadora, um aparelho telefônico, um televisor, uma câmera, um reprodutor de mídia digital.
5. Memória legível por computador, CARACTERIZADA pelo fato de que possui instruções nela armazenadas que, quando executadas, fazem com que um computador realize o método conforme definido na reivindicação 1.
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,348 US9503753B2 (en) | 2012-09-24 | 2013-09-20 | Coded picture buffer arrival and nominal removal times in video coding |
US14/033,348 | 2013-09-20 | ||
PCT/US2013/061229 WO2014047586A1 (en) | 2012-09-24 | 2013-09-23 | Coded picture buffer arrival and nominal removal times in video coding |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112015006486A2 BR112015006486A2 (pt) | 2017-07-04 |
BR112015006486B1 true BR112015006486B1 (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 |
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 |
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 |
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 |
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 |
BR112015006479-5A BR112015006479B1 (pt) | 2012-09-24 | 2013-09-23 | Definição de unidade de decodificação expandida |
Family Applications After (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 |
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 |
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 |
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 |
BR112015006479-5A BR112015006479B1 (pt) | 2012-09-24 | 2013-09-23 | Definição de unidade de decodificação expandida |
Country Status (23)
Country | Link |
---|---|
US (6) | US9491456B2 (pt) |
EP (6) | EP2898681B1 (pt) |
JP (6) | JP2015533056A (pt) |
KR (6) | KR101743850B1 (pt) |
CN (6) | CN104662917B (pt) |
AR (3) | AR093286A1 (pt) |
AU (6) | AU2013317764B2 (pt) |
BR (6) | BR112015006486B1 (pt) |
CA (6) | CA2884447C (pt) |
DK (2) | DK2898685T3 (pt) |
ES (5) | ES2739225T3 (pt) |
HK (6) | HK1206177A1 (pt) |
HU (4) | HUE055800T2 (pt) |
IL (6) | IL237681B (pt) |
MX (1) | MX341441B (pt) |
MY (6) | MY172354A (pt) |
PH (6) | PH12015500479B1 (pt) |
RU (6) | RU2641475C2 (pt) |
SG (7) | SG11201501580RA (pt) |
TW (6) | TWI555382B (pt) |
UA (2) | UA116997C2 (pt) |
WO (6) | WO2014047583A1 (pt) |
ZA (4) | ZA201502382B (pt) |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011199396A (ja) | 2010-03-17 | 2011-10-06 | Ntt Docomo Inc | 動画像予測符号化装置、動画像予測符号化方法、動画像予測符号化プログラム、動画像予測復号装置、動画像予測復号方法、及び動画像予測復号プログラム |
CN104185992A (zh) * | 2012-02-08 | 2014-12-03 | 汤姆逊许可公司 | 用于使用假设参考解码器的超低延迟模式的方法和装置 |
AU2013282644B2 (en) * | 2012-06-25 | 2016-05-12 | Nec Corporation | Video encoding/decoding device, method, and program |
US9602827B2 (en) | 2012-07-02 | 2017-03-21 | Qualcomm Incorporated | Video parameter set including an offset syntax element |
CN104412598A (zh) | 2012-07-06 | 2015-03-11 | 夏普株式会社 | 发信号通知基于子图片的假想参考解码器参数的电子设备 |
US10021394B2 (en) | 2012-09-24 | 2018-07-10 | Qualcomm Incorporated | Hypothetical reference decoder parameters in video coding |
US9491456B2 (en) | 2012-09-24 | 2016-11-08 | Qualcomm Incorporated | Coded picture buffer removal times signaled in picture and sub-picture timing supplemental enhancement information messages |
US9374585B2 (en) * | 2012-12-19 | 2016-06-21 | Qualcomm Incorporated | Low-delay buffering model in video coding |
CN109729364A (zh) | 2013-04-07 | 2019-05-07 | 杜比国际公司 | 用信号通知输出层集的改变 |
US9591321B2 (en) | 2013-04-07 | 2017-03-07 | Dolby International Ab | Signaling change in output layer sets |
MX352631B (es) * | 2013-04-08 | 2017-12-01 | Arris Entpr Llc | Señalización para adición o remoción de capas en codificación de video. |
US20140307803A1 (en) | 2013-04-08 | 2014-10-16 | Qualcomm Incorporated | Non-entropy encoded layer dependency information |
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 |
US10521880B2 (en) * | 2017-04-17 | 2019-12-31 | Intel Corporation | Adaptive compute size per workload |
CN113411784B (zh) * | 2017-04-27 | 2022-01-11 | 三星电子株式会社 | 网络可切片区域信息获取方法 |
WO2020159994A1 (en) | 2019-01-28 | 2020-08-06 | Op Solutions, Llc | Online and offline selection of extended long term reference picture retention |
JP7346585B2 (ja) * | 2019-03-01 | 2023-09-19 | フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン | 仮想参照デコーダ |
BR112021023637A2 (pt) * | 2019-06-18 | 2022-03-29 | Panasonic Ip Corp America | Codificador, decodificador, método de codificação, e método de decodificação |
JP2022538755A (ja) * | 2019-06-24 | 2022-09-06 | インターデジタル ヴイシー ホールディングス, インコーポレイテッド | 高レベル構文要素を使用して復号データをシグナリングする方法および装置 |
KR20220023341A (ko) * | 2019-06-25 | 2022-03-02 | 인텔 코포레이션 | 레벨 도출이 있는 서브-픽처 및 서브-픽처 세트 |
CN114009051B (zh) * | 2019-06-27 | 2023-07-18 | 华为技术有限公司 | 用于v-pcc的假设参考解码器 |
US12096033B2 (en) * | 2019-08-21 | 2024-09-17 | Sharp Kabushiki Kaisha | Systems and methods for signaling buffering period information in video coding |
WO2021049644A1 (ja) * | 2019-09-11 | 2021-03-18 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法、および復号方法 |
CN116600125A (zh) * | 2019-09-17 | 2023-08-15 | 华为技术有限公司 | 基于子图像的视频译码中的子图像id指示 |
KR20220063269A (ko) * | 2019-09-24 | 2022-05-17 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 해상도 변경들을 위한 디코딩된 픽처 버퍼 동작 |
WO2021061392A1 (en) | 2019-09-24 | 2021-04-01 | Futurewei Technologies, Inc. | Error mitigation for sublayers in video coding |
AU2020352918A1 (en) * | 2019-09-24 | 2022-04-21 | Huawei Technologies Co., Ltd. | Picture timing and decoding unit information for temporal scalability |
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 |
EP4070556A4 (en) * | 2019-12-05 | 2023-10-11 | SHARP Kabushiki Kaisha | SYSTEMS AND METHODS FOR REPORTING PICTURE BEATING AND DECODING UNIT INFORMATION IN VIDEO CODING |
CN114930825A (zh) | 2019-12-26 | 2022-08-19 | 字节跳动有限公司 | 用于在编解码图片中实现解码顺序的技术 |
JP7427176B2 (ja) * | 2019-12-27 | 2024-02-05 | 国立研究開発法人情報通信研究機構 | 無線通信情報更新システム及び無線通信情報更新方法 |
CN117395441A (zh) | 2020-01-09 | 2024-01-12 | 字节跳动有限公司 | 视频流中的填充数据单元的处理 |
WO2021160168A1 (en) | 2020-02-14 | 2021-08-19 | Beijing Bytedance Network Technology Co., Ltd. | Reference picture resampling activation in video coding |
CN115152210A (zh) | 2020-02-24 | 2022-10-04 | 字节跳动有限公司 | 子图片的高度的推导 |
KR20220143857A (ko) | 2020-03-03 | 2022-10-25 | 바이트댄스 아이엔씨 | 비디오 코딩에서의 저 주파수 비-분리가능 변환 시그널링 |
EP4104434A4 (en) | 2020-03-17 | 2023-08-23 | ByteDance Inc. | INDICATING AN IMAGE OUTPUT FLAG IN VIDEO ENCODING |
WO2021201616A1 (ko) * | 2020-03-31 | 2021-10-07 | 엘지전자 주식회사 | 픽처 분할 정보 및 서브픽처 정보에 기반하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체 |
KR102578407B1 (ko) | 2020-03-31 | 2023-09-13 | 엘지전자 주식회사 | 레이어간 정렬된 서브픽처 정보에 기반하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체 |
US11706428B2 (en) * | 2020-04-06 | 2023-07-18 | Tencent America LLC | Method for signaling picture header in coded video stream |
CN117834916A (zh) | 2020-05-22 | 2024-04-05 | 字节跳动有限公司 | 访问单元中图片信息的信令 |
CN115668929A (zh) | 2020-05-22 | 2023-01-31 | 字节跳动有限公司 | 视频子比特流提取过程中的sei消息处理 |
WO2021233422A1 (en) | 2020-05-22 | 2021-11-25 | Beijing Bytedance Network Technology Co., Ltd. | Subpicture sub-bitstream extraction improvements |
KR20230019845A (ko) | 2020-06-08 | 2023-02-09 | 바이트댄스 아이엔씨 | 코딩된 비디오 픽처에서 슬라이스 카운트의 제약들 |
CN115918077A (zh) | 2020-06-09 | 2023-04-04 | 字节跳动有限公司 | 子图片子比特流提取过程中补充增强信息的处理 |
JP7553607B2 (ja) | 2020-06-09 | 2024-09-18 | バイトダンス インコーポレイテッド | 映像コーディングにおけるサブピクチャレベル情報の信号通知 |
BR112022025075A2 (pt) * | 2020-06-09 | 2022-12-27 | Bytedance Inc | Informações de decodificador de vídeo de referência hipotético aninhadas não escaláveis de sinalização |
CN117528004A (zh) | 2020-06-09 | 2024-02-06 | 字节跳动有限公司 | 多层视频比特流的子比特流提取 |
US11930295B2 (en) | 2020-09-17 | 2024-03-12 | Lemon Inc. | Handling of non-VCL NAL units in picture unit construction |
US11871143B2 (en) | 2020-09-17 | 2024-01-09 | Lemon Inc. | Subpicture tracks in coded video |
US11962936B2 (en) | 2020-09-29 | 2024-04-16 | Lemon Inc. | Syntax for dependent random access point indication in video bitstreams |
GB2599171A (en) * | 2020-09-29 | 2022-03-30 | Canon Kk | Method and apparatus for encapsulating video data into a file |
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7551672B1 (en) | 1999-02-05 | 2009-06-23 | Sony Corporation | Encoding system and method, decoding system and method, multiplexing apparatus and method, and display system and method |
RU2229176C2 (ru) * | 2000-06-14 | 2004-05-20 | Жуков Николай Анатольевич | Тепловыделяющая сборка с микротвэлами |
RU2273109C2 (ru) * | 2000-09-07 | 2006-03-27 | Сони Корпорейшн | Способ и устройство обработки информации, программа и носитель записи |
CA2776055C (en) * | 2001-03-08 | 2013-12-10 | Sony Corporation | Data recorder |
US7532670B2 (en) * | 2002-07-02 | 2009-05-12 | Conexant Systems, Inc. | Hypothetical reference decoder with low start-up delays for compressed image and video |
US7257162B2 (en) | 2002-07-02 | 2007-08-14 | Conexant Systems, Inc. | Hypothetical reference decoder 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 | Самсунг Электроникс Ко., Лтд. | Способ масштабируемого кодирования и декодирования видеосигнала и устройство для его осуществления |
WO2005071970A1 (en) | 2004-01-16 | 2005-08-04 | General Instrument Corporation | Method and apparatus for determining timing information from a bit stream |
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 |
CN101120593A (zh) * | 2005-04-13 | 2008-02-06 | 诺基亚公司 | 可扩展性信息的编码、存储和信号发送 |
JP4311570B2 (ja) | 2005-07-01 | 2009-08-12 | 株式会社ソニー・コンピュータエンタテインメント | 再生装置、ビデオ復号装置および同期再生方法 |
EP1949701A1 (en) | 2005-10-11 | 2008-07-30 | 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 | 삼성전자주식회사 | 엔트로피 부호화/복호화 방법 및 장치 |
WO2008018626A2 (en) | 2006-08-10 | 2008-02-14 | 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 |
JP5114495B2 (ja) | 2007-01-08 | 2013-01-09 | トムソン ライセンシング | ビデオストリームのスプライシングのための方法及び装置 |
WO2008087602A1 (en) * | 2007-01-18 | 2008-07-24 | Nokia Corporation | Carriage of sei messages in rtp payload format |
BRPI0817420A2 (pt) | 2007-10-05 | 2013-06-18 | Thomson Licensing | mÉtodos e aparelho para incorporar informaÇço de usabilidade de vÍdeo (vui) em um sistema de codificaÇço de vÍdeo de méltiplas visualizaÇÕes (mvc) |
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 |
WO2010092740A1 (ja) | 2009-02-10 | 2010-08-19 | パナソニック株式会社 | 画像処理装置、画像処理方法、プログラムおよび集積回路 |
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 |
US9456015B2 (en) | 2010-08-10 | 2016-09-27 | Qualcomm Incorporated | Representation groups 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 |
WO2013109178A1 (en) | 2012-01-20 | 2013-07-25 | Telefonaktiebolaget L M Ericsson (Publ) | Sub-bitstream extraction |
CA2870989C (en) * | 2012-04-23 | 2018-11-20 | Panasonic Intellectual Property Corporation Of America | Encoding method, decoding method, encoding apparatus, decoding apparatus, and encoding and decoding apparatus |
RS64224B1 (sr) | 2012-06-25 | 2023-06-30 | Huawei Tech Co Ltd | Slike postepenog pristupa vremenskom sloju u video kompresiji |
KR102162119B1 (ko) * | 2012-06-29 | 2020-10-06 | 지이 비디오 컴프레션, 엘엘씨 | 비디오 데이터 스트림 개념 |
WO2014007596A1 (ko) * | 2012-07-06 | 2014-01-09 | 삼성전자 주식회사 | 다계층 비디오 부호화 방법 및 장치, 다계층 비디오 복호화 방법 및 장치 |
CN104412598A (zh) * | 2012-07-06 | 2015-03-11 | 夏普株式会社 | 发信号通知基于子图片的假想参考解码器参数的电子设备 |
US10021394B2 (en) | 2012-09-24 | 2018-07-10 | Qualcomm Incorporated | Hypothetical reference decoder parameters in video coding |
US9491456B2 (en) | 2012-09-24 | 2016-11-08 | Qualcomm Incorporated | Coded picture buffer removal times signaled in picture and sub-picture timing supplemental enhancement information messages |
-
2013
- 2013-09-20 US US14/033,191 patent/US9491456B2/en active Active
- 2013-09-20 US US14/033,308 patent/US9648352B2/en active Active
- 2013-09-20 US US14/033,348 patent/US9503753B2/en active Active
- 2013-09-20 US US14/033,264 patent/US9654802B2/en active Active
- 2013-09-20 US US14/033,329 patent/US9479774B2/en active Active
- 2013-09-20 US US14/033,141 patent/US9479773B2/en active Active
- 2013-09-23 EP EP13770826.9A patent/EP2898681B1/en active Active
- 2013-09-23 UA UAA201503911A patent/UA116997C2/uk unknown
- 2013-09-23 CA CA2884447A patent/CA2884447C/en active Active
- 2013-09-23 KR KR1020157010470A patent/KR101743850B1/ko active IP Right Grant
- 2013-09-23 RU RU2015115513A patent/RU2641475C2/ru active
- 2013-09-23 KR KR1020157010476A patent/KR101760195B1/ko active IP Right Grant
- 2013-09-23 AU AU2013317764A patent/AU2013317764B2/en active Active
- 2013-09-23 SG SG11201501580RA patent/SG11201501580RA/en unknown
- 2013-09-23 ES ES13774005T patent/ES2739225T3/es active Active
- 2013-09-23 SG SG11201501519QA patent/SG11201501519QA/en unknown
- 2013-09-23 AU AU2013317758A patent/AU2013317758B2/en active Active
- 2013-09-23 CA CA2884289A patent/CA2884289C/en active Active
- 2013-09-23 BR BR112015006486-8A patent/BR112015006486B1/pt active IP Right Grant
- 2013-09-23 EP EP13774008.0A patent/EP2898686B1/en active Active
- 2013-09-23 HU HUE13771729A patent/HUE055800T2/hu unknown
- 2013-09-23 WO PCT/US2013/061224 patent/WO2014047583A1/en active Application Filing
- 2013-09-23 HU HUE13774006A patent/HUE052209T2/hu unknown
- 2013-09-23 ES ES13771729T patent/ES2885527T3/es active Active
- 2013-09-23 SG SG10201707888PA patent/SG10201707888PA/en unknown
- 2013-09-23 AU AU2013317763A patent/AU2013317763B2/en active Active
- 2013-09-23 KR KR1020157010471A patent/KR101788416B1/ko active IP Right Grant
- 2013-09-23 MY MYPI2015700753A patent/MY172354A/en unknown
- 2013-09-23 BR BR112015006480-9A patent/BR112015006480B1/pt active IP Right Grant
- 2013-09-23 CN CN201380049749.9A patent/CN104662917B/zh active Active
- 2013-09-23 KR KR1020157010472A patent/KR102244410B1/ko active IP Right Grant
- 2013-09-23 ES ES13774009T patent/ES2913456T3/es active Active
- 2013-09-23 UA UAA201503908A patent/UA114930C2/uk unknown
- 2013-09-23 BR BR112015006492-2A patent/BR112015006492B1/pt active IP Right Grant
- 2013-09-23 HU HUE13774005 patent/HUE044912T2/hu unknown
- 2013-09-23 JP JP2015533251A patent/JP2015533056A/ja active Pending
- 2013-09-23 MY MYPI2015700749A patent/MY182448A/en unknown
- 2013-09-23 AU AU2013317761A patent/AU2013317761B2/en active Active
- 2013-09-23 EP EP13774005.6A patent/EP2898684B1/en active Active
- 2013-09-23 BR BR112015006481-7A patent/BR112015006481B1/pt active IP Right Grant
- 2013-09-23 CA CA2884302A patent/CA2884302C/en active Active
- 2013-09-23 DK DK13774006.4T patent/DK2898685T3/da active
- 2013-09-23 MY MYPI2015700756A patent/MY169387A/en unknown
- 2013-09-23 KR KR1020157010478A patent/KR101773268B1/ko active IP Right Grant
- 2013-09-23 HU HUE13774009A patent/HUE058715T2/hu unknown
- 2013-09-23 JP JP2015533257A patent/JP6121539B2/ja active Active
- 2013-09-23 AU AU2013317765A patent/AU2013317765B2/en active Active
- 2013-09-23 SG SG11201501576RA patent/SG11201501576RA/en unknown
- 2013-09-23 WO PCT/US2013/061217 patent/WO2014047577A1/en active Application Filing
- 2013-09-23 WO PCT/US2013/061229 patent/WO2014047586A1/en active Application Filing
- 2013-09-23 CN CN201380049577.5A patent/CN104704840B/zh active Active
- 2013-09-23 WO PCT/US2013/061226 patent/WO2014047584A1/en active Application Filing
- 2013-09-23 RU RU2015115465A patent/RU2627098C2/ru active
- 2013-09-23 CN CN201380049555.9A patent/CN104662915B/zh active Active
- 2013-09-23 SG SG11201501518XA patent/SG11201501518XA/en unknown
- 2013-09-23 MY MYPI2015700750A patent/MY171506A/en unknown
- 2013-09-23 JP JP2015533252A patent/JP6239626B2/ja active Active
- 2013-09-23 RU RU2015115466A patent/RU2630374C2/ru active
- 2013-09-23 DK DK13771729.4T patent/DK2898683T3/da active
- 2013-09-23 CA CA2883898A patent/CA2883898C/en active Active
- 2013-09-23 CN CN201380049788.9A patent/CN104662919B/zh active Active
- 2013-09-23 RU RU2015115463A patent/RU2628196C2/ru active
- 2013-09-23 BR BR112015006488-4A patent/BR112015006488B1/pt active IP Right Grant
- 2013-09-23 CN CN201380049782.1A patent/CN104662918B/zh active Active
- 2013-09-23 CA CA2884286A patent/CA2884286C/en active Active
- 2013-09-23 BR BR112015006479-5A patent/BR112015006479B1/pt active IP Right Grant
- 2013-09-23 WO PCT/US2013/061222 patent/WO2014047582A1/en active Application Filing
- 2013-09-23 SG SG11201501520YA patent/SG11201501520YA/en unknown
- 2013-09-23 CA CA2884298A patent/CA2884298C/en active Active
- 2013-09-23 RU RU2015115521A patent/RU2646378C2/ru active
- 2013-09-23 ES ES13770826T patent/ES2884724T3/es active Active
- 2013-09-23 CN CN201380049737.6A patent/CN104662916B/zh active Active
- 2013-09-23 WO PCT/US2013/061220 patent/WO2014047580A1/en active Application Filing
- 2013-09-23 JP JP2015533255A patent/JP6092398B2/ja active Active
- 2013-09-23 MX MX2015003694A patent/MX341441B/es active IP Right Grant
- 2013-09-23 SG SG11201501578QA patent/SG11201501578QA/en unknown
- 2013-09-23 EP EP13774006.4A patent/EP2898685B1/en active Active
- 2013-09-23 KR KR1020157010477A patent/KR102149072B1/ko active IP Right Grant
- 2013-09-23 MY MYPI2015700755A patent/MY181871A/en unknown
- 2013-09-23 AU AU2013317767A patent/AU2013317767B2/en active Active
- 2013-09-23 ES ES13774006T patent/ES2855129T3/es active Active
- 2013-09-23 EP EP13771729.4A patent/EP2898683B1/en active Active
- 2013-09-23 EP EP13774009.8A patent/EP2898687B1/en active Active
- 2013-09-23 JP JP2015533254A patent/JP6239627B2/ja active Active
- 2013-09-23 MY MYPI2015700748A patent/MY181707A/en unknown
- 2013-09-23 JP JP2015533253A patent/JP6224109B2/ja active Active
- 2013-09-23 RU RU2015115518A patent/RU2628215C2/ru active
- 2013-09-24 AR ARP130103422A patent/AR093286A1/es active IP Right Grant
- 2013-09-24 TW TW102134380A patent/TWI555382B/zh active
- 2013-09-24 AR ARP130103425A patent/AR093239A1/es active IP Right Grant
- 2013-09-24 TW TW102134377A patent/TWI530197B/zh active
- 2013-09-24 TW TW102134378A patent/TWI581611B/zh active
- 2013-09-24 AR ARP130103423A patent/AR093287A1/es active IP Right Grant
- 2013-09-24 TW TW102134382A patent/TWI569626B/zh active
- 2013-09-24 TW TW102134379A patent/TWI524779B/zh active
- 2013-09-24 TW TW102134384A patent/TWI574549B/zh active
-
2015
- 2015-03-05 PH PH12015500479A patent/PH12015500479B1/en unknown
- 2015-03-09 PH PH12015500510A patent/PH12015500510B1/en unknown
- 2015-03-09 PH PH12015500511A patent/PH12015500511B1/en unknown
- 2015-03-11 IL IL237681A patent/IL237681B/en active IP Right Grant
- 2015-03-11 IL IL237682A patent/IL237682A/en active IP Right Grant
- 2015-03-11 IL IL237679A patent/IL237679A/en active IP Right Grant
- 2015-03-11 IL IL237680A patent/IL237680B/en active IP Right Grant
- 2015-03-12 IL IL237696A patent/IL237696A/en active IP Right Grant
- 2015-03-12 PH PH12015500537A patent/PH12015500537B1/en unknown
- 2015-03-12 IL IL237697A patent/IL237697A/en active IP Right Grant
- 2015-03-17 PH PH12015500580A patent/PH12015500580B1/en unknown
- 2015-03-18 PH PH12015500593A patent/PH12015500593A1/en unknown
- 2015-04-09 ZA ZA201502382A patent/ZA201502382B/en unknown
- 2015-04-14 ZA ZA2015/02492A patent/ZA201502492B/en unknown
- 2015-04-14 ZA ZA2015/02491A patent/ZA201502491B/en unknown
- 2015-04-20 ZA ZA2015/02641A patent/ZA201502641B/en unknown
- 2015-07-06 HK HK15106436.2A patent/HK1206177A1/xx unknown
- 2015-07-24 HK HK15107100.5A patent/HK1206524A1/xx unknown
- 2015-07-27 HK HK15107122.9A patent/HK1206527A1/xx unknown
- 2015-08-25 HK HK15108250.1A patent/HK1207776A1/xx unknown
- 2015-08-26 HK HK15108280.5A patent/HK1207928A1/xx unknown
- 2015-09-21 HK HK15109262.5A patent/HK1208581A1/xx unknown
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR112015006486B1 (pt) | Tempos de chegada e remoção nominal de buffer de imagem codificada na 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 |