BR112015016254B1 - Método realizado por um dispositivo de computação, mídia legível por computador e dispositivo de computação - Google Patents

Método realizado por um dispositivo de computação, mídia legível por computador e dispositivo de computação Download PDF

Info

Publication number
BR112015016254B1
BR112015016254B1 BR112015016254-1A BR112015016254A BR112015016254B1 BR 112015016254 B1 BR112015016254 B1 BR 112015016254B1 BR 112015016254 A BR112015016254 A BR 112015016254A BR 112015016254 B1 BR112015016254 B1 BR 112015016254B1
Authority
BR
Brazil
Prior art keywords
value
cpbrd
image
sei message
flag
Prior art date
Application number
BR112015016254-1A
Other languages
English (en)
Other versions
BR112015016254A2 (pt
Inventor
Gary J. Sullivan
Lihua Zhu
Original Assignee
Microsoft Technology Licensing, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/109,670 external-priority patent/US9661341B2/en
Application filed by Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BR112015016254A2 publication Critical patent/BR112015016254A2/pt
Publication of BR112015016254B1 publication Critical patent/BR112015016254B1/pt

Links

Abstract

DISPOSITIVO DE COMPUTAÇÃO, MÉTODO E MÍDIA LEGÍVEL POR COMPUTADOR PARA SINTAXE E SEMÂNTICA PARA INFORMAÇÕES DE ARMAZENAMENTO TEMPORÁRIO PARA SIMPLIFICAR UNIÃO DE VÍDEO. A presente invenção refere-se a inovações em sintaxe e semântica de valores de atraso de remoção de armazenamento temporário de imagem cifrada ("CPBRD") que potencialmente simplificam operações de união. Por exemplo, um codificador de vídeo define um valor de CPBRD para uma imagem atual que indica um valor de incremento relativo a um tempo nominal de remoção de armazenamento temporário de imagem cifrada de uma imagem precedente em ordem de decodificação, independentemente de a imagem precedente ter uma mensagem de SEI de período de armazenamento temporário. O codificador pode sinalizar o valor de CPBRD de acordo com uma abordagem de valor único na qual um sinalizador indica como interpretar o valor de CPBRD, de acordo com uma abordagem de dois valores na qual outro valor de CPBRD (que tem uma interpretação diferente) também é sinalizado, ou de acordo com uma abordagem de dois valores que usa um sinalizador e um valor de delta. Um decodificador de vídeo correspondente recebe e analisa o valor de CPBRD para a imagem atual. Uma ferramenta de união pode realizar operações (...).

Description

ANTECEDENTES
[001] Engenheiros usam compressão (também chamada cifragem de fonte ou codificação de fonte) para reduzir a taxa de bits de vídeo digital. A compressão reduz o custo de armazenamento e transmissão de informações de vídeo convertendo-se as informações em uma forma de taxa de bits mais baixa. A descompressão (também chamada de decodificação) reconstrói uma versão das informações originais da forma comprimida. Um "codec" é um sistema codificador/ decodificador.
[002] Ao longo das duas últimas décadas, vários padrões de codec de vídeo têm sido adotados, incluindo os padrões ITU-T H.261, H.262 (MPEG-2 ou ISO/IEC 13818-2), H.263 e H.264 (MPEG-4 AVC ou ISO/IEC 14496-10) e os padrões MPEG-1 (ISO/IEC 11172-2), MPEG-4 Visual (ISO/IEC 14496-2) e SMPTE 421M (VC-1). Mais recentemente, o padrão HEVC (ITU-T H.265 ou ISO/IEC 23008-2) tem sido desenvolvido. Um padrão de codec de vídeo tipicamente define opções para a sintaxe de um fluxo de bits de vídeo codificado que detalham parâmetros no fluxo de bits quando recursos particulares são usados em codificação e decodificação. Em muitos casos, um padrão de codec de vídeo também fornece detalhes sobre as operações de decodificação que um decodificador deve realizar para alcançar resultados conformes em decodificação. Além de padrões de codec, vários formatos proprietários de codec definem outras opções para a sintaxe de um fluxo de bits de vídeo codificado e operações de decodificação correspondentes.
[003] Um tipo de parâmetro em um fluxo de bits de vídeo codificado é atraso de remoção de armazenamento temporário de imagem codificada ("CPBRD"). Em geral, um valor de CPBRD para uma dada imagem especifica o tempo nominal no qual os dados codificados associados à imagem devem ser removidos de um armazenamento temporário no decodificador. Quando dados codificados para imagens são removidos nos tempos corretos, de acordo com modos normais de operação, o armazenamento temporário de decodificador não estoura (o que provocaria a perda de dados codificados) ou estoura negativamente (o que resultaria em "falhas" ou outra interrupção de reprodução contínua). Em modo de baixo atraso, estouro negativo é tolerado em algumas circunstâncias, mas sob o modo de não baixo atraso (tal como é tipicamente usado para difusão), estouro negativo de armazenamento temporário não é permitido. Um modelo de armazenamento temporário, convencionalmente chamado um decodificador de referência hipotética ("HRD") ou verificador de armazenamento temporário de vídeo ("VBV"), usa valores de CPBRD e outros parâmetros tais como valores de taxa, valores de tamanho de armazenamento temporário e valores de plenitude de armazenamento temporário ou valores de atraso de armazenamento temporário inicial (antes de a reprodução começar) para verificar que fluxos de bits podem ser decodificados dentro dos recursos de armazenamento temporário de um sistema de decodificação, e para ajudar um decodificador a determinar o sincronismo e etapas para operação de seu processo de decodificação.
[004] Em muitos contextos, fluxos de bits para sequências de vídeo diferentes são unidos. Por exemplo, essa união pode ser usada para inserir um comercial ou série de comerciais em um programa de televisão, ou para comutar entre programas de televisão diferentes. As abordagens existentes para sinalizar valores de CPBRD podem resultar em operações pesadas e potencialmente difíceis durante a união a fim de ajustar valores de CPBRD para levar em conta a união. Outro problema é que, embora dois fluxos fonte possam ser independentemente compatíveis com HRD, após a união, não é garantido que o fluxo unido resultante seja compatível com HRD.
SUMÁRIO
[005] Em suma, a descrição detalhada apresenta inovações em sintaxe e/ou semântica de valores de atraso de remoção de armazenamento temporário de imagem codificada ("CPBRD") que simplificam operações de união. Em particular, as inovações suportam operações de união através de novas formas de sinalização de valores de CPBRD para certas imagens, em que esses valores de CPBRD podem simplesmente ser reutilizados quando um fluxo de bits ou parte de um fluxo de bits para uma sequência de vídeo é concatenado a outro fluxo de bits ou parte de outro fluxo de bits para outra sequência de vídeo.
[006] De acordo com um aspecto das inovações descritas no presente documento, um codificador de vídeo ou outra ferramenta define um valor de CPBRD para uma dada imagem de uma sequência de vídeo. O valor de CPBRD para a dada imagem indica um valor de incremento relativo a um tempo nominal de remoção de armazenamento temporário de imagem codificada ("CPB") de uma imagem precedente em ordem de decodificação, independentemente de a imagem precedente ter uma mensagem de SEI de período de armazenamento temporário ("BP SEI"). O codificador ou outra ferramenta então sinaliza o valor de CPBRD para a dada imagem. O valor de CPBRD pode ser sinalizado de acordo com uma abordagem de valor único na qual um sinalizador indica como interpretar o valor de CPBRD, de acordo com uma abordagem de dois valores na qual outro valor de CPBRD (que tem uma interpretação diferente) também é sinalizado, de acordo com uma abordagem de dois valores que usa um sinalizador e um valor de delta, ou de acordo com outra abordagem.
[007] De acordo com outro aspecto das inovações descritas no presente documento, um decodificador de vídeo ou outra ferramenta recebe um valor de CPBRD para uma dada imagem de uma sequência de vídeo. O valor de CPBRD para a dada imagem indica um valor de incremento relativo a um tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação, independentemente de a imagem precedente ter uma mensagem de SEI de BP. O decodificador de vídeo ou outra ferramenta então analisa o valor de CPBRD para a dada imagem. O valor de CPBRD pode ser sinalizado de acordo com uma abordagem de valor único na qual um sinalizador indica como interpretar o valor de CPBRD, de acordo com uma abordagem de dois valores na qual outro valor de CPBRD (que tem uma interpretação diferente) também é sinalizado, de acordo com uma abordagem de dois valores que usa um sinalizador e um valor de delta, ou de acordo com outra abordagem.
[008] De acordo com outro aspecto das inovações descritas no presente documento, uma ferramenta de união recebe pelo menos parte de um primeiro fluxo de bits para uma primeira sequência de vídeo e também recebe pelo menos parte de um segundo fluxo de bits para uma segunda sequência de vídeo. Um valor de CPBRD para uma dada imagem da segunda sequência de vídeo indica um valor de incremento relativo a um tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação, independentemente de a imagem precedente ter uma mensagem de SEI de BP. A ferramenta de união une pelo menos parte da segunda sequência de vídeo a pelo menos parte da primeira sequência de vídeo. Como parte da união, a ferramenta de união concatena toda ou parte da segunda sequência de vídeo, que inicia na dada imagem, a pelo menos parte da primeira sequência de vídeo. O valor de CPBRD pode ser sinalizado de acordo com uma abordagem de valor único na qual um sinalizador indica como interpretar o valor de CPBRD, de acordo com uma abordagem de dois valores na qual outro valor de CPBRD (que tem uma interpretação diferente) também é sinalizado, de acordo com uma abordagem de dois valores que usa um sinalizador e um valor de delta, ou de acordo com outra abordagem.
[009] A codificação, decodificação ou união podem ser implantadas como parte de um método, como parte de um dispositivo de computação adaptado para realizar o método ou como parte de uma mídia legível por computador tangível que armazena instruções executáveis por computador para fazer com que um dispositivo de computação realize o método.
[0010] O supra referenciado e outros objetivos, recursos, e vantagens da invenção ficarão mais evidentes a partir da descrição detalhada a seguir, que prossegue com referência às figuras anexas.
BREVE DESCRIÇÃO DAS FIGURAS
[0011] A Figura 1 é um diagrama de um sistema de computação exemplificativo no qual algumas modalidades descritas podem ser implantadas.
[0012] As Figuras 2a e 2b são diagramas de ambientes de rede exemplificativos nos quais algumas modalidades descritas podem ser implantadas.
[0013] A Figura 3 é um diagrama de um sistema codificador exemplificativo em combinação com o qual algumas modalidades descritas podem ser implantadas.
[0014] A Figura 4 é um diagrama de um sistema decodificador exemplificativo em combinação com o qual algumas modalidades descritas podem ser implantadas.
[0015] A Figura 5 é um diagrama que ilustra um codificador de vídeo exemplificativo em combinação com o qual algumas modalidades descritas podem ser implantadas.
[0016] A Figura 6 é um diagrama que ilustra um exemplo decodificador de vídeo em combinação com o qual algumas modalidades descritas podem ser implantadas.
[0017] A Figura 7 é um diagrama que ilustra operações de união de acordo com abordagens anteriores para ajustar valores de CPBRD.
[0018] As Figuras 8 e 9 são tabelas que ilustram sintaxe para uma abordagem de valor único para sinalizar valores de CPBRD.
[0019] A Figura 10 é um gráfico que ilustra plenitude de armazenamento temporário quando dois fluxos de bits são unidos.
[0020] A Figura 11 é uma tabela que ilustra sintaxe para uma abordagem de dois valores para sinalizar valores de CPBRD, com o uso de um sinalizador e um valor de delta.
[0021] A Figura 12 é um fluxograma que ilustra uma técnica generalizada para definir valores de CPBRD durante codificação para simplificar a união de vídeo.
[0022] A Figura 13 é um fluxograma que ilustra uma técnica exemplificativa para definir valores de CPBRD durante codificação para simplificar a união de vídeo de acordo com uma abordagem de valor único.
[0023] A Figura 14 é um fluxograma que ilustra uma técnica generalizada para processar valores de CPBRD durante a decodificação.
[0024] A Figura 15 é um fluxograma que ilustra uma técnica exemplificativa para determinar valores de CPBRD durante a decodificação de acordo com uma abordagem de valor único.
[0025] A Figura 16 é um fluxograma que ilustra uma técnica generalizada para unir fluxos de bits.
[0026] A Figura 17 é um fluxograma que ilustra uma técnica exemplificativa para definir valores de CPBRD durante a codificação para simplificar a união de vídeo de acordo com uma abordagem de dois valores com sinalizador e valor de delta.
[0027] A Figura 18 é um fluxograma que ilustra uma técnica exemplificativa para determinar valores de CPBRD durante a decodificação de acordo com uma abordagem de dois valores com sinalizador e valor de delta.
DESCRIÇÃO DETALHADA
[0028] A descrição detalhada apresenta várias abordagens para aprimorar suporte a operações de união ajustando-se a sintaxe e/ou semântica de valores de atraso de remoção de armazenamento temporário de imagem codificada ("CPBRD"). Em muitos casos, essas abordagens aliviam as deficiências das abordagens anteriores. Em particular, a descrição detalhada apresenta inovações para sintaxe e semântica de valores de CPBRD sinalizados em tipos de mensagens de informações de aprimoramento suplementares ("SEI") no padrão HEVC ou no padrão H.264/AVC. Em vários exemplos, sintaxe e/ou semântica de mensagens de SEI de período de armazenamento temporário ("BP SEI") e/ou mensagens de SEI de sincronismo de imagem ("PT SEI") é ajustado para facilitar operações de união.
[0029] Embora as operações descritas no presente documento sejam descritas em alguns locais como sendo realizadas por um codificador (por exemplo, codificador de vídeo), decodificador (por exemplo, decodificador de vídeo) ou ferramenta de união (por exemplo, ferramenta de união de vídeo), em muitos casos as operações podem ser realizadas alternativamente por outro tipo de ferramenta de processamento de mídia.
[0030] Algumas das inovações descritas no presente documento são ilustradas com referência a elementos de sintaxe e operações específicas para o padrão HEVC. Por exemplo, é feita referência à versão preliminar JCTVC-K1003 do padrão HEVC- "High Efficiency Video Coding (HEVC) text specification draft 9", JCTVC-K1003_d13, 11a conferência, Xangai, 10 a 19 de outubro de 2012. As inovações descritas no presente documento também podem ser implantadas para outros padrões ou formatos, por exemplo, o padrão H.264/AVC.
[0031] De maneira mais geral, várias alternativas aos exemplos descritos no presente documento são possíveis. Por exemplo, alguns dos métodos descritos no presente documento podem ser alterados mudando-se a ordenação das ações do método descrito, dividindo-se, repetindo-se, ou omitindo-se certas ações do método, etc. Os vários aspectos da tecnologia descrita podem ser usados em combinação ou separadamente. Diferentes modalidades usam uma ou mais das inovações descritas. Algumas das inovações descritas no presente documento endereçam um ou mais dos problemas observados nos antecedentes. Tipicamente, uma dada técnica/ferramenta não soluciona todos esses problemas.
SISTEMAS DE COMPUTAÇÃO EXEMPLIFICATIVOS
[0032] A Figura 1 ilustra um exemplo generalizado de um sistema de computação adequado 100 no qual diversas das inovações descritas podem ser implantadas. O sistema de computação 100 não é destinado a sugerir qualquer limitação como ao escopo de uso ou funcionalidade, uma vez que as inovações podem ser implantadas em diversos sistemas de computação de propósito geral ou de propósito especial.
[0033] Com referência à Figura 1, o sistema de computação 100 inclui uma ou mais unidades de processamento 110, 115 e de memória 120, 125. As unidades de processamento 110, 115 executam instruções executáveis por computador. Uma unidade de processamento pode ser uma unidade de processamento central de propósito geral ("CPU"), processador em um circuito integrado específico à aplicação ("ASIC") ou qualquer outro tipo de processador. Em um sistema de multiprocessamento, múltiplas unidades de processamento executam instruções executáveis por computador para aumentar a potência de processamento. Por exemplo, a Figura 1 mostra uma unidade de processamento central (110) bem como uma unidade de processamento gráfico ou unidade de coprocessamento (115). A memória tangível 120, 125 pode ser memória volátil (por exemplo, registradores, cache, RAM), memória não volátil (por exemplo, ROM, EEPROM, memória flash, etc.), ou alguma combinação das duas, acessíveis pela(s) unidade(s) de processamento. A memória 120, 125 armazena software (180) que implantara uma ou mais inovações para codificação, decodificação e/ou união de vídeo com sintaxe e semântica para valores de CPBRD que simplificam a união de vídeo, na forma de instruções executáveis por computador adequadas para execução pela(s) unidade(s) de processamento.
[0034] Um sistema de computação pode ter recursos adicionais. Por exemplo, o sistema de computação 100 inclui armazenamento 140, um ou mais dispositivos de entrada 150, um ou mais dispositivos de saída 160, e uma ou mais conexões de comunicação 170. Um mecanismo de interconexão (não mostrado) tal como um barramento, controlador, ou rede interconecta os componentes do sistema de computação 100. Tipicamente, o software de sistema operacional (não mostrado) fornece um ambiente operacional para outro software executar no sistema de computação (100), e coordena as atividades dos componentes do sistema de computação 100.
[0035] O armazenamento tangível 140 pode ser removível ou não removível, e inclui discos magnéticos, fitas ou cassetes magnéticos, CD- ROMs, DVDs, ou qualquer outro meio que possa ser usado para armazenar informações e que possa ser acessado dentro do sistema de computação 100. O armazenamento 140 armazena instruções para o software (180) implantar uma ou mais inovações para codificação, decodificação e/ou união de vídeo com sintaxe e semântica para valores de CPBRD que simplificam a união de vídeo.
[0036] O(s) dispositivo(s) de entrada 150 pode(m) ser um dispositivo de entrada de toque tal como um teclado, mouse, caneta, ou trackball, um dispositivo de entrada de voz, um dispositivo de digitalização, ou outro dispositivo que forneça entrada para o sistema de computação 100. Para codificação de vídeo, o(s) dispositivo(s) de entrada 150 pode(m) ser uma câmera, placa de vídeo, placa de sintonizador de TV, ou dispositivo similar que aceite entrada de vídeo em forma analógica ou digital, ou um CD-ROM ou CD-RW que lê entrada de vídeo no sistema de computação 100. O(s) dispositivo(s) de saída 160 pode(m) ser um visor, impressora, alto-falante, gravador de CD, ou outro dispositivo que forneça saída do sistema de computação 100.
[0037] A(s) conexão(ões) de comunicação 170 permite(m) comunicação sobre um meio de comunicação para outra entidade de computação. O meio de comunicação transporta informações tais como instruções executáveis por computador, entrada ou saída de áudio ou vídeo, ou outros dados em um sinal de dados modulado. Um sinal de dados modulado é um sinal que tem uma ou mais de suas características definidas ou mudadas de tal maneira a codificar informações no sinal. A título de exemplo, porém sem limitações, a mídia de comunicação pode usar uma portadora elétrica, óptica, RF ou outra.
[0038] As inovações podem ser descritas no contexto geral de mídia legível por computador. Mídia legível por computador é qualquer mídia tangível disponível que possa ser acessada dentro de um ambiente de computação. A título de exemplo, porém sem limitações, ao sistema de computação 100, a mídia legível por computador inclui memória 120, 125, armazenamento 140, e combinações de quaisquer dos acima.
[0039] As inovações podem ser descritas no contexto geral de instruções executáveis por computador, tais como aquelas incluídas em módulos de programa, que são executados em um sistema de computação em um processador alvo real ou virtual. Em geral, os módulos de programa incluem rotinas, programas, bibliotecas, objetos, classes, componentes, estruturas de dados, etc. que realizam tarefas particulares ou implantam tipos de dados abstratos particulares. A funcionalidade dos módulos de programa pode ser combinada ou dividida entre módulos de programa como desejado em várias modalidades. Instruções executáveis por computador para módulos de programa podem ser executadas dentro de um sistema de computação local ou distri-buídas.
[0040] Os termos "sistema" e "dispositivo" são usados intercaladamente no presente documento. A menos que o contexto indique claramente em contrário, nenhum termo implica em qualquer limitação a um tipo de sistema de computação ou dispositivo de computação. Em geral, um sistema de computação ou dispositivo de computação pode ser local ou distribuído, e pode incluir qualquer combinação de hardware de propósito especial e/ou hardware de propósito geral com software que implanta a funcionalidade descrita no presente documento.
[0041] Os métodos descritos também podem ser implantados com o uso de hardware de computação especializado configurado para realizar qualquer dos métodos descritos. Por exemplo, os métodos descritos podem ser implantados por um circuito integrado (por exemplo, um circuito integrado específico à aplicação ("ASIC") tal como um processador de sinal digital ("DSP") ASIC, uma unidade de processamento gráfico ("GPU") ou um dispositivo lógico programável ("PLD") tal como um conjunto de portas programável no campo ("FPGA")) projetado ou configurado especialmente para implantar qualquer dos métodos descritos.
[0042] Para efeito de apresentação, a descrição detalhada usa termos como "determinar" e "usar" para descrever operações de computador em um sistema de computação. Esses termos são abstrações de alto nível para operações realizadas por um computador, e não devem ser confundidos com ações realizadas por um ser humano. As operações reais de computador correspondentes a esses termos variam dependendo da implantação.
AMBIENTES DE REDE EXEMPLIFICATIVOS
[0043] As Figuras 2a e 2b mostram ambientes de rede exemplificativos 201, 202 que incluem codificadores de vídeo 220 e decodificadores de vídeo 270. Os codificadores 220 e decodificadores 270 são conectados por uma rede (250) com o uso de um protocolo de comunicação apropriado. A rede (250) pode incluir a Internet ou outra rede de computador.
[0044] No ambiente de rede 201 mostrado na Figura 2a, cada ferramenta de comunicação em tempo real ("RTC") 210 inclui tanto um codificador 220 como um decodificador 270 para comunicação bidirecional. Um dado codificador 220 pode produzir saída compatível com o padrão SMPTE 421M, padrão ISO/IEC 14496-10 (também conhecido como H.264 ou AVC), padrão HEVC (também conhecido como H.265), outro padrão, ou um formato proprietário, com um decodificador correspondente 270 que aceita dados codificados do codificador 220. A comunicação bidirecional pode ser parte de uma videoconferência, chamada de telefone com vídeo, ou outro cenário de comunicação bicompartilhado ou multicompartilhado. Embora o ambiente de rede 201 na Figura 2a inclua duas ferramentas de comunicação em tempo real 210, o ambiente de rede 201 pode em vez disso incluir três ou mais ferramentas de comunicação em tempo real 210 que participam em comunicação multicompartilhada.
[0045] Uma ferramenta de comunicação em tempo real 210 gerencia codificação por um codificador 220. A Figura 3 mostra um sistema codificador exemplificativo (300) que pode ser incluído na ferramenta de comunicação em tempo real 210. Alternativamente, a ferramenta de comunicação em tempo real 210 usa outro sistema codificador. Uma ferramenta de comunicação em tempo real 210 também gerencia a decodificação por um decodificador 270. A Figura 4 mostra um sistema decodificador exemplificativo 400, que pode ser incluído na ferramenta de comunicação em tempo real 210. Alternativamente, a ferramenta de comunicação em tempo real 210 usa outro sistema decodificador.
[0046] No ambiente de rede 202 mostrado na Figura 2b, uma ferramenta de codificação 212 inclui um codificador 220 que codifica vídeo para entrega para múltiplas ferramentas de reprodução 214, que incluem decodificadores 270. A comunicação unidirecional pode ser fornecida para um sistema de vídeo de vigilância, sistema de monitoramento por câmera de web, apresentação de conferência em computador de mesa remoto ou outro cenário no qual o vídeo seja codificado e enviado de uma localização para uma ou mais outras localizações. Embora o ambiente de rede 202 na Figura 2b inclua duas ferramentas de reprodução 214, o ambiente de rede 202 pode incluir mais ou menos ferramentas de reprodução 214. Em geral, uma ferramenta de reprodução 214 se comunica com a ferramenta de codificação 212 para determinar um fluxo de vídeo para a ferramenta de reprodução 214 receber. A ferramenta de reprodução 214 recebe o fluxo, armazena temporariamente os dados recebidos codificados por um período apropriado, e começa a decodificação e reprodução.
[0047] A Figura 3 mostra um sistema codificador exemplificativo 300 que pode ser incluído na ferramenta de codificação 212. Alternativamente, a ferramenta de codificação 212 usa outro sistema codificador. A ferramenta de codificação 212 também pode incluir lógica de controlador do lado do servidor para gerenciar conexões com um ou mais ferramentas de reprodução 214. A Figura 4 mostra um sistema decodificador exemplificativo 400, que pode ser incluído na ferramenta de reprodução 214. Alternativamente, a ferramenta de reprodução 214 usa outro sistema decodificador. Uma ferramenta de reprodução 214 também pode incluir lógica de controlador do lado cliente para gerenciar conexões com a ferramenta de codificação 212.
[0048] O ambiente de rede 201 mostrado na Figura 2a pode incluir múltiplas ferramentas de RTC com múltiplos codificadores. O ambiente de rede 202 mostrado na Figura 2b pode incluir múltiplas ferramentas de codificação com múltiplos codificadores. Esses codificadores podem produzir múltiplos fluxos de bits de saída que são unidos por uma ferramenta de união em um único fluxo de bits. Ou um único codificador pode produzir múltiplos fluxos de bits que são unidos por uma ferramenta de união em um único fluxo de bits.
SISTEMAS CODIFICADORES EXEMPLIFICATIVOS
[0049] A Figura 3 é um diagrama de blocos de um sistema codificador exemplificativo 300 em combinação com o qual algumas modalidades descritas podem ser implantadas. O sistema codificador 300 pode ser uma ferramenta de codificação de propósito geral capaz de operar em qualquer um de múltiplos modos de codificação tal como um modo de codificação de baixa latência para comunicação em tempo real, um modo de transcodificação, e um modo de codificação de latência mais alta para produzir mídia para reprodução a partir de um arquivo ou fluxo, ou a mesma pode ser uma ferramenta de codificação de propósito especial adaptada para tal modo de codificação. O sistema codificador 300 pode ser implantado como um módulo de sistema operacional, como parte de uma biblioteca de aplicações ou como uma aplicação autônoma. No geral, o sistema codificador 300 recebe uma sequência de quadros de vídeo fonte 311 a partir de uma fonte de vídeo 310 e produz dados codificados como saída para um canal 390. A saída de dados codificados para o canal pode incluir elementos de sintaxe que indicam valores de CPBRD para imagens bem como elementos de sintaxe que indicam como os valores de CPBRD devem ser interpretados.
[0050] A fonte de vídeo 310 pode ser uma câmera, placa de sintonizador, mídia de armazenamento, ou outra fonte de vídeo digital. A fonte de vídeo 310 produz uma sequência de quadros de vídeo em uma taxa de quadros de, por exemplo, 30 quadros por segundo. Como usado no presente documento, o termo "quadro" em geral se refere a dados de imagem de fonte codificados ou reconstruídos. Para vídeo de varredura progressiva, um quadro é um quadro de vídeo de varredura progressiva. Para vídeo entrelaçado, em modalidades exemplificativas, um quadro de vídeo entrelaçado é desentrelaçado antes da codificação. Alternativamente, dois campos de vídeo entrelaçado complementares são codificados juntos como um único quadro de vídeo ou codificado como dois campos codificados separadamente. Além de indicar um de quadro de vídeo de varredura progressiva ou quadro de vídeo de varredura entrelaçada, o termo "quadro" ou "imagem" pode indicar um único campo de vídeo não pareado, um par de campos de vídeo complementares, um plano de objeto de vídeo que representa um objeto de vídeo em um dado tempo, ou uma região de interesse em uma imagem maior. O plano ou região de objeto de vídeo pode ser parte de uma imagem maior que inclui múltiplos objetos ou regiões de um cenário.
[0051] Um quadro fonte que chega 311 é armazenado em uma área de armazenamento de memória temporária de quadro fonte 320 que inclui múltiplas área de armazenamento temporário de quadro 321, 322, ... , 32n. Um armazenamento temporário de quadro 321, 322, etc. mantém um quadro fonte na área de armazenamento de quadro fonte 320. Após um ou mais dos quadros fonte 311 terem sido armazenados em armazenamentos temporários de quadro 321, 322, etc., um seletor de quadro 330 seleciona um quadro fonte individual da área de armazenamento de quadro fonte 320. A ordem na qual quadros são selecionados pelo seletor de quadro 330 para entrada para o codificador 340 pode diferir da ordem na qual os quadros são produzidos pela fonte de vídeo 310, por exemplo, a codificação de alguns quadros pode ser atrasada em ordem, para permitir que alguns quadros posteriores sejam codificados primeiro e para desse modo facilitar predição regressiva temporalmente. Antes do codificador 340, o sistema codificador 300 pode incluir um pré-processador (não mostrado) que realiza pré- processamento (por exemplo, filtragem) do quadro selecionado 331 antes da codificação. O pré-processamento também pode incluir conversão de espaço de cor em componentes primário (por exemplo, luma) e secundário (por exemplo, diferenças chroma para vermelho e para azul) e processamento de reamostragem (por exemplo, para reduzir a resolução espacial de componentes chroma) para codificação.
[0052] O codificador 340 codifica o quadro selecionado 331 para produzir um quadro codificado 341 e também produz sinais de operação de controle de gerenciamento de memória ("MMCO") 342 ou informações de conjunto de imagens de referência ("RPS"). Se o quadro atual não for o primeiro quadro que tiver sido codificado, quando realizando seu processo de codificação, o codificador 340 pode usar um ou mais quadros codificados/decodificados previamente 369 que tenham sido armazenados em uma área de armazenamento de memória temporária de quadro decodificado 360. Tais quadros decodificados armazenados 369 são usados como quadros de referência para predição interquadros do conteúdo do quadro fonte atual 331. As informações de MMCO/RPS 342 indicam para um decodificador que quadros reconstruídos podem ser usados como quadros de referência, e consequentemente devem ser armazenados em uma área de armazenamento de quadro.
[0053] Em geral, o codificador 340 inclui múltiplos módulos de codificação que realizam tarefas de codificação tais como estimativa e compensação de movimento, transformações de frequência, quantização e codificação entrópica. As operações exatas realizadas pelo codificador 340 podem variar dependendo de formato de compressão. O formato dos dados codificados de saída pode ser um formato de Vídeo de Windows Mídia, formato VC-1, formato MPEG-x (por exemplo, MPEG-1, MPEG-2, ou MPEG-4), formato H.26x (por exemplo, H.261, H.262, H.263, H.264), formato HEVC (H.265) ou outro formato.
[0054] Por exemplo, dentro do codificador 340, um quadro predito codificado interquadro é representado em termos de predição a partir de quadros de referência. Um estimador de movimento estima o movimento de conjuntos de amostras de um quadro fonte 331 com respeito a um ou mais quadros de referência 369. Um conjunto de amostras pode ser um macrobloco, submacrobloco ou partição de submacrobloco (como no padrão H.264), ou o mesmo pode ser uma unidade de árvore de codificação ou unidade de predição (como no padrão HEVC). Em geral, como usado no presente documento, o termo "bloco" indica um conjunto de amostras, que pode ser uma única matriz bidimensional ("2D") ou múltiplas matrizes 2D (por exemplo, uma matriz para um componente luma e duas matrizes para componentes chroma). Quando múltiplos quadros de referência são usados, os múltiplos quadros de referência podem ser de direções temporais diferentes ou da mesma direção temporal. O estimador de movimento emite informações de movimento tais como informações de vetor de movimento, que são codificadas por entropia. Um compensador de movimento aplica vetores de movimento a quadros de referência para determinar valores de predição com movimento compensado para predição interquadros. O codificador determina as diferenças (se houver) entre valores de predição com movimento compensado de um bloco e valores originais correspondentes. Esses valores residuais de predição são codificados adicionalmente com o uso de uma transformação de frequência, quantização e codificação entrópica. Por exemplo, o codificador 340 define valores para parâmetro de quantização de luma ("QP") e QP de chroma para uma imagem, fatia e/ou outra porção de vídeo, e quantiza coeficientes de transformação em conformidade. De maneira similar, para predição intraquadro, o codificador 340 pode determinar valores de predição intra para um bloco, determinar valores residuais de predição, e codificar os valores residuais de predição (com uma transformação de frequência, quantização e codificação entrópica). Em particular, o codificador de entropia do codificador 340 compreende valores de coeficiente de transformação quantizada bem como certas informações secundárias (por exemplo, informações de vetor de movimento, valores de QP, decisões de modo, escolhas de parâmetro). Técnicas de codificação entrópica típicas incluem codificação de Golomb Exponencial, codificação de Golomb-Rice, codificação aritmética, codificação diferencial, codificação de Huffman, codificação run length, codificação de tamanho variável para tamanho variável ("V2V"), codificação de tamanho variável para tamanho fixo ("V2F"), codificação de Lempel-Ziv ("LZ"), codificação de dicionário, codificação entrópica de particionamento de intervalo de probabilidade ("PIPE"), e combinações destes. O codificador de entropia pode usar técnicas de codificação diferentes para tipos de informações diferentes, pode aplicar múltiplas técnicas em combinação (por exemplo, aplicando-se codificação de Golomb-Rice seguida por codificação aritmética), e pode escolher dentre múltiplas tabelas de código dentro de uma técnica de codificação particular.
[0055] Os quadros codificados 341 e informações de MMCO/RPS 342 (ou informações equivalentes às informações de MMCO/RPS 342, uma vez que as dependências e estruturas de ordenação para quadros já são conhecidas no codificador 340) são processadas por um emulador de processo de decodificação 350. O emulador de processo de decodificação 350 implanta parte da funcionalidade de um decodificador, por exemplo, tarefas de decodificação para reconstruir quadros de referência que são usados pelo codificador 340 em estimativa e compensação de movimento. De uma maneira consistente com as informações de MMCO/RPS 342, o emulador de processo de decodificação 350 determina se um dado quadro codificado 341 precisa ser reconstruído e armazenado para usar como um quadro de referência em predição interquadros de quadros subsequentes a serem codificados. Se um quadro codificado 341 precisa ser armazenado, o emulador de processo de decodificação 350 modela o processo de decodificação que deve ser conduzido por um decodificador que recebe o quadro codificado 341 e produz um quadro decodificado correspondente 351. Dessa forma, quando o codificador 340 tiver usado quadro(s) decodificado(s) 369 que tiverem sido armazenados na área de armazenamento de quadro decodificado 360, o emulador de processo de decodificação 350 também usa o(s) quadro(s) decodificado(s) 369 da área de armazenamento 360 como parte do processo de decodificação.
[0056] A área de armazenamento de memória temporária de quadro decodificado 360 inclui múltiplas áreas de armazenamento temporário de quadro 361, 362, ..., 36n. De uma maneira consistente com as informações de MMCO/RPS 342, o emulador de processo de decodificação 350 gerencia os conteúdos da área de armazenamento 360 a fim de identificar quaisquer armazenamentos temporários de quadro 361, 362, etc. com quadros que não são mais necessários para serem usados como quadros de referência pelo codificador 340. Após modelar o processo de decodificação, o emulador de processo de decodificação 350 armazena um quadro recém-decodificado 351 em um armazenamento temporário de quadro 361, 362, etc. que tiver sido identificado dessa maneira.
[0057] O codificador 340 define valores de CPBRD para imagens que são codificadas de acordo com uma especificação de um modelo de fluxo de armazenamento temporário (por exemplo, decodificador de referência hipotética ("HRD") ou verificador de armazenamento temporário de vídeo ("VBV")). Dessa forma, o codificador 340 aplica restrições sobre flutuações na taxa de bits para o fluxo de bits, de modo a ajudar a assegurar que o fluxo de bits possa ser decodificado dentro dos recursos de armazenamento temporário de um sistema de decodificação. O codificador 340 também define os valores de CPBRD para ajudar um decodificador a determinar o sincronismo e etapas para a operação de seu processo de decodificação.
[0058] Os quadros codificados 341 e informações de MMCO/RPS 342 (ou informações equivalentes às informações de MMCO/RPS) também são armazenados temporariamente em uma área de dados codificados temporários 370. Os dados codificados que são agregados na área de dados codificados 370 contêm, como parte da sintaxe de um fluxo de bits de vídeo codificado elementar, dados codificados para uma ou mais imagens. Os dados codificados que são agregados na área de dados codificados 370 também podem incluir metadados de mídia que se referem aos dados de vídeo codificados (por exemplo, como um ou mais parâmetros em uma ou mais mensagens informações de aprimoramento suplementares ("SEI") ou mensagens de informações de usabilidade de vídeo ("VUI")). Esses metadados de mídia podem incluir elementos de sintaxe que indicam valores de CPBRD para imagens bem como elementos de sintaxe que indicam como os valores de CPBRD devem ser interpretados (por exemplo, como parte de mensagens de SEI de PT e mensagens de SEI de BP).
[0059] Os dados agregados 371 a partir da área de dados codificados temporários 370 são processados por um codificador de canal 380. O codificador de canal 380 pode empacotar e/ou multiplexar os dados agregados para transmissão ou armazenamento como um fluxo de mídia (por exemplo, de acordo com um formato de fluxo de programa de mídia ou de fluxo de transporte tal como ITU-T H.222.0 | ISO/IEC 13818-1 ou um formato de protocolo de transporte de Internet em tempo real tal como IETF RFC 3550), em cujo caso o codificador de canal 380 pode adicionar elementos de sintaxe como parte da sintaxe do fluxo de transmissão de mídia. Essa sintaxe pode incluir elementos de sintaxe que indicam valores de CPBRD para imagens bem como elementos de sintaxe que indicam como os valores de CPBRD devem ser interpretados. Ou, o codificador de canal 380 pode organizar os dados agregados para armazenamento como um arquivo (por exemplo, de acordo com um formato de contentor de mídia tal como ISO/IEC 14496-12), em cujo caso o codificador de canal 380 pode adicionar elementos de sintaxe como parte da sintaxe do arquivo de armazenamento de mídia. Essa sintaxe pode incluir elementos de sintaxe que indicam valores de CPBRD para imagens bem como elementos de sintaxe que indicam como os valores de CPBRD devem ser interpretados. Ou, de forma mais geral, o codificador de canal 380 pode implantar um ou mais protocolos de multiplexação de sistema de mídia ou protocolo de transportes, em cujo caso o codificador de canal 380 pode adicionar elementos de sintaxe como parte da sintaxe de o(s) protocolo(s). Novamente, essa sintaxe pode incluir elementos de sintaxe que indicam valores de CPBRD para imagens bem como elementos de sintaxe que indicam como os valores de CPBRD devem ser interpretados. O codificador de canal 380 fornece saída para um canal 390, que representa armazenamento, uma conexão de comunicações, ou outro canal para a saída. O codificador de canal 380 ou canal 390 também pode incluir outros elementos (não mostrados), tais como codificação de correção de erro de encaminhamento ("FEC") e modulação de sinal analógico.
SISTEMAS DECODIFICADORES EXEMPLIFICATIVOS
[0060] A Figura 4 é um diagrama de blocos de um sistema decodificador exemplificativo 400 em combinação com o qual algumas modalidades descritas podem ser implantadas. O sistema decodificador 400 pode ser uma ferramenta de decodificação de propósito geral capaz de operar em qualquer de múltiplos modos de decodificação tais como um de modo de decodificação de latência baixa para comunicação em tempo real e um modo de decodificação de latência mais alta para reprodução de mídia a partir de um arquivo ou fluxo, ou o mesmo pode ser uma ferramenta de decodificação de propósito especial adaptada para tal modo de decodificação. O sistema decodificador 400 pode ser implantado como um módulo de sistema operacional, como parte de uma biblioteca de aplicações ou como uma aplicação autônoma. No geral, o sistema decodificador 400 recebe dados codificados de um canal 410 e produz quadros reconstruídos como saída para um destino de saída 490. Os dados codificados podem incluir elementos de sintaxe que indicam valores de CPBRD para imagens bem como elementos de sintaxe que indicam como os valores de CPBRD devem ser interpretados.
[0061] O sistema decodificador 400 inclui um canal 410, que pode representar armazenamento, uma conexão de comunicações, ou outro canal para dados codificados como entrada. O canal 410 produz dados codificados que tiverem sido codificados no canal. Um decodificador de canal 420 pode processar os dados codificados. Por exemplo, o decodificador de canal 420 desempacota e/ou demultiplexa dados que tiverem sido agregados para transmissão ou armazenamento como um fluxo de mídia (por exemplo, de acordo com um formato de fluxo de programa de mídia ou de fluxo de transporte tal como ITU-T H.222.0 | ISO/IEC 13818-1 ou um formato de protocolo de transporte de internet em tempo real tal como IETF RFC 3550), em cujo caso o decodificador de canal 420 pode analisar elementos de sintaxe adicionados como parte da sintaxe do fluxo de transmissão de mídia. Essa sintaxe pode incluir elementos de sintaxe que indicam valores de CPBRD para imagens bem como elementos de sintaxe que indicam como os valores de CPBRD devem ser interpretados. Ou, o decodificador de canal 420 separa dados de vídeo codificados que tiverem sido agregados para armazenamento como um arquivo (por exemplo, de acordo com um formato de contentor de mídia tal como ISO/IEC 14496-12), em cujo caso o decodificador de canal 420 pode analisar elementos de sintaxe adicionados como parte da sintaxe do arquivo de armazenamento de mídia. Essa sintaxe pode incluir elementos de sintaxe que indicam valores de CPBRD para imagens bem como elementos de sintaxe que indicam como os valores de CPBRD devem ser interpretados. Ou, de forma mais geral, o decodificador de canal 420 pode implantar um ou mais protocolos de demultiplexação de sistema de mídia ou protocolos de transporte, em cujo caso o decodificador de canal 420 pode analisar elementos de sintaxe adicionados como parte da sintaxe de o(s) protocolo(s). Novamente, essa sintaxe pode incluir elementos de sintaxe que indicam valores de CPBRD para imagens bem como elementos de sintaxe que indicam como os valores de CPBRD devem ser interpretados. O canal 410 ou decodificador de canal 420 também pode incluir outros elementos (não mostrados), tais como decodificação de FEC e demodulação sinal analógico.
[0062] Os dados codificados 421 que são emitidos a partir do decodificador de canal 420 são armazenados em uma área de dados codificados temporários 430 até que uma quantidade suficiente desses dados tenha sido recebida. Os dados codificados 421 incluem quadros codificados 431 e informações de MMCO/RPS (432). Os dados codificados 421 na área de dados codificados 430 contêm, como parte da sintaxe de um fluxo de bits de vídeo codificado elementar, dados codificados para uma ou mais imagens. Os dados codificados 421 na área de dados codificados 430 também podem incluir metadados de mídia que se referem aos dados de vídeo codificados (por exemplo, como um ou mais parâmetros em uma ou mais mensagens de SEI ou mensagens de VUI). Esses metadados de mídia podem incluir elementos de sintaxe que indicam valores de CPBRD para imagens bem como elementos de sintaxe que indicam como os valores de CPBRD devem ser interpretados (por exemplo, como parte de mensagens de SEI de PT e mensagens de SEI de BP).
[0063] O decodificador 450 usa os valores de CPBRD para determine o sincronismo e etapas para operação de seu processo de decodificação global. Em geral, a área de dados codificados 430 armazena dados codificados temporariamente 421 até que esses dados codificados 421 sejam usados pelo decodificador 450, como indicado por um valor de CPBRD. Nesse ponto, os dados codificados para um quadro codificado 431 e informações de MMCO/RPS (432) são transferidos da área de dados codificados 430 para o decodificador 450. Quando a decodificação continua, novos dados codificados são adicionados à área de dados codificados 430 e os dados codificados mais velhos que permanecem na área de dados codificados 430 são transferidos para o decodificador 450.
[0064] O decodificador 450 decodifica um quadro codificado 431 para produzir um quadro decodificado correspondente 451. Quando apropriado, durante a realização de seu processo de decodificação, o decodificador 450 pode usar um ou mais quadros decodificados previamente (469) como quadros de referência para predição interquadros. O decodificador 450 lê esses quadros decodificados previamente (469) de uma área de armazenamento de memória temporária de quadro decodificado (460). Em geral, o decodificador 450 inclui múltiplos módulos de decodificação que realizam tarefas de decodificação tais como decodificação entrópica, predição intraquadro, predição interquadros com movimento compensado, quantização inversa, e transformações de frequência inversas. As operações exatas realizadas pelo decodificador 450 podem variar dependendo do formato de compressão.
[0065] Por exemplo, o decodificador 450 recebe dados codificados para um quadro ou sequência de quadros comprimidos e produz saída que inclui quadro decodificado 451. No decodificador 450, um armazenamento temporário recebe dados codificados para um quadro comprimido e, em um tempo apropriado como indicado nominalmente por um valor de CPBRD, torna os dados codificados recebidos disponíveis para um decodificador de entropia. O decodificador de decodifica por entropia por entropia dados quantizados codificados por entropia bem como informações secundárias codificadas por entropia, tipicamente com a aplicação do inverso de codificação entrópica realizada no codificador. Um compensador de movimento aplica informações de movimento a um ou mais quadros de referência para formar predições de blocos com movimento compensado (por exemplo, macroblocos, submacroblocos, partição de submacroblocos, unidades de árvore de codificação, unidades de predição, ou partes dos mesmos, tal como blocos de árvore de codificação, blocos de predição ou outros blocos) do quadro que está sendo reconstruído. Um módulo de predição intraquadro pode predizer espacialmente valores de amostra de um bloco atual a partir de valores de amostras vizinhas reconstruídas previamente. O decodificador 450 também reconstrói valores residuais de predição. Um quantizador inverso quantiza inversamente dados decodificados por entropia. Por exemplo, o decodificador 450 define valores para QP de luma e QP de chroma para uma imagem, fatia e/ou outra porção de vídeo baseado em elementos de sintaxe no fluxo de bits, e quantiza inversamente coeficientes de transformação em conformidade. Um transformador de frequência inversa converte os dados de domínio de frequência quantizados em informações de domínio espacial. Para um quadro predito interquadros, o decodificador 450 combina valores residuais de predição reconstruídos com predições com movimento compensado para formar um quadro reconstruído. O decodificador 450 pode de maneira similar combinar valores residuais de predição com predições espaciais de predição intraquadro. Um filtro redutor de efeito de bloco adaptativo é incluído dentro do ciclo de compensação de movimento no decodificador de vídeo 450 para suavizar descontinuidades através das linhas e/ou colunas limites do bloco no quadro decodificado 451. Outra filtragem (tal como filtragem de detecção de bordas, filtragem adaptativa de laço ("ALF"), ou filtragem de deslocamento adaptativo de amostra ("SAO"); não mostrada) pode alternativa ou adicionalmente ser aplicada como operações de filtragem in-loop.
[0066] A área de armazenamento de memória temporária de quadro decodificado 460 inclui múltiplas áreas de armazenamento temporário de quadro 461, 462, ..., 46n. A área de armazenamento de quadro decodificado 460 é um exemplo de um DPB. O decodificador 450 usa as informações de MMCO/RPS 432 para identificar um armazenamento temporário de quadro 461, 462, etc. no qual o mesmo possa armazenar um quadro decodificado 451. O decodificador 450 armazena o quadro decodificado 451 naquele armazenamento temporário de quadro.
[0067] Um sequenciador de saída 480 identifica (por exemplo, com o uso de informações no BP e mensagens de SEI de PT) quando o próximo quadro a ser produzido em ordem de saída está disponível na área de armazenamento de quadro decodificado 460. Quando o próximo quadro 481 a ser produzido em ordem de saída está disponível na área de armazenamento de quadro decodificado 460, o mesmo é lido pelo sequenciador de saída 480 e sai para o destino de saída 490 (por exemplo, visor). Em geral, a ordem na qual os quadros são emitidos da área de armazenamento de quadro decodificado 460 pelo sequenciador de saída 480 pode diferir da ordem na qual os quadros são decodificados pelo decodificador 450.
CODIFICADORES DE VÍDEO EXEMPLIFICATIVOS
[0068] A Figura 5 é um diagrama de blocos de um codificador de vídeo generalizado 500 em combinação com o qual algumas modalidades descritas podem ser implantadas. O codificador 500 recebe uma sequência de quadros de vídeo que inclui um quadro atual 505 e produz dados codificados 595 como saída.
[0069] O codificador 500 é baseado em bloco e usa um formato de bloco que depende da implantação. Os blocos podem ser subdivididos adicionalmente em estágios diferentes, por exemplo, nos estágios de transformação de frequência e codificação entrópica. Por exemplo, um quadro pode ser dividido em blocos 64x64, blocos 32x32 ou blocos16x16, os quais podem por sua vez ser divididos em blocos menores de valores de amostra para codificação e decodificação.
[0070] O sistema codificador 500 compreende quadros preditos interquadros e quadros codificados intraquadro. Por uma questão de apresentação, a Figura 5 mostra um "percurso intra" através do codificador 500 para codificação intraquadro e um "percurso inter" para codificação interquadros. Muitos dos componentes do codificador 500 são usados tanto para codificação intraquadro como codificação interquadros. As operações exatas realizadas por aqueles componentes podem variar dependendo do tipo de informações que são comprimidas.
[0071] Se o quadro atual 505 for um quadro predito interquadros, um estimador de movimento 510 estima o movimento de blocos (por exemplo, macroblocos, submacroblocos, partição de submacroblocos, unidades de árvore de codificação, unidades de predição, ou partes dos mesmos, tal como blocos de árvore de codificação, blocos de predição ou outros blocos) do quadro atual 505 com respeito a um ou mais quadros de referência. O armazenamento de quadro 520 armazena temporariamente um ou mais quadros prévios reconstruídos 525 para usar como quadros de referência. Quando múltiplos quadros de referência são usados, os múltiplos quadros de referência podem ser de direções temporais diferentes ou da mesma direção temporal. O estimador de movimento 510 emite, como informações secundárias, informações de movimento 515 tais como informações de vetor de movimento diferenciais.
[0072] O compensador de movimento 530 aplica vetores de movimento reconstruídos ao(s) quadro(s) de referência reconstruído(s) 525 durante a formação de um quadro atual com movimento compensado 535. A diferença (se houver) entre um bloco do quadro atual com movimento compensado 535 e uma parte correspondente do quadro atual original 505 é a predição residual 545 para o bloco. Durante reconstrução posterior do quadro atual, os valores residuais de predição reconstruídos são adicionados ao quadro atual com movimento compensado 535 para obter um quadro reconstruído que seja próximo ao quadro atual original 505. Em compressão com perdas, entretanto, algumas informações ainda são perdidas do quadro atual original 505. O percurso intra pode incluir um módulo de predição intra (não mostrado) que prediz espacialmente valores de amostra de um bloco atual a partir de valores de amostra vizinhos reconstruídos previamente.
[0073] Um transformador de frequência 560 converte informações de domínio espacial de vídeo em dados de domínio de frequência (ou seja, transformação espectral). Para quadros de vídeo baseados em bloco, o transformador de frequência 560 aplica uma transformada discreta de cosseno, uma aproximação inteira da mesma, ou outro tipo de transformação de bloco de encaminhamento (por exemplo, uma transformada discreta de seno ou uma aproximação inteira da mesma) a blocos de dados de valor de amostra ou dados de residuais de predição, que produzem blocos de coeficientes de transformação de frequência. Um quantizador 570 então quantiza os coeficientes de transformação. Por exemplo, o quantizador 570 aplica quantização escalar com zona morta aos dados do domínio de frequência com um tamanho de etapa de quantização que varia em uma base quadro a quadro, base fatia a fatia, base bloco a bloco, base de frequência específica, ou outra base. Por exemplo, o codificador 500 define valores para QP de luma e QP de chroma para uma imagem, fatia e/ou outra porção de vídeo tal como uma unidade de codificação, e quantiza coeficientes de transformação em conformidade.
[0074] Quando uma versão reconstruída do quadro atual é necessária para estimativa/compensação de movimento subsequente, um quantizador inverso 576 realiza quantização inversa nos dados de coeficiente de frequência quantizados. Um transformador de frequência inversa 566 realiza uma transformação de frequência inversa que produz blocos de valores residuais de predição reconstruídos ou valores de amostra. Para um quadro predito interquadros, o codificador 500 combina valores residuais de predição reconstruídos 545 com predições com movimento compensado 535 para formar o quadro reconstruído 505. (Embora não mostrado na Figura 5, no percurso intra, o codificador 500 pode combinar valores residuais de predição com predições espaciais de predição intra.) O armazenamento de quadro 520 armazena temporariamente o quadro reconstruído atual para usar em predição com movimento compensado subsequente.
[0075] Em A Figura 5, um ciclo de compensação de movimento no codificador 500 inclui um filtro redutor de efeito de bloco adaptativo 510 (tipicamente) antes do armazenamento de quadro 520. O decodificador 500 aplica filtragem in-loop a quadros reconstruídos para suavizar adaptativamente descontinuidades através das fronteiras nos quadros. Outra filtragem (tal como filtragem de detecção de bordas, filtragem ALF, ou SAO; não mostrada) pode alternativa ou adicionalmente ser aplicada como operações de filtragem in-loop.
[0076] O codificador de entropia 580 compreende a saída do quantizador 570 bem como informações de movimento 515 e certas informações secundárias (por exemplo, valores de QP). O codificador de entropia 580 fornece dados codificados 595 para o armazenamento temporário 590, que multiplexa os dados codificados em um fluxo de bits de saída.
[0077] Um controlador (não mostrado) recebe entradas de vários módulos do codificador. O controlador avalia resultados intermediários durante a codificação, por exemplo, definir valores de QP e realizar de análise de distorção de taxa. O controlador trabalha com outros módulos para definir e mudar parâmetros de codificação durante a codificação. O controlador pode definir valores de CPBRD para imagens que são codificadas de acordo com um modelo de fluxo de armazenamento temporário. Dessa forma, o controlador pode aplicar restrições sobre flutuações na taxa de bits ao fluxo de bits, de modo a ajudar a assegurar que o fluxo de bits possa ser decodificado dentro dos recursos de armazenamento temporário de um sistema de decodificação. O controlador também define os valores de CPBRD para ajudar um decodificador a determinar o sincronismo e etapas para operação de seu processo de decodificação.
[0078] Dependendo da implantação e do tipo de compressão desejados, módulos do codificador podem ser adicionados, omitidos, divididos em múltiplos módulos, combinados com outros módulos, e/ou substituídos com módulos semelhantes. Em modalidades alternativas, codificadores com módulos diferentes e/ou outras configurações de módulos realizam uma ou mais das técnicas descritas. Modalidades específicas de codificadores tipicamente usam uma variação ou versão complementada do codificador 500. Os relacionamentos mostrados entre módulos dentro do codificador 500 indicam fluxos gerais de informações no codificador; outros relacionamentos não são mostrados por uma questão de simplicidade.
DECODIFICADORES DE VÍDEO EXEMPLIFICATIVOS
[0079] A Figura 6 é um diagrama de blocos de um decodificador generalizado 600 em combinação com o qual diversas modalidades descritas podem ser implantadas. O decodificador 600 recebe dados codificados 695 para um quadro ou sequência de quadros comprimidos e produz saída que inclui um quadro reconstruído 605. Por uma questão de apresentação, a Figura 6 mostra um "percurso intra" através do decodificador 600 para decodificação intraquadro e um "percurso inter" para decodificação interquadros. Muitos dos componentes do decodificador 600 são usados tanto para decodificação intraquadro como para decodificação interquadros. As operações exatas realizadas por aqueles componentes podem variar dependendo do tipo de informações que estão sendo descomprimidas.
[0080] Um armazenamento temporário 690 recebe dados codificados 695 para um quadro comprimido e torna os dados codificados recebidos disponíveis para o analisador/decodificador de entropia 680, com sincronismo indicado pelo menos em parte por valores de CPBRD para os quadros respectivos. O analisador/decodificador de entropia 680 decodifica por entropia dados quantizados codificados por entropia bem como informações secundárias codificadas por entropia, tipicamente com a aplicação do inverso de codificação entrópica realizada no codificador.
[0081] Um compensador de movimento 630 aplica informações de movimento 615 a um ou mais quadros de referência 625 para formar predições com movimento compensado 635 de blocos (por exemplo, macroblocos, submacroblocos, partição de submacroblocos, unidades de árvore de codificação, unidades de predição, ou partes dos mesmos, tais como blocos de árvore de codificação, blocos de predição ou outros blocos) do quadro 605 que está sendo reconstruído. O armazenamento de quadro 620 armazena um ou mais quadros reconstruídos previamente para usar como quadros de referência.
[0082] O percurso intra pode incluir um módulo de predição intra (não mostrado) que prediz espacialmente valores de amostra de um bloco atual a partir de valores de amostra vizinhos reconstruídos previamente. No percurso inter, o decodificador 600 reconstrói valores residuais de predição. Um quantizador inverso 670 quantiza inversamente dados decodificados por entropia. Por exemplo, o decodificador 600 define valores para QP de luma e QP de chroma para uma imagem, fatia e/ou outra porção de vídeo tal como uma unidade de codificação, baseada em elementos de sintaxe no fluxo de bits, e o quantizador inverso 670 quantiza inversamente coeficientes de transformação em conformidade.
[0083] Um transformador de frequência inversa 660 converte os dados reconstruídos do domínio de frequência em informações de domínio espacial. Por exemplo, o transformador de frequência inversa 660 aplica uma transformação de bloco inversa a coeficientes de transformação de frequência que produz dados de valor de amostra ou dados residuais de predição. A transformação de frequência inversa pode ser uma transformada discreta de cosseno inversa, uma aproximação inteira da mesma, ou outro tipo de transformação de frequência inversa (por exemplo, uma transformada discreta de seno inversa ou uma aproximação inteira da mesma).
[0084] Para um quadro predito interquadros, o decodificador 600 combina valores residuais de predição reconstruídos 645 com predições com movimento compensado 635 para formar o quadro reconstruído 605. (Embora não mostrado na Figura 6, no percurso intra, o decodificador 600 pode combinar valores residuais de predição com predições espaciais de predição intraquadro). Um ciclo de compensação de movimento no decodificador 600 inclui um filtro redutor de efeito de bloco adaptativo 610 antes ou após o armazenamento de quadro 620. O decodificador 600 aplica filtragem in-loop a quadros reconstruídos para suavizar adaptativamente descontinuidades através das fronteiras nos quadros. Outra filtragem (tal como filtragem de detecção de bordas, filtragem ALF, ou SAO; não mostrada) pode alternativa ou adicionalmente ser aplicada como operações de filtragem in-loop.
[0085] Na Figura 6, o decodificador 600 também inclui um filtro pós- processamento 608. O filtro pós-processamento 608 pode incluir filtragem de detecção de bordas, filtragem Wiener adaptativa, filtragem de reprodução de granulação de filme, filtragem SAO ou outro tipo de filtragem.
[0086] Dependendo da implantação e do tipo de descompressão desejada, módulos do decodificador podem ser adicionados, omitidos, divididos em múltiplos módulos, combinados com outros módulos, e/ou substituídos por módulos semelhantes. Em modalidades alternativas, decodificadores com módulos diferentes e/ou outras configurações de módulos realizam uma ou mais das técnicas descritas. Modalidades específicas de decodificadores usam tipicamente uma variação ou versão complementada do decodificador 600. Os relacionamentos mostrados entre módulos dentro do decodificador 600 indicam fluxos de informações gerais no decodificador; outros relacionamentos não são mostrados por uma questão de simplicidade.
SINTAXE E SEMÂNTICA PARA VALORES DE CPBRD PARA SIMPLIFICAR UNIÃO
[0087] Essa seção apresenta várias inovações para sintaxe e semântica de valores de atraso de remoção de armazenamento temporário de imagem codificada ("CPBRD"). Em muitos casos, as inovações simplificam a união de sequências de vídeo. Vários exemplos são fornecidos para valores de CPBRD como sinalizado em mensagens de informações de aprimoramento suplementares ("SEI") de acordo com o padrão HEVC e o padrão H.264/AVC.
INTRODUÇÃO
[0088] Em versões preliminares do padrão HEVC tais como JCTVC- K1003, e no padrão H.264/AVC, a sintaxe e semântica são especificadas para uma mensagem de SEI de sincronismo de imagem ("PT SEI"). Uma mensagem de SEI de PT inclui um elemento de sintaxe que indica atraso de remoção de armazenamento temporário de imagem codificada ("CPBRD"). Em JCTVC-K1003, o elemento de sintaxe é nomeado au_cpb_removal_delay_minus1, e o mesmo é interpretado adicionando-se 1 ao valor inteiro codificado que é sinalizado em uma mensagem de SEI de PT.
[0089] Em geral, junto com o atraso de armazenamento temporário inicial (ou, alternativamente, uma plenitude de armazenamento temporário inicial), o valor de CPBRD para uma dada imagem (tipicamente chamada a "imagem atual") especifica o tempo nominal no qual os dados codificados associados à imagem devem ser removidos do armazenamento temporário de imagem codificada ("CPB"). O CPB é um armazenamento temporário de decodificador hipotético, e o decodificador pode usar o mesmo como referência para projetar o armazenamento temporário de decodificador. Também, um codificador pode gerar fluxos de bits compatíveis baseados no armazenamento temporário de decodificador hipotético. No contexto do padrão HEVC, o conjunto de dados associados à imagem atual é uma "unidade de acesso". O valor de CPBRD é entendido no contexto de um modelo de armazenamento temporário, que pode ser chamado um HRD ou VBV. A especificação de acordo com o modelo de armazenamento temporário ajuda a assegurar que fluxos de bits possam ser decodificados dentro dos recursos de armazenamento temporário de um sistema de decodificação, e ajuda o decodificador a determinar o sincronismo e etapas para operação de seu processo de decodificação global para imagens.
[0090] A referência de sincronismo para valores de CPBRD é redefinida para mensagens subsequentes quando uma mensagem de SEI de período de armazenamento temporário ("BP SEI") estiver presente nos dados de vídeo codificados. Em JCTVC-K1003, um valor de CPBRD sempre é codificado relativo ao tempo de remoção nominal da imagem precedente (se houver) em ordem de decodificação que continha uma mensagem de SEI de BP. Um codificador poderia enviar uma mensagem de SEI de BP juntamente com cada imagem de ponto de acesso randômico ("RAP") no fluxo de bits. Um codificador também pode enviar mensagens de SEI de BP com outras imagens que não são imagens RAP.
[0091] Uma ferramenta de união de vídeo comumente realiza operações de união nas localizações de imagens de RAP em fluxos de bits. Uma imagem de RAP pode ser uma imagem de atualização de decodificador instantânea ("IDR"). A imagem de RAP tem uma mensagem de SEI de BP associada à mesma. Por exemplo, uma operação de união pode ser usada para inserir um comercial ou série de comerciais em um programa de televisão, ou para comutar entre diferentes programas de televisão.
[0092] O projeto para imagens de RAP de HEVC é destinado especificamente a permitir o uso de imagens de RAP como pontos de união para fluxos de bits. Em JCTVC-K1003, entretanto, o valor de CPBRD é sempre codificado relativo ao tempo de remoção nominal de CPB da imagem precedente em ordem de decodificação que tem uma mensagem de SEI de BP. Devido a esse ponto de referência, pode ser difícil para um sistema de união determinar o valor correto para o valor de CPBRD ao fazer a união entre fluxos de bits (ou concatenar suavemente fluxos de bits codificados separadamente para formar um fluxo de bits mais longo).
[0093] Assim, para abordagens para sintaxe e semântica de CPBRD como em JCTVC-K1003, a fim de realizar uma operação de união para comutar de envio de imagens de um fluxo de bits A para envio de imagens de um fluxo de bits B, uma ferramenta de união ajusta o valor de CPBRD da imagem em um ponto de união (ou seja, o valor de CPBRD em uma mensagem de SEI de PT associado à imagem no ponto de união). O ponto de união, em que a comutação acontece, é uma localização que corresponde a uma imagem de RAP no fluxo de bits B. (A imagem de RAP no fluxo de bits B no ponto de união também tem uma mensagem de SEI de BP com a mesma, e a mensagem de SEI de BP redefinirá o tempo de referência para valores de CPBRD das imagens subsequentes do fluxo de bits B em ordem de decodificação, assim o ajuste de valores de CPBRD para imagens subsequentes no fluxo de bits B é desnecessário). Para efetuar a operação de união, a ferramenta de união realiza tipicamente as seguintes etapas, embora não necessariamente nessa ordem, e, podem existir algumas variações alternativas.
[0094] A ferramenta de união encontra e lê o valor de CPBRD da imagem de RAP no fluxo de bits B, relativo ao tempo de remoção nominal da imagem com a mensagem de SEI de BP anterior no fluxo de bits B. O valor desse CPBRD é DRAPB. Se não houver nenhuma imagem precedente no fluxo de bits B, DRAPB pode ser definido para um valor baseado na taxa de quadros local (por exemplo, baseado em DeltaToDivisor, que pode ser especificado baseado no valor de _struct_present_flag, field_pic_flag, e pic_struct para a última imagem no fluxo de bits A ou primeira imagem no fluxo de bits B).
[0095] A ferramenta de união também encontra e lê o valor de CPBRD da imagem (do fluxo de bits B) que precedeu a imagem de RAP em ordem de decodificação no fluxo de bits B, que é um atraso relativo à imagem com a mensagem de SEI de BP anterior no fluxo de bits B. O valor desse CPBRD é DPREVB. Se não houver nenhuma imagem precedente no fluxo de bits B, DPREVB é definido para 0.
[0096] A ferramenta de união também encontra e lê o valor de CPBRD da última imagem (do fluxo de bits A) que precede o ponto de união em ordem de decodificação no fluxo de bits A, que é um atraso relativo à imagem com a mensagem de SEI de BP anterior no fluxo de bits A. O valor desse CPBRD é DPREVA. Se a última imagem (do fluxo de bits A) que precede o ponto de união em ordem de decodificação no fluxo de bits A for uma imagem com uma mensagem de SEI de BP, DPREVA é definido para 0.
[0097] A ferramenta de união então modifica o valor de CPBRD da imagem de RAP do fluxo de bits B no ponto de união que define que o valor de CPBRD é igual a DPREVA + (DRAPB - DPREVB), para que o valor de CPBRD da imagem de RAP do fluxo de bits B no ponto de união seja expresso relativo à imagem com a mensagem de SEI de BP anterior no fluxo de bits A. A ferramenta de união coloca essa imagem de RAP modificada e as imagens subsequentes do fluxo de bits B no fluxo de bits unido após as imagens que foram obtidas do fluxo de bits A.
[0098] Certos detalhes, associados a outras operações e complicações potenciais foram omitidos dessa descrição. Por exemplo, a descrição não endereça casos em que o valor de verificação de sincronismo de referência é diferente entre os dois fluxos de bits ou quando as localizações de imagens de RAP e de mensagem de SEI de BP não coincidirem.
[0099] A ferramenta de união realiza as operações de descoberta e leitura descritas acima devido a, de acordo com abordagens anteriores para sintaxe e semântica de CPBRD, as informações de CPBRD serem referenciadas à imagem no fluxo de bits com a mensagem de SEI de BP anterior. A ferramenta de união ajusta as informações de CPBRD no fluxo de bits unido para que o valor de CPBRD no ponto de união seja expresso relativo a esse ponto de referência. As operações de descoberta e leitura de valores de CPBRD podem ser pesadas e difíceis para realizar, e podem requerer acesso a dados que não são facilmente acessíveis ao sistema de união (por exemplo, devido a restrições de criptografia ou capacidade de armazenamento temporário).
[00100] A Figura 7 ilustra o problema para uma situação simplificada que envolve a concatenação de dois fluxos de bits codificados separadamente A e B. A parte superior da Figura 7 mostra três unidades de acesso ("AUs") de um fluxo de bits A e duas AUs de um fluxo de bits B, antes da união. Para o fluxo de bits A, os valores de CPBRD são sinalizados para indicar atrasos de remoção para a 2a e 3a AUs (ou seja, AU 1 e AU 2) relativos ao atraso de remoção de CPB inicial para a 1a AU (ou seja, AU 0) do fluxo de bits A. Para o fluxo de bits B, um valor de CPBRD é sinalizado para indicar atraso de remoção para a 2a AU (ou seja, AU 1) relativo ao atraso de remoção de CPB inicial para a 1a AU (ou seja, AU 0) do fluxo de bits B. O valor au_cbp_removal_delay (k) se refere ao atraso de remoção de CPB da AU número k. Quando as AUs do fluxo de bits B são unidas após as AUs do fluxo de bits A, um CPBRD é determinado para a 1a AU (AU 0) do fluxo de bits B. A parte inferior da Figura 7 mostra as AUs dos fluxos de bits A e B após a união em um único fluxo de bits. Alguns dos valores de CPBRD das AUs estão inalterados no fluxo de bits unido (ou seja, os valores de CPBRD para a 2a e 3a AUs (AU 1 e AU 2) do fluxo de bits A relativo ao atraso de remoção de CPB inicial para a 1a AU (AU 0) do fluxo de bits A, e o valor de CPBRD para a 2a AU (AU 1) do fluxo de bits B relativo ao atraso de remoção de CPB para a 1a AU (AU 0) do fluxo de bits B). O valor de CPBRD para a 1a AU (AU 0 antes da união; numerada AU 3 após a união) do fluxo de bits B é ajustado, entretanto, para expressar um atraso de remoção relativo ao atraso de remoção de CPB inicial para a 1a AU (AU 0) do fluxo de bits A, para o fluxo de bits unido. Em exemplos mais complicados (por exemplo, quando os fluxos de bits incluem mais AUs e/ou quando algumas AUs não estão disponíveis), determinar o valor de CPBRD para a 1a AU da segunda sequência no fluxo de bits unido pode ser difícil.
B. ABORDAGEM GERAL PARA MODIFICAÇÃO DE SINTAXE E SEMÂNTICA DE CPBRD
[00101] Essa seção descreve várias modificações a abordagens anteriores para sintaxe e semântica de CPBRD. De acordo com as modificações, quando uma dada imagem (tipicamente chamada a "imagem atual") tem uma mensagem de SEI de BP associada à mesma, um codificador pode enviar elementos de sintaxe que indicam o seguinte:
[00102] um valor de CPBRD relativo ao tempo de remoção nominal de CPB da imagem que precede a imagem atual em ordem de decodificação (também chamado ordem de fluxo de bits ou ordem decodificada) que tem uma mensagem de SEI de BP, como nas abordagens anteriores ("item a");
[00103] um valor de CPBRD relativo ao tempo de remoção nominal de CPB da última imagem que precede a imagem atual em ordem de decodificação, independentemente de aquela última imagem precedente ter uma mensagem de SEI de BP, ou não ("item b") (em algumas variações, a última imagem que precede a imagem atual na mesma subcamada temporal ou inferior é considerada; por exemplo, se a imagem atual tiver TemporalId igual a 0, a imagem precedente também tem TemporalId igual a 0); e
[00104] indicações de (i) se o valor especificado no item a estiver presente (ou se sempre presente, se seu valor for válido), e (ii) se o valor especificado no item b estiver presente (ou se sempre presente, se seu valor for válido) ("item c").
[00105] As duas indicações para o item c podem ser combinadas em um único elemento de sintaxe que indica uma das três combinações permitidas (ou seja, item a válido / item b não válido, item a não válido / item b válido, ou itens a e b ambos válidos). (Alternativamente, em implantações nas quais o valor de 0 não pode ser um valor válido, para o item c, uma forma para indicar uma falta de validade poderia ser usar o valor de 0 para o valor de CPBRD. Indicando que nenhum dos valores de CPBRD ser válido deveria ser proibido).
[00106] Com o uso dessa sintaxe, uma ferramenta de união pode simplificar suas operações de união em muitos casos. Se o conteúdo do fluxo de bits B seguir a convenção no item b, a leitura de outros valores não é necessária - os dados dos dois fluxos de bits podem simplesmente ser concatenados juntos. Se o conteúdo do fluxo de bits B também contiver elementos de sintaxe que seguem a convenção no item a, os dados de CPBRD do item a devem ser removidos ou marcados como inválidos no fluxo de bits concatenado.
[00107] Quando a imagem atual não tem uma mensagem de SEI de BP, a sintaxe do padrão HEVC como em JCTVC-K1003, ou uma sintaxe equivalente (como no padrão H.264/AVC), pode ser usada sem alteração.
[00108] Como uma variação do item b, a sintaxe pode especificar um valor de incremento de CPBRD relativo ao tempo de remoção nominal de CPB da última imagem que precede a imagem atual em ordem de decodificação dentro da mesma subcamada temporal ou de uma subcamada temporal inferior (em vez de em qualquer subcamada temporal, como implícito acima). Nesse caso, o valor de CPBRD é expresso relativo à imagem precedente na mesma subcamada temporal (ou inferior) em vez de apenas à imagem precedente de qualquer subcamada, o que torna o esquema robusto para a remoção de imagens de subcamadas temporais superiores, se houverem. Essa variação também pode ser aplicada à abordagem de valor único e abordagem de dois valores descritas nas seções C, D e E, respectivamente. Por exemplo, se a imagem atual tiver TemporalId igual a 0, o valor de CPBRD é expresso relativo à imagem precedente com TemporalId igual a 0. Essa poderia ser a situação quando valores de CPBRD que seguem a convenção do item B fossem sinalizados apenas para imagens que têm TemporalId igual a 0 (por exemplo, devido a uma condição em que mensagens de SEI com esses valores de CPBRD poderem ser usadas apenas para imagens que têm TemporalId igual a 0).
C. ABORDAGEM DE VALOR ÚNICO COM O USO DE SINALIZADOR
[00109] Em variações de valor único das modificações descritas acima, para algumas imagens, o codificador envia um dos dois valores de CPBRD para o item a e o item b, juntamente com uma indicação de se a correspondência do valor de CPBRD sinalizado à convenção do item a ou do item b.
[00110] As Figuras 8 e 9 ilustram uma implantação da abordagem de valor único na qual a sintaxe e semântica de mensagens de SEI de BP (como em JCTVC-K1003) são modificadas, e na qual a semântica de algumas mensagens de SEI de PT (como em JCTVC-K1003) são modificadas embora sua sintaxe fique inalterada. A sintaxe da mensagem de SEI de BP é modificada para incluir um sinalizador denominado concatenation_flag, como mostrado na sintaxe exemplificativa (800) da Figura 8. Um concatenation_flag é um valor binário. Quando uma dada imagem (imagem atual) tem uma mensagem de SEI de BP, a semântica do valor de CPBRD na mensagem de SEI de PT para a imagem atual depende do valor do concatenation_flag na mensagem de SEI de BP para a imagem. A Figura 9 mostra a sintaxe (900) para uma mensagem de SEI de PT, que inclui um elemento de sintaxe au_cpb_removal_delay_minus1. Quando o valor do concatenation_flag é 0, o valor de CPBRD indicado pelo elemento de sintaxe au_cpb_removal_delay_minus1 é interpretado de acordo com a convenção do item a. Por outro lado, quando o valor do concatenation_flag é 1, o valor de CPBRD indicado por au_cpb_removal_delay_minus1 é interpretado de acordo com a convenção do item b.
[00111] Outros elementos de sintaxe mostrados nas Figuras 8 e 9 têm significados especificados em JCTVC-K1003.
[00112] Para um fluxo de bits unido, quando o concatenation_flag é 1, o tempo de remoção nominal tr,n(n) para uma imagem n que tem uma mensagem de SEI de BP pode ser computado a partir do tempo de remoção nominal tr,n(n-1) da imagem precedente (unidade de acesso) n-1, juntos com um atraso: tr,n(n) = tr,n(n-1) + tc* (Max(au_cpb_removal_delay(n),
[00113] Ceil((InitCpbRemovalDelay[SchedSelIdx] + 90000 + taf( n -1) - tr,n(n —1) ) * tc))).
[00114] Nessa fórmula, a restrição Ceil ((InitCpbRemovalDelay [SchedSelIdx] * 90000 + taf(n-1) - tr,n(n-1) * tc) assegura que o atraso é pelo menos tão longo quanto o mesmo deve ser se a decodificação tiver iniciado no ponto de união (imagem n) sem estouro negativo de armazenamento temporário. O atraso adicionado a tr,n(n-1) é definido dependendo do mais longo dentre o valor de CPBRD sinalizado para imagem n e o atraso de início indicado pela restrição.
[00115] A Figura 10 mostra porque a restrição Ceil ((InitCpbRemovalDelay [SchedSelIdx] + 90000 + taf( n -1) - tr,n( n -1)) + tc) é considerada. Para cada unidade de acesso n, com n>0, associado a uma mensagem de SEI de período de armazenamento temporário, o valor Δtg,90 (n) é especificado por Δtg,90 (n) = 90000 * ( tr,n(n) - taf(n -1) ), em que* tr,n(n) é o tempo de remoção nominal de unidade de acesso n (na Figura 10, a primeira unidade de acesso do período de armazenamento temporário atual), e em que taf(n-1) é o tempo de chegada final de unidade de acesso n-1 (na Figura 10, a última unidade de acesso do período de armazenamento temporário precedente). Na Figura 10, quando o fluxo 1 e o fluxo 2 são concatenados juntos, estouro negativo poderia ocorrer se o valor de CPBRD for usado. Com a restrição, o estouro negativo é evitado devido ao status de armazenamento temporário de fluxo 2 após a concatenação permanecer o mesmo que o status de armazenamento temporário original.
D. ABORDAGEM DE DOIS VALORES COM O USO DE SINALIZADOR E VALOR DE DELTA
[00116] Em algumas variações de dois valores das modificações descritas acima, para algumas imagens, o codificador poderia enviar um ou ambos os valores de CPBRD para o item a e o item b em mensagens de SEI para uma imagem de RAP.
[00117] A Figura 11 ilustra uma implantação da abordagem de dois valores na qual a sintaxe e semântica de mensagens de SEI de BP (como em JCTVC-K1003) são modificadas. A sintaxe de mensagens de SEI de PT (como em JCTVC-K1003) fica inalterada. Como mostrado na sintaxe exemplificativa (1100) da Figura 11, a sintaxe da mensagem de SEI de BP é modificada para incluir um concatenation_flag e um elemento de sintaxe denominado au_cpb_removal_delay_delta_minus1, que pode indicar um valor de "delta" de CPBRD (aqui, o valor de delta menos um).
[00118] O elemento de sintaxe concatenation_flag indica se uma restrição especificada se aplica ao relacionamento entre o valor de au_cpb_removal_delay_delta_minus1 e o valor de au_cpb_removal_delay_minus1 para a imagem precedente em ordem de decodificação, se houver (ou, em algumas variações, a imagem precedente na mesma subcamada temporal ou inferior, se houver, por exemplo, verificando-se uma imagem precedente com TemporalId menor do que ou igual ao valor de TemporalId da imagem atual). Por exemplo, quando subestratificação temporal é considerada, se a imagem atual tiver TemporalId igual a 0, a verificação é para a imagem precedente com TemporalId igual a 0.
[00119] O elemento de sintaxe au_cpb_removal_delay_delta_minus1, mais 1, especifica um valor de incremento de atraso de remoção de CPB relativo ao tempo de remoção nominal de CPB da última imagem que precede a imagem atual na ordem de fluxo de bits (ordem de decodificação), se houver (ou, em algumas variações, a última dessas imagens na mesma subcamada temporal ou inferior, se houver, por exemplo, verificando-se uma imagem precedente com TemporalId menor do que ou igual ao valor de TemporalId da imagem atual). Por exemplo, quando subestratificação temporal é considerada, se a imagem atual tiver TemporalId igual a 0, a verificação é para a imagem precedente com TemporalId igual a 0.
[00120] Quando concatenation_flag é igual a 0, o valor de CPBRD (como determinado pelo elemento de sintaxe au_cpb_removal_delay_minus1 da mensagem de SEI de PT para a imagem atual) é interpretado de acordo com o item a. Se a imagem precedente não tiver uma mensagem de SEI de BP, esse valor de CPBRD do item a é igual ao valor de CPBRD de acordo com o item b mais o valor de CPBRD do item a para a imagem que precede a imagem atual em ordem de decodificação (em algumas variações, a imagem precedente da subcamada temporal apropriada). O valor de CPBRD do item b é a diferença entre o valor de CPBRD do item a para a imagem atual e o valor de CPBRD do item a para a imagem precedente. Esse valor do item b é indicado pelo elemento de sintaxe au_cpb_removal_delay_delta_minus1, e seu valor pode ser verificado contra a diferença entre os dois valores de CPBRD de item a que são enviados nas mensagens de SEI de PT da imagem atual e precedente para verificar que os valores de CPBRD do item a e do item b são válidos. O valor de CPBRD do item a separado é sinalizado em uma mensagem de SEI de PT para a imagem atual. Em outras palavras, quando a imagem atual tem uma mensagem de SEI de BP e concatenation_flag é igual a 0, e a imagem atual não é a primeira imagem no fluxo de bits, é requerido o seguinte para a conformidade do fluxo de bits.
[00121] Se a imagem precedente (ou, em algumas variações, imagem precedente com TemporalId menor do que ou igual ao valor de TemporalId da imagem atual) não tiver uma mensagem de SEI de BP, o au_cpb_removal_delay_minus1 da imagem atual é igual ao au_cpb_removal_delay_minus1 da imagem precedente (em algumas variações, imagem precedente com TemporalId menor do que ou igual ao valor de TemporalId da imagem atual) mais au_cpb_removal_delay_delta_minus1 mais 1.
[00122] Caso contrário (a imagem precedente tem uma mensagem de SEI de BP), au_cpb_removal_delay_minus1 é igual a au_cpb_removal_delay_delta_minus1.
[00123] Essas exigências significam que quando concatenation_flag é igual a 0, a indicações para o item a e o item b são ambas válidas e presentes, assumindo que as condições precedentes sejam satisfeitas e a imagem precedente não tenha uma mensagem de SEI de BP. Nesse caso, uma mensagem de SEI de BP para a imagem atual inclui um valor do item b de CPBRD (representado pelo elemento de sintaxe au_cpb_removal_delay_delta_minus1), e uma mensagem de SEI de PT para a imagem atual inclui um valor de CPBRD do item a (representado por au_cpb_removal_delay_minus1). Por outro lado, quando a imagem precedente tiver uma mensagem de SEI de BP (e o sinalizador ainda for igual a 0), os elementos de sintaxe au_cpb_removal_delay_delta_minus1 e au_cpb_removal_delay_minus1 indicam ambos um valor de CPBRD do item a.
[00124] Quando concatenation_flag é igual a 1, a exigência de conformidade de fluxo de bits descrita acima não precisa ser atendida para os elementos de sintaxe au_cpb_removal_delay_delta_minus1 e au_cpb_removal_delay_minus1. Quando o sinalizador é igual a 1, a computação de CPBRD é alterada para ser apropriada a união fluxos de bits, em vez de ser referenciada diretamente à imagem precedente que tinha uma mensagem de SEI de BP. Quando a imagem atual tem uma mensagem de SEI de BP e concatenation_flag é igual a 1, o elemento de sintaxe au_cpb_removal_delay_minus1 para a imagem atual (na mensagem de SEI de PT para a imagem atual) é ignorado. Assim, quando concatenation_flag é igual a 1, apenas a indicação para o item b é válida, como indicado pelo elemento de sintaxe au_cpb_removal_delay_delta_minus1 (na mensagem de SEI de BP para a imagem atual).
[00125] A interpretação especificada acima dos valores de CPBRD deve tornar possível unir os fluxos de bits (que usam estruturas de referência projetadas adequadamente) simplesmente mudando-se o valor de concatenation_flag de 0 para 1 na mensagem de SEI de BP para a imagem de RAP no ponto de união.
[00126] Nesse esquema, uma vez que a indicação para item b é sempre válida (embora em alguns casos seja requerido que a seja igual ao valor de CPBRD do item a da imagem atual, e em outros casos seja requerido que seja igual à diferença entre os valores de CPBRD do item a das imagens atual e precedente), a especificação das informações de sincronismo de HRD sempre podem ser baseadas no item b. Adicionalmente, quando concatenation_flag é igual a 0, o decodificador pode verificar se a condição de igualdade é atendida ou não. Se a mesma não for atendida, isso deve indicar que alguns problemas ocorreram (por exemplo, imagem precedente ter sido perdida, ou imagem precedente na mesma subcamada temporal ou inferior ter sido perdida). Em consequência da detecção de que essa imagem tenha sido perdida, o decodificador pode recuperar as informações de sincronismo de CPBRD corretas ao interpretar os dados de CPBRD do item a e descartar os dados do item b (uma vez que a computação do sincronismo de CPBRD apropriado daqueles dados requerer o uso dos dados da imagem perdida). O decodificador também pode invocar perda medidas de encobrimento se tal perda for detectada.
[00127] Nessa abordagem de dois valores com o uso de um sinalizador (por exemplo, concatenation_flag) e valor de delta, o tempo de remoção nominal para uma imagem n que tem uma mensagem de SEI de BP pode ser computado a partir do tempo de remoção nominal da imagem precedente (unidade de acesso) nb, juntamente com um atraso. Por exemplo, quando a unidade de acesso n é a primeira unidade de acesso de um período de armazenamento temporário que does não inicializa o HRD, o tempo de remoção nominal tr,n(n) da unidade de acesso n do CPB é especificado como segue.
[00128] Se a imagem atual for associada a uma mensagem de SEI de BP com concatenation_flag igual a 1, o tempo de remoção nominal tr,n(n) é especificado como: tr,n(n) = tr,n(nb) + tc*(Max((au_cpb_removal_delay_delta_minus1(n) +1),
[00129] Ceil((InitCpbRemovalDelay[SchedSelIdx] + 90000 + taf(nb) - tr,n(nb) ) * tc))),
[00130] em que tr,n(nb) é o tempo de remoção nominal da imagem precedente (em algumas variações, a imagem precedente com TemporalId menor do que ou igual ao valor de TemporalId da imagem atual) e au_cpb_removal_delay_delta_minus1(n) é o valor de au_cpb_removal_delay_delta_minus1 na mensagem de SEI de BP associado à unidade de acesso n. A restrição Ceil ((InitCpbRemovalDelay [SchedSelldx] * 90000 + taf(nb) - tr,n(nb)) * tc) assegura que atraso seja pelo menos tão longo quanto o mesmo deve ser se a decodificação tiver iniciado no ponto de união (imagem n) sem estouro negativo de armazenamento temporário. O atraso adicionado a tr,n(nb) é definido dependendo do mais longo dentre o valor de CPBRD sinalizado para a imagem n e o atraso de início indicado pela restrição.
[00131] Caso contrário (a imagem atual não é associada a uma mensagem de SEI de BP com concatenation_flag igual a 1), o tempo de remoção nominal é especificado como: tr,n(n) = tr,n(nb) + tc * (au_cpb_removal_delay_minus1(n)+1),
[00132] em que tr,n(nb) é o tempo de remoção nominal da primeira unidade de acesso do período de armazenamento temporário precedente, e au_cpb_removal_delay_minus1(n) é o valor de au_cpb_removal_delay_minus1 na mensagem de SEI de PT associado à unidade de acesso n.
[00133] Para a abordagem de dois valores com um sinalizador de concatenação e valor de delta, o impacto sobre a complexidade do decodificador e a quantidade adicionada de dados de sintaxe é mínimo. Os elementos de sintaxe adicionados (au_cpb_removal_delay_delta_minus1 e concatenation_flag associado) são necessários apenas para imagens que têm mensagens de SEI de BP, que são relativamente pouco frequentes. As operações de união potencialmente são muito simplificadas. Com essa abordagem, se torna possível a união entre fluxos de bits ou concatenar suavemente fluxos de bits codificados separadamente (que usam estruturas de referência projetadas adequadamente) simplesmente definindo-se o valor de concatenation_flag para 1 na mensagem de SEI de BP para a imagem de RAP no ponto de união. Ao mesmo tempo, quando concatenation_flag é igual a 0, a restrição especificada deve permitir que o decodificador verifique se a restrição é satisfeita como uma forma de detectar a perda da imagem precedente (ou imagem precedente na mesma subcamada temporal ou inferior).
E. USO CONDICIONAL DE SINTAXE E SEMÂNTICA DE CPBRD ALTERNATIVAS
[00134] Em algumas variações, o uso ou não uso de sintaxe e semântica de CPBRD alternativas é sinalizado no fluxo de bits. Assim, se a quantidade de dados adicionados for uma preocupação, a presença dos elementos de sintaxe adicionais poderia ser condicionada em um sinalizador em um nível de sintaxe superior, com a interpretação convencional (valores de CPBRD relativos à imagem precedente que tem uma mensagem de SEI de BP) aplicada quando os elementos de sintaxe adicionais não estão presentes.
[00135] Por exemplo, um codificador pode definir um valor ligado/desligado em um conjunto de parâmetros de sequência ("SPS") ou em outro lugar no fluxo de bits para indicar se sintaxe e semântica de CPBRD são usadas com suporte para operações de união de vídeo simplificadas. Se o valor ligado/desligado que indica suporte à união de vídeo simplificada estiver desligado, o codificador usa sintaxe e semântica de CPBRD convencionais, como em uma abordagem anterior. Se o valor ligado/desligado que indica suporte a união de vídeo simplificada estiver ligado, o codificador usa sintaxe e semântica de CPBRD com suporte a operações de união de vídeo simplificadas (por exemplo, de acordo com uma das abordagens novas descritas no presente documento).
[00136] Um decodificador correspondente recebe e analisa os valores ligado/desligado no SPS ativo ou em outro local no fluxo de bits para indicar se sintaxe e semântica de CPBRD são usadas com suporte a operações de união de vídeo simplificadas. Se o valor ligado/desligado que indica suporte à união de vídeo simplificada estiver desligado, o decodificador usa sintaxe e semântica de CPBRD convencionais, como em uma abordagem anterior. Se o valor ligado/desligado que indica suporte à união de vídeo simplificada estiver ligado, o codificador usa sintaxe e semântica de CPBRD com suporte a operações de união de vídeo simplificadas (por exemplo, de acordo com uma das abordagens novas descritas no presente documento).
[00137] Uma ferramenta de união de vídeo pode considerar o sinalizador ligado/desligado quando decide como realizar as operações de união. Se o valor ligado/desligado não estiver acionado (desligado), a ferramenta de união usa união convencional com o ajuste de valores de CPBRD, como em uma anterior abordagem. Se o valor ligado/desligado estiver acionado (ligado), a ferramenta de união usa operações de concatenação simplificadas como descritas no presente documento.
F. ALTERNATIVAS PARA UNIDADES DE DECODIFICAÇÃO
[00138] Em muitos dos exemplos precedentes, os valores de CPBRD são definidos ou determinados para imagens. Essa imagem também pode ser denominada uma unidade de acesso que corresponde a uma imagem primária.
[00139] Alternativamente, os valores de CPBRD são definidos ou determinados para unidades de decodificação, em que uma unidade de decodificação é um subconjunto de uma unidade de acesso para uma imagem primária. Por exemplo, uma unidade de decodificação pode ser uma fatia de uma imagem. Um HRD pode operar em unidades de acesso ou em unidades de decodificação (por exemplo, para fatias ou outras partes de imagens). Em geral, para uma unidade de decodificação, um valor de CPBRD é relativo à última unidade de decodificação da imagem precedente.
[00140] As técnicas e ferramentas descritas no presente documento podem ser aplicadas a unidades de acesso ou a unidades de decodificação. O termo "unidade" pode significar uma unidade de acesso ou unidade de decodificação. O valor de CPBRD para uma unidade é expresso relativo a uma imagem precedente. Para uma unidade de acesso, a unidade de acesso precedente pode ser a última unidade de acesso, última unidade de acesso na mesma subcamada temporal ou em uma subcamada temporal inferior, ou última unidade de acesso com uma mensagem de SEI de BP, dependendo da interpretação. Para uma unidade de decodificação, a última unidade de decodificação dessa unidade de acesso precedente é considerada.
G. TÉCNICAS PARA MODIFICAR SINTAXE E SEMÂNTICA DE CPBRD
[00141] A Figura 12 mostra uma técnica generalizada 1200 para definir valores de CPBRD durante a codificação. Um codificador de vídeo tal como aquele descrito acima com referência à Figura 3 ou outro codificador de vídeo realiza a técnica 1200.
[00142] O codificador define 1210 um valor de CPBRD para uma dada unidade de uma sequência de vídeo. Por exemplo, a dada unidade é uma unidade de acesso para uma imagem que tem uma mensagem de SEI de BP e pode ser uma imagem de acesso randômico. Ou, a dada unidade é uma unidade de decodificação para parte dessa imagem. O valor de CPBRD para a dada unidade indica um valor de incremento relativo a um tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação independentemente de a imagem precedente ter uma mensagem de SEI de BP. Em algumas implantações, a imagem precedente precede imediatamente a dada unidade (ou imagem que inclui a dada unidade) em ordem de decodificação. Alternativamente, entre as imagens da sequência de vídeo na mesma subcamada temporal que a dada unidade ou em uma subcamada temporal inferior, a imagem precedente precede imediatamente a dada unidade (ou imagem que inclui a dada unidade) em ordem de decodificação. Por exemplo, quando subestratificação temporal é considerada, se a imagem atual tiver TemporalId igual a 0, a imagem precedente é a imagem precedente com TemporalId igual a 0.
[00143] O codificador sinaliza 1220 o valor de CPBRD para a dada unidade. Por exemplo, o valor de CPBRD é escrito em uma mensagem de SEI de BP ou mensagem de SEI de PT associada a uma unidade de acesso para uma imagem codificada.
[00144] Em algumas variações (por exemplo, abordagem de dois valores), o codificador define potencialmente múltiplos valores de CPBRD para a dada unidade de acordo com diferentes convenções. Por exemplo, adicionalmente ao valor de CPBRD definido 1210 como um valor de incremento relativo a um tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação independentemente de a imagem precedente ter uma mensagem de SEI de BP, o codificador define outro valor de CPBRD para a dada unidade. O outro valor de CPBRD para a dada unidade indica um valor de incremento relativo a um tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação que tem uma mensagem de SEI de BP. O codificador então sinaliza o outro CPBRD para a dada unidade (por exemplo, em uma mensagem de SEI de PT para a dada unidade). O codificador também pode sinalizar (por exemplo, escrever em mensagem(ns) de SEI) uma ou mais indicações respectivamente presença ou ausência de um dos valores de CPBRD. Ou, o codificador pode sinalizar (por exemplo, escrever em mensagem(ns) de SEI) uma ou mais indicações respectivamente da validade ou não validade de cada um dos valores de CPBRD.
[00145] Em outras variações (por exemplo, abordagens de valor único), o codificador sinaliza (por exemplo, escreve em mensagem(ns) de SEI) uma indicação de tipo do valor de CPBRD para a dada unidade. Por exemplo, a indicação do tipo do valor de CPBRD é sinalizada em uma mensagem de SEI de BP da dada unidade ou imagem que inclui a dada unidade. A indicação de tipo do valor de CPBRD indica como interpretar o valor de CPBRD para a dada unidade, que pode ser sinalizado em uma mensagem de SEI de PT. Por exemplo, o codificador sinaliza uma indicação de tipo de valor de CPBRD para uma dada unidade de uma sequência de vídeo, então define o valor de CPBRD para a dada unidade. Para um primeiro tipo de valor de CPBRD, o valor de CPBRD para a dada unidade indica um valor de incremento relativo a um tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação que tem uma mensagem de SEI de BP. Para um segundo tipo de valor de CPBRD, o valor de CPBRD para a dada unidade indica um valor de incremento relativo a um tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação independentemente de a imagem precedente ter uma mensagem de SEI de BP. O codificador então sinaliza o valor de CPBRD para a dada unidade.
[00146] Em ainda outras variações (por exemplo, abordagem de dois valores com o uso de um sinalizador e valor de delta), o codificador sinaliza (por exemplo, escreve em mensagem(ns) de SEI) uma indicação de tipo do valor de CPBRD para a dada unidade e sinaliza um valor de CPBRD para a dada unidade para representar o valor de delta. Por exemplo, a indicação do tipo do valor de CPBRD e o valor de CPBRD (valor de delta) são sinalizados em uma mensagem de SEI de BP da dada unidade ou imagem que inclui a dada unidade. Dependendo do tipo do valor de CPBRD, o valor de CPBRD para a imagem atual pode ser sinalizado em uma mensagem de SEI de PT. Por exemplo, o codificador sinaliza uma indicação de tipo de valor de CPBRD para uma dada unidade de uma sequência de vídeo, e define um valor de delta como o valor de CPBRD para a dada unidade. O valor de delta para a dada unidade indica uma diferença entre o valor de CPBRD para a dada unidade e um valor de CPBRD de uma imagem precedente em ordem de decodificação. O codificador sinaliza o valor de delta como o valor de CPBRD para a dada unidade (por exemplo, em uma mensagem de SEI de BP). O codificador também define outro valor de CPBRD para a dada unidade. Para um primeiro tipo de valor de CPBRD, o outro valor de CPBRD indica um valor de incremento relativo a um tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação que tem uma mensagem de SEI de BP. Para um segundo tipo de valor de CPBRD, o outro valor de CPBRD para a dada unidade não é válido. O codificador sinaliza o outro valor de CPBRD para a dada unidade (por exemplo, em uma mensagem de SEI de PT).
[00147] O codificador pode repetir a técnica 1200 em uma base unidade por unidade (por exemplo, base imagem por imagem). Por uma questão de simplicidade, a Figura 12 não mostra como a técnica 1200 opera em combinação com outros processos de codificação.
[00148] A Figura 13 mostra uma técnica exemplificativa 1300 para definir valores de CPBRD durante a codificação de acordo com uma abordagem de valor único, quando valores de CPBRD são definidos para as imagens. Um codificador de vídeo tal como aquele descrito acima com referência à Figura 3 ou outro codificador de vídeo realiza a técnica 1300.
[00149] Para iniciar, o codificador obtém 1310 a imagem atual em uma sequência de vídeo. O codificador verifica 1320 se a imagem atual tem uma mensagem de SEI de BP. Em caso negativo, o codificador define 1360 o CPBRD para a imagem atual em uma mensagem de SEI de PT como um valor de incremento relativo ao tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação que tem uma mensagem de SEI de BP.
[00150] Por outro lado, se a imagem atual tiver uma mensagem de SEI de BP, o codificador define 1330 um valor de sinalizador de concatenação em uma mensagem de SEI de BP para a imagem atual. Dependendo do valor do sinalizador 1340, o codificador pode definir o valor de CPBRD para a imagem atual de formas diferentes. Se o sinalizador for igual a 1, o codificador define 1350 o valor de CPBRD para a imagem atual em uma mensagem de SEI de PT como um valor de incremento relativo ao tempo de remoção nominal de CPB da imagem precedente em ordem de decodificação independentemente de a imagem precedente ter uma mensagem de SEI de BP. Caso contrário (o sinalizador é igual a 0), o codificador define 1360 o CPBRD para a imagem atual em uma mensagem de SEI de PT como um valor de incremento relativo ao tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação que tem uma mensagem de SEI de BP.
[00151] O codificador verifica 1370 se isso é feito e, em caso negativo, continua com a próxima imagem como a imagem atual. Por uma questão de simplicidade, a Figura 13 não mostra como a técnica 1300 opera em combinação com outros processos de codificação.
[00152] A Figura 14 mostra uma técnica generalizada 1400 para processar valores de CPBRD durante a decodificação. Um decodificador de vídeo tal como aquele descrito acima com referência à Figura 4 ou outro decodificador de vídeo realiza a técnica 1400.
[00153] O decodificador recebe 1410 um valor de CPBRD para uma dada unidade de uma sequência de vídeo. Por exemplo, a dada unidade é uma unidade de acesso para uma imagem que tem uma mensagem de SEI de BP e pode ser uma imagem de acesso randômico. Ou, a dada unidade é uma unidade de decodificação para parte dessa imagem. O valor de CPBRD para a dada unidade indica um valor de incremento relativo a um tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação independentemente de a imagem precedente ter uma mensagem de SEI de BP. Em algumas implantações, a imagem precedente precede imediatamente a dada unidade (ou imagem que inclui a dada unidade) em ordem de decodificação. Alternativamente, entre as imagens da sequência de vídeo na mesma subcamada temporal que a dada unidade ou em uma subcamada temporal inferior, a imagem precedente precede imediatamente a dada unidade (ou imagem que inclui a dada unidade) em ordem de decodificação. Por exemplo, quando subestratificação temporal é considerada, se a imagem atual tiver TemporalId igual a 0, a imagem precedente é a imagem precedente com TemporalId igual a 0.
[00154] O decodificador analisa 1420 o valor de CPBRD para a dada unidade. Por exemplo, o valor de CPBRD é analisado a partir de uma mensagem de SEI de BP ou mensagem de SEI de PT associada a uma unidade de acesso para uma imagem codificada.
[00155] Em algumas variações (por exemplo, abordagem de dois valores), o decodificador potencialmente recebe e analisa múltiplos valores de CPBRD para a dada unidade, que devem ser interpretados de acordo com convenções diferentes. Por exemplo, adicionalmente ao valor de CPBRD definido como um valor de incremento relativo a um tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação independentemente de a imagem precedente ter uma mensagem de SEI de BP, o decodificador recebe e analisa outro valor de CPBRD para a dada unidade (por exemplo, a partir de uma mensagem de SEI de PT para a dada unidade). O outro valor de CPBRD para a dada unidade indica um valor de incremento relativo a um tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação que tem uma mensagem de SEI de BP. O decodificador também pode receber e analisar uma ou mais indicações respectivamente da presença ou ausência de cada um dos valores de CPBRD. Ou, o decodificador pode receber e analisar uma ou mais indicações respectivamente da validade ou não validade de cada um dos valores de CPBRD.
[00156] Em outras variações (por exemplo, abordagens de valor único), o decodificador recebe e analisa uma indicação de tipo do valor de CPBRD para a dada unidade. Por exemplo, a indicação do tipo do valor de CPBRD é analisado a partir de uma mensagem de SEI de BP da dada unidade ou imagem que inclui a dada unidade. A indicação de tipo do valor de CPBRD indica como interpretar o valor de CPBRD para a dada unidade, que pode ser analisado a partir de uma mensagem de SEI de PT. Por exemplo, o decodificador recebe e analisa uma indicação de tipo de valor de CPBRD para uma dada unidade de uma sequência de vídeo, então recebe e analisa o valor de CPBRD para a dada unidade. Para um primeiro tipo de valor de CPBRD, o valor de CPBRD para a dada unidade indica um valor de incremento relativo a um tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação que tem uma mensagem de SEI de BP. Para um segundo tipo de valor de CPBRD, o valor de CPBRD para a dada unidade indica um valor de incremento relativo a um tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação independentemente de a imagem precedente ter uma mensagem de SEI de BP.
[00157] Em ainda outras variações (por exemplo, abordagem de dois valores com o uso de um sinalizador e valor de delta), o decodificador recebe e analisa uma indicação de tipo do valor de CPBRD para a dada unidade, e recebe e analisa um valor de CPBRD para a dada unidade que representa o valor de delta. Por exemplo, a indicação do tipo do valor de CPBRD e o valor de CPBRD (valor de delta) são analisados a partir de uma mensagem de SEI de BP da dada unidade ou imagem que inclui a dada unidade. Dependendo do tipo do valor de CPBRD, o valor de CPBRD para a dada unidade pode ser analisado a partir de uma mensagem de SEI de PT. Por exemplo, o decodificador recebe e analisa uma indicação de tipo de valor de CPBRD para uma dada unidade de uma sequência de vídeo, e recebe e analisa um valor de delta como o valor de CPBRD para a dada unidade (por exemplo, a partir de uma mensagem de SEI de BP). O valor de delta para a dada unidade indica uma diferença entre o valor de CPBRD para a dada unidade e um valor de CPBRD de uma imagem precedente em ordem de decodificação. O decodificador também recebe e analisa outro valor de CPBRD para a dada unidade (por exemplo, a partir de uma mensagem de SEI de PT). Quando válido, o outro valor de CPBRD para a dada unidade indica um valor de incremento relativo a um tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação que tem uma mensagem de SEI de BP.
[00158] Após analisar o valor de CPBRD para a dada unidade, o decodificador pode utilizar o valor de CPBRD. Por exemplo, baseado pelo menos em parte no valor de CPBRD para a dada unidade, o decodificador pode computar um tempo de remoção nominal do CPB para a dada unidade.
[00159] O decodificador pode repetir a técnica 1400 em uma base unidade por unidade (por exemplo, base imagem por imagem). Por uma questão de simplicidade, a Figura 14 a não mostra como a técnica 1400 opera em combinação com outros processos de decodificação.
[00160] A Figura 15 mostra uma técnica exemplificativa 1500 para determinar valores de CPBRD durante a decodificação de acordo com uma abordagem de valor único, quando valores de CPBRD são definidos para imagens. Um decodificador de vídeo tal como aquele descrito acima com referência à Figura 4 ou outro decodificador de vídeo realiza a técnica 1500.
[00161] Para iniciar, o decodificador obtém 1510 a imagem atual em uma sequência de vídeo. O decodificador verifica 1520 se a imagem atual tiver uma mensagem de SEI de BP. Em caso negativo, o decodificador interpreta 1560 o CPBRD para a imagem atual em uma mensagem de SEI de PT como um valor de incremento relativo ao tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação que tem uma mensagem de SEI de BP.
[00162] Por outro lado, se a imagem atual tiver uma mensagem de SEI de BP, o decodificador obtém 1530 um valor de sinalizador de concatenação em uma mensagem de SEI de BP para a imagem atual. Dependendo do valor do sinalizador 1540, o decodificador pode interpretar o valor de CPBRD para a imagem atual de formas diferentes. Se o sinalizador for igual a 1, o decodificador interpreta 1550 o valor de CPBRD para a imagem atual em uma mensagem de SEI de PT como um valor de incremento relativo ao tempo de remoção nominal de CPB da imagem precedente em ordem de decodificação independentemente de a imagem precedente ter uma mensagem de SEI de BP. Caso contrário (o sinalizador é igual a 0), o decodificador interpreta 1560 o CPBRD para a imagem atual em uma mensagem de SEI de PT como um valor de incremento relativo ao tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação que tem uma mensagem de SEI de BP.
[00163] O decodificador verifica 1570 se isso é feito e, em caso negativo, continua com a próxima imagem como a imagem atual. Por uma questão de simplicidade, a Figura 15 não mostra como a técnica 1500 opera em combinação com outros processos de decodificação.
[00164] A Figura 16 mostra uma técnica generalizada 1600 para unir fluxos de bits. Uma ferramenta de união de vídeo realiza a técnica 1600.
[00165] A ferramenta de união recebe 1610 um primeiro fluxo de bits para uma primeira sequência de vídeo e também recebe 1620 um segundo fluxo de bits para uma segunda sequência de vídeo. Um valor de CPBRD para uma dada unidade da segunda sequência de vídeo indica um valor de incremento relativo a um tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação independentemente de a imagem precedente ter uma mensagem de SEI de BP.
[00166] A ferramenta de união une 1630 pelo menos parte da segunda sequência de vídeo à primeira sequência de vídeo. Como parte da união, a ferramenta de união concatena a segunda sequência de vídeo, que inicia na dada unidade ou imagem que inclui a dada unidade, à primeira sequência de vídeo. Por exemplo, a ferramenta de união concatena uma mensagem de SEI de BP da dada unidade ou imagem que inclui a dada unidade (em que a mensagem de SEI de BP inclui uma indicação de tipo do valor de CPBRD para a dada unidade e, em algumas variações, um primeiro valor de CPBRD para a dada unidade) e uma mensagem de SEI de PT (em que a mensagem de SEI de PT inclui o valor de CPBRD para a dada unidade ou, em algumas variações, um segundo valor de CPBRD para a dada unidade).
[00167] Em algumas implantações, o segundo valor de CPBRD (por exemplo, em uma mensagem de SEI de PT) para a dada unidade indica um valor de incremento relativo a um tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação que tem uma mensagem de SEI de BP. Nesse caso, como parte da união, a ferramenta de união pode descartar o outro, segundo CPBRD para a dada unidade ou marcar o outro, segundo CPBRD para a dada unidade como não válido.
[00168] A Figura 17 mostra uma técnica exemplificativa 1700 para definir valores de CPBRD durante codificação de acordo com uma abordagem de dois valores com o uso de um sinalizador e valor de delta, quando valores de CPBRD são definidos para imagens. Um codificador de vídeo tal como aquele descrito acima com referência à Figura 3 ou outro codificador de vídeo realiza a técnica 1700.
[00169] Para iniciar, o codificador obtém 1710 a imagem atual em uma sequência de vídeo. O codificador verifica 1720 se a imagem atual tem uma mensagem de SEI de BP. Em caso negativo, o codificador define 1760 o valor de CPBRD para a imagem atual em uma mensagem de SEI de PT como um valor de incremento relativo ao tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação que tem uma mensagem de SEI de BP.
[00170] Por outro lado, se a imagem atual tiver uma mensagem de SEI de BP, o codificador define 1730 um valor de sinalizador de concatenação em uma mensagem de SEI de BP para a imagem atual. Dependendo do valor do sinalizador 1740, o codificador pode definir o valor de CPBRD para a imagem atual de formas diferentes.
[00171] Se o sinalizador for igual a 1, o codificador define 1750 o valor de CPBRD para a imagem atual em uma mensagem de SEI de PT para ter qualquer valor, uma vez que o valor de CPBRD para a imagem atual na mensagem de SEI de PT será ignorado. Um valor de CPBRD (valor de delta) na mensagem de SEI de BP para a imagem atual será interpretado como um valor de incremento relativo ao tempo de remoção nominal de CPB da imagem precedente em ordem de decodificação.
[00172] Caso contrário (o sinalizador é igual a 0), o codificador verifica 1742 se a imagem precedente em ordem de decodificação tem uma mensagem de SEI de BP. Em caso afirmativo, o codificador define 1744 o valor de CPBRD na mensagem de SEI de BP da imagem atual de modo que o valor de CPBRD da imagem atual em sua mensagem de SEI de PT seja igual ao valor de CPBRD na mensagem de SEI de BP da imagem atual mais 1. Em caso negativo (imagem precedente não tem uma mensagem de SEI de BP), o codificador define 1746 o valor de CPBRD na mensagem de SEI de BP da imagem atual de modo que o valor de CPBRD da imagem atual em sua mensagem de SEI de PT seja igual ao valor de CPBRD da imagem precedente em sua mensagem de SEI de PT mais o valor de CPBRD (valor de delta) na mensagem de SEI de BP da imagem atual mais 1. O codificador também define 1760 o valor de CPBRD para a imagem atual em uma mensagem de SEI de PT como um valor de incremento relativo ao tempo de remoção nominal de CPB da imagem precedente em ordem de decodificação que tem uma mensagem de SEI de BP.
[00173] O codificador verifica 1770 se isso é feito e, em caso negativo, continua com a próxima imagem como a imagem atual. Por uma questão de simplicidade, a Figura 17 não mostra como a técnica 1700 opera em combinação com outros processos de codificação.
[00174] A Figura 18 mostra uma técnica exemplificativa 1800 para determinar valores de CPBRD durante a decodificação de acordo com uma abordagem de dois valores com o uso de um sinalizador e valor de delta, quando valores de CPBRD são definidos para imagens. Um decodificador de vídeo tal como aquele descrito acima com referência à Figura 4 ou outro decodificador de vídeo realiza a técnica 1800.
[00175] Para iniciar, o decodificador obtém 1810 a imagem atual em uma sequência de vídeo. O decodificador verifica 1820 se a imagem atual tem uma mensagem de SEI de BP. Em caso negativo, o decodificador interpreta 1860 o valor de CPBRD para a imagem atual em uma mensagem de SEI de PT como um valor de incremento relativo ao tempo de remoção nominal de CPB de uma imagem precedente em ordem de decodificação que tem uma mensagem de SEI de BP.
[00176] Por outro lado, se a imagem atual tiver uma mensagem de SEI de BP, o decodificador obtém 1830 um valor de sinalizador de concatenação em uma mensagem de SEI de BP para a imagem atual. Dependendo do valor do sinalizador 1840, o decodificador pode interpretar o valor de CPBRD para a imagem atual de formas diferentes, ou mesmo ignorar o valor de CPBRD para a imagem atual.
[00177] Se o sinalizador for igual a 1, o decodificador ignora (1850) o valor de CPBRD para a imagem atual em uma mensagem de SEI de PT. Um valor de CPBRD (valor de delta) na mensagem de SEI de BP para a imagem atual é interpretado como um valor de incremento relativo ao tempo de remoção nominal de CPB da imagem precedente em ordem de decodificação.
[00178] Caso contrário (o sinalizador é igual a 0), o decodificador verifica 1842 se a imagem precedente tem uma mensagem de SEI de BP. Em caso afirmativo, o decodificador pode verificar 1844 que o valor de CPBRD da imagem atual em sua mensagem de SEI de PT é igual ao valor de CPBRD na mensagem de SEI de BP da imagem atual mais 1. Em caso negativo (imagem precedente não tem uma mensagem de SEI de BP), o decodificador pode verificar 1846 que o valor de CPBRD da imagem atual em sua mensagem de SEI de PT é igual ao valor de CPBRD da imagem precedente em sua mensagem de SEI de PT mais o valor de CPBRD (valor de delta) na mensagem de SEI de BP da imagem atual mais 1. O decodificador também interpreta 1860 o valor de CPBRD para a imagem atual em uma mensagem de SEI de PT como um valor de incremento relativo ao tempo de remoção nominal de CPB da imagem precedente em ordem de decodificação que tem uma mensagem de SEI de BP.
[00179] O decodificador verifica 1870 se isso é feito e, em caso negativo, continua com a próxima imagem como a imagem atual. Por uma questão de simplicidade, a Figura 18 não mostra como a técnica 1800 opera em combinação com outros processos de decodificação.
H. VARIAÇÕES E ALTERNATIVAS
[00180] A descrição detalhada inclui muitos exemplos de sintaxe e semântica para mensagens de SEI. Em alguns casos, esses exemplos, em geral, seguem a forma de mensagens de SEI usadas no padrão H.264/AVC e/ou no padrão HEVC. Mais geralmente, o termo "mensagem de SEI" ou "mensagem de VUI" indica qualquer conjunto de elementos de sintaxe associados aos dados de vídeo codificados que transportam pelo menos algumas informações equivalentes às informações transportadas em a(s) estrutura(s) de sintaxe de uma mensagem de SEI ou de VUI exemplificativa descrita no presente documento, independentemente desses elementos de sintaxe serem sinalizados com o uso da sintaxe de SEI ou de VUI especificada no padrão H.264/AVC ou padrão HEVC referenciado, serem sinalizados em outra sintaxe dentro do fluxo de bits de vídeo codificado, ou serem sinalizados por algum outro meio.
[00181] Em vista das muitas modalidades possíveis às quais os princípios da invenção descrita podem ser aplicados, deve ser reconhecido que as modalidades ilustradas são apenas exemplos da invenção e não devem ser tomados como limitantes do escopo da invenção. De preferência, o escopo da invenção é definido pelas reivindicações a seguir. Portanto, reivindica-se como a invenção tudo que for abrangido pelo escopo e espírito dessas reivindicações.

Claims (14)

1. Método realizado por um dispositivo de computação, o método compreendendo as etapas de: definir um valor de delta (CPBRD) de atraso de remoção de armazenamento temporário de imagem codificada (CPB) para uma dada unidade de acesso para uma imagem atual de uma sequência de vídeo, a imagem atual tem uma mensagem de aprimoramento suplementar (SEI) de período de armazenamento temporário associada à uma imagem atual; caracterizado pelo fato de que definir um valor de um sinalizador para a dada unidade de acesso, em que: se o valor do sinalizador for um primeiro valor, o valor de CPBRD em uma mensagem de SEI de sincronismo para a dada unidade de acesso indica um valor de incremento que especifica um tempo nominal de remoção de CPB da imagem atual relativo a um tempo nominal de remoção de CPB de uma primeira imagem precedente em ordem de decodificação, a primeira imagem precedente tem uma mensagem de SEI de período de armazenamento temporário associada à primeira imagem precedente; e se o valor do sinalizador for um segundo valor, o tempo nominal de remoção de CPB da imagem atual é indicado, pelo valor de delta de CPBRD, como um valor de incremento relativo a um tempo nominal de remoção de CPB de uma segunda imagem precedente; em que a segunda imagem precedente precede imediatamente a imagem atual na ordem de decodificação ou a segunda imagem precedente precede imediatamente a imagem atual na mesma subcamada temporal ou inferior na ordem de decodificação; e sinalizar o valor de delta de CPBRD e o valor do sinalizador para a dada unidade de acesso na mensagem de SEI de período de armazenamento temporário associada à imagem atual.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o valor de delta de CPBRD é sinalizado na mensagem SEI do período de armazenamento temporário associada à imagem atual como um elemento de sintaxe que representa o valor de delta de CPBRD menos 1.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a imagem atual é uma imagem de acesso randômico, e em que a sinalização do valor de delta de CPBRD e do valor do sinalizador facilita a união que inicia na imagem de acesso randômico através de uma mudança no valor do sinalizador.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o método ainda compreende: definir o valor de CPBRD para a dada unidade de acesso; e sinalizar o valor de CPBRD para a dada unidade de acesso na mensagem de SEI de sincronismo de imagem como um elemento de sintaxe que representa o valor de CPBRD menos 1.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que se o valor do sinalizador for o primeiro valor: se a segunda imagem precedente for desprovida de uma mensagem de SEI de período de armazenamento temporário associada à segunda imagem precedente, o valor de delta de CPBRD indica uma diferença entre o valor de CPBRD para a dada unidade de acesso e um valor de CPBRD para a segunda imagem precedente; e se a segunda imagem precedente tiver uma mensagem de SEI de período de armazenamento temporário associada à segunda imagem precedente, o valor de delta de CPBRD se iguala ao valor de CPBRD para a dada unidade de acesso.
6. Método realizado por um dispositivo de computação, o método compreendendo as etapas de: receber um valor de delta de atraso de remoção de armazenamento temporário de imagem codificada (CPB) (CPBRD) para uma determinada unidade de acesso para uma imagem atual de uma sequência de vídeo, a imagem atual tendo uma mensagem de informação de aprimoramento suplementar (SEI) do período de armazenamento em buffer associada à imagem atual; caracterizado pelo fato de que receber um valor de um sinalizador para uma dada unidade de acesso, em que se o valor do sinalizador for um primeiro valor, um valor de CPBRD em uma mensagem de SEI de sincronismo para a dada unidade de acesso indica um valor de incremento que especifica um tempo de remoção nominal de armazenamento temporário de imagem cifrada ("CPB") da imagem atual relativo a um tempo nominal de remoção de CPB de uma primeira imagem precedente em ordem de decodificação, em que a primeira imagem precedente tem uma mensagem de SEI de período de armazenamento temporário associada à primeira imagem precedente; e se o valor do sinalizador for um segundo valor, o tempo nominal de remoção de CPB da imagem atual é indicado, pelo valor de delta de CPBRD, como um valor de incremento relativo a um tempo nominal de remoção de CPB de uma segunda imagem precedente; em que a segunda imagem precedente precede imediatamente a imagem atual na ordem de decodificação ou a segunda imagem precedente precede imediatamente a imagem atual na mesma subcamada temporal ou inferior na ordem de decodificação; e analisar o valor de delta de CPBRD e o valor do sinalizador para a dada unidade de acesso da mensagem de SEI de período de armazenamento temporário associada à imagem atual.
7. Método, de acordo com a reivindicação 6, caracterizado pelo fato de que ainda compreende: receber e analisar o valor de CPBRD na mensagem de SEI de sincronismo de imagem para a dada unidade de acesso; e detectar perda de dados comparando-se o valor de CPBRD para a dada unidade de acesso a uma soma baseada em um valor de CPBRD para a segunda imagem precedente e no valor de delta de CPBRD para a dada unidade de acesso.
8. Método realizado por um dispositivo de computação, o método compreendendo as etapas de: receber pelo menos parte de um primeiro fluxo de bits para uma primeira sequência de vídeo; caracterizado pelo fato de que receber pelo menos parte de um segundo fluxo de bits para uma segunda sequência de vídeo que inclui uma imagem atual, em que a imagem atual tem uma mensagem de SEI de período de armazenamento temporário associada à mesma que inclui: um valor de delta de atraso de remoção de armazenamento temporário de imagem cifrada ("CPBRD") para uma dada unidade de acesso para a imagem atual; e um valor de um sinalizador para a dada unidade de acesso, em que: se o valor do sinalizador for um primeiro valor, um valor de CPBRD em uma mensagem de SEI de sincronismo para a dada unidade de acesso indica um valor de incremento que especifica um tempo de remoção nominal de armazenamento temporário de imagem cifrada ("CPB") da imagem atual relativo a um tempo nominal de remoção de CPB de uma primeira imagem precedente em ordem de decodificação, em que a primeira imagem precedente tem uma mensagem de SEI de período de armazenamento temporário associada à primeira imagem precedente; e se o valor do sinalizador for um segundo valor, o tempo nominal de remoção de CPB da imagem atual é indicado, pelo valor de delta de CPBRD, como um valor de incremento relativo a um tempo nominal de remoção de CPB de uma segunda imagem precedente; em que a segunda imagem precedente precede imediatamente a imagem atual na ordem de decodificação ou a segunda imagem precedente precede imediatamente a imagem atual na mesma subcamada temporal ou inferior na ordem de decodificação; e unir pelo menos parte da segunda sequência de vídeo a pelo menos parte da primeira sequência de vídeo, em que a união inclui concatenar a pelo menos parte da segunda sequência de vídeo, iniciando na dada unidade de acesso, a pelo menos parte da primeira sequência de vídeo.
9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que ainda compreende: como parte da união, marcar o valor de CPBRD na mensagem de SEI de sincronismo de imagem para a dada unidade de acesso como não válido definindo-se o valor do sinalizador para o segundo valor.
10. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que a concatenação de pelo menos parte da segunda sequência de vídeo inclui: concatenar a mensagem de SEI de período de armazenamento temporário associada à imagem atual; e concatenar a mensagem de SEI de sincronismo de imagem, em que a mensagem de SEI de sincronismo de imagem inclui o valor de CPBRD para a dada unidade de acesso.
11. Método, de acordo com a reivindicação 1, 6 ou 8, caracterizado pelo fato de que a segunda imagem precedente é desprovida de uma mensagem de SEI de período de armazenamento temporário associada à segunda imagem precedente, e a primeira imagem precedente e a segunda imagem precedente são imagens diferentes.
12. Método, de acordo com a reivindicação 1, 6 ou 8, caracterizado pelo fato de que a segunda imagem precedente tem uma mensagem de SEI de período de armazenamento temporário associada à segunda imagem precedente, e a primeira imagem precedente é a segunda imagem precedente.
13. Mídia legível por computador, caracterizada pelo fato de que armazena o método conforme definido em qualquer uma das reivindicações 1 a 12.
14. Dispositivo de computação caracterizado pelo fato de que está adaptado para executar o método conforme definido em qualquer uma das reivindicações 1 a 12.
BR112015016254-1A 2013-01-07 2014-01-07 Método realizado por um dispositivo de computação, mídia legível por computador e dispositivo de computação BR112015016254B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361749909P 2013-01-07 2013-01-07
US61/749,909 2013-01-07
US14/109,670 US9661341B2 (en) 2013-01-07 2013-12-17 Syntax and semantics for buffering information to simplify video splicing
US14/109,670 2013-12-17
PCT/US2014/010393 WO2014107691A1 (en) 2013-01-07 2014-01-07 Syntax and semantics for buffering information to simplify video splicing

Publications (2)

Publication Number Publication Date
BR112015016254A2 BR112015016254A2 (pt) 2017-07-11
BR112015016254B1 true BR112015016254B1 (pt) 2023-08-29

Family

ID=

Similar Documents

Publication Publication Date Title
US11943464B2 (en) Syntax and semantics for buffering information to simplify video splicing
US10701401B2 (en) Syntax structures indicating completion of coded regions
TWI603609B (zh) 簡化視訊隨機存取之限制及單元類型
BR112015025393B1 (pt) Sistema, método e meio legível por computador
EP3262840B1 (en) Mitigating loss in inter-operability scenarios for digital video
BR112015016254B1 (pt) Método realizado por um dispositivo de computação, mídia legível por computador e dispositivo de computação