BR122022001670B1 - Método em um sistema de computação que implementa um codificador de vídeo, sistema de computação e meio de armazenamento legível por computador - Google Patents

Método em um sistema de computação que implementa um codificador de vídeo, sistema de computação e meio de armazenamento legível por computador Download PDF

Info

Publication number
BR122022001670B1
BR122022001670B1 BR122022001670-7A BR122022001670A BR122022001670B1 BR 122022001670 B1 BR122022001670 B1 BR 122022001670B1 BR 122022001670 A BR122022001670 A BR 122022001670A BR 122022001670 B1 BR122022001670 B1 BR 122022001670B1
Authority
BR
Brazil
Prior art keywords
ltrp
current image
image
images
poc
Prior art date
Application number
BR122022001670-7A
Other languages
English (en)
Inventor
Gary J. Sullivan
Yongjun Wu
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
Application filed by Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BR122022001670B1 publication Critical patent/BR122022001670B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

A presente invenção refere-se a inovações para sinalizar o estado de um armazenador de imagem decodificado ("DPB") e listas de imagem de referência ("RPLs"). Em implementações exemplificativas, ao invés de confiar no estado interno de um decodificador (270) para gerenciar e atualizar DPB e RPLs, informação de estado sobre o DPB e RPLs é explicitamente sinalizada. Isso permite a um decodificador (270) determinar quais imagens se espera que estejam disponíveis como referência a partir da informação de estado sinalizada. Por exemplo, um codificador (220) determina informação de estado que identifica quais imagens estão disponíveis para uso como imagens de referência (opcionalmente considerando-se informação de retorno a partir de um decodificador (270) sobre quais imagens estão disponíveis). O codificador (220) determina elementos de sintaxe que representam a informação de estado. Ao fazer isso, o codificador (220) determina informação de identificação para uma imagem de referência a longo prazo ("LTRP"), onde a informação de identificação é um valor de bits menos significativos na contagem de ordem para a LTRB. O codificador (220) então emite os elementos de sintaxe como parte de um fluxo de bit.

Description

Antecedentes
[001] Engenheiros usam a compressão (também chamada de codificação de fonte ou codificação de fonte) para reduzir a taxa de bit do vídeo digital. A compressão diminui o custo do armazenamento e da transmissão de informações de vídeo convertendo-se a informação em uma forma de taxa de bit mais baixa. A descompressão (também chamada decodificação) reconstrói uma versão da informação original a partir da forma comprimida. Um "codec" é um sistema codifica- dor/decodificador.
[002] Ao longo das duas últimas décadas, vários padrões codec de vídeo têm sido adotados, incluindo os padrões H.261, H.262 (MPEG-2 ou ISO/IEC 1318-2), H.263 e H.264 (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. Mais recentemente, o padrão HEVC tem sido desenvolvido. Um padrão codec de vídeo tipicamente define opções para a sintaxe de um fluxo de vídeo codificada, deta-lhando parâmetros no fluxo de vídeo quando características particulares são usadas na codificação e decodificação. Em muitos casos, um padrão codec de vídeo também proporciona detalhes sobre as operações de decodificação que um decodificador deve realizar para chegar a resultados corretos na decodificação.
[003] Uma meta básica da compressão é proporcionar um bom desempenho taxa-distorção. Assim, para uma taxa de bit específica, um codificador tenta proporcionar a qualidade de vídeo mais alta. Ou, para um nível particular de qualidade/fidelidade para o vídeo original, um codificador tenta proporcionar o vídeo codificado com a taxa de bit mais baixa. Na prática, dependendo das condições de uso, considerações como tempo de codificação, complexidade de codificação, recursos de codificação, tempo de decodificação, complexidade de decodi- ficação, recursos de decodificação, retardo como um todo, capacidade de recuperação de perda, e/ou suavidade na reprodução também afetam decisões feitas durante a codificação e decodificação.
[004] Tipicamente, um codificador ou decodificador de vídeo ar mazena imagens decodificadas previamente, as quais o codificador ou decodificador de vídeo pode usar quando codifica outras imagens. Essas imagens reconstruídas e armazenadas são frequentemente chamadas de imagens de referência. Alguns padrões codec de vídeo descrevem regras elaboradas para gerenciar e atualizar quais imagens de referência são armazenadas, e quais imagens de referência não são mais usadas como referência. Isso pode permitir a um codificador aumentar a eficiência da compressão tomando decisões acertadas sobre quais imagens de referência usar, mas o processo de gerenciar e atualizar imagens de referência pode ser complicado para o codificador e decodificador. Além disso, um decodificador usa vários fragmen-tos de informação no fluxo de bit de vídeo codificado para rastrear e atualizar o estado de seu armazenador de imagem de referência e listas de imagens de referência. A perda de informação do fluxo de bit (por exemplo, devido à perda ou corrupção do pacote) pode afetar adversamente a decodificação por um período significativo de tempo se o estado interno do decodificador para seu armazenador de imagem de referência e/ou listas de imagens de referência se desvia do estado esperado, e o decodificador não usa mais as imagens de referência apropriadas.
SUMÁRIO
[005] Em resumo, a descrição detalhada apresenta inovações para sinalizar o estado de um armazenador de imagem decodificada ("DPB") e listas de imagem de referência. As inovações podem reduzir a taxa de bit associada com a sinalização de informação de estado para o DPB e com a lista de imagem de referência ("RPL"), e melhorar o gerenciamento do DPB e/ou o gerenciamento da RPL em vários outros aspectos, proporcionando ainda assim resistência contra a perda de informação que afete o estado.
[006] Ao invés de confiar no estado interno de um decodificador para gerenciar e atualizar DPB e RPLs, a informação de estado sobre o DPB e as RPLs é explicitamente sinalizado. Isso permite que o de- codificador determine quais imagens se espera que estejam disponíveis como referência no DPB a partir da informação de estado sinalizado, que identifica quais imagens está disponíveis no momento como referência. Essa informação sobre o estado pode ser chamada de informação sobre a lista de descrição do armazenador ("BDL"), o que geralmente se refere a qualquer forma de informação que indique expressamente o estado de um DPB e/ou RPLs.
[007] Inovações descritas aqui incluem, entre outras, as seguin tes:
[008] Utilizando-se um indicador de referência futura por imagem de referência na informação da BDL, onde o indicador de referência futura indica se a imagem de referência é usada apenas para decodifi- cação da imagem fluxo (associada à informação da BDL) ou então é usado para decodificar pelo menos uma imagem subsequente em ordem codificada. O uso desse indicador pode permitir o armazenamento de uma imagem de referência adicional no DPB.
[009] Utilizando-se um indicador de decisão liga/desliga para uso do indicador de referência. Por exemplo, o indicador de decisão li- ga/desliga pode ser sinalizado como parte de um conjunto de parâme- tro de sequência ("SPS") e indicar a presença/ausência de futuros indicadores de referência na informação da BDL. Isso pode permitir a um codificador decidir usar ou não indicadores de referência futura na informação da BDL.
[0010] Na informação sobre BDL para uma imagem associada com uma camada temporal mais alta, permitir à imagem de referência marcar informação para marcar uma ou mais imagens em uma camada temporal mais baixa como não sendo usada como referência. Embora tal comportamento possa ser incomum na prática, em algumas situações pode ser útil permitir essas opções para gerenciamento de imagem de referência para imagens em uma camada temporal mais alta. E, quando a informação posterior sobre a BDL não apresentar a informação de status para as imagens de referência anteriormente removidas com informação da BDL para uma imagem na camada temporal mais alta, o decodificador pode pressupor a remoção dessas imagens de referência.
[0011] Utilizar um indicador de designação de imagem de camada mais alta por imagem de uma camada temporal mais alta em informação sobre BDL, onde o indicador de designação de imagem de camada mais alta designa uma imagem que se relaciona a uma camada temporal mais alta para os propósitos de informação da BDL. Em muitas situações, as imagens de uma camada temporal mais alta tem pouca ou nenhuma utilidade como imagens de referência, e o processo de gerenciamento e atualização do DPB podem ser simplificados para essas imagens. Onde a informação da BDL é usada de alguma maneira para imagens de uma camada temporal mais alta, um simples indicador por imagem na informação da BDL pode ser suficiente para designar a imagem como estando associada a uma camada temporal mais alta, onde as ações de gerenciar e atualizar o DPB estão implícitas.
[0012] Utilizar um indicador de decisão ligar/desligar para incluir informação de status sobre imagens de camadas temporais mais altas na informação sobre a informação da BDL. Por exemplo, o indicador de decisão ligar/desligar pode ser assinalado como parte de um SPS e indicar presença/ausência de informação de status sobre imagens de camadas temporais mais altas em informação da BDL.
[0013] A informação sobre BDL pode ser assinalada ao nível de conjunto de parâmetro de fatia adaptado ("APS"). Um único nível de informação sobre BDL está associado a um APS.
[0014] Simplificar a sinalização de informação sobre status para uma imagem de referência a longo prazo ("LTRP") na informação da BDL. LTRPs proporcionam um elemento de projeto útil para codificação e decodificação, mas se responsabilizar pelo gerenciamento e atualização das LTRPs na informação da BDL apresenta desafios. Em particular, para uma LTRP que permanece em um DPB por um longo tempo, a sinalização de identificação de informação pode consumir um grande número de bits e criar casos especiais a serem monitorados na segmentação e decodificação do fluxo de bit.
[0015] Várias versões de sintaxe simplificada para LTRPs em in formação da BDL são propostas aqui, que reduzem a taxa de bit para informação sobre o status e simplificar o gerenciamento de DPB. Por exemplo, um indicador de LTRP para uma imagem na informação da BDL marca a imagem como sendo uma LTRP com o propósito de gerenciamento do DPB.
[0016] Utilizar uma decisão ligar/desligar para indicador para inclu ir a informação de status sobre LTRPs na informação da BDL. Por exemplo, o indicador da decisão ligar/desligar pode ser assinalado como parte de um SPS e indicar a presença/ausência de informação de status sobre LTRPs na informação da BDL, o que simplifica a sinalização da informação da BDL quando um codificador decidiu não usar LTRPs.
[0017] Reduzir o número de bits usado para identificar LTRPs na informação da BDL.
[0018] Em muitas situações de uso, o número de imagens de refe rência (e LTRPs) é pequeno, e um pequeno número de bits é suficiente para identificar LTRPs. Um codificador pode aumentar o número de bits usado para identificar LTRPs para outras situações de uso.
[0019] Organizar a informação da BDL na ordem usada para a construção de uma RPL.
[0020] Isso simplifica a sintaxe com o propósito da construção da RPL.
[0021] Sinalizar se intervalos nos valores na contagem da ordem de imagem ("POC") são permitidos. Se os intervalos não forem permitidos, um decodificador pode reconhecer perdas de imagem quando ele determina que valores da POC estão faltando, e um decodificador pode tomar decisões sobre imagens estarem prontas para emissão com base nos valores da POC.
[0022] Elementos de sintaxe na informação da BDL podem ser co dificadas utilizando-se código Exp-Golomb truncado (isto é, te(v)) ao invés de codificação Exp-Golomb não assinada. Isso é mais eficiente para elementos de sintaxe com um pequeno número de valores possíveis.
[0023] De acordo com um aspecto das inovações descritas aqui, um sistema de computação determina informação sobre o estado que identifica quais imagens estão disponíveis para uso como imagens de referência. O sistema de computação determina elementos de sintaxe que representam a informação sobre o estado. Particularmente, fazendo isso, o sistema de computação determina informação de identi-ficação para um LTRP, onde a informação de identificação é um valor de POC bits menos significativos ("POC LSBs") para a LTRB. O siste- ma de computação então emite os elementos de sintaxe como parte de um fluxo de bit.
[0024] De acordo com outro aspecto das inovações descritas aqui, um sistema de computação recebe pelo menos parte de um fluxo de bit. A partir do fluxo de bit, o sistema de computação segmenta elementos de sintaxe que estão disponíveis para uso como imagens de referência. Em particular, os elementos de sintaxe incluem informa-ções de identificação para uma LTRP, em que a informação de identificação é um valor de POC LSBs para a LTRB. O sistema de computação usa a informação de identificação durante a decodificação.
[0025] Estes e outros objetivos, aspectos, e vantagens da inven ção vão ficar mais claros a partir da descrição detalhada a seguir, que prossegue com referência às figuras anexas.
BREVE DESCRIÇÃO DOS DESENHOS
[0026] A Figura 1 é um diagrama de um sistema de computação exemplificativo no qual algumas modalidades descritas podem ser implementadas.
[0027] As Figuras 2a e 2b são diagramas de ambientes de rede exemplificativos nos quais algumas modalidades descritas podem ser implementadas.
[0028] A Figura 3 é um diagrama de um sistema codificador exemplificativo em conjunto com o qual algumas modalidades descritas podem ser implementadas.
[0029] A Figura 4a é um fluxograma de uma técnica generalizada para emitir um elemento de sintaxe como descrito aqui, e a Figura 4b é um fluxograma de uma técnica exemplificativa para sinalizar identificação de informação para LTRPs em um fluxo de bit.
[0030] A Figura 5 é um diagrama de um sistema decodificador exemplificativo em conjunto com o qual algumas modalidades descritas podem ser implementadas.
[0031] A Figura 6a é um fluxograma de uma técnica generalizada para segmentação de um elemento de sintaxe como descrito aqui, e a Figura 6b é um fluxograma de uma técnica exemplificativa para segmentar informação de identificação para LTRPs a partir de um fluxo de bit.
[0032] A Figura 7a é uma listagem de pseudocódigo para derivar a variável PicOrderCntMsb, e a Figura 7b é uma listagem de pseudocódigo para derivar a váriável PicOrderCntVal.
Descrição Detalhada
[0033] A descrição detalhada apresenta inovações para sinalizar o estado de um DPB e de RPLs. As inovações podem ajudar a reduzir a taxa de bit associada à informação de BDL e/ou simplificar o processo de gerenciamento de DPB ou de construção de RPL, suportando ainda assim a recuperação de perda.
[0034] Algumas das inovações descritas aqui são ilustradas com referência a elementos de sintaxe e operações específicas para o H.264 e/ou padrão HEVC. Tais inovações também podem ser implementadas para outros padrões ou formatos.
[0035] Mais geralmente, várias alternativas para os exemplos des critos aqui são possíveis. Certas técnicas descritas com referência aos diagramas de fluxograma podem ser alteradas mudando-se a ordem de estágios mostrada nos fluxogramas, pela divisão, repetição, ou omissão de certos estágios, etc. Os vários aspectos do estado de sinalização de um DPB e RPLs podem ser usados em combinação ou se-paradamente. Diferentes modalidades usam uma ou mais das inovações descritas. Algumas das inovações descritas aqui abordam um ou mais dos problemas observados no estado da técnica. Tipicamente, uma determinada técnica/ferramenta não resolve todos esses proble-mas.
I. Sistemas de Computação Exemplificativos.
[0036] A Figura 1 ilustra um exemplo generalizado de um sistema de computação adequado 100 no qual diversas das inovações descritas podem ser implementadas. O sistema de computação 100 não se destina a sugerir qualquer limitação quanto a escopo de uso ou funcionalidade, uma vez que as inovações podem ser implementadas em diversos sistemas de computação de propósito geral ou propósito es-pecífico.
[0037] Com referência à Figura 1, o sistema de computação 100 inclui uma ou mais unidades de processamento 110, 115 e memória 120, 125. Na Figura 1, essa configuração mais básica 130 está incluída dentro de uma linha tracejada. 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 para a aplicação (ASIC) ou qualquer outro tipo de processador. Em um sistema de multiprocesssamento, múltiplas unidades de processamento executam instruções executáveis por computador para aumentar o poder do processamento. Por exemplo, a Figura 1 mostra uma unidade de processamento central 110 e também uma unidade de processamento gráfico ou unidade de coprocessamento 115. A memória tangível 120, 125 pode ser a memória volátil (por exemplo, registros, cachê, RAM), memória não-volátil (por exemplo, ROM, EEPROM, memória flash, etc.) ou alguma combinação das duas, acessível pela(s) unidade(s) de processamento. A memória 120, 125 armazena software 180 implementando uma ou mais inovações para sinalizar informação BDL, na forma de instruções executáveis por computador adequadas para execução pela(s) unidade(s) de processamento.
[0038] Um sistema de computação pode ter características adicio nais. Por exemplo, o sistema de computação 100 inclui armazenamento 140, um ou mais dispositivos de entrada 150. 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, software de sistema de operação (não mostrado) proporciona um ambiente de operação para o outro software que está em execução no sistema de computação 100, e coordena atividades dos componentes do sistema de computação 100.
[0039] O armazenamento tangível 140 pode ser removível ou não removível, e inclui discos magnéticos, fitas magnéticas ou cassetes, CD-ROMs, DVDs, ou qualquer outro meio que possa ser usado para armazenar informação que pode ser acessado dentro do sistema de computação 100. O armazenamento 140 armazena instruções para o software 180 implementando uma ou mais inovações para sinalizar informação da BDL.
[0040] O(s) dispositivo(s) de entrada (150) pode(m) ser um dispo sitivo de entrada por meio de toque tal como um teclado, mouse, caneta, ou TrackBall, um dispositivo de entrada de voz, um dispositivo es- caneador, ou outro dispositivo que proporcione entrada para o sistema de computação 100. Para o encadeamento de vídeo, o(s) dispositi- vo(s) de entrada 150 pode ser um componente de captura de vídeo tal como uma câmera, cartão de vídeo, cartão sintonizador de TV, ou dispositivo similar que aceita entrada de vídeo em forma análoga ou digital, um componente de captura de vídeo tal como um módulo de captura de vídeo que captura imagens de tela geradas por computador como um vídeo ou componente similar que captura conteúdo de imagem gerado por computador, ou um CD-ROM ou CD-RW que lê amostras de vídeo no sistema de computação 100. O(s) dispositivo(s) de saída 160 pode(m) ser um mostrador, impressora, alto-falante, escritor de CD, ou outro dispositivo que proporcione saída do sistema de computação 100.
[0041] A(s) conexão(ões) 170 permitem comunicação em um meio de comunicação por um meio de comunicação para outra entidade de computação. O meio de comunicação leva informação tal 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 de- terminada(s) ou mudada(s) de maneira à codificar informação no sinal. A título de exemplo, e não limitação, meios de comunicação podem um portador elétrico, óptico, RF ou de outro tipo.
[0042] As inovações podem ser descritas no contexto geral dos meios legíveis por computador. Meios legíveis por computador são quaisquer meios tangíveis disponíveis que possam ser acessados dentro de um ambiente de computação. A título de exemplo, e não limitação, com o sistema de computação 100, meios legíveis por computador incluem memória 120, 125, armazenamento 140, e combinações de quaisquer destes.
[0043] As inovações podem ser descritas no contexto geral de ins truções executáveis por computador, tais como aquelas incluídas em módulos de programas, sendo executadas em um sistema de computação em um processador alvo real ou virtual. Geralmente, módulos de programa incluem rotinas, programas, bibliotecas, objetos, classes, componentes, estruturas de dados, etc. que realizam tarefas específicas ou implementam tipos de fados abstratos específicos. A funcionalidade dos módulos de programa pode ser combinada ou dividida entre módulos de programa conforme desejado em várias modalidades. Instruções executáveis por computador para módulos de programa podem ser executados dentro de um sistema de computação local ou distribuídos.
[0044] Os termos "sistema" e "dispositivo" são usados indiferente mente aqui. A menos que o contexto claramente indique o contrário, nenhum termo implica qualquer limitação em 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 com propósito específico e/ou propósito geral com software implementando a funcionalidade descrita aqui.
[0045] Com a finalidade 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 efetivas do computador que correspondem a esses termos variam dependendo da implementação.
II. Ambientes de Rede Exemplificativos
[0046] As Figuras 2a e 2b mostram ambientes de rede exemplifi- cativos 201, 202 que incluem codificadores de vídeo 220 e decodifica- dores de vídeo 270. Os codificadores 220 e decodificadores 270 estão conectados por sobre uma rede 250 que utiliza um protocolo de comunicação apropriado. A rede 250 pode incluir a internet ou outra rede de computador.
[0047] No ambiente de rede 201 mostrado na Figura 2a, cada fer ramenta de comunicação em tempo real ("RTC") 210 inclui um codificador 220 e um decodificador 270 para comunicação bidirecional. Um determinado codificador 220 pode produzir uma saída que atenda ao padrão SMPTE 421M, ISO/IEC 14496-10 (também conhecido como H.264 ou AVC), padrão HEVC, outro padrão, ou um formato do 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, vídeo-chamada telefônica, ou outra situação de comunicação entre duas partes. Embora o ambiente de rede 201 na Figura 2a inclua duas ferramentas para comunicação em tempo real 210, o ambiente de rede 201 pode ao invés disso incluir três ou mais ferramentas de comunicação em tempo real 210 que participam em comunicações entre várias partes.
[0048] Uma ferramenta para comunicação em tempo real 210 ge rencia a 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 5 mostra um sistema de decodificador exemplificativo (500), 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.
[0049] No ambiente de rede 202 mostrado na Figura 2b, uma fer ramenta de codificação 212 inclui um codificador 220 que codifica o vídeo para envio a múltiplas ferramentas de reprodução 214, o que inclui decodificadores 270. A comunicação unidirecional pode ser proporcionada para um sistema de vigilância por vídeo, sistema de monitoramento de câmera em rede, apresentação de conferência em área de trabalho remota ou outra situação na qual vídeo é codificado e enviado de um local para um ou mais outros locais. 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 ser recebida pela ferramenta de reprodução 214. A ferramenta de reprodução 214 recebe o fluxo, armazena os dados codificados recebidos por um período apropriado, e começa a decodificar e reproduzir.
[0050] 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 pode incluir também lógica de controlador do lado do servidor para gerenciar conexões com uma ou mais ferramentas de reprodução 214 e/ou ferramentas de transmissão de vídeo em rede. A Figura 5 mostra um sistema decodificador exem- plificativo 500, 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 pode incluir também lógica de controlador por parte do cliente para gerenciar conexões com a ferramenta de codificação 212.
III. Sistemas de Codificador Exemplificativo.
[0051] A Figura 3 é um diagrama de blocos de um sistema codifi cador exemplificativo 300 em conjunto com o qual algumas modalidades descritas podem ser implementadas. O sistema codificador 300 pode ser uma ferramenta codificadora de propósito geral capaz de operar em qualquer dos múltiplos modos de codificação tais como um modo de codificação de baixa latência para comunicação em tempo real, modo de transcodificação, e modo de codificação regular para a reprodução em mídia a partir de um arquivo ou fluxo, ou pode ser uma ferramenta de codificação com finalidade especial adaptada para um modo de codificação como esse. O sistema codificador 300 pode ser implementado como um módulo de sistema de operação, como parte de uma biblioteca de aplicativo ou como um aplicativo independente. Especialmente, o sistema codificador 300 recebe uma sequência de quadros de vídeo de fonte 311 de uma fonte de vídeo 310 e produz dados codificados como saída para um canal 390. A saída de dados codificada para o canal pode incluir um ou mais elementos de sintaxe como descrito na Seção V.
[0052] A fonte de vídeo 310 pode ser uma câmera, cartão sintoni zador, meios de armazenamento, ou outra fonte de vídeo digital. A fonte de vídeo 310 produz uma sequência de quadros de vídeo a uma taxa de quadro de, por exemplo, 30 quadros por segundo. Conforme usado aqui, o termo "quadro" se refere de forma geral a dados de imagem de fonte, codificados ou reconstruídos. Para um vídeo progressivo, um quadro é um quadro de vídeo progressivo. Para um 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çados complementares são codificados como um quadro de vídeo entrelaçado ou campos separados. Além de indicarem um quadro de vídeo progressivo, o termo "quadro" pode indicar um único campo de vídeo não emparelhado, um par complementar de campos de vídeo, um plano de objeto de vídeo que representa um objeto de vídeo em um dado momento, 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 uma cena.
[0053] Um quadro de fonte que chega 311 é armazenado em uma área de armazenamento de memória temporária de quadro de fonte 320 que inclui múltiplas áreas de armazenamento de armazenador quadro 321, 322,...,32n. Um armazenador de quadro 321, 322, etc. mantém um quadro de fonte na área de armazenamento de quadro de fonte 320. Após um ou mais dos quadros de fonte 311 terem sido armazenados em armazenadores de quadro 321, 322, etc., um seletor de quadro 330 seleciona periodicamente um quadro de fonte individual da área de armazenamento de quadro 320. A ordem na qual os quadros são selecionados pelo seletor de quadro 330 para entrada no co-dificador 340 pode diferir da ordem na qual os quadros são produzidos pela fonte de vídeo 310, por exemplo, um quadro pode estar na frente quanto à ordem, para facilitar previsão retroativa temporalmente. Antes do codificador 340, o sistema codificador 300 pode incluir um pré- processador (não ilustrado) que realiza pré-processamento (por exemplo, filtração) do quadro selecionado (331) antes da codificação.
[0054] O codificador 340 codifica o quadro selecionado 331 para produzir um quadro codificado 331 para produzir um quadro codificado 341 e também produz sinais de controle de gerenciamento de memória 342. Se o quadro corrente não for o primeiro quadro que foi codificado, ao realizar seu processo de codificação, o codificador 340 pode usar um ou mais quadros codificados/decodificados 369 que foram armazenados em uma área de armazenamento de memória temporária de quadro decodificado 360. Esses quadros decodificados armazenados 369 são usados como quadros de referência para previsão in- terquadro do conteúdo do quadro de fonte corrente 331. Em geral, o codificador 340 inclui múltiplos módulos de codificação que desempenham tarefas de codificação tais como estimativa de movimento e compensação, transformações de frequência, quantificação e codificação de entropia. As operações exatas desempenhadas pelo codificador 340 podem variar dependendo do formato de compressão. O formato dos dados codificados pode ser um formato Windows Media Video, format Vc-1, format 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 ou outro formato.
[0055] 40 Os quadros codificados 341 e a informação da BDL 342 são processados por um emulador de processo de decodificação 350. O emulador de processo de decodificação 350 implementa uma parte da funcionalidade de um decodificador, por exemplo, tarefas de deco- dificação para reconstruir quadros de referência que são usados pelo codificador 340 em estimativa de movimento e compensação. O emulador de processo de decodificação 350 usa a informação da BDL 342 para determinar se um determinado quadro codificado 341 precisa ser reconstruído e armazenado para uso como quadro de referência em uma previsão interquadro de quadros subsequentes a serem codificados. Se a informação da BDL 342 indica que um quadro codificado 341 precisa ser armazenada, o emulador de processo de decodifica- ção 350 modela o processo de decodificação que seria conduzido por um decodificador que recebe o quadro codificado 341 e produz um quadro decodificado correspondente 351. Fazendo isso, quando o codificador 340 usou quadro(s) decodificado(s) 369 que foi(foram) arma- zenado(s) na área de armazenamento de quadro decodificado 360, o emulador de processo de decodificação 350 também usa o(s) qua- dro(s) decodificado(s) 369 da área de armazenamento 360 como parte do processo de decodificação.
[0056] A área de armazenamento de quadro decodificado 360 inclui áreas de armazenamento de quadro modificado 361, 362, ..., 36/n). O emulador de processo de decodificação 350 utiliza a informação da BDL 342 para gerenciar o conteúdo da área de armazenamento 360 para identificar quaisquer armazenadores de quadro (361, 362, etc.) com quadros que não são mais necessários pelo codificador 340 para uso com quadros de referência. Após modelar o processo de de- codificação, o emulador de processo de decodificação 350 armazena um quadro decodificado recentemente 351 em um armazenador de quadro 361, 362, etc. que foi identificado dessa maneira.
[0057] Os quadros codificados 341 e a informação da BDL 342 também estão armazenados em uma área de dados codificados temporários 370. Os dados codificados que são agregados na área de dados codificados 370 podem conter, como parte da sintaxe de um fluxo de bit de vídeo codificado elementar, um ou mais elementos de sintaxe como descritos na Seção V. Alternativamente, os dados codificados que estão agregados na área de dados codificados 370 podem incluir elemento(s) de sintaxe tal(is) como aquele(s) descrito(s) na Seção V como parte de metadados de mídia relacionados aos dados de vídeo codificados (por exemplo, como um ou mais parâmetros em uma ou mais mensagens de informação de aprimoramento suplementar ("SEI") ou mensagens sobre a informação sobre a possibilidade de uso de vídeo ("VUI").
[0058] Os dados agregados 371 da área de dados codificados temporários 370 são processados por um codificador de canal 380. O codificador de canal 380 pode transformar em pacote os dados agregados para transmissão como fluxo de mídia, caso em que o codificador de canal 380 pode em alguns casos acrescentar, como parte da sintaxe da corrente de transmissão de mídia, elemento(s) de sintaxe como aqueles descritos em Seção V. Ou, o codificador de canal 380 pode organizar os dados agregados como um arquivo, caso em que o codificador de canal 380 pode em alguns casos acrescentar, como parte da sintaxe do arquivo de armazenamento de mídia, elemento(s) de sintaxe como aqueles descritos na Seção V. Ou, mais geralmente, o codificador de canal 380 pode implementar um ou mais protocolos de multiplexação de sistema de mídia ou protocolos de transporte, caso em que o codificador de canal 380 pode em alguns casos adicionar, como parte da sintaxe do(s) protocolo(s), elemento(s) de sintaxe tal(is) como aqueles descritos na Seção V. O codificador de canal 380 proporciona saída para um canal 390, o que representa armazenamento, uma conexão de comunicações, ou outro canal para a saída.
[0059] A Figura 4a mostra uma técnica exemplificativa 400 para determinar e emitir um ou mais elementos de sintaxe como descrito na Seção V. Por exemplo, uma ferramenta de comunicação em tempo real ou ferramenta de codificação com referência à Figura 2a e 2b executa a técnica 400. Alternativamente, outra ferramenta executa a técnica 400. Para começar, a ferramenta determina 410 um ou ele- mento(s) de sintaxe como descrito na Seção V. A ferramenta então emite 420 o elemento ou elementos de sintaxe.
[0060] A Figura 4b mostra um exemplo específico 401 da técnica 400, focando em sinalização de identificar informação para imagens de referência a longo prazo ("LTRPs"). Por exemplo, uma ferramenta de comunicação em tempo real ou ferramenta de codificação descrita com referência à Figura 2a e 2b desempenha a técnica 401. Alternativamente, outra ferramenta realiza a técnica 401.
[0061] Para iniciar, a ferramenta determina 405 informação de es tado que identifica quais imagens estão disponíveis para uso como imagens de referência (isto é, disponíveis correntemente para o codificador de vídeo para uso como imagens de referência; que se espera que estejam disponíveis para um decodificador de vídeo para uso como imagens de referência nesse ponto na decodificação). A ferramenta então determina 411 elementos de sintaxe que representam a informação de estado. Em particular, a ferramenta determina informação de identificação para uma LTRP. A informação de identificação para a LTRP é um valor de bits menos significantes na contagem de ordem de imagem ("POC LSBs") para a LTRB. As imagens disponíveis para uso como imagens de referência também podem incluir uma imagem de referência de curto prazo ("STRP"). Nesse caso, a ferramenta pode reutilizar o valor de POC LSBs para a LTRB como um valor de POC LSBs para a STRB, mas marcam a LTRB como usado como referência de longo prazo para diferenciar entre a LTRP e a STRP.
[0062] Os elementos de sintaxe que estão assinalados no fluxo de bit podem incluir outro e/ou mais elementos de sintaxe. Por exemplo, a ferramenta determina se incluir ou não informação de status sobre LTRPs no fluxo de bit para imagens de uma sequência, e saídas, como parte de um conjunto de parâmetros de sequência, um indicador que indica se a informação de status sobre LTRPs está presente no fluxo de bit para as imagens da sequência. Ou, a ferramenta determina um número de bits para uso pela POC LSBs para valores de POC LSBs para LTRBs, então emite um elemento de sintaxe que indica o número de bits para POC LSBs (por exemplo, um elemento de sintaxe que representa o logaritmo base 2 de um ponto de enrolamento para POC LSBs com relação a um valor constante, tal como um elemento de sintaxe de log2_max_pic_order_cnt_lsb_minus4). Ou, a ferramenta utiliza e sinaliza outros elementos de sintaxe descritos na seção V.
[0063] A ferramenta então emite 421 os elementos de sintaxe co mo parte de um fluxo de bit. Por exemplo, a ferramenta sinaliza os elementos de sintaxe em um fluxo de bit de vídeo codificado elementar para uma imagem corrente. Alternativamente, os elementos de sintaxe estão sinalizados em algum outro nível de sintaxe de fluxo de bit.
IV. Sistemas de Decodificador Exemplificativos.
[0064] A Figura 5 é um diagrama de blocos de um sistema decodi- ficador exemplificativo 500 em conjunto com o qual algumas modalidades descritas podem ser implementadas. O sistema decodificador 500 pode ser uma ferramenta de decodificação com finalidade geral capaz de operar em qualquer um dentre múltiplos modos de decodifi- cação tal como modo de decodificação de baixa latência para comunicação em tempo real e modo de decodificação regular para reprodução em mídia a partir de um arquivo ou fluxo, ou pode ser uma ferramenta de decodificação com finalidade específica adaptada para um modo de decodificação como esse. O sistema decodificador 500 pode ser implementado como um módulo do sistema de operação, como parte de um aplicativo de biblioteca ou um aplicativo independente. Especialmente, o sistema decodificador 500 recebe dados codificados de um canal 510 e produz quadros reconstruídos como saída para um destino de saída 590. Os dados codificados podem incluir um ou mais elementos de sintaxe como descritos na Seção V.
[0065] O sistema decodificador 500 inclui um canal 510 que pode representar armazenamento, uma conexão de comunicação, ou outro canal para dados codificados como entrada. O canal 510 produz dados codificados que foi codificado por canal. Um decodificador de canal 520 pode processar os dados codificados. Por exemplo, o decodifi- cador de canal 520 desempacota dados que foram agregados para transmissão como fluxo de mídia, e nesse caso o decodificador de canal 520 pode segmentar, como parte da sintaxe do fluxo de transmissão de mídia, elemento(s) de sintaxe tal (tais) como aquele(s) des- crito(s) na Seção V. Ou o decodificador de canal 520 separa dados de vídeo codificados que foram agregados para armazenamento como um arquivo, e neste caso o decodificador de canal 520 pode segmentar, como parte da sintaxe do fluxo de transmissão de mídia, elemen- to(s) de sintaxe tal(is) como aquele(s) descritos na Seção V. Ou, o de- codificador de canal 520 separa dados de vídeo codificados que foram agregados para armazenamento como um arquivo, caso em que o de- codificador de canal 520 pode segmentar, como parte da sintaxe do arquivo de armazenamento de mídia, elemento(s) de sintaxe tal (tais) como aquele(s) descritos na Seção V. Ou, de maneira mais geral, o decodificador de canal 520 pode implementar um ou mais protocolos desmultiplexadores de mídia ou protocolos de transporte, caso em que o decodificador de canal 520 pode segmentar, como parte da sintaxe do(s) protocolo(s), elemento(s) de sintaxe como aqueles descritos na Seção V.
[0066] Os dados codificados 521 que são emitidos do decodifica- dor de canal 520 são armazenados em uma área de dados codificados temporariamente 530 até que uma quantidade de suficiente desses dados tenha sido recebida. Os dados codificados 521 incluem quadros codificados 531 e informação da BDL 532. Os dados codificados 521 na área de dados codificados 530 podem conter, como parte da sinta- xe de um fluxo de bit de vídeo codificado elementar, um ou mais elementos de sintaxe tais como aqueles na Seção V. Ou, os dados codificados 521 na área de dados codificados 530 podem incluir elemen- to(s) de sintaxe tal (tais) como aqueles descritos na Seção V como parte de metadados de mídia relacionados aos dados de vídeo codificados (por exemplo, como um ou mais parâmetros em uma ou mais mensagens SEI ou mensagens VUI). Em geral, a área de dados codificados 530 armazena temporariamente dados codificados 521 até que esses dados codificados 521 sejam usados pelo decodificador 550. Neste ponto, dados codificados para um quadro codificado 531 e informação da BDL 532 são transferidos da área de dados codificados 530 para o decodificador 550. À medida que a decodificação continua, os novos dados codificados são adicionados para a área de dados codificados 530 e os dados codificados mais antigos que permanecem na área de dados codificados 530 são transferidos para o decodifica- dor 550.
[0067] O decodificador 550 decodifica periodicamente um quadro decodificado 531 para produzir um quadro decodificado correspondente 551. Como apropriado, ao realizar seu processo de decodificação, o decodificador 550 pode usar um ou mais quadros previamente decodificados 569 como quadros de referência para a previsão Inter quadros. O decodificador 550 lê esses quadros previamente decodificados 569 a partir de uma área de armazenamento de memória temporária de quadro 560.
[0068] Geralmente, o decodificador 550 inclui múltiplos módulos de decodificação que realizam tarefas de decodificação tais como de- codificação de entropia, quantificação inversa, transformações de frequência inversa e compensação de movimento. As operações exatas desempenhadas pelo decodificador 550 podem variar dependendo do formato de compressão.
[0069] A área de armazenamento de memória temporária de qua dro decodificado 560 inclui áreas de armazenamento de armazenador de quadro múltiplo (561, 562,...,56n). A área de armazenamento de quadro decodificado 560 é um exemplo de um DPB. O decodificador 550 usa a informação da BDL 532 para identificar um armazenador de quadro (561, 562, etc.) no qual ele pode armazenar um quadro decodi-ficado 551. O decodificador 550 armazena o quadro decodificado 551 naquele armazenador de quadro.
[0070] Um sequenciador de saída 580 usa a informação da BDL 532 para identificar quando o próximo quadro a ser produzido na ordem de saída está disponível na área de armazenamento de quadro decodificado 560. Quando o quadro seguinte 581 a ser produzido na ordem de saída está disponível na área de armazenamento de quadro decodificado 560, ele é lido pelo sequenciador de saída 580 e enviado para o destino de saída 590 (por exemplo, mostrador). Em geral, a ordem na qual os quadros são emitidos da área de armazenamento de quadro decodificado 560 pelo sequenciador de saída 580 podem diferir da ordem na qual os quadros são decodificados pelo decodificador 550.
[0071] A Figura 6a mostra uma técnica exemplificativa 600 para receber e segmentar elementos de sintaxe e segmentação como descritas na Seção V. Por exemplo, uma ferramenta de comunicação em tempo real ou ferramenta de reprodução descritas com referência às Figuras 2a e 2b executam a técnica 600. Alternativamente, outra ferramenta executa a técnica 600.
[0072] Para começar, a ferramenta recebe 610 um ou mais ele mentos de sintaxe como descritos no Seção V. O ferramenta então segmenta 620 o elemento ou elementos de sintaxe. A ferramenta pode então usar os elementos de sintaxe como explicados na Seção V.
[0073] A Figura 6b ilustra um exemplo específico 601 da técnica 600, focando na segmentação de informação de identificação para LTRPs. Por exemplo, uma ferramenta para comunicação em tempo real ou ferramenta de reprodução descrita com referência à Figura 2a e 2b executa a técnica 601. Alternativamente, outra ferramenta executa a técnica 601.
[0074] Para começar, a ferramenta recebe 611 pelo menos parte de um fluxo de bit. Por exemplo, o fluxo de bit é um fluxo de bit de vídeo codificado elementar. A ferramenta segmenta 621 elementos de sintaxe a partir do fluxo de bit. Os elementos de sintaxe representam informação sobre estado que identifica quais imagens estão disponíveis para uso como imagens de referência (isto é, correntemente disponíveis para um codificador de vídeo para uso como imagens de referência; que se espera que estejam disponíveis para o decodificador de vídeo para uso como imagens de referência nesse ponto na decodifi- cação). Por exemplo, os elementos de sintaxe que representam a informação sobre o estado estão assinalados no fluxo de bit para uma imagem corrente. Alternativamente, os elementos de sintaxe estão assinalados em algum outro nível de sintaxe de fluxo de bit.
[0075] Em particular, os elementos de sintaxe incluem identificar informação para uma LTRP. A informação de identificação para a LTRP é um valor de POC LSBs para a LTRB. As imagens disponíveis para uso como imagens de referência podem incluir ainda uma STRP. Nesse caso, a ferramenta pode reutilizar o valor de POC LSBs para a STRB, mas marcam a LTRB conforme usada como referência a longo prazo para diferenciar entre a LTRP e a STRP.
[0076] Os elementos de sintaxe que estão assinalados no fluxo de bit podem incluir outros e/ou mais elementos de sintaxe. Por exemplo, a ferramenta segmenta, a partir de um parâmetro de sequência determinado, um indicador que indica se a informação de status sobre LTRPs está presente no fluxo de bit para imagens de uma sequência. Ou, a ferramenta segmenta um elemento de sintaxe que indica um número de bits para que o POC LSBs use para valores de POC LSBs para LTRBs, utilizando-se o número de bits para POC LSBs ao se segmentar a informação identificação para a LTRP.
[0077] A ferramenta usa 631 a informação de identificação durante a decodificação. Por exemplo, a ferramenta usa a informação de estado para gerenciar uma área de armazenamento de imagem decodificada de um decodificador de vídeo como parte da decodificação.
V. Inovações no Estado de Sinalização de um DPB e RPLs.
[0078] Vários procedimentos foram apresentados para se utilizar informação da BDL em conjunto com o padrão HEVC. Um procedimento é descrito no documento JCTVC-F493, intitulado "Absolute Signaling of Reference Pictures", e incluindo "Proposed Changes to the HEVC Working Draft." Outros procedimentos estão descritos em JCTVC-F803_dl_Buffer_Descriptions_r0, intitulada "WD4: Working Draft 4 of High-Efficiency Video Coding," e JCTVC- F803_dl_Buffer_Descriptions_display_process_suggestion_rl, também intitulado "Wd4: Working Draft 4 of High-Efficiency Video Coding." Essa seção descreve mudanças específicas relativas a procedimentos mostrados na documentação para JCTVC-F803_dl. Essas mudanças estendem alguns dos conceitos propostos na JCTVC-F493. As diferentes inovações descritas nessa seção podem ser usadas em combinação ou separadamente.
A. Indicador de Referência Futura
[0079] De acordo com uma inovação descrita aqui, um codificador e decodificador usam um indicador de referência futura por imagem de referência de informação da BDL, onde o indicador de referência futura indica se a imagem de referência é usada apenas para decodificar uma imagem corrente, ou é usada para decodificação de pelo menos uma imagem futura em ordem codificada. O indicador de referência futura indica assim se a imagem de referência é retida após a imagem corrente ser decodificada. Em implementações exemplificativas, o indicador de referência futura é um novo elemento de sintaxe chamado marca não-utilizado após o indicador de decodificação que é adicionado para cada imagem na BDL. Esse elemento de sintaxe permite a utilização do tamanho total do DPB em conjunto com a informação da BDL.
[0080] Se o local da operação de marcar imagem de referência é mudado mais cedo no processo de decodificação, isto pode reduzir o número de imagens de referência que podem ser armazenadas no armazenador. Se a capacidade do DPB é de N imagens e a imagem corrente é uma imagem de referência, então não haverá espaço para armazenar a imagem corrente no armazenador a menos que o tamanho total da BDL não exceda N-1 imagens. Isto é uma imagem a menos do que é possível utilizando-se a sintaxe AVC, porque na sintaxe AVC (1) primeiramente as imagens que estão no armazenador são referenciadas para o processo de decodificação, (2) então quaisquer imagens que não sejam mais necessárias são descartadas, isto é, comercializadas como "não usadas como referência", o que abre espaço para o armazenador no armazenador para a nova imagem), e (3) então a imagem corrente é armazenada no armazenador para uso potencial no processo de decodificação das imagens subsequentes. Movendo-se o processo de marcação para antes do uso das imagens como referências, o número de imagens que pode ser referenciado para uma dada capacidade total de armazenador é reduzido em 1. Diminuir a capacidade de armazenamento total é altamente indesejável.
[0081] Um indicador de referência futura pode ser usado para tra tar dessa limitação no uso da capacidade do DPB. Nas implementações exemplificativas, um indicador de um bit chamado marca não usada depois do indicador de decodificação é assinalado na BDL para cada imagem listada. A marca não usada depois do indicador de de- codificação indicar se a imagem de referência é usada apenas para decodificação da imagem corrente (associada à informação da BDL) ou também usada para decodificação de pelo menos uma imagem posterior em ordem codificada. Se a imagem de referência é usada apenas para decodificação da imagem corrente, ela pode ser sobrescrita com a imagem corrente decodificada. A marcação de imagens com marca não usada após o indicador de decodificação igual a 1 co-mo "não-usadas como referência" é realizada após o processo de de- codificação da imagem corrente e antes do armazenamento da imagem corrente no DPB. Por exemplo, se um DPB armazena na maior parte das cinco imagens de referência e está cheio, se uma das cinco imagens de referência não é usada para decodificação de imagens futuras (como indicado com a marca não usada após o indicador de decodificação), aquela imagem de referência pode ser sobrescrita com a imagem corrente decodificada. Dessa maneira, a capacidade de armazenamento total do DPB pode ser usada - o codificador e o decodi- ficador não precisam reservar um ponto vazio no DPB para imagem corrente decodificada.
B. Indicador de Decisão de Ligar/Desligar para Futuros Indicadores de Referência
[0082] De acordo com outra inovação descrita aqui, um indicador de decisão ligar/desligar é sinalizado para futuros indicadores de referência. Um indicador pode não querer fazer uso de futuros indicadores de referência. Para evitar o envio de bits desnecessários, um codificador pode usar um indicador de decisão ligar/desligar para futuros indicadores de referência. Se o indicador de decisão ligar/desligar estiver "ligado", os indicadores de referência futuros são usados. Ao contrário, se o indicador de decisão ligar/desligar estiver em "desligado", então os futuros indicadores de referência não são usados.
[0083] Por exemplo, em implementações exemplificativas, alguns codificadores podem não querer fazer uso da marca não usada depois do indicador de decodificação. Para evitar o envio de bits desnecessários por esses codificadores, um indicador é adicionado no nível SPS chamado o indicador de referência não final. Quando o indicador de referência não final é igual a 1, a marca não usada após a decodifica- ção do elemento de sintaxe de indicador é omitida do fluxo de bit. Nesse caso, o decodificador não recebe, segmenta, usa etc. marca não usada após decodificar os elementos de sintaxe de indicador de decodificação. Não sendo assim, o decodificador recebe, segmenta, usa etc. marca não usada após decodificar os elementos de sintaxe de indicador de decodificação.
C. Marcação de Imagens de Camadas Temporais Inferiores
[0084] De acordo com outra inovação descrita aqui, na informação da BDL para uma imagem associada com uma camada temporal mais alta, a informação de marcação sobre imagem de referência pode marcar uma ou mais imagens em uma camada temporal inferior como não usada como referência. Em algumas situações, pode ser útil per-mitir tais opções para o gerenciamento de imagem de referência para imagens em uma camada temporal mais alta. E, quando informação posterior sobre a BDL não apresentar informação de status para imagens de referência anteriormente com informação da BDL para uma imagem na camada temporal mais alta, o decodificador pode pressupor que houve a remoção dessas imagens de referência.
[0085] Em alguns procedimentos para sinalizar o estado de um DPB, imagens em camadas temporais mais altas são proibidas de marcar imagens em camadas temporais inferiores como "não usadas como referência". Ao usar a sintaxe do tipo BDL como descrito aqui, entretanto, essas proibições não fazem sentido. Uma vez que uma imagem tenha sido omitida de uma BDL, ela não aparece tampouco em qualquer BDL subsequente, então não há perigo do decodificador perder a notificação para marcar a imagem como "não usada como referência".
D. Indicador de Designação de Imagem de Camada mais Alta
[0086] De acordo com outra inovação descrita aqui, um codificador e decodificador usam um indicador de designação de imagem de camada mais alta por imagem de uma camada temporal mais alta na informação da BDL, onde o indicador de designação de imagem de camada mais alta designa uma imagem como relacionada a uma camada temporal mais alta da informação da BDL. Em muitas situações, imagens de uma camada temporal mais alta não são usadas como imagens de referência. O processo de gerenciar e atualizar o DPB pode ser simplificado para essas imagens. Onde a informação da BDL é usada de alguma forma para imagens de uma camada temporal mais alta, um simples indicador por imagem na informação da BDL pode bastar para designar a imagem como estando associada a uma camada temporal mais alta, onde as ações de gerenciar e atualizar o DPB estão implícitos.
[0087] Em implementações exemplificativas, um simples indicador de imagem de camada mais alta pode ser enviado para cada imagem na BDL para indicar se a imagem está ou não em uma camada temporal mais alta. Em algumas situações, pode ser desejável incluir informação para imagens em camadas temporais mais altas na informação da BDL, a fim de se poder indicar expressamente que algumas imagens como essas devem ser marcadas como "não usadas como referência". Entretanto, mesmo que essas imagens estejam listadas na informação da DBL, entretanto, enviar detalhes tais como o número de camada real não é necessário. Ao invés disso, um simples indicador de imagem de camada mais alta é enviado para cada imagem na BDL para indicar se a imagem está ou não em uma camada temporal mais alta. Quando o indicador de camadas mais altas não listadas é igual a 1, se propõe que quaisquer imagens nas camadas temporais mais altas permaneçam não-afetadas pelo processo de decodificação da imagem corrente - simplesmente retendo seu status de marcação corrente.
E. Indicador de Decisão Ligar/Desligar para Indicações de Designação de Imagem de Camada mais Alta
[0088] De acordo com outra inovação descrita aqui, um codificador e decodificador usam um indicador de decisão para incluir informação sobre status sobre imagens de camadas temporais mais altas na informação da BDL. Por exemplo, o indicador de decisão ligar/desligar pode ser sinalizado como parte de um SPS e indicar a presen- ça/ausência de informação de status sobre imagens de camadas temporais mais altas na informação da BDL.
[0089] Em implementações exemplificativas, um indicador chama do o indicador de camadas mais altas não listadas é adicionado no nível do SPS. Quando o indicador é igual a 1, imagens de camadas temporais mais altas não são incluídas nas BDLs do CVS. Em propostas anteriores, imagens de camadas temporais mais altas estão incluídas nas BDLs. Essas imagens não são nunca realmente mencionadas no processo de decodificação de uma imagem corrente, e isto é sabido pelo decodificador. Como essas imagens são irrelevantes para a decodificação da imagem corrente e quaisquer imagens subsequentes na camada temporal corrente e qualquer camada temporal inferior, é questionável a valia de incluí-las na BDL em muitos casos de uso, e, portanto, é desejável evitar carregar a sintaxe com esses dados extras que são irrelevantes para o processo de decodificação das camadas que estão sendo decodificadas.
F. Informação da BDL no nível de APS
[0090] De acordo com outra inovação descrita aqui, a informação da BDL é sinalizada no conjunto de parâmetro de fatia ("APS") adaptável. Um único conjunto de informações da BDL está associado a um APS.
[0091] A ideia de ter múltiplas listas de armazenamento no conjun to de parâmetros não é elegante, e não é necessária. O conceito de múltiplas listas com um índice para identificar a BDL selecionada é algo como um novo nível híbrido de sintaxe que parece desnecessariamente complicado e antecipa um projeto de codificador que pré- planeja suas estruturas de BDL antecipadamente de uma maneira que parece desnecessária. Além disso, com a BDL encontrando-se no APS, pode não haver necessidade da habilidade de passar por cima da BDL no nível APS ao nível do cabeçalho de fatia. Assim, não havendo justificativa apropriada, a informação da BDL é sinalizada ape-nas ao nível APS ou mais alta.
G. Sintaxe Simplificada para LTRPs na Informação sobre a BDL
[0092] De acordo com outra inovação descrita aqui, um codificador e decodifcador utilizam informação de status para LTRPs na informação da BDL. As LTRPs proporcionam um elemento de projeto útil proporcionam um elemento de projeto útil para codificação e decodifica- ção de vídeo. O gerenciamento e a atualização das LTRPs na infor-mação da BDL apresenta desafios, no entanto. Várias versões de sintaxe simplificada para LTRPs em informação de BDL são propostas aqui, que reduzem o fluxo de bit para informação de status de LTRP e simplificar o gerenciamento de DPB.
[0093] LTRPs são um elemento de projeto útil que é efetivamente usado em alguns produtos, especialmente para comunicação em tempo real potente. Aspectos de LTRPs como encontrados em AVC incluem não apenas a habilidade de manter uma imagem no DPB por um longo tempo, mas também o uso de um tratamento diferente para a escala do vetor de movimento e computações de previsão pesadas.
[0094] Em implementações exemplificativas, a funcionalidade da LTRP é retida e a informação da DBL responde por gerenciamento da LTRP. Alguns procedimentos existentes para sinalizar a informação de status da LTRP na informação de BDL são excessivamente elaborados, por envolverem uma lista inteiramente separada de LTRPs e sinalização das diferenças, o que não é adequado. Por exemplo, uma LTRP é identificada por sua diferença de POC total. Para uma LTRP que permaneceu no DPB por um tempo muito longo, o comprimento da palavra código necessária para enviar sua diferença de POC poderia se tornar extremamente grande - desperdiçando bits e causando problemas de segmentação e no final limitando a duração pela qual uma LTRP pode ser retida ao se usar a sintaxe.
[0095] Em contraste, em implementações exemplificativas, um co dificador e decodificador usam informação da BDL com uma sintaxe simplificada para a informação sobre a informação de status da LTRP, em que apenas a diferença entre os bits menos significativos ("LSBs") dos valores POC, módulo do ponto de enrolamento de bit mais significativo ("MSB"), é enviado pra identificar uma LTRP, ao invés da diferença POC completa. Não há uma necessidade real de rastrear os valores de MSB dos valores POC - é realmente necessário estabelecer apenas a ordem relativa, e evitar a especificação do rastreamento MSB pode facilitar a interpretação para essa funcionalidade pretendida como decodificação de acesso aleatório. Além disso, evitando-se a representação das MSBs da diferença, a diferença POC enviada para identificar uma LTRP não precisaria aumentar mais e mais ao longo do tempo. Com escolhas de projeto apropriadas, o codificador não precisa nem mesmo se preocupar sobre o caso de enviar uma nova imagem que reutiliza as mesma POC LSBs que são usadas por uma LTRP existente.
[0096] A seguir se encontram dois procedimentos possíveis dentro desse espírito. Ambos envolvem enviar, para cada imagem na informação da BDL, um elemento de sintaxe de sinalizador de referência de longo prazo. O segundo procedimento (Esquema B abaixo) é um pouco mais simples. O primeiro procedimento (Esquema A abaixo) permite uma maior flexibilidade do codificador.
[0097] De acordo com o Esquema A, quando o valor do elemento de sintaxe do sinalizador de referência a longo prazo muda de 0 para 1 para um dado valor de POC LSBs, isso marca a imagem como "usada como referência a longo prazo" como em AVC. O mesmo valor POC LSB pode novamente ser usado para uma imagem de referência a curto prazo mais tarde sem haver confusão. Para os mesmos POC LSBs, a imagem com o indicador de referência de longo prazo igual a 1 permanece distintamente identificada se comparada à imagem com o indicador de referência de longo prazo igual a 0. Apenas depois de marcar a LTRP como "não usada como referência" o codificador (ou deco- dificador) seria capaz de substituí-la com outra LTRP com o mesmo valor POC LSB.
[0098] Para o Esquema A, casos patológicos e de transição envol vendo LTRPs e imagens de referência de curto prazo (STRPs) são tratados como a seguir:
[0099] Se, antes de decodificar uma nova imagem, o armazenador contém apenas uma STRP para algum valor de POC LSBs, e então a informação da BDL é recebida a qual contém apenas uma LTRP para aquele valor, a STRP é marcada como "usada para referência a longo prazo" antes de decodificar a imagem corrente.
[00100] Se, antes de decodificar uma nova imagem, o armazenador contém apenas uma STRP para algum valor de POC LSBs, e então a informação da BDL é recebida a qual contém apenas uma STRP para aquele valor, o fluxo de bit é ilegal.
[00101] Se, antes de decodificar uma nova imagem, o armazenador contém uma LTRP e STRP para os mesmos valores POC LSB, e então a informação da BDL é recebida contendo apenas uma STRP para aquele valor, a LTRP é marcada como "não usada como referência".
[00102] Se, antes de decodificar uma nova imagem o armazenador contém uma LTRP e STRP para os mesmos valores POC LSB, e então a informação da BDL é recebida a qual contém apenas uma LTRP para aquele valor, a STRP é marcada como "não usada como referência".
[00103] De acordo com o esquema B, uma imagem é marcada como "usada para referência a longo prazo" apenas pelo posicionamento de um indicador que é enviado quando é decodificado (por exemplo, um indicador chamado de indicador usado por um longo prazo). Todas as inclusões subsequentes daquela imagem na informação da BDL têm um indicador de referência a longo prazo igual a 1, e o valor do indicador de referência de longo prazo seria usado para diferenciar entre a LTRP e qualquer imagem de curto prazo hipotética que tem o mesmo valor POC LSB.
H. Indicador de Decisão Liga/Desliga para Indicadores LTRP
[00104] De acordo com outra inovação descrita aqui, um codificador e decodificador usam uma decisão ligar/desligar para o indicador para incluir informação de status sobre a informação de LTRPs em BDL. Por exemplo, o indicador de decisão ligar/desligar como parte de um SPS e indica a presença/ausência de informação de status sobre LTRPs em informação da BDL.
[00105] Como alguns codificadores podem desejar não fazer uso de LTRPs, em implementações exemplificativas, um indicador é enviado no nível de SPS chamado o indicador de imagens não em longo prazo. Quando aquele indicador é zero, os valores de indicador de referência a longo prazo (e, no caso do Esquema B, o usado para o indicador a longo prazo) não estão presentes na sintaxe.
[00106] Redução de Bits Usados Para Informação de Identificação de LTRP
[00107] De acordo com outra inovação descrita aqui, o número de bits usado para identificar LTRPs na informação da BDL é reduzido. Em muitas situações de uso, o número de LTRPs é pequeno, e um pequeno número de bits basto para identificar LTRPs. Um codificador pode aumentar o número de bits usados para identificar LTRPs para outras situações de uso.
[00108] Em implementações exemplificativas, para o Esquema A ou B, a sintaxe pode se tornar ainda mais eficiente em casos onde o numero de POC LSBs que é enviado é pequeno. Por exemplo, se o número de bits para POC LSBs a ser enviado é de 4 (como com log2_max_pic_order_cnt_lsb_menos4 em AVC POC tipo 0), ao invés de algum número maior tal como 8, o fluxo de bit associado com a informação de identificação de LTRB na informação de BDL pode ser reduzi do. A utilização de um número maior do que 4 bits pode ser uma carga desnecessária em muitas situações de uso. Em situações nas quais um número maior de bits é apropriado, entretanto, um codificador pode simplesmente usar um valor maior do que log2_max_pic_order_cnt_lsb_menos4 (ou seu equivalente).
J. Organização Eficiente de Informação da BDL
[00109] De acordo com outra inovação descrita aqui, a informação da BDL é organizada e enviada na ordem usada para construção de uma RPL. Isso simplifica a sintaxe para propósitos da construção da RPL.
[00110] Nas implementações exemplificativas, como a informação da BDL em si é uma lista de imagens, ela pode potencialmente ser enviada na ordem necessária para a construção direta da lista 0 a partir das primeiras imagens listadas da lista transmitida. Se as imagens es- tão listadas na ordem da lista 0, não há necessidade real de sintaxe de modificação de lista de imagem de referência para a lista 0.
K. Sinalização de Permissão ou não de Folgas para Valores POC
[00111] De acordo com outra inovação descrita aqui, um codificador sinaliza se intervalos nos valores POC são permitidos. Se intervalos não são permitidos, um decodificador pode reconhecer perdas de imagem quando ele determina que valores POC estão faltando, e um de- codificador pode tomar decisões sobre imagens estarem prontas para a saída com base nos valores POC.
[00112] Em implementações exemplificativas, um indicador chamado indicador de intervalos POC permitidos é enviado no nível ASPS. Quando esse indicador é igual a 0, todas as imagens consecutivas na ordem de saída têm valores POC LSB, sem intervalos. Assim, um de- codificador pode reconhecer perdas de imagem reconhecendo valores POC. Além disso, o uso de elementos de sintaxe de indicador permitido de intervalos POC por um codificador permitiria aos decodificadores reconhecer uma série de imagens que estão prontas para emissão a partir de um decodificador de conformação de ordem de emissão. Se uma imagem com algum valor POC K já foi emitida, e uma imagem com valor POC K + 1 está presente no DPB, o decodificador será capaz de detectar que essa imagem com valor POC LSB K + 1 será a próxima imagem a ser transmitida. E, se nenhuma imagem com valor POC LSB K + 1 está presente no DPB, o decodificador vai saber que alguma imagem vai chegar com aquele valor POC LSB, a menos que alguma coisa tenha dado errado.
L. Codificação e Decodificação de Entropia de Elementos de Sintaxe de BDL Informação
[00113] De acordo com outra inovação descrita aqui, elementos de sintaxe na informação da BDL podem ser codificados utilizando-se co- dificação Exp-Golomb truncada (isto é, te(v)) ao invés de codificação Exp-Golomb não assinada. Foi proposto o envio de vários elementos de sintaxe para informação da BDL como valores codificados ue(v). Frequentemente, o número de escolhas disponível para esses elementos de sintaxe é pequeno. Assim, codificar esses elementos de sintaxe como valores te(v) pode aumentar a eficiência. Um decodificador executa decodificação de entropia correspondente.
VI. Inovações Adicionais no Estado de Sinalização de um DPB e RPLs.
[00114] Em algumas implementações, um codificador de vídeo e um decodificador de vídeo podem seguir restrições adicionais para simplificar e aumentar a resistência da computação POC. Com ou sem essas restrições, em várias situações de uso, um codificador de vídeo e decodificador de vídeo podem usar informação de estado sinalizada que identifica quais imagens estão disponíveis para uso como imagens de referência.
A. Primeiros Procedimentos para Aumentar a Resistência da Computação POC.
[00115] Em um primeiro conjunto de procedimentos exemplificati- vos, uma restrição é introduzida no sentido de que todas as imagens que são usadas como referências ou estão esperando pela saída têm posições de POC relaivas que podem ser computadas sem ambiguidade com relação à POC da imagem corrente. Isso aborda problemas potenciais de resistência da maneira que MSBs de valores POC são rastreados.
[00116] Por exemplo, suponha-se que o valor de enrolamento POC é 16 (e o tamanho do DPB é grande o bastante para que a saída de imagem seja retardada, e todas as imagens são imagens de referência). Se os valores POC LSB para imagens consecutivas na ordem de decodificação são 5, 11, 2, então quando a imagem com valor POC LSB 2 é decodificada, a posição da imagem com valor POC LSB 5 é ambígua com relação à imagem corrente com valor POC LSB 2. Se a imagem com valor POC LSB 11 é perdida, as outras duas imagens serão emitidas na ordem relativa errada. (Além disso, a escala tempo-ral de vetores de movimento será incorreta, a construção de lista de imagem de referência será errada, e a previsão pesada temporal se tornará incorreta.
[00117] Pela imposição da restrição e fazendo referência a todos os valores POC relativos ao valor POC da imagem corrente, a necessidade de rastrear POC MSBs reais para as imagens no armazenador é eliminada. Nesse procedimento, as posições POC relativas permanecem corretas enquanto as imagens permanecerem no armazenador. Isso diminui algumas preocupações com problemas que podem ocorrer quando se usa um número pequeno de LSBs para POC, mas resolve o problema de maneira mais completa do que se fosse mandado um número mínimo maior de POC LSBs.
B. Procedimentos Secundários Para Aumentar a Resistência de POC.
[00118] Quando um decodificador deduz valores de MSB para a POC associada a cada imagem decodificada, podem acontecer diversos problemas. Valores de MSB são deduzidos a partir da história do processo de decodificação imagem a imagem, e a remoção de uma ou mais imagens do fluxo de bit pode resultar na corrupção dos valores de MSB. Isso por sua vez pode provocar a reprodução desordenada das imagens restantes, construção de lista de imagem de referência incorreta, e previsão pesada temporal incorreta. A especificação de valores de MSB por dedução também pode apresentar dificuldades para o acesso aleatório, porque um decodificador que realiza acesso aleatório no fluxo de bit não tem acesso às imagens anteriores na sequência de vídeo codificada.
[00119] Em um segundo conjunto de procedimentos exemplificati- vos, similar ao primeiro conjunto de procedimentos exemplificativos, uma computação de POC restritiva ou relativa é introduzida nos valores dos POC LSBs das imagens no fluxo de bits (onde os valores de POC LSB são expressos pelo elemento de sintaxe cntlsb em ordem de imagem). Se essa restrição for seguida pode haver um efeito desprezível na eficiência da codificação, uma simplificação no processo de decodificação para estabelecer a ordem de POC relativa, eliminação da necessidade de dedução dos valores POC MSB, e aumento na resistência a perdas na imagem. Dessa maneira, para abordar o problema da resistência e eliminar a necessidade de rastrear valores POC MSB, uma restrição é introduzida no sentido de que todas as imagens que são usadas como referências ou estão esperando por emissão têm posições relativas na POC que podem ser computadas sem ambiguidade com relação à POC da imagem corrente.
[00120] Por exemplo, supondo que o número de POC LSBs enviado é de 4, e, portanto, o valor de enrolamento da POC é 16 (e o tamanho do DPB é grande o bastante para que a emissão de imagens seja retardada, e todas as imagens sejam imagens de referência). Se os valores de POC LSB para imagens consecutivas na ordem de decodi- ficação são 5,11, 2, então quando a imagem com o valor POC LSB 2 é decodificada, a posição da imagem com o valor POC LSB 5 pode se tornar ambígua com relação à imagem corrente com valor POC LSB 2. Se a imagem com o valor POC LSB 11 se perder, as outras duas imagens serão emitidas na ordem relativa errada, o escalonamento temporal dos vetores de movimento será incorreto, a construção da lista de imagem de referência será errada, e a previsão pesada temporal será incorreta.
[00121] Pela imposição da restrição e fazendo referência a todos os valores de POC relativos ao valor POC LSB para a imagem corrente, a necessidade de rastrear POC MSBs para as imagens no armazena- mento é eliminada. Nessa abordagem, as posições relativas de POC permanecem corretas enquanto as imagens permanecerem no arma- zenador para os propósitos de referência no curto prazo ou ordem de emissão. Isso diminui algumas preocupações sobre problemas que podem ocorrer ao se usar um pequeno número de LSBs para POC, mas resolve o problema de maneira mais completa do que mandar um número mínimo maior de POC LSBs.
[00122] Em combinação com essa restrição quanto à computação POC relativa, ou em combinação com outro procedimento para computar valores de POC, um codificador pode aplicar uma restrição na faixa de valores de POC. Por exemplo, o codificador determina valores de POC durante a codificação de modo que a faixa de valores de POC (diferença entre máximo e mínimo, para uma dada imagem e suas imagens de referência) é limitada por um limite que depende do valor máximo possível para POC LSBs. Exemplos dessa restrição estão descritos abaixo.
[00123] Uma ferramenta para comunicação em tempo real ou ferramenta de codificação descrita com referência à Figura 2a e 2b pode executar a codificação respeitando uma das ou ambas as restrições nos valores da POC. Para começar, a ferramenta determina valores da POC para imagens sujeitas à(s) restrição (restrições). Por exemplo, uma restrição limita a faixa de valores de POC LSB para uma imagem corrente e suas imagens de referência, como descrito abaixo. A ferramenta então codifica vídeo para as imagens, produzindo um fluxo de bit em conformidade. No fluxo de bit, a ferramenta pode sinalizar os valores da POC (por exemplo, utilizando-se elementos de sintaxe que indicam POC LSBs) que são consistentes com a(s) restrição (restrições) aplicadas.
1. Procedimento Exemplificativo sem Computação da POC Relativa
[00124] Em um procedimento exemplificativo sem computação da POC relativa, os valores da POC são decodificados como segue. A saída desse processo é PicOrderCntVal, a POC da imagem corrente. POCs são usadas para identificar imagens, para derivar parâmetros de movimento em modo direto temporal ou espacial, para representar diferenças na ordem de imagem entre quadros para derivação de vetor de movimento, para previsão pesada por modo implícita em fatias B, e para verificação de conformidade do decodificador. Cada imagem codificada está associada a uma POC, chamada PicOrderCntVal, que indica a ordem de imagem da imagem correspondente com relação à imagem IDR anterior na ordem de decodificação.
[00125] As variáveis prevPicOrderCntLsb e prevPicOrderCntMsb são derivadas como a seguir. Se a imagem corrente é uma imagem de IDR, tanto prevPicOrderCntLsb e prevPicOrderCntMsb são determinados como sendo iguais a 0. Em caso contrário (a imagem corrente não é uma imagem IDR): (a) deixar prevRefPic ser a imagem de referência anterior na ordem de decodificação que tenha um id temporal igual a 0; (b) a variável prevPicOrderCntLsb é determinada como igual à ordem de imagem cntlsb de prevRefPic, e a variável prevPicOrderC- ntMsb é determinada como igual à PicOrderCntMsb de prevRefPic.
[00126] A PicOrderCntMsb da imagem corrente é derivada como especificado pela listagem de pseudocódigo 700 mostrada na Figura 7a. Alternativamente, lógica equivalente pode ser usada para determinar a PicOrderCntMsb da imagem corrente. Então, o valor de PicOr- derCntVal é derivado como: PicOrderCntVal = PicOrderCntMsb + PIc order cntlsb
[00127] No procedimento exemplificativo, imagens IDR têm PicOr- derCntVal igual a 0 uma vez que a ordem de imagem cntlsb é deduzida como sendo 0 para imagens IDR e prevPicOrderCntLsb e prevPi- cOrderCntMsb são ambos determinados como iguais a 0. Em uma dada sequência de vídeo codificada, os valores PicOrderCntVal para quaisquer duas imagens codificadas serão diferentes.
[00128] Em combinação com o procedimento exemplificativo, o codificador pode aplicar uma restrição na faixa de valores da POC. Por exemplo, o codificador determina valores da POC durante a codificação de modo que a faixa de valores da POC (diferença entre máximo e mínimo, para uma dada imagem e suas imagens de referência) é limitada por um limite que depende do valor máximo possível para as POC LSBs.
2. Procedimento Exemplificativo com Computação de POC Relativa
[00129] Em outro procedimento exemplificativo, os valores da POC são decodificados como a seguir. A saída do processo é uma PicOr- derCntVal para a imagem corrente e para cada imagem no DPB que está marcada como "usada como referência a curto prazo" ou "necessária para emissão". POCs são usadas para identificar imagens, para derivar parâmetros de movimento em modo temporal ou espacial direto, para representar diferenças de ordem entre estruturas para derivação de vetor de motor, para previsão pesada por modo implícita em fatias B, e para verificação de conformidade do decodificador.
[00130] A variável currPicOrderCntLsb é ajustada no valor do elemento de sintaxe associado à imagem corrente. Para a imagem corrente e para cada imagem no DPB que é marcada correntemente como "usada como referência a curto prazo" ou "necessária para emissão", a variável associada PicOrderCntVal é ajustada para o valor de elemento de sintaxe pic order cntlsb associado àquela imagem, e a variável associada PicOrderCntVal é determinada como mostrado na listagem pseudocódigo 701 mostrada na Figura 7b.
[00131] A variável maxPicOrderCnt é determinada como sendo igual ao valor máximo de PicOrderCntVal entre os valores associados para a imagem corrente no DPB que estão marcados correntemente como "usados para referência a curto prazo" ou "necessários para emissão". A variável minPicOrder CntVal é determinada igual ao valor mínimo de PicOrderCntVal entre os valores associados para a imagem corrente e todas as imagens no DPB que estão correntemente marcados como "usados para referência a curto prazo" ou "necessários para emissão". A restrição nesse procedimento depende das variáveis maxPicOrderCnt e mmPicOrderCnt, considerando-se o valor máximo possível para POC LSBs. Por exemplo, é uma exigência da conformidade de fluxo de bit que o valor maxpicOrderCnt-mmPicOrderCnt terá de ser menor que MaxPicOrderCntLsb / 2. Alternativamente, a restrição é implementada em alguma outra forma de maneira que a faixa de valores POC (diferença entre máximo e mínimo) seja limitada por um limite que depende do valor máximo possível para POC LSBs.
[00132] A função PicOrderCnt(picX) é especificada como PicOr- derCnt(picX) = PicOrderCntVal da imagem picX. A função DiffPicOr- derCnt(picA, picB) é especificada como DiffPicOrderCnt(picA, picB) = DiffOrderCnt(picA, picB) = PicOrderCnt(picA) - PicOrderCnt(picB). Por exemplo, tome-se picX como a imagem corrente e picY e picZ como duas outras imagens na mesma sequência; picY e picZ são consideradas como estando na mesma direção de ordem de saída com relação à picX quando DiffPicOrderCnt(picX, picY) e DiffPicOrderCnt(picX, picZ) são ambos positivos ou são ambos negativos. Muitos codificado-res atribuem ao elemento de sintaxe pic order cntlsb valores tais que os valores de DiffPicOrderCnt(picA, picB) que são usados no processo de decodificação são (precisamente ou aproximadamente) proporcionais às diferenças de tempo entre os tempos de amostra das imagens associadas picA e picB.
[00133] Nesse procedimento exemplificativo, o valor de PicOrderC- ntVal não depende da sintaxe ou processo de decodificação de quaisquer dados no fluxo de bit abaixo do nível SPS, diferente da pic order cntlsb da imagem corrente e da pic order cntlsb da(s) respectiva(s) imagem(ns) associada(s) com a(s) variável(is) PicOrderCntVal. Além disso, não há necessidade de impor uma restrição na faixa de PicOr- derCntVal, uma vez que ela naturalmente tem uma faixa limitada (dentro da faixa de -MaxPicOrderCntlsb a 2*MaxPicOrderCntLsb).
C. Situações de Uso
[00134] Em várias situações de uso, um codificador de vídeo e um decodificador de vídeo podem usar informação de estado sinalizada que identifica quais imagens estão disponíveis para uso como imagens de referência. Para comunicação unidirecional, como descrito de forma genérica com referência à Figura 2b, um codificador de vídeo pode proporcionar vídeo codificado em um sistema de vigilância por vídeo, sistema de monitoramento por câmera na rede, apresentação de conferência em área de trabalho à distância ou outra situação. Para comunicação bidirecional, como descrito de forma genérica com referência à Figura 2a, um codificador de vídeo pode proporcionar vídeo codificado para uma videoconferência, vídeo-chamada telefônica, ou outra situação de comunicação entre duas partes.
[00135] O codificador de vídeo pode selecionar uma ou mais LTRPs que ilustram elementos de uma cena que se repete em uma sequência de vídeo. Por exemplo, para um sistema de vigilância de vídeo ou sistema de monitoramento de câmera de rede, o codificador de vídeo seleciona uma ou mais LTRPs que ilustram elementos de fundamentos de uma cena, que aparecem consistentemente através de uma sequência. Ou, para uma apresentação de conferência de área de trabalho à distância, o codificador de vídeo seleciona uma ou mais LTRPs que mostram elementos de uma interface de usuário de área de trabalho ou software de aplicativo. Ou, para uma videoconferência ou video- chamada telefônica, o codificador de vídeo seleciona uma ou mais LTRPs que mostram elementos de uma cena ou elementos relativamente estáticos de um participante (por exemplo, aspectos de uma pessoa sentada). Durante a codificação, o codificador de vídeo pode determinar quais LTRPs reter como imagens de referência disponíveis com base na frequência com que as LTRPs são usadas para compensação de movimento, quais LTRPs foram sucessivamente reconstruídas por um decodificador de vídeo e/ou outros fatores.
[00136] Um codificador de vídeo pode periodicamente restaurar LTRPs para facilitar a reprodução se um dispositivo de computação de cliente muda de fluxos (por exemplo, após uma mudança de canal para um fluxo diferente, ou após uma mudança para um fluxo da mesma sequência a uma taxa de bit/qualidade diferente). Essa restauração periódica de LTRPs também pode ajudar um dispositivo de computação de cliente a se recuperar da perda ou corrupção de pacote que possa evitar que um decodificador de vídeo tenha as imagens de referência que ele supostamente tem para decodificação correta. Ao restaurar LTRPs, o codificador de vídeo pode usar imagens intracodifica- das, que pode ajudar a proporcionar acesso aleatório e recuperar a funcionalidade, mas também tendem a ter uma taxa de bit mais alta do que imagens compensadas por movimento.
[00137] Em cenários de comunicação de vídeo em tempo real (por exemplo, videoconferência, vídeo-chamada telefônica, apresentação de conferência em área de trabalho à distância), um codificador de vídeo e decodificador de vídeo podem interagir para facilitar recuperação de erro e ocultação de erro com recuperação mais rápida e eficiência de codificação aumentada. Por exemplo, em um dispositivo de computação servidor, o codificador de vídeo determina informação de estado que identifica quais imagens são disponíveis para uso como imagens de referência no codificador de vídeo. (Também se espera que essas imagens estejam disponíveis para uso como imagens de referência pelo decodificador de vídeo, quando a decodificação alcança esse ponto, presumindo-se que a perda ou corrupção do pacote não afete adversamente reconstrução para qualquer das imagens de referência.) A seguir, o dispositivo de computação do servidor determina elementos de sintaxe que representam a informação sobre status e emite os elementos de sintaxe.
[00138] Em um dispositivo de computação do cliente, o decodifica- dor de vídeo recebe e segmenta os elementos de sintaxe que representam a informação sobre o estado identificando quais imagens estão disponíveis para uso como imagens de referência no codificador de vídeo (que também se espera que estejam disponíveis para uso como imagens de referência pelo decodificador de vídeo, quando a decodifi- cação alcança este ponto). O decodificador pode usar a informação sobre o estado durante a decodificação para determinar conjuntos de imagens de referência. Ou, o decodificador pode usar a informação sobre o estado durante a decodificação para iniciar operações de recuperação de erro ou ocultação. A perda ou corrupção de pacote pode ter evitado a reconstrução correta de uma ou mais das imagens de referência pelo decodificador de vídeo. O decodificador de vídeo determina informação sobre estado (que pode ser chamada informação sobre o estado novo, informação sobre o estado do identificador, etc.) que identifica quais imagens estão realmente disponíveis para uso como imagens de referência pelo decodificador de vídeo. O decodifi- cador de vídeo determina elementos de sintaxe para informação de retorno que representa a informação sobre o estado do decodificador. O decodificador de vídeo envia a informação de retorno para o codificador de vídeo para uso durante codificação subsequente. Isso permite que o codificador de vídeo determine quais imagens estão realmente disponíveis como referência no decodificador de vídeo, utilizando a informação sobre estado previamente sinalizada bem como a informação de retorno a partir do decodificador de vídeo.
[00139] No dispositivo de computação do servidor, o codificador de vídeo recebe a informação de retorno que representa a informação de estado do decodificador e usa a informação de retorno durante a codificação. Por exemplo, o codificador de vídeo utiliza a informação de retorno para remover uma ou mais LTRPs que o decodificador de vídeo não reconstrói corretamente. Ou, o codificador de vídeo em caso contrário usa a informação de retorno quando decide como codificar uma ou mais imagens a seguir com relação à LTRPs que a informação de retorno confirma como estando disponível no decodificador de vídeo. O codificador de vídeo determina informação de estado consistente coma informação de retorno, determina elementos de sintaxe que representam a informação de estado, e emite aqueles elementos de sintaxe no fluxo de bit. Desse modo, o codificador de vídeo pode ajudar o decodificador de vídeo a se recuperar da perda ou corrupção de pacote mais rapidamente, em uma maneira que está em conformidade com aspectos básicos de codificação e decodificação, com alta eficiência de codificação devido ao uso das LTRPs.
[00140] O decodificador de vídeo pode proporcionar a informação de retorno para o codificador de vídeo (por exemplo, para cada imagem, para cada grupo de x imagens). Ou, o decodificador de vídeo pode proporcionar a informação de retorno por solicitação (por exemplo, quando o decodificador de vídeo identifica uma discrepância entre informação sobre estado e imagens de referência que estão efetivamente disponíveis para o decodificador de vídeo). O decodificador de vídeo pode proporcionar a informação de retorno em um canal de rea- limentação separado, ou para comunicação bidirecional, multiplexado com dados de vídeo codificados em um fluxo de mídia que está saindo.
[00141] Em vista das muitas modalidades possíveis às quais os princípios da invenção divulgada podem ser aplicados, deve ser reconhecido que as modalidades ilustradas são apenas exemplos preferi- dos da invenção e não devem ser tomadas como limitativas do escopo da invenção. Ao contrário, o escopo da invenção é definido pelas reivindicações a seguir. Portanto, é reivindicado como invenção tudo que está dentro do escopo e espírito dessas reivindicações.

Claims (20)

1. Método em um sistema de computação que implementa um codificador de vídeo, o método caracterizado pelo fato de que compreende as etapas de: codificar uma imagem atual, entre imagens de uma sequência, para produzir dados codificados, incluindo: determinar uma informação de status de imagem de referência a longo prazo (“LTRP”) para a imagem atual, em que as informações de status de LTRP para a imagem atual identificam quais imagens, se houver, estão disponíveis para uso como LTRPs para a imagem atual; e definir elementos de sintaxe que representam as informações de status de LTRP para a imagem atual, incluindo definir informações de identificação para um determinado LTRP nas informações de status de LTRP para a imagem atual, em que as informações de identificação para o LTRP fornecido são um valor de bits menos signi- ficantes na contagem de ordem de imagem (“POC LSBs”) para o determinado LTRP para a imagem atual, e em que o valor dos POC LSBs para o determinado LTRP, módulo um ponto de enrolamento de bits mais significativo, é usado para, pelo menos em parte, indicar uma diferença entre os valores de POC de a imagem atual e o LTRP fornecido; e emitir os dados codificados como parte de um fluxo de bits, os dados codificados incluindo os elementos de sintaxe que representam as informações de status LTRP para a imagem atual.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda: determinar se deve incluir informação de estado de LTRP no fluxo de bits para as imagens da sequência; e emitir, como parte de um conjunto de parâmetros de se- quência, um sinalizador que indica se as informações de status LTRP estão presentes no fluxo de bits para as imagens da sequência.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que os elementos de sintaxe que representam as informações de status LTRP para a imagem atual são sinalizados no fluxo de bits para a imagem atual.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda: definir um número de bits para POC LSBs para usar para valores de POC LSBs para LTRPs; e emitir um elemento de sintaxe que indica o número de bits para POC LSBs.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a configuração dos elementos de sintaxe que representam as informações de status de LTRP para a imagem atual inclui ainda definir um sinalizador para o LTRP fornecido nas informações de status de LTRP para a imagem atual, o sinalizador para o LTRP de-terminado indicando se o LTRP fornecido é usado para decodificação da imagem atual.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda, como parte da codificação da imagem atual: definir um sinalizador para o LTRP fornecido nas informações de status do LTRP para a imagem atual, em que o sinalizador para o LTRP fornecido facilita a reutilização do valor de POC LSBs para o LTRP fornecido como um valor de POC LSBs para outra imagem de referência enquanto o LTRP fornecido permanece distintamente identificado em comparação com a outra imagem de referência.
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a determinação das informações de status de LTRP para a imagem atual e/ou a configuração dos elementos de sintaxe está sujeita a uma restrição de que o valor de POC para cada imagem que é uma imagem de referência para a imagem atual ou aguardando a saída é calculada inequivocamente em relação ao valor de POC da imagem atual.
8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a determinação da informação de status de LTRP para a imagem atual e/ou a configuração dos elementos de sintaxe está sujeita a uma restrição na faixa de valores de POC para a imagem atual e suas imagens de referência.
9. Sistema de computação caracterizado pelo fato de que compreende: um armazenamento temporário configurado para armazenar pelo menos parte de um fluxo de bits; e um decodificador de vídeo, implementado usando um processador e memória, configurado para realizar operações compreendendo: analisar elementos de sintaxe a partir do fluxo de bits, em que os elementos de sintaxe representam uma informação de status de imagem de referência a longo prazo ("LTRP") para uma imagem atual dentre imagens de uma sequência, em que a informação de status de LTRP para a imagem atual identifica quais imagens, se houver, estão disponíveis para uso como LTRPs para a imagem atual, os elementos de sintaxe incluindo informações de identificação para um determinado LTRP nas informações de status do LTRP para a imagem atual, e em que a informação de identificação para o LTRP fornecido é um valor de bits menos significantes na contagem de ordem de imagem (“POC LSBs”), módulo um ponto de enrolamento de bits mais significativo, para o LTRP fornecido para a imagem atual; e usar as informações de status LTRP durante a decodifica- ção, em que o valor dos LSBs POC para o LTRP dado, módulo o ponto de empacotamento de bits mais significativo, é usado para, pelo menos em parte, indicar uma diferença entre os valores POC da imagem atual e o LTRP dado.
10. Sistema de computação, de acordo com a reivindicação 9, caracterizado pelo fato de que as operações compreendem ainda: analisar, a partir de um conjunto de parâmetros de sequência, um sinalizador que indica se as informações de status de LTRP estão presentes no fluxo de bits para as imagens da sequência.
11. Sistema de computação, de acordo com a reivindicação 9, caracterizado pelo fato de que os elementos de sintaxe que representam as informações de status de LTRP para a imagem atual são sinalizados no fluxo de bits para a imagem atual.
12. Sistema de computação, de acordo com a reivindicação 9, caracterizado pelo fato de que as operações compreendem ainda: analisar um elemento de sintaxe que indica um número de bits para POC LSBs usar para valores de POC LSBs para LTRPs; e usar o número de bits para POC LSBs ao analisar o valor de POC LSBs para o LTRP fornecido.
13. Sistema de computação, de acordo com a reivindicação 9, caracterizado pelo fato de que as operações compreendem ainda: usar as informações de status de LTRP para gerenciar uma área de armazenamento de imagem decodificada do decodificador de vídeo.
14. Sistema de computação, de acordo com a reivindicação 9, caracterizado pelo fato de que os elementos de sintaxe incluem ainda um sinalizador para o determinado LTRP, o sinalizador para o determinado LTRP indicando se o determinado LTRP é usado para decodificação da imagem atual.
15. Sistema de computação, de acordo com a reivindicação 9, caracterizado pelo fato de que as operações compreendem ainda: enviar informações de feedback para uso por um codificador de vídeo durante a codificação, em que as informações de feedback representam informações de estado do decodificador que identificam quais imagens estão disponíveis para uso como imagens de referência pelo decodificador de vídeo.
16. Meio de armazenamento legível por computador, caracterizado pelo fato de que armazena dados codificados para pelo menos parte de um fluxo de bits, sendo o meio de armazenamento legível por computador selecionado do grupo que consiste em memória volátil, memória não volátil, disco magnético, CD- ROM e DVD, em que o fluxo de bits inclui elementos de sintaxe que representam uma informação de status de imagem de referência a longo prazo ("LTRP") para uma imagem atual entre imagens de uma sequência, em que as informações de status de LTRP para a imagem atual identificam quais imagens, se houver, estão disponíveis para uso como LTRPs para a imagem atual, os elementos de sintaxe incluindo informações de identificação para um determinado LTRP nas informações de status do LTRP para a imagem atual, e em que a informação de identificação para o LTRP fornecido é um valor de bits menos significantes na contagem de ordem de imagem (“POC LSBs”), módulo um ponto de quebra de bits mais significativo, para o LTRP dado para a imagem atual, os dados codificados sendo organizados para facilitar decodificação por operações compreendendo: analisar os elementos de sintaxe do fluxo de bits; e usar as informações de status de LTRP durante a decodifi- cação, em que o valor dos POC LSBs para o LTRP dado, módulo o ponto de enrolamento de bits mais significativo, é usado para, pelo menos em parte, indicar uma diferença entre os valores de POC da imagem atual e o LTRP dado.
17. Meio de armazenamento legível por computador, de acordo com a reivindicação 16, caracterizado pelo fato de que o fluxo de bits inclui ainda, como parte de um conjunto de parâmetros de sequência, um sinalizador que indica se as informações de status de LTRP estão presentes no fluxo de bits para imagens de uma sequência, e em que as operações compreendem ainda analisar, a partir do conjunto de parâmetros de sequência, o sinalizador.
18. Meio de armazenamento legível por computador, de acordo com a reivindicação 16, caracterizado pelo fato de que o fluxo de bits inclui ainda um elemento de sintaxe que indica um número de bits para POC LSBs a serem usados para valores de POC LSBs para LTRPs, e em que as operações compreendem ainda: analisar o elemento de sintaxe que indica um número de bits para POC LSBs usar para valores de POC LSBs para LTRPs; e usando o número de bits para POC LSBs ao analisar o valor de POC LSBs para o LTRP fornecido.
19. Meio de armazenamento legível por computador, de acordo com a reivindicação 16, caracterizado pelo fato de que os elementos de sintaxe incluem ainda um sinalizador para o determinado LTRP, o sinalizador para o determinado LTRP indicando se o determinado LTRP é usado para decodificação da imagem atual.
20. Meio de armazenamento legível por computador, de acordo com a reivindicação 16, caracterizado pelo fato de que as operações compreendem ainda: usar as informações de status de LTRP para gerenciar uma área de armazenamento de imagem decodificada de um decodificador de vídeo.
BR122022001670-7A 2011-11-07 2012-11-06 Método em um sistema de computação que implementa um codificador de vídeo, sistema de computação e meio de armazenamento legível por computador BR122022001670B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161556813P 2011-11-07 2011-11-07
US61/556,813 2011-11-07
US13/669,380 2012-11-05
US13/669,380 US10003817B2 (en) 2011-11-07 2012-11-05 Signaling of state information for a decoded picture buffer and reference picture lists
PCT/US2012/063748 WO2013070630A1 (en) 2011-11-07 2012-11-06 Signaling of state information for a decoded picture buffer and reference picture lists

Publications (1)

Publication Number Publication Date
BR122022001670B1 true BR122022001670B1 (pt) 2022-06-28

Family

ID=48223702

Family Applications (3)

Application Number Title Priority Date Filing Date
BR122022001681-2A BR122022001681B1 (pt) 2011-11-07 2012-11-06 Sistema de computação, método em um sistema de computação que implementa um decodificador de vídeo e meio de armazenamento legível por computador
BR112014010947-8A BR112014010947B1 (pt) 2011-11-07 2012-11-06 Sistema de computação que implementa um codificador de vídeo, método, meio de armazenamento legível por computador, sistema de computação que implementa um decodificador de vídeo e ferramenta de comunicação em tempo real
BR122022001670-7A BR122022001670B1 (pt) 2011-11-07 2012-11-06 Método em um sistema de computação que implementa um codificador de vídeo, sistema de computação e meio de armazenamento legível por computador

Family Applications Before (2)

Application Number Title Priority Date Filing Date
BR122022001681-2A BR122022001681B1 (pt) 2011-11-07 2012-11-06 Sistema de computação, método em um sistema de computação que implementa um decodificador de vídeo e meio de armazenamento legível por computador
BR112014010947-8A BR112014010947B1 (pt) 2011-11-07 2012-11-06 Sistema de computação que implementa um codificador de vídeo, método, meio de armazenamento legível por computador, sistema de computação que implementa um decodificador de vídeo e ferramenta de comunicação em tempo real

Country Status (12)

Country Link
US (6) US10003817B2 (pt)
EP (1) EP2777251B1 (pt)
JP (1) JP6087940B2 (pt)
KR (1) KR102058759B1 (pt)
CN (1) CN103918268B (pt)
AU (1) AU2012336043B2 (pt)
BR (3) BR122022001681B1 (pt)
CA (1) CA2854331C (pt)
IN (1) IN2014CN03320A (pt)
MX (1) MX353889B (pt)
RU (1) RU2613738C2 (pt)
WO (1) WO2013070630A1 (pt)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10003817B2 (en) 2011-11-07 2018-06-19 Microsoft Technology Licensing, Llc Signaling of state information for a decoded picture buffer and reference picture lists
KR102219082B1 (ko) * 2011-11-11 2021-02-23 엘지전자 주식회사 영상 정보 전송 방법 및 장치와 이를 이용한 복호화 방법 및 장치
US9584832B2 (en) * 2011-12-16 2017-02-28 Apple Inc. High quality seamless playback for video decoder clients
US9609341B1 (en) * 2012-04-23 2017-03-28 Google Inc. Video data encoding and decoding using reference picture lists
US9319679B2 (en) * 2012-06-07 2016-04-19 Qualcomm Incorporated Signaling data for long term reference pictures for video coding
BR112014033038A2 (pt) * 2012-07-02 2017-06-27 Samsung Electronics Co Ltd método de predição de vetor de movimento para inter predição, e aparelho de predição de vetor de movimento para inter predição
US9313500B2 (en) 2012-09-30 2016-04-12 Microsoft Technology Licensing, Llc Conditional signalling of reference picture list modification information
JP6209772B2 (ja) 2013-01-15 2017-10-11 華為技術有限公司Huawei Technologies Co.,Ltd. シグナリングを用いたビデオデコーダ
US9300965B2 (en) * 2013-01-16 2016-03-29 Telefonaktiebolaget L M Ericsson (Publ) Decoder and encoder and methods for coding of a video sequence using least significant bits of picture order count
EP2804375A1 (en) 2013-02-22 2014-11-19 Thomson Licensing Coding and decoding methods of a picture block, corresponding devices and data stream
EP2804374A1 (en) * 2013-02-22 2014-11-19 Thomson Licensing Coding and decoding methods of a picture block, corresponding devices and data stream
CN104243988B (zh) * 2013-06-14 2019-11-12 浙江大学 视频编解码方法及装置、传输视频码流的方法
WO2015009022A1 (ko) * 2013-07-15 2015-01-22 주식회사 케이티 스케일러블 비디오 신호 인코딩/디코딩 방법 및 장치
US9794579B2 (en) * 2013-07-15 2017-10-17 Qualcomm Incorporated Decoded picture buffer operations for video coding
WO2015053596A1 (ko) 2013-10-12 2015-04-16 삼성전자 주식회사 멀티 레이어 비디오의 복호화 및 부호화를 위한 버퍼 관리 방법 및 장치
US9900605B2 (en) 2013-10-14 2018-02-20 Qualcomm Incorporated Device and method for scalable coding of video information
WO2015102271A1 (ko) * 2014-01-02 2015-07-09 한국전자통신연구원 영상의 복호화 방법 및 이를 이용하는 장치
KR102294092B1 (ko) 2014-01-02 2021-08-27 한국전자통신연구원 영상의 복호화 방법 및 이를 이용하는 장치
US9788007B2 (en) * 2014-06-20 2017-10-10 Qualcomm Incorporated Profile, tier, level for the 0-th output layer set in video coding
US9866851B2 (en) 2014-06-20 2018-01-09 Qualcomm Incorporated Full picture order count reset for multi-layer codecs
US10264286B2 (en) * 2014-06-26 2019-04-16 Qualcomm Incorporated Bitstream conformance constraints in scalable video coding
CN104159118A (zh) * 2014-07-30 2014-11-19 天津大学 一种基于伪随机序列和lsb算法的图像字节异或算法
US9549188B2 (en) * 2014-07-30 2017-01-17 Intel Corporation Golden frame selection in video coding
KR101610725B1 (ko) 2014-09-23 2016-04-08 삼성전자주식회사 참조 빈도에 따라 참조 영상 데이터를 제어하는 비디오 부복호화 방법 및 장치
CN110582001B (zh) * 2014-09-30 2022-10-14 微软技术许可有限责任公司 用于视频编码的基于散列的编码器判定
KR20160071569A (ko) 2014-12-11 2016-06-22 삼성전자주식회사 비디오 장치에서의 영상 처리 방법 및 그에 따른 비디오 장치
WO2017075804A1 (en) * 2015-11-06 2017-05-11 Microsoft Technology Licensing, Llc Flexible reference picture management for video encoding and decoding
US10555002B2 (en) * 2016-01-21 2020-02-04 Intel Corporation Long term reference picture coding
GB2547053B (en) * 2016-02-08 2020-07-08 Canon Kk Methods, devices, and computer programs for combining the use of intra-layer prediction and inter-layer prediction with scalability & screen content features
WO2019124191A1 (ja) * 2017-12-18 2019-06-27 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
JP2021534673A (ja) 2018-08-17 2021-12-09 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ビデオコーディングにおける参照ピクチャ管理
MX2021002951A (es) * 2018-09-12 2021-07-15 Huawei Tech Co Ltd Un codificador de video, un decodificador de video y metodos correspondientes.
CN113170203A (zh) * 2018-12-10 2021-07-23 夏普株式会社 用于在视频编码中发送信号通知参考图片的系统和方法
KR102504741B1 (ko) * 2019-01-02 2023-03-02 엘지전자 주식회사 화면간 예측을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치
CN111416981B (zh) * 2019-01-07 2023-06-02 浙江大学 视频图像解码、编码方法及装置
CN113597768A (zh) * 2019-01-28 2021-11-02 Op方案有限责任公司 扩展长期参考图片保留的在线和离线选择
SG11202108105YA (en) * 2019-01-28 2021-08-30 Op Solutions Llc Explicit signaling of extended long term reference picture retention
WO2021022264A1 (en) * 2019-09-24 2021-02-04 Futurewei Technologies, Inc. Signaling of non-picture-level syntax elements at the picture level
CN115299049A (zh) 2020-03-20 2022-11-04 字节跳动有限公司 视频编解码中子图片信息的使用
WO2021216448A1 (en) 2020-04-20 2021-10-28 Bytedance Inc. Constraints on reference picture lists
WO2021235895A1 (ko) * 2020-05-22 2021-11-25 엘지전자 주식회사 영상 코딩 방법 및 그 장치
CN115943627A (zh) 2020-06-08 2023-04-07 字节跳动有限公司 对编解码视频图片中条带计数的约束
US12003777B2 (en) * 2021-01-08 2024-06-04 Lemon Inc. Video decoder initialization information signaling

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6956545B2 (en) * 2001-10-08 2005-10-18 Imagearray, Ltd. Digital playback device
US7369709B2 (en) 2003-09-07 2008-05-06 Microsoft Corporation Conditional lapped transform
US20060083298A1 (en) 2004-10-14 2006-04-20 Nokia Corporation Reference picture management in video coding
WO2007018670A1 (en) 2005-07-21 2007-02-15 Thomson Licensing Method and apparatus for weighted prediction for scalable video coding
EP1806930A1 (en) 2006-01-10 2007-07-11 Thomson Licensing Method and apparatus for constructing reference picture lists for scalable video
EP2008461B1 (en) 2006-03-30 2015-09-16 LG Electronics Inc. A method and apparatus for decoding/encoding a multi-view video signal
WO2008005574A2 (en) 2006-07-06 2008-01-10 Thomson Licensing Method and apparatus for decoupling frame number and/or picture order count (poc) for multi-view video encoding and decoding
WO2008023968A1 (en) 2006-08-25 2008-02-28 Lg Electronics Inc A method and apparatus for decoding/encoding a video signal
CN102780883B (zh) 2006-10-13 2015-03-04 汤姆逊许可公司 用于包含多视点视频编码的参考图像管理的方法
EP2090110A2 (en) * 2006-10-13 2009-08-19 Thomson Licensing Reference picture list management syntax for multiple view video coding
KR101120648B1 (ko) 2006-10-16 2012-03-23 노키아 코포레이션 멀티뷰 비디오 코딩에서 효율적인 디코딩된 버퍼 관리를 구현하기 위한 시스템 및 방법
JP5156088B2 (ja) 2007-03-23 2013-03-06 エルジー エレクトロニクス インコーポレイティド ビデオ信号のデコーディング/エンコーディング方法及び装置
CN101785317B (zh) 2007-08-15 2013-10-16 汤姆逊许可证公司 使用区域视差向量的多视角编码视频中的运动跳过模式的方法和装置
BRPI0818444A2 (pt) 2007-10-12 2016-10-11 Qualcomm Inc codificação adaptativa de informação de cabeçalho de bloco de vídeo
WO2009052262A2 (en) 2007-10-16 2009-04-23 Cisco Technology, Inc. Conveyance of concatenation properties and picture orderness in a video stream
WO2009130561A1 (en) 2008-04-21 2009-10-29 Nokia Corporation Method and device for video coding and decoding
WO2010086500A1 (en) * 2009-01-28 2010-08-05 Nokia Corporation Method and apparatus for video coding and decoding
US8189666B2 (en) * 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
WO2010109904A1 (ja) 2009-03-26 2010-09-30 パナソニック株式会社 符号化方法、エラー検出方法、復号方法、符号化装置、エラー検出装置及び復号装置
US20100246683A1 (en) 2009-03-27 2010-09-30 Jennifer Lois Harmon Webb Error Resilience in Video Decoding
US20120106634A1 (en) 2009-04-21 2012-05-03 Lg Electronics Inc. Method and apparatus for processing multi-view video signal
WO2010123203A2 (ko) 2009-04-22 2010-10-28 엘지전자 주식회사 다시점 영상의 참조 픽쳐 리스트 변경 방법
KR101621907B1 (ko) 2010-02-02 2016-05-17 삼성전자주식회사 디스플레이 장치, 3d 영상 제공 방법 및 3d 영상 제공 시스템
US20110222837A1 (en) 2010-03-11 2011-09-15 Cisco Technology, Inc. Management of picture referencing in video streams for plural playback modes
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
WO2012031628A1 (en) 2010-09-09 2012-03-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Entropy encoding and decoding scheme
WO2012052968A1 (en) 2010-10-20 2012-04-26 Nokia Corporation Method and device for video coding and decoding
US9008176B2 (en) 2011-01-22 2015-04-14 Qualcomm Incorporated Combined reference picture list construction for video coding
US20120195364A1 (en) 2011-01-31 2012-08-02 Apple Inc. Dynamic mode search order control for a video encoder
US20120294366A1 (en) * 2011-05-17 2012-11-22 Avi Eliyahu Video pre-encoding analyzing method for multiple bit rate encoding system
CN103765900B (zh) * 2011-06-30 2016-12-21 瑞典爱立信有限公司 绝对或显式的参考画面信号通知
ES2714756T3 (es) * 2011-06-30 2019-05-29 Ericsson Telefon Ab L M Señalización de imágenes de referencia
US20130003823A1 (en) * 2011-07-01 2013-01-03 Kiran Misra System for initializing an arithmetic coder
EP4017006B1 (en) 2011-09-22 2023-09-20 LG Electronics, Inc. Method and apparatus for signaling image information, and decoding method and apparatus using same
US9106927B2 (en) * 2011-09-23 2015-08-11 Qualcomm Incorporated Video coding with subsets of a reference picture set
US8768079B2 (en) * 2011-10-13 2014-07-01 Sharp Laboratories Of America, Inc. Tracking a reference picture on an electronic device
US8855433B2 (en) * 2011-10-13 2014-10-07 Sharp Kabushiki Kaisha Tracking a reference picture based on a designated picture on an electronic device
US20130094774A1 (en) 2011-10-13 2013-04-18 Sharp Laboratories Of America, Inc. Tracking a reference picture based on a designated picture on an electronic device
EP2772052A1 (en) 2011-10-24 2014-09-03 Telefonaktiebolaget LM Ericsson (PUBL) Reference picture marking
MX346477B (es) 2011-10-28 2017-03-22 Samsung Electronics Co Ltd Método para inter-predicción y dispositivo para el mismo, y método para compensación de movimiento y dispositivo para el mismo.
US10003817B2 (en) 2011-11-07 2018-06-19 Microsoft Technology Licensing, Llc Signaling of state information for a decoded picture buffer and reference picture lists
EP2810438A1 (en) 2012-01-31 2014-12-10 VID SCALE, Inc. Reference picture set (rps) signaling for scalable high efficiency video coding (hevc)
US9369710B2 (en) 2012-02-06 2016-06-14 Qualcomm Incorporated Reference picture list modification for video coding
WO2013157783A1 (ko) 2012-04-15 2013-10-24 삼성전자 주식회사 참조픽처리스트 변경이 가능한 인터 예측 방법과 그 장치
US20130343465A1 (en) 2012-06-26 2013-12-26 Qualcomm Incorporated Header parameter sets for video coding
US9167248B2 (en) 2012-07-13 2015-10-20 Qualcomm Incorporated Reference picture list modification for video coding
US9398284B2 (en) 2012-08-16 2016-07-19 Qualcomm Incorporated Constructing reference picture lists for multi-view or 3DV video coding
WO2014039778A2 (en) 2012-09-07 2014-03-13 Vid Scale, Inc. Reference picture lists modification
CN108540813B (zh) 2012-09-28 2021-03-16 杜比国际公司 图像解码装置
US9313500B2 (en) 2012-09-30 2016-04-12 Microsoft Technology Licensing, Llc Conditional signalling of reference picture list modification information

Also Published As

Publication number Publication date
RU2613738C2 (ru) 2017-03-21
BR112014010947A2 (pt) 2017-06-06
BR112014010947A8 (pt) 2017-12-12
US11418809B2 (en) 2022-08-16
JP6087940B2 (ja) 2017-03-01
CA2854331C (en) 2020-07-07
EP2777251B1 (en) 2018-09-19
AU2012336043A1 (en) 2014-05-29
MX353889B (es) 2018-02-01
BR112014010947B1 (pt) 2022-07-12
KR20140085492A (ko) 2014-07-07
AU2012336043B2 (en) 2016-06-16
EP2777251A1 (en) 2014-09-17
BR122022001681B1 (pt) 2022-06-28
CA2854331A1 (en) 2013-05-16
JP2015501098A (ja) 2015-01-08
US20220329852A1 (en) 2022-10-13
IN2014CN03320A (pt) 2015-07-03
US20130114741A1 (en) 2013-05-09
US20180234698A1 (en) 2018-08-16
US20240080475A1 (en) 2024-03-07
US10432964B2 (en) 2019-10-01
US10924760B2 (en) 2021-02-16
US11849144B2 (en) 2023-12-19
CN103918268A (zh) 2014-07-09
CN103918268B (zh) 2018-03-30
RU2014118460A (ru) 2015-11-27
US10003817B2 (en) 2018-06-19
US20190379903A1 (en) 2019-12-12
MX2014005582A (es) 2015-04-08
KR102058759B1 (ko) 2019-12-23
EP2777251A4 (en) 2015-07-08
WO2013070630A1 (en) 2013-05-16
US20210092441A1 (en) 2021-03-25

Similar Documents

Publication Publication Date Title
US11418809B2 (en) Signaling of state information for a decoded picture buffer and reference picture lists
US10560706B2 (en) High layer syntax for temporal scalability
US20240223795A1 (en) Encoder and decoder and methods thereof for encoding/decoding a picture of a video sequence
TWI603609B (zh) 簡化視訊隨機存取之限制及單元類型
JP2015501098A5 (pt)
US20150078458A1 (en) Absolute or Explicit Reference Picture Signaling
CA2967452C (en) Reference picture signaling
BR112013033552B1 (pt) Método em um sistema de computador que implementa um decodificador de vídeo, método em um sistema de computação, meio legível por computador e sistema de computação
KR20090007293A (ko) 멀티-뷰 비디오 코딩 시스템에서 사용하기 위한 방법 및 장치
JP2017507521A (ja) 動画像順位の符号化、復号化方法及び装置、電子機器
EP2249567A1 (en) Dynamic image stream processing method and device, and dynamic image reproduction device and dynamic image distribution device using the same
WO2013048316A1 (en) Decoder and encoder for picture outputting and methods thereof

Legal Events

Date Code Title Description
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 06/11/2012, OBSERVADAS AS CONDICOES LEGAIS