BR112014032473B1 - Método e dispositivo para decodificar dados de vídeo, método e dispositvo para codificar dados de vídeo e mídia de armazenamento legível por computador - Google Patents

Método e dispositivo para decodificar dados de vídeo, método e dispositvo para codificar dados de vídeo e mídia de armazenamento legível por computador Download PDF

Info

Publication number
BR112014032473B1
BR112014032473B1 BR112014032473-5A BR112014032473A BR112014032473B1 BR 112014032473 B1 BR112014032473 B1 BR 112014032473B1 BR 112014032473 A BR112014032473 A BR 112014032473A BR 112014032473 B1 BR112014032473 B1 BR 112014032473B1
Authority
BR
Brazil
Prior art keywords
value
poc
long
term reference
msbs
Prior art date
Application number
BR112014032473-5A
Other languages
English (en)
Other versions
BR112014032473A2 (pt
Inventor
Ying Chen
Ye-Kui Wang
Rajan Laxman Joshi
Adarsh Krishnan Ramasubramonian
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112014032473A2 publication Critical patent/BR112014032473A2/pt
Publication of BR112014032473B1 publication Critical patent/BR112014032473B1/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/436Methods 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 using parallelised computational arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

SINALIZAÇÃO DE IMAGENS DE REFERÊNCIA DE LONGO PRAZO PARA CODIFICAÇÃO DE VÍDEO.Um decodificador de vídeo pode ser configurado para decodificar um primeiro valor que representa a diferença entre um valor de bits mais significativos (MSBs) básico de um valor de total de ordens de imagem (POC) da imagem atual de dados de vídeo e um primeiro valor de MSBs de um primeiro valor de POC de uma primeira imagem de referência de longo prazo dos dados de vídeo, decodificar um segundo valor que representa a diferença entre um segundo valor de MSBs de um segundo valor de POC de uma segunda imagem de referência de longo prazo dos dados de vídeo e o primeiro valor de MSBs, em que o primeiro valor de POC e o segundo valor de POC têm valores de bits menos significativos (LSBs) diferentes, e decodificar pelo menos uma parte da imagem atual dos dados de vídeo com relação a pelo menos uma da primeira imagem de referência de longo prazo e da segunda imagem de referência de longo prazo.

Description

[001] Este pedido reivindica o benefício do pedido provisório norte- americano N°. de Série 61/665 784, depositado a 28 de junho de 2012 cujo conteúdo inteiro é por este incorporado à guisa de referência.
CAMPO TÉCNICO
[002] Esta revelação refere-se à codificação de vídeo.
ANTECEDENTES
[003] Capacidades de vídeo digital podem ser incorporadas a uma ampla faixa de aparelhos, que inclui televisões digitais, sistemas de broadcast digitais, sistemas de broadcast sem fio, assistentes digitais pessoais (PDAs), computadores laptop ou de mesa, computadores tablet, leitoras de e-books, câmeras digitais, aparelhos de gravação digital, tocadores de meios digitais, aparelhos de jogos de vídeo, consoles de jogos de vídeo, telefones celulares ou de rádio-satélite, os chamados “telefones inteligentes”, aparelhos de teleconferência de vídeo, aparelhos de fluxo contínuo de vídeo e semelhantes. Os aparelhos de vídeo digital implementam técnicas de codificação de vídeo, tais como as descritas nos padrões definidos pelo MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264-MPEG-4, Parte 10, Codificação Avançada de Vídeo (AVC), o padrão de Codificação de Vídeo de Alta Eficácia (HEVC) atualmente em desenvolvimento, e extensões de tais padrões. Um rascunho recente do padrão HEVC vindouro, referido como “padrão operacional HEVC 7”, ou “WD7”, é descrito no documento JCTVC-I1003, Bross et alii, “Rascunho de Especificação de Texto de Codificação de Vídeo de Alta Eficácia (HEVC) 7”, Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do ITU-T SG16 WP3 e IS- SO/IEC JTC1/SC29/WG11, 9°. Encontro: San José, Califórnia, EUA, 27 de abril a 7 de maio de 2012 evry.fr/jct/doc_end_user/documents/8_san%20jose/wg11/jctvc-h1003-v22.zip. Os aparelhos de codificação de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar informações de vídeo digital de maneira mais eficaz pela implementação de tais técnicas de codificação de vídeo.
[004] As técnicas de codificação de vídeo incluem predição espacial (intraimagem) e/ou predição temporal (interimagem) para reduzir ou remover a redundância inerente a sequências de vídeo. Para codificação de vídeo baseada em blocos, uma fatia de vídeo (um quadro de vídeo ou uma parte de quadro de vídeo, por exemplo) pode ser particionada em blocos de vídeo, que podem ser também referidos como blocos de árvore, unidades de codificação (CUs) e/ou nós de codificação. Os blocos de vídeo em uma fatia intracodificada (I) de uma imagem são codificados utilizando-se predição espacial com relação à amostra de referência em blocos vizinhos na mesma imagem. Os blocos de vídeo em uma fatia intercodificada (P ou B) de uma imagem podem utilizar predição espacial com relação a amostras de referência em blocos vizinhos na mesma imagem ou predição temporal com relação a amostras de referência em outras imagens de referência. As imagens podem ser referidas como quadros, e as imagens de referência podem ser referidas como quadros de referência.
[005] A predição espacial ou temporal resulta em um bloco preditivo a um bloco a ser codificado. Dados residuais representam diferenças de pixel entre o bloco original a ser codificado e o bloco preditivo. Um bloco intercodifi- cado é codificado de acordo com um vetor de movimento que indica um bloco de amostras de referência que formam o bloco preditivo, e os dados residuais que indicam a diferença entre o bloco codificado e o bloco preditivo. Um bloco intracodificado é codificado de acordo com um modo de intracodificação e os dados residuais. Para compactação adicional, os dados residuais podem ser transformados do domínio de pixel em um domínio de transformada, do que resultam coeficientes de transformada residuais que podem ser então quanti- zados. Os coeficientes de transformada quantizados, inicialmente dispostos em um arranjo bidimensional, podem ser varridos de modo a se produzir um vetor unidimensional de coeficientes de transformada, e a codificação por entropia pode ser aplicada de modo a se obter uma compactação ainda maior.
SUMÁRIO
[006] Em geral, esta revelação descreve técnicas para sinalizar imagens de referência de longo prazo para codificação de vídeo. Uma imagem de referência corresponde geralmente a uma imagem que pode ser utilizada para referência para codificação preditiva temporal de dados de outras imagens. Em geral, imagens de referência de longo prazo são armazenadas em um buffer de imagens decodificadas por mais tempo que outras imagens de referência, como, por exemplo, imagens de referência de curto prazo. Esta revelação descreve diversas técnicas relacionadas com a sinalização relacionada com imagem de referência de longo prazo, como, por exemplo, a sinalização de imagem de referência de longo prazo em cabeçalhos de fatia de fatias de imagens. As técnicas desta revelação podem proporcionar aperfeiçoamento para métodos de sinalização de imagem de referência de longo prazo no cabeçalho de fatia, como, por exemplo, em termos de eficácia e/ou aplicabilidade.
[007] Em um exemplo, um método inclui decodificar um primeiro valor que representa a diferença entre um valor de bits mais significativos (MSBs) básico de um valor de contagem de ordem de imagem (POC) da imagem atual de dados de vídeo e um primeiro valor de MSBs de um primeiro valor de POC de uma primeira imagem de referência de longo prazo dos dados de vídeo, decodificar um segundo valor que representa a diferença entre um segundo valor de MSBs de um segundo valor de POC de uma segunda imagem de referência de longo prazo dos dados de vídeo e o primeiro valor de MSBs, em que o primeiro valor de POC e o segundo valor de POC têm valores de bits menos significativos (LSBs) diferentes, e decodificar pelo menos uma parte da imagem atual dos dados de vídeo com relação a pelo menos uma da primeira imagem de referência de longo prazo utilizando o primeiro valor e a segunda imagem de referência de longo prazo utilizando o primeiro valor e o segundo valor.
[008] Em outro exemplo, um aparelho para decodificar dados de vídeo inclui um decodificador de vídeo configurado para decodificar um primeiro valor que representa a diferença entre um valor de bits mais significativos (MSBs) básico de um valores de contagem de ordem de imagem (POC) da imagem atual de dados de vídeo e um primeiro valor de MSBs de um primeiro valor de POC de uma primeira imagem de referência de longo prazo dos dados de vídeo, decodificar um segundo valor que representa a diferença entre um segundo valor de MSBs de um segundo valor de POC de uma segunda imagem de referência de longo prazo dos dados de vídeo e o primeiro valor de MSBs, em que o primeiro valor de POC e o segundo valor de POC têm valores de bits menos significativos (LSBs) diferentes e decodificar pelo menos uma da imagem atual dos dados de vídeo com relação a pelo menos uma da primeira imagem de referência de longo prazo utilizando o primeiro valor e a segunda imagem de referência de longo prazo utilizando o primeiro valor e o segundo valor.
[009] Em outro exemplo, um aparelho inclui um dispositivo para decodificar um primeiro valor que representa a diferença entre um valor de bits mais significativos (MSBs) básico de um valores de contagem de ordem de imagem (POC) da imagem atual de dados de vídeo e um primeiro valor de MSBs de um primeiro valor de POC de uma primeira imagem de referência de longo prazo dos dados de vídeo, um dispositivo para decodificar um segundo valor que re- presenta a diferença entre um segundo valor de MSBs de um segundo valor de POC de uma segunda imagem de referência de longo prazo dos dados de vídeo e o primeiro valor de MSBs, em que o primeiro valor de POC e o segundo valor de POC têm valores de bits menos significativos (LSBs) diferentes, e um dispositivo para decodificar pelo menos uma parte da imagem atual dos dados de vídeo com relação a pelo menos uma da primeira imagem de referência de longo prazo utilizando o primeiro valor e a segunda imagem de referência de longo prazo utilizando o primeiro valor e o segundo valor.
[010] Em outro exemplo, um meio de armazenamento legível por computador tem armazenadas nele, instruções que, quando executadas fazem com que um processador decodifique um primeiro valor que representa a diferença entre um valor de bits mais significativos (MSBs) básico de um valores de contagem de ordem de imagem (POC) da imagem atual de dados de vídeo e um primeiro valor de MSBs de um primeiro valor de POC de uma primeira imagem de referência de longo prazo dos dados de vídeo, decodifique um segundo valor que representa a diferença entre um segundo valor de MSBs de um segundo valor de POC de uma segunda imagem de referência de longo prazo dos dados de vídeo e o primeiro valor de MSBs, em que o primeiro valor de POC e o segundo valor de POC têm valores de bits menos significativos LSBs diferentes, e decodifique pelo menos uma parte da imagem atual dos dados de vídeo com relação a pelo menos uma da primeira imagem de referência de longo prazo utilizando o primeiro valor e a segunda imagem de referência de longo prazo utilizando o primeiro valor e o segundo valor.
[011] Em outro exemplo, um método para codificar dados de vídeo inclui codificar pelo menos uma parte da imagem atual de dados de vídeo com relação a um primeira imagem de referência de longo prazo e pelo menos uma parte da imagem atual com relação a um segunda imagem de referência de longo prazo, codificar um primeiro valor que representa a diferença entre um valores de bits mais significativos (MSBs) básico de um valor de contagem de ordem de imagem (POC) da imagem atual dos dados de vídeo e um primeiro valor de MSBs de um primeiro valor de POC da primeira imagem de referência de longo prazo dos dados de vídeo, e codificar um segundo valor que representa a diferença entre um segundo valor de MSBs de um segundo valor de POC da segunda imagem de referência de longo prazo dos dados de vídeo e o primeiro valor de MSBs, em que o primeiro valor de POC e o segundo valor de POC têm valores de bits menos significativos (LSBs) diferentes.
[012] Em outro exemplo, um aparelho para codificar dados de vídeo inclui um codificador de vídeo configurado para codificar pelo menos uma primeira parte da imagem atual de dados de vídeo com relação a uma primeira imagem de referência de longo prazo e pelo menos uma segunda parte da imagem atual com relação a uma segunda imagem de referência de longo prazo, codificar um primeiro valor que representa a diferença entre um valor de bits mais significativos (MSBs) básico de um valor de contagem de ordem de imagem (POC) da imagem atual dos dados de vídeo e um primeiro valor de MSBs de um primeiro valor de POC da primeira imagem de referência de longo prazo dos dados de vídeo, e codificar um segundo valor que representa a dife-rença entre um segundo valor de MSBs de um segundo valor de POC da segunda imagem de referência de longo prazo dos dados de vídeo e o primeiro valor de MSBs, em que o primeiro valor de POC e o segundo valor de POC têm valores de bits menos significativos (LSBs) diferentes.
[013] Em outro exemplo, um aparelho para codificar dados de vídeo inclui um dispositivo para codificar pelo menos uma primeira parte da imagem atual de dados de vídeo com relação a uma primeira imagem de referência de longo prazo e pelo menos uma segunda parte da imagem atual com relação a uma segunda imagem de referência de longo prazo, um dispositivo para codificar um primeiro valor que representa a diferença entre um valor de bits mais significativos (MSBs) de um valor de contagem de ordem de imagem (POC) da imagem atual dos dados de vídeo e um primeiro valor de MSBs de um primeiro valor de POC da primeira imagem de referência de longo prazo dos dados de vídeo, e um dispositivo para codificar um segundo valor que representa a diferença entre um segundo valor de MSBs de um segundo valor de POC da segunda imagem de referência de longo prazo dos dados de vídeo e o primeiro valor de MSBs, em que o primeiro valor de POC e o segundo valor de POC têm valores de bits menos significativos (LSBs) diferentes.
[014] Em outro exemplo, um meio de armazenamento legível por computador tem armazenadas nele instruções que fazem com que um processador codifique pelo menos uma primeira parte da imagem atual de dados de vídeo com relação a uma primeira imagem de referência de longo prazo e pelo menos uma segunda parte da imagem atual com relação a uma segunda imagem de referência de longo prazo, codifique um primeiro valor que representa a diferença entre um valor de bits mais significativos (MSBs) básico de um valor de contagem de ordem de imagem (POC) da imagem atual dos dados de vídeo e um primeiro valor de MSBs de um primeiro valor de POC da primeira imagem de referência de longo prazo dos dados de vídeo, e codifique um segundo valor que representa a diferença entre um segundo valor de MSBs de segundo valor de POC da segunda imagem de referência de longo prazo dos dados de vídeo e o primeiro valor de MSBs, em que o primeiro valor de POC e o segundo valor de POC têm valores de bits menos significativos (LSBs) diferentes.
[015] Os detalhes de um ou mais exemplos serão apresentados nos desenhos anexos e na descrição que se segue. Outros recursos, objetos e van- tagens se tornarão evidentes com a descrição e os desenhos e com as reivindicações.
DESCRIÇÃO RESUMIDA DOS DESENHOS
[016] A Figura 1 é um diagrama de blocos que mostra um sistema de codificação e decodificação de vídeo exemplar que pode utilizar técnicas para a sinalização aperfeiçoada de imagens de referência de longo prazo em cabeçalhos de fatia.
[017] A Figura 2 é um diagrama de blocos que mostra um exemplo de codificador de vídeo que pode implementar técnicas para a sinalização aperfeiçoada de imagens de referência de longo prazo em cabeçalhos de fatia.
[018] A Figura 3 é um diagrama de blocos que mostra um exemplo de decodificador de vídeo que pode implementar técnicas para a sinalização aperfeiçoada de imagens de referência de longo prazo em cabeçalhos de fatia.
[019] A Figura 4 é um diagrama conceptual que mostra uma sequência de imagens de vídeo codificadas.
[020] A Figura 5 é um fluxograma que mostra um método exemplar para codificar valores de contagem de ordem de imagem (POC) para imagens de referência de longo prazo de acordo com as técnicas desta revelação.
[021] A Figura 6 é um fluxograma que mostra um método exemplar para decodificar valores de POC para imagens de referência de longo prazo de acordo com as técnicas desta revelação.
DESCRIÇÃO DETALHADA
[022] Em geral, os dados de vídeo são representados por uma sequência de imagens que são captadas ou exibidas em rápida sucessão. Deve ficar entendido que, em alguns exemplos, imagens ou partes das imagens podem ser geradas utilizando-se, por exemplo, gráficos de computador, em vez (ou além de) de serem captadas. A ordem na qual as imagens serão exibidas (que podem ser geralmente a mesma ordem na qual as imagens são captadas ou geradas) pode diferir da ordem na qual as imagens são codificadas. A ordem de exibição das imagens é geralmente representada por valores de contagem de ordem de imagem, enquanto de codificação das imagens é geralmente representada por valores de número de quadros (frames_num).
[023] A codificação de imagens envolve geralmente tirar vantagem dos dados redundantes que ocorrem nas imagens. Por exemplo, a codificação espacial, também referida como codificação intrapreditiva tira vantagem das redundâncias que ocorrem entre blocos espacialmente vizinhos de valores de pixel de uma imagem comum. Como outro exemplo, a codificação temporal, também referida como codificação interpreditiva, tira vantagem das redundâncias que ocorrem entre imagens diferentes que são captadas, geradas ou exibidas em ocorrências temporais diferentes. Mais especificamente, uma imagem pode ser dividida em fatias que pode ser designadas intra ou interpredição. Além do mais, cada fatia pode ser dividida em blocos (unidades de codificação maiores (LCUs), por exemplo) e cada um dos blocos pode ser ou adicionalmente particionado ou codificado com base em se a fatia correspondente foi designada para intra ou interpredição.
[024] Com relação ao exemplo da codificação interpreditiva, blocos de uma imagem que é atualmente codificada (também referida como “imagem atual”) podem ser preditos a partir de uma imagem de referência. O WD7 define uma “imagem de referência” como uma imagem com um nal_ref_flag igual a 1. O nal_ref_flag é um elemento de sintaxe de uma unidade de camada de abstração de rede (NAL) que indica se os dados incluídos na unidade NAL serão tratados como uma imagem de referência. O WD7 também mostra que uma imagem de referência contém amostras (isto é, valores de pixel) que podem ser utilizadas para interpredição no processo de codificação das imagens subsequentes na ordem de decodificação.
[025] Além do mais, o WD7 distingue imagem de referência de longo prazo de imagens de referência de curto prazo. Por exemplo, o WD7 define uma imagem de referência de longo prazo como uma imagem de referência que é marcada como “utilizada para referência de longo prazo”. O WD7 mostra que um indicador em um conjunto de parâmetros de sequência (SPS) indica se imagens de referência de longo prazo são sinalizadas de todo para uma sequência de vídeo codificada. De acordo com o WD7, os codificadores de vídeo sinalizam bits menos significativos (LSBs) de valores de POC de imagens de referência de longo prazo em cabeçalhos de fatia de fatias. A sinalização dos LSBs pode resultar em uma economia de bits com relação à sinalização do valor de POC total. Os codificadores de vídeo, de acordo com o WD7 podem sinalizar os bits mais significativos (MSBs) dos valores de POC de imagens de referência de longo prazo se houver mais de uma imagem de referência em um armazenador de imagens decodificadas (DPB) que têm os mesmos bits de LSBs de uma imagem de referência de longo prazo. Além do mais, de acordo com WD7, os codificadores de vídeo podem utilizar um indicador para indicar se as imagens de referência de longo prazo sinalizadas podem ser utilizadas pela imagem atual para referência.
[026] Os codificadores de vídeo podem manter os MSBs da imagem atual, aqui referidos como “valor de MSBs básico” e sinalizar os MSBs da imagem de referência de longo prazo i utilizando valores de deslocamento relativos aos valores de MSBs básicos, como, por exemplo, utilizando o elemento de sintaxe delta_poc_msb_cycle_lt[ i ] para imagem i. Este elemento de sintaxe é referido em seguida como valor de “ciclo de MSB”. Em outras palavras, para calcular o valor de POC para uma imagem específica, um codificador de vídeo pode calcular: (MSB básico + Ciclo de MSB para a imagem) concatenado com (LSBs) para imagem.
[027] No WD7, o valor de ciclo de MSB foi codificado como a diferença entre o valor de MSB básico e os MSBs para uma imagem para a qual o ciclo de MSB estava sendo sinalizado, isto é, a imagem i. Apenas quando duas ou mais imagem de referência de longo prazo com os mesmos valores de LSB foram sinalizadas, o ciclo de MSB da primeira imagem de referência de longo prazo que tal seria sinalizado como tal e o ciclo de MSB para o resto das imagens de referência e os valores de ciclo de MSB para o resto das imagens de referência de longo prazo foram sinalizados como deslocamento relativos de um com relação ao outro. Entretanto, esta sinalização de imagens de referência de longo prazo, de acordo com o WD7, pode experimentar uma ou mais deficiências. Por exemplo, se houver duas imagens de referência de longo prazo com valores de LSB diferentes, mas ambos têm delta_poc_msb_cycle_lt[ i ] sinalizado, a sintaxe atual sinalizaria delta_poc_msb_cycle_lt[ i ] conforme discutido acima, isto é, como um deslocamento relativo ao valor de MSB básico. Entretanto, esta revelação reconhece que a sinalização da diferença entre valores de ciclo de MSB para as imagens pode ser mais eficaz.
[028] A sinalização de dados de identificação para imagens de referência de longo prazo no cabeçalho de fatia, de acordo com o WD7, pode experimentar uma ou mais deficiências. Por exemplo, se a imagem atual tiver um valor de POC igual a MaxPicOrderCntLsb * N - 1, e a imagem que tem um valor de POC igual a MaxPicOrderCntLsb * N é a primeira imagem de referência de longo prazo para a qual o delta_poc_msb_cycle_lt[ i ] é sinalizado, quando então o WD7 não apresenta técnicas para sinalizar delta_poc_msb_cycle_lt[ i ]. O valor de delta_poc_msb_cycle_lt[ i ], neste caso deve ser, mas não pode ser, -1 (um negativo).
[029] Como outro exemplo, se houver duas imagens de referência de longo prazo com valores de LSB diferentes, mas ambos tiverem del- ta_poc_msb_cycle_lt[ i ] sinalizado, a sintaxe atual sinalizaria o del- ta_poc_msb_cycle_lt[ i ] como tal. Entretanto, esta revelação reconhece que a sinalização da diferença para uma das imagens seria mais eficaz.
[030] Como outro exemplo, quando houver mais de uma imagem de referência no DPB que tenha o mesmo LSB da imagem de referência de longo prazo sinalizada, o WD7 obriga que o ciclo de MSB da LTRP seja também sinalizado utilizando-se o elemento de sintaxe delta_poc_msb_cycle_lt[ i ]. Entretanto, esta revelação reconhece que, se houver uma imagem no DPB que será marcada como uma imagem de referência de curto prazo pela imagem atual, então a inclusão da imagem de referência de curto prazo no conjunto de candidatos de imagens de referência de longo prazo pode terminar sinalizando mais bits de MSB que o necessário.
[031] Como outro exemplo, quando houver n no DPB que tenham LSB POC igual a poc_lsb_lt[ i ] e onde k imagens de referência de longo prazo, onde k é menor ou igual a n são sinalizadas na imagem atual que têm LSBs iguais a poc_lsb_lt[ i ], a sintaxe definida no WD7 determina que todas as k imagens terão delta_poc_msb_present_flag[ 1 ] fixado em 1. Entretanto, se k = n, esta revelação reconhece que um codificador de vídeo não precisa fixar del- ta_poc_msb_present_flag[ 1 ] como 1 para todas as k das imagens de referência de longo prazo, mais seria suficiente fixar delta_poc_msb_present_flag[ 1 ] como 1 para n - 1 imagens. As técnicas desta revelação, conforme descrito mais detalhadamente com relação as figuras abaixo, pode superar qualquer uma ou todas estas deficiências. Em geral, esta revelação descreve diversas técnicas que podem aperfeiçoar a sinalização para imagem de referência de longo prazo em um cabeçalho de fatia.
[032] A Figura 1 é um diagrama de blocos que mostra um sistema de codificação e decodificação de vídeo 10 exemplar que pode utilizar técnicas para a sinalização aperfeiçoada de imagens de referência de longo prazo em cabeçalhos de fatia. Conforme mostrado na Figura 1, o sistema 10 inclui um aparelho de origem 12 que provê dados de vídeo codificados a serem decodificados posteriormente por um aparelho de destino 14. Em particular o aparelho de origem 12 fornece os dados de vídeo ao aparelho de destino 14 por meio de um meio legível por computador 16. O aparelho de origem 12 e o aparelho de destino 14 podem compreender qualquer um de uma ampla faixa de aparelhos, inclusive computadores de mesa, computadores notebook (isto é, laptop), computadores tablet, conversores set-top-box, aparelhos telefônicos tais como os chamados “aparelhos inteligentes”, os chamados dispositivos inteligentes, televisões, câmeras, aparelhos de exibição, tocadores de meios digitais, consoles para jogos de vídeo, aparelhos de fluxo contínuo de vídeo, em alguns casos o aparelho de origem 12 e o aparelho de destino 14 podem ser equipados para comunicação sem fio.
[033] O aparelho de destino 14 pode receber os dados de vídeo codificados a serem decodificados por um meio legível por computador 16. O meio legível por computador 16pode compreender qualquer tipo de meio ou aparelho capaz de mover os dados de vídeo codificados do aparelho de origem 12 para o aparelho de destino 14. Em um exemplo, o meio legível por computador 16 pode compreender um meio de comunicação para permitir que o aparelho de origem 12 transmita dados de vídeo codificados diretamente para o aparelho de destino 14 em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação sem fio, tal como um protocolo de comunicação sem fio, e transmitidos para o aparelho de destino 14. O meio de comunicação pode compreender qualquer meio de comunicação sem fio ou cabeado, tal como um espectro de radiofrequência (RF), ou uma ou mais linhas de transmissão físicas. O meio de comunicação pode fazer parte de uma rede baseada em pacotes, tal como uma rede de área local, uma rede de área estendida ou uma rede global como a Internet. O meio de comunicação pode incluir roteadores, comutadores, estações base ou qualquer outro equipamento que possa ser útil para facilitar a comunicação do aparelho de origem 12 com o aparelho de destino 14.
[034] Em alguns exemplos, os dados codificados podem ser transmitidos de uma interface de saída 22 para um aparelho de armazenamento. Da mesma maneira, os dados codificados podem ser acessados do aparelho de armazenamento por uma interface de entrada. O aparelho de armazenamento pode incluir qualquer uma de diversas mídias de armazenamento de dados distribuídos ou localmente acessados tais como uma unidade rígida, discos Blu-ray, DVDs, CD-ROM, memória flash, memória volátil ou não volátil ou quaisquer outras mídias de armazenamento digitais para armazenar dados de vídeo codificados. Em outro exemplo, o aparelho de armazenamento pode corresponder a um servidor de arquivos ou outro aparelho de armazenamento intermediário que possa armazenar o vídeo codificado gerado pelo aparelho de origem 12.
[035] O aparelho de destino 14 pode acessar dados de vídeo armazenados do aparelho de armazenamento por meio de fluxo contínuo ou download. O servidor de arquivos pode ser qualquer tipo de servidor capaz de armazenar dados de vídeo codificados e transmitir esses dados de vídeo codificados para o aparelho de destino 14. Servidores de arquivos exemplares incluem um servidor da Web (para um site da Web, por exemplo), um servidor FTP, aparelhos de armazenamento anexados à rede (NAS) ou uma unidade de disco local. O aparelho de destino 14 pode acessar os dados de vídeo codificados através de qualquer conexão de dados padrão, inclusive uma conexão com a Internet. Isto pode incluir um canal sem fio (uma conexão Wi-Fi, por exemplo), uma conexão cabeada (como, por exemplo, DSL, modem a cabo, etc.) ou uma combinação de ambos que seja adequada para acessar dados de vídeo codificados armazenados em um servidor de arquivos. A transmissão de dados de vídeo codificados do aparelho de armazenamento pode ser uma transmissão de fluxo contínuo, uma transmissão de download ou uma combinação delas.
[036] As técnicas desta revelação não estão limitadas a aplicativos ou parâmetros sem fio. As técnicas podem ser aplicadas à codificação de vídeo em suporte a qualquer um de diversos aplicativos multimídia, tais como broadcast de televisão através do ar, transmissões de televisão a cabo, transmissões de televisão por soldagem por satélite, transmissões de vídeo de fluxo contínuo de Internet, tais como fluxo contínuo adaptativo dinâmico através do http (DASH), vídeo digital que é codificado em uma mídia de armazenamento de dados, decodificação de vídeo digital armazenado em uma mídia de armazenamento de dados ou outros aplicativos. Em alguns exemplos, o sistema 10 pode ser configurado para suportar transmissão de vídeo unidirecional ou bidirecional de modo a suportar aplicativos tais como fluxo contínuo de vídeo, repetição de vídeo, execução de broadcasts de vídeo e/ou telefonia com vídeo.
[037] No exemplo da Figura 1, o aparelho de origem 12 inclui uma fonte de vídeo 18, um codificador de vídeo 20 e uma interface de saída 22. O aparelho de destino 14 inclui uma interface de entrada 28, um decodificador de vídeo 30 e um aparelho de exibição 32. De acordo com esta revelação, o de- codificador de vídeo 20 do aparelho de origem 12 pode ser configurado para aplicar as técnicas para a sinalização aperfeiçoada de imagem de referência de longo prazo em cabeçalhos de fatia. Em outros exemplos, um aparelho de origem e um aparelho de destino podem incluir outros componentes ou disposi- ções. Por exemplo, o aparelho de origem 12 pode receber dados de vídeo de uma fonte de vídeo externa 18, tal como uma câmera externa. Da mesma maneira, o aparelho de destino 14 pode formar interface com um aparelho de exibição externo, em vez de incluir um aparelho de exibição integrado.
[038] O sistema 10 mostrado da Figura 1 é meramente um exemplo. Técnicas para sinalização aperfeiçoada de imagem de referência de longo prazo em cabeçalhos de fatia podem ser executadas por qualquer aparelho de codificação e/ou decodificação de vídeo digital. Embora geralmente as técnicas desta revelação sejam executadas por um aparelho de codificação de vídeo, as técnicas podem ser também executadas por um codificador/decodificador de vídeo, tipicamente referido como “CODEC”. Além do mais, as técnicas desta revelação podes ser também por um pré-processador de vídeo. O aparelho de origem 12 e o aparelho de destino 14 são meramente exemplos de tais apare-lhos de codificação nos quais o aparelho de origem 12 gera dados de vídeo codificados para transmissão para o aparelho de destino 14. Em alguns exemplos, os aparelhos 12, 14 podem funcionar de uma maneira substancialmente simétrica, de modo que cada um dos aparelhos 12, 14 inclua componentes de codificação e decodificação de vídeo. Consequentemente, o sistema 10 pode suportar transmissão de vídeo unidirecional ou bidirecional entre os aparelhos de vídeo 12, 14, como, por exemplo, para fluxo contínuo de vídeo, repetição de vídeo, execução de broadcasts de vídeo ou telefonia com vídeo.
[039] A fonte de vídeo 18 do aparelho de origem 12 pode incluir um aparelho de captação de vídeo, tal como uma câmera de vídeo, um arquivo de vídeo que contém vídeo previamente captado e/ou uma interface de alimentação de vídeo para receber vídeo de um provedor de conteúdo de vídeo. Como outra alternativa, a fonte de vídeo 18 pode gerar dados baseados em gráficos de computador como o vídeo de origem, ou uma combinação de vídeo ao vivo, vídeo arquivado e vídeo gerado por computador. Em alguns casos se a fonte de vídeo 18 for uma câmera de vídeo o aparelho de origem 12 e o aparelho de destino 14 podem formar os chamados telefones com câmera ou telefones com vídeo. Conforme mencionado acima, contudo, as técnicas descritas nesta revelação podem ser aplicadas à codificação de vídeo em geral, e podem ser aplicadas a aplicativos sem fio e/ou cabeados. Em tal caso, o vídeo captado, pré- captado ou gerado por computador pode ser codificado codificador de vídeo 20. As informações de vídeo codificadas podem ser então transmitidas pela interface de saída 22 em um meio legível por computador 16.
[040] O meio legível por computador 16 pode incluir mídias transitórias, tais como uma transmissão sem fio ou transmissão em rede cabeada ou mídias de armazenamento (isto é, mídias de armazenamento não transitórias), tais como um disco rígido, uma unidade flash, um disco compacto, um disco de vídeo digital, um disco Blu-ray ou outras mídias legíveis por computador. Em alguns exemplos, um servidor de rede (não mostrado) pode receber dados de vídeo codificados do aparelho 12 e enviar os dados de vídeo codificados ao aparelho de destino, como, por exemplo, por meio de transmissão em rede. Da mesma maneira, o aparelho de computação de uma instalação de produção de meio, tal como uma instalação de estampagem de disco, pode receber dados de vídeo codificados do aparelho de origem 12 e produzir um disco que contém os dados de vídeo codificados. Portanto, pode-se entender que o meio legível por computador 16 inclui uma ou mais mídias legíveis por computador de diversas formas, em diversos exemplos.
[041] A interface de entrada 28 do aparelho de destino 14 recebe informações do meio legível por computador 16. As informações de meio legível por computador 16 pode incluir informações de sintaxe definidas pelo codificador de vídeo 20, que são também utilizadas pelo decodificador de vídeo 30, que incluem elementos de sintaxe que descrevem características e/ou processamento de blocos e outras unidades codificadas, como, por exemplo, GOPs. O aparelho de exibição 32 exibe os dados de vídeo decodificados para o usuário e pode compreender qualquer um de diversos aparelhos de exibição, tais como um tubo de raios catódicos (CRT), uma tela de cristal líquido (LCD), um monitor de plasma, um monitor de diodo emissor de luz orgânico (OLED) ou outro tipo de aparelho de exibição.
[042] O codificador de vídeo 20 e o decodificador de vídeo 30 podem funcionar de acordo com um padrão de codificação de vídeo tal como o padrão Codificação de Vídeo de Alta Eficácia (HEVC) atualmente em desenvolvimento, e podem conformar-se ao Modelo de Teste HEVC (HM). Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 40 podem funcionar de acordo com outros padrões patenteados ou industriais, tais como o padrão ITU- T H.264, alternativamente referido como MPEG-4 Parte 10, Codificação Avançada de Vídeo ou extensões de tais padrões. As técnicas desta revelação, contudo, não estão limitadas a qualquer padrão de codificação específico. Outros exemplos de codificação de vídeo incluem o MPEG-2 e o ITU-T H.263. Embora não mostrado na Figura 1, sob alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30, podem ser, cada um, integrados com um codificador e decodificador de áudio, e podem incluir unidades MUX-DEMUX ou outro hardware e software, para processar a codificação tanto de áudio quanto de vídeo em um fluxo de dados comum ou em um fluxo de dados separado. Se aplicável, as unidades MUX-DEMUX podem conformar-se ao protocolo de mul- tiplexador ITU H.223 ou a outros protocolos, tais como o protocolo de datagra- ma de usuário (UDP).
[043] O padrão ITU-T H.264/MPEG-4 (AVC) foi formulado pelo Grupo de Especialistas em Codificação de Vídeo ITU-T (VCEG) juntamente com Gru- po de Especialistas em Imagens em Movimento ISO/TEC (MPEG) como o produto de uma parceria coletiva conhecida como Equipe de Vídeo Conjunta (JVT). Sob alguns aspectos, as técnicas descritas nesta revelação podem ser aplicadas a aparelhos que se conformam geralmente ao padrão H.264. O padrão H.264 é descrito na Recomendação ITU-T H.264, Codificação Avançada de Vídeo para serviços audiovisuais genéricos pelo Grupo de Estudos ITU e datada de março de 2005, e pode ser aqui referida como padrão H.264 ou especificação H.264, ou o padrão ou especificação H.264/AVC. A Equipe de Vídeo Conjunta (JVT) continua a trabalhar em extensões do H.264/MPG-4 AVC.
[044] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser, cada um, implementados como qualquer um de diversos circuitos de codificador adequados, tais como um ou mais microprocessadores, processadores de sinais digitais (DSPs), circuitos integrados específicos de aplicativo (ASICs), arranjos de portas programáveis no campo (FPGAs), lógica discreta, software, hardware, firmware ou qualquer combinação deles. Quando as técnicas são implementadas parcialmente em software, um aparelho pode armazenar instruções para o software em um meio legível por computador não transitório adequado e exemplar as instruções em hardware utilizando um ou mais processadores para exemplar as técnicas desta revelação. Cada um do codificador de vídeo 20 e do decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, um ou outro dos quais pode ser integrado como parte de um codificador/decodificador (CODEC) combinado em um respectivo aparelho.
[045] A JCT-VC está trabalhando no desenvolvimento do padrão HEVC. Os esforços de padronização HEVC são baseados em um modelo de evolução de um aparelho de codificação de vídeo referido como Modelo de Teste HEVC (HM). O HM presume várias capacidades adicionais de aparelhos de codificação de vídeo com relação a aparelhos existentes de acordo com o ITU-T H.264/AVC, por exemplo. Por exemplo, ao passo que o H.264 provê nove modos de codificação intrapreditiva, o HM para prover um máximo de trinta e três modos de codificação intrapreditiva.
[046] Em geral, o modelo operacional do HM descreve que um quadro ou imagem de vídeo pode ser dividida em uma sequência de blocos de árvore ou maiores unidades de codificação (LCUs) que inclui amostras tanto luma quanto croma. Os dados de sintaxe dentro de um fluxo de bits podem definir um tamanho para as LCUs, que são as maiores unidades de codificação em termos do número de pixels. Uma fatia inclui vários blocos de árvore consecutivos na ordem de codificação. Um quadro ou imagem de vídeo pode ser particionada em uma ou mais fatias. Cada bloco de árvore pode ser dividido em unidades de codificação (CUs) de acordo com uma transformada quad-tree. Em geral, uma estrutura de dados de transformada quad-tree inclui um nó por CU, com um nó-raíz correspondendo ao bloco de árvore. Se uma CU for dividida em quatro sub-CUs, o nó que corresponde à CU inclui quatro nós-folha, cada um dos quais corresponde a uma das sub-CUs.
[047] Cada nó da estrutura da dados de transformada quad-tree pode prover dados de sintaxe para a CU correspondente. Por exemplo, um nó na transformada quad-tree pode incluir um indicador de divisão, que indica se a CU que corresponde ao nó é dividida em sub-CUs. Os elementos de sintaxe para uma CU podem ser definidos recursivamente e podem depender se a CU ser ou não dividida em sub-CUs. Se uma CU não for dividida adicionalmente, ela é referida como CU-folha. Nesta revelação quatro sub-CUs de uma CU- folha serão também referidas como CUs-folha mesmo se não houver divisão explícita da CU-folha original. Por exemplo, se uma CU no tamanho 16x16 não for dividida ainda mais, as quatro 8x8 sub-CUs serão também referidas como CUs-folha, embora a CU de 16x16 jamais tenha sido dividida.
[048] Uma CU tem uma finalidade semelhante à de um macrobloco do padrão H.264, exceto pelo fato de que uma CU não tem uma distinção de tamanho. Por exemplo, um bloco de árvore pode ser dividido em quatro nós-filho (também referidos como sub-CUs), e cada nó-filho pode ser por ser vez um nó- pai e ser dividido em outros 4 nós-filho. Um nó-filho não dividido final, referido como nó-folha da transformada quad-tree, compreende um nó de codificação, também referido como CU-folha. Dados de sintaxe associados a um fluxo de bits codificado podem definir um número máximo de vezes em que um bloco de árvore pode ser dividido, referido como profundidade de CU máxima, e podem definir também o tamanho máximo dos nós de codificação. Por conseguinte, um fluxo de bits pode definir também a menor unidade de codificação (SCU). Esta revelação utiliza o termo “b” para refere-se a qualquer uma de uma CU, PU ou TU no contexto da HEVC, ou estruturas de dados semelhantes no contexto de outros padrões (macroblocos e sub-blocos no H.264/AVC, por exemplo).
[049] Uma CU inclui um nó de codificação e unidades de predição (PUs) e unidades de transformada (Tus) associadas ao nó de codificação. O tamanho da CU corresponde ao tamanho do nó de codificação e deve ser de conformação quadrada. O tamanho da CU pode variar de 8x8 pixels até o tamanho do bloco de árvore com o máximo de 64x64 pixels ou mais. Cada CU pode conter uma ou mais PUs ou uma ou mais Tus. Os dados de sintaxe associados a um CU podem descrever, por exemplo, o particionamento da CU em uma ou mais PUs. Os modos de particionamento pode diferir entre se a CU é saltada ou codificada no modo direto, codificada no modo de intrapredição ou codificada no modo de interpredição. As PUs podem ser particionadas de modo a serem de conformação não quadrada. Os dados de sintaxe associados a uma CU podem descrever também, por exemplo, o particionamento da CU em uma ou mais Tus de acordo com uma transformada quad-tree. Uma TU pode ser de conformação quadrada ou não quadrada (retangular, por exemplo).
[050] O padrão HEVC proporciona transformações de acordo com Tus, que podem ser diferentes para CUs diferentes. As CUs são tipicamente dimensionadas com base no tamanho das PUs dentro de uma dada CU definida para uma LCU particionada, embora este possa não ser sempre o caso. As TUs são tipicamente do mesmo tamanho ou menores que as PUs. Em alguns exemplos, amostras residuais que correspondem a uma CU podem ser subdivididas em unidades menores utilizando-se uma estrutura de transformada quad-tree conhecida como “transformada quad-tree residual” (RQT). Os nós- folha da RQT podem ser referidos como unidades de transformada (TUs). Os valores de diferença de pixel associados às TUs podem ser transformados de modo a se produzirem coeficientes de transformada que podem ser quantiza- dos.
[051] Uma CU-folha pode incluir uma ou mais unidades de predição (PUs). Em geral, uma PU representa uma área espacial que corresponde a toda ou uma parte da CU correspondente e pode incluir dados para recuperar uma amostra de referência para a PU. Além do mais, uma PU inclui dados relacionados com predição. Quando a PU é codificada de modo a intramodal, dados para a PU podem ser incluídos em uma transformada quad-tree residual (RQT) que pode incluir dados que descrevem um modo de intrapredição para uma TU que corresponde à PU. Como outro exemplo, quando a PU é codificada de maneira intermodal, a PU pode incluir dados que definem um ou mais vetores de movimento para a PU. Os dados que definem o vetor de movimento para uma PU podem descrever, por exemplo, um componente horizontal do vetor de movimento, um componente vertical do vetor de movimento, uma resolução para o vetor de movimento (precisão de um quarto de pixel ou precisão de um oitavo de pixel, por exemplo), uma imagem de referência indicada pelo vetor de movimento e/ou uma lista de imagens de referência (Lista 0, Lista 1 ou Lista C, por exemplo) para o vetor de movimento.
[052] Uma CU-folha que tem uma ou mais PUs pode incluir também uma ou mais unidades de transformada (TUs). As unidades de transformada podem ser especificadas utilizando-se uma RQT (também referida como estrutura de transformada quad-tree de TU) conforme discutido acima. Por exemplo, um indicador de divisão pode indicar se uma CU-folha é dividida em quatro unidades de transformada. Em seguida, cada unidade de transformada pode ser dividida adicionalmente em outras sub-TUs. Quando uma TU não é dividida ainda mais, ela pode ser referida como TU-folha. Geralmente, para intracodifi- cação, todas as TUs-folha pertencentes a uma CU-folha compartilham o mesmo modo de intrapredição. Ou seja, o mesmo modo de intrapredição é geralmente aplicado para calcular valores preditos para todas as TUs de uma CU- folha. Para intracodificação um codificador de vídeo pode calcular um valor residual para cada TU-folha utilizando o modo de intrapredição, como a diferença entre a parte da CU que corresponde à TU e o bloco original. Uma TU não está necessariamente limitada ao tamanho de uma PU, assim, as TUs podem ser maiores ou menores que uma PU. Para intracodificação, uma PU pode ser co- localizada com uma TU-folha correspondente para a mesma CU. Em alguns exemplos, o tamanho máximo de uma TU-folha ao tamanho da CU-folha correspondente.
[053] Além do mais, as TUs das CUs-folha podem ser também associadas às respectivas estrutura de dados de transformada quad-tree referidas como transformada quadtree residual (RQTs). Ou seja, uma CU-folha pode incluir uma transformada quad-tree que indica como a CU-folha é particionada em TUs. O nó-raiz de uma transformada quad-tree de TU corresponde geralmente a uma CU-folha, enquanto o nó-raiz de uma transformada quad-tree de CU corresponde geralmente a um bloco de árvore (ou LCU). As TUs da RQT que não são divididas são referidas como TU-folha. Em geral, esta revelação utiliza os termos CU e TU para referir-se a uma CU-folha e uma TU-folha, respectivamente a menos que observado de outro modo.
[054] Uma sequência de vídeo inclui tipicamente uma série de quadros ou imagens de vídeo. Um grupo de imagens (GOP) compreende geralmente uma ou mais das imagens de vídeo. Um GOP pode incluir dados de sintaxe no cabeçalho do GOP no cabeçalho de uma ou mais das imagens ou em qualquer outro lugar, que descrevem o número de imagens incluídas no GOP. Cada fatia de uma imagem pode incluir dados de sintaxe de fatia que descrevem o modo de codificação para a respectiva fatia. O codificador de vídeo 20 funciona tipicamente em blocos de vídeo dentro de fatias de vídeo individuais de modo a codificar os dados de vídeo. Um bloco de vídeo pode corresponder a um nó de codificação dentro de uma CU. Os blocos de vídeo podem ter tamanhos fixos ou variáveis, e podem diferir em tamanho de acordo com o padrão de codificação especificado.
[055] Como exemplo, o HM suporta predição em diversos tamanhos de PU. Supondo que o tamanho de uma CU específica seja 2Nx2N, o HM suporta intrapredição em tamanhos de PU de 2Nx2N ou NxN e interpredição em tamanhos de PU simétricos de 2Nx2N, 2NxN, Nx2N ou NxN. O HM suporta também particionamento assimétrico para interpredição em tamanhos de PU de 2NxnU, 2NxnD, nLx2N e nRx2N. No particionamento assimétrico, uma direção de uma CU não é particionada, enquanto a outra direção é particionada em 25% e 75%. A parte da CU que corresponde à partição de 25% é indicada por um “N” seguido de uma indicação de “Para Cima”, “Para Baixo”, “Esquerdo” ou “Direito”. Assim, por exemplo, “2NxnU” refere-se a uma CU de 2Nx2N que é particionada em sentido horizontal com uma PU de 2Nx0,5N no topo e uma PU de 2Nx1,N na base.
[056] Nesta revelação, “NxN” e “N por N” podem ser utilizados de maneira intercambiável para refere-se às dimensões de pixel de um bloco de vídeo em termos de dimensão vertical e dimensão horizontal, como, por exemplo, 16x16 pixels ou 16 por 16 pixels. Em geral, um bloco de 16x16 terá 16 pixels na direção vertical (y = 16) e 16 pixels na direção horizontal (x = 16). Da mesma maneira, um NxN bloco tem geralmente N pixels na direção vertical e N pixels na direção horizontal, onde N representa um valor de número inteiro não negativo. Os pixels em um bloco podem ser dispostos em fileiras e colunas. Além do mais, não é necessário que os blocos tenham os mesmos números de pixels na direção horizontal do que como na direção vertical. Por exemplo, os blocos podem compreender NxM pixels onde M não é necessariamente igual a N.
[057] Após a codificação intrapreditiva ou interpreditiva que utiliza as PUs de uma CU, o codificador de vídeo 20 pode calcular dados residuais para as TUs da CU. As PUs, podem compreender dados de sintaxe que descrevem um método ou modo para gerar dados de pixel preditivos no domínio espacial (também referido como domínio de pixel) e as TUs podem compreender coeficientes no domínio de transformada em seguida à aplicação de uma transformada, como, por exemplo, uma transformada de co-seno discreta (DCT), uma transformada de número inteiro, uma transformada de wavelet ou uma transformada conceptualmente semelhante a dados de vídeo residuais. Os dados residuais podem corresponder a diferenças de pixel entre pixels da imagem não codificada e valores de predição que correspondem às PUs. O codificador de vídeo 20 pode formar as TUs incluindo os dados residuais para a CU e em seguida transformar as TUs de modo a produzir coeficientes de transformada para a CU.
[058] Em seguida a quaisquer transformadas para produzir coeficientes de transformada, o codificador de vídeo 20 pode efetuar a quantização dos coeficientes de transformada. A quantização refere-se geralmente a um processo no qual coeficientes de transformada são quantizados de modo a se reduzir possivelmente a quantidade de dados utilizados para representar os coeficientes, obtendo-se compactação adicional. O processo de quantização pode reduzir a profundidade de bits associada a alguns ou todos os coeficientes. Por exemplo, um valor de n bits pode ser arredondado para um valor m bits durante a quantização, onde n é maior que m.
[059] Após a quantização, o codificador de vídeo pode varrer os coeficientes de transformada, produzindo um vetor unidimensional a partir da matriz bidimensional que inclui os coeficientes de transformada quantizados. A varredura pode ser projetada para colocar coeficientes de energia mais elevada (e, portanto, de frequência mais baixa) na frente do arranjo, e para colocar coeficientes de energia mais baixa (e portanto, de energia mais elevada, na parte de trás do arranjo). Em alguns exemplos, o codificador de vídeo 20 pode utilizar uma ordem de varredura pré-definida para varrer os coeficientes de transformada quantizados de modo a se produzir um vetor serializado que possa ser codificado por entropia. Em outro exemplo, o codificador de vídeo 20 pode efetuar uma varredura adaptativa. Depois de varrer os coeficientes de transformada quantizados de modo a formar um vetor unidimensional, o codificador de vídeo 20 pode codificar por entropia o vetor unidimensional, como, por exemplo, de acordo com a codificação de comprimento variável adaptativa ao contexto (CAVLC), a codificação aritmética binária adaptativa ao contexto (CA- BAC), a codificação aritmética binária adaptativa ao contexto baseada em sintaxe (SEBAC), a codificação por Entropia com Particionamento de Intervalos de Probabilidade (PIPE) ou outra metodologia de codificação por entropia. O codificador de vídeo 20 pode codificar por entropia também os elementos de sintaxe associados aos dados de vídeo codificados para utilização pelo decodifica- dor de vídeo 30 na decodificação dos dados de vídeo.
[060] Para efetuar CABAC, o codificador de vídeo 20 pode atribuir um contexto dentro de um modelo de contexto a um símbolo a ser transmitido. O contexto pode referir-se, por exemplo, a se os valores vizinhos do símbolo são não zero ou não. Para efetuar CAVLC, o codificador de vídeo 20 pode selecionar um código de comprimento variável para um símbolo a ser transmitido. Palavras de código na VLC podem ser construídas de modo que códigos relativamente mais curtos correspondas a símbolos mais prováveis, enquanto códigos mais compridos correspondem a símbolos menos prováveis. Desta maneira, a utilização da VLC pode levar a uma economia de bits em comparação, por exemplo, com a utilização de palavras de código de igual comprimento para cada símbolo a ser transmitido. A determinação de probabilidade pode ser baseada no contexto atribuído ao símbolo.
[061] De acordo com as técnicas desta revelação, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para utilizar técnicas aperfeiçoadas para sinalizar dados para identificar imagem de referência de longo prazo, como, por exemplo, em cabeçalhos de fatia, conjuntos de parâmetros (que incluem conjuntos de parâmetros de imagem (PPs) e conjunto de parâmetros de sequência (SPs)) ou semelhantes. Em geral, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para executar qualquer uma ou todas as técnicas desta revelação, sozinha ou em qualquer combinação. Em alguns exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para executar métodos para sinalizar valores negativos de delta ciclo POC MSB para imagem de referência de longo prazo. Em alguns exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para executar métodos para sinalização mais eficaz de valores de delta ciclo POC MSB para imagens de referência de longo prazo com valores de LSB diferentes utilizando-se codificação diferencial.
[062] Em alguns exemplos, as imagens de referência que são sinalizadas como imagens de referência de curo prazo para a imagem atual (ou que são incluídas no conjunto de imagens de referência de curto prazo da imagem atual) podem ser excluídas das imagens de referência utilizadas na decisão de se enviar valores delta ciclo POC MSB para imagens de referência de longo prazo, de modo a se evitar o envio de valores delta ciclo POC MSB desnecessários. Em alguns exemplos, quando há n imagens de referência (que incluem ou excluem imagens de referência de curto prazo) no DPB que têm LSB POC iguala poc_lsb_lt[ i ], e quando n imagens de referência de longo prazo são si-nalizadas na imagem atual que têm valores de LSB iguais a poc_lsb_lt[ i ], o codificador de vídeo 20 só pode enviar, e o decodificador de vídeo 30 só pode receber os valores de ciclo delta POC MSB para m - 1 imagens de referência de longo prazo, embora seja possível que estes dados sejam enviados para todas as n das imagens de referência de longo prazo.
[063] Qualquer uma ou todas as diversas técnicas acima podem ser implementadas de acordo com a implementação exemplar seguinte. Um elemento de sintaxe do WD7 que descreve o ciclo de MSB de uma imagem de referência de longo prazo pode ser modificado conforme mostrado em seguida. Esta revelação descreve também um método exemplar para derivar o arranjo DeltaPocMSBCycleLt[ ]. Esta revelação descreve também um processo de de- codificação exemplar para um conjunto de imagens de referência. Além do mais, esta revelação descreve a semântica para os elementos de sintaxe del- ta_poc_msb_present_flag[ i ] e poc_lsb_lt[ i ]. A sintaxe e a semântica de outros elementos de sintaxe do WD7 pode permanecer inalteradas.
[064] A Tabela 1 representa um conjunto exemplar de sintaxe para um cabeçalho de fatia. O texto sublinhado representa alterações na sintaxe do cabeçalho de fatia relativas ao WD7. A semântica para elementos de sintaxe alterados, assim como a semântica alterada para outros elementos de sintaxe são discutidas em seguida.
Figure img0001
[065] No exemplo da Tabela 1, a sintaxe do cabeçalho de fatia inclui o elemento adicional delta_poc_msb_cycle_lt_plus1[ i ]. Os elementos semânticos para este elemento de sintaxe são descritos em seguida. Em alguns exemplos, poc_lsb_lt[ i ] pode especificar o valor dos bits menos significativos do valor de contagem de ordem de imagem da iésima imagem de referência de longo prazo que é incluída no conjunto de imagem de referência de longo prazo da imagem atual. O comprimento de elemento de sintaxe poc_lsb_lt[ i ] pode ser log2_max_pic_order_cnt_lsb_minus4 + 4 bits.
[066] Em alguns exemplos, delta_poc_msb_present_flag[ i ] = 1 pode especificar que delta_poc_msb_cycle_lt_plus1[ i ] está presente. del- ta_poc_msb_present_flag[ i ] = 0 pode especificar que del- ta_poc_msb_cycle_lt_plus1[ i ] não está presente. del- ta_poc_msb_present_flag[ i ] pode ser fixado como igual a 1 quando há j imagens de referência, onde j é um valor de número inteiro maior que 1, no arma- zenador de imagens decodificadas, excluindo-se as imagens que são marcadas como “utilizadas para referência de curto prazo” pela imagem atual, com os bits menos significativos do valor de contagem de ordem de imagem iguais a poc_lsb_lt[ i ], e quando a iésima imagem de referência de longo prazo não é a jésima de imagens de referência de longo prazo com os bits menos significativos do valor de contagem de ordem de imagem iguais a poc_lsb_lt[ i ] que é sinalizado pela imagem atual.
[067] Em alguns exemplos, delta_poc_msb_cycle_lt_plus1[ i ] pode ser utilizado para determinar o valor dos bits mais significativos do valor de contagem de ordem de imagem da iésima imagem de referência de longo prazo que é incluída no conjunto de imagens de referência de longo prazo da imagem atual. Quando não sinalizado, delta_poc_msb_cycle_lt_plus1[ i ] pode assumir o valor 1.
[068] A variável DeltaPocMSBCycleLt[ i ] pode ser derivada de acordo com o algoritmo seguinte, onde (7-37) refere-se a uma seção da HEVC, isto é, uma seção alterada relativa ao WD7. Note-se que a derivação exemplar abaixo implica que os ciclos de MSB são enviados na ordem crescente dos seus valores. DeltaPocMSBCycleLt[ i ] = delta_poc_msb_present_flag[ i ] * (DeltaPocMSBCycleLtPlus[ i ] - 1); se( i ! = 0 ) (7-37) DeltaPocMSBCycleLt[ i ] + = DeltaPocMSBCycleLt[ i - 1 ];
[069] O valor de DeltaPocMSBCycleLt[ i ] * MaxPicOrderCntLsb + pic_order_cnt_lsb - poc_lsb_lt[ i ] pode estar na faixa de 1 a 224 - 1 inclusive. Alternativamente, o ciclo de MSB pode ser enviado sinalizando-se DeltaPo- cMSBCycleLtPlusN[ i ] como ue(v) (isto é, como um elemento de sintaxe codificado por Golomb Exp. de número inteiro não sinalizado com o bit esquerdo primeiro), em vez de DeltaPocMSBCycleLtPlus1[ i ], onde N é um valor maior que 1. Alternativamente, o ciclo de MSB pode ser enviado sinalizando-se Del- taPocMSBCycleLt[ i ] como se(v) (isto é, como um elemento de sintaxe codificado por Golomb Exp. de número inteiro não sinalizado com o bit esquerdo primeiro) em vez de DeltaPocMSBCycleLtPlus1[ i ].
[070] Em outras palavras, de acordo com as técnicas desta revelação, um valor que representa o ciclo de MSB para a imagem i (DeltaPocMSBCycle- LtPlus1[ i ], que é realmente sinalizado no fluxo de bits, por exemplo), pode ser calculado com relação ao ciclo de MSB se uma imagem de referência de longo prazo codificada anteriormente, como, por exemplo, a imagem i - 1, e não com relação ao valor de MSB básico. Isto é matematicamente equivalente a calcular o valor que representa o ciclo de MSB para a imagem i como a diferença entre os MSBs do valor de POC para a imagem i e o MSBs do valor de POC para a i- 1 supondo-se que este valor seja finalmente adicionado ao valor de ciclo de MSB para a imagem i-1 de modo a representar o valor de ciclo de MSB verdadeiro para a imagem i (que é a diferença entre o MSB para a imagem i e o MSB básico). Isto pode levar a uma economia de bits em um fluxo de bits, uma vez que os valores que representam as diferenças entre valores de ciclo de MSB sequenciais podem ser menores que as diferenças entre os MSBs de imagens de referência de longo prazo e o MSB básico.
[071] Em alguns exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem executar um processo de derivação para o conjunto de imagens de referência e marcação de imagens de acordo com as etapas ordenadas seguintes, onde DPB refere-se ao armazenador de imagens decodificadas descrito no Anexo C do WD7. Note-se que as ordens de derivações de subconjuntos de imagens de referência de curto prazo e de referência de longo prazo no exemplo abaixo são trocadas uma com relação a outra no WD7. As referências entre parêntesis perto da margem direita pretendem referir-se a seções do WD7. Esta e ouras alterações relativas ao algoritmo do WD7 são notadas utilizando-se texto sublinhado no exemplo abaixo: 1. O seguinte se aplica: Para( i = 0; i < NumPocStCurrBefore; i ++ ) se(houver uma imagem de referência de curto prazo PicX no DPB com PicOrderCntVal = a PocStCurrBefore[ i ]) RefPicSetStCurrBefore[ i ] = PicX caso contrário RefPicSetStCurrBefore[ i ] = “nenhuma imagem de referência” se (houver uma imagem de referência de curto prazo picX no DPB com PicOrderCntVal = PocStCurrAfter[ i ] RefPicSetStCurrAfter[ 1 ] = PicX caso contrário RefPicSetStCurrAfter[ i ] = “nenhuma imagem de referência” (8 — 7) para ( i = 0 ; i < NumPocStFoll i ++ ) se (houver uma imagem de referência de curto prazo PicX no DPB com PicOrderCntVal = PocStFoll[ i ]) RefPicSetStFoll[ i ] = PicX caso contrário RefPicSetStFoll[ i ] = “nenhuma imagem de referência” 2. Todas as imagens de referência incluídas em Re- fPicSetStCurrBefore, RefPicSetStCurrAfter e RefPicSetStFoll são marcadas como “utilizadas para referência de curto prazo”. 3. O seguinte se aplica: Para (i = 0; i < NumPocLtCurr; i ++ ){ se (? delta_poc_msb_present_flag[ i ]){ se (houver uma imagem de referência de longo prazo PicX no DPB com pic_order_cnt_lsb igual a PocLtCurr[ i ] e não é incluída em qualquer um de RefPicSetStCurrBefore, Re- fPicSetStCurrAfter, e RefPicSetStFoll ) RefPicSetLtCurr[ i ] = PicX caso contrário se (se houver uma imagem de referência de curto prazo PicY no DPB com pic_order_cnt_lsb igual a PocLtCurr[ i ] e não é incluída em qualquer um de RefPicSetStCurrBefore, Re- fPicSetStCurrAfter, RefPicSetStFoll ) RefPicSetLtCurr[ i ] = PicY caso contrário RefPicSetLtCurr[ i ] = “nenhuma imagem de referência” } caso contrário { se (houver uma imagem de referência de longo prazo PicX no DPB com PicOrderCntVal igual a PocLtCur[ i ] e não é incluída em qualquer um de RefPicSetStCurrBefore, Re- fPicSetStCurrAfter, e RefPicSetStFoll ) RefPicSetLtCurr[ i ] = PicX caso contrário, se (houver uma imagem de referência de curto prazo PicY no DPB com PicOrderCntVal igual a PocLtCurr[ i ] e não é incluída em qualquer um de RefPicSetStCurrBefore, Re- fPicSetStCurrAfter, RefPicSetStFoll ) RefPicSetLtCurr[ i ] = PicY caso contrário RefPicSetLtCurr[ i ] = “nenhuma imagem de referência” } } (8-6) para i = 0; i < NumPocLtFoll: i ++ ){ se (! delta_poc_msb_present_flag[ i ]){ se (houver uma imagem de referência de longo prazo PicX no DPB com pic_order_cnt_lsb igual a PocLtFoll[ i ] e não é incluída em qualquer um de RefPicSetStCurrBefore, Re- fPicSetStCurrAfter, e RefPicSetStFoll ) RefPicSetStFoll[ i ] = PicX caso contrário se (houver uma imagem de referência de curto prazo PicY no DPB com com pic_order_cnt_lsb igual a PocLtFoll[ i ] e não é incluída em qualquer um de RefPicSetStCurrBefore, Re- fPicSetStCurrAfter, e RefPicSetStFoll ) RefPicSetStFoll[ i ] = PicY caso contrário RefPicSetStFoll[ i ] = “nenhuma imagem de referência” } caso contrário { se (houver uma imagem de referência de longo prazo PicX no DPB com PicOrderCntVal para PocLtFoll[ i ] e não é incluída em qualquer um de RefPicSetStCurrBefore, Re- fPicSetStCurrAfter, e RefPicSetStFoll ) RefPicSetStFoll[ i ] = PicX caso contrário se (houver uma imagem de referência de curto prazo PicY no DPB com PicOrdeeCurrCntVal igual a PocLtFoll[ i ] e não é incluída em qualquer um de RefPicSetStCurrBefore, Re- fPicSetStCurrAfter, e RefPicSetStFoll ) RefPicSetStFoll[ i ] = PicY caso contrário RefPicSetStFoll[ i ] = “nenhuma imagem de referência” } } 4. Todas as imagens de referência incluídas em RefPicSetLtCurr e RefPicSetLtFoll são marcadas como “utilizadas para referência de longo prazo”. 5. Todas as imagens de referência no armazenador de imagens decodificadas que não são incluídas em RefPicSetLtCurr, RefPicSetLtFoll, Re- fPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetStFoll são marcadas como “não utilizadas como referência”.
[072] Pode haver uma ou mais imagens de referência que são incluídas no conjunto de imagens de referência, mas não presentes no armazenador de imagens decodificadas. Entradas em RefPicSetStFoll ou RefPicSetLtFoll que são iguais a “nenhuma imagem de referência” devem ser ignoradas. A menos que uma ou outra das duas condições seguintes seja verdadeira, uma perda de imagem não intencional deve ser inferida para cada entrada em Re- fPicSetStCurrBefore, RefPicSetStCurrAfter e RefPicSetLtCurr que é igual a “nenhuma imagem de referência”: a) as primeira codificada no fluxo de bits é uma imagem CRA e a imagem codificada atual é uma imagem TFD associada à primeira imagem codificada no fluxo de bits; e b) a imagem RAP anterior que precede a imagem codificada atual na ordem de decodificação é uma imagem BLA e a imagem codificada atual é uma imagem TFD associada à imagem BLA.
[073] Assim, de acordo com as técnicas desta revelação, um codificador de vídeo (o codificador de vídeo 20 e/ou o decodificador de vídeo 30, por exemplo) pode calcular valores de ciclo de MSB para imagens que têm valores de LSB diferentes utilizando codificação diferencial. Além disto, o codificador de vídeo pode codificar a imagem atual com relação a uma das imagens de referência de longo prazo como, por exemplo, a imagem i-1, ou imagem i utilizando os valores que representam os ciclos de MSB. Por exemplo, o codificador de vídeo pode determinar os valores de POC para imagens de referência utilizando a fórmula descrita acima (fórmula 7-37) e/ou o algoritmo descrito acima.
[074] O codificador de vídeo 20 e o decodificador de vídeo 30, portanto, representam exemplos de um codificador de vídeo configurado para codificar um primeiro valor que representa a diferença entre o valor de bits mais sig- nificativos (MSBs) básico de um valor de contagem de ordem de imagem (POC) da imagem atual de dados de vídeo e um primeiro valor de MSBs de um primeiro valor de POC de uma primeira imagem de referência de longo prazo dos dados de vídeo, codificar o segundo valor que representa diferença entre um segundo valor de MSBs de um segundo valor de POC de uma segunda imagem de referência de longo prazo dos dados de vídeo e o primeiro valor de MSBs, em que o primeiro valor de POC e o segundo valor de POC têm valores de bits menos significativos (LSB) diferentes, e codificar pelo menos uma parte da imagem atual dos dados de vídeo com relação a pelo menos uma da primei-ra imagem de referência de longo prazo utilizando o primeiro valor e a segunda imagem de referência de longo prazo utilizando o primeiro valor e o segundo valor.
[075] O codificador de vídeo 20, por exemplo, pode determinar se há duas ou mais imagem de referência de longo prazo, para a imagem atual, para as quais os valores de ciclo MSB (também referidos como valores de MSBs) serão sinalizados, mesmo quando as imagens de referência de longo prazo têm valores de LSB diferentes. No caso de haver duas (ou mais) imagens de referência de longo prazo com valores de LSB diferentes, mais para as quais valores de ciclo de MSB serão sinalizados, o codificador de vídeo 20 pode codificar dados que representam o valor de ciclo de MSB para a segunda imagem de referência de longo prazo como a diferença (ou delta) com relação ao valor de ciclo de MSB para a primeira imagem de referência de longo prazo. Da mesma maneira, o codificador de vídeo 20 pode codificar dados que representam o valor de ciclo de MSB para a primeira imagem de referência de longo prazo como a diferença relativa ao valor de MSB básico de um valor de POC para a imagem atual. O codificador de vídeo 20 pode codificar também pelo menos uma parte da imagem atual (um ou mais blocos, por exemplo) com rela- ção a pelo menos uma da primeira imagem de referência de longo prazo e à segunda imagem de referência de longo prazo.
[076] Assim, quando o decodificador de vídeo 30 recebe dados que indicam valores de ciclo de MSB para imagens de referência de longo prazo, o decodificador de vídeo 30 pode decodificar um valor que representa a diferença entre os MSBs básicos de um valor de POC para a primeira imagem de referência de longo prazo e calcular os MSBs do valor de POC para a primeira imagem de referência de longo prazo adicionando o valor aos MSBs básicos. O decodificador de vídeo 30 pode decodificar também um valor que representa a diferença entre os MSBs de um valor de POC para a segunda imagem de referência de longo prazo e os MSBs do valor de POC para a primeira imagem de referência de longo prazo e calcular os MSBs do valor de POC para a segunda imagem de referência de longo prazo adicionando o valor aos MSBs do valor de POC para a primeira imagem de referência de longo prazo. Da mesma maneira, o decodificador de vídeo 30 pode decodificar pelo menos uma parte da imagem atual com relação a pelo menos uma da primeira imagem de referência de longo prazo e da segunda imagem de referência de longo prazo, utilizando os MSBs dos valores de POC para as imagens de referência de longo prazo.
[077] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser, cada um, implementados como qualquer um de diversos circuitos de codificador e decodificador adequados, conforme aplicável, tais como um ou mais microprocessadores, processadores de sinais digitais (DSPs), circuitos integrados específicos de aplicativo (ASICs), arranjos de portas programáveis no campo (FPGAs), circuitos lógicos discretos, software, hardware, firmware ou qualquer combinação deles. Cada um do codificador de vídeo 20 e do decodifi- cador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodifi- cadores, um ou outro dos quais pode ser integrado como parte de um codifica- dor/decodificador de vídeo (CODEC) combinado. Um aparelho que inclui o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode compreender um circuito integrado, um microprocessador e um aparelho de comunicação sem fio, tal como um telefone celular.
[078] A Figura 2 é um diagrama de blocos que mostra um exemplo de codificador de vídeo 20 que pode implementar técnicas para sinalização aperfeiçoada de imagens de referência de longo prazo em cabeçalhos de fatia. O codificador de vídeo 20 pode efetuar intra- e intercodificação de blocos de vídeo dentro de fatias de vídeo. A intracodificação recorre à predição espacial para reduzir ou remover a redundância espacial em vídeo dentro de um dado quadro ou imagem de vídeo. A intercodificação recorre à predição temporal para reduzir ou remover a redundância temporal em vídeo dentro de quadros ou imagens adjacentes de uma sequência de vídeo. O intramodo (modo I) pode referir-se a qualquer um de vários modos de codificação espacial. Intermodos, tais como a predição unidirecional (modo P) ou a bi-predição (modo B) podem referir-se a qualquer um de vários modos de codificação temporal.
[079] Conforme mostrado na Figura 2, o codificador de vídeo 20 recebe o bloco de vídeo atual dentro de um quadro de vídeo a ser codificado. No exemplo da Figura 2, o codificador de vídeo 20 inclui uma unidade de seleção de modo 40, uma memória de imagens de referência 64, um somador 50, uma unidade de processamento de transformadas 53, uma unidade de quantização 54 e uma unidade de codificação por entropia 56. A unidade de seleção de modo 40, por sua vez, inclui uma unidade de compensação de movimento 44, uma unidade de estimativa de movimento 42, uma unidade de intrapredição 46 e uma unidade de partição 48. Para reconstrução de blocos de vídeo, o codificador de vídeo 20 inclui também uma unidade de quantização inversa 58, uma unidade de transformada inversa 60 e um somador 62. Um filtro de desbloqueio (não mostrado na Figura 2) pode ser também incluído para filtrar fronteiras de modo a remover artefatos de blocagem de vídeo reconstruído. Se desejável, o filtro de desbloqueio filtraria tipicamente a saída do somador 62. Filtros adicionais (em malha ou pós-malhas) podem ser também utilizados além do filtro de desbloqueio. Tais filtros não são mostrados por razões de concisão, mas, se desejado, podem filtrar a saída do somador 50 (como um filtro em malha).
[080] Durante o processo de codificação, o codificador de vídeo 20 recebe um quadro ou fatia de vídeo a ser codificada. O quadro ou fatia pode ser dividida em vários blocos de vídeo. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 efetuam codificação interpreditiva do bloco de vídeo recebido com relação a um ou mais blocos em um ou mais quadros de referência, de modo a se obter predição temporal. A unidade de intrapredição 46 pode efetuar alternativamente codificação intrapreditiva do bloco de vídeo recebido com relação a um ou mais blocos vizinhos no mesmo bloco ou fatia no bloco a ser codificado, de modo a se obter predição espacial. O codificador de vídeo 20 pode executar várias passagens de codificação, co-mo, por exemplo, para selecionar um modo de codificação apropriado para cada bloco de dados de vídeo.
[081] Além do mais, a unidade de partição 48 pode particionar blocos de dados de vídeo em sub-blocos, com base na avaliação de esquema de par- ticionamento anteriores em passagens de codificação anteriores. Por exemplo, a unidade de partição 48 pode particionar inicialmente um quadro ou fatia em LCUs, e particionar cada uma das LCUs em sub-CUs com base na análise de distorção de taxa (otimização de distorção de taxa, por exemplo). A unidade de seleção de modo 40 pode produzir também uma estrutura de dados de transformada quad-tree de particionamento de uma LCU em sub-CUs. As CUs de nó-folha da transformada quad-tree podem incluir uma ou mais PUs e uma ou mais TUs.
[082] A unidade de seleção de modo 40 pode selecionar um dos modos de codificação, intra ou inter como, por exemplo, com base em resultados de erro e envia o bloco intra- ou intercodificado resultante ao somador 50 para gerar dados de bloco residuais e ao somador 62 para reconstruir o bloco codificado para utilização como um quadro de referência. A unidade de seleção de modo 40 também provê elementos de sintaxe, tais como vetores de movimento, indicadores de intramodo, informações de partição e outras informações de sintaxe que tais, para a unidade de codificação por entropia 56. De acordo com as técnicas desta revelação, a unidade de seleção de modo 40 pode fornecer informações de identificação de imagens de referência, tais como se uma imagem de referência deve ser tratada como imagem de referência de longo prazo ou imagem de referência de curto prazo, assim como bits menos significativos (LSBs) de valores de contagem de ordem de imagem (POC) para imagens de referência de longo prazo, para a unidade de codificação por entropia 56. A unidade de codificação por entropia, ou outra unidade do codificador de vídeo 20 pode incluir tais informações de identificação de imagens de referência no cabeçalho de fatia de uma fatia, de acordo com as técnicas desta revelação. Alternativamente, a unidade de codificação por entropia 56 pode incluir as informações de identificação de imagens de referência (para indicar quais imagens de referência são imagens de referência de longo prazo, por exemplo) em um conjunto de parâmetros, tal como um conjunto de parâmetros de imagens (PPS) ou um conjunto de parâmetros de sequência (SPS).
[083] Conforme explicado acima, as imagens de referência de longo prazo podem ser sinalizadas utilizando-se LSBs de valores de POC para as imagem de referência de longo prazo. Por exemplo, a unidade de codificação por entropia 56 pode indicar que uma imagem de referência é uma imagem de referência de longo prazo sinalizando os LSBs do valor de POC para imagem de referência em um cabeçalho de fatia, um PPS ou UM SPS. Outras imagens de referência que não são sinalizadas desta maneira podem ser tratadas como imagens de referência de curto prazo.
[084] Pela sinalização de informações de identificação para imagens de referência de longo prazo, a unidade de codificação por entropia 56 fornece dados que indicam quais imagens de referência serão armazenadas no arma- zenador de imagens decodificadas (DPB) de um decodificador de vídeo (o de- codificador de vídeo 30, por exemplo) durante um período de tempo de prazo relativamente longo, e quais imagens de referência podem ser removidas do armazenador de imagens decodificadas mais cedo. Em geral, imagens de referência de longo prazo podem ser utilizadas como imagens de referência para codificar imagens que têm tempo de ordem de decodificação relativamente tardios. Assim, as sinalização das informações de identificação para as imagens de referência de longo prazo fornece informações para um decodificador de vídeo, como, por exemplo, o decodificador de vídeo 30, de modo que o decodi- ficador de vídeo possa determinar se ou não uma imagem de referência pode ser descartada do seu próprio DPB.
[085] A unidade de estimativa de movimento 42 e unidade de compensação de movimento 44 podem ser altamente integradas, mas são mostradas separadamente para fins conceptuais. A estimativa de movimento efetuada pela unidade de estimativa de movimento 42, é o processo de gerar vetores de movimento, que estimam o movimento para blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo dentro do quadro ou imagem de vídeo atual com relação a um bloco pre- ditivo dentro de um quadro de referência (ou outra unidade codificada) com relação ao bloco atual que é codificado dentro do quadro atual (ou outra um unidade codificada). Um bloco preditivo é um bloco que se verifica corresponder intimamente ao bloco a ser codificado, em termos de diferença de pixel, o que pode ser determinado pela soma da diferença absoluta (SAD), pela soma da diferença ao quadrado (SSD) ou outras métricas de diferença. Em alguns exemplos, o codificador de vídeo 20 pode calcular valores para posições de sub-pixel de número inteiro de imagens de referência armazenadas na memória de imagens de referência 64. Por exemplo, o codificador de vídeo 20 pode interpolar valores de posições um quatro de pixel, posições de um oitavo de pixel ou outras posições de pixel fracionárias da imagem de referência. Portanto, a unidade de estimativa de movimento 42 pode efetuar uma busca de movimento com relação às posições de pixel completas e posições de pixel fracionária e transmitir um vetor de movimento com precisão de pixel fracionária.
[086] A unidade de estimativa de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia intercodificada comparando a posição da PU com a posição de um bloco preditivo de uma imagem de referência. A imagem de referência pode ser selecionada a partir de uma primeira lista de imagens de referência (Lista 0) ou de uma segunda lista de imagens de referência (Lista 1), cada uma das quais identifica uma ou mais imagens de referência armazenadas na memória de imagens de referência 64. A memória de imagens de referência 64 pode armazenar imagens de referência tanto de longo prazo quanto de curto prazo. A unidade de estimativa de movimento 42 envia o vetor de movimento calculado à unidade de codificação por entropia 56 e à unidade de compensação de movimento 44.
[087] A compensação de movimento efetuada pela unidade de compensação de movimento 44, pode envolver buscar ou gerar o bloco preditivo com base no vetor de movimento determinado pela unidade de estimativa de movimento 42. Mais uma vez, a unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 podem ser funcionalmente integradas, em alguns exemplos. Ao receber o vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco preditivo que o vetor de movimento indica em uma das listas de imagens de referência. O somador 50 forma um bloco de vídeo residual subtraindo valores de pixel do bloco preditivo dos valores de pixel do bloco de vídeo atual que é codificado, formando valores de diferença de diferença de pixel conforme discutido em seguida. Em geral, a unidade de estimativa de movimento 42 efetua estimativa de movimento com relação a componentes luma e a unidade de compensação de movimento 44 utiliza vetores de movimento calculados com base nos componentes luma tanto para componentes croma quanto componentes luma.
[088] A unidade de seleção de modo 40 pode também gerar elementos de sintaxe associados aos blocos de vídeo e à fatia de vídeo para utilização pelo decodificador de vídeo 30 na decodificação dos blocos de vídeo da fatia de vídeo. Por exemplo, depois de calcular um vetor de movimento para um bloco de dados de vídeo (onde o vetor de movimento indica um bloco de referência em uma imagem de referência), a unidade de seleção de modo 40 pode gerar valores para parâmetros de movimento, tais como uma lista de imagens de referência na qual a imagem de referência é armazenada e o índice na lista de imagens de referência que corresponde à posição da imagem de referência na lista de imagens de referência. Este e outros parâmetros de movimento podem ser codificados em um modo de codificação de vetores de movimento. Por exemplo, utilizando-se predição avançada de vetores de movimento (AMVP), a unidade de codificação por entropia pode identificar um preditor de vetor de movimento (que corresponde a um vizinho espacial ou temporal do bloco atual) e sinalizar explicitamente a lista de imagens de referência, o índice de imagem de referência e valores de diferença entre vetores de movimento horizontais e verticais. Como outro exemplo, utilizando o modo de fusão, a unidade de codificação por entropia 56 pode identificar um preditor de vetor de movimento utilizando um índice de fusão, e a lista de imagens de referência e o índice de referência podem ser herdados do preditor de vetor de movimento (como, por exemplo, as informações de movimento de um bloco vizinho, seja ele um vizinho espacial ou um vizinho temporal).
[089] O codificador de vídeo 20 sinaliza informações que indicam quais imagens de referência são imagens de referência de longo prazo tanto para indicar que estas imagens não serão descartadas do DPB quanto para fornecer informações que podem ser utilizadas durante um processo de construção de listas de imagens de referência. Desta maneira, um decodificador de vídeo, tal como o decodificador de vídeo 30, é capaz de reproduzir com precisão a lista de imagens de referência, de modo que o índice de referência utilizado como informação de movimento para um bloco interpredito se refira de maneira precisa à imagem de referência correta.
[090] Conforme observado acima, as imagens de referência de longo prazo podem ser sinalizadas utilizando-se valores de POC das imagens de referência de longo prazo. Os valores de POC correspondem geralmente a dados que indicam a ordem de exibição (também referida como ordem de saída) de imagens, que não é necessariamente o mesmo que ordem de decodificação (também referida como ordem de fluxo de bits). Os valores de POC para imagens de referência de longo prazo podem ser sinalizados utilizando-se apenas os bits menos significativos (LSBs). Dados que representam MSBs podem ser ocasionalmente sinalizados, como, por exemplo, quando duas ou mais imagens de referência de longo prazo têm os mesmos LSBs. Em alguns casos, o codificador de vídeo 20 pode determinar que dados que representam MSBs para duas (ou mais) imagens precisam ser sinalizados, mesmo quando pelo menos duas das imagens para as quais os dados de MSBs são sinalizados têm LSBs diferentes.
[091] De acordo com as técnicas desta revelação, o codificador de vídeo pode sinalizar os dados que representam os MSBs como uma diferença, como, por exemplo, a diferença entre um conjunto de MSBs e outro conjunto de MSBs. Conforme discutido acima, com relação à Tabela 1, por exemplo, o codificador de vídeo 20 pode calcular a diferença entre um valor de MSBs básico e o valor de MSBs para uma imagem de referência de longo prazo. A unidade de codificação por entropia 56 pode sinalizar esta diferença como um valor que representa os MSBs para a imagem de referência de longo prazo. O valor de MSBs pode corresponder aos MSBs do valor de POC da imagem atual. Alternativamente, o valor de MSBs básico pode corresponder aos MSBs do valor de POC de outra imagem, tal como uma imagem de renovação de decodifica- dor instantânea (IDR).
[092] Depois de codificar o valor de diferença para uma imagem de referência de longo prazo, a unidade de codificação por entropia 56 pode calcular a diferença entre os MSBs do valor de POC para outra imagem de referência de longo prazo e os MSBs do valor de POC para a imagem de referência de longo prazo anterior. Da mesma maneira, a unidade de codificação por entropia 56 pode sinalizar este segundo valor de diferença para a imagem de referência de longo prazo subsequente, de modo que um decodificador de vídeo, tal como o decodificador de vídeo 30, possa reconstruir os MSBs do valor de POC para imagem de referência de longo prazo subsequente. Desta maneira, o codifica-dor de vídeo 20 pode ser configurado para codificar dados que representam os MSBs dos valores de POC para imagens de referência de longo prazo como um valor de diferença, por exemplo, com relação a um valor de MSBs básico ou com relação aos MSBs codificados anteriormente para valores de POC de outras imagens de referência de longo prazo. Além do mais, o codificador de vídeo 20 pode sinalizar estes valores de diferença mesmo quando os LSBs dos valores de POC são diferentes.
[093] Conforme discutido acima, em alguns exemplos, o codificador de vídeo 20 pode ser configurado para codificar valores de número inteiro negativos para valores de diferença que representa m diferenças entre MSBs de valores de POC para uma ou mais imagem de referência de longo prazo e um valor de MSBs básico (ou outros MSBs de referência). Por exemplo, quando a unidade de codificação por entropia 56 (ou outra unidade do codificador de vídeo 20) determina que a imagem atual tem um valor de POC igual a MaxPi- cOrderCntLsb * N - 1, e que uma imagem que tem uma valor de POC igual a MaxPicOrderCntLsb * N é a primeira LTRP para a qual o del- ta_poc_msb_cycle_lt[ i ] é sinalizado, a unidade de codificação por entropia 56 pode codificar um valor de - 1 para os MSBs do valor de POC da LTRP.
[094] Além disto, ou alternativamente, o codificador de vídeo 20 pode ser configurado para codificar dados que representam valores de POC para imagem de referência de longo prazo com base, pelo menos em parte, no número total de imagens de referência atualmente armazenadas em um conjunto de imagens de referência (ou em um armazenador de imagem decodificadas) e/ou no número de imagens de referência de curto prazo atualmente armazenadas no conjunto de imagens de referência (ou no armazenador de imagens decodificadas). Por exemplo, o codificador de vídeo 20 pode ser configurado para determinar se se vai sinalizar um valor de ciclo de MSB POC para uma imagem de referência de longo prazo com base em se há quaisquer outras imagens de referência de longo prazo no conjunto de imagens de referência (ou no armazenador de imagens decodificadas) que têm o mesmo valor de LSBs POC da imagem de referência de longo prazo. Assim, quando há somente uma ou mais imagens de referência de curto prazo no conjunto de imagens de referência que têm os mesmos LSBs POC da imagem de referência de longo prazo, o codificador de vídeo 20 pode evitar a codificação de um valor de ciclo de MSB POC para imagem de referência de longo prazo.
[095] Além disso, ou alternativamente, o codificador de vídeo 20 pode determinar não codificar um valor de ciclo de MSB POC delta para uma imagem de referência de longo prazo quando há N imagens de referência de longo prazo no armazenador de imagens decodificadas que têm os mesmos LSBs do valor de POC para imagem de referência de longo prazo e quando o codificador de vídeo 20 já tiver codificado valores de ciclo de MSB POC delta para N - 1 das imagens de referência de longo prazo.
[096] A unidade de intrapredição 46 pode intrapredizer o bloco atual, como alternativa para a interpredição efetuada pela unidade de estimativa de movimento 42 e pela unidade de compensação de movimento 44, conforme descrito acima. Em particular, a unidade de intrapredição 46 pode determinar um modo de intrapredição a ser utilizado para codificar o bloco atual. Em alguns exemplos, a unidade de intrapredição 46 pode codificar o bloco atual utilizando diversos modos de intrapredição, como, por exemplo, durante passagens de codificação separadas, e a unidade de intrapredição 46 (ou a unidade de seleção de modo 40, em alguns exemplos) pode selecionar o modo de in- trapredição apropriado a ser utilizado a partir dos modos testados.
[097] Por exemplo, a unidade de intrapredição 46 pode calcular valores de distorção de taxa utilizando uma análise de distorção de taxa para os diversos modos de intrapredição testados, e selecionar o modo de intrapredi- ção que tem as melhores características de distorção de taxa entre os modos testados. A análise de distorção de taxa determina geralmente o grau de distorção (ou erro) entre um bloco codificado e um bloco não codificado original que foi codificado de modo a se produzir o bloco codificado, assim como uma taxa de bits (isto é, o número de bits) utilizada para produzir o bloco codificado. A unidade de intrapredição 46 pode calcular razões a partir das distorções e taxas para os diversos blocos codificados de modo a determinar qual o modo de intrapredição apresenta o melhor valor de distorção de taxa para o bloco.
[098] Depois de selecionar o modo de intrapredição para um bloco, a unidade de intrapredição 46 pode fornecer informações que indicam o modo intrapredição selecionado para o bloco à unidade de codificação por entropia 56. A unidade de codificação por entropia 56 pode codificar as informações que indicam o modo de intrapredição selecionado. O codificador de vídeo 20 pode incluir no fluxo de bits transmitido dados de configuração, que podem incluir uma série de tabelas de índices de modo de intrapredição e uma série de tabelas de índices de modo de intrapredição modificadas (também referidas como tabelas de mapeamento em palavras de código), definições de contexto de codificação para diversos blocos e indicações do modo de intrapredição mais provável, uma tabela de índices de modos de intrapredição modificada a ser utilizada para cada um dos contextos.
[099] O codificador de vídeo 20 forma um bloco de vídeo residual subtraindo os dados de predição da unidade de seleção de modo 40 do bloco de vídeo original que é codificado. O somador 50 representa o componente ou componentes que executam esta operação de subtração. A unidade de processamento de transformadas 52 aplica uma transformada, tal como uma transformada de cosseno discreta (DCT) ou uma transformada conceptualmente semelhante ao bloco residual, produzindo um bloco de vídeo que compreende valores de coeficientes de transformada residuais, A unidade de processa- mento de transformadas 52 pode executar outras transformadas que são conceptualmente semelhantes à DCT, podem ser também utilizadas transformadas de wavelet, transformadas de número inteiro, transformadas de sub-banda ou outros tipos de transformadas. Seja como for, a unidade de processamento de transformadas 52 aplica a transformada ao bloco residual, produzindo um bloco de coeficientes de transformada residuais. A transformada pode converter as informações residuais de um domínio de valor de pixel em um domínio de transformada, tal como um domínio de frequência. A unidade de processamento de transformadas 52 pode enviar os coeficientes de transformada resultantes à unidade de quantização 54. A unidade de quantização quantiza os coeficientes de transformada de modo a reduzir ainda mais a taxa de bits. O processo de quantização pode reduzir a profundidade de bits associada a alguns ou todos os coeficientes. O grau de quantização pode ser modificado pelo ajuste de um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54 pode efetuar então uma varredura da matriz que inclui os coeficientes de transformada quantizados. Alternativamente, a unidade de codificação por entropia 56 pode efetuar a varredura.
[0100] Em seguida à quantização, a unidade de codificação por entropia 56 codifica por entropia os coeficientes de transformada quantizados. Por exemplo, a unidade de codificação por entropia 56 pode efetuar codificação de comprimento variável adaptativa ao contexto (CAVLC), codificação aritmética binária adaptativa ao contexto (CABAC), codificação aritmética binária adapta- tiva ao contexto baseada em sintaxe (SBAC), codificação por entropia com par- ticionamento de intervalos de probabilidade (PIPE) ou outra técnica de codificação por entropia. No caso da codificação por entropia baseada no contexto, o contexto pode ser baseado em blocos vizinhos. Em seguida à codificação por entropia pela unidade de codificação por entropia 56, o fluxo de bits codificado pode ser transmitido para outro aparelho (o decodificador de vídeo 30, por exemplo) ou arquivado para transmissão ou recuperação posterior.
[0101] A unidade de quantização inversa 58 e a unidade de transformada inversa 60 aplicam quantização inversa e transformada inversa, e respectivamente, para reconstruir o bloco residual no domínio de pixel, como, por exemplo, para utilização posterior como bloco de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência adicionando o bloco residual a um bloco preditivo de um dos quadros da memória de imagens de referência 64. A unidade de compensação de movimento 44 pode aplicar também um ou mais filtros de interpolação ao bloco residual reconstruído de modo a calcular valores de sub-pixel de número inteiro para utilização na estimativa de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição compensado em movimento produzido pela unidade de compensação de movimento 44 de modo a se produzir um bloco de vídeo reconstruído para armazenamento na memória de imagens de referência 64. O bloco de vídeo reconstruído pode ser utilizado pela unidade de estimativa de movimento 42 e pela unidade de compensação de movimento 44 como um bloco de referência para intercodificar um bloco no quadro de vídeo subsequente.
[0102] O codificador de vídeo 20 da Figura 2 representa um exemplo de codificador de vídeo que pode ser configurado para codificar dados para a imagem atual de dados de vídeo, em que os dados codificados representam um valor de número inteiro negativo para um ciclo de bits mais significativos (MSBs) de contagem de ordem de imagem (POC) para uma imagem de referência de longo prazo para a imagem atual, e codificar pelo menos em parte da imagem atual com relação à imagem de referência de longo prazo com base, pelo menos em parte, no valor de número inteiro negativo para o ciclo de MSB.
[0103] O codificador de vídeo 20 da Figura 2 representa também um exemplo de codificador de vídeo que pode ser adicional ou alternativamente configurado para codificar pelo menos uma primeira parte da imagem atual de dados de vídeo com relação a uma primeira imagem de referência de longo prazo e pelo menos uma segunda parte da imagem atual com relação a uma segunda imagem de referência de longo prazo, codificar um primeiro valor que representa a diferença entre um valor de bits mais significativos (MSB) básico de um valor de contagem de ordem de imagem (POC) da imagem atual dos dados de vídeo e um primeiro valor de MSBs de um primeiro valor de POC da primeira imagem de referência de longo prazo dos dados de vídeo, e codificar um segundo valor que representa a diferença entre um segundo valor de MSBs de um segundo valor de POC da segunda imagem de referência de longo prazo dos dados de vídeo e o primeiro valor de MSBs, em que o primeiro valor de POC e o segundo valor de POC têm valores de bits menos significativos (LSBs) diferentes.
[0104] O codificador de vídeo 20 da Figura 2 representa também um exemplo de codificador de vídeo que pode ser, adicional ou alternativamente, configurado para determinar o número de imagens de referência marcadas como imagem de referência de curto prazo, do número total de imagens de referência disponíveis, para a imagem atual, codificar um valor de bits mais significativos (MSBs) para imagens de referência de longo prazo para imagem atual com base no número total de imagens de referência e número de imagens de referência marcadas como imagem de referência de curto prazo, e codificar pelo menos em parte da imagem atual com relação a pelo menos uma das imagens de referência disponíveis.
[0105] O codificador de vídeo 20 da Figura 2 representa também um exemplo de codificador de vídeo que pode ser, adicional ou alternativamente, configurado para determinar o número N de imagens de referência para imagem atual que têm valores de contagem de ordem de imagem (POC) com valores de bits menos significativos (LSBs) iguais, determinar que o conjunto de imagens de referência da imagem atual pode incluir N imagem de referência de longo prazo, e codificar valores de ciclo de bits mais significativos (POC delta) para no máximo N - 1 das imagens de referência de longo prazo com base nas determinações.
[0106] A Figura 3 é um diagrama de blocos que mostra um exemplo de decodificador de vídeo 30 que pode implementar técnicas para sinalização aperfeiçoada de imagens de referência de longo prazo em cabeçalhos de fatia. No exemplo da Figura 3, o decodificador de vídeo 30 inclui uma unidade de decodificação por entropia 70, uma unidade de compensação de movimento 72, uma unidade de intrapredição 74, uma unidade de quantização inversa 76, uma unidade de transformada inversa 78, uma memória de imagens de referência 82 e um somador 80. O decodificador de vídeo 30 pode, em alguns exemplos, executar uma passagem de decodificação geralmente correspondente à passagem de codificação descrita com relação ao codificador de vídeo 20 (Figura 2). A unidade de compensação de movimento 72 pode gerar dados de predição com base em vetores de movimento recebidos da unidade de de- codificação por entropia 70, enquanto a unidade de intrapredição 74 pode gerar dados de predição com base em indicadores de modo de intrapredição recebidos da unidade de decodificação por entropia 70.
[0107] Durante o processo de decodificação, o decodificador de vídeo 30 recebe um fluxo de bits de vídeo codificado que representa blocos de vídeo de uma fatia de vídeo codificada e elementos de sintaxe conexos do codificador de vídeo 20. A unidade de decodificação por entropia 70 do decodificador de vídeo 30 decodifica por entropia o fluxo de bits de modo a gerar coeficientes quantizados, vetores de movimento ou indicadores de modo de intrapredição e outros elementos de sintaxe. A unidade de decodificação por entropia 70 emite os vetores de movimento para e outros elementos de sintaxe para a unidade de compensação de movimento 72. O decodificador de vídeo 30 pode receber os elementos de sintaxe ao novel de fatia de vídeo e/ou ao nível de bloco de vídeo.
[0108] Quando a fatia de vídeo é codificada como uma fatia intracodi- ficada (I), a unidade de intrapredição 74 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual com base em um modo de intrapredição sinalizado e em dados de blocos decodificados anteriormente do quadro ou imagem atual. Quando do quadro de vídeo é decodificado como uma fatia in- tercodificada (isto é, B, P ou GPB), a unidade de compensação de movimento 72 produz blocos preditivos para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e em outros elementos de sintaxe recebidos da unidade de decodificação por entropia 70. Os blocos preditivos podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagens de referência. O decodificador de vídeo 30 pode construir as listas de imagens de referência, Lista 0 e Lista 1, utilizando técnicas de construção pré-definidas baseadas em imagens de referência armazenadas na memória de imagens de referência 82.
[0109] O decodificador de vídeo 30 pode determinar um conjunto de imagens de referência a partir do qual o decodificador de vídeo 30 constrói as listas de imagens de referência. Em alguns exemplos, como, por exemplo, quando o decodificador de vídeo 30 se conforma à HEVC, o decodificador de vídeo 30 pode construir as listas de imagens de referência de acordo com a Seção 8.3.3 do WD7 HEVC. O conjunto de imagens de referência corresponde geralmente a imagens de referência atualmente armazenadas em um armaze- nador de imagens decodificadas, como, por exemplo, dentro da memória de imagens de referência 82. Determinadas imagens de referência do conjunto de imagens de referência podem ser marcadas como imagens de referência de curto prazo, enquanto outras imagens de referência do conjunto de imagens de referência podem ser marcadas como imagens de referência de longo prazo. Em geral, uma imagem de referência de longo prazo é marcada como “utilizada para referência de longo prazo” como, por exemplo, em um cabeçalho de unidade de abstração de rede (NAL) de uma unidade NAL que encapsula dados de vídeo codificados para a imagem de referência.
[0110] De acordo com as técnicas desta revelação, o decodificador de vídeo 30 pode ser configurado para decodificar identificadores para imagens de referência de longo prazo utilizando codificação diferencial. Por exemplo, para uma primeira imagem de referência de longo prazo (uma imagem de referência de longo prazo que tem um valor de índice de 0 em uma sequência de imagens, por exemplo) o decodificador de vídeo 30 pode decodificar um valor diferente que indica a diferença entre MSBs POC para a imagem de referência de longo prazo e os MSBs POC para a imagem atual. Os MSBs POC para imagem atual podem ser referidos como “MSBs básicos”. Para outras imagens de referência de longo prazo (imagens de referência de longo prazo que têm um valor de índice maior que 0 na sequência de imagens, por exemplo) o decodifi- cador de vídeo 30 pode decodificar um valor de diferença que indica a diferença entre os MSBs POC para a imagem de referência de longo prazo e os MSBs POC para imagem de referência de longo prazo anterior. Supondo que a imagem de referência de longo prazo para a qual os MSBs POC estão sendo atualmente determinados tem um valor de índice de i, o decodificador de vídeo 30 pode referir-se aos MSBs POC da imagem de referência de longo prazo que tem um valor de índice de qualquer valor entre 0 e i - 1, inclusive de modo a determinar os MSBs POC. Ou seja, o decodificador de vídeo 30 pode referir-se aos MSBs POC de uma imagem de referência de longo prazo que tem um valor de índice de j, onde j está entre 0 e i - 1, inclusive. O valor de diferença pode, em alguns casos, ter um valor de número inteiro negativo.
[0111] Depois de receber um valor de diferença que descreve a diferença entre o MSBs POC para uma imagem de referência de longo prazo, o decodificador de vídeo 30 pode determinar um valor de MSBs POC ao qual o valor de diferença se aplica (isto é, ao qual o valor de diferença será adicionado para reconstruir os MSBs POC para imagem de referência de longo prazo Por exemplo, se a imagem de referência de longo prazo tiver um valor de índice de 0 (que indica que a imagem de referência de longo prazo é a primeira imagem de referência de longo prazo ordinal em uma sequência de imagens), o decodi- ficador de vídeo 30 pode utilizar o valor de MSBs POC da imagem atual como um valor de MSBs básico, e adicionar o valor de diferença sinalizado para a imagem de referência de longo prazo ao valor de MSBs básico. Como outro exemplo, se a imagem de referência de longo prazo tiver um valor de índice maior que 0 (que indica que a imagem de referência de longo prazo não é a primeira imagem de referência de longo prazo ordinal na sequência de imagens), supondo que o valor de índice seja i, o decodificador de vídeo 30 pode adicionar o valor de diferença sinalizado aos MSBs POC para a imagem de referência de longo prazo que tem o valor de índice i - 1.
[0112] Da mesma maneira, o decodificador de vídeo 30 pode decodificar um primeiro valor que representa a diferença entre um valor de bits mais significativos (MSBs) básico de um valor de contagem de ordem de imagem (POC) da imagem atual de dados de vídeo e um primeiro valor de MSBs de um primeiro valor de POC de uma primeira imagem de referência de longo prazo do dados de vídeo, e decodificar um segundo valor que representa a diferença entre um segundo valor de MSB de um segundo valor de POC de uma segunda imagem de referência de longo prazo dos dados de vídeo e o primeiro valor de MSBs, em que o primeiro valor de POC e o segundo valor de POC têm valores de bits menos significativos (LSBs) diferentes. Da mesma maneira, o deco- dificador de vídeo 30 pode calcular um primeiro valor de ciclo de MSB para a primeira imagem de referência de longo prazo como DeltaPocMsbCycleLt[ i - 1 ] utilizando o primeiro valor (isto é, o primeiro valor de diferença) e calcular um segundo valor de ciclo de MSB para a segunda imagem de referência de longo prazo como DeltaPocMsbCycleLt[ i ], em que calcular o segundo valor de ciclo de MSB compreende calcular DeltaPocMsbCycleLt[ i ] com base em DeltaPo- cMsbCycleLt[ i - 1 ] e o segundo valor (isto é, o segundo valor de diferença).
[0113] Além disso, o decodificador de vídeo 30 pode decodificar LSBs para os valores de POC das imagens de referência de longo prazo. Os LSBs podem ser sinalizados no cabeçalho de fatia de uma fatia para a imagem atual, em um conjunto de parâmetros de sequência (SPS) para uma sequência que inclui a imagem atual, em um conjunto de parâmetros de imagens (PPS) para imagem atual ou em qualquer outro lugar. O decodificador de vídeo 30 pode concatenar os MSBs e os LSBs para o valor de POC de uma imagem de referência de longo prazo de modo a determinar o valor de POC completo da imagem de referência de longo prazo. Em seguida, o decodificador de vídeo 30 pode montar uma lista de imagens de referência que inclui as imagens de referência de longo prazo identificadas pelo valor de POC. Desta maneira, o deco- dificador de vídeo 30 pode utilizar informações de movimento (dados que identificam uma lista de imagens de referência e um índice de referência, por exemplo) de modo a efetuar interpredição. Por exemplo, conforme explicado em seguida, a unidade de compensação de movimento 72 pode determinar um bloco de referência para um bloco da imagem atual com base, pelo menos em parte, em informações de movimento que identificam uma imagem de referência, que corresponde a uma das imagens em uma das listas de imagens de referência. A imagem de referência pode corresponder a uma das imagens de referência de longo prazo ou a uma imagem de referência de curto prazo.
[0114] A unidade de compensação de movimento 72 determina informações de predição para um bloco de vídeo da fatia de vídeo atual efetuando parse nos vetores de movimento e em outros elementos de sintaxe, e utiliza as informações de predição para produzir os blocos preditivos para o bloco de vídeo atual que é decodificado. Por exemplo, a unidade de compensação de movimento 72 utiliza alguns dos elementos de sintaxe recebidos para determinar um modo de predição (intra- ou interpredição, por exemplo) utilizado para codificar os blocos de vídeo da fatia de vídeo, o tipo de fatia de interpredição (fatia B, fatia P ou fatia GPV, por exemplo) informações de construção para uma ou mais das listas de imagens de referência para a fatia, vetores de movimento para cada bloco de vídeo intercodificado da fatia, a condição de inter padronização para cada bloco de vídeo intercodificado da fatia, e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[0115] A unidade de compensação de movimento 72 pode também efetuar interpolação com base em filtros de interpolação. A unidade de compensação de movimento 72 pode utilizar os filtros de interpolação utilizado pelos codificador de vídeo 20 durante a codificação dos blocos de vídeo para calcular valores interpolados para sub-pixels de número inteiro de blocos de referência. Neste caso, a unidade de compensação de movimento 72 pode determinar os filtros de interpolação utilizados pelo codificador de vídeo 20 a partir dos elementos de sintaxe recebidos e utilizar os filtros de interpolação para produzir blocos preditivos.
[0116] A unidade de quantização inversa 76 quantiza por inversão, isto é, desquantiza os coeficientes de transformada quantizados apresentados no fluxo de bits e decodificados pela unidade de decodificação por entropia 70. O processo de quantização inversa pode incluir a utilização de um parâmetro de quantização QPY calculado pelo decodificador de vídeo 30 para cada bloco de vídeo na fatia de vídeo de modo a se determinar o grau de quantização e, da mesma maneira, o grau de quantização inversa que deve ser aplicado. A unidade de transformada inversa 78 aplica uma transformada inversa, como, por exemplo, uma DCT inversa, uma transformada de número inteiro inversa ou um processo de transformada inversa conceptualmente semelhante, aos coeficientes de transformada de modo a se produzirem blocos residuais no domínio de pixel.
[0117] Depois que a unidade de compensação de movimento 72 gera o bloco preditivo para o bloco de vídeo atual com base nos vetores de movimento e em outros elementos de sintaxe, o decodificador de vídeo 30 forma um bloco de vídeo decodificado somando os blocos residuais da unidade de transformada inversa 78 com os blocos preditivos correspondentes gerados pela unidade de compensação de movimento 72. O somador 80 representa o componente ou componentes que executam esta operação de soma. Se desejado, um filtro de desbloqueio pode ser também aplicado para filtrar os blocos decodificados de modo a se removerem os artefatos de bloqueio. Outros filtros de malha (ou na malha de codificação ou depois da malha de codificação) podem ser também utilizados para suavizar as transições entre pixels ou senão aperfeiçoar a qualidade de vídeo. Os blocos de vídeo decodificados em um dado quadro ou imagem são em seguida armazenados na memória de imagens de referência 82, que armazena imagens de referência utilizadas para compensação de movimento subsequente. A memória de imagens de referência 82 ar- mazena também vídeo decodificado para apresentação posterior em um aparelho de exibição, tal como o aparelho de exibição 32 da Figura 1.
[0118] Desta maneira o decodificador de vídeo 30 da Figura 3 representa um exemplo de decodificador de vídeo que pode ser configurado para decodificar um primeiro valor que representa diferença entre um valor de bits mais significativos (MSBs) básico de um valor de contagem de ordem de imagem (POC) da imagem atual de dados de vídeo e um primeiro valor de MSBs de um primeiro valor de POC de uma primeira imagem de referência de longo prazo dos dados de vídeo, decodificar um segundo valor que representa a diferença entre um segundo valor de MSBs de um segundo valor de POC de uma segunda imagem de referência de longo prazo dos dados de vídeo e o primeiro valor de MSBs, em que o primeiro valor de POC e o segundo valor de POC têm valores de bits manos significativos (LSBs) diferentes, e decodificar pelo menos em parte da imagem atual dos dados de vídeo com relação a pelo menos uma da primeira imagem de referência de longo prazo utilizando o primeiro valor e da segunda imagem de referência de longo prazo utilizando o primeiro valor e o segundo valor.
[0119] O decodificador de vídeo 30 da Figura 3 representa também um exemplo de decodificador de vídeo, que pode ser, adicional ou alternativamente, configurado para decodificar dados para a imagem atual de dados de vídeo, em que os dados decodificados representam um valor de número inteiro negativo para um ciclo de bits mais significativos (MSBs) do contagem de ordem de imagem (POC) para uma imagem de referência de longo prazo com relação à imagem atual, e decodificar pelo menos em parte da imagem atual com relação à imagem de referência de longo prazo com base, pelo menos em parte, no valor de número inteiro negativo para o ciclo de MSBs.
[0120] O decodificador de vídeo 30 da Figura 3 representa também um exemplo de decodificador de vídeo que pode ser, adicional ou alternativamente, configurado para determinar o número de imagens de referência marcadas como imagens de referência de curto prazo do número total de imagens de referência disponíveis, para a imagem atual, decodificar um valor de bits mais significativos (MSBs) para imagens de referência de longo prazo para a imagem atual com base num número total de imagens de referência e no número de índice de referência marcadas como imagens de referência de curto prazo, e decodificar pelo menos em parte da imagem atual com relação a pelo menos uma das imagens de referência disponíveis.
[0121] O decodificador de vídeo 30 da Figura 3 representa também um exemplo de decodificador de vídeo que pode ser, adicional ou alternativamente, configurado para determinar o número N de imagens de referência para a imagem atual que têm valores de contagem de ordem de imagem (POC) que equivalem a valores de bits menos significativos (LSBs), determinar que o conjunto de imagens de referência pode incluir N imagens de referência de longo prazo, e decodificar valores de ciclo de bits mais significativos (MSBs) POC delta para no máximo N - 1 das imagens de referência de longo prazo com base nas determinações.
[0122] A Figura 4 é um diagrama conceptual que mostra uma sequência de imagens de vídeo codificadas 100-132. As imagens são sombreadas de maneira diferente para indicar posições dentro de uma estrutura de predição hierárquica. Por exemplo, as imagens 100, 116 e 132 têm sombreamento preto para representar que as imagens 100, 116, 132 estão no topo da estrutura de predição hierárquica. As imagens 100, 116, 132 podem compreender, por exemplo, imagens intracodificadas ou imagens intercodificadas que são preditas a partir de outras imagens em uma única direção (imagens P, por exemplo). Quando intracodificadas, as imagens 100, 116, 132 são preditas unicamente a partir de dados dentro da mesma imagem. Quando intercodificada, a imagem 116, por exemplo, pode ser codificada com relação aos dados da imagem 100, conforme indicado pela seta tracejada da Figura 16 até a Figura 100. As imagens 116, 132 formam imagens-chave de grupos de imagens (GOPs) 134, 136, respectivamente.
[0123] As imagens 108, 124, têm sombreamento escuro para indicar que elas estão próximas na hierarquia de codificação que se segue às imagens 100, 116 e 132. As imagens 108, 124 podem compreender imagens codificadas por predição intermodal bidirecionais. Por exemplo, a imagem 108 pode ser predita a partir dos dados das imagens 100, 116, enquanto a imagem 124 pode ser predita a partir das imagens 116 e 132. As imagens 104, 112, 120 e 128 são ligeiramente sombreadas para indicar que elas estão próximas na hierarquia de codificação que se segue às imagens 108 e 124. As imagens 104, 112, 120 e 128 podem compreender também imagens codificadas por predição intermodal bidirecionais. Por exemplo, a imagem 104 pode ser predita a partir das imagens 100 e 108, a imagem 112 pode ser predita a partir das imagens 108 e 116, a imagem 120 pode ser predita a partir das imagens 116 e 124, e a imagem 128 pode ser predita a partir das imagens 124 e 132. Em geral, as imagens que estão mais baixo na hierarquia podem ser codificadas a partir de quaisquer imagens de referência que estão mais elevadas na hierarquia, supondo-se que as imagens de referência estão ainda armazenadas em um ar- mazenador de imagens decodificadas, e supondo-se que as imagens de referência fora codificadas antes que a imagem que é codificada atualmente.
[0124] Finalmente, as imagens 102, 106, 110, 114, 118, 122, 126 e 130 têm sombreamento branco para indicar que estas imagens são as últimas na hierarquia de codificação. As imagens 102, 106, 110, 114, 118, 122, 126 e 130 podem ser imagens codificadas por predição intermodal bidirecionais. A imagem 102 pode ser predita a partir das imagens 100 e 104, a imagem 106 pode ser predita a partir das imagens 104 e 108, a imagem 110 pode ser predita a partir das imagens 108 e 112, a imagem 114 pode ser predita a partir das imagens 112, 116, a imagem 118 pode ser predita a partir das imagens 116 e 120, a imagem 122 pode ser predita a partir das imagens 120 e 124, a imagem 126 pode ser predita a partir das imagens 124 e 128, e a imagem 130 pode ser predita a partir das imagens 128 e 132. Mais uma vez, deve ficar entendido que as imagens mais baixas na hierarquia de codificação podem ser codificadas a partir de outras imagens que são mais elevadas na hierarquia de codificação. Por exemplo, qualquer uma ou todas as imagens 102, 106, 110 ou 114 podem ser preditas com relação a qualquer uma das imagens 100, 116 ou 108, adicional ou alternativamente.
[0125] As imagens 100-132 são mostradas na ordem de exibição, ou seja, após a decodificação, a imagem 100 é exibida antes da imagem 102, a imagem 102 é exibida antes da imagem 104 e assim por diante. Conforme discutido acima, os valores de POC descrevem geralmente uma ordem de exibição para as imagens, que é também substancialmente idêntica à ordem na qual imagens brutas foram captadas ou geradas antes de serem codificadas. Devido à hierarquia de codificação, as imagens 100-132 podem ser decodificadas em uma ordem diferente. Além do mais, enquanto são codificadas, as imagens 100-132 podem ser dispostas em ordem de decodificação em um fluxo de bits que inclui dados codificados para as imagens 100-132. Por exemplo, a imagem 116 pode ser exibida por último entre as imagens do GOP 134. Devido à hierarquia de codificação, a imagem 116 pode ser codificada em primeiro lugar dentre as imagens do GOP 132. Ou seja, de modo a se decodificar apropriadamente a imagem 108, por exemplo, pode ser necessário que a imagem 116 seja decodificada primeiro, de modo a atuar como uma imagem de referência para a imagem 108. Da mesma maneira, a imagem 108 pode atuar como uma imagem de referência para as imagens 104, 106, 110 e 112 e pode ser necessário, portanto que ela seja decodificada antes das imagens 104, 106, 110 e 112.
[0126] Além disso, determinadas imagens podem ser tratadas como imagens de referência de longo prazo, enquanto outras imagens podem ser tratadas como imagens de referência de curto prazo. Suponha-se, por exemplo, que as imagens 100 e 116 representem imagem de referência de longo prazo, enquanto as imagens 108, 104 e 112 representam imagens de referência de curto prazo. Pode ser o caso, neste exemplo, que as imagens, 102 e 106 possam ser preditas com relação a qualquer uma das imagens 100, 116, 108 ou 104, mas que as imagens 110 e 114 podem ser preditas com relação a qualquer uma das imagens 100, 116, 108 ou 112. Em outras palavras, a imagem 104 pode não estar disponível para referência quando se codificam as imagens 110 e 114. Como outro exemplo, supondo-se que as imagens 100 e 116 representam imagens de referência de longo prazo e as imagens 108, 104 e 112 representam imagens de referência de curto prazo, as imagens 108, 104 e 112 podem não estar disponíveis para referência quando se codificam as imagens 118, 122, 126 e 130.
[0127] De acordo com as técnicas desta revelação, os dados referentes a imagens de referência de longo prazo podem ser sinalizados em cabeçalhos de fatia em fatias para qualquer uma ou todas as imagens 100-132. Alternativamente, os dados podem ser sinalizados em PPSs, SPSs ou outras estruturas de dados.
[0128] Supondo-se mais uma vez que as imagens 100 e 116 representam imagens de referência de longo prazo, o codificador de vídeo 20 pode codificar MSBs POC para imagem 100 como uma diferença com relação a um valor de MSBs básico, como, por exemplo, o MSBs POC da imagem atual, tal como a imagem 102. Ou seja, o codificador de vídeo 20 pode calcular a diferença entre os MSBs para a imagem 100 e os MSBs POC para imagem 102, e codificar o valor de diferença para a imagem 100. Da mesma maneira, o codificador de vídeo 20 pode calcular a diferença entre os MSBs POC para imagem 116 e os MSBs POC para imagem 100, e codificar o valor de diferença para a imagem 116. O codificador de vídeo 20 pode codificar também valores de LSBs para as imagens 100 e 116.
[0129] Assim, o decodificador de vídeo 30 pode reconstruir valores de POC para as imagens 100 e 116 decodificando o valor de diferença para a imagem 100 e adicionando o valor de diferença ao valor de MSBs básico para agregar 102. Da mesma maneira, o decodificador de vídeo 30 pode decodificar o valor de diferença para a imagem 116 e adicionar o valor de diferença aos MSBs POC para imagem 100. O decodificador de vídeo 30 pode decodificar também valores de LSBs POC para as imagens 100 e 116. O decodificador de vídeo 30 pode concatenar os MSBs POC para imagem 100 com os LSBs POC para imagem 100 de modo a reproduzir o valor de POC para a imagem 100. Da mesma maneira, o decodificador de vídeo 30 pode concatenar os MSBs POC para imagem 116 com os LSBs POC para imagem 116 de modo a reproduzir o valor de POC para a imagem 116.
[0130] Da mesma maneira, tanto o codificador de vídeo 20 quanto o decodificador de vídeo 30 podem ser configurados para codificar um primeiro valor que representa a diferença entre um valor de bits mais significativos (MSBs) de um valor de contagem de ordem de imagem (POC) da imagem atual de dados de vídeo e um primeiro valor de MSBs de um primeiro valor de POC de uma primeira imagem de referência de longo prazo dos dados de vídeo, co- dificar um segundo valor que representa a diferença entre um segundo valor de MSBs de um segundo valor de POC de uma segunda imagem de referência de longo prazo dos dados de vídeo e o primeiro valor de MSBs, em que o primeiro valor de POC e o segundo valor de POC têm valores de bits menos significativos (LSBs) diferentes. e codificar pelo menos em parte da imagem atual dos dados de vídeo com relação a pelo menos uma da primeira imagem de referência de longo prazo utilizando o primeiro valor e da segunda imagem de referência de longo prazo utilizando o primeiro valor e o segundo valor.
[0131] Mais especificamente, o codificador de vídeo 20 pode codificar dados que representa m valores de POC para imagens de referência de longo prazo a serem incluídas em uma lista de imagens de referência para a imagem atual, como, por exemplo, a imagem 102. Em geral, o codificador de vídeo 20 para indicar que uma imagem de referência deve ser incluída em uma lista de imagens de referência quando pelo menos em parte da imagem atual é codificada com relação à imagem de referência. Uma parte de uma imagem pode ser considerada codificada com relação ao uma imagem de referência quando um bloco da imagem é intercodificado com relação à imagem de referência, de modo que um vetor de movimento para o bloco indique um bloco de referência da imagem de referência. Informações de movimento para um bloco pode inclui um identificador de lista de imagens de referência (Lista 0 ou Lista 1, por exemplo), assim como um índice de referência que corresponde a uma imagem de referência na lista de imagens de referência identificada pelo identificador de lista de imagens de referência.
[0132] Assim, o codificador de vídeo 20 pode codificar um bloco da imagem 102 com relação a um bloco de referência da imagem 100. Ou seja, o codificador de vídeo 20 pode efetuar uma busca de movimento para o bloco e determinar que o bloco de referência da imagem 100 produz um valor de erro aceitável, com relação a outros blocos de referência. Da mesma maneira, o codificador de vídeo 20 pode codificar um bloco diferente da imagem 102 com relação a bloco de referência da imagem 116.
[0133] A Figura 5 é um fluxograma que mostra um método exemplar para codificar valores de POC para imagens de referência de longo prazo de acordo com as técnicas desta revelação. Para fins de explanação, o método da Figura 5 é explicado com relação ap codificador de vídeo 20 das Figuras 1 e 2 e aos componentes dele. Entretanto, deve ficar entendido que outros aparelhos de codificação de vídeo podem ser configurados para executar o método da Figura 5.
[0134] Inicialmente o codificador de vídeo 20 pode codificar dados da imagem atual utilizando uma ou mais imagens de referência (150). O codificador de vídeo 20 pode determinar então as imagens de referência que foram utilizadas pra codificar a imagem atual (152). Mais especificamente, o codificador de vídeo pode determinar quais imagens de referência em um conjunto de imagens de referência disponíveis são realmente utilizadas para referência quando se codificada a imagem atual. Em alguns exemplos, as etapas 150 e 152 podem ser integradas e executadas de maneira substancialmente simultânea. As imagens de referência disponíveis podem incluir imagem de referência de longo prazo (LTRPs) e imagens de referência de curto prazo (STRPs). O codificador de vídeo 20 pode determinar se vai fixar uma imagem de referência como uma imagem de referência de longo prazo ou uma imagem de referência de curto prazo com base nos resultados de codificação obtidos através de diversas passagens de codificação de tentativa. Por exemplo, quando os resultados de codificação (métricas de otimização de distorção de taxa (RDO)) são geralmente melhores quando uma imagem de referência específica é tratada como uma imagem de referência de longo prazo (potencialmente deslocada pela quantidade de memória consumida para armazenar imagens de referência de longo prazo), o codificador de vídeo 20 pode tratar essa imagem de referência como uma imagem de referência de longo prazo.
[0135] Seja como for, depois de determinar que o conjunto de imagens de referência e as imagens de referência que serão tratadas como imagem de referência de longo prazo, o codificador de vídeo 20 pode codificar informações que indicam quais imagens serão incluídas em listas de imagens de referência para a imagem atual como imagens de referência de longo prazo. As informações codificadas podem compreender dados que representam valores de POC para as imagens de referência de longo prazo. O codificador de vídeo pode codificar estas informações no cabeçalho de fatia de uma fatia da imagem atual, em um PPS que corresponde à imagem atual, em um SPS para uma se-quência que inclui a imagem atual, ou em qualquer outro lugar.
[0136] O codificador de vídeo 20 pode codificar dados que indicam MSBs do valor de POC para uma primeira imagem de referência de longo prazo ordinal, assim como dados que indicam os LSBs do valor de POC para a primeira imagem de referência de longo prazo ordinal (154). Para codificar os MSBs, o codificador de vídeo 20 pode calcular a diferença entre os MSBs do valor de POC para a primeira imagem de referência de longo prazo e os MSBs do valor de POC para a imagem atual, e codificar este valor de diferença calculado.
[0137] O codificador de vídeo 20 pode determinar em seguida se o MSBs de um valor de POC para a LTRP subsequente são iguais aos LSBs de um valor de POC para outra imagem de referência para a imagem atual (156). Quando o codificador de vídeo 20 determina que os LSBs do valor de POC para LTRP subsequente são iguais aos LSBs do valor de POC para outra referência para a imagem atual (ramificação “SIM” de 156), o codificador de vídeo 20 pode codificar dados que representam a diferença entre o MSBs do valor de POC para a LTRP subsequente e os MSBs do valor de POC para a LTRP anterior (isto é, a LTRP mais recente para a qual as informações sobre MSBs POC foram codificadas)(158). Os LSBs do valor de POC para a LTRP mais recente não são necessariamente idênticos aos LSBs do valor de POC para a LTRP que é atualmente codificada. Conforme discutido acima, para calcular o valor de diferença, supondo-se que a LTRP subsequente tenha um valor de índice de i, o codificador de vídeo 20 pode calcular a diferença entre os MSBs do valor de POC para a LTRP i e os MSBs do valor de POC para a LTRP j se a LTRP j tiver sido a LTRP anterior para a qual as informações sobre MSBs POC foram codificadas. O codificador de vídeo 20 pode codificar então o valor de diferença. Este valor de diferença pode corresponder a del- ta_poc_msb_cycle_lt[ i ] (ou delta_poc_msm_cycle_lt_plus1[ i ]).
[0138] Depois de codificar o valor de diferença, ou quando os LSBs do valor de POC para a LTRP seguinte não são iguais aos LSBs de outra imagem de referência (ramificação “NÃO” de 156), o codificador de vídeo 20 pode codificar os LSBs do valor de POC para a LTRP (160). O codificador de vídeo 20 pode em seguida determinar se há mais LTRPs para imagem atual (162). Quando há mais LTRPs para imagem atual (ramificação “SIM” de 162), o codificador de vídeo 20 pode proceder à codificação dos LSBs dos valores de POC para as LTRPs restantes, e, quando necessário, os MSBs utilizando codificação diferencial conforme discutido acima. Entretanto, quando não há mais LTRPs para imagem atual (ramificação “NÃO” de 162) o codificador de vídeo 20 pode transmitir os dados codificados (164) que podem incluir blocos codificados para a imagem atual, valores de POC codificados para imagens de referência de longo prazo para a imagem atual (LSBs incluídos e, quando os LSBs não são únicos, valores de diferença para os MSBs) e semelhantes.
[0139] Da mesma maneira, o método da Figura 5 representa um exemplo de método que inclui codificar pelo menos uma primeira parte da imagem atual dos dados de vídeo com relação a uma primeira imagem de referência de longo prazo e pelo menos uma segunda parte da imagem atual com relação a uma segunda imagem de referência de longo prazo, codificar um primeiro valor que representa a diferença entre um valor de bits mais significativos (MSBs básico) de um valor de contagem de ordem de imagem (POC) da imagem atual dos dados de vídeo e um primeiro valor de MSBs de um primeiro valor de POC da primeira imagem de referência de longo prazo dos dados de vídeo, e codificar um segundo valor que representa a diferença entre um segundo valor de MSBs de um segundo valor de POC da segunda imagem de referência de longo prazo dos dados de vídeo e o primeiro valor de MSBs, em que o primeiro valor de POC e o segundo valor de POC têm valores de bits menos significativos (LSBs) diferentes.
[0140] A Figura 6 é um fluxograma que mostra um método exemplar para decodificar valores de POC para imagem de referência de longo prazo de acordo com as técnicas desta revelação. Para fins de explanação, o método da Figura 6 é explicado com relação ao decodificador de vídeo 30 das Figuras 1 e 3 aos componentes dele. Deve ficar entendido que, contudo, que outros aparelhos de decodificação de vídeo podem ser configurados para executar o método da Figura 6.
[0141] Inicialmente, o decodificador de vídeo 30 pode decodificar os MSBs e LSBs de um valor de POC para uma primeira imagem de referência de longo prazo (LTRP) ordinal da imagem atual (200). Por exemplo, o decodifica- dor de vídeo 30 pode decodificar um valor de diferença que representa a diferença entre os MSBs do valor de POC para a primeira LTRP e os MSbs do valor de POC para a imagem atual. O decodificador de vídeo 30 pode adicionar então o valor de diferença aos MSBs do valor de POC para a imagem atual, de modo a obter os MSBs da primeira LTRP. O decodificador de vídeo 30 pode decodificar também os LSBs do valor de POC para a primeira LTRP e concatenar os LSBs e os LSBs do valor de POC para a primeira LTRP de modo a reproduzir o valor de POC para a LTRP. O decodificador de vídeo 30 pode decodificar também os LSBs do valor de POC para a primeira LTRP somente, quando os MSBs não são enviados, e pode utilizar os valores de LSB sozinhos para identificar se não há outras imagens de referência com o mesmo valor de MSBs POC.
[0142] O decodificador de vídeo 30 pode em seguida decodificar LSBs de um valor de POC para a LTRP seguinte (202). No exemplo da Figura 6, o decodificador de vídeo 30 determina se os LSBs do valor de POC para a LTRP seguinte são iguais aos LSBs de outra LTRP para imagem atual (204). Em outros exemplos, como, por exemplo, explicado com relação à Tabela 1, o deco- dificador de vídeo 30 pode determinar se um valor de indicação indica que MSBs são sinalizados para o valor de POC da LTRP seguinte. Seja como for, o decodificador de vídeo 30 pode determinar se MSBs são sinalizados para o valor de POC da LTRP seguinte. Quando os MSBs são sinalizados para o valor de POC da LTRP seguinte (como, por exemplo, quando os LSBs do valor de POC para a LTRP seguinte são iguais aos LSBs de outra imagem de referência (ramificação “SIM” de 204)), o decodificador de vídeo 30 pode decodificar o valor de diferença de MSBs com relação aos MSBs de um valor de POC para a LTRP anterior (206). Ou seja, o decodificador de vídeo 30 pode decodificar o valor de diferença sinalizado para a LTRP i, e adicionar o valor de diferença aos MSBs do valor de POC para a LTRP j, onde a LTRP j foi a LTRP anterior para a qual as informações sobre MSB foram decodificadas. O decodificador de vídeo 30 pode também remontar o valor de POC da LTRP seguinte conca- tenando os MSBs (quer calculados ou determinados implicitamente) com os LSBs para a LTRP seguinte.
[0143] Depois de determinar que os LSBs do valor de POC para a LTRP seguinte não são iguais aos LSBs de outra imagem de referência (ramificação “NÃO” de 204), ou depois de decodificar o valor de diferença para os MSBs da LTRP seguinte, o decodificador de vídeo 30 pode determinar se há mais LTRPs para a imagem atual (210). Se houver mais LTRPs para imagem atual (ramificação “SIM” de 210), o decodificador de vídeo 30 pode proceder à decodificação dos valores de POC para a LTRP subsequente, conforme discutido acima, por exemplo. Uma vez que não há mais LTRPs para imagem atual (ramificação “NÃO” de 210), o decodificador de vídeo 30 pode montar uma ou mais listas de imagens de referência que incluem as LTRPs sinalizadas (212). O decodificador de vídeo 30 pode decodificar então imagem atual utilizando a(s) lista(s) de imagens de referência (214).
[0144] Por exemplo, quando um bloco é interpredito, o bloco pode incluir uma indicação de uma lista de imagens de referência e um índice de referência na lista de imagens de referência que indica uma imagem de referência para o bloco. O bloco pode incluir também dados para reconstruir um vetor de movimento para o bloco. Assim, o decodificador de vídeo 30 pode recuperar um bloco de referência da imagem de referência utilizando o vetor de movimento. O decodificador de vídeo 30 pode decodificar também um valor de erro para o bloco, como, por exemplo, por decodificação, quantização inversa e transformada inversa de coeficientes de transformada para o bloco. O decodificador de vídeo 30 pode combinar então o bloco de referência com o bloco residual reconstruído de modo a decodificar o bloco.
[0145] Da mesma maneira, o método da Figura 6 representa um exemplo de um método que inclui decodificar um primeiro valor que representa a diferença entre um valor de bits mais significativos (MSBs) básico de um valor de contagem de ordem de imagem (POC) da imagem atual de dados de vídeo em um primeiro valor de MSBs de um primeiro valor de POC de uma primeira imagem de referência de longo prazo dos dados de vídeo, decodificar um segundo valor que representa a diferença entre um segundo valor de MSBs de um segundo valor de POC de uma segunda imagem de referência de longo prazo dos dados de vídeo e o primeiro valor de MSBs, em que o primeiro valor de POC e o segundo valor de POC têm valores de bits menos significativos (LSBs) diferentes, e decodificar pelo menos em parte da imagem atual dos dados de vídeo com relação a pelo menos uma da primeira imagem de referência de longo prazo utilizando o primeiro valor e da segunda imagem de referência de longo prazo utilizando o primeiro valor e o segundo valor.
[0146] Deve-se reconhecer que, dependendo do exemplo, determinados atos ou eventos de qualquer uma das técnicas aqui descritas podem ser executados em uma sequência diferente, podem ser adicionados, fundidos ou deixados de fora completamente (nem todos os atos ou eventos descritos são necessários para a prática das técnicas, por exemplo). Além do mais, em determinados exemplos, atos ou eventos podem ser executados concomitantemente, como, por exemplo, através de processamento de vários fluxos, processamento com interrupções ou vários processadores, e não sequencialmente.
[0147] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação deles. Se implementadas em software, as funções podem ser armazenadas ou transmitidas através de uma ou mais instruções ou código em um meio legível por computador e executas por uma unidade de processamento baseada em hardware. As mídias legíveis por computador podem incluir mídias de armaze- namento legíveis de computador que correspondem a um meio tangível, tal como uma mídia de armazenamento de dados ou mídia de comunicação que inclui um meio que facilita a transferência de um programa de computador de um lugar para outro, de acordo com um protocolo de comunicação. Desta maneira, as mídias legíveis por computador podem corresponder a (1) mídia de armazenamento legível por computador tangíveis que são não transitórias ou (2) um meio de comunicação tal com um sinal ou onda portadora. As mídias de armazenamento de dados podem ser quaisquer mídias disponíveis que pos-sam ser acessadas por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estrutura de dados para implementação das técnicas descritas nesta revelação. Um produto de programa de computador pode incluir um meio legível por computador.
[0148] A título de exemplo, e não de limitação, tal mídia de armazenamento legível por computador pode compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento em disco óptico, armazenamento em disco magnético ou outros aparelhos de armazenamento magnético, memória flash ou qualquer outro meio que possa ser utilizado para armazenar código de programa desejado sob a forma de instruções ou estruturas de dados e que possa ser acessado por um computador. Além disto, qualquer conexão é denominada apropriadamente de meio legível por computador. Por exemplo, se as instruções forem transmitidas de um site da Web, servidor ou outra fonte remota uti-lizando-se um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL) ou tecnologias sem fio tais como infravermelho, rádio e micro-onda, então o cabo coaxial, o cabo de fibra óptica, o par trançado, a DSL ou tecnologias sem fio tais como infravermelho, rádio e micro-onda são incluídos na definição de meio. Deve ficar entendido, contudo, que as mídias de armazenamento legíveis por computador e as mídias de armazenamento de da dos não incluem conexões, ondas portadoras, sinais ou outras mídias transitórias, mas são em vez disso direcionados a mídias de armazenamento tangíveis não transitórias. O termo disco (disk) e disco (disc), conforme aqui utilizado, inclui disco compacto (CD), disco de laser, disco óptico, disco versátil digital (DVD), disco flexível e disco Blu-ray, em que usualmente discos (disks) reproduzem dados magneticamente, enquanto discos (discs) reproduzem dados op- ticamente com lasers. Combinações deles devem ser também incluídas dentro do alcance das mídias legíveis por computador.
[0149] As instruções podem ser executadas por um ou mais processadores, tais como um ou mais processadores de sinais digitais (DSP), microprocessadores de propósito geral, circuitos integrados específicos de aplicativo (ASICs), arranjos lógicos programáveis no campo (FPGAs) ou outros circuitos lógicos integrados ou discretos equivalentes. Por conseguinte, o termo “processador”, conforme aqui utilizado, pode referir-se a qualquer uma das estruturas precedentes ou qualquer outra estrutura adequada para implementação das técnicas aqui descritas. Além disto, sob alguns aspectos, a funcionalidade aqui descrita pode ser apresentada dentro de hardware dedicado e/ou em módulos de software configurados para codificação e decodificação ou incorporada a um CODEC combinado. Além disto, as técnicas podem ser completamente implementadas em um ou mais circuitos ou elemento lógicos.
[0150] As técnicas desta revelação podem ser implementadas em uma ampla variedade de aparelhos ou equipamentos, que incluem um aparelho telefônico sem fio, um circuito integrado (IC) ou um conjunto de ICs (isto é, um conjunto de chips). Diversos componente, módulos ou unidades são descritos nesta revelação para enfatizar aspectos funcionais de aparelhos configurados para executar as técnicas reveladas, mas não exigem necessariamente a execução por unidades de hardware diferente. Em vez disso, conforme descrito acima, diversas unidades podem ser combinadas em uma unidade de hardware de CODEC ou providas por uma coleção de unidades de hardware interope- rantes, que incluem um ou mais processadores, conforme descrito acima em conjunto com software e/ou firmware adequado.
[0151] Foram descritos diversos exemplos. Estes e outros exemplos estão dentro do alcance das reivindicações seguintes.

Claims (13)

1. Método de decodificação de dados de vídeo, o método CARACTE-RIZADO pelo fato de que compreende: decodificar um elemento de sintaxe poc_lsb_lt para uma imagem de referência de longo prazo, LTRP, dos dados de vídeo, em que o elemento de sintaxe especifica o valor dos bits menos significativos, LSBs, do valor de contagem de ordem de imagem, POC, da primeira LTRP; decodificar (200) um primeiro valor representativo de uma diferença entre um valor de bits mais significativos, MSBs, de base de um valor de POC de uma imagem atual de dados de vídeo e um primeiro valor de MSBs de um primeiro valor de POC da primeira LTRP dos dados de vídeo; decodificar um elemento de sintaxe poc_lsb_lt para uma segunda LTRP, em que o elemento de sintaxe especifica o valor dos LSBs do valor de POC da segunda LTRP; decodificar (206) um segundo valor representativo de uma diferença entre um segundo valor de MSBs de um segundo valor de POC de uma segunda LTRP dos dados de vídeo e o primeiro valor de MSBs, em que o primeiro valor de POC e o segundo valor de POC têm valores de bits menos significativos, LSBs, diferentes, em que as LTRPs são sinalizadas em ordem crescente de seus valores de ciclo de MSB com relação a imagem atual; e decodificar (214) pelo menos uma primeira parte da imagem atual dos dados de vídeo com relação a primeira imagem de referência de longo prazo utilizando o primeiro valor e decodificar pelo menos uma segunda parte da imagem atual com relação a segunda imagem de referência de longo prazo utilizando o primeiro valor e o segundo valor.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que compreende adicionalmente: calcular um primeiro valor de ciclo de MSB para a primeira imagem de referência de longo prazo, DeltaPocMSBCycleLt[ i - 1 ], utilizando o primeiro valor; e calcular um segundo valor de ciclo de MSB para a segunda imagem de referência de longo prazo, DeltaPocMSBCycleLt[ i ], em que calcular o segundo valor de ciclo de MSB compreende calcular DeltaPocMSBCycleLt[ i ] com base em DeltaPocMSBCycleLt[ i - 1 ] e no segundo valor.
3. Método para codificar dados de vídeo, o método CARACTERIZADO pelo fato de que compreende: codificar (150) pelo menos uma primeira parte de uma imagem atual de dados de vídeo com relação a uma primeira imagem de referência de longo prazo, LTRP, e pelo menos uma segunda parte da imagem atual com relação a uma segunda LTRP; codificar um elemento de sintaxe poc_lsb_lt para a primeira LTRP, em que o elemento de sintaxe para a primeira LTRP especifica o valor dos bits menos significativos, LSBs, do valor de contagem de ordem de imagem, POC, da primeira LTRP; codificar (154) um primeiro valor representativo de uma diferença entre um valor de bits mais significativos, MSBs, de base de um valor de POC da imagem atual dos dados de vídeo e um primeiro valor de MSBs de um primeiro valor de POC da primeira LTRP dos dados de vídeo; codificar um elemento de sintaxe poc_lsb_lt para a segunda LTRP, em que o elemento de sintaxe para a segunda LTRP especifica o valor dos LSBs do valor de POC da segunda LTRP; e codificar (158) um segundo valor representativo de uma diferença entre um segundo valor de MSBs de um segundo valor de POC da segunda imagem de referência de longo prazo dos dados de vídeo e o primeiro valor de MSBs, em que o primeiro valor de POC e o segundo valor de POC têm valores de bits menos significativos, LSBs, diferentes e em que as LTRPs são sinalizadas em ordem crescente de seus valores de ciclo de MSBs com relação a imagem atual.
4. Método, de acordo com a reivindicação 3, CARACTERIZADO pelo fato de que compreende adicionalmente: calcular o primeiro valor como uma diferença entre um primeiro valor de ciclo de MSBs para a primeira imagem de referência de longo prazo, Delta- PocMSBCycleLt[ i - 1 ], e o valor de MSBs base; e calcular o segundo valor como a diferença entre um segundo valor de ciclo de MSBs para a segunda imagem de referência de longo prazo, DeltaPo- cMSBCycleLt[ i ], e o primeiro valor de MSBs.
5. Método, de acordo com a reivindicação 1 ou 3, CARACTERIZADO pelo fato de que a primeira imagem de referência de longo prazo corresponde a um índice de j, em que a segunda imagem de referência de longo prazo corresponde a um índice de i, em que o primeiro valor compreende del- ta_poc_msb_cycle_lt_plus1[ j ], em que o segundo valor compreende del- ta_poc_msb_cycle_lt_plus1[ i ], e em que j está na faixa de 0 a i - 1, inclusive.
6. Método, de acordo com a reivindicação 1 ou 3, CARACTERIZADO pelo fato de que pelo menos um dentre o primeiro valor e o segundo valor compreende um valor inteiro negativo.
7. Dispositivo para decodificar dados de vídeo, o dispositivo CARAC-TERIZADO pelo fato de que compreende: meios para decodificar um elemento de sintaxe poc_lsb_lt para uma imagem de referência de longo prazo, LTRP, dos dados de vídeo, em que o elemento de sintaxe especifica o valor dos bits menos significativos, LSBs, do valor de contagem de ordem de imagem, POC, da primeira LTRP dos dados de vídeo; meios para decodificar um primeiro valor representativo de uma diferença entre um valor de bits mais significativos, MSBs, de base de um valor de POC de uma imagem atual de dados de vídeo e um primeiro valor de MSBs de um primeiro valor de POC da primeira imagem de referência de longo prazo dos dados de vídeo; meios para decodificar um elemento de sintaxe poc_lsb_lt para uma segunda LTRP, em que o elemento de sintaxe especifica o valor dos LSBs do valor de POC da segunda LTRP; meios para decodificar um segundo valor representativo de uma diferença entre um segundo valor de MSBs de um segundo valor de POC da segunda LTRP dos dados de vídeo e o primeiro valor de MSBs, em que o primeiro valor de POC e o segundo valor de POC têm valores de bits menos significativos, LSBs, diferentes, em que as LTRPs são sinalizadas em ordem crescente de seus valores de ciclo de MSB com relação a imagem atual; e meios para decodificar pelo menos uma primeira parte da imagem atual dos dados de vídeo com relação a primeira LTRP utilizando o primeiro valor e decodificar pelo menos uma segunda parte de uma imagem atual com relação a segunda LTRP utilizando o primeiro valor e o segundo valor.
8. Dispositivo, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que compreende adicionalmente: meios para calcular um primeiro valor de ciclo de MSB para a primeira imagem de referência de longo prazo, DeltaPocMSBCycleLt[ i - 1 ], utilizando o primeiro valor; e meios para calcular um segundo valor de ciclo de MSB para a segunda imagem de referência de longo prazo, DeltaPocMSBCycleLt[ i ], em que calcu- lar o segundo valor de ciclo de MSB compreende calcular DeltaPocMSB- CycleLt[ i ] com base em DeltaPocMSBCycleLt[ i - 1 ] e no segundo valor.
9. Dispositivo para codificar dados de vídeo, o dispositivo CARACTE-RIZADO pelo fato de que compreende: meios para codificar pelo menos uma primeira parte da imagem atual de dados de vídeo com relação a uma primeira imagem de referência de longo prazo, LTRP, e pelo menos uma segunda parte da imagem atual para uma segunda LTRP; meios para codificar um elemento de sintaxe poc_lsb_lt para a primeira LTRP, em que o elemento de sintaxe especifica o valor dos bits menos significativos, LSBs, do valor de POC da primeira LTRP; meios para codificar um primeiro valor representativo de uma diferença entre um valor de bits mais significativos, MSBs, de base de um valor de POC da imagem atual dos dados de vídeo e um primeiro valor de MSBs de um primeiro valor de POC da primeira imagem de referência de longo prazo dos dados de vídeo; e meios para codificar um elemento de sintaxe poc_lsb_lt para a segunda LTRP, em que o elemento de sintaxe especifica o valor dos LSBs do POC da segunda LTRP; meios para codificar um segundo valor representativo de uma diferença entre um segundo valor de MSBs de um segundo valor de POC da segunda imagem de referência de longo prazo dos dados de vídeo e o primeiro valor de MSBs, em que o primeiro valor de POC e o segundo valor de POC têm valores de bits menos significativos, LSBs, diferentes e, em que as LTRPs são sinalizadas em ordem crescente de seus valores de ciclo de MSBs com relação a imagem atual.
10. Dispositivo, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que compreende adicionalmente meios para calcular o primeiro valor como uma diferença entre um primeiro valor de ciclo de MSBs para a primeira imagem de referência de longo prazo, DeltaPocMSBCycleLt[ i - 1 ], e o valor de MSBs de base; e meios para calcular o segundo valor como uma diferença entre um segundo valor de ciclo de MSBs para a segunda imagem de referência de longo prazo, DeltaPocMSBCycleLt[ i ], e o primeiro valor de MSBs.
11. Dispositivo, de acordo com a reivindicação 7 ou 9, CARACTERIZADO pelo fato de que a primeira imagem de referência de longo prazo corresponde a um índice de j, em que a segunda imagem de referência de longo prazo corresponde a um indicie de i, em que o primeiro valor compreende del- ta_poc_msb_cycle_lt_plus1[ j ], em que o segundo valor compreende del- ta_poc_msb_cycle_lt_plus1[ i ], e em que j está na faixa de 0 a i - 1, inclusive.
12. Dispositivo, de acordo com a reivindicação 7 ou 9, CARACTERIZADO pelo fato de que pelo menos um dentre o primeiro valor e o segundo valor compreende um valor inteiro negativo.
13. Mídia de armazenamento legível por computador CARACTERIZADA pelo fato de que possui, armazenadas na mesma, instruções que quando executadas fazem com que um processador realize o método conforme definido em qualquer uma das reivindicações 1 a 6.
BR112014032473-5A 2012-06-28 2013-06-24 Método e dispositivo para decodificar dados de vídeo, método e dispositvo para codificar dados de vídeo e mídia de armazenamento legível por computador BR112014032473B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261665784P 2012-06-28 2012-06-28
US61/665,784 2012-06-28
US13/924,016 US9332255B2 (en) 2012-06-28 2013-06-21 Signaling long-term reference pictures for video coding
US13/924,016 2013-06-21
PCT/US2013/047367 WO2014004391A1 (en) 2012-06-28 2013-06-24 Signaling long-term reference pictures for video coding

Publications (2)

Publication Number Publication Date
BR112014032473A2 BR112014032473A2 (pt) 2017-06-27
BR112014032473B1 true BR112014032473B1 (pt) 2023-04-25

Family

ID=49778158

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112014032473-5A BR112014032473B1 (pt) 2012-06-28 2013-06-24 Método e dispositivo para decodificar dados de vídeo, método e dispositvo para codificar dados de vídeo e mídia de armazenamento legível por computador

Country Status (25)

Country Link
US (1) US9332255B2 (pt)
EP (1) EP2868081B1 (pt)
JP (1) JP6239609B2 (pt)
KR (1) KR101719930B1 (pt)
CN (1) CN104412599B (pt)
AR (1) AR093754A1 (pt)
AU (1) AU2013280659B2 (pt)
BR (1) BR112014032473B1 (pt)
CA (1) CA2875713C (pt)
DK (1) DK2868081T3 (pt)
ES (1) ES2736312T3 (pt)
HK (1) HK1204185A1 (pt)
HU (1) HUE044918T2 (pt)
IL (1) IL235969A (pt)
MY (1) MY181793A (pt)
PH (1) PH12014502731A1 (pt)
PL (1) PL2868081T3 (pt)
PT (1) PT2868081T (pt)
RU (1) RU2642361C2 (pt)
SG (1) SG11201408111UA (pt)
SI (1) SI2868081T1 (pt)
TW (1) TWI558179B (pt)
UA (1) UA116214C2 (pt)
WO (1) WO2014004391A1 (pt)
ZA (1) ZA201500618B (pt)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130188709A1 (en) 2012-01-25 2013-07-25 Sachin G. Deshpande Video decoder for tiles with absolute signaling
US9979959B2 (en) 2012-04-20 2018-05-22 Qualcomm Incorporated Video coding with enhanced support for stream adaptation and splicing
US9479776B2 (en) * 2012-07-02 2016-10-25 Qualcomm Incorporated Signaling of long-term reference pictures for video coding
US10194146B2 (en) 2013-03-26 2019-01-29 Qualcomm Incorporated Device and method for scalable coding of video information
US10356426B2 (en) * 2013-06-27 2019-07-16 Google Llc Advanced motion estimation
US9510001B2 (en) * 2013-07-09 2016-11-29 Electronics And Telecommunications Research Institute Video decoding method and apparatus using the same
US9848199B2 (en) * 2014-03-17 2017-12-19 Qualcomm Incorporated Device and method for scalable coding of video information
US11985318B2 (en) * 2015-12-24 2024-05-14 OP Solultions, LLC Encoding video with extended long term reference picture retention
US11595652B2 (en) * 2019-01-28 2023-02-28 Op Solutions, Llc Explicit signaling of extended long term reference picture retention
US11736687B2 (en) 2017-09-26 2023-08-22 Qualcomm Incorporated Adaptive GOP structure with future reference frame in random access configuration for video coding
WO2020112488A1 (en) * 2018-11-30 2020-06-04 Futurewei Technologies, Inc. Signaling of reference picture lists in video coding
US10904545B2 (en) * 2018-12-26 2021-01-26 Tencent America LLC Method for syntax controlled decoded picture buffer management
CN113597768A (zh) * 2019-01-28 2021-11-02 Op方案有限责任公司 扩展长期参考图片保留的在线和离线选择
CN113615184A (zh) * 2019-01-28 2021-11-05 Op方案有限责任公司 扩展长期参考图片保留的显式信令
US11109041B2 (en) * 2019-05-16 2021-08-31 Tencent America LLC Method and apparatus for video coding

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001086960A2 (en) 2000-05-10 2001-11-15 Picturetel Corporation Video coding using multiple buffers
MY134659A (en) * 2002-11-06 2007-12-31 Nokia Corp Picture buffering for prediction references and display
US20050008240A1 (en) * 2003-05-02 2005-01-13 Ashish Banerji Stitching of video for continuous presence multipoint video conferencing
FR2874292B1 (fr) 2004-08-10 2007-01-26 Thales Sa Procede de mise en forme de trames d'une sequence video
CN102761744B (zh) 2006-10-13 2015-10-28 汤姆逊许可公司 用于多视点视频编码的参考图像列表管理语法
US8494049B2 (en) * 2007-04-09 2013-07-23 Cisco Technology, Inc. Long term reference frame management with error video feedback for compressed video communication
US9210480B2 (en) 2007-12-20 2015-12-08 Broadcom Corporation Video processing system with layered video coding and methods for use therewith
US9237355B2 (en) * 2010-02-19 2016-01-12 Qualcomm Incorporated Adaptive motion resolution for video coding
WO2012052968A1 (en) 2010-10-20 2012-04-26 Nokia Corporation Method and device for video coding and decoding
RU2581566C2 (ru) * 2011-06-30 2016-04-20 Телефонактиеболагет Л М Эрикссон (Пабл) Сигнализация опорного изображения
CN102256125B (zh) * 2011-07-14 2013-06-05 北京工业大学 面向高效视频编码hevc基于上下文的自适应算数编码方法
US9648321B2 (en) * 2011-12-02 2017-05-09 Qualcomm Incorporated Coding picture order count values identifying long-term reference frames

Also Published As

Publication number Publication date
HK1204185A1 (en) 2015-11-06
KR20150036218A (ko) 2015-04-07
TWI558179B (zh) 2016-11-11
US9332255B2 (en) 2016-05-03
CA2875713A1 (en) 2014-01-03
ES2736312T3 (es) 2019-12-27
AU2013280659A1 (en) 2015-01-15
JP2015526026A (ja) 2015-09-07
IL235969A (en) 2017-04-30
WO2014004391A1 (en) 2014-01-03
CA2875713C (en) 2019-09-24
EP2868081A1 (en) 2015-05-06
PT2868081T (pt) 2019-07-23
ZA201500618B (en) 2017-01-25
PH12014502731B1 (en) 2015-02-02
SI2868081T1 (sl) 2019-06-28
US20140003538A1 (en) 2014-01-02
UA116214C2 (uk) 2018-02-26
IL235969A0 (en) 2015-01-29
PL2868081T3 (pl) 2019-10-31
HUE044918T2 (hu) 2019-11-28
TW201408082A (zh) 2014-02-16
RU2642361C2 (ru) 2018-01-24
KR101719930B1 (ko) 2017-03-24
AR093754A1 (es) 2015-06-24
EP2868081B1 (en) 2019-04-17
DK2868081T3 (da) 2019-07-22
CN104412599B (zh) 2018-02-06
PH12014502731A1 (en) 2015-02-02
AU2013280659B2 (en) 2017-10-05
RU2015102618A (ru) 2016-08-20
MY181793A (en) 2021-01-07
BR112014032473A2 (pt) 2017-06-27
SG11201408111UA (en) 2015-01-29
CN104412599A (zh) 2015-03-11
JP6239609B2 (ja) 2017-11-29

Similar Documents

Publication Publication Date Title
US11297326B2 (en) Method and apparatus for predicting motion information of picture block, encoder, and decoder
AU2016271140B2 (en) Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
BR112014032473B1 (pt) Método e dispositivo para decodificar dados de vídeo, método e dispositvo para codificar dados de vídeo e mídia de armazenamento legível por computador
ES2892964T3 (es) Inicialización de predictor de paleta y fusión para codificación de vídeo
WO2019147826A1 (en) Advanced motion vector prediction speedups for video coding
BR112018006408B1 (pt) Predição intra de vídeo melhorada usando combinação de predição dependente de posição para codificação de vídeo
AU2013272130B2 (en) Signaling data for long term reference pictures for video coding
KR101772350B1 (ko) 비디오 코딩을 위한 고 정확도 명시적 가중 예측
BR112020006232A2 (pt) codificação de informação de movimento de predição afim para codificação de vídeo
BR112016021151B1 (pt) Transformada inversa de espaço-cor tanto para vídeo codificado com perdas como sem perdas
BR112015032977B1 (pt) Equipamento e método para codificar informações de vídeo, equipamento e método para decodificar informações de vídeo, e memória legível por computador
BR112014025406B1 (pt) Método de codificação e de decodificação de dados de vídeo, mídia de armazenamento legível por computador e aparelho para codificar e decodificar dados de vídeo
BR112015016230B1 (pt) Sinalização condicional de informação de temporização de contagem de ordem de imagens para temporização de vídeo em codificação de vídeo
BR112015006849B1 (pt) Métodos para decodificar e codificar dados de vídeo, aparelhos para decodificar e codificar dados de vídeo, e, memória legível por computador
BR112013031006B1 (pt) Modelagem de contexto eficaz em memória
BR112017016159B1 (pt) Contextos para unidades de árvore de codificação grandes
BR112015025639B1 (pt) Alinhamento poc de camada cruzada para fluxos de bits de várias camadas que podem incluir imagens irap não alinhadas
WO2014008136A1 (en) Signaling of long-term reference pictures for video coding
BR112016011311B1 (pt) Design de valor de poc para codificação de vídeo de várias camadas
BR112016006677B1 (pt) Tipo de dependência inter-vista em mv-hevc
EP3707903A1 (en) Enhanced reference picture management in video coding
BR112015007273B1 (pt) Método e dispositivo para processar dados de vídeo de múltiplas camadas, dispositivo de codificação de vídeo e memória legível por computador
BR112016021144B1 (pt) Método e dispositivo de codificação e decodificação de dados de vídeo, e memória legível por computador
BR112014031749B1 (pt) Acesso randômico e sinalização de imagens de referência de longo termo em codificação de vídeo

Legal Events

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

Ipc: H04N 7/00 (2011.01)

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B25A Requested transfer of rights approved

Owner name: VELOS MEDIA INTERNATIONAL LIMITED (IE)

B15K Others concerning applications: alteration of classification

Free format text: A CLASSIFICACAO ANTERIOR ERA: H04N 7/00

Ipc: H04N 19/463 (2014.01), H04N 19/573 (2014.01), H04N

B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B25A Requested transfer of rights approved

Owner name: QUALCOMM INCORPORATED (US)

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 24/06/2013, OBSERVADAS AS CONDICOES LEGAIS